ModbusRtuSlave_Generic

ModbusRtuSlave_Generic 1:

Der Funktionsbaustein ModbusRtuSlave_Generic realisiert einen Modbus-Slave, der über verschiedenste serielle Schnittstellen (COM-Port, virtueller COM-Port, EtherCAT-Klemmen, ...) kommuniziert.

Aufgrund der Hardware-unabhängigen Eigenschaft des ModbusRtuSlave_Generic ist die Verwendung etwas aufwendiger als bei den Hardware-abhängigen Funktionsbausteinen ModbusRtuSlave_PcCOM, ModbusRtuSlave_KL6x22B, ModbusRtuSlave_ KL6x5B. Alle Funktionsbausteinen bieten die gleiche ModbusRTU Funktionalität. Allein der ModbusRtuSlave_Generic ermöglicht jedoch die Verwendung von virtuellen COM-Ports.

Der Baustein verhält sich passiv, bis er von einem angeschlossenen Modbus-Master Telegramme empfängt. Ein Beispielprogramm verdeutlicht die Funktionsweise.

ModbusRtuSlave_Generic 2:

Verbindung zur Hardware mittels TF6340 TC3 Serial Communication (Lizenz notwendig)

Die zur Verknüpfung mit dem Kommunikations-Port notwendigen Datenstrukturen müssen separat instanziiert werden. Die an diesem Funktionsbaustein vorhandenen Datenstrukturen vom Typ ComBuffer sind Datenpuffer zur Entkopplung der Hardware-abhängigen Hintergrundkommunikation. Diese Hintergrundkommunikation muss über entsprechende Funktionsbausteine (SerialLineControl, SerialLineControlADS) der Tc2_SerialCom SPS Bibliothek realisiert werden, wozu diese SPS Bibliothek zuerst im Programm eingebunden werden muss. Hiermit wird auch die Lizenz für TF6340 TC3 Serial Communication zusätzlich notwendig.

ModbusRtuSlave_Generic 3: Eingänge

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

Name

Typ

Beschreibung

UnitID

UINT

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

BYTE

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

SizeInputBytes

UINT

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

AdrOutputs

BYTE

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

SizeOutputBytes

UINT

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

AdrMemory

BYTE

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

SizeMemoryBytes

UINT

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

ModbusRtuSlave_Generic 4: Ein-/Ausgänge

VAR_IN_OUT
    RxBuffer    : ComBuffer;
    TxBuffer    : ComBuffer;
END_VAR

Name

Typ

Beschreibung

TxBuffer

ComBuffer (Tc2_SerialCom SPS Bibliothek)

Puffer mit Sendedaten für die verwendete serielle Hardware. Dieser Datenpuffer wird vom Anwender niemals direkt beschrieben oder gelesen, sondern dient nur als Zwischenspeicher für die Kommunikationsbausteine. Die Hintergrundkommunikation muss über entsprechende Funktionsbausteine der Tc2_SerialCom SPS Bibliothek realisiert werden.

RxBuffer

ComBuffer (Tc2_SerialCom SPS Bibliothek)

Puffer in dem die Empfangsdaten abgelegt werden. Dieser Datenpuffer wird vom Anwender niemals direkt beschrieben oder gelesen, sondern dient nur als Zwischenspeicher für die Kommunikationsbausteine. Die Hintergrundkommunikation muss über entsprechende Funktionsbausteine der Tc2_SerialCom SPS Bibliothek realisiert werden.

ModbusRtuSlave_Generic 5: Ausgänge

VAR_OUTPUT
    ErrorId : MODBUS_ERRORS;
END_VAR

Name

Typ

Beschreibung

ErrorId

MODBUS_ERRORS

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

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.1.4024.0

PC oder CX (x86, x64, ARM)

Tc2_ModbusRTU (>= v3.5.6.0)