Aunque el programa esté correctamente realizado, lo que ocurre en realidad es que el autómata M221 (cuando actúa como esclavo) responde al código de función 2 de Modbus con los valores del registro %M en vez del %I esperado. De ahí que aparentemente la respuesta sea incorrecta y no muestre fallo. Sin embargo, las peticiones que realiza un M221 cuando ejecuta su programa un READ_VAR de %I sí emiten el código de función 2.
Para leer eficazmente los valores %I del M221 basta con copiarlos directamente a registros %M ó %MW. Lo mismo ocurre para activar salidas pero a la inversa.
Desde la versión 1.5 de Somachine BASIC, además, se pueden utilizar los códigos de petición 5 y 6 de MODBUS en los bloques WRITE_VAR.
Para leer eficazmente los valores %I del M221 basta con copiarlos directamente a registros %M ó %MW. Lo mismo ocurre para activar salidas pero a la inversa.
Desde la versión 1.5 de Somachine BASIC, además, se pueden utilizar los códigos de petición 5 y 6 de MODBUS en los bloques WRITE_VAR.