APP下载

基于OPC技术的轮毂装配线监控系统①

2021-03-19汤亚玲张学锋储岳中

计算机系统应用 2021年3期
关键词:正态分布工位客户端

汤亚玲,郭 健,张学锋,储岳中

(安徽工业大学 计算机科学与技术学院,马鞍山 243032)

OPC 通信技术一经问世,就在自动化生产等相关行业掀起了浪潮,其独特的机制屏蔽了不同种硬件设备之间的差异,全部使用一个标准,使得软件开发商不再拘泥于各种纷繁杂乱的驱动软件开发工作,节省了许多开发时间,不同厂商的设备也可以实现互连互访[1].目前OPC 技术在编程语言开发的软件中实现方式有很多种,文献[2]使用Qt 开发OPC 服务器,并利用Matlab 建立Simulink 工程进行仿真模拟,验证了其可行性.文献[3]基于C#语言实现了OPC客户端,详细地阐述了客户端的编写过程,并有具体的代码实现,为OPC 自动化接口的实现提供了借鉴.如文献[2,3]等研究基本涵盖了当下常用的开发环境,对OPC 组件的开发具有一定的指导意义,但主要集中在OPC 服务器或客户端研究,缺乏对整体过程构建的探讨,难以在实际生产中指导上位机程序的编写.在此情况下,本文提出了一种基于“Qt+KEPServerEX”的OPC 开发方式,以KEPServerEX 作为OPC 服务器,简化了服务器的开发过程,并使用Qt 将客户端嵌套进上位机监测系统中,加之一些上位机常用功能模块,构成一个完整的生产线监测系统,并在一条实际的装配线中投入使用.

1 技术概述

1.1 OPC 技术简介

用于过程控制的OLE (OLE for Process Control,OPC)是一种基于Windows 系统的工业自动化标准.它采用C/S 模式[4],简化了软、硬件间的通信流程,为应用程序和现场硬件生产设备等架起了桥梁.该技术以微软的OLE 技术为基础,跨过TCP 协议层次,在应用层中直接进行数据通讯,客户程序只需简单配置客户端程序,即可访问OPC 接口中的Server 程序[5],实现与设备之间的交互.

1.2 KEPServerEX 简介

KEPServerEX是一款服务器软件,内部已集成OPC标准接口.客户端程序按照OPC 标准编写,并和服务器做对应的配置,即可连接KEPServerEX 所建立的服务器.

1.3 PLC 简介

可编程逻辑控制器(PLC)是一种工业控制微型计算机,其稳定性好、操作灵活,可通过内部预设的各种运算指令等来控制各种类型的设备及生产过程,并进行相关的计算[6].

2 通信过程的构建

2.1 OPC 通信接口选择

OPC 服务器有两种接口,如图1所示.一种是自动化接口,这种自动化接口主要用于VB、C#等编程语言,为这一类可使用自动化对象的程序服务[7].另一种定制接口则为C++等语言服务,定制接口是服务商必须提供的,具有一定的灵活性.Wincc 之类的软件可以直接通过其内部的OPC Server 接口实现与PLC的通信[8],但是组态软件价格昂贵,对于一个项目而言是一笔很大的开支.一般项目为了节省成本,采用C++等高级编程语言来实现OPC 通信接口.而在Qt 等C++环境中应用OPC 通信技术,必须引入OPC 基金会提供的文件[9].

图1 OPC 通信结构图

系统的核心部分为与PLC的交互部分,数据接收与处理需严密及准确,而定制接口可以根据现场需要来定制开发,所以综合考虑,决定采用定制接口来构建OPC 客户端.

2.2 数据访问方式

OPC的数据读取方式有同步、异步、订阅式3 种访问方式.

(1)同步访问可进行读、写操作,其特点是在和OPC 服务器发生数据交互的期间,会阻塞系统线程,直到OPC 数据标签的读取或写入完成后才可继续执行.适用于标签数据较少的情况.

(2)异步访问是把数据交互过程放在服务器端执行,执行期间客户端程序可以去进行其他工作.当数据交互完成后,服务器会主动触发客户端的异步访问完成事件.该方式在数据标签量较多和网络拥堵的情况下执行效率很高.

(3)订阅式数据采集属于异步访问的一种特殊类型.服务器在固定周期内检查过程数据,如果发现数据变化超过一定范围,就立刻通知客户端来接收数据.这种方式可有效降低客户程序对服务器的重复访问次数.缺点是不能对服务器进行写入操作.

一般生产线数据总体产生量较大,并且在运行过程中,经常需要由客户端向PLC 发送一些数据指令,以完成一些特殊的控制操作,客户端对服务器的读写功能是必要的.综上所述,异步读取的方式更加适合本系统.

2.3 KEPServerEX 构建服务器

利用KEPServerEX 搭建OPC 服务器,其核心思想与一般构建服务器的思路基本一致,关键点在于创建OPC 服务器的服务器对象(Server)、组对象(Group)、项对象(Item).一个服务器对象可以包含多个组,一个组对象可以包含多个项[10].项是整个通信过程的基本单位,其作用是维护OPC 服务器中与数据有关的信息.组则作为设备的基本单位,提供包容和组织OPC 项对象的机制[11],在实际的生产过程中对应由一台PLC 上测量产生的所有数据的集合.服务器对象则作为OPC组对象的包容器,通过列举本地设备上的所有可连接的服务器,对其进行初始化后获取服务器名称和唯一标识符.KEPServerEX 在本系统中充当服务器的角色.在KEPServerEX 中,先需要指定设备对应的模型,该模型为设备所使用的PLC 型号,设备驱动选择当前PLC 以太网网卡驱动,随后指定一个固定网段(根据交换机划分)作为设备的唯一ID.LinkType 表示要选择上位机的类型,有OP、PG、PC 三种类型,其中PG是针对生产线上的工控机使用的连接类型.构建过程如图2所示.

Tag 作为一个设备的基本单位,对应需要采集的数据信息,由PLC 产生其通讯地址,一个数据变量产生一个地址.如地址“DB14,REAL2”,DB是PLC 数据块的简写,DB14 代表编号为14的PLC 数据块,而REAL 则是该数据的类型,2 代表则是在该段连续的表示通道结果的地址上的偏移量,随后依次为通道2、通道3 等.根据PLC 数据块中产生的变量信息,组合产生数据地址.随后在KEPServerEX 对应的设备中输入地址,即可形成与PLC 间的数据通道.数据地址一般由PLC 内部程序的编写人员以文档的形式提供,上位机开发人员只需将数据地址与标签数据对应起来,无需考虑PLC 内部如何设定变量地址.

图2 KEPServerEX 构建服务器流程图

2.4 构建OPC 客户端

OPC 客户端构建工作主要集中在连接服务器、响应接收、关闭连接3 个部分,具体过程如下:

(1)自定义ConnectedOPC 函数,包含OPCClient.h头文件,创建了一个客户端对象,调用成员函数Connect函数进行连接,该函数原型为:HRESULT Connect(QString s).连接成功后,使用HRESULT AddGroup(QString n,DWORD update_rate,int async=1)创建组信息,n为组信息,包含标签tags,组名的格式一般为“服务器名+组名+数据项”,一个工位的数据为一组.update_rate为数据刷新率,其设置时要保证小于服务器的接收速率.async为访问方式设定,其值为0 时表示同步方式,值为1 时表示异步方式,缺省值为1,读写函数会根据该值来区分调用.之后自定义AddItemwin函数,将所有数据项预先装入列表中,通过AddItems将数据项添加进服务器,与服务器中添加的tags 对应起来,形成一个与服务器之间进行数据交互的通道,建立连接.

(2)利用Qt 中信号与槽机制,设立信号sg_OnDataChange(OPCHANDLE,DWORD,OPCHANDLE*,VARIANT*,WORD*,FILETIME*,HRESULT*)与接收处理槽函数sl_OnDataChange(OPCHANDLE hGroup,DWORD dwCount,OPCHANDLE *phClientItems,VARIANT *pvValues,WORD *pwQualities,FILETIME*pftTimeStamps,HRESULT *pErrors),该机制中要求信号和槽的参数类型必须保持一致.以槽中参数为例,依次为组、标签个数、数据项、数据内容、数据质量、时间戳、错误信息,其中数据质量代表着数据的可信度,时间戳代表着数据的存取时间,使用VariantString 函数来输出项目值字符串,函数原型为QString VariantString(VARIANT &pValue),以pvValues[i](0

(3)当完成数据通信后,客户端资源会随着程序关闭而释放.在工位类析构函数中调用Disconnect 函数,该函数会清除通信过程中所有的组、数据项等信息,释放通信过程中的中间对象等,并置为初始状态.当客户端内部对象释放之后,客户端对象释放.

3 上位机基本功能模块

在接收到PLC的数据后,需先进行数据过滤,否则数据表中会混入一些无效数据.经过滤之后得到的数据一般有以下4 个流向.

3.1 数据存储模块

数据汇入数据转储模块中,经过客户端接收过滤后,直接存储进MySQL 数据库中.每个需要存储数据的工位对应一个数据模型,各自独立存储,随时等待数据到来.而工位类过滤完毕后,将一组数据打包,通过信号发送给对应的模型类.保存之后,在每天固定时间生成备份文件,并按月导出生成数据报表,以便后续查看.

3.2 界面反馈

该模块主要包含实时数据显示和CPK 计算两个子部分.

(1)实时数据显示:采集的数据需要实时反馈到界面上,方便现场人员的测试与观察.显示的内容一般还会包括工位的运行信息,如循环周期、日生产计数、累计生产计数,这些数据由各工位PLC 独立统计,既可以作为观测工位运行情况的重要参考,又可以和程序主界面中的时间模块统计信息一起作为OEE的计算要素.OEE 又称为设备综合效率,是从运行情况中的各种时间角度来分析设备运行效率[12],不同的项目根据实际情况决定是否添加OEE 计算模块.

(2)CPK 计算:CPK 又称为过程能力指数,是现代企业用于表示制程能力的指标.CPK的标准分为A+至D 五个等级,如表1所示,根据其等级来指导生产线后续生产计划.

表1 CPK 等级分布及对应原则

CPK 标准的计算公式为:

其中,Cp,Ca分别为制程精准度和制程精确度.取样的数据至少在20 组以上,这样计算的结果才具有代表性.计算过程如下:

以X1,…,Xn来表示n个样本数据,则:

其中,Min函数意为取两个参数中值较小的那一个作为结果.随后将计算结果显示在界面中,并依据结果对生产线进行改进.

3.3 图表分析

图表分析模块可采用外部导入的QCustomPlot 完成.一般情况是对采集的数据进行均值极差图(Xbar-R)和正态分布图的绘制,均值极差图可对采集的连续的数据进行分析,观察生产情况是否处于控制限中.正态分布图则可观察一个阶段生产的产品的概率分布,根据分布是否明显来判断生产过程的稳定性.

3.4 警报信息记录及导出

每个工位采集的数据中有一部分是工位报警信息.在工位类中预设报警的内容,并与PLC 发送来的报警标签进行对应.主界面中应设立相应的报警模块,每当某个工位的某个预警项收到警告数据时,即显示该工位为报警状态,并将警告数据对应的报警信息显示在该模块中,统计已发送的警告信息的数量,每天导出文本文档用作报警日志文件.

4 程序的部署

4.1 生产线结构及服务器部署

本系统部署在某轮毂装配线的工控机上,同时监控上料、清洗、孔径检测、压装等11 台工位,每一台工位由一个PLC 控制,由两台交换机构成生产线网络.由AGV 小车对轮毂进行运送,机械手臂进行轮毂的上料,完成一圈装配检测后,机械手臂将轮毂取下并区分放置,统计合格数与NG 数,发送至本系统用以记录生产信息,并将质量情况和检测结束时间导入另一张数据表.KEPServerEX的配置情况如图3所示,系统的类结构如图4所示.

图3 服务器配置情况

图4 系统类结构图

PLC 采用SIMATIC S7-1200 型号.S7-1200 设计紧凑、功能强大,市场应用十分广泛,并且逐渐取代S7-200 等产品[13],其通信能力极强,以太网接口可以实现与S7-200、Wincc,以及一些计算机或显控面板的OPC 通信.

设备驱动设置为Siemens TCP/IP Ethemet,服务器名预设为“Kepware.KEPServerEX.V5”.系统整体结构如图5所示.

图5 系统结构图

4.2 人机交互界面设计

依据现场提供的装配线信息和布局情况,在程序中大致建立装配线的二维模型,每个工位根据实际位置布局分布在模型的对应位置上,可操作区域用特殊颜色标记.整体界面如图6所示.

图6 人机交互界面示意图

4.3 核心分析模块

系统核心分析模块主要是针对CPK 值、XBar-R图、正态分布情况的分析,具体过程如下:

(1)CPK 分析:在系统中通过指定日期间隔来选择计算区间的数据,从而进行CPK 计算.根据实际的生产情况,初始化孔径、测笔(位移传感器)、锥度的USL与LSL:USL(孔径)=159.915,LSL(孔径)=159.845,USL(测笔)=37.00,LSL(测笔)=36.85,USL(锥度)=0.1,LSL(锥度)=−0.1.这里主要是对OP103 进行计算,部分参与计算的数据如表2所示,这里总共计算7 个CPK值,由表3的计算结果可以看出,当前103 工位处于A 级,状态良好.

(2)Xbar-R 图及正态分布分析:Xbar-R 控制图是取所有测量数据中心的部分数据来绘制,可以每小时连续取5 个数据,随着数据的不断增加,坐标轴会自动进行横向扩展,动态地展示数据情况.这里图表分析采用的是实时采集的数据,如图7所示,可以看出当前测量的数据皆处于控制限中,分布于中心线(CL)两侧.

表2 OP103 部分实际测量数据表

表3 OP103的CPK 计算结果

图7 OP103的Xbar-R 控制图

正态分布则是基于公式:

其中,μ为期望值,σ为标准差,对于各个标签数据进行正态分布分析,观测其概率分布情况.取当前数据库中保存的单个标签的所有数据,代入公式,根据计算结果绘制正态分布图.103 工位通道1~2(孔径)正态分布图如图8、图9所示,可以观察出孔径1、2 概率分布多数集中于[159.87,159.885]区间之中,生产情况稳定.

5 实验结果

本系统在卡车轮毂装配线中部署,成功地与生产线上的11 台工位通信并交互,部分设备采集数据如图10、图11所示,测试过程中发现传输延时小于800 ms,可满足一般生产线的需求.采集之后实时计算数据,并进行相应的分析,结果以文本和数据库的方式保存下来,或导出为数据报表.该系统经过多次实验测试、现场对接和修改后,最终形成了稳定版本.目前该系统已经在现场运行了10 个月,在此期间除一些界面设计的问题需要修改,系统主体和功能模块均无问题.

图8 孔径1 正态分布图

图9 孔径2 正态分布图

图10 OP103 部分采集数据

图11 OP107 部分采集数据

6 结束语

本文针对当下OPC 技术在自动化生产线的运用,提出了一种构建完整OPC 通信机制的思路,简化了通信机制的构建过程,在此基础上又融合一些在实际生产过程中常用的数据转储、分析计算等功能,构成了一个能满足一般生产线需求的上位机系统,并在实际过程中部署及使用,验证了该系统通信延时低、稳定性高等特点,为今后上位机监控软件的编写提供了一定的借鉴与参考.

下一阶段我们的工作主要是以下两个方面:(1)对系统的性能等问题进行优化;(2)对现有功能模块进行改进,使其更加方便直观地反馈信息.

猜你喜欢

正态分布工位客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
基于TIA系统快速换批生产方法的应用
浅析汽车涂装车间工位室体送排风节能减排设计
生活常态模式
工位大调整
虚拟专用网络访问保护机制研究
S7—200在三工位开关的应用分析
新华社推出新版客户端 打造移动互联新闻旗舰
二项分布及其应用、正态分布
浅析IEEE 802.1x及其客户端软件