CN114265329A - 工业网络仿真 - Google Patents
工业网络仿真 Download PDFInfo
- Publication number
- CN114265329A CN114265329A CN202110748286.1A CN202110748286A CN114265329A CN 114265329 A CN114265329 A CN 114265329A CN 202110748286 A CN202110748286 A CN 202110748286A CN 114265329 A CN114265329 A CN 114265329A
- Authority
- CN
- China
- Prior art keywords
- network
- simulation
- industrial
- control
- component
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 178
- 238000000034 method Methods 0.000 claims abstract description 76
- 230000015654 memory Effects 0.000 claims description 39
- 230000006399 behavior Effects 0.000 claims description 35
- 230000004044 response Effects 0.000 claims description 18
- 230000003993 interaction Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 abstract description 24
- 238000012545 processing Methods 0.000 abstract description 18
- 238000013461 design Methods 0.000 description 142
- 238000011960 computer-aided design Methods 0.000 description 107
- 238000012360 testing method Methods 0.000 description 75
- 238000003860 storage Methods 0.000 description 50
- 238000010586 diagram Methods 0.000 description 38
- 238000004891 communication Methods 0.000 description 24
- 230000033001 locomotion Effects 0.000 description 22
- 230000006870 function Effects 0.000 description 20
- 230000000875 corresponding effect Effects 0.000 description 14
- 238000012986 modification Methods 0.000 description 14
- 230000004048 modification Effects 0.000 description 14
- 230000008676 import Effects 0.000 description 13
- 238000011161 development Methods 0.000 description 11
- 230000018109 developmental process Effects 0.000 description 11
- 238000011089 mechanical engineering Methods 0.000 description 8
- 239000012636 effector Substances 0.000 description 7
- 239000000463 material Substances 0.000 description 7
- 238000012800 visualization Methods 0.000 description 7
- 238000007792 addition Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000006855 networking Effects 0.000 description 5
- 230000000704 physical effect Effects 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000003278 mimic effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000003542 behavioural effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 239000012530 fluid Substances 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000011344 liquid material Substances 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000009012 visual motion Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4155—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/18—Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32342—Real time simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Hardware Design (AREA)
- Automation & Control Theory (AREA)
- Manufacturing & Machinery (AREA)
- Human Computer Interaction (AREA)
- Computational Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Testing And Monitoring For Control Systems (AREA)
Abstract
本发明提供了一种工业网络仿真。工业模拟系统使用自动化系统的虚拟模型或数字孪生以及工业控制程序的经仿真的执行来模拟工业自动化系统。该模拟系统还对控制网络进行仿真,工业控制器将通过该控制网络与自动化系统的现场设备进行通信。为了在不需要在主模拟在其上执行的硬件外部的单独硬件的情况下对控制网络进行仿真,模拟系统在模拟在其上执行的硬件平台的内核空间中将网络仿真器实例化为设备驱动器或虚拟机。网络仿真器监测用户空间与内核空间之间的数据业务,处理与模拟有关的数据业务的子集,并且将处理的结果返回给用户空间中的主模拟。该架构以低延迟对控制网络进行准确地仿真。
Description
技术领域
本文中公开的主题一般地涉及工业自动化系统,更具体地,涉及工业自动化系统的模拟和测试。
背景技术
在高级别处,设计新的工业自动化系统通常涉及两个单独但相互关联的工程工作,以在一方面开发机械方面并且在另一方面开发控制方面。机械工程可以涉及:选择或设计将组成新系统的机器(例如,工业机器人、加工站、传送机、操作者工作站、运动设备、马达、气动致动器等);确定这些机器的合适位置和取向;选择和定位将用于将状态和操作数据馈送至控制设备的传感器等。基于该机械设计,控制工程师设计用于电力连接和数据连接两者的电气系统,开发要由一个或更多个工业控制器执行以控制自动化系统的行为的控制代码(例如,梯形逻辑、顺序功能图、功能框图、结构化文本等),设置设备配置(例如,马达驱动器参数设置),并且开发用于可视化机器状态和警报的人机接口(HMI)。作为开发过程的一部分,控制工程师还可以执行数字模拟,所述数字模拟针对机械系统的虚拟化(例如,数字孪生)来测试控制编程。
鉴于这两个工程线程,用于设计、编程和测试工业自动化系统的常规工程工作流程通常需要使用用于机械工程和控制工程的单独的设计工具。由于机械设计平台与控制设计平台之间通常不存在直接链接,因此必须将CAD侧上对机械设计所做的改变传送给控制工程师,使得在必要时可以相应地更新控制设计。因此,如果两个工程团队并行工作并修改他们各自的设计,则可能难以保持机械设计与控制设计之间的同步。
发明内容
下面给出了简化的概述,以提供对本文中描述的一些方面的基本理解。该概述不是广泛的综述,也不旨在标识关键/重要的要素或者描绘本文中描述的各方面的范围。该概述的唯一目的是以简化的形式给出一些概念作为稍后给出的更详细描述的序言。
在一个或更多个实施方式中,提供了一种用于模拟工业自动化系统的系统,该系统包括:模拟组件,该模拟组件被配置成基于工业自动化系统的虚拟模型以及由工业控制器对工业控制程序的执行在工业控制程序的控制下执行对工业自动化系统的模拟;以及控制器仿真组件,该控制器仿真组件被配置成在系统的内核空间中将网络仿真器实例化为设备驱动器,其中,网络仿真器被配置成对控制网络进行仿真,工业控制器通过该控制网络与工业自动化系统的设备进行通信。
此外,一个或更多个实施方式提供了一种用于模拟工业自动化系统的方法,该方法包括:由系统基于工业自动化系统的虚拟模型以及由工业控制器对工业控制程序的执行在工业控制程序的控制下执行对工业自动化系统的模拟,其中,执行模拟包括:在系统的内核空间中生成网络仿真器作为设备驱动器;以及由网络仿真器对控制网络进行仿真,工业控制器通过该控制网络与工业自动化系统的设备进行通信。
此外,根据一个或更多个实施方式,提供了一种非暂态计算机可读介质,所述非暂态计算机可读介质上存储有指令,所述指令响应于执行而使系统执行操作,所述操作包括:基于工业自动化系统的虚拟模型以及由工业控制器对工业控制程序的执行,在工业控制程序的控制下执行对工业自动化系统的模拟,其中,执行模拟包括:在系统的内核空间中生成网络仿真器作为虚拟机;以及由网络仿真器对控制网络进行仿真,工业控制器通过该控制网络与工业自动化系统的设备进行通信。
为了实现上述目的和相关目的,在本文中结合以下描述和附图对某些说明性方面进行了描述。这些方面指示可以实践的各种方式,所有这些方式均旨在被涵盖在本文中。当结合附图考虑时,其他优点和新颖特征可以根据以下详细描述而变得明显。
附图说明
图1是示出与设计工业自动化系统有关的针对机械工程和控制工程使用单独的设计平台的图。
图2是支持利用控制方面对3D机械CAD模型进行标记以促进动态数字孪生的创建的示例CAD系统的框图。
图3是也支持利用控制方面对自动化系统的3D模型进行标记的示例控制设计和测试系统的框图。
图4是示出使用CAD系统创建工业自动化系统的机械模型的图。
图5是示出将方面元数据添加到机械模型以产生自动化系统的增强数字模型的图。
图6是可以由CAD系统呈现并且用于将方面元数据分配给机械CAD模型的示例接口显示。
图7是示出基于向机械模型分配方面元数据来创建自动化系统项目的主I/O列表的图。
图8是已经利用方面元数据标记的示例CAD文件的图示。
图9是示出作为虚拟调试过程的一部分的将增强数字模型导出至控制设计和测试平台的图。
图10是示出在使用增强数字模型以在控制程序的控制下虚拟地模仿物理自动化系统的行为的控制设计和测试平台内模拟组合的机械设计和控制设计的图。
图11是示出将控制设计更新提交给控制设计和测试平台的图。
图12是示出将更新的数字模型从控制设计和测试平台导入CAD系统中的图。
图13是用于开发工业自动化系统的机械CAD模型并且将该模型配置成充当在模拟平台内执行的动态数字孪生的示例方法的流程图。
图14是用于与系统的机械设计并行地生成自动化系统的动态数字孪生和相关联的主I/O列表的示例方法的流程图。
图15是示出在安装有控制设计和测试系统的硬件平台的内核空间中对控制网络的仿真的图。
图16是示出使用由控制器仿真组件所仿真的控制程序定义的网络配置数据的网络仿真器的配置的图。
图17是示出由网络仿真器对模拟数据进行拦截和处理的图。
图18是示出其中设计和测试系统通过网络与工业控制器交换模拟数据的模拟架构的图。
图19a是用于数字地模拟工业控制和自动化系统——包括对控制网络的仿真——的示例方法的第一部分的流程图,工业控制器将通过该控制网络来监测和控制自动化系统。
图19b是用于数字地模拟工业控制和自动化系统的示例方法的第二部分的流程图。
图20是示例计算环境。
图21是示例联网环境。
具体实施方式
现在参照附图来描述本主题公开内容,其中,贯穿全文使用相同的附图标记来指代相同的要素。在以下描述中,出于说明的目的,阐述了许多具体细节以提供对本主题公开内容的透彻理解。然而,可能明显的是,可以在没有这些具体细节的情况下实践本主题公开内容。在其他实例中,以框图的形式示出了公知的结构和设备以促进对本主题公开内容的描述。
如在本申请中使用的术语“组件”、“系统”、“平台”、“层”、“控制器”、“终端”、“站”、“节点”、“接口”旨在指代计算机相关实体、或者与具有一个或更多个特定功能的操作装置相关的或作为该操作装置的一部分的实体,其中,这样的实体可以是硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于:在处理器上运行的进程、处理器、硬盘驱动器、包括附接(例如,螺丝拧紧或螺栓固定)或可移除附接的固态存储驱动器的(光存储介质或磁存储介质的)多个存储驱动器;对象;可执行体;执行的线程;计算机可执行程序和/或计算机。通过说明的方式,在服务器上运行的应用和服务器两者均可以是组件。一个或更多个组件可以驻留在进程和/或执行的线程内,并且组件可以位于一个计算机上以及/或者分布在两个或更多个计算机之间。此外,如本文所描述的组件可以从其上存储有各种数据结构的各种计算机可读存储介质来执行。组件可以经由本地和/或远程进程例如根据具有一个或更多个数据分组的信号(例如,来自经由信号与本地系统、分布式系统中的另一组件和/或跨诸如因特网的网络与其他系统交互的一个组件的数据)进行通信。作为另一示例,组件可以是具有由如下电气或电子电路系统操作的机械部件提供的特定功能的装置,所述电气或电子电路系统由处理器执行的软件或固件应用来操作,其中,处理器可以在该装置内部或外部并且执行软件或固件应用的至少一部分。作为又一示例,组件可以是通过电子组件而无需机械部件提供特定功能的装置,电子组件可以在其中包括处理器以执行至少部分地提供电子组件的功能的软件或固件。作为再一示例,接口可以包括输入/输出(I/O)组件以及相关联的处理器、应用或应用程序接口(API)组件。虽然前述示例针对组件的各方面,但是举例说明的方面或特征也适用于系统、平台、接口、层、控制器、终端等。
如本文中所使用的,术语“推断(infer)”和“推断(inference)”通常是指根据经由事件和/或数据捕获的一组观察结果来推理或推断系统、环境和/或用户的状态的处理。例如,可以采用推断来识别特定的环境或动作,或者可以生成关于状态的概率分布。推断可以是概率性的,即,基于对数据和事件的考虑来计算关于感兴趣的状态的概率分布。推断还可以指代用于根据一组事件和/或数据构成较高级别的事件的技术。这样的推断导致从一组观察到的事件和/或所存储的事件数据构造出新事件或动作,而不管这些事件在时间接近度上是否紧密相关,也不管事件和数据是否来自一个或若干个事件和数据源。
此外,术语“或”旨在表示包含性的“或”而不是排他性的“或”。也就是说,除非另外指明或者根据上下文是清楚的,否则短语“X采用A或B”旨在表示任何自然的包括性排列。也就是说,以下实例中的任何实例满足短语“X采用A或B”:X采用A;X采用B;或X采用A和B两者。此外,除非另外指明或者从上下文中清楚地得知该冠词涉及单数形式,否则在本申请和所附权利要求中所使用的冠词“一(a)”和“一个(an)”通常应当被解释为意指“一个或更多个”。
此外,本文中采用的术语“集合”排除空集,例如其中没有元素的集合。因此,本主题公开内容中的“集合”包括一个或更多个元素或实体。作为说明,控制器的集合包括一个或更多个控制器;数据资源的集合包括一个或更多个数据资源等;同样地,本文中所用的术语“组”是指一个或更多个实体的集合;例如,一组节点是指一个或更多个节点。
将根据可以包括许多设备、组件、模块等的系统来呈现各个方面或特征。应当理解并且认识到,各种系统可以包括附加的设备、组件、模块等,以及/或者各种系统可以不包括结合附图所讨论的全部设备、组件、模块等。还可以使用这些方法的组合。
在高级别处,设计新的工业自动化系统通常涉及两个单独但相互关联的工程工作,以在一方面开发机械方面并且在另一方面开发控制方面。机械工程可以涉及:选择或设计将组成新系统的机器(例如,工业机器人、加工站、传送机、操作者工作站、运动设备、马达、气动致动器等);确定这些机器的合适位置和取向;选择和定位将用于将状态和操作数据馈送至控制设备的传感器等。基于该机械设计,控制工程师设计用于电力连接和数据连接两者的电气系统,开发要由一个或更多个工业控制器执行以控制自动化系统的行为的控制代码(例如,梯形逻辑、顺序功能图、功能框图、结构化文本等),设置设备配置(例如,马达驱动器参数设置),并且开发用于可视化机器状态和警报的人机接口(HMI)。作为开发过程的一部分,控制工程师还可以执行数字模拟,所述数字模拟针对机械系统的虚拟化(例如,数字孪生)来测试控制编程。
鉴于这两个工程线程,用于设计、编程和测试工业自动化系统的常规工程工作流程通常需要使用用于机械工程和控制工程的单独的设计工具。图1是示出用于与设计工业自动化系统有关的机械工程和控制工程的单独的设计平台的使用的图。机械工程师可以在计算机辅助设计(CAD)平台104中开发如数字三维(3D)机械模型102的机械设计。基于该机械模型102和期望的操作序列的知识,控制工程师可以在一个或更多个控制设计平台106中设计控制系统——包括电气设计、I/O定义和控制编程,所述一个或更多个控制设计平台106可以包括工业控制器编程应用、电气绘图应用、设备配置应用、HMI开发应用或其他这样的平台。例如,控制工程师可以参考与以下有关的机械设计:基于系统中存在的马达、驱动器、致动器、安全设备或其他工业资产来确定控制新的自动化系统所需的I/O点的列表;以及将工业控制器标签映射到这些I/O点并生成用于执行期望的自动化序列的控制编程。
控制设计平台106还可以包括数字模拟平台,该数字模拟平台针对自动化系统的虚拟模型来仿真控制程序的执行,以测试控制编程和机械设计,即,被称为虚拟调试的处理。这样的模拟平台可以响应于控制程序在仿真的工业控制器上的执行而模仿自动化系统的机械资产的行为,从而使得可以验证正确的操作。在物理系统的调试期间,已完成的控制代码、设备配置和HMI应用被下载到自动化系统的适当现场设备108。
由于机械设计平台与控制设计平台之间通常不存在直接链接,因此必须将CAD侧上对机械设计所做的改变传送给控制工程师,使得在必要时可以相应地更新控制设计。因此,如果两个工程团队并行工作并修改他们各自的设计,则可能难以保持机械设计与控制设计之间的同步。此外,由于在CAD平台104上开发的机械模型102不是能够模拟的并且因而不能被用于虚拟调试,因此如果要经由模拟来测试系统设计,则必须与机械CAD模型102分开地开发自动化系统的能够虚拟模拟的模型(例如,数字孪生),以在调试之前在虚拟域中测试控制编程。
为了解决这些问题和其他问题,本公开内容的一个或更多个实施方式提供了工业CAD系统或其附加组件,其通过以下操作来简化自动化系统开发工作流程:将机械和控制域集成到CAD平台中,使得CAD成为用于机械方面以及电气和控制接口信息二者的公共信息源。根据一个或更多个实施方式,CAD系统可以结合一组特征,该组特征允许用户在CAD环境内使用“方面”来标示或标记机械CAD图的所选元件。这些方面标记符号将所选机械元件标记为特定类型的工业资产或控制元件。例如,用户可以将机械CAD模型的所选元件或组件标记为某种类型的动态或运动学关节(例如,滑动关节、机器人关节、旋转关节、棱柱形关节、螺旋形关节、圆柱形关节、平面关节、球形关节等)、传送机、马达、夹持器(例如,机械夹持器、吸力夹持器等)、机械负载、传感器、致动器或另一类型的工业资产。这些方面还可以定义机械设计的所选元件的属性或物理几何形状。
当利用这些方面来标记机械CAD模型的所选元件时,CAD平台基于用来标记每个元件的方面的类型,将模拟元数据与所选元件相关联。该模拟元数据在虚拟模拟的环境内定义所选元件的行为——例如,运动的范围、方向和/或轴、运动约束、速度、力等,从而将机械CAD模型转换成能够模拟的数字模型(例如,动态数字孪生),该能够模拟的数字模型可以被导出至模拟和测试平台。在模拟和测试平台内,可以将所得到的增强模型连接至仿真的工业控制器,以测试控制逻辑并监测自动化系统的模拟操作。以这种方式,可以通过CAD平台来添加机械标记符号和模拟标记符号两者,以产生自动化系统的可用仿真和模拟模型。
图2是根据本公开内容的一个或更多个实施方式的支持利用控制方面对3D机械CAD模型进行标记以促进动态数字孪生的创建的示例CAD系统202的框图。在本公开内容中说明的系统、装置或处理的各方面可以构成机器可执行组件,该机器可执行组件包含在机器内,例如包含在与一个或更多个机器相关联的一个或更多个计算机可读介质(或介质)中。这样的组件在由一个或更多个机器——例如计算机、计算设备、自动化设备、虚拟机等——执行时,可以使机器执行描述的操作。
CAD系统202可以包括用户接口组件204、机械建模组件206、方面元数据组件208、模型导出组件210、模型导入组件212、一个或更多个处理器218和存储器220。在各种实施方式中,用户接口组件204、机械建模组件206、方面元数据组件208、模型导出组件210、模型导入组件212、一个或更多个处理器318和存储器320中的一个或更多个可以彼此电耦接和/或通信地耦接,以执行CAD系统202的功能中的一个或更多个。在一些实施方式中,组件204、206、208、210和212可以包括存储在存储器220上并且由处理器218执行的软件指令。CAD系统202还可以与图2中未描绘的其他硬件和/或软件组件进行交互。例如,处理器218可以与诸如键盘、鼠标、显示监视器、触摸屏的一个或更多个外部用户接口设备或其他这样的接口设备进行交互。
用户接口组件204可以被配置成接收用户输入并以任何合适的格式(例如,视觉、音频、触觉等)将输出呈现给用户。在一些实施方式中,用户接口组件204可以在显示设备(例如,与桌上型计算机、膝上型计算机、平板计算机、智能电话等相关联的显示设备)上呈现交互式显示屏幕,其中,显示屏幕用作3D机械设计平台的接口。用户接口组件204可以呈现可选的设计工具,并且经由与工具的交互来接收与设计工业自动化系统或机器的机械方面有关的设计输入。用户接口组件204还可以根据设计输入来呈现自动化系统的3D图形表示。如将在本文中更详细地描述的,由用户接口组件204可用的设计工具包括一组自动化方面,该组自动化方面可以与被设计的自动化系统的机械元件或组件选择性地相关联。可供选择的方面基于在存储器220上保持的方面定义222,所述方面定义222定义了可用方面以及相应方面的相关联的模拟数据,其可以由模拟平台用于模拟工业模拟环境内的各方面的操作或行为。
机械建模组件206可以被配置成基于由用户经由用户接口组件204提供的设计输入来生成自动化系统或机器的三维机械模型。方面元数据组件208可以被配置成根据从用户接收到的设计输入将方面元数据分配给机械模型的所选元件。如将在本文中更详细描述的,方面元数据将所选元件标记为特定类型的工业组件或机器(例如,特定类型的关节、马达、传感器、传送机等)或者将所选元件标记为具有特定的物理几何形状或行为。分配给给定元件的方面元数据是从方面定义222中的一个或更多个方面定义得出的,所述方面定义222中的一个或更多个方面定义对应于分配给该元件的相应的一个或更多个方面。将该方面元数据添加到机械模型可以产生自动化系统的增强的机械模型(例如,动态数字孪生),该增强的机械模型可以在模拟平台内被执行,以在工业控制程序的控制下模仿自动化系统的行为。
模型导出组件210可以被配置成将增强的机械模型导出至外部系统,例如控制设计平台或模拟平台。模型导入组件212可以被配置成从这样的外部系统导入增强的机械模型。在一些情况下,增强的机械模型或其关联的方面元数据可能已经被外部系统修改。利用模型保持这些修改,并且从而利用模型将这些修改导入回到CAD系统202中,从而保持机械工程与控制工程之间的同步。
一个或更多个处理器218可以执行本文中参考所公开的系统和/或方法所描述的功能中的一个或更多个功能。存储器220可以是存储用于执行本文中参考所公开的系统和/或方法所描述的功能的计算机可执行指令和/或信息的计算机可读存储介质。
图3是也支持利用控制方面对自动化系统的3D模型进行标记的示例控制设计和测试系统302的框图。控制设计和测试系统302可以包括用户接口组件304、模拟组件306、控制器仿真组件308、方面元数据组件310、模型导入组件312、一个或更多个处理器318和存储器320。在各种实施方式中,用户接口组件304、模拟组件306、控制器仿真组件308、方面元数据组件310、模型导入组件312、一个或更多个处理器318和存储器320中的一个或更多个可以彼此电耦接和/或通信地耦接,以执行控制设计和测试系统302的功能中的一个或更多个功能。在一些实施方式中,组件304、306、308、310和312可以包括存储在存储器320上并且由处理器318执行的软件指令。控制设计和测试系统302还可以与图3中未描绘的其他硬件组件和/或软件组件进行交互。例如,处理器318可以与诸如键盘、鼠标、显示监视器、触摸屏的一个或更多个外部用户接口设备或其他这样的接口设备进行交互。
用户接口组件304可以被配置成接收用户输入并以任何合适的格式(例如,视觉、音频、触觉等)将输出呈现给用户。在一些实施方式中,用户接口组件304可以在显示设备(例如,与桌上型计算机、膝上型计算机、平板计算机、智能电话等相关联的显示设备)上呈现交互式显示屏幕,其中,显示屏幕用作控制设计和/或模拟平台的接口。用户接口可以显示正在对仿真的工业控制程序进行测试的自动化系统的虚拟3D模拟,基于该模拟以及其他这样的信息来呈现表示自动化系统的预期性能的操作统计信息。在一些实施方式中,用户接口组件304还可以呈现可选的设计工具,并且经由与工具的交互来接收与配置工业自动化的方面(例如,虚拟系统的设备与工业控制器之间的I/O连接)有关的设计输入。与上述CAD系统202相似,由用户接口组件304可用的设计工具可以包括一组自动化方面,该组自动化方面可以与被设计的自动化系统的机械元件或组件选择性地相关联。可供选择的方面基于在存储器320上保持的方面定义322,所述方面定义322定义了可用方面以及相应方面的相关联的模拟数据,其可以由模拟平台用于模拟工业模拟的环境内的各方面的操作或行为。
模拟组件306可以被配置成:在工业控制程序的控制下模拟工业自动化系统的虚拟化模型的操作。控制器仿真组件308可以被配置成仿真在虚拟化的(或仿真的)工业控制器上正在被测试的工业控制程序的执行。
方面元数据组件310可以被配置成根据从用户接收到的设计输入来将方面元数据分配给自动化系统的数字模型的所选元件(类似于CAD系统202的方面元数据组件208)。模型导入组件212可以被配置成导入自动化系统的机械CAD模型或系统的另一类型的数字模型。
一个或更多个处理器318可以执行本文中参考所公开的系统和/或方法所描述的功能中的一个或更多个。存储器320可以是存储用于执行本文中参考所公开的系统和/或方法描述的功能的计算机可执行指令和/或信息的计算机可读存储介质。
图4是示出使用CAD系统202创建工业自动化系统的机械模型的图。在一些实施方式中,CAD系统202可以在诸如桌上型计算机、膝上型计算机、平板计算机、移动设备、可穿戴AR/VR器具等的客户端设备上执行。在其他实施方式中,CAD系统202可以在云平台或具有访问系统202的授权的多个用户可访问的另一高级别平台上执行。在这样的实施方式中,客户端设备可以远程地访问CAD系统的设计工具,并且利用这些工具来开发正在被设计的自动化系统的机械模型。
用户接口组件204可以经由客户端设备的显示硬件来呈现图形接口显示。通过与这些接口显示的交互,用户可以提交指定正在被设计的自动化系统的机械方面的机械设计输入404。例如,机械设计输入404可以指定表示要包括在机械设计中的机械结构或设备的三维形状。这些形状可以以图形形式表示这样的工业资产例如工业机器人、传送机、工具机器、马达、马达驱动器、传感器、管路、管道、平台、安全门和栅栏、控制柜或其他这样的资产。机械设计输入404还可以指定这些图形表示相对于彼此的位置和取向、机械元件之间的物理连接或其他这样的机械属性和关系。机械建模组件206根据由机械设计输入404定义的图形表示及其关系来生成自动化系统(例如,机器装配、生产线等)的3D机械模型402。
根据各种实施方式,可以经由用户接口组件204以任何合适的格式提交机械设计输入404。例如,由用户接口组件204呈现的图形接口显示可以包括:在其上呈现机械模型402的工作空间或画布;以及相关联的工具栏,用户可以从所述相关联的工具栏中选择2D或3D绘图工具或预定义的形状或组件以包含在模型402中。在一些实施方式中,可以将表示机械组件的形状从工具栏拖动到主工作空间中,或者可以以其他方式将表示机械组件的形状添加到工作空间,以在模型402中进行放置和定向。工作空间中的形状或形状的集合可以经由与图形接口的交互被操纵。例如,设计者可以与选择的形状、形状的集合或整个模型402进行交互,以在虚拟三维空间内旋转、链接或重新定位形状。机械模型402的添加或修改被存储在表示模型402的CAD文件(例如,零件或组件文件)内。
所得到的机械模型402对正在被设计的自动化系统的机械布局进行编码。然而,在这一阶段,机械模型402实质上仅仅是适合于用作构建和安装自动化系统的指南的三维技术制图。负责设计自动化系统的电气和控制系统的控制工程师也可以参考该模型402,以配合开发监测和控制新系统所需的控制器I/O的列表、设计用于向该系统提供电力的配电线路以及生成控制编程。常规地,如果控制工程师希望通过在仿真系统的环境内在程序的控制下模拟自动化系统的操作来测试控制编程,则自动化系统的能够模拟的数字模型(例如,数字孪生)必须被单独开发并且被链接至执行控制程序的仿真控制器。
为了简化该工作流程并且更快地生成自动化系统的数字孪生,CAD系统202的实施方式允许用户利用方面元数据来增强完成的机械模型402,该方面元数据将机械模型402转换成可以在模拟平台内被执行以模仿系统的操作的自动化系统的能够模拟的数字模型。图5是示出将方面元数据508添加到机械模型402以产生自动化系统的增强数字模型502的图。在一个或更多个实施方式中,由用户接口组件204呈现的图形接口显示可以包括一个或更多个工具栏,所述一个或更多个工具栏用于将方面元数据添加到机械模型402的所选元件或组件。可用于选择的方面基于存储在CAD系统202上(例如,存储在存储器220上)的方面定义222。
每个方面定义222定义一组物理、运动学或机电属性,其指示该方面在模拟环境中如何表现。由方面定义222定义的属性实质上反映了真实世界中的对应物理方面的物理行为和特性。CAD系统202根据针对其定义物理属性的机械元件、控制元件或设备的类型对方面定义222进行分类。由用户接口组件204呈现的方面工具栏根据这些分类列出可用方面以供用户选择。可以被选择并被应用于机械模型402的示例方面包括但不限于:各种类型的动态或运动学关节(例如,滑动关节、旋转关节、机器人臂关节、铰链等)、诸如传送机的运动表面、马达、夹持器(例如,吸力夹持器、机械夹持器等)、传感器、气动或液压致动器(例如,推动器臂、止动器等)、辊或机械系统的其他这样的元件。
方面定义222的目录还可以包括各种类型的机器人端部执行器(例如,机械夹持器、吸式夹持器等)。端部执行器方面定义222可以为其对应的夹持器类型定义物理属性(例如,3D物理约束),可以在控制模拟侧上使用这些物理属性来更准确地模仿低抽象级处的机器人零件处理行为的操作。例如,应用于机械模型402中定义的机器人的表示的吸力夹持器方面可以向模拟平台指示该机器人的端部执行器要被建模为吸力夹持器,从而吸力夹持器附近的产品可被假设为已被机器人(经由吸力)夹持,并且随后可以与机器人臂协同移动以模拟由机器人引起的零件的移动。相比之下,机械夹持器方面可能隐含着与由夹持器引起的零件移动有关的更复杂的物理过程。在机械夹持器方面的情况下,可以使用物理引擎的约束来在允许零件协同机器人的移动而移动(由于夹持器臂与产品表面之间的摩擦)之前,确定夹持器的侧是否以适当的位置和角度接触产品的相应侧。
一些方面定义222还可以定义可以与机械模型402的所选元件相关联的物理几何形状或属性。各方面还可以将在机械模型402内定义的所选机器指定为负载创建者,所述负载创建者将具有指定形状和物理行为(例如,碰撞物理性质)的产品引入到自动化系统中;例如,经由向系统供料的传送机。
将方面元数据508添加到机械模型402的处理涉及将由机械模型402表示的所选机械组件或设备标记为可用控制方面之一(由方面定义222之一表示)。可以通过经由与由用户接口组件204呈现的图形接口显示的交互提交方面规范输入504来执行标记工作流程的该方面。例如,用户可以从方面工具栏中选择机器人关节的类型作为方面,并且随后选择机械模型402中的要被标记为该类型关节的元件。响应于这些选择,方面元数据组件208将用于所选类型的机器人关节的方面元数据508与机械模型402的所指示的组件相关联,从而将关节的静态机械表示转换成活动的虚拟控制元件,该活动的虚拟控制元件的行为可以在模拟平台内被虚拟地模拟。从与指示类型的方面对应的方面定义222得出被分配给所选机械组件的方面元数据508。
方面元数据508可以基本上定义可以被模拟平台识别和利用的任何类型的信息,以响应于控制输入或模拟的力而对对应机械组件的运行时移动或行为准确地进行建模。根据方面,方面元数据508可以包括可全局地应用于该方面的所有实例的默认固定值或属性以及可以由用户定制成符合用户系统的特性的用户定义的元数据。图6是可以由用户接口组件204呈现并且用于将方面元数据508分配给机械CAD模型402的示例接口显示602。在该示例中,接口显示602包括主工作空间606,在该主工作空间606上呈现正在被设计的自动化系统的机械模型402的3D CAD表示608。接口显示602可以响应于对控制方面选项卡630的选择而在主工作空间606上方呈现方面工具栏604。方面工具栏604显示表示控制方面或方面的类别的许多可选选项,这些可选选项可以经由与CAD表示608的交互而被选择并被添加至模型(例如,控制面板、传送机、动态关节、端部执行器、运动学关节、负载、马达、物理性质、物理几何形状、物理组、传感器等)。
在图6中描绘的示例中,表示传送机612的CAD表示608的一部分要被标记为具有“直传送机”方面,将机械模型402的该组件标识为传送机并且将模拟元数据与传送机612的表示相关联,该传送机612的表示可以由单独的模拟平台用来准确地模拟传送机612的行为。为了分配该方面,用户可以与接口显示602进行交互以从方面工具栏604中的传送机的下拉选择632中选择“直传送机”选项,然后选择CAD表示608中的传送机612的表示(机械模型402的可视化)。响应于这些选择,方面元数据面板被呈现在主工作空间606的左侧,该方面元数据面板列出用于输入用户可定义元数据值的许多字段614至628。这些用户可定义元数据值是除了与“直传送机”方面相关联的固定的全局方面元数据值之外的值,其也与传送机612相关联。
通常,由用户接口组件204呈现的可用的用户可定义方面元数据值的列表基于所选的特定方面。以这种方式,当用户将方面分配给机械模型402的组件时,用户接口组件204提示用户输入可以用于该选择的方面的任何用户定义的元数据字段的值。在示出的示例中,用于传送机的用户可定义方面元数据508可以包括用于传送机612的前边缘614和后边缘616的定义——其可以由方面元数据组件208基于被分配传送机方面的机械传送机表示的形状自动地标识,或者可以由用户明确地标识(例如,通过选择前边缘和后边缘以指示它们的位置)。此外,用户接口组件204可以提示用户输入这样的用户可定义的传送机方面元数据值,例如,传送机的运行速度618、加速度620或减速度622。还可以提示用户指定用于沿传送机传送产品的带的材料624,这可以影响基于材料的摩擦系数或其他物理属性对沿传送机的产品的模拟遍历。还可以请求用于传送机612的控制模式626(例如,开关控制、变速控制等)。
与图6示出的工作流程和图形接口相似的工作流程和图形接口可以用于将选择的方面元数据分配给其他类型的自动化系统组件。根据另一示例,用于气动推动器臂的方面元数据508可以定义推动器臂在机械模型402的三维坐标系内的线性移动的方向、开始位置和移动范围。用户接口组件204还可以提示用户在启动时为推动器的移动速度提供用户定义的元数据值。
一些方面定义222(以及从这些定义222得出的对应的方面元数据508)也可以定义所选机械组件的物理特性或约束,并且这些特性和约束可以随后由模拟平台参考以准确地模拟组件的移动和行为。这些特性可以包括但不限于:齿轮直径、齿轮比、摩擦系数、惯性、运动约束(例如,特定类型的机器人的已知运动轴和它们的对应的运动约束)或其他这样的数据。根据方面的类型,这些方面元数据值中的一些可以是用户定义的,而其他方面元数据值可以是预期适用于该方面的所有实例的固定全局特性。一些方面定义222还可以定义可执行脚本,该可执行脚本可以由单独的模拟平台执行并且被应用于机械模型402的关联元件(例如,由用户利用对应的方面标记的元件),从而使该元件模仿模拟环境内其对应物理组件的行为。
一些方面定义222还可以为它们对应的资产指定控制I/O对接。例如,将传感器(例如,光眼、接近开关等)的方面元数据508分配给表示传感器的机械模型402的所选元件可以将所选元件指定为数字输入设备,该数字输入设备响应于在传感器的检测范围内检测到对象而向工业控制器提供数字输入值。在这种场景下,检测范围可以是用户定义的方面元数据值。在另一示例中,用于推动器臂的类型的方面元数据508可以指定:臂需要数字控制器输出以控制推动器臂的前进状态和缩回状态(例如,前进为ON,缩回为OFF),以及需要两个数字输入以读取推动器臂的行进的最端处的相应的两个接近开关的状态,从而检测臂何时处于完全前进或完全缩回状态。通常,具有与工业控制器对接的已知或期望的I/O的系统组件的方面定义222可以定义监测和/或控制这些系统组件所需的输入和/或输出(模拟和数字)。当准备好在模拟和测试平台内模拟模型502时,该I/O信息可以促进增强数字模型502与仿真的控制器之间的连接。
此外,在一些实施方式中,当将具有相关联的I/O定义的方面被添加到机械模型402时,方面元数据组件208可以利用由对应的方面定义222定义的I/O点来自动填充系统I/O的聚合列表。图7是示出基于向机械模型402分配方面元数据508来创建自动化系统项目的主I/O列表702的图。当如上所述将方面选择性地分配给机械模型402的元件时,方面元数据组件208确定与该方面对应的方面定义222是否定义了该方面的输入或输出。除了将方面元数据508分配给机械模型402之外,在方面定义222中定义的任何方面I/O 706均被添加到自动化系统的主I/O列表702。该主I/O列表702可以以人类可读的格式被呈现并且由控制工程师在设计控制系统和相关联的控制逻辑时进行参考。例如,主I/O列表702可以在模拟平台内填充标签浏览器,该标签浏览器允许用户将虚拟机I/O与相应控制器I/O点选择性地相关联。
在一些实施方式中,主I/O列表702可以与自动化系统的增强数字模型502集成或以其他方式与自动化系统的增强数字模型502存储在一起,使得I/O列表702与模型502一起传送。因此,增强数字模型502不仅包括新系统的3D布局,而且包括整个系统的I/O映射。该主I/O列表702可以根据指定的方面元数据508在控制系统的设计开始之前被生成,从而为控制工程师提供有用的设计约束(即,操作自动化系统所需的I/O)。
一些方面元数据508还可以将机械模型402的组件指定为负载源,所述负载源将产品的离散项目(例如,箱、行李、制造的零件、流体材料或其他这样的产品)引入到系统中。当将负载源方面标记应用于机械模型402的元件时,用户接口组件204可以提示用户为指定的负载源提供用户定义的操作参数,例如将产品引入系统的速率、产品的形状(例如,具有指定尺寸的箱或圆柱体、由柔性材料制成并具有随机可变形状的项目等)、与产品相关联的碰撞物理性质或者其他这样的特性。当随后将增强数字模型502导入模拟平台中时,模拟平台根据负载源方面元数据508、通过标记的负载源来模拟产品项目的释放。
在一些实施方式中,如上所述的用于利用方面元数据508标记3D机械模型402的功能可以作为插件或附加组件被添加到现有的CAD应用。在这样的实施方式中,方面元数据附加组件的安装使新的方面工具栏或功能区(ribbon)——例如,图6中示出的方面工具栏604——被添加到CAD应用的现有开发接口,并且将方面定义222加载到CAD应用中。新的工具栏列出了可以用于标记使用CAD应用的本地绘图和开发工具开发的机械模型402的方面。以这种方式,经由方面标记将机械CAD模型转换成动态数字孪生的处理可以容易地被集成到已经在CAD平台上被执行的现有设计工作流程中。同样,尽管上述示例假设机械模型402在同一CAD系统202中被创建,在该同一CAD系统202中,用方面元数据508标记模型402,但是一些实施方式可以导入在单独的CAD平台中开发的机械模型,并且允许用户利用方面元数据508标示这些导入的机械模型,以促进动态数字孪生的创建。
此外,一些实施方式可以允许用户(例如,资产拥有者、原始设备制造商、系统集成商等)利用用户定义的方面定义222来扩展可以应用于CAD模型的可用方面。因此,除了由附加组件支持的可用方面标记符号(如由方面定义222定义的)的目录之外,用户还可以开发和添加其自己的方面——包括相关联的模拟属性——并且将其自己的方面添加到方面工具栏,其中,用户定义的方面可以被选择并被添加到机械CAD模型402作为方面元数据508。以这种方式,CAD系统202除了支持特定于行业的控制组件的定义之外,还可以支持特定于公司的控制组件的定义。
当利用如上所述的方面标记机械CAD模型402的元件时,由该方面定义的方面元数据406与所选元件的CAD实体标识符相关联。图8是已经利用方面元数据508标示的示例CAD文件802的图示。通常,机械CAD绘图或模型的每个元件具有相关联的唯一CAD实体标识符(ID)804,该元件的属性808(例如,大小、颜色、方向、位置等)与该CAD实体标识符804相关联。还针对每个实体ID 804定义元件的类型806(例如,球体、立方体、线等)。这些实体ID804通常是CAD平台的现有CAD框架固有的,并且给定CAD模型402的CAD文件802包括组成模型402的元件的实体ID 804。
当用户利用如上所述的方面来标记机械模型402的所选组件时,将所选方面的方面元数据508与所选组件的实体ID 804相关联地添加到模型的CAD文件802中。由于方面元数据508与CAD文件的本地实体ID 804相联系,因此方面元数据508被保留在CAD文件802本身内而不是单独的文件内,并且因此与CAD文件802一起传送。以这种方式,模型的CAD文件802可以被导入基本上任何模拟平台中作为自动化系统的能够模拟的增强数字模型502,并且每个实体ID 804的方面元数据508使模型402的对应的元件被模拟平台识别为控制元件或激活元件。
如上所述,利用方面元数据508标示机械模型402产生正在被设计的自动化系统的增强数字模型502,该增强数字模型502可以被导出至单独的模拟平台以进行虚拟调试。图9是示出作为虚拟调试过程的一部分的将增强数字模型502导出至控制设计和测试系统302的图。一旦已经利用方面元数据508标记了机械模型402,则可以使用CAD系统的模型导出组件210将得到的增强数字模型502导出至单独的控制设计和测试系统302。在示例实施方式中,CAD系统的图形接口可以包括可选的导出功能,该可选的导出功能在被选择时使模型导出组件210将数字模型——包括其嵌入的方面元数据和主I/O列表702——导出至设计和测试系统302。作为将模型502直接导出至测试系统302的替代,模型导出组件210可以将数字模型502导出至具有随后可以被导入至测试系统302(例如,通过测试系统的模型导入组件312)的格式的文件。
在本示例中,控制设计和测试系统302包括控制器仿真组件308和模拟组件306,该控制器仿真组件308仿真在虚拟化(或仿真)的工业控制器上正在被测试的工业控制程序的执行,该模拟组件306在工业控制程序的控制下模拟工业自动化系统的虚拟化模型的操作。在控制设计和测试系统302内,可以将自动化系统的增强数字模型502(包括利用方面元数据508和主I/O列表702增强的机械模型402)与控制编程(例如,梯形逻辑)对接,这允许机械设计和控制设计二者在最终确定总体设计并且进行到构建和安装阶段之前被虚拟地模拟和测试,其中,针对自动化系统来开发所述控制编程以产生虚拟测试环境。图10是示出在使用增强数字模型502以在控制程序1008的控制下虚拟地模仿物理自动化系统的行为的控制设计和测试系统302内模拟组合的机械设计和控制设计的图。如上所述应用于机械模型402的所选元件的方面元数据508使这些元件由测试平台的模拟组件306识别为控制元件或激活元件,并且指示模拟组件306关于每个元件在模拟环境内如何响应于控制和物理刺激而表现。
由于增强数字模型502对自动化系统的机械特性以及组成该模型的组件的行为属性进行建模(借助于方面元数据508),因此增强数字模型502可以被用于在仿真的控制程序1008的控制下模拟自动化系统的预期操作和行为。这可以包括查看和验证模拟的系统对在移动、速度、流量、温度、填充水平、产品通过系统的移动等方面的控制输入的响应。在图10中描绘的示例中,测试系统302的控制器仿真组件308充当工业控制器仿真器以执行控制程序1008,针对CAD系统202内创建的自动化系统的虚拟模型502来开发和测试该控制程序1008。
模拟组件306可以利用被编码在增强数字模型502中的机械特性和相关联方面元数据508来模拟要由控制程序1008监测和调节的自动化系统的操作方面。为了实现这一点,用户(例如,控制工程师)可以将控制程序1008与增强数字模型502虚拟地对接,以促进模拟的I/O数据在程序1008与数字模型502之间的交换,从而模拟自动化系统的真实世界控制和操作。为此,开发者可以使用测试平台的配置工具(例如,标签浏览器)将由控制程序1008定义的控制器I/O选择性地映射至增强数字模型502的活动控制元件的I/O(即,利用方面元数据508标记的控制元件将这些元件指定为具有可用于与工业控制器的I/O对接的相关联的输入和输出,如由主I/O列表702所记录的)。在示例场景中,控制工程师可以定义PLC标签和I/O地址——其驱动机械模型402中定义的马达、致动器或其他组件,并且将标签和相关联的I/O地址选择性地链接至针对建模的组件定义的I/O点。控制程序1008与数字模型502之间的这种I/O映射——其是整个自动化系统设计的一部分——可以作为PLC连接数据1006被存储在适当格式化的文件(例如,电子表格或另一类型的文件)中,并且与数字模型502集成。因此,除了机械设计方面之外,数字模型502还保持控制设计的这一方面。
控制程序1008可以包括用于处理读入到控制器中的输入信号并且控制来自控制器的输出信号的任何可想到类型的代码——包括但不限于梯形逻辑、顺序功能图、功能框图或结构化文本——并且被设计成调节通过数字模型502建模的自动化系统。在模拟期间,模拟组件306基于由数字模型502表示的物理系统的静态特性和动态特性来生成数字和模拟I/O值,这些数字和模拟I/O值表示例如传感器输出、计量输出或与预期由物理系统生成的数据类似的其他工厂数据。该模拟输出数据1004被提供给执行控制程序1008的仿真组件308,仿真组件308接收该数据1004作为一个或更多个虚拟物理输入。控制程序1008根据用户定义的算法处理这些输入,并且基于该处理生成数字和/或模拟控制器输出数据1002。该输出数据1002表示将由执行控制程序1008的控制器生成并且被发送至包括自动化系统的硬连线现场设备的物理输出(例如,PID环路控制输出、螺线管激励输出、马达控制输出、致动器控制输出、机器人控制输出等)。根据用户定义的I/O映射,将控制器输出数据1002提供给数字模型502的适当输入点。
除了生成模拟输出数据1004之外,模拟组件306还基于对已建模自动化系统响应于模拟控制器输出数据1002的预期行为以及模拟数据交换的分析来生成系统响应数据1018。模拟组件306基于由与机械模型402的相应控制元件相关联的方面元数据508定义的约束以及行为和物理属性来估计和模拟虚拟自动化系统对仿真的控制器输出(以及这些输出的定时)的响应。例如,基于如由方面元数据508表示的由增强数字模型502建模的工业组件(例如,传送机、工业机器人、机器、模拟的产品等)的机械和行为特性,模拟组件306可以预测响应于控制器输出数据1002,建模的工业组件的预期行为以及由组件制造、处理或操纵的产品的行为,并且将该预测的行为作为系统响应数据1018进行传送。由系统响应数据1018表示的示例行为可以包括但不限于工业机器人的移动和轨迹、产品通过模拟的自动化系统的移动(包括速度、加速度、位置、滞后、碰撞、夹持器故障等)、流体通过系统的流动速率、系统的预期能量消耗、系统的机械组件的预期退化率(部分基于增强数字模型502中定义的摩擦系数信息)、操作期间施加至系统的各个组件的预期力或其他这样的行为。
在具有用于夹持和移动产品的项目(例如,用于堆叠或堆放产品项目,将项目从一个传送机移动至另一传送机等)的端部执行器的工业机器人的情况下,这些机器人与产品之间的模拟交互可以部分地取决于与机器人的端部执行器相关联的夹持器方面元数据508的类型。例如,如上所述,吸力夹持器方面元数据508可以向模拟组件306指示:可以假设吸力夹持器附近的产品已经被机器人夹持住,只要吸力执行器在零件上方适当地对准即可,并且可以随后随机器人臂移动以模拟由机器人对零件的移动,直到零件被释放。替选地,机械夹持器方面元数据508可以定义在可以假设零件已经被机器人牢固地夹持住之前要由模拟组件306考虑的更多涉及的物理性质。这可以包括:当执行器处于夹持位置时,在允许产品协同机器人移动之前,确定夹持器的两个臂是否接触产品的相应侧并且处于适当的角度或取向。由于机械夹持器对产品的牢固夹持取决于产品在进入拾取站(机器人从该拾取站夹持零件)时的适当对准以及产品与机器人的夹持器在拾取时的相对对准,因此模拟组件306可以在模拟期间评估这些因素以确定产品是否已经被适当地夹持,或者替选地确定是否可能由于未对准而发生误夹持。关于如何适当地评估该夹持行为的指令可以由分配给机器人的机械夹持器方面元数据508提供。
如上所述,可以利用将这些组件指定为负载源的方面元数据508来标记机械模型402的一个或更多个组件。基于该负载源方面元数据,模拟组件306可以将模型的这些组件识别为如下负载源,所述负载源将产品(例如,制造的零件、盒、瓶、流体材料等)引入所测试的自动化系统中并且使这些组件动画化以根据元数据来模拟产品的释放。分配给这些组件的默认和用户定义的元数据参数可以定义产品被释放的频率、产品类型(例如,离散的固体项目或液体材料)、产品的形状(例如,具有指定尺寸的盒、球形对象、由于制成项目的柔性材料而具有随机无定形形状的项目等)、产品遍历系统的速度等。这些产品通过模拟自动化系统的移动也可以根据与产品在其上移动的传送机表示相关联的传送机方面元数据(例如,传送机的速度、用于传送产品的带的材料等)。模拟组件306还可以模拟产品项目之间或产品与机器之间的预测碰撞(例如,由于不合时机的控制序列而与推动器臂或机器人臂碰撞)。可以基于部分由方面元数据508建模的物理规则和几何形状来预测和模拟这些碰撞的影响。模拟组件306还可以利用由方面元数据508定义的物理规则来确定机械夹持器是否已经适当地夹持住产品项目或者可能由于不适当的夹持而使产品的一些或全部项目掉下。
与测试系统302相关联的用户接口组件304可以生成可视化1014,该可视化1014将模拟的结果呈现在客户端设备上。可视化1014可以基于增强数字模型502来呈现自动化系统的图形表示,并且基于系统响应数据1018和/或与模拟会话有关的其他计算的统计信息来使该图形表示动画化,从而产生操作中的自动化系统的三维视觉演示。一些模拟数据也可以在可视化1014上被呈现为字母数字叠加。该模拟技术可以用于在不将现场装备和机器置于危险中的情况下来测试和调试控制程序,以测试对机器操作的修改并且估计这样的修改如何影响某些关键性能指标或财务度量,或者执行其他类型的分析。
在一些实施方式中,用户可以以高粒度程度来控制模拟的速度。例如,用户可以选择实时地执行模拟,这样的模拟描绘自动化系统的操作,如同它将实时发生的那样。替选地,用户可以根据用户指定的时基来选择性地选择比实时更快地执行模拟的控制序列或处理的一些或全部阶段。这使模拟及其相关联的分析在压缩的时间范围内发生。
在示出的示例中,控制设计和测试系统302可以允许用户添加或修改控制设计的各方面。这可以包括基于模拟的观察结果来实施和测试对控制程序1008的修改。经由控制设计和测试系统302提交的一些控制设计修改也可以针对增强数字模型502。图11是示出将控制设计更新提交给控制设计和测试系统302的图。在测试和调试的过程期间,控制工程师可以经由测试平台的用户接口组件304来提交控制设计输入1106。该控制设计输入1106可以包括:对针对增强数字模型502测试的控制程序1008的添加或修改、对模型502与控制程序1008之间的I/O映射的修改、对主I/O列表702的更新以添加新的I/O点或删除不必要的I/O点或者其他这样的修改,其中的一些修改可能会影响增强数字模型502或其相关联的元数据508。
在一些实施方式中,控制设计和测试系统302还可以包括方面元数据组件310(参见图3),该方面元数据组件310以类似于CAD侧方面元数据组件310的方式支持对方面元数据508的添加或修改。用于向控制设计和测试系统302中的模型502添加或修改方面元数据508的工作流程可以类似于在CAD侧上用于添加或修改方面元数据508的工作流程。也就是说,由用户接口组件340呈现的接口显示(例如,可视化1014)可以包括类似于图6中示出的工具栏604的方面工具栏,该方面工具栏可以用于向模型502添加新的方面元数据。用于给定机械元件的用户定义的方面元数据值也可以通过以下操作被修改:选择模型502的图形表示上的机械元件以调用该元件的用户定义的方面元数据字段,从而允许用户修改任何可用的用户定义的值(包括可能在CAD系统202中已经添加和设置的值)。
为了促进机械工程工作与控制工程工作之间的同步,CAD系统202以及控制设计和测试系统302的一些实施方式可以支持工程数据在两个系统之间的双向传递(round-tripping)。根据该双向传递方法,如以上讨论的,可以在CAD系统202上标记机械设计信息和相关联的控制方面,并且可以将得到的能够模拟的模型502导出至控制设计和测试系统302。在该控制设计和测试系统302内,可以使用正在被测试的控制程序1008来模拟增强数字模型502——利用方面元数据508增强并且进一步利用PLC连接数据1006和主I/O列表702增强的机械模型402。在测试和调试期间,控制工程师可以提交控制设计输入1106,该控制设计输入1106需要对增强数字模型502、其相关联的方面元数据508、PLC连接数据1006或主I/O列表702的修改1102,其最初在CAD系统202上被开发。
如图12所示,在控制测试侧实现这些修改之后,可以由CAD系统的模型导入组件212将更新的模型502——包括对方面元数据508、PLC连接数据1006或主I/O列表702进行的任何修改——导入回到CAD系统202中。在一个或更多个实施方式中,CAD系统202的用户可以通过由用户接口组件204选择在CAD系统的接口显示上可用的导入工具来导入更新的模型502。在已经导入经修改的模型502之后,CAD系统202检测由控制工程师在控制设计和测试系统302上进行的改变或添加,包括PLC连接数据1006、对方面元数据508的更新以及对主I/O列表702的更新。因此,由机械工程师和控制工程师经由其各自的开发平台提交的设计输入很容易在两个工程组之间共享。这种设计信息的双向传递确保了机械和控制设计数据保持同步,从而允许机器设计和控制这些机械方面的控制系统设计的连续迭代。该改进的设计工作流程促进在模拟/控制侧上完成的工程工作与在CAD/机械侧上完成的工程工作之间的双向同步,而CAD是两个工程线程的焦点。
在一些实施方式中,对模型502做出的改变可以由CAD系统202进行版本控制。例如,CAD系统202可以包括记录对模型402所做的改变以及做出改变的原因(如由用户提交)的工具。类似的版本控制特征也可以由控制设计和测试系统302来支持。
通过集成将方面元数据添加到CAD系统自身内的机械模型的能力,本公开内容的实施方式可以为工程师提供工具,以快速且容易地生成正在被设计的自动化系统的动态数字孪生,而无需从头开始单独开发模拟就绪模型(simulation-ready model)。由于在一些实施方式中,方面元数据工具可以作为模块化附加组件被添加到现有的CAD系统,因此可以将利用方面元数据来标记机械模型以产生数字孪生的过程直观地集成到现有的机械设计工作流程中。此外,通过支持设计数据在机械工程平台与控制工程平台之间的双向传递,本公开内容的实施方式可以促进两个工程线程之间的同步,其中增强的CAD模型用作跨两个工程学科的最新设计信息的公共源。
图13至图14示出了根据本申请的一个或更多个实施方式的各种方法。尽管出于简化说明的目的,本文中示出的一个或更多个方法被示出和描述为一系列动作,但是应当理解和认识到,该新发明并不受限于动作的顺序,原因是根据本发明,一些动作可以以与本文示出和描述的顺序不同的顺序发生以及/或者与其他动作同时发生。例如,本领域技术人员将理解和认识到,方法可以替选地被表示为一系列相互关联的状态或事件,例如以状态图被表示。此外,可能并不需要所有示出的动作来实现根据该新发明的方法。此外,当不同实体执行方法的不同部分时,交互图可以表示根据本主题公开内容的方法或方式。进一步地,可以彼此组合地实现所公开的示例方法中的两个或更多个,以实现本文中描述的一个或更多个特征或优点。
图13示出了用于开发工业自动化系统的机械CAD模型并且将该模型配置成用作动态数字孪生以在模拟平台内执行的示例方法1300。最初,在1302处,由CAD平台接收机械设计输入。在示例实现中,经由与CAD平台的图形开发接口的交互而提交的机械设计输入根据表示要被包括在机械设计中的机械结构、机器或设备的三维形状来指定自动化系统的机械属性。总体地,机械设计输入可以将自动化系统定义为机械部件,该机械部件包括诸如工业机器人、传送机、加工机器、马达、马达驱动器、传感器、管道、管路、平台、安全门和栅栏、控制柜的这样的工业资产或其他这样的资产。机械设计输入还定义这些资产之间的相对位置、取向和物理关系。在1304处,由CAD平台基于在步骤1302处接收的机械设计输入来生成工业自动化系统的三维机械模型。
在1306处,由CAD平台(经由与CAD平台的图形开发接口的交互)接收方面规范输入数据。方面规范输入数据将控制方面分配给在步骤1304处生成的机械模型的所选元件。可以从在CAD平台的图形开发接口的工具栏或功能区中呈现的可用方面的列表中选择控制方面。可以根据与这些方面有关的机械元件、控制元件或工业设备的类型对这些方面定义进行分类。每个方面针对其相关联类型的机械元件或控制元件来定义一组模拟属性,例如物理或运动学属性或行为、物理几何形状、运动约束等,这些模拟属性可以由模拟平台识别和利用以确定该元件在模拟环境内如何移动或表现。可以被选择并且被应用于机械模型的示例方面包括但不限于:各种类型的动态或运动学关节(例如,滑动关节、旋转关节、机器人臂关节、铰链等)、诸如传送机的运动表面、马达、夹持器(例如,吸力夹持器、机械夹持器等)、传感器、气动或液压致动器(例如,推动器臂、止动器等)、辊或机械系统的其他这样的元件。
在1308处,将与在步骤1306处选择的控制方面对应的控制方面元数据分配给机械模型的所选元件(也在步骤1306处被选择)。在1310处,确定是否完成了给机械模型的所选元件分配方面。如果要将附加方面分配给模型(在步骤1310处为“否”),则该方法返回到步骤1306,并且步骤1306和1308被重复,使得利用所选方面来标记机械模型的另一元件。替选地,如果完成了给机械模型分配方面(在步骤1310处为“是”),则该方法进行至步骤1312,在步骤1312处,确定CAD系统是否接收到导出命令。如果接收到导出命令(在步骤1312处为“是”),则该方法进行到步骤1314,在步骤1314处,将利用通过步骤1306和1308的迭代而应用的方面元数据增强的机械模型导出至控制模拟平台以作为自动化系统的动态数字孪生进行模拟。由CAD系统应用的方面元数据向模拟平台指示关于以下:机械模型的各种组件或元件在模拟环境内响应于由正在被测试的控制程序进行的仿真控制而如何表现。
图14示出了用于与系统的机械设计并行地生成自动化系统的动态数字孪生和相关联的主I/O列表的示例方法1400。最初,在1402处,由CAD平台接收机械设计输入。机械设计输入指定了正在被设计的工业自动化系统的机械属性。在1404处,基于在步骤1402处接收到的机械设计输入,在CAD平台内生成工业自动化系统的三维机械模型。在1406处,由CAD平台接收方面规范输入。方面规范输入选择控制方面并且将控制方面分配给机械模型的所选元件。通常,步骤1402至1408与方法1300的步骤1302至1308类似。
在1410处,确定在步骤1408处分配给机械模型的所选元件的方面元数据是否定义该方面的相关联的I/O。在这点上,如果分配给模型元件的方面定义通常经由一个或更多个数字或模拟输入或输出与工业控制器对接的工业资产的特性,则这些输入或输出可以由方面元数据来定义。如果方面元数据定义相关联的I/O(在步骤1410处为“是”),则方法进行至步骤1412,在步骤1412处,将由方面元数据定义的相关联的I/O添加到自动化系统的累积主I/O列表。该主I/O列表记录将自动化系统与工业控制器对接以促进系统的监测和控制所需的总I/O。如果方面元数据没有定义相关联的I/O(在步骤1410处为“否”),即,所选方面对应于自动化系统的通常与工业控制器不对接的元件,则该方法在无需在1412处更新主I/O列表的情况下进行至步骤1414。
在1414处,确定是否完成了给机械模型分配方面。如果另外的方面要被分配给模型(在步骤1414处为“否”),则该方法返回到步骤1406,并且针对机械模型的另一元件重复步骤1406至1412。替选地,如果完成了方面的分配(在步骤1414处为“是”),则方法进行至步骤1416,在步骤1416处,将增强的机械模型(具有相关联的方面元数据)和主I/O列表导出至控制设计平台。控制工程师可以参考主I/O列表,以帮助设计自动化系统的电气和控制系统。
为了在物理或仿真的工业控制器的控制下准确地模拟工业系统,如图10所示,理想地,工业控制器应当直接经由控制网络(例如,现场总线)与模拟的自动化系统进行通信,工业控制器将通过该控制网络与组成工业系统的现场设备进行通信。也就是说,控制器仿真组件308和模拟组件306应当经由实际控制网络或对控制网络的模拟来交换控制器输出数据1002和模拟输出数据1004,以准确地模拟正在被建模的自动化系统的行为和网络业务(例如,在延迟、网络错误等方面)。为了模拟将驻留在组成自动化系统的工业控制器与工业资产之间的控制网络,在控制设计和测试系统302外部的单独硬件设备可以执行对网络的仿真。该单独的硬件设备可以驻留在网络的TCP/IP层上,该网络将网络仿真硬件设备连接至模拟硬件设备(即,在其上实现控制设计和测试系统302的硬件设备),并且可以通过该网络仿真设备来传递在控制器仿真组件308与模拟组件306之间交换的模拟数据。
然后,使用单独的硬件设备测试控制程序1008以模拟控制网络将需要控制程序1008的网络配置设置被配置成——在联网和设备布局方面——在模拟期间与该外部硬件设备进行通信,并且然后被重新配置成在模拟和测试已经被完成之后当针对物理控制器调试控制程序1008时与不同的一组设备对话。理想地,应当使用与将在运行时期间使用的网络配置相同的网络配置对控制系统进行测试。
为了解决这个问题,网络仿真器可以在与在其上执行自动化系统模拟的硬件平台相同的硬件平台上进行操作,而不是使用在其上执行控制设计和测试系统302的硬件平台外部的硬件设备来仿真控制网络。该网络仿真器可以在如下操作系统的内核内作为设备驱动器进行操作,在所述操作系统上执行控制设计和测试系统302。图15是示出在安装有控制设计和测试系统302的硬件平台1506的内核空间中对控制网络的仿真的图。在该示例中,控制设计和测试系统302被安装在硬件平台1506(例如,Windows盒子)上,该硬件平台1506包括驻留在硬件级上的许多硬件资源,例如,存储器、一个或更多个中央处理单元(CPU)、网络接口等。硬件平台1506的操作系统包括:用户空间,在该用户空间上运行用户应用和进程;以及内核空间,该内核空间执行操作系统的后台进程,管理对硬件层的访问并且执行通常与内核相关联的其他功能。当在硬件平台1506上被实现时,控制设计和测试系统302利用在硬件级上可用的存储器和处理资源来执行与组件304至312相关联的功能。也就是说,图3所示的一个或更多个处理器318和存储器320可以包括硬件平台1506的硬件级的存储器和CPU。
在一个或更多个实施方式中,当系统302在仿真的控制程序1008的控制下执行对由数字模型502表示的自动化系统的模拟时,如以上结合图10所描述的,控制器仿真组件308可以在硬件平台的操作系统的内核空间中将网络仿真器1502实例化。该网络仿真器1502在内核空间中被实例化为设备驱动器,并且被配置成仿真如下控制网络,所述控制网络将存在于将在其上执行控制程序1008的工业控制器与组成建模的自动化系统的现场设备之间。在模拟期间,控制器仿真组件308与模拟组件306之间的模拟数据业务(例如,控制器输出数据1002和模拟输出数据1004)然后可以通过该网络仿真器1502被传递并由该网络仿真器1502处理,以准确地仿真在工业控制器与现场设备之间的数据通信。该网络仿真可以包括例如数据业务延迟、数据碰撞、抖动、错误率、带宽、吞吐量或其他这样的网络特性的仿真。该配置允许在不需要附加的外部硬件来仿真控制网络的情况下在单个机器(例如,Windows盒子)上执行整个模拟——包括控制网络仿真。
在一些实施方式中,网络仿真器1502可以是支持多个网络协议的通用虚拟机,其中特定于应用的代码被下载到仿真器1502。图16是示出使用由控制器仿真组件308所仿真的控制程序1008定义的网络配置数据1602来配置网络仿真器1502的图。由于由控制器仿真组件308仿真的控制程序1008是与当控制系统被部署时将被下载至物理工业控制器的程序相同的程序,因此,控制程序1008不仅包括将被执行以监测和控制自动化系统的控制逻辑,还包括工业控制器的网络配置设置,所述网络配置设置允许控制器与控制网络(例如,现场总线或另一类型的控制网络)对接并且与连接至该网络的现场设备交换数据。该网络配置数据1602可以包括例如控制器和控制网络上的其他设备的网络地址信息、控制器将与之交换数据的控制网络上的其他设备的标识、设备布局信息或其他这样的网络设置。
当控制器仿真组件308在内核空间中将网络仿真器1502实例化时,从控制程序1008中提取网络配置数据1602,并且网络配置数据1602被用于利用网络逻辑1504在内核空间中对网络仿真器1502进行编程。网络逻辑1504将网络仿真器1502配置成模拟具有由网络配置数据1602表示的配置的控制网络的数据业务处理和行为。在一些实施方式中,网络仿真器1502可以根据从控制程序1008提取的网络配置信息来确定网络的拓扑(例如,当被部署时将连接至该网络的一组设备),并且该网络拓扑信息可以被用于构建由网络仿真器1502管理的网络仿真。
网络逻辑1504还向网络仿真器1502通知:结合模拟数字模型502,网络业务的哪些子集要由网络仿真器1502拦截和处理。图17是示出由网络仿真器1502对模拟数据进行拦截和处理的图。通常,在内核空间上操作的内核管理对硬件级资源(例如,存储器、处理等)的访问,从而处理来自在用户空间上执行的应用对CPU、存储器或其他硬件资源的访问的请求。这些处理经由内核空间产生用户空间与硬件级之间的数据业务1702,其调节由用户应用对系统硬件的访问。
该数据业务1702的仅一个子集与数字模型502的模拟有关。因此,网络逻辑1504向网络仿真器1502通知:数据业务1702的哪个子集被定向到由网络仿真器1502表示的虚拟控制网络。在数字模型502的模拟期间,网络仿真器1502监测被定向至虚拟网络的数据业务(例如,基于对控制程序1008的仿真而生成的控制器输出数据1002以及由模拟组件306生成的模拟输出数据1004),以模拟数据通过控制网络的流动的方式作用于该数据,并且使用操作系统的TCP/IP堆栈将结果返回至控制器仿真组件308或模拟组件306。未定向至虚拟网络的数据业务1702的子集由内核以常规方式进行处理,但不会被网络仿真器1502拦截,而要仿真的数据由网络仿真器1502根据网络逻辑1504进行处理,该网络逻辑1504向网络仿真器1502指示数据的哪些子集要被处理。
网络仿真器1502还可以被用于在模拟架构中模拟控制网络,在该模拟架构中,自动化系统模拟在第一硬件机器(例如,硬件平台1506)上执行并且与执行控制程序1008的物理硬件控制器交换数据,而不是与在同一硬件机器上的仿真的控制器交换数据。图18是示出其中设计和测试系统302通过网络1806与工业控制器1802交换模拟数据1804的模拟架构的图。在该示例中,控制程序1008已经被下载到工业控制器1802(例如,PLC或另一种类型的工业控制器),而不是由与模拟组件306和网络仿真器1502在同一硬件平台上的控制器仿真组件308执行,该工业控制器1802经由网络1806联网至设计和测试系统302。在模拟期间,工业控制器1802执行控制程序1008并且经由网络1806与设计和测试系统交换模拟数据1804(例如,如以上关于图10描述的模拟输出数据1004和控制器输出数据1002),而模拟组件502在工业控制器1802的控制下模拟自动化系统(由数字模型502表示)的操作。
类似于以上关于图17所描述的场景,网络仿真器1502在设计和测试系统302在其上操作的硬件平台的内核空间中执行,并且执行仿真控制网络的网络逻辑1504,控制器1802当被部署在工厂车间上时将被安装在该控制网络上。基于从控制程序1008中提取的网络配置数据1602(例如,控制器1802和控制网络上的其他设备的网络地址信息、控制器将与之交换数据的控制网络上的其他设备的标识、设备布局信息等)来生成网络逻辑1504。在该示例中,仿真组件308可以通过网络1806从控制程序1008中提取该网络配置数据1602,并且基于该提取的网络信息针对网络仿真器1502生成网络逻辑1504。
类似于先前的示例,网络逻辑1504向网络仿真器1502通知网络1802上的数据业务的哪些子集被定向到仿真的控制网络。具体地,由工业控制器1802生成并且涉及数字模型502的模拟的任何模拟数据1804(例如,控制器输出数据1002)将被网络仿真器1502拦截,根据网络逻辑1504以模拟数据通过控制网络的流动的方式被处理,并且将经处理的数据传递至模拟组件306,以模拟经由控制网络从工业控制器1802接收控制信号。在相反的方向上,由模拟组件306生成并且被定向到工业控制器1802的模拟数据1804(例如,模拟输出数据1004)被网络仿真器1502拦截和处理,并且被放置在网络1802上以模拟通过控制网络向控制器1802传输输入设备信令。
在一些实施方式中,可以编写用于网络仿真器1502的网络逻辑1504,而无需对其进行数字签名。当在工业控制器1008上安装用于模拟的测试的控制程序1008时,设计和测试系统302利用指定从网络1806上的数据业务中获取什么数据的规则来配置网络仿真器1502,使得网络业务的仅指定的子集由网络仿真器1502进行处理。网络仿真器1502的执行仿真的部分基于由网络逻辑1504指定的规则来选择网络1806上的数据业务的哪一部分将被拦截和仿真。由于网络仿真器1502是具有受限制环境的虚拟机,因此网络仿真将使设计和测试系统302在其上执行的硬件平台崩溃的风险很小或没有风险。
网络仿真器1502可以被安装在内核空间中可以从硬件平台的操作系统的用户空间直接写入仿真器1502的点处。通过在硬件平台的操作系统的该低级别处执行,网络仿真器1502可以假装成没有物理网络的另一设备(例如,网络仿真设备)。
除了将控制网络拓扑和配置考虑在内作为自动化系统模拟的一部分之外,网络仿真器1502还可以在模拟期间生成仿真的网络业务统计信息,并且这些统计信息可以由作为可视化1014的一部分的用户接口组件304呈现。这些统计信息可以包括但不限于数据延迟、碰撞统计信息、数据带宽、数据吞吐量、错误率、抖动或其他这样的统计信息。
通过使用虚拟机(网络仿真器1502)在操作系统的内核空间内仿真控制网络并且在该虚拟机与执行自动化系统模拟的用户空间之间建立通信互连,本文描述的架构可以准确地仿真控制网络作为自动化系统模拟的一部分,并且可以相对于使用单独的硬件设备仿真控制网络的架构以较低延迟来执行该仿真。
尽管以上已经关于使用数字模型502(其是使用被应用于机械CAD模型的方面元数据被创建的)的自动化系统模拟描述了用于仿真控制网络的所公开的架构和方法,但是应当理解,在不脱离本公开内容的范围的情况下,用于对控制网络进行仿真的该技术可以与任何类型的工业自动化模拟结合使用,而不管工业系统模型被创建的方式如何。
图19a示出了用于数字地模拟工业控制和自动化系统——包括对控制网络进行仿真——的示例方法1800a的第一部分,工业控制器将通过该控制网络来监测和控制自动化系统。最初,在1902处,将工业自动化系统的数字模型导入被安装在硬件平台(例如,Windows盒子)上的设计和测试系统中。
在1904处,在硬件平台的内核空间中将网络仿真器实例化为虚拟机或设备驱动器。在1906处,从工业控制程序中提取网络配置信息,该工业控制程序要被执行为控制模拟的一部分。控制程序可以被安装在工业控制器上,该工业控制器与硬件平台联网,设计和测试系统在该硬件平台上执行自动化系统模拟。在1908处,利用从网络配置信息推断的网络逻辑来对网络仿真器进行编程。网络逻辑指示控制网络的设备拓扑,通过该控制网络,工业控制器当被部署在工厂车间时将监测和控制自动化系统。在1910处,在设计和测试系统上模拟工业自动化在工业控制程序的控制下的操作。模拟涉及经由网络在设计和测试系统在其上执行的硬件平台与执行控制程序的工业控制器之间交换模拟数据。
该方法继续图19b中所示的第二部分1900b。在1912处,在模拟期间,由网络仿真器监测硬件平台和工业控制器所驻留的网络上的网络业务。在1914处,确定网络业务的子集是否被定向到网络仿真器。如果没有数据业务被定向到网络仿真器(在步骤1914处为“否”),则该方法返回至步骤1912,并且继续监测数据业务。如果确定网络业务的子集被定向到网络仿真器(在步骤1914中为“是”),则该方法进行至步骤1916,在步骤1916处,由网络仿真器基于网络逻辑来处理网络业务的子集,并且经处理的数据进行至其目的地(例如,至在硬件平台的用户空间上执行的模拟或经由网络至工业控制器),从而模拟的数据在控制网络上流动,工业控制器当被部署在工厂车间时将被安装在该控制网络上。
本文中描述的实施方式、系统和组件以及在其中可以执行本主题说明书中阐述的各个方面的控制系统和自动化环境可以包括能够跨网络进行交互的计算机或网络组件,例如服务器、客户端、可编程逻辑控制器(PLC)、自动化控制器、通信模块、移动计算机、用于移动车辆的车载计算机、无线组件、控制组件等。计算机和服务器包括被配置成执行存储在介质中的指令的一个或更多个处理器——采用电信号来执行逻辑操作的电子集成电路,介质例如是随机存取存储器(RAM)、只读存储器(ROM)、硬盘驱动器以及可移除存储器设备,所述可移除存储器设备可以包括记忆棒、存储卡、闪存驱动器、外部硬盘驱动器等。
类似地,如本文中使用的术语PLC或自动化控制器可以包括可以跨多个组件、系统和/或网络被共享的功能。作为示例,一个或更多个PLC或自动化控制器可以跨网络与各种网络设备进行通信和协作。这基本上可以包括经由网络进行通信的任何类型的控件、通信模块、计算机、输入/输出(I/O)设备、传感器、致动器和人机接口(HMI),该网络包括控制网络、自动化网络和/或公共网络。PLC或自动化控制器还可以与各种其他设备进行通信并且控制各种其他设备,各种其他设备例如是包括模拟、数字、编程/智能I/O模块的标准的或安全等级的I/O模块、其他可编程控制器、通信模块、传感器、致动器、输出设备等。
网络可以包括:诸如因特网的公共网络;内联网;诸如控制和信息协议(CIP)网络的自动化网络;安全网络;以及以太网/IP,自动化网络包括设备网(DeviceNet)、控制网(ControlNet)。其他网络包括以太网、DH/DH+、远程I/O、现场总线、Modbus、过程现场总线(Profibus)、CAN(控制器局域网)、无线网络、串行协议等。此外,网络设备可以包括各种可能性(硬件和/或软件组件)。这些包括诸如以下组件:具有虚拟局域网(VLAN)能力的交换机、LAN、WAN、代理、网关、路由器、防火墙、虚拟专用网(VPN)设备、服务器、客户端、计算机、配置工具、监测工具和/或其他设备。
为了提供所公开主题的各个方面的情境,图20和图21以及以下讨论旨在提供对可以实现所公开主题的各方面的适当环境的简要的一般性描述。尽管以上已经在可以在一个或更多个计算机上运行的计算机可执行指令的一般上下文中描述了实施方式,但是本领域技术人员将认识到,也可以结合其他程序模块和/或作为硬件和软件的组合来实现实施方式。
通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构等。此外,本领域技术人员将理解的是,可以利用其他计算机系统配置来实践本发明的方法,所述其他计算机系统配置包括单处理器或多处理器计算机系统、小型计算机、大型计算机、物联网(IoT)设备、分布式计算系统、以及个人计算机、手持计算设备、基于微处理器的或可编程的消费性电子产品等,上述中的每一个均可以可操作地耦接至一个或更多个相关联的设备。
也可以在分布式计算环境中实践本文中示出的实施方式,在所述分布式计算环境中,某些任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地存储器存储设备或远程存储器存储设备二者中。
计算设备通常包括各种介质,所述各种介质可以包括计算机可读存储介质、机器可读存储介质和/或通信介质,计算机可读存储介质和机器可读存储介质这两个术语在本文中如下彼此不同地被使用。计算机可读存储介质或者机器可读存储介质可以是能够由计算机访问的任何可用存储介质,并且包括易失性介质和非易失性介质、可移除介质和不可移除介质。作为示例而非限制,可以结合用于存储诸如计算机可读指令或机器可读指令、程序模块、结构化数据或非结构化数据的信息的任何方法或技术来实现计算机可读存储介质或机器可读存储介质。
计算机可读存储介质可以包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、蓝光盘(BD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、固态驱动器或其他固态存储设备、或可以用于存储所需信息的其他有形和/或非暂态介质。在这点上,应当将本文中应用于存储装置、存储器或计算机可读介质的术语“有形”或“非暂态”理解为作为修饰语仅排除传播暂态信号本身,并且不放弃对不是仅传播暂态信号本身的所有标准存储装置、存储器或计算机可读介质的权利。
针对关于由介质存储的信息的多种操作,可以由一个或更多个本地或远程计算设备——例如,经由访问请求、查询或其他数据检索协议——来访问计算机可读存储介质。
通信介质通常在诸如经调制的数据信号例如载波或其他传输机制的数据信号中体现计算机可读指令、数据结构、程序模块或其他结构化或非结构化的数据,并且包括任何信息传送或传输介质。术语“经调制的数据信号”或信号是指以将信息编码在一个或更多个信号中的方式设置或改变其特性中的一个或更多个特性的信号。作为示例而非进行限制,通信介质包括诸如有线网络或直接有线连接的有线介质以及诸如声学、RF、红外的无线介质和其他无线介质。
再次参照图20,用于实现本文中描述的方面的各种实施方式的示例环境2000包括计算机2002,计算机2002包括处理单元2004、系统存储器2006和系统总线2008。系统总线2008将系统组件耦接至处理单元2004,所述系统组件包括但不限于系统存储器2006。处理单元2004可以是各种市售处理器中的任何处理器。双微处理器和其他多处理器架构也可以被用作处理单元2004。
系统总线2008可以是:还可以与存储器总线(具有或不具有存储器控制器)互连的若干类型的总线结构中的任何总线结构;外围总线;以及使用各种各样的市售总线架构中的任何总线架构的本地总线。系统存储器2006包括ROM 2010和RAM 2012。基本输入/输出系统(BIOS)可以被存储在非易失性存储器例如ROM、可擦除可编程只读存储器(EPROM)、EEPROM中,其中,BIOS包含例如在启动期间帮助在计算机2002内的元件之间传送信息的基本例程。RAM 2012还可以包括高速RAM,例如用于缓存数据的静态RAM。
计算机2002还包括内部硬盘驱动器(HDD)2014(例如,EIDE、SATA)、一个或更多个外部存储设备2016(例如,磁软盘驱动器(FDD)2016、存储棒或闪存驱动器读取器、存储卡读取器等)和光盘驱动器2020(例如,其可以从CD-ROM盘、DVD、BD等进行读或写)。虽然内部HDD2014被示出为位于计算机2002内,但是内部HDD 2014也可以被配置成用于在合适的机箱(未示出)中供外部使用。另外,虽然在环境2000中未示出,但除了HDD 2014之外还可以使用固态驱动器(SSD)或者可以使用固态驱动器(SSD)来代替HDD 2014。HDD 2014、外部存储设备2016和光盘驱动器2020可以分别通过HDD接口2024、外部存储接口2026和光盘驱动器接口2028连接到系统总线2008。用于外部驱动器实现的接口2024可以包括通用串行总线(USB)和电气与电子工程师协会(IEEE)1394接口技术中的至少一个或两个。其他外部驱动器连接技术在本文中描述的实施方式的构思之内。
驱动器及其关联的计算机可读存储介质提供数据、数据结构、计算机可执行指令等的非易失性存储。对于计算机2002,驱动器和存储介质提供以合适的数字格式存储任何数据。尽管上面对计算机可读存储介质的描述是指各种类型的存储设备,但是本领域技术人员应当理解,计算机可读的其他类型的存储介质——无论是当前存在的还是将来要开发的——也可以在示例操作环境中被使用,此外,任何这样的存储介质可以包含用于执行本文中描述的方法的计算机可执行指令。
在驱动器和RAM 2012中可以存储许多程序模块,包括操作系统2030、一个或更多个应用程序2032、其他程序模块2034和程序数据2036。操作系统、应用、模块和/或数据中的全部或部分也可以被缓存在RAM 2012中。可以利用各种市售的操作系统或操作系统的组合来实现本文中描述的系统和方法。
计算机2002可以可选地包括模拟技术。例如,管理程序(未示出)或其他中间物可以仿真用于操作系统2030的硬件环境,并且所仿真的硬件可以可选地不同于图20中所示的硬件。在这样的实施方式中,操作系统2030可以包括在计算机2002处托管的多个虚拟机(VM)中的一个虚拟机。此外,操作系统2030可以为应用程序2032提供诸如Java运行时环境或.NET框架的运行时环境。运行时环境是一致的执行环境,其允许应用程序2032在包括运行时环境的任何操作系统上运行。类似地,操作系统2030可以支持容器,应用程序2032可以呈容器的形式,容器是轻量的、独立的、可执行的软件包,所述软件包包括例如代码、运行时间、系统工具、系统库和对应用的设置。
此外,可以利用诸如可信处理模块(TPM)的安全模块来启用计算机2002。例如,利用TPM,引导组件在时间上散列(hash)接下来的引导组件,并且在加载接下来的引导组件之前等待结果与安全值的匹配。该过程可以发生在计算机2002的代码执行栈中的任何层处,例如被应用在应用执行级或操作系统(OS)内核级处,从而使实现在代码执行的任何级处的安全性。
用户可以通过一个或更多个有线/无线输入设备——例如,键盘2038、触摸屏2040和诸如鼠标2042的定点设备——将命令和信息输入到计算机2002中。其他输入设备(未示出)可以包括麦克风、红外(IR)遥控器、射频(RF)遥控器或其他遥控器、操纵杆、虚拟现实控制器和/或虚拟现实耳机、游戏手柄、触控笔、诸如摄像装置的图像输入设备、姿势传感器输入设备、视觉运动传感器输入设备、情绪或面部检测设备、诸如指纹或虹膜扫描仪的生物特征输入设备等。这些输入设备以及其他输入设备通常通过可以耦接至系统总线2008的输入设备接口2044而连接到处理单元2004,但是也可以通过其他接口例如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口、接口等进行连接。
监测器2044或其他类型的显示设备也可以经由诸如视频适配器2048的接口连接至系统总线2008。除了监视器2044之外,计算机通常还包括其他外围输出设备(未示出),例如,扬声器、打印机等。
计算机2002可以使用经由至诸如远程计算机2048的一个或更多个远程计算机的有线和/或无线通信的逻辑连接在联网环境中进行操作。远程计算机2048可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐器具、对等设备或其他公共网络节点,并且通常包括关于计算机2002所描述的许多或所有元件,但是为了简洁起见,仅示出了存储器/存储设备2050。所描绘的逻辑连接包括与局域网(LAN)2052和/或更大的网络例如广域网(WAN)2054的有线/无线连接。这样的LAN和WAN联网环境在办公室和公司中很常见,并且促进诸如内部网的企业范围的计算机网络,所有这些都可以连接至全球通信网络,例如因特网。
当在LAN联网环境中被使用时,计算机2002可以通过有线和/或无线通信网络接口或适配器2056连接到本地网络2052。适配器2056可以促进与LAN 2052的有线或无线通信,LAN 2052还可以包括布置在其上用于在无线模式下与适配器2056进行通信的无线接入点(AP)。
当在WAN联网环境中被使用时,计算机2002可以包括调制解调器2058或者可以经由用于通过WAN 2054建立通信的其他手段例如借助于因特网连接至WAN 2054上的通信服务器。可以是内部设备或外部设备以及有线设备或无线设备的调制解调器2058可以经由输入设备接口2042连接到系统总线2008。在联网环境中,关于计算机2002描绘的程序模块或程序模块的部分可以被存储在远程存储器/存储设备2050中。应当理解的是,示出的网络连接是示例,并且可以使用在计算机之间建立通信链接的其他手段。
当在LAN或WAN联网环境中被使用时,除了如上所述的外部存储设备2016之外,计算机2002还可以访问云存储系统或其他基于网络的存储系统;或者代替如上所述的外部存储设备2016,计算机2002可以访问云存储系统或其他基于网络的存储系统。通常,可以例如分别通过适配器2056或调制解调器2058来通过LAN 2052或WAN 2054建立计算机2002与云存储系统之间的连接。在将计算机2002连接至相关联的云存储系统时,外部存储接口2026可以在适配器2056和/或调制解调器2058的帮助下像管理其他类型的外部存储一样管理由云存储系统提供的存储。例如,外部存储接口2026可以被配置成提供对云存储源的访问,就好像这些源被物理地连接到计算机2002一样。
计算机2002能够可操作成与操作上以无线通信布置的任何无线设备或实体进行通信,所述任何无线设备或实体是例如打印机、扫描仪、台式计算机和/或便携式计算机、便携式数据助理、通信卫星、与无线地可检测的标签相关联的任何装备或位置(例如,信息亭、报摊、商店货架等)以及电话。这可以包括无线保真(Wi-Fi)和无线技术。因此,通信可以是与常规网络一样的预定义结构或者仅是至少两个设备之间的自组织通信。
图21是所公开的主题可以与其进行交互的样本计算环境2100的示意性框图。样本计算环境2100包括一个或更多个客户端2102。客户端2102可以是硬件和/或软件(例如,线程、进程、计算设备)。样本计算环境2100还包括一个或更多个服务器2104。服务器2104也可以是硬件和/或软件(例如,线程、进程、计算设备)。例如,服务器2104可以容纳线程以通过采用如本文中描述的一个或更多个实施方式来执行变换。客户端2102与服务器2104之间的一种可能的通信可以是适于在两个或更多个计算机进程之间被传输的数据包的形式。样本计算环境2100包括通信框架2106,该通信框架2106可以被用来促进客户端2102与服务器2104之间的通信。客户端2102可操作地连接至可以被用于存储客户端2102本地的信息的一个或更多个客户端数据存储装置2108。类似地,服务器2104可操作地连接至可以被用于存储服务器2104本地的信息的一个或更多个服务器数据存储装置2110。
以上所描述的内容包括本主题创新的示例。当然,不可能为了描述所公开的主题的目的而描述组件或方法的每个可想到的组合,但是本领域普通技术人员可以认识到,本主题创新的许多另外的组合和排列也是可能的。因此,所公开的主题旨在涵盖落入所附权利要求的精神和范围内的所有这样的更改、修改和变化。
特别地,关于由上述组件、设备、电路、系统等执行的各种功能,除非另外说明,否则用于描述这些组件的术语(包括对“手段”的引用)旨在对应于执行描述的组件的指定功能的任何组件(例如,功能等同物),即使该组件在结构上不等同于执行所公开的主题的在本文中示出的示例性方面的功能的所公开的结构也如此。在这点上,还应当认识到,所公开的主题包括具有用于执行所公开的主题的各种方法的动作和/或事件的计算机可执行指令的计算机可读介质以及系统。
另外,尽管可能已经针对若干实现中的仅一个实现公开了所公开主题的特定特征,但是这样的特征可以与其他实现中的对于任何给定或特定应用来说可能是期望且有利的一个或更多个其他特征进行组合。此外,就在具体实施方式或权利要求书中使用术语“包括(includes)”和“包括(including)”及其变型而言,这些术语旨在以与术语“包括(comprising)”类似的方式是包含性的。
在本申请中,使用词语“示例性”来表示用作示例、实例或说明。在本文中被描述为“示例性”的任何方面或设计不必被解释为比其他方面或设计优选或有利。相反,词语“示例性”的使用旨在以具体方式来呈现构思。
可以使用标准编程和/或工程技术将本文中描述的各个方面或特征实现为方法、装置或制品。如本文中所使用的术语“制品”旨在包括能够从任何计算机可读设备、载体或介质访问的计算机程序。例如,计算机可读介质可以包括但不限于:磁存储设备(例如,硬盘、软盘、磁条……)、光盘[例如,致密盘(CD)、数字多功能盘(DVD)……]、智能卡和闪存设备(例如,卡、棒、密钥驱动器……)。
Claims (20)
1.一种用于模拟工业自动化系统的系统,包括:
存储器,所述存储器存储可执行组件;以及
处理器,所述处理器操作地耦接至所述存储器并且执行所述可执行组件,所述可执行组件包括:
模拟组件,所述模拟组件被配置成:基于所述工业自动化系统的虚拟模型以及由工业控制器对工业控制程序的执行,在所述工业控制程序的控制下执行对所述工业自动化系统的模拟;以及
控制器仿真组件,所述控制器仿真组件被配置成在所述系统的内核空间中将网络仿真器实例化为设备驱动器,其中,所述网络仿真器被配置成对控制网络进行仿真,所述工业控制器通过所述控制网络与所述工业自动化系统的设备进行通信。
2.根据权利要求1所述的系统,其中,所述控制器仿真组件被配置成:基于由所述工业控制程序定义的网络配置数据来确定所述控制网络的设备拓扑,并且利用使所述网络仿真器对所述设备拓扑进行仿真的网络逻辑来对所述网络仿真器进行编程。
3.根据权利要求2所述的系统,其中,所述网络逻辑定义去往和来自所述内核空间的数据业务的子集,所述数据业务的子集将由所述网络仿真器进行拦截和处理。
4.根据权利要求3所述的系统,其中,所述数据业务的子集至少包括:
由所述工业控制器基于所述工业控制程序的执行而生成的控制器输出数据;以及
由所述模拟组件基于所述虚拟模型的模拟行为而生成的模拟输出数据。
5.根据权利要求1所述的系统,其中,所述控制网络是现场总线网络。
6.根据权利要求1所述的系统,其中,所述可执行组件还包括用户接口组件,所述用户接口组件被配置成在客户端设备上呈现所述模拟。
7.根据权利要求6所述的系统,其中,
所述用户接口组件被配置成:基于由所述网络仿真器对所述控制网络的仿真来呈现一个或更多个仿真的网络统计信息,以及
所模拟的网络统计信息包括关于数据延迟、碰撞统计信息、数据带宽、数据吞吐量、错误率或抖动中的至少一个的统计信息。
8.根据权利要求1所述的系统,其中,所述可执行组件还包括用户接口组件,所述用户接口组件被配置成接收方面规范输入数据,所述方面规范输入数据将三维3D机械模型的所选元件标记为所述工业自动化系统的指定方面,
其中,所述可执行组件还包括方面元数据组件,所述方面元数据组件被配置成根据所述方面规范输入数据将方面元数据分配给所选元件,所述方面元数据定义所选元件的模拟行为,以产生所述工业自动化系统的能够根据所述模拟行为在模拟平台内进行模拟的虚拟模型。
9.根据权利要求8所述的系统,其中,
所述用户接口组件被配置成:经由与由所述用户接口组件呈现的图形接口显示的交互来接收所述方面规范输入数据,
所述图形接口显示包括工具栏,所述工具栏呈现能够用于所选元件的选择和分配的一组方面,以及
所述方面规范输入数据从所述一组方面中选择方面,并且指示所选元件中的所述方面要被分配到的元件。
10.根据权利要求1所述的系统,其中,所述工业控制器是联网至所述系统的硬件工业控制器或由所述控制器仿真组件仿真的虚拟工业控制器中的一个。
11.一种用于模拟工业自动化系统的方法,包括:
由所述系统基于所述工业自动化系统的虚拟模型以及由工业控制器对工业控制程序的执行,在所述工业控制程序的控制下执行对所述工业自动化系统的模拟;
其中,执行所述模拟包括:
在所述系统的内核空间中生成网络仿真器作为设备驱动器;以及
由所述网络仿真器对控制网络进行仿真,所述工业控制器通过所述控制网络与所述工业自动化系统的设备进行通信。
12.根据权利要求11所述的方法,其中,生成所述网络仿真器包括:
基于由所述工业控制程序定义的网络配置数据来确定所述控制网络的设备拓扑;以及
利用使所述网络仿真器对所述设备拓扑进行仿真的网络逻辑对所述网络仿真器进行编程。
13.根据权利要求12所述的方法,其中,对所述网络仿真器的编程包括:对所述网络仿真器进行编程,以识别去往和来自所述内核空间的数据业务的子集,所述数据业务的子集将由所述网络仿真器进行拦截和处理。
14.根据权利要求13所述的方法,其中,所述数据业务的子集至少包括:
由所述工业控制器基于所述工业控制程序的执行而生成的控制器输出数据;以及
由所述模拟组件基于所述虚拟模型的模拟行为而生成的模拟输出数据。
15.根据权利要求11所述的方法,其中,所述控制网络是现场总线网络。
16.根据权利要求11所述的方法,还包括:由所述系统在客户端设备上呈现所述模拟。
17.根据权利要求16所述的方法,其中,
所述呈现包括:基于由所述网络仿真器对所述控制网络的仿真来呈现一个或更多个仿真的网络统计信息,以及
所模拟的网络统计信息包括关于数据延迟、碰撞统计信息、数据带宽、数据吞吐量、错误率或抖动中的至少一个的统计信息。
18.根据权利要求11所述的方法,还包括:
由所述系统接收方面规范输入数据,所述方面规范输入数据将三维3D机械模型的所选组件标记为所述工业自动化系统的指定方面;
由所述系统基于所述方面规范输入数据将方面元数据分配给所选组件,所述方面元数据定义所选组件的模拟行为;以及
由所述系统基于所述方面元数据的分配将所述机械模型转换为所述工业自动化系统的虚拟模型,其中,所述虚拟模型能够根据所述模拟行为在模拟平台内进行模拟。
19.一种非暂态计算机可读介质,所述非暂态计算机可读介质上存储有指令,所述指令响应于执行而使包括处理器的系统执行操作,所述操作包括:
基于工业自动化系统的虚拟模型以及由工业控制器对工业控制程序的执行,在所述工业控制程序的控制下执行对所述工业自动化系统的模拟;
其中,执行所述模拟包括:
在所述系统的内核空间中生成网络仿真器作为虚拟机;以及
由所述网络仿真器对控制网络进行仿真,所述工业控制器通过所述控制网络与所述工业自动化系统的设备进行通信。
20.根据权利要求19所述的非暂态计算机可读介质,其中,生成所述网络仿真器包括:
基于由所述工业控制程序定义的网络配置数据来确定所述控制网络的设备拓扑;以及
利用网络逻辑对所述网络仿真器进行编程,所述网络逻辑使所述网络仿真器对所述设备拓扑进行仿真。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/022,673 US20220083027A1 (en) | 2020-09-16 | 2020-09-16 | Industrial network emulation |
US17/022,673 | 2020-09-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114265329A true CN114265329A (zh) | 2022-04-01 |
CN114265329B CN114265329B (zh) | 2024-06-04 |
Family
ID=76730275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110748286.1A Active CN114265329B (zh) | 2020-09-16 | 2021-07-01 | 工业网络仿真 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220083027A1 (zh) |
EP (1) | EP3971758A1 (zh) |
CN (1) | CN114265329B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12020566B2 (en) * | 2021-05-20 | 2024-06-25 | Bentley Systems, Incorporated | Machine-learning based control of traffic operation |
CN115473943B (zh) * | 2022-08-15 | 2024-10-01 | 西门子(中国)有限公司 | 接口扩展方法、扩展接口使用方法、系统和存储介质 |
CN115083168B (zh) * | 2022-08-23 | 2022-11-11 | 河北博士林科技开发有限公司 | 一种基于多源数据的多层次交通仿真网络搭建方法 |
DE102023101880A1 (de) * | 2023-01-26 | 2024-08-01 | Audi Hungaria Zrt | Verfahren zur Inbetriebnahme einer automatisierten Karosseriebauanlage |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060229020A1 (en) * | 2005-04-12 | 2006-10-12 | Azimuth Systems Inc. | Modular wireless test architecture and method |
US20100114549A1 (en) * | 2008-11-06 | 2010-05-06 | Honeywell International Inc. | Systems and methods for providing a simulation environment having a simulation user interface |
US20120232869A1 (en) * | 2011-03-07 | 2012-09-13 | Rockwell Automation Technologies, Inc. | Industrial simulation using redirected i/o module configurations |
US20140180644A1 (en) * | 2012-12-21 | 2014-06-26 | Rockwell Automation Technologies, Inc. | Integration of simulation of a machine for industrial automation |
US20150019191A1 (en) * | 2011-03-07 | 2015-01-15 | Rockwell Automation Technologies, Inc. | Industrial simulation using redirected i/o module configurations |
US20170053047A1 (en) * | 2015-08-18 | 2017-02-23 | Siemens Aktiengesellschaft | Programming automation sensor applications using simulation |
CN107077339A (zh) * | 2014-10-02 | 2017-08-18 | 西门子公司 | 利用紧密耦合逻辑和物理仿真的3d图形编辑器中的编程自动化 |
-
2020
- 2020-09-16 US US17/022,673 patent/US20220083027A1/en not_active Abandoned
-
2021
- 2021-06-17 EP EP21180043.8A patent/EP3971758A1/en active Pending
- 2021-07-01 CN CN202110748286.1A patent/CN114265329B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060229020A1 (en) * | 2005-04-12 | 2006-10-12 | Azimuth Systems Inc. | Modular wireless test architecture and method |
US20100114549A1 (en) * | 2008-11-06 | 2010-05-06 | Honeywell International Inc. | Systems and methods for providing a simulation environment having a simulation user interface |
US20120232869A1 (en) * | 2011-03-07 | 2012-09-13 | Rockwell Automation Technologies, Inc. | Industrial simulation using redirected i/o module configurations |
US20150019191A1 (en) * | 2011-03-07 | 2015-01-15 | Rockwell Automation Technologies, Inc. | Industrial simulation using redirected i/o module configurations |
US20140180644A1 (en) * | 2012-12-21 | 2014-06-26 | Rockwell Automation Technologies, Inc. | Integration of simulation of a machine for industrial automation |
CN107077339A (zh) * | 2014-10-02 | 2017-08-18 | 西门子公司 | 利用紧密耦合逻辑和物理仿真的3d图形编辑器中的编程自动化 |
US20170053047A1 (en) * | 2015-08-18 | 2017-02-23 | Siemens Aktiengesellschaft | Programming automation sensor applications using simulation |
Non-Patent Citations (2)
Title |
---|
"Siemens SIMATIC S7-1500 S7-PLCSIM Advanced Function Manual", pages 29, Retrieved from the Internet <URL:https://support.industry.siemens.com/cs/attachments/109773484/s7-plcsim_advanced_function_manual_en-US_en-US.pdf> * |
YERAY GARCÍA CONCEJERO MIGUEL ANTONIO SALAZAR DEL RÍO: "EMULATION OF INDUSTRIAL FIELDBUS MODULES FOR VIRTUAL COMMISSIONING", pages 40 - 41, Retrieved from the Internet <URL:https://www.diva-portal.org/smash/get/diva2:1339548/FULLTEXT01.pdf> * |
Also Published As
Publication number | Publication date |
---|---|
CN114265329B (zh) | 2024-06-04 |
US20220083027A1 (en) | 2022-03-17 |
EP3971758A1 (en) | 2022-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112783018B (zh) | 工业环境模拟下的机器人数字孪生控制 | |
CN112784328B (zh) | 用于开发自动化系统模型的系统和方法 | |
EP4002189A1 (en) | Industrial network communication emulation | |
CN114265329B (zh) | 工业网络仿真 | |
CN114239425A (zh) | 流体流动的工业自动化过程模拟 | |
EP3865961B1 (en) | Augmented reality human machine interface testing | |
US11675936B2 (en) | Unifying multiple simulation models | |
EP3002646B1 (en) | Virtual design engineering | |
CN110399642A (zh) | 一种针对生产流水线的数字孪生体及其构建方法和应用 | |
EP3037904A1 (en) | Sizing and selection closer to the executing environment | |
CN114326454B (zh) | 用于模拟工业自动化系统的系统和方法以及介质 | |
EP3974928B1 (en) | Wiring diagram manager and emulator | |
Cadena et al. | Hardware in the loop simulation for soda can palletizing process applying ethernet TCP/IP communication protocols based on unity 3D | |
EP4336358A1 (en) | Parallel emulation for controls testing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |