Handbuch
Vorwort, Inhaltsverzeichnis
Produktbeschreibung 1
Montage 2
SIMATIC S7
Inbetriebnahme 3
Handbuch Diagnose 6
Applikationsbeispiel 7
Anhänge
Literatur
Glossar
Ausgabe 3.0
Sicherheitstechnische Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit, sowie zur Ver-
Hinweise meidung von Sachschäden beachten müssen. Die Hinweise sind durch ein Warndreieck
hervorgehoben und je nach Gefährdungsgrad folgendermaßen dargestellt:
__________________________________________________________________
Gefahr
Qualifiziertes Inbetriebsetzung und Betrieb eines Gerätes dürfen nur von qualifiziertem Personal vorge-
Personal nommen werden. Qualifiziertes Personal im Sinne der sicherheitstechnischen Hinweise
dieses Handbuchs sind Personen, welche die Berechtigung haben, Geräte, Systeme und
Stromkreise gemäß den Standards der Sicherheitstechnik in Betrieb zu nehmen, zu erden
und zu kennzeichnen.
! Das Gerät darf nur für die im Katalog und in der technischen Beschreibung vorgesehenen
Einsatzfälle und nur in Verbindung mit von Siemens empfohlenen bzw. zugelassenen
Fremdgeräten und -Komponenten verwendet werden.
Der einwandfreie und sichere Betrieb des Produktes setzt sachgemäßen Transport,
sachgemäße Lagerung, Aufstellung und Montage sowie sorgfältige Bedienung und
Instandhaltung voraus.
® ®
Marken SIMATIC und SIMATIC NET sind eingetragenes Warenzeichen der SIEMENS AG.
Die übrigen Bezeichnungen in dieser Schrift können Marken sein, deren Benutzung durch
Dritte für deren Zwecke die Rechte der Inhaber verletzen können.
Vorwort
Zweck des Hand- Die Informationen dieses Handbuchs ermöglichen es Ihnen, eine Kopplung
buchs zwischen einem CP 343-1/CP 443-1 und einem Gerät, welches das
Protokoll Open MODBUS/TCP unterstützt, aufzubauen und in Betrieb zu
nehmen.
Inhalte des Hand- Im vorliegenden Handbuch ist die Funktion des Funktionsbausteins
buchs MODBUS und die Einbindung in die Hard- und Software des
Kommunikationsprozessors CP 343-1/CP 443-1 beschrieben.
Das Handbuch beinhaltet folgende Themen:
• Produktbeschreibung / Montage
• Inbetriebnahme / Installieren / Parametrieren
• Funktionsbaustein
• Übertragungsprotokoll
• Diagnose
• Applikationsbeispiel
Hinweis
Das vorliegende Handbuch enthält die Beschreibung des FBs, wie sie zum
Zeitpunkt der Herausgabe des Handbuchs gültig ist.
Zugriffshilfen auf Um Ihnen einen schnellen Zugriff auf spezielle Informationen zu erleichtern,
das Handbuch enthält das Handbuch folgende Zugriffshilfen:
SIEMENS
SIMATIC NET
S7-CPs für Industrial Ethernet
Gerätehandbuch
C79000-G8900-C155
SIEMENS
SIMATIC NET
S7-CPs für Industrial Ethernet
Gerätehandbuch Teil B1
CP 343-1 / CP 343-1EX20
C79000-G8900-C158
SIEMENS
SIMATIC NET
S7-CPs für Industrial Ethernet
Gerätehandbuch Teil B4
CP 443-1
C79000-G8900-C152
SIEMENS
SIMATIC NET
NCM S7 für Industrial Ethernet
Handbuch
C79000-G8900-C129
SIEMENS
SIMATIC Software
Basissoftware für S7 und M7
STEP7 Benutzerhandbuch
C79000-G7000-C502-..
SIEMENS
SIMATIC Software
Systemsoftware für S7-300/400
System- und Standardfunktionen
Referenzhandbuch
C79000-G7000-C503-02
Rückfragen Bei Fragen zur Nutzung des in diesem Handbuch beschriebenen FBs, die
Sie hier nicht beantwortet finden, wenden Sie sich bitte an Ihren Siemens-
Ansprechpartner, von dem Sie diesen Funktionsbaustein erhalten haben.
Inhaltsverzeichnis
3.1 ........ Installieren der Bibliothek auf dem STEP7-PG/-PC ......................................... 3-1
A ...... Literatur.............................................................................................................................. 1
1 Produktbeschreibung
1.1 Einsatzmöglichkeiten
Einordnen in die Der vorliegende Treiber stellt ein Software-Produkt für den Kommunikations-
Systemumgebung prozessor CP 343-1/CP443-1 dar.
Die SIMATIC S7 kann bei der Übertragung sowohl als Client als auch als
Server betrieben werden.
TCP/IP mit TCP/IP mit CP 343-1 and CP434-1 läuft über statische Verbindungen. Die
CP343-1 / CP443-1 TCP-Verbindung wird während des laufenden Betriebs nicht abgebaut.
Softwareausgabe- Der Einsatz des FBs MODBUS ist ab STEP 7-Version 5.1 mit der Option
stände NCM S7 für Industrial Ethernet möglich.
Speicherbedarf Der FB MODBUS benötigt 8800 Byte Arbeitsspeicher und 9886 Byte
Ladespeicher.
2 Montage
2.1 Schnittstellen-Anschluss
Buskoppler Der CP erzeugt und liefert die für den Buskoppler benötigte
(Transceiver) Spannungsversorgung.
mittels AUI-
Anschluss
Industrial Twisted Beim Einsatz der im folgendem Bild genannten Industrial Ethernet
Pair–Anschluss Installationsleitung Twisted Pair erfolgt im CP automatisch die Erkennung und
z.B. über OSM Umstellung auf Twisted Pair.
Twisted Pair In gering EMV belasteter Umgebung wie z. B. büroartiger Umgebung und
Anschluss über Schaltschränken kann der CP über die RJ–45–Buchse mit einer Twisted Pair
RJ–45–Buchse Leitung an Ethernet angeschlossen werden.
Weiterführende Hinweis
Informationen
Beachten Sie bitte, dass für eine einwandfreie Funktion entweder der
AUI/ITP–Stecker oder der TP–Stecker angeschlossen sein darf.
Wenn Sie im laufenden Betrieb von der einen auf die andere Schnittstelle
wechseln, kann es vorkommen, dass der Wechsel von der Hardware nicht
erkannt wird. Sie sollten daher einen Wechsel der Schnittstelle nur bei
ausgeschaltetem Gerät vornehmen!
3 Inbetriebnahme
Allgemeines Die Projektierung des CP 443–1/CP 343–1 ist über MPI oder LAN/Industrial
Ethernet möglich.
Erforderlich ist STEP 7 mit NCM S7 für Industrial Ethernet (nachfolgend kurz
”NCM IE” genannt).
Die im Folgenden verwendeten Angaben zu STEP 7 und zur
Kommunikationsverbindungs-Projektierung beziehen sich auf die
STEP7-Version 5.1 und NCM S7 Industrial Ethernet Version 5.1.
Bei späteren Versionen können Abläufe, Namens- und Verzeichnisangaben
geändert sein.
Lieferumfang Die Bibliothek mit den Funktionsbausteinen für Ihr S7-Projekt befindet sich
auf der beiliegenden CD.
Die CD enthält zusätzlich diese Dokumentation in elektronischer Form sowie
ein STEP7-Beispielprojekt.
Beim ersten Zugriff verwenden sie bitte die Funktion Durchsuchen des
Öffnen-Dialogs um auf die Bibliothek in S7libs zuzugreifen.
Einleitung Die Konfiguration einer Kopplung umfasst die Anordnung der Hardware in der
Konfigurationstabelle mit HW Konfig. Die Konfiguration nehmen Sie mit der
STEP7-Software vor.
S7-Projekt Bevor Sie die Konfiguration vornehmen können, müssen Sie mit STEP7 ein
S7-Projekt angelegt haben.
SIMATIC 300-Station
Einfügen ¾ Station ¾ SIMATIC 300-Station
für das eigene S7-Programm (Rack, PS, CPU, CP343-1, ...),
Einfügen ¾ Station ¾ Andere Station
für den Koppelpartner,
Einfügen ¾ Subnetz ¾ Industrial Ethernet
für ein Industrial Ethernet-Netz zwischen der SIMATIC 300-Station und dem
Koppelpartner.
SIMATIC 400-Station
Einfügen ¾ Station ¾ SIMATIC 400-Station
für das eigene S7-Programm (Rack, PS, CPU, CP443-1, ...),
Einfügen ¾ Station ¾ Andere Station
für den Koppelpartner,
Einfügen ¾ Subnetz ¾ Industrial Ethernet
für ein Industrial Ethernet-Netz zwischen der SIMATIC 400-Station und dem
Koppelpartner.
SIMATIC 300-Station
Durch Selektion der SIMATIC 300-Station und Doppelklick „Hardware“ (bzw.
„Bearbeiten ¾ Objekt öffnen“) wird die HW-Konfiguration gestartet. Mit
„Einfügen ¾ Hardwarekomponenten“ ist aus SIMATIC 300 ein RACK-300,
eine PS-300, eine CPU-300, und aus CP-300 der CP Industrial Ethernet
CP 343-1 mit der entsprechenden Bestellnummer einzufügen.
Das Vorgehen bei der Konfiguration von S7 300-Baugruppen ist ausführlich
im Benutzerhandbuch für STEP7 beschrieben.
SIMATIC 400-Station
Durch Selektion der SIMATIC 400-Station und Doppelklick „Hardware“ (bzw.
„Bearbeiten ¾ Objekt öffnen“) wird die HW-Konfiguration gestartet. Mit
„Einfügen ¾ Hardwarekomponenten“ ist aus SIMATIC 400 ein RACK-400,
eine PS-400, eine CPU-400, und aus CP-400 der CP Industrial Ethernet
CP 443-1 mit der entsprechenden Bestellnummer einzufügen.
Das Vorgehen bei der Konfiguration von S7 400-Baugruppen ist ausführlich
im Benutzerhandbuch für STEP7 beschrieben.
Parametrieren des Nachdem Sie, wie unter „Projektkomponenten: Einfügen ¾ Andere Station“
Koppelpartners beschrieben, die Koppelpartner-Station in Ihr Step7-Projekt eingefügt haben,
müssen Sie die Objekteigenschaften dieser Fremdstation festlegen.
Ausgehend vom geöffneten Step7-Projekt können Sie die Koppelpartner-
Station (Andere Station) durch Anklicken selektieren.
Über die Schaltfläche „OK“ gelangen Sie zurück in das Grundmenü des
Step7-Projekts.
3.4 Verbindungsprojektierung
Kommunikations- Für die Verbindung zwischen einer S7-CPU und einem über Industrial
verbindung Ethernet angeschlossenen Kommunikationspartner/Bus stellt der CP das
Bindeglied dar. Für die Verbindung der jeweiligen Schnittstelle zum
Koppelpartner/Bus muss eine Verbindungsprojektierung vorgenommen
werden.
Objekteigen- • Es wird Ihnen eine ID vorgegeben, die Sie gegebenenfalls nach Ihren
schaften der Wünschen ändern können.
Verbindung • Durch Klick auf die Schaltfläche „Wegewahl...“ wird der parametrierte
Verbindungsweg angezeigt.
• „Aktiver Verbindungsaufbau“ wird üblicherweise vom MODBUS-Client
ausgeführt.
• In der Karteikarte Adressen können die Portnummern festgelegt werden.
Unspezifizierte Wenn bei einer Kopplung der CP als Server arbeitet und die Portnummer des
Verbindung Client nicht bekannt ist, kann über eine unspezifizierte Verbindung die
Kommunikation aktiviert werden. Es ist aber Voraussetzung, dass der Client
den aktiven Verbindungsaufbau übernimmt.
In diesem Fall ist keine „andere Station“ im Projekt notwendig. Nach der
Anwahl von Einfügen ¾ Neue Verbindung... gelangen Sie in den Dialog
„Neue Verbindung einfügen“. Wählen Sie hier für die neue Verbindung
anstelle des Verbindungspartners „unspezifiziert“ und als Verbindung „TCP-
Verbindung“ an. Aktivieren Sie das Kontrollkästchen „Eigenschafteendialog
aufblenden“.
Quittieren Sie mit „OK“. Sie gelangen jetzt in den Dialog „Eigenschaften –
TCP-Verbindung“.
„Aktiver Verbindungsaufbau“ muss abgewählt sein, im Dialog „Adressen“
werden für den „Partner“ keine Einstellungen vorgenommen, „IP“ und
„PORT“ müssen leer sein.
Mit „OK“ werden die Eingaben übernommen.
Bitte wählen Sie anhand der Anforderungen Ihrer Anlage den für Sie
passenden Funktionsbaustein aus der Bibliothek aus.
Einfügen des Um mit den MODBUS-Geräten Daten austauschen zu können benötigen Sie
MODBUS-FBs den Funktionsbaustein MODBUS. Um diesen in Ihr Projekt einfügen zu
können, müssen Sie den Baustein aus der Bibliothek kopieren. Dazu öffnen
sie die Bibliothek „Modbus_TCP“ durch Anwahl von Datei ¾ Öffnen.... In
dem Dialog Öffnen Projekt wechseln Sie auf die Registerkarte Bibliotheken.
Selektieren Sie die Bibliothek „Modbus_TCP“ und bestätigen Sie die Auswahl
mit „OK“.
CP 300 Bei SIMATIC S7-300 öffnen Sie durch Doppelklick den Ordner „CP 300“
Selektieren sie die Funktionsbausteine FC5 (AG_SEND) und FC6
(AG_RECV) und kopieren sie diese mit Bearbeiten ¾ Kopieren. Wechseln
sie in Ihr Projekt zurück durch anklicken von Fenster ¾ „Ihr Projekt“.
CP 400 Bei SIMATIC S7-400 öffnen Sie durch Doppelklick den Ordner „CP 400“
Selektieren sie die Funktionsbausteine FC50 (AG_LSEND) und FC60
(AG_LRECV) und kopieren sie diese mit Bearbeiten ¾ Kopieren. Wechseln
sie in Ihr Projekt zurück durch anklicken von Fenster ¾ „Ihr Projekt“.
Beachten Sie, dass folgende Versionen der FCs Voraussetzung für den
einwandfreien Betrieb des FB MODBUS sind:
Wichtig!
Die Kommunikationsbausteine FC5/6 bzw. FC50/60 können nur mit dieser
Bezeichnung verwendet werden. Es ist nicht möglich die Bausteine
umzubennen.
Parametrierung Bei der Parametrierung empfängt der CP die dem aktuellen Steckplatz
zugeordneten Baugruppenparameter.
Der CP ist jetzt betriebsbereit.
4 Funktionsbaustein MODBUS
Aufruf des FBs Der Funktionsbaustein muss sowohl im Anlauf-OB100 als auch im zyklischen
Betrieb im OB1 aufgerufen werden.
Der Aufruf des FB MODBUS in zeitgesteuerten OBs z.B. OB35 ist nicht
zulässig.
Anlauf des FBs Der Funktionsbaustein MODBUS wird im OB100 einmal unbedingt auf-
gerufen. Die Initialisierungsparameter müssen entsprechend der Anlagen-
konfiguration belegt sein. Sie werden in den Instanz-DB übernommen.
Zyklischer Betrieb Im zyklischen Betrieb wird der FB MODBUS im OB1 aufgerufen. Anhand der
des FBs Laufzeitparameter werden die Funktionen des Bausteins aktiviert. Während
ein Auftrag läuft, werden Änderungen an den Laufzeitparametern nicht
ausgewertet.
Kommt es zur einer Zeitüberschreitung (keine Antwort vom Server) wird der
aktivierte Auftrag mit Fehler beendet. Ein neuer Auftrag kann initiiert werden.
Aktivierung des Durch einen positiven Pegel am Triggereingang ENQ_ENR ist der FB zum
FBs Empfang eines Anforderungstelegramms vom Client bereit. Der Server
CP ist Server verhält sich dabei passiv.
Das empfangene Telegramm wird überprüft. Verläuft die Prüfung positiv, wird
das Antworttelegramm beantwortet. Der beendete Telegrammverkehr wird
dem Anwender mitgeteilt indem das Bit DONE_NDR gesetzt wird. Zu diesem
Zeitpunkt wird die ausgeführte Funktion an den Ausgängen
START_ADDRESS, READ_WRITE, LENGTH, UNIT und TI angezeigt.
Datenübergabe Die Datenübergabe zwischen CP und CPU erfolgt mit den Standard-
CPU – CP bausteinen AG_SEND und AG_RECV.
Bei Aktivierung eines MODBUS Auftrags durch den Anwender (CP ist Client)
oder bei Empfang eines Telegramms vom Client (CP ist Server) werden vom
FB die Standardbausteine für den CP in der erforderlichen Reihenfolge und
Anzahl aufgerufen.
Beim Empfang eines Telegramms werden zuerst 6 Byte mit einem AG_RECV
gelesen. In diesen 6 Byte ist die Länge des restlichen Telegramms enthalten.
Es erfolgt dann ein zweiter Aufruf des AG_RECV mit der Restlänge. Die
Auswertung der empfangenen Daten wird erst nach dem vollständigen
Empfang durchgeführt.
TCP/IP mit TCP/IP mit CP 343-1 and CP434-1 läuft über statische Verbindungen. Die
CP343-1 / CP443-1 TCP-Verbindung kann während des laufenden Betriebs nicht abgebaut
werden.
Aufgrund dieser Systemeigenschaft kann es unter ungünstigen Bedingungen
bei bestimmten Fehlerfällen zu einer verlorenen Synchronisation kommen,
die einen Telegrammverlust nach sich ziehen kann. Das Verhalten des FB in
diesem Fall ist in Kapitel 6 näher beschrieben.
• Initialisierungsparameter
• Laufzeitparameter
Wertebereiche Bei den Wertebereichen für die verschiedenen Parameter sind ggf. auch
CPU-spezifische Einschränkungen zu beachten.
LADDR Der Parameter LADDR ist die Basisadresse des CP aus HW Konfig
(E-Adresse). Der projektierte Wert ist hier einzutragen.
Die Parameter ID und LADDR können auch der Maske Eigenschaften der
TCP Verbindung entnommen werden.
TIMER_NR Hier wird die Nummer des Timers angegeben, mit dem die Überwachungszeit
MONITOR realisiert wird.
Der Wertebereich für diesen Parameter ist CPU-abhängig. Der Timer darf
nicht für andere Zwecke verwendet werden.
MONITOR Die Überwachungszeit MONITOR überwacht den Eingang der Daten vom
Koppelpartner. Die Monitoringzeit ist im 100ms-Raster einstellbar. Es wird
eine Überwachungszeit von ca. 1,5 Sekunden empfohlen.
In der Betriebsart „CP ist Client“ wird mit der Zeit MONITOR der Eingang des
kompletten Antworttelegramms vom Server überwacht. Bei Überschreitung
der Überwachungszeit wird der aktivierte Auftrag mit Fehler beendet. Die Zeit
wird nach beendetem Senden des Anforderungstelegramms gestartet und
nach dem Empfang der kompletten Daten gestoppt.
In der Betriebsart „CP ist Server“ wird der Eingang des zweiten
Telegrammteils mit der Zeit MONITOR überwacht. Bei Überschreitung der
Überwachungszeit wird ein Fehler gemeldet. Die Zeit wird nach dem
Empfang des MODBUS spezifischen Telegrammheaders gestartet und nach
beendetem Empfang des Anforderungstelegramms gestoppt.
DB_x Der FB bietet 5 Datenbereiche für die Abbildung der MODBUS Register-
START_x adressen im S7-Speicher. Es muss mindestens ein Datenbereich definiert
END_x werden, die anderen 4 Datenbereiche sind optional. Aus den Datenbereichen
wird abhängig vom Auftragtyp gelesen oder in sie geschrieben.
Mit einem Auftrag kann immer nur aus einem DB gelesen / in einen DB
geschrieben werden. Zugriffe auf Register, die in mehreren DBs liegen, auch
wenn diese lückenlos hintereinander liegen, sind auf zwei Aufträge
aufzuteilen. Dies ist bei der Projektierung zu berücksichtigen.
Der Parameter DB_x legt den Datenbaustein fest, in dem die nachfolgend
definierten MODBUS Register abgebildet werden. Mit START_x wird die erste
Registeradresse die im Datenwort 0 des DB abgebildet wird angegeben.
END_x definiert die Adresse des letzten MODBUS Registers.
Am Ende dieses Kapitels ist ein Beispiel für die Abbildung der MODBUS
Adressen auf S7-Speicherbereiche dargestellt.
WRITE_ Datenbereiche können in der Betriebsart „CP ist Server“ mit einem
PROTECTx Schreibschutz versehen werden. So kann sichergestellt werden, dass der
Client auf bestimmte Datenbereiche der S7 nicht schreibend zugreifen kann.
SERVER_CLIENT Dieser Parameter unterscheidet Client- und Serverbetrieb. Ist der Eingang
TRUE, wird in der Betriebsart „CP ist Server“ gearbeitet.
Die Einstellung FALSE wählt die Betriebsart „CP ist Client“ aus.
DONE_NDR In der Betriebsart „CP ist Client“ wurde der aktivierte Auftrag fehlerfrei
beendet. Bei einer lesenden Funktion wurden die Antwortdaten vom Server
bereits im DB eingetragen, bei einer schreibenden Funktion wurde vom
Server die Antwort auf das Anforderungstelegramm erhalten.
In der Betriebsart „CP ist Server“ zeigt der Ausgang einen fehlerfrei
beendeten Telegrammverkehr mit dem Client an. In den Parametern
READ_WRITE, START_ADDRESS und LENGTH werden die
Auftragsparameter des Client angezeigt. Diese Ausgänge sind nur gültig so
lange DONE_NDR gesetzt ist.
ERROR Wenn dieser Ausgang gesetzt ist, wurde ein Fehler erkannt.
In der Betriebsart „CP ist Client“ wurde der aktivierte Auftrag mit Fehler
abgeschlossen. Die zugehörige Fehlernummer wird im Ausgang STATUS
angezeigt.
STATUS Der Ausgang STATUS zeigt bei gesetztem ERROR die Fehlernummer an.
Die Fehlernummern sind im Kapitel 6 beschrieben.
LENGTH Der Parameter LENGTH bestimmt die Anzahl der MODBUS Register die
geschrieben bzw. gelesen wird. In der Betriebsart “CP ist Client“ handelt es
sich um einen Eingangs-, in der Betriebsart „CP ist Server“ um einen
Ausgangsparameter.
Bei lesenden Funktionen sind pro Telegramm maximal 125 Register möglich.
Bei schreibenden Funktionen beträgt die maximale Anzahl 100 Register.
Diese müssen je Telegramm immer im gleichen DB liegen.
WRITE_READ Dieser Parameter definiert ob eine lesende oder schreibende Funktion ausge-
führt werden soll. Hat der Ein-/Ausgang den Wert FALSE, handelt es sich um
eine lesende Funktion. Der Wert TRUE definiert eine schreibende Funktion.
In der Betriebsart “CP ist Client“ handelt es sich um einen Eingangs-, in der
Betriebsart „CP ist Server“ um einen Ausgangsparameter.
Der Transaction Identifier dient zur Erkennung von Telegrammen bzw. der
Zuordnung von Request zu Response. Der FB MODBUS kann diese
Zuordnung nur Vornehmen, wenn der TI auch bei jedem Telegramm
verändert wird. Bestimmte durch TCP bedingte Situationen können nur bei
Veränderung des TI aufgelöst werden. Nur dann ist eine zuverlässige
Funktion des FB gewährleistet. Wir empfehlen deshalb, den TI bei jedem
Request um 1 zu erhöhen.
UNIT In der Funktion „CP ist Client“ ist der Parameter UNIT ein Eingangs-
parameter. Dieser Eingang ist den Anforderungen entsprechend zu setzen.
Der FB übernimmt diesen Wert ins Anforderungstelegramm und überprüft ihn
beim Empfang der Antwort.
In der Funktion „CP ist Server“ ist der Parameter UNIT ein Ausgangs-
parameter. Der FB übernimmt den Wert aus dem Anforderungstelegramm in
die Antwort. Der Ausgang wird mit bei beendetem Auftrag mit dem
empfangenen Wert gesetzt.
DB 10
DB 11
DB 12
Parameter- Nachfolgend sind die Parameter für FB MODB4 aufgeführt, die zusätzlich zu
beschreibung den Parametern des FB MODBUS zur Verfügung stehen.
INPUT_ IN/ BOOL CP/FB arbeitet auf Input Register (FC3) TRUE nein
HOLDING OUT oder Holding Register (FC4) FALSE
DB_x Der FB MODB4 bietet zusätzlich 3 Datenbereiche DB_6 bis DB_8 für die
START_x Abbildung der MODBUS Registeradressen im S7-Speicher beim Zugriff auf
END_x Input Register. Es muss mindestens ein Datenbereich definiert werden, die
anderen 2 Datenbereiche sind optional. Die drei Datenbereiche können nur
gelesen werden.
Mit einem Auftrag kann immer nur aus einem DB gelesen werden. Zugriffe
auf Register, die in mehreren DBs liegen, auch wenn diese lückenlos
hintereinander liegen, sind auf zwei Aufträge aufzuteilen. Dies ist bei der
Projektierung zu berücksichtigen.
Der Parameter DB_x legt den Datenbaustein fest, in dem die nachfolgend
definierten MODBUS Register abgebildet werden. Mit START_x wird die erste
Registeradresse die im Datenwort 0 des DB abgebildet wird angegeben.
END_x definiert die Adresse des letzten MODBUS Registers.
Input Register und Holding Register werden jeweils von 0 bis FFFFH
adressiert. Diese Register sind physikalisch unterschiedliche Speicher-
bereiche. Es darf innerhalb DB_1 bis DB_5, sowie innerhalb DB_6 bis DB_8
keine Überlappungen von Registernummern geben. Es dürfen aber die
gleichen Registernummern sowohl in DB_1 bis DB_5 als auch in DB_6 bis
DB_8 vorkommen.
INPUT_HOLDING Dieser Parameter definiert ob Input Register oder Holding Register bearbeitet
werden. Hat der Ein-/Ausgang den Wert FALSE, werden Holding Register
bearbeitet. Der Wert TRUE bedeutet, dass Input Register bearbeitet werden.
In der Betriebsart “CP ist Client“ handelt es sich um einen Eingangs-, in der
Betriebsart „CP ist Server“ um einen Ausgangsparameter.
Holding Register können gelesen und beschrieben werden. Das Lesen der
Holding Register erfolgt mit dem Funktionscode 3, mit dem Funktionscode 16
können Holding Register geschrieben werden.
Input Register können nur gelesen werden. Das Lesen der Input Register
erfolgt mit dem Funktionscode 4.
Instanz DB Der Funktionsbaustein MODBUS speichert seine Daten in einem Instanz DB.
Dieser Instanz DB wird beim ersten Aufruf des FB durch STEP 7 generiert.
Lokale Variablen Für den FB werden 102 Bytes Lokaldaten benötigt. Hinzu kommen die
Lokaldaten von einem AG_SEND oder AG_RECV, je nach Baustein bis zu 58
Bytes. Das ergibt maximal 160 Byte Lokaldaten für einen FB MODBUS-
Aufruf.
Mit folgenden Versionen der FCs ist der FB MODBUS getestet und
freigegeben:
SFCs für sonstige Der FB MODBUS verwendet folgende SFCs aus der Standardbibliothek:
Funktionen
• SFC6 „READ_SINFO“
• SFC24 “TEST_DB”
Mit dem SFC6 überprüft der FB ob er aus dem OB100 oder dem OB1
aufgerufen wurde und entscheidet so, ob der Initialisierungsteil oder der
zyklische Ablauf bearbeitet werden sollen.
Mit dem SFC24 wird überprüft, ob der in DB_x parametrierte DB zur Laufzeit
in der erforderlichen Länge vorhanden ist.
5 Übertragungsprotokoll
5.1 Kommunikationsstruktur
Prinzipeller Das MODBUS Protokoll definiert eine Protocol Data Unit PDU unabhängig
Telegrammaufbau vom unterlagerten Protokoll. Das MODBUS Protokoll kann in der
des MODBUS Applikation Data Unit ADU, je nach Übertragungsmedium, zusätzliche
Protokolls Felder enthalten.
ADU
PDU
Telegrammaufbau Das folgende Bild stellt den Telegrammaufbau bei MODBUS/TCP graphisch
bei MODBUS/TCP dar.
PDU
5.2 Überblick
Client/Server Die Automatisierungsgeräte S7 mit ihre CPs und FB können sowohl als
Server als auch als Client betrieben werden.
Der Multitaskbetrieb des Servers wird dabei nicht unterstützt.
Aufbau des Einem Telegramm bei Open MODBUS/TCP ist ein Header vorangestellt.
Protokolls Dieser Header ist bei Anforderungs- und Antworttelegrammen identisch
aufgebaut und besteht aus 6 Bytes.
Danach folgen:
Transaction Der Transaction Identifier TI wird gemäß MODBUS Spezifikation vom Server
Identifier aus dem Anforderungstelegramm ins Antworttelegramm umkopiert.
In der Betriebsart „CP ist Client“ wird der empfangene Transaction Identifier
mit dem gesendeten verglichen. Treten Unterschiede auf, wird der aktivierte
Auftrag mit Fehler beendet.
In der Betriebsart „CP ist Server“ wird der empfangene Transaction Identifier
ins Antworttelegramm umkopiert.
Protocol Identifier Der Protocol Identifier muss immer 0 sein. Der FB setzt den Protocol
Identifier bei Sendetelegrammen auf 0. Beim Empfang von Telegrammen
wird der Protocol Identifier auf den Wert 0 überprüft. Ein Wert ungleich 0
bewirkt eine Fehlermeldung.
Length Field Die Längenangabe im Length Field definiert die Datenlänge des
Telegramms ohne Header (beginnend mit Byte 6). Über die
Telegrammlänge wird das Ende des Telegramms bestimmt. Folgende
Telegrammlängen sind bei Anforderungs- und Antworttelegramm bei den
Funktionen Lesen und Schreiben zulässig:
Anforderung Antwort
Lesen 6 3 oder 5 bis 253
Schreiben 9 bis 207 3 oder 6
Unit Identifier Der Parameter UNIT kennzeichnet einen Slave der an einer seriellen
Verbindung oder an einem anderen Bus angeschlossen ist. Er wird zur
systeminternen Adressierung verwendet.
Mit MODBUS/TCP wird der Parameter UNIT vom Anforderungs- ins
Antworttelegramm umkopiert. Der Master überprüft, dass die UNIT des
empfangenen Telegramms identisch mit der gesendeten ist.
Funktionscode Der Funktionscode beschreibt die Funktion des Telegramms. Abhängig vom
Funktionscode unterscheidet sich der Aufbau der Telegrammdaten.
Interpretation der Das MODBUS Datenmodell basiert auf einer Reihe von Speicherbereichen
MODBUS die unterschiedliche Charakteristiken haben. Die Unterscheidung dieser
Registeradressen Speicherbereiche erfolgt bei einigen Systemen, z.B. MODICON PLCs über
die Registeradresse. So wird z.B. das Holding Register mit Offset 0 als
Register 40001 bezeichnet (Speichertyp 4xxxx, Reference 0001).
Allgemein Mit diesem Funktionscode können mehrere Holding Register gelesen werden.
Das Anforderungstelegramm enthält neben der UNIT und dem Funktionscode
die Registeranfangsadresse und die Anzahl der zu lesenden Register.
Allgemeines In bestimmten Fehlerfällen antwortet der Server mit einem Exception Code
Telegramm.
Telegrammaufbau Das Exception Code Telegramm enthält neben der UNIT den Funktionscode
mit gesetztem Bit 27 und den Exception Code.
Der unten abgebildeten Telegrammstruktur wird der OPEN MODBUS / TCP
spezifische Header vorangestellt.
Allgemein Mit diesem Funktionscode können mehrere Input Register gelesen werden.
Das Anforderungstelegramm enthält neben der UNIT und dem Funktionscode
die Registeranfangsadresse und die Anzahl der zu lesenden Register.
6 Diagnose
Diagnose- Die Diagnosefunktionen des CP 343 / 443 erlauben Ihnen ein schnelles
funktionen Lokalisieren aufgetretener Fehler. Folgende Diagnosemöglichkeiten stehen
zur Verfügung:
Anzeigeelemente Die Anzeigeelemente informieren Sie über den Betriebszustand bzw. über
(LED)Fehler! mögliche Fehlerzustände des CPs. Die Anzeigeelemente geben Ihnen einen
Textmarke nicht ersten Überblick über aufgetretene interne bzw. externe Fehler sowie
definiert. schnittstellenspezifische Fehler.
Anzeigefunktionen Über die Anzeigeelemente des CP erhalten Sie Auskunft über die Baugruppe.
Zu unterscheiden sind folgende Anzeigefunktionen:
• Sammelstörungsanzeigen
• Sonderanzeigen
CP 343-1:
- RX/TX ein Telegramm wird über die Schnittstelle übertragen
CP 443-1:
- TXD ein Telegramm wird über die Schnittstelle gesendet
- RXD ein Telegramm wird über die Schnittstelle empfangen
• CP ist Server:
UNIT im zulässigen Bereich.
• Wertebereich LENGTH
Überprüfungen im Antworttelegramm:
• Protocol Identifier = 0
• Protocol Identifier = 0
Verlorene Die hier beschriebene verlorene Synchronisation kann nur bei einem groben
Synchronisation Fehlverhalten des Koppelpartners oder massiven Störungen auf der
Übertragungsstrecke auftreten.
Fehlermeldungen Der FB MODBUS benutzt die Standardbausteine SFC6, SFC24, FC5 und
der aufgerufenen FC6 bzw. FC50 und FC60. Die Fehlermeldungen dieser Bausteine werden
SFCs und FCs unverändert weitergegeben.
7 Applikationsbeispiel
Das S7Programm soll als Informationsquelle dienen und kann nicht als
verbindlicher Lösungsvorschlag kundenspezifischer Anlagenkonfigura-
tionen betrachtet werden.
Beispiel-Projekt Auf der CD finden Sie ein umfangreiches Beispielprojekt in dem für alle
auf der CD Funktionsvarianten Simatic-Stationen angelegt wurden.
• Simatic Station ist S7-300 oder S7-400
• Simatic Station ist Client oder Server
• Verwendung von FB MODBUS oder FB MODB4
Wenn eine S7 als Client mit einem Fremdgerät arbeitet, verwenden Sie bitte
die TCP-Verbindung zur „anderen Station“.
Wenn eine S7 als Server mit einem Fremdgerät arbeitet, verwenden Sie bitte
die unspezifizierte TCP-Verbindung.
Wenn 2 S7 miteinander gekoppelt werden, verwenden Sie die TCP-
Verbindung S7-S7.
OB 1 Zyklische Programmbearbeitung
OB 100 Anlauf-OB für Neustart
Baustein Kommentar
OB 1 Zyklische Programmbearbeitung
OB 100 Start-Up-OB
FB 200 "INITIATE_MODBUS"
Der FB 200 kopiert seine Parameter in den Datenbaustein DB222, so dass dem
Anwender die Möglichkeit gegeben wird mit Hilfe einer Variablentabelle
Aufträge anzustoßen.
L #ID
T "CONTROL DAT".ID
L #LADDR
T "CONTROL DAT".LADDR
L #DB_1
T "CONTROL DAT".DB_1
L #START_1
T "CONTROL DAT".START_1
L #END_1
T "CONTROL DAT".END_1
L #DB_2
T "CONTROL DAT".DB_2
L #START_2
T "CONTROL DAT".START_2
L #END_2
T "CONTROL DAT".END_2
L #DB_3
T "CONTROL DAT".DB_3
L #START_3
T "CONTROL DAT".START_3
L #END_3
T "CONTROL DAT".END_3
L #DB_4
T "CONTROL DAT".DB_4
L #START_4
T "CONTROL DAT".START_4
L #END_4
T "CONTROL DAT".END_4
L #DB_5
T "CONTROL DAT".DB_5
L #START_5
T "CONTROL DAT".START_5
L #END_5
U #SERVER_CLIENT
= "CONTROL DAT".SERVER_CLIENT
ID :="CONTROL DAT".ID
LADDR :="CONTROL DAT".LADDR
TIMER_NR :=#TIMER_NR
MONITOR :=
DB_1 :="CONTROL DAT".DB_1
START_1 :="CONTROL DAT".START_1
END_1 :="CONTROL DAT".END_1
DB_2 :="CONTROL DAT".DB_2
START_2 :="CONTROL DAT".START_2
END_2 :="CONTROL DAT".END_2
DB_3 :="CONTROL DAT".DB_3
START_3 :="CONTROL DAT".START_3
END_3 :="CONTROL DAT".END_3
DB_4 :="CONTROL DAT".DB_4
START_4 :="CONTROL DAT".START_4
END_4 :="CONTROL DAT".END_4
DB_5 :="CONTROL DAT".DB_5
START_5 :="CONTROL DAT".START_5
END_5 :="CONTROL DAT".END_5
WRITE_PROTECT1 :=
WRITE_PROTECT2 :=
WRITE_PROTECT3 :=
WRITE_PROTECT4 :=
WRITE_PROTECT5 :=
ENQ_ENR :=
SERVER_CLIENT :="CONTROL DAT".SERVER_CLIENT
DONE_NDR :=
ERROR :="CONTROL DAT".ERROR
STATUS :="CONTROL DAT".STATUS
START_ADDRESS :=
LENGTH :=
WRITE_READ :=
TI :=
UNIT :=
UN "CONTROL DAT".ERROR
SPB TRIG //Init fertig ohne Fehler
L 1
T "CONTROL DAT".START_ADDRESS
L 2
T "CONTROL DAT".LENGTH
SET
= "CONTROL DAT".WRITE_READ
U "CONTROL DAT".ENQ_ENR
R "CONTROL DAT".ENQ_ENR //Anstoß rücksetzen
TRIG:
L "CONTROL DAT".TI //TI mit jedem Auftrag erhöhen
L 1
+I
T "CONTROL DAT".TI
SET
= "CONTROL DAT".ENQ_ENR //Anstoß
//Werte für den neuen Auftrag
//hier vorbelegen
Baustein Kommentar
OB 1 Zyklische Programmbearbeitung
OB 100 Start-Up-OB
FB 200 "INITIATE_MODBUS"
Der FB 200 kopiert seine Parameter in den Datenbaustein DB222. Der Anwender kann
mit Hilfe einer Variablentabelle die Aufträge beobachten.
L #ID
T "CONTROL DAT".ID
L #LADDR
T "CONTROL DAT".LADDR
L #DB_1
T "CONTROL DAT".DB_1
L #START_1
T "CONTROL DAT".START_1
L #END_1
T "CONTROL DAT".END_1
L #DB_2
T "CONTROL DAT".DB_2
L #START_2
T "CONTROL DAT".START_2
L #END_2
T "CONTROL DAT".END_2
L #DB_3
T "CONTROL DAT".DB_3
L #START_3
T "CONTROL DAT".START_3
L #END_3
T "CONTROL DAT".END_3
L #DB_4
T "CONTROL DAT".DB_4
L #START_4
T "CONTROL DAT".START_4
L #END_4
T "CONTROL DAT".END_4
L #DB_5
T "CONTROL DAT".DB_5
L #START_5
T "CONTROL DAT".START_5
L #END_5
T "CONTROL DAT".END_5
U #WRITE_PROTECT1
= "CONTROL DAT".WRITE_PROTECT1
U #WRITE_PROTECT2
= "CONTROL DAT".WRITE_PROTECT2
U #WRITE_PROTECT3
= "CONTROL DAT".WRITE_PROTECT3
U #WRITE_PROTECT4
= "CONTROL DAT".WRITE_PROTECT4
U #WRITE_PROTECT5
= "CONTROL DAT".WRITE_PROTECT5
U #SERVER_CLIENT
= "CONTROL DAT".SERVER_CLIENT
ID :="CONTROL DAT".ID
LADDR :="CONTROL DAT".LADDR
TIMER_NR :=#TIMER_NR
MONITOR :=
DB_1 :="CONTROL DAT".DB_1
START_1 :="CONTROL DAT".START_1
END_1 : ="CONTROL DAT".END_1
DB_2 :="CONTROL DAT".DB_2
START_2 :="CONTROL DAT".START_2
END_2 :="CONTROL DAT".END_2
DB_3 :="CONTROL DAT".DB_3
START_3 :="CONTROL DAT".START_3
END_3 :="CONTROL DAT".END_3
DB_4 :="CONTROL DAT".DB_4
START_4 :="CONTROL DAT".START_4
END_4 :="CONTROL DAT".END_4
DB_5 :="CONTROL DAT".DB_5
START_5 :="CONTROL DAT".START_5
END_5 :="CONTROL DAT".END_5
WRITE_PROTECT1 :="CONTROL DAT".WRITE_PROTECT1
WRITE_PROTECT2 :="CONTROL DAT".WRITE_PROTECT2
WRITE_PROTECT3 :="CONTROL DAT".WRITE_PROTECT3
WRITE_PROTECT4 :="CONTROL DAT".WRITE_PROTECT4
WRITE_PROTECT5 :="CONTROL DAT".WRITE_PROTECT5
ENQ_ENR :=
SERVER_CLIENT :="CONTROL DAT".SERVER_CLIENT
DONE_NDR :=
ERROR := :="CONTROL DAT".ERROR
STATUS := :="CONTROL DAT".STATUS
START_ADDRESS :=
LENGTH :=
WRITE_READ :=
TI :=
UNIT :=
ID :=
LADDR :=
TIMER_NR :=
MONITOR :="CONTROL DAT".MONITOR
DB_1 :=
START_1 :=
END_1 :=
DB_2 :=
START_2 :=
END_2 :=
DB_3 :=
START_3 :=
END_3 :=
DB_4 :=
START_4 :=
END_4 :=
DB_5 :=
START_5 :=
END_5 :=
WRITE_PROTECT1 :=
WRITE_PROTECT2 :=
WRITE_PROTECT3 :=
WRITE_PROTECT4 :=
WRITE_PROTECT5 :=
ENQ_ENR :=”CONTROL DAT".ENQ_ENR
SERVER_CLIENT :=
DONE_NDR :="CONTROL DAT".DONE_NDR
ERROR :="CONTROL DAT".ERROR
STATUS :="CONTROL DAT".STATUS
START_ADDRESS :="CONTROL DAT".START_ADDRESS
LENGTH :="CONTROL DAT".LENGTH
WRITE_READ :="CONTROL DAT".WRITE_READ
TI :="CONTROL DAT".TI
UNIT :=”CONTROL DAT".UNIT
Andy Swales
Schneider Electric
MODBUS http://www.modbus.org
Arbeitsspeicher Der Arbeitsspeicher ist ein RAM-Speicher in der CPU, auf den der
Prozessor während der Bearbeitung des Anwenderprogramms zugreift.
Baustein Bausteine sind durch ihre Funktion, ihre Struktur oder ihren
Verwendungszweck abgegrenzte Teile des Anwenderprogramms. Es
gibt bei STEP 7
_Codebausteine (FB, FC, OB, SFB, SFC)
_Datenbausteine (DB, SDB) und
_Anwenderdefinierte Datentypen (UDT)
Betriebssystem der Das Betriebssystem der CPU organisiert alle Funktionen und Abläufe
CPU der CPU, die nicht mit einer speziellen Steuerungsaufgabe verbunden
sind.
Datenbaustein (DB) Datenbausteine sind Bausteine, die Daten und Parameter enthalten, mit
denen das Anwenderprogramm arbeitet. Sie enthalten im Gegensatz zu
allen anderen Bausteinen keine Anweisungen. Es gibt globale
Datenbausteine und Instanzdatenbausteine.
Auf die in den Datenbausteinen enthaltenen Daten kann absolut oder
symbolisch zugegriffen werden. Komplexe Daten können strukturiert
abgelegt werden.
Datentyp Mit Hilfe der Datentypen können Sie festlegen, wie der Wert einer
Variablen oder Konstanten im Anwenderprogramm verwendet werden
soll. Die Datentypen sind unterteilt in elementare und strukturierte
Datentypen.
Online-Hilfe STEP 7 bietet Ihnen die Möglichkeit, sich während des Arbeitens mit
der Programmiersoftware kontextabhängige Hilfetexte am Bildschirm
anzeigen zu lassen.
Operand Ein Operand ist Teil einer STEP 7-Anweisung und sagt aus, womit der
Prozessor etwas tun soll. Er kann sowohl absolut als auch symbolisch
adressiert werden.
Parameter Parameter sind Werte, die man vergeben kann. Man unterscheidet
zwischen Bausteinparametern und Baugruppenparametern.
Parametrierung Unter Parametrierung versteht man das Einstellen des Verhaltens einer
Baugruppe.
Rack Ein Rack ist ein Baugruppenträger, der Steckplätze für Baugruppen
enthält.
Tool Ein Tool ist ein Software-Werkzeug, das auf Funktionen des
Betriebssystems im PG/PC zugreifen kann.
Variable Eine Variable ist ein Operand (z. B. E 1.0), der einen symbolischen
Namen haben kann und deshalb auch symbolisch adressiert werden
kann.
Zykluszeit Die Zykluszeit ist die Zeit, die die CPU für eine einmalige Bearbeitung
des Anwenderprogramms benötigt.