Skip to main content

Funktionsbaustein: ModbusRequest

Bibliothek: IoDrvModbusTCP

Mit diesem Funktionsbaustein können Sie, zusätzlich zu den in der Registerkarte Modbus Server-Kanal vordefinierten Modbus-Kommandos, in der Applikation dynamisch weitere Kommandos ausführen. Für diese programmatisch erzeugten Kommandos gibt es allerdings kein I/O-Mapping sondern nur Ein-/Ausgangsdatenbereiche in Form von ARRAY OF BYTE bzw. ARRAY OF WORD.

Tabelle 13. Eingänge (VAR_INPUT)

Name

Datentyp

Initialwert

Beschreibung

Slave

ModbusTCPSlave

xExecute

BOOL

Steigende Flanke: Die Aktion startet

Fallende Flanke: Die Ausgänge werden zurückgesetzt wenn eine fallende Flanke auftritt bevor der Funktionsbaustein die Aktion beendet hat. Die Ausgänge verhalten sich wie üblich und werden nur zurückgesetzt, wenn die Aktion beendet ist oder abgebrochen (xAbort) wurde oder im Falle eines Fehlers. In diesem Fall stehen die entsprechenden Ausgabewerte (xDone, xError, iError) für genau einen Zyklus an den Ausgängen an.

xAbort

BOOL

TRUE: Die Aktion wird sofort gestoppt und alle Ausgänge werden auf ihren Initialisierungswert gesetzt.

usiUnitID

UINT

16#FF

Die Unit-ID wird nur für die Weiterleitung (Gateway) auf eine Modbus Serial Bus verwendet.

Bei TCP/IP wird der MODBUS-Server über seine IP-Adresse adressiert. Der MODBUS Unit-ID wird in diesem Fall nicht verwendet (Wert 0xFF muss verwendet werden).

Bei serieller Verbindung werden die Modbus-Geräte mit Unit-IDs von 1 to 247 adressiert, 0 wird für Broadcast-Adressen verwendet.

ModbusCommand

ModbusCommand

Der Modbus-Befehl der ausgeführt wird. Funktionsbausteine für Bit- und Word-Zugriff werden unterstützt.

pSendData

POINTER TO BYTE

Pointer auf einen Puffer mit den Daten, die zum Server gesendet werden.

Für den Registerzugriff ist der Puffer vom Typ Array[0..ModbusCommand.uiWriteLen - 1] OF WORD. Für den Bit-Zugriff ist der Puffer vom Typ ARRAY[0..ModbusCommand.uiWriteLen / 8] OF BYTE.

pRecvData

POINTER TO BYTE

Pointer auf einen Puffer, in dem die Daten ,die vom Server empfangen wurden, geschrieben werden.

Für den Registerzugriff ist der Puffer vom Typ ARRAY[0..ModbusCommand.uiReadLen - 1] OF WORD. Für den Bit-Zugriff ist der Puffer vom Typ ARRAY[0..ModbusCommand.uiReadLen / 8] OF BYTE.



Tabelle 14. Ausgänge (VAR_OUTPUT)

Name

Datentyp

Initialwert

Beschreibung

xDone

BOOL

FALSE

Ist TRUE wenn eine Anfrage erfolgreich beendet wurde.

xBusy

BOOL

FALSE

Ist TRUE solange die Anfrage in Bearbeitung ist.

xError

BOOL

FALSE

Ist TRUE wenn eine Anfrage mit Fehler beendet wurde .

xAborted

BOOL

FALSE

Ist TRUE wenn die Anfrage durch den Benutzer abgebrochen wurde

ModbusError

MB_ErrorCodes

Aktueller Fehler, definiert in der Enumeration MB_ErrorCodes.