CN115079644A - 用于开发工业应用的系统、方法和计算机可读介质 - Google Patents

用于开发工业应用的系统、方法和计算机可读介质 Download PDF

Info

Publication number
CN115079644A
CN115079644A CN202210227749.4A CN202210227749A CN115079644A CN 115079644 A CN115079644 A CN 115079644A CN 202210227749 A CN202210227749 A CN 202210227749A CN 115079644 A CN115079644 A CN 115079644A
Authority
CN
China
Prior art keywords
automation
industrial
instance
project
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
CN202210227749.4A
Other languages
English (en)
Inventor
安德鲁·R·斯顿普
安东尼·卡拉拉
埃什沃·斯里尼瓦桑
斯尔詹·约西波维奇
洛伦佐·马耶夫斯基
克里斯托弗·韦恩·科莫
克里斯托弗·施塔内克
马修·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 CN115079644A publication Critical patent/CN115079644A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/101Collaborative creation, e.g. joint development of products or services
    • 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/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/4188Total 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 CIM planning or realisation
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06313Resource planning in a project environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • 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/23008Computer aided software engineering, program generation, case tools, CASE
    • 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/31From computer integrated manufacturing till monitoring
    • G05B2219/31088Network communication between supervisor and cell, machine group
    • 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/32128Gui graphical user interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Abstract

提供了用于开发工业应用的系统、方法和计算机可读介质。工业集成开发环境(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是将自动化对象结合到项目模型中的示例系统项目的表示。
图16a是用于将对自动化对象的编辑传播至在一个或更多个系统项目中使用的对象的实例的示例方法的第一部分的流程图。
图16b是用于将对自动化对象的编辑传播至在一个或更多个系统项目中使用的对象的实例的示例方法的第二部分的流程图。
图17是用于创建自动化对象的单例实例并将该单例实例用作新的自动化对象的基础的示例方法的流程图。
图18是示例计算环境。
图19是示例联网环境。
具体实施方式
现在参照附图描述本公开内容,在附图中相似的附图标记始终用于指代相似的元素。在以下描述中,出于说明的目的,阐述了许多具体细节以提供对本公开内容的透彻理解。然而显然,可以在没有这些具体细节的情况下实践本公开内容。在其他实例中,以框图形式示出了公知的结构和设备以便于对其进行描述。
如本申请中所使用的,术语“组件”、“系统”、“平台”、“层”、“控制器”、“终端”、“站”、“节点”、“接口”旨在指代计算机相关的实体或者与具有一个或更多个特定功能的操作装置相关的实体或者作为该操作装置的一部分的实体,其中这样的实体可以是硬件、硬件与软件的组合、软件或者执行中的软件。例如,组件可以是但不限于是在处理器上运行的进程、处理器、硬盘驱动器、包括固定的(例如,用螺钉或螺栓固定的)或可移除的固定固态存储驱动器的(光学存储介质或磁存储介质的)多个存储驱动器;对象;可执行文件;执行的线程;计算机可执行程序和/或计算机。作为说明,服务器和在服务器上运行的应用都可以是组件。一个或更多个组件可以驻留在执行的进程和/或线程内,并且组件可以位于一个计算机上和/或分布在两个或更多个计算机之间。此外,本文所描述的组件可以从存储有各种数据结构的各种计算机可读存储介质执行。这些组件可以例如根据具有一个或更多个数据包的信号(例如,来自与本地系统、分布式系统中的另一组件进行交互和/或通过诸如因特网的网络经由信号与其他系统进行交互的一个组件的数据)经由本地和/或远程进程进行通信。作为另一示例,组件可以是具有由被电气或电子电路操作的机械部件提供的特定功能的装置,该电气或电子电路通过处理器执行的软件或固件应用来操作,其中处理器可以在该装置的内部或外部并且执行软件或固件应用的至少一部分。作为另一示例,组件可以是通过电子组件而不是机械部件来提供特定功能的装置,电子组件可以包括处理器以执行至少部分地提供电子组件的功能的软件或固件。作为又一示例,接口可以包括输入/输出(I/O)组件以及相关联的处理器、应用或应用编程接口(API)组件。虽然前述示例针对组件的方面,但是所例示的方面或特征也应用于系统、平台、接口、层、控制器、终端等。
如本文所使用的,术语“推断(infer)”和“推断(inference)”通常涉及根据经由事件和/或数据捕获的观察结果的集合来推理或推断系统、环境和/或用户的状态的过程。例如,推断可以被应用于识别特定的情境或动作,或者可以生成状态的概率分布。推断可以是概率性的,即,基于对数据和事件的考虑来计算感兴趣的状态的概率分布。推断也可以涉及用于根据事件和/或数据的集合来编制(compose)更高级别事件的技术。这样的推断致使根据观察到的事件和/或存储的事件数据的集合构造新的事件或动作,而不管事件是否在时间接近度上紧密相关,以及事件和数据是否来自一个或若干个事件和数据源。
此外,术语“或”旨在意指包含性的“或”而不是排他性的“或”。也就是说,除非另有说明,或者根据上下文清楚得知,否则短语“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使得工厂人员能够查看与自动化系统相关联的遥测数据和状态数据并且能够对系统操作的一些方面进行控制。HMI 114可以通过工厂网络116与工业控制器118中的一个或更多个进行通信,并且与工业控制器交换数据以便于在一个或更多个预先开发的操作者接口屏幕上对与受控工业过程有关的信息进行可视化。HMI 114还可以被配置成使得操作者能够将数据提交至工业控制器118的指定数据标签或存储器地址,从而提供供操作者向受控系统发出命令(例如,循环启动命令、设备致动命令等)、修改设定点值等的手段。HMI 114可以生成一个或更多个显示屏幕,操作者通过所述显示屏幕与工业控制器118进行交互,并且从而与受控过程和/或系统进行交互。示例显示屏幕可以使用显示计量值或计算值的过程的图形化表示来可视化工业系统或其相关联的设备的当前状态,采用基于状态的颜色或位置动画,呈现警报通知,或者采用其他这样的技术以向操作者展现相关数据。以这种方式展现的数据由HMI114从工业控制器118读取,并且根据HMI开发者选择的显示格式在显示屏幕中的一个或更多个上展现所述数据。HMI可以包括具有用户安装的或预先安装的操作系统以及用户安装的或预先安装的图形应用软件的固定位置设备或移动设备。
一些工业环境还可以包括与受控工业系统的特定方面有关的其他系统或设备。这些系统或设备可以包括例如聚合并存储从工业控制器118或其他数据源收集的生产信息的数据历史记录装置(data historian)110、包含构成受控工业系统的各种工业设备的电子文档的设备文档存储库、库存跟踪系统、工作订单管理系统、机器或过程图及文档的储存库、供应商产品文档存储库、供应商知识库、内部知识库、工作调度应用或者其他这样的系统,它们中的一些或全部可以驻留在工业环境的办公网络108上。
较高级别系统126可以执行与工厂现场的工业自动化系统的控制不太直接相关并且替代地针对长期规划、高级监督控制、分析、报告的功能或其他这样的高级功能。这些系统126可以驻留在相对于工厂设施的外部位置处的办公网络108上,或者驻留在可以访问办公网络和/或工厂网络的云平台上。较高级别系统126可以包括但不限于云存储和分析系统、大数据分析系统、制造执行系统、数据湖(data lake)、报告系统等。在一些场景中,在企业的这些较高级别处运行的应用可以被配置成分析控制系统操作数据,并且该分析的结果可以被反馈至控制系统处的操作者或者直接反馈至控制系统中的控制器118或设备120。
构成工业环境的各种控制、监视和分析设备必须使用特定于每个设备的相应配置应用来编程或配置。例如,工业控制器118通常使用(例如,在客户端设备124上执行的)控制编程开发应用诸如梯形逻辑编辑器来配置和编程。使用这样的开发平台,设计者可以编写用于实现期望的工业顺序或过程的控制程序(例如,梯形逻辑、结构化文本、功能框图等)并且将得到的程序文件下载至控制器118。单独地,开发者使用(例如,在客户端设备122上执行的)HMI开发平台为HMI 114设计可视化屏幕和相关联的导航结构并且将得到的可视化文件下载至HMI 114。一些工业设备120——例如马达驱动器、遥测设备、安全输入设备等——也可能需要使用特定于正被配置的设备的(例如,在客户端设备128上执行的)单独的设备配置工具来进行配置。这样的设备配置工具可以用于设置设备参数或操作模式(例如,高/低限制、输出信号格式、比例因子、能耗模式等)。
使用单独的配置工具对工业自动化系统的不同方面进行编程和配置的需要导致了碎片化的设计方法,由此在不同的开发环境上对自动化系统的不同但相关或交叠的方面进行单独地设计、配置和编程。例如,运动控制系统可能需要使用控制逻辑编程平台对工业控制器进行编程并且对控制回路进行调节,使用另一配置平台对马达驱动器进行配置,以及使用可视化开发平台对相关联的HMI进行编程。相关的外围系统——例如视觉系统、安全系统等——可能也需要使用单独的编程或开发应用进行配置。
这种分离的开发方法也可能需要相当多的测试和调试努力以确保单独配置的系统方面的适当集成。在这点上,由于未能适当地协调不同的编程努力,因此不同的系统方面之间的预期数据接口或协调动作可能需要大量调试。
为了解决这些或其他问题中的至少一些,本文描述的一个或更多个实施方式提供了用于使用通用设计环境和数据模型来设计、编程和配置工业自动化系统的多个方面的集成开发环境(IDE)。工业IDE的实施方式可以用于以通用的方式配置和管理自动化系统设备,从而促进控制系统的控制、可视化和其他方面的集成多学科编程。
通常,工业IDE支持跨越整个自动化生命周期的特征,包括设计(例如,设备选择及尺寸确定、控制器编程、可视化开发、设备配置、测试等);安装、配置和调试;操作、改进和管理;以及故障排除、扩展和升级。
工业IDE的实施方式可以包括特定于工业纵向市场(vertical)及这些纵向市场内的通用工业应用的模块化代码和可视化的库。这些代码和可视化模块可以简化开发并缩短开发周期,同时还支持跨工业企业的一致性和重复使用。
为了支持增强开发能力,使用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保存的工业知识、预定义代码模块和可视化以及自动化对象(AO)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委派至工厂现场以实现自动化项目。
为了支持增强的开发能力,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、护栏(guardrail)模板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。这些可视化510可以根据工业或工业纵向市场(例如,汽车、食品和药品、石油和天然气、药物等)、工业资产的类型(例如,机器或工业设备的类型)、工业应用的类型(例如,批处理、流量控制、幅面张力控制(web tension control)、金属板冲压、水处理等)或其他这样的类别而分类。预定义可视化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或者所选择的存储在(例如,在存储器220上的)自动化对象库502中的自动化对象222。代码模块508包括用于控制常见工业任务或应用(例如,托盘包装(palletizing)、流量控制、幅面张力控制、拾取和放置应用、传送机控制等)的标准化编码段。类似地,表示相应工业资产的自动化对象222可以具有与其相关联的用于监视和控制其相应资产的标准化控制代码。在一些实施方式中,代码模块508和/或自动化对象222可以根据工业纵向市场(例如,汽车、食品和药品、石油和天然气、纺织品、船舶、药物等)、工业应用、或代码模块508或自动化对象222适用的机器或设备的类型中的一个或更多个而分类。
在一些实施方式中,项目生成组件206可以基于由程序员提供的程序输入(作为设计输入512的子集)来推断程序员的当前编程任务或设计目标,并且基于该任务或目标确定是否可以将预定义代码模块508或自动化对象222之一适当地添加至正被开发的控制程序以实现所推断的任务或目标。例如,项目生成组件206可以基于对设计输入512的分析推断出程序员当前正在开发用于将材料从第一罐转移至另一罐的控制代码,并且作为响应,推荐包括包含用于控制实现材料转移所需的阀、泵或其他资产的标准化或频繁利用的代码的预定义代码模块508。类似地,项目生成组件206可以推荐包括表示罐之一或转移材料所涉及的其他工业资产之一(例如,阀、泵等)的自动化对象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可以将背景(context)添加至生成的示意图作为系统项目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相关联的两组控制逻辑链接,使得与这两个自动化对象222相关联的控制逻辑执行机器的协调监视和控制。以这种方式链接两组控制逻辑可以包括例如根据由模型602定义的层次关系将子对象222的数据标签和父对象222的对应数据标签链接。
工业对象222还可以包括相关联的HMI对象,可视化系统(例如,HMI应用、2D或3D增强现实或虚拟现实系统等)可以使用这些HMI对象来呈现资产的动画图形表示。这些HMI对象可以包括被设计成呈现关于资产的信息的一个或更多个HMI接口屏幕(例如,呈现关于资产的统计或操作数据的报告屏幕、呈现资产的动画图形表示的屏幕等)、可以被导入工业可视化应用的表示资产的各个图形对象或者其他这样的对象。
自动化对象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的模拟的测试输入1012和/或其中使用了对象222的相关联项目代码,以及自动化对象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可以生成并呈现指示对系统项目302的可能修改的一个或更多个设计推荐1008,所述可能修改将校正项目的操作。这些设计推荐1008可以包括例如控制代码修改或替换、数据标签地址的推荐校正、对HMI图形对象引用的推荐校正、对机械制图或电气制图的推荐校正以与控制代码一致(例如,将缺失的输出设备添加至与控制编程所引用的输出设备相对应的电气制图)、对工业设备的配置参数的推荐修改或者其他这样的校正。
一些自动化对象222的测试属性可以定义应当对对象222及其对应的控制代码和项目元素运行以确保对对象222和相关代码的全面测试的多个测试场景1004。这些场景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是示出向IDE系统202提交自动化对象编辑1102的图。如上所述,自动化对象222被保存(maintain)在自动化对象库502(其可以是存储器220的一部分)中。经由与用户接口组件204和相关联的IDE编辑器224的交互,开发者可以将所选择的来自库502的自动化对象222添加至系统项目302作为这些自动化对象222的实例。在图11中描绘的示例中,对象222a是开发者已经选择并添加至系统项目302的自动化对象222的实例。在一些场景中,项目生成组件206还可以基于与正在针对其开发项目302的自动化系统相关的推断(例如,基于被提交给系统202的设计目标或工程制图)来自动选择自动化对象222并将其添加至项目302。
IDE编辑器224可以允许用户修改所选择的存储在库502中的自动化对象222的属性。为此,用户接口组件204可以生成用户界面并且(例如,经由IDE客户端514)将用户界面传送至客户端设备504,客户端设备504使得用户能够浏览可用的自动化对象222以及提交对所选择的对象222的编辑1102。可以针对任何定义的自动化对象222以这种方式修改以上结合图9描述的任何属性。例如,设计者可能希望修改与具有存储在库502中的定义的自动化对象222的特定工业资产(例如,泵、罐、冲压机等)相关联的控制代码。因此,用户可以提交针对相关联的自动化对象222的更新控制代码的编辑1102。这样的编辑可以用于更新针对相关联的工业资产的操作序列或控制行为。
类似地,用户可以提交编辑1102以更新所选择的自动化对象222的可视化属性,例如,以替换或编辑对应资产的图形表示。还可以提交编辑1102以将警报添加至与对象222相关联的警报定义列表或从与对象222相关联的警报定义列表移除警报,或者编辑现有的警报定义。还可以通过提交适当的编辑1102来修改与自动化对象222相关联的安全特征、测试脚本和分析代码。
这些编辑1102针对在自动化对象库502中保存的自动化对象定义。在接收到针对所选择的自动化对象222的(经由用户接口组件204提交的)对象编辑1102时,项目生成组件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自身上(例如,在如图8中所描绘的IDE系统202被实现为云服务的情况下,则被存储在基于云的存储装置上)的示例场景。然而,在一些实施方式中,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之后,将系统项目302的主副本保存在IDE系统202上。
一旦被复制到客户端设备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处的用户已经下载了如上结合图13描述的系统项目302的本地版本3021。包含自动化对象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。在这点上,协作管理组件210可以跟踪已经被下载到本地客户端设备的系统项目302的所有实例,使得可以响应于提交给基于云的IDE系统202的修改而按需更新项目302的这些本地版本。
响应于对象编辑1102的提交以及对编辑1102所针对的自动化对象222的主版本的对应修改,项目生成组件206还向其上存储有使用自动化对象222的系统项目302的本地版本3021的所有IDE客户端514b分发自动化对象更新1402。更新1402反映开发者使用客户端设备504a所提交的自动化对象编辑1102,并且在由本地IDE客户端514b执行时,更新1402根据编辑1102更新自动化对象222的所有实例。以这种方式,对对象库502中的自动化对象222的更新被自动广播至系统项目302中当前使用的对象222的所有实例。
在一些实施方式中,可以向客户端设备504b处的本地开发者提供允许将更新1402结合到其系统项目302的本地版本3021中或者拒绝实施更新1402的选项。因此,在更新自动化对象222的本地版本之前,用户接口组件204可以在用户的客户端设备504b上呈现关于对象编辑1102的信息,并且还可以呈现开发者批准在本地实施编辑的提示。关于编辑1102的信息可以包括例如受这些编辑影响的自动化对象222的身份以及将通过编辑实施的针对对象222的每个修改的概要(例如,将修改哪些对象属性以及将如何更改这些属性的指示)。基于对这些编辑的回顾,本地开发者可以选择在其本地版本3021上实施更新1402,或者可替选地,本地开发者可以选择拒绝编辑并阻止在项目302的本地版本3021上实施更新1402。
在一些实施方式中,当针对所选择的自动化对象222向IDE系统202提交对象编辑1102时,所选择的自动化对象222的实例对所提交的编辑1102的继承可以取决于系统项目302内每个实例的使用。如以上所描述的,例如,在如上所述修改库502中的自动化对象222的情况下,项目生成组件206可以识别在使用自动化对象的每个系统项目302中使用的自动化对象的所有实例222a。另外,项目生成组件206还可以确定系统项目302内的自动化对象的每个实例222a的使用上下文,并且确定由编辑1102表示的修改如果在对象实例上实施的话是否将在对象实例本身或在系统项目302的引用自动化对象的实例222a的部分中引入错误。如果确定所述修改很可能引入错误或覆盖自动化对象的实例222a的必要功能,则项目生成组件206将不将所述修改应用于该特定实例。如果在系统项目302内使用自动化对象的其他实例222a,并且如果项目生成组件206确定提交给自动化对象222的主版本的编辑1102将不会引入错误或不会使那些其他实例的必要功能失效,则项目生成组件206将所述修改应用于那些实例。
如上所述,针对给定系统项目302的项目数据模型602定义自动化对象的实例222a之间的层次关系。图15是将自动化对象222结合到项目模型602中的示例系统项目302的表示。在所示示例中,项目模型602将第一自动化对象的实例222aa指定为第二自动化对象的实例222ab的子对象。如以上所讨论的,如果接收到对第一自动化对象222的主版本(对应于222aa)的编辑1102,则项目生成组件206将根据编辑1106来更新库502中的该第一自动化对象222的主版本。另外,项目生成组件206将标识第一自动化对象的实例222aa在系统项目302中被使用并且与第二自动化对象的实例222ab具有功能关系,并且基于该关系来确定是否还应当根据编辑1102来修改第一自动化对象的该实例222aa。
一般地,如果发现经修改的自动化对象222的实例与系统项目302内的另一自动化对象222的实例具有如项目模型602所定义的定义关系,则项目生成组件206可以对这两个对象实例、它们的定义关系以及系统项目302中引用这两个自动化对象实例的部分进行分析,并且基于该分析来确定将所提交的编辑1102应用于该实例是否将在系统项目302中引入错误或者使依赖于自动化对象222的实例的原始版本的必要功能失效。在图15所描绘的示例中,项目生成组件206可以确定将编辑1102应用于第一自动化对象的实例222aa可能使该实例与第二自动化对象的实例222ab不兼容。例如,编辑1102可以以如下方式来修改与第一自动化对象222的主版本相关联的控制代码:如果在系统项目302中使用的自动化对象的实例222aa上实现,则将使该控制代码与和第二自动化对象的实例222ab相关联的控制代码不兼容(例如,通过消除将第一自动化对象的控制代码链接至第二自动化对象的控制代码的数据标签,通过删除第一自动化对象的控制代码的在给定层次关系的情况下产生使第二自动化对象的控制代码正确操作所必需的输出的部分等)。在另一示例中,编辑1102可以以增加第二自动化对象的实例222ab的操作风险的方式来修改与第一自动化对象相关联的安全特征。
响应于确定如果将编辑1102应用于第二自动化对象的实例222b则将导致这样的不兼容性,项目生成组件206将保持第一自动化对象的实例222aa不被修改,从而阻止将编辑1102应用于第一自动化对象的该特定实例222aa。项目生成组件206针对经修改的自动化对象222的每个被发现的实例执行该评估,并且将编辑1102应用于该实例或者以个体为基础拒绝应用编辑1102。
项目生成组件206还可以基于项目302内的其他使用上下文来确定是否应当将编辑1102应用于经修改的自动化对象的给定实例222a。例如,在确定是否将给定编辑1102应用于经修改的自动化对象的实例222a时,项目生成组件206可以识别系统项目302中引用自动化对象的实例222a的部分。例如,系统项目302的这些部分可以包括在系统项目302中定义的向自动化对象的实例222a提供数据(例如,以供实例的控制代码或分析代码消耗)或者消耗由自动化对象的实例222a生成的数据(例如,由实例的控制代码或分析代码生成的数据)的其他控制编程或分析代码。系统项目302中引用自动化对象的实例222a的其他部分还可以包括引用与自动化对象的实例222a相关联的图形对象的可视化应用或工程制图、引用与自动化对象的实例222a相关联的警报信息的警报应用、访问与自动化对象的实例222a相关联的设备配置参数定义的设备配置文件或系统项目302中其他这样的部分。
一旦识别到系统项目302中引用自动化对象的实例222a的部分,系统项目就能够确定将所提交的编辑1102应用于自动化对象的实例222a是否将在系统项目302的这些部分中引入错误或者将以其他方式导致系统项目302的这些部分不能按要求起作用。如果确定应用所提交的编辑1102将导致这样的错误,则项目生成组件206不会将编辑1102应用于自动化对象的该实例222a。可替选地,如果预测系统项目302的这些其他部分的功能将不受编辑1102的负面影响,则项目生成组件206将编辑1102应用于该实例。
在一些实施方式中,自动化对象的所选实例222a可以由开发者锁定,使得应用于库502中的自动化对象222的主版本的编辑1102将不被应用于所选实例。在这样的实施方式中,用户可以提交作为设计输入512(参见图5)的一部分的如下指令:系统项目302中使用的自动化对象的所选实例222a不继承针对库502中的自动化对象222的主版本所作的后续修改。该指令针对所选实例禁用继承。随后,如果提交了针对自动化对象222的主版本的编辑1102,则项目生成组件206识别在项目302中使用的自动化对象的实例222a,并且响应于确定已经针对该实例禁用继承,拒绝将编辑1102应用于该实例。如果在系统项目302内使用经修改的自动化对象的其他实例,则在尚未针对这些其他实例禁用继承的情况下,以及在项目生成组件206确定将编辑1102应用于这些其他实例不会对系统项目302的其他部分(包括其他自动化对象的实例)产生负面影响的情况下,项目生成组件206可以在以下情况下将编辑1102应用于这些其他实例。
在一些实施方式中,IDE系统202可以允许用户针对自动化对象的实例222a的所选属性禁用继承,而保持该实例的其他属性启用继承。例如,系统202可以允许用户选择性地锁定以上结合图9讨论的自动化对象的属性(例如,控制代码、警报、可视化对象、安全特征等)中的任何属性,使得对自动化对象222的主版本的对应属性的修改将不会导致对自动化对象的所选实例222a的那些属性的修改。允许开发者选择性地禁用自动化对象的所选实例222a的可用属性的子集在以下场景中可以是有用的:在该场景中,系统项目302内的实例的使用取决于所选择的属性的当前配置,但是对其他属性的修改不太可能施加失败的风险。
基于实例对所提交的编辑1102的继承将导致错误或不兼容性的推断或者通过针对所选择的实例选择性地禁用继承的用于调整或限制经修改的自动化对象的实例对编辑1102的继承的这些方法可能在系统项目302内产生自动化对象的单例实例。这些单例实例是自动化对象实例的独特版本,其属性不同于存储在库502中的其对应主版本的属性。在一些实施方式中,IDE系统202还可以允许用户将所得到的自动化对象的单例实例222a作为新的自动化对象222保存回自动化对象库502,所述新的自动化对象222可以被其他开发者访问并且可以被选择性地添加至其他系统项目302。所得到的新的自动化对象222可以被分类为其原始父自动化对象222的变型。在将自动化对象的单例实例222a存储回库502时,用户还可以向新的自动化对象222添加用于说明修改的原因或者指示变型自动化对象222可能有用的开发场景的开发注释。其他开发者可以在浏览自动化对象222时查看这些开发注释,从而提供有助于其他开发者决定该变型是否可以有利地用于他们自己的系统项目302的关于该变型的信息。
在一些实施方式中,还可以通过直接修改实例本身来创建自动化对象的单例实例222a。例如,开发者可以选择直接编辑当前在系统项目302中实例化的自动化对象的实例222a,而不是向存储在自动化对象库502中的自动化对象222的主版本提交编辑1102,如果允许对实例进行这样的直接编辑的话。这样产生从其得出实例的原始自动化对象222的独特变型。如果需要,开发者可以将通过该直接修改产生的单例实例作为新的自动化对象222保存回库502,其他开发者可以访问该新的自动化对象222以将其包括在他们自己的系统项目302中。
图16a至图17示出了根据本申请的一个或更多个实施方式的各种方法学。尽管出于简化说明的目的,本文中示出的方法学被示出和描述为一系列动作,但是应当理解和意识到,本发明不限于动作的顺序,因为根据本发明,一些动作可以以与本文示出和描述的顺序不同的顺序发生和/或与其他动作同时发生。例如,本领域技术人员将理解并意识到,方法学可以替选地表示为诸如状态图中的一系列相互关联的状态或事件。此外,并非所有示出的动作都是实现根据本发明的方法学所必须的。此外,当不同的实体制定方法的不同部分时,交互图可以表示根据本公开内容的方法学或方法。此外,所公开的示例方法中的两个或更多个可以彼此结合地实施以实现本文描述的一个或更多个特征或优点。
图16a示出了用于将对自动化对象的编辑传播至在一个或更多个系统项目中使用的对象的实例的示例方法学1600a的第一部分。首先,在1602处,经由与工业IDE系统的交互来接收工业设计数据。工业设计数据可以以以下中的一个或更多个的形式提交:工业控制器程序(例如,梯形逻辑、顺序功能图、脚本控制代码例如工业DSL等)、HMI屏幕开发输入、工业设备或装备选择、工程制图输入等。在一些实施方式中,工业设计数据还可以包括完整的工程图(例如,P&ID图、电气图、机械图等),可以由工业IDE对所述完整的工程图进行解析和分析以识别正被设计的工业自动化系统中的组件(例如,工业设备、机器、装备、导管、管道等)以及这些组件之间的功能及物理关系。
在一些实施方式中,设计数据还可以包括图像或视频。例如,可以将要安装正被设计的工业自动化系统的安装位置的图像或视频提交给工业IDE,工业IDE可以对该图像或视频进行分析以识别安装区域内的物理元素(例如,墙、梁、安全围栏、现有机器和设备等)以及这些元素之间的物理关系(例如,机器或其他物理元素之间的距离、管道铺设的长度、线束或线缆桥架的位置和距离等)。基于该制图或图像/视频分析的结果,工业IDE可以向工程示意图添加组件、针对在制图或图像中识别的组件生成控制编程或可视化、生成适当的设备参数设置、生成关于设备或机器的最佳位置的建议等。
对于支持基于目标的编程的工业IDE的实施方式,设计数据还可以包括对期望设计目标及相关联的设计约束的指示,例如,在所需的产品或材料输出率、最大总能耗率、关于安装空间的约束(如上所述,其可以基于安装地点的图像或视频来获得)或其他这样的参数方面。基于这些设计目标和约束,工业IDE可以生成自动化系统项目的至少一部分,包括能够鉴于指定的约束而满足所指定的设计目标的设备或装置选择、控制代码、制图、可视化或设备参数中的一个或更多个。
在1604处,基于在步骤1602处接收的设计数据生成工业自动化系统项目。作为项目生成过程的一部分,可以将从可用自动化对象库中选择的自动化对象的至少一个实例包括在项目中。自动化对象是工业自动化系统项目的构建块并且表示各种类型的真实世界工业资产或过程,所述真实世界工业资产或过程包括但不限于泵、罐、阀、马达、马达驱动器(例如,变频驱动器)、工业机器人、致动器(例如,气动或液压致动器)或其他这样的资产。自动化对象根据其所表示的资产或过程而与各种属性或特性(例如,控制代码、可视化对象或接口、测试脚本、安全特征或协议等)相关联。
系统项目包括可以在工业控制设备(例如,PLC或另一类型的工业控制设备),人机接口终端或另一类型的工业设备中的至少一者上部署和执行的一个或更多个可执行文件。这些文件可以包括,例如,工业控制编程文件、可视化应用文件、设备配置文件或其他这样的可执行组件或配置组件,其中的至少一些是基于包括在项目中的任何自动化对象生成的。系统项目还可以包括由IDE系统基于设计输入生成的其他工程文档,包括但不限于工程制图(例如,I/O制图、电气制图、P&ID制图等)、材料清单、安装说明或其他这样的文档。
在1606处,确定是否接收到定义对所选择的存储在自动化库中的自动化对象的一个或更多个属性的修改的对象编辑输入。该编辑输入可以定义对控制代码、可视化定义、测试脚本、安全协议或对象的其他属性中的一个或更多个的修改。如果接收到这样的对象编辑输入(在步骤1606为是),则该方法进行至步骤1608,在步骤1608处,在库中更新所选择的自动化对象的一个或更多个属性。
在1610处,确定在步骤1608处更新的所选择的自动化对象的实例是否包括在系统项目(例如,在步骤1604处生成的系统项目)中。如果编辑的自动化对象的实例没有被结合到任何系统项目中(在步骤1610处为否),则该方法返回至步骤1606并等待接收其他对象编辑输入数据。可替选地,如果编辑的自动化项目的实例已经被包括在系统项目中(在步骤1610处为是),则该方法进行至图16b中示出的第二部分1600b。
在1612处,确定将由在步骤1606处接收的编辑输入定义的修改应用于在步骤1610处识别的自动化对象的实例是否将给系统项目引入错误。在一些场景中,可以基于对系统项目内的实例的使用上下文的分析来做出该确定。例如,可以标识系统项目中引用该实例的属性的部分,并且可以确定如果将所述修改应用于该实例,则系统项目的这些部分的功能将如何改变。然后,可以评估如果将编辑应用于该实例,这些功能是否将无法正确操作。可以使用任何合适的方法来做出该确定,包括但不限于基于实例的修改版本对项目进行仿真。在另一示例中,可以确定对实例应用修改是否将导致与系统项目中和正被检查的实例具有定义关系(例如,父子关系)的另一自动化对象的实例不兼容。
如果确定应用所述修改将不会在系统项目中引入错误(步骤1612处为否),则该方法进行至步骤1614,在步骤1614处,确定是否已经针对该实例禁用继承。如果用户希望阻止实例继承针对从其得出该实例的自动化对象的主版本所作的编辑,则用户可以针对该实例或针对该实例的所选属性或特性选择性地禁用继承。如果没有针对该实例禁用继承(在步骤1614处为否),则该方法进行至步骤1616,在步骤1616处,根据在步骤1608处对存储在库中的对象的主版本执行的更新来在系统项目中更新自动化对象的实例。在一些场景中,正被更新的项目可以驻留在与工业IDE系统共用的存储装置上(例如,在云存储装置上)。可替选地,系统项目可以驻留在远程访问IDE系统的项目开发服务的客户端设备上,并且可以根据这些更新来远程更新自动化对象的实例。
可替选地,如果确定应用所述修改将引入错误(在步骤1612处为是)或者已经针对该实例禁用了继承(在步骤1614处为是),则该方法返回至步骤1606,而不对该实例应用所述修改。
图17示出了用于创建自动化对象的单例实例并将该单例实例用作新的自动化对象的基础的示例方法1700。最初,在1702处,经由与工业IDE系统的交互来接收工业设计数据(类似于方法1600a的步骤1602)。在1704处,基于在步骤1702处接收的设计数据来生成工业自动化系统项目(类似于方法1600a的步骤1604)。作为项目生成过程的一部分,可以将从可用自动化对象的库中选择的自动化对象的至少一个实例包括在项目中。
在1706处,确定是否接收到定义对系统项目中的自动化对象的实例的一个或更多个属性的修改的编辑输入数据。编辑输入可以定义对控制代码、可视化定义、测试脚本、安全协议或自动化对象实例的其他属性中的一个或更多个的修改。如果接收到这样的编辑输入数据(在步骤1706处为是),则该方法进行至步骤1708,在步骤1708处,根据编辑输入数据更新实例的一个或更多个属性以得到自动化对象的单例实例。单例实例是存储在自动化对象库中的原始自动化对象的实例,其具有相对于原始自动化对象修改的一个或更多个属性,并且因此不同于其源对象。
在1710处,确定是否接收到将在步骤1708处创建的自动化对象的单例实例作为新的自动化对象保存在对象库中的指令。如果接收到这样的指令(在步骤1710处为是),则该方法进行至步骤1712,在步骤1712处,基于单例实例在自动化对象库中创建新的自动化对象。这个新的自动化对象可以被其他项目开发者访问以包括在其他自动化系统项目中。
本文描述的实施方式、系统和部件以及可以实现本说明书中阐述的各个方面的控制系统和自动化环境可以包括能够跨网络进行交互的计算机或网络组件,例如服务器、客户端、可编程逻辑控制器(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)设备、服务器、客户端、计算机、配置工具、监视工具和/或其他设备的部件。
为了提供所公开的主题的各个方面的上下文,图17和图18以及以下讨论旨在提供对其中可以实现所公开的主题的各个方面的合适环境的简要、概括描述。尽管以上已经在可以在一个或更多个计算机上运行的计算机可执行指令的总体背景下描述了各个实施方式,但是本领域的技术人员将认识到,各个实施方式也可以结合其他程序模块来实现和/或被实现为硬件与软件的结合。
通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构等。此外,本领域的技术人员将理解,本发明的方法可以用其他计算机系统配置来实践,所述其他计算机系统配置包括单处理器或多处理器计算机系统、小型计算机、大型计算机、物联网(IoT)设备、分布式计算系统、以及个人计算机、手持式计算设备、基于微处理器的或可编程消费电子产品等,其中每一个都可以可操作地耦接至一个或更多个相关联的设备。
本文所示出的实施方式也可以在分布式计算环境中实践,在分布式计算环境中某些任务由通过通信网络进行链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地存储器存储设备和远程存储器存储设备两者中。
计算设备通常包括各种介质,其可以包括计算机可读存储介质、机器可读存储介质和/或通信介质,这两个术语在本文中如下彼此不同地使用。计算机可读存储介质或机器可读存储介质可以是可以由计算机访问的任何可用存储介质并且包括易失性介质和非易失性介质、可移动介质和不可移动介质。作为示例而非限制,计算机可读存储介质或机器可读存储介质可以结合用于存储诸如计算机可读或机器可读指令、程序模块、结构化数据或非结构化数据等信息的任何方法或技术来实现。
计算机可读存储介质可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、蓝光盘(BD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、固态驱动器或其他固态存储设备、或者可以用于存储期望信息的其他有形和/或非暂态介质。在这点上,在本文中应将如应用于存储装置、存储器或计算机可读介质的术语“有形”或“非暂态”理解为作为修饰语仅排除传播暂态信号本身并且不放弃对不是仅传播暂态信号本身的所有标准存储装置、存储器或计算机可读介质的权利。
计算机可读存储介质可以由一个或更多个本地计算设备或远程计算设备例如经由访问请求、查询或其他数据检索协议来访问,以针对由介质存储的信息进行各种操作。
通信介质通常以数据信号例如经调制数据信号例如载波或其他传输机制来体现计算机可读指令、数据结构、程序模块或其他结构化或非结构化数据,并且包括任何信息传递或传输介质。术语“调制数据信号”或信号指以在一个或更多个信号中对信息进行编码的方式设置或改变其特征中的一个或更多个特征的信号。作为示例而非限制,通信介质包括有线介质例如有线网络或直接连线连接和无线介质例如声学、RF、红外和其他无线介质。
再次参照图18,用于实现本文描述的各个方面的各个实施方式的示例环境1800包括计算机1802,计算机1802包括处理单元1804、系统存储器1806和系统总线1808。系统总线1808将包括但不限于系统存储器1806的系统部件耦接至处理单元1804。处理单元1804可以是各种可商购的处理器中的任何一种。也可以采用双微处理器和其他多处理器架构作为处理单元1804。
系统总线1808可以是若干类型的总线结构中的任一种,所述总线结构还可以使用各种可商购的总线架构中的任一种来互连至存储器总线(带有存储器控制器或不带有存储器控制器)、外围总线和局部总线。系统存储器1806包括ROM 1810和RAM 1812。基本输入/输出系统(BIOS)可以被存储在诸如ROM、可擦除可编程只读存储器(EPROM)、EEPROM的非易失性存储器中,其中该BIOS包含有助于例如在启动期间在计算机1802内的元素之间传输信息的基本例程。RAM 1812还可以包括诸如用于缓存数据的静态RAM的高速RAM。
计算机1802还包括内部硬盘驱动器(HDD)1814(例如,EIDE、SATA)、一个或更多个外部存储设备1816(例如,磁软盘驱动器(FDD)1816、存储棒或闪存驱动器读取器、存储卡读取器等)以及光盘驱动器1820(例如,其可以从CD-ROM盘、DVD、BD等读取或向其写入)。虽然内部HDD 1814被示为位于计算机1802内,但是内部HDD 1814还可以被配置成在合适的机箱(未示出)中外部使用。另外,虽然在环境1800中未示出,但是除了HDD 1814以外还可以使用固态驱动器(SSD),或者用固态驱动器(SSD)代替HDD 1814。HDD 1814、外部存储设备1816和光盘驱动器1820可以分别通过HDD接口1824、外部存储接口1826和光学驱动器接口1828连接至系统总线1808。用于外部驱动器实现的接口1824可以包括通用串行总线(USB)和电气与电子工程师协会(IEEE)1394接口技术中的至少一个或两者。其他外部驱动器连接技术在本文描述的实施方式的考虑内。
驱动器及其相关联的计算机可读存储介质提供数据、数据结构、计算机可执行指令等的非易失性存储。对于计算机1802,驱动器和存储介质以合适的数字格式适应任何数据的存储。尽管以上对计算机可读存储介质的描述涉及相应类型的存储设备,但本领域的技术人员应当理解,也可以在示例操作环境中使用计算机可读的其他类型的存储介质,无论所述存储介质是当前存在的还是将来开发的,并且此外,任何这样的存储介质可以包含用于执行本文所描述的方法的计算机可执行指令。
多个程序模块可以被存储在驱动器和RAM 1812中,所述多个程序模块包括操作系统1830、一个或更多个应用程序1832、其他程序模块1834以及程序数据1836。操作系统、应用、模块和/或数据中的全部或部分也可以被缓存在RAM 1812中。本文描述的系统和方法可以利用各种可商购的操作系统或操作系统的组合来实现。
计算机1802可以可选地包括仿真技术。例如,管理程序(未示出)或其他中介可以仿真用于操作系统1830的硬件环境,并且仿真的硬件可以可选地不同于图18中所示的硬件。在这样的实施方式中,操作系统1830可以包括在计算机1802处托管的多个虚拟机(VM)中的一个VM。此外,操作系统1830可以为应用程序1832提供运行时环境,例如Java运行时环境或.NET框架。运行时环境是使得应用程序1832能够在包括该运行时环境的任何操作系统上运行的一致执行环境。类似地,操作系统1830可以支持容器,并且应用程序1832可以是容器的形式,所述容器是包括例如代码、运行时间、系统工具、系统库和应用的设置的轻量级、独立的、可执行的软件包。
此外,计算机1802可以用安全模块例如可信处理模块(TPM)来启用。例如,使用TPM,启动部件对时间上的下一启动部件进行哈希处理,并且在加载下一启动部件之前等待结果与安全值的匹配。该过程可以发生在例如在应用执行级或操作系统(OS)内核级应用的计算机1802的代码执行栈中的任何层,从而使得能够在任何代码执行级实现安全性。
用户可以通过一个或更多个有线/无线输入设备例如键盘1838、触摸屏1840和诸如鼠标1842的定点设备将命令和信息输入至计算机1802。其他输入设备(未示出)可以包括麦克风、红外(IR)遥控器、射频(RF)遥控器、或其他遥控器、操纵杆、虚拟现实控制器和/或虚拟现实头戴式耳机、游戏垫、触摸笔、图像输入设备(例如,摄像机)、姿势传感器输入设备、视觉移动传感器输入设备、情绪或面部检测设备、生物测定输入设备(例如,指纹或虹膜扫描仪)等。这些输入设备和其他输入设备通常通过可以耦接至系统总线1808的输入设备接口1844连接至处理单元1804,但也可以通过其他接口例如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口、
Figure BDA0003536935200000401
接口等进行连接。
监视器1844或其他类型的显示设备也可以经由诸如视频适配器1846的接口连接至系统总线1808。除了监视器1844以外,计算机通常包括其他外围输出设备(未示出),例如扬声器、打印机等。
计算机1802可以使用经由至诸如远程计算机1848的一个或更多个远程计算机的有线和/或无线通信的逻辑连接在联网环境中进行操作。远程计算机1848可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐装置、对等设备或其他通用网络节点,并且通常包括相对于计算机1802所描述的许多或所有元件,尽管为了简明起见仅示出了存储器/存储设备1850。所描绘的逻辑连接包括至局域网(LAN)1852和/或更大的网络例如广域网(WAN)1854的有线/无线连接。这样的LAN和WAN联网环境在办公室和公司中是常见的,并且促进了诸如内联网的企业范围的计算机网络,所有这些都可以连接至全球通信网络例如因特网。
当在LAN联网环境中使用时,计算机1802可以通过有线和/或无线通信网络接口或适配器1856连接至局域网1852。适配器1856可以促进至LAN 1852的有线或无线通信,LAN1852还可以包括布置在其上的无线接入点(AP),以用于在无线模式下与适配器1856进行通信。
当在WAN联网环境中使用时,计算机1802可以包括调制解调器1858,或者可以经由用于通过WAN 1854建立通信的其他手段例如通过因特网来连接至WAN 1854上的通信服务器。可以是内部或外部的有线设备或无线设备的调制解调器1858可以经由输入设备接口1842连接至系统总线1808。在联网环境中,相对于计算机1802或其部分描述的程序模块可以被存储在远程存储器/存储设备1850中。将理解,所示的网络连接是示例并且可以使用在计算机之间建立通信链路的其他手段。
当在LAN或WAN联网环境中使用时,除了如上所述的外部存储设备1816之外,计算机1802还可以访问云存储系统或其他基于网络的存储系统,或者计算机1802可以代替如上所述的外部存储设备1816访问云存储系统或其他基于网络的存储系统。通常,可以例如分别通过适配器1856或调制解调器1858经由LAN 1852或WAN 1854来建立计算机1802和云存储系统之间的连接。在将计算机1802连接至相关联的云存储系统时,外部存储接口1826可以在适配器1856和/或调制解调器1858的帮助下,如管理其他类型的外部存储一样管理由云存储系统提供的存储。例如,外部存储接口1826可以被配置成提供对云存储源的访问,就好像这些源被物理地连接至计算机1802一样。
计算机1802能够进行操作以与可操作地布置在无线通信中的任何无线设备或实体进行通信,所述无线设备或实体例如打印机、扫描仪、台式计算机和/或便携式计算机、便携式数据助理、通信卫星、与以无线方式可检测的标签相关联的任何装备或位置(例如,亭、报摊、商店货架等)以及电话。这可以包括无线保真(Wi-Fi)和
Figure BDA0003536935200000411
无线技术。因此,通信可以是如常规网络的预定义结构或者仅仅是至少两个设备之间的自组织通信。
图19是所公开的主题可以与之交互的样本计算环境1900的示意性框图。样本计算环境1900包括一个或更多个客户端1902。客户端1902可以是硬件和/或软件(例如,线程、进程、计算设备)。样本计算环境1900还包括一个或更多个服务器1904。服务器1904也可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器1904可以容纳线程以通过采用例如本文所述的一个或更多个实施方式来执行变换。客户端1902与服务器1904之间的一种可能的通信可以是适于在两个或更多个计算机进程之间传输的数据包的形式。样本计算环境1900包括可以用于促进客户端1902与服务器1904之间的通信的通信框架1906。客户端1902可操作地连接至可用于存储客户端1902的本地信息的一个或更多个客户端数据存储器1908。类似地,服务器1904可操作地连接至可用于存储服务器1904的本地信息的一个或更多个服务器数据存储器1910。
以上所描述的内容包括本发明的示例。当然,不可能为了描述所公开的主题而描述部件或方法学的每个可设想到的组合,但是本领域普通技术人员可以认识到,本发明的许多另外的组合和置换是可能的。因此,所公开的主题旨在涵盖落入所附权利要求书的精神和范围内的所有这样的改变、修改和变型。
尤其是关于由上面描述的部件、设备、电路、系统等执行的各种功能,除非另外指出,否则用于描述这样的部件的术语(包括对“手段”的引用)旨在对应于执行所描述的部件的指定功能的任何部件(例如,功能上等效的任何部件),即使在结构上不等效于所公开的结构,该部件执行本文示出的所公开主题的示例性方面中的功能。在这点上,还将认识到,所公开的主题包括系统以及具有用于执行所公开的主题的各种方法的动作和/或事件的计算机可执行指令的计算机可读介质。
此外,虽然可能仅针对若干实现方式中的一个实现方式公开了所公开的主题的特定特征,但是这样的特征可以与其他实现方式的一个或更多个其他特征组合,这对于任何给定应用或特定应用来说可能是期望的且有利的。此外,就在说明书或权利要求书中使用术语“包括(includes)”和“包括(including)”及其变型来说,这些术语旨在以类似于术语“包括(comprising)”的方式是包括性的。
在本申请中,词语“示例性”用于表示用作示例、实例或说明。本文描述为“示例性”的任何方面或设计不一定被解释为比其他方面或设计优选或有利。更确切地,词语“示例性”的使用旨在以具体方式表现概念。
可以使用标准编程和/或工程技术将本文描述的各个方面或特征实现为方法、装置或制造物品。如本文所使用的术语“制造物品”旨在涵盖可从任何计算机可读设备、载体或介质访问的计算机程序。例如,计算机可读介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁条……)、光盘(例如,压缩盘(CD)、数字多功能盘(DVD)……)、智能卡和闪存设备(例如,卡、棒、钥匙驱动器……)。

Claims (20)

1.一种用于开发工业应用的系统,包括:
存储器,其存储可执行组件和表示相应工业资产的自动化对象的库,所述自动化对象具有与所述工业资产相关联的相应编程属性;以及
可操作地耦接至所述存储器的处理器,其执行所述可执行组件,所述可执行组件包括:
用户接口组件,其被配置成呈现集成开发环境IDE接口以及经由与所述IDE接口的交互来接收工业设计输入,所述工业设计输入定义工业自动化项目的方面;以及
项目生成组件,其被配置成基于所述工业设计输入来生成系统项目数据,
其中,
所述系统项目数据定义系统项目,包括可执行工业控制程序、工业可视化应用或工业设备配置数据中的至少一者,
所述系统项目数据还包括从存储在所述库中的自动化对象中选择的自动化对象的实例,并且
所述项目生成组件还被配置成:响应于经由所述用户接口组件接收到定义对所述自动化对象的属性的编辑的对象编辑数据,
根据所述对象编辑数据修改所述库中的自动化对象,
响应于确定根据所述对象编辑数据修改所述自动化对象的实例被允许,根据所述对象编辑数据修改所述自动化对象的实例,以及
响应于确定根据所述对象编辑数据修改所述自动化对象的实例不被允许,拒绝根据所述对象编辑数据修改所述自动化对象的实例。
2.根据权利要求1所述的系统,其中,所述项目生成组件被配置成:基于对所述系统项目数据和所述对象编辑数据的分析来确定将所述编辑应用于所述自动化对象的实例将导致所述系统项目中的错误,以及基于所述确定来拒绝修改所述实例。
3.根据权利要求1所述的系统,其中,所述项目生成组件被配置成:基于对所述系统项目数据和所述对象编辑数据的分析来确定将所述编辑应用于所述自动化对象的实例将导致所述自动化对象的实例与其他自动化对象的实例之间的不兼容性,以及基于所述确定来拒绝修改所述实例。
4.根据权利要求1所述的系统,其中,
所述用户接口组件接收用于禁用所述自动化对象的实例的继承特性的指令作为所述工业设计输入的一部分,并且
所述项目生成组件被配置成:响应于确定所述继承特性被禁用,拒绝修改所述实例。
5.根据权利要求1所述的系统,其中,拒绝修改所述自动化对象的实例使得所述实例变成不同于所述库中的自动化对象的单例实例,并且所述项目生成组件还被配置成:响应于接收到用于将所述单例实例保存至所述库的指令,基于所述单例实例在所述库中创建新的自动化对象。
6.根据权利要求1所述的系统,其中,
所述对象编辑数据是第一对象编辑数据,并且
所述项目生成组件还被配置成:响应于接收到定义针对所述自动化对象的实例的修改的第二对象编辑数据,修改所述自动化对象的实例以得到所述自动化对象的不同于所述库中的自动化对象的单例实例。
7.根据权利要求6所述的系统,其中,所述项目生成组件还被配置成:响应于接收到用于将所述单例实例保存至所述库的指令,基于所述自动化对象的单例实例在所述库中创建新的自动化对象。
8.根据权利要求1所述的系统,其中,所述自动化对象的属性是以下中的至少一者:用于监视和控制由所述自动化对象表示的工业资产的控制代码、定义所述工业资产的图形可视化的可视化对象、针对所述工业资产的警报定义、所述工业资产的安全特征、所述工业资产的安全协议、被配置成验证所述系统项目内的自动化对象的操作的测试脚本或者被配置成对由所述工业资产生成的数据进行分析的分析脚本。
9.根据权利要求1所述的系统,其中,所述自动化对象表示作为所述工业资产的以下中的至少一者:工业过程、控制器、控制程序、所述控制程序内的标签、机器、马达、马达驱动器、遥测设备、罐、阀、泵、工业安全设备、工业机器人或致动器。
10.根据权利要求1所述的系统,其中,所述可执行组件还包括项目部署组件,所述项目部署组件被配置成:
将所述系统项目数据转换成所述可执行工业控制程序、所述工业可视化应用或者所述工业设备配置数据中的至少两者,以及
将所述可执行工业控制程序、所述工业可视化应用或者所述工业设备配置数据中的所述至少两者发送至相应的工业资产以供执行。
11.一种用于开发工业应用的方法,包括:
由包括处理器的系统在客户端设备上呈现集成开发环境IDE接口;
由所述系统经由与所述IDE接口的交互来接收工业设计输入,所述工业设计输入定义工业控制和监视项目的方面;
由所述系统基于所述工业设计输入生成系统项目数据,其中,所述生成包括生成可执行工业控制程序、工业可视化应用或者工业设备配置数据中的至少一者,并且所述系统项目数据包括从自动化对象的库中选择的自动化对象的实例,所述自动化对象表示相应的工业资产并且具有与所述工业资产有关的相应编程属性;以及
响应于接收到定义对所述自动化对象的属性的编辑的对象编辑数据:
由所述系统根据所述对象编辑数据修改所述库中的自动化对象,
响应于确定根据所述对象编辑数据修改所述自动化对象的实例被允许,由所述系统根据所述对象编辑数据修改所述自动化对象的实例,以及
响应于确定根据所述对象编辑数据修改所述自动化对象的实例不被允许,由所述系统阻止根据所述对象编辑数据修改所述自动化对象的实例。
12.根据权利要求11所述的方法,其中,确定修改所述自动化对象的实例不被允许包括:基于对所述系统项目数据和所述对象编辑数据的分析来确定将所述编辑应用于所述自动化对象的实例将导致所述工业控制和监视项目中的错误。
13.根据权利要求11所述的方法,其中,确定修改所述自动化对象的实例不被允许包括:基于对所述系统项目数据和所述对象编辑数据的分析来确定将所述编辑应用于所述自动化对象的实例将导致所述自动化对象的实例与其他自动化对象的实例之间的不兼容性。
14.根据权利要求11所述的方法,还包括:
由所述系统接收用于禁用所述自动化对象的实例的继承特性的指令作为所述工业设计输入的一部分;以及
响应于确定所述继承特性被禁用,阻止修改所述实例。
15.根据权利要求11所述的方法,其中,
阻止所述修改使得所述实例变成不同于所述库中的自动化对象的单例实例,并且
所述方法还包括:响应于接收到用于将所述单例实例保存至所述库的指令,由所述系统基于所述单例实例在所述库中创建新的自动化对象。
16.根据权利要求11所述的方法,其中,
所述对象编辑数据是第一对象编辑数据,并且
所述方法还包括:响应于接收到定义针对所述自动化对象的实例的修改的第二对象编辑数据,由所述系统修改所述自动化对象的实例以得到所述自动化对象的不同于所述库中的自动化对象的单例实例。
17.根据权利要求16所述的方法,还包括:响应于接收到用于将所述单例实例保存至所述库的指令,由所述系统基于所述自动化对象的单例实例在所述库中创建新的自动化对象。
18.根据权利要求11所述的方法,其中,所述自动化对象的属性是以下中的至少一者:用于监视和控制由所述自动化对象表示的工业资产的控制代码、定义所述工业资产的图形可视化的可视化对象、针对所述工业资产的警报定义、所述工业资产的安全特征、所述工业资产的安全协议、被配置成验证所述工业控制和监视项目内的自动化对象的操作的测试脚本或者被配置成对由所述工业资产生成的数据进行分析的分析脚本。
19.一种非暂态计算机可读介质,其上存储有指令,所述指令响应于执行而使包括处理器的系统执行操作,所述操作包括:
在客户端设备上呈现集成开发环境IDE接口;
经由与所述IDE接口的交互从所述客户端设备接收工业设计输入,所述工业设计输入定义工业自动化项目的控制设计方面;
基于所述工业设计输入生成系统项目数据,其中,所述生成包括生成可执行工业控制程序、工业可视化应用或者工业设备配置数据中的至少一者,并且所述系统项目数据包括从自动化对象的库中选择的自动化对象的实例,所述自动化对象表示相应的工业资产并且具有与所述工业资产有关的相应编程属性;以及
响应于接收到定义对所述自动化对象的属性的编辑的对象编辑数据:
根据所述对象编辑数据修改所述库中的自动化对象;
响应于确定根据所述对象编辑数据修改所述自动化对象的实例被允许,根据所述对象编辑数据修改所述自动化对象的实例;以及
响应于确定根据所述对象编辑数据修改所述自动化对象的实例不被允许,阻止根据所述对象编辑数据修改所述自动化对象的实例。
20.根据权利要求19所述的非暂态计算机可读介质,其中,确定修改所述自动化对象的实例不被允许包括:基于对所述系统项目数据和所述对象编辑数据的分析来确定将所述编辑应用于所述自动化对象的实例将导致所述工业自动化项目中的错误。
CN202210227749.4A 2021-03-10 2022-03-08 用于开发工业应用的系统、方法和计算机可读介质 Pending CN115079644A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/197,258 US20220292457A1 (en) 2021-03-10 2021-03-10 Industrial automation smart object inheritance break and singleton creation
US17/197,258 2021-03-10

Publications (1)

Publication Number Publication Date
CN115079644A true CN115079644A (zh) 2022-09-20

Family

ID=80937084

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210227749.4A Pending CN115079644A (zh) 2021-03-10 2022-03-08 用于开发工业应用的系统、方法和计算机可读介质

Country Status (3)

Country Link
US (1) US20220292457A1 (zh)
EP (1) EP4057086A1 (zh)
CN (1) CN115079644A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117215542B (zh) * 2023-11-07 2024-05-14 上海华创自动化工程股份有限公司 一种自定义数据处理系统及方法

Family Cites Families (8)

* 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
US7966286B2 (en) * 2005-02-14 2011-06-21 Microsoft Corporation Hierarchical management of object schema and behavior
US20090293005A1 (en) * 2008-05-20 2009-11-26 Electronic Data Systems Corporation System and method for user interface design generator for data management applications
US9239573B2 (en) * 2012-04-16 2016-01-19 Rockwell Automation Technologies, Inc. Mapping between hierarchies in an industrial automation system
US9501208B2 (en) * 2012-10-08 2016-11-22 Fisher-Rosemount Systems, Inc. Method and apparatus for managing process control configuration
US10372107B2 (en) * 2014-10-15 2019-08-06 Rockwell Automation Technologies, Inc. Custom properties in an application environment
US10156842B2 (en) * 2015-12-31 2018-12-18 General Electric Company Device enrollment in a cloud service using an authenticated application
US11113303B2 (en) * 2016-05-09 2021-09-07 Sap Se Ownership transfer of database artifacts between files

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117215542B (zh) * 2023-11-07 2024-05-14 上海华创自动化工程股份有限公司 一种自定义数据处理系统及方法

Also Published As

Publication number Publication date
EP4057086A1 (en) 2022-09-14
US20220292457A1 (en) 2022-09-15

Similar Documents

Publication Publication Date Title
CN112559315B (zh) 用于自动化对象的测试框架
CN112631555B (zh) 用于开发工业应用的系统和方法
CN112631210B (zh) 用于开发工业控制程序的系统、编程方法及计算机介质
CN112558929B (zh) 用于开发或创建工业应用的系统和方法及计算机可读介质
US11947943B2 (en) Industrial automation smart object inheritance
US20230214213A1 (en) Industrial automation distributed project control with milestone rollback
US20230152790A1 (en) System model smart object configuration
US11900082B2 (en) Industrial automation multi-developer control code synchronization
EP4137937A1 (en) Industrial automation project library cross sharing
EP4060479A1 (en) Notifications from an industrial automation development environment
US11835941B2 (en) Industrial automation smart object parent/child data collection propagation
EP4057086A1 (en) Industrial automation smart object inheritance break and singleton creation
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