Modbus (RTU) für die Siemens 1200PLC

kostenlosKostenloses technisches Material

Dieser Inhalt ist direkt lesbar und eignet sich für das Grundlagenlernen und die Suche.

Modbus (RTU) für die Siemens 1200PLC
Modbus verfügt über zwei serielle Übertragungsmodi: ASCII und RTU. Modbus ist eine einzelne Master-Slave - Kommunikationsmodus, Modbus-Netzwerk kann nur eine Master-Station existieren, Master-Station im Modbus-Netzwerk keine Adresse, jede Slave-Station muss eine eindeutige Adresse haben, die Adressbereich der Slave-Station ist 0 - 247, wobei 0 die Broadcast-Adresse ist, die tatsächliche Adressbereich der Slave-Station ist 1 - 247. Modbus RTU Kommunikation in der Art von Master-Slave Datenübertragung, Modbus RTU Master-Station ist die aktive Partei im Prozess der Übertragung, das heißt, Master-Station sendet Daten-Anforderung Nachricht an die Slave-Station, Modbus RTU Slave-Station Rückkehr Antwort Nachricht. S7-1200 Die folgenden Module unterstützen die Modbus RTU-Kommunikation:
Kommunikationsmodul / Kommunikationsplatte
Bestellnummer
CM1241 RS232
6ES7 241-1AH32-0XB0
CM1241 RS485
6ES7 241-1CH30-0XB0
CM1241 RS422 / 485
6ES7 241 - 1CH32 - 0XB0
CB 1241 RS485
6ES7 241 - 1CH30 - 1XB0
Achtung 1. Wenn Sie das Kommunikationsmodul CM1241 RS232 als Modbus RTU-Master - Station verwenden, können Sie nur mit einer Slave-Station kommunizieren. 2. Mit dem Kommunikationsmodul CM1241RS485 als Modbus RTU-Master kann die Kommunikation mit bis zu 32 Slaven-Stationen erfolgen. 3. Bei der Verwendung des Kommunikationsplatts CB1241RS485 muss die CPU-Firmware V2.0 oder höher und die Software, die verwendet wird, die über STEP7 Basic V11 oder STEP7 Professional V11 verfügt. Mit der kontinuierlichen Aktualisierung der TIA PORATL-Software und der S7 - 1200 CPU-Firmware wurden auch verschiedene Versionen der S7 - 1200 Modbus-RTU - Anweisungen erhältlich. Der Benutzer muss sich für die Modbus-RTU - Kommunikation mit den erforderlichen S7-1200 - Modbus-RTU - Anweisungen entsprechend der verwendeten Software und Hardware richtig entscheiden. Die Software -, Hardware - und Anweisungsversionen werden im Folgenden beschrieben. S7 - 1200 Modbus RTU-Befehl in Software-Schritt 7 V11 Beginnend mit der Software STEP7 V11 können die Befehle "MB_COMM_LOAD" und "MB_MASTER" oder "MB_SLAVE" direkt unter "Befehl" → "Kommunikationsprozessor" → "MODBUS" aufgerufen werden, wie in Abbildung 1 dargestellt:
Modbus (RTU) für die Siemens 1200PLCAbbildung
Abbildung 1 Modbus RTU-Befehl Die Modbus RTU-Befehl ist in zwei Versionen verfügbar: V1 und V2. Version V1 wurde ursprünglich in STEP 7 Basic V10.5 und Version V2 in STEP 7 Basic / Professional V11 erhältlich. S7 - 1200 Modbus RTU-Befehl in der SoftwareSTEP7 V13 SP1 In der Software Version TIA V13 SP1 sind zwei Versionen der Modbus RTU-Befehle zur Verfügung gestellt. Wie unten in Abbildung 2 gezeigt: Frühere Versionen der Modbus RTU-Befehl (Abbildung 2). Modbus-RTU - Kommunikation kann nur über das CM1241 - Kommunikationsmodul oder die CB1241 - Kommunikationsplatte durchgeführt werden. Neue Version der Modbus-RTU - Anweisung (Abbildung 2). Modbus-RTU - Funktionen in MODBUS (RTU) V3.0 erweitert die Funktionen der Modbus-RTU, die Anweisung unterstützt neben CM1241 Kommunikationsmodul, CB1241 Kommunikations-Board, auch die Implementierung der Modbus-RTU - Kommunikation mit dem PTP-Kommunikationsmodul auf dem PROFINET oder PROFIBUS verteilten I / O-Rack. Hinweis: Einschränkungen für die Verwendung der neuen Modbus-RTU - Anweisungen Neue Modbus-RTU - Anweisungen Für die Modbus-RTU - Kommunikation über das CM1241 - Kommunikationsmodul oder die CB1241 - Kommunikationsplatte müssen folgende Bedingungen erfüllt werden: a. Die Firmware-Version der CPU S7 - 1200 darf nicht älter als V4.1; b. CM1241 Kommunikationsmodul V2.1 oder neuer oder CB1241.
Modbus (RTU) für die Siemens 1200PLCAbbildung1
Bild 2. Zwei Versionen der Modbus-RTU - Anweisungen Häufig gestellte Fragen
Modbus (RTU) für die Siemens 1200PLCAbbildung2
 
Siemens bietet keine vorhandenen Befehle zur Unterstützung des MODBUS-ASCII - Kommunikationsmodus an, und benötigt die Programmierung durch den Benutzer selbst im Free-Port - Modus.
Modbus (RTU) für die Siemens 1200PLCAbbildung3
 
Die Modbus RTU-Befehlversion V2 fügt die Parameter „REQ" und „DONE" zur „MB _ COMM _ LOAD" - Befehl hinzu. Darüber hinaus ermöglicht der "MB _ ADDR" - Parameter der "MB _ MASTER" und "MB _ SLAVE" - Anweisungen nun einen UInt-Wert für die erweiterte Adressierung.
Modbus (RTU) für die Siemens 1200PLCAbbildung4
 
Es ist nicht möglich, sowohl die V1 (V1.x) als auch die V2 (V2.y) - Befehlsversionen im selben CPU-Programm zu verwenden. Modbus-Befehle für Benutzerprogramme müssen dieselbe Hauptversionsnummer haben; einzelne Befehle in einer Hauptversionsgruppe können unterschiedliche Unterversionsnummern haben.
Modbus (RTU) für die Siemens 1200PLCAbbildung5
 
4. Konfigurieren und programmieren Sie das S7-1200 - Kommunikationsmodul CM1241 mit der Befehl "MB_COMM_LOAD", um es auf den Modbus-RTU - Kommunikationsmodus einzurichten. Das S7-1200-Kommunikationsmodul CM1241 kann als Modbus-RTU - Masterstation oder als Modbus-RTU - Slavestation durch den Aufruf der Befehl "MB_MASTER" programmiert werden.
Modbus (RTU) für die Siemens 1200PLCAbbildung6
 
Egal, ob das S7-1200-Kommunikationsmodul CM1241 als Modbus-RTU - Master - oder Slave-Station dient, muss die Befehl "MB_COMM_LOAD" für die Programmierung aufgerufen werden.
Modbus (RTU) für die Siemens 1200PLCAbbildung7
 
6, S7 - 1200 CM1241 / CB1241 Modbus RTU Kommunikation unterstützt zwei Stop-Bits. S7-1200 CM1241 / CB1241 Eigenschaft kann ein Stop-Bit festgelegt werden, aber wenn das Modul für die Modbus-Kommunikation verwendet wird, ist diese Einstellung Stop-Bit ungültig, und es ist notwendig, den Stop-Bit - Wert von 2 im Hintergrund der Modbus_Commload-Befehl Static zu ändern.
ist in Abbildung 3 und 4 dargestellt:
Modbus (RTU) für die Siemens 1200PLCAbbildung8
Abbildung 3. CM1241 Hintergrund der Konfiguration des Stop-Bit - Parameters Modbus_Commload-Befehl Static modifiziert den Stop-Bit - Wert von 2 (Standardwert = 1) in der DB
Modbus (RTU) für die Siemens 1200PLCAbbildung9
Bild 4. Modifizierung des Modbus RTU-Kommunikationsstop - Bits Einführung in die neue Version der Modbus RTU-Befehl In der TIA V13 SP1 - Version-Software sind zwei Versionen der Modbus RTU-Befehl zur Verfügung gestellt:
Modbus (RTU) für die Siemens 1200PLCAbbildung10
Abbildung 1. Zwei Versionen der Modbus-RTU - Anweisungen Frühere Versionen der Modbus-RTU - Anweisung (MODBUS (V2.2) in Abbildung 1) konnten nur über das CM1241 - Kommunikationsmodul oder die CB1241 - Kommunikationsplatte für die Modbus-RTU - Kommunikation bereitstellen. Die neue Version der Modbus-RTU - Anweisung (MODBUS (RTU) V3.0 in Abbildung 1) erweitert die Funktionen der Modbus-RTU und unterstützt neben dem CM1241 - Kommunikationsmodul und der CB1241 - Kommunikationsplatte auch das PTP-Kommunikationsmodul auf einem PROFINET - oder PROFIBUS-Distributed - I / O-Rack die Modbus-RTU - Kommunikation. Die PTP-Module, die von der neuen Version der Modbus-RTU - Anweisung unterstützt werden, sind in Abbildung 2 dargestellt:
Modbus (RTU) für die Siemens 1200PLCAbbildung11
Abbildung 2. Unterstützte PTP-Module Verwendung der neuen Modbus RTU-Befehl Die neue Modbus RTU-Befehl enthält Modbus-RTU - Master - und Slave-Befehl. Dieser Artikel beschreibt die Programmierungsschritte der Master-Slaven - Kommunikation mit der neuen Version von Modbus RTU-Befehl anhand des CPU1217C + CM1241 RS422 / 485 + ET200SP CM-PTP - Moduls. Das CPU-Rack CM1241 RS422 / 485 dient als Modbus-RTU - Slave-Station und das CMPTP-Modul im verteilten Rack ET200SP dient als Modbus-RTU - Master-Station. Das Netzwerkstrukturdiagramm ist wie folgt:
Modbus (RTU) für die Siemens 1200PLCAbbildung12
Abbildung 3. Modubus RTU-Netzwerk - Kommunikationsstruktur Die Hardware und Software sind wie folgt: Die Hardware: 1 CPU1217C (Bestellnummer: 6ES7 217-1AG40 - 0XB0), Firmware-Version V4.1.3 2 CM1241 RS422 / 485 - Modul (Bestellnummer: 6ES7 241-1CH32 - 0XB0), Firmware-Version V2.1 3 24V Stromversorgung PS307 (Bestellnummer: 6ES7307-1KA02 - 0AA0) 4 ET200 SP IM155 - 6PN HF (Bestellnummer: 6ES7155 - 6AU00 - 0CN0) 5 CM PTP-Modul (Bestellnummer: 6ES7137 - 6AA00 - 0BA0) Software: 1 TIA V13 SP1 UP9 Erst, Gerätekonfiguration 1 Konfiguration CM1241 RS422 / 485 Modul Öffnen Sie die Geräteansicht, fügen Sie die S7-1200 CPU hinzu und finden Sie im Hardware-Verzeichnis "Kommunikationsmodul" → "Point-to - Point" → "CM1241 (RS422 / 485)", ziehen Sie dieses Modul auf die linke Seite der CPU, Wie unten in Abbildung 4 gezeigt:
Modbus (RTU) für die Siemens 1200PLCAbbildung13
Abbildung 4 Hinzufügen des CM1241RS422 / 485 - Moduls Hinweis: Das CM1241RS422 / 485 - Modul mit Firmwareversion > = V2.1 unterstützt die neue Version der Modbus-RTU - Befehle. Als nächstes wählen Sie das Modul CM1241 (RS422 / 485) in der "Gerätansicht" mit der Maus, konfigurieren Sie die Hardware-Schnittstellenparameter dieses Moduls in "Eigenschaften" → "Port-Konfiguration", in diesem Beispiel die Übertragungsrate = 9,6 Kbps, Parity = keine Parity, Daten-Bit = 8 - Bit-Zeichen, Stop-Bit = 1 Beispiel. Die Konfiguration des Ports CM1241 ist in Abbildung 5 dargestellt:
Modbus (RTU) für die Siemens 1200PLCAbbildung14
Abbildung 5. CM1241 RS422 / 485 Modul-Port - Konfiguration Schließlich bestätigen Sie die Hardware-Identifier als 269 in "Hardware-Identifier" (dieser Parameter wird in der Programmierung verwendet werden), wie in der folgenden Abbildung 6 gezeigt:
Modbus (RTU) für die Siemens 1200PLCAbbildung15
Abbildung 6. Hardware-Identifier Zusätzlich bietet der S7-1200 auch System - und Taktspeicherfunktionen, die für die nachfolgenden Anweisungen empfohlen werden, zu aktivieren. In der CPU „Eigenschaften" → „Allgemein" → „System und Taktspeicher" aktivieren Sie die System - und Taktspeicher-Funktionen, wie in Abbildung 7 dargestellt.
Modbus (RTU) für die Siemens 1200PLCAbbildung16
Bild 7. System - und Uhrspeicherfunktionen 2 Konfiguration des ET200SP CM-PtP - Moduls
Einfügen Sie eine verteilte ET200SP-Standort ein. Öffnen Sie die Netzwerkansicht und ziehen Sie eine ET200SP-Standort und weisen Sie sie dem entsprechenden IO-Controller (in diesem Fall CPU1217C ist der IO-Controller) zu, wie in Abbildung 8 dargestellt.
Modbus (RTU) für die Siemens 1200PLCAbbildung17
Bild 8. Einfügen der ET200SP-Standorte
b) Konfiguration der ET200SP-Standorte. In der "Gerätansicht" - Umgebung von ET200SP werden Signale, Kommunikationsmodule und Servermodule für die ET200SP-Standorte hinzugefügt, in diesem Fall sind nur das CM PTP-Modul und das Servermodul hinzugefügt. Hinweis: Auf der ET200SP-Website muss das Servermodul konfiguriert werden. Das Servermodul wird zusammen mit dem Schnittstellenmodul beschafft und muss nicht separat gekauft werden. Das ET200SP-Schnittstellenmodul muss ihm eine IP-Adresse und einen Gerätennamen zugewiesen werden. Für detaillierte Schritte zur Konfiguration der verteilten IO von ET200SP lesen Sie den Schnellstart zur Verwendung von ET200SP. Download - Lin ks für den Eins atz des ET 200 SP :https://support.industry.siemens.com/cs/cn/zh/view/78304711 Wählen Sie CM PTP in der ET200SP "Gerätansicht" mit der Maus, konfigurieren Sie die Parameter der Hardware-Schnittstelle dieses Moduls in "Eigenschaften" → "Allgemein" → "Schnittstelle" → "Betriebsmodus", in diesem Beispiel "Betriebsmodus angegeben": "Half-Duplex (RS485) 2 - Draht-Betrieb"; "Erstzustand der Empfangsleitung": "Kein". Wie in der folgenden Abbildung 9 gezeigt:
Modbus (RTU) für die Siemens 1200PLCAbbildung18
Bild 9. CM PTP Betriebsmodus Als nächstes konfigurieren Sie die Portkonfigurationsparameter dieses Moduls in "Eigenschaften" → "Allgemein" → "Schnittstelle" → "Portkonfiguration", in diesem Beispiel setzen Sie "Protokoll": "Freeport / Modbus"; "Port Parameter" Einstellung: Übertragungsrate = 9,6 Kbps, Parity = keine Parity, Datenbit = 8 - Bit-Zeichen, Stop-Bit = 1 Beispiel. Die Konfiguration des Ports ist wie in Abbildung 10 dargestellt:
Modbus (RTU) für die Siemens 1200PLCAbbildung19
Abbildung 10. CM PTP Port Konfiguration Die Hardware-Identifikation des CM PTP-Modules muss schließlich in der "Hardware-Identifikation" bestätigt werden, die in der Programmierung verwendet wird. II. Software-Programmierung 1 Modbus RTU-Hoster - Programmierung Die Modbus-RTU - Master-Programmierung erfordert den Aufruf der Modbus_Comm_Load-Befehl, die das Kommunikationsmodul über das Modbus-RTU - Protokoll konfiguriert, und der Modbus_Master-Befehl, der als Modbus-Master über einen Port kommuniziert werden kann, der durch die Modbus_Comm_Load-Befehl konfiguriert wird, und der MB_DB-Parameter der Modbus_Comm_Load-Befehl muss mit dem (statischen) MB_DB-Parameter der Modbus_Master-Befehl verbunden sein. In diesem Beispiel ist das CM PTP-Modul im verteilten Rack ET200SP als Modbus-RTU - Masterstation, und die entsprechenden Programmierschritte sind wie folgt:
a, fügen Sie eine FC-Funktion in OB1 ein und ziehen Sie die Anweisungen Modbus_Comm_Load und Modbus_Master in die Funktion ein. Wie in Abbildung 11
Modbus (RTU) für die Siemens 1200PLCAbbildung20
abgebildet. Ziehen Sie die Modbus-RTU - Master-Befehl in die Modbus _ Comm _ Load-Befehl, die Bedeutung der Parameter ist wie in Tabelle 1:
Füße
Beschreibung
REQ
Rising Edge Trigger
PORT
Hardware-Identifier für den Kommunikationsport
BAUD
Baudrate Auswahl: 3600,6000, 12000, 2400, 4800, 9600,19200, 38400, 57600, 76800,115200
PARITY
Parity-Test Auswahl: 0 - Keine; 1 - Parity-Test; 2 - Par-Check
FLOW _ CTRL
Flusssteuerung Auswahl: 0 - (Standard) Keine Flusssteuerung
RTS_ON_DLY
RTS-Verzögerung Auswahl: 0 - (Standard)
RTS_OFF_DLY
RTS-Ausgeschaltene Verzögerung Auswahl: 0 - (Standard)
RESP_TO
Response Timeout: Standard = 1000ms. MB _ MASTER Die zulässige Zeit (in Millisekunden) für die Antwort der Slave-Station.
MB_DB
Referenz auf den Hintergrundblock der Modbus_Master - oder Modbus_Slave-Befehl. Der MB _ DB-Parameter muss mit der statischen Variablen MB _ DB-Parameter in der Modbus _ Master - oder Modbus _ Slave-Befehl verbunden sein.
DONE
Wenn die letzte Anforderung ohne Fehler abgeschlossen wurde, wird das DONE-Bit TRUE und bleibt für einen Zeitraum erhalten.
ERROR
Wenn die letzte Anforderung fehlerhaft abgeschlossen wurde, wird das ERROR-Bit TRUE und bleibt für einen Zeitraum erhalten. Der Fehlercode im STATUS-Parameter ist nur für die Periode ERROR = TRUE gültig.
STATUS
Für Portkonfigurationsfehlercodes lesen Sie bitte die Online-Hilfe für die TIA Software oder das Systemhandbuch für S7 - 1200.
Tabelle 1 MB_COMM_LOAD-Befehl - Parameter Bedeutung Die Bedeutung der einzelnen Parameter der Modbus _ Master-Befehl - Anweisung ist in Tabelle 2 dargestellt:
Pin
Beschreibung
EN
Enabler
REQ
TRUE = Anforderung, Daten an Modbus-Slaven zu senden, wird empfohlen, die Rising Edge auszulösen
MB_ADDR
Modbus-RTU - Adresse der Slave-Station. Standardadressbereich: 0 bis 247; erweiterter Adressbereich: 0 bis 65535. Der Wert 0 wird für die Übertragung von Nachrichten an alle Modbus-Sklaven reserviert.
MODE
Modus-Auswahl: Geben Sie den Anforderungstyp an (Lesen oder Schreiben).
DATA_ADDR
Startadresse im Slave-Stand: Geben Sie die Startadresse der Daten an, auf die Modbus-Slaven zugreifen soll.
DATA_LEN
Datenlänge: Gibt die Anzahl der Bits oder Wörter an, auf die in dieser Anforderung zugegriffen werden soll.
Daten _ PTR
Datenzeiger: Zeigt auf die Marker - oder Blockadresse, an die Daten geschrieben oder gelesen werden sollen.
DONE
Complete Bit: Nachdem die vorherige Anforderung ohne Fehler abgeschlossen wurde, bleibt das DONE-Bit für einen Scanzyklus auf TRUE.
BUSY
FALSE - Modbus _ Master Kein Aktivierungsbefehl: TRUE - Verweis auf den Hintergrundblock der Modbus _ Master - oder Modbus _ Slave-Anweisung während der Ausführung des Modbus _ Master-Befehls
ERROR
Der MB _ DB-Parameter muss mit der statischen Variablen MB _ DB-Parameter in der Modbus _ Master - oder Modbus _ Slave-Befehl verbunden sein.
STATUS
Wenn die letzte Anforderung ohne Fehler abgeschlossen wurde, wird das DONE-Bit TRUE und bleibt für einen Zeitraum erhalten.
ERROR
Wenn die letzte Anforderung fehlerhaft abgeschlossen wurde, wird das ERROR-Bit TRUE und bleibt für einen Zeitraum erhalten. Der Fehlercode im STATUS-Parameter ist nur für die Periode ERROR = TRUE gültig.
STATUS
Fehlercode
Tabelle 2 Bedeutung des Modbus_Master-Befehlparameters Hinweis 1Die Modbus_Comm_Load-Befehl wird nicht im Start-Organisation - Block OB100 aufgerufen, sondern in OB1 empfohlen. Bei Aufruf der Anweisung Modbus_Comm_Load in OB1 wird das Eingangsbit „REQ" mit einem Aufstieg ausgelöst, in diesem Fall das „FirstScan" - Systemspeicherbit. Die statische Variable „MODE" im Hintergrundblock der Anweisung Modbus_Comm_Load wird verwendet, um den Betriebsmodus des PTP-Modules zu beschreiben, die gültigen Betriebsmodus sind: · 0 = Vollduplex (RS232) · 1 = Vollduplex (RS422) Vierdrahtmodus (Punkt-zu - Punkt) · 2 = Vollduplex (RS422) Vierdrahtmodus (Mehrpunkt-Hauptstation, CM PtP)(ET200SP)) · 3 = Vollduplex (RS422) Vierdraht-Modus (Mehrpunkt von der Station, CM PtP)(ET200SP)) · 4 = Halbduplex (RS485) Zwedrahtmodus Die Standardeinstellung für die statische Variable "MODE" ist 0 (RS232 Full-Duplex - Modus), muss der Wert basierend auf der tatsächlichen Konfiguration des CM PTP-Moduls geändert werden, in diesem Fall CM PTP-Modul in der Arbeit in RS485 Halb-Duplex - Modus müssen die Zahl 4 geändert werden, wie in Abbildung 12 dargestellt.
Modbus (RTU) für die Siemens 1200PLCAbbildung21
Zeichnung 12. Modbus_Comm_Load Hintergrund-Blockstatische Variable "MODE" geändert auf 4 3 Der Parameter "DATA_PTR" der Modbus_Master-Befehl wird verwendet, um auf die Adresse des Datenbereichs zu verweisen, in dem Daten geschrieben oder gelesen werden sollen, und der Datenbereich unterstützt optimierte oder nicht optimierte (Standard) Datenblöcke, die nicht optimierte Datenblöcke werden empfohlen. Die in diesem Beispiel verwendeten Datenbereiche sind nicht-optimiert Zugriff auf den Block, in den Eigenschaften des Blocks "optimierten Block-Zugriff" zu entfernen, um den Block in nicht-optimiert Zugriff auf den Block zu ändern (Rechte Maustaste-Datenblock, wählen Sie "Eigenschaften", entfernen Sie "optimierten Block-Zugriff"), wie in Abbildung 13 gezeigt.
Modbus (RTU) für die Siemens 1200PLCAbbildung22
Zeichnung 13. Einrichten von Datenblöcken für den nicht optimierten Zugriff Wenn die Modbus_Master-Anweisung „DATA_PTR" auf einen nicht optimierten Zugriffsabschnitt verweist, muss der Eingabeparameter mit Zeiger-Methode wie P#DB3.DBX0.0 WORD5 ausgefüllt werden. Wenn es mehrere modbus-RTU - Slaves oder eine modbus-RTU - Slave-Station im Modbus-RTU - Netzwerk gibt, die gleichzeitig Lese - und Schreibvorgänge benötigen, müssen mehrere Modbus _ Master-Befehle aufgerufen werden, wobei die Modbus _ Master-Befehle aufgerufen werden müssen. Die folgende Abbildung 14 beschreibt, wie zwei Modbus _ Master-Befehle den Aufruf abfragen.
Modbus (RTU) für die Siemens 1200PLCAbbildung23
Abbildung 14. Modbus _ Master-Aufruf - Methode
b) Einfügen Sie die "Pull or Plug of modules" - Unterbrechung OB83 ein. In diesem Beispiel ist das Modbus-RTU - Host-Modul auf einer verteilten IO-Standort installiert, so dass das Programm einen Ausfall der verteilten IO-Standort, einen Ausfall des CM-PTP - Moduls und andere Ausfälle berücksichtigen muss. Wenn ein Modul in eine verteilte IO-Standort eingegeben oder ausgeschaltet wird, ruft das Betriebssystem einmal OB83 auf. Die Eingabevariable "16#Event_Class" im OB83 - Interface-Bereich bestimmt das fehlerhafte Modul und den Typ: Der Ereignistyp 16#39 zeigt an, dass das Modul entfernt wurde, und der Ereignistyp 16#38 zeigt an, dass das Modul eingefügt wurde. Wenn das CM-PTP - Modul neu eingegeben wird, muss das Kommunikationsmodul durch Aufruf der Befehl Modbus_Comm_Load in der Interruption OB83 neu konfiguriert werden, wie in Abbildung 15 dargestellt.
Modbus (RTU) für die Siemens 1200PLCAbbildung24
Bild 15. Modbus_Comm_Load-Befehl in OB83 wieder aufgerufen Achtung Der Hintergrund-Block, der die Modbus_Comm_Load-Befehl in OB83 aufruft, muss identisch mit dem Hintergrund-Block sein, der die Modbus_Comm_Load-Befehl in OB1 aufruft. Die Hardware-Identifikation des 2CM-PTP - Moduls kann auch in "PLC-Variablen" - - > "Systemkonstanten" abgefragt werden, wie in Abbildung 16 dargestellt. gezeigt.
Modbus (RTU) für die Siemens 1200PLCAbbildung25
Bild 16. Systemkonstante
c, Einfügen Sie den "Rack or Station failure" - Interrupt OB86. Bei einem Ausfall und Wiederherstellung einer verteilten IO-Standorte ruft das Betriebssystem OB86 einmal auf. Das Modul und der Typ des Ausfalls werden durch die Eingabevariable "16#Event_Class" in der OB86 - Schnittstelle bestimmt: Der Ereignistyp 16#39 zeigt einen Ausfall der Website und der Ereignistyp 16#38 zeigt eine Wiederherstellung der Website. Bei der Wiederherstellung der I-O - Site, auf der sich das CM-PTP - Modul befindet, muss die Anweisung Modbus_Comm_Load in der Unterbrechung OB86 aufgerufen werden, um das Kommunikationsmodul neu zu konfigurieren, wie in Abbildung 17 dargestellt.
Modbus (RTU) für die Siemens 1200PLCAbbildung26
Grafik 17. Modbus_Comm_Load in OB86 aufrufen Hinweis 1 Der Hintergrundblock, der die Modbus_Comm_Load-Befehl in OB86 aufruft, muss identisch mit dem Hintergrundblock sein, der die Modbus_Comm_Load-Befehl in OB1 aufruft. 2 Die Hardware-Identifikatoren der verteilten IO-Standorte können auch in "PLC-Variablen" - - > "Systemkonstanten" abfragen. 2 Modbus RTU Programmierung von der Station Die Modbus-RTU - Slave-Programmierung erfordert den Aufruf der Modbus_Comm_Load-Befehl und der Modbus_Slave-Befehl, wobei die Modbus_Comm_Load-Befehl das Kommunikationsmodul über das Modbus-RTU - Protokoll konfiguriert, die Modbus_Slave-Befehl als Modbus-Slave über einen Port kommunizieren kann, der durch die Modbus_Comm_Load-Befehl konfiguriert ist, und der MB_DB-Parameter der Modbus_Comm_Load-Befehl muss mit dem (statischen) MB_DB-Parameter der Modbus_Slaver-Befehl verbunden sein. In diesem Beispiel ist der CPU-Rack CM1241 RS422/485 als Modbus-RTU - Slave-Station, die entsprechenden Programmierschritte sind wie folgt:
Fügen Sie eine FC-Funktion in OB1 ein und ziehen Sie die Befehle Modbus_Comm_Load und Modbus_Slave in die Funktion ein. Wie in Abbildung 18
Modbus (RTU) für die Siemens 1200PLCAbbildung27
abgebildet. Die Bedeutung der Modbus-Slave - Befehle wird in Tabelle 3 dargestellt:
Pin
Beschreibung
MB_ADDR
Standard-Adressierung für Modbus-Slaven: Standard-Adressierung (1 bis 247) Erweiterter Adressierung (0 bis 65535)
MB_HOLD_REG
Ein Datenzeiger, der auf die Adresse des Modbus-Haltregisters verweist, das sowohl M-Speicher als auch DB-Datenbereich sein kann. Wenn Modbus das Register als DB-Datenbereich behält, unterstützt der DB-Datenbereich den optimierten Zugriff auf Datenblöcke oder nicht optimierte Zugriff auf Datenblöcke, und es wird empfohlen, den nicht optimierten Zugriff auf Datenblöcke anzuwenden.
NDR
Neue verfügbare Daten: · FALSE - Keine neuen Daten · TRUE - Zeigt an, dass neue Daten vom Modbus-Master geschrieben wurden Wenn die letzte Anforderung ohne Fehler abgeschlossen wurde, wird das NDR-Bit TRUE und bleibt für einen Zeitraum erhalten.
DR
Daten lesen: · FALSE - Keine neuen Daten · TRUE - Zeigt an, dass die von der Modbus-Masterstation empfangenen Daten bereits in der Zielzone gespeichert wurden. Wenn die letzte Anforderung ohne Fehler abgeschlossen ist, wird das DR-Bit TRUE und hält einen Zyklus.
ERROR
Wenn die letzte Anforderung fehlerhaft abgeschlossen wurde, wird das ERROR-Bit TRUE und bleibt für einen Zeitraum erhalten. Wenn die Ausführung aufgrund eines Fehlers beendet wird, ist der Fehlercode im STATUS-Parameter nur für die Periode mit ERROR = TRUE gültig.
STATUS
Fehlercode
Tabelle 3 Bedeutung des Modbus_Slave-Befehlparameters Hinweis 1 Die Modbus_Comm_Load-Befehl wird nicht im Start-Organisation - Block OB100 aufgerufen, sondern in OB1 empfohlen. Bei Aufruf der Anweisung Modbus_Comm_Load in OB1 wird das Eingangsbit „REQ" mit einem Aufstieg ausgelöst, in diesem Fall das „FirstScan" - Systemspeicherbit. Die statische Variable „MODE" im Hintergrundblock der Anweisung Modbus_Comm_Load wird verwendet, um die Betriebsmodi des PTP-Moduls zu beschreiben, gültige Betriebsmodi sind: · 0 = Vollduplex (RS232) · 1 = Vollduplex (RS422) Vierdrahtmodus (Punkt-zu - Punkt) · 2 = Vollduplex (RS422) Vierdrahtmodus (Mehrpunkt-Hauptstation, CM PtP)(ET200SP)) · 3 = Vollduplex (RS422) Vierdrahtmodus (Mehrpunkt von der Station, CM PtP)(ET200SP)) · 4 = Halbduplex (RS485) Zwedrahtmodus Die Standardeinstellung für die statische Variable "MODE" ist 0 (RS232 Full-Duplex - Modus), müssen Sie den Wert gemäß der tatsächlichen Konfiguration des CM1241 RS422 / 485 - Moduls ändern, in diesem Fall CM1241 RS422 / 485 - Modul in der Arbeit im RS485 Halb-Duplex - Modus müssen Sie den Wert auf 4 ändern, wie Sie die statische Variable "MODE" ändern, wie in Abbildung 12 dargestellt. 3 Der Modbus_Slave-Befehl „MB_HOLD_REG" wird auf die Adresse des Datenbereichs des Modbus-Haltregisters verwiesen, der den optimierten oder nicht optimierten (Standard) Zugriff unterstützt, wobei nicht optimierte Zugriffsblöcke vorgeschlagen werden. Der in diesem Beispiel verwendete Datenbereich ist ein nicht-optimierter Zugriffsabschnitt, und die Eingabeparameter müssen mit Zeiger-Methode wie P#DB6.DBX0.0 WORD 100 ausgefüllt werden. Wie Sie "optimierten Blockzugriff" in den Eigenschaften des Datenblöcks deaktivieren, siehe Abbildung 13. gezeigt. Das Programm in die SPS herunterzuladen und das CM1241 RS422 / 485 mit dem CM PTP-Modul mit dem Profibus DP-Kommunikationskabel verbinden, um die Modbus-RTU - Kommunikation zu testen. III. Zusammenfassung häufiger Fragen 1. Gibt es Einschränkungen für die Verwendung der neuen Modbus RTU-Befehlversion? Die Modbus RTU-Kommunikation über das CM1241 - Kommunikationsmodul oder die CB1241 - Kommunikationsplatte muss folgende Voraussetzungen erfüllen: a. Die Firmware-Version der S7 - 1200 - CPU darf nicht älter als V4.1; b. Die Firmware des CM1241 - Kommunikationsmoduls oder der CB1241 - Kommunikationsplatte darf nicht älter als V2.1 sein. Die S7-1200 V4.0 - Firmware-CPU kann über die Firmware auf die V4.1 - Version aktualisiert werden, und das CM1241 - Kommunikationsmodul der V2.0 - Firmware kann auch über das Firmware-Update auf die V2.1 - Version aktualisiert werden. 2. Welche Rolle spielt die statische Variable "MODE" im Hintergrundblock der Anweisung Modbus_Comm_Load? Warum sollte man diese Variablen in der Regel ändern? Die neue Version der Modbus-RTU - Anweisung erweitert die Funktionalität der Modbus-RTU - Anweisung, die neben der Unterstützung des CM1241 - Kommunikationsmoduls und der CB1241 - Kommunikationsplatte auch die Unterstützung von PTP-Kommunikationsmodulen auf einem PROFINET - oder PROFIBUS-Distributed - I / O-Rack für die Modbus-RTU - Kommunikation unterstützt. Das PTP-Kommunikationsmodul auf dem verteilten I / O-Rack kann eine Vielzahl von Betriebsmodi unterstützen, zum Beispiel das ET200SP CM PtP-Modul (Bestellnummer: 6ES7137 - 6AA00 - 0BA0) kann eine Vielzahl von Betriebsmodi wie RS232, RS485 und RS422 unterstützen. Die statische Variable „MODE" im Hintergrundblock der Modbus_Comm_Load-Befehl wird verwendet, um den Betriebsmodus des PTP-Moduls zu definieren. Der Standardwert für „MODE" ist 0, was für den „Vollduplex (RS232)" Betriebsmodus steht, und in der tatsächlichen Projektkonfiguration muss diese Variable entsprechend dem tatsächlichen Betriebsmodus geändert werden. 3. Kann die Anweisung Modbus_Comm_Load im Startup-Organisationsblock OB100 aufgerufen werden? Die Anweisung Modbus_Comm_Load wird nicht empfohlen, im Startup-Organisation - Block OB100 aufzurufen. Die neue Version der Modbus-RTU - Anweisung erweitert die Funktionalität von Modbus-RTU und unterstützt die Modbus-RTU - Kommunikation durch PtP-Kommunikationsmodule auf einem PROFINET - oder PROFIBUS-Distributed - I / O-Rack. Das Betriebssystem benötigt Befehle wie Lesen von Datensätzen und Schreiben von Datensätzen, um die Kommunikation mit Modbus RTUs in einem verteilten E / A-Rack zu ermöglichen. Die Befehle zum Lesen von Datensätzen und Schreiben von Datensätzen sind asynchrone Lese - und Schreibbefehle, deren Ausführung N Scanzyklen benötigt, daher wird es nicht empfohlen, die Befehle Modbus_Comm_Load im Start-Organisationsblock OB100 aufzurufen. 4. Wie finde ich einen Fehlercode bei Modbus RTU-Kommunikationsfehler? Bei der Modbus_Master-Befehl zum Beispiel wird das "ERROR" - Ausgabebit der Modbus_Master-Befehl TRUE, wenn ein Kommunikationsfehler auftritt, aber es bleibt nur für einen Scanzyklus, so dass der Fehler bei der Überwachung durch das TIA-Software - Programm nicht nachgefragt werden kann. Der Fehlercode im Parameter „STATUS" der Modbus _ Master-Anweisung ist nur für einen Scan-Zyklus mit „ERROR" = TRUE gültig, um den Fehlercode für einen Modbus-RTU - Kommunikationsfehler zu erhalten, können wir die folgende Abbildung 19 verwenden. Methode der Programmierung.
Modbus (RTU) für die Siemens 1200PLCAbbildung28
Bild 19. Kommunikationsfehlercode STATUS abrufen
Relevante Etiketten
Sollte man diese Informationen für ein echtes Projekt verwenden?

Gehen Sie zum Tool Center, um Nachrichten zu analysieren, CRC-Prüfungen und Geräte-Debugging zu erledigen, oder senden Sie Anforderungen für Auswahl - und Zugangsvorschläge.

Ingenieur Mitglied

Verwandeln Sie diesen Artikel in ein umsetzbares Debuggermaterial

Erweiterte Nachrichtenanalyse, Paket-Downloads, Codebeispiele, Engineering-Szenarien und Priority-Technischer Support sind für die Real-Projekt - Bereitstellung möglich.

Unbegrenzte Werkzeuge
Datenpaket und Codepaket
Vollständige Engineering Case-Basis
Vorrangiger Zugang zum technischen Support

Antwort veröffentlichen

Ihre E-Mail - Adresse wird nicht öffentlich gemacht. Erforderliche Elemente wurden verwendet * markiert.