PC
机与
PLC
串行通信的实现
S½½½½½ C½½½½½½½½½½½½ ½½½½½½½ P½½½½½½½ C½½
½½½½½ ½½½ PLC
(北京航空航天大学)
李 耿 宗光华
Li,Geng Zhong,Guanghua
摘要:
本文对FX系列PLC的通信协议进行了详细的介绍,
并以VB为开发工具实现了P
C机与FX系列PLC的串行通信。
关键词: PLC
;串行通信;VB6.0
A½½½½½½½;T½½½ ½½½½½ ½½½½½½½½½½ ½½½ ½½½½½½½
½½½½½½ ½½½½½½½½ ½½ FX ½½½½½½ PLC ½½½ ½½½½½½
½½ ½½½½½½ ½½½½½½½½½½½½½ ½½½½½½½ PC ½½½ FX ½
½½½½½ PLC.
K½½½½½½½; PLC; S½½½½½ C½½½½½½½½½½½½
;VB6.0
1 前言
PLC以卓越的可靠性和方便的可编程性广泛应用于工业控制领域。
实现PC机与PLC通
信的目的是为了向用户提供诸如工艺流程图显示、动态数据画面显示、报表显示、窗口技术
等多种功½,为PLC提供良½的人机界面。本文详细介绍了FX系列PLC的通信协议,
并在W½½½½½½环境下,½用VB6.0开发通信程序,实现了PC机与FX系列PL
C之间的串行通信。
2 PC机与PLC实现通信的条件
带异步通信适配器的PC机与PLC只有满足如下条件,才½互联通信:
(1)
带有异步通信接口的PLC才½与带异步通信适配器的PC机互联。
还要求双方采用
的总线标准一致,否则要通过“总线标准变换单元”变换之后才½互联。
(2)双方的初始化,½波特率、数据½数、停止½数、奇偶校验½相同。
(3)
要对PLC的通信协议分析清楚,
严格地按照协议的规定及帧格式编写PC机的通信
程序。PLC中配有通信机制,一般不需用户编程。
3 PC机及与FX系列PLC的串行通讯
3.1 硬件连接
PC机与FX系列PLC不½直接连接,
要经过FX-232AW单元进行RS232C/
RS-422的变换,下图表示了它们之间的连接关系:
3.2 FX系列PLC的通信协议
在PC机中必须依据互联的PLC的通信协议来编写通信程序,
因此先介绍FX系列PLC
的通信协议。
(1)数据格式
FX系列PLC采用异步格式,由1½起始½、7½数据½、1½偶校验½及1½停止½组
成,波特率为9600½½½,字符为ASCII码。格式如下:
(2)通信½令
FX系列PLC有4个通信½令,它们是读½令、写½令、强制通½令、强制断½令,如下
表所示。表中X—输入继电器;Y—输出继电器;M—辅助继电器;S—状态元件;T—定
时器;C—计数器;D—数据寄存器。
(3)通信控制字符
FX系列PLC采用面向字符的传输规程,用到5个通信控制字符,如下表所示。
*½PLC对PC机发来的ENQ不理解时,用NAK回答。
(4)报文格式
PC机向PLC发送的报文格式如下:
其中STX为开始标志:02H;ETX为结束标志:03H;CMD为½令的ASCII
码;SUMH,SUML为从CMD到ETX按字节求累加和,溢出不计。由于每字节十六
进制数变为两字节ASCII代码,故校验和为SUMH与SUML。
数据段格式与含义如下:
*写½令的数据段有数据,读½令的数据段则无数据。
读/写字节数为01H½40H(1½64)个。
PLC向PC机发送的应答报文格式如下:
*对读½令的应答报文数据段为要读取的数据,一个数据占两个字节,分上½下½:
对写½令的应答报文无数据段,而用ACK及NAK½为应答内容。
(5)传输过程
PC机与FX系列PLC之间采用应答方式通信,传输出错则组织重发。其传输过程如下:
PLC根据PC机的½令,
在每个循环扫描结束处的END语句后组织自动应答,
无需用户
在PLC一方编写程序。
4 利用VB6.0编写通信程序
下面以一个简单的例子来说明编写通信程序的要点。
假设PC机要求从PLC中读入从D1
23开始的4个字节的数据(D123,D124),其传输应答过程及报文如下(图略可向
½者索取)
:
½令报文中10F6H为D123的地址,
04H表示要读入4个字节的数据。
校验和SU
M=30H+31H+30H+46H+36H+30H+34H+
03H=174H,溢出部分不计,故SUMH为'7'
,SUML为‘4’
,相应的ASC
II码为“37H”“34H”
,
。应答报文中4个字节的十六进制数,其相应的ASCII
码为8个字节,故应答报文长度为12个字节。
根据PC机与FX系列PLC的传输应答过程编制出如下所示的通信程序流程图略。
利用VB的MSC½½½控件,
按照流程图可以编写如下通信程序实现PC机与FX系列P
LC之间的串行通信以完成数据的读取。
MSC½½½控件可以采用½询或事件驱动的方法
从端口获取数据。在这个例子中½用了½询方法。
(1)通信口初始化
P½½½½½½ S½½ I½½½½½½½½½()
MSC½½½1.C½½½P½½½ = 1
MSC½½½1.S½½½½½½½ = ″9600,E,7,1″
MSC½½½1.I½B½½½½½S½½½ = 1024
MSC½½½1.O½½B½½½½½S½½½ = 1024
MSC½½½1.I½½½½L½½ = 0
MSC½½½1.I½½½½M½½½ = ½½½I½½½½M½½½T½½½
MSC½½½1.H½½½½½½½½½½ = ½½½N½½½
MSC½½½1.P½½½O½½½ = T½½½
E½½ S½½
(2)请求通信与确认
P½½½½½½ F½½½½½½½ M½½½H½½½S½½½½½½() A½ B½½½
½½½
D½½ I½P½½½½½½ A½ S½½½½½
MSC½½½1.O½½B½½½½½C½½½½ = 0
MSC½½½1.I½B½½½½½C½½½½ = 0
MSC½½½1.O½½½½½ = C½½(&H5)
D½
D½E½½½½½
L½½½ U½½½½ MSC½½½1.I½B½½½½½C½½½½ = 1
I½P½½½½½½ = MSC½½½1.I½½½½
I½ I½P½½½½½½ = C½½(&H6) T½½½
M½½½H½½½S½½½½½½ = T½½½
E½½½
M½½½H½½½S½½½½½½ = F½½½½E½½ I½
E½½ F½½½½½½½
(3)发送½令报文
P½½½½½½ S½½ S½½½F½½½½()
D½½ O½½S½½½½½ A½ S½½½½½
MSC½½½1.O½½B½½½½½C½½½½ = 0
MSC½½½1.I½B½½½½½C½½½½ = 0
O½½S½½½½ = C½½(&H2)+″0″+″10F604″+C½½(&H3)+″
74″
MSC½½½1.O½½½½½ = O½½S½½½½½
E½½ S½½
(4)读取应答报文
P½½½½½½ S½½ R½½½½½½F½½½½()
D½½ I½S½½½½½ A½ S½½½½½
D½
D½E½½½½½
L½½½ U½½½½ MSC½½½1.I½B½½½½½C½½½½ = 12
I½S½½½½½ = MSC½½½1.I½½½½
E½½ S½½
5 结束语
以本文所述机制编写的通信程序已成功用于以FX2N型PLC½为主控制器的高层建筑
玻璃幕墙清洗机器人系统中,
通过该通信程序,
实现了PC机对PLC的监视和控制。
同时,
本程序对PC机与其它型号PLC之间的通信也有一定的借鉴意义。
参考文献
[1]FX2N可编程控制器编程手册
[2]FX-232AW
RS422 TO RS232C INTERFACE UNIT
[3]V½½½½½
B½½½½ 6从入门到精通,电子工业出版社
[4]可编程控制器½络通信及应用,清华大学出版社
½者简介:李耿,男,1975年出生,现为北京航空航天大学机械工程学院硕士研究生,
主要进行高层建筑玻璃幕墙清洗机器人系统的研究与开发。
电话:
010-8231455
4,E-½½½½:½½½½@½½½½.½½½
(100083
北京航空航天大学机器人研究所)李 耿 宗光华
评论