READ_VAR: Lectura de datos de un dispositivo Modbus
El bloque de funciones READ_VAR lee datos de un dispositivo externo en el protocolo Modbus.
Descripción de parámetros específicos de READ_VAR
Entrada |
Tipo |
Comentario |
---|---|---|
ObjType |
ObjectType |
ObjType es el tipo de objeto a leer (MW, I, IW, Q). |
FirstObj |
DINT |
FirstObj es el índice del primer objeto a leer. |
Quantity |
UINT |
Quantity es el número de objetos a leer: oDe 1 a 125: registros (tipos MW e IW) oDe 1 a 2.000: bits (tipos I y Q) |
Buffer |
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. Por ejemplo, la lectura de 4 registros requiere una matriz de 4 palabras y la lectura de 32 bits requiere una matriz de 2 palabras o 4 bytes, donde cada bit se establece en el valor correspondiente del dispositivo remoto. 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 recibirán del dispositivo de destino. Se recomienda vincular la Quantity definida de datos que se 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 READ_VAR y ADDM para 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.
En esta figura se muestra la declaración y el uso de la función READ_VAR: