利用VB6.0 实现PC与三菱PLC的通信
本文介绍的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位数据位、1位偶校验位及1位停止位组成,波特率为9600bps,字符为ASCII码。
(2)通信命令
FX系列PLC有4条通信命令,它们是读命令、写命令、强制通命令、强制断命令。表中X—输入继电器;Y—输出继电器;M—辅助继电器;S—状态元件;T—定时器;C—计数器;D—数据寄存器。
命令 | 命令码 | 目标设备 |
读命令 | 0 | X,Y,M,S,T,C,D |
写命令 | 1 | X,Y,M,S,T,C,D |
强制通命令 | 7 | X,Y,M,S,T,C, |
强制断命令 | 8 | X,Y,M,S,T,C, |
(3)通信控制字符
FX系列PLC采用面向字符的传输规程,用到5个通信控制字符,如下表所示。
ENQ | 05H | 请求 |
ACK | 06H | PLC正确响应 |
NAK | 15H | PLC错误响应 |
STX | 02H | 报文开始 |
ETX | 03H | 报文结束 |
(4)报文格式
PC机向PLC发送的报文格式如下:
其中STX为开始标志;ETX为结束标志;CMD为命令的ASCII码;SUMH,SUML为从CMD到ETX按字节求累加和,溢出不计。由于每字节十六进制数变为两字节ASCII代码,故校验和为SUMH与SUML。
STX | CMD | 数据段 | ETX | SUMH | SUML |
PLC向PC机发送的应答报文格式如下:
STX | 数据段 | ETX | SUMH | SUML |
二、PC通信程序的编写
1、通信口初始化
MSComm控件简介:
VB带有专门管理串行通讯的MSComm控件,只需设置几个主要参数就可以实现PLC与PC串行通讯。要完成通信必须设置MSComm的相关属性值,即通信口初始化:
(1)CommPort:设置或传回通信连接端口代号。
(2)Settings:设置初始化参数。以字符串的形式设置或传回连接速度、奇偶校验、数据位、停止位等4个参数。
(3)PortOpen:设置或传回通信连接端口的状态。
(4)Input:从输入寄存器传回并移除字符。
(5)Output:将一个字符串写入输出寄存器。
(6)InputLen:指定由串行端口读入的字符串长度。
(7)InBufferCount:传回在接收寄存器中的字符数。
VB6.0程序如下:
Private Sub Form_Load()
commli.CommPort = 1
commli.Settings = "9600,e,7,1"
commli.InputLen = 0
commli.InputMode = comInputModeText
commli.PortOpen = True
If commli.PortOpen = True Then
Label1.Caption = "打开串口"
End If
End Sub
2、通讯程序举例
首先,在窗体开始设计之前,添加MSComm控件和按钮、文本框、标签等。
(1)PC从PLC中读取数据
假设PC要从PLC中读入从D123开始的4个字节的数据(占用两个数据寄存器:D123,D124),其报文如下:
开始 | 命令 | 首地址 | 位数 | 结束 | 和校验 |
STX | CMD | GROUP ADDRESS | BYTES | ETX | SUM |
02h | 30h | 31h,30h,46h,36h | 30h,34h | 03h | 37h,34h |
根据三菱FX系列PLC编程口通信协议,地址算法:address=address*2+1000h
将地址123转换成十六进制为7Bh,因此首地址:
address=address*2+1000h=7Bh*2+1000h=10F6h
再转换成ASCII码为31h,30h,46h,36h
校验和SUM=30H+31H+30H+46H+36H+30H+34H+03H=174H,溢出部分不计,故SUMH为“7”,SUML为“4”,相应的ASCII码为“37H”和“34H”。
PLC的应答报文格式如下:
STX |
TAG:
标题搜索日历
我的存档数据统计
清空Cookie - 联系我们 - plc行业站 - 交流论坛 - 空间列表 - 站点存档 - 升级自己的空间
Powered by X-Space
4.0 UC
© 2001-2008 Comsenz Inc.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
