PC机与PLC的串行通信研究
2009-07-16艾国会
艾国会
[摘要]介绍利用微软公司推出的Visual Basic 6.0中MSCOMM.OCX控件进行串行通信的方法。以VB为开发工具实现了PC机与FX系列PLC的串行通信。介绍VB进行串口通信的基本方式和三菱可编程控制器之间的通信的程序设计,主要介绍利用MSCOMM.OCX进行串行通信的设计方法。
[关键词]PC机 PLC 串行通信 Visual Basic 6.0
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0420010-02
一、引言
在工业生产中,人们常常面临着数据采集与管理。可编程控制器,以其可靠性高、抗干扰能力强、编程简单、使用方便、控制程序可变、体积小、功能强等特点,广泛应用于数据采集与控制。生产过程中,要监视PLC内部的数据与运行状况,选用市场上的人机界面或组态软件,虽然功能丰富,但大都价格昂贵,本文介绍了利用微软公司推出的Visual Basic 6.0中MSCOMM.OCX控件进行串行通信的方法。操作简便,价格低廉。
二、PC与PLC实现通信的方法
为了实现PC与PLC的通信,用户应当做如下工作:
1.判别PC上配置的通信口是否与要连入的PLC匹配,若不匹配,则增加通信模板。
2.要清楚PLC的通信协议,按照协议的规定及帧格式编写PC的通信程序。PLC中配有通信机制,一般不需用户编程。若PLC厂家有PLC与PC的专用通信软件出售,则此项任务较容易完成。
3.选择适当的操作系统提供的软件平台,利用与PLC交换的数据编制用户要求的画面。
4.若要远程传送,可通过Modem接入电话网。若要PC具有编程功能,应配置编程软件。
三、PC机与PLC实现通信的条件
带异步通信适配器的PC机与PLC只有满足如下条件,才能互联通信:
1.带有异步通信接口的PLC才能与带异步通信适配器的PC机互联。还要求双方采用的总线标准一致,否则要通过“总线标准变换单元”变换之后才能互联。
2.双方的初始化,使波特率、数据位数、停止位数、奇偶校验都相同。
3.要对PLC的通信协议分析清楚,严格地按照协议的规定及帧格式编写PC机的通信程序。PLC中配有通信机制,一般不需用户编程。
四、PC机与FX系列PLC的串行通信的实现
串行通信是计算机与其他机器之间进行通信的一种常用方法。通过SC09编程电缆或FX232AW模块,可将微型计算机的串行通信口RS232和PLC的编程口连接起来,这样微型计算机就可对PLC的RAM区数据进行读、写操作。由PLC本身具有的特性,可对PLC进行以下4种类型的操作:
(1)位元件或字元件状态读操作(CMD0);
(2)位元件或字元件状态写操作(CMD1);
(3)位元件强制ON操作(CMD7);
(4)位元件强制OFF操作(CMD8)。
另外,在进行上述4类操作前,首先要对端口进行初始化操作,即设定通信协议(包括设置通信波特率、数据位数、数据停止位及奇偶校验)。
(一)硬件连接
一台PC机可与一台或最多16台FX系列PLC通信,PC与PLC之间不能直接连接。如图a、b为点对点结构的连接,图a中是通过FX-232AW单元进行RS-232C/RS-422转换与PLC编程口连接,图b中通过在PLC内部安装的通信功能扩展板FX-232-BD与PC连接;如图c所示为多点结构的连接,FX-485-BD为安装在PLC内部的通信功能扩展板,FX-485PC-IF为RS-232C和RS-485的转换接口。除此之外当然还可以通过其它通信模块进行连接,不再一一赘述。下面以PC与PLC之间点对点通信为例。
PC机与FX系列PLC不能直接连接,要经过FX-232AW单元进行RS232C/RS-422的变换,下图表示了它们之间的连接关系:
(二)FX系列PLC的通信
在PC机中必须依据互联的PLC的通信协议来编写通信程序,FX系列PLC的通信协议。
1.数据格式。FX系列PLC采用异步格式,由1位起始位、7位数据位、1位偶校验位及1位停止位组成,波特率为9600bps,字符为ASCII码。格式如下:
2.通信命令。FX系列PLC有4个通信命令,它们是读命令、写命令、强制通命令、强制断命令,如下表所示。表中X输入继电器;Y输出继电器;M辅助继电器;S状态元件;T定时器;C计数器;D数据寄存器。
3.通信控制字符。FX系列PLC采用面向字符的传输规程,用到5个通信控制字符,如下表所示。
注:当PLC对计算机发来的ENQ不理解时,用NAK回答。
4.报文格式。计算机向PLC发送的报文格式如下:
其中,STX为开始标志:02H;ETX为结束标志:03H;CMD为命令的ASCⅡ码;SUMH、SUML为按字节求累加和,溢出不计。由于每字节十六进制数变为两字节的ASCⅡ码,故校验和为SUMH与SUML。
数据段格式与含义如下:
注:写命令的数据段有数据,读命令数据段则无数据。
PLC向PC发的应答报文格式如下:
注:对读命令的应答报文数据段为要读取的数据,一个数据占两字节,分上位下位:
数据段:对写命令的应答报文无数据段,而用ACK及NAK作应答内容。
5.传输规程
PC与FX系列PLC间采用应答方式通信,传输出错,则组织重发。
PLC根据PC的命令,在每个循环扫描结束处的END语句后组织自动应答,无需用户在PLC一方编写程序。
(三)PLC的设置
计算机与PLC通讯的目的是实现计算机对PLC运行状态、数据区的监控、PLC的管理并可用计算机编程。一般来说,在通讯过程中PLC是被动的,每一次通讯都由计算机发起与终止,但也可以由PLC发起。通讯前需用外部输入设备在系统数据寄存器D8120中进行通讯条件设定。
五、结束语
生产自控系统的设计要解决好三部分的问题:PC上人机操作界面的编制,PC与PLC的通信程序编写,PLC生产控制程序的编写。对于串行通信的单机自控系统,因为具有操作界面和生产工艺流程简单的特点,所以利用Visual Basic设计操作界面和利用PLC编程语言设计生产控制程序都比较方便,但对如何编写通信程序就比较陌生,也没有许多相关资料可学习。本文介绍的方法简单、实用,供各位参考。利用通信控件MSComm的OnComm事件和CommEvent属性还可以设计出功能更完善的通信程序。
参考文献:
[1]三菱公司,FX2N可编程控制器编程手册.
[2]邱公伟,可编程控制器网络通信及应用,清华大学出版社.
[3]三菱公司,FX系列通讯手册.
[4]Visual Basic6.0从入门到精通,电子工业出版社.
[5]夏幸明,可编程控制器及应用,北京理工大学出版社.