三菱plc协议解析

1、当点击连接测试的时候

[00000001] - Write  Size: 1
05            
                                                      

[00000002] - Read  Size: 1
06          
                                                        

[00000002] - Write  Size: 11
02 30 30 45 30 32 30 32 03 36 43                      00E02026C   
 

02是报文开始

30转为ascci为0

30453032转为ASCII为读的地址0E02

3032为长度,转为ASCII为02

3643转为ASCII为校验和6C

读plc的类型

0E02究竟是啥

D8001        0E02        5EF6        PLC型号和系统版本号        24310         8001        F65E

[00000003] - Read  Size: 8
02 46 36 35 45 03 46 39                               F65EF9        

回复F65E为FX2N

[00000005] - Write  Size: 11
02 30 30 45 43 41 30 32 03 38 45                      00ECA028E     

读序列机名称

D8101        0ECA        5EF6        序列器机种名/版本        24310         8101        F65E

[00000006] - Read  Size: 8
02 46 36 35 45 03 46 39                               F65EF9        

还是回复F65E

重复两遍

[00000007] - Write  Size: 11
02 30 30 45 30 32 30 32 03 36 43                      00E02026C     

[00000008] - Read  Size: 8
02 46 36 35 45 03 46 39                               F65EF9        

[00000009] - Write  Size: 11
02 30 30 45 43 41 30 32 03 38 45                      00ECA028E     

[00000010] - Read  Size: 8
02 46 36 35 45 03 46 39                               F65EF9        

2、读配置

//------------------------------------------------------------------------------//
// 读程序参数区,92字节,分2次读入,一次64字节,一次28字节:
// E01 8000 40 / E01 840 1C
//------------------------------------------------------------------------------//
[00000007] - Write  Size: 13
02 45 30 31 38 30 30 30 34 30 03 44 35                E01800040D5   

这是从起始地址8000读64个字节

8000开始的信息如下

参数        地址        十六进制值        十进制值        意义
0        0x8000        0008        8         程序总步数
1        0x8002        B658        46680        
2        0x8004        0000        0        
3        0x8006        0000        0        
4        0x8008        2020                PLC密码
5        0x800A        2020               
6        0x800C        2020               
7        0x800E        2020               
8        0x8010        2020                PLC名-标题
9        0x8012        2020               
10        0x8014        2020               
11        0x8016        2020               
12        0x8018        2020               
13        0x801A        2020               
14        0x801C        2020               
15        0x801E        2020               
16        0x8020        2020               
17        0x8022        2020               
18        0x8024        2020               
19        0x8026        2020               
20        0x8028        2020               
21        0x802A        2020               
22        0x802C        2020               
23        0x802E        2020               
24        0x8030        09F4        2548         M锁存起始:M500
25        0x8032        0BFF        3071         M锁存结束:M1023
26        0x8034        01F4        500          S锁存起始:M500
27        0x8036        03E7        999          S锁存结束:M999
28        0x8038        0E64        3684         C锁存起始:C100
29        0x803A        0EC7        3783         C锁存结束:C199
30        0x803C        0EDC        3804         C锁存起始:C220
31        0x803E        0EFF        3839          C锁存结束:C255

应该是读到这里结束
 

[00000010] - Read  Size: 132
02 30 32 30 30 32 45 43 45 30 30 30 30 30 30 30       02002ECE0000000
30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32       0202020202020202
30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32       0202020202020202
30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32       0202020202020202
30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32       0202020202020202
30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32       0202020202020202
30 46 34 30 39 46 46 30 42 46 34 30 31 45 37 30       0
F409FF0BF401E70
33 36 34 30 45 43 37 30 45 44 43 30 45 46 46 30       3640EC70EDC0EFF0
45 03 46 41                                                                    EFA            
 

上面的报文可以看出0x8002是2E2E不是B685

[00000051] - Write  Size: 13
02 45 30 31 38 30 34 30 31 43 03 45 39                E0180401CE9  

再读剩下的 28字节

[00000053] - Read  Size: 60
02 39 30 30 31 46 45 30 33 30 30 30 30 30 30 30       9001FE030000000
30 33 30 30 38 30 31 30 30 31 38 30 43 30 31 30       030080100180C010
30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30       0000000000000000
30 30 30 30 30 30 30 30 30 03 45 34                   000000000E4    

32        0x8040        0190        400         D锁存起始:D200
33        0x8042        03FE        1022         D锁存结束:D511
34        0x8044        0000        0        
35        0x8046        0000        0        
36        0x8048        0000        0         文件寄存器起始地址:1096/2096/3096…
37        0x804A        0000        0         文件寄存器容量块数:一块=500点=1000字节
38        0x804C        0000        0         注释起始地址:1096/2096/3096...
39        0x804E        0000        0         注释容量块数:一块=50点=1000字节
40        0x8050        0000        0        
41        0x8052        0000        0        
42        0x8054        0000        0        
43        0x8056        0000        0        
44        0x8058        0000        0        
45        0x805A        0000        0        

就是这些

[00000075] - Write  Size: 13
02 34 38 30 30 30 30 46 30 30 03 44 35                480000F00D5   

三菱plc协议解析_第1张图片

三菱plc协议解析_第2张图片

如何判断校验和

02 30 30 45 30 32 30 32 03 36 43  

30 30 45 30 32 30 32 03 相加等于16C,取低位为6C

获取高字节6,低字节C

6作为ASCII对应的16进制为36,C作为ASCII对应的16进制为43

最后判断和最后的两个字节是否一样即可

三菱plc协议解析_第3张图片

这里ADC0对应的是D5868

三菱plc协议解析_第4张图片 

 

你可能感兴趣的:(三菱plc)