数控程序的安全审查方法及装置

文档序号:700992 发布日期:2021-04-13 浏览:3次 >En<

阅读说明:本技术 数控程序的安全审查方法及装置 (Safety examination method and device for numerical control program ) 是由 许欣 江勇 侯方圆 李宁 杨森 李云峰 赵世杰 王湖 于 2020-12-25 设计创作,主要内容包括:本公开涉及一种数控程序的安全审查方法及装置,包括:获取第一数据文件;根据确定的预设编码规则对第一数据文件的当前编码方式进行编码方式审查,在当前编码方式与预设编码规则一致的情况下,对第一数据文件进行解析,生成第二数据文件;根据知识库中的格式规则对第二数据文件进行格式审查,得到第一审查结果;在第一审查结果正确的情况下,根据知识库中的逻辑规则对第二数据文件进行逻辑审查,得到第二审查结果;在第二审查结果正确的情况下,将第一数据文件发送至目标设备,使目标设备执行与第一数据文件相对应的操作,确保第一数据文件的规范性,提高工业控制系统的安全性,避免对目标设备造成损坏。(The disclosure relates to a method and a device for safety examination of a numerical control program, comprising the following steps: acquiring a first data file; examining a coding mode of the current coding mode of the first data file according to the determined preset coding rule, and analyzing the first data file to generate a second data file under the condition that the current coding mode is consistent with the preset coding rule; format examination is carried out on the second data file according to format rules in the knowledge base, and a first examination result is obtained; under the condition that the first examination result is correct, carrying out logic examination on the second data file according to logic rules in the knowledge base to obtain a second examination result; and under the condition that the second examination result is correct, the first data file is sent to the target equipment, so that the target equipment executes the operation corresponding to the first data file, the normalization of the first data file is ensured, the safety of the industrial control system is improved, and the target equipment is prevented from being damaged.)

数控程序的安全审查方法及装置

技术领域

本公开涉及安全控制领域,尤其涉及一种数控程序的安全审查方法及装置。

背景技术

近年来,以计算机技术、通信技术和控制技术为核心的信息技术飞速发展及广泛应用,对工业控制系统的发展产生了巨大影响。工业控制系统涵盖了智能电网、智能交通、水利系统、航空系统等国家关键基础设施,这些基础设施一旦遭到攻击者的破坏,将会造成巨大的经济损失和人员伤亡,甚至危害国家安全,因此,加强对工业控制系统安全问题的研究非常重要。

目前,工业控制系统安全防护技术的研究主要包括:工业防火墙、入侵检测、安全审计、漏洞扫描和挖掘等。工业防火墙是在传统网络防火墙的基础上增加了工业协议过滤功能,用于解析、识别与控制所有通过工业控制网络的数据流量,从而抵御来自内外网对工控设备的攻击。入侵检测技术主要是通过对设备、系统、物理世界等信息收集和分析,来判断工业控制系统中是否存在违反数据安全策略或物理操作流程的行为和被攻击的对象。安全审计是对工控网络中的行为和流量进行实时审计,通过特定的安全策略,快速识别工控系统网络中存在的非法操作、异常事件、外部攻击等异常行为。漏洞扫描是利用扫描工具对主机和设备得型号、固件版本信息、通信协议等信息按照已知规则进行自动匹配,从而检测是否存在已知漏洞。漏洞挖掘是采用静态分析和动态测试方法对未知漏洞进行检测。然而,相关技术中工业控制系统安全防护技术主要是针对网络和设备的安全防护,难以对向设备传输的文件的安全性进行审查。

发明内容

有鉴于此,本公开提出了一种数控程序的安全审查方法及装置。

根据本公开的一方面,提供了一种数控程序的安全审查方法,包括:

获取第一数据文件;

根据确定的预设编码规则对所述第一数据文件的当前编码方式进行编码方式审查,在所述当前编码方式与所述预设编码规则一致的情况下,对所述第一数据文件进行解析,生成第二数据文件;

根据知识库中的格式规则对所述第二数据文件进行格式审查,得到第一审查结果;

在所述第一审查结果正确的情况下,根据所述知识库中的逻辑规则对所述第二数据文件进行逻辑审查,得到第二审查结果;

在所述第二审查结果正确的情况下,将所述第一数据文件发送至目标设备,使所述目标设备执行与所述第一数据文件相对应的操作。

在一种可能的实施方式中,所述方法还包括:

根据所述设备标准编制文件中的格式规则和逻辑规则,生成词法分析器和语法分析器;

根据所述词法分析器、所述语法分析器,得到抽象语法树,所述抽象语法树为所述知识库。

在一种可能的实施方式中,所述方法还包括:在满足报警条件时,发出报警提示,

其中,报警条件包括以下至少一种:

所述当前编码方式与所述预设编码规则不一致;

所述第一审查结果存在错误;

所述第二审查结果存在错误。

在一种可能的实施方式中,所述格式规则包括以下至少一种:

所述第二数据文件是否以非法代码开头,所述非法代码包括数字代码;

所述第二数据文件中是否包括程序编号指令字;

所述第二数据文件中是否包括合法的起始指令字和结束指令字;

所述第二数据文件中结束指令字后面是否有分号;

所述第二数据文件中程序编号指令字后、且用于实现加工功能的指令字前是否包括准备功能指令字;

所述第二数据文件中每种指令字的地址符是否符合对应的地址符规则;

在所述第二数据文件的多个指令字中的带数字指令字中是否缺少数字代码;

在所述第二数据文件的多个指令字中的带符号指令字中的正负号后是否为非数字代码;

在所述第二数据文件的多个指令字中的带数字指令字中的数字代码的数值类型是否正确。

在一种可能的实施方式中,所述第二数据文件包括多个程序段,所述逻辑规则包括以下至少一种:

在每个程序段中属于同一组的准备功能指令字是否只出现一次;

在每个程序段中属于同一组的辅助功能指令字是否只出现一次;

在每个程序段中具有相同加工功能的加工功能指令字是否只出现一次;

在每个程序段的多个指令字中的带数字指令字中的数字代码是否在对应的阈值范围中,所述阈值范围是根据带数字指令字对应的地址符阈值表确定的。

在一种可能的实施方式中,其特征在于,所述预设编码规则包括以下任意一种方式:ASCII编码、Unicode编码。

在一种可能的实施方式中,所述发出报警提示的方式包括以下至少一种:

显示第一报警提示;

向发出所述第一数据文件的终端发送第一指令,所述第一指令用于控制发出所述第一数据文件的终端的第一报警模块发出第二报警提示;

向所述目标设备发送第二指令,所述第二指令用于控制所述目标设备的第二报警模块发出第三报警提示;

在所述第一数据文件中写入第四报警提示;

控制第三报警模块发出第五报警提示,

其中,所述第一报警模块包括指示灯、振动马达、蜂鸣器中的至少一种,所述第二报警模块包括指示灯、振动马达、蜂鸣器中的至少一种,所述第三报警模块包括指示灯、振动马达、蜂鸣器中的至少一种。

根据本公开的实施例,提供了一种数控程序的安全审查装置,包括:

获取模块,用于获取第一数据文件;

第一处理模块,用于根据确定的预设编码规则对所述第一数据文件的当前编码方式进行编码方式审查,在所述当前编码方式与所述预设编码规则一致的情况下,对所述第一数据文件进行解析,生成第二数据文件;

第二处理模块,用于根据知识库中的格式规则对所述第二数据文件进行格式审查,得到第一审查结果;

第三处理模块,用于在所述第一审查结果正确的情况下,按照所述知识库中的逻辑规则对所述第二数据文件进行逻辑审查,得到第二审查结果;

输出模块,用于在所述第二审查结果正确的情况下,将所述第一数据文件发送至目标设备,使所述目标设备执行与所述第一数据文件相对应的操作。

根据本公开的另一方面,提供了一种数控程序的安全审查装置,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行上述方法。

根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。

根据本公开的各方面所提供的技术方案,通过获取第一数据文件,在确定第一数据文件的当前编码方式与预设编码规则一致之后,对第一数据文件进行解析,得到第二数据文件,并对第二数据文件进行格式审查,在格式审查结果正确的情况下,对第二数据文件进行逻辑审查,在逻辑审查结果正确的情况下,将第一数据文件发送至目标设备,使目标设备执行与所述第一数据文件相对应的操作,确保第一数据文件的规范性,提高工业控制系统的安全性,避免对目标设备造成损坏。

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。

图1示出根据本公开的实施例提供的数控程序的安全审查方法的流程图。

图2示出根据本公开的实施例提供的数控程序的安全审查方法的另一流程图。

图3示出根据本公开的实施例提供的报警提示的示意图。

图4示出根据本公开的实施例提供的数控程序的安全审查装置的结构图。

具体实施方式

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。

数字控制(简称数控)程序在编写时容易出现词法、语法或逻辑等错误,且在通过工业控制系统将数控程序传送到数控机床的过程中,也会存在被攻击者恶意篡改的风险,导致数控机床接收到不合规范的数控程序,数控机床在加工的过程中可能出现撞机、撞刀等事故,这会严重损坏数控机床的设备,降低数控机床的生产能力。因此,如何在数控程序的传输过程中,确保数控程序的安全性,是亟待解决的技术问题。

基于此,本公开提供了一种数控程序的安全审查方法及装置。图1示出本公开实施例提供的数控程序的安全审查方法的流程图,该数控程序的安全审查方法可以用于数控程序的安全审查装置中,该数控程序的安全审查装置可以是独立设置的,也可以设置在数字控制机床中的,本公开对该数控程序的安全审查装置的设置位置不作限制。

其中,该数字控制机床能够逻辑地处理具有控制编码或其他符号指令规定的程序,并将其译码,用代码化的数字表示,通过信息载体输入数控装置。经运算处理,由数控装置发出各种控制信号,控制机床的动作,按图纸要求的形状和尺寸,自动地将零件加工出来。应当理解,数字控制机床的具体功能可以根据实际情况设定,本公开对此不做限制。

如图1所示,该方法包括步骤S11-步骤S15。

在步骤S11中,获取第一数据文件。

在一种可能的实施方式中,第一数据文件可以根据数字控制机床所需要加工的零件的形状与尺寸进行编写,具体的编写方式可以根据不同的数控系统,不同的数控类型、不同系统版本、数字控制标准进行设定。其中,第一数据文件可以包括根据Siemens(西门子)、Fanuc(发那科)、Heidenhain(海德汉)、Hass(哈斯)等工控设备生产厂家的产品实际编制手册编写的数控程序文件。

其中,该第一数据文件可以由以下任意一种数字控制标准进行编写:行业数字控制标准、各个工控设备生产厂家设定的数字控制标准、或者将行业数字控制标准以及各个工控设备生产厂家设定的数字控制标准进行结合所形成的数字控制标准。

其中,行业数字控制标准可以为ISO(International Organization forStandardization,国际标准化组织标准)、EIA(Electronic Industries Association,美国电子工业协会标准)、《JB/T 3208-1999数控机床穿孔带程序段格式中的准备功能G和辅助功能M的代码》、《JB/T 3051-1999(eqv ISO 841∶1974)数控机床坐标和运动方向的命名》中的任意一种,其中,ISO可以包括ISO6983、ISO14649。

在一种可能的实现方式中,可以直接获取第一数据文件,也可以根据外部设备发出的指令获取第一数据文件等,本公开对获取第一数据文件的方式不做限制。

在步骤S12中,根据确定的预设编码规则对所述第一数据文件的当前编码方式进行编码方式审查,在所述当前编码方式与所述预设编码规则一致的情况下,对所述第一数据文件进行解析,生成第二数据文件。

在一种可能的实施方式中,该第一数据文件可以利用以下任意一种预设编码规则进行编码:ASCII编码、Unicode编码。

在一种可能的实施方式中,当确定预设编码规则之后,可以基于Python(一种跨平台的计算机程序设计语言)使用二进制的方式读入第一数据文件,并基于Python的Chardet(可以用于查询编码方式的工具),将该第一数据文件中的每一个指令字与Chardet中的多个“探测器”进行对比,在某一个“探测器”能够唯一识别第一数据文件中的每一个指令字的当前编码方式情况下,确定该第一数据文件的当前编码方式为该“探测器”所对应的编码方式。其中,Chardet包括与每种编码规则的字符集相对应的“探测器”的集合,每种“探测器”能够唯一标识与其对应的编码规则的字符集。其中,字符集包括ASCII字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等,本公开对此不做限制。

其中,“在所述当前编码方式与所述预设编码规则一致”可以是指在确定出预设编码规则的情况下,即在预设编码规则的字符集对应的“探测器”能够唯一识别第一数据文件中的每一个指令字的当前编码方式的情况下,判断第一数据文件的当前编码方式与预设编码规则一致,否则判断第一数据文件的当前编码方式与预设编码规则不一致。

在一种可能的实施方式中,在判断第一数据文件的编码方式与预设编码规则一致的情况下,对第一数据文件如数控程序文件进行解析,生成第二数据文件如该数控程序文件的多个程序段。通过对第一数据文件的当前编码方式进行编码方式审查,不仅可以快速有效地检测出第一数据文件是否按照编码规则进行编码,还可以判断出第一数据文件中是否含有恶意代码等非正常代码,且在第一数据文件的编码方式与预设编码规则一致的情况下才对第一数据文件进行解析,可以保证对第一数据文件进行解析的过程不会出现乱码,提高解析的正确性。

在一种可能的实施方式中,所述方法还包括:

根据设备标准编制文件中的格式规则和逻辑规则,生成词法分析器和语法分析器;

根据所述词法分析器、所述语法分析器,得到抽象语法树,所述抽象语法树为所述知识库。

其中,设备标准编制文件可以包括以下任意一种数字控制标准文件:行业数字控制标准文件、各个工控设备生产厂家设定的数字控制标准文件、或者将行业数字控制标准文件以及各个工控设备生产厂家设定的数字控制标准进行结合所形成的数字控制标准文件,本公开对此不作限制。

通过生成抽象语法树(即知识库),进而可以通过调用该知识库快速完成对第二数据文件的格式审查和逻辑审查。

在步骤S13中,根据知识库中的格式规则对所述第二数据文件进行格式审查,得到第一审查结果。

通过对第二数据文件进行格式审查,能够检测出第二数据文件是否符合行业数字控制标准或各个工控设备生产厂家设定的数字控制标准的格式规则,进而确定第一数据文件是否安全。

在步骤S14中,在所述第一审查结果正确的情况下,根据知识库中的逻辑规则对所述第二数据文件进行逻辑审查,得到第二审查结果。

通过对第二数据文件进行逻辑审查,可以判定第二数据文件是否符合逻辑规则,进而确定第一数据文件是否安全。

在步骤S15中,在所述第二审查结果正确的情况下,将所述第一数据文件发送至目标设备,使所述目标设备执行与所述第一数据文件相对应的操作。其中,目标设备可以为数字控制机床,所执行的与该第一数据文件相对应的操作可以包括:对第一数据文件进行解析,得到所需加工的零件的形状和尺寸,根据所需加工的零件形状和尺寸对该零件进行加工。

根据本公开的实施例,通过获取第一数据文件,在确定第一数据文件的当前编码方式与预设编码规则一致之后,对第一数据文件进行解析,得到第二数据文件,并对第二数据文件进行格式审查,在格式审查结果正确的情况下,对第二数据文件进行逻辑审查,在逻辑审查结果正确的情况下,将第一数据文件发送至目标设备,使目标设备执行与第一数据文件相对应的操作,确保第一数据文件的规范性,提高工业控制系统的安全性,避免对目标设备造成损坏。

图2示出根据本公开的实施例提供的数控程序的安全审查方法的另一流程图。如图2所示,该方法可以包括步骤S201-步骤S210。

在步骤S201中,获取第一数据文件,在执行步骤S201后,执行步骤S202。

在步骤S202中,确定第一数据文件的当前编码方式,在执行步骤S202后,执行步骤S203。

在步骤S203中,判断第一数据文件的当前编码方式是否与预设编码规则不一致。在第一数据文件的当前编码方式与预设编码规则一致的情况下,执行步骤S204。在第一数据文件的当前编码方式与预设编码规则不一致的情况下,判定其满足报警条件,执行步骤S210,发出报警提示。

在步骤S204中,对第一数据文件进行程序解析,得到第二数据文件,在执行步骤S204后,执行步骤S205。

在步骤S205中,根据知识库中的格式规则对第二数据文件进行格式审查,得到第一审查结果,在执行步骤S205后,执行步骤S206。

在步骤S206中,判断第一审查结果的正确性。在第一审查结果正确的情况下,执行步骤S207。在第一审查结果错误的情况下,可以确定其满足报警条件,执行步骤S210,发出报警提示。

在步骤S207中,根据知识库中的逻辑规则,对第二数据文件进行逻辑审查,得到第二审查结果,在执行步骤S207后,执行步骤S208。

在步骤S208中,判断第二审查结果的正确性。在第二审查结果正确的情况下,执行步骤S209。在第二审查结果错误的情况下,可以确定其满足报警条件,执行步骤S210,发出报警提示。

在步骤S209中,将第一数据文件发送至目标设备。

在步骤S210中,满足报警条件时,发出报警提示。

通过获取第一数据文件,在确定第一数据文件的当前编码方式与预设编码规则一致之后,对第一数据文件进行解析,得到第二数据文件,对第二数据文件进行格式审查,在格式审查结果正确的情况下,对第二数据文件进行逻辑审查,在逻辑审查结果正确的情况下,将第一数据文件发送至目标设备,使目标设备执行与第一数据文件相对应的操作,确保第一数据文件的规范性,提高工业控制系统的安全性,避免第一数据文件对目标设备造成损坏。且在满足报警条件时,发出报警提示,可以有效提醒工作人员及时对第一数据文件进行处理。

如图2所示,在步骤S210中,在满足报警条件时,发出报警提示。

其中,所述报警提示可以包括进行安全审查的审查时间、错误类型(也即所满足的报警条件,如第一审查结果错误、第二审查结果错误等)、检测类型(也即所检测的第一数据文件对应的工控设备生产厂家的名称)、错误行(也即第一数据文件中发生错误的行,或者说第一数据文件中导致发出报警提示的行)、描述第一数据文件所发生的错误对应于哪个逻辑规则或格式规则的错误信息等相关信息。

举例来说,图3示出根据本公开的实施例提供的报警提示的示意图。如图3所示,通过对该第一数据文件进行安全审查,发出报警指示。其中,该报警指示可以指示在审核时间为2020年12月23日17时24分26秒时,对“对应的工控设备生产厂家的名称为Heidenhain”的第一数据文件的安全审查中,发现第一数据文件存在“错误类型为范围错误、错误行为16行、错误信息为指令字S超出阈值范围”、“错误类型为无程序结束标志、错误行为42行、错误信息为无程序结束标志”的错误。

其中,报警条件包括以下至少一种:所述当前编码方式与所述预设编码规则不一致;所述第一审查结果存在错误;所述第二审查结果存在错误。

在满足报警条件时,发出报警提示,可以有效提醒终端工作人员及时对第一数据文件进行处理。

在一种可能的实施方式中,所述发出报警提示的方式包括以下方式一-方式五中的至少一种。

方式一,显示第一报警提示。

其中,可以直接通过执行上述方法的装置的显示面板显示第一报警提示,其中,显示面板包括LCD(liquid crystal display)显示器、CRT(cathode ray tube)显示器,本公开对此不做具体限定。第一报警提示中可以包括所满足的报警条件和/或所述第二数据文件(或者第一数据文件)中满足报警条件的位置。如,第一报警提示可以包括第一审查结果存在错误、使第一审查结果发生错误的是第二数据文件中的第五个程序段。

方式二,向发出所述第一数据文件的终端发送第一指令,所述第一指令用于控制发出所述第一数据文件的终端的第一报警模块发出第二报警提示。

其中,可以通过向发出第一数据文件的终端发送第一指令,使发出第一数据文件的终端根据接收到的第一指令,控制第一报警模块发出第二报警提示,其中,所述第一报警模块可以包括指示灯、振动马达、蜂鸣器中的至少一种。可以通过改变指示灯的显示方式、控制振动马达振动、控制蜂鸣器发声等方式进行报警,本公开对具体的报警方式不做限制。其中,改变指示灯的显示方式包括改变指示灯亮灭的频率、控制指示灯显示不同颜色等,本公开对改变指示灯的显示方式不做限制。

方式三,向所述目标设备发送第二指令,所述第二指令用于控制所述目标设备的第二报警模块发出第三报警提示。

其中,可以通过向发出第一数据文件的终端发送第二指令,发出第一数据文件的终端根据接收到的第一指令,控制第二报警模块发出第三报警提示,其中,所述第二报警模块包括指示灯、振动马达、蜂鸣器中的至少一种。可以通过改变指示灯的显示方式、控制振动马达振动、控制蜂鸣器发声等方式进行报警,本公开对具体的报警方式不做限制。其中,改变指示灯的显示方式包括改变指示灯亮灭的频率、控制指示灯显示不同颜色等,本公开对改变指示灯的显示方式不做限制。

方式四,在所述第一数据文件中写入第四报警提示进行报警,使控制终端的工作人员根据该第四报警提示对第一数据文件进行处理。

方式五,控制第三报警模块发出第五报警提示。

其中,可以通过控制数控程序的安全审查装置的第三报警模块发出第五报警提示,其中,所述第三报警模块包括指示灯、振动马达、蜂鸣器中的至少一种。可以通过改变指示灯的显示方式、控制振动马达振动、控制蜂鸣器发声等方式进行报警,本公开对具体的报警方式不做限制。其中,改变指示灯的显示方式包括改变指示灯亮灭的频率、控制指示灯显示不同颜色等,本公开对改变指示灯的显示方式不做限制。

通过在满足以上任意一种报警条件的情况下,发出报警提示,可以有效提醒工作人员及时对第一数据文件进行处理。

在一种可能的实施方式中,所述格式规则可以包括以下至少一种:

所述第二数据文件是否以非法代码开头,所述非法代码可以包括数字代码;

所述第二数据文件中是否包括程序编号指令字;

所述第二数据文件中是否包括合法的起始指令字和结束指令字;

所述第二数据文件中结束指令字后面是否有分号;

所述第二数据文件中程序编号指令字后、且用于实现加工功能的指令字前是否包括准备功能指令字;

所述第二数据文件中每种指令字的地址符是否符合对应的地址符规则;

在所述第二数据文件的多个指令字中的带数字指令字中是否缺少数字代码;

在所述第二数据文件的多个指令字中的带符号指令字中的正负号后是否为非数字代码;

在所述第二数据文件的多个指令字中的带数字指令字中的数字代码的数值类型是否正确。

其中,根据格式规则对第二数据文件进行格式审查的第一审查结果正确,包括:

第二数据文件不是以非法代码开头;

第二数据文件中包括程序编号指令字;

第二数据文件中包括合法的起始指令字和结束指令字;

第二数据文件中结束指令字后面有分号;

第二数据文件中程序编号指令字后、且用于实现加工功能的指令字前包括准备功能指令字;

第二数据文件中每种指令字的地址符符合对应的地址符规则;

第二数据文件的多个指令字中的带数字指令字中含有数字代码;

第二数据文件中的多个指令字中的带符号指令字中的正负号后为数字代码;

第二数据文件的多个指令字中的数字代码的数字类型正确。

其中,根据格式规则对第二数据文件进行格式审查的第一审查结果不正确,包括以下任意一种或多种:

第二数据文件以非法代码开头;

第二数据文件中不包括程序编号指令字;

第二数据文件中不包括合法的起始指令字和/或结束指令字;

第二数据文件中结束指令字后面没有分号;

第二数据文件中程序编号指令字后、且用于实现加工功能的指令字前不包括准备功能指令字;

第二数据文件中每种指令字的地址符不符合对应的地址符规则;

第二数据文件的多个指令字中的带数字指令字中缺少数字代码;

第二数据文件中的多个指令字中的带符号指令字中的正负号后为非数字代码;

第二数据文件的多个指令字中的数字代码的数字类型不正确。

通过对第二数据文件进行格式审查,能够检测出第二数据文件是否符合行业数字控制标准或各个工控设备生产厂家设定的数字控制标准等确定出的格式规则,进而确定第一数据文件是否安全。

在一种可能的实施方式中,所述第二数据文件包括多个程序段,所述逻辑规则包括以下至少一种:

在每个程序段中属于同一组的准备功能指令字是否只出现一次;

在每个程序段中属于同一组的辅助功能指令字是否只出现一次;

在每个程序段中具有相同加工功能的加工功能指令字是否只出现一次;

在每个程序段的多个指令字中的带数字指令字中的数字代码是否在对应的阈值范围中,所述阈值范围是根据带数字指令字对应的地址符阈值表确定的。

其中,根据逻辑规则对第二数据文件进行逻辑审查的第二审查结果正确,包括:

在每个程序段中属于同一组准备功能指令字只出现一次;

在每个程序段中属于同一组辅助功能指令字只出现一次;

在每个程序段中具有相同加工功能的加工指令字只出现一次;

在每个程序段的多个指令字中的带数字指令字中的数字代码在对应的阈值范围中,其中,所述阈值范围是根据带数字指令字对应的地址符阈值表确定的。该地址符阈值表是根据该指令字的地址符与该指令字对应的数字代码所表示的值确定的,该指令字的地址符、该指令字对应的数字代码所表示的值与该指令字的功能有关。

其中,根据逻辑规则对第二数据文件进行逻辑审查的第二审查结果不正确,包括以下任意一种或多种:

在每个程序段中属于同一组准备功能指令字至少出现两次;

在每个程序段中属于同一组辅助功能指令字至少出现两次;

在每个程序段中具有相同加工功能的加工指令字至少出现两次;

在每个程序段的多个指令字中的带数字指令字中的数字代码不在对应的阈值范围中。

通过对第二数据文件进行逻辑审查,能够确认第二数据文件中的指令字是否符合逻辑规则,进而确定第一数据文件是否安全。

图4示出根据本公开的实施例提供的数控程序的安全审查装置的结构图。如图4所示,该装置包括:

获取模块,用于获取第一数据文件;

第一处理模块,用于根据确定的预设编码规则对所述第一数据文件的当前编码方式进行编码方式审查,在所述当前编码方式与所述预设编码规则一致的情况下,对所述第一数据文件进行解析,生成第二数据文件;

第二处理模块,用于根据知识库中的格式规则对所述第二数据文件进行格式审查,得到第一审查结果;

第三处理模块,用于在所述第一审查结果正确的情况下,按照所述知识库中的逻辑规则对所述第二数据文件进行逻辑审查,得到第二审查结果;

输出模块,用于在所述第二审查结果正确的情况下,将所述第一数据文件发送至目标设备,使所述目标设备执行与所述第一数据文件相对应的操作。

根据本公开的实施例,通过获取第一数据文件,在确定第一数据文件的当前编码方式与预设编码规则一致之后,对第一数据文件进行解析,得到第二数据文件,对第二数据文件进行格式审查,在格式审查结果正确的情况下,对第二数据文件进行逻辑审查,在逻辑审查结果正确的情况下,将第一数据文件发送至目标设备,使目标设备执行与第一数据文件相对应的操作,确保第一数据文件的规范性,提高工业控制系统的安全性,避免对目标设备造成损坏。

在一种可能的实施方式中,所述装置还包括生成模块,所述生成模块包括:

第一生成模块,用于根据设备标准编制文件中的格式规则和逻辑规则,生成词法分析器和语法分析器;

第二生成模块,用于根据所述词法分析器、所述语法分析器,得到抽象语法树,所述抽象语法树为所述知识库。

在一种可能的实施方式中,所述装置还包括报警模块,所述报警模块用于在满足报警条件时,发出报警提示,

其中,报警条件包括以下至少一种:

所述当前编码方式与所述预设编码规则不一致;

所述第一审查结果存在错误;

所述第二审查结果存在错误。

在一种可能的实施方式中,所述格式规则包括以下至少一种:

所述第二数据文件是否以非法代码开头,所述非法代码包括数字代码;

所述第二数据文件中是否包括程序编号指令字;

所述第二数据文件中是否包括合法的起始指令字和结束指令字;

所述第二数据文件中结束指令字后面是否有分号;

所述第二数据文件中程序编号指令字后、且用于实现加工功能的指令字前是否包括准备功能指令字;

所述第二数据文件中每种指令字的地址符是否符合对应的地址符规则;

在所述第二数据文件的多个指令字中的带数字指令字中是否缺少数字代码;

在所述第二数据文件的多个指令字中的带符号指令字中的正负号后是否为非数字代码;

在所述第二数据文件的多个指令字中的带数字指令字中的数字代码的数值类型是否正确。

在一种可能的实施方式中,所述第二数据文件包括多个程序段,所述逻辑规则包括以下至少一种:

在每个程序段中属于同一组的准备功能指令字是否只出现一次;

在每个程序段中属于同一组的辅助功能指令字是否只出现一次;

在每个程序段中具有相同加工功能的加工功能指令字是否只出现一次;

在每个程序段的多个指令字中的带数字指令字中的数字代码是否在对应的阈值范围中,所述阈值范围是根据带数字指令字对应的地址符阈值表确定的。

在一种可能的实施方式中,所述预设编码规则包括以下任意一种方式:ASCII编码、Unicode编码。

在一种可能的实施方式中,所述报警模块发出报警提示的方式包括以下至少一种:

显示第一报警提示;

向发出所述第一数据文件的终端发送第一指令,所述第一指令用于控制发出所述第一数据文件的终端的第一报警模块发出第二报警提示;

向所述目标设备发送第二指令,所述第二指令用于控制所述目标设备的第二报警模块发出第三报警提示;

在所述第一数据文件中写入第四报警提示;

控制第三报警模块发出第五报警提示,

其中,所述第一报警模块包括指示灯、振动马达、蜂鸣器中的至少一种,所述第二报警模块包括指示灯、振动马达、蜂鸣器中的至少一种,所述第三报警模块包括指示灯、振动马达、蜂鸣器中的至少一种。

本公开的实施例还提供一种数控程序的安全审查装置,该装置包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行上述方法。

本公开的实施例还提供一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现上述方法。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据表格明文转换为便于程序可读取的二进制密文的方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!