基于PLC与PC机自由口通信的蝶阀气密性检测控制 |
【摘要】介绍了在VB6.0 环境下PC机与S7—200PLC自由口通信的实现方法,并结合安全阀气密性检测控制系统的开发实例,分析了VB与PLC通信的关键技术,同时对通信中重点部分作了简要说明。 关键词:VB6.0;PLC;自由口模式;Mscomm 【Abstract】The communication between PC and S7 - 200PLC under freeport mode based on VB6.0 is introduced in this. The key techniques of communication between VB and PLC are analyzed with gas leak test system for butterfly valve for an Optical experiment table,and brief explanations of important part in communication are also added. 引言 随着可编程控制器(PLC)技术的迅速发展,PLC在我国各个工业控制领域中得到了越来越广泛的应用。而西门子公司生产的S7-200系列小型PLC,以其功能强人,使用稳定且性价比高而在中国市场上占有很重要的地位,其内部集成的通信接口为用户提供了强大的通信功能,根据不同的协议通过接口使得PLC可与不同的设备进行通信并组成网络,实现数据传送及控制等功能。S7-200系列PLC支持自由口协议,它为用户在使用时,提供了很多方便之处。本文主要研究的是在VB6.0环境下S7- 200PLC与PC机自由口通信的实现,并结合安全阀检测控制系统的开发实例加以说明。 1.系统硬件组成 系统主要由工控机、PLC、打印机和电气控制柜等组成,如图1所示。为了提高控制系统的可靠性与灵活性,系统采用PLC可编程逻辑控制器。PLC选型为SIEMENS公司的S7-200系列PLC,中央处理单元为西门子公司推出的PLC采用S7-200系列CPU226,该CPU在本机体中集成了2个RS-485通讯口,其性价比高,满足本系统的所有要求。 使用485总线的一端连接PLC的通讯口PORT1,另一端通过RS-485/232电平转换器连接至PC机的RS-232串口,实现PC机向PLC发送命令帧、并接收PLC响应帧。 系统共有6个台位,共有12个传感器,其开关量控制点数有限所以需要扩展模块EM221和EM231。 2.控制的内容和要求 系统采用集散控制,工控机为上位机主要负责监控和管理功能:如数据的处理、与PLC通讯、误差修正等。PLC为下位机也是控制的核心,通过RS485接口与工控机相连。把发送信息输入到上位机,上位机向PLC发送发放的数据和指令。PLC接受上位机的信息并响应,实时控制电磁阀的打开合关闭,实时采集监测压力,并把每一路状态的相关数据反馈到上位机,由管理程序生成数据库,可对数据进行统计、报表、打印等。 本控制系统设计任务需要实现以下目标: 3 PC机与PLC通信基础 3.1PLC自由口通信命令 所谓自由口通信模式即Freeport模式,它是建立在RS一485硬件基础上的一种通讯方式,它允许用户自己定义一些简单、基本的通讯协议设置,如数据长度、奇偶校验等等,通讯功能完全由用户程序控制[1]。自由口模式使用的相关的命令为XMT和RCV命令[2],分别用于发送和接收数据。这两个命令都对应各自的一个数据缓冲区,该缓冲区可以由用户在编程中决定,如VB100,即为从VBl00 起始的一块数据存储区。其中,XMT的缓冲区格式如图2 但应当注意的是,自由口协议必须在PLC处于RUN 模式下才有效,如果处于STOP 模式下PLC会自动的回到PPI模式(前提是使用PPI模式) 。 3.2 Mscomm 控件 为了实现PC 机与下位机PLC 之间的通信,Windows 提供了Mscomm 控件以供用户使用。它封装了关于通信的相关内容,我们只需在Ⅷ平台中,设置其相关属性,并且对其的事什进行相应的编程即可使用。关于Mscomm 控件的一些重要属性见表1。 关于Mscomm控件的事件,只有一种,即OnComm事件,通信中只要有错误或事件发生时,就会产生OnComm事件,而CommEvent 属性传回不同的错误或事件: 对应的数码值,据此可对事件进行处理。在本文的通信过程中,主要用到的是ComEvReceive值。当接收缓冲区有数据时产生该值,然后对Input值进行相应的处理。 4.VB6.0平台PC机与PLC的通信 Microsoft公司生产的Visual Basic6.0是Windows 环境下的一种可视化编程语言开发系统,它以强大的图形设计能力,简易的编程语言和容易学习使用等优点在工程中得到了广泛的应用,我们正是使用它进行了与PLC 通讯的开发。 PLC I/O分配表见表2,只列出了4个台位的。,结合工程的实际,我们编制了相应的PLC 通信程序。由于篇幅有限,只列出部分程序。但在编程中需要注意的是,程序中与通讯有关的除了进行相关寄存器的设置之外,还应该对接受的命令进行判断,己选择运行相关的程序。另外,由于PLC 中的通讯口是RS—485通讯口,其为半双上通讯口,所以XMT 和RCV 命令不能同时运行。 PLC的中断程序 LDB= SMB86, 16#20 5 VB通信程序设计 VisualBasic 开发包括界面的设计和程序的开发两部分。 5.1 人机界面设计 人机界面使用户与计算机之间的中介,是软件产品的窗口。人机界面首先考虑的是如何能更好的满足用户的使用要求和操作习惯。人机界面的设计要考虑界面功能的全面和操作的简便。最常用的功能要尽量安排在主界面中,如果有多个功能模块,可以将先对独立的模块用单独的界面表示,并与主界面双向连接。如图3 本系统界面包括状态的监控、身份登陆、参数设定、报表查询、打印、报警和事件显示。 安全阀气密性检测控制系统 ,VB通讯界面设计时, Mscomm 控件的重要属性设置为: 5.2 通信程序设计 VB通信中接收事件的程序清单如下 结束语 在实际中采用自由口通信模式,运用VB6.0作为开发工具,方便的实现了S7—200PLC与上位PC 机间的通信,实现了对蝶阀气密检测的控制。经现场调试及运行表明,这是一种非常有效、可靠的通信方法,这种通信方法也可以应用于其它相关的通信场合,具有一定的普遍意义。 |