WRITE_READ_VAR: Lectura y escritura de registros internos en un dispositivo Modbus
Esta función lee y escribe registros internos (solo de tipo MW) en un dispositivo externo en el protocolo Modbus. Las operaciones de lectura y escritura se encuentran en una sola transacción.
La operación de escritura se realiza primero. A continuación, la función WRITE_READ_VAR puede:
oEscribir registros internos consecutivos y, de inmediato, volver a leer sus valores para verificarlos.
oEscribir algunos registros internos consecutivos y leer otros en una sola petición.
Descripción de parámetros específicos de WRITE_READ_VAR
Entrada |
Tipo |
Comentario |
---|---|---|
ObjType |
ObjType es el tipo de objeto que se va a escribir y leer (solo MW). |
|
FirstWriteObj |
DINT |
FirstWriteObj es el índice del primer objeto que se va a escribir. |
WriteQuantity |
UINT |
WriteQuantity es el número de objetos que se va a escribir: oDe 1 a 121: registros (tipo MW) |
WriteBuffer |
POINTER TO BYTE |
Dirección del puntero a la matriz que contiene los datos que se escribirán en el dispositivo de destino. La matriz debe ser igual o superior a los datos que se escribirán. Utilice la función ADR para transmitir la dirección del primer byte de la matriz (consulte el gráfico CFC del ejemplo). |
FirstReadObj |
DINT |
ReadFirstObj es el índice del primer objeto que se va a leer. |
ReadQuantity |
UINT |
ReadQuantity representa el número del objetos que se va a leer: o1...125: registros (tipo MW) |
ReadBuffer |
POINTER TO BYTE |
Dirección del puntero a la matriz que contiene los datos recibidos que se han leído desde el dispositivo de destino. La matriz debe ser igual o superior a los datos que se leerán. Utilice la función ADR para transmitir la dirección del primer byte de la matriz (consulte el gráfico CFC del ejemplo). |
NOTA: Para evitar una infracción de acceso provocada por un acceso no válido del puntero (fuera de los límites) a la memoria, asegúrese de que el tamaño de la matriz vinculada a la entrada Buffer sea igual o superior a los datos que se escribirán en el dispositivo de destino o que se recibirán de este. Se recomienda vincular la Quantity definida de datos que se escribirán o leerán en la declaración del búfer, como en el ejemplo siguiente.
En el ejemplo siguiente se muestra la implementación conjunta de los bloques de funciones WRITE_READ_VAR y ADDM para la escritura de dos registros a partir de la dirección 11 y la lectura de dos registros a partir de la dirección 1 de un esclavo Modbus. El esclavo Modbus se especifica con la dirección 8 y debe poder accederse a él a través de la interfaz 1 de línea serie. Una condición previa es que hay que configurar el Modbus Manager como maestro en la interfaz 1 de línea serie.