Herunterladen Inhalt Inhalt Diese Seite drucken

ABB TZA 401 Bedienungsanleitung Seite 26

Messrechner modbus-schnittstelle
Inhaltsverzeichnis

Werbung

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
26 Programmierbeispiele in Quickbasic 4.5

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis