PDA

Просмотр полной версии : Принудительная перезагрузка ПЛК и Modbus/TCP



Ivanshv
11.02.2010, 13:28
Здравствуйте!

Имеется ПЛК110-32 с прошивкой 2.10.5. Подключен по Ethernet.
Захотелось сделать возможность принудительной перезагрузки ПЛК по записи (с компьютера) определенного значения в заданный регистр Modbus/TCP.

Код типа:
if rres=16#FEFE then
while true do
i:=i+1;
end_while
end_if

При записи значения 0xFEFE плк благополучно уходит в бесконечный цикл, перезагружается по watchdog'у и рестартует.

Вот только установить связь по modbus/tcp со стороны opc-сервера (lectus) уже не удается. Помогает только повторный резет с кнопки.
При этом плк пингуется, Codesys нормально соединяется и все остальное вроде работает...

Может кто подскажет, где грабли?

Филоненко Владислав
11.02.2010, 14:32
Резет по Watchdog и по кнопке АБСОЛЮТНО одинаковы.

SuP
15.02.2010, 14:39
Может, просто rres после сброса по сторожевому таймеру остаётся таким же, и опять сваливаемся в бесконечный цикл? Не может такого быть?

Jeck
15.02.2010, 15:22
может, в соседней теме поведали, что модбас-слейв изначально в ретейн..

Филоненко Владислав
15.02.2010, 16:20
Если ьы ПЛК сваливался в бесконечный цикл - он бы перегружался. А Вы говорите, что связь с CoDeSys есть.
Скорее всего мастер ModBusTCP не устанавливает связь. А при повторной перезагрузке таймаут больше и связь восстанавливается.