Skip to main content

Bloque de funciones: ModbusRequest

Biblioteca: IoDrvModbusTCP

Además de los comandos Modbus predefinidos definidos en la pestaña Canal del servidor Modbus, este bloque de funciones permite ejecutar dinámicamente comandos adicionales en la aplicación. Para estos comandos creados mediante programación, CODESYS no proporciona una asignación de E/S, sino 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

Modbus TCP slave

xExecute

BOOL

Flanco ascendente: comienza la acción.

Flanco descendente: las salidas se restablecen cuando se produce un flanco descendente antes de que el bloque de funciones haya finalizado la acción. Las salidas se comportan como de costumbre 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

VERDADERO: la acción se cancela inmediatamente y todas las salidas se establecen en sus valores iniciales.

usiUnitID

UINT

16#FF

La ID de la unidad solo se utiliza para el 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 (debe utilizarse el valor 0xFF).

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

ModbusCommand

ModbusCommand

El comando Modbus a ejecutar. Se admiten bloques de funciones para acceso de bits y palabras.

pSendData

POINTER TO BYTE

Puntero a un búfer con datos que se envía al servidor.

Para el acceso al registro, el búfer es del tipo Array[0..ModbusCommand.uiWriteLen - 1] OF WORD. Para el acceso a bits, el búfer es del 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 del tipo ARRAY[0..ModbusCommand.uiReadLen - 1] OF WORD. Para el acceso a bits, el búfer es del tipo ARRAY[0..ModbusCommand.uiReadLen / 8] OF BYTE.



tabla 14. Salidas (VAR_OUTPUT)

Nombre

Tipo de datos

Valor inicial

Descripción

xDone

BOOL

FALSE

VERDADERO cuando una solicitud ha finalizado con éxito

xBusy

BOOL

FALSE

TRUE siempre que se esté procesando la solicitud

xError

BOOL

FALSE

TRUE cuando una solicitud ha finalizado con errores

xAborted

BOOL

FALSE

TRUE cuando la solicitud ha sido abortada por el usuario

ModbusError

MB_ErrorCodes

Error actual; definido en la enumeración MB_ErrorCodes.