Столкнулся в этом обновлении с одной забавной штукой.
Вчера залил и запустил станок, вроде всё работает как надо. Сегодня заметил что падает обмен данными между СПК 107 и модулем вывода. Хотя ошибок не выдает и даже мигает лампочка линк на модуле)).
Обмен данными может лежать от полсекунды до десятка минут!
Добавил код ручного перезапуска (спасибо одному доброму человеку, не помню кому именно, но с этого форума. Именно он посоветовал использовать сей код.)
Код:
(*перезапуск сети при ошибках*)
CASE restart_STEP OF
0: IF d_out_32_ModBus.xError OR d_in_16_ModBus.xError OR anal_out_ModBus.xError THEN// определяем наличие ошибки в модулях
count_errors:=count_errors+1;//считает кол-во ошибок
restart_STEP:=restart_STEP+1;//шаг перезапуска сети
ELSE restart_STEP:=0;
END_IF
1:
Modbus_Master_COM_Port.xStop:=TRUE;//останавливаем ком порт.
TON_restart(IN:=TRUE,PT:=T#20MS);//ждём немного
IF TON_restart.Q THEN
d_out_32_ModBus.xReset:=TRUE;//перезапускаем модули
d_in_16_ModBus.xReset:=TRUE;
anal_out_ModBus.xReset:=TRUE;
TON_restart(IN:=FALSE);
restart_STEP:=restart_STEP+1;
END_IF
2: TON_restart(IN:=TRUE,PT:=T#20MS);
IF TON_restart.Q THEN
d_out_32_ModBus.xReset:=FALSE;//запускаем модули
d_in_16_ModBus.xReset:=FALSE;
anal_out_ModBus.xReset:=FALSE;
TON_restart(IN:=FALSE);
restart_STEP:=restart_STEP+1;
END_IF
3:
TON_restart(IN:=TRUE,PT:=T#20MS);
IF TON_restart.Q THEN
Modbus_Master_COM_Port.xResetComPort:=TRUE;//перезагружаем ком порт
TON_restart(IN:=FALSE);
restart_STEP:=restart_STEP+1;
END_IF
4: TON_restart(IN:=TRUE,PT:=T#20MS);
IF TON_restart.Q THEN
Modbus_Master_COM_Port.xResetComPort:=FALSE;
TON_restart(IN:=FALSE);
restart_STEP:=restart_STEP+1;
END_IF
5: TON_restart(IN:=TRUE,PT:=T#20MS);
IF TON_restart.Q THEN
Modbus_Master_COM_Port.xStop:=FALSE;//запускаем ком порт
TON_restart(IN:=FALSE);
restart_STEP:=restart_STEP+1;
END_IF
6: TON_restart(IN:=TRUE,PT:=T#20MS);
IF TON_restart.Q THEN
TON_restart(IN:=FALSE);
restart_STEP:=0;
END_IF
END_CASE
В этом случае всё ок, и перезапуск идет.
Однако общее количество падений сети просто удручает. Хотя и кабель экранированный и резисторы стоят... да и расстояние около 10 метров.
зы. Галочка авто перезапуск сети стояла.
p.p.s. Скорость 57600. none 8/1. между фреймами 10мс. (дальнейшее уменьшение скорости обмена, к стабильности не приводит.)