三菱FX系列PLC与电脑之间串口RS232通讯协议简易解析
时间:2023-02-27 18:00:00
本文介绍的 PC 与三菱 FX 系列 PLC 通信就是通过 PLC 的编程口与 PC 采用机器采用 SC-09 编程电缆作为计算机和计算机 PLC 通信连接 9 芯 D 在计算机串口上连接形状插头,另一端连接 PLC 的 RS-422 编程口。
编写 PC 汇编语言、各种高级语言、工控组态软件或直接使用的通信程序 PLC 制造商的通信软件。本文采用 VB6 . 0 软件必须基于连接 PLC 写通信协议的通信规程,先简单介绍一下 FX 系列 PLC 通信协议。
一、 FX 系列 PLC 的通讯协议
1 数据传输格式
FX 系列 PLC 采用异步格式,由 1 位起始位、 7 位数据位、 l 位偶校准及 l 波特率由位停止位组成 9600bps ,字符为 ASCi Ⅱ码。
2 .通信命令
FX 系列 PLC 有 4 通信命令,即阅读命令、写命令、强制通信命令、强制切断命令。 1 中, X 输入继电器; Y 输出继电器; M 辅助继电器; S 状态元件; T 为定时器; C 为计数器; D 数据寄存器。
3 通信控制字符
FZ 系列 PLC 使用面向字符的传输程序 5 个通信控制字符,如表 2 所示。
4 .报文格式
PC 机向 PLC 发送的报纸格式如表所示 3 所示。其中,, STX 开始标志; ETS 结束标志; CMD 为命令的 ASC Ⅱ码: SUMH 、 SUML 为从 CMD 到 ETX 按字节求累加,溢出不计。因为每个字节的16进制数变成了两个字节。 ASC Ⅱ代码,所以验证和为 SUMH 与 SUMI 。
PLC 向 PC 机器发送的应答报告格式如表所示 4 所示。
二、 PC 编写通信程序
1 通信口初始化
, MSComm 控件简介: VB 专门管理串行通信的串行通信 MSComm 控件。只需设置几个主要参数即可实现 PLC 与 PC 串行通信。为了完成通信,必须设置 MSComm 的相关属性值,即通信口初始化,其步骤如下:
(1)CoinmPort :设置或传回通信连接端口代码。
(2)Settings :设置初始参数。 - 设置或传回连接速度、奇偶校准、数据位、停止位等。 4 个参数。
(3)PortOpen :设置或传回通信连接端口的状态。
(4)Input :从输入寄存器传回并删除字符。
(5)Output :将字符串写入输出寄存器。
(6)InputLen :指定串行端口读入的字符串长度。
(7)InBufferCount:在接收器中传回字符数。
2 .通讯程序举例
首先,在窗体开始设计之前添加它 MSComm 控件及按钮、文本框、标签等。
(1)PC 从 PLC 中读取数据
假设 PC 要从 PLC 中读入从 D123 开始的 4 字节数据 ( 占用两个数据寄存器: D123 、 D124) ,其报文如表 5 所示。
根据三菱 FX 系列 PLC 编程口通信协议,地址算法
address=address×2 1000h
将地址 123 转化为十六进制 7Bh ,所以第一个地址是:
address=addressx2 1000h=7Bhx2 1000h=10F 6h .
再转换成 ASCII 码为 31h,30h,46h,36h
校验和 SUM=30H 31H 30H 46H 36H 30H 34H 03H=174H ,因此,溢出部分不计 SUMH 为 "7" , SUML 为 "4" ,相应的 ASC Ⅱ码为“ 37H ”和“ 34H ”。
PLC 如表所示 6 所示。
(2) 把数据写入 PLC
例如,向 PLC 的 D123 数据寄存器写入数据 1234ABCD 报文格式如表 7 所示
使用本文介绍 VB6 . O 实现 PC 与三菱 PLC 通信的基本方法是可行的,具有广泛的实用价值。对初学者很有帮助。
三菱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,将123 转换为16进制*2 得F6,10F6
再转换成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
例子:向D1234写入1233开始的两个存储器,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;
累加和超过两位取低两位