CN112558974A - 用于协作开发工业应用的***、方法和计算机介质 - Google Patents

用于协作开发工业应用的***、方法和计算机介质 Download PDF

Info

Publication number
CN112558974A
CN112558974A CN202010250230.9A CN202010250230A CN112558974A CN 112558974 A CN112558974 A CN 112558974A CN 202010250230 A CN202010250230 A CN 202010250230A CN 112558974 A CN112558974 A CN 112558974A
Authority
CN
China
Prior art keywords
industrial
project
design
data
ide
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010250230.9A
Other languages
English (en)
Other versions
CN112558974B (zh
Inventor
安德鲁·R·斯顿普
安东尼·卡拉拉
埃什沃·斯里尼瓦桑
克里斯多佛·W·科莫
沙龙·M·比利-杜兰
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 CN112558974A publication Critical patent/CN112558974A/zh
Application granted granted Critical
Publication of CN112558974B publication Critical patent/CN112558974B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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] or 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] or computer integrated manufacturing [CIM] characterised by modeling, simulation of the manufacturing system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4093Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
    • G05B19/40937Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine concerning programming of machining or material parameters, pocket machining
    • 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] or computer integrated manufacturing [CIM]
    • G05B19/41835Total 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] or computer integrated manufacturing [CIM] characterised by programme execution
    • 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
    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • 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/23293Automated assembly of machine control software, reusable software components
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Quality & Reliability (AREA)
  • Strategic Management (AREA)
  • Human Computer Interaction (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

提供了用于协作开发工业应用的***、用于协作开发工业控制应用的方法和非暂态计算机可读介质。工业集成开发环境(IDE)支持协作工具,所述协作工具使得多个设计者和程序员能够并行地将设计输入远程提交至同一自动化***项目,同时保持项目的一致性。这些协作特征可以包括例如:在针对***项目的相同部分的不同设计输入集之间进行协调;在***项目的一部分被修改时生成至远程设计者的通知;共享开发接口或环境;有助于外部技术支持专家参与以协助解决设计问题以及其他协作特征。

Description

用于协作开发工业应用的***、方法和计算机介质
技术领域
本发明涉及工业自动化***,更具体地涉及协作开发工具。
背景技术
本文公开的主题总体上涉及工业自动化***,并且例如涉及工业编程开发平台。
发明内容
下面呈现了简化的概述,以提供对本文描述的一些方面的基本理解。该概述不是广泛的综述,也不旨在标识关键/重要元素或者描绘本文描述的各个方面的范围。其唯一的目的是以简化的形式呈现一些概念,作为稍后呈现的更详细描述的序言。
在一个或更多个实施方式中,提供了一种用于协作开发工业应用的***,该***包括:用户接口组件,其被配置成在相应客户端设备上呈现集成开发环境(IDE)接口,并且经由与IDE接口的交互来接收对工业自动化控制项目的方面进行定义的工业设计输入;项目生成组件,其被配置成基于工业设计输入来生成***项目数据;以及协作管理组件,其被配置成在经由客户端设备中的不同客户端设备提交的多个工业设计输入集之间进行协调以包括在***项目数据中。
此外,一个或更多个实施方式提供了一种用于协作开发工业控制应用的方法,该方法包括:由包括处理器的***在相应客户端设备上呈现集成开发环境(IDE)接口;由***经由与IDE接口的交互来接收从客户端设备接收的对工业控制和监视项目的方面进行定义的工业设计输入;由***基于工业设计输入来生成***项目数据;以及由***从经由相应客户端设备提交的多个工业设计输入集中进行选择以包括在***项目数据中。
此外,根据一个或更多个实施方式,提供了一种非暂态计算机可读介质,其存储有指令,所述指令响应于被执行来使***执行包括如下操作的操作:在相应客户端设备上呈现集成开发环境(IDE)接口;经由与IDE 接口的交互来接收从客户端设备接收的对工业自动化项目的方面进行定义的工业设计输入;基于工业设计输入生成***项目数据;以及在经由相应客户端设备提交的多个工业设计输入集之间进行协调以集成到***项目数据中。
为了实现前述目的和相关目的,本文结合下面的描述和附图来描述某些说明性方面。这些方面指示可以实践的各种方式,所有这些方式都旨在被涵盖在本文中。当结合附图考虑时,其他优点和新颖特征将根据以下详细描述变得明显。
附图说明
图1是示例工业控制环境的框图。
图2是示例集成开发环境(IDE)***的框图。
图3是示出工业IDE***的通用架构的图。
图4是示出可以由IDE***结合构建、部署和执行***项目来利用的若干示例自动化对象属性的图。
图5是示出与使用工业IDE***创建用于正被设计的自动化***的***项目相关联的示例数据流的图。
图6是示出将自动化对象结合到项目模型中的示例***项目的图。
图7是示出对***项目进行调试的图。
图8是示出基于云的IDE服务用于开发工业应用并将工业应用部署至工厂环境的示例架构的图。
图9是示出基于云的工业IDE服务的多租户的图,其中,不同的远程客户端设备利用集中式工业IDE服务单独提交针对公共***项目的设计输入。
图10是示出基于云的工业IDE服务的多租户的图,其中,相应客户端设备被允许分别定制其自己的开发环境接口。
图11是示出针对***项目的相同方面的不同设计输入集之间的调解(mediation)或协调(broker)的图。
图12是示出正被测试的版本的控制代码与自动化***模型之间的交互的图。
图13是示出响应于从另一开发者接收到提议的设计修改而将更新通知分发至选定开发者的图。
图14是示出将IDE服务用作基于工厂的项目开发者与远程技术支持人员之间的代理的示意图。
图15是示出与基于用户与工厂的VR演示的交互来创建用于自动化***的***项目相关联的示例数据流的图。
图16a是描绘可以由工业IDE***的虚拟呈现组件生成的工业区域的第一人称视角的示例虚拟现实演示的部分再现。
图16b是描绘也可以由虚拟呈现组件生成的工业区域的外部视角的另一示例虚拟现实演示的再现。
图17是用于管理工业自动化***项目的来自多个开发者的设计贡献的示例方法的流程图。
图18向开发者通知对协作开发环境内的自动化***项目的修改。
图19是示例计算环境。
图20是示例联网环境。
具体实施方式
现在参照附图描述本公开内容,在附图中相似的附图标记始终用于指代相似的元素。在以下描述中,出于说明的目的,阐述了许多具体细节以提供对本公开内容的透彻理解。然而显然,可以在没有这些具体细节的情况下实践本公开内容。在其他实例中,以框图形式示出了公知的结构和设备以便于对其进行描述。
如本申请中所使用的,术语“组件”、“***”、“平台”、“层”、“控制器”、“终端”、“站”、“节点”、“接口”旨在指代计算机相关的实体或者与具有一个或更多个特定功能的操作装置相关的实体或者作为该操作装置的一部分的实体,其中这样的实体可以是硬件、硬件与软件的组合、软件或者执行中的软件。例如,组件可以是但不限于是在处理器上运行的进程、处理器、硬盘驱动器、包括固定的(例如,用螺钉或螺栓固定的)或可移除的固定固态存储驱动器的(光学存储介质或磁存储介质的)多个存储驱动器;对象;可执行文件;执行的线程;计算机可执行程序和/或计算机。作为说明,服务器和在服务器上运行的应用都可以是组件。一个或更多个组件可以驻留在执行的进程和/或线程内,并且组件可以位于一个计算机上和/或分布在两个或更多个计算机之间。此外,本文所描述的组件可以从存储有各种数据结构的各种计算机可读存储介质执行。这些组件可以例如根据具有一个或更多个数据包的信号(例如,来自与本地***、分布式***中的另一组件进行交互和/或通过诸如因特网的网络经由信号与其他***进行交互的一个组件的数据)经由本地和/或远程进程进行通信。作为另一示例,组件可以是具有由被电气或电子电路操作的机械部件提供的特定功能的装置,该电气或电子电路由处理器执行的软件或固件应用来操作,其中处理器可以在该装置的内部或外部并且执行软件或固件应用的至少一部分。作为另一示例,组件可以是通过电子组件而不是机械部件来提供特定功能的装置,电子组件可以包括处理器以执行至少部分地提供电子组件的功能的软件或固件。作为又一示例,接口可以包括输入/输出(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进行交互,从而与受控过程和/或***进行交互。示例显示画面可以使用显示计量值或计算值的过程的图形化表示来可视化工业***或其相关联的设备的当前状态,采用基于状态的颜色或位置动画,呈现警报通知,或者采用其他这样的技术以向操作者展现相关数据。以这种方式展现的数据由HMI 114从工业控制器118读取,并且根据HMI开发者选择的显示格式在显示画面中的一个或更多个上展现所述数据。HMI可以包括具有用户安装的或预先安装的操作***以及用户安装的或预先安装的图形应用软件的固定位置设备或移动设备。
一些工业环境还可以包括与受控工业***的特定方面有关的其他***或设备。这些***或设备可以包括例如聚合并存储从工业控制器118或其他数据源收集的生产信息的数据历史记录装置(data historian)110、包含构成受控工业***的各种工业设备的电子文档的设备文档存储库、库存跟踪***、工作订单管理***、机器或过程图纸和文档的储存库、供应商产品文档存储库、供应商知识库、内部知识库、工作调度应用或者其他这样的***,它们中的一些或全部可以驻留在工业环境的办公网络108上。
较高级别***126可以执行与工厂现场的工业自动化***的控制不太直接相关并且替代地针对长期规划、高级监督控制、分析、报告或其他这样的高级功能的功能。这些***126可以驻留在相对于工厂设施的外部位置处的办公网络108上,或者驻留在可以访问办公网络和/或工厂网络的云平台上。较高级别***126可以包括但不限于云存储和分析***、大数据分析***、制造执行***、数据湖、报告***等。在一些场景中,在企业的这些较高级别处运行的应用可以被配置成分析控制***操作数据,并且该分析的结果可以被反馈至控制***处的操作者或者直接反馈至控制***中的控制器118或设备120。
构成工业环境的各种控制、监视和分析设备必须使用特定于每个设备的相应配置应用来编程或配置。例如,工业控制器118通常使用(例如,在客户端设备124上执行的)的控制编程开发应用诸如梯形逻辑编辑器来配置和编程。使用这样的开发平台,设计者可以编写用于实现期望的工业顺序或过程的控制程序(例如,梯形逻辑、结构化文本、功能框图等)并且将得到的程序文件下载至控制器118。单独地,开发者使用(例如,在客户端设备122上执行的)HMI开发平台为HMI 114设计可视化画面和相关联的导航结构并且将得到的可视化文件下载至HMI 114。一些工业设备120——例如马达驱动器、遥测设备、安全输入设备等——也可能需要使用特定于正被配置的设备的(例如,在客户端设备128上执行的)单独的设备配置工具来进行配置。这样的设备配置工具可以用于设置设备参数或操作模式(例如,高/低限制、输出信号格式、比例因子、能耗模式等)。
使用单独的配置工具对工业自动化***的不同方面进行编程和配置的需要导致了碎片化的设计方法,由此在不同的开发环境上对自动化***的不同但相关或交叠的方面进行单独地设计、配置和编程。例如,运动控制***可能需要使用控制逻辑编程平台对工业控制器进行编程并且对控制回路进行调谐,使用另一配置平台对马达驱动器进行配置,以及使用可视化开发平台对相关联的HMI进行编程。相关的******——例如视觉***、安全***等——可能也需要使用单独的编程或开发应用进行配置。
这种分离的开发方法也可能需要相当多的测试和调试努力以确保单独配置的***方面的适当集成。在这点上,由于未能适当地协调不同的编程努力,因此不同的***方面之间的预期数据接口或协调动作可能需要大量调试。
工业开发平台在支持协作开发环境的能力方面也受到限制,该协作开发环境使得多个开发者能够并行处理给定的自动化***项目。
为了解决这些或其他问题中的至少一些,本文描述的一个或更多个实施方式提供了用于使用通用设计环境和数据模型来设计、编程和配置工业自动化***的多个方面的集成开发环境(IDE)。工业IDE的实施方式可以用于以通用的方式配置和管理自动化***设备,从而促进控制***的控制、可视化和其他方面的集成的、多学科编程。
通常,工业IDE支持跨越整个自动化生命周期的特征,包括设计(例如,设备选择及尺寸确定、控制器编程、可视化开发、设备配置、测试等);安装、配置和调试;操作、改进和管理;以及故障排除、扩展和升级。
工业IDE的实施方式可以包括特定于工业纵向市场(vertical)及这些纵向市场内的通用工业应用的模块化代码和可视化的库。这些代码和可视化模块可以简化开发并缩短开发周期,同时还支持跨工业企业的一致性和重复使用。
工业IDE的基于云的实施方式还可以支持协作工具,该协作工具使得多个设计者和程序员能够并行地将设计输入远程提交至相同的自动化***项目,同时保持项目的一致性。这些协作特征可以包括例如:在针对***项目的相同部分的不同设计输入集之间进行协调,在***项目的一部分被修改时生成至远程设计者的通知,共享开发接口或环境,有助于外部技术支持专家参与以协助解决设计问题,或者其他这样的特征。
图2是根据本公开内容的一个或更多个实施方式的示例集成开发环境(IDE)***202的框图。本公开内容中说明的***、装置或过程的方面可以构成包含在机器内的机器可执行组件,例如包含在与一个或更多个机器相关联的一个或更多个计算机可读介质中的机器可执行组件。这样的组件在由一个或更多个机器例如计算机、计算设备、自动化设备、虚拟机等执行时可以使机器执行所描述的操作。
IDE***202可以包括:包含IDE编辑器224的用户接口组件204、项目生成组件206、项目部署组件208、协作管理组件210、模拟组件212、代理组件214、虚拟呈现组件216、一个或更多个处理器218以及存储器220。在各种实施方式中,用户接口组件204、项目生成组件206、项目部署组件208、协作管理组件210、模拟组件212、代理组件214、虚拟呈现组件216、一个或更多个处理器218以及存储器220中的一个或更多个可以彼此电和/或通信地耦接以执行IDE***202的功能中的一个或更多个。在一些实施方式中,组件204、206、208、210、212、214和216可以包括存储在存储器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可以被配置成以确保项目一致性和开发者之间的协调的方式来管理和调整由多个开发者提交的设计输入。模拟组件212可以被配置成对针对***项目的公共方面的不同版本的设计输入执行测试模拟并将结果提交给协作管理组件210,以用于在不同的设计理念之间进行选择以包括在***项目中的目的。代理组件214可以被配置成管理开发者与远程技术支持之间的连接和项目信息的共享。
虚拟呈现组件210可以配置成经由用户接口组件204在用户可佩戴装置上呈现工业设施或安装区域的虚拟现实(VR)演示,并对用户与VR 演示的交互进行转换。VR演示可以基于存储在IDE***202上的数字工厂模型来生成。用户与VR演示的交互可以被解释为新自动化***的设计规范或者用于修改现有自动化***的设计或操作的规范,并且可以由项目生成组件206转换成满足设计规范的项目数据。该项目数据可以包括例如控制器代码;可视化对象、仪表板或混搭(mashup);设备配置;物料清单;装备推荐;工程制图;或者其他这样的项目组件。
一个或更多个处理器218可以执行本文中参照所公开的***和/或方法描述的功能中的一个或更多个。存储器220可以是存储用于执行本文参照所公开的***和/或方法描述的功能的计算机可执行指令和/或信息的计算机可读存储介质。
图3是示出根据一个或更多个实施方式的工业IDE***202的通用架构的图。工业IDE***202可以实现不仅跨设计而且跨调试、操作和维护的服务和工作流的通用集合。在设计方面,IDE***202不仅可以支持工业控制器编程和HMI开发,而且可以支持***部件的尺寸确定和选择、设备/***配置、AR/VR可视化以及其他特征。IDE***202还可以包括简化所得到的项目的调试并使所得到的项目的调试自动化并且在运行时间期间协助已部署***的后续管理的工具。
在云平台上实现的IDE***202的实施方式还有助于协作项目开发,由此多个开发者304向公共自动化***项目302贡献设计和编程输入。IDE ***支持的协作工具可以管理来自多个贡献者的设计贡献并且执行聚合***项目302的版本控制以确保项目一致性。本文更详细地描述了工业 IDE***支持的协作特征。
基于来自一个或更多个开发者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中。
图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。这些可视化510可以根据工业或工业纵向市场(例如,汽车、食品和药品、石油和天然气、药物等)、工业资产的类型(例如,机器或工业设备的类型)、工业应用的类型(例如,批处理、流量控制、幅面张力控制(web tension control)、金属板冲压、水处理等)或其他这样的类别而分类。预定义可视化510可以包括各种格式的可视化,包括但不限于HMI 画面或窗口、聚合来自多个预先指定的源的数据的混搭(mashup)、AR 叠加、表示相关联的工业资产的3D虚拟化的VR对象或其他这样的可视化格式。IDE***202可以基于对象类型与可视化内容之间的预定义关联来选择针对给定对象的合适的可视化。
在另一示例中,由用户应用于工程制图的标记可以通过项目生成组件 206的一些实施方式理解以传达特定的设计意图或参数。例如,红色笔的标记可以被理解为指示安全区域,通过虚线连接的两个圆可以被解释为齿轮关系,以及粗线可以指示凸轮关系。以这种方式,设计者可以以IDE***202可以理解并利用的方式在现有的制图上草拟设计目标以生成代码和可视化。在另一示例中,项目生成组件206可以基于对用户的CAD制图的分析来学***台本身内开发工程制图的设计工具,并且项目生成组件 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可以调用存储在代码模块数据库中(例如,存储器220上)的选定代码模块 508。这些代码模块508包括用于控制常见工业任务或应用(例如,托盘包装(palletizing)、流量控制、幅面张力控制、拾取和放置应用、传送机控制等)的标准化编码段。在一些实施方式中,代码模块508可以根据工业纵向市场(例如,汽车、食品和药品、石油和天然气、纺织品、船舶、药物等)、工业应用、或代码模块508适用的机器或设备的类型中的一个或更多个而分类。在一些实施方式中,项目生成组件206可以基于由程序员提供的程序输入(作为设计输入512的子集)来推断程序员的当前编程任务或设计目标,并且基于该任务或目标确定是否可以将预定义代码模块 508之一适当地添加至正被开发的控制程序以实现所推断的任务或目标。例如,项目生成组件206可以基于对设计输入512的分析推断出程序员当前正在开发用于将材料从第一罐转移至另一罐的控制代码,并且作为响应,推荐包括包含用于控制实现材料转移所需的阀、泵或其他资产的标准化或频繁利用的代码的预定义代码模块508。
定制的护栏模板506还可以被定义为捕获在项目设计中应当考虑的客户站点的细微差别。例如,护栏模板506可以记录正被设计的自动化***将被安装在停电很常见的区域中的事实,并且将在生成设计反馈518时考虑这一因素,例如通过推荐实施备用不间断电源并建议应该如何将这些电源合并以及推荐考虑这些断电的相关联的编程或控制策略。
IDE***202还可以例如基于以下使用护栏模板506来指导用户针对给定设计目标选择装备或设备:工业纵向市场、控制应用(例如金属板冲压、模铸、托盘包装、传送机控制、幅面张力控制、批处理等)的类型、项目的预算约束、安装地点的物理约束(例如可用楼层、墙壁或柜空间;安装空间的尺寸等)、该地点已经存在的装备等。这些参数和约束中的一些或全部可以被提供作为设计输入512,并且用户接口组件204可以将装备推荐作为设计反馈518的子集呈现。在一些实施方式中,项目生成组件 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基于与由对象表示的资产有关的编码工业专业知识而定义的默认属性。开发者可以根据需要(经由设计输入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——并将这些文件部署至工厂设施中的适当设备以促进自动化项目的实现。
如以上结合图8所述,IDE***202的一些实施方式可以驻留在云平台806上并且作为可由经授权的远程客户端设备504访问的基于云的IDE 服务802的集合来执行。这使得多个最终用户能够访问和利用工业IDE服务802以开发工业***项目302。图9是示出基于云的工业IDE服务802 的多租户的图,其中不同的远程客户端设备504a至504c利用集中式工业IDE服务802来单独提交针对公共***项目302的设计输入512。使用该架构,多个远程开发者可以将设计输入512提交至公共工业自动化***项目302,从而促进多个远程设计者的并行开发。工业IDE***202可以支持协作设计工具,所述协作设计工具可以管理和调整这些不同的设计输入 512集,以确保***项目302的一致性和优化。
在该示例中,工业IDE服务802可以被(与相应客户端设备504a至 504c相关联的)多个授权客户端以安全的方式进行访问。使用由IDE服务802提供至客户端设备504a至504c的相应设计接口,每个客户端设备处的开发者可以与IDE服务802进行交互,以提交针对公共工业***项目的设计输入512a至512c。如上所述,随着每个用户进行其项目开发工作流程,IDE服务802将生成各个设计反馈518a至518c并将其呈现给每个用户的客户端设备504a至504c。在开发期间***项目302安全地存储在云平台806上,并且一经完成则可以将***项目302从云平台806部署至构成来自云平台的自动化***的自动化***设备(如图8中描绘的),或者可以将***项目302下载到客户端设备以本地化从客户端设备到一个或更多个工业设备的部署。由于IDE服务802驻留在可访问基于互联网的资源的云平台上,因此IDE服务802的一些实施方式还可以使得用户能够访问远程基于网络的知识库、供应商装备目录或者可以有助于开发他们的工业控制项目的其他信息源。
基于云的IDE服务802可以跨认证授权、逻辑级别的数据隔离以及逻辑级别的网络隔离的层支持真正的多租户。最终用户可以访问云平台806 上的工业IDE服务802,并且每个最终用户的开发数据(包括设计输入512) 设计反馈518和***项目302都被加密,以使得每个最终用户只能查看与他们自己的工业企业相关联的数据。在示例实现中,基于云的工业IDE服务802的管理员可以维护具有适当安全特征的主虚拟私有云(VPC),并且可以为每个工业企业分配该VPC的一部分以供他们自己的开发者访问 IDE服务802。在示例实施方式中,加密的多协议标记交换(MPLS)信道可以保护最终用户数据的整个全集(corpus),以使得该数据仅能由具有适当证书的特定计算机或域查看。
在一些实施方式中,IDE服务802可以允许致力于相同的***项目302 的不同协作开发者根据需要独立地定制他们的开发平台接口版本,并利用他们自己的定制开发接口与***项目302的主副本进行接口连接。图10 是示出基于云的工业IDE服务802的多租户的图,其中,允许每个客户端设备504分别定制他们自己的开发环境接口1004a至1004c。在该示例架构中,每个客户端设备504a至504c可以分别提交接口定义数据1002a至1002c,从而分别配置他们自己的定制开发平台接口1004a至1004c以及动态设计反馈的优选形式。
另外,在一些实施方式中,由开发平台接口1004的给定实例提供的外观和可用功能可以是访问IDE服务802的开发者的角色的函数,如由开发者提交的角色或用户身份信息1006所确定的。在这样的实施方式中,可以由存储在IDE***202上的用户角色定义来定义给定开发者角色可用的可用IDE功能的子集。用户接口组件203和IDE编辑器224可以鉴于由开发者提交的角色和/或用户身份信息1006来访问这些用户角色定义,以确定应该如何定制该开发者的定制接口1004。在示例场景中,相对于具有协助角色的开发者,具有主导开发者角色的开发者可以被授予更广泛的开发特征集,例如,设计覆写(override)特权、跟踪各个开发者的设计贡献的能力等。在另一示例中,在给定用户的定制接口1004内应用的护栏模板506的集合可以是用户角色的函数,以使得通过适合于开发者的角色的预定义护栏模板506对允许由用户提交的设计修改进行调整。
由IDE***202支持的协作工具可以管理来自多个协作开发者的设计贡献并且执行聚合***项目302的版本控制以确保项目的一致性。在不同的个人或组对公共***项目302执行并行开发的该协作设计环境的上下文中,可能存在如下场景:多个开发者提交针对***项目302的相同部分的设计输入512(例如,控制程序、可视化应用开发、设备配置设置等)。图11是示出根据一些实施方式的针对***项目302的相同方面的不同设计输入集之间的调解或协调的图。在该示例中,致力于工业自动化***的***项目302的开发的多个项目开发者已提交了要包括在***项目302中的各自不同的互斥版本的控制代码1102a至1102c作为设计输入512的一部分。这些版本的控制代码1102可以是例如***项目302的替选版本的特定控制例程、定制自动化对象或另一方面。
IDE***的协作管理组件210可以对由多方提交的针对相同代码块的控制代码1102进行比较,并且选择控制代码1102的替选集合之一以集成到项目中。在这点上,协作管理组件210可以应用任何合适的标准来选择优选版本的控制代码1102。例如,在一些实施方式中,协作管理组件210 可以选择以最少行的代码执行相同控制功能的版本的控制代码1102。在另一示例中,协作管理组件210可以选择被估计为以最小的机械应力来控制其关联的机械资产的版本的代码。在这种情况下,鉴于关于相应控制序列将如何影响机械资产的内置工业专业知识,协作管理组件210可以基于对各个版本的控制代码1102的分析来确定施加至受控工业资产的应力量的估计。
例如,协作管理组件210可以对每个版本的控制代码1102进行分析,以确定将由于执行每个版本的控制代码1102而得到的估计机器循环频率。由于较高的频率与较快的机器磨损相关,因此协作管理组件210可以选择被估计为以最小的机器循环频率执行控制功能而不会导致产品产量降至所定义的最小值以下的版本的控制代码1102。在另一示例中,协作管理组件210可以对将由每个版本的控制代码1102实现的机械资产(例如,运动设备)的预期运动范围或者将由相应版本的控制代码1102实现以执行相同功能的个体机械运动的数量进行估计,并且选择预期使用最短运动或最少数量的运动来实现控制功能的版本的控制代码。其他类型的预测控制分析和对应的版本选择标准在一个或更多个实施方式的范围内。基于这样的分析的结果,协作管理组件210可以选择控制代码1102的版本之一作为最合适的版本,并且项目生成组件206会将所选择版本的代码1104集成到***项目302中。
在一些实施方式中,协作管理组件210可以结合评估相应不同版本的控制代码1102来利用模拟组件212。模拟组件212可以被配置成模拟各个版本的控制代码1102对自动化***(或其一部分)的控制,并且将模拟结果提供给协作管理组件210,协作管理组件210基于这些结果来选择优选版本的代码1104。可以使用由模拟组件212执行的控制模拟来执行上述示例类型的评估分析中的任一类型的评估分析。在一些实施方式中,模拟组件212可以结合模拟不同版本的控制代码1102来利用***项目302被开发用于的自动化***的数字模型。图12是示出正在测试的版本的控制代码1102与自动化***模型1202之间的交互的图。在该示例中,IDE***的模拟组件212用作工业控制器仿真器以针对自动化***模型1202执行控制代码1102(或控制代码部分)。
自动化***模型1202可以对要通过***项目302监视和调整的物理工业自动化***的各个方面进行模拟。模拟组件212可以将控制代码1102 与自动化***模型1202虚拟地接口连接来交换虚拟I/O数据,以便模拟现实世界的控制。自动化***模型1202通过生成数字I/O值和模拟I/O值对要调整的***进行数学建模,所述数字I/O值和模拟I/O值表示例如与预期要由正被建模的物理***生成的数据类似的传感器输出、计量输出或者其他工厂数据。可以通过模型1202针对每种工业资产来定义这些输入和输出。
模拟组件212将该模拟输出数据1208提供给控制代码1102,控制代码1102接收该数据作为一个或更多个虚拟物理输入。控制代码1102根据开发者的控制程序对这些输入进行处理并且基于该处理生成数字和/或模拟控制器输出数据1206。该输出数据1206表示将由执行控制代码1102 的控制器生成并被发送至包括自动化***的硬连线现场设备的物理输出 (例如,PID回路控制输出、螺线管激励输出、马达控制输出等)。控制器输出数据1206被提供给自动化***模型1202的适当的输入点,自动化***模型1202相应地更新模拟输出数据1208。
模拟组件212可以被配置成执行和监视该模拟并且基于模拟的结果来量化一个或更多个性能标准,所述模拟的结果将被协作管理组件210用于选择要包括在***项目302中的优选版本的控制代码1102。这些性能标准可以包括例如,受控机械装备的磨损量、作为使用控制代码1102控制自动化***的结果而消耗的能量的量、作为使用控制代码1102控制自动化***的结果的产品产量的量、所需的维护的量或者其他这样的标准。
在一些实施方式中,如果两个或更多个不同版本的控制代码1102不一定相互排斥而是在某些区域中交叠,则协作管理组件210可以对比较所述两个或更多个版本和将所述两个或更多个版本合并在***项目302的主副本内进行管理。这可以包括,例如,识别并删除两个或更多个版本的冗余或相同代码部分,识别控制代码的相同部分的竞争版本并选择要包括在***项目302中的优选版本,识别由两个或更多个版本定义的冲突控制操作,以及推荐进行修改以解决冲突或自动实施修改,或者执行其他这样的动作。
尽管图11和图12描绘了作为控制代码1102的替选设计输入,但是协作管理组件210(在有或没有模拟组件212的协助下)也可以在其他类型的项目元素之间进行调解或协调,所述其他类型的项目元素包括但不限于可视化方面(例如,HMI画面、AR/VR对象等)、设备参数设置、工程制图等。
此外,模拟组件212的一些实施方式可以被配置成对经由开发者的设计输入512提交的针对***项目302的提议更新执行风险分析。例如,响应于接收到针对包括在***项目302中的控制程序的一部分的更新或修订,模拟组件212可以发起对该提议更新的风险分析以确定该更新的可能结果。作为该风险评估的一部分,模拟组件212可以对整个***项目302 执行回归分析,以确定***项目的哪些其他方面可能会受到所提议的修改的影响,并且使用模拟技术或其他类型的分析来确定该更新将如何影响这些其他相关方面的性能。基于该分析的结果,用户接口组件204可以在开发者的接口1004上生成警告该修改可能对***项目302的其他部分产生影响的消息,并提示用户在将更改实施至***项目302之前确认该警告。
在不同开发者致力于***项目302的相应不同部分的一些实施方式中,用户接口组件204还可以向***项目302的部分被确定为受到发起的开发者的提议更新的影响的选定的其他开发者发送警告。图13是示出响应于从另一开发者(在所示示例中为与客户端设备504a相关联的开发者) 接收到提议的设计修改1304而将更新通知1302分发至选定开发者的图。如上所述,由开发者提交针对***项目302的一部分的设计修改1304可以发起对***项目302的回归分析,以识别可能受到修改1304影响的***项目302的其他部分。在各种实施方式中,协作管理组件210可以基于获知的***项目之间的相互依赖关系来识别***项目302的受影响部分,所述相互依赖关系包括但不限于控制代码段或例程之间的编程关系或依赖关系、控制代码段与可视化元素之间的依赖关系、控制代码与工程制图 (例如,I/O图、电气图、板布局图等)之间的依赖关系,或者其他这样的关系。协作管理组件210还可以识别自动化对象和/或由项目数据模型 602定义的控制代码例程或模块之间的层次关系。
基于这些获知的相互依赖关系,协作管理组件210可以识别***项目 302中设计修改1304所针对的部分,并且进一步识别***项目302中的功能或响应可能受到设计修改影响的其他部分。在不同的开发者或开发者组已经被指派为致力于***项目302的相应不同部分或方面的实施方式中,协作管理组件210还可以识别已经指派到***项目302的受影响部分的开发者或组,并且用户接口组件204可以将更新通知1302发送至与这些受影响部分相关联的开发接口1004(例如,在所示示例中为与客户端设备504b和504c相关联的接口)。这些更新通知1302可以包括对提议的修改1304的描述,对项目302的接收者的部分的可能影响的指示或者其他这样的信息。在一些实施方式中,协作管理组件210可以被配置成:仅在所有通知接收者基于他们自己对提议的修改不会不利地影响***项目 302中的他们的部分的确定而提交对设计修改的批准的情况下,才将提议的设计修改1304集成到***项目302中。
在一些实施方式中,协作管理组件210也可以被配置成跟踪和记录每个开发者对***项目302的设计贡献。该信息可以用于审计目的、跟踪开发者的生产率、识别特定设计贡献的发源者或者用于其他目的。
协作管理组件210也可以被配置成共享由多个开发者经由用户接口组件204提交的开发笔记。这些开发笔记可以作为设计输入512的一部分提交并附加到***项目302的指定部分(例如控制代码段、设备配置参数设置、工程制图元素等),以使得当其他开发者查看***项目302中另一开发者已经附上开发笔记的部分时,可以有选择地查看该开发笔记。在一些实施方式中,已经附有开发笔记的***项目302中的元素可以被表示为位于相应项目元素上或附近的可选择图标,并且图标的选择可以呈现笔记以供查看。
在一些实施方式中,由工业IDE***支持的协作编辑环境还可以包括在设计期间实时访问项目开发专家。图14是示出将IDE服务用作基于工厂的项目开发者与远程技术支持人员之间的代理的图。在该实施方式中,工业IDE服务802包括相关联的(由代理组件214实现的)代理服务1308,代理服务1308管理开发者的客户端设备504与远程技术支持之间的连接和数据交换。在基于云的实现中,每个最终用户的***项目302(例如,当前正在运行的自动化***的已完成***项目302或者待调试的自动化***的正在开发的未决***项目302)都被安全地保持在云平台上。代理服务1308可以允许(与客户端设备1310相关联的)经授权的技术支持人员使用IDE服务802访问给定客户的***项目数据中的一些或全部,以代理客户的数据。技术支持实体可以是例如IDE服务802的管理员、制造控制程序被开发的机器的OEM、***集成商、装备供应商或者其他这样的实体。在一些实施方式中,最终用户可以选择性地允许技术支持人员访问其***项目数据的选定子集,同时禁止技术支持人员访问其***项目302 的其他部分,从而保护敏感或专有项目信息。
在示例场景中,项目生成组件206可以基于对设计输入512和整个***项目302的分析来推断设计者的当前设计目标(例如,对特定的自动化功能进行编程,结合执行自动化功能来为特定类型的工业设备设置配置参数值等)。基于对用户设计意图的该推断,协作管理组件210可以经由代理组件214启动至能够协助设计目标的真人或自动化专家的通信通道。
在一些实施方式中,IDE***202可以响应于推断出开发者在开发***项目302中与设计目标有关的部分时遇到困难而自动地建立与专家的连接。替选地,IDE开发接口可以包括使得最终用户能够提交用于发起与专家协作的协助请求1402的控件。协助请求1402可以指定***项目302 中需要协助的特定方面(例如,控制代码例程、可视化画面、设备选择或兼容性、指定工业设备的配置等)。在一些实施方式中,代理组件214可以在将协助请求发送至远程支持代表之前对该协助请求1402执行附加处理。代理组件214可以部分地基于先前捕获的最终用户的正在开发的自动化***或客户的较大工厂设施的知识来执行该附加处理。例如,代理组件 214可以收集附加的特定于客户的上下文,所述特定于客户的上下文可以帮助解决正在请求协助的设计问题。这样的上下文可以包括关于构成要针对其开发***项目302的自动化***的设备和/或机器的附加信息(例如,这样的设备的标识以及它们在整个工业***中的角色及其彼此的功能关系)、相对于正在设计的自动化***(其操作可能对新的自动化***的操作产生影响)的其他上游或下游过程等。响应于接收到协助请求1402,代理组件214可以选择被确定为有资格协助该请求的可用技术支持人员——例如,基于存储在相应技术支持人员的能力档案中的信息来选择可用技术支持人员,这些信息指示每个人的培训水平、专业知识领域、此人具有经验的装备等——并打开与所选技术支持人员的远程通信通道。
一旦建立了该通信通道,则技术支持人员就可以(经由客户支持客户端设备1410)访问、查看和修改从***项目302获得的客户项目数据1404 的选定子集。在一些实施方式中,用户接口组件204可以向专家呈现设计者代码的可视化、可视化应用开发画面、设备配置参数或***项目302的其他方面。技术支持人员可以以对最终用户的***项目302的方面进行直接修改(例如,控制代码重写、设备配置的设置等)的形式提交设计协助 1306或者提交设计反馈1312,该设计反馈1312被提交至最终用户,推荐进行某些修改或以其他方式提供设计指导。在一些实施方式中,基于云的 IDE***202还可以充当可信代理,技术支持人员可以通过该可信代理远程访问最终用户的工厂设施处的装备,例如,用于远程配置用户的设备、查看或修改工业控制器上的控制程序或HMI终端上的可视化画面等目的。
IDE***202的一些实施方式可以支持经由虚拟化开发环境来提交设计输入512,该虚拟化开发环境通过用户接口组件204服务于可佩戴装置。该虚拟开发环境使得自动化***设计者能够经由与工厂设施(例如,将安装自动化***的安装位置)的虚拟现实演示的交互来提交设计输入512。使用这种方法,IDE***202可以基于开发者与虚拟现实演示的手动交互生成***项目302的部分,所述***项目302的部分包括但不限于设备选择、工业控制编程、设备配置、可视化、工程制图等。这些交互可以包括例如模拟在虚拟环境中放置和移动机器或其他工业资产的手动手势、使用手动手势来定义运动设备或机器人的轨迹或者其他这样的交互式输入。项目生成组件可以将开发者的交互和手势解释为正被设计的自动化***的设计规范,并且将这些交互转换为满足设计规范的控制代码、可视化、设备配置以及其他可执行***组件。
图15是示出根据一个或更多个实施方式的与基于用户与工厂的VR 演示的交互来创建用于自动化***的***项目302相关联的示例数据流的图。在该示例中,可佩戴AR/VR装置1510可以经由用户接口组件204 与工业IDE***202接口连接,该用户接口组件204可以包括适合于IDE ***202被实现的特定平台的有线或无线网络接口、近场通信接口或者其他这样的设备接口。在一些实施方式中,用户接口组件204可以被配置成在允许将VR演示传递至可佩戴装置1510之前对可佩戴装置1510访问 IDE***202的授权进行验证。用户接口组件204可以使用密码验证、生物识别(例如,由可佩戴装置1510从用户收集并被提交给用户接口组件 204的视网膜扫描信息)、可佩戴装置1510的标识符与已知的授权设备的集合的相互对照或其他这样的验证技术来对可佩戴装置1510或其所有者进行认证。
在该实施方式中,用户接口组件204具有相关联的虚拟呈现组件216,该虚拟呈现组件216被配置成生成用于由用户接口组件204递送的至可佩戴装置1510的虚拟现实演示数据1504。演示数据1504在被可佩戴装置 1510接收和执行时在可佩戴装置的显示器上呈现工业区域的交互式三维 (3D)虚拟现实演示。为了促进生成工业区域(例如,正被设计的自动化***要被安装或修改的工业设施的一部分)的虚拟演示,IDE***202可以保持一个或更多个对由VR演示数据1504表示的区域的物理布局的视觉表示进行定义的工厂模型1502。例如,给定工业区域(例如,生产区域、工作单元、装配线等)的工厂模型1502可以定义位于该区域内的工业资产——包括机器、传送机、控制柜和/或工业设备——以及这些工业资产之间的物理关系的图形表示。对于每种工业资产,工厂模型1502可以定义资产的物理尺寸和颜色以及图形表示所支持的任何动画(例如,变色动画、反映资产移动的位置动画等)。工厂模型1502还定义了工业资产之间的物理关系,包括工厂现场的资产、资产之间延伸的导管或管道的相对位置和定向以及其他物理定义。
在一些实施方式中,工厂模型1502可以是现有工厂的数字化映射,或者可以基于这样的数字化映射的一部分来生成。另外,在一些实施方式中,可以基于从视频或图像数据提取的安装区域的环境特性来生成工厂模型1502的至少一部分。在这样的实施方式中,与基于对视频或图像数据的分析而发现的工业资产、物理障碍、距离、位置或其他环境特征有关的信息可以被馈送至工厂模型1502,使得这些环境特征在模型1502中表示。
虚拟呈现组件216支持的呈现引擎被配置成基于工厂模型1502中指定的工业资产呈现定义来生成工业区域的交互式VR演示。用户接口组件 204将所得的VR演示作为VR演示数据1504传递至可佩戴装置1510。
图16a是描绘可以由虚拟呈现组件210生成的工业区域的第一人称视角的示例虚拟现实演示1602的部分再现。图16b是描绘也可由虚拟呈现组件210生成的工业区域的外部视角的另一示例虚拟现实演示1604的再现。应当理解,由于经由二维图呈现虚拟现实演示的固有限制,因此图 16a至图16b示出的示例VR演示无法完全描绘在合适的可佩戴装置上呈现的VR演示。通常,由可佩戴装置1510呈现的VR演示提供涵盖用户的整个视野的环绕的虚拟渲染,并随着用户位置和方向改变而转变其视线或视角。在此,局部再现和相关联的描述试图在给定二维图的限制的情况下尽可能地传达虚拟现实呈现和交互。
在一些实施方式中,虚拟呈现组件216可以支持从区域之外的人的角度来看的工业区域的外部VR视图(如示例演示1604中一样)以及该区域的第一人称视图,该第一人称视图通过渲染区域的完整视图来模拟用户在工业区域内的存在(如示例演示1602中一样)。用户可以在这两种视图之间选择性地切换并通过与两种视图中的任何一种进行手动交互来提供设计输入。虚拟呈现组件216可以将最新的VR演示数据1504流式传输至可佩戴装置1510以确保视图(包括用户的视角)保持最新。虚拟呈现组件216根据由工厂模型1502定义的呈现指令来呈现工业资产VR演示。可以在VR演示内被呈现为虚拟对象的工业资产可以包括但不限于罐 1606、传送机1608、机器1610、工业机器人、安全门、发电机、工业控制器或设备或者其他这样的资产。
由虚拟呈现组件216生成的VR演示的观看角度是基于IDE***202 从可佩戴装置1510接收的位置和定向数据1508的。在这点上,可佩戴装置1510的位置和定向组件可以被配置成确定装置1510的当前地理位置、定向和视线。在一些实施方式中,装置1510可以利用全球定位***(GPS) 技术来确定用户的绝对位置,或者装置1510可以被配置成与定位传感器交换数据以确定用户的相对位置。可佩戴装置1510还可以包括定向感测组件,该定向感测组件根据装置的视线方向、装置1510相对于水平面的角度等来测量可佩戴装置的当前定向。用于确定佩戴者当前位置和方向的可佩戴装置1510的实施方式可以支持其他类型的传感器或算法,包括但不限于惯性测量单位(IMU)或视觉惯性里程表(VIO)。可佩戴装置1510可以将位置和定向信息作为位置和定向数据1508报告给IDE***202。
虚拟呈现组件216使用位置和定向数据1508来控制VR演示的视点。例如,用户可以经由用户的可佩戴装置1510观看工业区域的VR演示(例如,图16a中描绘的第一人称演示或图16b中描绘的外部演示)。虚拟呈现组件216接收由用户的可佩戴装置1510生成的位置和定向数据1508,并根据用户的当前的位置和方向来呈现演示。特别地,VR演示的观看视角的方向和角度是用户的位置和方向的函数。
与第一人称视角(例如,图16a的演示1602)相比,由IDE***202 生成的外部视图(例如,图16b的演示1604)将工业区域呈现为该区域的虚拟缩小模型,并且使得用户能够四处移动并与该区域的缩放版本进行交互。当用户在虚拟缩放的工业区域中四处移动、朝向或远离虚拟缩放的工业区域时,可佩戴装置1510将更新的位置和定向数据1008流式传输至IDE***202,IDE***202基本上连续地更新VR演示数据1504以模拟在生产区域的缩放模型中四处移动的效果。
返回至图15,IDE***202可以基于由可佩戴装置1510生成的表示用户与由虚拟呈现组件216生成的第一人称VR演示或外部VR演示中的一者或两者的手动交互的VR交互数据1506来生成***项目302的至少一部分,所述***项目302的至少一部分包括程序代码、可视化、设备配置、工程制图、物料清单等。例如,一旦将生产区域的VR演示呈现在可佩戴装置1510上,则装置1510的佩戴者(例如,***的设计者)可以与所呈现的VR环境进行手动交互,以选择并在虚拟环境中放置新的工业设备、机器、装备或其他工业资产(例如,泵、阀、导管、安全防护装置等)。为此,用户接口组件204的一些实施方式可以将可以选择各种类型的工业资产(例如,控制器、马达驱动器、桶、泵、阀、工业机器人、传送机、加工站、模壳炉等)的菜单呈现为VR演示中的叠加。装置1510的佩戴者可以在VR演示内使用手势来与这些菜单手动地交互,以(例如,通过执行手动保持和放置动作)选择期望资产的数字表示并将资产放置在VR 环境内的选定位置处。可以使用有关虚拟资产的适当手势(例如,通过执行模拟在环境中手动地操纵虚拟资产的手势)来定向表示工业资产的虚拟图标、将表示工业资产的虚拟图标从一个位置移动至另一位置或者将其从虚拟环境移除。VR环境中的用户的交互由可佩戴装置1510监视并作为 VR交互数据1506发送至IDE***202。
在IDE环境中,以这种方式添加或移动的工业资产可以由与那些资产相对应的自动化对象222(例如,罐自动化对象、阀自动化对象等)表示。当用户将新的工业资产添加至VR环境时,项目生成组件206可以识别该新添加的资产并将与该资产相对应的适当的自动化对象222添加至***项目302。如上述其他示例一样,可以从由IDE***202保持的标准自动化对象库502中选择自动化对象222。当将这些资产添加在虚拟设计环境中并将其链接在一起时,项目生成组件206还可以针对这些资产生成顺序控制代码,其中,该顺序代码可以部分地基于与资产相对应的相应预定义代码模块508或者与自动化对象222本身相关联的控制代码。
在其他示例交互中,用户可以以手势来执行新机器人或其他类型的运动设备要执行的运动。例如,用户可以执行手动地描绘要由机器人执行的轨迹或运动以便于将零件从第一位置拾取并移动至第二位置的手势,或者可以执行指示运动设备在工作周期期间要通过的运动路径的手势。在另一示例中,用户可以执行指示要将水从一个指定罐泵送至另一罐的手动手势。响应于设计者的这些动作(由可佩戴装置1510报告为VR交互数据 1506),项目生成组件206将通过生成支持这些设计目标和规范的合适代码、设备配置、图以及可视化来更新***项目302。
与VR环境的设计交互可以在第一人称视角视图(例如,图16a)或外部视图(例如,图16b)内执行。通常,第一人称视图可以使得设计者能够例如通过添加传送机、机器、泵、阀等更容易地执行针对特定生产线或机器的设计交互。可以使用外部视图更容易地执行针对大规模设计方面的交互式输入。可以使用外部视图适当执行的设计交互可以包括,例如,将工业机器人或其他工业资产的重复实例添加至相应的多个生产区域(例如,如图16b所示,生产区域1614a至1614d中的重复机器1612a至1612d),在生产区域之间移动工业资产或者其他这样的设计动作。为了在生产区域之间添加或移动资产,装置1510的佩戴者可以针对生产区域的外部缩小视图执行手动手势以模拟在工厂设施的较小虚拟模型内抓取、移动和放置资产。
返回图14,在支持以上结合图15至图16b描述的虚拟开发环境的IDE ***202的实施方式中,用户接口组件204经由代理组件214可以(经由技术专家佩戴的可佩戴AR/VR装置)与技术支持助手共享开发者的虚拟开发环境。以这种方式共享虚拟化设计环境模拟了虚拟环境中技术专家和开发者的同时存在,使得每个参与者将对方视为人的图标(例如,图标 1616)。这使得远程技术专家能够在虚拟化环境中示范用于设计自动化***的部分的推荐方法(例如,工业控制设备的放置或配置、机器的放置等)。
类似地,工业IDE***202还可以为基于用户的自动化项目开发者社区提供平台,自动化项目开发者可以进行交互以共享对开发问题的解决方案。在上述虚拟设计环境的情况下,设计者可以选择与其他用户分享他们对虚拟设计环境的看法以改善协作设计体验。例如,一个位置处的致力于***项目302的开发者可以与另一位置处的另一用户共享他或她的安装环境的虚拟视图,从而使得其他用户能够查看提议的设计并提供补充设计推荐。在一些实施方式中,IDE***202允许不仅可以与致力于同一项目 302的其他开发者共享开发者的虚拟视图,而且还可以与和其他工业企业相关联的可能对所设计的***类型有经验的用户共享开发者的虚拟视图。 IDE***可以实现适当的安全特征,以确保第一企业的用户不会与其他企业的用户共享敏感的专有***信息,同时仍然允许受管理程度的信息共享以促进众包开发协助。
图17至图18示出了根据本申请的一个或更多个实施方式的各种方法学。尽管出于简化说明的目的,本文中示出的一个或更多个方法被示出和描述为一系列动作,但是应当理解和意识到,本发明不限于动作的顺序,因为根据本发明,一些动作可以以与本文示出和描述的顺序不同的顺序发生和/或与其他动作同时发生。例如,本领域技术人员将理解并意识到,方法学可以替选地表示为诸如状态图中的一系列相互关联的状态或事件。此外,并非所有示出的动作都是实现根据本发明的方法学所必须的。此外,当不同的实体制定方法的不同部分时,交互图可以表示根据本公开内容的方法学或方法。此外,所公开的示例方法中的两个或更多个可以彼此结合地实施以实现本文描述的一个或更多个特征或优点。
图17示出了用于管理来自工业自动化***项目的多个开发者的设计贡献的示例方法1700。最初,在1702处,在与以协作方式开发自动化***项目的不同***开发者相关联的相应客户端设备上呈现工业IDE接口。在1704处,经由与IDE开发接口的交互接收针对自动化***项目的工业设计数据。工业设计数据可以以以下中的一个或更多个的形式提交:工业控制器程序(例如,梯形逻辑、顺序功能图、脚本控制代码例如工业DSL 等)、HMI画面开发输入、工业设备或装备选择、工程制图输入等。在一些实施方式中,工业设计数据还可以包括完整的工程图(例如,P&ID图、电气图、机械图等),可以由工业IDE对所述完整的工程图进行解析和分析以识别工业自动化***中正在设计的组件(例如,工业设备、机器、装备、导管、管道等)以及这些组件之间的功能及物理关系。
在1706处,做出关于是否接收到针对***项目的相同方面的多个版本的设计数据的确定。这些多个版本可以是例如:针对相同工业资产的控制的工业控制代码的一部分的不同版本;用于自动化***的可视化应用的不同版本、针对相同工业设备的不同配置参数设置集或者其他这样的设计数据集。
如果接收到针对相同方面的多个版本的设计数据(步骤1706处为“是”),则方法进行至步骤1708,在步骤1708处对在步骤1704处接收到的多个版本的设计数据执行比较分析,其中比较分析确定用于多个版本的相对适用性标准。例如,在多个版本的控制程序的情况下,该比较分析可以对以下进行估计:将由于执行每个版本的控制程序而得出的估计机器循环频率、将由每个版本的控制程序实现的机械资产的预期运动范围、将由相应版本的控制程序实现的单独机械运动的数量或者其他这样的性能估计。其他类型的相对性能标准也在一个或更多个实施方式的范围内。
在1710处,基于在步骤1708处获得的相对适用性标椎来选择设计数据的版本以包括在***项目中。例如,在上述多个控制程序版本的情况下, IDE***可以选择预期以使受控资产承受最少量的磨损的方式执行其控制功能同时仍然满足生产目标的控制程序的版本。其他选择标准也在一个或更多个实施方式的范围内。在1712处,将所选版本的设计数据集成到***项目中。
图18示出了用于向开发者通知对协作开发环境内的自动化***项目的修改的示例性方法1800。最初,在1802处,在与协作开发自动化***项目的相应不同开发者相关联的相应客户端设备上呈现工业IDE开发接口。在1804处,经由与IDE开发接口的交互来接收针对自动化***项目的工业设计数据。
在1806处,确定是否经由IDE开发接口之一从第一***开发者接收到对***项目的方面的修改。如果接收到这样的修改(步骤1806处为“是”),则该方法进行至步骤1808,在步骤1808处确定该修改是否被确定为会影响***项目的其他方面。在一些实施方式中,该确定可以基于回归分析来进行,其中对整个***项目执行回归分析,以确定***项目的哪些其他方面可能受到所提议的修改的影响。
如果确定修改影响***项目的其他方面(步骤1808处为“是”),则方法进行至步骤1810,在步骤1810处经由被指派为致力于***项目的其他方面的一个或更多个第二***开发者各自的开发接口向他们传递修改的通知。在1812处,确定是否从一个或更多个***开发者接收到对修改的批准。在这点上,IDE***可能需要协作协议,即一个开发者对***项目的一部分进行的修改不会不利地影响其他开发者正在设计的***项目的其他部分。如果从一个或更多个第二开发者中的所有开发者接收到了对修改的批准(步骤1812处为“是”),则将该修改集成到***项目中。
本文描述的实施方式、***和部件以及可以实现本说明书中阐述的各个方面的控制***和自动化环境可以包括计算机或网络组件,例如能够跨网络进行交互的服务器、客户端、可编程逻辑控制器(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和RAM 1912。基本输入/输出***(BIOS)可以被存储在诸如ROM、可擦除可编程只读存储器(EPROM)、EEPROM 的非易失性存储器中,其中该BIOS包含有助于例如在启动期间在计算机 1902内的元素之间传输信息的基本例程。RAM 1912还可以包括诸如用于缓存数据的静态RAM的高速RAM。
计算机1902还包括内部硬盘驱动器(HDD)1914(例如,EIDE、SATA)、一个或更多个外部存储设备1916(例如,磁软盘驱动器(FDD)1916、存储棒或闪存驱动器读取器、存储卡读取器等)以及光学驱动器1920(例如,其可以从CD-ROM盘、DVD、BD等读取或向其写入)。虽然内部 HDD 1914被示为位于计算机1902内,但是内部HDD 1914还可以被配置成在合适的机箱(未示出)中外部使用。另外,虽然在环境1900中未示出,但是除了HDD 1914以外还可以使用固态驱动器(SSD),或者用固态驱动器(SSD)代替HDD 1914。HDD 1914、(一个或多个)外部存储设备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可以是容器的形式,所述容器是包括例如代码、运行时间、***工具、***库和应用的设置的轻量级、独立的、可执行的软件包。
此外,计算机1902可以用安全模块例如可信处理模块(TPM)来启用。例如,使用TPM,指导部件对时间上的下一指导部件进行哈希处理,并且在加载下一指导部件之前等待结果与安全值的匹配。该过程可以发生在计算机1902的代码执行栈中的任何层,例如,应用在应用执行级或操作***(OS)内核级,从而使得能够在任何代码的执行级实现安全性。
用户可以通过一个或更多个有线/无线输入设备例如键盘1938、触摸屏1940和诸如鼠标1942的定点设备将命令和信息输入至计算机1902。其他输入设备(未示出)可以包括麦克风、红外(IR)遥控器、射频(RF) 遥控器、或其他遥控器、操纵杆、虚拟现实控制器和/或虚拟现实头戴式耳机、游戏垫、触摸笔、图像输入设备(例如,(一个或更多个)摄像机)、姿势传感器输入设备、视觉移动传感器输入设备、情绪或面部检测设备、生物测定输入设备(例如,指纹或虹膜扫描仪)等。这些输入设备和其他输入设备通常通过可以耦接至***总线1908的输入设备接口1944连接至处理单元1904,但也可以通过其他接口例如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口、
Figure RE-GDA0002579188560000381
接口等进行连接。
监视器1944或其他类型的显示设备也可以经由诸如视频适配器1948 的接口连接至***总线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还可以访问云存储***或其他基于网络的存储***,或者计算机1902可以代替如上所述的外部存储设备1916访问云存储***或其他基于网络的存储***。通常,可以例如分别通过适配器1956 或调制解调器1958通过LAN 1952或WAN 1954来建立计算机1902和云存储***之间的连接。在将计算机1902连接至相关联的云存储***时,外部存储接口1926可以在适配器1956和/或调制解调器1958的帮助下,如管理其他类型的外部存储一样管理由云存储***提供的存储。例如,外部存储接口1926可以被配置成提供对云存储源的访问,就好像这些源被物理地连接至计算机1902一样。
计算机1902能够进行操作以与可操作地布置在无线通信中的任何无线设备或实体进行通信,所述无线设备或实体例如打印机、扫描仪、台式计算机和/或便携式计算机、便携式数据助理、通信卫星、与以无线方式可检测的标签相关联的任何装备或位置(例如,亭、报摊、商店货架等) 以及电话。这可以包括无线保真(Wi-Fi)和
Figure RE-GDA0002579188560000391
技术。因此,通信可以是如常规网络的预定义结构或者仅仅是至少两个设备之间的自组织通信。
图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.根据权利要求5所述的***,其中,所述协作管理组件被配置成对所述***项目数据执行回归分析以确定所述***项目数据的各个方面之间的相互依赖关系,并且基于通过所述回归分析获知的相互依赖关系来确定所述修改是否将影响所述一个或更多个第二方面。
7.根据权利要求1所述的***,其中,所述用户接口组件被配置成根据与所述相应客户端设备相关联的用户的定义角色来定制所述相应客户端设备上的IDE接口。
8.根据权利要求7所述的***,其中,所述定义角色至少包括主导开发者角色,所述用户接口组件被配置成在与所述开发者角色相关联的客户端设备上呈现如下IDE接口,所述IDE接口进行以下中的至少之一:许可设计覆写特权,或者跟踪由与其他角色相关联的开发者提交的设计贡献。
9.根据权利要求1所述的***,其中:
所述客户端设备中的至少之一是可佩戴虚拟现实VR装置,
所述可执行组件还包括虚拟呈现组件,所述虚拟呈现组件被配置成在所述VR装置上呈现工业设施的交互式三维虚拟现实VR演示,
所述用户接口组件被配置成接收表示所述VR装置的佩戴者与所述工业设施的VR演示的手动交互的VR交互数据,所述手动交互指示对所述工业自动化***的方面进行定义的设计输入,以及
所述项目生成组件被配置成将所述VR交互数据转换成所述***项目数据的满足所述设计输入的一部分。
10.根据权利要求9所述的***,其中,所述可执行组件还包括代理组件,所述代理组件被配置成和与技术支持人员相关联的其他VR装置共享所述交互式三维VR演示。
11.根据权利要求1所述的***,其中,所述协作管理组件还被配置成进行以下中的至少之一:将从相应两个客户端设备接收到的两个交叠的设计数据集合并到所述***项目数据中;识别并删除所述***项目数据的冗余部分;或者经由所述IDE接口中的一个或更多个来呈现用于解决两个或更多个工业设计输入集之间的冲突的推荐。
12.一种用于协作开发工业控制应用的方法,包括:
由包括处理器的***在相应客户端设备上呈现集成开发环境IDE接口;
由所述***经由与所述IDE接口的交互来接收从所述客户端设备接收的对工业控制和监视项目的方面进行定义的工业设计输入;
由所述***基于所述工业设计输入来生成***项目数据;以及
由所述***从经由所述相应客户端设备提交的多个工业设计输入集中进行选择以包括在所述***项目数据中。
13.根据权利要求12所述的方法,其中:
所述接收包括:接收针对所述工业控制和监视项目的相同方面的替选版本的设计数据,
所述选择包括:针对定义的选择标准基于对所述替选版本的比较,来选择用于包括在所述***项目数据中的所述替选版本之一的设计数据,以及
所述生成包括:将所述替选版本之一的设计数据集成到所述***项目数据中。
14.根据权利要求13所述的方法,其中:
所述替选版本的设计数据是被设计成执行控制功能的工业控制代码段,并且
所述选择包括以下中的至少之一:
确定所述工业代码段中的哪些工业代码段被估计成使用最少量的程序来执行所述控制功能,
估计所述工业代码段中的哪些工业代码段将以使受控工业资产经受最少量的机械磨损的方式来执行所述控制功能,或者
估计所述工业代码段中的哪些工业代码段将使用最少数量的机械运动来执行所述控制功能。
15.根据权利要求13所述的方法,其中,所述选择包括基于对所述替选版本的设计数据执行的相应模拟的结果来选择所述替选版本之一的设计数据。
16.根据权利要求12所述的方法,还包括:
响应于接收到来自与第一用户相关联的第一客户端设备的定义对所述***项目数据的第一方面的修改的工业设计输入,由所述***确定所述工业控制和监视项目的被所述修改影响的一个或更多个第二方面,以及
由所述***在与指派为开发所述工业控制和监视项目的所述一个或更多个第二方面的用户相关联的一个或更多个第二客户端设备上呈现所述修改的通知。
17.根据权利要求16所述的方法,还包括:由所述***对所述***项目数据执行回归分析以确定所述***项目数据的各个方面之间的相互依赖关系,
其中,确定所述工业控制和监视项目的被所述修改影响的一个或更多个第二方面包括:基于通过所述回归分析获知的相互依赖关系来确定所述一个或更多个第二方面。
18.根据权利要求12所述的方法,其中,所述呈现包括:根据与所述相应客户端设备相关联的用户的定义角色来定制所述相应客户端设备上的IDE接口。
19.一种非暂态计算机可读介质,其上存储有指令,所述指令响应于被执行来使包括处理器的***执行包括如下操作的操作:
在相应客户端设备上呈现集成开发环境IDE接口;
经由与所述IDE接口的交互来接收从所述客户端设备接收的对工业自动化项目的方面进行定义的工业设计输入;
基于所述工业设计输入来生成***项目数据;以及
在经由所述相应客户端设备提交的多个工业设计输入集之间进行协调以集成到所述***项目数据中。
20.根据权利要求19所述的非暂态计算机可读介质,其中:
所述接收包括:接收针对所述工业自动化项目的相同方面的替选版本的设计数据,
所述选择包括:针对定义的选择标准基于对所述替选版本的比较,来选择用于包括在所述***项目数据中的所述替选版本之一的设计数据,以及
所述生成包括:将所述替选版本之一的设计数据集成到所述***项目数据中。
CN202010250230.9A 2019-09-26 2020-04-01 用于协作开发工业应用的***、方法和计算机介质 Active CN112558974B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/584,415 2019-09-26
US16/584,415 US11733687B2 (en) 2019-09-26 2019-09-26 Collaboration tools

Publications (2)

Publication Number Publication Date
CN112558974A true CN112558974A (zh) 2021-03-26
CN112558974B CN112558974B (zh) 2024-02-27

Family

ID=70058254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010250230.9A Active CN112558974B (zh) 2019-09-26 2020-04-01 用于协作开发工业应用的***、方法和计算机介质

Country Status (3)

Country Link
US (2) US11733687B2 (zh)
EP (1) EP3798768A3 (zh)
CN (1) CN112558974B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988316A (zh) * 2021-05-19 2021-06-18 北京创源微致软件有限公司 基于bs架构的工业视觉***开发方法和存储介质
CN113569328A (zh) * 2021-08-31 2021-10-29 重庆允成互联网科技有限公司 一种工厂三维模型搭建方法
CN113673894A (zh) * 2021-08-27 2021-11-19 东华大学 一种基于数字孪生的多人协作ar装配方法和***
CN113885849A (zh) * 2021-12-06 2022-01-04 航天云网数据研究院(广东)有限公司 基于工业互联网平台的应用开发方法、装置及终端设备
CN114722161A (zh) * 2022-06-09 2022-07-08 广州易方信息科技股份有限公司 在ide界面快速查询添加pm单任务状态的方法及装置

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US11392112B2 (en) 2019-09-26 2022-07-19 Rockwell Automation Technologies, Inc. Virtual design environment
US11733687B2 (en) 2019-09-26 2023-08-22 Rockwell Automation Technologies, Inc. Collaboration tools
US11042362B2 (en) 2019-09-26 2021-06-22 Rockwell Automation Technologies, Inc. Industrial programming development with a trained analytic model
US11080176B2 (en) 2019-09-26 2021-08-03 Rockwell Automation Technologies, Inc. Testing framework for automation objects
US11366567B2 (en) 2019-09-27 2022-06-21 Rockwell Automation Technologies, Inc. Preferential automation view curation
US11733669B2 (en) * 2019-09-27 2023-08-22 Rockwell Automation Technologies, Inc. Task based configuration presentation context
US11308447B2 (en) * 2020-04-02 2022-04-19 Rockwell Automation Technologies, Inc. Cloud-based collaborative industrial automation design environment
US11314493B1 (en) 2021-02-19 2022-04-26 Rockwell Automation Technologies, Inc. Industrial automation smart object inheritance
US20220309753A1 (en) * 2021-03-25 2022-09-29 B/E Aerospace, Inc. Virtual reality to assign operation sequencing on an assembly line
US11321932B1 (en) * 2021-05-21 2022-05-03 Delta Cygni Labs Oy Methods and systems for aligning manipulations in time and space
US11741066B2 (en) * 2021-05-25 2023-08-29 International Business Machines Corporation Blockchain based reset for new version of an application
US11899432B2 (en) * 2021-08-19 2024-02-13 Rockwell Automation Technologies, Inc. Industrial automation project library cross sharing
US20230244204A1 (en) 2022-01-25 2023-08-03 Hitachi, Ltd. Simplified plc programming with mobile device
US20230274215A1 (en) * 2022-02-28 2023-08-31 Rockwell Automation Technologies, Inc. Pharma innovator and manufacturing process data conversion with batch process performance data feedback
US11853311B2 (en) 2022-02-28 2023-12-26 Rockwell Automation Technologies, Inc. Manufacturing process data orchestration
US20230359973A1 (en) * 2022-05-04 2023-11-09 Kyndryl, Inc. Ad-hoc application development
WO2023218247A1 (en) * 2022-05-11 2023-11-16 Aequilibrium Software Inc. Virtual collaboration and presentation system

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060041440A1 (en) * 2004-08-20 2006-02-23 International Business Machines Corporation Method, system and program product for managing a project
WO2008115644A1 (en) * 2007-03-19 2008-09-25 Microsoft Corporation Using collaborative development information in a team environment
WO2014092694A1 (en) * 2012-12-11 2014-06-19 Hewlett-Packard Development Company, L.P. Provisioning tools for application development
US20140229389A1 (en) * 2013-02-14 2014-08-14 Rockwell Automation Technologies, Inc. Industrial automation social media paradigms
WO2016195690A1 (en) * 2015-06-04 2016-12-08 Siemens Aktiengesellschaft Method and system for generating plc code with a connectivity model
EP3318944A2 (en) * 2016-11-08 2018-05-09 Rockwell Automation Technologies, Inc. Virtual reality and augmented reality for industrial automation
CN109062555A (zh) * 2018-06-23 2018-12-21 上海泽阳智能科技有限公司 一种协作编程***
CN109787805A (zh) * 2018-11-16 2019-05-21 华北电力大学 基于多云协同的家庭智慧能源管理***

Family Cites Families (125)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04280320A (ja) 1991-03-08 1992-10-06 Nec Corp プログラム自動生成装置
US7058617B1 (en) 1996-05-06 2006-06-06 Pavilion Technologies, Inc. Method and apparatus for training a system model with gain constraints
US6993456B2 (en) 1999-09-30 2006-01-31 Rockwell Automation Technologies, Inc. Mechanical-electrical template based method and apparatus
US6993745B1 (en) 2000-03-09 2006-01-31 Electronic Data Systems Corporation Method and system for modeling a legacy computer system
GB2376114A (en) 2000-03-24 2002-12-04 Siemens Energy & Automat Industrial automation system graphical programming language storage and transmission
US7917863B2 (en) 2000-06-13 2011-03-29 National Instruments Corporation System and method for graphically creating a sequence of motion control operations
US6516451B1 (en) 2000-07-05 2003-02-04 Clarence Wayne Patin Standards-integrated design software
US7313609B1 (en) 2000-08-09 2007-12-25 Schneider Automation Inc. Method and apparatus for programming an automation device
US8131827B2 (en) 2001-05-09 2012-03-06 Rockwell Automation Technologies, Inc. PLC with web-accessible program development software
WO2003001376A1 (en) 2001-06-22 2003-01-03 Wonderware Corporation A customizable system for creating supervisory process control and manufacturing information applications
US6799718B2 (en) 2001-07-10 2004-10-05 Borland Software Corp. Development assistance for mixed-language sources
US6819960B1 (en) 2001-08-13 2004-11-16 Rockwell Software Inc. Industrial controller automation interface
US8086664B2 (en) 2001-09-24 2011-12-27 Siemens Industry, Inc. Method and apparatus for programming programmable controllers and generating configuration data from a centralized server
US7500224B2 (en) 2002-11-01 2009-03-03 Microsoft Corporation Code blueprints
US20050187643A1 (en) 2004-02-19 2005-08-25 Pavilion Technologies, Inc. Parametric universal nonlinear dynamics approximator and use
US7650574B2 (en) 2004-05-11 2010-01-19 National Instruments Corporation Visually indicating problems found during programmatic analysis of a graphical program
US7650594B2 (en) 2004-05-27 2010-01-19 National Instruments Corporation Graphical program analyzer with framework for adding user-defined tests
US20070209038A1 (en) 2006-02-13 2007-09-06 Carsten Fuchs Conflict avoidance and resolution in a distributed computing system
US7599897B2 (en) 2006-05-05 2009-10-06 Rockwell Automation Technologies, Inc. Training a support vector machine with process constraints
US7975233B2 (en) 2006-07-24 2011-07-05 National Instruments Corporation Automatic conversion of a textual language into a graphical program representation
US8812684B1 (en) 2006-09-28 2014-08-19 Rockwell Automation Technologies, Inc. Messaging configuration system
US20080092131A1 (en) 2006-10-16 2008-04-17 Invensys Systems, Inc. Centralized management of human machine interface applications in an object-based supervisory process control and manufacturing information system environment
US7934201B2 (en) 2006-10-17 2011-04-26 Artoftest, Inc. System, method, and computer readable medium for universal software testing
US8312417B2 (en) 2007-05-18 2012-11-13 International Business Machines Corporation Using dynamic call graphs for creating state machines
US20090064103A1 (en) 2007-09-04 2009-03-05 Shih Hsueh-Fu Method for editing programmer logic controller (plc) program
US7930639B2 (en) 2007-09-26 2011-04-19 Rockwell Automation Technologies, Inc. Contextualization for historians in industrial systems
US7676294B2 (en) 2007-09-27 2010-03-09 Rockwell Automation Technologies, Inc. Visualization of workflow in an industrial automation environment
US7899777B2 (en) 2007-09-27 2011-03-01 Rockwell Automation Technologies, Inc. Web-based visualization mash-ups for industrial automation
US20090089234A1 (en) 2007-09-28 2009-04-02 Rockwell Automation Technologies, Inc. Automated code generation for simulators
US20100269094A1 (en) 2007-11-13 2010-10-21 Roman Levenshteyn Technique for automatically generating software in a software development environment
US20090276752A1 (en) 2008-04-30 2009-11-05 International Business Machines Corporation Method for communicating collaborative software development information
CN101788791B (zh) 2008-09-30 2014-07-30 Ics三重自动化软件有限公司 用于工业自动化的应用构建器
US20100082133A1 (en) 2008-09-30 2010-04-01 Ics Triplex Isagraf Inc. Application builder for industrial automation
US8516312B2 (en) 2009-03-16 2013-08-20 Peter Beasley Behavior-based invention for predicting and avoiding network downtime
US8392876B2 (en) 2009-05-18 2013-03-05 National Instruments Corporation Cooperative execution of graphical data flow programs in multiple browsers
US20120212484A1 (en) 2010-02-28 2012-08-23 Osterhout Group, Inc. System and method for display content placement using distance and location information
US8818769B2 (en) 2010-10-28 2014-08-26 Parametric Technology Corporation Methods and systems for managing synchronization of a plurality of information items of a computer-aided design data model
US8667456B1 (en) 2011-04-20 2014-03-04 Google Inc. Cloud-based indexing for integrated development environments
US9389606B2 (en) 2011-11-11 2016-07-12 Rockwell Automation Technologies, Inc. Agile control model system and method
US9477936B2 (en) 2012-02-09 2016-10-25 Rockwell Automation Technologies, Inc. Cloud-based operator interface for industrial automation
US9223567B2 (en) 2012-02-17 2015-12-29 International Business Machines Corporation Integrated exchange of search results in an integrated software development environment
US20130332212A1 (en) 2012-06-06 2013-12-12 Alon Cohen Methods and systems for developing an optimised operational system in a network
US9825823B2 (en) 2012-07-03 2017-11-21 Hewlett Packard Enterprise Development Lp Managing a cloud service
US20140013313A1 (en) 2012-07-03 2014-01-09 Johan Eker Editor/Development Tool for Dataflow Programs
US20140047413A1 (en) 2012-08-09 2014-02-13 Modit, Inc. Developing, Modifying, and Using Applications
US9032376B2 (en) 2012-09-28 2015-05-12 Synopsys, Inc. Static analysis of computer code to determine impact of change to a code component upon a dependent code component
US9786197B2 (en) 2013-05-09 2017-10-10 Rockwell Automation Technologies, Inc. Using cloud-based data to facilitate enhancing performance in connection with an industrial automation system
US20140337277A1 (en) 2013-05-09 2014-11-13 Rockwell Automation Technologies, Inc. Industrial device and system attestation in a cloud platform
US9880820B2 (en) 2013-06-02 2018-01-30 Microsoft Technology Licensing, Llc Programming language with extensions using dynamic keywords
US20150186119A1 (en) 2013-12-31 2015-07-02 Rockwell Automation Technologies, Inc. Industrial automation device with editor and graphical object mobile visualization
CN105159656A (zh) 2014-06-16 2015-12-16 上海宝信软件股份有限公司 Plc软件编程辅助设计方法
US10620917B2 (en) 2014-10-02 2020-04-14 Siemens Aktiengesellschaft Programming automation in a 3D graphical editor with tightly coupled logic and physical simulation
US10372107B2 (en) 2014-10-15 2019-08-06 Rockwell Automation Technologies, Inc. Custom properties in an application environment
US11513477B2 (en) 2015-03-16 2022-11-29 Rockwell Automation Technologies, Inc. Cloud-based industrial controller
US11461936B2 (en) 2015-03-17 2022-10-04 Raytrx, Llc Wearable image manipulation and control system with micro-displays and augmentation of vision and sensing in augmented reality glasses
US9971344B2 (en) 2015-03-27 2018-05-15 Rockwell Automation Technologies, Inc. Systems and methods for assessing a quality of an industrial enterprise
US10950051B2 (en) 2015-03-27 2021-03-16 Rockwell Automation Technologies, Inc. Systems and methods for presenting an augmented reality
US10025287B2 (en) 2015-03-30 2018-07-17 Rockwell Automation Germany Gmbh & Co. Kg Method for assignment of verification numbers
US10387011B2 (en) 2015-05-08 2019-08-20 Rockwell Automation Technologies, Inc. System and method to capture and document cross-product compatibility status information for industrial devices
US9762454B2 (en) 2015-05-08 2017-09-12 Rockwell Automation Technologies, Inc. System and method to capture and document cross-product compatibility status information for industrial devices
EP3101565A1 (en) 2015-06-01 2016-12-07 Airbus Operations GmbH Aircraft assembly system
AU2016203818A1 (en) 2015-06-12 2017-01-05 Accenture Global Services Limited Data processor for project data
US10531127B2 (en) 2015-06-19 2020-01-07 Serious Simulations, Llc Processes systems and methods for improving virtual and augmented reality applications
US20170103440A1 (en) 2015-08-01 2017-04-13 Zhou Tian Xing Wearable augmented reality eyeglass communication device including mobile phone and mobile computing via virtual touch screen gesture control and neuron command
US9858070B2 (en) * 2015-10-05 2018-01-02 International Business Machines Corporation Development team file collaboration
US20170109933A1 (en) * 2015-10-14 2017-04-20 Prime Software Systems, Inc. Visualizing the structure and execution of a program
US10372834B2 (en) 2016-01-15 2019-08-06 DISCUS Software Company Creating and using an integrated technical data package
US11119886B2 (en) * 2016-02-17 2021-09-14 Mitsubishi Electric Corporation Software analysis apparatus, software analysis method, and computer readable medium
CN115373977A (zh) 2016-03-23 2022-11-22 江森自控泰科知识产权控股有限责任公司 实时数据流编程中模式驱动反应的组合
JP2017199077A (ja) 2016-04-25 2017-11-02 ファナック株式会社 複数台の産業機械を有する生産システムの動作を最適化するセルコントローラ
GB201608576D0 (en) 2016-05-16 2016-06-29 Pro Intex It Ltd Functional behaviour test system and method
US10331541B2 (en) 2016-06-14 2019-06-25 Open Invention Network Llc Collaborative data sharing and data modification application
US20180025286A1 (en) 2016-07-25 2018-01-25 International Business Machines Corporation Detecting trends in evolving analytics models
US20180039905A1 (en) 2016-08-03 2018-02-08 International Business Machines Corporation Large scale distributed training of data analytics models
US20180052451A1 (en) 2016-08-19 2018-02-22 Rockwell Automation Technologies, Inc. Remote industrial automation site operation in a cloud platform
US10764255B2 (en) 2016-09-21 2020-09-01 Rockwell Automation Technologies, Inc. Secure command execution from a cloud monitoring system to a remote cloud agent
US10559043B1 (en) 2016-10-25 2020-02-11 Flextronics Ap, Llc. Visualization tool for displaying and configuring routing paths and related attributes for tasks performed in manufacturing processes
US10735691B2 (en) 2016-11-08 2020-08-04 Rockwell Automation Technologies, Inc. Virtual reality and augmented reality for industrial automation
US10866631B2 (en) 2016-11-09 2020-12-15 Rockwell Automation Technologies, Inc. Methods, systems, apparatuses, and techniques for employing augmented reality and virtual reality
US20180197347A1 (en) 2017-01-11 2018-07-12 Taqtile Managing virtual reality objects
US20210327303A1 (en) 2017-01-24 2021-10-21 Tienovix, Llc System and method for augmented reality guidance for use of equipment systems
US20210327304A1 (en) 2017-01-24 2021-10-21 Tienovix, Llc System and method for augmented reality guidance for use of equpment systems
US20180246803A1 (en) 2017-02-28 2018-08-30 Ca, Inc. Targeted software testing
US10782668B2 (en) 2017-03-16 2020-09-22 Siemens Aktiengesellschaft Development of control applications in augmented reality environment
US11619924B2 (en) 2017-04-13 2023-04-04 Rockwell Automation, Inc. Combined visualization thin client HMI system and method
US20180357922A1 (en) 2017-06-08 2018-12-13 Honeywell International Inc. Apparatus and method for assessing and tracking user competency in augmented/virtual reality-based training in industrial automation systems and other systems
US10521612B2 (en) 2017-06-21 2019-12-31 Ca, Inc. Hybrid on-premises/software-as-service applications
US11200031B2 (en) 2017-07-06 2021-12-14 Mastercontrol Inc. Interface for building and updating processing modules in a manufacturing environment
US20190057548A1 (en) 2017-08-16 2019-02-21 General Electric Company Self-learning augmented reality for industrial operations
CN107463147A (zh) 2017-08-22 2017-12-12 北京天诚同创电气有限公司 Plc程序开发方法及装置
WO2019051492A1 (en) 2017-09-11 2019-03-14 Cubic Corporation TOOLS AND ARCHITECTURE OF IMMERSIVE VIRTUAL ENVIRONMENT (IVE)
US10684676B2 (en) 2017-11-10 2020-06-16 Honeywell International Inc. Simulating and evaluating safe behaviors using virtual reality and augmented reality
US10445944B2 (en) 2017-11-13 2019-10-15 Rockwell Automation Technologies, Inc. Augmented reality safety automation zone system and method
CN109840085A (zh) 2017-11-29 2019-06-04 德阳市福利叔网络开发有限责任公司 一种基于人工智能的软件设计方法
US11023349B2 (en) 2017-12-15 2021-06-01 Aveva Software, Llc Load test framework
US10564955B2 (en) 2018-01-03 2020-02-18 Huawei Technologies Co., Ltd. Method to manage multiple versions of parts of a software application and to retire older versions in a dynamically updatable software system
US10635409B2 (en) 2018-01-15 2020-04-28 Cognizant Technology Solutions India Pvt. Ltd. System and method for improving software code quality using artificial intelligence techniques
EP3511820A1 (en) 2018-01-15 2019-07-17 Siemens Aktiengesellschaft Cloud based artifact lifecycle management system and method thereof
WO2019136754A1 (zh) 2018-01-15 2019-07-18 深圳鲲云信息科技有限公司 人工智能处理装置的编译方法及***、存储介质及终端
US11275481B2 (en) 2018-03-07 2022-03-15 California Institute Of Technology Collaborative augmented reality system
US10657716B2 (en) 2018-03-07 2020-05-19 California Institute Of Technology Collaborative augmented reality system
US20190279132A1 (en) 2018-03-08 2019-09-12 General Electric Company Analytics core and aggregation
CN208314755U (zh) 2018-04-27 2019-01-01 李喜 一种人工智能开发平台和***
CN108829024B (zh) 2018-05-30 2020-10-27 广州明珞软控信息技术有限公司 一种plc程序生成方法及***
US10761810B2 (en) 2018-06-27 2020-09-01 Accenture Global Solutions Limited Automating testing and deployment of software code changes
US10705511B2 (en) 2018-07-11 2020-07-07 Siemens Aktiengesellschaft Abstraction layers for automation applications
US10503632B1 (en) 2018-09-28 2019-12-10 Amazon Technologies, Inc. Impact analysis for software testing
US10809991B2 (en) 2018-10-26 2020-10-20 Salesforce.Com, Inc. Security model for live applications in a cloud collaboration platform
US10739763B2 (en) 2018-11-13 2020-08-11 Rockwell Automation Technologies, Inc. Industrial control system with predictive machine learning module
US11526777B2 (en) 2018-12-04 2022-12-13 Accenture Global Solutions Limited Interactive design and support of a reference architecture
CN109765836A (zh) 2019-02-02 2019-05-17 宁波吉利汽车研究开发有限公司 Plc程序的自动生成方法、装置和实现装置
US11150893B2 (en) 2019-03-08 2021-10-19 International Business Machines Corporation Collaborative software development tool for resolving potential code-change conflicts in real time
US11107236B2 (en) 2019-04-22 2021-08-31 Dag Michael Peter Hansson Projected augmented reality interface with pose tracking for directing manual processes
US11048500B2 (en) 2019-07-10 2021-06-29 International Business Machines Corporation User competency based change control
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
US11042362B2 (en) 2019-09-26 2021-06-22 Rockwell Automation Technologies, Inc. Industrial programming development with a trained analytic model
US11733687B2 (en) 2019-09-26 2023-08-22 Rockwell Automation Technologies, Inc. Collaboration tools
US20210096704A1 (en) 2019-09-27 2021-04-01 Rockwell Automation Technologies, Inc. User interface logical and execution view navigation and shifting
US11733669B2 (en) 2019-09-27 2023-08-22 Rockwell Automation Technologies, Inc. Task based configuration presentation context
US10936807B1 (en) 2019-10-16 2021-03-02 Capital One Services, Llc Systems and methods for displaying effects of code changes
US20210294307A1 (en) 2020-03-19 2021-09-23 Honeywell International Inc. Assisted engineering design and development management system
US11726459B2 (en) 2020-06-18 2023-08-15 Rockwell Automation Technologies, Inc. Industrial automation control program generation from computer-aided design
US20210397171A1 (en) 2020-06-22 2021-12-23 Rockwell Automation Technologies, Inc. Industrial automation hmi program file generation from computer-aided design
CN113868102A (zh) 2020-06-30 2021-12-31 伊姆西Ip控股有限责任公司 用于信息显示的方法、电子设备和计算机程序产品

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060041440A1 (en) * 2004-08-20 2006-02-23 International Business Machines Corporation Method, system and program product for managing a project
WO2008115644A1 (en) * 2007-03-19 2008-09-25 Microsoft Corporation Using collaborative development information in a team environment
WO2014092694A1 (en) * 2012-12-11 2014-06-19 Hewlett-Packard Development Company, L.P. Provisioning tools for application development
US20140229389A1 (en) * 2013-02-14 2014-08-14 Rockwell Automation Technologies, Inc. Industrial automation social media paradigms
WO2016195690A1 (en) * 2015-06-04 2016-12-08 Siemens Aktiengesellschaft Method and system for generating plc code with a connectivity model
EP3318944A2 (en) * 2016-11-08 2018-05-09 Rockwell Automation Technologies, Inc. Virtual reality and augmented reality for industrial automation
CN109062555A (zh) * 2018-06-23 2018-12-21 上海泽阳智能科技有限公司 一种协作编程***
CN109787805A (zh) * 2018-11-16 2019-05-21 华北电力大学 基于多云协同的家庭智慧能源管理***

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988316A (zh) * 2021-05-19 2021-06-18 北京创源微致软件有限公司 基于bs架构的工业视觉***开发方法和存储介质
CN112988316B (zh) * 2021-05-19 2021-10-26 北京创源微致软件有限公司 基于bs架构的工业视觉***开发方法和存储介质
CN113673894A (zh) * 2021-08-27 2021-11-19 东华大学 一种基于数字孪生的多人协作ar装配方法和***
CN113673894B (zh) * 2021-08-27 2024-02-02 东华大学 一种基于数字孪生的多人协作ar装配方法和***
CN113569328A (zh) * 2021-08-31 2021-10-29 重庆允成互联网科技有限公司 一种工厂三维模型搭建方法
CN113569328B (zh) * 2021-08-31 2024-02-23 重庆允丰科技有限公司 一种工厂三维模型搭建方法
CN113885849A (zh) * 2021-12-06 2022-01-04 航天云网数据研究院(广东)有限公司 基于工业互联网平台的应用开发方法、装置及终端设备
CN113885849B (zh) * 2021-12-06 2022-04-12 航天云网数据研究院(广东)有限公司 基于工业互联网平台的应用开发方法、装置及终端设备
CN114722161A (zh) * 2022-06-09 2022-07-08 广州易方信息科技股份有限公司 在ide界面快速查询添加pm单任务状态的方法及装置
CN114722161B (zh) * 2022-06-09 2022-10-11 易方信息科技股份有限公司 在ide界面快速查询添加pm单任务状态的方法及装置

Also Published As

Publication number Publication date
CN112558974B (zh) 2024-02-27
EP3798768A3 (en) 2021-05-26
US20230324894A1 (en) 2023-10-12
US20210096553A1 (en) 2021-04-01
EP3798768A2 (en) 2021-03-31
US11733687B2 (en) 2023-08-22

Similar Documents

Publication Publication Date Title
CN112558974B (zh) 用于协作开发工业应用的***、方法和计算机介质
CN113495539B (zh) 基于云的协作工业自动化设计环境
CN112631555B (zh) 用于开发工业应用的***和方法
US11829121B2 (en) Virtual design environment
US11481313B2 (en) Testing framework for automation objects
CN114968188A (zh) 用于开发工业应用的***、方法及非暂态计算机可读介质
US11625683B2 (en) System and method of industrial automation multi-developer control code change commits
CN115877797A (zh) 工业自动化项目库交叉共享
CN115113914A (zh) 具有里程碑回滚的工业自动化分布式项目控制
US11900082B2 (en) Industrial automation multi-developer control code synchronization
EP4060479A1 (en) Notifications from an industrial automation development environment
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
GR01 Patent grant
GR01 Patent grant