完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
摘 要:详细介绍了采用RS232串口完成labview与PLC之间通讯
,并利用该方法,设计了一种基于LabVIEW与PLC的串级控制系统。实验结果表明:控制系统 已达到了预期的设计效果。 关键词:LabVIEW;PLC;串级控制;串口通讯 在过程控制中,由于工业现场非常分散,I/O点数众多,各种仪表的工作环境 非常恶劣,采用数据采集卡和LabVIEW开发平台来完成现场的数据采集和控制显然不可取。 考虑到过程控制中的过程参数变化不是很快,而PLC恰恰可以克服数据采集卡在过程控制 中的不足,并且具有较高的性能比,因而采取以PLC为下位机,以装有LabVI EW软件的工控机为上位机开发平台,通过RS232或RS485串口与PLC通讯,实现对工业现场的 监控与现场数据的分析。这样可以利用LabVIEW软件强大的数据处理功能和良好 的人机交互环境通过简单的编程实现上位机的SCADA功能。 1系统的基本结构 现以实验室中的双容水箱对象为例来构建基于LabVIEW与PLC的过程控制系统 。系统结构如图1所示。系统采用OMRON公司C200HG系列的PLC为下位机,用RS232型电缆将HO ST LINK 模块直接连到装有LabVIEW的工控机的串口上。 2PLC与上位机连接系统的通讯 上位机与PLC之间的通信实际上是计算机与PLC 通信模块HOST LINK之间交换命 令和响应的过程。上位机具有初始传送优先权,所有通讯均由上 位机启动,不需要PLC编写 通信程序,HOST LINK能够对上位机发送来的字符串进行分析,检查数据格式,分析指令代 码 ,然后根据指令代码进行相应的操作,并向上位机发出响应信号。通知上位机已完成或反映 通信的错误,如奇偶校验错误、FCS错误、代码错误等。在一次交换中传输的命令格式和应 答数据称之为一帧。命令帧要通过用户编写的上位机通讯程序实现,PLC的上位链(HostLink ) 单元会根据上位机发来的命令帧自动生成响应帧返回给上位机。 2.1命令帧格式 上位机命令格式如下: 其中@表示一帧的开始。节点号是上位机按该号来识别PLC。识别码是含有两个字 符的上位机链接命令代码,它表示上位机要对PLC进行何种操作,其识别码的含义见文献[4 ]。“正文”包括起始字和字数,起始字指的是要读写通道的起始地址,字数是指要读写的通道 个数。FCS设置两个字符帧检查顺序码,FCS码由上位机计算,并设置在命令帧里。它主要是 用来保证在传送一帧数据时,在终止符前安排一个FCS码,以检查在传送数据时,是否发生 错误。FCS码的具体算法是:从一帧数据的开始到帧正文结束(FCS之前)所有数据字符的ASCI I 码执行“异或”操作的结果,此结果是一个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位。 文中采用OMRON C200 PLC的默认设置。即在CPU的DIP开关J脚置OFF的情况下,PLC与上位机 之间采用如下参数进行通讯: 启动位:1位;数据长度:7位;停止位:2位;奇偶校验:偶校验;波特率:9 600 b/s。 (2)LabVIEW 中串口通讯的步骤 LabVIEW共有5个串行通讯节点,包括初始化端口(Serial Port Init.vi)、串口写(S erial P ort Write.vi) 、串口读(Serial Port Read.vi)、检测串口输入缓存中的字节数(Bytes at Serial Port.vi)、串口中断(Serial Port Break.vi)等功能,各个节点端口参数表见 文献[2]。 在LabVIEW的程序中可采用下列步骤实现与PLC之间的通讯: ①初始化串口,设置双方通讯的端口号、波特率、数据位、停止位、奇偶校验等; ②把要发送的数据按PLC命令帧的格式打包,包括计算帧校验序列FCS; ③写端口,把整个命令帧发送到串口; ④延时等待PLC的应答帧到达串口; ⑤读串口,读取PLC的应答帧; ⑥把读取的应答帧解包,读取相应的数据。 (3)LabVIEW中串口通讯的实现 ①初始化串口,按照PLC串口通讯的要求,通过Serial Port Init.vi节点设定,端口号设为 0,即设定上位机的串口COM1与PLC通讯,若设其他串口,端口号依此类推;波特率设为9 600 b/s; 数据位为7位;停止位设定为2位;奇偶校验设定为2,即对数据帧进行偶校验。 ②对PLC数据帧计算FCS并把数据帧打包,其子程序如图2所示: 第0步为计算帧校验序列FCS程序;第1步为数据帧打包程序。 在编程时应注意以下几点: 1)对于长度为n的字符串,要进行n-1次“异或”,因此循环次数应为n-1; 2)利用循环结构的移位寄存器对每个字符的ASCII码进行“异或”时,要对左侧的移位寄 存 器进行初始化[3]。在系统中,由于任何一帧数据都是以“@”开始,因此程序中采 用“@”的ASCII码来初始化左侧的移位寄存器; 3)在For循环与循环外部的数据交换通道采用无索引(Disable Indexing)形式,这样就可在 循环结束后一次性读取FCS的数值; 4)由于数据帧中FCS的数字是字符型的,要通过“Number To Hexadecimal String”这个节 点把整型表示的FCS数值转换成2个以16进制表示的ASCII码字符; 5)程序中的“13”是回车符ASCII码数值。 ③对串口的发送与接收及解包程序 数据的发送与接收主要是通过串口写、串口读节点来实现的。在写串口完成后要延时一段时 间(如延时250 ms)后再读串口,这样才能保证串口通讯正常进行。解包程序与打包程序类似 ,其过程正好相反。数据收发子程序如图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之间的串口通讯,组成了完整的串级控制系统 ,试验表明,调节后水位的波动范围在±1 mm范围内,而且作系统扰动试验时,水位能够很 快的实现平衡。从而符合系统所要达到的稳、准、快的特性。PLC与LabVIEW的串 口通讯程序的设计方法亦要移植到其他上位机,整个系统的设计思想可应用于工业现场控制 的其他场合。 参考文献 [1]金以慧.过程控制[M].北京:清华大学出版社,1993 [2]殷华文.可编程序控制器及工业控制网络[M].西安:西安地图出版社,2001 [3]杨乐平.LabVIEW程序设计与应用[M].北京:电子工业出版社,2001 [4]侯志林.过程控制与自动化仪表[M].北京:机械工业出版社,2000 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
有没有大佬知道labview中使用Halcon拍照算子采集图像后,如何把图像传入调用的Halcon算子?
3530 浏览 0 评论
LabVIEW对51单片机电压的采集,用VISA写入函数发送字符串voltage,VISA读取函数也是字符串?
2088 浏览 1 评论
1817 浏览 0 评论
7054 浏览 1 评论
2458 浏览 0 评论
3012浏览 1评论
4262浏览 0评论
有没有大佬知道labview中使用Halcon拍照算子采集图像后,如何把图像传入调用的Halcon算子?
3530浏览 0评论
2293浏览 0评论
2246浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-15 03:16 , Processed in 0.587458 second(s), Total 48, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号