c# serial-port ascii modbus plc

c# - NModbus4 lee TXT desde PLC



serial-port ascii (1)

Un registro Modbus tiene 16 bits de ancho, por lo que puede almacenar dos caracteres. Esta es la razón por la cual cada dos caracteres comparten la misma dirección.

Dicho esto, debe inferir el orden de bytes utilizado: ¿cómo se introducen los dos caracteres en el registro? ¿Cuál va al byte más significativo?

Tome su texto de ejemplo, tiene 12 caracteres, por lo que leer 6 registros es suficiente (436865-436870). De su imagen de depuración, la dirección 436865 almacena el valor 26948, 0x6944 cuando se convierte a hexadecimal. Encuentre una tabla ASCII y busque los códigos 0x69 y 0x44. Estos son los códigos para los caracteres ''i'' y ''D''. El texto en el PLC comienza con "Di". Podemos inferir que para cada par de caracteres almacenados en un registro, el segundo carácter se coloca en el byte más significativo.

A continuación, puede obtener el texto del PLC intercambiando los bytes en cada registro y convirtiendo a un char usando una tabla ASCII.

Estoy programando un Click PLC con una aplicación C # con NModbus4. (RS232)

Ahora estoy tratando de leer y escribir datos TXT.

Este es el código y el resultado:

Cuando reviso el software Click PLC, puedo ver que por cada dos caracteres se usa una dirección Modbus.

¿Cómo puedo obtener el texto guardado en el PLC? Alguien tiene una idea?
El texto almacenado en el PLC es "Dit is tekst"