Skip to main content

Funktionsbaustein: ModbusServer

Bibliothek: ModbusTCP Server

Der Funktionsbaustein verarbeitet Anfragen von Modbus TCP, wodurch bis zu 16 parallele Client-Verbindungen verarbeitet werden können. Modbus-Anfragen arbeiten auf Datenbereichen, die die Input-Register und die Holding-Register abbilden.

Die folgenden Modbus-Funktionscodes werden unterstützt:

  • 0x01 Read Coils

  • 0x02 Read Discrete Inputs

  • 0x03 Read Holding Registers

  • 0x04 Read Input Registers

  • 0x05 Write Single Coil

  • 0x06 Write Single Register

  • 0x0F Write Multiple Coils

  • 0x10 Write Multiple Registers

  • 0x17 Read/Write Multiple Registers

Der ModbusServer-Funktionsbaustein benutzt die Parameter, die in der Registerkarte Geräteeditor des Modbus TCP-Servers konfiguriert wurden.

Tabelle 27. Eingänge (VAR_INPUT)

Name

Datentyp

Initialwert

Beschreibung

wPort

WORD

502

Server-Port (TCP/IP-Protokollstack) 502 ist Modbus-Standard

pInputData

POINTER TO WORD

Pointer auf  WORD, zeigt auf das Abbild des Modbus-Eingangsregisters

uiInputDataSize

UINT

1024

Länge des Arrays der Eingangsdaten (WORDs pro Register): Standard: 1024

pOutputData

POINTER TO WORD

Pointer auf WORD, zeigt auf das Abbild des Modbus-Holding-Registers

uiOutputDataSize

UINT

Länge der Arrays der Ausgangsdaten (WORDs pro Register)

tTimeout

UDINT

Zeitüberschreitung in ms. Falls sie nicht 0 ist und kein Modbus-Schreibfehler bis zum Timeout aufgetreten ist, werden die Ausgangsdaten auf 0 gesetzt.

xEnable

BOOL

FALSE

Flag zum Starten der Abarbeitung der Anfrage

xReset

BOOL

FALSE

Neustart der normalen Kommunikation mit den Servern und Rücksetzen der Status-Words und des Fehler-Bits bei steigender Flanke.

InterfaceName

WSTRING(255)

Name der Ethernet-Schnittstelle (optional). Wenn angegeben, bindet sich der Modbus-Server an die IP-Adresse dieser Schnittstelle.



Tabelle 28. Ausgänge (VAR_OUTPUT)

Name

Datentyp

Initialwert

Beschreibung

xBusy

BOOL

FALSE

Ist TRUE solange die Anfrage in Bearbeitung ist

xError

BOOL

FALSE

Information über gefundenen Fehler

byClientConnections

BYTE

0

Anzahl der Verbindungen

xTimeout

BOOL

Timeout ist abgelaufen. Holding-Register und Coils werden auf Null gesetzt.