Сообщение от
Логвиненко Андрей
В CDS3 при сбое связи по Modbus её надо перезапускать принудительно.
В документации это не прописано, нашел методом тыка.
Каждое устройство Modbus slave это экземпляр ФБ IoDrvModbus.ModbusSlaveComPort.
Этот ФБ имеет выходную переменную xError и входную xReset.
Выглядеть это должно примерно так:
FUNCTION_BLOCK MbCtrl
VAR_OUTPUT
error: BOOL;
END_VAR
VAR_IN_OUT
mv: IoDrvModbus.ModbusSlaveComPort;
END_VAR
VAR
Reset: R_TRIG;
tofError: tof;
END_VAR
Reset(CLK:=mv.xError );
mv.xReset:=Reset.Q;
tofError(in:=mv.xError,pt:=T#2S, Q=>error);