|
读命令分析
一次读一条数据
对于一次读取一个数据,读命令都是33个字节。前面的0—21字节是相同的,为 :
0 1 2 3 &nb
sp; 4 5 6 7
8 9 10 &nb
sp;11 12 13 14 &n
bsp; 15 16 17 &nb
sp;18 19 20 21 &n
bsp;
开始符 长度 长度 开始
符 站号 源地址 功能码
&
nbsp; &n
bsp; &nb
sp; &nbs
p;
SD LE Ler SD &nbs
p; DA SA FC  
;
&
nbsp; &n
bsp; &nb
sp;
68 1B 1B 68  
; 02 00 6C
32 01 00 00  
; 00 00 00
0E 00 00 04  
; 01 12 0A
10
0 1 2 3 4 5 6
7 8 9 10
SD LE LER SD DA SA FC DSAP
68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10
22 23 24 25  
; 26 27 28
29 30 31 32  
;
读取长度 数据个数 存储器类型
偏移量 校验 结束
&
nbsp; &n
bsp; FCS ED &nbs
p;
02 00 08 00  
; 00 03 00
05 E0 D2 16  
;
68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10 02 00 08 00 00 03 00 05
E0 D2 16
68 1B 1B 68 02 00 7C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10 02 00 14 00 00 03 00 00
00 09 16
因为是PC上发的读PLC数据的命令,SA=00,DA=02,如果有多个站,DA要改成相应的站号。读命令中从DA
到DU的长度为1B即27个字节。从22字节开始根据读取数据的类型、位置不同而不同。表一是读不同存储
器命令的Byte22—32。
字节 22 23 24 25 26
27 28 29 30 31 32
功能 读取长度 数据个数 存储器类型 偏移量 校验 结束
读q0.0 01 00 01 00 00
82 00 00 00 64 16
读m0.0 01 00 01 00 00
83 00 00 00 65 16
读M0.1 01 00 01 00 00
83 00 00 01 66 16
读SMB34 02 00 01 00 00
05 00 01 10 F9 16
读VB100 02 00 01 00 01
84 00 03 20 8B 16
读VW100 04 00 01 00 01
84 00 03 20 8D 16
读vd100 06 00 01 00 01
84 00 03 20 8F 16
读i0.5 01 00 01 00 00
81 00 00 05 68 16"
读i0.7 01 00 01 00 00
81 00 00 07 6A 16"
握手
10 02 00 49 4B 16
读取密码指令:
68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10 02 00 08 00 00 03 00 05
E0 D2 16
10 02 00 5C 5E 16
返回密码数据:
68 1D 1D 68 00 02 08 32 03 00 00 00 00 00 02 00 0C 00 00 04 01 FF 04 00 40 9B 98 02 06 9D
9A 00 76 7D 16
大家来看一下密码是多少啊,这里就有plc返回的密码!
改写密码保护位指令
68 20 20 68 02 00 7C 32 01 00 00 00 00 00 0E 00 05 05 01 12 0A 10 08 00 01 00 00 03 00 05
D8 00 04 00 08 04 EF 16
68 20 20 68 02 00 7C 32 01 00 00 00 00 00 0E 00 05 05 01 12 0A 10 02 00 01 00 00 03 00 05
D8 00 03 00 08 04 E8 16
其实拆机更简单读出bin文件,不过解码方式是和上面的ppi协议解密返回的密码是一样的需要解码
|
|