一种高性价比的PLC与上位机的通信实现
2009-03-17
作者:郑 萍 潘世永
摘 要: 对FX2系列的PLC与上位机的通信实现,提出了一种价格低、体积小的接口方案,讨论了其硬件和软件的设计思想,该接口装置在控制室和实验室环境下运行可靠。
关键词: 上位机 通信 接口 可编程控制器
PLC作为一种高性能的控制装置,在分布式系统中得到了越来越广泛的应用。在这种控制方式中,上位监控机系统是其中重要的组成部分。PLC可以多种方式如直接采用现有的组态监控软件与上位监控机通信,但针对小规模的控制系统,找到一种高性能价格比的通信方法,具有积极的实际意义。本文就日本三菱公司生产的FX2可编程控制器与PC机通信方式的实现,从软、硬件两个方面来说明这个问题。
1 通信装置的硬件描述
PLC与PC机之间实现通信,可使二者互补功能上的不足,PLC用于控制方面既方便又可靠,而PC机在图形显示、数据处理、打印报表以及中文显示等方面有很强的功能。因此,各PLC制造厂家纷纷开发了适用于本公司的各种型号PLC与PC机通信的接口模块。三菱公司开发的FX-232AW接口模块用于FX2系列PLC与计算机通信。还有与以太网连接的接口模块AJ71E71、与MAP网连接的接口模块AJ71M51-S1、与FAIS MAP网连接的接口模块AJ71M51CM1等。不同的通信方式,有着不同的成本价格和不同的适用范围。在此介绍一种通过PC机的RS-232口与PLC进行通信的实现方法。
FX2系列PLC的编程接口采用RS-422标准,而计算机的串行口采用RS-232标准。因此,作为实现PLC计算机通信的接口电路,必须将RS-422标准转换成RS-232标准。
RS-232与RS-422标准在信号的传送、逻辑电平均不相同。
RS-232采用单端接收器和单端发送器,只用一根信号线来传送信息,并且根据该信号线上电平相对于公共的信号地电平的大小来决定逻辑的“1”(-3~-15V)和“0”(+3~+15V);
RS-422标准是一种以平衡方式传输的标准,即双端发送和双端接收,根据两条传输线之间的电位差值来决定逻辑状态。RS-422电路由发送器、平衡连接电缆、电缆终端负载和接收器组成。它通过平衡发送器和差动接收器将逻辑电平和电位差之间进行转换(+2V表示“0”,-2V表示“1”)。
选用MAXIM公司的MAX202实现RS-232与TTL之间的电平转换。MAX202内部有电压倍增电路和转换电路,仅需+5V电源就可工作,使用十分方便;选用MAX490实现RS-485与TTL之间的转换。每片MAX490有一对发送器/接收器,由于通信采用全双工方式,故需两片MAX490,另外只需外接4只电容即可。
PLC的RS-422接口配接DB-25型连接器,而PC机一般用DB-9型连接器。硬件电路图如图1所示。
将RS-232的RS、CS短接,这样对计算机发送数据来说,PLC总是处于就绪状态。也就是说,计算机在任何时候都可以将数据送到PLC内。又由于DR、ER交叉连接,因此,对计算机接收数据来说,必须等待至PLC处于准备就绪状态。
2 通信装置的软件描述
2.1 FX2系列PLC与计算机之间的通信协议
FX2系列PLC与计算机之间的通信采用RS-232标准,其传输速率固定为9600bps,奇偶校验位采用偶校验。数据格式如图2所示。数据以帧为单位发送和接收。一个多字符帧由图3所示的五部分组成,其中和校验值是将命令码ETX之间的所有字符的ASCII码(十六进制数)相加,取得所得和的最低二位数。STX和ETX分别表示该字符帧的起始标志和结束标志。
FX2系列与计算机之间的通信是以主机发出的初始命令,PLC对其作出响应的方式进行通信的。共有0、1、7、8四种命令,上位机实现对PLC的读写和强行置位。通过ENQ、ACK和NAK,上位机协调与PLC的通信应答。
2.2 通信过程
采用Bland C编写主机与PLC的通信程序。首先必须对COM1口进行初始化,波特率为9600bps,奇偶校验位采用偶校验,七位有效数据。通信的初始化检测过程如图4所示。当计算机接收到来自PLC的应答字符ACK后,就可以进入数据通信了。通信的时序图如图5所示。
计算机可对PLC内各软设备进行读、写和强制ON/OFF操作。除开PLC的计时器和计数器的设定值采用常数时,以及文件寄存器内的数据,FX2系列PLC的所有开关量输入、输出以及各软设备对计算机都是透明的。其操作时的多字符帧的格式如图3所示。但不同的操作在“多个字符”项内有所不同。例如,计算机对PLC的软设备Y20~Y37进行读操作,查装置地址表为00A2,读取2字节数据。其状态如图6(a)所示,主机发出的命令格式如图6(b)所示,PLC返回的信息如图6(c)所示。
如传送的命令有错误,PLC返回NAK信号,本次操作失败,重新进行。
为了保证主机与PLC的通信准确无误,上位机也必须按通信协议进行和校验。如接收的信息有误,则重新读取。如重复3次仍不行,则显示错误信息。
使用C语言很容易实现以上编程。
主机还可向PLC写数据,进行单点的强迫置位和复位。
对于运行在控制和实验室环境情况下本方案运行可靠、性价比高、体积小,但是对于通信距离长,环境恶劣的情况,需加光电隔离等措施。
参考文献
1 顾战松.可编程控制器原理与应用.北京:国防工业出版社,1996.1
2 FX-232AW:RS422 to RS232 interface unit instruction
3 刘乐善.微型计算机接口技术原理及应用.武汉:华中理工大学出版社,1996.5
4 鲁沐浴.C语言最新编程技巧200例.北京:电子工业出版社,1999.6