Si tenemos que usar la función FC05 de Modbus para escribir en una bobina del esclavo, no podemos usar ni el IOScanning, ni la función WRITE_VAR.
En la Guía de la biblioteca PLCComunication se indican las funciones que soporta las instrucciones READ_VAR y WRITE_VAR:
https://product-help.schneider-electric.com/Machine Expert/V1.1/es/m2xxcom/index.htm#t=m2xxcom/front/front-1.htm
Para la función WRITE_VAR solo podemos usar las funciones FC16, FC15 y FC6.
Entonces, para poder escribir con la función FC05 es necesario usar la función SEND_RECV_MSG
Para montar la trama para la función FC05 hay que hacerlo de la siguiente forma:
Por ejemplo, si queremos poner a SET la primera bobina (000001), la trama que deberíamos escribir es:
0x05 (función de modbus) 0x00 0x00 (dirección) 0xFF 0x00 (valor, poner a ON)
He realizado un pequeño ejemplo que está programado de la siguiente forma:
1: Aquí indicamos el tipo de conexión. En este caso el 3 indica que se realiza por ethernet e indicamos la IP del esclavo
2: Escribimos la trama. En este ejemplo se está escribiendo en la bobina 2.
3: Activamos la instrucción
La trama se envía por flanco de subida de la activación. La propia función se encarga de calcular el CRC, no es necesario incluirlo en la trama.
Adjunto ejemplo, video explicativo así como un documento con la explicación de las tramas de modbus.
Publicado para: Schneider Electric España

