Colección de citas famosas - Consulta de diccionarios - Solo conociendo la dirección IP del cliente, cómo implementar la función modbus, la codificación encontró un cuello de botella, usando la biblioteca libmodbus y el desarrollo qt en el sistema Linux.

Solo conociendo la dirección IP del cliente, cómo implementar la función modbus, la codificación encontró un cuello de botella, usando la biblioteca libmodbus y el desarrollo qt en el sistema Linux.

¿Qué tal C#? Te daré un código aproximado si puedo.

Tome la lectura de datos como ejemplo. Si otras funciones son importantes, simplemente cambie el código de función 03.

Primero forme la matriz de bytes del comando.

byte[] Dp = nuevo byte[8];

byte[] DpC = nuevo byte[6]; ; //Esta es la dirección de la tabla, suponiendo que sea 01.

DP[1]= 0x 03; //Este es el código de función, 03 son los datos del registro de lectura.

DP[2]= 0x 00;

DP[3]= 0x 03; //Dirección de registro correspondiente a la tabla

DP[4]= 0x 00;

DP[5]= 0x0C; //Los parámetros de registro correspondientes a la tabla varían según el código de función y la tabla.

for(int I = 0; i<6;i++)

{

DpC[I]= Dp[I];

}

uint ValCRC

val CRC = CRC(DpC); //CRC es una función del código de verificación CRC-16 escrito por usted mismo. La implementación específica no se le enviará aquí.

Dp[6] = (byte)(valor CRC % 256);

Dp[7] = (byte) (valor CRC/256); > Luego envíe esta matriz al puerto serie. Los diferentes lenguajes de programación lo envían de diferentes maneras.

Aún en el programa, puedes configurar la velocidad en baudios, verificar, etc. Los diferentes lenguajes de programación tienen diferentes configuraciones.

Luego acepte los datos, que también son una matriz de bytes.

Luego, analiza la matriz tú mismo y convierte lo que necesitas a 10 o al formato que necesites.

Probablemente sea eso.