Herunterladen Inhalt Inhalt Diese Seite drucken

Ieee- Werteberechnung Ohne Spezielle Funktionen - ABB TZA 401 Bedienungsanleitung

Messrechner modbus-schnittstelle
Inhaltsverzeichnis

Werbung

IEEE- Werteberechnung ohne spezielle Funktionen

'Demoprogramm zur Bearbeitung von IEEE-Werte-Darstellung
'in Quick-Basic 4.5
'-------------------------------------------------------
DECLARE FUNCTION BIN.AER$ (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 BIN.AER$(HEX$(Byte(i)));
NEXT
PRINT
'=======================================================
'Zurückrechnen
'-------------------------------------------------------
'es sind empfangen worden die Bytes(0) bis Byte(3)
'-------------------------------------------------------
'Vorzeichn ist in Bit 7 von Byte(3) kodiert
Vorzeichen = 1
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,
24 Programmierbeispiele in Quickbasic 4.5
Version 1.0

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis