Удалить шаблоны и сделать групповой опрос регистров модулей. Читать только нужные регистры.
Разделить все модули на несколько портов.
Вид для печати
Проект градирни - 4 вентилятора на ПЧ, 10 насосов на УПП, порядка 40 э/м задвижек, около 60 аналоговых датчиков 4...20мА во всех контурах, плюс еще некоторое технологическое оборудование. Также будет локальная панель управления по Modbus TCP + скорее всего еще АРМ на базе MasterSCADA 4D (также по Modbus TCP). Связь со всеми ПЧ/УПП по Modbus RTU.
Соответственно нужно управление и контроль за всем этим хозяйством. Супербыстрая реакция не нужна. Но хотелось бы чтобы задержка от изменения показания датчиков или нажатия кнопки была не больше 2 секунд
Добрый день, коллеги!
Вопрос для разминки в понедельник: ускорит ли выполнение программы за счет времени чтения предварительная перегрузка persist и retain переменных в "оперативные" переменные (если это делать единожды после запуска контроллера в модуле инициализации) до старта основного POU программы? Сама логика программы организована методами SFC.
Добрый день!
При нажатии внутри PersistentVars кнопки "Сохранить текущие значения в рецепт" Codesys зависает. Отвисания ещё ни разу не дождался - приходится перезапускать через диспетчер
На соседнем ноутбуке эта операция занимает долю секунды без всяких зависаний
60 аналоговых датчиков - это 8 модулей AI, лучше взять с быстрыми входами (FAI).
40 задвижек - взять подули по 32 DI/DO, не так много их будет.
В общем, думаю, в 2 секунды спокойно можно уложиться.
По собственному опыту - был проект с ПЛК210-04 + 2 панели HMI около 400 регистров + 16 модулей DI/DO/AI/AO по Modbus TCP + 14 УПП на Modbus RTU.
Даже приходилось показания на панели замедлять от FAI, а иначе данные слишком быстро скакали. Вроде делал триггер на отсылку данных ПЛК->Панель в 250мс.
Задержек по управлению/отображению никаких не было. Но отдельное внимание на подключение RS485: спец кабели с экраном + прокладка + резисторы и пр.
п.с.: прочитал чуть выше, что всего модулей 35.
Если будет тормозить дольше 2 сек - из идей приходит на ум только добавление ещё одного ПЛК - разбить входы/выходы примерно на половину , либо как-то по местоположению оборудования.
Евгений, уточните пожалуйста, если возможно. Разве энергонезависимые переменные не хранятся в отдельном типе микросхем ППЗУ контроллера с более медленной скоростью чтения?
Или они предварительно загружаются в ОЗУ средствами ОС до старта пользовательской программы?
Или в большей степени это касается ПР-хх?
Спасибо!
Не слушайте никого про скорость - это смешно. Главные ваши вопросы:
1.Сколько может держать одновременно открытых сокетов этот ПЛК (возможно часть модулей нужно будет опрашивать в режиме открыл сокет/опросил/закрыл сокет. Очевидно те которых 11)
2.Сколько транзакций вытягивает система за 1 цикл (предположительно 1. Если больше - то даже лучше)
3.На сколько минимальным сможете сделать цикл сами и насколько сумеете оптимизировать обмен (даже по TCP надо) и сам код.
Если б речь шла про ПЛК110, то с некоторыми ньансами можно было бы уложится в 50...100мс на всё.