|
<< Click to Display Table of Contents >> Navigation: Komponenten > Treiber > Modbus Master > Kanäle |
Import / Export
Diese Funktion vereinfacht das Anlegen der Kanäle, da nicht jeder Kanal im Kanal Editor einzeln angelegt werden muss.
Wichtig dabei ist das das zu importierende Dokument ein XML File ist mit der korrekten Formatierung. Am einfachsten wird ein Kanal angelegt, dieser exportiert, bearbeitet/ergänzt und anschließend wieder importiert.
Beispiel XML-Datei Aufbau:
<?xml version="1.0" encoding="utf-8"?>
<ModbusChannelList>
<ModbusChannel Name="FC3_22_BIT" Id="31" DeviceId="10" Address="25" Count="1" ValueType="BIT" Function="SPECIAL_HOLDING_REGISTER_RW_BIT_ACCESS" Factor="1" Offset="0" Unit="" NullOnReadError="False" TriggerWriteAll="False" StaticRegister="False" MinValidValue="0" MaxValidValue="0" />
<ModbusChannel Name="FC3_BIT" Id="25" DeviceId="10" Address="27" Count="1" ValueType="BIT" Function="SPECIAL_HOLDING_REGISTERS_RO_BIT_ACCESS" Factor="1" Offset="0" Unit="" NullOnReadError="False" TriggerWriteAll="False" StaticRegister="False" MinValidValue="0" MaxValidValue="0" />
<ModbusChannel Name="FC6_BIT" Id="21" DeviceId="10" Address="26" Count="1" ValueType="BIT" Function="SPECIAL_HOLDING_REGISTER_WO_BIT_ACCESS" Factor="1" Offset="0" Unit="" NullOnReadError="False" TriggerWriteAll="False" StaticRegister="False" MinValidValue="0" MaxValidValue="0" />
...
...
</ModbusChannelList>
Kanäle
Name |
Geräte ID [0 - 247] |
Funktion |
Register Adresse [dezimal] |
Datentyp |
Anzahl Register |
Faktor |
Offset |
Min valide value |
Max valide value |
Einheit |
Null bei Lesefehler senden |
Löst "alle schreiben" aus |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
Kanal001 |
1 |
Coil lesen (1) |
0 |
Bit |
1 |
1 |
0 |
0 |
0 |
|
|
|
... |
|
|
|
|
|
|
|
|
|
|
|
|
Spalten, welche mit (*) markiert sind, können gemeinsam editiert werden. Hierfür müssen die Zeilen markiert sein.
Bezeichnung |
Beschreibung |
|---|---|
Name |
Bezeichnung des Kanals welcher im Ordner Dynamisch im Kommunikationsfenster angezeigt wird. Mit # können Unterordner erstellt werden, wobei der Text vor # der Ordner-Name darstellt und der Text nach dem # der Datenpunkt-Name ist. Somit lassen sich Datenpunkte zusammenfassen. Beispiel: Strom#L1; Strom#L2; Strom#L3 - Im Ordner Dynamisch erscheint ein Ordner Strom, welcher die Datenpunkte L1; L2; L3 beinhaltet. |
Geräte ID [0 - 247] |
In den Geräteeinstellungen des Modbus Geräts vergebene Geräte ID, jedem Gerät muss eine eigene ID zugewiesen werden damit es auch eindeutig identifiziert werden kann. Entfällt bei den meisten Modbus-TCP Verbindungen. Über die ID 0 wird ein Broadcast an alle Geräte gesendet. |
Funktion |
Zum Abfragen von Werten werden verschiedenen Funktionscodes verwendet. Der Code wird normalerweise als Text und Zahl in Klammer angegeben. Der Zahlencode ist immer eindeutig. Der benötigte Funktionscode muss dem Produkthandbuch entsprechend gewählt werden. |
Register Adresse [dezimal] |
Adresse des Startregisters, ab hier werden die Werte ausgelesen oder geschrieben. Die Adresse muss in dezimal angegeben werden, in den Zuordnungstabellen sind diese häufig in HEX angegeben. Die Umrechnung kann z.B. über die Excel Funktion „=hex2dec“ oder dem Windows-Taschenrechner (Ansicht\Programmierer) erfolgen. |
Datentyp |
Der spezifische Datentyp für die auszulesenden Register, Eingänge, Ausgänge usw. Werden die auszulesenden Daten in mehreren Registern dargestellt, muss der Datentyp dementsprechend angepasst werden. |
Anzahl Register |
Anzahl der Register die abgefragt werden sollen (meist für Texte). |
Faktor |
Die ausgelesenen Werte können direkt mit einem Faktor versehen werden. Der Faktor gilt auch für das Beschreiben der Register. Von Master zu Slave wird dividiert, von Slave zu Master wird multipliziert. |
Offset |
Es kann ein Offset für das Ergebnis eingestellt werden, z.B. bei Temperaturen. |
Min valid value |
Einstellung um nur zulässige Werte zwischen diesem Mindestwert und dem Maximalwert ausgeben zu lassen. Ungültige Werte werden nicht am Datenpunkt ausgegeben (nur am Diagnose-Ausgang). Ist Min und Max value 0, wird der Grenzwert ignoriert. Die Ausgabe am Datenpunkt hängt auch von der Einstellung "Null bei Lesefehler senden". |
Max valid value |
Einstellung um nur zulässige Werte zwischen Mindestwert und diesem Maximalwert ausgeben zu lassen. Ungültige Werte werden nicht am Datenpunkt ausgegeben (nur am Diagnose-Ausgang). Ist Min und Max value 0, wird der Grenzwert ignoriert. Die Ausgabe am Datenpunkt hängt auch von der Einstellung "Null bei Lesefehler senden". |
Einheit |
Hier kann die Einheit des Wertes eingetragen werden. Diese wird im Ordner Dynamisch --> Einheit als Text ausgegeben. |
Null bei Lesefehler senden |
Kann das angegebene Register nicht oder nicht mehr ausgelesen werden, wird der Ausgang auf undefiniert gesetzt, keine Zahl 0. Ist ein Min/Max-Wert eingetragen gilt dies auch für Werte, welche außerhalb der Grenzen liegen. |
Löst "alle schreiben" aus |
Ist diese Option für einen Kanal gesetzt und wird dieser beschrieben, werden alle anderen beschreibbare Register auch neu geschrieben. Ohne diese Option wird nur dieses eine Register beschrieben. |
Methode |
Datentyp |
Dienst |
Code |
Zugriff |
Bemerkung |
|---|---|---|---|---|---|
Bitweise |
Ausgänge/Coils |
Coils lesen |
1 |
Read (lesen) |
Lesen digitaler Ausgänge (z.B. Relais) |
Bitweise |
Ausgänge |
Diskreten Eingang lesen |
2 |
Read (lesen) |
Lesen digitaler Eingänge |
Wortweise |
Ausgang |
Internes Register lesen (Holding) |
3 |
Read (lesen) |
Lesen von Messwerten, Zählerständen, Mittelwerten, Lesen der Geräte-Konfiguration |
Wortweise |
Ausgänge |
Eingangsregister lesen (Input) |
4 |
Read (lesen) |
Lesen von analogen Eingängen |
Bitweise |
Eingänge/Coils |
Coil setzen |
5 |
Write (schreiben) |
Schreiben eines digitalen Ausgangs (z.B. Relais) |
Wortweise |
Eingänge/Coils |
Register schreiben |
6 |
Write (schreiben) |
Schreiben von Werten Schreiben von Geräte-Konfiguration |
Bitweise |
Eingänge |
Mehrere Coils setzen |
15 |
Write (schreiben) |
Schreiben mehrere digitaler Ausgänge (z.B. Relais) |
Wortweise |
Eingänge |
Mehrere interne Register schreiben |
16 |
Write (schreiben) |
Schreiben von mehreren Werten |
Wortweise |
Bidirektional |
Internes Register lesen/schreiben |
3/6 |
Read/Write (lesen/schreiben) |
Lesen und schreiben eines Wertes |
Wortweise |
Bidirektional |
Mehrere interne Register lesen/schreiben |
3/16 |
Read/Write (lesen/schreiben) |
Lesen und schreiben von mehreren Werten |
Bitweise |
Bidirektional |
Coil lesen/schreiben |
1/5 |
Read/Write (lesen/schreiben) |
Lesen und schreiben eines digitalen Ausgangs |
Coils lesen/schreiben |
Bidirektional |
Mehrere Coils lesen/schreiben |
1/15 |
Read/Write (lesen/schreiben) |
Lesen und schreiben von mehreren digitalen Ein-/Ausgänge. |
Wortweise/Bit-Zugriff |
Ausgänge |
Eingangsregister Bit-Zugriff lesend |
4 |
Read (lesen) |
Lesen von analogen Eingängen Die Werte werden auf EisBärseite in einzelnen Bits ausgeben bzw. gesetzt. |
Wortweise/Bit-Zugriff |
Bidirektional |
Internes Register Bit-Zugriff lesen/schreiben |
3/22 |
Read/Write (lesen/schreiben) |
Lesen und schreiben von Messwerten, Zählerständen, Mittelwerten, Lesen und schreiben der Geräte-Konfiguration Die Werte werden auf EisBärseite in einzelnen Bits ausgeben bzw. gesetzt. |
Bitweise |
Bidirektional |
Mehrere interne Register Bit-Zugriff lesen/schreiben |
3/6 3/22 |
Read/Write (lesen/schreiben) |
Lesen und schreiben von mehreren Werten als Bit-Zugriff |