Modbus-Profibus
Dieses Repositorium enthält Konfigurationsdateien, Dokumenationen und Weiteres zu Profibus-Geräten und zum Zugriff auf sie über Modbus-TCP, insbesondere unter Verwendung des Modbus-Profibus-Gateways »NT 100-RE-DP« (Hilscher Gesellschaft für Systemautomation mbH, Hattersheim) und CDG-Messköpfen (Inficon).
Modbus-Profibus-Gateway »NT 100-RE-DP«
Konfiguration
Die Konfiguration des »NT 100-RE-DP« geschieht mit Hilfe des Windows-Programms (»Windows XP« oder neuer) »SYCON.net« (»Systemkonfigurator«), welches von der dem Gateway beiliegenden CD oder von dieser Adresse erhältlich ist. Dort sind auch nützliche Dokumentationen zu finden.
Über eine USB-Leitung wird das Gateway mit dem PC verbunden. Nach Start von
»SYCON.net« kann eine vorher gespeicherte Konfiguration (z.B.
»SE3-Inficon-CDGs«) an das Gateway übertragen werden. Für jede Art von
anzusprechendem Profibus-Gerät muss zur Konfiguration eine
Gerätebeschreibungsdatei vorhanden sein. Sie muss dem Geräte-Katalog von
»SYCON.net« zugefügt werden. Im Fall der CDG-Messköpfe von Inficon ist es die
Datei CDGX0B7E.GSD
(Quelle:
http://products.inficon.com/de-de/Product/Detail/Cube-copy-of-CDG045D). Aus den
dort definierten »Modulen« wurde »ExS,PVF,ChS,TpS« ausgewählt.
Unter dem Namen »SE3-Inficon-CDGs« existiert eine Gateway-Konfiguration, bei der 12 CDGs ansprechbar sind. Ihnen sind fortlaufende Profibus-Adressen von 1 bis 12 zugewiesen. Entsprechend müssen auch alle Adressschalters an den Messköpfen eingestellt werden. Diese Abbildung zeigt die eingestellte Adresse 2. (Vorsicht! Man neigt leicht dazu, die andere Seite des Einstellschlitzes als »Pfeilspitze« zu deuten.)
Die Gateway-Konfiguration ist zusätzlich auch noch auf einer SD-Speicherkarte gesichert. Sie kann bei Bedarf direkt vom Gateway gelesen werden.
Datenabfrage per Modbus-TCP
Aufgrund dessen, dass die Profibus-Adressen fortlaufend gewählt wurden, enthält ein durch Zugriff per Modbus-TCP (Funktion »ReadInputRegisters«) ausgelesener 96 Bytes langer Speicherbereich (12 * 8 Bytes) die Messwerte aller 12 CDGs. Maximal können mit einem einzelnen Modbus-TCP-Zugriff 250 Bytes (125 16-Bit-Zahlen) erfragt werden, was die mögliche einfache Auslesung von 31 CDGs bedeutet.
Es sei angenommen, dass zwei CDGs angeschlossen und ihnen die Profibus-Adressen »1« und »2« zugeordnet sind. Die Auslesung der ersten 16 Bytes (8 16-Bit-Werte) ergibt dann beispielsweise:
68,128,8,125,0,6,0,0,68,128,16,125,0,6,0,0
|=== 1 ===| E |=== 2 ===| E
Erklärung:
- Bereich 1: Vier Bytes, die eine Float-Zahl (einfache Genauigkeit) repäsentieren, wobei das letzte Byte das höchstwertige ist (»big endian«). Gewandelt erhält man hier 1024,17 mbar (z.B. mit der nodejs-Buffer-Funktion »readFloatBE«).
- Bereich 2: Wie oben, aber 1024,33 mbar.
- E: »Exception Status«. Wenn es sich um gültige Messwerte handelt, muss dieses Byte jeweils 0 sein. Gesetzte Bits bezeichnen eine bestimmte Art von Fehler.
Mit Anfrage an »relayServer« kann die Auslesung des Speicherbereichs folgendermaßen erfolgen:
cat <<EOF | curl -T - -X PUT http://localhost:55555
{"Action":"MODBUS","Host":"e75451","Address":0,"Quantity":48,
"FunctionCode":"ReadInputRegisters", "OutMode":"Buffer"}
EOF
("Quantity" bezeichnet die Anzahl von 16-Bit-Werten.) Die gezielte Abfrage des zweiten CDGs mit gleichzeitiger Wandlung der relevanten vier Bytes:
$ cat <<EOF | curl -T - -X PUT http://localhost:55555
{"Action":"MODBUS","Host":"e75451","Address":0,"Quantity":48,
"FunctionCode":"ReadInputRegisters", "OutMode":"Buffer",
"PostProcessing":"Result=_x.readFloatBE(8);"}
EOF
(Der Datenbereich des zweiten Profibus-Gerätes beginnt an der Stelle des achten Bytes.) Unter Verwendung einer speziellen Auswertefunktion kann der Zugriff auf eine oder mehrere Messwerte vereinfacht werden:
cat <<EOF | curl -T - -X PUT http://localhost:55555
{"Action":"MODBUS","Host":"e75451","Address":0,"Quantity":48,
"FunctionCode":"ReadInputRegisters", "OutMode":"Buffer",
"PostProcessing":"Result=_.readPBusCDG(_x,1,2);"}
EOF
Ergibt z.B.:
{"t_start":1463732948959,"t_stop":1463732948985,
"Result":[1031.92138671875,1024.0777587890625]}
Erklärung zu readPBusCDG(_x,1,2)
: Beginnend mit Messkopf 1 werden aus dem
übergebenen 96 Byte langen Buffer die Messwerte der beiden ersten Messköpfe
geliefert. Im Falle eines Fehlers (Exception-Status-Byte > 0) wird für den
betreffenden Messkopf null angezeigt. Die Anheizphase wird als fehlerhafter
Zustand ausgewiesen.
Verkabelung
CDG: D-Sub-9-Anschluss (Profibus)
.------------------------o------------------.
| .----------------|o-----------------|-------.
___ | ___ | ___ || ___ | ___ | ___
.-|___|-o-|___|-o-|___|-. || .-|___|-o-|___|-o-|___|-.
| 390 | 220 | 390 | || | 390 | 220 | 390 |
| '--..---' | || | '--..---' |
'-------. || .--------' || '-------. || .--------'
DGND | A||B | VP A||B DGND | A||B | VP
| || | A=grün || | || |
5| 8||3 |6 B=rot 8||3 5| 8||3 |6
__|__||__|___ _____||______ __|__||__|___
\ o o|o o|o / \ o o|o o o / \ o o|o o|o /
\ o o o o / Lötseite \ o o o o / \ o o o o /
--------- --------- ---------
Profibus-Master Erster Messkopf Letzter Messkopf
Die hier gezeigte Verkabelung wird durch Verwendung von D-Sub-9-Stecker, die speziell für Profibus-Geräte vorgesehen sind, stark erleichtert. Es ist nur darauf zu achten, dass die ankommende Busleitung immer an die Klemmanschlüsse 1A/1B und die weiterführende an 2A/2B angeschlossen wird. Am ersten Gerät (Profibus-Master) und am letzten Gerät muss der von außen zugängliche Schalter auf »On« stehen (Aktivierung der Abschlusswiderstände), in allen anderen Fällen auf »Off«.
CDG: D-Sub-15-Anschluss
V- V- V-
o----o--------o========o----o--------o========o----o--------o=====o +24V
| V+ | V+ | V+
o----|---o----o========o----|---o----o========o----|---o----o=====o 0V
S- | | S- | | S- | |
o--------.| | GND o--------.| | GND o--------.| | GND
o---. || |.---o o---. || |.---o o---. || |.---o
S+ | || || S+ | || || S+ | || ||
2| 12||5 7||15 2| 12||5 7||15 2| 12||5 7||15
____|____||___||___ ____|____||___||___ ____|____||___||___
\ o o o o|o o o|o / \ o o o o|o o o|o / \ o o o o|o o o|o /
\ o o o o o o o / \ o o o o o o o / \ o o o o o o o / Lötseite
--------------- --------------- ---------------
Erster Messkopf Zweiter Messkopf Letzter Messkopf
Erklärung:
- »S+/S-«: Analoges Messsignal an geschirmter 2-poliger Leitung. Die Abschirmung ist einseitig mit GNG (15) zu verbinden.
- »V+/V-«: Betriebsspannung (14...30V). In der Anheizphase ist mit einem Strom von ca. 750mA pro Messkopf zu rechnen. Später sinkt er auf ca. 200mA.