三菱FX系列PLC编程口通信协议举例
1、DEVICE READ(读出软设备状态值)
计算机向PLC发送:
命令
首地址
位数
和校验
STX
CMD
GROUP ADDRESS
BYTES
ETX
SUM
例子:从D123开始读取4个字节数据
02h
30h
31h,30h,46h,36h
30h,34h
03h
37h,34h
地址算法:address=address*2+1000h
再转换成ASCII
31h,30h,46h,36h
PLC返回
STX
1ST DATA
2ND DATA
.....
LAST DATA
ETX
SUM
注:最多可以读取64个字节的数据
例子:从指定的存储器单元读到3584这个数据
02h
33h
35h
38h
34h
03h
44h,36h
 
2、DEVICE WRITE(向PLC软设备写入值)
什么是编程举个例子
命令
首地址
位数
数据
和校验
STX
CMD
GROUP ADDRESS
BYTES
1ST DATA
2ND DATA
......
LAST DATA
ETX
SUM
例子:向D123开始的两个存储器中写入1234,ABCD
02h
31h
31h,30h,46h,36h
30h,34h
33h,34h,31h,32h,43h,44h,41h,42h
03h
34h,39h
PLC返回
ACK (06H) 接受正确
NAK (15H) 接受错误
 
3、位设备强制置位/复位
FORCE ON置位
命令
地址
和校验
STX
CMD
ADDRESS
ETX
SUM
02h
37h
address
03h
sum
FORCE OFF复位
命令
地址
和校验
STX
CMD
ADDRESS
ETX
SUM
02h
38h
address
03h
sum
 
PLC返回
ACK(06H) 接受正确
NAK(15H) 接受错误
设备强制中的地址公式:Address=Address/8+100h
 
说明:
1.帧中的BYTES表示需要读取或者写入的字节数。
2.地址算法上有说明。
3.累加和是从STX后面一个字节开始累加到ETX的和。
三菱FX系列PLC编程口通信协议总览
 
该协议实际上适用于PLC编程端口以及 FX-232AW 模块的通信。感谢网友visualboy提供。
通讯格式:
命令
命令码
目标设备
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
传输格式: 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
SUM=CMD+......+ETX;
30h+31h+30h+46h+36h+30h+34h+03h=74h;
累加和超过两位取低两位