CN115113851A - 系统模型智能对象配置 - Google Patents

系统模型智能对象配置 Download PDF

Info

Publication number
CN115113851A
CN115113851A CN202210263068.3A CN202210263068A CN115113851A CN 115113851 A CN115113851 A CN 115113851A CN 202210263068 A CN202210263068 A CN 202210263068A CN 115113851 A CN115113851 A CN 115113851A
Authority
CN
China
Prior art keywords
industrial
project
automation
project data
data
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.)
Pending
Application number
CN202210263068.3A
Other languages
English (en)
Inventor
安德鲁·R·斯顿普
安东尼·卡拉拉
埃什沃·斯里尼瓦桑
斯尔詹·约西波维奇
洛伦佐·P·马耶夫斯基
克里斯多佛·科莫
克里斯多佛·E·施塔内克
马修·R·埃里克松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rockwell Automation Technologies Inc
Original Assignee
Rockwell Automation Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Rockwell Automation Technologies Inc filed Critical Rockwell Automation Technologies Inc
Publication of CN115113851A publication Critical patent/CN115113851A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/4183Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by data acquisition, e.g. workpiece identification
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/4185Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the network communication
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41885Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by modeling, simulation of the manufacturing system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23258GUI graphical user interface, icon, function bloc editor, labview
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32014Augmented reality assists operator in maintenance, repair, programming, assembly, use of head mounted display with 2-D 3-D display and voice feedback, voice and gesture command

Abstract

本发明提供了一种系统模型智能对象配置。工业集成开发环境(IDE)提供了用于使用通用设计环境和数据模型来设计、编程和配置工业自动化系统的多个方面的开发框架。使用IDE系统的实施方式创建的项目可以被构建在基于对象的模型上而不是被构建在基于标签的架构上;或者除了使用IDE系统的实施方式创建的项目可以被构建在基于标签的架构上之外,使用IDE系统的实施方式创建的项目还可以被构建在基于对象的模型上。为此,IDE系统可以支持使用用作该基于对象的开发结构的构建块的自动化对象。定义自动化对象的集合及其功能关系的项目数据模型可以被存储在模型库中以选择性地包括在系统项目中。

Description

系统模型智能对象配置
技术领域
本文公开的主题总体上涉及工业自动化系统,并且例如涉及工业编程开发平台。
背景技术
使用单独的配置工具对工业自动化系统的不同方面进行编程和配置的需要导致了碎片化的设计方法,由此在不同的开发环境上对自动化系统的不同但相关或交叠的方面进行单独地设计、配置和编程。例如,运动控制系统可能需要使用控制逻辑编程平台对工业控制器进行编程并且对控制回路进行调整,使用另一配置平台对马达驱动器进行配置,以及使用可视化开发平台对相关联的HMI进行编程。相关的外围系统——例如视觉系统、安全系统等——可能也需要使用单独的编程或开发应用进行配置。
这种分离的开发方法也可能需要相当多的测试和调试努力,以确保单独配置的系统方面的适当集成。在这点上,由于未能适当地协调不同的编程努力,因此不同的系统方面之间的预期数据接口或协调动作可能需要大量调试。
发明内容
下面呈现了简化的概述,以提供对本文描述的一些方面的基本理解。该概述不是广泛的综述,也不旨在标识关键/重要元素或者描绘本文描述的各个方面的范围。其唯一的目的是以简化的形式呈现一些概念作为稍后呈现的更详细描述的序言。
在一个或更多个实施方式中,提供了一种用于开发工业应用的系统,所述系统包括:存储器,其存储可执行组件和表示相应工业资产的自动化对象的库,自动化对象具有与工业资产相关联的相应编程属性;用户接口组件,其被配置成:呈现集成开发环境(IDE)接口,并且经由与IDE接口的交互来接收对工业自动化项目的各方面进行定义的工业设计输入;以及项目生成组件,其被配置成基于工业设计输入来生成系统项目数据,其中,系统项目数据对系统项目进行定义,所述系统项目包括可执行工业控制程序、工业可视化应用或工业设备配置数据中的至少一个,并且系统项目数据包括与工业机器或过程对应的项目数据模型,项目数据模型定义与构成工业机器或过程的工业资产对应的自动化对象的子集以及自动化对象的子集之间的功能关系。
此外,一个或更多个实施方式提供了一种用于开发工业应用的方法,所述方法包括:由包括处理器的系统在客户端设备上呈现集成开发环境(IDE)接口;由系统经由与IDE接口的交互来接收对工业控制和监测项目的各方面进行定义的工业设计输入;以及由系统基于工业设计输入来生成系统项目数据,系统项目数据包括可执行工业控制程序、工业可视化应用或工业设备配置数据中的至少一个,其中,系统项目数据包括与工业机器或过程对应的项目数据模型,项目数据模型定义表示构成工业机器或过程的工业资产的自动化对象的集合以及自动化对象的集合之间的功能关系,并且自动化对象的集合中的自动化对象具有与其对应的工业资产相关联的编程属性。
此外,根据一个或更多个实施方式,提供了一种非暂态计算机可读介质,所述非暂态计算机可读介质上存储有指令,所述指令响应于执行而使系统执行操作,所述操作包括:在客户端设备上呈现集成开发环境(IDE)接口;经由与IDE接口的交互从客户端设备接收对工业自动化项目的控制设计方面进行定义的工业设计输入;以及基于工业设计输入来生成系统项目数据,其中,所述生成包括:生成可执行工业控制程序、工业可视化应用或工业设备配置数据中的至少一个,系统项目数据包括项目数据模型,该项目数据模型根据自动化对象的集合和自动化对象的集合之间的功能关系来表示工业机器或过程,自动化对象的集合表示构成工业机器或过程的工业资产;以及自动化对象的集合中的自动化对象具有与其对应的工业资产相关联的编程属性。
为了实现前述目的和相关目的,本文结合下面的描述和附图来描述某些说明性方面。这些方面指示可以实践的各种方式,所有这些方式都旨在被涵盖在本文中。当结合附图考虑时,根据以下详细描述,其他优点和新颖特征将变得明显。
附图说明
图1是示例工业控制环境的框图。
图2是示例集成开发环境(IDE)系统的框图。
图3是示出工业IDE系统的通用架构的图。
图4是示出可以由工业IDE系统结合构建、部署和执行系统项目来利用的若干示例自动化对象属性的图。
图5是示出与使用工业IDE系统创建用于正被设计的自动化系统的系统项目相关联的示例数据流的图。
图6是示出将自动化对象结合到项目模型中的示例系统项目的图。
图7是示出对系统项目进行调试的图。
图8是示出基于云的IDE服务被用于开发工业应用并将工业应用部署至工厂环境的示例架构的图。
图9是已经被集成到系统项目的项目数据模型中的示例自动化对象的图示。
图10是示出由IDE系统的项目测试组件使用与自动化对象捆绑的测试脚本来测试示例系统项目的图。
图11是示出将自动化对象编辑提交给IDE系统的图。
图12是示出根据提交给存储在库中的自动化对象的主版本的编辑来修改自动化对象的实例的图。
图13是示出将系统项目的副本从工业IDE系统下载至本地客户端设备的图。
图14是示出将自动化对象编辑传播至系统项目的本地存储的副本的图。
图15是示出从模型库中选择预定义项目数据模型的图。
图16是示出定制数据模型的创建和存储的图。
图17是用于创建和存储项目数据模型的示例方法的流程图,该项目数据模型定义表示工业机器或过程的自动化对象的布置,该项目数据模型可以被合并到工业系统项目中。
图18是用于基于对针对其正在开发项目的工业机器或过程的推断来选择性地将系统数据模型集成到工业系统项目中的示例方法的流程图。
图19是示例计算环境。
图20是示例联网环境。
具体实施方式
现在参照附图来描述本公开内容,在附图中,相似的附图标记始终被用来指代相似的元素。在以下描述中,出于说明的目的,阐述了许多具体细节以提供对本公开内容的透彻理解。然而显然,可以在没有这些具体细节的情况下实践本公开内容。在其他实例中,以框图形式示出了公知的结构和设备以便于对其进行描述。
如本申请中所使用的,术语“组件”、“系统”、“平台”、“层”、“控制器”、“终端”、“站”、“节点”、“接口”旨在指代计算机相关的实体或者与具有一个或更多个特定功能的操作装置相关的实体或者作为该操作装置的一部分的实体,其中这样的实体可以是硬件、硬件与软件的组合、软件或者执行中的软件。例如,组件可以是但不限于:在处理器上运行的进程、处理器、硬盘驱动器、包括固定的(例如,用螺钉或螺栓固定的)或可移除的固定固态存储驱动器的(光学存储介质或磁存储介质的)多个存储驱动器;对象;可执行文件;执行的线程;计算机可执行程序和/或计算机。作为说明,服务器和在服务器上运行的应用都可以是组件。一个或更多个组件可以驻留在执行的进程和/或线程内,并且组件可以位于一个计算机上和/或分布在两个或更多个计算机之间。此外,本文所描述的组件可以从其上存储有各种数据结构的各种计算机可读存储介质来执行。这些组件可以例如根据具有一个或更多个数据包的信号(例如,来自与本地系统、分布式系统中的另一组件进行交互和/或通过诸如因特网的网络经由信号与其他系统进行交互的一个组件的数据)经由本地和/或远程进程进行通信。作为另一示例,组件可以是具有由被电气或电子电路系统操作的机械部件提供的特定功能的装置,该电气或电子电路系统由处理器执行的软件或固件应用来操作,其中处理器可以在该装置的内部或外部并且执行软件或固件应用的至少一部分。作为另一示例,组件可以是通过电子组件而不是机械部件来提供特定功能的装置,电子组件可以在其中包括处理器以执行至少部分地提供电子组件的功能的软件或固件。作为又一示例,(一个或多个)接口可以包括输入/输出(I/O)组件以及相关联的处理器、应用或应用编程接口(API)组件。虽然前述示例针对组件的各方面,但是举例说明的方面或特征也可以应用于系统、平台、接口、层、控制器、终端等。
如本文所使用的,术语“推断(infer)”和“推断(inference)”通常是指根据经由事件和/或数据捕获的观察结果的集合来推理或推断系统、环境和/或用户的状态的过程。例如,推断可以被用于识别特定的情境或动作,或者可以生成状态的概率分布。推断可以是概率性的,即,基于对数据和事件的考虑来计算感兴趣的状态的概率分布。推断也可以是指用于从事件和/或数据的集合来构成更高级别事件的技术。这样的推断导致从观察到的事件和/或存储的事件数据的集合构造新的事件或动作,而不管事件在时间接近度上是否紧密相关,也不管事件和数据是否来自一个或若干个事件和数据源。
此外,术语“或”旨在意指包含性的“或”而不是排他性的“或”。也就是说,除非另有说明或者从上下文清楚得知,否则短语“X使用A或B”旨在意指任何自然的包含性排列。也就是说,以下任何情况都满足短语“X使用A或B”:X使用A;X使用B;或者X使用A和B两者。此外,除非另有说明或从上下文中清楚得知该冠词涉及单数形式,否则在本申请和所附权利要求中使用的冠词“一(a)”和“一个(an)”通常应当被解释为意指“一个或更多个”。
此外,如本文所使用的术语“集合”排除空集,例如其中没有元素的集合。因此,本公开内容中的“集合”包括一个或更多个元素或实体。作为说明,控制器的集合包括一个或更多个控制器;数据资源的集合包括一个或更多个数据资源;等。同样,如本文所用的术语“组”是指一个或更多个实体的集合,例如,一组节点是指一个或更多个节点。
将根据可以包括多个设备、组件、模块等的系统来呈现各个方面或特征。应当理解并且意识到,各种系统可以包括附加的设备、组件、模块等,以及/或者可以不包括结合附图讨论的所有设备、组件、模块等。也可以使用这些方法的组合。
图1是示例工业控制环境100的框图。在该示例中,在整个工业工厂环境中部署多个工业控制器118,以监测和控制相应的工业系统或者与产品制造、加工、运动控制、批处理、材料处理或其他这样的工业功能有关的过程。工业控制器118通常执行相应的控制程序,以便于对构成受控工业资产或系统的工业设备120(例如,工业机器)进行监测和控制。一个或更多个工业控制器118还可以包括在个人计算机或其他硬件平台上或者在云平台上执行的软控制器。一些混合设备还可以使控制器功能与其他功能(例如,可视化)相结合。由工业控制器118执行的控制程序可以包括能够处理从工业设备120读取的输入信号并且控制由工业控制器118生成的输出信号的基本上任何类型的代码,所述任何类型的代码包括但不限于梯形逻辑、顺序功能图、功能框图或结构化文本。
工业设备120可以包括:输入设备,其向工业控制器118提供与受控的工业系统有关的数据;以及输出设备,其对由工业控制器118生成的用于控制工业系统的方面的控制信号做出响应。示例输入设备可以包括遥测设备(例如,温度传感器、流量计、水平传感器、压力传感器等)、手动操作者控制设备(例如,按钮、选择器开关等)、安全监测设备(例如,安全垫、安全拉绳、光幕等)以及其他这样的设备。输出设备可以包括马达驱动器、气动致动器、信号设备、机器人控制输入、阀、泵等。
工业控制器118可以通过硬连线连接或联网连接与工业设备120通信地对接。例如,工业控制器118可以配备有与工业设备120进行通信以实现对这些设备的控制的本机硬连线输入端和输出端。本地控制器I/O可以包括:数字I/O,其向现场设备发送离散电压信号以及从现场设备接收离散电压信号;或者模拟I/O,其向设备发送模拟电压或电流信号以及从设备接收模拟电压或电流信号。控制器I/O可以通过背板与控制器的处理器进行通信,以使得数字信号和模拟信号可以被读入控制程序中并由控制程序控制。工业控制器118还可以使用例如通信模块或集成联网端口通过网络与工业设备120进行通信。示例性网络可以包括因特网、内联网、以太网、设备网(DeviceNet)、控制网(ControlNet)、数据高速公路和数据高速公路加(DH/DH+)、远程I/O、现场总线、Modbus、过程现场总线(Profibus)、无线网络、串行协议等。工业控制器118还可以存储可以被其相关联的控制程序参考并且用于控制决策的持久数据值,所述持久数据值包括但不限于:表示受控机器或过程的操作状态(例如,罐水平、位置、警报等)的测量值或计算值或者在自动化系统的操作期间收集的被捕获的时间序列数据(例如,多个时间点的状态信息、诊断发生等)。类似地,一些智能设备——包括但不限于马达驱动器、仪器或状况监测模块——可以存储用于控制和/或使操作状态可视化的数据值。这样的设备还可以将时间序列数据或事件捕获在日志上以供稍后检索和查看。
工业自动化系统通常包括一个或更多个人机接口(HMI)114,所述一个或更多个人机接口(HMI)114使得工厂人员能够查看与自动化系统相关联的遥测数据和状态数据并且对系统操作的一些方面进行控制。HMI114可以通过工厂网络116与工业控制器118中的一个或更多个进行通信,并且与工业控制器交换数据以便于在一个或更多个预先开发的操作者接口画面上对与受控工业过程有关的信息进行可视化。HMI 114还可以被配置成使得操作者能够将数据提交至工业控制器118的指定数据标签或存储器地址,从而提供了供操作者向受控系统发出命令(例如,循环启动命令、设备致动命令等)、修改设定点值等的手段。HMI114可以生成一个或更多个显示画面,操作者通过所述显示画面与工业控制器118进行交互,从而与受控过程和/或系统进行交互。示例显示画面可以使用显示计量值或计算值的过程的图形化表示来可视化工业系统或其相关联的设备的当前状态,基于状态而采用颜色或位置动画,呈现警报通知,或者采用其他这样的技术以向操作者展现相关数据。以这种方式展现的数据由HMI 114从工业控制器118读取,并且根据HMI开发者选择的显示格式在显示画面中的一个或更多个上展现所述数据。HMI可以包括具有用户安装的或预先安装的操作系统以及用户安装的或预先安装的图形应用软件的固定位置设备或移动设备。
一些工业环境还可以包括与受控工业系统的特定方面有关的其他系统或设备。这些系统或设备可以例如包括:聚合并存储从工业控制器118或其他数据源收集的生产信息的数据历史记录装置(data historian)110、包含构成受控工业系统的各种工业设备的电子文档的设备文档存储库、库存跟踪系统、工作订单管理系统、用于机器或过程图纸和文档的储存库、供应商产品文档存储库、供应商知识库、内部知识库、工作调度应用或者其他这样的系统,它们中的一些或全部可以驻留在工业环境的办公网络108上。
较高级别系统126可以执行与工厂现场的工业自动化系统的控制不太直接相关并且替代地针对长期规划、高级监督控制、分析、报告或其他这样的高级功能的功能。这些系统126可以驻留在相对于工厂设施的外部位置处的办公网络108上,或者驻留在可以访问办公网络和/或工厂网络的云平台上。较高级别系统126可以包括但不限于:云存储和分析系统、大数据分析系统、制造执行系统、数据湖、报告系统等。在一些场景中,在企业的这些较高级别处运行的应用可以被配置成分析控制系统操作数据,并且该分析的结果可以被反馈至控制系统处的操作者或者直接被反馈至控制系统中的控制器118或设备120。
必须使用特定于每个设备的相应配置应用来编程或配置构成工业环境的各种控制、监测和分析设备。例如,通常使用(例如,在客户端设备124上执行的)控制编程开发应用诸如梯形逻辑编辑器来配置和编程工业控制器118。使用这样的开发平台,设计者可以编写用于实现期望的工业顺序或过程的控制程序(例如,梯形逻辑、结构化文本、功能框图等)并且将得到的程序文件下载至控制器118。单独地,开发者使用(例如,在客户端设备122上执行的)HMI开发平台针对HMI 114设计可视化画面和相关联的导航结构,并且将得到的可视化文件下载至HMI 114。一些工业设备120——例如马达驱动器、遥测设备、安全输入设备等——也可能需要使用特定于正被配置的设备的(例如,在客户端设备128上执行的)单独的设备配置工具来进行配置。这样的设备配置工具可以用于设置设备参数或操作模式(例如,高/低限制、输出信号格式、比例因子、能耗模式等)。
使用单独的配置工具对工业自动化系统的不同方面进行编程和配置的需要导致了碎片化的设计方法,由此在不同的开发环境上对自动化系统的不同但相关或交叠的方面进行单独地设计、配置和编程。例如,运动控制系统可能需要使用控制逻辑编程平台对工业控制器进行编程并且对控制回路进行调整,使用另一配置平台对马达驱动器进行配置,以及使用可视化开发平台对相关联的HMI进行编程。相关的外围系统——例如视觉系统、安全系统等——可能也需要使用单独的编程或开发应用进行配置。
这种分离的开发方法也可能需要相当多的测试和调试努力,以确保单独配置的系统方面的适当集成。在这点上,由于未能适当地协调不同的编程努力,因此不同的系统方面之间的预期数据接口或协调动作可能需要大量调试。
为了解决这些或其他问题中的至少一些,本文描述的一个或更多个实施方式提供了用于使用通用设计环境和数据模型来设计、编程和配置工业自动化系统的多个方面的集成开发环境(IDE)。工业IDE的实施方式可以被用来以通用的方式配置和管理自动化系统设备,从而促进控制系统的控制、可视化和其他方面的集成的、多学科编程。
通常,工业IDE支持跨越整个自动化生命周期的特征,包括设计(例如,设备选择及尺寸确定、控制器编程、可视化开发、设备配置、测试等);安装、配置和调试;操作、改进和管理;以及故障排除、扩展和升级。
工业IDE的实施方式可以包括特定于工业纵向市场(vertical)及这些纵向市场内的通用工业应用的模块化代码和可视化的库。这些代码和可视化模块可以简化开发并缩短开发周期,同时还支持跨工业企业的一致性和重复使用。
为了支持增强的开发能力,使用IDE系统的实施方式创建的项目可以被构建在基于对象的模型上而不是被构建在基于标签的架构上;或者除了使用IDE系统的实施方式创建的项目可以被构建在基于标签的架构上之外,使用IDE系统的实施方式创建的项目还可以被构建在基于对象的模型上。为此,IDE系统可以支持使用用作该基于对象的开发结构的构建块的自动化对象。为了确保项目内和项目之间的一致性,以及确保给定的工业项目被动态地更新以反映工业资产的属性(例如,控制代码、可视化定义、测试脚本、分析代码等)的改变,IDE系统的实施方式可以使用自动化对象继承特征来将对自动化对象定义做出的改变传播到在整个控制项目中使用的自动化对象的所有实例。此外,自动化对象的集合以及这些对象之间的层次或功能关系可以被定义为系统模型,并可由开发者用于包括在其系统项目中。
图2是根据本公开内容的一个或更多个实施方式的示例集成开发环境(IDE)系统202的框图。本公开内容中说明的系统、装置或过程的方面可以构成包含在机器内的机器可执行组件,例如包含在与一个或更多个机器相关联的一个或更多个计算机可读介质中的机器可执行组件。这样的组件在由一个或更多个机器例如计算机、计算设备、自动化设备、虚拟机等执行时,可以使机器执行所描述的操作。
IDE系统202可以包括:包含IDE编辑器224的用户接口组件204、项目生成组件206、项目部署组件208、项目测试组件210、协作管理组件212、一个或更多个处理器218以及存储器220。在各种实施方式中,用户接口组件204、项目生成组件206、项目部署组件208、项目测试组件210、协作管理组件212、一个或更多个处理器218以及存储器220中的一个或更多个可以彼此电和/或通信地耦接,以执行IDE系统202的功能中的一个或更多个。在一些实施方式中,组件204、206、208、210和212可以包括存储在存储器220上并由处理器218执行的软件指令。IDE系统202还可以与图2中未示出的其他硬件和/或软件组件进行交互。例如,处理器218可以与一个或更多个外部用户接口设备诸如键盘、鼠标、显示监视器、触摸屏或其他这样的接口设备进行交互。
用户接口组件204可以被配置成:接收用户输入并以任何合适的格式(例如,视觉、音频、触觉等)将输出呈现给用户。在一些实施方式中,用户接口组件204可以被配置成与在客户端设备(例如,膝上型计算机、平板计算机、智能电话等)上执行的IDE客户端通信地对接,该客户端设备(例如,经由硬连线连接或无线连接)通信地连接至IDE系统202。然后,用户接口组件204可以经由IDE客户端接收用户输入数据并呈现输出数据。在其他实施方式中,用户接口组件204可以被配置成生成合适的接口画面(例如,程序开发画面)并将其提供给客户端设备,并且经由这些接口画面来交换数据。可以经由用户接口组件204的各种实施方式接收的输入数据可以包括但不限于:编程代码、工业设计说明或目标、工程制图、AR/VR输入、DSL定义、视频或图像数据、项目测试脚本或者其他这样的输入。由用户接口组件204的各种实施方式呈现的输出数据可以包括程序代码、编程反馈(例如,错误和突出显示、编码建议等)、编程和可视化开发画面、项目测试结果等。
项目生成组件206可以被配置成:基于经由用户接口组件204接收的设计输入以及由IDE系统202保持的工业知识、预定义代码模块和可视化以及自动化对象222来创建包括一个或更多个项目文件的系统项目。项目部署组件208可以被配置成:将由项目生成组件206创建的系统项目委派给适当的工业设备(例如,控制器、HMI终端、马达驱动器、AR/VR系统等)以供执行。为此,项目部署组件208可以识别应向其发送系统项目的相应部分以供执行的适当目标设备,将这些相应部分转换成目标设备可理解的格式,并且将所转换的项目组件部署至其对应的设备。
项目测试组件210可以被配置成执行与自动化对象222或系统项目的其他元素相关联的测试脚本,以验证项目的各个方面的正确执行。协作管理组件212可以被配置成跟踪已被下载至本地客户端设备的系统项目的实例,使得项目的这些本地版本可以响应于提交给基于云的IDE系统的修改而根据需要更新。
一个或更多个处理器218可以执行本文中参考所公开的系统和/或方法描述的功能中的一个或更多个。存储器220可以是存储用于执行本文参考所公开的系统和/或方法描述的功能的计算机可执行指令和/或信息的计算机可读存储介质。
图3是示出根据一个或更多个实施方式的工业IDE系统202的通用架构的图。工业IDE系统202可以实现不仅跨设计而且跨调试、操作和维护的服务和工作流的通用集合。在设计方面,IDE系统202不仅可以支持工业控制器编程和HMI开发,而且可以支持系统部件的尺寸确定和选择、设备/系统配置、AR/VR可视化以及其他特征。IDE系统202还可以包括简化所得到的项目的调试并使所得到的项目的调试自动化并且在运行时间期间协助被部署系统的后续管理的工具。
在云平台上实现的IDE系统202的实施方式还有助于协作项目开发,由此多个开发者304向公共自动化系统项目302贡献设计和编程输入。由IDE系统支持的协作工具可以管理来自多个贡献者的设计贡献并且执行聚合系统项目302的版本控制以确保项目一致性。
基于来自一个或更多个开发者304的设计和编程输入,IDE系统202生成包括一个或更多个项目文件的系统项目302。系统项目302对以下中的一个或更多个进行编码:控制程序;HMI、AR和/或VR可视化;设备或子系统配置数据(例如,驱动参数、视觉系统配置、遥测设备参数、安全区域定义等);或者正被设计的工业自动化系统的其他这样的方面。IDE系统202可以识别应当在其上执行系统项目302的相应方面的适当的目标设备306(例如,工业控制器、HMI终端、变频驱动器、安全设备等),将系统项目302转换成可以在相应目标设备上被执行的可执行文件,并且将可执行文件部署至其对应的目标设备306以供执行,从而将系统项目302委派至工厂现场(plant floor)以实现自动化项目。
为了支持增强的开发能力,IDE系统202的一些实施方式可以被构建在基于对象的数据模型上而不是被构建在基于标签的架构上;或者除了IDE系统202的一些实施方式可以被构建在基于标签的架构上之外,IDE系统202的一些实施方式还可以被构建在基于对象的数据模型上。自动化对象222用作该基于对象的开发架构的构建块。图4是示出可以由IDE系统202结合构建、部署和执行系统项目302来利用的若干示例自动化对象属性的图。自动化对象222可以在设计期间被创建和扩充、可以被集成到较大数据模型中并且在运行时间期间被消耗。这些自动化对象222提供了跨IDE系统202的通用数据结构,并且可以被存储在对象库(例如,存储器220的一部分)中以供重复使用。对象库可以存储表示真实世界工业资产402的各种分类的预定义自动化对象222,所述工业资产402包括但不限于泵、罐、阀、马达、马达驱动器(例如,变频驱动器)、工业机器人、致动器(例如,气动或液压致动器)或其他这样的资产。自动化对象222可以表示工业企业的基本上任何级别的元素,包括单独的设备、由许多工业设备和部件(其中的一些可以与它们自己的自动化对象222相关联)组成的机器以及整个生产线或过程控制系统。
针对给定类型的工业资产的自动化对象222可以对诸如2D或3D可视化、警报、控制编码(例如,逻辑或其他类型的控制程序)、分析、启动程序、测试协议和脚本、验证报告、模拟、图表、安全协议以及与由对象222表示的工业资产402相关联的其他这样的属性的方面进行编码。还可以用对相关联资产的位置进行标识的位置信息来对自动化对象222进行地理标记。在系统项目302的运行时间期间,对应于给定真实世界资产402的自动化对象222也可以记录针对资产的状态或操作历史数据。通常,自动化对象222用作其对应工业资产402的编程表示,并且可以作为控制代码、2D或3D可视化、针对工业资产的知识库或维护指导系统或其他这样的方面的元素被合并至系统项目302中。此外,如将在下面更详细地讨论的,自动化对象222可以支持继承,使得对上面讨论的自动化对象222的任何属性的改变被自动传播至在整个系统项目302中使用的自动化对象的实例。
图5是示出与使用根据一个或更多个实施方式的IDE系统202创建用于正被设计的自动化系统的系统项目302相关联的示例数据流的图。执行IDE客户端应用514的客户端设备504(例如,膝上型计算机、平板计算机、台式计算机、移动设备、可穿戴AR/VR装置等)可以访问IDE系统的项目开发工具并利用这些工具创建用于正被开发的自动化系统的综合系统项目302。通过与系统的用户接口组件204的交互,开发者可以以各种支持的格式向IDE系统202提交设计输入512,包括特定于工业的控制程序(例如,控制逻辑、结构化文本、顺序功能图等)和HMI画面配置输入。基于该设计输入512和存储在工业知识库中的信息(预定义的代码模块508和可视化510、护栏模板506、基于物理学的规则516等),用户接口组件204呈现设计反馈518,该设计反馈518被设计成在开发用于工业自动化系统的配置、控制和可视化的系统项目302方面协助开发者。
除了控制程序和可视化定义以外,IDE系统202的一些实施方式可以被配置成接收数字工程制图(例如,计算机辅助设计(CAD)文件)作为设计输入512。在这样的实施方式中,项目生成组件206可以基于对现有设计制图的分析例如通过自动生成控制和/或可视化代码来生成系统项目302的一些部分。可以作为设计输入512被提交的制图可以包括但不限于P&ID制图、机械制图、流程图或其他这样的文档。例如,P&ID制图可以被导入到IDE系统202中,并且项目生成组件206可以识别通过制图传达的元素(例如,罐、泵等)以及它们之间的关系。项目生成组件206可以将在制图中识别的元素与对应于这些元素(例如,罐、泵等)的适当的自动化对象222相关联或进行映射,并且将这些自动化对象222添加至系统项目302。特定于设备和特定于资产的自动化对象222包括要与在制图中识别的元素相关联的合适的代码和可视化。通常,IDE系统202可以检查一个或更多个不同类型的(机械的、电的、管道等的)制图以确定设备、机器和/或资产之间的关系(包括识别跨不同制图的公共元素),并且将这些元素与适当的自动化对象222、代码模块508和/或可视化510智能地关联。IDE系统202可以结合生成用于系统项目302的代码或项目数据、根据需要来利用基于物理学的规则516以及预定义的代码模块508和可视化510。
IDE系统202还可以确定预定义的可视化内容是否可用于在制图中发现的任何对象,并且基于这些预定义的可视化来生成针对所发现的对象的适当HMI画面或AR/VR内容。为此,IDE系统202可以存储可由项目生成组件206按需访问的特定于工业、特定于资产的和/或特定于应用的可视化510。可以根据工业或工业纵向市场(例如,汽车、食品和药品、石油和天然气、药物等)、工业资产的类型(例如,机器或工业设备的类型)、工业应用的类型(例如,批处理、流量控制、幅面张力控制(web tension control)、金属板冲压、水处理等)或其他这样的类别来对这些可视化510进行分类。预定义的可视化510可以包括各种格式的可视化,包括但不限于HMI画面或窗口、聚合来自多个预先指定的源的数据的混搭(mashup)、AR叠加、表示相关联的工业资产的3D虚拟化的VR对象或其他这样的可视化格式。IDE系统202可以基于对象类型与可视化内容之间的预定义关联来选择针对给定对象的合适的可视化。
在另一示例中,由用户应用于工程制图的标记可以通过项目生成组件206的一些实施方式被理解,以传达特定的设计意图或参数。例如,红色笔的标记可以被理解为指示安全区域,通过虚线连接的两个圆可以被解释为齿轮关系,以及粗线可以指示凸轮关系。以这种方式,设计者可以以IDE系统202可以理解并利用的方式在现有的制图上草拟设计目标以生成代码和可视化。在另一示例中,项目生成组件206可以基于对用户的CAD制图的分析来学习充当用于启动机器的必要前提条件的许可和互锁(例如,阀及其相关联的状态)。项目生成组件206可以基于对这些制图和标记的分析来生成任何合适的代码(梯形逻辑、功能块等)、设备配置和可视化以合并到系统项目302中。在一些实施方式中,用户接口组件204可以包括用于在IDE平台本身内开发工程制图的设计工具,并且项目生成组件206可以在用户为新项目创建制图时生成该代码作为后台进程。在一些实施方式中,项目生成组件206还可以将状态机制图转换成对应的编程序列,从而至少产生可由开发者根据需要用附加的编程细节来增强的骨架代码。
此外或者另外,IDE系统202的一些实施方式可以支持基于目标的自动化编程。例如,用户接口组件204可以允许用户指定正被设计的自动化系统的生产目标(例如,指定正被设计的装瓶工厂必须能够在正常操作期间每秒生产至少5000个瓶子)和应用于该设计项目的任何其他相关设计约束(例如,预算限制、可用现场空间、可用控制柜空间等)。基于此信息,项目生成组件206将生成系统项目302的一些部分以满足指定的设计目标和约束。可以以这种方式生成的系统项目302的一些部分可以包括但不限于:设备和装备选择(例如,将需要定义多少泵、控制器、站、传送机、驱动器或其他资产以满足所指定的目标)、相关联的设备配置(例如,调谐参数、网络设置、驱动器参数等)、控制编码或者适于使正被设计的自动化系统可视化的HMI画面。
项目生成组件206的一些实施方式还可以基于已经针对正被开发的项目订购的零件的知识来生成系统项目302的至少一些项目代码。这可以涉及:访问由装备供应商维护的客户的账户信息以识别已经为项目购买的设备。基于此信息,项目生成组件206可以添加与所购买的资产相对应的适当的自动化对象222及相关联的代码模块508,由此提供项目开发的起点。
项目生成组件206的一些实施方式还可以监测针对共同编程的功能(例如,泵送应用、批处理、托盘包装(palletizing)操作等)的特定于客户的设计方法,并且基于对设计者的目标的推断和为了实现该目标而学习到的方法来生成针对用户可能希望合并到当前设计项目中的设计模块(例如,代码模块508、可视化510等)的推荐。为此,项目生成组件206的一些实施方式可以被配置成:随着时间流逝监测设计输入512,并且基于该监测来学习某些设计动作(例如,向设计项目添加某些代码模块或代码段、选择某些可视化等)与正被设计的工业资产的类型、工业顺序或工业过程之间的相关性。项目生成组件206可以记录这些学习到的相关性并且在后续项目开发环节期间基于这些相关性生成推荐。例如,如果项目生成组件206基于对设计输入512的分析确定:设计者当前正在以重复的、可预测的方式开发涉及一种在过去已经被编程和/或可视化的工业装备的控制项目,则项目生成组件206可以基于该装备在过去是如何被配置和/或被编程的来指示用户接口组件204呈现推荐的开发步骤或者设计者可能希望合并到系统项目302中的代码模块508。
在一些实施方式中,IDE系统202还可以存储和实现护栏模板506,护栏模板506定义旨在确保项目符合内部或外部设计标准的设计护栏。基于由一个或更多个选择的护栏模板506定义的设计参数,用户接口组件204可以提供动态推荐或其他类型的反馈作为设计反馈518的子集,所述动态推荐或其他类型的反馈被设计成以确保系统项目302符合内部或外部要求或标准(例如,诸如TUV认证的认证、内部设计标准、特定于工业或特定于纵向市场的设计标准等)的方式来指导开发者。该反馈518可以采取基于文本的推荐(例如,重写控制代码的指示部分以符合所定义的编程标准的推荐)、语法突出显示、错误突出显示、代码段的自动完成或其他这样的格式的形式。以这种方式,IDE系统202可以根据正被开发的工业系统的类型和任何适用的内部设计标准来定制设计反馈518,设计反馈518包括编程推荐、预定义代码模块508或可视化510的推荐、错误突出显示和语法突出显示等。
护栏模板506还可以被设计成保持与适用于控制程序或项目开发的其他方面的全局最佳实践相符合。例如,如果开发者的控制程序被认为太复杂(如由一个或更多个护栏模板506指定的标准所定义),则用户接口组件204可以生成并呈现警报。由于不同的纵向市场(例如,汽车、药物、石油和天然气、食品和药品、船舶等)必须遵守不同的标准和认证,因此IDE系统202可以维护针对不同的内部和外部标准和认证的护栏模板506的库,包括定制的特定于用户的护栏模板506。可以根据工业纵向市场、工业应用的类型、工厂设施(在定制的内部护栏模板506的情况下)或其他这样的类别来对这些护栏模板506进行分类。在开发期间,项目生成组件206可以基于诸如与项目相关的工业纵向市场、正被编程的工业应用的类型(例如,流量控制、幅面张力控制、特定批处理等)或其他这样的方面的方面的确定来选择并应用被确定为与当前正被开发的项目相关的护栏模板506的子集。项目生成组件206可以利用护栏模板506来实现基于规则的编程,由此基于编码的工业专业知识和最佳实践(例如,识别正被开发的代码的低效并且推荐适当的校正)来呈现诸如动态智能自动校正、输入提示(type-ahead)或编码建议的编程反馈(设计反馈518的子集)。
用户还可以针对由外部供应商(例如,OEM)提供的代码来运行他们自己的内部护栏模板506,以确保该代码符合内部编程标准。在这样的场景中,供应商提供的代码可以被提交至IDE系统202,并且项目生成组件206可以鉴于由一个或更多个定制的护栏模板506指定的内部编码标准来对该代码进行分析。基于该分析的结果,用户接口组件204可以(例如,使用突出显示、覆盖文本等)指示供应商提供的代码中不符合护栏模板506所阐述的编程标准的一些部分,并且显示用于修改代码的建议以使代码符合标准。作为推荐这些修改的替选方案或者除了推荐这些修改之外,项目生成组件206的一些实施方式可以被配置成:根据推荐来自动修改代码以使代码符合标准。
在提出编码建议作为设计反馈518的一部分时,项目生成组件206可以调用存储在代码模块数据库中的选定代码模块508或存储在自动化对象库502(例如,存储器220上)中的选定自动化对象222。代码模块508包括用于控制常见工业任务或应用(例如,托盘包装(palletizing)、流量控制、幅面张力控制、拾取和放置应用、传送机控制等)的标准化编码段。类似地,表示相应工业资产的自动化对象222可以具有与其相关联的用于监测和控制其相应资产的标准化控制代码。在一些实施方式中,可以根据工业纵向市场(例如,汽车、食品和药品、石油和天然气、纺织品、船舶、药物等)、工业应用、或代码模块508或自动化对象222适用的机器或设备的类型中的一个或更多个来对代码模块508和/或自动化对象222进行分类。
在一些实施方式中,项目生成组件206可以基于由程序员提供的程序输入(作为设计输入512的子集)来推断程序员的当前编程任务或设计目标,并且基于该任务或目标来确定是否可以将预定义的代码模块508或自动化对象222之一适当地添加至正被开发的控制程序以实现所推断的任务或目标。例如,项目生成组件206可以基于对设计输入512的分析来推断出程序员当前正在开发用于将材料从第一罐转移至另一罐的控制代码,并且作为响应,推荐包括:包含用于控制实现材料转移所需的阀、泵或其他资产的标准化或频繁利用的代码的预定义代码模块508。类似地,项目生成组件206可以推荐包括自动化对象222,该自动化对象222表示在转移材料中涉及的罐之一或其他工业资产之一(例如,阀、泵等),其中所推荐的自动化对象222包括用于控制其相关联的资产的相关联的控制代码以及可以用于在HMI应用或另一可视化应用上可视化资产的可视化对象。
定制的护栏模板506还可以被定义为捕获在项目设计中应当考虑的客户站点的细微差别。例如,护栏模板506可以记录正被设计的自动化系统将被安装在停电很常见的区域中的事实,并且将在生成设计反馈518时考虑这一因素,例如通过推荐实施备用不间断电源并建议应该如何将这些电源合并以及推荐考虑这些断电的相关联的编程或控制策略。
IDE系统202还可以例如基于以下使用护栏模板506来指导用户针对给定设计目标选择装备或设备:工业纵向市场、控制应用(例如,金属板冲压、模铸、托盘包装、传送机控制、幅面张力控制、批处理等)的类型、项目的预算约束、安装地点的物理约束(例如,可用楼层、墙壁或柜空间;安装空间的尺寸等)、该地点处已经存在的装备等。这些参数和约束中的一些或全部可以被提供作为设计输入512,并且用户接口组件204可以将装备推荐作为设计反馈518的子集进行呈现。结合该装备推荐,项目生成组件206还可以推荐包括表示推荐装备的相应自动化对象222,以包括在系统项目302中。
在一些实施方式中,项目生成组件206还可以确定是否可以对一些或全部现有装备进行重新调整以用于正被设计的新控制系统。例如,如果要将新的装瓶线添加至生产区域,由于一些装瓶线已经存在,因此可能存在利用现有装备的机会。关于哪些设备和装备可以被重复使用的决定将影响新控制系统的设计。因此,被提供至IDE系统202的设计输入512中的一些设计输入可以包括安装地点内或安装地点附近的客户现有系统的细节。在一些实施方式中,项目生成组件206可以将人工智能(AI)或传统的分析方法应用于该信息,以确定是否可以重新调整或利用在设计输入512中指定的现有装备。基于该分析的结果,项目生成组件206可以基于这些决定来生成可能需要购买的任何新装备的列表作为设计反馈518。
在一些实施方式中,IDE系统202可以基于对正被设计的自动化系统将被安装至的物理环境的理解来提供设计推荐。为此,关于物理环境的信息可以以工厂环境的2D或3D图像或视频的形式被提交给IDE系统202(作为设计输入512的一部分)。在一些实施方式中,该环境信息还可以从工厂的现有数字化映射(digital twin)来获得,或者通过对由可穿戴AR器械获得的扫描环境数据的分析来获得。项目生成组件206可以对该图像、视频或数字化映射数据进行分析,以识别安装区域内的物理元素(例如,墙、梁、安全围栏、现有机器和设备等)以及这些元素之间的物理关系。这可以包括:查明机器之间的距离、管道铺设的长度、线束或线缆桥架的位置和距离等。基于该分析的结果,项目生成组件206可以将该环境添加至生成的示意图作为系统项目302的一部分,生成关于设备或机器的最佳位置的推荐(例如,推荐电力线缆与数据线缆之间的最小间隔),或者对系统项目302进行其他改进。可以根据基于物理学的规则516来生成这些设计数据中的至少一些,基于物理学的规则516可以由项目生成组件206参考以确定这样的物理设计规范:例如距离危险装备的最小安全距离(在给定由基于物理学的规则516定义的预期的人或车辆反应时间的情况下,这也可以在确定安全设备相对于该装备的安装的合适位置时作为因素考虑)、能够承受预期负荷的材料选择、管道配置和针对指定流量控制应用的调整、适合于预期电负荷的布线规格、信号布线与电磁场(EMF)源之间的确保对数据信号的可忽略的电干扰的最小距离或者依赖于物理规则的其他这样的设计特征。
在示例用例中,由被提交至IDE系统202的物理环境信息指定的机器与设备的相对位置可以由项目生成组件206用来生成工业安全系统的设计数据。例如,项目生成组件206可以分析安全装备与危险机器之间的距离测量结果,并且基于这些测量结果来确定安全设备和相关联的安全控制器的合适的放置和配置,所述安全设备和相关联的安全控制器(例如,在人穿过光幕的情况下)确保机器将在足够的安全反应时间内关闭以防止受损。
在一些实施方式中,项目生成组件206还可以分析现有机器的照片数据或视频数据,以确定诸如齿轮或凸轮的内联机械特性并且将该信息作为因素纳入到一个或更多个护栏模板506或设计推荐中。
如上所述,由IDE系统202针对正被设计的给定自动化系统生成的系统项目302可以在使用自动化对象222作为构建块的基于对象的架构上被构建。图6是示出将自动化对象222合并到项目模型中的示例系统项目302的图。在该示例中,表示类似工业设备、系统或自动化系统的资产(例如,过程、罐、阀、泵等)的各种自动化对象222已经作为较大项目数据模型602的元素被合并到系统项目302中。项目数据模型602还定义这些自动化对象222之间的层次关系。根据示例关系,表示批处理的过程自动化对象可以被定义为表示执行该过程的设备和装备例如罐、泵和阀的多个子对象的父对象。每个自动化对象222具有与其相关联的特定于其对应工业资产的对象属性或特性(例如,以上结合图4讨论的那些),包括用于控制资产(或用于协调资产与其他工业资产的动作)的可执行控制程序以及可以用于在运行时间期间呈现关于资产的相关信息的可视化。
每个自动化对象222的至少一些属性是由IDE系统202基于与由对象表示的资产有关的编码工业专业知识而定义的默认属性。这些默认属性可以包括例如用于监测和控制由自动化对象222表示的资产的工业标准或推荐的控制代码、可以用于可视化资产的操作或统计数据的2D或3D图形对象、与资产相关联的警报状况、被设计成产生对资产的行为的可操作洞察的分析或报告脚本、或者其他这样的属性。开发者可以根据需要(经由设计输入512)修改或添加其他属性,以针对系统项目302正被开发用于其的特定资产和/或工业应用来定制自动化对象222。这可以例如包括:对定制的控制代码、HMI画面、AR演示、或与所选择的自动化对象222相关联的帮助文件进行关联。以这种方式,可以在设计期间根据需要来创建和扩充自动化对象222,以供目标控制设备在运行时间期间消耗或执行。
一旦完成了对系统项目302的开发和测试,则IDE系统202支持的调试工具可以简化在现场调试项目的过程。在用于给定自动化系统的系统项目302已经被完成的情况下,系统项目302可以被部署至一个或更多个目标控制设备以供执行。图7是示出对系统项目302进行调试的图。项目部署组件208可以将完成的系统项目302编译或以其他方式转换成可以在自动化系统的相应目标工业设备(例如,工业控制器118、HMI终端114或其他类型的可视化系统、马达驱动器710、遥测设备、视觉系统、安全继电器等)上被存储且被执行的一个或更多个可执行文件或配置文件。
常规的控制程序开发平台要求开发者在开发之前指定控制程序将在其上运行的工业控制器的类型(例如,控制器的型号),从而将控制程序绑定至指定的控制器。然后在程序开发期间强加特定于控制器的护栏,所述特定于控制器的护栏限制了在给定所选择的控制器的能力的情况下开发程序的方式。相比之下,IDE系统202的一些实施方式可以根据特定控制器类型抽象项目开发,从而使得设计者能够以对系统项目302的各个控制方面将在何处运行以及如何运行不可知的方式将系统项目302开发为自动化系统的逻辑表示。一旦项目开发被完成并且系统项目302准备好调试,用户就可以(经由用户接口组件204)指定要在其上执行系统项目302的相应方面的目标设备。作为响应,项目部署组件208的分配引擎将系统项目302的方面转换成被格式化以供在其相应目标设备上存储和执行的相应可执行文件。
例如,除了其他项目方面以外,系统项目302还可以包括控制代码、可视化画面定义和马达驱动器参数定义。在完成项目开发之后,用户可以识别哪些目标设备——包括工业控制器118、HMI终端114和马达驱动器710——将执行或接收系统项目302的这些相应方面。然后,项目部署组件208可以将由系统项目302定义的控制器代码转换成被格式化以供在指定的工业控制器118上执行的控制程序文件702并且(例如,经由工厂网络116)将该控制程序文件702发送至控制器118。类似地,项目部署组件208可以将可视化定义和马达驱动器参数定义分别转换成可视化应用704和设备配置文件708,并且将这些文件部署至它们相应的目标设备以用于执行和/或设备配置。
通常,项目部署组件208执行使得系统项目302的方面能够在指定设备上执行所必需的任何转换。无论系统项目302的各个元素如何分布,都将维护在系统项目302中定义的任何固有关系、握手或数据共享。以这种方式,IDE系统202的实施方式可以将项目与该项目要如何运行以及在哪里运行分离。这还使得相同的系统项目302能够在具有不同控制装备集合的不同工厂设施处被调试。也就是说,IDE系统202的一些实施方式可以根据现场找到的特定设备将项目代码分配至不同的目标设备。IDE系统202还可以使得项目文件的一些部分能够作为仿真器被调试或在基于云的控制器上被调试。
作为让用户指定系统项目302要被部署在其上的目标控制设备的替选方案,IDE系统202的一些实施方式可以主动地连接至工厂网络116并发现可用的设备,查明工厂现场存在的控制硬件架构,推断针对系统项目302的相应可执行方面的适当目标设备,并且将系统项目302部署至这些所选择的目标设备。作为该调试过程的一部分,IDE系统202还可以连接至远程知识库(例如,基于web的知识库或基于云的知识库),以确定哪些已发现的设备是过时的或需要固件升级以正确地执行系统项目302。以这种方式,IDE系统202可以用作设备供应商与客户的工厂生态系统之间经由云中的可信连接的链接。
可以使用智能传播将系统项目302的副本传播至具有不同装备配置的多个工厂设施,从而即使现场装备没有完美地匹配所定义的目标(例如,如果在不同地点处发现不同的泵类型),项目部署组件208也智能地将项目组件与正确的工业资产或控制设备相关联。对于未与预期的资产完美匹配的目标设备,项目部署组件208可以计算运行系统项目302对非最优目标装备的估计影响并且生成用于减轻与最优项目执行的预期偏差的警告或推荐。
如上所述,IDE系统202的一些实施方式可以在云平台上被实施。图8是示出基于云的IDE服务802被用来开发工业应用并将工业应用部署至工厂环境的示例架构的图。在该示例中,工业环境包括一个或更多个工业控制器118、HMI终端114、马达驱动器710、运行更高级别应用(例如,ERP、MES等)的服务器801以及其他这样的工业资产。这些工业资产连接至工厂网络116(例如,通用工业协议网络、以太网/IP网络等),这有助于工厂现场的工业设备之间的数据交换。工厂网络116可以是有线或无线网络。在示出的示例中,高级服务器810驻留在(例如,通过路由器808或其他网络基础设施设备)连接至工厂网络116的单独的办公网络108上。
在该示例中,IDE系统202驻留在云平台806上并且作为能够由经授权的远程客户端设备504访问的基于云的IDE服务802的集合来执行。云平台806可以是使得共享的计算服务(例如,IDE服务802)能够被能够连接云的设备访问和利用的任何基础设施。云平台806可以是可以由具有因特网连接和利用IDE服务802的适当授权的设备504经由因特网访问的公共云。在一些场景中,云平台806可以由云提供商提供为平台即服务(PaaS),并且IDE服务802可以作为基于云的服务驻留在云平台806上并且在云平台806上执行。在一些这样的配置中,IDE服务802的所有者可以将对云平台806和相关联的IDE服务802的访问作为订阅服务提供给客户。可替选地,云平台806可以是由工业企业(工厂设施的所有者)内部操作的私有云。示例私有云平台可以包括托管IDE服务802并且驻留在由防火墙保护的公司网络上的服务器的集合。
IDE系统202的基于云的实现可以促进被授权访问IDE服务802的多个远程开发者的协作开发。当系统项目302准备好部署时,可以经由办公网络108或工厂网络116与云平台806之间的安全连接将项目302委派至工厂设施。如上面所讨论的,工业IDE服务802可以将系统项目302转换成一个或更多个适当的可执行文件——控制程序文件702、可视化应用704、设备配置文件708、系统配置文件812——并将这些文件部署至工厂设施中的适当设备以促进自动化项目的实现。
如上所述,由工业IDE系统202的实施方式生成的系统项目302可以包括多个自动化对象222。图9是已经被集成到系统项目302的项目数据模型602中的示例自动化对象222的图示。如以上结合图4和图6所讨论的,系统项目302可以合并用作工业资产或过程的编程表示的自动化对象222的实例。可以由给定自动化对象222表示的资产可以包括设备级资产(例如,马达驱动器、阀、泵等)以及机器级资产(冲压机、罐、工具站等)。自动化对象222可以表示由设备或装备供应商提供的现成的工业设备或机器,或者可以包括表示由OEM或另一类型的机器制造商提供的定制机器的定制自动化对象222。
项目数据模型602可以定义集成为系统项目302的一部分的多个自动化对象222之间的层次关系。这些层次关系可以表示所表示的资产之间的物理和/或功能关系。根据示例关系,表示批处理的过程自动化对象222可以被定义为表示执行该过程的设备和装备例如罐、泵和阀的多个子自动化对象222的父对象。在另一示例中,表示机器或生产线的自动化对象222可以被定义为父对象,在父对象之下定义了表示机器或生产线内的工作站或子机器的多个子自动化对象222。这些子自动化对象222本身可以具有表示如下的多个子自动化对象222:构成这些工作站或子机器的设备级资产。
每个自动化对象222可以提供与数据标签类似的功能,这些数据标签用作从其相应工业资产接收的输入数据和发送至其相应工业资产的输出数据的容器(例如,从资产接收数字和模拟数据值以由系统项目302处理,以及由系统项目302生成并发送至资产的数字和模拟值)。另外,每个自动化对象222包括与被表示的工业资产有关的多个编程属性,在上面结合图4讨论其示例。这些属性可以包括例如控制逻辑,该控制逻辑可以作为系统项目302的一部分来执行以监测和控制所表示的资产。该相关联的控制逻辑可以被预先开发,以经由与资产的物理输入和输出(即,资产的数字和模拟I/O)对应的定义的输入和输出标签与其相关联的工业资产交换输入和输出数据。在控制项目302的执行期间,对象的控制逻辑可以处理从资产接收的输入,并基于该处理的结果生成针对资产的输出。
另外,与由项目数据模型602定义为彼此具有层次关系的各个不同自动化对象222相关联的控制逻辑可以基于这些定义的关系来交互或协作。例如,基于表示罐的第一自动化对象222(定义为父对象)和表示与罐相关联的阀的第二自动化对象222(定义为第一对象的子对象)之间的定义的层次关系,系统项目302可以使分别与第一自动化对象和第二自动化对象222相关联的两组控制逻辑相联系,使得与两个自动化对象222相关联的控制逻辑执行机器的协调监测和控制。以这种方式使两组控制逻辑相联系可以包括:例如根据模型602定义的层次关系使子对象222的数据标签与父对象222的相应数据标签相联系。通常,项目生成组件206可以基于与由项目数据模型602定义的自动化对象222相关联的聚合控制代码以及由模型602定义的对象222之间的关系生成系统项目的工业控制编程的至少一部分。
自动化对象222还可以包括可以由可视化系统(例如,HMI应用、2D或3D增强现实或虚拟现实系统等)用来呈现资产的动画图形表示的相关联的HMI对象。这些HMI对象可以包括被设计成呈现关于资产的信息的一个或更多个HMI接口画面(例如,呈现资产的统计或操作数据的报告画面、呈现资产的动画图形表示的画面等)、表示可以被导入到工业可视化应用中的资产的各个图形对象、或其他这样的对象。如果项目数据模型602定义自动化对象222的集合之间的功能关系,则项目生成组件206可以基于由对象222定义的可视化属性和那些对象之间的定义的关系的组合来生成作为系统项目302的一部分的聚合可视化呈现。
自动化对象222还可以包括分析脚本,该分析脚本被设计成分析由资产生成的数据以产生对资产的性能或健康的洞察。可以由自动化对象的分析脚本执行的示例分析可以包括但不限于:对资产的当前健康和预测的未来健康的评估(例如,确定资产的预测故障时间)、确定资产何时需要维护、或其他这样的度量。与自动化对象的控制逻辑一样,分析脚本可以被设计成与由工业资产生成的已知数据项(例如,特定于资产的数据标签)对接,使得与这些数据项相关联的数据可以由脚本处理。
自动化对象222还可以定义与工业资产相关联的警报信息。该警报信息可以包括触发警报的状况的定义(例如,当表示资产的操作度量的指定数据项落在正常行为的定义范围之外时,当指定数字标签的状态满足警报状况时等)以及响应于警报触发器而要呈现的警报消息。该警报信息可以由可视化系统(例如,HMI应用、增强现实或虚拟现实系统等)参考,该可视化系统可以基于由自动化对象222定义的警报定义来呈现工业资产的警报消息。
自动化对象222的一些实施方式还可以定义测试属性作为由IDE系统202支持的全局测试框架的一部分。这些测试属性可以包括被设计成测试和调试自动化对象222和参考对象222的系统项目302的相关联方面的特定于对象的测试脚本。对象的测试属性还可以包括特定于对象的测试场景定义,其定义可以有利地针对自动化对象222和参考对象222的相关联项目元素运行的一个或更多个测试场景。可以基于关于由自动化对象222表示的工业资产或过程的工业专业知识来预先设计测试场景定义。与自动化对象222相关联的测试属性可以减轻编写用于测试和调试系统项目302的测试脚本的需求。
图10是示出由IDE系统的项目测试组件210使用与自动化对象222捆绑的测试脚本1002来测试示例系统项目302的图。自动化对象222可以被提供有特定于由自动化对象222表示的工业资产的类型的预先捆绑的测试脚本1002和/或测试场景的定义1004。在如上所述的系统项目302的开发期间或开发之后,IDE系统的项目测试组件210可以适时执行与一个或更多个所选自动化对象222相关联的测试脚本1002,以验证系统项目302的正确响应,从而验证项目。为此,测试脚本1002可以定义要提供给自动化对象222和/或使用对象222的相关联项目代码的模拟测试输入1012、以及自动化对象222及其相关联项目代码对模拟输入1012的预期响应。
根据示例测试程序,项目测试组件210可以针对系统项目302执行与相应的一个或更多个自动化对象222相关联的一个或更多个测试脚本1002。测试脚本1002的执行可以包括例如根据由测试脚本1002定义的序列将模拟测试输入1012馈送至系统项目302的控制代码或其他元素、根据定义的序列设置由系统项目302定义的数字或模拟程序变量的值、根据定义的序列启动系统项目302的控制例程、测试由系统项目302定义的动画对象或其他可视化元素、验证控制例程之间的数据联系、验证程序元素与制图元素之间的关系、确认设备配置设置或参数值适用于由系统项目302执行的给定工业应用、或者根据由测试脚本1002定义的测试程序以其他方式与系统项目302交互。在测试期间,项目测试组件210可以监测测试结果1006或系统项目302对测试脚本1002所定义的测试交互的响应,并确定这些测试结果1006是否与测试脚本1002所定义的预期结果相匹配。以这种方式,可以在不需要开发定制测试脚本来调试系统项目代码的情况下在部署之前验证系统项目302的正确操作。
在一些测试场景中,测试脚本1002可以定义测试序列,该测试序列以整体的方式应用于作为整体的系统项目302,而不是应用于特定的控制程序或例程。例如,项目测试组件210可以执行测试脚本1002,测试脚本1002验证可能以其他方式无法测试的跨设计平台的联系或关系例如控制代码、可视化应用、电气制图、面板布局定义、布线计划表、管道图等。
如果测试结果1006指示系统项目302的一个或更多个方面的不正确操作,则项目测试部件210可以生成并呈现一个或更多个设计推荐1008,所述一个或更多个设计推荐1008指示将校正项目的操作的对系统项目302的可能修改。这些设计推荐1008可以包括例如控制代码修改或替换、对数据标签地址的推荐的校正、对HMI图形对象参考的推荐的校正、用于与控制代码保持一致的对机械制图或电气制图的推荐的校正(例如,将缺失的输出设备添加至与控制编程所参考的输出设备相对应的电气制图)、对工业设备的配置参数的推荐的修改或其他这样的校正。
一些自动化对象222的测试特性可以定义应当在对象222及其对应的控制代码和项目元素上运行的多个测试场景1004,以确保对象222和相关代码的全面测试。这些场景1004基于与由自动化对象及其相关项目元素表示的工业资产或过程相关的预先学习的工业专业知识。在一些实现方式中,每个定义的测试场景1004可以具有其自己的相关联的测试脚本1002,或者可以定义应用测试脚本1002的特定方式(例如,验证系统项目的控制代码的哪些例程、出于验证的目的应当交叉参考哪些其他项目元素,等)。在系统项目302的测试期间,项目测试部件210可以根据每个定义的测试场景1004依次执行一个或更多个测试脚本1002以全面地验证系统项目302跨所有平台的正确操作(控制编程、可视化配置、制图、设备配置等)。
在一些实施方式中,项目测试部件210还可以被配置成基于对系统项目302的分析来生成验证检查列表并且经由用户接口部件204输出该验证检查列表。该验证检查列表可以提供关于应当结合调试针对其开发系统项目302的自动化系统执行的现场测试和检查的指示。这些可以包括应当在自动化系统硬件上和电气连接上执行的测试,而该测试不能仅经由系统项目302的测试来执行。示例验证检查列表可以包括其连通性应当被验证的I/O点的列表、视觉地检查安装有面板的装备的指示、应当被执行以验证正确的机器操作的手动操作者面板交互的序列或其他这样的信息。
返回到图9,自动化对象222还可以包括历史配置作为属性,该历史配置定义了由相应工业资产生成的数据,该数据将被存档在数据历史记录装置中。该历史配置可以被执行系统项目302的一部分的数据历史系统或应用参考,以便于配置该数据历史系统来收集和存档由该配置定义的数据项。与自动化对象222的其他属性一样,历史配置属性可以基于编码到对象222中的相关工业专业知识来指定由相应工业资产生成的可用数据的子集,该可用数据的子集已知与资产的性能或健康的评估相关。
自动化对象222的一些实施方式还可以定义与相关联的工业资产相关联的安全特征或协议。这些安全特征可以包括但不限于:允许执行与工业资产相关的某些操作的用户角色定义、要应用于由资产生成的数据的加密协议、要对资产实施的网络安全协议、或其他这样的安全特征。由自动化对象222的这些实施方式定义的安全信息可以由系统项目302用来管理对工业资产的指定功能(例如,作为用户角色的功能)的访问,用来配置网络设备以支持指定的网络安全协议,或用来配置其他安全相关设备。
IDE系统202的实施方式可以支持开发架构,由此对存储在自动化对象库502中的自动化对象222做出的改变被传播至在系统项目302中使用的该自动化对象222的实例。图11是示出将自动化对象编辑1102提交给IDE系统202的图。如上所述,自动化对象222被维护在自动化对象库502(可以是存储器220的一部分)中。经由与用户接口组件204和相关联的IDE编辑器224的交互,开发者可以将从库502中选择的自动化对象222添加至系统项目302作为这些自动化对象222的实例。在图11所示的示例中,对象222a是已由开发者选择并添加至系统项目302的自动化对象222的实例。在一些场景中,项目生成组件206还可以基于关于针对其开发项目302的自动化系统的推断(例如,基于提交给系统202的设计目标或工程制图)来自动选择自动化对象222并将其添加至项目302。
IDE编辑器224可以允许用户修改存储在库502中的所选自动化对象222的属性。为此,用户接口组件204可以生成用户接口并将用户接口传递至客户端设备504(例如,经由IDE客户端514),该客户端设备504允许用户浏览可用的自动化对象222并将编辑1102提交至所选对象222。以上结合图9描述的任何属性可以以这种方式被修改用于任何定义的自动化对象222。例如,设计者可能希望修改与具有存储在库502中的定义的自动化对象222的特定工业资产(例如,泵、罐、冲压机等)相关联的控制代码。因此,用户可以提交针对相关联的自动化对象222的更新控制代码的编辑1102。这样的编辑可以用于更新相关联的工业资产的操作顺序或控制行为。
类似地,用户可以提交编辑1102以更新所选自动化对象222的可视化属性;例如,以替换或编辑相应资产的图形表示。还可以提交编辑1102以将警报添加至与对象222相关联的警报定义列表或从与对象222相关联的警报定义列表移除警报,或者编辑现有的警报定义。还可以通过提交适当的编辑1102来修改与自动化对象222相关联的安全特征、测试脚本和分析代码。
这些编辑1102针对自动化对象库502中维护的自动化对象定义。在接收到针对所选自动化对象222的对象编辑1102(经由用户接口组件204提交)时,项目生成组件206根据接收到的编辑1102更新目标自动化对象222,以产生更新的自动化对象222。该更新的自动化对象222替换库502中的自动化对象222的先前版本。
如果在接收到编辑1102之前受到编辑1102的自动化对象222的实例已被添加至现有系统项目302,则项目生成组件206还可以更新在项目302内找到的自动化对象222的所有实例。图12是示出根据提交给存储在库502中的自动化对象222的主版本的编辑1102修改自动化对象的实例222a的图。当如上所述已经修改库502中的自动化对象222时,项目生成组件206识别在使用对象222的整个任何系统项目302中使用的自动化对象的所有实例222a,并将修改传播至这些实例。这可以包括更新控制代码、可视化、分析代码、安全特性或其他属性以反映由编辑1102定义的修改。以这种方式,自动化对象的所有实例222a自动继承对存储在库502中的自动化对象222的主版本所做的修改。
图12描绘了系统项目302被存储在IDE系统202本身上(例如,如果IDE系统202被实现为云服务,则系统项目302被存储在基于云的存储上,如图8中所描绘的)的示例场景。然而,在一些实施方式中,IDE系统202还可以将自动化对象编辑传播至已被部署到本地客户端设备的系统项目以进行本地编辑。图13是示出将系统项目302的副本从IDE系统202下载至本地客户端设备504的图。在该示例中,客户端设备504执行允许客户端设备504访问IDE系统的项目开发工具和环境的IDE客户端514。IDE客户端514可以由IDE系统202提供至客户端设备504,或者可以是安装在客户端设备504上并配置成与IDE系统202对接的客户端应用。用户可以与IDE客户端514交互,以将系统项目302的版本3021从基于云的IDE系统202复制到客户端设备的本地存储以用于本地查看和开发。在本地版本3021被复制之后,在IDE系统202上维护系统项目302的主副本。
一旦被复制到客户端设备504,开发者就可以使用IDE客户端514支持的项目开发工具来查看和编辑本地版本3021。这些开发工具中的至少一些可以类似于上述IDE系统202支持的那些开发工具(参见例如图5)。例如,IDE客户端514的一些实施方式可以支持设计护栏的使用,以确保对项目的本地版本3021进行的本地编辑——例如,控制程序更改、HMI修改、对设备配置参数的更改、对自动化对象的修改等——符合内部或外部设计标准。如在先前的示例中,IDE客户端514的各种实施方式可以允许用户提交对项目的本地版本3021的编辑作为控制编程(例如,梯形逻辑、DLS编程、顺序功能图表、结构化文本、功能框图等)、对可视化应用诸如HMI的设计更改(例如,图形对象的添加、移除或重新定位)、工业设备配置参数值或其他这样的设计输入中的一个或更多个。
在示例场景中,开发者可以选择修改现有的系统项目302,以便使项目302适合于部署在自动化系统上,该自动化系统具有偏离典型安装的特性,并且需要对系统项目302进行修改。例如,系统项目302可以被设计成编程和配置一种被构建成执行特定工业功能并且安装在工业企业的多个位置或设施处的标准化自动化系统。这种自动化系统的新安装可以以多种方式偏离系统的标准安装,包括但不限于用替选供应商提供的设备替换自动化系统的一个或更多个设备、添加或省略工作站、安装修改以适应安装位置的物理约束、偏离标准要求的特殊控制要求(例如,产品设计的差异、控制修改以适应用来制造产品的材料或部件的差异)、或其他这样的偏差。为了适应这些改变,开发者可以下载系统项目302的本地版本3021,并对本地版本3021实现必要的修改。
图14是示出将自动化对象编辑传播至系统项目302的本地存储的副本的图。在该示例场景中,客户端设备504b处的用户已经下载了系统项目302的本地版本3021,如上面结合图13所描述的。包含自动化对象222的主版本的自动化对象库502保持与IDE系统202相关联地存储在云平台上。如此,任何授权的开发者可以访问对象库502,以不仅将所选自动化对象222添加至系统项目302,而且作为项目开发的一部分修改所选自动化对象222,或者反映对对象222所表示的相应工业资产的修改。在图14所示的示例中,客户端设备504a处的开发者提交针对存储在库502上的所选自动化对象222的编辑1102的集合(例如,更新对象的控制代码、可视化表示、测试脚本等)。响应于这些编辑1102的接收,项目生成组件206(图14中未示出)根据编辑1102更新存储在库502中的所选自动化对象222的主版本。
此外,当已经在所选自动化对象222上实现编辑时,项目生成组件206还识别已经合并所选自动化对象222的实例的任何系统项目302的所有本地存储和远程存储的版本。这包括识别与IDE系统202相关联地存储在云存储上的任何系统项目302,以及已经被下载至本地客户端设备(例如,客户端设备504b)以供本地开发的系统项目302的任何版本3021。在这点上,协作管理组件212可以跟踪已经下载至本地客户端设备的系统项目302的所有实例,使得项目302的这些本地版本可以响应于提交给基于云的IDE系统202的修改而根据需要更新。
响应于对象编辑1102的提交以及编辑1102所针对的自动化对象222的主版本的相应修改,项目生成组件206还将自动化对象更新1402分发至所有IDE客户端514b,在IDE客户端514b上存储了使用自动化对象222的系统项目302的本地版本3021。更新1402反映由开发者使用客户端设备504a提交的自动化对象编辑1102,并且当由本地IDE客户端514b执行时,根据编辑1102更新自动化对象222的所有实例。以这种方式,对对象库502上的自动化对象222的更新被自动广播到当前在系统项目302中使用的对象222的所有实例。
在一些实施方式中,可以向客户端设备504b处的本地开发者提供允许将更新1402合并到系统项目302的其本地版本3021中或者拒绝更新1402的实现的选项。因此,在更新自动化对象222的本地版本之前,用户接口组件204可以在用户的客户端设备504b上呈现关于对象编辑1102的信息,并且还可以呈现供开发者批准以本地实现编辑的提示。关于编辑1102的信息可以包括例如受编辑影响的自动化对象222的标识、以及将由编辑实现的对对象222的每个修改的概要(例如,将修改哪些对象属性的指示以及将如何改变这些属性)。基于对这些编辑的审查,本地开发者可以选择在其本地版本3021上实现更新1402,或者可替选地,拒绝编辑并防止在项目302的其本地版本3021上实现更新1402。
如上所述,系统项目302可以包括一个或更多个项目数据模型602,其定义自动化对象222的集合以及对象222之间的层次关系。在一些开发场景中,设计者可以通过选择将被包括在系统项目302中的自动化对象222(例如,基于构成将被监测和控制的自动化系统的物理工业资产)以及这些自动化对象222之间的关系或依赖关系来创建项目数据模型602,这可以反映自动化系统的相应工业资产之间的真实世界功能和/或物理关系。可替选地,在一些实施方式中,项目生成组件206可以基于由开发者提交的设计输入512(例如,设计目标、工程制图等)来自动选择和布置适当的自动化对象222以包括在系统项目302中。由于某些类型的自动化系统、机器或过程通常在不同的工业企业中使用,因此工业IDE系统202的一个或更多个实施方式还可以维护表示在工业设施处频繁使用的工业资产的集合和配置的预定义的项目数据模型602的库。
图15是示出从模型库1502中选择预定义项目数据模型602的图。在一些实施方式中,模型库1502可以被包括作为IDE系统的工业知识库的一部分,其中还存储有护栏模板506、代码模型508、可视化510等(参见图5)。存储在库1502中的预定义项目数据模型602可以表示构成一种类型的自动化系统、机器或过程的工业资产的类似集合;例如,一种类型的批工艺、一种类型的冲压机、水处理工艺、挤出工艺、码垛机、压铸工艺、输送机控制系统、送纸机、流量控制工艺、或其他这样的系统或工艺。表示一种类型的工业机器或过程的项目数据模型602定义了表示构成该机器或过程的工业资产(例如,罐、泵、阀、马达驱动器、输送机等)的自动化对象222的集合、以及这些对象222之间的层次或功能关系,其如上所述反映了它们的对应物理工业资产之间的物理或功能关系。
模型库1502可以根据任何适当的类别对预定义项目数据模型602进行分类,以帮助设计者定位和选择适当的数据模型602以包括在系统项目302中。例如,库1502可以根据工业或工业纵向市场的类型(例如,汽车、食品和药品、石油和天然气、药品、纺织品、采矿等)、工业资产的类型(例如,机器或工业设备的类型)、工业机器或过程的类型、或其他这样的类别对数据模型602进行分类。在一些实施方式中,用户接口组件204可以在客户端设备504上呈现可浏览接口,该可浏览接口允许开发者浏览模型分类方案并查看相应的不同模型分类或类别下的可用项目数据模型602,并提交选择一个或更多个可用数据模型602a的模型选择输入(设计输入512的一部分)以包括在系统项目302中。当从库中选择预定义项目数据模型602a以包括在系统项目302中时,项目生成组件206将所选数据模型602a和由所选模型602定义的任何自动化对象222两者集成到当前系统项目302中。
在一些实施方式中,作为手动选择数据模型602以包括在系统项目302中的替选方案,项目生成组件206可以基于从用户的设计输入512得出的推断来自动选择和推荐一个或更多个合适的数据模型602以包括在系统项目302中。例如,类似于以上描述的示例,项目生成组件206可以被配置成随时间流逝监测针对系统项目302提交的设计输入512,并且基于该监测,学习某些设计动作(例如,向系统项目302添加某些代码模块或代码段、选择某些可视化等)与正被设计的工业机器或过程的类型之间的相关性。项目生成组件206可以记录这些学习到的相关性并且在后续项目开发期间基于这些相关性生成推荐。例如,在项目开发期间,项目生成组件206可以基于用户的设计输入512推断用户正处于生成用于监测和控制特定类型的工业机器或过程的系统项目302的过程中。基于该推断,项目生成组件206可以生成并呈现将预定义数据模型602a及其相关联的自动化对象222集成到系统项目302中的推荐。
通常,项目生成组件206可以基于提供给IDE系统202的设计输入512来推断项目开发者的当前编程任务或设计目标,并基于该任务或目标来确定是否可以将预定义数据模型602a之一适当地添加至正被开发的系统项目302。例如,项目生成组件206可以基于对设计输入512的分析来推断程序员当前正在配置用于监测和控制片状金属冲压机的项目302。响应于该确定,以及模型库1502包括与类似类型的冲压机对应的数据模型602a的确定,项目生成组件206可以推荐将该数据模型602a以及由数据模型602a定义的任何自动化对象222一起集成到系统项目302中。该推荐可以由客户端设备504上的用户接口组件204来呈现。
集成到系统项目302中的任何预定义数据模型602a也可以在必要时由开发者修改或定制,以便捕获正被设计的物理自动化系统或过程与由数据模型602a定义的系统或过程配置之间的任何设计偏差。例如,用于给定类型的废水处理系统的预定义数据模型602a可以指定与在正被设计的实际系统中使用的泵不同类型的泵,或者可以指定构成该系统的工业资产的不同布置。在这样的情况下,开发者可以对数据模型602进行必要的修改;例如,通过编辑或替换由模型602定义的任何自动化对象222,或通过修改由模型602定义的对象222之间的任何关系。可替选地,在一些实施方式中,项目生成组件206可以推断并自动实现对所选数据模型602a的修改,以使模型602a与针对其设计项目302的物理系统一致。在示例场景中,这样的推断可以基于表示自动化系统或过程的项目数据模型602a与由开发者提交的作为设计输入512的一部分的工程制图之间的比较。在这种情况下,项目生成组件206可以基于对制图的分析来识别构成正被设计的系统的设备以及设备之间的物理或功能关系。
在一些实施方式中,授权实体可以将定制数据模型602提交给IDE系统202,以存储在模型库1502中并分发至最终用户。例如,OEM实体可以创建项目数据模型602和被设计成结合由OEM提供的定制机器来操作的任何相关联的自动化对象222。OEM可以将该数据模型602(以及在自动化对象库502中尚不可用的相关联的自动化对象222)提交给IDE系统202,IDE系统202将所提交的模型602存储在模型库1502中。作为模型提交过程的一部分,OEM可以指示所提交的模型602的分类,其指示IDE系统202应当如何在库1502中对该模型进行分类。这可以包括例如识别模型的相关工业纵向市场、机器或工业应用的类型、可以适当地应用模型602的场景等。OEM还可以对被允许将所提交的数据模型602合并到其系统项目302中的最终用户施加限制;例如,通过仅允许OEM的客户访问所提交的模型602。IDE系统202将基于这些安全定义来管理所提交的数据模型602的分发。
在一些实施方式中,用户还可以创建项目数据模型602作为其系统项目302的一部分,并且如果需要,将这些定制数据模型602存储到模型库1502。图16是示出定制数据模型602的创建和存储的图。如先前示例中所述,用户可以通过以各种格式(例如,设计目标、显式控制编程、工程制图、AR/VR交互等)向IDE系统202提交设计输入512来生成系统项目302。所产生的系统项目302可以包括各种自动化对象222,这些自动化对象222彼此之间具有如由项目开发者定义的功能关系。自动化对象222的选择及其功能关系可以反映构成针对其正在开发系统项目302的自动化系统或过程的工业资产的相应布置。这些定义的关系可以确定自动化对象222的属性如何彼此相关;例如,它们相关联的控制代码属性如何被联系以产生复合控制编程,它们的可视化属性如何被聚合以产生自动化系统或过程的复合呈现等。项目302中包括的自动化对象222的标识及其定义的关系共同定义了项目数据模型602。
在一些实施方式中,项目数据模型602的至少一部分可以由项目生成组件206基于对由开发者提交的作为设计输入512的一部分的工程制图的分析来自动生成。例如,基于对针对其正在开发系统项目302的工业系统的P&ID制图的分析,项目生成组件206可以识别工业资产(例如,罐、泵、马达驱动器、输送机等)以及制图中表示的工业资产之间的关系。工业资产也可以从其他类型的制图中识别,所述制图包括但不限于I/O制图、机械制图或其他类型的工程制图。然后,项目生成组件206可以将制图中识别的元素与表示这些所识别的资产的相应自动化对象222相关联或映射,并将这些自动化对象222添加至系统项目302。项目生成组件206还可以定义这些自动化对象之间的物理或功能关系,以反映如从工程制图确定的它们的相应资产之间的关系。
如果需要,开发者可以选择将得到的数据模型602保存到模型库1502,以供其他开发者使用,或集成到其他系统项目302中。为此,模型存档命令1602可以经由用户接口组件204被提交给系统202,模型存档命令1602指示项目生成组件206启动将开发者的项目数据模型602存档到模型库1502。在一些场景中,存档命令1602可以包括指示项目生成组件206应当如何在库1502中对数据模型602a的副本进行分类的分类信息。该分类信息可以指定在其下数据模型602a应被分类的一个或更多个类别或子类别(例如,其中使用数据模型602a的工业纵向市场、由数据模型602a表示的工业机器或过程的类型等)。存档命令1602还可以指定访问许可,其定义被允许在其系统项目302中检索和使用数据模型602a的用户、用户角色或实体。
本文中描述的预定义数据模型602定义了在许多工业企业和应用中普遍适用的自动化对象222的有意义的配置和布置。这些预定义数据模型602可以被分类并提供给最终用户以选择性地包括在其系统项目302中,从而减少开发时间并简化构建合适的系统项目302的过程。
图17和图18示出了根据本申请的一个或更多个实施方式的示例方法。尽管出于简化说明的目的,本文中示出的方法被示出和描述为一系列动作,但是应当理解和意识到,本发明不受限于动作的顺序,因为根据本发明,一些动作可以以与本文示出和描述的顺序不同的顺序发生以及/或者与其他动作同时发生。例如,本领域技术人员将理解并意识到,方法可以替选地被表示为诸如状态图中的一系列相互关联的状态或事件。此外,并非所有示出的动作都是实现根据本发明的方法所必须的。此外,当不同的实体制定方法的不同部分时,(一个或多个)交互图可以表示根据本公开内容的方法学或方法。此外,所公开的示例方法中的两个或更多个可以彼此组合地被实现,以实现本文描述的一个或更多个特征或优点。
图17示出了用于创建和存储项目数据模型的示例方法1700,该项目数据模型定义了表示工业机器或过程的自动化对象的布置,该项目数据模型可以被合并到工业系统项目中。最初,在1702处,经由与工业IDE系统的交互来接收工业设计数据。工业设计数据可以以以下中的一个或更多个的形式被提交:工业控制器编程(例如,梯形逻辑、顺序功能图、脚本控制代码例如工业DSL等)、HMI画面开发输入、工业设备或装备选择、工程制图输入等。在一些实施方式中,工业设计数据还可以包括完整的工程制图(例如,P&ID图、电气图、机械图等),可以由工业IDE对所述完整的工程制图进行解析和分析以识别工业自动化系统中正被设计的组件(例如,工业设备、机器、装备、导管、管道等)以及这些组件之间的功能和物理关系。
在一些实施方式中,设计数据还可以包括图像或视频。例如,可以将正被设计的工业自动化系统将被安装的安装地点的图像或视频提交给工业IDE,该工业IDE可以分析该图像或视频,以识别安装区域内的物理元素(例如,墙、梁、安全围栏、现有机器和设备等)以及这些元素之间的物理关系(例如,机器或其他物理元素之间的距离、管道铺设的长度、线束或线缆桥架的位置和距离等)。基于该制图或图像/视频分析的结果,工业IDE可以将组件添加至工程示意图中,针对在制图或图像中所识别的组件生成控制编程或可视化,生成适当的设备参数设置,生成关于设备或机器的最佳位置的推荐等。
对于支持基于目标的编程的工业IDE的实施方式,设计数据还可以包括期望的设计目标和相关联的设计约束的指示;例如,就所需的产品或材料输出速率、最大总能耗速率、对安装空间的约束(如上所述,其可以基于安装地点的图像或视频来获得)或其他这样的参数而言。基于这些设计目标和约束,工业IDE可以生成自动化系统项目的至少一部分,包括以下中的一个或更多个:能够鉴于指定约束满足指定设计目标的装备或设备选择、控制代码、制图、可视化或设备参数。
在1704处,基于在步骤1702处接收到的设计数据生成工业自动化系统项目。作为项目生成过程的一部分,生成项目数据模型,项目数据模型定义表示各个工业资产的自动化对象的实例以及自动化对象之间的功能关系。自动化对象是用于工业自动化系统项目的构建块并且表示各种类型的真实世界工业资产或过程,包括但不限于泵、罐、阀、马达、马达驱动器(例如变频驱动器)、工业机器人、执行器(例如,气动或液压执行器)、或其他这样的资产。自动化对象根据它们所表示的资产或过程与各种属性或特性(例如,控制代码、可视化对象或接口、测试脚本、安全特征或协议等)相关联。除了定义将被包括在系统项目中的自动化对象之外,数据模型还定义自动化对象之间的功能关系,该功能关系可以反映构成针对其正在开发系统项目的工业系统的类似工业资产之间的功能关系或物理关系。
在1706处,确定是否接收到将系统数据模型存档在模型库中以供其他开发者访问或集成在其他系统项目中的指令。如果接收到这样的指令(在步骤1706处为“是”),则方法进行至步骤1708,在1708处,项目数据模型的副本被存储在模型库中以选择性地集成到其他系统项目中。项目数据模型可以与根据层次分类模式分类的其他可用项目数据模型一起存储在库中。可以存储数据模型的示例分类类别可以包括但不限于:数据模型所涉及的工业纵向市场、工业机器或过程类型、工业应用、项目数据模型可能相关的场景、或其他这样的类别。
图18示出了用于基于对针对其正在开发项目的工业机器或过程的推断来选择性地将系统数据模型集成到工业系统项目中的示例方法1800。最初,在1802处,经由与工业IDE系统的交互来接收工业系统项目的工业设计数据(类似于方法1700的步骤1702)。在1804处,基于对在步骤1802处接收到的工业设计数据的分析,关于针对其正在设计工业系统项目的工业机器或过程作出推断。这种推断可以基于提交的设计数据的任何子集,包括但不限于提交给IDE系统的工程制图或材料清单、设计师提交的控制编程或其他这样的设计输入。
在1806处,确定预定义项目数据模型是否可用于在步骤1804处推断出的工业机器或过程。项目数据模型可以与表示一系列工业机器或过程的其他项目数据模型一起存储在模型库中。项目数据模型中的每一个定义自动化对象的集合及其对应的工业机器或过程以及自动化对象之间的功能关系。如果预定义项目数据模型可用于推断出的工业机器或资产(在步骤1806处为“是”),则方法进行至步骤1808,在1808处,项目数据模型集成到工业系统项目中。
本文描述的实施方式、系统和部件以及可以实现本说明书中阐述的各个方面的控制系统和自动化环境可以包括计算机或网络组件,例如能够跨网络进行交互的服务器、客户端、可编程逻辑控制器(PLC)、自动化控制器、通信模块、移动计算机、用于移动车辆的车载计算机、无线部件、控制部件等。计算机和服务器包括一个或更多个处理器(采用电信号执行逻辑运算的电子集成电路),所述一个或更多个处理器被配置成执行存储在诸如随机存取存储器(RAM)、只读存储器(ROM)、硬盘驱动器以及可移除存储器设备的介质中的指令,所述可移除存储器设备可以包括存储棒、存储卡、闪存驱动器、外部硬盘驱动器等。
类似地,本文使用的术语PLC或自动控制器可以包括可以跨多个部件、系统和/或网络被共享的功能。作为示例,一个或更多个PLC或自动化控制器可以与跨网络的各种网络设备进行通信和协作。这可以包括经由网络进行通信的基本上任何类型的控制器、通信模块、计算机、输入/输出(I/O)设备、传感器、致动器和人机接口(HMI),所述网络包括控制网络、自动化网络和/或公共网络。PLC或自动化控制器还可以与各种其他设备进行通信并对各种其他设备进行控制,所述各种其他设备例如是包括模拟模块、数字模块、经编程模块/智能I/O模块的标准或安全等级的I/O模块、其他可编程控制器、通信模块、传感器、致动器、输出设备等。
网络可以包括诸如因特网的公共网络例、内联网和诸如控制和信息协议(CIP)网络的自动化网络,所述控制和信息协议(CIP)网络包括DeviceNet、ControlNet、安全网络和以太网/IP。其他网络包括以太网、DH/DH+、远程I/O、现场总线、Modbus、Profibus、CAN、无线网络、串行协议等。此外,网络设备可以包括各种可能性(硬件部件和/或软件组件)。这些包括诸如具有虚拟局域网(VLAN)能力的交换机、LAN、WAN、代理、网关、路由器、防火墙、虚拟专用网(VPN)设备、服务器、客户端、计算机、配置工具、监测工具和/或其他设备的组件。
为了提供所公开的主题的各个方面的上下文,图19和图20以及以下讨论旨在提供对可以实现所公开的主题的各个方面的合适环境的简要、概括的描述。尽管上面已经在可以运行在一个或更多个计算机上的计算机可执行指令的总体背景下描述了各个实施方式,但是本领域技术人员将认识到,各个实施方式也可以结合其他程序模块被实现以及/或者被实现为硬件和软件的组合。
通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构等。此外,本领域技术人员将理解的是,本发明的方法可以用其他计算机系统配置来实践,所述其他计算机系统配置包括单处理器或多处理器计算机系统、小型计算机、大型计算机、物联网(IoT)设备、分布式计算系统以及个人计算机、手持式计算设备、基于微处理器的或可编程消费电子产品等,其中的每一个都可以可操作地耦接至一个或更多个相关联的设备。
在本文中所示出的实施方式也可以在分布式计算环境中被实践,在分布式计算环境中,某些任务由通过通信网络而链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地存储器存储设备和远程存储器存储设备二者中。
计算设备通常包括各种介质,所述各种介质可以包括计算机可读存储介质、机器可读存储介质和/或通信介质,这两个术语在本文中如下彼此不同地被使用。计算机可读存储介质或机器可读存储介质可以是可以由计算机访问的任何可用存储介质,并且包括易失性介质和非易失性介质二者、可移除介质和不可移除介质二者。作为示例而非限制,计算机可读存储介质或机器可读存储介质可以结合用于存储诸如计算机可读或机器可读指令、程序模块、结构化数据或非结构化数据的信息的任何方法或技术被实现。
计算机可读存储介质可以包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、致密盘只读存储器(CD-ROM)、数字多功能盘(DVD)、蓝光盘(BD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、固态驱动器或其他固态存储设备、或者可以被用于存储期望信息的其他有形和/或非暂态介质。就这一点而言,在本文中如被应用于存储装置、存储器或计算机可读介质的术语“有形”或“非暂态”应该被理解为仅排除传播暂态信号本身作为修饰语,并且不放弃对不仅仅传播暂态信号本身的所有标准的存储装置、存储器或计算机可读介质的权利。
计算机可读存储介质可以由一个或更多个本地计算设备或远程计算设备例如经由访问请求、查询或其他数据检索协议被访问,以针对通过介质存储的信息进行各种操作。
通信介质通常以数据信号例如经调制的数据信号例如载波或其他传输机制来体现计算机可读指令、数据结构、程序模块或其他结构化或非结构化的数据,并且包括任何信息传递或传输介质。术语“经调制的数据信号”或信号是指以在一个或更多个信号中对信息进行编码的方式设置或改变其特性中的一个或更多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质和诸如声学、RF、红外的无线介质和其他无线介质。
再次参照图19,用于实现本文描述的各方面的各个实施方式的示例环境1900包括计算机1902,计算机1902包括处理单元1904、系统存储器1906和系统总线1908。系统总线1908将包括但不限于系统存储器1906的系统部件耦接至处理单元1904。处理单元1904可以是各种可商购处理器中的任何处理器。也可以采用双微处理器和其他多处理器架构作为处理单元1904。
系统总线1908可以是若干类型的总线结构中的任何总线结构,所述总线结构还可以使用各种可商购的总线架构中的任何总线架构来互连至存储器总线(带有存储器控制器或不带有存储器控制器)、外围总线和局部总线。系统存储器1906包括ROM 1910和RAM1912。基本输入/输出系统(BIOS)可以被存储在诸如ROM、可擦除可编程只读存储器(EPROM)、EEPROM的非易失性存储器中,其中该BIOS包含有助于例如在启动期间在计算机1902内的元素之间传递信息的基本例程。RAM1912还可以包括诸如用于对数据进行缓存的静态RAM的高速RAM。
计算机1902还包括内部硬盘驱动器(HDD)1914(例如,EIDE、SATA)、一个或更多个外部存储设备1916(例如,磁性软盘驱动器(FDD)1916、存储棒或闪存驱动器读取器、存储卡读取器等)以及光盘驱动器1920(例如,其可以从CD-ROM盘、DVD、BD等读取或者向CD-ROM盘、DVD、BD等写入)。虽然内部HDD 1914被示出为位于计算机1902内,但是内部HDD 1914还可以被配置成在合适的机架(未示出)中供外部使用。另外,虽然在环境1900中未示出,但是除了HDD 1914以外还可以使用固态驱动器(SSD),或者用固态驱动器(SSD)代替HDD 1914。HDD1914、(一个或多个)外部存储设备1916和光盘驱动器1920可以分别通过HDD接口1924、外部存储接口1926和光学驱动器接口1928连接至系统总线1908。用于外部驱动器实现的接口1924可以包括通用串行总线(USB)和电气与电子工程师协会(IEEE)1394接口技术中的至少一个或两者。其他外部驱动器连接技术在本文描述的实施方式的考虑内。
驱动器及其相关联的计算机可读存储介质提供数据、数据结构、计算机可执行指令等的非易失性存储。对于计算机1902,驱动器和存储介质以合适的数字格式适应任何数据的存储。尽管以上对计算机可读存储介质的描述涉及相应类型的存储设备,但本领域技术人员应当理解的是,也可以在示例操作环境中使用计算机可读的其他类型的存储介质,无论所述存储介质是当前存在的还是将来要开发的,并且此外,任何这样的存储介质都可以包含用于执行本文所描述的方法的计算机可执行指令。
多个程序模块可以被存储在驱动器和RAM 1912中,所述多个程序模块包括操作系统1930、一个或更多个应用程序1932、其他程序模块1934和程序数据1936。操作系统、应用、模块和/或数据中的全部或部分也可以被缓存在RAM 1912中。本文描述的系统和方法可以利用各种可商购的操作系统或操作系统的组合被实现。
计算机1902可以可选地包括仿真技术。例如,管理程序(未示出)或其他中介可以仿真用于操作系统1930的硬件环境,并且仿真的硬件可以可选地与图19中示出的硬件不同。在这样的实施方式中,操作系统1930可以包括在计算机1902处托管的多个虚拟机(VM)中的一个VM。此外,操作系统1930可以为应用程序1932提供运行时环境,例如Java运行时环境或.NET框架。运行时环境是使得应用程序1932能够在包括该运行时环境的任何操作系统上运行的一致执行环境。类似地,操作系统1930可以支持容器,并且应用程序1932可以是容器的形式,所述容器是包括例如代码、运行时间、系统工具、系统库和关于应用的设置的轻量级、独立的、可执行的软件包。
此外,可以用安全模块例如可信处理模块(TPM)来启用计算机1902。例如,关于TPM,引导组件对时间上紧接的引导组件进行哈希处理,并且在加载下一个引导组件之前等待结果与安全值的匹配。该过程可以发生在计算机1902的代码执行栈中的任何层处,例如,被应用在应用执行级别处或操作系统(OS)内核级别处,从而使实现在任何代码执行级别处的安全性。
用户可以通过一个或更多个有线/无线输入设备例如键盘1938、触摸屏1940以及诸如鼠标1942的定点设备将命令和信息输入至计算机1902中。其他输入设备(未示出)可以包括麦克风、红外(IR)遥控器、射频(RF)遥控器、或其他遥控器、操纵杆、虚拟现实控制器和/或虚拟现实头戴式耳机、游戏垫、触摸笔、图像输入设备(例如,(一个或多个)摄像机)、姿势传感器输入设备、视觉移动传感器输入设备、情绪或面部检测设备、生物识别输入设备(例如,指纹或虹膜扫描仪)等。这些输入设备和其他输入设备通常通过可以耦接至系统总线1908的输入设备接口1944连接至处理单元1904,但也可以通过其他接口例如并行端口、IEEE1394串行端口、游戏端口、USB端口、IR接口、
Figure BDA0003551433050000391
接口等进行连接。
监视器1944或其他类型的显示设备也可以经由诸如视频适配器1946的对接至系统总线1908。除了监视器1944以外,计算机通常包括其他外围输出设备(未示出),例如扬声器、打印机等。
计算机1902可以使用经由至诸如(一个或多个)远程计算机1948的一个或更多个远程计算机的有线和/或无线通信的逻辑连接在联网环境中进行操作。(一个或多个)远程计算机1948可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐装置、对等设备或其他通用网络节点,并且通常包括关于计算机1902所描述的许多或所有元件,尽管为了简明起见仅示出了存储器/存储设备1950。所描绘的逻辑连接包括至局域网(LAN)1952和/或更大的网络例如广域网(WAN)1954的有线/无线连接。这样的LAN和WAN联网环境在办公室和公司中是常见的,并且促进了诸如内联网的企业范围的计算机网络,所有这些都可以连接至全球通信网络例如因特网。
当在LAN联网环境中被使用时,计算机1902可以通过有线和/或无线通信网络接口或适配器1956连接至局域网1952。适配器1956可以促进至LAN 1952的有线或无线通信,LAN1952还可以包括布置在其上的无线接入点(AP),以用于在无线模式下与适配器1956进行通信。
当在WAN联网环境中被使用时,计算机1902可以包括调制解调器1958,或者可以经由用于通过WAN 1954建立通信的其他手段例如通过因特网来连接至WAN 1954上的通信服务器。可以是内部的或外部的并且可以是有线设备或无线设备的调制解调器1958可以经由输入设备接口1942连接至系统总线1908。在联网环境中,关于计算机1902或其部分描述的程序模块可以被存储在远程存储器/存储设备1950中。应当理解的是,所示的网络连接是示例,并且在计算机之间建立通信链路的其他手段可以被使用。
当在LAN或WAN联网环境中被使用时,除了如上所述的外部存储设备1916之外,计算机1902还可以访问云存储系统或其他基于网络的存储系统,或者代替如上所述的外部存储设备1916,计算机1902可以访问云存储系统或其他基于网络的存储系统。通常,可以例如分别通过适配器1956或调制解调器1958通过LAN 1952或WAN 1954来建立计算机1902和云存储系统之间的连接。在将计算机1902连接至相关联的云存储系统时,外部存储接口1926可以在适配器1956和/或调制解调器1958的帮助下,如管理其他类型的外部存储一样来管理由云存储系统提供的存储。例如,外部存储接口1926可以被配置成提供对云存储源的访问,就好像这些源被物理地连接至计算机1902一样。
计算机1902能够进行操作以与可操作地布置在无线通信中的任何无线设备或实体进行通信,所述任何无线设备或实体例如是打印机、扫描仪、台式计算机和/或便携式计算机、便携式数据助理、通信卫星、与以无线方式可检测的标签相关联的任何装备或位置(例如,亭、报摊、商店货架等)以及电话。这可以包括无线保真(Wi-Fi)和
Figure BDA0003551433050000401
无线技术。因此,通信可以是如常规网络的预定义结构或者仅仅是至少两个设备之间的自组织通信(ad hoc communication)。
图20是所公开的主题可以与之进行交互的样本计算环境2000的示意性框图。样本计算环境2000包括一个或更多个客户端2002。客户端2002可以是硬件和/或软件(例如,线程、进程、计算设备)。样本计算环境2000还包括一个或更多个服务器2004。服务器2004也可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器2004可以容纳线程,以通过采用例如本文所述的一个或更多个实施方式来执行变换。客户端2002与服务器2004之间的一种可能的通信可以是适于在两个或更多个计算机进程之间被传输的数据包的形式。样本计算环境2000包括可以被用于促进客户端2002与服务器2004之间的通信的通信框架2006。客户端2002可操作地连接至可以被用于存储客户端2002的本地信息的一个或更多个客户端数据存储装置2008。类似地,服务器2004可操作地连接至可以被用于存储服务器2004的本地信息的一个或更多个服务器数据存储装置2010。
以上所描述的内容包括本发明的示例。当然,不可能为了描述所公开的主题而描述每个可设想到的部件或方法的组合,但是本领域普通技术人员可以认识到,本发明的许多另外的组合和排列是可能的。因此,所公开的主题旨在涵盖落入所附权利要求书的精神和范围内的所有这样的改变、修改和变型。
尤其是关于由上面描述的部件、设备、电路、系统等执行的各种功能,除非另外指出,否则用于描述这样的部件的术语(包括对“手段”的提及)旨在对应于执行所描述的部件的指定功能的任何部件(例如,功能上等同的任何部件),即使在结构上不等同于所公开的结构,该部件执行本文示出的所公开主题的示例性方面中的功能。就这一点而言,还应当认识到,所公开的主题包括系统以及具有用于执行所公开的主题的各种方法的动作和/或事件的计算机可执行指令的计算机可读介质。
此外,虽然可能仅针对若干实现中的一个实现公开了所公开的主题的特定特征,但是这样的特征可以与其他实现的一个或更多个其他特征进行组合,这对于任何给定应用或特定应用而言可能是期望且有利的。此外,就在说明书或权利要求书中使用术语“包括(includes)”和“包括(including)”及其变型而言,这些术语旨在以类似于术语“构成”的方式包括在内。
在本申请中,词语“示例性”被用来表示用作示例、实例或说明。在本文中被描述为“示例性”的任何方面或设计不一定被解释为比其他方面或设计优选或有利。更确切地,词语“示例性”的使用旨在以具体方式呈现概念。
可以使用标准编程和/或工程技术将本文描述的各个方面或特征实现为方法、装置或制品。如本文所使用的术语“制品”旨在涵盖能够从任何计算机可读设备、载体或介质访问的计算机程序。例如,计算机可读介质可以包括但不限于:磁存储设备(例如,硬盘、软盘、磁条……)、光盘[例如,致密盘(CD)、数字多功能盘(DVD)……]、智能卡和闪存设备(例如,卡、棒、密钥驱动器……)。

Claims (20)

1.一种用于开发工业应用的系统,包括:
存储器,所述存储器存储可执行组件和表示相应工业资产的自动化对象的库,所述自动化对象具有与所述工业资产相关联的相应编程属性;以及
处理器,所述处理器可操作地耦接至所述存储器,所述处理器执行所述可执行组件,所述可执行组件包括:
用户接口组件,其被配置成:呈现集成开发环境IDE接口,并且经由与所述IDE接口的交互来接收对工业自动化项目的各方面进行定义的工业设计输入;以及
项目生成组件,所述项目生成组件被配置成:基于所述工业设计输入来生成系统项目数据,
其中,
所述系统项目数据对系统项目进行定义,所述系统项目包括可执行工业控制程序、工业可视化应用或工业设备配置数据中的至少一个,以及
所述系统项目数据包括与工业机器或过程对应的项目数据模型,所述项目数据模型定义与构成所述工业机器或过程的工业资产对应的自动化对象的子集以及所述自动化对象的子集之间的功能关系。
2.根据权利要求1所述的系统,其中,
所述存储器还存储模型库,所述模型库存储与相应自动化系统或过程对应的项目数据模型,以及
所述项目生成组件被配置成:响应于通过所述工业设计输入对所述项目数据模型之一的选择,将所述项目数据模型之一集成到所述系统项目数据中作为所述项目数据模型。
3.根据权利要求2所述的系统,其中,
基于对所述项目数据模型进行定义的工业设计输入的子集来生成所述项目数据模型,以及
所述项目生成组件还被配置成:响应于接收到对所述项目数据模型进行存档的指令,将所述项目数据模型的副本存储在所述模型库中。
4.根据权利要求2所述的系统,其中,
所述模型库根据分类模式对所述项目数据模型进行分类,以及
所述分类模式的分类类别包括工业纵向市场、工业机器、工业过程或工业应用中的至少一个。
5.根据权利要求1所述的系统,其中,所述项目生成组件被配置成:基于对所述工业设计输入的分析来推断针对其正在开发所述系统项目的工业机器或过程,并且基于所述推断和所述项目数据模型对应于所述工业机器或过程的确定来生成将所述项目数据模型添加至所述系统项目的推荐。
6.根据权利要求1所述的系统,其中,所述自动化对象中的自动化对象的编程属性包括以下中的至少一个:用于监测和控制由所述自动化对象表示的工业资产的控制代码、对所述工业资产的图形可视化进行定义的可视化对象、所述工业资产的警报定义、所述工业资产的安全特征、所述工业资产的安全协议、被配置成验证所述系统项目内的自动化对象的操作的测试脚本、或者被配置成对由所述工业资产生成的数据执行分析的分析脚本。
7.根据权利要求1所述的系统,其中,
所述项目数据模型对所述自动化对象的子集中的第一自动化对象的实例与所述自动化对象的子集中的第二自动化对象的实例之间的层次关系进行定义,以及
所述项目生成组件被配置成:基于所述第一自动化对象的第一编程属性、所述第二自动化对象的第二编程属性以及所述层次关系来生成所述可执行工业控制程序、所述工业可视化应用或所述工业设备配置数据中的至少一个。
8.根据权利要求7所述的系统,其中,所述项目生成组件被配置成:根据由所述项目数据模型定义的层次关系,使第一控制逻辑的第一数据标签与第二控制逻辑的第二数据标签相联系。
9.根据权利要求1所述的系统,其中,所述自动化对象将工业过程、控制器、控制程序、所述控制程序内的标签、机器、马达、马达驱动器、遥测设备、罐、阀、泵、工业安全设备、工业机器人或致动器中的至少一个表示为所述工业资产。
10.一种用于开发工业应用的方法,包括:
由包括处理器的系统在客户端设备上呈现集成开发环境IDE接口;
由所述系统经由与所述IDE接口的交互来接收对工业控制和监测项目的各方面进行定义的工业设计输入;以及
由所述系统基于所述工业设计输入来生成系统项目数据,所述系统项目数据包括可执行工业控制程序、工业可视化应用或工业设备配置数据中的至少一个,
其中,
所述系统项目数据包括与工业机器或过程对应的项目数据模型,
所述项目数据模型定义表示构成所述工业机器或过程的工业资产的自动化对象的集合以及所述自动化对象的集合之间的功能关系,以及
所述自动化对象的集合中的自动化对象具有与所述自动化对象对应的工业资产相关联的编程属性。
11.根据权利要求10所述的方法,还包括:
由所述系统将可用项目数据模型存储在模型库中,所述可用项目数据模型表示相应的自动化系统或过程;以及
由所述系统响应于接收到选择所述可用项目数据模型之一以包括在所述系统项目数据中的输入作为所述工业设计输入的一部分,而将所述可用项目数据模型之一集成到所述系统项目数据中作为所述项目数据模型。
12.根据权利要求11所述的方法,还包括:
由所述系统基于所述工业设计输入的子集来生成所述项目数据模型,以及
由所述系统响应于接收到对所述项目数据模型进行存档的指令,而将所述项目数据模型的副本存储在所述模型库中。
13.根据权利要求11所述的方法,其中,对所述项目数据模型进行存档包括:根据分类模式对所述项目数据模型进行分类,并且所述分类模式的分类类别包括以下中的至少一个:工业纵向市场、工业机器、工业过程或工业应用。
14.根据权利要求10所述的方法,还包括:
由所述系统基于对所述工业设计输入的分析,推断针对其正在开发所述工业控制和监测项目的工业机器或过程;以及
由所述系统响应于所述推断和所述项目数据模型对应于所述工业机器或过程的确定,而生成将所述项目数据模型添加至所述系统项目数据的推荐。
15.根据权利要求10所述的方法,其中,所述自动化对象的集合中的自动化对象的编程属性包括以下中的至少一个:用于监测和控制由所述自动化对象表示的工业资产的控制代码、对所述工业资产的图形可视化进行定义的可视化对象、所述工业资产的警报定义、所述工业资产的安全特征、所述工业资产的安全协议、被配置成验证所述系统项目数据内的自动化对象的操作的测试脚本、或者被配置成对由所述工业资产生成的数据执行分析的分析脚本。
16.根据权利要求10所述的方法,其中,
所述项目数据模型对所述自动化对象的集合中的第一自动化对象的实例与所述自动化对象的集合中的第二自动化对象的实例之间的层次关系进行定义,以及
所述方法还包括:基于所述第一自动化对象的第一编程属性、所述第二自动化对象的第二编程属性以及所述层次关系来生成所述可执行工业控制程序、所述工业可视化应用或所述工业设备配置数据中的至少一个。
17.根据权利要求16所述的方法,其中,生成所述系统项目数据包括:根据由所述项目数据模型定义的层次关系,使所述第一控制代码的第一数据标签与所述第二控制代码的第二数据标签相联系。
18.根据权利要求1所述的方法,其中,所述自动化对象的集合将工业过程、控制器、控制程序、所述控制程序内的标签、机器、马达、马达驱动器、遥测设备、罐、阀、泵、工业安全设备、工业机器人或致动器中的至少一个表示为所述工业资产。
19.一种非暂态计算机可读介质,所述非暂态计算机可读介质上存储有指令,所述指令响应于执行而使包括处理器的系统执行操作,所述操作包括:
在客户端设备上呈现集成开发环境IDE接口;
经由与所述IDE接口的交互从所述客户端设备接收对工业自动化项目的控制设计方面进行定义的工业设计输入;以及
基于所述工业设计输入来生成系统项目数据,
其中,
所述生成包括:生成可执行工业控制程序、工业可视化应用或工业设备配置数据中的至少一个,
所述系统项目数据包括项目数据模型,所述项目数据模型根据自动化对象的集合和所述自动化对象的集合之间的功能关系来表示工业机器或过程,所述自动化对象的集合表示构成所述工业机器或过程的工业资产,以及
所述自动化对象的集合中的自动化对象具有与所述自动化对象对应的工业资产相关联的编程属性。
20.根据权利要求19所述的非暂态计算机可读介质,其中,所述生成包括:基于所述工业设计输入,从模型库中分类的项目数据模型的库中选择所述项目数据模型。
CN202210263068.3A 2021-03-17 2022-03-17 系统模型智能对象配置 Pending CN115113851A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/204,156 2021-03-17
US17/204,156 US11586186B2 (en) 2021-03-17 2021-03-17 System model smart object configuration

Publications (1)

Publication Number Publication Date
CN115113851A true CN115113851A (zh) 2022-09-27

Family

ID=80780862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210263068.3A Pending CN115113851A (zh) 2021-03-17 2022-03-17 系统模型智能对象配置

Country Status (3)

Country Link
US (2) US11586186B2 (zh)
EP (1) EP4060478A1 (zh)
CN (1) CN115113851A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4345551A1 (en) * 2022-09-29 2024-04-03 Siemens Aktiengesellschaft System and method for programming and controlling of a modular industrial automation arrangement

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088693A (en) 1996-12-06 2000-07-11 International Business Machines Corporation Data management system for file and database management
US6170081B1 (en) * 1998-09-17 2001-01-02 Unisys Coporation Method and system for interfacing to a variety of software development tools
US6947798B2 (en) 1999-09-24 2005-09-20 Rockwell Software Inc. System and method for developing software programs by way of multiple applications and users
US7966286B2 (en) 2005-02-14 2011-06-21 Microsoft Corporation Hierarchical management of object schema and behavior
US7548789B2 (en) 2005-09-29 2009-06-16 Rockwell Automation Technologies, Inc. Editing lifecycle and deployment of objects in an industrial automation environment
JP4588726B2 (ja) * 2007-02-08 2010-12-01 クリーン・テクノロジー株式会社 排ガス処理装置
US7930639B2 (en) 2007-09-26 2011-04-19 Rockwell Automation Technologies, Inc. Contextualization for historians in industrial systems
US10943692B1 (en) * 2008-05-07 2021-03-09 Lawrence A. Lynn System and method for generating quaternary images of biologic force propagation and recovery
US20090293005A1 (en) 2008-05-20 2009-11-26 Electronic Data Systems Corporation System and method for user interface design generator for data management applications
US8473854B2 (en) 2008-08-19 2013-06-25 Rockwell Automation Technologies, Inc. Visualization profiles and templates for auto-configuration of industrial automation systems
US8352905B2 (en) * 2008-09-30 2013-01-08 Rockwell Automation Technologies, Inc. Application builder for industrial automation
US20100082133A1 (en) 2008-09-30 2010-04-01 Ics Triplex Isagraf Inc. Application builder for industrial automation
EP2177986A1 (en) 2008-09-30 2010-04-21 ICS Triplex ISaGRAF Inc. Application builder for industrial automation
US9501208B2 (en) 2012-10-08 2016-11-22 Fisher-Rosemount Systems, Inc. Method and apparatus for managing process control configuration
US8887134B2 (en) * 2012-11-06 2014-11-11 Rockwell Automation Technologies, Inc. Customized object design for industrial automation application
EP2772841B1 (de) * 2013-02-27 2018-10-17 Siemens Aktiengesellschaft Verfahren und Programm-Editor für das Erstellen und Bearbeiten eines Programms für eine industrielle Automatisierungsanordnung
US9489832B2 (en) 2014-04-04 2016-11-08 Rockwell Automation Technologies, Inc. Industrial-enabled mobile device
US10372107B2 (en) 2014-10-15 2019-08-06 Rockwell Automation Technologies, Inc. Custom properties in an application environment
US11243505B2 (en) * 2015-03-16 2022-02-08 Rockwell Automation Technologies, Inc. Cloud-based analytics for industrial automation
US10156842B2 (en) 2015-12-31 2018-12-18 General Electric Company Device enrollment in a cloud service using an authenticated application
US10275265B1 (en) 2017-09-21 2019-04-30 Inductive Automation, LLC Graphical user interface for editing components in graphical user interfaces for industrial control systems
US11144042B2 (en) 2018-07-09 2021-10-12 Rockwell Automation Technologies, Inc. Industrial automation information contextualization method and system
US11119463B2 (en) 2018-09-27 2021-09-14 Rockwell Automation Technologies, Inc. Automation objects for integrated design environments
US11403541B2 (en) 2019-02-14 2022-08-02 Rockwell Automation Technologies, Inc. AI extensions and intelligent model validation for an industrial digital twin
US11048483B2 (en) 2019-09-24 2021-06-29 Rockwell Automation Technologies, Inc. Industrial programming development with an extensible integrated development environment (IDE) platform
US10942710B1 (en) 2019-09-24 2021-03-09 Rockwell Automation Technologies, Inc. Industrial automation domain-specific language programming paradigm
US11080176B2 (en) 2019-09-26 2021-08-03 Rockwell Automation Technologies, Inc. Testing framework for automation objects
US11574219B2 (en) 2019-09-27 2023-02-07 Rockwell Automation Technologies, Inc. System and method for industrial automation rules engine
US11294360B2 (en) * 2020-09-09 2022-04-05 Rockwell Automation Technologies, Inc. Industrial automation project code development guidance and analysis
US11429351B2 (en) * 2021-01-21 2022-08-30 Intuit Inc. Methods and systems for building custom automation workflows to integrate multiple applications
US11314493B1 (en) * 2021-02-19 2022-04-26 Rockwell Automation Technologies, Inc. Industrial automation smart object inheritance

Also Published As

Publication number Publication date
US11586186B2 (en) 2023-02-21
US20230152790A1 (en) 2023-05-18
US20220299982A1 (en) 2022-09-22
EP4060478A1 (en) 2022-09-21

Similar Documents

Publication Publication Date Title
CN112631555B (zh) 用于开发工业应用的系统和方法
CN112631210B (zh) 用于开发工业控制程序的系统、编程方法及计算机介质
US11481313B2 (en) Testing framework for automation objects
CN112558929B (zh) 用于开发或创建工业应用的系统和方法及计算机可读介质
US11681512B2 (en) Industrial automation smart object inheritance
CN115113914A (zh) 具有里程碑回滚的工业自动化分布式项目控制
US20230152790A1 (en) System model smart object configuration
EP4137937A1 (en) Industrial automation project library cross sharing
EP4060479A1 (en) Notifications from an industrial automation development environment
CN114791824A (zh) 工业自动化多开发者控制代码同步
US11835941B2 (en) Industrial automation smart object parent/child data collection propagation
EP4057086A1 (en) Industrial automation smart object inheritance break and singleton creation
US20240103851A1 (en) Presentation design to automation device binding
US20240103852A1 (en) Presentation design dynamic generation from data model server
US20240103850A1 (en) Presentation design to background service binding
US20230418568A1 (en) System and method for device profile creation in an integrated development environment
US20240019850A1 (en) Extensible profiles for industrial control modules
CN115857379A (zh) 工业自动化项目设计遥测

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