Datenkommunikation V1.6.0 Handbuch HANDBUCH DatenKommunikation V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 3 HANDBUCH 4 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 HANDBUCH Inhaltsverzeichnis V1.6.0de/07.03.16 V1.6.0de/07.03.16 1 Anwendungsgebiet ......................................................................6 2 Allgemeine Regeln der PB-Kommandos .......................................6 3 Eigenschaften der PB-Kommandos ..............................................7 4 Zeitverhalten (Timing) bei PB-Kommandos ..................................8 4.1 4.2 Timing-Regeln ................................................................................................ 8 Timing-Empfehlungen .................................................................................... 8 5 Allgemeine Beschreibung eines PB-Kommandos .........................9 5.1 5.2 Aufbau ........................................................................................................... 9 Regelverletzungen ......................................................................................... 9 6 Spezielle Beschreibung der PB-Kommandos ..............................10 7 PB-Kommando Beispiele ............................................................24 8 PB-Kommandos mit größerem Wertebereich und höherer Genauigkeit ...............................................................................26 8.1 Beispiele ...................................................................................................... 27 9 PB-Paketkommando ..................................................................28 9.1 9.2 9.3 9.4 Aufbau ......................................................................................................... 28 Aufbau mit größerem Wertebereich und höherer Genauigkeit ..................... 29 Konfiguration ............................................................................................... 29 Beispiele ...................................................................................................... 30 10 Modbus .....................................................................................33 10.1 10.2 10.3 10.4 10.4.1 10.4.1.1 10.4.1.2 10.4.2 10.4.2.1 10.4.2.2 10.4.2.3 10.4.2.4 10.4.2.5 Allgemeine Beschreibung ............................................................................. 33 Datentypen .................................................................................................. 34 Fehlerbehandlung ........................................................................................ 34 Spezielle Beschreibung der Funktionscodes .................................................. 34 Public Funktionscodes..................................................................................... 35 Read Holding Registers (FC 0x03) ............................................................... 35 Write Single Holding Register (FC 0x06) ..................................................... 36 User-Defined Functioncodes........................................................................... 38 Kommunikationstest (FC 0x41) ................................................................... 38 PB-Variable abfragen (FC 0x42).................................................................. 38 PB-Variable ändern und abfragen (FC 0x43) .............................................. 39 PB-Paketkommando abfragen (FC 0x44).................................................... 40 PB-Paketkommando ändern und abfragen (FC 0x45) ................................ 42 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 5 Anwendungsgebiet HANDBUCH Kapitel 1 1 Anwendungsgebiet Huber bietet für seine Thermostate je nach Bedieneinheit unterschiedliche Schnittstellen an. Über diese ist es möglich mit dem Thermostat zu kommunizieren. Dazu zählen RS232, RS485, Ethernet oder USB. Über alle diese Schnittstellen ist es möglich die hier beschriebenen Kommandos zu verwenden. Dieses Handbuch beschreibt die Verwendung der PB-Kommandos. PB-Kommandos sind bei allen Thermostaten mit grafischem Display (Unistat Control/Pilot, CC-Pilot und Pilot ONE®) implementiert. Sollen mehrere PB-Kommandos gleichzeitig in einer einzelnen Datenübertragung angesprochen werden, können diese zu einem PB-Paketkommando zusammengefasst werden. Des Weiteren beschreibt dieses Handbuch die Verwendung des Modbus-Protokolls bei Thermostaten mit Pilot ONE®. Es wird jedoch nur die Betriebsart Modbus TCP über die Ethernet Schnittstelle unterstützt. INFORMATION. Außer den in diesem Handbuch beschriebenen PB-Kommandos gibt es noch die PP- und LAIKommandos. Diese werden ebenfalls weiterhin unterstützt. Für Neuentwicklungen ist es jedoch ratsam die PB-Kommandos aufgrund ihrer einfachen und einheitlichen Programmierung zu verwenden. INFORMATION. Sollen an einem RS485 Bus mehrere Thermostate angesteuert werden, ist die Verwendung der PBKommandos nicht möglich. Für diesen Zweck sind die LAI-Kommandos zu verwenden, die hier nicht weiter beschrieben werden. INFORMATION. Bei einer Ethernet Kommunikation mit dem Pilot ONE erfolgt diese über TCP (Transmission Control Protocol), Port 8101. Bei der Verwendung der Schnittstelle sind die Spezifikationen der allgemeingültigen Standards zu beachten. INFORMATION. Die älteren Reglergenerationen Unistat Control/Pilot und CC-Pilot unterstützen nicht alle hier beschriebenen Kommandos (Kommandos an Adresse 0 – 0x47 werden unterstützt). Möglicherweise ist es notwendig die Software des Thermostats auf den neusten Stand zu bringen, um alle beschriebenen Funktionalitäten verwenden zu können. 2 Allgemeine Regeln der PB-Kommandos Die PB-Kommandos sind für den Datenaustausch mit genau zwei Teilnehmern gedacht. Diese Kommandos sind einfach aufgebaut, die Übertragung ist nicht über Prüfsummen abgesichert, deshalb ist die Kommunikationssoftware auch sehr einfach. Die Motivation für die Entwicklung bestand darin, die zu übertragenden Zeichenketten möglichst einfach zu halten. Damit kann der Aufwand in der weiteren Datenverarbeitung klein gehalten werden. Um einen sicheren Betrieb zu gewährleisten muss die Antwort des Thermostats empfangen und ausgewertet werden. Bei Ethernet wird zusätzlich eine Datensicherheit durch das Protokoll TCP/IP gewährleistet. INFORMATION. Manche der im Folgenden beschriebenen Kommandos sind möglicherweise gesperrt. Diese können durch Einspielen des geeigneten E-grades freigeschaltet werden. Weitere Informationen finden Sie auf unserer Homepage www.huber-online.com. Es wird eine kostenfreie 30 tägige Evaluierungsversion angeboten. Generell gilt, dass alle Einstellungen die durch ein Datenkommando verändert werden nicht permanent gespeichert werden und nach einer Unterbrechung der Spannungsversorgung auf den zuletzt von Hand eingegebenen Wert zurückgesetzt sind. 6 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 Eigenschaften der PB-Kommandos Kapitel 3 HANDBUCH 3 Eigenschaften der PB-Kommandos Die PB-Kommandos sind für Geräte mit Unistat Pilot, CC-Pilot oder Pilot ONE® verfügbar (Geräte ab 2005). PB-Kommandos sind in Punkt zu Punkt-Übertragungen einsetzbar. PB-Kommandos bestehen aus Zeichenketten. Es gilt das Master / Slave Prinzip. Der Thermostat ist immer der Slave. Das bedeutet, dass der Thermostat immer nur dann ein Kommando sendet, wenn eine Anforderung vom Master empfangen wurde. Der Slave sendet immer eine Antwort wenn die empfangene Zeichenfolge als gütiges Kommando erkannt wurde. Kein Slave darf unaufgefordert senden. Zahlen werden als hexadezimale Zahlen im Zweierkomplement dargestellt. Bei der Zahlenübertragung werden die ASCII-Zeichen ‚0’ … ‚9’ und ‚A’ ... ‚F’ verwendet. Pro Byte müssen demnach 2 Zeichen übertragen werden. Die Struktur der PB-Kommandos ist sehr einfach. Die Länge eines Kommandos beträgt immer 10 Zeichen. Das Timing der Datenübertragung wird durch das Antwortprinzip bestimmt (siehe Kapitel Zeitverhalten). Die PB-Kommandos sind in Form einer Tabelle organisiert. Jeder Variablen ist eine Adresse zugeordnet. Eine Variable kann verändert oder abgefragt werden, indem die zugehörige Adresse angesprochen wird. Wird eine nicht definierte oder nicht freigeschaltete (vergl. E-grade) Adresse angesprochen, so wird das Kommando mit der gleichen Adresse und dem Wert „7FFF“ beantwortet. Nur auf syntaktisch richtig empfangene PB-Kommandos gibt es eine Antwort. Ein Kommando setzt den aktuellen Wert und gibt den aktuellen Wert der angesprochenen Variable zurück. Soll der Zeitverlauf einer Variable beobachtet werden, so muss das Kommando wiederholt gesendet werden. Pro Kommando kann immer nur ein einzelner Variablenwert abgefragt werden. Es ist nicht möglich mehrere Werte aneinanderzureichen. Die Tabelle kann bei Bedarf erweitert werden, alte Inhalte werden nicht verändert. V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 7 Zeitverhalten (Timing) bei PB-Kommandos HANDBUCH Kapitel 4 4 Zeitverhalten (Timing) bei PB-Kommandos 4.1 Timing-Regeln Die Softwareprotokolle sind so strukturiert, dass sehr einfache Timing-Regeln anwendbar sind: Der Datenfluss innerhalb eines Befehls sollte nicht unterbrochen werden. Pausen von mehr als 100 ms zwischen den Zeichen eines Befehls führen im Thermostat zum Abbruch des gerade eingehenden Befehls. Manchmal kann das Betriebssystem des Masters für solche Probleme verantwortlich sein. Zur Überprüfung kann ein Oszilloskop oder auch ein Datenlogger, der auf einem schnellen Mithör-PC installiert ist, helfen. Die Protokolle sind so aufgebaut, dass auf eine korrekte Anfrage immer eine Antwort vom Thermostat gesendet wird. Bevor ein neues Kommando gesendet werden kann, muss die vollständige Antwort des Thermostats abgewartet werden. Wird vorher ein neues Kommando gesendet, so wird dieses verworfen. Hat der Master die Antwort des Thermostats empfangen, so kann sofort das nächste Kommando gesendet werden. Normalerweise vergehen nur wenige Zehntelsekunden bis zur Antwort des Thermostats. Die typische Antwortzeit liegt unterhalb 300 ms. Ist nach dieser Zeit keine Antwort eingegangen, sollte das Kommando nochmals wiederholt werden. Zur Sicherheit kann die Zeit bis zur Wiederholung auch etwas größer gewählt werden. Generell empfehlen wir mindestens eine Sekunde auf die Antwort zu warten um auch in ungünstigen Situationen keine unnötigen Timeouts zu riskieren. INFORMATION. Bei Verwendung des Com.G@te® oder Web.G@te® können etwas längere Antwortzeiten entstehen, die 300 ms überschreiten. Passen sie in diesem Fall ihre Timeout Bedingung entsprechend an. 4.2 Timing-Empfehlungen Wenn die Geschwindigkeit aufs Maximale ausgereizt wird, so bekommt man einen Datendurchsatz der für ein Temperiergerät sehr hoch ist. Auch wenn Master und Slave das verkraften, sollte überlegt werden, welche Erneuerungsrate wirklich benötigt wird. Man wird feststellen, dass es fast immer reichen wird, im Bereich einiger Sekunden zu bleiben. Es macht technisch wenig Sinn, die Festplatte mit redundanten Daten zu verstopfen oder dem Thermostaten die Rechenzeit unnötig abzuziehen. Sollen recht große Datenmengen übertragen werden müssen, wie es gelegentlich für die Prozessdokumentation gefordert wird, dann kann gegebenenfalls die Wiederholrate an die jeweilige Signaldynamik angepasst werden. Das bedeutet, dass manche Signale dann häufiger abgefragt werden als andere. Wenn von „großen Datenmengen“ gesprochen wird, sind in diesem Zusammenhang letztlich Größenordnungen von 10 oder 20 Bytes/s gemeint. Aber zusammen mit typischerweise langen Laufzeiten bei Temperierprozessen kommen dann doch respektable Mengen Zustande. Bei 20 Bytes/s wird ein Megabyte schon in ca. 14 Stunden erreicht. 8 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 Allgemeine Beschreibung eines PB-Kommandos Kapitel 5 HANDBUCH 5 Allgemeine Beschreibung eines PB-Kommandos 5.1 Aufbau Ein PB-Kommando besteht aus 10 Zeichen. Der Aufbau eines PB-Kommandos ist wie folgt: {mttvvvv<CR><LF> { m tt vvvv <CR> <LF> Startzeichen (ASCII Code 0x7B): Identifiziert das PB-Kommando Senderkennung: Master-Anfrage ‚M’ (ASCII Code 0x4D) oder Slave-Antwort ‚S’ (ASCII Code 0x53) zur Richtungskennzeichnung. Das Automatisierungssystem (PC, SPS, PLS, …) ist immer der Master. Seine Anfrage ist durch ein ‚M’ gekennzeichnet. Der Thermostat ist immer der Slave. Die Antwort des Thermostats ist durch das ‚S’ gekennzeichnet. Adresse (entspricht dem Tabellenplatz): 2 Zeichen (1 Byte in Hexadezimaldarstellung). Variablenwert: 4 Zeichen (2 Bytes als Hexadezimalstring) Soll eine Variable nur abgefragt und nicht verändert werden, so ist als Variablenwert „****“ zu senden. Die Antwort bei nicht vorhandenen Temperaturen ist -151,00 °C. Dies entspricht der Zeichenfolge „C504“. Das Zeichen Carriage Return (ASCII Code 0x0D) Das Zeichen Line Feed (ASCII Code 0x0A) 5.2 Regelverletzungen Was soll darunter verstanden werden? Eine ungenaue Programmierung eines Kommandostrings oder ein zu knapp bemessenes Timing. Zufällige und seltene Abweichungen durch Übertragungsfehler führen im Allgemeinen auch zu Regelverletzungen, sind aber nicht durch die Software begründet. Wie werden Regelverletzungen behandelt? Prinzipiell gilt: Wenn die Kommandos nicht erkannt werden, Zeichen fehlen oder zusätzlich vorkommen, wird die Verarbeitung abgebrochen, es gibt keine Antwort. Nicht einmal ein allgemeines Kommando wie mit der Bedeutung „nicht verstanden“ wird geschickt, weil dem Slave nicht bekannt sein kann, ob es eine Buskommunikation oder einen Punkt zu Punkt Verbindung ist. Die Bushoheit könnte also gerade von einem anderen Gerät angefordert worden sein. V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 9 Spezielle Beschreibung der PB-Kommandos HANDBUCH Kapitel 6 6 Spezielle Beschreibung der PB-Kommandos Nachfolgend wird die Kommandotabelle aufgeführt. Spezielle Hinweise zum Variablentyp, zur Auflösung und zum Wertebereich werden gegeben. Erklärungen zur Tabelle: Adresse Die Adresse ist jeweils in Dezimal- als auch in Hexadezimalschreibweise (vorangestelltes 0x) angegeben und entspricht dem Tabellenplatz. Variable Kurzbezeichnung zu Dokumentationszwecken Beschreibung Kurze Beschreibung der Variable Typ R: Auf die Variable kann nur lesend zugegriffen werden R / W: Auf die Variable kann lesend und schreibend zugegriffen werden LSB Die kleinste darstellbare Einheit „0,01 °C“ bedeutet beispielweise, dass ein Variablenwert von 1 einer Temperatur von 0,01 °C oder der Wert 100 einer Temperatur von 1,00 °C entspricht. Datentyp Ganzzahl: Alle Werte im angegebene Wertebereich können vorkommen Bitfeld: Der Wert muss bitweise betrachtet werden. Jedes Bit hat eine andere Bedeutung. Wertebereich Der Bereich den der Variablenwert annehmen kann (Dezimaldarstellung). Bei einem Wertebereich von -15100 … 32700 und einem LSB von 0,01 °C können also Temperaturen von -151,00 °C bis 327,00 °C verarbeitet werden. Für Bitfelder gilt: Bei Schreibvorgängen dürfen nur die jeweils vereinbarten Bits mit 1 belegt werden. Bei Lesevorgängen dürfen nur die jeweils vereinbarten Bits bewertet werden, alle anderen Bits sind undefiniert. E-grade Je nachdem welches E-grade für ein Gerät freigeschaltet wurde, stehen verschiedene Kommandos zur Verfügung. Da die verschiedenen E-grades aufeinander aufbauen (Basic, Exclusive, Professional, Explore), sind Kommandos, welche in der Tabelle einem E-grade zugeordnet sind, auch mit einem höherwertigen E grade verfügbar. Beispielsweise enthält das E grade Professional alle Funktionen die auch im E grade Exclusive enthalten sind. Das E-grade Explore wird nur bei den Unistaten angeboten. Falls einige PBKommando Variablen daraus benötiget werden besteht die Möglichkeit das DVE-grade zu erwerben. Damit sind alle PB-Kommando Variablen freigeschaltet. Hinweis: Die Zuordnung der verschiedenen PB-Kommando Variablen zu den E-grades hat sich im Laufe der Zeit verändert. Die E-grade Angaben gelten für Geräte mit Pilot ONE® Regler und aktueller Softwareversion. Bei Geräten der älteren Reglergenerationen Unistat Control/Pilot und CC-Pilot sind nur ein kleiner Teil den PBKommando Variablen frei zugänglich. Alle anderen Befehle können durch das DV E-grade freigeschaltet werden. Weitere Informationen hierzu können beim technischen Service angefragt werden. Manchen Variablen können abhängig vom Thermostat nutzlos sein, wenn die erforderlichen Sensoren oder Aktoren nicht vorhanden sind. Adresse (hex) Variable Beschreibung 00 vSP Sollwert Temperaturregler Typ LSB Datentyp Wertebereich E-grade R/W 0,01 °C Ganzzahl -15100 … 32700 Basic Der Sollwert wird vom Temperaturregler verwendet. Bei Internregelung gilt der Sollwert für die Interntemperatur, bei Prozessregelung für die Prozesstemperatur. Bitte beachten: Die Sollwertvorgabe kann durch andere Sollwertgeber überschrieben werden (z.B. Temperierprogramm, Analoge 4…20 mA Schnittstelle, …). Adresse (hex) Variable Beschreibung 01 vTI Interntemperatur Typ LSB Datentyp Wertebereich E-grade R 0,01 °C Ganzzahl -15100 … 32700 Basic Aus Sicht des Temperiergerätes die aktuelle Temperatur des Thermofluids welches zur Anwendung strömt. Die Interntemperatur wird manchmal auch als Vorlauf-, Mantel- oder Badtemperatur bezeichnet. 10 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 Spezielle Beschreibung der PB-Kommandos Kapitel 6 HANDBUCH Adresse (hex) Variable Beschreibung 02 vTR Rücklauftemperatur Typ LSB Datentyp Wertebereich E-grade R 0,01 °C Ganzzahl -15100 … 32700 Explore Aus Sicht des Temperiergerätes die aktuelle Temperatur des Thermofluids welches von der Anwendung zurück zum Temperiergerät strömt. Nicht alle Temperiergeräte messen diese Temperatur. Typischerweise ist dieser Sensor bei Unistaten installiert. Ist der Sensor nicht vorhanden, wird der Wert -15100 zurückgegeben. Adresse (hex) Variable Beschreibung 03 vpP Pumpendruck (absolut) Typ LSB Datentyp Wertebereich E-grade R 1 mbar Ganzzahl 0 … 32000 Basic Absoluter Pumpendruck am Drucksensor im Thermofluid-Kreislauf des Thermostats (nur falls Drucksensor vorhanden). Adresse (hex) Variable Beschreibung 04 vPow Aktuelle Leistung Typ LSB Datentyp Wertebereich E-grade R 1W Ganzzahl 0 … 32000 Explore Die aktuell resultierende Leistung des Thermostats in Watt. Der Wert ist negativ wenn der Thermostat kühlt und positiv wenn der Thermostat heizt. Er entspricht der Leistung, die der Anwendung zur Verfügung gestellt wird. Die Wellenleistung der innen liegenden Standard-Umwälzpumpe ist nicht berücksichtigt. Die Kälteleistungsberechnung erfolgt indirekt über den aktuellen Arbeitspunkt des Kompressors. Die Heizleistung wird über die Nennspannung lt. Typenschild berechnet. Zur Genauigkeit: Die Leistungswerte sollten bei Anforderungen an die Genauigkeit eher zu einer relativen Bestimmung herangezogen werden, ggf. nach Bewertung an einer "Eichheizung". Der bereitgestellte Wert ist vorsichtig zu bewerten, es ist eine Schätzung. In vergleichbaren Arbeitspunkten ist die erzielte reproduzierbare Genauigkeit besser als die absolute Genauigkeit. Um verlässliche Bewertungen zu erhalten sind regelmäßige Vergleichsmessungen zu empfehlen. Adresse (hex) Variable Beschreibung 05 vError Störungsmeldung Typ LSB Datentyp Wertebereich E-grade R 1 Ganzzahl -1023 … 0 Basic Die Nummer der zuerst aufgetretenen Störungsmeldung. Wird 0 zurückgegeben ist keine Störung aufgetreten und das Gerät ist betriebsbereit, ansonsten kann anhand der Nummer auf die Art der Störung geschlossen werden. Adresse (hex) Variable Beschreibung 06 vWarn Warnungsmeldung Typ LSB Datentyp Wertebereich E-grade R 1 Ganzzahl -4095 … 0 Basic Die Nummer der zuletzt aufgetretenen Warnungsmeldung. Möglicherweise bedarf der Thermostat ihrer Aufmerksamkeit falls eine Zahl ungleich 0 zurückgegeben wird. Wird 0 zurückgegeben ist keine neue Warnung aufgetreten, ansonsten kann anhand der Nummer auf die Art der Warnung geschlossen werden. Wurde die Warnung abgefragt, wird bei der nächsten Abfrage wieder 0 zurückgegeben sofern nicht erneut eine Warnung aufgetreten ist. Adresse (hex) Variable Beschreibung 07 vTE Prozesstemperatur (Lemosa) Typ LSB Datentyp Wertebereich E-grade R 0,01 °C Ganzzahl -15100 ... 32700 Basic Die aktuelle Prozesstemperatur wird zurückgegeben. Genau genommen wird der Messwert des Pt100 Sensors zurückgegeben, der an der LEMOSA Buchse angeschlossen ist. Typischerweise wird dort der Prozessfühler angeschlossen. Ist kein Fühler angeschlossen, so wird der Wert -151 °C zurückgegeben. V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 11 Spezielle Beschreibung der PB-Kommandos HANDBUCH Kapitel 6 Adresse (hex) Variable Beschreibung 08 vIntMove Istwertvorgabe Interntemperatur Typ LSB Datentyp Wertebereich E-grade R/W 0,01 °C Ganzzahl -15100 … 32700 Explore Dem Internregler kann hiermit ein alternativer Messwert, außerhalb des Thermostats vorgegeben werden. Die Schutzeinrichtungen verwenden trotzdem den internen Pt100 Sensor. Das Kommando muss im Zusammenhang mit Kommando 0x18 (vCITM) verwendet werden, ansonsten findet ein vorgegebener Wert keine Beachtung. Kontrolle ist über Kommando 0x0A (vStatus1, Bit 10) möglich. Adresse (hex) Variable Beschreibung 09 vExtMove Vorgabe Prozesstemperatur Typ LSB Datentyp Wertebereich E-grade R/W 0,01 °C Ganzzahl -15100 … 32700 Explore Bei Prozessregelung kann hiermit der Prozess-Messwert zur Temperaturregelung vorgegeben werden. Das Kommando muss im Zusammenhang mit Kommando 0x19 (vCETM) verwendet werden, ansonsten findet ein vorgegebener Wert keine Beachtung. Kontrolle ist über Kommando 0x0A (vStatus1, Bit 11) möglich. Adresse (hex) Variable Beschreibung 0A vStatus1 Status des Thermostats Typ LSB Datentyp Wertebereich E-grade R --Bitfeld --Basic Abfrage des aktuellen Thermostat-Status. Bei dem zurückgegebenen Wert handelt es sich um ein Bitfeld. Die einzelnen Bits sind unabhängig voneinander zu betrachten. Bit 0 Betriebsart Temperierung: 1: aktiv / 0: inaktiv Bit 1 Betriebsart Umwälzen: 1: aktiv / 0: inaktiv Bit 2 Kompressor der Kältemaschine: 1: eingeschaltet / 0: ausgeschaltet Bit 3 Temperiermode "Prozessregelung": 1: aktiv / 0: inaktiv Bit 4 Umwälzpumpe: 1: eingeschaltet / 0: ausgeschaltet Bit 5 Kälteleistung verfügbar: 1: verfügbar / 0: nicht verfügbar Bit 6 Tastensperre: 1: aktiv / 0: inaktiv Bit 7 PID-Parametersatz Temperaturregler : 1: Automatikmodus / 0: Expertenmodus Bit 8 Störung: 1: Störung aufgetreten / 0: keine Störung Bit 9 Warnung: 1: neue Warnung aufgetreten / 0: keine neue Warnung Bit 10 Modus zur Vorgabe der Interntemperatur (vergl. Adresse 8): 1: aktiv / 0: inaktiv Bit 11 Modus zur Vorgabe der Externtemperatur (vergl. Adresse 9): 1: aktiv / 0: inaktiv Bit 12 DV E-grade: 1: aktiviert / 0: nicht aktiviert Bit 14 Neustart der Elektronik / Netzunterbrechung (*): 1: kein Neustart / 0: Neustart Bit 15 Einfrierschutz (nicht bei allen Geräten verfügbar): 1: aktiv / 0: inaktiv (*) Dieses Bit wird bei einem Neustart des Reglers auf 0 gesetzt. Wird die Variable vStatus1 nach einem Neustart zum ersten Mal gelesen, ist dieses Bit nicht gesetzt. Bei allen weiteren Lesevorgängen liefert dieses Bit eine 1 zurück. Damit kann ein unerwarteter Neustart erkannt werden. Adresse (hex) Variable Beschreibung 0B vBDPos Blow-Down Schieber ansteuern Typ LSB Datentyp Wertebereich E-grade R/W 1 Ganzzahl -32700 ... 32700 Basic Blow-Down Schieber Position vorgeben und aktuelle Position abfragen. Um diese Funktion nutzen zu können muss eine spezielle Blow-Down Hardware vorhanden sein. Typische Positionen des Blow-Down Schiebers: Position 0: Temperierung (Normalzustand) Position 4500: Ausblasen (Blow down) Position 8266: Halten Position 2666: Entleeren Wird ein Wert kleiner 0 übergeben, so wird von der aktuellen Position aus eine Referenzfahrt gestartet. Dabei fährt der Schrittmotor um die angegebenen Schritte in die Richtung des mechanischen Anschlags und setzt danach seine Istposition auf den Wert 0. Der übergebene Wert muss so groß sein, dass der mechanische Anschlag tatsächlich erreicht wird. Um eine vollständige Schließung zu erreichen sollte ein Wert von -10000 übergeben werden. Die Antwort des Thermostats enthält die aktuelle Position des Blow-Down Schiebers. 12 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 Spezielle Beschreibung der PB-Kommandos Kapitel 6 HANDBUCH Adresse (hex) Variable Beschreibung 0C vBDHeat Blow-Down Schieber Heizung freischalten Typ LSB Datentyp Wertebereich E-grade R/W 1 Ganzzahl 0 ... 1 Basic Heizung für Blow-Down Schieber freigeben. Die Freigabe wird per Watchdog überwacht. Wird die Freigabe nicht innerhalb von 10 s erneut an den Thermostat gesendet, so wird die Heizung ausgeschaltet. Um diese Funktion nutzen zu können muss eine spezielle Blow-Down Hardware mit integrierter Beheizung vorhanden sein. Adresse (hex) Variable Beschreibung 0D vVHT Nur für Servicezwecke Typ LSB Datentyp Wertebereich R 1 Ganzzahl 0 ... 32700 Bitte diese Variable nur nach Rücksprache verwenden! Adresse (hex) Variable Beschreibung 0E vVNT Nur für Servicezwecke Typ LSB Datentyp Wertebereich R 1 Ganzzahl 0 ... 32700 Bitte diese Variable nur nach Rücksprache verwenden! E-grade für Service vorbehalten E-grade für Service vorbehalten Adresse (hex) Variable Beschreibung 0F vNiv Füllstand Typ LSB Datentyp Wertebereich E-grade R 0,1 % Ganzzahl -1 ... 1000 Basic Füllstand des Thermostats. Diese Funktion ist nur verfügbar, falls in ihrem Thermostat eine analoge Füllstandsanzeige integriert ist. Wird der Wert -1 zurückgegeben, dann ist ein Problem bei der Füllstandsmessung aufgetreten. Adresse (hex) Variable Beschreibung 10 vPV Nur für Servicezwecke Typ LSB Datentyp Wertebereich R 1 Ganzzahl 0 ... 32700 Bitte diese Variable nur nach Rücksprache verwenden! E-grade für Service vorbehalten Adresse (hex) Variable Beschreibung 12 vAutoPID PID-Parameter Automatik Temperaturregler Typ LSB Datentyp Wertebereich E-grade R /W 1 Ganzzahl 0 ... 1 Basic Aktuell verwendeter Parametersatz des Temperaturreglers setzen und abfragen. Der Temperaturregler arbeitet je nach Auswahl mit dem PID-Parametersatz im Automatik- oder im Expertenmodus. Der Wert 1 bedeutet, dass der Regler im Automatikmodus arbeitet, bei 0 arbeitet der Regler im Expertenmodus. Falls sie im Expertenmodus arbeiten möchten, müssen zunächst die einzelnen Reglerparameter vorgegeben werden (siehe Adresse 0x1D – 0x25). Adresse (hex) Variable Beschreibung 13 vTmpMode Temperiermodus Typ LSB Datentyp Wertebereich R /W 1 Ganzzahl 0 ... 1 Temperiermodus des Thermostats setzen und abfragen. 0: Temperiermodus Intern 1: Temperiermodus Prozess (Kaskadenregelung) E-grade Exclusive Adresse (hex) Variable Beschreibung 14 vTmpActive Temperierung Typ LSB Datentyp Wertebereich E-grade R /W 1 Ganzzahl 0 ... 1 Basic Temperierung des Thermostats starten, stoppen oder den aktuellen Zustand abfragen. 0: Temperierung nicht aktiv 1: Temperierung aktiv V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 13 Spezielle Beschreibung der PB-Kommandos HANDBUCH Kapitel 6 Adresse (hex) Variable Beschreibung 15 vCompAuto Betriebsmodus Kompressor Typ LSB Datentyp Wertebereich E-grade R/W 1 Ganzzahl 0 ... 2 Basic Der Betriebsmodus des Kompressors kann gesetzt und abgefragt werden. 0: Die Kompressorautomatik ist aktiv. Der Thermostat entscheidet selbständig ob der Kompressor momentan zur Temperierung benötigt wird und schaltet diesen je nach Bedarf ein und aus. 1: Der Kompressor ist immer eingeschaltet solange die Temperierung aktiv ist. 2: Der Kompressor ist immer ausgeschaltet, egal in welchem Betriebsmodus sich der Thermostat befindet. Adresse (hex) Variable Beschreibung 16 vCircActive Umwälzung Typ LSB Datentyp Wertebereich E-grade R /W 1 Ganzzahl 0 ... 1 Basic Umwälzung des Thermostats starten, stoppen oder den aktuellen Zustand abfragen. Diese Betriebsart wird typischerweise zum Einrichten der Anlage benötigt. 0: Betriebsart Umwälzung nicht aktiv 1: Betriebsart Umwälzung aktiv Hinweis: Ist die Temperierung aktiv so erfolgt ebenfalls eine Umwälzung, trotzdem ist die Betriebsart Umwälzung nicht aktiv. Adresse (hex) Variable Beschreibung 17 vKeyLock Bediensperre Typ LSB Datentyp Wertebereich E-grade R /W --Bitfeld --Basic Bediensperre am Pilot aktivieren, deaktivieren oder abfragen. Bit 0: Bediensperre aktiv oder inaktiv 0: Bediensperre inaktiv. 1: Bediensperre aktiv. Eine manuelle Bedienung des Thermostats über den Pilot ist nicht möglich. Bit 1: Watchdog Verhalten 0: Watchdog inaktiv. 1: 30 s Watchdog aktivieren. Wird das Bit 1 nicht innerhalb von 30 s erneut gesetzt, so wird die Bediensperre automatisch aufgehoben. Dies kann verwendet werden um eine manuelle Bedienung wieder zuzulassen, falls die Kommunikation mit dem Thermostat aus einem beliebigen Grund unterbrochen wird. Adresse (hex) Variable Beschreibung 18 vCITM Modus Istwertvorgabe Interntemperatur Typ LSB Datentyp Wertebereich E-grade R /W -Bitfeld --Explore Betriebsmodus zur Vorgabe der Interntemperatur aktivieren, deaktivieren oder abfragen. Bit 0: Betriebsmodus aktiv oder inaktiv 0: Modus nicht aktiv. 1: Modus aktiv. Der Temperaturregler verwendet zur Regelung anstatt der Interntemperatur den aktuellen Inhalt der Variable 0x08 (vIntMove) zur Berechnung der Stellgröße. Gleichzeitig wird beim erstmaligen Setzen dieses Bits ein Watchdog aktiviert, der nach Ablauf von 30 s reagiert. Durch regelmäßiges Setzen der Variable 0x08 (vIntMove) kann verhindert werden, dass der Watchdog auslöst. Bit 1: Watchdog Verhalten Legt das Verhalten des Thermostats fest, falls ein Problem der Datenkommunikation festgestellt wird. 0: Der Thermostat erzeugt die Warnung -2129, deaktiviert die Istwertvorgabe und temperiert weiter indem der Internfühler des Thermostats verwendet wird. 1: Der Thermostat erzeugt die Störung -328 und wechselt in den Standby Mode (Temperierung wird gestoppt). 14 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 Spezielle Beschreibung der PB-Kommandos Kapitel 6 HANDBUCH Adresse (hex) Variable Beschreibung 19 vCETM Modus Istwertvorgabe Prozesstemperatur Typ LSB Datentyp Wertebereich E-grade R /W -Bitfeld --Explore Betriebsmodus zur Vorgabe der Prozesstemperatur aktivieren, deaktivieren oder abfragen. Bit 0: Betriebsmodus aktiv oder inaktiv 0: Modus nicht aktiv. 1: Modus aktiv. Der Temperaturregler verwendet zur Regelung anstatt der Prozesstemperatur den aktuellen Inhalt der Variable 0x09 (vExtMove) zur Berechnung der Stellgröße. Gleichzeitig wird beim erstmaligen Setzen dieses Bits ein Watchdog aktiviert, der nach Ablauf von 30 s reagiert. Durch regelmäßiges Setzen der Variable 0x09 (vExtMove) kann verhindert werden, dass der Watchdog auslöst. Bit 1: Watchdog Verhalten Legt das Verhalten des Thermostats fest, falls ein Problem der Datenkommunikation festgestellt wird. 0: Der Thermostat erzeugt die Warnung -2130, deaktiviert die Istwertvorgabe, wechselt von Prozess- zur Internregelung (vgl. vTmpMode, Variable 19) und temperiert weiter. 1: Der Thermostat erzeugt die Störung -329 und wechselt in den Standby Mode (Temperierung wird gestoppt). Adresse (hex) Variable Beschreibung 1A vICE Einfrierschutz Typ LSB Datentyp Wertebereich E-grade R /W 1 Ganzzahl 0 ... 1 Basic Einfrierschutz des Thermostats aktivieren, deaktivieren oder abfragen. 0: Einfrierschutz nicht aktiv 1: Einfrierschutz aktiv Bitte beachten Sie, dass ein Einfrierschutz nicht bei allen Thermostaten verfügbar ist. Adresse (hex) Variable Beschreibung 1B + 1C vSNRL + vSNRH Seriennummer Typ LSB Datentyp Wertebereich E-grade R 1 Ganzzahl 0 ... 65535 Basic Abfrage der Seriennummer des Thermostats. Da die Seriennummer größere Werte als 65535 annehmen kann, aber nur 2 Bytes pro Variable zur Verfügung stehen, setzt sich die Seriennummer aus 2 Datenworten (Low + High) mit jeweils 2 Bytes zu einem 4 Bytes Wert zusammen. Variable 0x1B (vSNRL) enthält die niederwertigen Bytes, Variable 0x1C (vSNRH) enthält die hochwertigen Bytes. Adresse (hex) Variable Beschreibung 1D vKpInt Kp des Internreglers Typ LSB Datentyp Wertebereich E-grade R /W 1 Ganzzahl 0 ... 32000 Basic Verstärkung des PID-Reglers bei Internregelung ändern und abfragen. Eine Änderung wirkt sich auf den kompletten Regler (P-, I- und D-Anteil) aus. Der Parameter wird nur verwendet, falls der Expertenmodus aktiviert wurde (vgl. vAutoPID, Variable 0x12). Adresse (hex) Variable Beschreibung 1E vTnInt Tn des Internreglers Typ LSB Datentyp Wertebereich E-grade R /W 0,1 s Ganzzahl 0 ... 32000 Basic Nachstellzeit des PID-Reglers bei Internregelung ändern und abfragen. Eine Änderung wirkt sich nur auf den I-Anteil des Reglers aus. Wird diese Variable auf 0 gesetzt, so ist der I-Anteil des Reglers deaktiviert. Der Parameter wird nur verwendet, falls der Expertenmodus aktiviert wurde (vgl. vAutoPID, Adresse 0x12). V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 15 Spezielle Beschreibung der PB-Kommandos HANDBUCH Kapitel 6 Adresse (hex) Variable Beschreibung 1F vTvInt Tv des Internreglers Typ LSB Datentyp Wertebereich E-grade R /W 0,1 s Ganzzahl 0 ... 32000 Basic Vorhaltezeit des PID-Reglers bei Internregelung ändern und abfragen. Eine Änderung wirkt sich nur auf den D-Anteil des Reglers aus. Der Parameter wird nur verwendet, falls der Expertenmodus aktiviert wurde (vgl. vAutoPID, Adresse 0x12). Adresse (hex) Variable Beschreibung 20 vKpJack Kp des Mantelreglers Typ LSB Datentyp Wertebereich E-grade R /W 1 Ganzzahl 0 ... 32000 Exclusive Verstärkung des PID-Reglers bei Mantelregelung ändern und abfragen. Eine Änderung wirkt sich auf den kompletten Regler (P-, I- und D-Anteil) aus. Der Parameter wird nur bei Prozessregelung verwendet, falls der Expertenmodus aktiviert wurde (vgl. vAutoPID, Adresse 0x12). Der Mantelregler ist der unterlagerte Regler bei aktivierter Prozessregelung. Adresse (hex) Variable Beschreibung 21 vTnJack Tn des Mantelreglers Typ LSB Datentyp Wertebereich E-grade R /W 0,1 s Ganzzahl 0 ... 32000 Exclusive Nachstellzeit des PID-Reglers bei Mantelregelung ändern und abfragen. Eine Änderung wirkt sich nur auf den I-Anteil des Reglers aus. Beim Mantelregler handelt es sich prinzipiell um den gleichen Regler wie den Internregler, allerdings als unterlagerter Regler in der Prozess-Kaskadenregelung. Der Sinn der Unterscheidung liegt darin, dass man bei Prozessregelung dem Regler der Interntemperatur andere Parameter zuweisen möchte als bei Internregelung. Dies ist auch sinnvoll, da für den unterlagerten Regler bei Prozessregelung kein I-Anteil notwendig ist. Wird diese Variable auf 0 gesetzt, so ist der I-Anteil des Reglers deaktiviert. Dies ist auch der Normalfall. Der Parameter wird nur bei Prozessregelung (vgl. vTmpMode, Variable 0x13) verwendet, falls der Expertenmodus aktiviert wurde (vgl. vAutoPID, Adresse 0x12). Adresse (hex) Variable Beschreibung 22 vTvJack Tv des Mantelreglers Typ LSB Datentyp Wertebereich E-grade R /W 0,1 s Ganzzahl 0 ... 32000 Exclusive Vorhaltezeit des PID-Reglers bei Mantelregelung ändern und abfragen. Eine Änderung wirkt sich nur auf den D-Anteil des Reglers aus. Im Normalfall ist dieser Wert mit 0 belegt. Der Parameter wird nur bei Prozessregelung verwendet, falls der Expertenmodus aktiviert wurde (vgl. vAutoPID , Adresse 0x12). Adresse (hex) Variable Beschreibung 23 vKpProc Kp des Prozessreglers Typ LSB Datentyp Wertebereich E-grade R /W 0,01 Ganzzahl 0 ... 32000 Exclusive Verstärkung des PID-Reglers bei Prozessregelung ändern und abfragen. Eine Änderung wirkt sich auf den kompletten Regler (P-, I- und D-Anteil) aus. Der Parameter wird nur bei Prozessregelung verwendet, falls der Expertenmodus aktiviert wurde (vgl. vAutoPID, Adresse 0x12). Adresse (hex) Variable Beschreibung 24 vTnProc Tn des Prozessreglers Typ LSB Datentyp Wertebereich E-grade R /W 0,1 s Ganzzahl 0 ... 32000 Exclusive Nachstellzeit des PID-Reglers bei Prozessregelung ändern und abfragen. Eine Änderung wirkt sich nur auf den I-Anteil des Reglers aus. Wird diese Variable auf 0 gesetzt, so ist der I-Anteil des Reglers deaktiviert. Der Parameter wird nur bei Prozessregelung (vgl. vTmpMode, Adresse 0x13) verwendet, falls der Expertenmodus aktiviert wurde (vgl. vAutoPID , Adresse 0x12). 16 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 Spezielle Beschreibung der PB-Kommandos Kapitel 6 HANDBUCH Adresse (hex) Variable Beschreibung 25 vTvProc Tv des Prozessreglers Typ LSB Datentyp Wertebereich E-grade R /W 0,1 s Ganzzahl 0 ... 32000 Exclusive Vorhaltezeit des PID-Reglers bei Prozessregelung ändern und abfragen. Eine Änderung wirkt sich nur auf den D-Anteil des Reglers aus. Der Parameter wird nur bei Prozessregelung (vgl. vTmpMode, Adresse 0x13) verwendet, falls der Expertenmodus aktiviert wurde (vgl. vAutoPID , Adresse 0x12). Adresse (hex) Variable Beschreibung 26 vnP Pumpendrehzahl Typ LSB Datentyp Wertebereich E-grade R 1 / min Ganzzahl 0 ... 32000 Basic Die aktuelle Pumpendrahzahl abfragen. Beachten Sie, dass die aktuelle Pumpendrehzahl nicht bei allen Thermostaten zur Verfügung steht. Adresse (hex) Variable Beschreibung 27 - 2B Temperaturen für Service und Wartung Typ LSB Datentyp Wertebereich E-grade R 0,01 °C Ganzzahl -15100 … 32700 für Service vorbehalten Bitte diese Variable nur nach Rücksprache verwenden! Verschiedene Service Temperaturen Adresse (hex) Variable Beschreibung 2C vTKwIn Kühlwassereintrittstemperatur Typ LSB Datentyp Wertebereich E-grade R 0,01 °C Ganzzahl -15100 … 32700 Explore Aktueller Messwert der Kühlwassereintrittstemperatur. Adresse (hex) Variable 2D vpKw Typ LSB Datentyp R 1 mbar Ganzzahl Aktueller Messwert der Kühlwasserdrucks. Beschreibung Kühlwasserdruck Wertebereich 0 … 32000 E-grade Explore Adresse (hex) Variable Beschreibung 2E vPowCon Netzanschlussbedingungen Typ LSB Datentyp Wertebereich E-grade R /W -Bitfeld --Explore Bei einigen Temperiergeräten muss der Anwender die Netzanschlusswerte dem Thermostat mitteilen. Dies geschieht im Normalfall durch eine Menüeingabe. Diese manuelle Einstellung wird hier nachempfunden. Eine Benutzung dieser Variablen muss bei den betreffenden Geräten erfolgen. Ein Eintrag bei Geräten die diese Angaben nicht benötigen wird ignoriert. Bit 0 - 2: Einstellung der Netzspannung und Netzfrequenz bei umschaltbarer Spannungsversorgung: 000 Kein Eintrag erfolgt / undefiniert 001 400 V / 50 Hz 010 400 V / 60 Hz 011 460 V / 60 Hz 100 480 V / 60 Hz Bits 8 – 9: Berücksichtigung der maximalen Strombelastung durch die Vorabsicherung. Das Gerät reduziert die maximale elektrische Leistungsaufnahme so, dass die angegebenen Maximalströme nicht überzogen werden. Diese Funktion ist nur bei einigen Geräten mit 230 V Spannungsversorgung verhanden. 00 Kein Eintrag erfolgt / undefiniert 01 16A 10 13A 11 10A Adresse (hex) Variable Beschreibung 30 vMinSP Minimaler Sollwert Typ LSB Datentyp Wertebereich E-grade R/W 0,01 °C Ganzzahl -15100 … 32700 Basic Dieser minimale Sollwert wird vom Temperaturregler verwendet. Er begrenzt den Sollwertbereich des Intern- und des Prozessreglers nach unten. V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 17 Spezielle Beschreibung der PB-Kommandos HANDBUCH Kapitel 6 Adresse (hex) Variable Beschreibung 31 vMaxSP Maximaler Sollwert Typ LSB Datentyp Wertebereich E-grade R/W 0,01 °C Ganzzahl -15100 … 32700 Basic Dieser maximale Sollwert wird vom Temperaturregler verwendet. Er begrenzt den Sollwertbereich des Intern- und des Prozessreglers nach oben. Adresse (hex) Variable Beschreibung 33 vNivHi Überniveaugrenze Typ LSB Datentyp Wertebereich E-grade R/W 0,1 % Ganzzahl 0 … 1000 Basic Einstellung der Füllstandsobergrenze. Ein höherer Füllstand erzeugt eine Meldung (optionale Einrichtung) Adresse (hex) Variable Beschreibung 34 vNivLo Unterniveaugrenze Typ LSB Datentyp Wertebereich E-grade R/W 0,1 % Ganzzahl 0 … 1000 Basic Einstellung der Füllstandsuntergrenze. Ein niedrigerer Füllstand erzeugt eine Meldung (optionale Einrichtung) Adresse (hex) Variable Beschreibung 35 vNivCont Einstellung digitaler Niveauausgang Typ LSB Datentyp Wertebereich E-grade R/W -Bitfeld --Basic Einstellung des Schaltsinns für Niveaukontakte (optionale Einrichtung). Es handelt sich dabei um zwei digitale Ausgänge die wahlweise als Öffner oder Schließer eingestellt werden können. Der eine Ausgang meldet eine Überniveau, der andere ein Unterniveau. Bit 0: 0: Unterniveauausgang als Öffner 1: Unterniveauausgang als Schließer Bit 1: 0: Überniveauausgang als Öffner 1: Überniveauausgang als Schließer Adresse (hex) Variable Beschreibung 36 - 39 Servicefunktion Typ LSB Datentyp Wertebereich R/W 1 Ganzzahl -32700 … 32700 Bitte diese Variablen nur nach Rücksprache verwenden! Verschiedene Serviceeinstellungen. E-grade für Service vorbehalten Adresse (hex) Variable Beschreibung 3A vTProc Prozesstemperatur Typ LSB Datentyp Wertebereich E-grade R 0,01 °C Ganzzahl -15100 … 32700 Exclusive Der Istwert der vom Prozessregler verwendeten Temperatur wird zurückgegeben. Ist kein Fühler angeschlossen und der Wert wird auch nicht durch eine Kommando oder den Analogeingang des Com.G@tes vorgegeben, so wird der Wert -151 °C zurückgegeben. Adresse (hex) Variable Beschreibung 3B vT0V Temperatur für Service und Wartung Typ LSB Datentyp Wertebereich E-grade R 0,01 °C Ganzzahl -15100 … 32700 für Service vorbehalten Bitte diese Variable nur nach Rücksprache verwenden! Service Temperatur 18 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 Spezielle Beschreibung der PB-Kommandos Kapitel 6 HANDBUCH Adresse (hex) Variable Beschreibung 3C vStatus2 Status des Thermostats Typ LSB Datentyp Wertebereich E-grade R --Bitfeld --Basic Abfrage des aktuellen Thermostat-Status. Bei dem zurückgegebenen Wert handelt es sich um ein Bitfeld. Die einzelnen Bits sind unabhängig voneinander zu betrachten. Bit 0 Reglung: 1: Der Prozessregler gibt momentan die Stellgröße vor / 0: Der Internregler gibt momentan die Stellgröße vor Bit 1-4 aktiver Kälteregler (zur internen Verwendung) Bit 5 Die Tropfwanne ist voll und muss entleert werden (Leckage der Pumpendichtung) (nur bei spezielle Einrichtung) Adresse (hex) Variable Beschreibung 3D vDistFeed Störgrößenaufschaltung Typ LSB Datentyp Wertebereich E-grade R/W 1W Ganzzahl -32700 … 32700 Explore Bei vorhersehbaren Laständerungen kann dem Thermostat, bevor sich die Temperatur tatsächlich ändert, mitgeteilt werden, dass er seine Leistung um den aktuellen Wert anpassen soll. Somit können Störgrößeneinflüsse, die der Regler erst nach einer gewissen Totzeit am Regelfühler feststellen kann, vermindert werden. Adresse (hex) Variable Beschreibung 3E vpPIn Druck im Rücklauf (absolut) Typ LSB Datentyp Wertebereich E-grade R 1 mbar Ganzzahl 0 … 32000 Basic Absoluter Druck am Rücklauf des Thermofluid-Kreislauf des Thermostats (nur mit optionaler Messeinrichtung). Adresse (hex) Variable Beschreibung 3F vBlDwn Status Blow-Down Typ LSB Datentyp Wertebereich R/W -Bitfeld --Status der optionalen Blow-Down Einrichtung. Bit 0 Druckluft OK Bit 1 Übertemperaturstatus OK Bit 2 Betriebsart OK (Standby) Bit 3 Interntemperatur ist OK (< 70°C) Bit 4 Druck im Hydraulikkreislauf (Pumpendruck) ist OK (< 300mbar) Bit 5 Schieberposition OK Bit 8 Magnetventil bzw. Blow-Down Prozess ein- / ausschalten Bei einem schreibenden Zugriff wird nur Bit 8 ausgewertet. E-grade Basic Adresse (hex) Variable Beschreibung 40 vWD1 Watchdog (Störung) Typ LSB Datentyp Wertebereich E-grade R/W 1s Ganzzahl 0 … 150 Basic Watchdog Timer zur Überwachung der Datenkommunikation. Wird der Timer auf einen Wert ungleich Null gesetzt, so ist der Watchdog aktiv. Die Variable muss regelmäßig mit dem gewünschten Zeitlimit beschrieben werden, ansonsten erzeugt der Thermostat nach Ablauf der Zeit eine Störung. Wird die Variable mit dem Wert Null beschrieben, so wird der Watchdog deaktiviert. Adresse (hex) Variable Beschreibung 41 vWD2 Watchdog (2. Sollwert) Typ LSB Datentyp Wertebereich E-grade R/W 1s Ganzzahl 0 … 150 Professional Watchdog Timer zur Überwachung der Datenkommunikation. Wird der Timer auf einen Wert ungleich Null gesetzt, so ist der Watchdog aktiv. Die Variable muss regelmäßig mit dem gewünschten Zeitlimit beschrieben werden, ansonsten wird nach Ablauf der Zeit der „2. Sollwert“ als Sollwert übernommen. Nach Wiederaufbau der Kommunikation kann der Sollwert überschrieben werden. Wird die Variable mit dem Wert Null beschrieben, so wird der Watchdog deaktiviert. V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 19 Spezielle Beschreibung der PB-Kommandos HANDBUCH Kapitel 6 Adresse (hex) Variable Beschreibung 42 vSP2 2. Sollwert Typ LSB Datentyp Wertebereich E-grade R/W 0,01 °C Ganzzahl -15100 … 32700 Professional Einstellung des „2. Sollwerts“. Dieser Wert sollte auf einen Temperaturwert gesetzt werden, bei dem sich der Prozess in einem sicheren Zustand befindet. Der Sollwert wird nur beim Eintritt bestimmter Ereignisse aktiviert. Adresse (hex) Variable Beschreibung 43 vPMAMode PMA Modus Typ LSB Datentyp Wertebereich E-grade R/W 1 Ganzzahl 0…1 Explore Im sogenannten PMA-Modus ist es möglich den Temperaturregler des Thermostats zu übergehen und direkt die gewünschte Leistung (Kälteleistung/Heizleistung) vorzugeben. Vor der Leistungsvorgabe (vergl. vPMA, Adresse 0x44) muss der PMA Modus aktiviert werden. 0: PMA Modus nicht aktiv 1: PMA Modus aktiv Adresse (hex) Variable Beschreibung 44 vPMA PMA Leistung vorgeben Typ LSB Datentyp Wertebereich E-grade R/W 0,1 % Ganzzahl -1000 … 1000 Explore Prozentuale Leistungsvorgabe im PMA Modus. Negative Werte für Kälteleistung, positive Werte für Heizleistung. Zuvor muss der PMA Modus aktiviert werden (PB Kommando 0x43). Adresse (hex) Variable Beschreibung 45 vPMHMode PMH Modus Typ LSB Datentyp Wertebereich E-grade R/W 1 Ganzzahl 0…1 Explore Im sogenannten PMH-Modus ist es möglich den Temperaturregler des Thermostats zu übergehen und direkt die gewünschte Heizleistung vorzugeben. Vor der Leistungsvorgabe (vergl. vPMH, Adresse 0x46 und vFixCool, Adresse 0x47) muss der PMH Modus aktiviert werden. 0: PMH Modus nicht aktiv 1: PMH Modus aktiv Adresse (hex) Variable Beschreibung 46 vPMH Heizleistung vorgeben Typ LSB Datentyp Wertebereich E-grade R/W 0,1 % Ganzzahl 0 … 1000 Explore Prozentuale Heizleistungsvorgabe im PMH Modus. Zuvor muss der PMA Modus aktiviert werden (PB Kommando 0x45). Adresse (hex) Variable Beschreibung 47 vFixCool Kühlleistung vorgeben Typ LSB Datentyp Wertebereich E-grade R/W 0,1 % Ganzzahl 0 … 1000 Basic Prozentuale Kühlleistungsvorgabe. Diese Funktion kann sowohl im Zusammenhang mit einer Leistungsvorgabe im PMH-Modus (vergl. vPMHMode, Adresse 0x45) oder auch im normalen Regelbetrieb verwendet werden. Bei Verwendung im Regelbetrieb wird die Kühlleistung auf den vorgegebenen Wert festgestellt und vom Temperaturregler nur noch die Heizleistung automatisch angepasst um den gewünschten Sollwert zu erreichen. Adresse (hex) Variable Beschreibung 48 vnPSet Sollwert Pumpendrehzahl Typ LSB Datentyp Wertebereich E-grade R/W 1 / min Ganzzahl 0 ... 32000 Basic Den aktuellen Pumpendrehzahl-Sollwert setzen und abfragen. Beachten Sie, dass diese Funktion nur bei Thermostaten mit drehzahlregelbarer Pumpe gegeben ist. 20 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 Spezielle Beschreibung der PB-Kommandos Kapitel 6 HANDBUCH Adresse (hex) Variable Beschreibung 49 vpPSet Sollwert Pumpendruck Typ LSB Datentyp Wertebereich E-grade R/W 1 mbar Ganzzahl 0 ... 32000 Basic Den aktuellen Pumpendruck-Sollwert setzen und abfragen. Beachten Sie, dass diese Funktion nur bei Thermostaten mit drehzahlregelbarer Pumpe oder VPCBypass gegeben ist. Adresse (hex) Variable Beschreibung 4A vVPCMode VPC-Bypass Betriebsmodus Typ LSB Datentyp Wertebereich E-grade R /W 1 Ganzzahl 0 ... 1 Basic Betriebsmodus des VPC-Bypass setzen und abfragen. 0: Automatische Regelung des VPC-Bypass nach dem Pumpendruck Sollwert 1: Positionsvorgabe durch Automatisierungssystem Adresse (hex) Variable Beschreibung 4B vVPCPos VPC-Bypass Sollposition Typ LSB Datentyp Wertebereich E-grade R/W 0,1 % Ganzzahl 0 ... 1000 Basic VPC-Bypass Position vorgeben oder aktuelle Vorgabe abfragen. Beachten Sie, dass die Vorgabe einer VPC-Bypass Position nur möglich ist, wenn zunächst der Betriebsmodus auf Positionsvorgabe umgestellt wurde (vergl. vVPCMode, Adresse 0x4A). Adresse (hex) Variable Beschreibung 4C vTKwOut Kühlwasseraustrittstemperatur Typ LSB Datentyp Wertebereich E-grade R 0,01 °C Ganzzahl -15100 … 32700 Explore Aktueller Messwert der Kühlwasseraustrittstemperatur. Adresse (hex) Variable Beschreibung 4D vFluidFlow Thermofluid Volumenstrom Typ LSB Datentyp Wertebereich E-grade R 0,1 l/min Ganzzahl 0 … 10000 Explore Aktueller Messwert des Thermofluid Volumenstroms. Bitte beachten Sie, dass dieser Messwert nur zur Verfügung steht, wenn eine spezielle Volumenstrom Messeinrichtung vorhanden ist. Adresse (hex) Variable Beschreibung 4E vFluidFlowSet Sollwert Thermofluid Volumenstrom Typ LSB Datentyp Wertebereich E-grade R/W 0,1 l/min Ganzzahl 0 … 10000 Explore Aktueller Sollwert des Thermofluid Volumenstroms. Bitte beachten Sie, dass diese Funktion nur zur Verfügung steht, wenn eine spezielle Volumenstrom Messeinrichtung vorhanden ist. Außerdem muss entweder eine drehzahlregelbare Pumpe oder ein VPC-Bypass vorhanden sein um eine Regelung zu ermöglichen. Adresse (hex) Variable Beschreibung 4F vDeltaT Sollwert Delta-T Regelung Typ LSB Datentyp Wertebereich E-grade R/W 0,01 K Ganzzahl 0 … 32700 Exclusive Der Sollwert wird vom Temperaturregler verwendet. Bei Internregelung wird dieser Wert ignoriert, bei Prozessregelung wird dadurch die Temperaturdifferenz zwischen Intern- und Prozesstemperatur begrenzt. Bitte beachten Sie, dass diese Soll-Temperaturdifferenz je nach Qualität der Reglerparametrierung überschritten werden kann. Adresse (hex) Variable Beschreibung 50 vDeltaTAlarm Alarmgrenze Delta-T Typ LSB Datentyp Wertebereich E-grade R/W 0,01 K Ganzzahl 0 … 32700 Exclusive Alarmgrenze für die Differenz zwischen Intern- und Prozesstemperatur setzen und abfragen. Bei Internregelung wird dieser Wert ignoriert, bei Prozessregelung wird dadurch die Temperaturdifferenz zwischen Intern- und Prozesstemperatur überwacht und bei einem Überschreiten eine Störung ausgelöst. V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 21 Spezielle Beschreibung der PB-Kommandos HANDBUCH Kapitel 6 Adresse (hex) Variable Beschreibung 51 vTIAlarmHi Obere Alarmgrenze Interntemperatur Typ LSB Datentyp Wertebereich E-grade R/W 0,01 °C Ganzzahl -15100 … 32700 Basic Obere Alarmgrenze für die Interntemperatur setzen und abfragen. Überschreitet die Interntemperatur diesen Wert, so wird eine Störung erzeugt. Adresse (hex) Variable Beschreibung 52 vTIAlarmLo Untere Alarmgrenze Interntemperatur Typ LSB Datentyp Wertebereich E-grade R/W 0,01 °C Ganzzahl -15100 … 32700 Basic Untere Alarmgrenze für die Interntemperatur setzen und abfragen. Unterschreitet die Interntemperatur diesen Wert, so wird eine Störung erzeugt. Adresse (hex) Variable Beschreibung 53 vTEAlarmHi Obere Alarmgrenze Prozesstemperatur Typ LSB Datentyp Wertebereich E-grade R/W 0,01 °C Ganzzahl -15100 … 32700 Basic Obere Alarmgrenze für die Prozesstemperatur setzen und abfragen. Überschreitet die Prozesstemperatur diesen Wert, so wird eine Störung erzeugt. Adresse (hex) Variable Beschreibung 54 vTEAlarmLo Untere Alarmgrenze Prozesstemperatur Typ LSB Datentyp Wertebereich E-grade R/W 0,01 °C Ganzzahl -15100 … 32700 Basic Untere Alarmgrenze für die Prozesstemperatur setzen und abfragen. Unterschreitet die Prozesstemperatur diesen Wert, so wird eine Störung erzeugt. Adresse (hex) Variable Beschreibung 55 vOTHeater Einstellung Übertemperaturschutz Heizung Typ LSB Datentyp Wertebereich E-grade R 0,01 °C Ganzzahl -15100 … 32700 Basic Aktuelle Einstellung des Übertemperaturschutz-Auslösewertes der Heizung(en) abfragen. Steigt die Temperatur in einer der Heizungen über diesen Wert an, dann wird eine Störung erzeugt. Adresse (hex) 56 Variable vOTExpVessel Beschreibung Einstellung Übertemperaturschutz Expansionsgefäß Typ LSB Datentyp Wertebereich E-grade R 0,01 °C Ganzzahl -15100 … 32700 Basic Aktuelle Einstellung des Übertemperaturschutz-Auslösewertes des Expansionsgefäßes abfragen. Steigt die Temperatur im Expansionsgefäß über diesen Wert an, dann wird eine Störung erzeugt. Adresse (hex) Variable Beschreibung 57 vLimitMinOffset Nur für Servicezwecke Typ LSB Datentyp Wertebereich R/W 0,01 °C Ganzzahl -15100 … 32700 Bitte diese Variablen nur nach Rücksprache verwenden! E-grade Basic Adresse (hex) Variable Beschreibung 58 vProgramStart Temperierprogramm starten Typ LSB Datentyp Wertebereich E-grade R/W 1 Ganzzahl 1 … 10 Exclusive Temperierprogramm starten oder Kennung des laufenden Temperierprogramms abfragen. Startet ein bereits eingegebenes Temperierprogramm. Adresse (hex) Variable Beschreibung 59 vRampDuration Rampendauer vorgeben Typ LSB Datentyp Wertebereich E-grade R/W 1s Ganzzahl -32767 … 32767 Exclusive Rampendauer in Sekunden vorgeben und nach Rampenstart verbleibende Rampendauer abfragen. Gibt die Dauer einer Rampe vor. Die Rampe wird durch die Eingabe eines Sollwertes mit Befehl 0x5A gestartet. Wird bei einer laufenden Rampe ein Wert kleiner 0 gesendet, stoppt die Rampe. 22 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 Spezielle Beschreibung der PB-Kommandos Kapitel 6 HANDBUCH Adresse (hex) Variable Beschreibung 5A vRampStart Rampe starten Typ LSB Datentyp Wertebereich E-grade R/W 0,01 °C Ganzzahl -15100 … 32700 Exclusive Rampe starten und aktuellen Sollwert abfragen. Gibt den Sollwert einer Rampe vor, deren Dauer zuvor mit Befehl 0x59 bestimmt wurde. Der aktuelle Sollwert kann abgefragt werden. Adresse (hex) Variable Beschreibung 5B vBlowDownPos Blow-Down Betriebszustand vorgeben Typ LSB Datentyp Wertebereich E-grade R/W 1 Ganzzahl 0, 2666, 4500, 8266 Basic Blow-Down Betriebszustand vorgeben oder abfragen. 0: Temperieren 2666: Entleeren 4500: Ausblasen (Blow down) 8266: Halten Gibt den neuen Sollzustand zurück. Adresse (hex) Variable Beschreibung 5C vMaintenanceDays Tage bis zur Wartung Typ LSB Datentyp Wertebereich E-grade R 1d Ganzzahl -1 … Basic Abfrage, in wie vielen Tagen die nächste Wartungsmeldung erscheint. Wenn als Rückgabewert -1 kommt wurde die Erinnerung noch nicht aktiviert. Adresse (hex) Variable Beschreibung 5D vFGasDays Tage bis zur F-Gas Überprüfung Typ LSB Datentyp Wertebereich E-grade R 1d Ganzzahl -1 … Basic Abfrage, in wie vielen Tagen die nächste Wartungsmeldung zur F-Gas Überprüfung erscheint. Wenn als Rückgabewert -1 kommt wurde die Erinnerung noch nicht aktiviert. Adresse (hex) Variable Beschreibung 5E vServicePackage Service Packet erzeugen Typ LSB Datentyp Wertebereich E-grade R/W 1 Ganzzahl -1, 0, 1, 2 Basic Wird als Parameter 1 übergeben, so wird das Service Packet auf dem USB Stick gespeichert. Rückgabewert: -1 (Fehler), 0 (Initialisiert), 1 (in Bearbeitung), 2 (Erfolgreich Abgeschlossen). Adresse (hex) Variable Beschreibung 5F vProgramState Programm Status ändern Typ LSB Datentyp Wertebereich E-grade R/W 1 Ganzzahl 0…4 Exclusive Ändern des Status eines laufenden Temperierprogrammes oder aktueller Status abfragen. Vorgabe: 1: Laufendes Temperierprogramm fortsetzen (nach einer Pause) 2: Laufendes Temperierprogramm pausieren 3: Zum nächsten Segment springen 4: Laufendes Temperierprogramm beenden Antwort: 0: kein Temperierprogramm aktiv 1: Temperierprogramm läuft 2: Temperierprogramm pausiert 3: Zum nächsten Segment gewechselt 4: Temperierprogramm beendet V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 23 PB-Kommando Beispiele HANDBUCH Kapitel 7 7 PB-Kommando Beispiele Beispiel 1: Sollwert soll auf 20 °C eingestellt werden Der Sollwert für den Temperaturregler befindet sich auf Adresse 0x00. Der Wert muss in der Einheit 0,01 °C übergeben werden. Das heißt es muss (in Dezimaldarstellung) ein Wert von 2000 übergeben werden. Dieser Wert muss jedoch als Hexadezimalwert mit 4 Stellen übergeben werden. 2000 entspricht in der Hexadezimaldarstellung dem Wert 7D0. Um 4 Stellen übergeben zu können muss noch eine führende 0 angehängt werden. Der Hexadezimalwert muss nun in einen String gewandelt werden. Folgender String muss an das Gerät gesendet werden: {M0007D0<CR><LF> Dabei entspricht <CR> dem Zeichen Carriage Return (mit dem ASCII Code 13 bzw. 0x0D) und <LF> dem Zeichen Line Feed (mit dem ASCII Code 10 bzw. 0x0A). Der Thermostat antwortet (falls der Wert zulässig war und nicht begrenzt wurde) mit dem Kommando: {S0007D0<CR><LF> Beispiel 2: Sollwert soll auf -23,15 °C eingestellt werden Es muss (in Dezimaldarstellung) ein Wert von -2315 übergeben werden. In der Hexadezimaldarstellung entspricht dies dem Wert F6F5. Folgender String muss an das Gerät gesendet werden: {M00F6F5<CR><LF> Der Thermostat antwortet (falls der Wert zulässig war und nicht begrenzt wurde) mit dem Kommando: {S00F6F5<CR><LF> Beispiel 3: Abfrage des Sollwerts Wenn eine Variable nur abgefragt und nicht gesetzt werden soll, dann wird anstatt des Wertes die Zeichenfolge **** eingesetzt. Master sendet: {M00****<CR><LF> Antwort des Thermostats: {S00FFCC<CR><LF> In diesem Beispiel antwortet der Thermostat mit dem Hexadezimalwert FFCC. Dies entspricht in Dezimaldarstellung dem Wert -52. Der aktuelle Sollwert ist demnach auf -0,52 °C eingestellt. Beispiel 4: Abfrage der aktuellen Interntemperatur Master sendet: {M01****<CR><LF> Antwort des Thermostats: {S011010<CR><LF> In diesem Beispiel antwortet der Thermostat mit dem Hexadezimalwert 1010. Dies entspricht in Dezimaldarstellung dem Wert 4112. Die Intertemperatur beträgt somit aktuell 41,12 °C. Beispiel 5: Abfrage der aktuellen Prozesstemperatur (gemessen an der LEMOSA Buchse) Master sendet: {M07****<CR><LF> Antwort des Thermostats: {S07087F<CR><LF> Der Hexadezimalwert 087F entspricht einer Temperatur von 21,75°C. Antwortet der Thermostat mit dem Kommando {S07C504<CR><LF> so entspricht dies einer Temperatur von -151 °C. Der Wert -151 °C bedeutet, dass entweder kein Fühler angeschlossen, oder der Fühler defekt ist. Beispiel 6: Abfrage der Rücklauftemperatur Zur Abfrage der Rücklauftemperatur muss das DV E-grade oder E-grade Explore vorhanden sein. Die Rücklauftemperatur befindet sich auf Adresse 0x02. Master sendet: {M02****<CR><LF> Antwort des Thermostats: {S0207E7<CR><LF> Die aktuelle Rücklauftemperatur beträgt demnach 20,23°C. Ist das notwendige E-grade nicht freigeschaltet, so antwortet der Thermostat mit dem Kommando: {S027FFFF<CR><LF> Der Wert 7FFF bedeutet, dass entweder das notwendige E-grade nicht vorhanden, oder die angesprochene Variable nicht implementiert ist. 24 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 PB-Kommando Beispiele Kapitel 7 HANDBUCH Beispiel 7: Auslesen des maximalen Sollwerts Um die Datenübertragung zu verdeutlichen soll in diesem Beispiel der zu sendende String nochmals byteweise betrachtet werden. Das Kommando um den Wert der maximalen Sollwertbegrenzung (Adresse 0x31) auszulesen sieht so aus: {M31****<CR><LF> Jedes der Zeichen entspricht einem zu übertragenden Byte die unterschiedlich dargestellt werden können. Darstellung als Text: { M 3 1 * * * * <CR> <LF> Darstellung des ASCII Codes im Dezimalformat: 123 77 51 49 42 42 42 42 13 10 Darstellung des ASCII Codes im Hexadezimalformat : 7B 4D 33 31 2A 2A 2A 2A 0D 0A Beispiel 8: Vorgabe der Prozesstemperatur Vor der Modus Umschaltung sollte einmalig ein Prozesswert vorgegeben werden um die entsprechende Variable vorzubelegen: Vorgabe einer Prozesstemperatur von 15,12 °C: Master sendet: {M0905E8<CR><LF> Antwort des Thermostats: {S0905E8<CR><LF> Modus Umschaltung (Watchdog löst eine Warnung aus, falls keine neuen Befehle empfangen werden): Master sendet: {M190001<CR><LF> Antwort des Thermostats: {S190001<CR><LF> Von nun an sollten ständig (wenn möglich 1-mal pro Sekunde) neue Prozesstemperaturwerte gesendet werden. Wichtig: Vor dem Senden eines neuen Kommandos immer die Antwort vom Thermostat abwarten. Vorgabe einer Prozesstemperatur von 15,13 °C: Master sendet: {M0905E9<CR><LF> Antwort des Thermostats: {S0905E9<CR><LF> Vorgabe einer Prozesstemperatur von 15,14 °C: Master sendet: {M0905EA<CR><LF> Antwort des Thermostats: {S0905EA<CR><LF> Vorgabe einer Prozesstemperatur von 15,15 °C: Master sendet: {M0905EB<CR><LF> Antwort des Thermostats: {S0905EB<CR><LF> V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 25 PB-Kommandos mit größerem Wertebereich und höherer Genauigkeit HANDBUCH Kapitel 8 8 PB-Kommandos mit größerem Wertebereich und höherer Genauigkeit INFORMATION. Diese Funktionalität steht nur bei Geräten mit Pilot ONE® Regler zur Verfügung. Teilweise ist der Wertebereich bei 2 Byte Werten nicht ausreichend. Dies betrifft beispielsweise Geräte mit einem Temperaturbereich über 300 °C oder mit Leistungen über 30 kW. Aus diesem Grund wurden die PB Kommandos so erweitert, dass auch größere Werte abgefragt und gesetzt werden können. Im Standardformat der PB-Kommandos werden Werte immer mit 2 Bytes (bzw. 4 Zeichen) übertragen. Durch eine Ergänzung von 2 weiteren Bytes (entspricht 4 weiteren Zeichen) kann der Wertebereich und die Auflösung erhöht werden. In diesem Fall ändern sich folgende Eigenschaften der PBKommandos (vergl. Kapitel 3 »Eigenschaften der PB-Kommandos«): Die Länge eines Kommandos beträgt immer 14 Zeichen. Wird eine nicht definierte oder nicht freigeschaltete (vergl. E-grade) Adresse angesprochen, so wird das Kommando mit der gleichen Adresse und dem Wert „7FFFFFFF“ beantwortet. Im Vergleich zu Kapitel 6 »Spezielle Beschreibung der PB-Kommandos« ändern sich folgende Eigenschaften einiger Variablen: Die Werte aller PB-Kommando Variablen die Temperaturen beinhalten (Sollwerttemperatur, Interntemperatur, …) werden mit 3 Nachkommastellen (Auflösung 0,001 °C statt 0,01 °C) und einen Wertebereich von -274000 … 500000 übertragen. Der Messbereich beträgt -200 °C … 500 °C, nicht vorhandene Sensoren bzw. defekte Sensoren melden -274 °C. Nur bei freigeschaltetem DV-Egrade bringt die zusätzliche Nachkommastelle wirklich neue Informationen mit sich. Ansonsten wird der Wert auf Hundertstel °C gerundet, die letzte Stelle enthält in diesem Fall immer d Ziffer 0. Die Werte aller PB-Kommando Variablen die Volumenströme beinhalten (Thermofluid Volumenstrom, Sollwert Thermofluid Volumenstrom) werden mit 3 Nachkommastellen (Auflösung 0,001 l/min statt 0,1 l/min) übertragen. Nur bei freigeschaltetem DV-E-grade bringen die zusätzlichen Nachkommastellen wirklich neue Informationen mit sich. Ansonsten wird der Wert auf Zehntel l/min gerundet, die letzten beiden Stellen enthalten in diesem Fall immer die Ziffer 0. Für die Abfrage der Seriennummer sind im Standardformat zwei PB-Kommandos notwendig, vSNRL (0x1B) und vSNRH (0x1C). Bei Verwendung des größeren Wertebereichs liefern beide Kommandos die vollständige Seriennummer. Es ist daher nicht notwendig zwei Kommandos zu senden. Der Aufbau eines PB-Kommandos mit größerem Wertebereich ist wie folgt: {mttvvvvyyyy<CR><LF> { m tt vvvvyyyy <CR> <LF> Startzeichen (ASCII Code 0x7B): Identifiziert das PB-Kommando Senderkennung: Master-Anfrage ‚M’ (ASCII Code 0x4D) oder Slave-Antwort ‚S’ (ASCII Code 0x53) zur Richtungskennzeichnung. Das Automatisierungssystem (PC, SPS, PLS, …) ist immer der Master. Seine Anfrage ist durch ein ‚M’ gekennzeichnet. Der Thermostat ist immer der Slave. Die Antwort des Thermostats ist durch das ‚S’ gekennzeichnet. Adresse (entspricht dem Tabellenplatz): 2 Zeichen (1 Byte in Hexadezimaldarstellung). Variablenwert: 8 Zeichen (4 Bytes als Hexadezimalstring) Soll eine Variable nur abgefragt und nicht verändert werden, so ist als Variablenwert „********“ zu senden. Die Antwort bei nicht vorhandenen Temperaturen ist -274,000 °C. Dies entspricht der Zeichenfolge „FFFBD1B0“. Das Zeichen Carriage Return (ASCII Code 0x0D) Das Zeichen Line Feed (ASCII Code 0x0A) Im Vergleich zum Standard PB-Kommando ändert sich somit lediglich die Länge des Variablenwertes und damit auch die Länge des gesamten Kommandos. 26 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 PB-Kommandos mit größerem Wertebereich und höherer Genauigkeit Kapitel 8 HANDBUCH 8.1 Beispiele Beispiel 9: Sollwert soll auf 20,000 °C eingestellt werden (mit höherer Auflösung) Der Sollwert für den Temperaturregler befindet sich an Adresse 0x00. Bei einer höheren Auflösung muss der Wert in der Einheit 0,001 °C übergeben werden. Hier muss (in Dezimaldarstellung) ein Wert von 20000 übergeben werden. In der Hexadezimaldarstellung (mit 8 Zeichen) entspricht dies dem Wert 00004E20. Der Hexadezimalwert muss nun in einen String gewandelt werden. Folgender String muss damit an das Gerät gesendet werden: {M0000004E20<CR><LF> Dabei entspricht <CR> dem Zeichen Carriage Return (mit dem ASCII Code 13 bzw. 0x0D) und <LF> dem Zeichen Line Feed (mit dem ASCII Code 10 bzw. 0x0A). Der Thermostat antwortet (falls der Wert zulässig war und nicht begrenzt wurde) mit dem Kommando: {S0000004E20<CR><LF> Beispiel 10: Sollwert soll auf -23,150 °C eingestellt werden (mit höherer Auflösung) Bei einer höheren Auflösung muss (in Dezimaldarstellung) ein Wert von -23150 übergeben werden. In der Hexadezimaldarstellung entspricht dies dem Wert FFFFA592. Folgender String muss damit an das Gerät gesendet werden: {M00FFFFA592<CR><LF> Der Thermostat antwortet (falls der Wert zulässig war und nicht begrenzt wurde) mit dem Kommando: {S00FFFFA592<CR><LF> Beispiel 11: Abfrage des Sollwerts (mit höherer Auflösung) Wenn eine Variable nur abgefragt und nicht gesetzt werden soll, dann muss anstatt des Wertes die Zeichenfolge ******** eingesetzt. Master sendet: {M00********<CR><LF> Antwort des Thermostats: {S00 FFFFFDF8<CR><LF> In diesem Beispiel antwortet der Thermostat mit dem Hexadezimalwert FFFFFDF8. Dies entspricht in Dezimaldarstellung dem Wert -520. Der aktuelle Sollwert ist demnach auf -0,520 °C eingestellt. V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 27 PB-Paketkommando HANDBUCH Kapitel 9 9 PB-Paketkommando INFORMATION. Diese Funktionalität steht nur bei Geräten mit Pilot ONE® Regler zur Verfügung. Mit dem PB-Paketkommando besteht die Möglichkeit, mehrere PB-Kommandos zu einem einzigen Kommando zusammenzufassen. Damit kann die Kommunikation zwischen Automatisierungssystem und Thermostat wesentlich beschleunigt werden. Vor der Verwendung des PB-Paketkommandos muss dieses am Pilot ONE® Regler konfiguriert werden. Dabei wird festgelegt, welche PB-Kommando Adressen zu einem PB-Paketkommando zusammengefasst werden sollen. Das Paketkommando enthält dann nur noch die zu übertragenden Werte der verschiedenen PB-Kommando Adressen, nicht mehr die Adressen selbst. Die Reihenfolge der Werte entspricht dabei der Reihenfolge der am Pilot ONE® konfigurierten Adressen. In dieser Reihenfolge werden die PB-Kommandos abgearbeitet. 9.1 Aufbau Bei der Kommunikation zwischen Automatisierungssystem (Master) und Regler (Slave) werden keine Binärdaten, sondern ASCII-Zeichen übertragen. Alle Zahlenwerte werden in Hexadezimaldarstellung übertragen. Das Paketkommando setzt sich wie folgt zusammen: [mssillbdddd….ddddpp<CR> [ Starterkennung (1 Zeichen) Als Startkennung ist das Zeichen ‚[‘ definiert. m Kommunikationsrichtung (1 Zeichen) Das Zeichen ‚M‘ steht für eine Master-Anfrage (vom Automatisierungssystem). Das Zeichen ‚S’ steht für eine Slave-Antwort (vom Thermostat). ss Slave-Adresse (2 Zeichen in Hexadezimaldarstellung) Standardmäßig wird die Slave-Adresse 1 verwendet. Bei der Kommunikation über die RS232 oder RS485 Schnittstelle des Com.G@tes kann die Slave-Adresse im Menü der Pilot ONE® Reglers verändert werden. i Identifier der Datengruppe (1 Zeichen) Für das PB-Paketkommando ist der Buchstabe ‚B‘ definiert. ll Länge des Kommandos (2 Zeichen in Hexadezimaldarstellung) Die Länge des Kommandos entspricht der Anzahl der Zeichen ohne Prüfsumme und ohne Endekennung. b Blockzähler Der Blockzähler muss auf 0 gesetzt werden. dddd…dddd Werte zu den PB-Kommando Adressen: (jeweils 4 Zeichen) Die einzelnen Werte werden als 16 bit Zahlen übergeben. In Hexadezimaldarstellung entspricht dies einer Zahl mit 4 Ziffern. Für jede Ziffer wird ein Zeichen übertragen. Gültige Zeichen sind 0-9 und A-Z. Bei einer Master-Anfrage ist zudem die Zeichenfolge ‚****‘ zulässig um dem Regler mitzuteilen, dass auf diese Adresse nur lesend zugegriffen wird. Die Darstellung entspricht damit der Wertedarstellung der PB-Kommandos. Enthält das Slave-Antwortkommando anstelle der erwarteten Werte lediglich die Zeichenfolge „EL“ oder „EB“ (inklusive der Anführungszeichen), weist dies auf ein syntaktisch richtiges, aber inhaltlich falsches PB-Paketkommando hin. „EL“ besagt, dass die Anzahl der in der Master-Anfrage enthaltenen Werte nicht mit der projektierten Anzahl übereinstimmt. „EB“ besagt, dass ein ungültiger Blockzähler empfangen wurde. Maximal können 61 PB-Kommando Adressen mit einem PB-Paketkommando angesprochen werden. Damit ergibt sich für das gesamte Kommando eine maximale Länge von 255 Zeichen. pp Prüfsumme (2 Zeichen) Die ASCII-Codes aller vorangehenden Zeichen werden in einer Byte-Variable aufaddiert (Bereichsüberläufe werden ignoriert). Das Ergebnis entspricht der Prüfsumme und muss in Hexadezimaldarstellung mit 2 Zeichen eingetragen werden. <CR> Endekennung <CR> steht stellvertretend für das nicht druckbare Zeichen Carriage Return (ASCII Code 0x0D). Dieses Zeichen signalisiert das Ende des Kommandos. 28 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 PB-Paketkommando Kapitel 9 HANDBUCH 9.2 Aufbau mit größerem Wertebereich und höherer Genauigkeit Ist der Wertebereich nicht ausreichend kann dieser beim Paketkommando ebenfalls erweitert werden. Es gelten die gleichen Eigenschaften wie sie im Kapitel 8 »PB-Kommandos mit größerem Wertebereich und höherer Genauigkeit« beschrieben wurden. Das Paketkommando mit größerem Wertebereich setzt sich wie folgt zusammen: [mssillbdddddddd….ddddddddpp<CR> [ Starterkennung (1 Zeichen) Als Startkennung ist das Zeichen ‚[‘ definiert. m Kommunikationsrichtung (1 Zeichen) Das Zeichen ‚M‘ steht für eine Master-Anfrage (vom Automatisierungssystem). Das Zeichen ‚S’ steht für eine Slave-Antwort (vom Thermostat). ss Slave-Adresse (2 Zeichen in Hexadezimaldarstellung) Standardmäßig wird die Slave-Adresse 1 verwendet. Bei der Kommunikation über die RS232 oder RS485 Schnittstelle des Com.G@tes kann die SlaveAdresse im Menü der Pilot ONE® Reglers verändert werden. i Identifier der Datengruppe (1 Zeichen) Für das PB-Paketkommando ist der Buchstabe ‚B‘ definiert. ll Länge des Kommandos (2 Zeichen in Hexadezimaldarstellung) Die Länge des Kommandos entspricht der Anzahl der Zeichen ohne Prüfsumme und ohne Endekennung. b Blockzähler Da die Kommandolänge systembedingt auf 255 Zeichen begrenzt ist können hier maximal 30 Adressen mit einem Kommando angesprochen werden. Sollen mehr Adressen angesprochen werden, muss dies durch Verwendung der Blockzähler B und C geschehen. Für den ersten Block (1…30) wird das Zeichen ‚A‘ verwendet. Für den zweiten Block (31…60) wird das Zeichen ‚B‘ verwendet. Für den dritten Block (61) wird das Zeichen ‚C‘ verwendet. dddddddd…dddddddd Werte zu den PB-Kommando Adressen: (jeweils 8 Zeichen) Die einzelnen Werte werden als 32 bit Zahlen übergeben. In Hexadezimaldarstellung entspricht dies einer Zahl mit 8 Ziffern. Für jede Ziffer wird ein Zeichen übertragen. Gültige Zeichen sind 0-9 und A-Z. Bei einer MasterAnfrage ist zudem die Zeichenfolge ‚********‘ zulässig um dem Regler mitzuteilen, dass auf diese Adresse nur lesend zugegriffen wird. Die Darstellung entspricht damit der Wertedarstellung der PB-Kommandos mit größerem Wertebereich. Enthält das Slave-Antwortkommando anstelle der erwarteten Werte lediglich die Zeichenfolge „EL“ oder „EB“ (inklusive der Anführungszeichen), weist dies auf ein syntaktisch richtiges, aber inhaltlich falsches PBPaketkommando hin. „EL“ besagt, dass die Anzahl der in der MasterAnfrage enthaltenen Werte nicht mit der projektierten Anzahl übereinstimmt. „EB“ besagt, dass ein ungültiger Blockzähler empfangen wurde. Maximal können 30 PB-Kommando Adressen mit einem PB-Paketkommando angesprochen werden. Damit ergibt sich für das gesamte Kommando eine maximale Länge von 251 Zeichen. pp Prüfsumme (2 Zeichen) Die ASCII-Codes aller vorangehenden Zeichen werden in einer ByteVariable aufaddiert (Bereichsüberläufe werden ignoriert). Das Ergebnis entspricht der Prüfsumme und muss in Hexadezimaldarstellung mit 2 Zeichen eingetragen werden. <CR> Endekennung <CR> steht stellvertretend für das nicht druckbare Zeichen Carriage Return (ASCII Code 0x0D). Dieses Zeichen signalisiert das Ende des Kommandos. 9.3 Konfiguration Die Konfiguration des PB-Paketkommandos erfolgt am Pilot ONE® Regler. Dazu muss im Hauptmenüpunkt ‚Schnittstellen‘ der Punkt ‚PB-Paket‘ aufgerufen werden. Ohne vorherige Konfiguration durch den Anwender ist bereits eine Standardkonfiguration vorhanden. Diese kann frei verändert werden. Es können PB-Kommando Adressen hinzugefügt oder entfernt werden und die Reihenfolge der Adressen festgelegt werden. Adressen welche nicht freigeschaltet sind (vergl. E-grade) sind in der Auswahlliste ausgegraut. V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 29 PB-Paketkommando HANDBUCH Kapitel 9 9.4 Beispiele Für die folgenden Beispiele wurde am Pilot ONE® Regler festgelegt, dass mit jedem PBPaketkommando 2 Adressen angesprochen werden sollen die den Sollwert (vSP, Adresse 0x00) und die Interntemperatur (vTI, Adresse 0x01) enthalten. Diese Konfiguration dient als Grundlage für die folgenden Beispiele. Beispiel 1: Sollwert und Interntemperatur abfragen Die beiden konfigurierten Werte sollen abgefragt werden. Master sendet: [M01B100********2C<CR> Das Kommando setzt sich wie folgt zusammen: [ Die Startkennung. M Die Kennung für eine Master-Anfrage. 01 Die Slave-Adresse wurde auf 1 festgelegt. B Die Kennung des PB-Paketkommandos. 10 Die Länge des PB Paketkommandos ohne Prüfsumme und ohne Endezeichen beträgt 16 Zeichen, was in Hexadezimaldarstellung 10 entspricht. 0 Der Blockzähler (immer 0). **** Der Wert zur 1. konfigurierten Adresse (hier: vSP, Adresse 0x00, Sollwert) soll abgefragt werden. **** Der Wert zur 2. konfigurierten Adresse (hier: vTI, Adresse 0x01, Interntemperatur) soll abgefragt werden. 2C Die Prüfsumme welche durch Addition der ASCII-Codes der vorangehenden Zeichen berechnet wurde. Den Zeichen des PB-Paketkommandos [ M 0 1 B 1 0 0 * * * * * * * * entsprechen folgende Werte in Dezimaldarstellung 91 77 48 49 66 49 48 48 42 42 42 42 42 42 42 42 Zur Berechnung der Prüfsumme werden die Werte addiert: 91 + 77 + 48 + 49 + 66 + 49 + 48 + 48 + 42 + 42 + 42 + 42 + 42 + 42 + 42 + 42 = 812 Die Zahl 812 entspricht in Hexadezimaldarstellung der Zahl 32C. Da von der Prüfsumme nur die letzten beiden Zeichen (das niederwertigste Byte) verwendet wird, ergibt sich eine Prüfsumme von 2C. <CR> Das ASCII Zeichen Carriage Return. Antwort des Thermostats: [S01B10007D009F19D<CR> Die ersten 8 Zeichen der Antwort entsprechen denen der Anfrage mit dem Unterschied, dass statt der Master-Kennung ‚M‘ eine Slave-Kennung ‚S‘ enthalten ist. In diesem Beispiel liefert der Thermostat als 1. Wert die Hexadezimalzahl 07D0 welche in Dezimaldarstellung 2000 entspricht. Der aktuelle Sollwert beträgt somit 20,00 °C. Als 2. Wert wird die Hexadezimalzahl 09F1 zurückgegeben welche in Dezimaldarstellung 2545 entspricht. Die aktuelle Interntemperatur beträgt somit 25,45 °C. Die Prüfsumme der Antwort ist 9D. 30 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 PB-Paketkommando Kapitel 9 HANDBUCH Beispiel 2: Sollwert setzen, Interntemperatur abfragen Der Sollwert soll auf 30,00 °C gesetzt werden und gleichzeitig die Interntemperatur abgefragt werden. Master sendet: [M01B1000BB8****70<CR> Um den Sollwert auf 30,00 °C einzustellen muss der Hexadezimalwert 0BB8 gesendet werden. Zur Abfrage der Interntemperatur wird **** gesendet. Antwort des Thermostats: [S01B1000BB809FCC0<CR> Der Thermostat gibt für den Sollwert den Wert 0BB8 zurück – der neue Sollwert wurde somit übernommen. Als Interntemperatur wird der Wert 09FC zurückgegeben welcher in Dezimaldarstellung 2556 bzw. 25,56 °C entspricht. Beispiel 3: Ungültige Anzahl an Werten Der Master sendet ein PB-Paketkommando mit nur einem Wert (hier ‚****‘), obwohl 2 Werte konfiguriert wurden. Master sendet: [M01B0C0****96<CR> Antwort des Thermostats: [S01B0C0”EL”C9<CR> Der Thermostat gibt die Fehlermeldung „EL“ zurück. Beispiel 4: Ungültiger Blockzähler Der Master sendet ein PB-Paketkommando mit einem ungültigen Blockzähler. Der Master sendet als Blockzähler den Wert 1, der Slave beantwortet die mit der Fehlermeldung‚ „EB“. Master sendet: [M01B101********2D<CR> Antwort des Thermostats: [S01B0C1”EB”C0<CR> Der Thermostat gibt die Fehlermeldung „EB“ zurück. Beispiel 5: Sollwert und Interntemperatur mit größerem Wertebereich abfragen Die beiden konfigurierten Werte sollen mit einer höheren Auflösung abgefragt werden. Master sendet: [M01B18A****************95<CR> Das Kommando setzt sich wie folgt zusammen: [ Die Startkennung. M Die Kennung für eine Master-Anfrage. 01 Die Slave-Adresse wurde auf 1 festgelegt. B Die Kennung des PB-Paketkommandos. 18 Die Länge des PB Paketkommandos ohne Prüfsumme und ohne Endezeichen beträgt 24 Zeichen, was in Hexadezimaldarstellung 18 entspricht. A Der Blockzähler für den ersten Block. ******** Der Wert zur 1. konfigurierten Adresse (hier: vSP, Adresse 0x00, Sollwert) soll abgefragt werden. ******** Der Wert zur 2. konfigurierten Adresse (hier: vTI, Adresse 0x01, Interntemperatur) soll abgefragt werden. 95 Die Prüfsumme <CR> Das ASCII Zeichen Carriage Return. Antwort des Thermostats: [S01B18A00004E2000003B973C<CR> Die ersten 8 Zeichen der Antwort entsprechen denen der Anfrage mit dem Unterschied, dass statt der Master-Kennung ‚M‘ eine Slave-Kennung ‚S‘ enthalten ist. In diesem Beispiel liefert der Thermostat als 1. Wert die Hexadezimalzahl 00004E20 welche in Dezimaldarstellung 20000 entspricht. Der aktuelle Sollwert beträgt somit 20,000 °C. Als 2. Wert wird die Hexadezimalzahl 00003B97 zurückgegeben welche in Dezimaldarstellung 15255 entspricht. Die aktuelle Interntemperatur beträgt somit 15,255 °C. Die Prüfsumme der Antwort ist 3C. Beispiel 7: Ungültige Blockanfrage bei größerem Wertebereich Der Master sendet ein PB-Paketkommando mit zwei Werten (hier, ****************), jedoch wird für den Blockzähler das Zeichen ‚B‘ verwendet. Da die Anzahl der konfigurierten PB-Kommandos nicht größer als die maximale Blockgröße bei höherer Auflösung ist, wird der zweite Block nicht verwendet. Der Thermostat gibt die Fehlermeldung „EL“ zurück. Master sendet: [M01B18B****************96<CR> Mit dem gesendeten Kommando sollen bei 32 konfigurierten Adressen die 31. und 32. Variable abgefragt werden. Da allerdings nur 2 Adressen konfiguriert wurden, antwortet der Thermostat mit einem Fehler. Antwort des Thermostats: [S01B0CB“EL“DB<CR> V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 31 PB-Paketkommando HANDBUCH Kapitel 9 Beispiel 8: PB-Paketkommando mit größerem Wertebereich, wenn die Anzahl der konfigurierten PB-Kommandos die maximale Blockgröße überschreitet Abweichend von der Beispielkonfiguration wurden am Pilot ONE® Regler 35 PB-Kommando Variablen zu dem PB-Paketkommando zusammengefügt. Dies überschreitet bei einem größeren Wertebereich die maximale Anzahl an Kommandos, die in einer Nachricht zusammengefasst werden können (maximale Anzahl 30 PB-Kommando Variablen). Es ist daher nicht möglich das gesamte PBPaketkommando auf einmal zu bearbeiten, es müssen zwei PB-Paketkommandos gesendet werden. Das erste PB-Paketkommando bearbeitet die ersten 30 konfigurierten PB-Kommando Variablen. Hierzu muss für den Blockzähler das Zeichen ‚A‘ verwendet werden. Die resultierende Länge des PBPaketkommandos ohne Prüfsumme und Endezeichen beträgt 248 Zeichen (8 + 30 * 8), was in Hexadezimaldarstellung F8 entspricht. Das zweite PB-Paketkommando bearbeitet die folgenden 5 konfigurierten PB-Kommandos. Hierzu muss für den Blockzähler das Zeichen ‚B‘ verwendet werden. Die resultierende Länge des PBPaketkommandos ohne Prüfsumme und Endezeichen beträgt 48 (8 + 5 * 8), was in Hexadezimaldarstellung 30 entspricht. 32 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 Modbus Kapitel 10 HANDBUCH 10 Modbus Das Modbus Protokoll ermöglicht es auf die zuvor beschriebenen PB-Kommando Adressen zuzugreifen. Bei der Kommunikation mit dem Modbus Protokoll müssen die Regeln wie sie im Kapitel 4 »Zeitverhalten (Timing) bei PB-Kommandos« beschrieben sind ebenfalls beachtet werden. INFORMATION. Diese Funktionalität steht nur bei Geräten mit Pilot ONE® Regler zur Verfügung. Das Modbus Protokoll ist bereits ab E-grade Basic freigeschaltet, allerdings kann zur Verwendung verschiedener PBKommando Adressen eine zusätzliche E-grade Aktivierung notwendig sein (vergl. Kapitel 6 »Spezielle Beschreibung der PB-Kommandos«). 10.1 Allgemeine Beschreibung Beschrieben wird hier nur der allgemeine Aufbau eines Modbus Kommandos in der Betriebsart Modbus TCP. Die Modbus Spezifikation ist über www.modbus.org verfügbar. INFORMATION. Die Kommunikation zwischen dem Modbus Master und dem Modbus Slave (Thermostat mit Pilot ONE® Regler) erfolgt über den, für Modbus TCP reservierten, Ethernet Port 502. Auf jedes syntaktisch richtige Modbus Kommando erfolgt eine Antwort durch den Modbus Slave. Ein Modbus Kommando wird im Allgemeinen als „Application Data Unit“ (ADU) bezeichnet. Jedes Kommando setzt sich aus 6 (unterschiedlich langen) Blöcken zusammen: TID Transaction Identifier 2 Bytes Modbus Application Protocol Header (MBAP) PID Length Protocol Identifier Message Length 2 Bytes 2 Bytes UID Unit Identifier 1 Byte Protocol Data Unit (PDU) FC Data Function Code User Data 1 Byte n Bytes Dabei werden die Blöcke TID, PID, Length und UID zusammenfassend als „Modbus Application Protocol Header“ (MBAP) und die Blöcke FC und Data zusammen als „Protocol Data Unit“ (PDU) bezeichnet. Transaction Identifier Protocol Identifier Message Length Function Code Unit Identifier User Data INFORMATION. V1.6.0de/07.03.16 Transaktionsnummer (TID) zur Synchronisierung gleichzeitiger Anfragen zwischen Server und Client. Das Protokollkennzeichen (PID) wird bei Modbus TCP nicht verwendet, es muss immer mit 0x0000 belegt sein. Die Nachrichtenlänge (Length) gibt die Anzahl der nachfolgenden Bytes im Kommando (UID + PDU) an. Der Funktionscode (FC) gibt an, welche Funktion der Modbus Slave ausführen soll. Die Geräteadresse (UID) hat bei Modbus TCP keine Auswirkung, da die Slaves über ihre IP Adresse angesprochen werden. Daher wird dieser Wert bei Modbus TCP immer auf 0xFF gesetzt. Die Benutzerdaten (Data) enthalten die zu übertragenden Informationen. Im Gegensatz zu den PB-Kommandos, bei denen die Werte in Zeichenketten umgewandelt werden, werden hier Binärdaten ausgetauscht. Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 33 Modbus HANDBUCH Kapitel 10 10.2 Datentypen Es werden die folgenden Datentypen unterstützt: Byte (8 Bit) Register (16 Bit) 32-Bit Integer (32 Bit) INFORMATION. Gemäß Modbus Spezifikation erfolgt die Übertragung der Daten als Big-Endian. Das heißt, bei Register bzw. 32-Bit Integer Werten wird das höherwertige Byte zuerst übertragen. 10.3 Fehlerbehandlung Im Fehlerfall müssen zwei unterschiedliche Fehlerarten betrachtet werden. Wird ein Kommando gesendet, welches syntaktisch inkorrekt ist, so wird vom Client keine Antwortnachricht gesendet. Dies führt in der Regel zu einem Server-Timeout. Auf ein syntaktisch korrektes, aber inhaltlich falsches Kommando, wird eine Fehlernachricht an den Server zurück geschickt. Fehler-Antwort: MBAP Header PID Length 7 Bytes TID UID FC + 0x80 1 Byte PDU Data (Fehlercode) 1 Byte MBAP Header TID, PID und UID werden von der Request Nachricht übernommen. Length = 0x03. FC + 0x80 Im Fehlerfall wird zu dem empfangenen Funktionscode 0x80 addiert. Fehlercode Die unterstützten Fehlercodes werden in der folgenden Tabelle beschrieben: Fehlercode Name 0x01 ILLEGAL FUNCTION 0x02 ILLEGAL DATA ADDRESS 0x03 ILLEGAL DATA VALUE 0x04 SLAVE DEVICE FAILURE Beschreibung Der empfangene Funktionscode wird vom SlaveGerät nicht unterstützt. Sollte der verwendete Funktionscode in diesem Handbuch beschrieben sein, deutet dies darauf hin, dass dieser Funktionscode im verwendeten Softwarestand des Pilot ONE® Reglers noch nicht implementiert ist. Ein Update auf einen neueren Softwarestand ist notwendig. Die Daten Adresse (Register Adresse) ist nicht im gültigen Bereich. Die Länge der Benutzerdaten passt nicht zum Funktionscode. Möglicherweise sind in den Benutzerdaten mehr oder weniger Bytes vorhanden als für die entsprechende Funktion erforderlich. Eine Konfiguration am Slave-Gerät verhindert die Verwendung dieser Funktionalität. 10.4 Spezielle Beschreibung der Funktionscodes Nachfolgend werden die Funktionscodes (FC) aufgeführt, welche bei Thermostaten mit Pilot ONE® Regler unterstützt werden. Es werden zwei Arten von Modbus Funktionscodes unterstützt: Public Function Codes User-Defined Function Codes INFORMATION. 34 Datenkommunikation Von den Public Function Codes gemäß Modbus Spezifikation werden nur die Funktionen 0x03 (Read Holding Registers) und 0x06 (Write Single Register) unterstützt. Diese basieren auf den PB-Kommandos (vergl. Kapitel 6 »Spezielle Beschreibung der PBKommandos«) und werden als 2 Byte (Register) Wert übertragen. Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 Modbus Kapitel 10 HANDBUCH INFORMATION. Für User-Defined Function Codes, welche PB-Kommandos als Grundlage haben, gelten folgende Bestimmungen: Im Gegensatz zu den Public Function Codes, basieren die Modbus Kommandos auf den PBKommandos mit größerem Wertebereich. Dies bedeutet, dass die Werte immer mit 4 Bytes übertragen werden (vergl. Kapitel 8 »PB-Kommandos mit größerem Wertebereich und höherer Genauigkeit« und Kapitel 9.2 »Aufbau mit größerem Wertebereich und höherer Genauigkeit«). Des Weiteren gelten alle Bestimmungen für PB-Kommandos mit größerem Wertebereich. INFORMATION. In den Beispielen zu den einzelnen Funktionscodes wird für die Transaktionsnummer (TID) ein beispielhafter Wert verwendet. Dieser kann jedoch beliebig gewählt werden und hat für die Ausführung der Funktion keine Auswirkung. 10.4.1 Public Funktionscodes 10.4.1.1 Read Holding Registers (FC 0x03) Der Funktionscode 0x03 wird zum Abfragen mehrerer aufeinander folgenden Register verwendet. Die Adressen der Register können aus Kapitel 6 (»Spezielle Beschreibung der PB-Kommandos«) entnommen werden. PDU der Anfrage: FC 0x03 1 Byte Start Adresse 2 Byte Data Anzahl 2 Bytes PDU der Antwort: FC 0x42 1 Byte Data Anzahl der folgenden Bytes 1 Byte Werte N * 2 Bytes Fehlerbehandlung: Name ILLEGAL DATA ADDRESS (0x02) ILLEGAL DATA VALUE (0x03) Beschreibung Die Startadresse ist größer als die größte PB-Kommando Adresse. Die Summe aus Startadresse + Anzahl der zu lesenden PBAdressen ist größer als die größte PB-Kommando Adresse. Die Länge der Anfrage ist nicht korrekt. Die Anzahl der zu lesenden PB-Adressen ist nicht korrekt. Sie wird durch die maximal zur Verfügung stehenden PBAdressen begrenzt. Beispiel 1: Abfragen der ersten 3 PB-Kommando Adressen Es sollen die ersten 3 PB-Kommando Adressen (Sollwerttemperatur vSP (0x00), Interntemperatur vTI (0x01), Rücklauftemperatur vTR (0x02)) abgefragt werden. Der Client sendet folgende Anfrage an den Modbus Slave: 00 01 00 00 00 06 FF 03 00 00 00 03 Das Kommando setzt sich wie folgt zusammen: 00 01 TID (beliebige Zahl die es ermöglicht die Antwort einer Anfrage zuzuordnen) 00 00 PID (immer 0x0000) 00 06 Die Nachrichtenlänge beträgt 6 Bytes. Davon wird 1 Byte für die Geräteadresse, 1 Byte für den Funktionscode und 2 Bytes für die Startadresse und 2 Bytes für die Anzahl der zu lesenden PB-Adressen verwendet. FF Geräteadresse (UID, immer 0xFF) 03 Funktionscode 0x03 für Reading Holding Registers 00 00 Startadresse (vSP 0x00) 00 03 3 aufeinander folgende PB-Adressen sollen gelesen werden V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 35 Modbus HANDBUCH Kapitel 10 Der Modbus Slave sendet folgende Antwort zurück: 00 01 00 00 00 09 FF 03 06 08 98 01 2C FE 0C Die Antwort setzt sich wie folgt zusammen: 00 01 TID (von der Anfrage übernommen) 00 00 PID (immer 0x0000) 00 09 Die Nachrichtenlänge beträgt 9 Bytes. Davon wird 1 Byte für die Geräteadresse, 1 Byte für den Funktionscode, 1 Byte für die Anzahl der folgenden Bytes und 6 Bytes (3 * 2 Bytes) für die Werte der PB-Variable verwendet. FF Geräteadresse (UID, immer 0xFF) 03 Funktionscode 0x03 für Reading Holding Registers 08 98 Der Wert der Sollwerttemperatur beträgt 0x0898. Dies entspricht in Dezimaldarstellung 2200, was einer Temperatur von 22,00 °C entspricht. 01 2C Der Wert der Intern Temperatur beträgt 0x012C. Dies entspricht in Dezimaldarstellung 300, was einer Temperatur von 3,00 °C entspricht. FE 0C Der Wert der Rücklauftemperatur beträgt 0xFE70. Die entspricht in Dezimaldarstellung -500, was einer Temperatur von -5 °C entspricht. 10.4.1.2 Write Single Holding Register (FC 0x06) Der Funktionscode 0x06 wird zum Schreiben einer einzelnen PB-Adresse. Die Adressen der Register können aus Kapitel 6 (»Spezielle Beschreibung der PB-Kommandos«) entnommen werden. PDU der Anfrage: FC 0x06 1 Byte PB-Adresse 2 Byte Data Wert 2 Bytes PDU der Antwort: FC 0x06 1 Byte PB-Adresse 2 Byte Data Wert 2 Bytes Fehlerbehandlung: Name ILLEGAL DATA ADDRESS (0x02) ILLEGAL DATA VALUE (0x03) Beschreibung Die PB-Adresse ist größer als die größte PB-Kommando Adresse. Die Länge der Anfrage ist nicht korrekt. Beispiel 2: Sollwerttemperatur ändern (positiver Wert) Der Wert der Sollwerttemperatur (vSP 0x00) soll auf einen positiven Wert geändert werden. Dieser Wert liegt innerhalb der Sollwertgrenzen. Der Client sendet also folgende Anfrage an den Modbus Slave: 00 02 00 00 00 06 FF 06 00 00 05 DC Das Kommando setzt sich wie folgt zusammen: 00 02 TID (beliebige Zahl die es ermöglicht die Antwort einer Anfrage zuzuordnen) 00 00 PID (immer 0x0000) 00 06 Die Nachrichtenlänge beträgt 6 Bytes. Davon wird 1 Byte für die Geräteadresse, 1 Byte für den Funktionscode,2 Bytes für die PB-Adresse und 2 Bytes für den zu schreibenden Wert verwendet. FF Geräteadresse (UID, immer 0xFF) 06 Funktionscode 0x06 für Writing Single Holding Registers 00 00 PB-Adresse (vSP 0x00) 05 DC Die Sollwerttemperatur soll auf 15,00 °C eingestellt werden. Der Wert 1500 entspricht in Hexadezimaldarstellung 0x05DC. Der Modbus Slave sendet folgende Antwort zurück: 00 02 00 00 00 06 FF 06 00 00 05 DC Die Antwort ist in diesem Fall ein Echo der Anfrage. Daraus geht hervor, dass die Sollwerttemperatur korrekt auf 15,00 °C gesetzt werden konnte. 36 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 Modbus Kapitel 10 HANDBUCH Beispiel 3: Sollwerttemperatur ändern (negativer Wert) Der Wert der Sollwerttemperatur (vSP 0x00) soll auf einen negativen Wert geändert werden. Dieser Wert liegt innerhalb der Sollwertgrenzen. Der Client sendet folgende Anfrage an den Modbus Slave: 00 03 00 00 00 06 FF 06 00 00 F8 30 Das Kommando setzt sich wie folgt zusammen: 00 03 TID (beliebige Zahl die es ermöglicht die Antwort einer Anfrage zuzuordnen) 00 00 PID (immer 0x0000) 00 06 Die Nachrichtenlänge beträgt 6 Bytes. Davon wird 1 Byte für die Geräteadresse, 1 Byte für den Funktionscode, 2 Bytes für die PB-Adresse und 2 Bytes für den zu schreibenden Wert verwendet. FF Geräteadresse (UID, immer 0xFF) 06 Funktionscode 0x06 für Writing Single Holding Registers 00 00 PB-Adresse (vSP 0x00) F8 30 Die Sollwerttemperatur soll auf -20,00 °C eingestellt werden. Der Wert -2000 entspricht in Hexadezimaldarstellung 0xF830. Der Modbus Slave sendet folgende Antwort zurück: 00 03 00 00 00 06 FF 06 00 00 F8 30 Die Antwort ist in diesem Fall ein Echo der Anfrage. Daraus geht hervor, dass die Sollwerttemperatur korrekt auf -20,00 °C gesetzt werden konnte. Beispiel 4: Sollwerttemperatur ändern (negativer Wert wird begrenzt) Der Wert der Sollwerttemperatur (vSP 0x00) soll auf einen negativen Wert geändert werden. Dieser Wert liegt außerhalb der Sollwertgrenzen. Die minimale Sollwertgrenze ist am Pilot ONE auf -30,00 °C eingestellt. Der Client sendet folgende Anfrage an den Modbus Slave: 00 04 00 00 00 06 FF 06 00 00 F2 54 Das Kommando setzt sich wie folgt zusammen: 00 04 TID (beliebige Zahl die es ermöglicht die Antwort einer Anfrage zuzuordnen) 00 00 PID (immer 0x0000) 00 06 Die Nachrichtenlänge beträgt 6 Bytes. Davon wird 1 Byte für die Geräteadresse, 1 Byte für den Funktionscode, 2 Bytes für die PB-Adresse und 2 Bytes für den zu schreibenden Wert. FF Geräteadresse (UID, immer 0xFF) 06 Funktionscode 0x06 für Writing Single Holding Registers 00 00 PB-Adresse (vSP 0x00) F2 54 Die Sollwerttemperatur soll auf -35,00 °C eingestellt werden. Der Wert -3500 entspricht in Hexadezimaldarstellung 0xF254. Der Modbus Slave sendet folgende Antwort zurück: 00 04 00 00 00 06 FF 06 00 00 F4 58 Die Antwort setzt sich wie folgt zusammen: 00 04 TID (beliebige Zahl die es ermöglicht die Antwort einer Anfrage zuzuordnen) 00 00 PID (immer 0x0000) 00 06 Die Nachrichtenlänge beträgt 6 Bytes. Davon wird 1 Byte für die Geräteadresse, 1 Byte für den Funktionscode, 2 Bytes für die PB-Adresse und 2 Bytes für den übernommenen Wert. FF Geräteadresse (UID, immer 0xFF) 06 Funktionscode 0x06 für Writing Single Holding Registers 00 00 PB-Adresse (vSP 0x00) F4 58 Der Wert der Sollwerttemperatur beträgt 0xF458. Dies entspricht in Dezimaldarstellung -3000, was einer Temperatur von -30,00 °C entspricht. Daraus ergibt sich, dass die Sollwerttemperatur auf die untere Sollwertgrenze begrenzt wurde. V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 37 Modbus HANDBUCH Kapitel 10 10.4.2 User-Defined Functioncodes 10.4.2.1 Kommunikationstest (FC 0x41) Diese Funktion wird verwendet, um die Kommunikation zum Modbus Slave zu testen. Die Anfrage wird unverändert als Antwort zurückgesendet. PDU der Anfrage: FC 0x41 1 Byte Data 0 Bytes PDU der Antwort: FC 0x41 1 Byte Data 0 Bytes Beispiel 1: Kommunikationstest Zum Testen der Kommunikation sendet der Client folgende Anfrage an den Modbus Slave: 00 01 00 00 00 02 FF 41 Das Kommando setzt sich wie folgt zusammen: 00 01 Transaktionsnummer (TID, beliebige Zahl die es ermöglicht die Antwort einer Anfrage zuzuordnen) 00 00 Protokollkennzeichen (PID, immer 0x0000) 00 02 Die Nachrichtenlänge (Length, Länge der nachfolgenden Bytes) beträgt 2 Bytes. Davon wird 1 Byte für die Geräteadresse und 1 Byte für den Funktionscode verwendet. Die Benutzerdaten entfallen beim Kommunikationstest. FF Geräteadresse (UID, immer 0xFF) 41 Funktionscode (FC) 0x41 für den Kommunikationstest Die Antwort des Modbus Slave ist in diesem Fall identisch aufgebaut: 00 01 00 00 00 02 FF 41 10.4.2.2 PB-Variable abfragen (FC 0x42) Der Funktionscode 0x42 wird zum Abfragen einer einzelnen PB-Kommando Adresse verwendet. Diese Adresse kann der Tabelle aus Kapitel 6 (»Spezielle Beschreibung der PB-Kommandos«) entnommen werden. PDU der Anfrage: FC 0x42 1 Byte Data PB-Adresse 1 Byte PDU der Antwort: FC 0x42 1 Byte PB-Adresse 1 Byte Data Wert 4 Bytes Beispiel 2: Abfragen der Interntemperatur (vTI) Die Interntemperatur soll abgefragt werden. Entsprechend der Tabelle hat die PB-Variable „vTI“ die Adresse 0x01. 38 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 Modbus Kapitel 10 HANDBUCH Der Client sendet also folgende Anfrage an den Modbus Slave: 00 02 00 00 00 03 FF 42 01 Das Kommando setzt sich wie folgt zusammen: 00 02 TID (beliebige Zahl die es ermöglicht die Antwort einer Anfrage zuzuordnen) 00 00 PID (immer 0x0000) 00 03 Die Nachrichtenlänge beträgt 3 Bytes. Davon wird 1 Byte für die Geräteadresse, 1 Byte für den Funktionscode und 1 Byte für die PB-Adresse verwendet. FF Geräteadresse (UID, immer 0xFF) 42 Funktionscode 0x42 für PB-Variable abfragen 01 Es soll die PB-Variable vTI mit der Adresse 0x01 abgefragt werden. Der Modbus Slave sendet folgende Antwort zurück: 00 02 00 00 00 07 FF 42 01 00 00 5B A0 Die Antwort setzt sich wie folgt zusammen: 00 02 TID (von der Anfrage übernommen) 00 00 PID (immer 0x0000) 00 07 Die Nachrichtenlänge beträgt 7 Bytes. Davon wird 1 Byte für die Geräteadresse, 1 Byte für den Funktionscode, 1 Byte für die PB-Adresse und 4 Bytes für den Wert der PB-Variable verwendet. FF Geräteadresse (UID, immer 0xFF) 42 Funktionscode 0x42 für PB-Variable abfragen 01 PB-Variable „vTI“ (0x01) 00 00 5B A0 Der Wert der Interntemperatur beträgt 0x00005BA0. Dies entspricht in Dezimaldarstellung 23456, was einer Temperatur von 23,456 °C entspricht. Beachte: Bei Modbus TCP werden die Daten immer mit erhöhter Auflösung übertragen (vergl. Kapitel 8 »PB-Kommandos mit größerem Wertebereich und höherer Genauigkeit«). Beispiel 3: Abfrage einer PB-Variable die nicht existiert Wird eine PB-Variable abgefragt, welche nicht existiert, wird eine Fehlerantwort zurück gesendet. In diesem Fall soll eine PB-Variable mit der Adresse 0xFA (250) abgefragt werden. Der Client sendet folgende Anfrage an den Modbus Slave. 00 03 00 00 00 03 FF 42 FA Das Kommando setzt sich wie folgt zusammen: 00 03 TID (von der Anfrage übernommen) 00 00 PID (immer 0x0000) 00 03 Die Nachrichtenlänge beträgt 3 Bytes. FF Geräteadresse (UID, immer 0xFF) 42 Funktionscode 0x42 für PB-Variable abfragen FA Es soll die (nicht existierende) PB-Variable mit der Adresse 0xFA abgefragt werden Der Modbus Slave sendet folgende Fehlerantwort zurück. 00 03 00 00 00 03 FF C2 03 Die Antwort setzt sich wie folgt zusammen: 00 03 TID (von der Anfrage übernommen) 00 00 PID (immer 0x0000) 00 03 Die Nachrichtenlänge beträgt 3 Bytes. FF Geräteadresse (UID, immer 0xFF) C2 Funktionscode (0x42) +0x80 (siehe Kapitel 10.3 »Fehlerbehandlung«) 03 Fehlercode 0x03 ILLEGAL DATA VALUE 10.4.2.3 PB-Variable ändern und abfragen (FC 0x43) Diese Funktion ermöglicht es eine PB-Kommando Variable zu verändern. Dazu muss bei den Benutzerdaten zum einen die PB-Adresse gemäß Kapitel 6 (»Spezielle Beschreibung der PBKommandos«) angegeben werden. Des Weiteren wird der Wert, welcher gesetzt werden soll, hinzugefügt. Die Antwort des Modbus Slave beinhaltet den aktuellen Wert nach der Änderung. Alternativ zu FC 0x42 ist es auch hier möglich Werte nur abzufragen ohne sie zu verändern. Dazu muss bei den Benutzerdaten (Data) für den zu sendenden Variablenwert 0x7FFFFFFF eingetragen werden. V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 39 Modbus HANDBUCH Kapitel 10 PDU der Anfrage: FC 0x43 1 Byte PB-Adresse 1 Byte Data Wert 4 Bytes PDU der Antwort: FC 0x43 1 Byte PB-Adresse 1 Byte Data Wert 4 Bytes Beispiel 4: Starten der Temperierung Die PB-Variable „vTmpActive“ zum Starten der Temperierung liegt an Adresse 0x14. Der Client sendet folgende Anfrage an den Modbus Slave. 00 04 00 00 00 07 FF 43 14 00 00 00 01 Das Kommando setzt sich wie folgt zusammen: 00 04 TID (beliebige Zahl die es ermöglicht die Antwort einer Anfrage zuzuordnen) 00 00 PID (immer 0x0000) 00 07 Die Nachrichtenlänge beträgt 7 Bytes. Davon wird 1 Byte für die Geräteadresse, 1 Byte für den Funktionscode, 1 Byte für die PB-Adresse und 4 Bytes für den zu schreibenden Wert der PB-Variable verwendet. FF Geräteadresse (UID, immer 0xFF) 43 Funktionscode 0x43 für PB-Variable ändern und abfragen 14 Es soll die PB-Variable „vTmpActive“ mit der Adresse 0x14 gesetzt werden. 00 00 00 01 Zum Starten der Temperierung wird der Wert 0x00000001 gesendet. Der Modbus Slave sendet folgende Antwort zurück. 00 04 00 00 00 07 FF 43 14 00 00 0001 Das Kommando setzt sich wie folgt zusammen: 00 04 TID (von der Anfrage übernommen) 00 00 PID (immer 0x0000) 00 07 Es folgen 7 weitere Bytes in dieser Nachricht. FF Geräteadresse (UID, immer 0xFF) 43 Funktionscode 0x43 für PB-Variable ändern und abfragen 14 PB-Variable „vTmpActive“ (Adresse 0x14) 00 00 00 01 Zustand der Temperierung. Die 1 bedeutet Temperierung aktiv. 10.4.2.4 PB-Paketkommando abfragen (FC 0x44) Diese Funktion ermöglicht die Abfrage mehrerer Variablen mit einem einzelnen Paketkommando. Dazu muss zunächst das Paket wie in Kapitel 9.3 »Konfiguration« beschrieben konfiguriert werden. Die Benutzerdaten der Anfrage enthalten lediglich die Anzahl der konfigurierten PB- Variablen. Stimmt diese nicht mit der im Pilot ONE® Regler konfigurierten Anzahl überein, wird eine Fehlerantwort zurückgesendet. Die Benutzerdaten der Antwort enthalten zusätzlich die Werte der abgefragten PB-Variablen. PDU der Anfrage: FC 0x44 1 Byte Data Anzahl Adresse 1 Byte PDU der Antwort: FC 0x44 1 Byte Anzahl Adressen 1 Byte Wert 1 4 Bytes Data … … Wert n 4 Bytes Beispiel 5: Abfrage der konfigurierten Adressen Für dieses Beispiel wurde das PB-Paketkommando wie folgt konfiguriert: vSP (0x00) Sollwert vTI (0x01) Interntemperatur 40 Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 Modbus Kapitel 10 HANDBUCH Der Client sendet folgende Anfrage an den Modbus Slave: 00 05 00 00 00 03 FF 44 02 Das Kommando setzt sich wie folgt zusammen: 00 05 TID (beliebige Zahl die es ermöglicht die Antwort einer Anfrage zuzuordnen) 00 00 PID (immer 0x0000) 00 03 Die Nachrichtenlänge beträgt 3 Bytes (UID + FC + Data). FF UID (immer 0xFF) 44 Funktionscode 0x44 für PB-Paketkommando abfragen 02 Anzahl der konfigurierten PB-Variablen im PB-Paketkommando. Der Modbus Slave sendet folgende Antwort zurück: 00 05 00 00 00 0B FF 44 02 00 00 61 A8 FF FF EC 78 Das Kommando setzt sich wie folgt zusammen: 00 05 TID (von der Anfrage übernommen) 00 00 PID (immer 0x0000) 00 0B Die Nachrichtenlänge beträgt 11 (0x000B) Bytes. Davon wird 1 Byte für die Geräteadresse (UID), 1 Byte für den Funktionscode, 1 Byte für die Anzahl der PB-Adressen und 2 mal 4 Bytes für die aktuellen Werte der PB-Variablen verwendet. FF UID (immer 0xFF) 44 Funktionscode 0x44 für PB-Paketkommando abfragen. 00 00 61 A8 Sollwert: 0x000061A8 entspricht in Dezimaldarstellung 25000, und somit, bei der verwendeten höheren Auflösung, einer Temperatur von 25,000 °C. FF FF EC 78 Interntemperatur: 0xFFFFEC78 entspricht in Dezimaldarstellung -5000, und somit, bei einer höheren Auflösung, einer Temperatur von -5,000 °C. Beispiel 6: Abfrage entspricht nicht der Konfiguration Für dieses Beispiel wurde das PB-Paketkommando wie folgt konfiguriert: vSP (0x00) Sollwert vTI (0x01) Interntemperatur Der Client sendet folgende Anfrage an den Modbus Slave: 00 06 00 00 00 03 FF 44 03 Das Kommando setzt sich wie folgt zusammen: 00 06 TID (beliebige Zahl die es ermöglicht die Antwort einer Anfrage zuzuordnen) 00 00 PID (immer 0x0000) 00 03 Die Nachrichtenlänge beträgt 3 Bytes (UID + FC + Data) FF UID (immer 0xFF) 44 Funktionscode 0x44 für PB-Paketkommando abfragen. 03 Dieser Wert stimmt nicht mit der Anzahl an konfigurierten PB-Variablen im PBPaketkommando überein (es wurden 2 Variablen konfiguriert, es werden aber 3 Variablen abgefragt). Der Modbus Slave sendet folgende Fehlerantwort zurück: 00 06 00 00 00 03 FF C4 03 Das Kommando setzt sich wie folgt zusammen: 00 06 TID (von der Anfrage übernommen) 00 00 PID (immer 0x0000) 00 03 Die Nachrichtenlänge beträgt 3 Bytes (UID + FC + Data) FF UID (immer 0xFF) C4 Funktionscode 0x44 +0x80 (siehe Fehlerbehandlung) 03 Fehlercode 0x03 ILLEGAL DATA VALUE Beispiel 7: Konfiguriertes PB-Paketkommando enthält keine PB-Variablen Wenn das konfigurierte PB-Paketkommando keine PB-Variablen enthält, wird auf eine Anfrage eine Fehlerantwort zurückgesendet. Der Client sendet folgende Anfrage an den Modbus Slave: 00 07 00 00 00 03 FF 44 02 Das Kommando setzt sich wie folgt zusammen: 00 07 TID (beliebige Zahl die es ermöglicht die Antwort einer Anfrage zuzuordnen) 00 00 PID (immer 0x0000) 00 03 Die Nachrichtenlänge beträgt 3 Bytes (UID + FC + Data) FF UID (immer 0xFF) 44 Funktionscode 0x44 für PB-Paketkommando abfragen. 02 Es wird angenommen, dass zwei PB-Variablen im PB-Paketkommando konfiguriert sind. V1.6.0de/07.03.16 Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 41 Modbus HANDBUCH Kapitel 10 Der Modbus Slave sendet folgende Fehlerantwort zurück: 00 07 00 00 00 03 FF C4 04 Das Kommando setzt sich wie folgt zusammen: 00 07 TID (von der Anfrage übernommen) 00 00 PID (immer 0x0000) 00 03 Die Nachrichtenlänge beträgt 3 Bytes (UID + FC + Data) FF UID (immer 0xFF) C4 Funktionscode 0x44 +0x80 (siehe Kapitel 10.3 »Fehlerbehandlung«) 04 Fehlercode 0x04 „SLAVE DEVICE FAILURE“ 10.4.2.5 PB-Paketkommando ändern und abfragen (FC 0x45) Diese Funktion ermöglicht es mehrere Variablen mit einem einzelnen Kommando zu ändern und den Zustand nach der Änderung abzufragen. Dazu muss zunächst ein Paket wie in Kapitel 9.3 »Konfiguration« beschrieben konfiguriert werden. Die Benutzerdaten der Anfrage enthalten die Anzahl der konfigurierten PB-Variablen. Stimmt diese nicht mit der im Pilot ONE® konfigurierten Anzahl überein, wird eine Fehlerantwort zurückgesendet. Sollen nur bestimmte Variablen durch das PB-Paketkommando verändert werden, andere aber unverändert bleiben, so muss für diejenigen Variablen auf die nur lesend zugegriffen werden soll der Wert 0x7FFFFFFF gesendet werden. Die Antwort besitzt die gleiche Struktur wie die Anfrage. PDU der Anfrage: FC 0x45 1 Byte Anzahl Adressen 1 Byte Wert 1 4 Bytes Anzahl Adressen 1 Byte Wert 1 4 Bytes Data … … Wert n 4 Bytes … … Wert n 4 Bytes PDU der Antwort: FC 0x45 1 Byte Data Beispiel 8: Verändern der Sollwert Temperatur, abfragen der übrigen Variablen Für dieses Beispiel wurde das PB-Paketkommando wie folgt konfiguriert: vSP (0x00) Sollwert vTI (0x01) Interntemperatur vTmpActive (0x14) Zustand Temperierung Der Client sendet folgende Anfrage an den Modbus Slave: 00 08 00 00 00 0F FF 45 03 00 00 53 FC 7F FF FF FF 7F FF FF FF Das Kommando setzt sich wie folgt zusammen: 00 08 TID (beliebige Zahl die es ermöglicht die Antwort einer Anfrage zuzuordnen) 00 00 PID (immer 0x0000) 00 0F Die Nachrichtenlänge beträgt 15 (0x000F) Bytes. Davon wird 1 Byte für die Geräteadresse (UID), 1 Byte für den Funktionscode, 1 Byte für die Anzahl der PB-Adressen und 3 mal 4 Bytes für die zu schreibenden Werte der PB-Variablen verwendet. FF UID (immer 0xFF) 45 Funktionscode 0x45 für PB-Paketkommando ändern und abfragen 03 Anzahl der konfigurierten PB-Variablen im PB-Paketkommando. 00 00 53 FC Sollwert Temperatur auf 21,500 °C setzen (21500 entspricht 0x000053FC) 7F FF FF FF Die Interntemperatur kann nur abgefragt werden 7F FF FF FF Der Zustand der Temperierung soll nicht verändert, nur abgefragt werden 42 Der Modbus Slave sendet folgende Antwort zurück. 00 08 00 00 00 0F FF 45 03 00 00 53 FC 00 00 61 40 00 00 00 01 Das Kommando setzt sich wie folgt zusammen: 00 08 TID (von der Anfrage übernommen) 00 00 PID (immer 0x0000) 00 0F 15 Bytes (0x000F) folgen FF UID (immer 0xFF) 45 Funktionscode 0x45 für PB-Paketkommando ändern und abfragen 03 Anzahl der konfigurierten PB-Variablen im PB-Paketkommando 00 00 53 FC Sollwert: 0x000053FC entspricht 21,500 °C 00 00 61 40 Interntemperatur: 0x00006140 entspricht 24,896 °C 00 00 00 01 Temperierung aktiv Datenkommunikation Haftung für Irrtümer und Druckfehler ausgeschlossen. V1.6.0de/07.03.16 Modbus Kapitel 10 V1.6.0de/07.03.16 HANDBUCH Haftung für Irrtümer und Druckfehler ausgeschlossen. Datenkommunikation 43 Peter Huber Kältemaschinenbau GmbH Werner-von-Siemens-Straße 1 D-77656 Offenburg / Germany tel. +49-781-9603-0 fax +49-781-57211 e-mail: [email protected] www.huber-online.com H o t li n e : +4 9 - 781-9603-244
© Copyright 2024 ExpyDoc