Skip to main content

Bloc fonction : ModbusRequest

Bibliothèque: IoDrvModbusTCP

En plus des commandes Modbus prédéfinies définies dans l'onglet Canal du serveur Modbus, ce bloc fonction permet d'exécuter dynamiquement des commandes supplémentaires dans l'application. Pour ces commandes créées par programme, CODESYS ne fournit pas de mappage d'E/S mais des plages de données d'entrée/sortie de type ARRAY OF BYTE ou ARRAY OF WORD.

Tableau 13. Entrées (VAR_INPUT)

Nom

Type de données

Valeur initiale

La description

Slave

Modbus TCP slave

xExecute

BOOL

Front montant : L'action démarre.

Front descendant : Les sorties sont réinitialisées lorsqu'un front descendant se produit avant que le bloc fonction n'ait terminé l'action. Les sorties se comportent comme d'habitude et ne sont réinitialisées que si l'action est terminée ou a été abandonnée (xAbort), ou si une erreur s'est produite. Dans ce cas, les valeurs de sortie correspondantes (xDone, xError, iError) existent aux sorties pendant exactement un cycle.

xAbort

BOOL

TRUE : l'action est immédiatement interrompue et toutes les sorties sont définies sur leurs valeurs initiales.

usiUnitID

UINT

16#FF

L'ID d'unité n'est utilisé que pour le transfert (passerelle) vers un bus série Modbus.

Pour TCP/IP, le serveur MODBUS est adressé au moyen de l'adresse IP. Dans ce cas, l'ID d'unité MODBUS n'est pas utilisé (la valeur 0xFF doit être utilisée).

Pour une connexion série, les appareils Modbus sont adressés avec des ID d'unité de 1 à 247 (0 est utilisé pour les adresses de diffusion).

ModbusCommand

ModbusCommand

La commande Modbus à exécuter. Les blocs fonctionnels pour l'accès aux bits et aux mots sont pris en charge.

pSendData

POINTER TO BYTE

Pointeur vers un tampon contenant des données envoyées au serveur.

Pour l'accès au registre, le tampon est de type Array[0..ModbusCommand.uiWriteLen - 1] OF WORD. Pour l'accès aux bits, le tampon est de type ARRAY[0..ModbusCommand.uiWriteLen / 8] OF BYTE.

pRecvData

POINTER TO BYTE

Pointeur vers un tampon où sont écrites les données reçues par le serveur.

Pour l'accès au registre, le tampon est de type ARRAY[0..ModbusCommand.uiReadLen - 1] OF WORD. Pour l'accès aux bits, le tampon est de type ARRAY[0..ModbusCommand.uiReadLen / 8] OF BYTE.



Tableau 14. Sorties (VAR_OUTPUT)

Nom

Type de données

Valeur initiale

La description

xDone

BOOL

FALSE

TRUE lorsqu'une demande a été terminée avec succès

xBusy

BOOL

FALSE

TRUE tant que la demande est en cours de traitement

xError

BOOL

FALSE

TRUE lorsqu'une requête s'est terminée avec des erreurs

xAborted

BOOL

FALSE

TRUE lorsque la requête a été abandonnée par l'utilisateur

ModbusError

MB_ErrorCodes

Erreur actuelle ; défini dans l'énumération MB_ErrorCodes.