Voraussetzungen für die Nutzung des vito.xml Formates


Will ein Programm diese Konfiguration nutzen, müssen folgende Funktionen zur Verfügung gestellt werden:
  1. Pro angegebenem Protokoll müssen die Befehle getaddr und setaddr vorhanden sein
  2. Die in der Datei genutzen Units müssen bekannt und umgesetzt sein.

1. Protokolle

Die Kommunikation mit der Vitotronic geschieht durch lesen und schreiben von Speicherstellen.
Die Befehle in der XML Konfiguration sind pro Device definiert, jedem Device ist ein Protokoll zugeordnet.
Es müssen nun pro Protokoll die Befehle getaddr und setaddr zur Verfügung stehen.
Die pro Befehl definierte Adresse und die Anzahl der zu lesenden oder schreibenden Bytes ergeben unter Berücksichtigung des Protokolls die zu sendende Bytefolge.
Beispiel:
<command name='gettempA' protocmd='getaddr'>
             <addr>0800</addr>
             <len>2</len>
             <unit>UT</unit>
             <description>Ermittle die Aussentemeratur in Grad C</description>
             <device ID="2098">
                  <addr>5525</addr>
                  <len>2</len>
                  <unit>UT</unit>
             </device>
             <device ID="2053"/>
        </command>
 
Der Befehl gettempA benutzt der Protokollbefehl getaddr.
Für das Device 2098 wurde die Adresse 5525hex und die zu lesende Bytelänge von 2 Bytes definiert.
<device ID="2098" name="V200KW2" protocol="KW2"/>
Das Device 2098 wird über das Protokoll KW2 angesprochen.
Aus diesen Daten ergeben sich dann:
Lese 2 Byte ab der Adresse 5525 mit dem Protokoll KW2.

Daraus ergibt sich eine Bytefolge:

01 F7 55 25 02 (siehe hierzu: KW Protokollbeschreibung)

Die Linux Implementierung vcontrold löst die Protokolldefinition in Form eines generischen Ansatzes. Hier können die verwendeten Protokolle in der Datei vcontrold.xml definiert werden.

2. Units

Die Definiton des Protokolles und der zu lesenden / schreibenden Speicherstelle legt die direkte Kommunikation mit der Anlage fest.
Wie die Bytes jedoch interpretiert werden müssen, wird mit der Unit innerhalb derKommando Definition festgelegt.

Beispiel (siehe auch oben):
<unit>UT</unit>
UT=Unit Temperatur
Der zurückgelelieferte Wert ist als 2 Byte signed short zu interpretieren. Der Wert ist mit 0.1 zu mulitplizieren.


Liste der Units

Name (<unit>)
Datentyp
Bytes
Berechnung
Beschreibung
UT
signed short
2
  • 0.1
Temperatur mit einer Nachkommastelle
PR
short
2
  • 1
Prozentwert 0..100%
ST
(unsigned) char
1
  • 1
Status Boolean 0 oder 1
CO
(unsinged) int
4
  • 1
Counter (Zähler)
CS
(unsigned) int
4
/ 3600
Sekundenzähler (/3600 in h)
CT
cycletime
n*2

CycleTime, Schaltzeiten
(h <<3 + Min DIV 10)
An / Aus jeweils ein Byte
BA
enum
1

Betriebsart
SR
enum
1

Return Status beim Setzen
TI
systime
8

WT, TT.MM.JJJJ HH:MM:SS
ES
errstate
9

1 Byte Fehler + sysdate
RT
enum
1

Return Status Umwandlung enum

      • fehlt noch: Datentypen und Beispiele mit entsprechender Interpretation *

Die Linux Implementierung vcontrold löst die Unit-Definition in Form eines generischen Ansatzes. Hier können die verwendeten Units in der Datei vcontrold.xml definiert werden. Da es aber z.B. beim Datum kein arithmetisch berechenbares Format gibt, müssen auch hier solche Formate hardcodiert gelöst werden.