Проект содержит массу ошибок. Работать на ПЛК не будет.
Проект содержит массу ошибок. Работать на ПЛК не будет.
Тролль-наседка, добрый, нежный и ласковый
600-700 регистров не передавал, но вот 350 без особых затруднений и SysLibSocetoв. Время конфигурирования 20-40 секунд.
Просто добавьте в Modbus Slave 4-х байтовые переменные на нужный размер передаваемых данных и на начало этого массива наведите структуру (пусть она зовется DA).
Например, в глобальных данных вот так:
DA AT %QD7.1.0 : ExDataArea;
А структура ExDataArea состоит из других стуктур:
Здесь SensorBase и MotorBase - это "базовые" структуры датчика и мотора, т.е. те переменные, которые эти функциональные блоки должны передать на верхний уровень, или те переменные которые эти ФБ должны получить с верхнего уровня.Код:(* Область обмена с верхнем уровнем *) TYPE ExDataArea : STRUCT Sensor1Base : SensorBase; Sensor2Base : SensorBase; Motor1Base : MotorBase; END_STRUCT END_TYPE
Таким образом за секунды Вы конфигурируете множество осмысленных переменных.
Последний раз редактировалось Спорягин Кирилл; 10.02.2017 в 14:12.
Использование не поименованных переменных в конфигурации не даёт возможности среде разработки проверить корректность их типов, адресов, размеров областей данных.
А далее трудноуловимые "плавающие" ошибки.
Тролль-наседка, добрый, нежный и ласковый
Поэтому я стараюсь в базовых структурах использовать только тип word, dword и real. Таким образом я избегаю всяческих проблем с выравниванием памяти и т.п.
Но в целом "волков бояться в лес не ходить".
При использовании конфигуратора с "забитымы" 600 регистров тоже не все гладко. Тут правда пока я грешу на себя (или любителей тыкать кнопки Старт/Стоп на шасси ПЛК) - контроллер работал месяц и ушел в стоп. В журнале ничего существенного нет. Мож кто подскажет как отловить проблемму?