Actualmente he configurado mi PLC como esclavo modbus, y escribí un código python que se conecta a él y actúa como un cliente modbus.
Estoy teniendo algunos problemas con el servidor de modbus alguna vez que termina el PLC, cuando el código python solicita / envía información al esclavo.
Termina mostrando una ventana emergente que dice:
runtime error #16 (watchdog expired Task = default task)
Y luego un mensaje de error con el que termina es:
IEC Task 0 ' cycle time is greater than the set watchdog timer; or cycle time exceeded, but shorter than watchdog timers
El único código que estoy ejecutando en el PLC es básicamente
(*Bit0 := TRUE;*)
(*Bit1 := TRUE;*)
(*Bit2 := TRUE;*)
DO1 := Bit0; (* Start/Stop *)
DO2 := Bit1; (* Direction [False - Reverse ; True - Forward] *)
DO3 := Bit2; (* Speed [Fast = 11; Medium = 10; Slow = 01 ; Stop = 00] *)
DO4 := Bit3; (* Speed [Fast = 11; Medium = 10; Slow = 01 ; Stop = 00] *)
y eso es todo. Bitx
son las direcciones de las bobinas y DOx
son salidas digitales en el PLC.
Supongo que, según el mensaje de error, tiene algo que ver con el perro guardián. ¿No he cambiado nada manualmente con el perro guardián, o incluso lo he configurado? .. ¿Cómo lo configuro en codesys?
¿Debería ajustar algunos de estos valores?