Der Profibus Master Treiber ermöglicht es Datenpunke/Bytes aus Profibus Slave Teilnehmern auszulesen und zu beschreiben. Dabei können maximal 244 Byte in jeder Richtung übertragen werden.
Der Name des Profibus-Master-Treibers lautet: dpmh
Die Routing-Adresse des ersten Profibus-Master-Treibers ist die 1060
Die Datenpunktdatei für den ersten Profibus-Master-Treiber heißt: dpmh1.txt
Die Konfigurationsdatei für globale Einstellungen des ersten Profibus-Master-Treibers heißt: dpmh1.cfg
In der dpmh1.cfg müssen unter anderem die Cfg- und Prm-Daten aus den *.gsd-Dateien der anzubindenden Slaves eingetragen werden.
Bei dem Profibus-Treiber sowie allen weiteren Gateway-Treibern gilt für die Definiton von Datenpunkten in der Datenpunktdatei:
Typ: | Bedeutung |
---|---|
M | Ganzzahliger Wert (Binäre Datenpunkte,Zählwerte) der vom Gateway nur gelesen werden kann/soll. |
S | Ganzzahliger Wert der vom Gateway gelesen sowie geschrieben werden kann/soll. |
X | Analogwert (mit Nachkommastellen) der vom Gateway nur gelesen werden kann/soll. |
Y | Analogwert (mit Nachkommastellen) der vom Gateway gelesen sowie geschrieben werden kann/soll. |
A | String, findet z.B. Verwendung bei BACnet Trends und ESPA4.4.4 Datenpunkten |
Die Adressen sind wie folgt aufgebaut.
„<typ> <slave>.<byte>[.<bit>]“
Dabei gilt folgende Definition:
Wertebereich | Beschreibung | |
---|---|---|
Typ | inbyte inbit outbyte outbit | Bytewert der vom Master gelesen werden kann. Einzelbit das vom Master gelesen werden kann. Bytewert der vom Master geschrieben werden kann. Einzelbit das vom Master geschrieben werden kann. |
slave | ||
byte | 0 - 243 | n-te Byte im Eingangs- bzw. Ausgangsregister |
bit | 0 - 7 | Einzelbit innerhalb des n-ten Bytes |
Die Adresse des inbyte 120 vom Slave 2 wird demnach wie folgt in der Datei dpmh1.txt angegeben:
[X inbyte 2.120]
Um dem Treiber mitzuteilen wie er die unter einer Adresse abgelegten Informationen auswerten kann muss für jeden Datenpunkt das Format übergeben werden. Dies erfolgt anhand der Formatdefinition:
format = <format> [S:<swap>] [F:<fact>]
Dabei kann <format> folgende Werte annehmen:
<format> | Beschreibung |
---|---|
BIT | Einzelbit |
UINT8 | 8bit unsigned |
SINT8 | 8bit signed |
UINT16 | 16bit unsigned |
SINT16 | 16bit signed |
UINT32 | 32bit unsigned |
SINT32 | 32bit signed |
FLOAT32 | 32bit floating point (IEEE) |
FLOAT64 | 64bit floating point (IEEE) |
Formate größer 8bit benötigen mehr als ein Byte, daher werden nachfolgende Bytes genutzt. Diese Bytes sind dann für andere Datenpunkte nicht mehr verwendbar!
Für die Interpretation der Datenpunkte einiger Geräte kann es nötig sein die Bytereihenfolge eines Formates zu tauschen. Dies kann mit dem <swap> Parameter übergeben werden.
Dabei kann <swap> folgende Werte annehmen:
<swap> | Beschreibung |
---|---|
0 | little endian (Intel) |
1 | big endian (Motorola, default) |
Mit dem Parameter „F:“ kann dem Datenpunkt ein Faktor übergeben werden. Der empfangene Wert wird dann jeweils durch den als Faktor angegebenen Wert geteilt. Um mit Integer-Werten z.B. analoge Daten mit Nachkommastelle abbilden zu können kann z.B. der Wert auf Seite des sendenden Gerätes mit 10 Multipliziert und beim Empfänger wieder durch 10 Dividiert werden. Die Temperatur 20,5 °C wird so beispielsweise als 205 übertragen. Damit diese auf dem Gateway wiederrum korrekt dargestellt wird wird an das Format der Parameter F:10.0 übergeben. Als Faktor kann jede beliebige Fließkommazahl angegeben werden. Ist kein Faktor angegeben wir der Faktor 1.0 verwendet.
Typische Datenpunktdefinitionen können demnach sein:
[M inbit 2.120.0]
name = digitale Betriebsmeldung
query = pe
format = BIT
[S outbit 2.120.0]
name = digitaler Sollwert
query = pe
format = BIT
writecache = yes
[M inbyte 2.15]
name = multistate Meldung z.B. 0,1,2 für Aus,An,Auto
query = pe
format = UINT8
writecache = yes
[S outbyte 2.16]
name = multistate Sollwert z.B. Stufenschalter 0,1,2 für Aus,An,Auto
query = pe
format = UINT8
writecache = yes
[X inbyte 2.17]
name = Temperatur Messwert (Byte 17+18+19+20)
query = pe
format = FLOAT32
[Y outbyte 2.17]
name = Temperatur Sollwert, eine Nachkommastelle (Byte 17+18)
query = pe
format = SINT16 F:10