Перелючение регистров по циклу ПЛК SA2
-
- Сообщения: 68
- Зарегистрирован: 26 окт 2016, 10:23
Перелючение регистров по циклу ПЛК SA2
Добрый день
Суть вопроса:
Имеется некая логика работы оборудования.
Пример; 8 реле
Необходимо реализовать различные алгоритмы их работы.
Для реализации одного алгоритма используется 4 регистра (№1) порядок вкл\выкл (смена по завершению одного шага, № осцилограммы), №2 ) время вкл (шаг) одного реле, №3) ШИМ (вкл=выкл) в течении 1 шага для каждого реле, №4) повторение в течении 1 цикла)
Таких циклов 30. По завершению одного цикла переход к следующему
То есть могу реализовать смену по окончанию одного цикла и переход к следующему. При этом значение регистров (этих 4) в каждом цикле разное
Всего таких программ 16
Причем задавать режимы в каждом цикле надо с Панели оператора
На ум приходит создать 16 таблиц, в каждой 30 строк (циклы) и 4 столбца (регистры №1, 2,3,4).
Но как представлю количество регистров 16х30х4=1920 (как раз с 2000 по 3919), почти 2 тыщи, и их надо прописывать каждый в проге, становится тоскливо.
Возможно ли как то поиграться с номерами регистров?
Задаю на панели таблицу для каждой проги (16шт), в ней в столбцах распологаю как раз эти 4 регистра, а в строках - 30 циклов, в ячейках регистры.
Типа запускаю 1 программу с регистрами 2000, 2001, 2002, 2003, по окончанию цикла к номерам прибавляю по 4 и получаю следующий цикл с регистрами 2004,2005,2006,2007 и тд.
И следующий цикл работаю уже с новыми регистрами (значения с таблицы с панели)
Как вариант, загнать побитно каждое значение в 16 бит (типа первые 3 - это 8 осцилограмм, 3 - количество повторений, 5 - ШИМ , 5 - время работы одного реле).
Это уменьшит в 4 раза количество регистров, в проге уже повытаскиваю эти биты..
Но хотелось бы не загромождать прогу, и сделать переключение по циклу, и уже каждый раз новые значения регистров присваивать оперативным регистрам в проге.
Короче, надо как то реализовать увеличение номера регистров на 4 и считывать с них значения..
Суть вопроса:
Имеется некая логика работы оборудования.
Пример; 8 реле
Необходимо реализовать различные алгоритмы их работы.
Для реализации одного алгоритма используется 4 регистра (№1) порядок вкл\выкл (смена по завершению одного шага, № осцилограммы), №2 ) время вкл (шаг) одного реле, №3) ШИМ (вкл=выкл) в течении 1 шага для каждого реле, №4) повторение в течении 1 цикла)
Таких циклов 30. По завершению одного цикла переход к следующему
То есть могу реализовать смену по окончанию одного цикла и переход к следующему. При этом значение регистров (этих 4) в каждом цикле разное
Всего таких программ 16
Причем задавать режимы в каждом цикле надо с Панели оператора
На ум приходит создать 16 таблиц, в каждой 30 строк (циклы) и 4 столбца (регистры №1, 2,3,4).
Но как представлю количество регистров 16х30х4=1920 (как раз с 2000 по 3919), почти 2 тыщи, и их надо прописывать каждый в проге, становится тоскливо.
Возможно ли как то поиграться с номерами регистров?
Задаю на панели таблицу для каждой проги (16шт), в ней в столбцах распологаю как раз эти 4 регистра, а в строках - 30 циклов, в ячейках регистры.
Типа запускаю 1 программу с регистрами 2000, 2001, 2002, 2003, по окончанию цикла к номерам прибавляю по 4 и получаю следующий цикл с регистрами 2004,2005,2006,2007 и тд.
И следующий цикл работаю уже с новыми регистрами (значения с таблицы с панели)
Как вариант, загнать побитно каждое значение в 16 бит (типа первые 3 - это 8 осцилограмм, 3 - количество повторений, 5 - ШИМ , 5 - время работы одного реле).
Это уменьшит в 4 раза количество регистров, в проге уже повытаскиваю эти биты..
Но хотелось бы не загромождать прогу, и сделать переключение по циклу, и уже каждый раз новые значения регистров присваивать оперативным регистрам в проге.
Короче, надо как то реализовать увеличение номера регистров на 4 и считывать с них значения..
-
- Сообщения: 68
- Зарегистрирован: 26 окт 2016, 10:23
Re: Перелючение регистров по циклу ПЛК SA2
Остановился пока на варианте сохранения всех таблиц в DOP-107WV (либо на флешке в виде екселевских таблиц)
При необходимости, выбираю определенную таблицу и отправляю ее в ПЛК SA2
Получается 4 (столбца)х30(строк)=120 регистров
поэтапно (по завершению цикла ) записываю значение 4 регистров с 1 по 30 строку в 4 оперативных регистров в программе, и уже с ними работаю
Осталось выяснить, как преобразовывается екселевская таблица (на флешке аль памяти панели) в регистры для отправки.
Есть мысль со стеком побаловаться.. SFRDP, для понимания его работы
При необходимости, выбираю определенную таблицу и отправляю ее в ПЛК SA2
Получается 4 (столбца)х30(строк)=120 регистров
поэтапно (по завершению цикла ) записываю значение 4 регистров с 1 по 30 строку в 4 оперативных регистров в программе, и уже с ними работаю
Осталось выяснить, как преобразовывается екселевская таблица (на флешке аль памяти панели) в регистры для отправки.
Есть мысль со стеком побаловаться.. SFRDP, для понимания его работы
Re: Перелючение регистров по циклу ПЛК SA2
Индексные регистры. Не?
-
- Сообщения: 68
- Зарегистрирован: 26 окт 2016, 10:23
Re: Перелючение регистров по циклу ПЛК SA2
В том числе и в панели тоже.
-
- Сообщения: 68
- Зарегистрирован: 26 окт 2016, 10:23
Re: Перелючение регистров по циклу ПЛК SA2
Тоже задумался.. нафига всю базу с панели в ПЛК гнать..
К примеру, клиент выбирает режим, один из 16, и уже заданная таблица с панели по сети летит в ПЛК на обработку в цикле....
Ну а там уже попробую с индексными регистрами цикл замутить.
Немного прорисовывается программа, спасибо за подсказку.
Re: Перелючение регистров по циклу ПЛК SA2
Вообще-то в панели есть вполне удобный инструмент "рецепты"