PROFINET通信在玻璃检测定位系统中的应用
2021-09-08雷伟达
雷伟达,李 丹,张 然
(安徽工业大学电气与信息工程学院,安徽马鞍山 243032)
玻璃检测定位系统被用于激光精密切割打孔的玻璃生产工艺中,完成待加工玻璃与加工器具(激光器)之间相对位置的确定。随着市场对产品精度与生产效率要求的提高,工业现场对玻璃检测定位系统的性能提出了更高的要求。通信方案直接影响玻璃检测定位系统的性能,高效的通信方案对玻璃工业生产有重要意义。黎水平等设计的以AVR 单片机为主控单元的玻璃打孔控制系统在数控机床上表现良好,但其通信为简单的串口通信,在复杂的大型工业现场中难以满足性能要求。李青等采用伺服电机定位加激光测距传感器的方法实现了液晶玻璃的高精度定位,但其对玻璃初始位置要求高且无法应用于大面积的玻璃检测定位。工业现场中,常使用图像处理功能强大的LabVIEW(laboratory virtual instrument engineering workbench)作为上位机软件处理获取的图片信息,徐红英等利用LabVIEW 搭建功能测试系统,并采用高效稳定的PROFINET通信构建物联网系统,但其采用的是高昂的NI 模块。随着工业4.0概念的普及,玻璃检测定位的现场总线需并入其他总线以实现现场一体化控制的要求。PROFINET 是一种由PROFIBUS 国际组织(PROFIBUS international,PI)推出的新一代针对开放式工业、基于工业以太网技术的自动化总线标准,可完全兼容工业以太网和现有的现场总线(如PROFIBUS)技术,以实时性高的特点实现通信网络的一线到底,是未来工业现场总线技术发展的趋势。陆啸龙等认为,高性价比的PROFINET总线通信有望成为玻璃检测定位中通信的最佳选择。鉴于此,结合PROFINET 通信原理,设计玻璃检测定位系统,使用第三方板卡通过调用动态链接库(dynamic link library,DLL)的方法实现玻璃检测定位系统中LabVIEW 与PLC 的PROFINET 实时通信,控制激光器在玻璃上完成准确高效的切割打孔作业。
1 玻璃检测定位系统的设计
基于图像处理的方法设计一款高精度、非接触式、适用于大面积玻璃的检测定位系统,系统总体设计方案如图1。系统主要由传送带、相机、激光器、PLC 与上位机组成。传送带负责待加工玻璃的运输,相机负责获取待加工的玻璃图像,PLC负责控制激光器,激光器负责切割加工等操作,上位机负责图像处理、人机交互等操作。系统流程图如图2。由相机采集待加工玻璃的图片,上位机中的Lab-VIEW 软件读取图片,运用模板匹配的方式匹配图像中玻璃边角,若匹配失败则重新读取图片信息;匹配成功后采取找边、找交点的方式确定玻璃上关键点的坐标信息,对关键点进行坐标转化、计算得到激光器坐标系下的目标坐标;上位机将处理好的数据发送给PLC 进行相关处理后控制激光器进行切割、打孔等操作。
图1 系统总体方案示意图Fig.1 Schematic diagram of the overall system scheme
图2 控制系统流程图Fig.2 Control system flow chart
上位机和PLC 的实时通信是玻璃检测定位系统的重要环节,工业相机通过网线与上位机相连,上位机软件LabVIEW 通过配置后可直接获取相机图片信号,处理速率达300 MB/s。PROFINET 通信具有实时性高、灵活性强等优点,是建立上位机和工控系统的最佳方案,但NI公司的模块昂贵。鉴于成本限制,采用价格实惠的cifX-50E-RE 板卡实现上位机与PLC 之间高效的PROFINET 通信,并将其接入其他总线实现工业现场一线通控制要求;PLC 与激光器控制器之间直接通过网口传输控制指令控制激光器的加工任务。
2 PROFINET通信方案的设计及实现
2.1 PROFINET总线协议
根据响应时间的长短,可将PROFINET 通信方式分为传输控制协议/网际协议(transmission control protocol/internet protocol,TCP/IP)、实 时(real time,RT)和 同 步 实 时(isochronous real time,IRT)3 种。玻璃加工处理对数据的实时性要求高,故文中采用PROFINET的实时通信。实时表示系统在一个确定的时间内处理外部事件,确定性(deterministic)意味着系统有一个可预知的响应,实时通信一般有确定性响应和标准应用响应时间≤5 ms的要求。RT通信模型如图3。PROFINET 的实时通信抛弃了TCP/IP或UDP/IP 部分,大大缩短了帧的长度,其采用IEEE 802.3优化的第二层协议,由硬件和软件实现自己的协议栈,缩短了通信栈所需时间。数据包的寻址不是通过IP 地址来实现的,而是直接使用接收设备的MAC地址。实时协议保证了周期数据和事件控制消息(警报)的高性能传输。
图3 RT通信模型Fig.3 RT communication model
2.2 通信主体方案的设计
目前工业现场LabVIEW 上位机与S7-1500 PLC 通过PROFINET 通信,其主要有两种方式:方案1,使用NI生产的面向PROFINET I/O网络的子接口NI Compact RIO PROFINET C系列子模块实现通信;方案2,使用用于过程控制的对象连接与嵌入(object linking and embedding for process control,OPC)技术在LabVIEW与PLC 之间建立兼容接口,LabVIEW 端作为OPC 客户端,PLC 端作为OPC 服务端,以此实现通信。方案1能满足通信要求,但NI公司的子模块价格高昂;方案2能降低安装成本,但通过OPC组建的PROFINET通信实时性受到很大影响,不能实现PROFINET中的实时通信。
设计的通信方案如图4。使用德国赫优讯公司的cifX-50E-RE板卡作为中间转换单元实现LabVIEW上位机与PLC 的PROFINET 实时通信。具体流程:通过调用动态链接库(dynamic link library,DLL)文件实现LabVIEW 与cifX-50E-RE 板卡的通信;在cifX-50E-RE 和SIMATIC S7-1500 之间搭建PROFINET 通信,板卡再将数据通过PROFINET 发送给PLC。调用动态链接库处理的时间延迟基本可忽略,故该方案的实时性可得到保证,基本与普通PROFINET网络无差异。文中设计的方案是前文所述两种方案的折中,能够在较低安装成本的情况下,得到实时性高的PROFINET总线传输数据。
图4 通信主体方案Fig.4 Communication subject scheme
2.2.1 PROFINET主从站的搭建
工控机主板自带的网卡实时性不能满足工业要求,PROFINET 从站的搭建需使用特定的硬件。本方案采用的是德国赫优讯公司在售的cifX-50ERE板卡,该板卡具有价格实惠、驱动程序广泛、支持多种工业以太网协议的特点,被广泛应用于工业现场的各种实时以太网协议。将板卡插到工控机的PCI插口,拨板卡旋钮位于0号位便完成硬件上的安装。进入赫优讯官网(www.hilscher.com)找到对应板卡下载资料安装驱动,使用SYCONnet 软件设置板块配置,将配置烧录到板卡即完成PROFINET 从站的搭建。
将S7-1500 PLC与安装有TIA 博途软件的电脑连接,新建一个PLC项目;安装板卡的GSD文件后,对PLC 进行组态,如图5;对板卡进行配置使其数据格式与上一步从站中的设置一致;编写相应的PLC主程序将配置下载至PLC,即完成PROFINET 主站的搭建。
图5 PLC组态图Fig.5 PLC configuration diagram
在工控机的控制面板中打开cifX Test 程序,打开通信通道进入数据收发界面。在数据发送窗口发送1111至PLC主站,如图6(a);在博途中设置PLC发送2222 至从站,如图6(b)。由图6 可知,PLC 和从站均成功接收对方发来的数据,证明主从站通信成功。
图6 主从站通信验证Fig.6 Master-slave communication verification
2.2.2 LabVIEW配置
通过cifX32dll.dll(对应32 位的LabVIEW)动态链接库文件实现LabVIEW 与PROFINET 从站的通信。用LabVIEW 调出动态链接库中的各函数生成子VI:打开LabVIEW 选择导入动态链接库,选择安装在系统盘C:WindowsSystem32 中的cifX32dll.dll文件,头文件选择下载资料中的cifXUser.h 文件。导出时使用LabVIEW 的简易错误处理模式,该模式下VI 运行如果发生错误,LabVIEW 就会自动中断执行、高亮显示产生错误的子VI或函数并弹出错误对话窗,在程序编写时将各VI 的错误输出依次串联,保证编写程序的稳定性并方便调试。在最终导出的VI列表中主要用到的VI及功能如表1。
表1 VI功能Tab.1 VI function
LabVIEW 与从站通信流程图如图7。PROFINET 从站开始工作时打开板卡驱动,然后打开对应的通信通道(通道0),激活总线通讯,完成操作后LabVIEW 便可与PROFINET 从站进行通信。关闭通信时,按照相反的顺序依次关闭总线、通道和驱动。
图7 LabVIEW与从站通信流程图Fig.7 LabVIEW and slave communication flow chart
2.2.3 转换程序的设计
根据图7,使用LabVIEW 编写转换程序,如图8。在程序框图中函数的一些参数已通过常量的方式写入。程序读写操作时采用循环结构实现程序的实时读写,程序中使用上文所述的错误处理模式来保证程序的稳定性。动态链接库文件是由C 语言编写的,C 语言中有众多的数据类型,而LabVIEW 中并没有相同的数据类型与之对应。故在LabVIEW 中调用子函数时要输入对应类型的实参才能成功调用,否则会导致程序崩溃。文中使用到的数据类型转换对应情况如表2。
表2 DLL中数据类型与LabVIEW数据类型变换Tab.2 Data type conversion between DLL and LabVIEW
图8 LabVIEW程序框图Fig.8 LabVIEW program block diagram
3 工业现场通信测试
将设计的玻璃检测定位系统应用到某玻璃加工企业的生产线,测试本文所提通信方案。通过在LabVIEW 的程序中读取PLC上发送的数据和在PLC中读取LabVIEW 发送的数据测试通信是否成功。通过TIA博途软件令PLC向LabVIEW发送99999,如图9(a)。由图9(a)可看到,LabVIEW前面板中的Read Real控件中的数值变成了99999,表明已实现PLC 对LabVIEW 上位机发送信息。在LabVIEW 前面板的Write Real控件中输入88888,如图9(b)。由图9(b)可看到,数值显示为88888,表明由LabVIEW 上位机向PLC发送数据也得到实现。通过测试可发现,采用本文通信方案可实现LabVIEW上位机与S7-1500的准确通信。
图9 通信测试Fig.9 Communication test
将LabVIEW 中的程序进行修改使其可设置循环发送数据、记录所需时间,程序如图10(a)。使用不同大小的通信数据与不同次数的循环通信方式测试通信方案的实时性,结果如图10(b)。由图10(b)可知,不同大小的通信数据对应的通信耗时不同,数据量越大所需时间越长,数据量为72 B 时,平均每次传输耗时2.862 ms;数据量为128 B 时,平均每次耗时3.332 ms;数据量为144 B 时,平均每次传输耗时3.426 ms;数据量为200 B 时,平均每次传输耗时约3.554 ms。此外,随着循环次数的增加,平均每次通信耗时略有增加,这是高频率传输下总线波动造成的。测试结果显示每次通信耗时均在4 ms 以内,完全满足PROFINET 的RT 通信要求。整个玻璃检测定位系统从相机开始采集图像到激光器加工完成平均耗时23 s,其中处理图像约2 s,激光器作业21 s,就此而言通信耗时可忽略不计。工业现场测试结果表明采用本文方案可实现高效的PROFINET实时通信。
图10 实时性检验Fig.10 Real time inspection
4 结 论
针对传统玻璃检测定位系统中存在实时通信的问题,设计一种高效的PROFINET 玻璃检测定位系统。采用赫优讯公司的cifX-50E-RE 板卡搭建PROFINET 从站,实现从站与PLC 搭建的主站通信;通过调用动态链接库的方法实现LabVIEW与搭建的PROFINET从站通信,进而达到与PLC通信的目的。工业现场测试表明,设计的系统可实现LabVIEW 上位机与S7-1500 PLC 的PROFINET 实时通信,数据量为200 B 时,平均每次通信耗时在4 ms 内。本文研究为LabVIEW 与PLC 通过PROFINET 总线通信提供了一种安装成本低、实时通信强的方案,为LabVIEW的工业现场网络通信提供了一种思路,具有一定的参考价值。