一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

OPC客户端实现主备提高可靠性的控制方法与流程

2022-09-03 20:20:00 来源:中国专利 TAG:

opc客户端实现主备提高可靠性的控制方法
技术领域
1.本发明属于opc ua通讯技术领域,涉及一种opc客户端实现主备提高可靠性的控制方法。


背景技术:

2.eap系统(equipment automation programming,设备自动化系统)实现了对生产线上机台的实时监控,是工厂自动化不可缺少的控制系统。eap系统与fab中的机台紧密相关,系统的设计与开发必须与生产线的机台实际生产流程相一致,才能达到自动化控制机台生产的目的。所有的生产过程,生产数据和机台状态数据都是通过eap系统收集,然后传送给mes、fdc等服务器对应的数据库,mes通过这些数据对产品和设备事件进行跟踪和监控。eap和设备(机台)联机的通讯中,opc ua是一种使用比较广泛的技术。
3.在opc ua(对象链接和嵌入过程控制的统一架构)通讯中,一般是opc客户端从opc服务器读取或者写入数据,opc服务器连接设备plc,把数据实际写入到设备plc中,在一般场景中能够满足大部分的需求,特别是数据采集的需求。但是,随着不同行业工艺的改进,设备自动化程度的提高,对opc通讯的要求越来越高,尤其是生产线部署了自动搬送设备之后,产线的生产就完全实现了全自动化的生产,这时opc通讯出现异常,opc服务器软件或者运行opc服务器的操作系统出现问题后,整个产线的生产就会暂停,影响工厂的产能。因此,对opc高可用的需求慢慢地在不同行业里面也出现了。传统的做法,要求opc厂商提供高可用组件,需要单独采购,市场上不同的opc厂商,有的有高可用组件,有的没有高可用组件。
4.总之,现有opc通讯实现高可用性,都需要采购opc厂商的高可用组件,需要重新采购,费用比较贵,而且对于之前已经采购的opc服务器需要更新和升级,费时费力。如果不提高可用性,一旦出现问题,对工厂产能影响比较大,客户不能接受。


技术实现要素:

5.本发明的目的在于,克服现有技术的不足,提供一种无需采购高可用组件、能实时实现opc高可用性、能提高整个系统稳定性的opc客户端实现主备提高可靠性的控制方法。
6.本发明的目的是通过以下技术方案实现的:
7.本发明一种opc客户端实现主备提高可用性的控制方法如下:
8.在opc客户端与设备plc之间设置多台opc服务器,多台opc服务器的配置完全相同;多台opc服务器同时与设备plc通讯,opc服务器读写设备plc数据;多台opc服务器同时与opc客户端通讯,opc客户端同时访问多台opc服务器,自主切换opc服务器;对opc客户端进行封装改造,其方法如下:在opc客户端现有的数据读取线程、事件处理线程和命令处理线程的基础上,增设一个控制程序模块(即opc连接管理器);所述opc连接管理器分别与多台opc服务器连接;所述opc连接管理器分别与数据读取线程和命令处理线程连接;数据读取线程与事件处理线程连接。
9.进一步地,数据读取线程的工作方法如下:
10.(1)循环读取配置文件定义的数据位(事件上报位或者设备正常运行位)的值,如果正常读取,生成事件上报的消息,发给事件处理线程去处理;
11.(2)如果读取失败,则自动切换到另外的opc客户端连接去读取数据;成功后按照上一步骤执行;
12.(3)如果读取还是失败,则等待一段时间,循环执行上一步骤;
13.(4)如果读取失败超过配置的次数,则报告错误;
14.(5)报告错误后,opc客户端会尝试重新连接。
15.进一步地,事件处理线程的处理方法,包括下述步骤:
16.(1)事件处理线程接收到消息后,根据逻辑会先读取数据;
17.(2)读完数据后,再写事件应答位的信号,同时启动超时检测;
18.(3)监控事件上报位的值,发现事件上报位的值为0(即off,关)后,再把事件应答位的值改为0(off);
19.(4)同时关闭超时监控;
20.(5)如果超时发生,则报告错误,再把事件应答位的值改为0(off)。
21.数据读取线程读取设备事件信号,监控到设备事件发生时,事件处理线程会按照双方定义的信号时序去读取数据和写事件应答位信号,其时序要求如下:
22.1)设备把数据写到对应的数据区后,设备plc把事件上报位设置为1(即on,开);
23.2)设备plc启动t1定时器去检查t1超时(t1超时时间是4秒);在这个时间内,设备plc不能再使用同样的事件上报位上报任何事件;
24.3)eap系统在收到事件上报位的信号为1后读取数据,然后把对应的事件应答位设置为1(on);同时启动t2定时器去检查t2超时(t2超时时间是2秒);
25.4)设备plc在收到事件应答位的值为1(on)的信号后,把事件上报位修改为0(off)后可以继续做后续的动作;
26.5)eap系统在收到事件上报位的值修改为0的信号后,把事件应答位的值修改为0(off);eap系统会在t2超时时间内一直监控事件上报位的信号;如果超出t2超时时间(t2超时时间是2秒)事件上报位的值没有变成0(off),eap系统会报告错误。
27.说明:
28.●
设备供应商要提供t1定时器时间设置功能(默认值=4秒)。
29.·
设备plc在把数据写入对应的数据区后,在同一个事件交互过程中数据区内容不可以改变,数据保持直至下一个事件流程开始。
30.·
设备事件包括很多,例如设备报警、设备状态、设备面板进出、端口状态等等。
31.进一步地,命令处理线程的处理方法,包括下述步骤:
32.(1)当发现有命令需要发送给设备时,把数据写到数据区,再把命令位的值改为1(on),同时启动t1定时器监控应答是否超时;如果读取失败,则切换到另一个opc客户端连接执行同样的操作;
33.(2)当监控到命令应答位的值改为1(on)后,读取应答的数据和返回值;
34.(3)把命令位的值改为0(off),同时关闭t1超时监控;
35.(4)如果超时发生,则报告错误,再把命令位的值改为0(off)。
36.命令处理线程:给设备下发命令,主要用来下发工艺菜单(recipe)参数,时间同
步,下发批次信息等各种数据,eap系统单独线程处理命令下发,且命令下发的信号需要满足以下时序要求:
37.1)eap系统把数据写到对应的数据区后,eap系统把命令位的值修改为1(on);
38.2)eap系统启动t1定时器去检查t1超时(t1超时时间是4秒);
39.3)设备plc在收到命令位的值为1(on)的信号后读取数据,读完数据后,验证数据,执行命令并把结果数据写到对应的数据区,把执行结果的返回代码写入返回代码的数据区;然后再把对应的命令应答位的值修改为1(on);同时启动t2定时器去检查t2超时;
40.4)eap系统在收到命令应答位的值修改为1的信号后把命令位的值修改为0
41.(off);如果在t1时间内设备plc没有把命令应答位的值修改为1(on),eap系统会报警,并自动把命令位的值修改为0(off);
42.5)设备plc在收到命令位的值修改为0的信号后把命令应答位的值修改为o(off);设备plc在t2超时时间内要一直监控命令位的值;如果超出t2超时时间命令位的值没有修改为0(off),设备plc要报告错误(t2超时时间是2秒)。
43.设备供应商要提供t2定时器时间设置功能(默认值=2秒)。
44.本发明一种opc客户端实现主备提高可用性的控制方法,主要是通过opc客户端同时访问多台opc服务器,自主切换opc服务器的方式实现的。opc客户端访问opc服务器,主要是通过opc服务器读写plc数据,进而控制产线的自动化生产。
45.本发明的有益效果:
46.本发明的opc客户端实现主备提高可靠性的控制方法,在现有opc服务器的软件的基础上,通过opc客户端实现主备提高可用性的控制方法,能够实现opc整体的高可用性,避免单独一台opc服务器问题引起整个通讯断开,生产停止的问题,提供系统高可用性,满足工厂全自动化生产的需求,提高生产效率,避免产能损失。
47.本发明的opc客户端实现主备提高可用性的控制方法,不需要opc厂商提供高可用组件,通过在客户端实现同时访问多个opc服务器的方式,实时实现opc高可用性,不需要手动切换opc服务器,减少了opc服务器down机对产线生产的影响,提高了整个系统的稳定性。
48.本发明的opc客户端实现主备提高可靠性的控制方法,与现有技术相比,具有以下优点:
49.1.不需要采购单独的高可用组件,通过opc客户端同时访问多个opc服务器的主备方式,实现实时切换,成本小,时间快。
50.2.使用opc客户端实现主备提高可用性的方法,避免产线停机引起的产能下降,减少生产错误,提高产品品质。
附图说明
51.图1是现有技术中传统的opc控制方式的示意图;
52.图2是现有技术中opc服务器出现问题时opc客户端与plc通讯中断的示意图;
53.图3是本发明中多台服务器同时与plc通讯的示意图;
54.图4是本发明中一台opc服务器出现问题opc客户端与plc通讯不中断的示意图;
55.图5是本发明的控制方法中opc客户端的控制程序的逻辑控制模块的示意图;
56.图6是本发明中的事件处理线程的时序要求的示意图;
57.图7是本发明中的命令处理线程的时序要求的示意图。
具体实施方式
58.以下结合附图和实施例对本发明作进一步的说明。
59.实施例
60.如图3-图6所示,本发明一种opc客户端实现主备提高可靠性的控制方法如下:
61.在opc客户端与设备plc之间设置多台opc服务器,多台opc服务器的配置完全相同;多台opc服务器同时与设备plc通讯,opc服务器读写设备plc数据;多台opc服务器同时与opc客户端通讯,opc客户端同时访问多台opc服务器,自主切换opc服务器。
62.本发明一种opc客户端实现主备提高可靠性的控制方法,主要是通过opc客户端同时访问多台opc服务器,自主切换opc服务器的方式实现的。opc客户端访问opc服务器,主要是通过opc服务器读写plc数据,进而控制产线的自动化生产。(opc客户端既可以从opc服务器读出数据,也可以向opc服务器写入数据)。
63.传统的控制方式,opc客户端和opc服务器、plc的连接方式如图1所示。
64.这种方式下,当opc服务器出现问题的时候,所有opc客户端和plc的通讯都会中断,产线生产就会受到影响,无法下发recipe(工艺菜单),采集数据,控制产线生产,如图2所示。
65.本发明的控制方式的技术构思如下:要提高opc服务器的高可用性,需要部署多台opc服务器,多台服务器同时和plc通讯,如图3所示。
66.这时,即使一台opc服务器出现问题,opc客户端可以通过另外一台opc服务器访问plc,读写plc数据。如图4所示。
67.本发明的控制方式,虽然原理比较简单,但是,要对opc客户端进行封装改造,才能支持同时访问两个或者多个opc服务器,同时,两台或者多台opc服务器的配置要完全一样。
68.对opc客户端进行封装改造的方法如下:
69.在opc客户端现有的数据读取线程、事件处理线程和命令处理线程的基础上,增设一个控制程序模块(即opc连接管理器);所述opc连接管理器对外分别与多台opc服务器连接;所述opc连接管理器对内分别与数据读取线程和命令处理线程连接;数据读取线程与事件处理线程连接。
70.为了说明opc客户端的控制程序的控制方法,根据数据采集和指令下发的功能,其主要的逻辑控制模块,如图5所示:
71.1.opc服务器配置
72.opc服务器必须配置多台,至少2台,而且其配置必须完全相同。这块的维护,即配置的修改、增加节点、删除节点、修改节点必须同步。
73.2.opc连接管理器
74.opc连接管理器,根据部署的opc服务器,维护opc客户端到opc服务器的通讯连接管理;连接或者通讯通道(channel)必须同时打开,并保持一直通讯的状态。
75.opc连接管理器,根据配置文件配置的opc服务器地址,同时建立和两台opc服务器的连接,同时管理opc客户端到opc服务器的通讯状态,根据读写数据的返回值和心跳信号,检测opc客户端和opc服务器的通讯情况。
76.3.数据读取(read data)线程
77.数据读取,分为几种不同类型,首先是监控设备或者plc程序是否正常运行的eqp alive(设备正常运行)信号,代表设备事件发生的event(事件)信号,以及设备参数的数据区。
78.eqp alive(设备正常运行)信号,由设备plc写数据,连接opc服务器上的eap系统(设备控制程序)读取数据,每4秒on/off一次,以此,eap系统读取其数据,判断设备软件是否在正常运行。
79.event(事件)信号,由设备软件或者plc程序写数据,eap系统单独线程实时读取数据,监控bit信号是否有变化,以此监控设备正在发生的事件。
80.设备参数的数据区,由eap系统定时读取或者按照条件触发读取。
81.所有的读取操作,通过opc client(opc客户端)的api(应用编程接口)执行,并判断读取结果,如果读取失败,立即尝试通过备机(备用的另一机opc服务器)的opc服务器读取数据,再判断读取结果,只有所有配置的opc服务器都读取失败时,才判断本次读取失败。
82.4.事件处理(event)线程
83.数据读取线程读取设备事件(event)信号,监控到设备事件(event)发生时,事件处理线程会按照双方定义的信号时序去读取数据和写事件应答位(event reply bit)信号,其时序要求如图6所示:
84.1)设备把数据写到对应的数据区后,设备plc把事件上报位(event bit)设置为1(on)。
85.2)设备plc启动t1定时器(t1 timer)去检查t1超时(timeout,t1超时时间是4seconds)。在这个t1超时时间内,设备plc不能再使用同样的事件上报位(event bit)上报任何事件。
86.3)eap系统在收到事件上报位(event bit)的信号为1(on)后读取数据,然后把对应的事件应答位(event reply bit)设置为1(on)。同时启动t2定时器(t2 timer)去检查t2超时(t2 timeout,t2超时时间是2秒)。
87.4)设备plc在收到事件应答位(event reply bit)的值为1(on)的信号后,把事件上报位(event bit)修改为0(off)后可以继续做后续的动作。
88.5)eap系统在收到事件上报位(event bit)的值修改为0(off)的信号后,把事件应答位(event reply bit)的值修改为0(off)。eap系统会在t2超时时间(t2 timeout)内一直监控事件上报位(event bit)的信号。如果超出t2超时时间(t2 timeout时间是2秒)事件上报位(event bit)的值没有变成0(off),eap系统会报告错误。
89.说明:
90.●
设备供应商要提供t1定时器时间设置功能(默认值=4秒)。
91.·
设备plc在把数据写入对应的数据区后,在同一个事件交互过程中数据区内容不可以改变,数据保持直至下一个事件流程开始。
92.·
设备事件包括很多,例如设备报警、设备状态、设备panel(面板)进出,port(端口)状态等等。
93.5.命令处理(command)线程
94.给设备下发命令,主要用来下发工艺菜单(recipe)参数,时间同步,下发批次信息
等各种数据,eap系统单独线程处理命令下发,且命令下发的信号需要满足以下时序要求如图7所示:
95.6)eap系统把数据写到对应的数据区后,eap系统把命令位(command bit)的值修改为1(on)。
96.7)eap系统启动t1定时器(t1 timer)去检查t1超时(t1 timeout,t1超时时间是4秒)。
97.8)设备plc在收到命令位(command bit)的值为1(on)的信号后读取数据,读完数据后,验证数据,执行命令并把结果数据写到对应的数据区,把执行结果的返回代码写入返回代码的数据区。然后再把对应的命令应答位(command reply bit)的值修改为1(on)。同时启动t2定时器(t2 timer)去检查t2 timeout。
98.9)eap系统在收到命令应答位的值修改为1(on)的信号后把命令位的值修改为0(off)。如果在t1时间内设备plc没有把命令应答位(command reply bit)的值修改为1(on),eap系统会报警,并自动把命令位(command bit)的值修改为0(off)。
99.10)设备plc在收到命令位(command bit)的值修改为0(off)的信号后把命令应答位的值修改为o(off)。设备plc在t2 timeout时间(t2 timeout时间是2秒)内要一直监控命令位(command bit)的值。如果超出t2 timeout时间命令位(command bit)的值没有修改为0(off),设备plc要报告错误。
100.说明:设备供应商要提供t2定时器时间设置功能(默认值=2秒)。
101.在实现同样功能的方法中,还有以下方法:采购opc厂商的高可用组件,由opc服务器端实现opc访问的高可用性。这种方式成本比较贵,对老版本opc服务器需要升级更新,也需要升级成本。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献