基于OPC技术实现WINCC与FANUC数控机床的监控系统设计∗∗

2019-01-14 08:24高罗卿庄源昌
制造技术与机床 2019年1期
关键词:数控系统机床客户端

高罗卿 庄源昌

(①常州轻工职业技术学院,江苏常州213164;②中科院常州数控技术研究所,江苏常州213164)

SIMATIC WINCC组态软件是德国西门子公司的一款产品,属于HMI/SCADA类型的软件系统,主要用于对工业控制过程中各类设备、标签、控制画面等资源进行配置和编辑,并且可以方便地处理事件报警和系统报警,完成各类报表的统计生成和打印,支持多种数据通讯驱动接口,方便各类设备的实时数据采集与归档,在工业生产中应用极广.

WINCC与PLC的通讯连接应用比较常见,WINCC可以通过PROFIBUS、TCP/IP等协议与西门子PLC建立通讯,与不同品牌的PLC也可以通过MODBUS协议或者OPC协议进行连接.但是WINCC与不同品牌的数控系统之间通讯,则由于厂商之间的协议不同,通常无法直接建立通讯连接.

一般现有的对数控系统的数据采集,多数都采用数控系统厂商所提供的专用数据采集软件或者二次开发函数库(例如FANUC的FOCAS函数库),自行进行二次开发.有的工业场合也采用WINCC通过PLC与数控系统的PMC模块进行I/O之间的状态变化来交互信息.然而,这些方法都无法使WINCC与FANUC系统之间进行直接的数据通讯.

OPC技术的应用为解决这一问题打开了一条通道,可以通过高级语言VB或C#编写OPC客户端程序,OPC客户端程序通过FANUC公司提供的FOCAS函数库采集数控系统状态信息.同时,WINCC作为OPC的服务器,可以被OPC客户端连接,并且遵循OPC协议,读写服务器上的FANUC系统缓冲数据,从而实现WINCC与FANUC系统的数据通讯连接.

1 系统通讯方案

1.1 OPC标准

OPC协议是基于 Microsoft Windows技术,使用COM/DCOM(分布式组件对象模型)在软件组件之间交换数据.OPC规范定义了客户端和服务器、服务器和服务器之间的通讯接口,包括访问实时数据、监控报警和事件、访问历史数据等应用.

OPC标准于1996年首次发布,最初的目标是将PLC特定协议(MODBUS、PROFIBUS等)抽象成标准化接口,允许HMI系统通过OPC的协议对设备进行读与写的操作,OPC协议标准仅限于Windows操作系统,现在广泛应用在工业自动化、制造业、石油和天然气、可再生能源和公共事业中.

1.2 WINCC读取FANUC系统的通讯结构

系统主要通过WINCC后台变量管理作为OPC的服务器,建立内部变量及变量名称,通过本地网络与本机上的OPC客户端软件通讯,OPC客户端软件应用FOCAS 1/2函数库与FANUC机床通过以太网建立TCP连接,FANUC数控系统通过FOCAS接口,接受OPC客户端的读写操作.如图1所示.

2 系统设计与实现

2.1 WINCC的OPC服务器设置

OPC的服务器主要功能是提供通讯程序和数据存储程序,通过OPC标准接口供其它软件使用.OPC(DA 2.0)标准定义了两个对象OPCServer和OPCGroup,OPCServer负责 OPCGroup对象的管理、OPCItem属性查询、连接点管理、地址空间浏览等.OPCGroup对象负责管理数据项(Item),包括数据项的同步/异步访问、添加删除、属性查询等.

WINCC在软件启动的时候默认开启了OPC服务器功能,默认的服务器名称为“OPCServer.WinCC.1”,在变量管理中,建立OPC服务器的变量名,指定变量的数据类型及长度,如图2所示,建立FanucAlarmstr变量,数据类型是文本变量8位字符集,支持UTF-8中字符集,在OPC客户端中就可以寻找到该变量名,并读写该变量值.

2.2 OPC客户端设计

OPC客户端的主要任务是创建服务器对象、建立与服务器的连接、浏览OPC服务器、通过OPC接口读写数据、断开连接等.

OPC的客户端接口方式有很多种,主要有:(1)OPCNetAPI接口,需用OPCNetAPI.dll,OPCNetAPI.com.dll.(2)自动化接口,需用OPCDAAuto.dll.(3)自定义接口.使用C#语言开发时,一般采用自动化接口.

本项目的OPC客户端程序的主要功能是随WINCC软件开机自启动,启动后分别枚举本地的WINCC服务器和使用FOCAS接口连接FANUC机床,客户端一直尝试连接,直到两部分都连接成功.具体流程图如图3所示.

连接上WINCC服务器后,OPC客户端会自动遍历服务器上的Item,寻找和加载要更新的变量,然后开启一个定时器,按照固定的周期,不断的将FANUC的数据缓冲区数据刷新到WINCC服务器对应Item变量中,并接受服务器写数据操作,更改缓冲区的数据.

当OPC客户端连接上FANUC系统后,会返回正确的句柄,此时客户端会开启一个定时器,按照固定的周期,通过cnc_rdmacror函数批量地读取机床的宏变量区数据,通过cnc_rdalmmsg2函数批量地读取机床的多种报警信息,同时检查数据缓冲区,判断写入FANUC系统数据区的数据有没有改变,如果有改变,则通过cnc_wrmacro函数修改有变化的数据到FANUC系统宏变量区.通过缓冲区的数据交换和FOCAS接口,实现WINCC对FANUC机床的信息采集和数值写入功能.

2.3 FANUC系统的连接

工业应用中与FANUC的系统连接一般有3种方式:(1)以太网方式,要求FANUC系统具备以太网功能,通过FOCAS开发软件包开发数据采集软件.(2)串口数据采集,在加工宏程序中加入FANUC的串口打印输出指令将数据从串口输出.但是输出数据有限,操作方式、报警状态、倍率信息等输出比较困难.(3)PMC交互,通过IO电平状态交互信息,只能交互简单的点位状态信息.

本文采用的系统是FANUC 0i-MD,系统默认支持FOCAS网络功能,采用FANUC提供的FOCAS 1/2函数库编写程序就可以与机床进行网络通讯.使用系统的FOCAS功能只需要对系统的IP地址和TCP的端口号进行配置,如图4所示,使IP地址与OPC客户端所在主机在同一个网段内就可以使用了.

OPC客户端程序通过使用Focas 1/2函数库接口函数与FANUC系统建立连接:

Focas1.cnc_allclibhndl3("192.168.0.100",8193,10,out Flibhndl);

连接成功返回EW_OK状态,表示与机床的网络通讯连接成功.运行Focas 1/2函数库需要两个必不可少的链接库 Fwlib32.dll和 fwlibe1.dll.其中Fwlib32.dll负责CNC/PMC数据读写接口,fwlibe1.dll负责网络连接和TCP服务的接口.

2.4 FOCAS接口报警采集

针对FANUC 0i-MD系统,读取系统报警主要有cnc_rdalarm2和cnc_rdalmmsg2.其中cnc_rdalarm2的返回是数控机床报警号,cnc_rdalmmsg2的函数返回是数据结构体Focas1.ODBALMMSG2,该结构体可包含多条报警信息,每条报警信息包含报警号、报警类型、哪个轴报警、中文报警详细信息等,可以同时了解同一时期系统的报警情况.函数应用流程如图5所示,读取报警信息的函数体为:

Focas1.cnc_rdalmmsg2(Flibhndl,type,ref num,odbalmmsg2);

3 WINCC与FANUC的数据连接调试

系统的任务是读取5个系统宏变量(系统测量数据),宏变量地址为500~504,将数据显示在WINCC的图形显示界面,并设置5个误差参数变量到FANUC的系统宏变量中,宏变量的地址设定为505~509.同时采集系统的报警号和中文报警信息.

图6是WINCC的图形显示状态:左边是读取FANUC系统宏变量500~504区间的机床测量值,右边是需写入到FANUC系统的误差范围值,下面是FANUC系统的报警号及此时的中文报警信息.

图7是OPC采集客户端的运行主界面,开机自动启动到后台运行,并自动地枚举WINCC的服务器,连接上后加载WINCC服务器的Item,并将需要更新的变量加载到更新列表中,列表中显示的是WINCC与FANUC系统交互过程中的中间数据.

图8是FANUC系统宏变量区数据及报警状态.其中500~504的数据是OPC客户端传递给WINCC服务器的测量值.区间对应的数据是WINCC界面设置,通过OPC客户端写入FANUC系统的,并且此时有急停报警显示,实验显示OPC客户端完成了WINCC与FANUC系统的网络通讯,实现了信息读取与数据写入,满足了现场的控制需求.

4 结语

WINCC是使用最普遍的HMI组态软件,FANUC是高档数控系统中使用较多的数控系统之一,利用OPC的服务器与客户端技术,使用C#语言编写OPC客户端程序,调用FOCAS 1/2函数库软件网络监控FANUC数控系统,可以实现WINCC软件与FANUC机床的无缝对接,在实际工程应用过程中有很大意义,可以快速地实现FANUC机床的网络化状态采集与控制.

猜你喜欢
数控系统机床客户端
你的手机安装了多少个客户端
你的手机安装了多少个客户端
中外高端数控系统差距分析及对策
机床展会
2021第24届青岛国际机床展开幕
基于FPGA的高性能电离层测高仪数控系统设计
如何看待传统媒体新闻客户端的“断舍离”?
《机床与液压》投稿要求
基于嵌入式Soft-PLC 的三轴数控系统设计
基于以太网的计算机与数控系统通信技术研究