-
Присоединяюсь к вопросу!!! В проекте с ПЛК308+Modbus_Slave всего две глобальные переменные. Опрашиваю их по ModbusTCP. Через некоторое неопределенное время обмен прекращается (появляется такой же треугольник как на вышепреведенных картинках), но сама программа продолжает выполняться. Как быть? Вся надежда только на доблестную поддержку отечественного производителя!
-
Попробуйте увеличить время цикла. Мне помогло увеличение до 100 мс.
-
как возобновлять связь показано в выложенном ранее примере
var
ModBusTimer: Ton;
end_Var
ModBusTimer(IN := Modbus_TCP_Slave_Instance.xError, PT := T#10S);
IF ModBusTimer.Q THEN
Modbus_TCP_Master_Instance.CheckSlaveConnect();
Modbus_TCP_Slave_Instance.Reconnect();
END_IF
To Солнечный заяц
кстати он у вас заработал, пример в смысле?
Modbus_TCP_Slave_Instance добавлять не надо, эта переменная сама добавится при создание подключения.
А чтобы данные все время получать и не привязывать к переменным надо на вкладке ModBus **** mapping установить галочку "Always update variables"
-
Вложений: 1
Добавил в свой проект подпрограмму для восстановления соединения из Вашего примера, но компилятор считает методы Modbus_TCP_Master_Instance и Modbus_TCP_Slave_Instance как переменные и ругается что они не определены.
Если их определить как глобальные - компилятор не ругается, но и соединение не восстанавливается...
Помнится что в первых моих вариантах программы он не ругался при компиляции, а только при попытке загрузки программы в контроллер, или возможно я путаю.
-
Как возобновлять связь в выложенном примере не работает для ПЛК308. Ошибки аналогичны: Modbus_TCP_Slave_Instance - не известен.
-
Вложений: 1
Какая у вас версия кодесис? (у меня CoDeSys v3.4 SP2 Hotfix1)
потому что у меня работает и на СПК207 и на ПЛК308.
-
Вложений: 1
Версия CoDeSys v3.4 SP2 Hotfix1.
Вложение 4441
-
То Sergey_Byk
восстановление связи необходимо только если у вас ПЛК работает в режиме Master.
-
Ну тогда что делать если обмен прекращается в режиме слейв?
-
трясти мастера: это его задача следить за коннектом и возобновлять его если отвалится.