三菱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 模块的通信。
通讯格式:
命令
|
命令码
|
目标设备
|
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;
累加和超过两位取低两位
|
|