DE Rev. 04

Protronic 100/500/550 Digitric 500 MODBUSSchnittstellenbeschreibung Bedienungsanleitung 42/62-50040 DE Rev. 04 Impressum Protronic 100/500/550 ...
Author: Theodor Haupt
43 downloads 0 Views 1MB Size
Protronic 100/500/550 Digitric 500

MODBUSSchnittstellenbeschreibung

Bedienungsanleitung

42/62-50040 DE

Rev. 04

Impressum

Protronic 100/500/550 Digitric 500 MODBUS-Schnittstellenbeschreibung

Bedienungsanleitung Druckschrift-Nr. 42/62-50040 DE Ausgabedatum: Revision:

11.01 04

Hersteller: ABB Automation Products GmbH Höseler Platz 2 D-42579 Heiligenhaus

Telefon: Telefax:

+49 (0) 20 56 - 12 - 51 81 +49 (0) 20 56 - 12 - 50 81

© Copyright 2000 by ABB Automation Products GmbH Änderungen vorbehalten Diese Betriebsanleitung ist urheberrechtlich geschützt. Die Übersetzung sowie die Vervielfältigung und Verbreitung in jeglicher Form - auch als Bearbeitung oder in Auszügen -, insbesondere als Nachdruck, fotomechanische oder elektronische Wiedergabe oder in Form der Speicherung in Datenverarbeitungsanlagen oder Datennetzen ohne die ausdrückliche Genehmigung des Rechtsinhabers sind untersagt und werden zivil- und strafrechtlich verfolgt.

2

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Inhalt 1

Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2

Schnittstellenmodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1 2.2

3

6 6 7 7

Datentransfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.7.1 3.7.2

3.7.3 3.7.4 3.7.5 3.7.6 3.7.7

Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Telegrammzeichen (Frame). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Übertragungsregeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Telegramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Zulässige Adressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Prüfsumme CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Funktion 01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Funktion 03 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 REAL-Werte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 INTEGER-Werte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Funktion 05 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Funktion 06 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Funktion 08 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Funktion 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Funktion 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4

Wertebereiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5

Berechnung der Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.1 5.2 5.2.1 5.2.2 5.2.3 5.3 5.3.1 5.3.2

6

7

MODBUS-Register-Tabelle globale Variablen REAL, INT, DINT, LONG . . . . . . . . . . . 19 MODBUS-Coil-Tabelle globale Variablen Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Neu hinzugekommene Variable ab der Bibliotheksversion 3.6 . . . . . . . . . . . . . . . . . . . 33

Anhang 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 8.1

Inhalt

Globale Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Online-Parameter (ab FW 1.149). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Spezial Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Anhang 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 7.1 7.2 7.3

8

INT-, DINT-, LONG-Werte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 REAL-Werte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Pair of Registers-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Senden eines Pairs of Registers an Protronic/Digitric . . . . . . . . . . . . . . . . . . . . . . . . . 16 Lesen eines Pairs of Registers aus Protronic/Digitric . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Exponent-Mantisse-Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Senden von Mantisse und Exponent an Protronic/Digitric . . . . . . . . . . . . . . . . . . . . . . 17 Lesen von Mantisse und Exponent aus Protronic/Digitric . . . . . . . . . . . . . . . . . . . . . . . 17

Zuordnung der Variablen der Protronic/Digitric-Regler zu MODBUS-Registern 18 6.1 6.2 6.3

42/62-50040 DE

RS 485 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Technische Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RS 232 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Technische Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Programmierbeispiele in C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 modbus_read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 modbus_write. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Programierbeispiel zum Ermitteln der CRC-Summe des MODBUS-RTU-Telegramms 36 Regelabweichung mit Pair of Register in Loop 1 ermitteln (L1_XW, Register 170) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Regelabweichung mit Pair of Register in Loop 1 ermitteln (L1_XW, Register 170/171) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Regelabweichung nach Exp & Mantisse in Loop 1 ermitteln (L1_XW, Register 2170) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Nummer des aktuellen Programms ermitteln (Register 802) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Tastatureingiff: Hand/Automatik/Cascade verstellen (Register 900) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3

Onlineparameter, Gerät, Tabelle 1, Stützwert 1 mit Pair of Register schreiben (Register 10022/23) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Onlineparameter, Gerät, Tabelle1, Stützwert 1 mit Exponent/Mantisse schreiben (Register 20022/23) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Programmgeber Programm 1, Laufzeit 1 (P17), LONG-Wert schreiben (Reg 15034/35) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

9

Anhang 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 9.1 9.1.1 9.1.2 9.1.3 9.1.4

4

Programmierbeispiele in Quickbasic 4.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 IEEE-Werteberechnung mittels MKS$ und CSV-Funktion . . . . . . . . . . . . . . . . . . . . . . 39 IEEE-Werteberechnung ohne spezielle Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Berechnete Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Berechnung der Prüfsumme CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Beschreibung 1

Beschreibung Die serielle Kommunikation der Regler Protronic 100/500/550 und Digitric 500 erfolgt gemäß der MODBUS-Protokollspezifikation. Die Protronic/Digitric-Regler sind in der Kommunikation immer „Slaves", d.h. sie reagieren nur, wenn das überlagerte System, der „Master", einen entsprechenden Befehl erteilt. Von Protronic/Digitric werden nur das RTU-Verfahren und daraus nur die für Protronic/Digitric wichtigen Funktionen unterstützt.

Von Protronic/Digitric wird nur eine Auswahl der MODBUS-Funktionen unterstützt. Nähere Informationen über das MODBUS-Protokoll sind in folgendem Schriftstück enthalten:

GOULD MODICON MODBUS PROTOCOL Reference Guide Gould Inc., Programmable Control Division P.O Box 3083 Andover, Massachussetts, 01810 PI-MBUS -300 Rev A, November 93

42/62-50040 DE

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

5

Schnittstellenmodul 2

Schnittstellenmodul 2.1 RS 485 Technische Daten – – – – –

Galvanisch getrennt von der Reglerelektronik Max. 32 Busteilnehmer (einschließlich PC) Linienstruktur ohne Abzweigungen, Stichleitungen zu einzelnenen Teilnehmern < 0,3 m Leitungslänge < 1200 m Ein mindestens dreiadriges geschirmtes Buskabel mit einem verdrillten Adernpaar zur Datenübertragung und einem zusätzlichen isolierten Leiter zum Potentialausgleich zwischen den Anschlüssen „Modulnull" aller galvanisch getrennten Busteilnehmer. Zum Betrieb von nicht galvanisch getrennten Busteilnehmern ist in der Regel ein zusätzlicher getrennter Leiter mit großem Querschnitt parallel zum Datenkabel erforderlich. – Der Schirm des Datenkabels ist über das mitgelieferte Schirmanschlussblech mit dem Reglergehäuse zu verbinden. Er ist zur Einhaltung der Funkstörgrenzwerte und zur Erhöhung der Störfestigkeit der Schnittstelle erforderlich. G

S

Z-19003

M

Bild 2-1 Montage des Schirmanschlussblechs bei Protronic 500/550 G Gehäuse M Modulträger S Schirmanschlussblech

3

Ansicht von hinten

4

1

2

4

z-19169

Ansicht von oben

Bild 2-2 Montage des Schirmanschlussblechs bei Digitric 500 ↓ Einsetzrichtung 1 Modulträger 2 Knebel 3 Schirmanschlussblech

6

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

4 Nut

42/62-50040 DE

Schnittstellenmodul

1 2 3 4 5

1

6

2

1 2 3 4 5

Schirm, beidseitig geerdet

6

3

1 2 3 4 5 6

Z-19010

32

Bild 2-3 Anschlussplan RS 485

2.2 RS 232 Technische Daten – Galvanisch getrennt von Reglerelektronik – Zum direkten Anschluss eines Konfigurier- PCs oder Modems (mit 9poligem Sub-D-Stecker) – Leitungslänge max. 10m

3

2

2

3 6

PC

5

Protronic z-19005

Bild 2-1 Anschlussplan RS 232

42/62-50040 DE

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

7

Datentransfer 3

Datentransfer 3.1 Allgemeines An einem Bus können beliebige Teilnehmer, die der MODBUS-Spezifikation entsprechen, betrieben werden. Die Anzahl der Teilnehmer richtet sich nach der verwendeten Übertragungstechnik. Protronic bietet über das rückseitig einsteckbare Modul die Schnittstellen RS 232 zum Anschluss eines Masters (Konfigurier-PC oder -Modem) RS 485 zum Anschluss von maximal 32 Teilnehmern (einschließlich Master). Für die Datenübertragung wird eine Kombination von Telegrammzeichen zu einem oder mehreren Telegrammen zusammengefasst. Diese Telegramme übernehmen auch die „Hand-Shake-Funktion", indem jedes Telegramm vom Master zum Slave erst beantwortet werden muss, bevor ein neues Telegramm gesendet werden darf. Im Rechner sind entsprechende Überwachungen notwendig, um nicht antwortende Busteilnehmer auszugrenzen (Time-Out-Überwachung). Die Timeout-Zeit richtet sich nach der verwendeten Baudrate und nach der Reaktionszeit der angeschlossenen Teilnehmer.

3.2 Telegrammzeichen (Frame) Die Telegramme bestehen aus der Folge von 1/0 Informationen. Die zu übertragenden Werte sind in Bytes (= 8 Bit) zerlegt. Jedes dieser Bytes wird ergänzt durch 1 Start-Bit wahlweise 1 Parity-Bit (gerade Anzahl von „1") 1 Stop-Bit. In der nachfolgenden Beschreibung wird der Begriff „Byte" verwendet, auch wenn einschließlich der Start- , Stop- und Paritiy-Bits eigentlich 10 oder 11 Bits übertragen werden.

3.3 Übertragungsregeln Ruhezustand der Datenleitung entspricht der logischen „1". Vor Beginn der Datenübertragung muss für die Zeit von mindestens 3 Byte der Ruhezustand auf der Datenleitung bestehen. Zwischen den Bytes eines Telegrammes darf der Abstand nicht größer als 3 Byte werden, da ein Abstand von mehr als 3,5 Bytes als Trennung zwischen zwei Telegrammen definiert ist.

3.4 Telegramme Die MODBUS-Telegramme haben folgenden Aufbau: Pause

Adresse

Funktion

Daten

Prüfsumme

1 Byte

1 Byte

n Bytes

2 Byte

Pause

3.5 Zulässige Adressen Als Adressen in den Busteilnehmenr sind die Ziffern 1 bis 255 zugelassen. Die Adresse 0 ist die Globaladresse (Broadcast-Adresse). Wird diese Adresse in einem Telegramm verwendet, so akzeptieren alle Teilnehmer das Telegramm, geben aber keine Bestätigung an den Master.

3.6 Prüfsumme CRC Die Prüfsumme wird über alle Bytes eines Telegrammes (ohne Start-, Stop- und Patrity-Bits) berechnet. Für die Ermittlung der Prüfsumme sind im Anhang Beispielprogramme aufgeführt. Details sind der Originaldokumentation über MODBUS zu entnehmen.

8

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Datentransfer 3.7 Funktionen Protronic/Digitric unterstützt folgende Funktionen: Code Bezeichnung Funktion 01 READ COIL STATUS Lesen von binären Werten 02

03 04

05 06

08

READ INPUT STATUS

entspricht bei Protronic der Funktion 01. Es wird vorzugsweise Funktion 01 verwendet.

READ HOLDING REGISTERS

Lesen von REAL-, INT-, DINT- oder LONG- Werten

READ INPUT REGISTERS

entspricht bei Protronic/Digitric der Funktion 03. Es wird vorzugsweise Funktion 03 verwendet.

FORCE SINGLE COIL

Setzen eines einzelnen Binär-Wertes

PRESET SINGLE REGISTER

Setzen eines einzelnen Integer-Wertes, für DINT oder REAL sind zwei dieser Telegramme erforderlich

LOOPBACK DIAGNOSTIC TEST

Testtelegramm zur Diagnose der Konmmunikationsfähigkeit des Slave

15

FORCE MULTIPLE COILS Setzen von mehreren aufeinanderfolgenden binären Werten

16

PRESET MULTIPLE REGISTERS Setzen von mehreren aufeinanderfolgenden Werten

3.7.1

Funktion 01

Diese Funktion dient zur Abfrage von mehreren aufeinanderfolgenden binären Werten aus den Reglern. Die Broadcast-Adresse 0 ist nicht zulässig. Beispiel: Dieses Telegramm fordert den Binärstatus der Binäreingänge BE01(151) bis BE34(170), d.h. 20 Werte, an. Adresse

11

Funktion

Startadresse

01

Anzahl

Prüfsumme CRC

HByte

LByte

HByte

LByte

00

151

00

20

LByte

HByte

(Alle Angaben dezimal) In der Antwort sind die binären Informationen in wenigen Bytes gepackt. Die erforderliche Anzahl errechnet sich aus der angeforderten Anzahl geteilt durch 8. Adresse

Funktion

Anzahl Bytes

Status 151 ...158

Status 159 ...160

Status 167 ...170

11

01

03

8 Bit

8 Bit

8 Bit

Prüfsumme CRC LByte

HByte

(Alle Angaben dezimal) Die Anzahl der Bytes sagt aus, wieviel Datenbytes folgen. Status 151 bis 158: Status der Binäreingänge BE01 bis BE14 (der Status kann „0" oder „1" sein). Bit

7

Adresse

158

BE..

14

6

5

4

3

2

1

0

157

156

155

154

153

152

151

13

12

11

04

03

02

01

Status

42/62-50040 DE

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

9

Datentransfer Status 159 bis 166: Status der Binäreingänge BE15 bis BE26 (der Status kann „0" oder „1" sein). Bit

7

6

5

4

3

2

1

0

Adresse

166

165

164

163

162

161

160

159

BE..

26

25

24

23

22

21

16

15

Status Status 167 bis 170: Da in diesem Byte nur 4 binäre Informationen übertragen werden, sind die Bits 7 bis 4 mit „0" belegt. Die Bits 3 bis 0 enthalten die gewünschten Daten (der Status kann „0" oder „1" sein). Bit

3

2

1

0

Adresse

7

170

169

168

167

BE..

34

33

32

31

Status

3.7.2

6

0

5

0

4

0

0

Funktion 03

Diese Funktion dient zur Abfrage von mehreren aufeinanderfolgenden analogen Werten aus den Reglern. Die Broadcast-Adresse 0 ist nicht zulässig. REAL-Werte REAL-Werte sind in 32-Bit im Regler kodiert. Zum Lesen dieser Werte wird daher die doppelte Anzahl von Registern benötigt. Beispiel: Lesen von Analogeingang AE01 aus den Registern 0 und 1. Adresse 11

Funktion

Startadresse

03

Anzahl

Prüfsumme CRC

HByte

LByte

HByte

LByte

00

00

00

02

LByte

HByte

(AlleAngaben dezimal.) Die Antwort hat folgenden Aufbau: Adresse

Funktion

Anzahl Bytes

Wert von AE01 Datum [0] Adresse 0

11

03

04

HByte

Prüfsumme CRC Datum [1] Adresse 1

LByte

HByte

LByte

LByte

HByte

Zur gleichzeitigen Abfrage mehrerer REAL-, DINT- oder LONG- Werte muss die Anzahl je Wert um 2 vergrößert werden. Das Antworttelegramm verlängert sich um 4 Bytes je REAL-Wert. Die Umrechnung der 4 Bytes in REAL-Werte ist im nächsten Abschnitt beschrieben.

10

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Datentransfer INTEGER-Werte Zum Lesen von INTEGER-Werten dienen die gleichen Telegramme. Beispiel: Lesen des aktuellen Segmentes des Programmgebers aus Register 803 (0323H). Adresse 11

Funktion 03

Startadresse

Anzahl

Prüfsumme CRC

HByte

LByte

HByte

LByte

03H

23H

00

01

LByte

HByte

Die Antwort hat folgenden Aufbau: Adresse

Funktion

Anzahl Bytes

Wert des Segments

Prüfsumme CRC

Datum [0] Adresse 803 11

03

02

HByte

LByte

LByte

HByte

Zur gleichzeitigen Abfrage mehrerer INT-Werte muss die Anzahl je Wert um 1 vergrößert werden. Das Antworttelegramm verlängert sich um 2 Bytes je REAL-Wert. Es ist grundsätzlich möglich, REAL- und INT-Werte in einem Telegramm abzufragen. Bei der Auswertung der Antwort muss dann die unterschiedliche Byte-Anzahl je Wert berücksichtigt werden.

3.7.3

Funktion 05

Diese Funktion dient zum Setzen eines einzelnen Binär-Wertes. Wird die Broadcast-Adresse „0" benutzt, so reagieren alle angeschlossenen Regler darauf. Beispiel: Setzen von Binär-Ausgang BA76 (Adresse 266 = 10AH) Adresse 11

Funktion 05

Adresse

Wert

Prüfsumme CRC

HByte

LByte

HByte

LByte

01H

0AH

FFH

01

LByte

HByte

Zum Setzen eines Binärwertes wird in HByte des Wertes grundsätzlich FFH zum Rücksetzen 00H gesendet. LByte des Wertes ist immer 0. Als Antwort wird das Telegramm komplett zurückgesendet, nachdem der Befehl vollzogen wurde.

3.7.4

Funktion 06

Diese Funktion dient zum Schreiben eines einzelnen Registers. Zur Änderung eines analogen Wertes müssen nacheinander zwei derartige Telegramme in zwei aufeinanderfolgende Adressen (Register) gesendet werden. Wird die Broadcast-Adresse „0" benutzt, so reagieren alle angeschlossenen Regler darauf. Beispiel: Schreiben des Computer-Sollwertes für L1 (Adresse 228 + 229 = F4H + F5H) Adresse

Funktion

Adresse

11

06

00

Wert Datum [0] 228 = F5H

HByte

Prüfsumme CRC LByte

LByte

HByte

Als Anwort wird das komplette Telegramm zurückgesendet, nachdem der erste Teilwert im Regler gespeichert wurde. Das zweite Telegramm folgt mit folgendem Aufbau:

42/62-50040 DE

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

11

Datentransfer Adresse

Funktion

Adresse

11

06

00

Wert Datum [1] 229 = F5H

HByte

Prüfsumme CRC LByte

LByte

HByte

Auch dieses Telegramm wird als Bestätigung zurückgesendet.

3.7.5

Funktion 08

Diese Funktion dient zur Diagnose der Kommunikation. Details werden später dokumentiert.

3.7.6

Funktion 15

Diese Funktion dient zum Setzen von mehreren aufeinanderfolgenden binären Werten in den Reglern. Wird die Broadcast-Adresse „0" benutzt, so gelten die Werte für alle Regler. Beispiel: Setzen der Binärausgänge BA11 bis BA26 (Adressen 225 bis 236 = E1H bis EBH). Adresse

Funktion

Startadresse

Anzahl

11

15

00

00

E1H

0BH

Anzahl Bytes

Datum 1

Datum 2

Prüfsumme CRC

2

x

y

Lbyte

HByte

Datum 1 setzt die Binärausgänge BA11 bis BA22 (der Status kann „0" oder „1" sein). Bit

7

6

5

4

3

2

1

0

Adresse

232

231

230

229

228

227

226

225

BE..

22

21

16

15

14

13

12

11

Status x= Datum 2 setzt die restlichen Binärausgänge. (Der Status kann „0" oder „1" sein. Die unbenutzten Bits müssen immer „0" sein.) Bit

7

3

2

1

0

Adresse

236

235

234

233

BE..

26

25

24

23

Status

3.7.7

0

6

0

5

0

4

0

Funktion 16

Diese Funktion dient zum Setzen von mehreren aufeinanderfolgenden analogen Werten in den Reglern. Wird die Broadcast-Adresse 0 benutzt, so gelten die Werte für alle Regler. Es können maximal 60 Register oder 30 REAL-Werte mit einem Telegramm geschrieben werden. Für einen Wert hat das Telegramm folgenden Aufbau: Adr.

Funkt. Startadresse

Anzahl

Anzahl

REAL-Wert [1] Datum [0]

11

12

16

HByte LByte HByte LByte Byte

Prüfsumme Datum [1]

CRC

HByte LByte HByte LByte LByte HByte

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Datentransfer Jeder REAL-Wert wird in 2 Register (Datum [0] und Datum [1]) mit insgesamt 4 Bytes übertragen. Für jeden zusätzlichen Wert ist die Anzahl um „2" und Zahl der Bytes um „4" zu erhöhen. Integer-Werte werden als ein 16-Bit-Wort (Datum [0]) übertragen. . Adr. 11

Funkt. 16

Startadresse HByte

LByte

Anzahl HByte

Anzahl LByte

Byte

INT-Wert [1]

Prüfsumme

Datum [0]

CRC

HByte

LByte

LByte

HByte

Es ist grundsätzlich möglich, REAL-, INT- und DINT-Werte in einem Telegramm zu verändern. Beim Aufbau der Telegramme ist dann die unterschiedliche Länge der Werte zu beachten. Als Antwort wird das Telegramm ohne die Daten zurückgesendet.

42/62-50040 DE

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

13

Wertebereiche 4

Wertebereiche REAL

-1,175.494.35E-38 ... 0 ... 3,402.823.47 E+39 werden in 2 Registern (= 4 Bytes) gespeichert

INT = INT16-32.768 ... 0 ... 32.767 In Protronic/Digitric und IBIS-R werden weitere Datentypen benutzt: DINT, LONG und TIME sind vom Typ INT32.

14

DINT

-2.147.483.647 ... 0 ... 2.147.483.647

LONG

0 ... 4.294.967.294 (Zeit in ms)

BOOL

0 und 1

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Berechnung der Daten 5

Berechnung der Daten 5.1 INT-, DINT-, LONG-Werte INT- und DINT- Werte benötigen keine spezielle Umrechnung. INT-Werte werden als einzelnes Register (= 2 Bytes) gelesen und geschrieben, DINT- und LONG Werte als Folge von zwei Registern (= 4 Bytes) gelesen oder geschrieben.

5.2 REAL-Werte Das MODBUS-Protokoll sieht nur 16-Bit vorzeichenbehaftete Ganzahlen als Übertragungswerte vor. Die REAL-Zahlen des Reglers müssen daher entsprechend aufbereitet werden. Das in den Reglern verwendete IEEE-Format entspricht dem in den PCs verwendetem Format. |-----data[1]--------|------data[0]------| 31.30....23.22....16|15.................0 +-----------+---------------------------+ |s 8 bits |msb 23 bit mantisse lsb | +-----------+---------------------------+ | | | | | +-------------Mantisse | +---------------------------Exponent (7fh) +---------------------------------Sign-Bit (0=Pos,1=Neg) Der wahre Exponent-Wert ist der Exponent minus 7Fh für das IEEE 4 byte REAL-Format. Je nach der im PC verwendeten Programmiersprache kann direkt oder indirekt auf die einzelnen Bytes der REAL-Werte zugegriffen werden. Für Rechnersysteme, die ein anderes Zahlenformat verwenden oder keinen Zugriff auf die einzelnen Bestandteile der REAL-Werte zulassen, sind im Anhang Beispielprogramme in C und Basic zur Wandlung von REAL-Zahlen in das Byt-Muster des IEEE-Formates angegeben. Für die Datenübertragung stehen zwei Datenformate zur Verfügung, die sich nur in der Genauigkeit des Zahlenwertes unterscheiden. Je nachdem welches dieser beiden Verfahren verwendet werden soll, sind die Variablen-Adressen auszuwählen.

5.2.1

Pair of Registers-Verfahren

Um auch Gleitkomma-Zahlen in der maximalen Genauigkeit übertragen zu können, ist auf dem Protronic/ Digitric ein neues Verfahren zum Übertragen eines 32-Bit-Wertes implementiert worden. Das Pair of Register Verfahren wird auch vom ABB-Leitsystem Freelance unterstützt. Dabei werden REAL-Werte (4 Byte IEEE-Format) in zwei aufeinander folgenden 16-Bit-Registern übertragen, d.h. die 4 aufeinanderfolgenden Bytes die eine REAL-Zahl darstellen werden in 2 x 2 Bytes getrennt, es findet keine Konvertierung von Formaten statt. Register mit gerader Adresse übertragen das niederwertige WORD, Register mit ungerader Adresse (gerade + 1) das höherwertige WORD (16-Bit-Register). Um die Konsistenz der Darstellung zu erhalten, müssen bei der Übertragung eines 32-Bit-Wertes stets beide Register aufeinanderfolgend übertragen werden:

data[0] low word HB

LB gerade

42/62-50040 DE

data[1] hi word HB

LB

gerade+1

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

15

Berechnung der Daten 5.2.2

Senden eines Pairs of Registers an Protronic/Digitric

Bildungsvorschrift für die Aufspaltung eines (4 Byte IEEE) REAL-Wertes in 2 Registerwerten à 16-Bit, wobei in data[0] der zu schreibende Wert des geraden Registers, in data[1] der des ungeraden Registers enthalten ist: Das nachfolgende Programm greift direkt auf den im PC im IEEE-Format verfügbaren Wert *pdata zu. Beispiel: Wert = 133,5 int data[2]; unsigned long *pdata; float wert; wert pdata data[0] data[1]

= = = =

133.5; (void *)&wert; (unsigned)(*pdata & 0xFFFF); (unsigned)(*pdata >>16);

Diese Werte müssen mit zwei direkt aufeinanderfolgenden Telegrammen mit der Funktion 06 oder einem Telegramm mit der Funktion 16 gesendet werden. Dabei muss data[0] immer vor data[1] gesendet werden.

5.2.3

Lesen eines Pairs of Registers aus Protronic/Digitric

In den dafür vorgesehenen MODBUS-Adressen stehen die Werte in der Mantisse-Exponent-Darstellung zum Lesen bereit. Mit einen Telegramm mit der Funktion 03 können die Werte ausgelesen werden. Bildungsvorschrift für das Zusammenfügen von 2 Registerwerten à 16-Bit in ein (4 Byte IEEE) REALWert, wobei in data[0] der gelesene Wert des geraden Registers, in data[1] der des ungeraden Registers enthalten ist: float int

*ptrReal data[2]

ptrReal = (float *)&data[0]

5.3 Exponent-Mantisse-Format Dieses Verfahren wird auch von den Reglern Contric CM1 und C1 und von dem ABB-Leitsystem Freelance benutzt. Aus dem für REAL angegeben Wertebereich können mit diesem Verfahren folgende Werte übertragen werden: +0,0001 to +3.2767 E38 -0,000 to -3.2768 E38 und der Wert 0. Das Vorzeichen des Wertes ist in der Mantisse enthalten. 8000H......FFFFH ...0000H......7FFFH -32.768 -1 0 32.767 Mantisse und Exponent werden jeweils als ein Register (16-Bit) gelesen und geschrieben. Beispiele: Wert 65432 12345 -1234 1234 123.4 12.34 1.234 0.1234 0.01234 0.001234 0.0001234

16

Exponent 5 5 4 4 3 2 1 0 0 0 0

Mantisse 6543 12345 -1234 1234 1234 1234 1234 1234 123 12 1

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Berechnung der Daten 5.3.1

Senden von Mantisse und Exponent an Protronic/Digitric

Bildungsvorschriften für die Aufspaltung eines (4 Byte IEEE) REAL-Wertes in 2 Registerwerten à 16-Bit (Mantisse und Exponent): exponent = 0 while (abs(realwert) >= 1.0 ) { realwert = realwert / 10 exponent = exponent + 1 } realwert = realwert * 10000.0 wert = (int)realwert // Rundungsfehler berücksichtigen if (wert > 0) wert = wert + 0.5; else wert = wert - 0.5; mantisse = (int)wert; data[0] = mantisse data[1] = exponent Diese Werte müssen mit zwei Telegrammen mit der Funktion 05 oder einem Telegramm mit der Funktion 15 gesendet werden. Dabei muss die Mantisse immer vor dem Exponent gesendet werden.

5.3.2

Lesen von Mantisse und Exponent aus Protronic/Digitric

In den dafür vorgesehenen MODBUS-Adressen stehen die Werte in der Mantisse-Exponent-Darstellung zum Lesen bereit. Mit einen Telegramm mit der Funktion 03 können die Werte ausgelesen werden. Bildungsvorschrift für das Zusammenfügen von 2 16-Bit-Registerwerten (Mantisse und Exponent) in ein (4 Byte IEEE) REAL-Wert: realwert = mantisse realwert = realwert / 10000.0 for(i=0;i < exponent; i=i+1) realwert = realwert * 10.0

42/62-50040 DE

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

17

Zuordnung der Variablen der Protronic/Digitric-Regler zu MODBUS-Registern 6

Zuordnung der Variablen der Protronic/Digitric-Regler zu MODBUS-Registern Die Zuordnung der einzelnen Parameter und dynamischen Größen zu den Registern ist in den Listen im Anhang dieser Dokumentation angegeben. Alle Registernummern sind in dezimaler Schreibwesie notiert. Die verschiedenen Register lassen sich in 3 Bereiche unterteilen.

6.1 Globale Variable Für das Lesen bzw. Schreiben globaler Variablen sind die Register 0-2000 reserviert. Zum Lesen und Schreiben von 32-Bit-Werten wird das Pair of Register-Verfahren angewandt. Die Tabelle mit der Beschreibung der einzelnen Variablen befindet sich im Anhang. Falls die Werte im Exponent/Mantisse-Verfahren gelesen werden sollen (ab Firmware 1.149), so ist ein Offset von 2000 auf das jeweilige Register zu addieren (Register 2000-4000).

6.2 Online-Parameter (ab FW 1.149) Online Parameter sollten nur azyklisch gelesen bzw. geschrieben werden. Für das Lesen bzw. Schreiben lokaler OnlineParameter mit dem Pair of Register-Verfahren sind die Register 10000-20000 reserviert. Falls die Werte im Exponent/Mantisse Verfahren gelesen werden sollen, so ist ein Offset von 10000 auf das jeweilige Register zu addieren (Register 20000-30000). Dabei werden die Parameter entsprechend der Gebrauchsanweisung (42/62-50012) wie folgt interpretiert: Geräte Parameter Tabellenwerte: 10000 - 10999 (Bildungsvorschrift: 10000 + 2 × Parameter-Nummer) Onlineparameter Loop 1: 11000 - 11999 Onlineparameter Loop 2: 12000 - 12999 Onlineparameter Loop 3: 13000 - 13999 Onlineparameter Loop 4: 14000 - 14999 (Bildungsvorschrift: 10000 + Loop × 1000 + 2 × Parameternummer) L1_Kp hat Nummer 1 Adresse = 10000 + 1 × 1000 + 2 × 1 = 11002 Programme 1..10 P1 : 15000 - 15199 P2 : 15200 - 15399 .... P10 : 16800 - 16999 (Bildungsvorschrift: 15000 + (Prg - 1) × 200 + 2 × Parameternummer)

6.3 Spezial Register Tastatur-Fernbedienung: Register 900. Folgende Hexwerte simulieren einen Tastendruck; es kann jeweils nur ein Code an das Register 900 übergeben werden: TASTE ENTER TASTE MENU TASTE IND TASTE LOOP TASTE SPW TASTE MAC TASTE LEFT TASTE RIGHT TASTE DOWN TASTE UP

18

0x0200 0x0100 0x0080 0x0040 0x0020 0x0010 0x0008 0x0004 0x0002 0x0001

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Anhang 1 7 7.1

Anhang 1 MODBUS-Register-Tabelle globale Variablen REAL, INT, DINT, LONG

Register

Kurzbezeichnung

Datentyp

Beschreibung

0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58

.AE01 .AE02 .AE11 .AE12 .AE13 .AE14 .AE21 .AE22 .AE23 .AE24 .AE31 .AE32 .AE33 .AE34 .AE41 .AE42 .AE43 .AE44 .AE51 .AE52 .AE53 .AE54 .AE61 .AE62 .AE63 .AE64 .AE71 .AE72 .AE73 .AE74

REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL

Grundgerät Analogeingang 1 Grundgerät Analogeingang 2 Slot 1 Analogeingang 1 Slot 1 Analogeingang 2 Slot 1 Analogeingang 3 Slot 1 Analogeingang 4 Slot 2 Analogeingang 1 Slot 2 Analogeingang 2 Slot 2 Analogeingang 3 Slot 2 Analogeingang 4 Slot 3 Analogeingang 1 Slot 3 Analogeingang 2 Slot 3 Analogeingang 3 Slot 3 Analogeingang 4 Slot 4 Analogeingang 1 Slot 4 Analogeingang 2 Slot 4 Analogeingang 3 Slot 4 Analogeingang 4 Slot 5 Analogeingang 1 Slot 5 Analogeingang 2 Slot 5 Analogeingang 3 Slot 5 Analogeingang 4 Slot 6 Analogeingang 1 Slot 6 Analogeingang 2 Slot 6 Analogeingang 3 Slot 6 Analogeingang 4 Slot 7 Analogeingang 1 Slot 7 Analogeingang 2 Slot 7 Analogeingang 3 Slot 7 Analogeingang 4

60 - 69

nicht belegt

70 72 74 76

.AA01 .AA11 .AA12 .AA13

REAL REAL REAL REAL

Grundgerät Analogausgang 1 Slot 1 Analogausgang 1 Slot 1 Analogausgang 2 Slot 1 Analogausgang 3

78 - 79

nicht belegt

80 82 84

.AA21 .AA22 .AA23

REAL REAL REAL

Slot 2 Analogausgang 1 Slot 2 Analogausgang 2 Slot 2 Analogausgang 3

86 - 87

nicht belegt

88 90 92

.AA31 .AA32 .AA33

REAL REAL REAL

Slot 3 Analogausgang 1 Slot 3 Analogausgang 2 Slot 3 Analogausgang 3

94 - 95

nicht belegt

96 98 100

.AA41 .AA42 .AA43

REAL REAL REAL

Slot 4 Analogausgang 1 Slot 4 Analogausgang 2 Slot 4 Analogausgang 3

102 - 103

nicht belegt

104 106 108

.AA51 .AA52 .AA53

REAL REAL REAL

Slot 5 Analogausgang 1 Slot 4 Analogausgang 2 Slot 4 Analogausgang 3

110 - 111

nicht belegt

42/62-50040 DE

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

19

Anhang 1 Register

Kurzbezeichnung

Datentyp Beschreibung

112 114 116

.AA61 .AA62 .AA63

REAL REAL REAL

Slot 6 Analogausgang 1 Slot 6 Analogausgang 2 Slot 6 Analogausgang 3

118 - 119

nicht belegt

120 122 124

.AA71 .AA72 .AA73

REAL REAL REAL

Slot 7 Analogausgang 1 Slot 7 Analogausgang 2 Slot 7 Analogausgang 3

126 - 149

nicht belegt

150 152 154 156 158 160 162 164 166 168 170 172 174 176 178 180 182 184 186 188 190 192 194

.L1_ES1 .L1_ES2 .L1_ES3 .L1_ES4 .L1_ES5 .L1_WAKT .L1_YTRACK .L1_XDIGI .L1_XANA .L1_D .L1_XW .L1_WANA .L1_WDIGI .L1_K1 .L1_K2 .L1_K3 .L1_K4 .L1_PID_Y_OUT .L1_XW_EU .L1_XW_PRZ .L1_YMAX .L1_YMIN .L1_TIME_DPS_MAN

REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL DINT

196 198 200 202 204 206 208 210 212 214 216

.L1_YHAND .L1_KP_STEUER .L1_KS_STEUER .L1_TN_STEUER .L1_TV_STEUER .L1_Y0_STEUER .L1_TT_STEUER .L1_T1_STEUER .L1_PID_I_OUT .L1_PID_D_OUT .L1_YIN

REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL

allgemeiner Eingang allgemeiner Eingang allgemeiner Eingang allgemeiner Eingang allgemeiner Eingang Aktueller Sollwert Analogeingang für Tracking Digitalanzeige x Analoganzeige x Wert zum D-Teil Regelabweichung Xw Analoganzeige w Digitalanzeige w Konstante K1 Konstante K2 Konstante K3 Konstante K4 Ausgang des PID-Reglers Regelabweichnung in EU Regelabweichung in % Stellgrenze Max. Stellgrenze Min. Stellzeit für Schrittregler: positiv = mehr, negativ = weniger Stellwert Hand Parametersteuerung Kp Parametersteuerung Ks Parametersteuerung Tn Parametersteuerung Tv Parametersteuerung Y0 Parametersteuerung Tt Parametersteuerung T1 Integrator des Regelmoduls D-Ausgang des Regelmoduls Analogeongang für y-extern

218 - 223

nicht belegt

224

.L1_BA_YOUT

REAL

Stellgrad des Zweipunktreglers als 0...100 %

226

.INDS_LOOP1

INT

Anzeigeschleife-Position

227

nicht belegt

228 230 232 234 236 238 240 242

.L1_WCOMPUTER .L1_WSOLL0 .L1_WSOLL1 .L1_WSOLL2 .L1_WSOLL3 .L1_WW .L1_V .L1_VISTDIGI

REAL REAL REAL REAL REAL REAL REAL REAL

Computer-Sollwert Ziel-Sollwert 1 Ziel-Sollwert 2 Ziel-Sollwert 3 Ziel-Sollwert 4 wirksamer Sollwert Verhältnis-Sollwert Anzeigewert Verhältnis-Istwert

244 - 247

nicht belegt

20

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Anhang 1 Register

Kurzbezeichnung

Datentyp

Beschreibung

248 250 252 254 256 258 260 262 264 266 268 270 272 274 276 278 280 282 284 286 288 290 292 294 296

.L1_LAMBDA .L1_XANA_SKAL .L1_WANA_SKAL .L1_YCOMPUTER .L1_W_FOLGE .L1_YMIN_BR .L1_YMAX_BR .L1_YMIN_HR .L1_YMAX_HR .L1_WEXT .L1_SKALV .L1_R1 .L1_R2 .L1_R3 .L1_R4 .L1_R5 .L1_R6 .L1_R7 .L1_R8 .L1_T1 .L1_T2 .L1_D1 .L1_D2 .L1_D3 .L1_D4

REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL LONG LONG LONG LONG LONG LONG

ohne Funktion skalierter Wert für X-Anzeige skalierter Wert für W-Anzeig Stellgröße bei DDC Sollwert für Folgeregler bei Kask. Y-Min-Auswahl Begrenzungsregler Override Y-Max-Auswahl Begrenzungsregler Override Y-Min-Auswahl Hauptregler Override Y-Max-Auswahl Hauptregler Override Externer Sollwert Skalierungsfaktor bei Last-Luftregelung freie REAL-Variable freie REAL-Variable freie REAL-Variable freie REAL-Variable freie REAL-Variable freie REAL-Variable freie REAL-Variable freie REAL-Variable freie LONG (Time) Variable freie LONG (Time) Variable freie LONG (DINT) Variable freie LONG (DINT) Variable freie LONG (DINT) Variable freie LONG (DINT) Variable

297 - 299

nicht belegt

300 302 304 306 308 310 312 314 316 318 320 322 324 326 328 330 332 334 336 338 340 342 344

.L2_ES1 .L2_ES2 .L2_ES3 .L2_ES4 .L2_ES5 .L2_WAKT .L2_YTRACK .L2_XDIGI .L2_XANA .L2_D .L2_XW .L2_WANA .L2_WDIGI .L2_K1 .L2_K2 .L2_K3 .L2_K4 .L2_PID_Y_OUT .L2_XW_EU .L2_XW_PRZ .L2_YMAX .L2_YMIN .L2_TIME_DPS_MAN

REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL DINT

346 348 350 352 354 356 358 360 362 364 366

.L2_YHAND .L2_KP_STEUER .L2_KS_STEUER .L2_TN_STEUER .L2_TV_STEUER .L2_Y0_STEUER .L2_TT_STEUER .L2_T1_STEUER .L2_PID_I_OUT .L2_PID_D_OUT .L2_YIN

REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL

allgemeiner Eingang allgemeiner Eingang allgemeiner Eingang allgemeiner Eingang allgemeiner Eingang Aktueller Sollwert Analogeingang für Tracking Digitalanzeige x Analoganzeige x Wert zum D-Teil Regelabweichung Xw Analoganzeige w Digitalanzeige w Konstante K1 Konstante K2 Konstante K3 Konstante K4 Ausgang des PID-Reglers Regelabweichnung in EU Regelabweichung in % Stellgrenze Max. Stellgrenze Min. Stellzeit für Schrittregler: positiv = mehr, negativ = weniger Stellwert Hand Parametersteuerung Kp Parametersteuerung Ks Parametersteuerung Tn Parametersteuerung Tv Parametersteuerung Y0 Parametersteuerung Tt Parametersteuerung T1 Integrator des Regelmoduls D-Ausgang des Regelmoduls Analogeongang für y-extern

368 - 373

nicht belegt

374

.L2_BA_YOUT

REAL

Stellgrad des Zweipunktreglers als 0...100 %

42/62-50040 DE

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

21

Anhang 1 Register

Kurzbezeichnung

Datentyp

Beschreibung

376

.INDS_LOOP2

INT

Anzeigeschleife-Position

377

nicht belegt

378 380 382 384 386 388 390 392

.L2_WCOMPUTER .L2_WSOLL0 .L2_WSOLL1 .L2_WSOLL2 .L2_WSOLL3 .L2_WW .L2_V .L2_VISTDIGI

REAL REAL REAL REAL REAL REAL REAL REAL

Computer-Sollwert Ziel-Sollwert 1 Ziel-Sollwert 2 Ziel-Sollwert 3 Ziel-Sollwert 4 wirksamer Sollwert Verhältnis-Sollwert Verhältnis-Istwert

394 - 397

nicht belegt

398 400 402 404 406 408 410

.L2_LAMBDA .L2_XANA_SKAL .L2_WANA_SKAL .L2_YCOMPUTER .L2_W_FOLGE .L2_YMIN_BR .L2_YMAX_BR

REAL REAL REAL REAL REAL REAL REAL

ohne Funktion skalierter Wert für X-Anzeige skalierter Wert für W-Anzeig Stellgröße bei DDC Sollwert für Folgeregler bei Kask. Y-Min-Auswahl Begrenzungsregler Override Y-Max-Auswahl Begrenzungsregler Override

411 - 415

nicht belegt

416

.L2_WEXT

REAL

Externer Sollwert

418 - 419

nicht belegt

420 422 424 426 428 430 432 434 436 438 440 442 444 446

.L2_R1 .L2_R2 .L2_R3 .L2_R4 .L2_R5 .L2_R6 .L2_R7 .L2_R8 .L2_T1 .L2_T2 .L2_D1 .L2_D2 .L2_D3 .L2_D4

REAL REAL REAL REAL REAL REAL REAL REAL LONG LONG LONG LONG LONG LONG

freie freie freie freie freie freie freie freie freie freie freie freie freie freie

448 - 449

nicht belegt

450 452 454 456 458 460 462 464 466 468 470 472 474 476 478 480 482 484 486 488 490 492 494 496 498

.L3_ES1 .L3_ES2 .L3_ES3 .L3_ES4 .L3_ES5 .L3_WAKT .L3_YTRACK .L3_XDIGI .L3_XANA .L3_D .L3_XW .L3_WANA .L3_WDIGI .L3_K1 .L3_K2 .L3_K3 .L3_K4 .L3_PID_Y_OUT .L3_XW_EU .L3_XW_PRZ .L3_YMAX .L3_YMIN .L3_TIME_DPS_MAN .L3 YHAND .L3 KP_STEUER

REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL DINT REAL REAL

allgemeiner Eingang allgemeiner Eingang allgemeiner Eingang allgemeiner Eingang allgemeiner Eingang Aktueller Sollwert Analogeingang für Tracking Digitalanzeige x Analoganzeige x Wert zum D-Teil Regelabweichung Xw Analoganzeige w Digitalanzeige w Konstante K1 Konstante K2 Konstante K3 Konstante K4 Ausgang des PID-Reglers Regelabweichnung in EU Regelabweichung in % Stellgrenze Max. Stellgrenze Min. Stellzeit für Schrittregler: positiv = mehr, negativ = weniger Stellwert Hand Parametersteuerung Kp

22

REAL-Variable REAL-Variable REAL-Variable REAL-Variable REAL-Variable REAL-Variable REAL-Variable REAL-Variable LONG (Time) Variable LONG (Time) Variable LONG (DINT) Variable LONG (DINT) Variable LONG (DINT) Variable LONG (DINT) Variable

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Anhang 1 Register

Kurzbezeichnung

Datentyp

Beschreibung

500 502 504 506 508 510 512 514 516

.L3 KS_STEUER .L3_TN_STEUER .L3_TV_STEUER .L3_Y0_STEUER .L3_TT_STEUER .L3_T1_STEUER .L3_PID_I_OUT .L3_PID_D_OUT .L3_YIN

REAL REAL REAL REAL REAL REAL REAL REAL REAL

Parametersteuerung Ks Parametersteuerung Tn Parametersteuerung Tv Parametersteuerung Y0 Parametersteuerung Tt Parametersteuerung T1 Integrator des Regelmoduls D-Ausgang des Regelmoduls Analogeingang Y-Extern

518 - 523

nicht belegt

524

.L3_BA_YOUT

REAL

Stellgrad des Zweipunktreglers als 0

526

.INDS_LOOP3

INT

Anzeigeschleife-Position

527

nicht belegt

528 530 532 534 536 538 540 542

.L3_WCOMPUTER .L3_WSOLL0 .L3_WSOLL1 .L3_WSOLL2 .L3_WSOLL3 .L3_WW .L3_V .L3_VISTDIGI

REAL REAL REAL REAL REAL REAL REAL REAL

Computer-Sollwert Ziel-Sollwert 1 Ziel-Sollwert 2 Ziel-Sollwert 3 Ziel-Sollwert 4 wirksamer Sollwert Verhältnis-Sollwert Verhältnis-Istwert

544 - 547

nicht belegt

548 550 552 554 556 558 560

.L3_LAMBDA .L3_XANA_SKAL .L3_WANA_SKAL .L3_YCOMPUTER .L3_W_FOLGE .L3_YMIN_BR .L3_YMAX_BR

REAL REAL REAL REAL REAL REAL REAL

ohne Funktion skalierter Wert für X-Anzeige skalierter Wert für W-Anzeig Stellgröße bei DDC Sollwert für Folgeregler bei Kask. Y-Min-Auswahl Begrenzungsregler Override Y-Max-Auswahl Begrenzungsregler Override

562- 565

nicht belegt

566

.L3_WEXT

REAL

Externer Sollwert

568 - 569

nicht belegt

570 572 574 576 578 580 582 584 586 588 590 592 594 596

.L3_R1 .L3_R2 .L3_R3 .L3_R4 .L3_R5 .L3_R6 .L3_R7 .L3_R8 .L3_T1 .L3_T2 .L3_D1 .L3_D2 .L3_D3 .L3_D4

REAL REAL REAL REAL REAL REAL REAL REAL LONG LONG LONG LONG LONG LONG

freie freie freie freie freie freie freie freie freie freie freie freie freie freie

598 - 599

nicht belegt

42/62-50040 DE

REAL-Variable REAL-Variable REAL-Variable REAL-Variable REAL-Variable REAL-Variable REAL-Variable REAL-Variable LONG (Time) Variable LONG (Time) Variable LONG (DINT) Variable LONG (DINT) Variable LONG (DINT) Variable LONG (DINT) Variable

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

23

Anhang 1 Register

Kurzbezeichnung

Datentyp

Beschreibung

600 602 604 606 608 610 612 614 616 618 620 622 624 626 628 630 632 634 636 638 640 642 644

.L4_ES1 .L4_ES2 .L4_ES3 .L4_ES4 .L4_ES5 .L4_WAKT .L4_YTRACK .L4_XDIGI .L4_XANA .L4_D .L4_XW .L4_WANA .L4_WDIGI .L4_K1 .L4_K2 .L4_K3 .L4_K4 .L4_PID_Y_OUT .L4_XW_EU .L4_XW_PRZ .L4_YMAX .L4_YMIN .L4_TIME_DPS_MAN

REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL DINT

646 648 650 652 654 656 658 660 662 664 666

.L4 YHAND .L4 KP_STEUER .L4 KS_STEUER .L4_TN_STEUER .L4_TV_STEUER .L4_Y0_STEUER .L4_TT_STEUER .L4_T1_STEUER .L4_PID_I_OUT .L4_PID_D_OUT .L4_YIN

REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL

allgemeiner Eingang allgemeiner Eingang allgemeiner Eingang allgemeiner Eingang allgemeiner Eingang Aktueller Sollwert Analogeingang für Tracking Digitalanzeige x Analoganzeige x Wert zum D-Teil Regelabweichung Xw Analoganzeige w Digitalanzeige w Konstante K1 Konstante K2 Konstante K3 Konstante K4 Ausgang des PID-Reglers Regelabweichnung in EU Regelabweichung in % Stellgrenze Max. Stellgrenze Min. Stellzeit für Schrittregler: positiv = mehr negativ = weniger Stellwert Hand Parametersteuerung Kp Parametersteuerung Ks Parametersteuerung Tn Parametersteuerung Tv Parametersteuerung Y0 Parametersteuerung Tt Parametersteuerung T1 Integrator des Regelmoduls D-Ausgang des Regelmoduls Analogeingang Y-Extern

668 - 673

nicht belegt

674

.L4_BA_YOUT

REAL

Stellgrad des Zweipunktreglers als 0

676

.INDS_LOOP4

INT

Anzeigeschleife-Position

677

nicht belegt

678 680 682 684 686 688 690 692

.L4_WCOMPUTER .L4_WSOLL0 .L4_WSOLL1 .L4_WSOLL2 .L4_WSOLL3 .L4_WW .L4_V .L4_VISTDIGI

REAL REAL REAL REAL REAL REAL REAL REAL

Computer-Sollwert Ziel-Sollwert 1 Ziel-Sollwert 2 Ziel-Sollwert 3 Ziel-Sollwert 4 wirksamer Sollwert Verhältnis-Soll Verhältnis-Istwert

694 - 697

nicht belegt

698 700 702 704 706 708 710

.L4_LAMBDA .L4_XANA_SKAL .L4_WANA_SKAL .L4_YCOMPUTER .L4_W_FOLGE .L4_YMIN_BR .L4_YMAX_BR

REAL REAL REAL REAL REAL REAL REAL

ohne Funktion skalierter Wert für X-Anzeige skalierter Wert für W-Anzeig Stellgröße bei DDC Sollwert für Folgeregler bei Kask. Y-Min-Auswahl Begrenzungsregler Override Y-Max-Auswahl Begrenzungsregler Override

712 - 715

nicht belegt

716

.L4_WEXT

REAL

Externer Sollwert

718 - 719

nicht belegt

24

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Anhang 1 Register

Kurzbezeichnung

Datentyp

Beschreibung

720 722 724 726 728 730 732 734 736 738 740 742 744 746

.L4_R1 .L4_R2 .L4_R3 .L4_R4 .L4_R5 .L4_R6 .L4_R7 .L4_R8 .L4_T1 .L4_T2 .L4_D1 .L4_D2 .L4_D3 .L4_D4

REAL REAL REAL REAL REAL REAL REAL REAL LONG LONG LONG LONG LONG LONG

freie freie freie freie freie freie freie freie freie freie freie freie freie freie

748 - 749

nicht belegt

750 752 754 756 758

.TAB01 .TAB02 .TAB03 .TAB04 .TAB4AE

REAL REAL REAL REAL REAL

Ausgang Ausgang Ausgang Ausgang Eingang

760 - 769

nicht belegt

770 772

.ZK01 .ZK02

REAL REAL

Ausgang der Zustandskorrektur 1 Ausgang der Zustandskorrektur 2

774 - 794

nicht belegt

795 796 797 798 799 800 801 802 803 804 806

.WW_LOOP1 .WW_LOOP2 .WW_LOOP3 .WW_LOOP4 .A_LOOP .PG_NR_AKT .PG_SCHNELL .PG_NR_SEL .PG_SEG .PG_LAUF .W_P

INT INT INT INT INT INT INT INT INT LONG REAL

Index des ausgewählten Sollwerts Index des ausgewählten Sollwerts Index des ausgewählten Sollwerts Index des ausgewählten Sollwerts Loop in der anzeige (0=Loop 1,...) Nummer des aktiven Programms Laufgeschwindigkeit Programmgeber Nummer des aktuellen Programms 0...9 aktuelles Segment des Programmgebers Laufzeit des Programmgebers seit Start Programmgeber Sollwert

808 - 809

nicht belegt

810 811 812 813 814 815 816

.LATERALNR .LATERAL1 .LATERAL2 .LATERAL3 .LATERAL4 .LATERAL5 .LATERAL6

INT INT INT INT INT INT INT

Adresse Laterale Kommunikation Status Laterale Kommunikation Nr. Status Laterale Kommunikation Nr. Status Laterale Kommunikation Nr. Status Laterale Kommunikation Nr. Status Laterale Kommunikation Nr. Status Laterale Kommunikation Nr.

817 - 819

nicht belegt

42/62-50040 DE

REAL-Variable REAL-Variable REAL-Variable REAL-Variable REAL-Variable REAL-Variable REAL-Variable REAL-Variable LONG (Time) Variable LONG (Time) Variable LONG (DINT) Variable LONG (DINT) Variable LONG (DINT) Variable LONG (DINT) Variable

der Tabelle 1 der Tabelle 2 der Tabelle 3 der Tabelle 4 Tabelle 4 für ESx

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

1 2 3 4 5 6

25

Anhang 1 Register

Kurzbezeichnung

Datentyp

Beschreibung

902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933

.INT_01 .INT_02 .INT_03 .INT_04 .INT_05 .INT_06 .INT_07 .INT_08 .INT_09 .INT_10 .INT_11 .INT_12 .INT_13 .INT_14 .INT_15 .INT_16 .INT_17 .INT_18 .INT_19 .INT_20 .INT_21 .INT_22 .INT_23 .INT_24 .INT_25 .INT_26 .INT_27 .INT_28 .INT_29 .INT_30 .INT_31 .INT_32

INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT

freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie freie

INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable INT-Variable

für für für für für für für für für für für für für für für für für für für für für für für für für für für für für für für für

Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation Kommunikation

Liste von wichtigen Registern für eine schnelle Datenübertragung Register

Kurzbezeichnung

Datentyp

Beschreibung

820 822 824 826 828 830

.L1_WW .L1_WAKT .L1_XDIGI .L1_D .L1_XW .L1_PID_Y_OUT

REAL REAL REAL REAL REAL REAL

wirksamer Sollwert aktueller Sollwert Digitalanzeige x Wert zum D-Teil Regelabweichung Xw Ausgang des PID-Reglers

840 842 844 846 848 850

.L2_WW .L2_WAKT .L2_XDIGI .L2_D .L2_XW .L2_PID_Y_OUT

REAL REAL REAL REAL REAL REAL

wirksamer Sollwert aktueller Sollwert Digitalanzeige x Wert zum D-Teil Regelabweichung Xw Ausgang des PID-Reglers

860 862 864 866 868 870

.L3_WW .L3_WAKT .L3_XDIGI .L3_D .L3_XW .L3_PID_Y_OUT

REAL REAL REAL REAL REAL REAL

wirksamer Sollwert aktueller Sollwert Digitalanzeige x Wert zum D-Teil Regelabweichung Xw Ausgang des PID-Reglers

880 882 884 886 888 890

.L4_WW .L4_WAKT .L4_XDIGI .L4_D .L4_XW .L4_PID_Y_OUT

REAL REAL REAL REAL REAL REAL

wirksamer Sollwert aktueller Sollwert Digitalanzeige x Wert zum D-Teil Regelabweichung Xw Ausgang des PID-Reglers

26

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Anhang 1 7.2

MODBUS-Coil-Tabelle globale Variablen Boolean

Coil(Status)

Kurzbezeichnung

Datentyp

Beschreibung

0 1 2

.NOCONNECT_B0 .AE01ERR .AE02ERR

BOOL BOOL BOOL

Binär Null Fehler AE01 Fehler AE02

3-10

nicht belegt

11 12 13 14

.AE11ERR .AE12ERR .AE13ERR .AE14ERR

BOOL BOOL BOOL BOOL

Fehler Fehler Fehler Fehler

AE11 AE12 AE13 AE14

15 - 20

nicht belegt

21 22 23 24

.AE21ERR .AE22ERR .AE23ERR .AE24ERR

BOOL BOOL BOOL BOOL

Fehler Fehler Fehler Fehler

AE21 AE22 AE23 AE24

25 - 30

nicht belegt

31 32 33 34

.AE31ERR .AE32ERR .AE33ERR .AE34ERR

BOOL BOOL BOOL BOOL

Fehler Fehler Fehler Fehler

AE31 AE32 AE33 AE34

35 - 40

nicht belegt

41 42 43 44

.AE41ERR .AE42ERR .AE43ERR .AE44ERR

BOOL BOOL BOOL BOOL

Fehler Fehler Fehler Fehler

AE41 AE42 AE43 AE44

45 - 50

nicht belegt

51 52 53 54

.AE51ERR .AE52ERR .AE53ERR .AE54ERR

BOOL BOOL BOOL BOOL

Fehler Fehler Fehler Fehler

AE51 AE52 AE53 AE54

55 - 60

nicht belegt

61 62 63 64

.AE61ERR .AE62ERR .AE63ERR .AE64ERR

BOOL BOOL BOOL BOOL

Fehler Fehler Fehler Fehler

AE61 AE62 AE63 AE64

65 - 70

nicht belegt

71 72 73 74

.AE71ERR .AE72ERR .AE73ERR .AE74ERR

BOOL BOOL BOOL BOOL

Fehler Fehler Fehler Fehler

AE71 AE72 AE73 AE74

75 - 99

nicht belegt

99 100 101 102

.AA01BUE .AA11BUE .AA12BUE .AA13BUE

BOOL BOOL BOOL BOOL

Fehler Fehler Fehler Fehler

AA01 AA11 AA12 AA13

103 - 104

nicht belegt

42/62-50040 DE

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

27

Anhang 1 Coil(Status)

Kurzbezeichnung

Datentyp

Beschreibung

105 106 107

.AA21BUE .AA22BUE .AA23BUE

BOOL BOOL BOOL

Fehler AA21 Fehler AA22 Fehler AA23

108

nicht belegt

109 110 111

.AA31BUE .AA32BUE .AA33BUE

BOOL BOOL BOOL

Fehler AA31 Fehler AA32 Fehler AA33

112

nicht belegt

113 114 115

.AA41BUE .AA42BUE .AA43BUE

BOOL BOOL BOOL

Fehler AA41 Fehler AA42 Fehler AA43

116

nicht belegt

117 118 119

.AA51BUE .AA52BUE .AA53BUE

BOOL BOOL BOOL

Fehler AA51 Fehler AA52 Fehler AA53

120

nicht belegt

121 122 123

.AA61BUE .AA62BUE .AA63BUE

BOOL BOOL BOOL

Fehler AA61 Fehler AA62 Fehler AA63

124

nicht belegt

125 126 127

.AA71BUE .AA72BUE .AA73BUE

BOOL BOOL BOOL

Fehler AA71 Fehler AA72 Fehler AA73

128 - 150

nicht belegt

28

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Anhang 1 Coil(Status)

Kurzbezeichnung

Datentyp

Beschreibung

151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196

.BE01 .BE02 .BE03 .BE04 .BE11 .BE12 .BE13 .BE14 .BE15 .BE16 .BE21 .BE22 .BE23 .BE24 .BE25 .BE26 .BE31 .BE32 .BE33 .BE34 .BE35 .BE36 .BE41 .BE42 .BE43 .BE44 .BE45 .BE46 .BE51 .BE52 .BE53 .BE54 .BE55 .BE56 .BE61 .BE62 .BE63 .BE64 .BE65 .BE66 .BE71 .BE72 .BE73 .BE74 .BE75 .BE76

BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL

Binäreingang01 Binäreingang02 Binäreingang03 Binäreingang04 Binäreingang11 Binäreingang12 Binäreingang13 Binäreingang14 Binäreingang15 Binäreingang16 Binäreingang21 Binäreingang22 Binäreingang23 Binäreingang24 Binäreingang25 Binäreingang26 Binäreingang31 Binäreingang32 Binäreingang33 Binäreingang34 Binäreingang35 Binäreingang36 Binäreingang41 Binäreingang42 Binäreingang43 Binäreingang44 Binäreingang45 Binäreingang46 Binäreingang51 Binäreingang52 Binäreingang53 Binäreingang54 Binäreingang55 Binäreingang56 Binäreingang61 Binäreingang62 Binäreingang63 Binäreingang64 Binäreingang65 Binäreingang66 Binäreingang71 Binäreingang72 Binäreingang73 Binäreingang74 Binäreingang75 Binäreingang76

197 - 220

nicht belegt

42/62-50040 DE

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

29

Anhang 1 Coil(Status)

Kurzbezeichnung

Datentyp

Beschreibung

221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 - 289

.BA01 .BA02 .BA03 .BA04 .BA11 .BA12 .BA13 .BA14 .BA15 .BA16 .BA21 .BA22 .BA23 .BA24 .BA25 .BA26 .BA31 .BA32 .BA33 .BA34 .BA35 .BA36 .BA41 .BA42 .BA43 .BA44 .BA45 .BA46 .BA51 .BA52 .BA53 .BA54 .BA55 .BA56 .BA61 .BA62 .BA63 .BA64 .BA65 .BA66 .BA71 .BA72 .BA73 .BA74 .BA75 .BA76 nicht belegt

BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL

Binärausgang01 Binärausgang02 Binärausgang03 Binärausgang04 Binärausgang11 Binärausgang12 Binärausgang13 Binärausgang14 Binärausgang15 Binärausgang16 Binärausgang21 Binärausgang22 Binärausgang23 Binärausgang24 Binärausgang25 Binärausgang26 Binärausgang31 Binärausgang32 Binärausgang33 Binärausgang34 Binärausgang35 Binärausgang36 Binärausgang41 Binärausgang42 Binärausgang43 Binärausgang44 Binärausgang45 Binärausgang46 Binärausgang51 Binärausgang52 Binärausgang53 Binärausgang54 Binärausgang55 Binärausgang56 Binärausgang61 Binärausgang62 Binärausgang63 Binärausgang64 Binärausgang65 Binärausgang66 Binärausgang71 Binärausgang72 Binärausgang73 Binärausgang74 Binärausgang75 Binärausgang76 positive Flanke schaltet die Anzeige (Ind) um auf:

290 291

.STEPS_B .STEPS_F

BOOL BOOL

vorherige Anzeige nächste Anzeige

292

nicht belegt

293 294 295 296 297 298 299

.STEPW_F .SLH_LOOP1 .SLH_LOOP2 .SLH_LOOP3 .SLH_LOOP4 .POS_WW .POS_Y

BOOL BOOL BOOL BOOL BOOL BOOL BOOL

Sollwert Kanal 1 Kanal 2 Kanal 3 Kanal 4 wirksamer Sollwert Stellwert

300

.REMOTE

BOOL

Reglerfernbedienung über RS-232/485

301 302 303 304 305 306

.FLAG_1 .FLAG_2 .FLAG_3 .FLAG_4 .FLAG_5 .FLAG_6

BOOL BOOL BOOL BOOL BOOL BOOL

Display-Flag Display-Flag Display-Flag Display-Flag Display-Flag Display-Flag

307 - 308

nicht belegt

30

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

1 2 3 4 5 6

für für für für für für

SBG SBG SBG SBG SBG SBG

42/62-50040 DE

Anhang 1 Coil(Status)

Kurzbezeichnung

Datentyp Beschreibung

309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 331 332 333 334 335 336 337 338 339 340 341

.PG_BETRIEB .MACCOUNT .COMAKTIV .WW_UM .CAS_TRACK .PG_RESET .PRG_ENDE .PRG_BA1 .PRG_BA2 .PRG_BA3 .PRG_BA4 .L1_B1 .L1_A_VORB .L1_M_VORB .L1_C_VORB .L1_BETART_UM .L1_REGLER_AUTO .L1_REGLER_MAN .L1_REGLER_C .L1_HAND_M .L1_HAND_W .L1_W_STATUS .L1_V_F .L1_GW1_OUT .L1_GW2_OUT .L1_GW3_OUT .L1_GW4_OUT .L1_PID_PS .L1_SPAKTIV .L1_MAN_AUTO .L1_MAN_CAS .L1_WEXT_AKTIV

BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL

1 = Programmgeber läuft interner Zeitzähler für BA-Umschaltung 1 solange Kommunikation ohne Unterbrechung reserviert Tracking des Führungsreglers wenn nicht Kaskade Programmgeber Reset Binärausgang, Programm beendet Binärausgang 1 des Programmgebers Binärausgang 2 des Programmgebers Binärausgang 3 des Programmgebers Binärausgang 4 des Programmgebers Umschaltung ES1/ES2 in Festwert ES Automatik vorbereitet Hand vorbereitet Cascade vorbereitet Eingang für BA-Umschaltung Setze Regler auf Automatik Setze Regler auf Hand Setze Regler auf Cascade Schrittregler Ausgang „mehr“ Schrittregler Ausgang „weniger“ Sollwert Status Status: Festwert/Verhältnis Ausgang Grenzwertübergang 1 Ausgang Grenzwertübergang 2 Ausgang Grenzwertübergang 3 Ausgang Grenzwertübergang 4 Umschaltsignal Parametersatz 1 2 1 solange Selbstparametrierung aktiv 1 wenn Hand oder Automatik 1 wenn Hand oder Kaskade 1 wenn externer Sollwert angewählt

342 - 359

nicht belegt

360 361 362 363 364 365 366 367 368 369 371 372 373 374 375 376 377 378 379 380 381

.L2_B1 .L2_A_VORB .L2_M_VORB .L2_C_VORB .L2_BETART_UM .L2_REGLER_AUTO .L2_REGLER_MAN .L2_REGLER_C .L2_HAND_M .L2_HAND_W .L2_W_STATUS .L2_V_F .L2_GW1_OUT .L2_GW2_OUT .L2_GW3_OUT .L2_GW4_OUT .L2_PID_PS .L2_SPAKTIV .L2_MAN_AUTO .L2_MAN_CAS .L2_WEXT_AKTIV

BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL

Umschaltung ES1/ES2 in Festwert ES Automatik vorbereitet Hand vorbereitet Cascade vorbereitet Eingang für BA-Umschaltung Setze Regler auf Automatik Setze Regler auf Hand Setze Regler auf Cascade Schrittregler Ausgang „mehr“ Schrittregler Ausgang „weniger“ Sollwertstatus Status: Festwert/Verhältnis Ausgang Grenzwertübergang 1 Ausgang Grenzwertübergang 2 Ausgang Grenzwertübergang 3 Ausgang Grenzwertübergang 4 Umschaltsignal Parametersatz 1 2 1 solange Selbstparametrierung aktiv 1 wenn Hand oder Automatik 1 wenn Hand oder Kaskade 1 wenn externer Sollwert angewählt

382 - 399

nicht belegt

42/62-50040 DE

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

31

Anhang 1 Coil(Status)

Kurzbezeichnung

Datentyp

Beschreibung

400 401 402 403 404 405 406 407 408 409 411 412 413 414 415 416 417 418 419 420 421

.L3_B1 .L3_A_VORB .L3_M_VORB .L3_C_VORB .L3_BETART_UM .L3_REGLER_AUTO .L3_REGLER_MAN .L3_REGLER_C .L3_HAND_M .L3_HAND_W .L3_W_STATUS .L3_V_F .L3_GW1_OUT .L3_GW2_OUT .L3_GW3_OUT .L3_GW4_OUT .L3_PID_PS .L3_SPAKTIV .L3_MAN_AUTO .L3_MAN_CAS .L3_WEXT_AKTIV

BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL

Umschaltung ES1/ES2 in Festwert ES Automatik vorbereitet Hand vorbereitet Cascade vorbereitet Eingang für BA-Umschaltung Setze Regler auf Automatik Setze Regler auf Hand Setze Regler auf Cascade Schrittregler Ausgabg „mehr“ Schrittregler Ausgabg „weniger“ Sollwert-Status Status: Festwert/Verhältnis Ausgang Grenzwertübergang 1 Ausgang Grenzwertübergang 2 Ausgang Grenzwertübergang 3 Ausgang Grenzwertübergang 4 Umschaltsignal Parametersatz 1 2 1 solange Selbstparametrierung aktiv 1 wenn Hand oder Automatik 1 wenn Hand oder Kaskade 1 wenn externer Sollwert angewählt

422 - 439

nicht belegt

440 441 442 443 444 445 446 447 448 449 451 452 453 454 455 456 457 458 459 460 461

.L4_B1 .L4_A_VORB .L4_M_VORB .L4_C_VORB .L4_BETART_UM .L4_REGLER_AUTO .L4_REGLER_MAN .L4_REGLER_C .L4_HAND_M .L4_HAND_W .L4_W_STATUS .L4_V_F .L4_GW1_OUT .L4_GW2_OUT .L4_GW3_OUT .L4_GW4_OUT .L4_PID_PS .L4_SPAKTIV .L4_MAN_AUTO .L4_MAN_CAS .L4_WEXT_AKTIV

BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL

Umschaltung ES1/ES2 in Festwert ES Automatik vorbereitet Hand vorbereitet Cascade vorbereitet Eingang für BA-Umschaltung Setze Regler auf Automatik Setze Regler auf Hand Setze Regler auf Cascade Schrittregler Ausgang „mehr“ Schrittregler Ausgang „weniger“ Sollwert-Status Status: Festwert/Verhältnis Ausgang Grenzwertübergang 1 Ausgang Grenzwertübergang 2 Ausgang Grenzwertübergang 3 Ausgang Grenzwertübergang 4 Umschaltsignal Parametersatz 1 2 1 solange Selbstparametrierung aktiv 1 wenn Hand oder Automatik 1 wenn Hand oder Kaskade 1 wenn externer Sollwert angewählt

32

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Anhang 1 7.3

Neu hinzugekommene Variable ab der Bibliotheksversion 3.6

Register

Kurzbezeichnung

Datentyp

Beschreibung

220 222 244 246 342 343 344 1048 942 944 946 948 950 952 954 956 958 960 962 964

.L1_SCAL_LO .L1_SCAL_HI .L1_ANA_LO .L1_ANA_HI .L1_SETZ_MAN .L1_SETZ_AUTO .L1_SETZ_CASC .L1_SETZ_W .L1_K5 .L1_K6 .L1_K7 .L1_K8 .L1_K9 .L1_K10 .L1_K11 .L1_K12 .L1_K13 .L1_K14 .L1_K15 .L1_K16

REAL REAL REAL REAL BOOL BOOL BOOL INT REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL

Untere Regelkreisskalierung Obere Regelkreisskalierung Untere Bargraphenskalierung Obere Bargraphenskalierung Umschalten auf HAND Umschalten auf AUTOMATIK Umschalten auf CASCADE Umschalten der Sollwertquelle Bewertungsfaktor K5 Bewertungsfaktor K6 Bewertungsfaktor K7 Bewertungsfaktor K8 Bewertungsfaktor K9 Bewertungsfaktor K10 Bewertungsfaktor K11 Bewertungsfaktor K12 Bewertungsfaktor K13 Bewertungsfaktor K14 Bewertungsfaktor K15 Bewertungsfaktor K16

370 372 394 396 342 343 344 1049 966 968 970 972 974 976 978 980 982 984 986 988

.L2_SCAL_LO .L2_SCAL_HI .L2_ANA_LO .L2_ANA_HI .L2_SETZ_MAN .L2_SETZ_AUTO .L2_SETZ_CASC .L2_SETZ_W .L2_K5 .L2_K6 .L2_K7 .L2_K8 .L2_K9 .L2_K10 .L2_K11 .L2_K12 .L2_K13 .L2_K14 .L2_K15 .L2_K16

REAL REAL REAL REAL BOOL BOOL BOOL INT REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL

Untere Regelkreisskalierung Obere Regelkreisskalierung Untere Bargraphenskalierung Obere Bargraphenskalierung Umschalten auf HAND Umschalten auf AUTOMATIK Umschalten auf CASCADE Umschalten der Sollwertquelle Bewertungsfaktor K5 Bewertungsfaktor K6 Bewertungsfaktor K7 Bewertungsfaktor K8 Bewertungsfaktor K9 Bewertungsfaktor K10 Bewertungsfaktor K11 Bewertungsfaktor K12 Bewertungsfaktor K13 Bewertungsfaktor K14 Bewertungsfaktor K15 Bewertungsfaktor K16

520 522 544 546 422 423 424 1050 990 992 994 996 998 1000 1002 1004 1006 1008 1010 1012

.L3_SCAL_LO .L3_SCAL_HI .L3_ANA_LO .L3_ANA_HI .L3_SETZ_MAN .L3_SETZ_AUTO .L3_SETZ_CASC .L3_SETZ_W .L3_K5 .L3_K6 .L3_K7 .L3_K8 .L3_K9 .L3_K10 .L3_K11 .L3_K12 .L3_K13 .L3_K14 .L3_K15 .L3_K16

REAL REAL REAL REAL BOOL BOOL BOOL INT REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL

Untere Regelkreisskalierung Obere Regelkreisskalierung Untere Bargraphenskalierung Obere Bargraphenskalierung Umschalten auf HAND Umschalten auf AUTOMATIK Umschalten auf CASCADE Umschalten der Sollwertquelle Bewertungsfaktor K5 Bewertungsfaktor K6 Bewertungsfaktor K7 Bewertungsfaktor K8 Bewertungsfaktor K9 Bewertungsfaktor K10 Bewertungsfaktor K11 Bewertungsfaktor K12 Bewertungsfaktor K13 Bewertungsfaktor K14 Bewertungsfaktor K15 Bewertungsfaktor K16

42/62-50040 DE

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

33

Anhang 1 Register

Kurzbezeichnung

Datentyp

Beschreibung

670 672 694 696 462 463 464 1051 1014 1016 1018 1020 1022 1024 1026 1028 1030 1032 1034 1036

.L4_SCAL_LO .L4_SCAL_HI .L4_ANA_LO .L4_ANA_HI .L4_SETZ_MAN .L4_SETZ_AUTO .L4_SETZ_CASC .L4_SETZ_W .L4_K5 .L4_K6 .L4_K7 .L4_K8 .L4_K9 .L4_K10 .L4_K11 .L4_K12 .L4_K13 .L4_K14 .L4_K15 .L4_K16

REAL REAL REAL REAL BOOL BOOL BOOL INT REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL

Untere Regelkreisskalierung Obere Regelkreisskalierung Untere Bargraphenskalierung Obere Bargraphenskalierung Umschalten auf HAND Umschalten auf AUTOMATIK Umschalten auf CASCADE Umschalten der Sollwertquelle Bewertungsfaktor K5 Bewertungsfaktor K6 Bewertungsfaktor K7 Bewertungsfaktor K8 Bewertungsfaktor K9 Bewertungsfaktor K10 Bewertungsfaktor K11 Bewertungsfaktor K12 Bewertungsfaktor K13 Bewertungsfaktor K14 Bewertungsfaktor K15 Bewertungsfaktor K16

1038 1040 1054 1053 308 1042 934 935 936 937 938 939 940 941 307 1044 1046 1052

.RTC_DATUM .RTC_ZEIT .RTC_ERROR .RTC_STATUS .SETZ_DATUM .NEU_DATUM .MOD0ERR .MOD1ERR .MOD2ERR .MOD3ERR .MOD4ERR .MOD5ERR .MOD6ERR .MOD7ERR .DPAKTIV .PG_NLAUF .PG_SEGZEIT .PG_ZYKLEN

DINT DINT INT INT BOOL DINT INT INT INT INT INT INT INT INT BOOL DINT DINT INT

Datum mit Uhrzeit [s] Uhrzeit [msec] Uhrenfehler Uhrenstatus Setze Uhrzeit Synchronisieruhrzeit Fehler E/A-Grundgerät Fehler Modul 1 Fehler Modul 2 Fehler Modul 3 Fehler Modul 4 Fehler Modul 5 Fehler Modul 6 Fehler Modul 7 Profibus DP Kommunikation läuft Nettolaufzeit des aktiven PGs Laufzeit im Segment des PG Bearbeitete Schleife des PG

34

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Anhang 2 8

Anhang 2 8.1 Programmierbeispiele in C Alle nachfolgenden Beispiele für die Zugriffe auf Register sind in C, um eine exakte und fehlerfreies Beispiel zu gewährleisten. Die Übertragung findet hier im RTU-Protokoll statt. Die Funktionen modbus_read() und modbus_write() zeigen, wie ein Telgramm aufgebaut wird, alle anderen Funktionen zeigen den Umgang mit den verschiedenen Datenformaten.

modbus_read Daten von anderen MODBUS-Teilnehmern besorgen (Read Output Register: Funktion 03) void modbus_read(unsigned regnr, int anzahl, int *recdata) { int unsigned sendbuf[0] sendbuf[1] sendbuf[2] sendbuf[3] sendbuf[4] sendbuf[5] crc sendbuf[6] sendbuf[7]

i,anz; crc; = = = = = = = = =

mod_adr; /* MODBUS-Zieladresse 3; /* Read Output Register regnr>>8; /* Hi Register Nummer regnr; /* Lo Register Nummer 0; /* Hi Anzahl Register anzahl; /* Lo Anzahl Register CRC16(sendbuf,6); crc; crc>>8;

ComWrite(sendbuf,8); ComRead(receivebuf); // receivebuf[0]; // receivebuf[1];

*/ */ */ */ */ */

/* 8 Zeichen senden */ /* Daten Empfangen */ enthaelt Adresse enthaelt Function-Code

anz = receivebuf[2];

/*

Anzahl Datenbytes */

// receivebuf[3+anz]; // receivebuf[4+anz];

enthaelt Adresse CRC enthaelt Adresse CRC

for (i=0; i < anz; i+=2) { recdata[i+0] = receivebuf[4+i]; recdata[i+1] = receivebuf[3+i]; } }

modbus_write Daten zu anderen MODBUS-Teilnehmern schicken (Write Single Register: Funktion 06) void modbus_write(unsigned regnr, int data) { unsigned crc; sendbuf[0] = mod_adr; /* MODBUS-Zieladresse */ sendbuf[1] = 6; /* Write Single Register */ sendbuf[2] = regnr>>8; /* Hi Register Nummer */ sendbuf[3] = regnr; /* Lo Register Nummer */ sendbuf[4] = data>>8; /* Hi Datenbyte */ sendbuf[5] = data; /* Lo Datenbyte */ crc = CRC16(sendbuf,6); sendbuf[6] = crc; sendbuf[7] = crc>>8; ComWrite(sendbuf,8); /* 8 Zeichen senden */ ComRead(receivebuf); /* Quittung Empfangen */ }

42/62-50040 DE

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

35

Anhang 2 Programierbeispiel zum Ermitteln der CRC-Summe des MODBUS-RTU-Telegramms unsigned short CRC16( void *data_p /* Datenbereich */, unsigned len /* Datenlänge*/ ) /* 16 Bit CRC (MODBUS-RTU) von data_p berechnen */ { #

define POLYNOM int unsigned short unsigned char

0x0A001 i,j; crc = 0xffff; *p = data_p;

for (j=0; j < len; j++) { /* für gesammten Puffer */ for (crc ^= *p++,i=0; i < 8; i++) { /* für ein Byte */ if ((crc & 0x0001)) crc = (crc >> 1) ^ POLYNOM; else crc >>= 1; } } return (crc); }

Regelabweichung mit Pair of Register in Loop 1 ermitteln (L1_XW, Register 170) void read_float_split_merge() { float *fval; int recdata[30]; modbus_read(170, 2, &recdata[0]); fval = (void *)&recdata[0]; printf("Float-Register 170/171 : float =%6.3f", *fval); }

Regelabweichung mit Pair of Register in Loop 1 ermitteln (L1_XW, Register 170/171) void read_float_split_merge() { float *fval; int recdata[30]; modbus_read(170, 1, &recdata[0]); modbus_read(171, 1, &recdata[1]); fval = (void *)&recdata[0]; printf("Float-Register 170/171 : float =%6.3f", *fval); }

Regelabweichung nach Exp & Mantisse in Loop 1 ermitteln (L1_XW, Register 2170) void read_float_mantisse_exp() { float fval; int recdata,i; int man,exp; modbus_read(2170, 1, &recdata); man = recdata; modbus_read(2171, 1, &recdata); exp = recdata; fval = man; fval = fval / 10000.0; for(i=0;i < exp; i++) fval *= 10.; printf("Float-Register 2170/2171 :

float =%6.3f", fval);

}

36

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Anhang 2 Nummer des aktuellen Programms ermitteln (Register 802) void read_int() { int recdata; modbus_read(802, 1, &recdata); printf("Integer-Register 802 :

int =%d", recdata);

}

Tastatureingiff: Hand/Automatik/Cascade verstellen (Register 900) void write_int() { modbus_write(900, 0x10); }

Onlineparameter, Gerät, Tabelle 1, Stützwert 1 mit Pair of Register schreiben (Register 10022/23) void write_float_split_merge() { int data[2]; unsigned long *pdata; float wert; wert = 133.5; pdata = (void *)&wert; data[0] = (unsigned)(*pdata & 0xFFFF); data[1] = (unsigned)(*pdata >>16); modbus_write(10022,data[0]); modbus_write(10023,data[1]); }

Onlineparameter, Gerät, Tabelle1, Stützwert 1 mit Exponent/Mantisse schreiben (Register 20022/23) void write_float_mantisse_exp() { float wert; int exp,man; ^ wert = 133.5; exp = 0; while (fabs(wert) >= 1.0 ) { wert = wert / 10; exp++; } wert = wert * 10000.0; // Rundungsfehler berücksichtigen if (wert > 0) wert = wert + 0.5; else wert = wert - 0.5; man = (int)wert; modbus_write(20022,man); modbus_write(20023,exp);

// zuerst Mantisse // dann Exponent

}

42/62-50040 DE

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

37

Anhang 2 Programmgeber Programm 1, Laufzeit 1 (P17), LONG-Wert schreiben (Reg 15034/35) void write_long_split_merge() { int data[2]; unsigned long *pdata; long wert; wert = 80000l; /* 80000 sekunden */ pdata = (void *)&wert; data[0] = (unsigned)(*pdata & 0xFFFF); data[1] = (unsigned)(*pdata >>16); modbus_write(15034,data[0]); modbus_write(15035,data[1]); }

38

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Anhang 3 9

Anhang 3 9.1 Programmierbeispiele in Quickbasic 4.5 9.1.1

IEEE-Werteberechnung mittels MKS$ und CSV-Funktion

’Demoprogramm zur Bearbeitung von IEEE-Werte-Darstellung ’in Quick-Basic 4.5 ’benutzt die Quick-Basic-Funktionen MKS$ und CVS ’------------------------------------------------------DECLARE FUNCTION BINAER$ (z$) DECLARE FUNCTION HEX2$ (x) CLS DO INPUT "Realwert (E = Ende) "; Realwert$ IF UCASE$(Realwert$) = "E" THEN END Realwert! = VAL(Realwert$) ’------------------------------------------------------’Aufbereiten: ’------------------------------------------------------’ Realwert in IEEE-Darstellung IEEE$ = MKS$(Realwert!) ’4 Byte-String FOR I = 0 TO 3 Byte(I) = ASC(MID$(IEEE$, I + 1, 1)) NEXT Date0& = Byte(1) * 256 + Byte(0) Date1& = Byte(3) * 256 + Byte(2) ’Diese 2 Worte muessen richtig in das Sendetelegramm ’eingebaut werden. ’------------------------------------------------------’Kontroll-Darstellungen IEEE$ = HEX2$(Byte(3)) + HEX2$(Byte(2)) IEEE$ = IEEE$ + HEX2$(Byte(1)) + HEX2$(Byte(0)) PRINT IEEE$; " ="; BINAER$(IEEE$) ’======================================================= 'Zurückrechnen '------------------------------------------------------'es sind empfangen worden die Bytes(0) bis Byte(3) '-----------------------------------------------------IEEEHEX$ = "" FOR I = 0 TO 3 IEEEHEX$ = IEEEHEX$ + CHR$(Byte(I)) NEXT Realwert! = CVS(IEEEHEX$) PRINT "Rueckrechnung = "; Realwert! LOOP '---------------------------------------'Umwandlung einer Hex-Ziffer in Binädarstellung '--------------------------------------------------FUNCTION BINAER$ (z$) DEFINT A-Z FOR I = 1 TO LEN(z$) x1$ = "" x% = VAL("&H" + MID$(z$, I, 1)) DO UNTIL x% = 0 Y$ = LTRIM$(STR$(x% MOD 2)) x% = x% \ 2 x1$ = Y$ + x1$ LOOP x1$ = RIGHT$("0000" + x1$, 4) x$ = x$ + " " + x1$ NEXT BINAER$ = x$ END FUNCTION '---------------------------------------DEFSNG A-Z 'Stellt Hex-Ziffern zweistellig dar '---------------------------------------FUNCTION HEX2$ (x) HEX2$ = RIGHT$("00" + HEX$(x), 2) END FUNCTION

9.1.2

42/62-50040 DE

IEEE-Werteberechnung ohne spezielle Funktionen

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

39

Anhang 3 ’Demoprogramm zur Bearbeitung von IEEE-Werte-Darstellung ’in Quick-Basic 4.5 Version 1.0 ’------------------------------------------------------DECLARE FUNCTION BINAER$ (z$) CLS DO UNTIL i = 127 INPUT "Realwert (e = ende) "; RealWert IF UCASE$(RealWert$) = "E" THEN END RealWert! = VAL(RealWert$) ’---------------------------------------------------------’Aufbereitung: ’========================================================== ’Vorzeichen separieren Vorzeichen = 0 IF RealWert! < 0 THEN RealWert! = RealWert! * (-1) Vorzeichen = -1 END IF ’---------------------------------------------------------’Exponenten bestimmen Exponent% = 0 X! = RealWert! IF X! > 1 THEN DO UNTIL X! < 1 X! = X! / 2 Exponent% = Exponent% + 1 LOOP Exponent% = Exponent% - 1 ELSE DO UNTIL X! > 1 X! = X! * 2 Exponent% = Exponent% - 1 LOOP PRINT Exponent% END IF ’---------------------------------------------------------’Mantisse bestimmen Mantisse = RealWert! * (2 ^ (23 - Exponent%)) Mantisse = Mantisse AND &H7FFFFF ’---------------------------------------------------------'Worte und Bytes für Telegramm bestimmen Exponent% = (Exponent% + &H7F) * 128 Date0 = Mantisse MOD &H10000 Date1 = Mantisse \ &H10000 + Exponent% Byte(0) = Date0 MOD 256 Byte(1) = Date0 \ 256 Byte(2) = Date1 MOD 256 Byte(3) = Date1 \ 256 + ((-1) * Vorzeichen) * &H80 '------------------------------------------------------'Kontrolldarstellung PRINT "IEEE-Wert: "; FOR i = 3 TO 0 STEP -1 PRINT BINAER$(HEX$(Byte(i))); NEXT PRINT '======================================================= 'Zurückrechnen '------------------------------------------------------'es sind empfangen worden die Bytes(0) bis Byte(3) '------------------------------------------------------'Vorzeichen ist in Bit 7 von Byte(3) kodiert Vorzeichen = 1

40

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Anhang 3 IF (Byte(3) AND &H80) = &H80 THEN Vorzeichen = -1 ’------------------------------------------------------’Exponent ermitteln aus Bit 6 bis 0 aus Byte(3) ’und Bit 8 aus Byte(2) Exponent = (Byte(3) AND &H7F) * 2 + (Byte(2) \ 128) ’------------------------------------------------------’Mantisse ermitteln: ’Bit 7 von Byte(3) setzen, ’Mantisse aus Byte(0) bis Byte(3) errechnen Mantisse = (Byte(2) OR &H80) * &H10000 Mantisse = Mantisse + Byte(1) * &H100 + Byte(0) ’------------------------------------------------------RealWert! = Vorzeichen * Mantisse / (2 ^ (23 - (Exponent - &H7F))) PRINT "Rückrechnung = "; RealWert! LOOP '--------------------------------------------------'Umwandlung einer Hex-Ziffer in Binädarstellung '--------------------------------------------------FUNCTION BINAER$ (z$) DEFINT A-Z FOR i = 1 TO LEN(z$) x1$ = "" X% = VAL("&H" + MID$(z$, i, 1)) DO UNTIL X% = 0 Y$ = LTRIM$(STR$(X% MOD 2)) X% = X% \ 2 x1$ = Y$ + x1$ LOOP x1$ = RIGHT$("0000" + x1$, 4) X$ = X$ + " " + x1$ NEXT BINAER$ = X$ END FUNCTION

42/62-50040 DE

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

41

Anhang 3 9.1.3

Berechnete Beispiele

Exponent auf Basis 2 wird durch mehrfache Multiplikation mit 2 oder Division durch 2 so berechnet, dass sich ein 24-stelliger binärer Wert mit einer 1 an der höchsten (linken) Stelle ergibt. In der IEEE-Darstellung wird diese 1 unterdrückt. dezim. hexadezimal binär s/Exponent /Wert -1.0 -0.5 -0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.2 0.4 0.5 1.0 10.0

42

BF BF BE BE BE BD 00 3D 3E 3E 3E 3F 3F 41

80 00 CC 99 4C CC 00 CC 4C 99 CC 00 80 20

00 00 CC 99 CC CC 00 CC CC 99 CC 00 00 00

00 00 CD 9A CD CD 00 CD CD 9A CD 00 00 00

1011 1011 1011 1011 1011 1011 0000 0011 0011 0011 0011 0011 0011 0100

1111 1111 1110 1110 1110 1101 0000 1101 1110 1110 1110 1111 1111 0001

1000 0000 1100 1001 0100 1100 0000 1100 0100 1001 1100 0000 1000 0010

/ 0000 0000 1100 1001 1100 1100 0000 1100 1100 1001 1100 0000 0000 0000

0000 0000 1100 1001 1100 1100 0000 1100 1100 1001 1100 0000 0000 0000

0000 0000 1100 1001 1100 1100 0000 1100 1100 1001 1100 0000 0000 0000

0000 0000 1100 1001 1100 1100 0000 1100 1100 1001 1100 0000 0000 0000

0000 0000 1101 1010 1101 1101 0000 1101 1101 1010 1101 0000 0000 0000

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

42/62-50040 DE

Anhang 3 9.1.4

Berechnung der Prüfsumme CRC

'Basic-Programm zur Ermittlung der Prüfsumme CRC für MODBUS'RTU Telegramme 'Quickbasic 4.5 Version 1.0 '----------------------------------------------------------DECLARE FUNCTION HEX2$ (x!) CLS MaxI = 2 PRINT "Eingabe der Telegrammbytes in Hex 05H oder dezimal 5" PRINT "getrennt einheitlich durch Leerzeichen oder Kommata" DO INPUT Tel$ i = 1 L = LEN(Tel$) Tel$ = UCASE$(Tel$) DO UNTIL Tel$ = "" Tel$ = LTRIM$(Tel$) x = INSTR(Tel$, " ") + INSTR(Tel$, ",") IF x > 4 THEN Fehler = 1: EXIT DO IF x > 0 THEN Byte$(i) = LEFT$(Tel$, x) TEl$ = RIGHT$(Tel$, LEN(Tel$) - x + 1) ELSE Byte$(i) = Tel$ Tel$ = "" END IF Byte$(i) = RTRIM$(Byte$(i)) IF RIGHT$(Byte$(i), 1) "H" THEN Byte$(i) = HEX2$(VAL(Byte$(i))) ELSE Byte$(i) = LEFT$(Byte$(i), 2) END IF IF HEX2$(VAL("&H" + Byte$(i))) Byte$(i) THEN Fehler = 1: EXIT DO i = i + 1 LOOP IF Fehler = 0 THEN EXIT DO SOUND 1000, .03 LOOP MaxI = i - 1 x& = 65535 FOR i = 1 TO MaxI y& = (VAL("&H" + Byte$(i)) XOR x&) n = 1 DO DO r = y& MOD 2 y& = y& - r y& = y& / 2 IF ABS(r) = 1 THEN EXIT DO n = n + 1 IF (n = 9) AND (i = MaxI) THEN EXIT FOR IF n = 9 THEN EXIT DO LOOP IF n < 9 THEN y& = y& XOR 40961 n = n + 1 END IF IF n = 9 THEN IF (i = MaxI) THEN EXIT FOR EXIT DO END IF LOOP x& = y& NEXT PRINT "CRC ="; HEX$(y&); " Hex" PRINT " muss in der Reihenfolge "; HEX2$(y& MOD 256); " "; HEX2$(y& \ 256); PRINT " in das Telegramm aufgenommen werden !" FUNCTION HEX2$ (x) HEX2$ = RIGHT$("00" + HEX$(x), 2) END FUNCTION

42/62-50040 DE

Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

43

ABB Automation Products GmbH Höseler Platz 2 D-42579 Heiligenhaus Tel. +49(0)20 56 12 - 5181 Fax +49(0)20 56 12 - 5081 http://www.abb.de/regler

Technische Änderungen vorbehalten Printed in the Fed. Rep. of Germany 42/62-50040 DE Rev. 04 Ausgabe 11.01