Herunterladen Inhalt Inhalt Diese Seite drucken

Senden Eines Pairs Of Registers An Protronic/Digitric; Lesen Eines Pairs Of Registers Aus Protronic/Digitric; Exponent-Mantisse-Format - ABB Protronic 100 Bedienungsanleitung

Vorschau ausblenden Andere Handbücher für Protronic 100:
Inhaltsverzeichnis

Werbung

5.2.2
Bildungsvorschrift für die Aufspaltung eines (4 Byte IEEE) REAL-Wertes in 2 Registerwerten à 16-Bit, wo-
bei 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
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
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) REAL-
Wert, wobei in data[0] der gelesene Wert des geraden Registers, in data[1] der des ungeraden Registers
enthalten ist:

5.3 Exponent-Mantisse-Format

Dieses Verfahren wird auch von den Reglern Contric CM1 und C1 und von dem ABB-Leitsystem Free-
lance benutzt.
Aus dem für REAL angegeben Wertebereich können mit diesem Verfahren folgende Werte übertragen
werden:
+0,0001
-0,000
und der Wert 0.
Das Vorzeichen des Wertes ist in der Mantisse enthalten.
8000H......FFFFH ...0000H......7FFFH
-32.768
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 0
16
Protronic 100/500/550, Digitric 500, MODBUS-Schnittstellenbeschreibung

Senden eines Pairs of Registers an Protronic/Digitric

int
data[2];
unsigned long *pdata;
float
wert;
wert
= 133.5;
pdata
= (void *)&wert;
data[0]
= (unsigned)(*pdata & 0xFFFF);
data[1]
= (unsigned)(*pdata >>16);

Lesen eines Pairs of Registers aus Protronic/Digitric

float
*ptrReal
int
data[2]
ptrReal = (float *)&data[0]
to
+3.2767 E38
to
-3.2768 E38
-1
0
Exponent
Mantisse
5
6543
5
12345
4
-1234
4
1234
3
1234
2
1234
1
1234
0
1234
0
123
0
12
1
32.767
Berechnung der Daten
42/62-50040 DE

Werbung

Inhaltsverzeichnis
loading

Diese Anleitung auch für:

Digitric 500Protronic 500Protronic 550

Inhaltsverzeichnis