通讯波特率 9600,7,e,1 RS232
电脑端SEND:02 30 30 45 30 32 30 32 03 36 43
发送完了以后
PLC端 ACK: 02 36 32 36 36 03 44 37
SEND:02 45 30 30 30 31 43 30 30 31 03 44 44
ACK: 02 30 41 03 37 34
SEND:02 30 30 45 30 32 30 32 03 36 43
ACK: 02 36 32 36 36 03 44 37
SEND:02 45 30 31 38 30 30 30 32 45 03 45 38
ACK: 02 30 38 30 30 43 35 44 43 30 30 30 30 30 30 30 30 32 30 32 30 32 30 32
30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32 30
32 30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 32
30 32 30 32 30 32 30 32 30 32 30 32 30 32 30 03 44 36
SEND:02 45 30 31 38 30 32 45 32 45 03 46 46
ACK: 02 32 30 32 30 46 34 30 39 46 46 30 42 46 34 30 31 45 37 30 33 36 34 30
45 43 37 30 45 44 43 30 45 46 46 30 45 39 30 30 31 46 45 30 33 30 30 30 30 30 30
30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 03 45 35
SEND:02 45 30 30 30 45 30 36 30 32 03 45 35
ACK: 02 31 30 30 30 03 43 34
这些对于FX1N PLC都是固定的开头通讯块。
写程序到PLC
//每步指令4个字节,下载的时候按照每32步为一个发送单元进行。
SEND: 02 45 31 31 38 30 35 43 34 30 + 32步指令+03+两个检验码(第一单元)
(单元一) (步数*2 32步 (34-30)*16+30-30=64=32*2 )
ACK:06
SEND: 02 45 31 31 38 30 39 43 34 30 + 32步指令+03+两个检验码(第二单元)
ACK:06
。
。
。
同上
例子:
02 45 31 31 38 30 35 43 32 36 (19步)//每个发送单元可以少于32步
30 30 32 38 (LD M0 第一步 每步四个字节)
41 46 30 30
30 31 38 30
30 30 38 30
30 30 38 30
30 30 38 30
30 34 38 30
30 30 38 30
30 30 38 30
30 30 38 30
32 38 38 34
30 38 38 38
30 30 38 30
30 30 38 30
30 31 38 30
30 30 38 30
30 30 38 30
30 30 38 30
46 46 46 46 (第19步 NOP)
03 35 46
接下来
SEND: 02 45 38 37 36 30 45 03 36 32 (写结束标志 遇到这个协议,PLC才保存指令到存储
器)
ACK:06
SEND:02 42 03 34 35 (检验开始,读出刚写入的PLC指令进行校验)
ACK:06
接下来读取全部刚才所下载程序
SEND: 02 45 30 31 38 30 35 43 34 30 03 45 44
(单元一) (步数*2)
ACK: 02 +N个字节 +03+ 两个检验码
SEND: 02 45 30 31 38 30 39 43 34 30 03 45 44
(单元二) (步数*2)
ACK: 02 N个字节 03 两个检验码
。
。
。
同上
读取完则校验结束,下载过程也全部结束