Skip to main content

Bloque de función: ModbusRequest

Biblioteca: IoDrvModbusTCP

Además de los comandos Modbus predefinidos definidos en el Canal servidor Modbus Pestaña, este bloque de función permite ejecutar dinámicamente comandos adicionales en la aplicación. Sin embargo, para estos comandos creados programáticamente, no hay asignación de E/S, sino solo rangos de datos de entrada/salida de tipo ARRAY OF BYTE o ARRAY OF WORD.

tabla 13. Entradas (VAR_INPUT)

Nombre

Tipo de datos

Valor inicial

Descripción

Slave

ModbusTCPSlave

xExecute

BOOL

Borde ascendente: comienza la acción.

Flanco descendente: Las salidas se restablecen cuando se produce un flanco descendente antes de que el bloque de función finalice la acción. Las salidas funcionan normalmente y se restablecen solo si la acción finaliza o se cancela.xAbort), o si se ha producido un error. En este caso, los valores de salida correspondientes (xDone, xError, iError ) existen en las salidas durante exactamente un ciclo.

xAbort

BOOL

TRUE: La acción se cancela inmediatamente y todas las salidas se restablecen a sus valores iniciales.

usiUnitID

UINT

16#FF

El ID de la unidad solo se utiliza para reenvío (puerta de enlace) a un bus serie Modbus.

Para TCP/IP, el servidor MODBUS se direcciona mediante la dirección IP. En este caso, no se utiliza el ID de la unidad MODBUS (se debe usar el valor 0xFF).

Para una conexión en serie, los dispositivos Modbus se direccionan con identificadores de unidad de 1 a 247 (se utiliza 0 para direcciones de transmisión).

ModbusCommand

ModbusCommand

Comando Modbus que se ejecutará. Se admiten bloques de función para acceso a bits y palabras.

pSendData

POINTER TO BYTE

Puntero a un buffer con datos que se envía al servidor.

Para el acceso al registro, el búfer es de tipo Array[0..ModbusCommand.uiWriteLen - 1] OF WORD Para el acceso a bits, el búfer es de tipo ARRAY[0..ModbusCommand.uiWriteLen / 8] OF BYTE.

pRecvData

POINTER TO BYTE

Puntero a un buffer donde se escriben los datos recibidos por el servidor.

Para el acceso al registro, el búfer es de tipo ARRAY[0..ModbusCommand.uiReadLen - 1] OF WORD Para el acceso a bits, el búfer es de tipo ARRAY[0..ModbusCommand.uiReadLen / 8] OF BYTE.



tabla 14. Salidas (VAR_OUTPUT)

Nombre

Tipo de datos

Valor inicial

Descripción

xDone

BOOL

FALSE

TRUE Si una solicitud finalizó con éxito

xBusy

BOOL

FALSE

TRUE mientras se procesa la solicitud

xError

BOOL

FALSE

TRUE Si una solicitud finalizó con errores

xAborted

BOOL

FALSE

TRUE cuando la solicitud ha sido cancelada por el usuario

ModbusError

MB_ErrorCodes

Error actual; definido en el MB_ErrorCodes enumeración.