шкаф не по феншую стоит, карму надо почиститьСлетает железо.....В чем проблема данной серии???
Пилю первый проект, панель СП3 (мастер) + контроллер ПЛК110:
Правильно ли я делаю, что в программе PLC_PRG объявляю переменные, а уже их привязываю в регистры для Modbus slave, ведь по сути они не являются глобальными?
Или правильно в регистрах Modbus Slave устройства объявлять свои переменные, при этом удалить их в PLC_PRG, и уже их напрямую использовать в программе?
Последний раз редактировалось kondor3000; 06.05.2026 в 17:55.
Всю дорогу мне эти мысли не давали покоя .. и не зря. Обычно делал проект для контроллера, потом отдельно разбирался с панелями, а тут надо в комплексе сразу разрабатывать.
Ну по сути мне же теперь надо объявлять переменные в modbus slave с такими же именами и параллельно удалять их в PLC_PRG, тогда малой кровью обойдусь?
А что делать с моими Retain переменными с предустановленным значением?.. при первом пуске забивать всё руками ?
p.s. Или весь массив переменных PLC_PRG скопировать в глобальные и уже их использовать и в программе и для Modbus slave?
Последний раз редактировалось Илья Потолицын; 06.05.2026 в 18:15.
Можете сделать инициализацию из массива (или просто переменных) однократно при включении.
Ещё совет, в слейве добавляйте все битовые, потом все целые и в конце все Float (все 32 битные должны быть с чётными адресами), тогда не будете путаться с адресами и выравниванием.
Ещё лучше все битовые сразу упаковать в маски бит.
Последний раз редактировалось kondor3000; 06.05.2026 в 18:30.
Можете ПЕРЕНЕСТИ все переменные (что такое у вас массив переменных?), предназначенные для Modbus slave в глобальные, указав для каждой из них прямой адрес в Modbus slave (через AT...) и там-же, для нужных переменных, написать начальное значение (оно будет записано по команде "Сброс")
По поводу адресации всё понятно, про это довольно подробно в руководствах описано, а вот по переменным не нашёл.
Только что попробовал присвоить для регистра Modbus slave переменную, которая уже объявлена в Modbus master при чтении модулей расширения - ругается на дублирование, хотя если объявить переменную в глобальных и присвоить в Modbus slave то всё в порядке. Вопрос скорее риторический ...
Вот так?
image.png
Тогда у меня возникает вопрос, надо ли эту переменную объявлять в GLOBAL RETAIN или можно в просто в GLOBAL т.к. Адрес, куда переменная привязана в области памяти Modbus Slave, которая априори retain?