FX2N协议
三菱 FX 系列 PLC 编程口通信协议总览
该协议实际上适用于 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",
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",
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",
PLC 应答 字节数: 0008, 数据: 30 32 30 32 30 03 42 36 // "02020",ETX,"B6"
PC 机发送 字节数: 0011, 数据: 02 30 38 30 32 45 32 45 03 38 39 // STX,"0","802E","2E",ETX,"89" ;
发出读 PLC 802EH 地址处连续 2EH 字节数据指令(这些内容为 PLC 内预置参数值)
PLC 应答 字节数: 0008, 数据: 02 32 30 32 30 46 34 30 // STX,"2020F40", ;PC 机读
入 PLC 802EH 地址处连续 2EH 字节数据
PLC 应答 字节数: 0008, 数据: 39 46 46 30 42 46 34 30 // "9FF0BF40",
PLC 应答 字节数: 0008, 数据: 31 45 37 30 33 36 34 30 // "1E703640",
PLC 应答 字节数: 0008, 数据: 45 43 37 30 45 44 43 30 // "EC70EDC0",
PLC 应答 字节数: 0008, 数据: 45 46 46 30 45 39 30 30 // "EFF0E900",
PLC 应答 字节数: 0008, 数据: 31 46 45 30 33 30 30 30 // "1FE03000",
PLC 应答 字节数: 0008, 数据: 30 30 30 30 30 30 30 30 // "00000000",
PLC 应答 字节数: 0008, 数据: 30 30 30 30 30 30 30 30 // "00000000",
PLC 应答 字节数: 0008, 数据: 30 30 30 30 30 30 30 30 // "00000000",
PLC 应答 字节数: 0008, 数据: 30 30 30 30 30 30 30 30 // "00000000",
PLC 应答 字节数: 0008, 数据: 30 30 30 30 30 30 30 30 // "00000000",
PLC 应答 字节数: 0008, 数据: 30 30 30 30 30 03 45 35 // "00000",ETX,"E5"
PC 机发送 字节数: 0011, 数据: 02 30 30 45 30 36 30 32 03 37 30 // STX,"0","0E06","02",ETX,"70" ;
查询 PLC 0E06H 地址数据字
PLC 应答 字节数: 0008, 数据: 02 31 30 30 30 03 43 34 // STX,"1000",ETX,"C4" ;PLC
返回"1000",代表??
PC 机发送 字节数: 0011, 数据: 02 30 38 30 35 43 33 45 03 38 42 // STX,
"0","805C","3E",ETX,"8B" ;发出读 PLC 805CH 地址处连续 3EH 字节数据指令
PLC 应答 字节数: 0128, 数据: 02 30 36 32 34 30 37 43 35 30 46 30 30 30 35 43 // STX,
"062407C50F0005C", ;PC 机读入 PLC 805CH 地址处连续 3EH 字节数据
38 30 46 30 30 46 46 46 46 46 46 46 46 46 46 46 // "80F00FFFFFFFFFFF",
46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 // "FFFFFFFFFFFFFFFF",
46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 // "FFFFFFFFFFFFFFFF",
46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 // "FFFFFFFFFFFFFFFF",
46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 // "FFFFFFFFFFFFFFFF",
46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 46 // "FFFFFFFFFFFFFFFF",
46 46 46 46 46 46 46 46 46 46 46 46 46 03 41 41 // "FFFFFFFFFFFFF",ETX,"AA"
全部评论(0)