基于LabVIEW与PLC的串级控制系统设计摘要:详细介绍了采用RS232串口完成LabVIEW与PLC之间通讯,并利用该方法,设计了一种基于LabVIEW与PLC的串级控制系统。实验结果表明:控制系统已达到了预期的设计效果。关键词:LabVIEW;PLC;串级控制;串口通讯ThedesignofacascadecontrolsystembasedonLabVIEWandPLCXIEJianjun,WANGHongmeng,XUChunmei(PowerandMechanicalEngineeringSchoolofWuhanUniversity,HubeiWuhan430072,China)Abstract:ThisarticlediscussesanapproachtotherealizationoftheRS232serialtransferbetweenLabVIEWandPLC.TheapproachisusedtodesignacascadecontrolsystembasedonLabVIEWandPLC.Theresultofexperimentsshowsthatasatisfactorysolutionisreached.Keywords:LabVIEW;PLC;cascadecontrol;serialtransfer在过程控制中,由于工业现场非常分散,I/O点数众多,各种仪表的工作环境非常恶劣,采用数据采集卡和LabVIEW开发平台来完成现场的数据采集和控制显然不可取。考虑到过程控制中的过程参数变化不是很快,而PLC恰恰可以克服数据采集卡在过程控制中的不足,并且具有较高的性能比,因而采取以PLC为下位机,以装有LabVIEW软件的工控机为上位机开发平台,通过RS232或RS485串口与PLC通讯,实现对工业现场的监控与现场数据的分析。这样可以利用LabVIEW软件强大的数据处理功能和良好的人机交互环境通过简单的编程实现上位机的SCADA功能。1系统的基本结构现以实验室中的双容水箱对象为例来构建基于LabVIEW与PLC的过程控制系统。系统结构如图1所示。系统采用OMRON公司C200HG系列的PLC为下位机,用RS232型电缆将HOSTLINK模块直接连到装有LabVIEW的工控机的串口上。2PLC与上位机连接系统的通讯上位机与PLC之间的通信实际上是计算机与PLC通信模块HOSTLINK之间交换命令和响应的过程。上位机具有初始传送优先权,所有通讯均由上位机启动,不需要PLC编写通信程序,HOSTLINK能够对上位机发送来的字符串进行分析,检查数据格式,分析指令代码,然后根据指令代码进行相应的操作,并向上位机发出响应信号。通知上位机已完成或反映通信的错误,如奇偶校验错误、FCS错误、代码错误等。在一次交换中传输的命令格式和应答数据称之为一帧。命令帧要通过用户编写的上位机通讯程序实现,PLC的上位链(HostLink)单元会根据上位机发来的命令帧自动生成响应帧返回给上位机。2.1命令帧格式上位机命令格式如下:其中@表示一帧的开始。节点号是上位机按该号来识别PLC。识别码是含有两个字符的上位机链接命令代码,它表示上位机要对PLC进行何种操作,其识别码的含义见文献[4]。“正文”包括起始字和字数,起始字指的是要读写通道的起始地址,字数是指要读写的通道个数。FCS设置两个字符帧检查顺序码,FCS码由上位机计算,并设置在命令帧里。它主要是用来保证在传送一帧数据时,在终止符前安排一个FCS码,以检查在传送数据时,是否发生错误。FCS码的具体算法是:从一帧数据的开始到帧正文结束(FCS之前)所有数据字符的ASCII码执行“异或”操作的结果,此结果是一个8位二进制数,然后分别把其高4位和低4位转换成两个16进制数并看成ASCII码。终止符是“*”,“回车”符表示命令的结束。2.2应答帧格式应答帧是由PLC自动返回的,其应答格式如下:其中“结束码”是两位16进制数,它是PLC返回给上位机的通讯错误代码,其中00表示通讯无错误,不同错误代码的含义可参考编程手册。“正文”中每4位16进制表示一个通道的数据。2.3LabVIEW与PLC通讯的实现(1)PLC上位机链接设置采用RS232C端口时,需要置DM6645的12~15位为0,PLC的节点号设置在DM6648的00~07位。文中采用OMRONC200PLC的默认设置。即在CPU的DIP开关J脚置OFF的情况下,PLC与上位机之间采用如下参数进行通讯:启动位:1位;数据长度:7位;停止位:2位;奇偶校验:偶校验;波特率:9600b/s。(2)LabVIEW中串口通讯的步骤LabVIEW共有5个串行通讯节点,包括初始化端口(SerialPortInit.vi)、串口写(SerialPortWrite.vi)、串口读(SerialPortRead.vi)、检测串口输入缓存中的字节数(BytesatSerialPort.vi)、串口中断(SerialPortBreak.vi)等功能,各个节点端口参数表见文献[2]。在LabVIEW的程序中可采用下列步骤实现与PLC之间的通讯:①初始化串口,设置双方通讯的端口号、波特率、数据位、停止位、奇偶校验等;②把要发送的数据按PLC命令帧的格式打包,包括计算帧校验序列FCS;③写端口,把整个命令帧发送到串口;④延时等待PLC的应答帧到达串口;⑤读串口,读取PLC的应答帧;⑥把读取的应答帧解包,读取相应的数据。(3)LabVIEW中串口通讯的实现①初始化串口,按照PLC串口通讯的要求,通过SerialPortInit.vi节点设定,端口号设为0,即设定上位机的串口COM1与PLC通讯,若设其他串口,端口号依此类推;波特率设为9600b/s;数据位为7位;停止位设定为2位;奇偶校验设定为2,即对数据帧进行偶校验。②对PLC数据帧计算FCS并把数据帧打包,其子程序如图2所示:第0步为计算帧校验序列FCS程序;第1步为数据帧打包程序。在编程时应注意以下几点:1)对于长度为n的字符串,要进行n-1次“异或”,因此循环次数应为n-1;2)利用循环结构的移位寄存器对每个字符的ASCII码进行“异或”时,要对左侧的移位寄存器进行初始化[3]。在系统中,由于任何一帧数据都是以“@”开始,因此程序中采用“@”的ASCII码来初始化左侧的移位寄存器;3)在For循环与循环外部的数据交换通道采用无索引(DisableIndexing)形式,这样就可在循环结束后一次性读取FCS的数值;4)由于数据帧中FCS的数字是字符型的,要通过“NumberToHexadecimalString”这个节点把整型表示的FCS数值转换成2个以16进制表示的ASCII码字符;5)程序中的“13”是回车符ASCII码数值。③对串口的发送与接收及解包程序数据的发送与接收主要是通过串口写、串口读节点来实现的。在写串口完成后要延时一段时间(如延时250ms)后再读串口,这样才能保证串口通讯正常进行。解包程序与打包程序类似,其过程正好相反。数据收发子程序如图3所示。3系统的分析及方案设计3.1系统分析通过作双容水箱上升阶跃,采用LabVIEW的波形显示控件可得到一条与“S”型相近的响应曲线,可用一阶惯性环节加纯迟延近似表示其传递函数:由于τ/T=1.06>1,故系统迟延较大[4],且动态特性存在非线性。经分析,动态特性的非线性主要是由于变频器及水泵的非线性造成的。在采用单级PID控制时,由于系统迟延较大,在水箱B出现正偏差、降负荷的初级阶段,水箱A中的水位值已经开始下降,但水箱B中的水位继续上升,使系统的动态特性变差;基于上述现象的存在,系统动态特性呈现一种近似等幅振荡状态。因而系统不宜采用单级PID控制。3.2系统设计经分析,采用串级控制系统可以改善对象的动态特性,提高系统的工作频率;对负荷的变化具有一定的自适应力;适用于非线性对象[1]。故采用串级控制方案,其控制系统框图如图4所示。主调节器和副调节器是在LabVIEW中用公式节点实现的,整个串级控制算法为[1]:Kp、Ti、Kd分别为调节器的比例增益、积分时间、微分时间。在整个串级控制中,把整个控制对象分为导前区(水箱A)和惰性区(水箱B),其中副调节器的任务是快速消除系统内扰,以及克服变频器及水泵在系统负荷变化时对水位测量值的影响,起粗调作用,故采用P调节规律;而主调节器的任务是维持水箱B水位的稳定,采用PID调节规律。PLC的D/A转换模块DA004是12位的,所能接收最大数字量为OFFF(即4095),这时在主调节器积分的作用下,在整个系统开始启动、停止或给定值变化幅度较大时,由于短时间内出现很大的偏差,在积分作用下,整个调节器输出进入深度饱和状态,产生积分饱和[1],使系统产生较大的超调和振荡。在控制程序中采用积分分离的PID算法。在偏差大于某一值M时,主调节器采用PD控制,在水位测量值接近给定值时,采用PID控制。整个控制系统的阶跃响应曲线见图5。4小结以PLC为下位机,以LabVIEW为上位机开发平台,利用LabVIEW软件强大的数据运算能力和数据分析能力并通过LabVIEW与PLC之间的串口通讯,组成了完整的串级控制系统,试验表明,调节后水位的波动范围在±1mm范围内,而且作系统扰动试验时,水位能够很快的实现平衡。从而符合系统所要达到的稳、准、快的特性。PLC与LabVIEW的串口通讯程序的设计方法亦要移植到其他上位机,整个系统的设计思想可应用于工业现场控制的其他场合。参考文献[1]金以慧.过程控制[M].北京:清华大学出版社,1993[2]殷华文.可编程序控制器及工业控制网络[M].西安:西安地图出版社,2001[3]杨乐平.LabVIEW程序设计与应用[M].北京:电子工业出版社,2001[4]侯志林.过程控制与自动化仪表[M].北京:机械工业出版社,2000