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

对多个PLC数据的采集方法、装置、设备及可读存储介质与流程

2022-05-26 22:21:15 来源:中国专利 TAG:

对多个plc数据的采集方法、装置、设备及可读存储介质
技术领域
1.本发明涉及数据采集领域,特别涉及一种对多个plc数据的采集方法、装置、设备及可读存储介质。


背景技术:

2.智能网关可以接入多个plc控制器,同时还可以接入用于配置智能网关的上位机,其中,智能网关在对进行数据采集时是对plc数据按顺序逐个对plc采集,而plc点表配置往往很零散,导致每采集一个数据点就需要查询一次plc对应的寄存器,来回交互的次数过多,特别是串口采集的情况下造成很大的时延。
3.有鉴于此,提出本技术。


技术实现要素:

4.本发明公开了一种对多个plc数据的采集方法、装置、设备及可读存储介质,旨在解决现有技术中的网关对多个plc数据进行采集时会造成时延的问题。
5.本发明第一实施例公开了一种对多个plc数据的采集方法,包括:
6.接收上位机发送的多条查询指令,其中,每一所述查询指令用于读取对应的plc的一个数据表;
7.分析多条所述查询指令,将同一类别且在预设范围内的查询指令进行合并生成合并指令,并将所述合并指令发送至对应的plc;
8.读取由对应的plc发送的与所述合并指令相对应的数据包;
9.对所述数据包进行拆包,生成与每一所述查询指令对应的数据。
10.优选地,在所述将所述合并指令发送至对应的plc之后,还包括:
11.获取对当前plc的读取时长;
12.在判断到所述读取时长超时预设次数时,将所述当前plc认定为离线,在本次轮询内,跳过对所述当前plc的读取。
13.优选地,所述在判断到所述读取时长超时预设次数时,将所述当前plc认定为离线之后还包括:
14.在下一次轮询时,重新对所述当前plc进行超时判断。
15.优选地,在所述将所述合并指令发送至对应的plc之后,还包括:
16.确定与所述合并指令所对应的待接收数据包的第一数据长度;
17.实时检测读取到的数据包的数据长度,在判断到所述数据包的数据长度达到第一数据长度时,停止读取。
18.本发明第二实施例公开了一种对多个plc数据的采集装置,包括:
19.查询指令接收单元,用于接收上位机发送的多条查询指令,其中,每一所述查询指令用于读取对应的plc的一个数据表;
20.合并指令生成单元,用于分析多条所述查询指令,将同一类别且在预设范围内的
查询指令进行合并生成合并指令,并将所述合并指令发送至对应的plc;
21.读取单元,用于读取由对应的plc发送的与所述合并指令相对应的数据包;
22.解析单元,用于对所述数据包进行拆包,生成与每一所述查询指令对应的数据。
23.优选地,在所述将所述合并指令发送至对应的plc之后,还包括:
24.获取对当前plc的读取时长;
25.在判断到所述读取时长超时预设次数时,将所述当前plc认定为离线,在本次轮询内,跳过对所述当前plc的读取。
26.优选地,所述在判断到所述读取时长超时预设次数时,将所述当前plc认定为离线之后还包括:
27.在下一次轮询时,重新对所述当前plc进行超时判断。
28.优选地,在所述将所述合并指令发送至对应的plc之后,还包括:
29.确定与所述合并指令所对应的待接收数据包的第一数据长度;
30.实时检测读取到的数据包的数据长度,在判断到所述数据包的数据长度达到第一数据长度时,停止读取。
31.本发明第三实施例公开了一种对多个plc数据的采集设备,包括处理器、存储器以及存储在所述存储器中且被配置由所述处理器执行的计算机程序,所述处理器执行所述计算机程序实现如上任意一项所述的一种对多个plc数据的采集方法。
32.本发明第四实施例公开了一种可读存储介质,存储有计算机程序,所述计算机程序能够被所述计算机可读存储介质所在设备的处理器执行,以实现如上任意一项所述的一种对多个plc数据的采集方法。
33.基于本发明提供的一种对多个plc数据的采集方法、装置、设备及可读存储介质,通过接收由上位机发送的多条查询指令,并对多条查询指令进行合并生成合并指令,并将所述合并指令发送至对应的plc,其中,所述plc在接收到合并指令之后,将同一类别且在预设范围内的数据打包成数据包上传,其可以减少对plc寄存器的查询次数,减少了来回的交互次数,避免在串口采集的情况下造成时延。
附图说明
34.图1是本发明第一实施例提供了一种对多个plc数据的采集方法的流程示意图;
35.图2是本发明第二实施例提供了一种对多个plc数据的采集装置的模块示意图;
具体实施方式
36.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
38.应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其
它实施例,都属于本发明保护的范围。
39.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
40.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
41.取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
42.实施例中提及的“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序。应该理解“第一\第二”区分的对象在适当情况下可以互换,以使这里描述的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
43.以下结合附图对本发明的具体实施例做详细说明。
44.本发明公开了一种对多个plc数据的采集方法、装置、设备及可读存储介质,旨在解决现有技术中的网关对多个plc数据进行采集时会造成时延的问题。
45.请参阅图1,本发明第一实施例公开了一种对多个plc数据的采集方法,其可由对多个plc数据的采集设备(以下简称采集设备)来执行,特别的,由采集设备内的一个或者多个处理器来执行,以实现如下步骤:
46.s101,接收上位机发送的多条查询指令,其中,每一所述查询指令用于读取对应的plc的一个数据表;
47.在本实施例中,所述采集设备可以是一种智能网关,该智能网关可以同时与多个plc设备建立通讯,以实现数据的交互。
48.特别的,在本实施例中,所述智能网关内可存储有用于进行采集的数据,上位机可以向所述智能网关发起查询指令,并通过所述智能网关对所述查询指令进行合并之后下发至多个plc,在查询到对应的数据回传至上位机,其中,上位机可也是电脑、触摸屏等设备,这里不做具体限定。
49.s102,分析多条所述查询指令,将同一类别且在预设范围内的查询指令进行合并生成合并指令,并将所述合并指令发送至对应的plc;
50.需要说明的是,发明人发现,在需要查询配置在智能网关下的多个plc时,智能网关进行数据采集时是对plc数据按顺序逐个对plc采集,plc点表配置往往很零散,以使得每采集一个数据点就需要查询一次plc对应的寄存器,来回交互的次数过多,特别是串口采集的情况下造成很大的时延。
51.在本实施例中,在接收到上位机发送的多条所述查询指令进行分析,判断多条查询指令是否处于一个类别以及是否在一定的范围内,若是,对查询指令进行合并,具体地:在现有技术中,其查询指令可以是:word100-105、byt120-130、bit20-23、byt110-112、word130-135、bit10-11;可以看出,查询指令较为分散,需要多次去访问plc的寄存器。在本
实施例中,可以通过将其合并,例如,word100-135,byt110-135,bit10-23;以使得合并后的指令可以一次读取多个数据表的项目,无需来来回回的访问寄存器,进而减少在串口采集的情况下造成的时延。
52.在本发明一个可能的实施例中,在所述将所述合并指令发送至对应的plc之后,还包括:
53.获取对当前plc的读取时长;
54.在判断到所述读取时长超时预设次数时,将所述当前plc认定为离线,在本次轮询内,跳过对所述当前plc的读取。
55.需要说明的是,发明人进一步发现,若同数据表中其他站号的plc掉线,该plc所属的数据表项目任然会进行读取直到超时,导致采集循环缓慢,具体地例如:在一次循环采集的过程中,读取顺序是先读plc1,再读plc2,接着读plc1,再接着读plc3,在第一次读取plc1时,发现对plc1的超时(即plc1离线),在第二次碰到plc1,会继续读取plc1直至读取到超时,进而造成时延;
56.在本实施例中,同样的读取顺序,在第一次读取plc1时,发现对plc1的超时(即plc1离线),在第二次碰到plc1,会接跳过对plc1的读取,直接读取plc3的数据,以此,可以节省离线plc的采集时间,提高了采集的效率。
57.在本发明一个可能的实施例中,所述在判断到所述读取时长超时预设次数时,将所述当前plc认定为离线之后还包括:
58.在下一次轮询时,重新对所述当前plc进行超时判断。
59.需要说明的是,在当前所述plc被认定为离线之后,其有可能在第二次轮询的时候重新上线,所以需要在第二次轮询的时候重新判定其有没有超时,以避免错过对数据的采集。
60.在本发明一个可能的实施例中,在所述将所述合并指令发送至对应的plc之后,还包括:
61.确定与所述合并指令所对应的待接收数据包的第一数据长度;
62.实时检测读取到的数据包的数据长度,在判断到所述数据包的数据长度达到第一数据长度时,停止读取。
63.需要说明的是,发明人进一步发现,在智能网关接收返回值的间隔中,使用了固定的延时时间,防止缓冲区的数据不完整,对于数据量小的情况下,数据采集往往不需要这么长时间,造成了一定的时间浪费。
64.在本实施例中,可以确定待接收数据包的第一数据长度,在发送合并指令后立即执行read操作,对read到的数据进行拼接,达到预期的长度后立刻停止read,否则读取到超时为止,这种情况避免了空等待的时间。
65.s103,读取由对应的plc发送的与所述合并指令相对应的数据包;
66.在本实施例中,plc上行的数据是与所述合并指令相对应的,其可以通过打包成数据包后上行,当然,在其他实施例中,还可以通过其他的方式进行上行,这里不做具体限定,但这些方案均在本发明的保护范围内。
67.s104,对所述数据包进行拆包,生成与每一所述查询指令对应的数据。
68.在本实施例中,所述智能网关在接收到数据包时,可以在缓冲区对数据包进行拆
包,得出各个数据表项目的读取结果,之后可以将其进一步上行至上位机,上位机可以对数据进行处理。
69.请参阅图2,本发明第二实施例公开了一种对多个plc数据的采集装置,包括:
70.查询指令接收单元201,用于接收上位机发送的多条查询指令,其中,每一所述查询指令用于读取对应的plc的一个数据表;
71.合并指令生成单元202,用于分析多条所述查询指令,将同一类别且在预设范围内的查询指令进行合并生成合并指令,并将所述合并指令发送至对应的plc;
72.读取单元203,用于读取由对应的plc发送的与所述合并指令相对应的数据包;
73.解析单元204,用于对所述数据包进行拆包,生成与每一所述查询指令对应的数据。
74.优选地,在所述将所述合并指令发送至对应的plc之后,还包括:
75.获取对当前plc的读取时长;
76.在判断到所述读取时长超时预设次数时,将所述当前plc认定为离线,在本次轮询内,跳过对所述当前plc的读取。
77.优选地,所述在判断到所述读取时长超时预设次数时,将所述当前plc认定为离线之后还包括:
78.在下一次轮询时,重新对所述当前plc进行超时判断。
79.优选地,在所述将所述合并指令发送至对应的plc之后,还包括:
80.确定与所述合并指令所对应的待接收数据包的第一数据长度;
81.实时检测读取到的数据包的数据长度,在判断到所述数据包的数据长度达到第一数据长度时,停止读取。
82.本发明第三实施例公开了一种对多个plc数据的采集设备,包括处理器、存储器以及存储在所述存储器中且被配置由所述处理器执行的计算机程序,所述处理器执行所述计算机程序实现如上任意一项所述的一种对多个plc数据的采集方法。
83.本发明第四实施例公开了一种可读存储介质,存储有计算机程序,所述计算机程序能够被所述计算机可读存储介质所在设备的处理器执行,以实现如上任意一项所述的一种对多个plc数据的采集方法。
84.基于本发明提供的一种对多个plc数据的采集方法、装置、设备及可读存储介质,通过接收由上位机发送的多条查询指令,并对多条查询指令进行合并生成合并指令,并将所述合并指令发送至对应的plc,其中,所述plc在接收到合并指令之后,将同一类别且在预设范围内的数据打包成数据包上传,其可以减少对plc寄存器的查询次数,减少了来回的交互次数,避免在串口采集的情况下造成时延。
85.示例性地,本发明第三实施例和第四实施例中所述的计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述实现一种对多个plc数据的采集设备中的执行过程。例如,本发明第二实施例中所述的装置。
86.所称处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路
(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种对多个plc数据的采集方法的控制中心,利用各种接口和线路连接整个所述实现对一种对多个plc数据的采集方法的各个部分。
87.所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现一种对多个plc数据的采集方法的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、文字转换功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、文字消息数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘、智能存储卡(smart media card,smc)、安全数字(secure digital,sd)卡、闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
88.其中,所述实现的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一个计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
89.需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
90.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
再多了解一些

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

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

相关文献