Modbus_Comm_Load: Kommunikationsmodul für Modbus konfigurieren (S7-1200, S7-1500) - STEP 7

MODBUS (RTU) (S7-1200, S7-1500)

ft:publication_title
MODBUS (RTU) (S7-1200, S7-1500)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
de-DE
Modbus_Comm_Load: Kommunikationsmodul für Modbus konfigurieren

Hinweis

Einsatz mit CM1241

Der Einsatz dieser Anweisung mit einem CM1241 ist erst ab einem Firmware-Stand V2.1 des Moduls möglich.

Beschreibung

Die Anweisung Modbus_Comm_Load konfiguriert ein Kommunikationsmodul für die Kommunikation über das Modbus-RTU-Protokoll). Wenn Sie die Anweisung Modbus_Comm_Load in Ihr Programm einfügen, wird automatisch ein Instanz-Datenbaustein zugewiesen.

Die Konfigurationsänderungen von Modbus_Comm_Load werden nicht in der CPU sondern auf dem CM gespeichert. Bei Spannungswiederkehr und Ziehen/Stecken wird das CM mit den in der Gerätekonfiguration gespeicherten Daten parametriert. In diesen Fällen muss die Anweisung Modbus_Comm_Load erneut aufgerufen werden.

Parameter

Parameter

Deklaration

Datentyp

Standard

Beschreibung

S7-
1200/1500

S7-
300/400/
WinAC

REQ

IN

Bool

FALSE

Startet die Anweisung bei steigender Flanke dieses Eingangs.

PORT

IN

Port

Word

0

Spezifiziert das Kommunikationsmodul, über das kommuniziert wird:

  • für S7-1500/S7-1200: "HW-Kennung" aus der Gerätekonfiguration.
    Der symbolische Name des Ports ist im Register "Systemkonstanten" der PLC-Variablentabelle zugewiesen und kann vor dort übernommen werden.

  • für S7-300/S7-400: “Eingangsadresse“ aus der Gerätekonfiguration.
    In den Systemen S7-300/400/WinAC wird dem Parameter PORT die in der Hardware-Konfiguration vergebene Eingangsadresse zugewiesen.

BAUD

IN

UDInt

DInt

9600

Auswahl der Datenübertragungsgeschwindigkeit

Zulässige Werte sind: 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 76800, 115200 bit/s. Für das Modul mit der Artikelnummer 6ES7541-1AB01-0AB0 ist zusätzlich der Wert 250000 bit/s zulässig.

PARITY

IN

UInt

Word

0

Auswahl der Parität:

  • 0 – Keine

  • 1 – Ungerade

  • 2 – Gerade

FLOW_CTRL

IN

UInt

Word

0

Auswahl der Flusskontrolle:

  • 0 – (Standard) Keine Flusskontrolle

  • 1 – Hardware-Flusskontrolle mit RTS immer EIN (gilt nicht bei RS422/485-CMs)

  • 2 – Hardware-Flusskontrolle mit RTS geschaltet (gilt nicht bei RS422/485-CMs)

RTS_ON_DLY

IN

UInt

Word

0

Auswahl RTS-Einschaltverzögerung:

  • 0 – Keine Verzögerung von "RTS aktiv", bis das erste Zeichen des Telegramms gesendet wird.

  • 1 bis 65535 – Verzögerung in Millisekunden von "RTS aktiv", bis das erste Zeichen des Telegramms gesendet wird (gilt nicht bei RS422/485-CMs). RTS-Verzögerungen müssen unabhängig von der Auswahl FLOW_CTRL angewendet werden.

RTS_OFF_DLY

IN

UInt

Word

0

Auswahl RTS-Ausschaltverzögerung:

  • 0 – Keine Verzögerung nach der Übertragung des letzten Zeichens bis "RTS inaktiv"

  • 1 bis 65535 – Verzögerung in Millisekunden von der Übertragung des letzten Zeichens bis "RTS inaktiv" (gilt nicht bei RS422/485-Ports). RTS-Verzögerungen müssen unabhängig von der Auswahl FLOW_CTRL angewendet werden.

RESP_TO

IN

UInt

Word

1000

Antwort-Timeout:

5 ms bis 65535 ms - Zeit in Millisekunden, die Modbus_Master auf eine Antwort vom Slave wartet. Wenn der Slave während dieses Zeitraums nicht antwortet, wiederholt Modbus_Master die Anforderung oder beendet die Anforderung mit einem Fehler, wenn die angegebene Anzahl von Wiederholungen (siehe unten, Parameter RETRIES) gesendet wurde.

MB_DB

IN/OUT

MB_BASE

Ein Verweis auf den Instanz-Datenbaustein der Anweisungen Modbus_Master oder Modbus_Slave.

Der Parameter MB_DB muss mit dem (statischen und daher an der Anweisung unsichtbaren) Parameter MB_DB der Anweisung Modbus_Master oder Modbus_Slave verschaltet werden.

COM_RST

IN/OUT

---

Bool

FALSE

Initialisierung der Anweisung Modbus_Comm_Load

Mit TRUE wird die Anweisung initialisiert. Anschließend wird COM_RST von der Anweisung wieder auf FALSE gesetzt.

Hinweis:
Der Parameter ist nur für S7-300/400-Anweisungen verfügbar.

DONE

OUT

Bool

FALSE

Das Bit DONE ist einen Zyklus lang TRUE, nachdem die letzte Anforderung fehlerfrei ausgeführt wurde.

ERROR

OUT

Bool

FALSE

Das Bit ERROR ist einen Zyklus lang TRUE, nachdem die letzte Anforderung mit Fehler beendet wurde. Der Fehlercode im Parameter STATUS ist nur in dem einen Zyklus gültig, in dem ERROR = TRUE ist.

STATUS

OUT

Word

16#7000

Fehlercode (siehe Fehlermeldungen)

Modbus_Comm_Load wird ausgeführt, um einen Port für das Modbus-RTU-Protokoll zu konfigurieren. Nachdem ein Port für das Modbus-RTU-Protokoll konfiguriert ist, kann er nur von den Anweisungen Modbus_Master oder Modbus_Slave verwendet werden.

Für die Konfiguration jedes Kommunikationsports, der für die Modbus-Kommunikation eingesetzt wird, muss eine Ausführung von Modbus_Comm_Load genutzt werden. Sie müssen jedem Port, den Sie nutzen, einen eindeutigen Instanz-DB Modbus_Comm_Load zuweisen. Führen Sie Modbus_Comm_Load nur dann erneut aus, wenn Kommunikationsparameter wie Datenübertragungsgeschwindigkeit oder Parität geändert werden müssen sowie ggf. nach Netzwiederkehr.

Wenn Sie z. B. Modbus_Master oder Modbus_Slave in Ihr Programm einfügen, wird der Anweisung ein Instanz-Datenbaustein zugewiesen. Sie müssen den Parameter MB_DB der Anweisung Modbus_Comm_Load mit dem Parameter MB_DB der Anweisung Modbus_Master bzw. Modbus_Slave verschalten.

Modbus_Comm_Load Datenbausteinvariablen

Die folgende Tabelle zeigt die öffentlichen statischen Variablen im Instanz-DB von Modbus_Comm_Load, die in Ihrem Programm verwendet werden können.

Statische Variablen im Instanz-DB

Variable

Datentyp

Standard

Beschreibung

 

S7-
1200/1500

S7-
300/400/
WinAC

   

ICHAR_GAP

Word

0

Maximale Zeichenverzugszeit zwischen den Zeichen. Dieser Parameter wird in Millisekunden angegeben und dient dazu, den erwarteten Zeitraum zwischen den empfangenen Zeichen zu erhöhen. Die entsprechende Anzahl Bitzeiten für diesen Parameter wird zum Modbus-Standardwert von 35 Bitzeiten (3,5 Zeichenzeiten) addiert.

RETRIES

Word

2

Anzahl der Wiederholungsversuche, die der Master durchführt, bevor der Fehlercode 0x80C8 für "Keine Antwort" zurückgegeben wird.

EN_SUPPLY_VOLT

Bool

0

Diagnose für fehlende Versorgungsspannung L+ einschalten

MODE

USInt

Byte

0

Betriebsart

Zulässige Betriebsarten sind:

  • 0 = Vollduplex (RS232)

  • 1 = Vollduplex (RS422) Vierdraht-Betrieb (Punkt-zu-Punkt)

  • 2 = Vollduplex (RS422) Vierdraht-Betrieb (Mehrpunkt Master, CM PtP (ET 200SP))

  • 3 = Vollduplex (RS422) Vierdraht-Betrieb (Mehrpunkt Slave, CM PtP (ET 200SP))

  • 4 = Halbduplex (RS485) Zweidraht-Betrieb 1)

LINE_PRE

USInt

Byte

0

Vorbelegung der Empfangsleitung

Zulässige Vorbelegungen sind:

  • 0 = "Keine" Vorbelegung 1)

  • 1 = Signal R(A)=5V, Signal R(B)=0 V (Break-Erkennung):
    Bei dieser Vorbelegung ist Break-Erkennung möglich.
    Nur auswählbar bei: "Vollduplex (RS422) Vierdraht-Betrieb (Punkt-zu-Punkt-Kopplung)" und "Vollduplex (RS422) Vierdraht-Betrieb (Mehrpunkt Slave)".

  • 2 = Signal R(A)=0 V, Signal R(B)=5 V:
    Diese Vorbelegung entspricht dem Ruhezustand (kein Sendevorgang aktiv). Bei dieser Vorbelegung ist keine Break-Erkennung möglich.

BRK_DET

USInt

Byte

0

Break-Erkennung

Zulässig sind:

  • 0 = Break-Erkennung deaktiviert

  • 1 = Break-Erkennung aktiviert

EN_DIAG_ALARM

Bool

0

Diagnosemeldung aktivieren:

  • 0 - nicht aktiviert

  • 1 - aktiviert

STOP_BITS

USINT

Byte

1

Anzahl Stopp-Bits;

  • 1 = 1 Stopp-Bit,

  • 2 = 2 Stopp-Bits,

  • 0, 3 bis 255 = reserviert

Anweisungsversionen

Die Version 3.1 ist funktional identisch zur Version 3.0 und wurde aufgrund interner Maßnahmen erhöht.