用于从技术安装设施中的工程程序中根除程序错误的方法和系统与流程
未命名
10-25
阅读:109
评论:0

1.本发明涉及计算机辅助编程的工程(engineering)的领域,并且更特别地涉及用于从工程程序中根除程序错误的方法和系统。
背景技术:
2.技术安装设施,诸如工业工厂,包括一个或多个由控制器设备诸如可编程逻辑控制器控制的设备。一个或多个设备的示例包括但不限于控制阀、马达、泵和致动器。控制器设备被配置成通过执行可以存储在存储器中的工程程序来控制一个或多个设备。有时,工程程序包含多个程序错误,其执行迫使控制器设备达到错误状态。在这种情况下,技术安装设施的正常运行停止,因此导致计划外的停机时间。因此,防止控制器设备转变为错误状态是必要的。
3.为了防止到错误状态的这种转变,代码开发者在工程程序的源代码部署之前对其进行验证、调试和校对。代码开发者调试工程程序以根除工程程序中的任何程序错误。然而,在技术安装设施中使用的工程程序包括大量的编程块,每个编程块在代码长度上是巨大的。代码开发者可能发现不可能手动检查这种巨大的代码块以检测和调试程序错误。此外,一些程序错误可能在验证和调试期间不被代码开发者注意到。这种程序错误可能迫使控制器设备进入错误状态,并因此中断技术安装设施中的生产周期。当迫使控制器设备进入错误状态时,代码开发者必须提供对工程程序中的程序错误的解决方案。此外,代码开发者必须检查所提供的解决方案是否正确。检查所提供的解决方案是否正确对于代码开发者而言是耗时且乏味的任务。
4.因此,如果不向代码开发者提供自动化辅助以根除工程程序中的程序错误,则可能浪费大量的劳动和时间。此外,代码开发者可能发现不可能及时完成代码开发。
5.鉴于上述情况,存在对用于从技术安装设施的工程程序中根除程序错误的高效方法和系统的需要。因此,本发明的目的是提供用于从技术安装设施的工程程序中根除程序错误的方法和系统。
技术实现要素:
6.本发明的目的通过根据独立权利要求1的特征的根除控制器设备的工程程序中的程序错误的方法来实现。该控制器设备是被配置成控制技术安装设施中的一个或多个设备的设备。控制器设备的示例包括可编程逻辑控制器(plc)或微处理器或处理单元。一个或多个设备的示例包括但不限于控制阀、马达、泵和致动器。技术安装设施的示例包括制造工厂、发电工厂或化学加工工厂。控制器设备被配置成基于工程程序的执行来控制一个或多个设备。工程程序包括多个编程块,所述多个编程块中的每个编程块包括一个或多个程序错误。在一个示例中,工程程序是包括程序逻辑的图形程序。工程程序包括对应于程序逻辑的一组可编程指令或语句。多个编程块中的每个编程块对应于技术安装设施的工程设计下
的功能块。工程设计可以包括若干这种编程块。控制器设备被配置成在多个扫描周期中执行工程程序。
7.在优选实施例中,方法还包括由处理单元捕获与控制器设备相关联的多个输入-输出信号。多个输入-输出信号包括多个输入信号和多个输出信号。多个输入信号的示例包括在控制器设备中的工程程序的执行的多个扫描周期期间由控制器设备从多个传感器和多个人机接口接收的输入信号。所述多个输出信号包括在所述控制器设备对所述工程程序的执行的多个扫描周期期间由所述控制器设备发送到所述技术安装设施中的一个或多个设备中的输出信号。在一个示例中,多个输入-输出信号包括在控制器设备中的工程程序的执行的当前扫描周期期间由控制器设备发送或接收的信号。
8.在优选实施例中,方法还包括由处理单元分析多个输入-输出信号以生成输入知识图、输出知识图和输入-输出对应关系知识图。输入知识图包括关于在控制器设备中的工程程序的执行的多个扫描周期期间由控制器设备接收的输入信号之间的关系的信息。处理单元被配置成查询输入知识图以预测在控制器设备中的工程程序的执行的未来扫描周期期间可能由控制器设备接收的输入信号。
9.输出知识图包括关于在控制器设备中的工程程序的执行的多个扫描周期中由控制器设备发送的输出信号之间的关系的信息。处理单元被配置成查询输出知识图以预测在控制器设备中的工程程序的执行的未来扫描周期处可能由控制器设备发送的输出信号。输入输出对应关系知识图包括关于在控制器设备中的工程程序的执行的多个扫描周期中由控制器设备接收的输入信号与由控制器设备发送的输出信号之间的关系的信息。处理单元被配置成查询输出知识图以预测对于由控制器设备接收的给定输入信号而言可能由控制器设备发送的输出信号。
10.在另一优选实施例中,方法还包括由处理单元模拟多个输入信号,该多个输入信号被预测将在控制器设备中的工程程序的执行的未来扫描周期期间由控制器设备接收。基于对所捕获的多个输入-输出信号的分析来模拟多个模拟的输入信号。在一个示例中,处理单元通过查询从所捕获的多个输入-输出信号生成的输入知识图、输出知识图和输入-输出知识图来模拟多个输入信号。有利的是,基于对在先前扫描周期期间由控制器设备124接收的输入信号的分析来模拟多个输入信号。此外,基于对与所捕获的多个输入-输出信号中的每个输入信号之间的关系相关联的信息的分析来模拟多个输入信号。因此,在工程程序的执行的后续扫描周期期间,模拟的多个输入信号可能由控制器设备接收。
11.在另一优选实施例中,方法还包括由所述处理单元从所述控制器设备接收第一组程序执行参数。第一组程序执行参数包括在控制器设备中执行工程程序期间关于控制器设备的内部运行的信息。例如,第一组程序执行参数包括运行时信息,诸如关于在控制器设备中的工程程序的执行的当前扫描周期期间的控制器设备的存储器碎片、扫描周期性质、系统资源利用和存储器利用的信息。
12.在另一优选实施例中,方法还包括由处理单元分析所捕获的多个输入-输出信号、工程程序和控制器设备的第一组程序执行参数。工程程序包括多个编程块。第一组程序执行的每一个在工程程序的执行的每个扫描周期期间变化。该方法还包括由处理单元确定当控制器设备在多个扫描周期的每个扫描周期中执行工程程序时第一组程序执行参数的多个变化。
13.在另一优选实施例中,方法还包括由处理单元基于所述分析来生成基于动态本体的知识图。基于动态本体的知识图包括工程程序的多个编程块与控制器设备的第一组程序执行参数之间的关系。基于动态本体的知识图还包括关于第一组程序执行参数的变化与所捕获的多个输入-输出信号之间的关系的信息。
14.在一个示例中,第一组程序执行参数包括关于工程程序的执行的多个扫描周期的信息。在这种情况下,基于动态本体的知识图包括扫描周期本体。扫描周期本体包括关于在多个扫描周期中的每个扫描周期中的工程程序的完整执行所花费的时间的信息。扫描周期本体还包括关于在多个扫描周期的每个扫描周期期间扫描的编程块的总数的信息。扫描周期本体还包括关于多个扫描周期中的中断/不成功扫描周期的总数的信息。
15.第一组程序执行参数还包括关于资源利用的信息和关于存储器碎片的信息。在这种情况下,基于静态本体的知识图包括关于存储器碎片本体和系统资源利用本体的信息。系统资源利用本体中的信息的示例包括但不限于与系统函数调用的频率有关的信息。存储器碎片本体中的信息的示例包括但不限于与控制器设备中的工作存储器利用和负载存储器利用有关的信息。
16.在另一优选实施例中,方法还包括由处理单元从控制器设备接收与控制器设备的硬件配置相关联的信息。与控制器设备的硬件配置相关联的信息包括关于控制器设备的固件、输入/输出指令集、存储器资源、处理功率资源、时钟速度、型号和制造商细节的信息。方法还包括由处理单元分析与控制器设备的硬件配置相关联的信息。方法还包括由处理单元基于对关于硬件配置的信息的分析来生成基于静态本体的知识图。基于静态本体的知识图包括关于与控制器设备相关联的一个或多个硬件配置相关信息的信息。方法还包括由处理单元根据基于静态本体的知识图和基于动态本体的知识图来生成控制器设备的硬件本体。控制器设备的硬件本体包括二维知识图,该二维知识图包括基于静态本体的知识图和基于动态本体的知识图。
17.在一个示例中,方法还包括在多个扫描周期中执行工程程序的每个编程块期间由处理单元接收控制器设备的多个程序执行参数。方法还包括在多个扫描周期中的每一个的执行期间由处理单元分析控制器设备的多个程序执行参数。方法还包括由处理单元从多个扫描周期确定一组成功扫描周期和一组不成功扫描周期。基于对所接收的多个程序执行参数的分析来确定该组成功扫描周期和该组不成功扫描周期。在这种情况下,方法还包括由处理单元基于对与该组成功扫描周期和该组不成功扫描周期相关联的信息的分析来生成基于硬件本体的知识图。
18.在优选实施例中,方法还包括由处理单元基于对控制器设备的硬件本体的分析来生成控制器设备的数字孪生体。在一个示例中,基于对基于动态本体的知识图和基于静态本体的知识图的分析来生成控制器设备的数字孪生体。还基于由处理单元生成的输入知识图、输出知识图和输入-输出对应关系知识图来生成数字孪生体。在一个示例中,控制器设备的数字孪生体是控制器设备的模拟模型,该模拟模型被配置成当控制器设备在多个扫描周期中执行工程程序时模拟可能由控制器设备生成的输出。有利的是,使用基于动态本体的知识图和基于静态本体的知识图的组合来生成数字孪生体。基于动态本体的知识图将控制器设备的内部运行的变化映射到工程程序的不同编程块。因此,所生成的数字孪生体准确地模拟控制器设备对工程程序的执行。
19.在另一优选实施例中,方法还包括:使用模拟的多个输入信号作为输入,由处理单元在所生成的数字孪生体中执行工程程序。换句话说,处理单元使数字孪生体模拟控制器设备对工程程序的执行,就像在工程程序的执行期间将模拟的多个输入信号馈送到控制器设备一样。
20.在另一优选实施例中,方法还包括在由数字孪生体执行工程程序期间由处理单元从控制器设备的数字孪生体接收一个或多个程序执行参数。方法还包括分析从数字孪生体接收的一个或多个程序执行参数。方法还包括由处理单元检测在工程程序的执行的特定扫描周期期间数字孪生体中的错误状态的发生。方法还包括由处理单元基于控制器设备的数字孪生体中的工程程序的执行来预测控制器设备中的错误状态的发生。预测在控制器设备对工程程序的执行的未来扫描周期处在控制器设备中发生错误状态。已经注意到,所模拟的多个输入信号包括在工程程序的执行的未来扫描周期处可能由控制器设备接收的输入信号。此外,控制器设备的数字孪生体模拟控制器设备的行为。因此,有利的是,数字孪生体中的工程程序的执行使得能够在未来扫描周期处准确预测控制器设备中的错误状态。因此,使得用户能够修改工程程序以在控制器设备中执行工程程序期间避免这种错误状态。
21.在另一优选实施例中,方法还包括由处理单元分析工程程序和控制器设备的预测的错误状态。方法还包括由处理单元基于对控制器设备中的预测的错误状态的分析来确定工程程序中的一个或多个程序错误。一个或多个程序错误的示例包括但不限于语法错误、语义错误、逻辑错误、接口错误和资源错误。在一个示例中,方法包括由处理单元将预测的错误状态映射到工程程序的一个或多个编程块。此外,方法包括由处理单元基于对预测的错误状态的分析来确定预测的错误状态的类型。一个或多个程序错误的类型的示例包括但不限于语法错误类型、语义错误类型、逻辑错误类型、接口错误类型和资源错误类型。方法还包括由处理单元基于预测的错误状态的分析来确定工程程序中的一个或多个程序错误。在一个示例中,基于人工智能模型在预测的错误状态和工程程序上的应用来确定一个或多个程序错误。在一个示例中,人工智能模型是基于卷积神经网络的人工智能模型。在另一示例中,基于预测的错误状态到工程程序的一个或多个编程块的映射来确定一个或多个程序错误。
22.在另一优选实施例中,方法包括由处理单元将人工智能模型应用在工程程序上以从工程程序中根除所确定的一个或多个程序错误。方法还包括由处理单元基于人工智能模型在工程程序上的应用来生成校正的工程程序。人工智能模型被训练以从工程程序中根除所确定的一个或多个程序错误。
23.在另一优选实施例中,通过由处理单元在控制器设备和数字孪生体中启动工程程序的并发执行,人工智能模型被训练以根除一个或多个程序错误。使用来自所捕获的多个输入-输出信号的输入信号来执行所述并发执行。换句话说,控制器设备和控制器设备的数字孪生体同时执行工程程序。方法还包括由处理单元从控制器设备接收第一组程序执行参数。方法还包括由处理单元分析第一组程序执行参数。方法还包括由处理单元基于对多个程序执行参数的分析来确定控制器设备处于错误状态。在一个示例中,处理单元被配置成通过检测第一组程序执行参数中的一个或多个异常值来确定错误状态。在一个示例中,第一组程序执行参数包括关于与控制器设备相关联的存储器资源消耗百分比的信息。存储器资源消耗百分比包括关于在工程程序的执行的每个扫描周期期间由控制器设备利用的内
部存储器的百分比的信息。在这种情况下,处理单元被配置成当存储器资源利用百分比达到100%时确定控制器设备处于错误状态。
24.在另一优选实施例中,此外通过由处理单元基于错误状态的分析来确定工程程序的每个编程块中的一组程序错误,训练人工智能模型。通过在控制器设备执行工程程序的相应编程块的同时分析第一组程序执行参数的变化,由处理单元确定每个编程块中的该组程序错误。方法还包括由处理单元基于对所确定的一组程序错误、所接收的第一组程序执行参数和工程程序的多个编程块的分析来生成基于原因本体的知识图。基于原因本体的知识图包括关于工程程序中的该组程序错误与控制器设备的错误状态之间的关系的信息。换句话说,基于原因本体的知识图包括关于工程程序中的该组程序错误以及由该组程序错误中的每一个所导致的错误状态的类型的信息。方法还包括由处理单元分析所生成的基于使用本体的知识图以训练人工智能模型来确定引起控制器设备中的错误状态的一个或多个程序错误。
25.在另一优选实施例中,方法还包括由处理单元经由显示器设备显示与该组程序错误相关联的信息。显示器设备的示例包括但不限于诸如液晶显示屏的人机接口。方法还包括由处理单元从用户接收对工程程序的多个修改。用户可以经由诸如键盘或鼠标的人机接口输入对工程程序的多个修改。用户可以输入多个修改以消除工程程序中的所确定的一组程序错误。方法还包括由处理单元通过在工程程序中应用所接收的多个修改来修改工程程序以生成修改的工程程序。
26.在另一优选实施例中,方法还包括由处理单元启动控制器设备和控制器设备的数字孪生体中的修改的工程程序的同时执行。在修改的工程程序的执行期间,将所捕获的多个输入-输出信号作为输入馈送到控制器设备和数字孪生体中。方法还包括由处理单元从控制器设备和数字孪生体接收第二组程序执行参数。第二组程序执行参数包括在控制器设备和控制器设备的数字孪生体中执行修改的工程程序期间关于控制器设备和数字孪生体的内部运行的信息。方法还包括由处理单元比较第一组程序执行参数与第二组程序执行参数。
27.在另一优选实施例中,方法还包括由处理单元确定第二组程序执行参数与第一组程序执行参数相比的改进。在一个示例中,对于该工程程序和该修改的工程程序的对应部分的执行来说,第二组程序执行参数的存储器资源利用百分比可以小于第一组程序执行参数的存储器资源利用百分比。在这种情况下,处理单元被配置成确定第二组程序执行参数与第一组程序执行参数相比已改进。方法还包括由处理单元基于对所确定的一组程序错误、所接收的多个修改、第一组程序执行参数和第二组程序执行参数的分析来生成基于解决方案本体的知识图。基于解决方案本体的知识图包括关于所确定的一组程序错误与由用户执行的用于从工程设计程序中根除所确定的一组程序错误的多个修改之间的关系的信息。
28.在另一优选实施例中,方法还包括由处理单元基于多个修改以及第一组程序执行参数和第二组程序执行参数之间的比较结果来生成基于效果本体的知识图。方法还包括:使用基于原因本体的知识图、基于解决方案本体的知识图和基于效果本体的知识图,由处理单元训练人工智能模型以从工程程序中确定和根除一个或多个程序错误。
29.在另一优选实施例中,方法还包括由处理单元经由显示器设备向用户显示校正的
工程程序。方法还包括由处理单元从用户接收关于校正的工程程序的多个评审意见。方法还包括由处理单元基于对多个评审意见的分析来确定针对校正的工程程序的一组修改。方法还包括由处理单元基于所确定的一组修改来再训练人工智能模型。
30.在另一优选实施例中,方法还包括:使用所捕获的多个输入-输出信号作为输入,由处理单元启动工程程序在控制器设备和数字孪生体中的并发执行。方法还包括由处理单元从控制器设备接收第一组输出信号并且从数字孪生体接收第二组输出信号。方法还包括由处理单元比较第一组输出信号和第二组输出信号。方法还包括由处理单元基于所述比较来确定第一组输出信号与第二组输出信号之间的多个差异。方法还包括由处理单元基于对多个差异的分析来确定工程程序中的一个或多个程序错误。方法还包括由处理单元通过在工程程序上应用人工智能模型来生成校正的工程程序。注意,人工智能模型被训练以从工程程序中根除所确定的一个或多个程序错误。
31.本发明的目的也通过用于从工程程序中根除程序错误的工程系统来实现。该工程系统包括一个或多个处理器和耦合到处理器的存储器。存储器包括以可由处理器执行的机器可读指令的形式存储的诊断和解决方案模块。诊断和解决方案模块被配置成执行如上所述的方法。
32.本发明的目的也通过工业环境来实现。该工业环境包括工程系统、包括一个或多个物理组件的技术安装设施、以及通信地耦合到工程系统和技术安装设施的一个或多个客户端设备。工程系统被配置成执行上述方法步骤。
33.本发明的目的也通过计算机程序产品来实现,该计算机程序产品具有存储在其中的机器可读指令,该机器可读指令在由一个或多个处理器执行时使一个或多个处理器执行如上所述的方法步骤。
附图说明
34.现在将参考本发明的附图来提出本发明的上述和其它特征。所说明的实施例旨在说明而不是限制本发明。
35.在下文中参考附图中所示的所说明的实施例进一步描述本发明,在所述附图中:
36.图1是根据本发明的实施例的能够从工程程序中根除程序错误的工业环境的框图;
37.图2是其中可以实现本发明的实施例的工程系统(诸如图1中所示的工程系统)的框图;
38.图3是其中可以实现本发明的实施例的诊断和解决方案模块(诸如图2中所示的诊断和解决方案模块)的框图;
39.图4a-e是说明根据本发明的实施例的在工程系统中生成工程程序的示例性方法的过程流程图;以及
40.图5a-d是说明训练人工智能模型以根除工程程序中的程序错误的示例性方法的过程流程图。
具体实施方式
41.参考附图描述各种实施例,其中,相同的参考标号用于参考附图,其中,相同的参
考标号自始至终用于指代相同的元件。在以下描述中,出于解释的目的,阐述许多具体细节以便提供对一个或多个实施例的透彻理解。可能显然的是,可以在没有这些具体细节的情况下实践这种实施例。
42.图1是根据本发明的实施例的能够从工程程序中根除程序错误的工业环境100的框图。在图1中,工业环境100包括工程系统102、技术安装设施106和一个或多个客户端设备120a-n。如本文中所使用的,“工业环境”指代:处理环境,包括可配置计算物理和逻辑资源,例如网络、服务器、存储装置、应用、服务等,以及在平台诸如云计算平台上分布的数据。工业环境100提供对可配置计算物理和逻辑资源的共享池的按需网络访问。工程系统102经由网络104(诸如局域网(lan)、广域网(wan)、wi-fi、因特网、任何短距离或长距离通信)通信地连接到技术安装设施106。工程系统102也经由网络104连接到一个或多个客户端设备120a-n。
43.工程系统102经由网络104连接到技术安装设施106中的一个或多个工程对象108a-n。一个或多个工程对象108a-n可以包括服务器、机器人、交换机、自动化设备、可编程逻辑控制器(plc)、人机接口(hmi)、马达、阀、泵、致动器、传感器和(一个或多个)其它工业装备。一个或多个工程对象108a-n可以经由物理连接而彼此连接或连接到若干其它组件(图1中未示出)。物理连接可以是通过一个或多个工程对象108a-n之间的布线。替选地,一个或多个工程对象108a-n也可以经由非物理连接(诸如物联网(iot))和5g网络进行连接。尽管图1说明了工程系统102连接到一个技术安装设施106,但是本领域技术人员可以想到,工程系统102可以经由网络104连接到位于不同地理位置的若干技术安装设施106。
44.客户端设备120a-n可以是台式计算机、膝上型计算机、平板电脑、智能电话等。分别向每个客户端设备120a-n提供工程工具122a-n用于生成和/或编辑工程程序。客户端设备120a-n可以访问工程系统102以自动生成工程程序。客户端设备120a-n可以访问云应用(例如经由万维网(web)浏览器提供一个或多个工程对象108a-n的性能可视化)。在整个说明书中,术语“客户端设备”和“用户设备”可互换地使用。
45.工程系统102还连接到控制器设备124。控制器设备124的示例包括但不限于可编程逻辑控制器、微处理器和其它处理单元。控制器设备124被配置成在多个扫描周期中执行由工程系统生成的工程程序。控制器设备112被配置成从多个传感器和多个人机接口诸如一个或多个客户端设备120a-n接收多个输入信号。控制器设备112还被配置成向一个或多个工程对象108a-n发送多个输出信号。
46.工程系统102可以是部署在控制站处的独立服务器,或者可以是云计算平台上的远程服务器。在优选实施例中,工程系统102可以是一个基于云的工程系统。工程系统102能够递送用于管理包括一个或多个工程对象108a-n的技术安装设施106的应用(诸如云应用)。工程系统102可以包括平台110(诸如云计算平台)、诊断和解决方案模块112、包括硬件资源和操作系统(os)的服务器114、网络接口116和数据库118。网络接口116使得能够在工程系统102、技术安装设施106、(一个或多个)客户端设备120a-n和控制器设备124之间进行通信。接口(诸如云接口)(图1中未示出)可以允许在(一个或多个)客户端设备120a-n处的工程师访问存储在工程系统102处的工程项目文件,并且作为相同实例对工程项目文件执行一个或多个动作。服务器114可以包括其上安装os的一个或多个服务器。服务器114可以包括一个或多个处理器、一个或多个存储设备(诸如存储器单元,用于存储数据和机器可读
指令例如应用和应用编程接口(api))、以及为提供计算(诸如,云计算)功能所需的其它外围设备。平台110使用服务器114的硬件资源和os来实现诸如数据接收、数据处理、数据再现、数据通信等的功能,并使用部署在其中的应用编程接口来递送上述服务。平台110可以包括专用硬件和在硬件和os之上构建的软件的组合。在示例性实施例中,平台110可以对应于集成开发环境(ide),该集成开发环境(ide)包括允许客户端设备120a-n的用户生成工程程序的程序编辑器和编译器。平台110还可以包括被配置成生成工程程序的诊断和解决方案模块112。在一个示例中,诊断和解决方案模块112包括控制器设备124的数字孪生体126。在图3中解释诊断和解决方案模块112的细节。
47.数据库118存储与技术安装设施106和(一个或多个)客户端设备120a-n有关的信息。数据库118例如是结构化查询语言(sql)数据存储或者是不仅sql(nosql)数据存储。在示例性实施例中,数据库118可以被配置成在工业环境100中实现的基于云的数据库,其中,计算资源作为服务通过平台110来递送。根据本发明的另一实施例,数据库118是可由诊断和解决方案模块112直接访问的文件系统上的位置。数据库118被配置成存储工程项目文件、工程程序、对象行为模型、与一个或多个工程对象108a-n相关联的参数值、测试结果、模拟结果、状态消息、一个或多个模拟实例、图形程序、程序逻辑、程序逻辑模式、工程对象108a-n和工程对象属性、一个或多个工程对象块、工程对象之间的关系信息、需求、程序更新消息等。
48.在本发明的示例性实施例中,控制器设备124被配置成执行工程程序以控制一个或多个工程对象108a-n。为了控制一个或多个工程对象108a-n,控制器设备124被配置成基于工程程序的执行而生成多个输出信号。诊断和解决方案模块112与工程程序的执行并行地运行。诊断和解决方案模块112被配置成在运行时期间从工程程序中检测和根除一个或多个程序错误。因此,诊断和解决方案模块112防止控制器设备124进入错误状态。所述一个或多个程序错误包括语法和语义错误。
49.诊断和解决方案模块112被配置成捕获与控制器设备124相关联的多个输入-输出信号。多个输入-输出信号包括多个输入信号和多个输出信号。多个输入信号的示例包括在控制器设备124中的工程程序的执行的多个扫描周期期间由控制器设备124从多个传感器和多个人机接口接收的输入信号。多个输出信号包括在控制器设备124对工程程序的执行的多个扫描周期期间由控制器设备124发送到技术安装设施106中的一个或多个设备中的输出信号。在一个示例中,多个输入-输出信号包括在控制器设备124中的工程程序的执行的当前扫描周期期间由控制器设备124发送或接收的信号。
50.诊断和解决方案模块112还被配置成分析多个输入-输出信号以生成输入知识图、输出知识图和输入-输出对应关系知识图。输入知识图包括关于在控制器设备124中的工程程序的执行的多个扫描周期期间由控制器设备124接收的输入信号之间的关系的信息。诊断和解决方案模块112还被配置成查询输入知识图以预测在控制器设备124中的工程程序的执行的未来扫描周期期间可能由控制器设备124接收的输入信号。
51.输出知识图包括关于在控制器设备124中的工程程序的执行的多个扫描周期中由控制器设备124发送的输出信号之间的关系的信息。诊断和解决方案模块112还被配置成查询输出知识图以预测在控制器设备124中的工程程序的执行的未来扫描周期处可能由控制器设备124发送的输出信号。输入输出对应关系知识图包括关于在控制器设备124中的工程
程序的执行的多个扫描周期中由控制器设备124接收的输入信号与由控制器设备124发送的输出信号之间的关系的信息。处理单元202被配置成查询输出知识图以预测对于由控制器设备124接收的给定输入信号而言可能由控制器设备124发送的输出信号。
52.诊断和解决方案模块112还被配置成模拟多个输入信号,所述多个输入信号被预测将在工程程序的执行的未来扫描周期期间由控制器设备124接收。基于对所捕获的多个输入-输出信号的分析来模拟多个模拟的输入信号。
53.诊断和解决方案模块112还被配置成从控制器设备124接收第一组程序执行参数。第一组程序执行参数包括在当前扫描周期中执行工程程序期间关于控制器设备124的内部运行的信息。例如,第一组程序执行参数包括运行时信息,诸如关于在工程程序的执行的当前扫描周期期间控制器设备124的存储器碎片、扫描周期性质、系统资源利用和存储器利用的信息。
54.诊断和解决方案模块112还被配置成分析所捕获的多个输入-输出信号、工程程序和控制器设备124的第一组程序执行参数。工程程序包含多个编程块。第一组程序执行的每一个在工程程序的执行的每个扫描周期期间变化。诊断和解决方案模块112还被配置成确定当控制器设备124在多个扫描周期的每个扫描周期中执行工程程序时第一组程序执行参数的多个变化。
55.诊断和解决方案模块112还被配置成基于所述分析来生成基于动态本体的知识图。基于动态本体的知识图包括工程程序的多个编程块与控制器设备124的第一组程序执行参数之间的关系。基于动态本体的知识图还包括关于第一组程序执行参数的变化与所捕获的多个输入-输出信号之间的关系的信息。在一个示例中,第一组程序执行参数包括关于工程程序的执行的多个扫描周期的信息。在这种情况下,基于动态本体的知识图包括扫描周期本体。扫描周期本体包括关于多个扫描周期中的每个扫描周期所花费的时间的信息。扫描周期本体还包括关于在多个扫描周期的每个扫描周期期间扫描的编程块的总数的信息。扫描周期本体还包括关于多个扫描周期中的中断/不成功扫描周期的总数的信息。
56.第一组程序执行参数还包括关于资源利用的信息和关于存储器碎片的信息。在这种情况下,基于静态本体的知识图包括关于存储器碎片本体和系统资源利用本体的信息。系统资源利用本体中的信息的示例包括但不限于与系统函数调用的频率有关的信息。存储器碎片本体中的信息的示例包括但不限于与控制器设备124中的工作存储器利用和负载存储器利用有关的信息。
57.诊断和解决方案模块112还被配置成接收与控制器设备124的硬件配置相关联的信息。与控制器设备124的硬件配置相关联的信息包括关于控制器设备124的固件、输入/输出指令集、存储器资源、处理功率资源、时钟速度、型号和制造商细节的信息。诊断和解决方案模块112还使处理单元202分析与控制器设备124的硬件配置相关联的信息。诊断和解决方案模块112还被配置成基于对关于硬件配置的信息的分析来生成基于静态本体的知识图。基于静态本体的知识图包括关于与控制器设备124相关联的一个或多个硬件配置相关信息的信息。
58.诊断和解决方案模块112还被配置成根据基于静态本体的知识图和基于动态本体的知识图来生成控制器设备124的硬件本体。控制器设备124的硬件本体包括二维知识图,该二维知识图包括基于静态本体的知识图和基于动态本体的知识图。
59.诊断和解决方案模块112还被配置成在多个扫描周期的每一个的执行期间分析控制器设备124的多个程序执行参数。诊断和解决方案模块112还被配置成基于对控制器设备124的硬件本体的分析来生成控制器设备124的数字孪生体126。在一个示例中,基于对基于动态本体的知识图和基于静态本体的知识图的分析来生成控制器设备124的数字孪生体126。还基于由处理单元202生成的输入知识图、输出知识图和输入-输出对应关系知识图来生成数字孪生体126。在一个示例中,控制器设备124的数字孪生体126是控制器设备124的计算机模型,该计算机模型被配置成模拟在控制器设备124中的工程程序的执行的未来扫描周期中可能由控制器设备124生成的输出。
60.诊断与解决方案模块112还被配置成使用模拟的多个输入信号作为输入来在所生成的数字孪生体126中执行工程程序。换句话说,处理单元202使数字孪生体126模拟控制器设备124对工程程序的执行,就像在工程程序的执行期间将模拟的多个输入信号馈送到控制器设备124一样。
61.诊断和解决方案模块112还被配置成基于控制器设备124的数字孪生体126中的工程程序的执行来预测控制器设备124中的错误状态的发生。错误状态在控制器设备124对工程程序的执行的未来扫描周期处在控制器设备124中发生。
62.诊断和解决方案模块112还被配置成基于对控制器设备124中的预测的错误状态的分析来确定工程程序中的一个或多个程序错误。一个或多个程序错误的示例包括但不限于语法错误、语义错误、逻辑错误、接口错误和资源错误。
63.诊断和解决方案模块112还被配置成基于人工智能模型在工程程序上的应用来生成校正的工程程序。参考图3详细解释人工智能模型。
64.图2是其中可以实现本发明的实施例的工程系统102(诸如图1中所示的工程系统)的框图。在图2中,工程系统102包括处理单元202、可访问存储器204、存储单元206、通信接口208、输入-输出单元210、网络接口212和总线214。
65.如本文中所使用的,处理单元202意指任何类型的计算电路,诸如但不限于微处理器单元、微控制器、复杂指令集计算微处理器单元、精简指令集计算微处理器单元、超长指令字微处理器单元、显式并行指令计算微处理器单元、图形处理单元、数字信号处理单元或任何其它类型的处理电路。处理单元202也可以包括嵌入式控制器,诸如通用或可编程逻辑器件或阵列、专用集成电路、单芯片计算机等。
66.存储器204可以是非暂时性易失性存储器和非易失性存储器。存储器204可以被耦合以用于与处理单元202通信,诸如作为计算机可读存储介质。处理单元202可以执行存储在存储器204中的机器可读指令和/或源代码。各种机器可读指令可以存储在存储器204中并从存储器204访问。存储器204可以包括用于存储数据和机器可读指令的任何合适的元件,诸如只读存储器、随机存取存储器、可擦除可编程只读存储器、电可擦除可编程只读存储器、硬盘驱动器、用于处理光盘、数字视频盘、磁盘、磁带盒、存储卡等的可移动介质驱动器。在本实施例中,存储器204包括集成开发环境(ide)216。ide 216包括以机器可读指令的形式存储在任何上述存储介质上的诊断和解决方案模块112,并且可以与(一个或多个)处理器202通信并由(一个或多个)处理器202执行。
67.当由处理单元202执行时,诊断和解决方案模块112使处理单元202从工程系统102中的工程程序中根除程序错误。
68.在一个实施例中,诊断和解决方案模块112使处理单元202捕获与控制器设备124相关联的多个输入-输出信号。多个输入-输出信号包括多个输入信号和多个输出信号。多个输入信号的示例包括在控制器设备124中的工程程序的执行的多个扫描周期期间由控制器设备124从多个传感器和多个人机接口接收的输入信号。多个输出信号包括在控制器设备124对工程程序的执行的多个扫描周期期间由控制器设备124发送到技术安装设施106中的一个或多个设备中的输出信号。在一个示例中,多个输入-输出信号包括在控制器设备124中的工程程序的执行的当前扫描周期期间由控制器设备124发送或接收的信号。
69.诊断和解决方案模块112还使处理单元202分析多个输入-输出信号以生成输入知识图、输出知识图和输入-输出对应关系知识图。输入知识图包括关于在控制器设备124中的工程程序的执行的多个扫描周期期间由控制器设备124接收的输入信号之间的关系的信息。处理单元202被配置成查询输入知识图以预测在控制器设备124中的工程程序的执行的未来扫描周期期间可能由控制器设备124接收的输入信号。
70.输出知识图包括关于在控制器设备124中的工程程序的执行的多个扫描周期中由控制器设备124发送的输出信号之间的关系的信息。处理单元202被配置成查询输出知识图以预测在控制器设备124中的工程程序的执行的未来扫描周期处可能由控制器设备124发送的输出信号。输入-输出对应关系知识图包括关于在控制器设备124中的工程程序的执行的多个扫描周期中由控制器设备124接收的输入信号与由控制器设备124发送的输出信号之间的关系的信息。处理单元202被配置成查询输出知识图以预测对于由控制器设备124接收的给定输入信号而言可能由控制器设备124发送的输出信号。
71.诊断和解决方案模块112还使处理单元202模拟多个输入信号,所述多个输入信号被预测将在工程程序的执行的未来扫描周期期间由控制器设备124接收。基于对所捕获的多个输入-输出信号的分析来模拟多个模拟的输入信号。在一个示例中,处理单元202通过查询从所捕获的多个输入-输出信号生成的输入知识图、输出知识图和输入-输出知识图来模拟多个输入信号。
72.诊断和解决方案模块112还使处理单元202从控制器设备124接收第一组程序执行参数。第一组程序执行参数包括在当前扫描周期中执行工程程序期间关于控制器设备124的内部运行的信息。例如,第一组程序执行参数包括运行时信息,诸如关于在工程程序的执行的当前扫描周期期间控制器设备124的存储器碎片、扫描周期性质、系统资源利用和存储器利用的信息。
73.诊断和解决方案模块112还使处理单元202分析所捕获的多个输入-输出信号、工程程序和控制器设备124的第一组程序执行参数。工程程序包括多个编程块。第一组程序执行的每一个在工程程序的执行的每个扫描周期期间变化。诊断和解决方案模块112还使处理单元202确定当控制器设备124在多个扫描周期的每个扫描周期中执行工程程序时第一组程序执行参数的多个变化。
74.诊断和解决方案模块112还使处理单元202基于该分析生成基于动态本体的知识图。基于动态本体的知识图包括工程程序的多个编程块与控制器设备124的第一组程序执行参数之间的关系。基于动态本体的知识图还包括关于第一组程序执行参数的变化与所捕获的多个输入-输出信号之间的关系的信息。在一个示例中,第一组程序执行参数包括关于工程程序的执行的多个扫描周期的信息。在这种情况下,基于动态本体的知识图包括扫描
周期本体。扫描周期本体包括关于多个扫描周期中的每个扫描周期所花费的时间的信息。扫描周期本体还包括关于在多个扫描周期的每个扫描周期期间扫描的编程块的总数的信息。扫描周期本体还包括关于多个扫描周期中的中断/不成功扫描周期的总数的信息。
75.第一组程序执行参数还包括关于资源利用的信息和关于存储器碎片的信息。在这种情况下,基于静态本体的知识图包括关于存储器碎片本体和系统资源利用本体的信息。系统资源利用本体中的信息的示例包括但不限于与系统函数调用的频率有关的信息。存储器碎片本体中的信息的示例包括但不限于与控制器设备124中的工作存储器利用和负载存储器利用有关的信息。
76.诊断和解决方案模块112还使处理单元202接收与控制器设备124的硬件配置相关联的信息。与控制器设备124的硬件配置相关联的信息包括关于控制器设备124的固件、输入/输出指令集、存储器资源、处理功率资源、时钟速度、型号和制造商细节的信息。诊断和解决方案模块112还使处理单元202分析与控制器设备124的硬件配置相关联的信息。诊断和解决方案模块112还使处理单元202基于对关于硬件配置的信息的分析来生成基于静态本体的知识图。基于静态本体的知识图包括关于与控制器设备124相关联的一个或多个硬件配置相关信息的信息。
77.诊断和解决方案模块112还使处理单元202根据基于静态本体的知识图和基于动态本体的知识图来生成控制器设备124的硬件本体。控制器设备124的硬件本体包括二维知识图,该二维知识图包括基于静态本体的知识图和基于动态本体的知识图。
78.诊断和解决方案模块112还使处理单元202在多个扫描周期中执行工程程序的每个编程块期间接收控制器设备124的多个程序执行参数。
79.诊断和解决方案模块112还使处理单元202在多个扫描周期的每一个的执行期间分析控制器设备124的多个程序执行参数。诊断和解决方案模块112还使处理单元202从多个扫描周期确定一组成功扫描周期和一组不成功扫描周期。基于对所接收的多个程序执行参数的分析来确定该组成功扫描周期和该组不成功扫描周期。在这种情况下,诊断和解决方案模块112还使处理单元202基于对与该组成功扫描周期和该组不成功扫描周期相关联的信息的分析来生成基于硬件本体的知识图。
80.诊断和解决方案模块112还使处理单元202基于对控制器设备124的硬件本体的分析来生成控制器设备124的数字孪生体126。在一个示例中,基于对基于动态本体的知识图和基于静态本体的知识图的分析来生成控制器设备124的数字孪生体126。还基于由处理单元202生成的输入知识图、输出知识图和输入-输出对应关系知识图来生成数字孪生体126。在一个示例中,控制器设备124的数字孪生体126是控制器设备124的计算机模型,该计算机模型被配置成模拟在控制器设备124中的工程程序的执行的未来扫描周期中可能由控制器设备124生成的输出。
81.诊断和解决方案模块112还使处理单元202使用模拟的多个输入信号作为输入来在所生成的数字孪生体126中执行工程程序。换句话说,处理单元202使数字孪生体126模拟控制器设备124对工程程序的执行,就像在工程程序的执行期间将模拟的多个输入信号馈送到控制器设备124一样。
82.诊断和解决方案模块112还使处理单元202在由数字孪生体126执行工程程序期间从控制器设备124的数字孪生体126接收一个或多个程序执行参数。诊断和解决方案模块
112还使处理单元202分析从数字孪生体126接收的一个或多个程序执行参数。诊断和解决方案模块112还使处理单元202在工程程序的执行的特定扫描周期期间检测数字孪生体126中的错误状态的发生。诊断和解决方案模块112还使处理单元202基于控制器设备124的数字孪生体126中的工程程序的执行来预测控制器设备124中的错误状态的发生。错误状态在控制器设备124对工程程序的执行的未来扫描周期处在控制器设备124中发生。
83.诊断和解决方案模块112还使处理单元202分析工程程序和控制器设备124的预测错误状态。诊断和解决方案模块112还使处理单元202基于对控制器设备124中的预测错误状态的分析来确定工程程序中的一个或多个程序错误。一个或多个程序错误的示例包括但不限于语法错误、语义错误、逻辑错误、接口错误和资源错误。
84.在一个示例中,诊断和解决方案模块112还使处理单元202将预测的错误状态映射到工程程序的一个或多个编程块。诊断和解决方案模块112还使处理单元202基于对预测的错误状态的分析来确定预测的错误状态的类型。一个或多个程序错误的类型的示例包括但不限于语法错误类型、语义错误类型、逻辑错误类型、接口错误类型和资源错误类型。诊断和解决方案模块112还使处理单元202基于对预测的错误状态的分析来确定工程程序中的一个或多个程序错误。在一个示例中,基于人工智能模型在预测的错误状态和工程程序上的应用来确定一个或多个程序错误。在一个示例中,人工智能模型是基于卷积神经网络的人工智能模型。在另一示例中,基于预测的错误状态到工程程序的一个或多个编程块的映射来确定一个或多个程序错误。
85.诊断和解决方案模块112还使处理单元202将人工智能模型应用在工程程序上以从工程程序中根除所确定的一个或多个程序错误。诊断和解决方案模块112还使处理单元202基于人工智能模型在工程程序上的应用来生成校正的工程程序。训练人工智能模型以从工程程序中根除所确定的一个或多个程序错误。
86.通信接口208被配置成在一个或多个客户端设备120a-n、工程系统102和控制器设备124之间建立通信会话。通信接口208允许在客户端设备120a-n上运行的一个或多个工程应用将工程程序导入/导出到控制器设备124中。在实施例中,通信接口208与一个或多个客户端设备120a-n处的接口交互,以允许工程师访问与工程项目文件相关联的工程程序并且对存储在工程系统102中的工程程序执行一个或多个动作。
87.输入-输出单元210可以包括能够接收一个或多个输入信号(诸如用于处理工程项目文件的用户命令)的输入设备——键盘、触敏显示器、相机(诸如接收基于手势的输入的相机)等。此外,输入-输出单元210可以是用于显示图形用户界面的显示器单元,该图形用户界面将与修改的工程程序相关联的行为模型可视化并且也显示与在该图形用户界面上执行的每组动作相关联的状态信息。该组动作可以包括执行图形程序的预定义的测试、下载、编译和部署。总线214充当处理器202、存储器204和输入-输出单元210之间的互连。
88.网络接口212可以被配置成处理工程系统102、客户端设备120a-n和技术安装设施106之间的网络连接、带宽和网络流量。
89.本领域普通技术人员将会理解,图2中描绘的硬件可以针对特定实施方式而变化。例如,除了所描绘的硬件之外或代替所描绘的硬件,也可以使用其它外围设备,诸如光盘驱动器等、局域网(lan)、广域网(wan)、无线(例如wi-fi)适配器、图形适配器、盘控制器、输入/输出(i/o)适配器。所描绘的示例仅出于解释的目的而提供,并且不意味着暗示关于本
公开的架构限制。
90.本领域技术人员将会认识到,为了简单和清楚起见,在本文中没有描绘或描述适合于供本公开使用的所有数据处理系统的全部结构和操作。作为替代,仅描绘和描述工程系统102的对于本公开唯一的或对于理解本公开必要的这么多部分。工程系统102的构造和操作的其余部分可以遵从本领域已知的各种当前实施方式和实践中的任何一种。
91.图3是其中可以实现本发明的实施例的诊断和解决方案模块112(诸如图2中所示的诊断和解决方案模块)的框图。在图3中,诊断和解决方案模块112包括请求处理器模块302、数字孪生体生成模块304、分析模块306、修改器模块308、工程对象数据库310、验证模块312和部署模块314。结合图1和图2来解释图3。
92.请求处理器模块302被配置成接收从与技术安装设施106相关联的工程程序中根除程序错误的请求。例如,经由网络从工业环境100外部的一个或多个用户之一接收请求。在替选的实施例中,经由网络从一个客户端设备或者一个或多个客户端设备120a-n接收请求。请求处理器模块302还被配置成从与一组工业域相关联的多个编程块中确定与工业域相关联的一组编程块。
93.数字孪生体生成模块304被配置成生成控制器设备124的数字孪生体126。数字孪生体生成模块304被配置成根据基于静态本体的知识图和基于动态本体的知识图来生成与控制器设备124相关联的硬件本体。数字孪生体生成模块304被配置成从控制器设备124的硬件本体生成控制器设备124的数字孪生体。
94.分析模块306被配置成分析第一组程序执行参数以预测在工程程序的执行的未来扫描周期中控制器设备的错误状态。具体而言,分析模块306被配置成从控制器设备124检索第一组程序执行参数。
95.修改器模块308被配置成将人工智能模型应用在工程程序上以从工程程序中根除程序错误。基于对控制器设备的预测错误状态的分析来修改一组编程块。修改包括工程程序中的一个或多个变量、代码行、类、函数或注释的任何变化(诸如添加、删除、更新、替换或修订)以便根除工程程序中的程序错误。
96.工程对象数据库310被配置成生成工程对象库,该工程对象库包括所生成的对象行为模型、一个或多个工程对象108a-n、一个或多个工程对象108a-n之间的物理连接、以及与一个或多个工程对象108a-n和物理连接相关联的多个参数值。工程对象数据库310被配置成利用工程程序的更新版本来连续更新工程对象库。此外,工程对象数据库310被配置成在本体模式中维护工程对象库。
97.验证模块312被配置成启动工程程序在控制器设备124和控制器设备124的数字孪生体126中的并发执行。验证模块312被配置成通过在所生成的数字孪生体126上执行工程程序来在模拟环境中模拟由技术安装设施106的控制器设备124对所生成的工程程序的执行。验证模块312被配置成基于工程程序的模拟执行的结果来确定所生成的工程程序是有效的。
98.部署模块314被配置成基于验证将工程程序实时部署到安装在技术安装设施106中的控制器设备124上。有利的是,在确定所生成的工程程序是有效的之后,所生成的工程程序仅被部署到一个或多个工程对象108a-n上。
99.图4a-e是说明根据本发明的实施例的从工程程序中根除程序错误的示例性方法
400的过程流程图。
100.在步骤402,由处理单元202捕获与控制器设备124相关联的多个输入-输出信号。多个输入-输出信号包括多个输入信号和多个输出信号。多个输入-输出信号包括在控制器设备124对工程程序的执行的当前扫描周期期间由控制器设备124发送或接收的信号。
101.在步骤404,由处理单元202分析多个输入-输出信号,以生成输入知识图、输出知识图和输入-输出对应关系知识图。输入知识图包括关于在控制器设备124中的工程程序的执行的多个扫描周期中由控制器设备124接收的输入信号之间的关系的信息。处理单元202被配置成查询输入知识图以预测在控制器设备124中的工程程序的执行的多个扫描周期中的至少一个扫描周期处可能由控制器设备124接收的输入信号。
102.输出知识图包括关于在控制器设备124中的工程程序的执行的多个扫描周期中由控制器设备124发送的输出信号之间的关系的信息。处理单元202被配置成查询输出知识图以预测在控制器设备124中的工程程序的执行的多个扫描周期中的至少一个扫描周期处可能由控制器设备124接收的输出信号。输入-输出对应关系知识图包括关于在控制器设备124中的工程程序的执行的多个扫描周期中由控制器设备124接收的输入信号与由控制器设备124发送的输出信号之间的关系的信息。处理单元202被配置成查询输出知识图以预测对于由控制器设备124接收的给定输入信号而言可能由控制器设备124发送的输出信号。
103.在步骤406,由处理单元202模拟多个输入信号,所述多个输入信号被预测将在对工程程序的执行的未来扫描周期期间由控制器设备124接收。基于对所捕获的多个输入-输出信号的分析来模拟多个模拟的输入信号。在一个示例中,处理单元202通过查询从所捕获的多个输入-输出信号生成的输入知识图、输出知识图和输入-输出知识图来模拟多个输入信号。
104.在步骤408,由处理单元202从控制器设备124接收第一组程序执行参数。第一组程序执行参数包括在当前扫描周期中执行工程程序期间关于控制器设备124的内部运行的信息。例如,第一组程序执行参数包括运行时信息,诸如关于在工程程序的执行的当前扫描周期期间控制器设备124的存储器碎片、扫描周期性质、系统资源利用和存储器利用的信息。
105.在步骤410,由处理单元202分析所捕获的多个输入-输出信号、工程程序和控制器设备124的第一组程序执行参数。
106.在步骤412,由处理单元202确定当控制器设备执行工程程序的多个编程块中的每个编程块时第一组程序执行参数的多个变化。
107.在步骤414,基于分析,由处理单元202生成基于动态本体的知识图。基于动态本体的知识图包括在工程程序的多个编程块中的每一个的执行期间在工程程序的多个编程块与控制器设备124的第一组程序执行参数之间的关系。基于动态本体的知识图还包括关于第一组程序执行参数的变化与所捕获的多个输入-输出信号之间的关系的信息。在一个示例中,第一组程序执行参数包括关于工程程序的执行的多个扫描周期的信息。在这种情况下,基于动态本体的知识图包括扫描周期本体。扫描周期本体包括关于多个扫描周期中的每个扫描周期所花费的时间的信息。扫描周期本体还包括关于在多个扫描周期的每个扫描周期期间扫描的编程块的总数的信息。扫描周期本体还包括关于多个扫描周期中的中断/不成功扫描周期的总数的信息。
108.第一组程序执行参数还包括关于资源利用的信息和关于存储器碎片的信息。在这
种情况下,基于静态本体的知识图包括关于存储器碎片本体和系统资源利用本体的信息。系统资源利用本体中的信息的示例包括但不限于与系统函数调用的频率有关的信息。存储器碎片本体中的信息的示例包括但不限于与控制器设备124中的工作存储器利用和负载存储器利用有关的信息。
109.在步骤416,由处理单元202接收与控制器设备124的硬件配置相关联的信息。与控制器设备124的硬件配置相关联的信息包括关于控制器设备124的固件、输入/输出指令集、存储器资源、处理功率资源、时钟速度、型号和制造商细节的信息。
110.在步骤418,由处理单元202分析与控制器设备124的硬件配置相关联的信息。在步骤420,由处理单元202生成基于对关于硬件配置的信息的分析的基于静态本体的知识图。基于静态本体的知识图包括关于与控制器设备124相关联的一个或多个硬件配置相关信息的信息。
111.在步骤422,由处理单元202根据基于静态本体的知识图和基于动态本体的知识图来生成控制器设备124的硬件本体。控制器设备124的硬件本体包括二维知识图,该二维知识图包括基于静态本体的知识图和基于动态本体的知识图。
112.在步骤424,由处理单元202接收在多个扫描周期中执行工程程序的每个编程块期间控制器设备124的多个程序执行参数。由处理单元202分析在多个扫描周期的每一个的执行期间控制器设备124的多个程序执行参数。
113.在步骤426,由处理单元202从多个扫描周期中确定一组成功扫描周期和一组不成功扫描周期。基于对所接收的多个程序执行参数的分析来确定该组成功扫描周期和该组不成功扫描周期。
114.在步骤428,由处理单元202基于对与该组成功扫描周期和该组不成功扫描周期相关联的信息的分析来生成基于硬件本体的知识图。
115.在步骤430,由处理单元202基于对控制器设备124的硬件本体的分析来生成控制器设备124的数字孪生体126。在一个示例中,基于对基于动态本体的知识图和基于静态本体的知识图的分析来生成控制器设备124的数字孪生体126。还基于由处理单元202生成的输入知识图、输出知识图和输入-输出对应关系知识图来生成数字孪生体126。在一个示例中,控制器设备124的数字孪生体126是控制器设备124的计算机模型,该计算机模型模拟当控制器设备124在多个扫描周期中执行工程程序时可能由控制器设备124生成的输出。
116.在步骤432,由处理单元202启动所生成的数字孪生体126中的工程程序的执行。使用模拟的多个输入信号作为输入来执行工程程序。换句话说,处理单元202使数字孪生体126模拟控制器设备124对工程程序的执行,就像在工程程序的执行期间将模拟的多个输入信号馈送到控制器设备124一样。
117.在步骤434中,在数字孪生体126执行工程程序期间,处理单元202从控制器设备124的数字孪生体126接收来自数字孪生体126的一个或多个程序执行参数。在步骤436,由处理单元202分析从数字孪生体126接收的一个或多个程序执行参数。
118.在步骤438,在工程程序的执行的特定扫描周期期间,由处理单元202检测数字孪生体126中的错误状态的发生。在步骤440,由处理单元202基于控制器设备124的数字孪生体中的工程程序的执行来预测控制器设备124中的错误状态的发生。错误状态在控制器设备124对工程程序的执行的未来扫描周期处在控制器设备124中发生。
119.在步骤442,由处理单元202分析工程程序和控制器设备124的预测的错误状态。
120.在步骤444,由处理单元202基于控制器设备124中的预测错误状态的分析来分析工程程序中的一个或多个程序错误。一个或多个程序错误的示例包括但不限于语法错误、语义错误、逻辑错误、接口错误和资源错误。
121.在步骤446,预测的错误状态由处理单元202映射到工程程序的一个或多个编程块。在步骤448,由处理单元202基于对预测的错误状态的分析来确定预测的错误状态的类型。在一个示例中,由处理单元202基于对预测的错误状态的分析来确定工程程序中的一个或多个程序错误。在一个示例中,基于人工智能模型在预测的错误状态和工程程序上的应用来确定一个或多个程序错误。在一个示例中,人工智能模型是基于卷积神经网络的人工智能模型。在另一示例中,基于预测的错误状态到工程程序的一个或多个编程块的映射来确定一个或多个程序错误。
122.在步骤450,处理单元202将人工智能模型应用在工程程序上,以从工程程序中根除所确定的一个或多个程序错误。在步骤452,基于人工智能模型在工程程序上的应用,由处理单元202生成校正的工程程序。训练人工智能模型以从工程程序中根除所确定的一个或多个程序错误。
123.在步骤454,由处理单元202经由显示器设备向用户显示校正的工程程序。在步骤456,由处理单元202从用户接收关于校正的工程程序的多个评审意见。
124.图5a-b是说明训练人工智能模型以根除工程程序中的程序错误的示例性方法的过程流程图。图5是结合图1至4中使用的术语来解释的。
125.在步骤502,使用来自所捕获的多个输入-输出信号的输入信号,由处理单元202在控制器设备124和数字孪生体126中启动工程程序的并发执行。换句话说,控制器设备124与控制器设备124的数字孪生体126同时执行工程程序。
126.在步骤504,由处理单元202从控制器设备124接收第一组程序执行参数。在步骤506,由处理单元202分析第一组程序执行参数。
127.在步骤508,由处理单元202基于对多个程序执行参数的分析来确定控制器设备124处于错误状态。在一个示例中,处理单元202被配置成通过检测第一组程序执行参数的一个或多个值中的值来确定错误状态。例如,第一组程序执行参数包括关于与控制器设备124相关联的存储器资源消耗百分比的信息。存储器资源消耗百分比包括关于在工程程序的执行的每个扫描周期期间由控制器设备124利用的内部存储器的百分比的信息。在这种情况下,处理单元202被配置成当存储器资源利用百分比达到100%时确定控制器设备124处于错误状态。
128.在步骤510,由处理单元202基于错误状态的分析而在工程程序的每个编程块中确定一组程序错误。通过在控制器设备124执行工程程序的相应编程块的同时分析第一组程序执行参数的多个变化,由处理单元202确定每个编程块中的该组程序错误。
129.在步骤512,基于对所确定的一组程序错误、所接收的第一组程序执行参数和工程程序的多个编程块的分析,由处理单元202生成基于原因本体的知识图。基于原因本体的知识图包括关于工程程序中的该组程序错误和控制器设备124的错误状态之间的关系的信息。换句话说,基于原因本体的知识图包括关于工程程序中的该组程序错误以及由该组程序错误中的每一个所导致的错误状态的类型的信息。
130.在步骤514,由处理单元202分析所生成的基于原因本体的知识图,以训练人工智能模型,该人工智能模型被训练以确定导致控制器设备124中的错误状态的一个或多个程序错误。
131.在步骤516,由处理单元202经由显示器设备向用户显示与该组程序错误相关联的信息。显示器设备的示例包括但不限于诸如液晶显示屏的人机接口。
132.在步骤518,由处理单元202从用户接收对工程程序的多个修改。用户可以经由诸如键盘或鼠标的人机接口来输入对工程程序的多个修改。用户可以输入多个修改以根除工程程序中的所确定的一组程序错误。
133.在步骤520,工程程序由处理单元202通过在工程程序中应用接收的多个修改来修改,以生成修改的工程程序。
134.在步骤522,由处理单元202启动在控制器设备124和控制器设备124的数字孪生体中的修改的工程程序的并发执行。在修改的工程程序的执行期间,捕获的多个输入-输出信号作为输入馈送到控制器设备124和数字孪生体126中。
135.在步骤524,由处理单元202从控制器设备124和数字孪生体126接收第二组程序执行参数。第二组程序执行参数包括在控制器设备124和控制器设备124的数字孪生体126中执行修改的工程程序期间关于控制器设备124和数字孪生体126的内部运行的信息。
136.处理单元202还被配置成比较第一组程序执行参数与第二组程序执行参数。在步骤526,基于所述比较,由处理单元202确定第二组程序执行参数相比于第一组程序执行参数的改进。在一个示例中,对于该工程程序和该修改的工程程序的对应部分的执行来说,第二组程序执行参数的存储器资源利用百分比可以小于第一组程序执行参数的存储器资源利用百分比。在这种情况下,处理单元202被配置成确定第二组程序执行参数与第一组程序执行参数相比已改进。
137.在步骤526,基于对所确定的一组程序错误、所接收的多个修改、第一组程序执行参数和第二组程序执行参数的分析,由处理单元202生成基于解决方案本体的知识图。基于解决方案本体的知识图包括关于所确定的一组程序错误与由用户执行的用于从工程设计程序中根除所确定的一组程序错误的多个修改之间的关系的信息。
138.在步骤528,基于多个修改和第一组程序执行参数与第二组程序执行参数之间的比较结果,由处理单元202生成基于效果本体的知识图。
139.在步骤530,使用基于原因本体的知识图、基于解决方案本体的知识图和基于效果本体的知识图,由处理单元202训练人工智能模型以从工程程序中确定并根除一个或多个程序错误。
140.在步骤532,由处理单元202基于对多个评审意见的分析来确定对校正的工程程序的一组修改。处理单元202还被配置成基于所确定的一组修改来再训练人工智能模型。
141.在步骤534,由处理单元202从控制器设备124接收第一组输出信号,并且由处理单元202从数字孪生体126接收第二组输出信号。处理单元202还被配置成比较第一组输出信号和第二组输出信号。在步骤536,由处理单元202基于该比较来确定第一组输出信号与第二组输出信号之间的多个差异。在步骤538,基于对多个差异的分析,在工程程序中确定一个或多个程序错误。
142.本发明可以采取计算机程序产品的形式,该计算机程序产品包括可从计算机可用
或计算机可读介质访问的程序模块,该计算机可用或计算机可读介质存储程序代码以供一个或多个计算机、处理器或指令执行系统使用或与一个或多个计算机、处理器或指令执行系统结合使用。为了本描述的目的,计算机可用或计算机可读介质可以是能够包含、存储、传送、传播或发送程序以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的任何装置。介质可以是电、磁、光、电磁、红外或半导体系统(或装置或设备)或者它们本身中的和它们本身的传播介质,因为信号载体不包括在物理计算机可读介质的定义中,物理计算机可读介质包括半导体或固态存储器、磁带、可移动计算机盘、随机存取存储器(ram)、只读存储器(rom)、硬磁盘和光盘,诸如光盘只读存储器(cd-rom)、光盘读/写和dvd。如本领域技术人员所知的,用于实现本技术的每个方面的处理器和程序代码可以是集中式的或分布式的(或其组合)。
143.尽管参考某些实施例详细描述了本发明,但是应当理解,本发明并不限于这些实施例。鉴于本公开,对于本领域技术人员来说,在不背离如本文中所描述的本发明的各种实施例范围的情况下,许多修改和变化它们本身将会存在。因此,本发明的范围由所附权利要求而不是由前面的描述来指示。落在权利要求的等同含义和范围内的所有变化、修改和变型要被认为在权利要求的范围内。在方法权利要求中要求保护的所有有利实施例也可以应用于系统/装置权利要求。
技术特征:
1.一种根除控制器设备(124)的工程程序中的程序错误的方法,所述方法包括:由处理单元(202)捕获与控制器设备(124)相关联的多个输入-输出信号,其中,所述多个输入-输出信号包括在由所述控制器设备(124)对工程程序的执行的当前扫描周期期间由所述控制器设备(124)发送或接收的信号;由所述处理单元(202)模拟多个输入信号,所述多个输入信号被预测将在所述工程程序的执行的未来扫描周期期间由所述控制器设备(124)接收,其中,所述多个模拟的输入信号基于对所捕获的多个输入-输出信号的分析来模拟;通过在所述控制器设备(124)的数字孪生体(126)中执行所述工程程序,由所述处理单元(202)预测所述未来扫描周期中所述控制器设备(124)中的错误状态,其中,使用模拟的多个输入信号作为输入,在所述数字孪生体(126)中执行所述工程程序;由所述处理单元(202)基于对所述控制器设备(124)中的所述预测的错误状态的分析来确定所述工程程序中的一个或多个程序错误;以及由所述处理单元(202)通过在所述工程程序上应用人工智能模型来生成校正的工程程序,其中,所述人工智能模型被配置成从所述工程程序中根除所确定的一个或多个程序错误。2.根据权利要求1所述的方法,其中,所述人工智能模型通过以下步骤来训练:使用来自所捕获的多个输入-输出信号的输入信号,由所述处理单元(202)启动所述工程程序在所述控制器设备(124)和所述数字孪生体(202)中的并发执行;由所述处理单元(202)从所述控制器设备(124)接收第一组程序执行参数,其中,所述第一组程序执行参数包括在所述当前扫描周期中的所述工程程序的执行期间关于所述控制器设备(124)的内部运行的信息;以及由所述处理单元(202)基于对所述多个程序执行参数的分析来确定所述控制器设备(124)是否处于所述错误状态。3.根据权利要求2所述的方法,其中,所述人工智能模型还通过以下步骤来训练:由所述处理单元(202)基于对所述错误状态的分析来确定所述工程程序中的一组程序错误;以及由所述处理单元(202)根据对该组程序错误的分析来生成基于原因本体的知识图,其中,所述基于原因本体的知识图包括关于所述工程程序中的该组程序错误与所述控制器设备(124)的所确定的错误状态之间的关系的信息。4.根据权利要求3所述的方法,其中,所述人工智能模型还通过以下步骤来训练:由所述处理单元(202)接收对所述工程程序的多个修改以生成修改的工程程序;使用所捕获的多个输入-输出信号,由所述处理单元(202)启动修改的工程程序同时在所述控制器设备(124)和所述数字孪生体(202)中的同时执行;由所述处理单元(202)从所述控制器设备(124)接收第二组程序执行参数,其中,第二组程序执行参数包括在由所述控制器设备(124)和所述数字孪生体(126)执行修改的工程程序期间关于所述控制器设备(124)和所述数字孪生体(126)的内部运行的信息;由所述处理单元(202)比较所述第一组程序执行参数与所述第二组程序执行参数;由所述处理单元(202)基于对所述比较的结果的分析并且还基于从所述用户接收的多个修改来生成基于效果本体的知识图;以及
由所述处理单元(202)基于以下来训练所述人工智能模型:所接收的对所述工程程序的多个修改,所述基于原因本体的知识图,以及所述基于效果本体的知识图。5.根据权利要求2至4中任一项所述的方法,其中,由所述处理单元(202)预测所述未来扫描周期中所述控制器设备(124)中的错误状态包括:在所述控制器设备(124)中执行所述第一工程程序期间,由所述处理单元(202)分析所捕获的多个输入-输出信号、所述工程程序和所述控制器设备(124)的所述第一组程序执行参数;由所述处理单元(202)基于所述分析来生成基于动态本体的知识图,其中,所述基于动态本体的知识图包括关于所述第一组程序执行参数的变化与所捕获的多个输入-输出信号之间的关系的信息;由所述处理单元(202)分析与所述控制器设备(124)相关联的一个或多个硬件配置相关信息;由所述处理单元(202)基于对所述一个或多个硬件配置相关信息的分析来生成基于静态本体的知识图,其中,所述基于静态本体的知识图包括关于与所述控制器设备(124)相关联的所述一个或多个硬件配置相关信息的信息;由所述处理单元(202)基于对所述基于动态本体的知识图和所述基于静态本体的知识图的分析来生成所述控制器设备(124)的所述数字孪生体(126);使用模拟的多个输入信号作为输入,由所述处理单元(202)在所生成的数字孪生体(126)中执行所述工程程序;以及通过在所生成的数字孪生体(126)中执行所述工程程序,由所述处理单元(202)预测所述未来扫描周期中所述控制器设备(124)中的错误状态。6.根据权利要求1所述的方法,还包括:由所述处理单元(202)接收所述控制器设备(124)的多个程序执行参数,其中,所述多个程序执行参数包括在多个扫描周期中的所述工程程序的每个编程块的执行期间关于所述控制器设备(124)的内部运行的信息;由所述处理单元(202)基于对所述控制器设备(124)的所接收的多个程序执行参数的分析,将所述多个扫描周期分类为一组成功扫描周期和一组不成功扫描周期;以及由所述处理单元(202)基于对与该组成功扫描周期和该组不成功扫描周期相关联的信息的分析来生成基于硬件本体的知识图。7.根据权利要求1所述的方法,还包括:由所述处理单元(202)经由显示器设备向用户显示所述校正的工程程序;由所述处理单元(202)从所述用户接收关于所述校正的工程程序的多个评审意见;由所述处理单元(202)基于对所述多个评审意见的分析来确定针对所述校正的工程程序的多个修改;以及由所述处理单元(202)基于所确定的多个修改来再训练所述人工智能模型。8.根据权利要求1所述的方法,还包括:使用来自由所述控制器设备(124)在所述当前扫描周期中接收的所述多个输入-输出
信号的输入信号,由所述处理单元(202)启动所述工程程序在所述控制器设备(124)和所述数字孪生体(126)中的并发执行;由所述处理单元(202)从所述控制器设备(124)接收第一组输出信号并且从所述数字孪生体(126)接收第二组输出信号;由所述处理单元(202)比较所述第一组输出信号和所述第二组输出信号;由所述处理单元(202)基于所述比较来确定所述第一组输出信号与所述第二组输出信号之间的多个差异;由所述处理单元(202)基于对所述多个差异的分析来确定所述工程程序中的多个程序错误;由所述处理单元(202)通过在所述工程程序上应用所述人工智能模型来生成校正的工程程序,其中,所述人工智能模型被训练以从所述工程程序中根除所确定的多个程序错误。9.根据权利要求1所述的方法,还包括由所述处理单元(202)经由显示器设备显示所述工程程序中的所确定的一个或多个程序错误。10.一种用于根除工程程序中的程序错误的工程系统(102),其中,所述工程系统(102)包括:处理单元(202);以及耦合到所述处理单元(202)的存储器(204),其中,所述存储器(204)包括以可由所述一个或多个处理器执行的机器可读指令的形式存储的诊断和解决方案模块,其中,所述诊断和解决方案模块(112)能够执行根据权利要求1-9中任一项所述的方法。11.一种工业环境(100),包括:根据权利要求10所述的工程系统(102);技术安装设施(106),包括一个或多个物理组件;以及一个或多个客户端设备(120a-n),经由网络(104)通信地耦合到所述工程系统(102),其中,所述工程系统(102)被配置成执行根据权利要求1至10中任一项所述的方法。12.一种计算机程序产品,具有存储在其中的机器可读指令,所述机器可读指令在由处理单元(202)执行时使所述处理器执行根据权利要求1-9中任一项所述的方法。
技术总结
本公开涉及用于从技术安装设施中的工程程序中根除程序错误的方法和系统。本发明提供了一种用于根除控制器设备(124)的工程程序中的程序错误的方法和系统。方法包括由处理单元(202)捕获与控制器设备(124)相关联的多个输入-输出信号。此外,方法包括由处理单元(202)模拟多个输入信号,该多个输入信号被预测将在工程程序的执行的未来扫描周期期间由控制器设备(124)接收。方法还包括通过在控制器设备(124)的数字孪生体(126)中执行工程程序来预测未来扫描周期中控制器设备(124)中的错误状态。方法还包括通过在工程程序上应用人工智能模型来生成校正的工程程序。模型来生成校正的工程程序。模型来生成校正的工程程序。
技术研发人员:E
受保护的技术使用者:西门子股份公司
技术研发日:2023.03.30
技术公布日:2023/10/19
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/