本帖最后由 oldbeginner 于 2013-11-9 16:39 编辑
在学习笔记03中浏览了一下协议,因为协议看起来很枯燥,直接进入到代码中去,边理解代码边学习协议,选择了Read code(修改为:读程序模块)作为突破口,虽然费了很多精力,但是还是值得的,现在可以再回到协议中去。再次引用一下,重复对初学者是必要的。
http://www.amobbs.com/thread-3394474-1-1.html
-------------------------------------------------------------------------------------------
RS232C接口,通讯波特率 9600,7,e,1 。
PC机(设置为FX1N)向停止运行的FX1N正常下载3步程序。
-------------------------------------------------------------------------------------------
PC机发送 字节数: 0001, 数据: ENQ // PC机发出通信请求
PLC应答 字节数: 0001, 数据: ACK // PLC应答(已收到)
PC机发送 字节数: 0011, 数据: STX,"0","0E02","02",ETX,"6C" // 查询PLC 0E02H地址数据字(PLC型号)
PLC应答 字节数: 0008, 数据: STX,"62","66",ETX,"D7" // PLC返回"6266",代表PLC型号FX1N
PC机发送 字节数: 0001, 数据: ENQ // PC机发出通信请求
PLC应答 字节数: 0001, 数据: ACK // PLC应答(已收到)
PC机发送 字节数: 0013, 数据: STX,"E00","01C0","01",ETX,"DD" // 查询PLC 01C0H地址数据字节(FX1N运行状态)
PLC应答 字节数: 0006, 数据: STX,"0A",ETX,"74" // PLC返回"0A",代表PLC暂停
// 如PLC返回"09",代表PLC运行
PC机发送 字节数: 0001, 数据: ENQ // PC机发出通信请求
PLC应答 字节数: 0001, 数据: ACK // PLC应答(已收到)
PC机发送 字节数: 0011, 数据: STX,"0","0E02","02",ETX,"6C" // 再次查询PLC 0E02H地址数据字(PLC型号)
PLC应答 字节数: 0008, 数据: STX,"62","66",ETX,"D7" // PLC返回"6266",代表PLC型号FX1N
PC机发送 字节数: 0001, 数据: ENQ // PC机发出通信请求
PLC应答 字节数: 0001, 数据: ACK // PLC应答(已收到)
PC机发送 字节数: 0013, 数据: STX,RTC,"8000","2E",ETX,"E8" // 发出读PLC 8000H地址处连续2EH字节数据指令(这些内容为PLC内预置参数值)
PLC应答 字节数: 0008, 数据: STX,'0','8','0','0','D','7','C' // PC机读入PLC 8000H地址处连续2EH字节数据
PLC应答 字节数: 0008, 数据: '9','0','0','0','0','0','0','0'
PLC应答 字节数: 0008, 数据: '0','2','0','2','0','2','0','2'
PLC应答 字节数: 0008, 数据: '0','2','0','2','0','2','0','2'
PLC应答 字节数: 0008, 数据: '0','2','0','2','0','2','0','2'
PLC应答 字节数: 0008, 数据: '0','2','0','2','0','2','0','2'
PLC应答 字节数: 0008, 数据: '0','2','0','2','0','2','0','2'
PLC应答 字节数: 0008, 数据: '0','2','0','2','0','2','0','2'
PLC应答 字节数: 0008, 数据: '0','2','0','2','0','2','0','2'
PLC应答 字节数: 0008, 数据: '0','2','0','2','0','2','0','2'
PLC应答 字节数: 0008, 数据: '0','2','0','2','0','2','0','2'
PLC应答 字节数: 0008, 数据: '0','2','0','2','0',ETX,"CE"
PC机发送 字节数: 0013, 数据: STX,"E01","802E","2E",ETX,"FF" // 发出读PLC 802EH地址处连续2EH字节数据指令(这些内容为PLC内预置参数值)
PLC应答 字节数: 0008, 数据: STX,'2','0','2','0','F','4','0' // PC机读入PLC 802EH地址处连续2EH字节数据
PLC应答 字节数: 0008, 数据: '9','F','F','0','B','F','4','0'
PLC应答 字节数: 0008, 数据: '1','E','7','0','3','6','4','0'
PLC应答 字节数: 0008, 数据: 'E','C','7','0','E','D','C','0'
PLC应答 字节数: 0008, 数据: 'E','F','F','0','E','9','0','0'
PLC应答 字节数: 0008, 数据: '1','F','E','0','3','0','0','0'
PLC应答 字节数: 0008, 数据: '0','0','0','0','0','0','0','0'
PLC应答 字节数: 0008, 数据: '0','0','0','0','0','0','0','0'
PLC应答 字节数: 0008, 数据: '0','0','0','0','0','0','0','0'
PLC应答 字节数: 0008, 数据: '0','0','0','0','0','0','0','0'
PLC应答 字节数: 0008, 数据: '0','0','0','0','0','0','0','0'
PLC应答 字节数: 0008, 数据: '0','0','0','0','0',ETX,"E5"
PC机发送 字节数: 0001, 数据: ENQ // PC机发出通信请求
PLC应答 字节数: 0001, 数据: ACK // PLC应答(已收到)
PC机发送 字节数: 0013, 数据: STX,"E00","0E06","02",ETX,"E5" // 发出读PLC 0E06H地址处一字数据指令(这些内容为PLC内预置参数值)
PLC应答 字节数: 0008, 数据: STX,"1000",ETX,"C4" // PC机读入PLC 0E06H地址处一字数据
-------------------------------------------------------------------------------------------
// 读入PLC中已有程序
-------------------------------------------------------------------------------------------
PC机发送 字节数: 0001, 数据: ENQ // PC机发出通信请求
PLC应答 字节数: 0001, 数据: ACK // PLC应答(已收到)
PC机发送 字节数: 0013, 数据: STX,"E01","805C","2E",ETX,"00" // 发出读PLC 805CH地址处连续2EH字节数据指令
PLC应答 字节数: 0008, 数据: STX,'0','2','2','4','0','3','C' // PC机读入PLC 805CH地址处连续2EH字节数据
PLC应答 字节数: 0008, 数据: '5','0','F','0','0','F','F','F'
PLC应答 字节数: 0008, 数据: 'F','F','F','F','F','F','F','F'
PLC应答 字节数: 0008, 数据: 'F','F','F','F','F','F','F','F'
PLC应答 字节数: 0008, 数据: 'F','F','F','F','F','F','F','F'
PLC应答 字节数: 0008, 数据: 'F','F','F','F','F','F','F','F'
PLC应答 字节数: 0008, 数据: 'F','F','F','F','F','F','F','F'
PLC应答 字节数: 0008, 数据: 'F','F','F','F','F','F','F','F'
PLC应答 字节数: 0008, 数据: 'F','F','F','F','F','F','F','F'
PLC应答 字节数: 0008, 数据: 'F','F','F','F','F','F','F','F'
PLC应答 字节数: 0008, 数据: 'F','F','F','F','F','F','F','F'
PLC应答 字节数: 0008, 数据: 'F','F','F','F','F',ETX,"5C"
-------------------------------------------------------------------------------------------
// 读入结束
-------------------------------------------------------------------------------------------
PC机发送 字节数: 0001, 数据: ENQ // PC机发出通信请求
PLC应答 字节数: 0001, 数据: ACK // PLC应答(已收到)
PC机发送 字节数: 0010, 数据: STX,'E','7','7','6','0','E',ETX,"61"
PLC应答 字节数: 0001, 数据: ACK
-------------------------------------------------------------------------------------------
// 下载程序
-------------------------------------------------------------------------------------------
PC机发送 字节数: 0001, 数据: ENQ // PC机发出通信请求
PLC应答 字节数: 0001, 数据: ACK // PLC应答(已收到)
PC机发送 字节数: 0025, 数据: STX,"E11","805C","06",'0','2','2','4','0','3','C','5','0','F','0','0',ETX,"69"
// PC机发出写PLC 805CH地址处连续06H字节(3步程序)数据指令
PLC应答 字节数: 0001, 数据: ACK // PLC应答(已收到)
-------------------------------------------------------------------------------------------
// 下载结束
-------------------------------------------------------------------------------------------
PC机发送 字节数: 0001, 数据: ENQ // PC机发出通信请求
PLC应答 字节数: 0001, 数据: ACK // PLC应答(已收到)
PC机发送 字节数: 0010, 数据: STX,'E','8','7','6','0','E',ETX,"62"
PLC应答 字节数: 0001, 数据: ACK
PC机发送 字节数: 0001, 数据: ENQ
PLC应答 字节数: 0001, 数据: ACK
PC机发送 字节数: 00ENQ, 数据: STX,"B",ETX,"45"
PLC应答 字节数: 0001, 数据: ACK
-------------------------------------------------------------------------------------------
// 检验程序
-------------------------------------------------------------------------------------------
PC机发送 字节数: 0001, 数据: ENQ
PLC应答 字节数: 0001, 数据: ACK
PC机发送 字节数: 0013, 数据: STX,"E01","805C","06",ETX,"EF" // 发出读PLC 805CH地址处连续06H字节数据指令
PLC应答 字节数: 0008, 数据: STX,'0','2','2','4','0','3','C','5','0','F','0','0',ETX,"7C"
// PC机读入PLC 805CH地址处连续06字节数据
-------------------------------------------------------------------------------------------
// 结束下载
-------------------------------------------------------------------------------------------
|