Bloque que permite monitorear diversos estados del maestro de la red Modbus RTU.
Representación Ladder

Estructura del Bloque
Tipo de Variable |
Nombre |
Tipo de Dato |
Descripción |
VAR_INPUT |
Execute |
BOOL |
Habilitación del bloque |
DisableComm |
BOOL |
Deshabilita la comunicación Modbus RTU |
|
VAR_OUTPUT |
Done |
BOOL |
Habilitación de salida |
CommDisabled |
BOOL |
Señalizador de comunicación deshabilitada |
|
TxCounter |
WORD UINT |
Contador de solicitudes enviadas |
|
RxCounter |
WORD UINT |
Contador de telegramas recibidos |
|
NoAnswerCounter |
WORD UINT |
Contador de solicitudes no respondidas |
|
ErrorResponseCounter |
WORD UINT |
Contador de respuestas recibidas con información de error |
|
LastErrorSlaveAddress |
BYTE USINT |
Dirección del esclavo no qual foi detectado o último erro de comunicação |
|
LastErrorResult |
BYTE USINT |
Resultado de operación del último error de comunicación recibido (0 – Sin error) (4 – Timeout de respuesta) (5 – Esclavo retornó error) |
|
LastErrorCode |
BYTE USINT |
Código del último error de comunicación recibido |
Operación
Este bloque permanece activo mientras Execute está en nivel TRUE, actualizando sus salidas de acuerdo con el monitoreo del maestro y con las solicitudes de entrada. Cuando Execute recibe nivel FALSE, las entradas son ignoradas y las salidas son reseteadas. La salida Done recibe nivel TRUE cuando Execute tenga nivel TRUE y el bloque ya haya finalizado su ejecución.
Un nivel TRUE en DisableComm deshabilita la comunicación Modbus RTU y resetea los contadores y marcadores de status del maestro. Estos marcadores y contadores son exhibidos en las salidas del bloque, cada uno conteniendo un dato correspondiendo a su descripción. Sus valores también son reseteados en el apagado del maestro.
Diagrama de Flujo del Bloque

Ejemplo en Ladder

El ejemplo de arriba solicita datos de status del maestro de la red Modbus RTU, además de permitir deshabilitar la comunicación a través de DISABLE. Finalizado exitosamente el bloque, será activada la salida Done.
Ejemplo en ST
El siguiente ejemplo muestra las instrucciones para aplicar el ejemplo anterior en el lenguaje ST.
VAR DISABLE, MB_DISABLE : BOOL; COUNT_TX, COUNT_RX, COUNT_NOANSWER, COUNT_ERROR : WORD; LE_ADDRESS, LE_RESULT, LE_CODE : USINT; END_VAR
DO1 := FB_MB_MasterControlStatus( DisableComm:=DISABLE, Execute:=DI1, CommDisabled=>MB_DISABLE, TxCounter=>COUNT_TX, RxCounter=>COUNT_RX, NoAnswerCounter=>COUNT_NOANSWER, ErrorResponseCounter=>COUNT_ERROR, LastErrorSlaveAddress=>LE_ADDRESS, LastErrorResult=>LE_RESULT, LastErrorCode=>LE_CODE);
|
|---|