DB_MODE_43 _DB74.pdf
FC_MODE_43 _FC14.pdf
DB_MODE_43 _DB74.pdf
FC_MODE_43 _FC14.pdf
L 0
T #Checksum
L DINT#0
T #TEMP13
CLR
= #Error
AN #Start
SAVE
BEC
OPN #DB_Mode_43
CDB
L DW#16#85000000
LAR2
L P##First_Sign
LAR1
L 0
L W [ AR1 , P#0.0 ]
==I
JZ M002
T #TEMP10
OPN DB [ #TEMP10]
M002: NOP 0
L D [ AR1 , P#2.0 ]
LAR1
L #Length
L 1
<I
= #Error
JC M001
TAK
M003: T #TEMP11
L B [ AR1 , P#0.0 ]
T #TEMP14
L DW#16#85000000
LAR2
L 43
M004: T #TEMP12
L #TEMP14
L B [ AR2 , P#0.0 ]
==I
JC M005
+AR2 P#1.0
L #TEMP12
LOOP M004
SET
= #Error
JU M001
M005: TAR2
L DW#16#FFFFFF
AD
SRD 3
L #TEMP13
+D
T #TEMP13
+AR1 P#1.0
L #TEMP11
LOOP M003
L #TEMP13
L 43
MOD
SLD 3
L DW#16#85000000
OD
LAR2
L B [ AR2 , P#0.0 ]
T #Checksum
数据区DB91.DBB430是一个字符组,格式是XK1AAAABBBP,通过前11位数据计算第12位校验码。例如,计算得到AAAA数据是0.77,数据显示为:XK1+077+000(),然后计算最后括号内数据,带入计算是'L'也就是最终数据显示XK1+077+000L,
可不可以麻烦各位大神帮忙分析一下具体是怎样计算的,谢谢
附录:以下是DB块中内容,按照偏移位,从0-9,然后从A到Z.
ZEICHEN Struct 0.0 False True True True False
Z00 Char 0.0 '0' False True True True False
Z01 Char 1.0 '1' False True True True False
Z02 Char 2.0 '2' False True True True False
Z03 Char 3.0 '3' False True True True False
Z04 Char 4.0 '4' False True True True False
Z05 Char 5.0 '5' False True True True False
Z06 Char 6.0 '6' False True True True False
Z07 Char 7.0 '7' False True True True False
Z08 Char 8.0 '8' False True True True False
Z09 Char 9.0 '9' False True True True False
Z10 Char 10.0 'A' False True True True False
Z11 Char 11.0 'B' False True True True False
Z12 Char 12.0 'C' False True True True False
Z13 Char 13.0 'D' False True True True False
Z14 Char 14.0 'E' False True True True False
Z15 Char 15.0 'F' False True True True False
Z16 Char 16.0 'G' False True True True False
Z17 Char 17.0 'H' False True True True False
Z18 Char 18.0 'I' False True True True False
Z19 Char 19.0 'J' False True True True False
Z20 Char 20.0 'K' False True True True False
Z21 Char 21.0 'L' False True True True False
Z22 Char 22.0 'M' False True True True False
Z23 Char 23.0 'N' False True True True False
Z24 Char 24.0 'O' False True True True False
Z25 Char 25.0 'P' False True True True False
Z26 Char 26.0 'Q' False True True True False
Z27 Char 27.0 'R' False True True True False
Z28 Char 28.0 'S' False True True True False
Z29 Char 29.0 'T' False True True True False
Z30 Char 30.0 'U' False True True True False
Z31 Char 31.0 'V' False True True True False
Z32 Char 32.0 'W' False True True True False
Z33 Char 33.0 'X' False True True True False
Z34 Char 34.0 'Y' False True True True False
Z35 Char 35.0 'Z' False True True True False
Z36 Char 36.0 '-' False True True True False
Z37 Char 37.0 '.' False True True True False
Z38 Char 38.0 ' ' False True True True False
Z39 Char 39.0 '$$' False True True True False
Z40 Char 40.0 '/' False True True True False
Z41 Char 41.0 '+' False True True True False
Z42 Char 42.0 '%' False True True True False
Z43 Char 43.0 '#' False True True True False
Z44 Char 44.0 '&' False True True True False
Z45 Char 45.0 '*' False True True True False
Z46 Char 46.0 '=' False True True True False
RES Array[48..99] of Char 48.0 False True True True False