一种用于生产线仿真的OPC通讯方法、介质及设备与流程
未命名
08-12
阅读:89
评论:0
一种用于生产线仿真的opc通讯方法、介质及设备
技术领域
1.本发明属于opc通讯技术领域,具体涉及一种用于生产线仿真的opc通讯方法、介质及设备。
背景技术:
2.现有的生产线仿真plc读取技术一般通过对plc现存的所有节点进行遍历,再依次遍历节点下的子节点,再对信号节点进行筛选获得需要的信号数据,但通过节点namespaceindex和identifier去读取节点数据较为耗时,如果节点较多,在进行生产线仿真时会占用较多资源,导致出现延迟、卡顿等失真情况。
3.对于大型复杂生产线,一般plc内设置的节点数量较多,如果针对所有节点在每一帧进行遍历,再刷新信号,会在信号刷新时占用大量的计算机资源,导致仿真动画的卡顿,并且还会导致无法及时准确获取当前生产线内各设备的状态。
技术实现要素:
4.为了克服上述技术缺陷,本发明提供了一种用于生产线仿真的opc通讯方法,以减少生产线仿真的卡顿情况,实现仿真画面与实际生产线进程一致。
5.为了解决上述问题,本发明公开了以下技术方案:
6.一种用于生产线仿真的opc通讯方法,包括如下步骤:
7.获取opc服务器的url;
8.基于opc服务器的url创建opc客户端;
9.通过opc客户端对opc服务器进行递归遍历,得到设备plc的interface节点;
10.对interface节点进行递归遍历,获取子节点数据,并监视子节点;
11.当监视到子节点数据变化时,调用回调函数更新仿真状态。
12.进一步的,还包括如下步骤:
13.从opc服务器获取用户信息,用户信息包括用户账号和用户密码。
14.进一步的,步骤通过opc客户端对opc服务器进行递归遍历,得到设备plc的interface节点,包括如下步骤:
15.控制opc客户端与opc服务器连接;
16.根据用户信息,通过opc客户端登录opc服务器;
17.对opc服务器进行递归遍历,得到设备plc的interface节点。
18.进一步的,步骤对interface节点进行递归遍历,获取子节点数据,并监视子节点,包括如下步骤:
19.以interface节点中的namespaceindex和identifier为起始,进行递归遍历,寻找并获取子节点数据,子节点数据包括子节点的身份信息和当前值;
20.若已获取当前interface节点中所有子节点,判断identifier是否到达边界;
21.若identifier到达边界,判断namespaceindex是否到达边界;
22.若namespaceindex到达边界,对已获取的子节点设置回调函数进行监视。
23.进一步的,步骤当监视到子节点数据变化时,调用回调函数更新仿真状态,包括如下步骤:
24.当监视到子节点的数据变化时,调用回调函数,获取变化后子节点的对象,对象包括数据包,数据包包括子节点的身份信息和变化后的当前值;
25.调用线程池中空闲的处理线程对数据包进行处理,获得更新的信号;
26.根据更新的信号,更新生产线的仿真状态。
27.进一步的,还包括如下步骤:
28.若identifier未到达边界,更新identifier;
29.以interface节点中的namespaceindex和更新后的identifier为起始,再次进行递归遍历。
30.进一步的,还包括如下步骤:
31.若namespaceindex未到达边界,更新identifier;
32.以interface节点中的namespaceindex和更新后的identifier为起始,再次进行递归遍历。
33.进一步的,还包括如下步骤:
34.调用通讯线程,保持opc客户端处于运行通讯状态。
35.与现有技术相比,本发明具有以下有益效果:
36.本发明公开了一种用于生产线仿真的opc通讯方法,通过opc服务器对opc服务器进行递归遍历,得到设备plc的interface节点,针对interface节点进行递归遍历,监视子节点的刷新情况,获取变化的子节点数据以更新仿真状态,保证节点正常刷新,避免其他无关的遍历浪费计算机资源,减少仿真过程中的卡顿情况。
37.本发明还公开了一种计算机可读存储介质,其为计算机可读的存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上述的通讯方法。
38.本发明还公开了一种计算机设备,包括:
39.处理器;
40.用于存储所述处理器可执行指令的存储器;
41.其中,所述处理器被配置为执行所述指令,以实现上述的通讯方法。
附图说明
42.下面结合附图对本发明的具体实施方式作进一步详细的说明,其中:
43.图1为实施例1所述的通讯方法的流程图;
44.图2为实施例3所述的设备的示意图。
具体实施方式
45.以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
46.实施例1
47.如图1,本实施例公开了一种用于生产线仿真的opc通讯方法,包括如下步骤:
48.s1、获取opc服务器的url。
49.具体的,步骤s1后还包括以下步骤:
50.从opc服务器获取用户信息,用户信息包括用户账号和用户密码。
51.s2、基于opc服务器的url创建opc客户端。
52.具体的,步骤s2后还包括以下步骤:
53.定义第一字符串变量。
54.将用户信息赋值给第一字符串变量。
55.s3、通过opc客户端对opc服务器进行递归遍历,得到设备plc的interface节点。
56.具体的,步骤s3包括如下步骤:
57.控制opc客户端与opc服务器连接。
58.通过opc客户端和第一字符串变量,登录opc服务器。
59.对opc服务器进行递归遍历,得到设备plc的interface节点。
60.s4、对interface节点进行递归遍历,获取子节点数据,并监视子节点。
61.具体的,步骤s4包括如下步骤:
62.以interface节点中的namespaceindex和identifier为起始,进行递归遍历,寻找并获取子节点数据,子节点数据包括子节点的身份信息和当前值。
63.若已获取当前interface节点中所有子节点,判断identifier是否到达边界。
64.若identifier到达边界,判断namespaceindex是否到达边界。
65.若namespaceindex到达边界,对已获取的子节点设置回调函数进行监视。
66.在上述实施例中,若identifier未到达边界,更新identifier。
67.以interface节点中的namespaceindex和更新后的identifier为起始,再次进行递归遍历。
68.在上述实施例中,若namespaceindex未到达边界,更新identifier。
69.以interface节点中的namespaceindex和更新后的identifier为起始,再次进行递归遍历。
70.s5、当监视到子节点数据变化时,调用回调函数更新仿真状态。
71.具体的,步骤s5包括如下步骤:
72.当监视到子节点的数据变化时,调用回调函数,获取变化后的子节点对象,对象包括处理后的数据包,数据包包括子节点的身份信息和变化后的当前值。
73.调用线程池中空闲的处理线程对数据包进行处理,获得更新的信号。
74.根据更新的信号,更新生产线的仿真状态。
75.在上述实施例中,还包括如下步骤:
76.调用通讯线程,保持opc客户端处于运行通讯状态。当opc客户端与opc服务器成功连接后,opc客户端与opc服务器一直保持连接状态,opc客户端可以随时接收设备plc的信息。
77.本发明通过opc服务器对opc服务器进行递归遍历,得到设备plc的interface节点,针对interface节点进行递归遍历,监视子节点的刷新情况,获取变化的子节点数据以更新仿真状态,保证节点正常刷新,避免其他无关的遍历浪费计算机资源,减少仿真过程中的卡顿情况。此外,分别调用处理线程和通讯线程,调用通讯线程使得opc客户端与opc服务
器保持通讯连接,同时当子节点出现新变化时调用另外的处理线程对数据包进行处理,获得更新的信号,将数据处理和通讯分开进行,采用异步处理回调,避免信号堵塞,减少仿真的误差和卡顿情况,使得仿真画面与实际生产线的进程一致。
78.实施例2
79.本实施例公开了一种计算机可读存储介质,其为计算机可读的存储介质,其上存储有计算机程序,所述计算机程序被执行时实现实施例1所述的方法。
80.实施例3
81.如图2,本实施例公开了一种计算机设备,包括:
82.处理器;
83.用于存储所述处理器可执行指令的存储器;
84.其中,所述处理器被配置为执行所述指令,以实现实施例1所述的方法。
85.以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,故凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
技术特征:
1.一种用于生产线仿真的opc通讯方法,其特征在于,包括如下步骤:获取opc服务器的url;基于opc服务器的url创建opc客户端;通过opc客户端对opc服务器进行递归遍历,得到设备plc的interface节点;对interface节点进行递归遍历,获取子节点数据,并监视子节点;当监视到子节点数据变化时,调用回调函数更新仿真状态。2.根据权利要求1所述的通讯方法,其特征在于,还包括如下步骤:从opc服务器获取用户信息,用户信息包括用户账号和用户密码。3.根据权利要求2所述的通讯方法,其特征在于,步骤通过opc客户端对opc服务器进行递归遍历,得到设备plc的interface节点,包括如下步骤:控制opc客户端与opc服务器连接;根据用户信息,通过opc客户端登录opc服务器;对opc服务器进行递归遍历,得到设备plc的interface节点。4.根据权利要求1所述的通讯方法,其特征在于,步骤对interface节点进行递归遍历,获取子节点数据,并监视子节点,包括如下步骤:以interface节点中的namespaceindex和identifier为起始,进行递归遍历,寻找并获取子节点数据,子节点数据包括子节点的身份信息和当前值;若已获取当前interface节点中所有子节点,判断identifier是否到达边界;若identifier到达边界,判断namespaceindex是否到达边界;若namespaceindex到达边界,对已获取的子节点设置回调函数进行监视。5.根据权利要求1所述的通讯方法,其特征在于,步骤当监视到子节点数据变化时,调用回调函数更新仿真状态,包括如下步骤:当监视到子节点的数据变化时,调用回调函数,获取变化后子节点的对象,对象包括数据包,数据包包括子节点的身份信息和变化后的当前值;调用线程池中空闲的处理线程对数据包进行处理,获得更新的信号;根据更新的信号,更新生产线的仿真状态。6.根据权利要求4所述的通讯方法,其特征在于,还包括如下步骤:若identifier未到达边界,更新identifier;以interface节点中的namespaceindex和更新后的identifier为起始,再次进行递归遍历。7.根据权利要求4所述的通讯方法,其特征在于,还包括如下步骤:若namespaceindex未到达边界,更新identifier;以interface节点中的namespaceindex和更新后的identifier为起始,再次进行递归遍历。8.根据权利要求1所述的通讯方法,其特征在于,还包括如下步骤:调用通讯线程,保持opc客户端处于运行通讯状态。9.一种计算机可读存储介质,其特征在于,其为计算机可读的存储介质,其上存储有计算机程序,所述计算机程序被执行时实现如权利要求1-8中任一项所述的通讯方法。10.一种计算机设备,其特征在于,包括:
处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如权利要求1-8中任一项所述的通讯方法。
技术总结
本发明公开了一种用于生产线仿真的OPC通讯方法、介质及设备,所述方法包括如下步骤:获取OPC服务器的URL;基于OPC服务器的URL创建OPC客户端;通过OPC客户端对OPC服务器进行递归遍历,得到设备PLC的Interface节点;对Interface节点进行递归遍历,获取子节点数据,并监视子节点;当监视到子节点数据变化时,调用回调函数更新仿真状态。本发明通过OPC服务器对OPC服务器进行递归遍历,得到设备PLC的Interface节点,针对Interface节点进行递归遍历,监视子节点的刷新情况,获取变化的子节点数据以更新仿真状态,保证节点正常刷新,避免其他无关的遍历浪费计算机资源,减少仿真过程中的卡顿情况。中的卡顿情况。中的卡顿情况。
技术研发人员:黄运保 李峥 唐国宝 陈余刚
受保护的技术使用者:广东省机器人创新中心有限公司
技术研发日:2023.05.11
技术公布日:2023/8/9
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
