该协议实际上适用于PLC编程端口以及FX-232AW模块的通信
通讯格式
命令(CMD) 命令码 目标设备
DEVICE READ CMD "0" X,Y,M,S,T,C,D
DEVICE WRITE CMD "1" X,Y,M,S,T,C,D
FORCE ON CMD "7" X,Y,M,S,T,C
FORCE OFF CMD "8" X,Y,M,S,T,C
扩展命令码
读配置 "E00"
写配置 "E10"
读程序 "E01"
写程序 "E11"
传输格式: RS232C
波特率: 9600bps
奇偶: even
校验: 累加方式和校验
字符: ASCII
命令 16进制代码 命令解释
ENQ 05H 通信请求
ACK 06H PLC正确响应
NAK 15H PLC错误响应
STX 02H 报文开始
ETX 03H 报文结束
帧格式
STX CMD DATA ...... DATA ETX SUM(upper) SUM(lower)
例子
STX ,CMD , ADDRESS, BYTES, ETX, SUM
02H, 30H, 31H,30H,46H,36H, 30H,34H, 03H, 37H,34H
指令解释如下:
STX, "0", "10F6", "04", ETX, "74"
报文开始, 读命令, 地址10F6H处, 04H字节数据, 报文结束, 累加方式和校验
其中 SUM=CMD+......+ETX=30h+31h+30h+46h+36h+30h+34h+03h=74h;
累加和超过两位取低两位,转换成ascii码,分 SUM(upper),SUM(lower)二次传送。
==========================================================================================
三菱FX 系列PLC 编程口通信协议例一
RS232C接口,通讯波特率 9600,7,e,1 。
PC机(设置为FX1S)向停止运行的FX1S正常下载11步程序。
三菱FX1S PLC下载通信协议说明
作者:许意义
日期:2009.6.11
------------------------------------------------------------------------------------------
PC机发送 字节数: 0001, 数据: 05 // ENQ ;如无应答,延迟1.28X10mS再次发送ENQ,连续3次发送无应答,则通讯出错,和PLC连接不上。
PC机发送 字节数: 0001, 数据: 05 // ENQ
PLC应答 字节数: 0001, 数据: 06 // ACK ;PLC应答(已收到)
PC机发送 字节数: 0011, 数据: 02 30 30 31 45 30 30 31 03 36 41 // STX,"0","01E0","01",ETX,"6A" ;查询PLC 01E0H地址数据字节(FX1S运行状态)
PLC应答 字节数: 0006, 数据: 02 30 41 03 37 34 // STX,"0A",ETX,"74" ;PLC返回"0A",代表PLC暂停
;如PLC返回"09",代表PLC运行
PC机发送 字节数: 0011, 数据: 02 30 30 45 30 32 30 32 03 36 43 // STX,"0","0E02","02",ETX,"6C" ;查询PLC 0E02H地址数据字(PLC型号)
PLC应答 字节数: 0008, 数据: 02 43 32 35 36 03 45 33 // STX,"C256",ETX,"E3" ;PLC返回"6266",代表PLC型号FX1N
;如PLC返回"C256",代表PLC型号FX1S
PC机发送 字节数: 0011, 数据: 02 30 38 30 30 30 32 45 03 37 32 // STX,"0","8000","2E",ETX,"72" ;发出读PLC 8000H地址处连续2EH字节数据指令(这些内容为PLC内预置参数值)
PLC应答 字节数: 0008, 数据: 02 30 32 30 30 36 35 41 // STX,"020065A", ;PC机读入PLC 8000H地址处连续2EH字节数据
PLC应答 字节数: 0008, 数据: 39 30 30 30 30 30 30 30 // "90000000",
PLC应答 字节数: 0008, 数据: 30 32 30 32 30 32 30 32 // "02020202",
PLC应答 字节数: 0008, 数据: 30 32 30 32 30 32 30 32 // "02020202",
PLC应答 字节数: 0008, 数据: 30 32 30 32 30 32 30 32 // "02020202",
通讯格式
命令(CMD) 命令码 目标设备
DEVICE READ CMD "0" X,Y,M,S,T,C,D
DEVICE WRITE CMD "1" X,Y,M,S,T,C,D
FORCE ON CMD "7" X,Y,M,S,T,C
FORCE OFF CMD "8" X,Y,M,S,T,C
扩展命令码
读配置 "E00"
写配置 "E10"
读程序 "E01"
写程序 "E11"
传输格式: RS232C
波特率: 9600bps
奇偶: even
校验: 累加方式和校验
字符: ASCII
命令 16进制代码 命令解释
ENQ 05H 通信请求
ACK 06H PLC正确响应
NAK 15H PLC错误响应
STX 02H 报文开始
ETX 03H 报文结束
帧格式
STX CMD DATA ...... DATA ETX SUM(upper) SUM(lower)
例子
STX ,CMD , ADDRESS, BYTES, ETX, SUM
02H, 30H, 31H,30H,46H,36H, 30H,34H, 03H, 37H,34H
指令解释如下:
STX, "0", "10F6", "04", ETX, "74"
报文开始, 读命令, 地址10F6H处, 04H字节数据, 报文结束, 累加方式和校验
其中 SUM=CMD+......+ETX=30h+31h+30h+46h+36h+30h+34h+03h=74h;
累加和超过两位取低两位,转换成ascii码,分 SUM(upper),SUM(lower)二次传送。
==========================================================================================
三菱FX 系列PLC 编程口通信协议例一
RS232C接口,通讯波特率 9600,7,e,1 。
PC机(设置为FX1S)向停止运行的FX1S正常下载11步程序。
三菱FX1S PLC下载通信协议说明
作者:许意义
日期:2009.6.11
------------------------------------------------------------------------------------------
PC机发送 字节数: 0001, 数据: 05 // ENQ ;如无应答,延迟1.28X10mS再次发送ENQ,连续3次发送无应答,则通讯出错,和PLC连接不上。
PC机发送 字节数: 0001, 数据: 05 // ENQ
PLC应答 字节数: 0001, 数据: 06 // ACK ;PLC应答(已收到)
PC机发送 字节数: 0011, 数据: 02 30 30 31 45 30 30 31 03 36 41 // STX,"0","01E0","01",ETX,"6A" ;查询PLC 01E0H地址数据字节(FX1S运行状态)
PLC应答 字节数: 0006, 数据: 02 30 41 03 37 34 // STX,"0A",ETX,"74" ;PLC返回"0A",代表PLC暂停
;如PLC返回"09",代表PLC运行
PC机发送 字节数: 0011, 数据: 02 30 30 45 30 32 30 32 03 36 43 // STX,"0","0E02","02",ETX,"6C" ;查询PLC 0E02H地址数据字(PLC型号)
PLC应答 字节数: 0008, 数据: 02 43 32 35 36 03 45 33 // STX,"C256",ETX,"E3" ;PLC返回"6266",代表PLC型号FX1N
;如PLC返回"C256",代表PLC型号FX1S
PC机发送 字节数: 0011, 数据: 02 30 38 30 30 30 32 45 03 37 32 // STX,"0","8000","2E",ETX,"72" ;发出读PLC 8000H地址处连续2EH字节数据指令(这些内容为PLC内预置参数值)
PLC应答 字节数: 0008, 数据: 02 30 32 30 30 36 35 41 // STX,"020065A", ;PC机读入PLC 8000H地址处连续2EH字节数据
PLC应答 字节数: 0008, 数据: 39 30 30 30 30 30 30 30 // "90000000",
PLC应答 字节数: 0008, 数据: 30 32 30 32 30 32 30 32 // "02020202",
PLC应答 字节数: 0008, 数据: 30 32 30 32 30 32 30 32 // "02020202",
PLC应答 字节数: 0008, 数据: 30 32 30 32 30 32 30 32 // "02020202",