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

PLC运行组态监测方法、装置、存储介质及电子设备与流程

2022-06-22 19:29:52 来源:中国专利 TAG:

plc运行组态监测方法、装置、存储介质及电子设备
技术领域
1.本说明书涉及工业控制及安全领域,尤其涉及一种plc运行组态监测方法、装置、存储介质及电子设备。


背景技术:

2.随着科技发展和工业领域的发展,工业控制技术逐渐广泛应用于工业生产中。可编程逻辑控制器(programmable logic controller,plc)是工业控制技术中不可或缺的设备,其中,plc中包含有可编程的存储器,存储有执行逻辑运算等操作指令,通过数字信号或模拟信号的输入输出来控制各种类型的机械设备进行工业生产。
3.随着工业控制技术中的工业控制系统由封闭转为互联,plc配置有以太网通信模块,这就使得攻击者能够通过网络恶意攻击plc,包括篡改plc的应用系统的运行参数、恶意修改i/o引脚配置等攻击手段,从而导致plc向各个机械设备输入错误指令,从而使工业生产遭到破坏,因此,plc运行组态的安全问题尤为重要。
4.为了避免由于plc的应用系统的漏洞带来的网络安全问题,在现有技术中,通常采用plc的应用系统自身包含的物理锁对plc的内部程序代码、配置数据进行锁定。但是,此种方法虽然能够做到对plc的应用系统的安全防护,但是严重限制了plc的可编程逻辑的特性,影响了plc的性能。


技术实现要素:

5.本说明书提供一种plc运行组态监测方法、装置、存储介质及电子设备,以部分的解决现有技术存在的上述问题。
6.本说明书采用下述技术方案:本说明书提供了一种plc运行组态监测方法,包括:向可编程逻辑控制器plc发送数据获取指令,以通过所述数据获取指令,获取对所述plc中的各组态单元包含的功能控制数据进行编码后得到的基准校验数据,并保存;在所述plc进行运行时,向所述plc发送校验指令,以获取对所述plc中的各组态单元在当前所包含的功能控制数据进行编码后得到的待校验数据;根据所述待校验数据和所述基准校验数据,对所述plc的当前运行组态进行监测。
7.可选地,向可编程逻辑控制器plc发送数据获取指令,以通过所述数据获取指令,获取对所述plc中的各组态单元包含的功能控制数据进行编码后得到的基准校验数据,并保存,具体包括:向所述plc发送数据获取指令,以通过所述数据获取指令,获取对所述plc中单元类型为不可变类型的组态单元包含的功能控制数据进行编码后的基准校验数据,并保存;在所述plc进行运行时,向所述plc发送校验指令,以获取对所述plc中的各组态单元在当前所包含的功能控制数据进行编码后得到的待校验数据,具体包括:在所述plc进行运行时,向所述plc发送校验指令,以获取对所述plc中的单元类型
为不可变类型的组态单元包含的功能控制数据进行编码后的待校验数据。
8.可选地,向可编程逻辑控制器plc发送数据获取指令,以通过所述数据获取指令,获取对所述plc中的各组态单元包含的功能控制数据进行编码后得到的基准校验数据,具体包括:向所述plc发送所述数据获取指令,以使所述plc根据所述数据获取指令,对所述plc中的各个组态单元包含的功能控制数据进行编码,得到各个组态单元的校验数据,并返回;根据接收到的所述plc返回的各个组态单元的校验数据,得到所述plc的基准校验数据。
9.可选地,根据接收到的所述plc返回的各个组态单元的校验数据,得到所述plc的基准校验数据,具体包括:确定接收到的所述plc返回的包含有各个组态单元的校验数据的协议帧,并对所述协议帧进行解析,以获取各组态单元的组态单元名称以及各个组态单元的校验数据;按照预设的编码规则,对所述各个组态单元的组态单元名称以及各个组态单元的校验数据进行编码,得到所述plc的基准校验数据。
10.可选地,按照预设的编码规则,对所述各个组态单元的组态单元名称以及各个组态单元的校验数据进行编码,得到所述plc的基准校验数据,具体包括:针对每个组态单元,根据该组态单元的组态单元名称、该组态单元的组态单元名称长度、该组态单元的校验数据以及该组态单元的校验数据长度,确定该组态单元在所述基准校验数据中所组成的数据段,作为该组态单元对应的数据段;按照预设的顺序,将各组态单元对应的数据段进行排列,得到排列结果,并将所述排列结果、所述各组态单元包含的数据的总数据长度以及各组态单元对应的单元类型标识以及所述各组态单元涉及的单元类型数量进行编码,确定所述plc的基准校验数据。
11.可选地,在所述plc进行运行时,向所述plc发送校验指令,具体包括:在所述plc进行运行时,每隔设定周期,向所述plc发送校验指令。
12.可选地,根据所述待校验数据和所述基准校验数据,对所述plc的当前运行组态进行监测,具体包括:当确定所述待校验数据和所述基准校验数据一致时,确定所述plc的当前运行组态正常;当确定所述待校验数据和所述基准校验数据不一致时,确定所述plc的当前运行组态异常,并对所述plc中的至少部分组态单元的功能控制数据进行恢复。
13.可选地,所述plc中的至少部分组态单元的功能控制数据进行恢复,具体包括:对所述待校验数据解码,以获得所述plc在运行时的各个组态单元的功能控制数据,作为待恢复功能控制数据;针对每个组态单元,将该组态单元对应的待恢复功能控制数据,与该组态单元对应的基准功能控制数据进行比对,以判断该组态单元是否异常,其中,该组态单元对应的基准功能控制数据是对所述基准校验数据解码,获得的所述plc的各个组态单元的功能控制数据;若确定该组态单元出现异常,通过该组态单元对应的基准功能控制数据,对该组
态单元进行数据恢复。
14.本说明书提供了一种plc运行组态监测装置,包括:基准校验数据生成模块,用于向可编程逻辑控制器plc发送数据获取指令,以通过所述数据获取指令,获取对所述plc中的各组态单元包含的功能控制数据进行编码后得到的基准校验数据,并保存;待校验数据生成模块,用于在所述plc进行运行时,向所述plc发送校验指令,以获取对所述plc中的各组态单元在当前所包含的功能控制数据进行编码后得到的待校验数据;监测模块,用于根据所述待校验数据和所述基准校验数据,对所述plc的当前运行组态进行监测。
15.本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述plc运行组态监测方法。
16.本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述plc运行组态监测方法。
17.本说明书采用的上述至少一个技术方案能够达到以下有益效果:在本说明书提供的plc运行组态监测方法中,首先向plc发送数据获取指令,以得到plc的基准校验数据并保存。在plc运行时,向plc发送校验指令,以获得plc当前的待校验数据。根据plc当前的待校验数据和基准校验数据,实现对plc运行组态监测。
18.从上述方法中可以看出,本方法中的plc的待校验数据是基于当前plc中的各个组态单元的功能控制数据得到的,因此,仅根据待校验数据与基准校验数据,就可对plc组态进行监测,即确定plc中的各个组态单元的功能控制数据是否被篡改。本方法不但能够有效的对plc的运行组态进行监测,还避免了限制plc的可编程的特性、影响plc性能的问题。
附图说明
19.此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:图1为本说明书中一种plc运行组态监测方法的流程示意图;图2为本说明书提供的编码的结构示意图;图3为本说明书提供的编解码的流程示意图;图4为本说明书提供的一种plc运行组态监测装置的示意图;图5为本说明书提供的一种plc运行组态监测装置所包含的单元的示意图;图6为本说明书提供的对应于图1的电子设备示意图。
具体实施方式
20.为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
21.可编程化逻辑控制器(programmablelogiccontroller,plc)是一种专门应用于工业环境下的数字运算操作电子系统,plc采用一种可编程的存储器,在其内部存储有用于执行逻辑运算、顺序控制、定时、技术和算数运算等操作的指令,通过向与其连接的机械设备发送数字信号或模拟信号的方式,使机械设备按照既定的程序进行生产作业。
22.在实际操作中,plc通常作为下位机,上位机通过网络通信的方式向plc发送控制指令,plc可根据接收到的上位机发送的控制指令,控制与其连接的机械设备进行工业生产。
23.由于plc能够通过网络通信的方式接收上位机发送的控制指令,这就导致plc容易受到网络攻击。攻击者能够通过网络对plc进行攻击,例如,注入恶意代码,通过网络修改plc内部各个组态单元的运行参数等网络攻击手段,从而使得plc向机械设备输出错误指令,导致生产现场遭到破坏。
24.为了避免上述网络安全问题,目前,通常采用通过监测网络通信报文的方式对plc运行组态的安全情况进行监测。具体的,对plc的网络报文进行抓取,之后,从提取出的网络报文中提取出组态文件的标签以及完整组态文件,并按照提取出的组态文件的标签,找到与其匹配的上一次下载的报文对应的完整组态文件后进行对比,以此达到安全监测效果。但是,此种方法仅能监测plc的应用系统中的下载操作过程,而其他操作过程,例如网络配置,组态文件上传等操作过程是无法监控的,总结来说,此种方法对plc的运行组态的安全监测不够全面。
25.另外,在现有技术中,还采用了在plc自身的物理锁对plc中的代码、配置等锁死,来起到安全防护的作用,但是采用此种方法后,工作人员后续的无法再按照其他需求对plc的代码以及其他配置参数进行修改,降低了plc的易用性,严重限制了plc可编程的特性。
26.以下结合附图,详细说明本说明书各实施例提供的技术方案。
27.图1为本说明书中一种plc运行组态监测方法的流程示意图,具体包括以下步骤:s100:向plc发送生成标识符指令,以使所述plc生成所述plc包含的各个组态单元的标识符,并返回。
28.本说明书所提供的plc运行组态监测方法的执行主体可以是能够与plc通过网络进行通信的服务器或者是上位机,为了方便描述,以下仅以执行主体为服务器为例,对本说明书所提供的plc运行组态监测方法进行说明。
29.plc内部包含有多个组态单元,其中,组态(configure)的含义是应用程序中提供的工具、方法、完成工程中某一任务的过程,用户可通过类似“搭积木”的方式完成所需要的功能,而不需要编写计算机程序,在本说明书中将构成组态的各个模块称作组态单元。
30.首先,对本说明书所提供的plc运行组态监测方法的核心思路进行说明:在开始作业之前,服务器主动向plc进行交互,也就是向plc发送数据获取指令,以获取当前plc内部的各个组态单元的功能控制器数据进行编码后得到的plc的校验数据,作为基准校验数据。其中,在本说明书实施例中,认为当前的plc内部的各组态单元的功能控制数据是可信的、没有被攻击者篡改过的,也就是说,plc按照当前的各组态单元的功能控制数据控制与其相连接的机械设备是能够正常进行的工业生产作业的。
31.之后,在确定plc运行时,开始对plc的运行组态进行监测,即,按照预设的监测周期,向plc发送校验指令,以获取当前监测周期内的plc的各组态单元的功能控制数据编码
后的校验数据,作为待校验数据。服务器可将待校验数据与基准校验数据进行对比,以实现对plc运行组态进行监测,也就是说,当待校验数据与基准校验数据一致时,表示当前监测周期下的plc中的各组态单元包含的功能控制数据未被篡改,确定当前监测周期下的plc的运行组态正常,相反,当待校验数据与基准校验数据不一致时,表示当前监测周期下的plc中的各组态单元的包含的功能控制数据已被篡改,确定当前周期下的plc的运行组态异常。
32.基于本方案的核心思路,为了避免plc在刚开始运行时就遭受到网络攻击,可在plc运行之前,就向plc发送数据获取指令,以当前plc的基准校验数据,并保存。
33.具体的,服务器可按照通信协议向plc发送数据获取指令,以使plc在接收到数据获取指令时,根据当前自身的组态单元包含的功能控制数据,生成各个组态单元的校验数据,并将其返回给服务器。服务器在接收到plc返回的各个组态单元的校验数据对其进行编码处理,以获取当前的plc的校验数据,作为基准校验数据,也可以理解为,将服务器生成的当前plc的校验数据配置为基准校验数据。
34.其中,服务器可以通过网络向plc发送数据获取指令,而为了尽可能的避免plc的应用系统可能受到的网络攻击,在本说明书实时例中,服务器还可通过硬件通信协议向plc发送数据获取指令。
35.另外,由上述说明可知,由于此时plc还未开始运行,甚至是还未进行网络连接,plc中的各组态单元包含的功能控制数据仅有非常小的几率遭受到网络攻击,因此,在本说明书实施例中,默认此时服务器接收到的plc返回的各个组态单元的校验数据是准确的,未被篡改的。另外,为了便于在plc的至少部分组态单元的功能控制数据遭受到攻击后对其进行恢复,plc还可将当前所有组态单元的功能控制数据返回给服务器,服务器在接收到后可对其进行保存。
36.由于服务器与plc是通过通信协议进行数据传输的,因此,服务器接收到的plc的各组态单元的校验数据是以协议帧的形式返回的。而在本说明书实施例中,对plc的运行组态的监测起到关键作用的主要是各个组态单元的校验数据,因此,服务器需要从接收到的plc返回的协议帧中提取出各个组态单元的校验数据。之后,在根据从协议帧中提取出的各个组态单元的校验数据,按照预设的编码规则,对其进行编码,得到当前plc的校验数据,作为基准校验数据,并将基准校验数据进行保存,以便进行后续的监测操作。
37.s102:在所述plc进行运行时,向所述plc发送校验指令,以获取对所述plc中的各组态单元在当前所包含的功能控制数据进行编码后得到的待校验数据。
38.在实际操作中,服务器在确定获取plc的基准校验数据后,开启对plc运行组态的监测。
39.具体的,服务器在确定plc运行时,按照预设的监测周期,向plc发送校验指令,也就是每隔预设周期,就向plc发送校验指令。plc在接收到校验指令后,可按照步骤s100中的操作,向服务器返回当前监测周期下的各组态单元的校验数据,即,基于当前周期下的各组态单元的功能控制数据,生成各个组态单元的校验数据,并以协议帧的形式返回,其中,协议帧中至少包含有各个组态单元的校验数据。其中,周期也就是服务器对plc运行组态监测的监测周期,可以按照实际需求设置周期时长,本说明书对此不作限制。
40.服务器根据步骤s100中的提到的操作获取当前周期下的plc的校验数据,作为待校验数据,即,服务器对当前周期下plc返回的包含有各个组态单元的校验数据的协议帧进
行解析,得到当前周期下的plc的各个组态单元的组态单元名称以及各个组态单元的校验数据,并对其进行编码,得到当前周期下的plc的校验数据,作为待校验数据。
41.s104:根据所述待校验数据和所述基准校验数据,对所述plc的当前运行组态进行监测。
42.具体的,服务器可对当前周期下的plc的待校验数据与plc的基准校验数据进行对比,判断待校验数据与基准校验数据是否一致。
43.当确定待校验数据与基准校验数据一致时,由于待校验数据是基于当前周期下的plc的各个组态单元的功能控制数据生成的,同理,基准校验数据也是基于plc的各个组态单元的可信的、未被篡改的功能控制数据,则校验数据一致代表了当前周期下的plc的各个组态单元的功能控制数据和可信的、未被篡改的功能控制数据是一致的,因此,可确定当前周期下plc的运行组态为正常。
44.当确定待校验数据与基准校验数据不一致时,表示当前周期下的plc的至少部分组态单元的功能控制数据被篡改了,则可确定当前周期下的plc的运行组态为异常,服务器可对plc中的至少部分组态单元的功能控制数据进行恢复。
45.具体的,服务器可对待校验数据进行解码处理,以获取当前周期下的plc的各个组态单元的校验数据,再根据获取到的当前周期下的plc的各个组态单元的校验数据,确定出当前周期下的各个组态单元的功能控制数据,作为待恢复功能控制数据。
46.针对每个组态单元,将该组态单元的待恢复功能控制数据与该组态单元的基准功能控制数据进行对比,以判断该组态单元是否异常,也就是说,该组态单元的待恢复功能控制数据与该组态单元的基准功能控制数据一致时,表示被篡改的待恢复功能可控制数据并不属于该组态单元。
47.当确定出该组态单元的待恢复功能控制数据与该组态单元的基准功能控制数据不一致时,确定该组态单元出现异常,并按照该组态单元的基准功能控制数据,对该组态单元的目前的功能控制数据(待恢复功能数据)进行数据恢复,也就是将该组态单元的待恢复功能控制数据恢复为与该组态单元的基准功能控制数据一致。
48.另外,服务器在确定出当前plc运行组态异常,还可直接使用预先存储的作为基准的plc的各个组态单元的功能控制数据,将当前plc的各个组态单元全部进行数据恢复。
49.基于图1所示的plc运行组态监测方法,本方法中的plc在运行时的待校验数据是基于当前plc中的各个组态单元的功能控制数据得到的,因此,仅根据待校验数据与基准校验数据,就可对plc进行监测,即确定plc中的各个组态单元的功能控制数据是否被篡改。本方法不但能够有效的对plc的运行组态进行监测,还避免了限制plc的可编程的特性、影响plc性能的问题。
50.对于步骤s100中通过所述数据获取指令,获取对所述plc中的各组态单元包含的功能控制数据进行编码这一步骤,具体操作步骤如下:plc响应于接收到的服务器发送的数据获取指令,针对plc中的每个组态单元,plc内的运算器基于该组态单元的功能控制数据,通过哈希算法对其进行编码,从而得到该组态单元的校验数据,其中,校验数据是一串能够反映出其对应的组态单元的功能控制数据的字符,其值具有唯一性以及不可逆性。另外,plc还可通过其他类似哈希算法的算法来生成各个组态单元的校验数据,本说明书对此不作限制。
51.服务器按照预设的编码规则,对plc返回的各个组态单元返回的校验数据进行编码。具体的,服务器可对plc返回的包含有各个组态单元的校验数据的协议帧解析,以提取出各个组态单元的组态单元名词以及各个组态单元的校验数据。针对每个组态单元,根据该组态单元的组态单元名称、该组态单元的组态单元名称长度、该组态单元的校验数据以及该组态单元的校验数据长度,确定该组态单元对应的数据端,再按照预设的顺序,将各组态单元对应的数据段进行排列,得到排列结果,再将排序结果、所述各组态单元包含的数据的总数据长度以及各组态单元对应的单元类型标识以及所述各组态单元涉及的单元类型数量(也就是此单元类型包含的组态单元的数量)进行编码,确定所述plc的基准校验数据,编码后得到的基础校验数据的数据结构如图2所示。其中,服务器可按照s=单元类型标识 各组态单元包含的数据的总数据长度 各组态单元涉及的单元类型数量 第一个组态单元名称长度 第一个组态单元的组态单元名称 第一个组态单元的校验数据长度 第一个组态单元的校验数据 *** 第二个组态单元名称长度 第二个组态单元的组态单元名称
……
,再通过安全散列算法1(securehashalgorithm 1,sha-1)算法,生成plc的基准校验数据,sha-1算法可以公式h1=sha-1(s)来表示。之后,服务器可将plc的基准校验数据以及通过sha-1(s)得到的数据进行绑定并保存至服务器内存,再将plc的基准校验数据与当前组态工程进行绑定。
52.另外,由于plc返回的各个组态单元的校验数据就是基于当前各个组态单元的功能校验数据进行编码后得到的,服务器仅通过各个组态单元的校验数据就也能够对plc的运行组态进行监测,因此,服务器也可将各个组态单元的校验数据,作为plc的基准校验数据,并保存。而服务器对接收到的各个组态单元的校验数据再编码,可以看作是对于各个组态单元的校验数据的压缩,以此来节省服务器的存储资源。综上所述,在本说明书实施例中,服务器既可将各个组态单元的校验数据直接作为基准校验数据,还可对其再进行编码,以编码后的校验数据,作为plc的基准校验数据,本说明书对此不作限制。
53.同理,在plc运行过程中,通过校验指令,服务器既可获取plc返回的基于当前的各组态单元的功能控制数据生成的各组态单元的校验数据作为基准校验数据,也可以对接收到的各组态单元的校验数据编码后的plc的校验数据作为基准校验数据,本说明书对此不作限制。对于plc运行时,服务器可采用以下公式将获取到的各组态单元的校验数据,生成为当前周期下的plc的待校验数据:s’=单元类型标识 各组态单元包含的数据的总数据长度 各组态单元涉及的单元类型数量 第一个组态单元名称长度 第一个组态单元的组态单元名称 第一个组态单元的校验数据长度 第一个组态单元的校验数据 *** 第二个组态单元名称长度 第二个组态单元的组态单元名称
……
,当前周期下的plc的待校验数据h2=sha-1(s’)。此时的s’内包含的各组态单元的校验数据等内容均是基于当前周期下的各组态单元的功能控制数据生成的,与上述的用于生成plc的基准校验数据的各组态单元的校验数据不一定相同。
54.进一步的,plc还可直接返回各个组态单元包含的功能控制数据,服务器对接收到的各组态单元的功能控制数据进行编码,得到plc的基准校验数据以及待校验数据。也就是说,编码这一步骤既可由plc执行,也可由获取到了plc的各组态单元的功能控制数据的服务器执行。
55.另外,为了保证plc的基准校验数据所基于的各组态单元的功能控制数据是可信
的,在本说明书实施例中,在通过编码获取基准校验数据之前,服务器可先发出提示信号,例如,亮起信号灯等方式,以提醒工作人员确认plc中的各组态单元的功能控制数据是否为正确的数据,在接收到工作人员对服务器执行的数据确定消息后,再对各组态单元的功能控制数据进行编码,以获取plc的基准校验数据。
56.对于plc返回的协议帧,其数量是具体取决于服务器与plc之间的通信协议的。根据服务器与plc之间的通信协议,plc可以是将其各个组态单元的校验数据均处理为一条协议帧返回,还可以是针对每个组态单元,将该组态单元的校验数据处理为一条仅包含该组态单元的校验数据的协议帧,并返回,则在这种情况下,plc中包含的组态单元的数量与服务器接收到的协议帧的数量是相同的。plc具体返回的协议帧数量可以是一条,还可以是多条,即plc可向服务器返回至少一个协议帧,本说明书对此不作限制。
57.值得注意的是,plc中包含有各种类型的组态单元,但仅有单元类型为不可变类型的组态单元其包含的功能控制数据会影响整个工业生产,而其他单元类型的组态单元内包含的数据通常并不会影响工业生产,也就是说,要保证plc在运行时,其中的不可变类型的组态单元的功能控制数据不被篡改即可。因此,plc在向服务器返回各个组态单元的校验数据之前,可先进行筛选,仅返回单元类型为不可变类型的组态单元的校验数据,还可以是plc将其中的所有组态单元的校验数据均返回给服务器,服务器仅对单元类型为不可变类型的组态单元的校验数据进行编码,来生成plc的基准校验数据或者待验证数据,本说明书对此不作限制。
58.其中,plc或者服务器在对组态单元进行筛选时,可按照各个组态单元的组态单元名称对其进行筛选。举例来说,plc中有3个组态单元,其组态单元名称分别为组态单元a、组态单元b、组态单元c,而仅有组态单元c的组态单元类型为不可变类型。因此,plc可按照目标组态单元的组态单元名称,即组态单元c,对所有组态单元进行筛查,从中查找到组态单元名称为组态单元c的组态单元。另外,还可采用其他方法对各个组态单元进行筛选,本说明书对此不作限制。
59.对于根据待校验数据与基准校验数据,对plc的当前运行组态监测的这一步骤。服务器是通过将待校验数据与基准校验数据对比的方法进行监测的,具体的,由于上述已说明了,待校验数据以及基准校验数据均为一串数据串,因此,服务器可采用字符串查找(knuth-morris-pratt,kmp)算法将待校验数据与基准校验数据进行对比。另外,服务器还可采用其他对比方法,本说明书对此不作限制。
60.另外,在本说明书实施例中,服务器对各组态单元的校验数据编码过程,以及在恢复数据时对编码后的校验数据解码的流程,如图3所示。
61.以上为本说明书的一个或多个实施例提供的plc运行组态监测方法,基于同样的思路,本说明书还提供了相应的plc运行组态监测装置,如图4所示。
62.图4为本说明书提供的一种plc运行组态监测装置示意图,具体包括:基准校验数据生成模块410、待校验数据生成模块420、监测模块430,其中:所述基准校验数据生成模块410,用于向可编程逻辑控制器plc发送数据获取指令,以通过所述数据获取指令,获取对所述plc中的各组态单元包含的功能控制数据进行编码后得到的基准校验数据,并保存;所述待校验数据生成模块420,用于在所述plc进行运行时,向所述plc发送校验指
令,以获取对所述plc中的各组态单元在当前所包含的功能控制数据进行编码后得到的待校验数据;所述监测模块430,用于根据所述待校验数据和所述基准校验数据,对所述plc的当前运行组态进行监测。
63.可选地,所述基准校验数据生成模块410具体用于,向所述plc发送数据获取指令,以通过所述数据获取指令,获取对所述plc中单元类型为不可变类型的组态单元包含的功能控制数据进行编码后的基准校验数据,并保存;所述待校验数据生成模块420具体用于,在所述plc进行运行时,向所述plc发送校验指令,以获取对所述plc中的单元类型为不可变类型的组态单元包含的功能控制数据进行编码后的待校验数据。
64.可选地,所述基准校验数据生成模块410具体用于,向所述plc发送所述数据获取指令,以使所述plc根据所述数据获取指令,对所述plc中的各个组态单元包含的功能控制数据进行编码,得到各个组态单元的校验数据,并返回;根据接收到的所述plc返回的各个组态单元的校验数据,得到所述plc的基准校验数据。
65.可选地,所述基准校验数据生成模块410具体用于,确定接收到的所述plc返回的包含有各个组态单元的校验数据的协议帧,并对所述协议帧进行解析,以获取各组态单元的组态单元名称以及各个组态单元的校验数据;按照预设的编码规则,对所述各个组态单元的组态单元名称以及各个组态单元的校验数据进行编码,得到所述plc的基准校验数据。
66.可选地,所述基准校验数据生成模块410具体用于,针对每个组态单元,根据该组态单元的组态单元名称、该组态单元的组态单元名称长度、该组态单元的校验数据以及该组态单元的校验数据长度,确定该组态单元在所述基准校验数据中所组成的数据段,作为该组态单元对应的数据段;按照预设的顺序,将各组态单元对应的数据段进行排列,得到排列结果,并将所述排列结果、所述各组态单元包含的数据的总数据长度以及各组态单元对应的单元类型标识以及所述各组态单元涉及的单元类型数量进行编码,确定所述plc的基准校验数据。
67.可选地,所述待校验数据生成模块420具体用于,在所述plc进行运行时,每隔设定周期,向所述plc发送校验指令。
68.可选地,所述监测模块430具体用于,当确定所述待校验数据和所述基准校验数据一致时,确定所述plc的当前运行组态正常;当确定所述待校验数据和所述基准校验数据不一致时,确定所述plc的当前运行组态异常,并对所述plc中的至少部分组态单元的功能控制数据进行恢复。
69.可选地,所述监测模块430具体用于,对所述待校验数据解码,以获得所述plc在运行时的各个组态单元的功能控制数据,作为待恢复功能控制数据;针对每个组态单元,将该组态单元对应的待恢复功能控制数据,与该组态单元对应的基准功能控制数据进行比对,以判断该组态单元是否异常,其中,该组态单元对应的基准功能控制数据是对所述基准校验数据解码,获得的所述plc的各个组态单元的功能控制数据;若确定该组态单元出现异常,通过该组态单元对应的基准功能控制数据,对该组态单元进行数据恢复。
70.如图5所示,对本说明书提供的plc运行组态监测装置中的各个模块进一步详细说明,其中:基准校验数据生成模块410中可包含有:第一发送单元411用于向plc发送数据获
取指令,第一接收单元412用于接收plc返回的各组态单元的校验数据以及各组态单元的功能控制数据,第一编码单元413用于对接收到的各组态单元的校验数据进行编码操作,获取plc的基准校验数据。
71.待校验数据生成模块420中可包含有:第二发送单元421用于向plc校验指令,第二接收单元422用于接收当前监测周期下的plc运行时返回的各组态单元的校验数据以及各组态单元的功能控制数据,第二编码单元423用于对接收到的当前监测周期下的plc运行时返回的各组态单元的校验数据进行编码操作,获取plc的待校验数据。
72.监测模块430中可包含:对比单元431用于将plc的待校验数据与基准校验数据进行对比,判断待校验数据与基准校验数据是否一致,以此对plc运行组态监测,还包含有恢复单元432用于确定plc运行组态异常时,对数据异常的组态单元进行数据恢复,并在恢复后继续对plc运行组态进行监测。
73.本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的plc运行组态监测方法。
74.本说明书还提供了图6所示的电子设备的示意结构图。如图6所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的plc运行组态监测方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
75.在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device, pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very-high-speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
76.控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理
器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc 625d、atmel at91sam、microchip pic18f26k20 以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
77.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
78.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
79.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
80.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
81.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
82.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
83.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
84.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或
非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
85.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
86.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
87.本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
88.本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
89.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
90.以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
再多了解一些

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

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

相关文献