ModbusRtuSlave_PcCom

ModbusRtuSlave_PcCom 1:

Der Funktionsbaustein ModbusRTUslave_PcCom realisiert einen Modbus-Slave, der über eine serielle PC-Schnittstelle (COM-Port) kommuniziert. Der Baustein verhält sich passiv, bis er von einem angeschlossenen Modbus-Master Telegramme empfängt.

Ein Beispielprogramm verdeutlicht die Funktionsweise.

Zur Kommunikation über eine serielle Busklemme KL6001, KL6011 oder KL6021 steht der Funktionsbaustein ModbusRTUslave_KL6x5B zur Verfügung.

VAR_INPUT

 
VAR_INPUT
UnitID : UINT;
AdrInputs : POINTER TO BYTE; (* Pointer to the Modbus input area *)
SizeInputBytes : UINT;
AdrOutputs : POINTER TO BYTE; (* Pointer to the Modbus output area *)
SizeOutputBytes : UINT;
AdrMemory : POINTER TO BYTE; (* Pointer to the Modbus memory area *)
SizeMemoryBytes : UINT;
END_VAR

UnitID: Modbus Stationsadresse (1..247). Der Modbus-Slave antwortet nur, wenn er Telegramme mit seiner eigenen Stationsadresse empfängt. Optional können hier auch Sammeladressen eingestellt werden um auf beliebige Anfragen zu antworten. Die Adresse 0 ist für Broadcast-Telegramme reserviert und somit keine gültige Stationsadresse.

AdrInputs: Startadresse des Modbus-Input-Bereiches. Der Datenbereich wird üblicherweise als SPS-Array deklariert und die Adresse kann mit ADR(Input-Variable) berechnet werden.

SizeInputBytes: Größe des Modbus-Input-Bereiches in Bytes. Die Größe kann mit SIZEOF(Input-Variable) berechnet werden.

AdrOutputs : Startadresse des Modbus-Output-Bereiches. Der Datenbereich wird üblicherweise als SPS-Array deklariert und die Adresse kann mit ADR(Output-Variable) berechnet werden.

SizeOutputBytes: Größe des Modbus-Output-Bereiches in Bytes. Die Größe kann mit SIZEOF(Output-Variable) berechnet werden.

AdrMemory : Startadresse des Modbus-Memory-Bereiches. Der Datenbereich wird üblicherweise als SPS-Array deklariert und die Adresse kann mit ADR(Memory-Variable) berechnet werden.

SizeMemoryBytes : Größe des Modbus-Memory-Bereiches in Bytes. Die Größe kann mit SIZEOF(Memory-Variable) berechnet werden.

VAR_OUTPUT

 
VAR_OUTPUT
ErrorId : Modbus_ERRORS;
END_VAR

ErrorId: Zeigt eine Fehlernummer im Falle einer gestörten oder fehlerhaften Kommunikation an.

Verbindung zur Hardware

Die zur Verknüpfung mit dem Kommunikationsport notwendigen Datenstrukturen sind im Funktionsbaustein enthalten. Sie werden im TwinCAT System Manager angezeigt nachdem das SPS-Programm eingebunden ist und können dort mit einem COM-Port verbunden werden. Die Vorgehensweise ist analog zur Beschreibung im Kapitel Serielle PC-Schnittstelle

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT ab V2.8

PC (i386), CX1000

ModbusRTU.lib