Benutzer-Werkzeuge

Webseiten-Werkzeuge


profibus_slave

Profibus Slave

Der Profibus Slave Treiber ermöglicht es Datenpunke/Bytes als Profibus Slave Teilnehmer zur Verfügung zu stellen. Dabei können maximal 244 Byte in jeder Richtung übertragen werden.

Die benötigte GSD-Datei ist die hil_0b69.gsd.

Der Name des Profibus-Slave-Treibers lautet: dpsh
Die Routing-Adresse des ersten Profibus-Slave-Treibers ist die 1080
Die Datenpunktdatei für den ersten Profibus-Slave-Treiber heißt: dpsh1.txt
Die Konfigurationsdatei für globale Einstellungen des ersten Profibus-Slave-Treibers heißt: dpsh1.cfg
In der dpsh1.cfg wird unter anderem die Slave Adresse des Gateways eingetragen.

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> <byte>[.<bit>]“

Je nachdem ob Werte oder Einzelbits übertragen werden sollen gilt für den Typ 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
byte 0 - 243 n-te Byte im Eingangs- bzw. Ausgangsregister
bit 0 - 7 Einzelbit innerhalb des n-ten Bytes

Die Adresse des ersten Bytes das zum Master übertragen werden kann wird demnach wie folgt in der Datei dpsh1.txt angegeben:

[Y inbyte 0]

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:

[S inbit 1.0]
 name = digitale Betriebsmeldung
 query = pe
 format = BIT
 writecache = yes
[M outbit 1.0]
 name = digitaler Sollwert
 query = pe
 format = BIT
[S inbyte 15]
 name = multistate Meldung z.B. 0,1,2 für Aus,An,Auto
 query = pe
 format = UINT8
 writecache = yes
[M outbyte 16]
 name = multistate Sollwert  z.B. Stufenschalter 0,1,2 für Aus,An,Auto
 query = pe
 format = UINT8
[Y inbyte 17]
 name = Temperatur Messwert (Byte 17+18+19+20)
 query = pe
 format = FLOAT32
 writecache = yes
[X outbyte 17]
 name = Temperatur Sollwert, eine Nachkommastelle (Byte 17+18)
 query = pe
 format = SINT16 F:10
 

Zykluszeit

Die Auswertung von Änderungen an empfangenen Daten (outbyte/outbit) erfolgt in einer festgelegten Zykluszeit. Diese beträgt derzeit 100ms, d. h. eine Änderung muss mindestens diese Zeit anliegen, um korrekt empfangen zu werden.

profibus_slave.txt · Zuletzt geändert: 14.06.2018 10:06 von joe