CN112559315B - 用于自动化对象的测试框架 - Google Patents
用于自动化对象的测试框架 Download PDFInfo
- Publication number
- CN112559315B CN112559315B CN202010236312.8A CN202010236312A CN112559315B CN 112559315 B CN112559315 B CN 112559315B CN 202010236312 A CN202010236312 A CN 202010236312A CN 112559315 B CN112559315 B CN 112559315B
- Authority
- CN
- China
- Prior art keywords
- industrial
- item
- project
- automation
- test
- 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.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 219
- 238000013515 script Methods 0.000 claims abstract description 133
- 238000012800 visualization Methods 0.000 claims abstract description 61
- 238000011161 development Methods 0.000 claims abstract description 46
- 238000013461 design Methods 0.000 claims description 100
- 238000000034 method Methods 0.000 claims description 87
- 238000004458 analytical method Methods 0.000 claims description 41
- 230000015654 memory Effects 0.000 claims description 29
- 238000012986 modification Methods 0.000 claims description 25
- 230000004048 modification Effects 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 21
- 230000003993 interaction Effects 0.000 claims description 14
- 238000012544 monitoring process Methods 0.000 claims description 14
- 238000004519 manufacturing process Methods 0.000 claims description 13
- 238000012795 verification Methods 0.000 claims description 11
- 238000000611 regression analysis Methods 0.000 claims description 3
- 238000009428 plumbing Methods 0.000 abstract description 3
- 238000003860 storage Methods 0.000 description 47
- 238000010586 diagram Methods 0.000 description 32
- 230000008569 process Effects 0.000 description 26
- 238000004891 communication Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 17
- 230000000875 corresponding effect Effects 0.000 description 16
- 238000012937 correction Methods 0.000 description 11
- 238000009434 installation Methods 0.000 description 10
- 238000013499 data model Methods 0.000 description 7
- 239000000463 material Substances 0.000 description 6
- 230000006855 networking Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000001276 controlling effect Effects 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000010998 test method Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000011960 computer-aided design Methods 0.000 description 3
- 239000003814 drug Substances 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000010923 batch production Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000003339 best practice Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000005672 electromagnetic field Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 231100001261 hazardous Toxicity 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 230000035484 reaction time Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000004513 sizing Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000004512 die casting Methods 0.000 description 1
- 229940079593 drug Drugs 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000004801 process automation Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000005086 pumping Methods 0.000 description 1
- 238000013102 re-test Methods 0.000 description 1
- 238000005067 remediation Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 239000004753 textile Substances 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Programmable Controllers (AREA)
- Stored Programmes (AREA)
- Software Systems (AREA)
- Automation & Control Theory (AREA)
Abstract
本发明涉及用于自动化对象的测试框架。工业集成开发环境(IDE)支持对项目的所有方面(例如,控制器代码、HMI画面或其他可视化、面板布局、布线计划表等)的操作进行核验的测试框架。作为该测试框架的一部分,工业IDE支持的自动化对象包括被设计成执行适合于正在被测试的自动化对象或项目的类型的一个或更多个测试情景的相关联的测试脚本。测试脚本也可以与系统项目的各部分相关联。测试平台以整体的方式将测试应用于作为整体的自动化项目,而不是应用于控制程序的特定部分,以核验可能以其他方式无法测试的跨设计平台的链接(例如,控制代码、可视化、面板布局、布线、管道等)。
Description
技术领域
本发明涉及工业自动化系统,更具体地,涉及用于自动化对象的测试框架。
背景技术
本文公开的主题总体上涉及工业自动化系统,并且例如涉及工业编程开发平台。
发明内容
为了提供对本文所描述的一些方面的基本理解,下面展示了简化的概述。该概述不是广泛的综述,也不旨在标识关键/重要元素或描绘本文描述的各方面的范围。其唯一目的是以简化形式展现一些概念,作为稍后展示的更详细描述的序言。
在一个或更多个实施方式中,提供了一种用于开发工业应用的系统,该系统包括:用户接口部件,其被配置成呈现集成开发环境(IDE)界面并且经由与IDE界面的交互来接收限定工业自动化项目的各方面的工业设计输入;项目生成部件,其被配置成基于工业设计输入来生成系统项目数据,其中系统项目数据限定包括可执行工业控制程序、工业可视化应用或工业设备配置数据中的至少一个的系统项目,并且系统项目数据还包括表示相应工业资产并且具有与其相关联的相应测试脚本的自动化对象;以及项目测试部件,其被配置成执行测试脚本中的一个或更多个测试脚本以促进对系统项目数据的验证。
此外,一个或更多个实施方式提供了一种用于开发工业应用的方法,该方法包括:由包括处理器的系统在客户端设备上呈现集成开发环境(IDE)界面;由系统经由与IDE界面的交互来接收限定工业控制和监测项目的各方面的工业设计输入;由系统基于工业设计输入来生成系统项目数据,其中该生成包括生成可执行工业控制程序、工业可视化应用或工业设备配置数据中的至少一个,并且系统项目数据包括表示相应工业资产并且具有与其相关联的相应测试脚本的自动化对象;以及由系统针对系统项目数据执行测试脚本中的一个或更多个测试脚本以促进对系统项目数据的验证。
此外,根据一个或更多个实施方式,提供了一种其上存储有指令的非暂态计算机可读介质,所述指令响应于执行而使系统执行操作,所述操作包括:在客户端设备上呈现集成开发环境(IDE)界面;经由与IDE界面的交互从客户端设备接收限定工业自动化项目的控制设计方面的工业设计输入;基于工业设计输入来生成系统项目数据,其中该生成包括生成可执行工业控制程序、工业可视化应用或工业设备配置数据中的至少一个,并且系统项目数据包括表示相应工业资产并且具有与其相关联的相应测试脚本的自动化对象;以及针对系统项目数据执行测试脚本中的一个或更多个测试脚本以促进对系统项目数据的验证。
为了实现前述目的和相关目的,本文结合下面的描述和附图描述了某些说明性方面。这些方面指示可以被实践的各种方式,所有这些方式都旨在被涵盖在本文中。当结合附图考虑时,其他优点和新颖特征将根据下面的详细描述变得明显。
附图说明
图1是示例工业控制环境的框图。
图2是示例集成开发环境(IDE)系统的框图。
图3是示出工业IDE系统的通用架构的图。
图4是示出可以由IDE系统结合构建、部署和执行系统项目来利用的若干示例自动化对象特性的图。
图5是示出与使用工业IDE系统创建用于正被设计的自动化系统的系统项目相关联的示例数据流的图。
图6是示出将自动化对象合并至项目模型中的示例系统项目的图。
图7是示出对系统项目进行调试的图。
图8是示出其中使用基于云的IDE服务来开发工业应用并将工业应用部署至工厂环境的示例架构的图。
图9是示出由IDE系统的项目测试部件对示例系统项目进行测试的图。
图10是示出创建用于验证系统项目的定制测试脚本的图。
图11是示出了由IDE系统执行的项目相互依赖性分析的图。
图12是示出基于对系统项目的特性的分析来生成基于背景的测试脚本的图。
图13是用于验证工业自动化系统项目的示例方法学的流程图。
图14是用于定制和执行用于验证工业控制系统项目的测试脚本的示例方法学的流程图。
图15a是用于针对工业自动化系统项目生成和执行基于背景的测试脚本的示例方法学的第一部分的流程图。
图15b是用于针对工业自动化系统项目生成和执行基于背景的测试脚本的示例方法学的第二部分的流程图。
图16是用于针对工业自动化系统项目生成和执行基于背景的测试脚本的示例方法学的流程图。
图17是示例计算环境。
图18是示例联网环境。
具体实施方式
现在参照附图描述本公开内容,其中相同的附图标记始终用于表示相同的元素。在下面的描述中,出于说明的目的,阐述了许多具体细节以提供对本公开内容的透彻理解。然而,显然,可以在没有这些具体细节的情况下实践本公开内容。在其他实例中,以框图形式示出了公知的结构和设备以便于对其进行描述。
如本申请中所使用的,术语“部件”、“系统”、“平台”、“层”、“控制器”、“终端”、“站”、“节点”、“接口”旨在指代计算机相关实体或者与具有一个或更多个特定功能的操作装置相关的实体或者作为具有一个或更多个特定功能的操作装置的一部分的实体,其中这样的实体可以是硬件、硬件和软件的组合、软件或者执行中的软件。例如,部件可以是但不限于是在处理器上运行的进程、处理器、硬盘驱动器、包括固定的(例如,用螺钉或螺栓固定的)或可移除的固定固态存储驱动器的(光存储介质或磁存储介质的)多个存储驱动器;对象;可执行文件;执行线程;计算机可执行程序和/或计算机。作为说明,服务器和在服务器上运行的应用都可以是部件。一个或更多个部件可以驻留在执行的进程和/或线程内,并且部件可以位于一个计算机上和/或分布在两个或更多计算机之间。此外,本文所述的部件可以从其上存储有各种数据结构的各种计算机可读存储介质执行。这些部件可以例如根据具有一个或更多个数据包的信号(例如,来自与本地系统、分布式系统中的另一部件进行交互和/或通过诸如因特网之类的网络经由该信号与其他系统进行交互的一个部件的数据)经由本地和/或远程进程进行通信。作为另一示例,部件可以是具有由电气电路或电子电路操作的机械部件提供的特定功能的装置,该电气电路或电子电路由处理器执行的软件或固件应用来操作,其中处理器可以在该装置的内部或外部并且执行软件或固件应用的至少一部分。作为另一示例,部件可以是通过电子部件而不是机械部件来提供特定功能的装置,电子部件中可以包括处理器以执行至少部分地提供电子部件的功能的软件或固件。作为另一示例,接口可以包括输入/输出(I/O)部件以及相关联的处理器、应用或应用编程接口(API)部件。虽然前述示例针对部件的各方面,但是所例示的方面或特征也适用于系统、平台、接口、层、控制器、终端等。
如本文所使用的,术语“推出”和“推断”通常是指从经由事件和/或数据捕获的观察结果的集合中推出或推断系统、环境和/或用户的状态的过程。例如,推断可以被应用于识别特定的环境或动作,或者可以生成状态的概率分布。推断可以是概率性的,即,基于对数据和事件的考虑来计算感兴趣的状态的概率分布。推断也可以指用于根据事件和/或数据的集合构造更高级事件的技术。这种推断致使根据观察到的事件和/或存储的事件数据的集合构造新的事件或动作,而不管事件是否在时间上紧密相关,以及事件和数据是否来自一个或若干个事件和数据源。
此外,术语“或”旨在表示包含性的“或”而不是排他性的“或”。也就是说,除非另外指定,或者根据上下文中而清楚,语句“X采用A或B”旨在表示任何自然的包含性排列。也就是说,语句“X采用A或B”满足于以下任何情况:X采用A;X采用B;或者X采用A和B两者。此外,除非另外指定或根据上下文而清楚指向单数形式,否则本申请和所附权利要求中使用的冠词“一”和“一个”通常应当被解释为表示“一个或更多个”。
此外,如本文所使用的术语“集合”排除空集合,例如其中没有元素的集合。因此,本公开内容中的“集合”包括一个或更多个元素或实体。作为说明,控制器的集合包括一个或更多个控制器;数据资源的集合包括一个或更多个数据资源等。同样,如本文所用的术语“组”是指一个或更多个实体的集合,例如,一组节点是指一个或更多个节点。
将根据可以包括多个设备、部件、模块等的系统来展示各个方面或特征。应当理解和意识到,各种系统可以包括附加的设备、部件、模块等,以及/或者可以不包括结合附图讨论的所有设备、部件、模块等。也可以使用这些方法的组合。
图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可以通过工厂网络116与工业控制器118中的一个或更多个进行通信,并且与工业控制器交换数据以便于在一个或更多个预先开发的操作者接口屏幕上对与受控工业过程有关的信息进行可视化。HMI 114还可以被配置成使得操作者能够将数据提交至工业控制器118的指定数据标签或存储器地址,从而为操作者提供向受控系统发出命令(例如,循环启动命令、设备致动命令等)以修改设定点值等的手段。HMI 114可以生成一个或更多个显示画面,操作者通过该显示画面与工业控制器118交互,并且从而与受控过程和/或系统交互。示例显示画面可以使用显示计量的或计算的值的过程的图形表示来可视化工业系统或其相关联的设备的当前状态,采用基于状态的颜色或位置动画,呈现警报通知,或采用其他这样的技术以用于向操作者展示相关数据。以这种方式展示的数据由HMI 114从工业控制器118读取并且根据由HMI开发者选择的显示格式展现显示画面中的一个或更多个。HMI可以包括具有用户安装的或预先安装的操作系统以及用户安装的或预先安装的图形应用软件的固定位置或移动设备。
一些工业环境还可以包括与受控工业系统的特定方面相关的其他系统或设备。这些可以包括例如聚合并存储从工业控制器118或其他数据源收集的生产信息的数据历史记录装置110、包含用于构成受控工业系统的各种工业设备的电子文档的设备文档存储、库存跟踪系统、工作订单管理系统、用于机器或过程制图和文档的储存库、供应商产品文档存储、供应商知识库、内部知识库、工作调度应用或其他这样的系统,它们中的一些或全部可以驻留在工业环境的办公网络108上。
高级系统126可以执行与工厂现场的工业自动化系统的控制不太直接相关并且替代地涉及长期规划、高级监督控制、分析、报告或其他这样的高级功能的功能。这些系统126可以驻留在相对于工厂设施的外部位置处的办公网络108上,或者驻留在可以访问办公网络和/或工厂网络的云平台上。高级系统126可以包括但不限于云存储和分析系统、大数据分析系统、制造执行系统、数据湖、报告系统等。在一些情景下,在企业的这些更高级运行的应用可以被配置成分析控制系统操作数据,并且该分析的结果可以被反馈至控制系统处的操作者或者直接反馈至控制系统中的控制器118或设备120。
构成工业环境的各种控制、监测和分析设备必须使用特定于每个设备的相应配置应用来编程或配置。例如,工业控制器118通常使用诸如(例如,在客户端设备124上执行的)梯形逻辑编辑器的控制编程开发应用来配置和编程。使用这样的开发平台,设计者可以编写用于执行期望的工业序列或过程的控制编程(例如,梯形逻辑、结构化文本、功能框图等)并且将得到的程序文件下载至控制器118。单独地,开发者使用(例如,在客户端设备122上执行的)HMI开发平台为HMI 114设计可视化画面和相关联的导航结构并且将得到的可视化文件下载至HMI 114。一些工业设备120——例如马达驱动器、遥测设备、安全输入设备等——也可能需要使用特定于将被配置的设备的(例如,在客户端设备128上执行的)单独的设备配置工具进行配置。这样的设备配置工具可以用于设置设备参数或操作模式(例如,高/低限制、输出信号格式、比例因子、能耗模式等)。
需要使用单独的配置工具来对工业自动化系统的不同方面进行编程和配置造成了碎片化的设计方法,由此在不同的开发环境上单独地设计、配置和编程自动化系统的不同但相关或交叠的方面。例如,运动控制系统可能需要使用控制逻辑编程平台对工业控制器进行编程并且对控制回路进行调谐,使用另一配置平台对马达驱动器进行配置,以及使用可视化开发平台对相关联的HMI进行编程。相关的外围系统——例如视觉系统、安全系统等——可能也需要使用单独的编程或开发应用进行配置。
这种分离的开发方法也可能需要相当多的测试和调试工作以确保单独配置的系统方面的适当集成。在这点上,由于未能适当地协调不同的编程工作,不同系统方面之间的预期数据接口或协调动作可能需要大量调试。
此外,作为常规自动化系统项目开发的一部分,通常必须编写测试脚本以测试和调试控制代码。例如,如果将用于泵或其他类型的工业资产的控制编程添加至项目,则可以编写测试脚本(例如,Python脚本)以将测试数据注入至控制程序中并评估响应。这种项目测试方法的工时成本可能很高,因为可能需要一个团队的人来管理这种手动测试和调试并且运行所有可能的测试情景。因为(例如,如果调试器仅测试控制代码的所选择的部分)可能错过一些测试情景,因此这种方法还可能造成测试不充分的控制代码,并且因此表面上测试过的代码在现场可能不工作。
为了解决这些或其他问题中的至少一些,本文描述的一个或更多个实施方式提供了用于使用通用设计环境和数据模型来设计、编程和配置工业自动化系统的多个方面的集成开发环境(IDE)。工业IDE的实施方式可用于以通用的方式配置和管理自动化系统设备,以促进控制系统的控制、可视化和其他方面的集成的、多学科编程。
通常,工业IDE支持跨越整个自动化生命周期的特征,包括设计(例如,设备选择和尺寸设计、控制器编程、可视化开发、设备配置、测试等);安装、配置和调试;操作、改进和管理;以及故障排除、扩展和升级。
工业IDE的实施方式可以包括特定于工业纵向市场和这些纵向市场内的通用工业应用的模块化代码和可视化的库。这些代码和可视化模块可以简化开发并缩短开发周期,并且还支持跨工业企业的一致性和重复使用。
在一些实施方式中,工业IDE还可以支持对项目的所有方面(例如,控制器代码、HMI画面或其他可视化、面板布局、布线计划表等)的操作进行核验的用于自动化的测试框架。作为这种测试框架的一部分,工业IDE所支持的自动化对象可以包括被设计成执行适合于正在被测试的自动化对象的类型的一个或更多个测试情景的相关联的测试脚本。测试脚本也可以与系统项目的各部分相关联。通常,测试平台以整体的方式将测试应用于作为整体的自动化项目,而不是应用于控制程序的特定部分,以核验可能以其他方式无法测试的跨设计平台的链接(例如,控制代码、可视化、面板布局、布线、管道等)。
图2是根据本公开内容的一个或更多个实施方式的示例集成开发环境(IDE)系统202的框图。在本公开内容中说明的系统、装置或过程的各方面可以构成在机器内实施的机器可执行部件,例如在与一个或更多个机器相关联的一个或更多个计算机可读介质(或多个介质)中实施的机器可执行部件。这些部件在由一个或更多个机器例如计算机、计算设备、自动化设备、虚拟机等执行时可以使机器执行所描述的操作。
IDE系统202可以包括包含IDE编辑器224的用户接口部件204、项目生成部件206、项目部署部件208、项目测试部件210、测试脚本处理部件212、项目分析部件214、一个或更多个处理器218以及存储器220。在各种实施方式中,用户接口部件204、项目生成部件206、项目部署部件208、项目测试部件210、测试脚本处理部件212、项目分析部件214、一个或更多个处理器218以及存储器220中的一个或更多个可以彼此电耦接和/或通信地耦接以执行IDE系统202的功能中的一个或更多个。在一些实施方式中,部件204、206、208、210、212和214可以包括存储在存储器220上并由处理器218执行的软件指令。IDE系统202还可以与图2中未描绘的其他硬件部件和/或软件部件进行交互。例如,处理器218可以与一个或更多个外部用户接口设备例如键盘、鼠标、显示器监测器、触摸屏或其他这样的接口设备进行交互。
用户接口部件204可以被配置成接收用户输入和以任何合适的格式(例如,视觉、音频、触觉等)将输出呈现给用户。在一些实施方式中,用户接口部件204可以被配置成与在客户端设备(例如,膝上型计算机、平板计算机、智能电话等)上执行的IDE客户端通信地连接,该客户端设备(例如,经由硬连线或无线连接)通信地连接至IDE系统202。用户接口部件204然后可以经由IDE客户端接收用户输入数据和呈现输出数据。在其他实施方式中,用户接口部件204可以被配置成生成合适的接口画面并将其提供给客户端设备(例如,程序开发画面),并且经由这些接口画面来交换数据。可以经由用户接口部件204的各种实施方式接收的输入数据可以包括但不限于编程代码、工业设计规范或目标、工程制图、AR/VR输入、DSL定义、视频或图像数据、项目测试脚本或其他这样的输入。由用户接口部件204的各种实施方式呈现的输出数据可以包括程序代码、编程反馈(例如,错误和突出显示、编码建议等)、编程和可视化开发画面、项目测试结果等。
项目生成部件206可以被配置成基于经由用户接口部件204接收的设计输入以及工业知识、预定义代码模块和可视化和由IDE系统202维护的自动化对象222来创建包括一个或更多个项目文件的系统项目。项目部署部件208可以被配置成将由项目生成部件206创建的系统项目委派给适当的工业设备(例如,控制器、HMI终端、马达驱动器、AR/VR系统等)以供执行。为此,项目部署部件208可以识别系统项目的相应部分应当被发送至其以供执行的适当目标设备,将这些相应部分转化成目标设备可理解的格式,并且将转化后的项目部件部署至其对应设备。
项目测试部件210可以被配置成执行与自动化对象222或系统项目的其他元素相关联的测试脚本以验证项目的各个方面的正确执行。测试脚本处理部件212可以被配置成根据用户输入来添加或修改定制测试脚本并且将这些测试脚本与指示的自动化对象或项目元素相关联。项目分析部件214可以被配置成出于在系统项目的相关部分上生成和执行该测试脚本的目的来分析作为整体的系统项目以识别项目元素之间的依赖性。
一个或更多个处理器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,包括但不限于泵、罐、阀、马达驱动器(例如,变频驱动器)、工业机器人、致动器(例如,气动或液压致动器)或其他这样的资产。自动化对象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、护栏(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画面或窗口、聚合来自多个预先指定的源的数据的混搭、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的一些实施方式还可以监测用于共同编程的功能(例如,泵送应用、批处理、码垛堆积操作等)的特定于客户的设计方法并且基于设计者的目标的推断和实现该目标而学习的方法来生成用于用户可能希望合并到当前设计项目中的设计模块(例如,代码模块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实现基于规则的编程,由此基于编码的工业专业知识和最佳实践(例如,识别正被开发的代码中的低效部分并且推荐适当的校正)来呈现诸如动态智能自动校正、输入提示或编码建议的编程反馈(设计反馈518的子集)。
用户还可以针对外部供应商(例如OEM)提供的代码来运行他们自己的内部护栏模板506以确保该代码符合内部编程标准。在这样的情景中,供应商提供的代码可以被提交至IDE系统202,并且项目生成部件206可以鉴于由一个或更多个定制护栏模板506指定的内部编码标准来分析该代码。基于该分析的结果,用户接口部件204可以(例如,使用突出显示、覆盖文本等)指示供应商提供的代码中的不符合护栏模板506所阐述的编程标准的部分,并且显示用于修改代码的建议以使代码符合要求。作为推荐这些修改的替选方案或者除了推荐这些修改以外,项目生成部件206的一些实施方式可以被配置成根据推荐自动修改代码以使代码符合要求。
在作出作为设计反馈518的一部分的编码建议时,项目生成部件206可以调用存储在代码模块数据库中(例如,存储器220上)的所选择的代码模块508。这些代码模块508包括用于控制通用工业任务或应用(例如,码垛堆积、流量控制、幅面张力控制、拾取和放置应用、传送机控制等)的标准化编码段。在一些实施方式中,代码模块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的属性——包括本文中将更详细讨论的与自动化对象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并且将该控制程序文件702(例如,经由工厂网络116)发送至控制器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——并将这些文件部署至工厂设施中的适当设备以促进自动化项目的实现。
为了减少编写用于测试和调试系统项目302的测试脚本的需要,IDE系统202可以支持在所有级别上核验项目302的操作的测试框架。除了上面结合图4讨论的自动化对象222的各种特性和属性以外,自动化对象222还可以包括可用于跨一系列相关情景验证系统项目302的相关联的测试元素作为该测试框架的一部分。图9是示出由IDE系统的项目测试部件210对示例系统项目302进行测试的图。如上所述,用作系统项目302的基础的项目数据模型602限定自动化对象222之间的层次关系,所述自动化对象222可以表示自动化系统的各方面,例如工业资产(例如,控制器、罐、阀、缸、工业机器人、泵等)、工业过程、工业设备或其他系统方面。除了如上面结合图4讨论的与自动化对象222相关联的其他特性和属性(例如,逻辑元素、可视化元素等)以外,自动化对象222还可以包括测试特性作为由IDE系统202支持的全局测试框架的一部分。这些测试特性可以包括被设计成测试和调试自动化对象222和参考对象222的系统项目302的相关联方面的特定于对象的测试脚本902。对象的测试特性还可以包括限定可以有利地针对自动化对象222和参考对象222的相关联的项目元素运行的一个或更多个测试情景的特定于对象的测试情景限定904。测试情景限定904可以基于关于由自动化对象222表示的工业资产或过程的工业专业知识来设计。
自动化对象222可以被提供有特定于由自动化对象222表示的工业资产的类型的预先捆绑的测试脚本902和/或测试情景限定904。在如上面所描述的系统项目302的开发期间或之后,IDE系统的项目测试部件210可以适时执行与一个或更多个所选择的自动化对象222相关联的测试脚本902以核验系统项目302的正确响应,从而验证该项目。为此,测试脚本902可以限定要提供至自动化对象222和/或其中使用对象222的相关联的项目代码的模拟测试输入912以及自动化对象222及其相关联的项目代码对模拟输入912的预期响应。
根据示例测试过程,项目测试部件210可以针对系统项目302执行与相应一个或更多个自动化对象222相关联的一个或更多个测试脚本902。测试脚本902的执行可以涉及例如根据由测试脚本902限定的序列将模拟测试输入912馈送至系统项目302的控制代码或其他元素、根据限定的序列设置由系统项目302限定的数字或模拟程序变量的值、根据限定的序列启动系统项目302的控制例程、测试由系统项目302限定的动画对象或其他可视化元素、核验控制例程之间的数据链接、核验程序元素与制图元素之间的关系、确认设备配置设置或参数值适合于由系统项目302执行的给定工业应用、或者根据由测试脚本902限定的测试过程以其他方式与系统项目302进行交互。在测试期间,项目测试部件210可以监测测试结果906或系统项目302对由测试脚本902限定的测试交互的响应并且确定这些测试结果906是否与由测试脚本902限定的预期结果相匹配。以这种方式,可以在不需要开发定制测试脚本来调试系统项目代码的情况下在部署之前核验系统项目302的正确操作。
在一些测试情景中,测试脚本902可以限定测试序列,该测试序列以整体的方式应用于作为整体的系统项目302,而不是应用于特定的控制程序或例程。例如,项目测试部件210可以执行测试脚本902,该测试脚本902核验可能以其他方式无法测试的跨设计平台的链接或关系例如控制代码、可视化应用、电气制图、面板布局定义、布线计划表、管道图等。
如果测试结果906指示系统项目302的一个或更多个方面的不正确操作,则项目测试部件210可以生成并呈现一个或更多个设计推荐908,所述一个或更多个设计推荐908指示将校正项目的操作的对系统项目302的可能修改。这些设计推荐908可以包括例如控制代码修改或替换、对数据标签地址的推荐的校正、对HMI图形对象参考的推荐的校正、用于与控制代码保持一致的对机械制图或电气制图的推荐的校正(例如,将缺失的输出设备添加至与控制编程所参考的输出设备相对应的电气制图)、对工业设备的配置参数的推荐的修改或其他这样的校正。
一些自动化对象222的测试特性可以限定应当在对象222及其对应的控制代码和项目元素上运行的多个测试情景904,以确保对象222和相关代码的全面测试。这些情景904基于与由自动化对象及其相关项目元素表示的工业资产或过程相关的预先学习的工业专业知识。在一些实现方式中,每个限定的测试情景904可以具有其自己的相关联的测试脚本902,或者可以限定应用测试脚本902的特定方式(例如,验证系统项目的控制代码的哪些例程、出于验证的目的应当交叉参考哪些其他项目元素,等等)。在系统项目302的测试期间,项目测试部件210可以根据每个限定的测试情景904依次执行一个或更多个测试脚本902以全面地验证系统项目302跨所有平台的正确操作(控制编程、可视化配置、制图、设备配置等)。
在一些实施方式中,项目测试部件210还可以被配置成基于对系统项目302的分析来生成验证检查列表并且经由用户接口部件204输出该验证检查列表。该验证检查列表可以提供关于应当结合调试针对其开发系统项目302的自动化系统执行的现场测试和检查的指示。这些可以包括应当在自动化系统硬件上和电气连接上执行的测试,而该测试不能仅经由系统项目302的测试来执行。示例验证检查列表可以包括其连通性应当被核验的I/O点的列表、视觉地检查安装有面板的设备的指示、应当被执行以核验正确的机器操作的手动操作者面板交互的序列或其他这样的信息。
IDE系统202的一些实施方式可以使得终端用户能够在IDE系统202上开发的项目302上开发和运行他们自己的定制测试脚本。图10是示出创建用于验证系统项目302的定制测试脚本1002的图。在这个示例中,用户可以向IDE系统202提交定制测试脚本1006并且将这些测试脚本与所选择的自动化对象222相关联。在定制测试脚本1002的开发期间,测试脚本处理部件212可以(经由用户接口部件204)呈现脚本处理反馈1004以引导用户完成定制脚本处理过程。该反馈1004可以包括例如测试脚本格式推荐、关于基于要针对其开发项目302的工业应用或纵向市场的推断类型应当测试系统项目302的哪些方面的推荐或其他这样的反馈。在完成定制测试脚本1002后,测试脚本处理部件212可以用由用户提交的定制测试脚本1002来补充或替换与所选择的自动化对象相关联的现有测试脚本。作为将定制脚本1002与自动化对象222相关联的替选方案,定制测试脚本1002可以与系统项目302内限定的代码段或模块相关联,使得每当修改相关联的代码段时就执行测试脚本1002,以核验这些修改没有使系统项目302的部分无效。
通常,对已经测试的工业控制代码的改变可能导致受该改变影响的代码的其他部分的操作的不可预见的改变。常规地,对控制代码的修改必须手动地重新测试,因为开发者可能不能确定代码的哪些其他部分将受到修改的影响。考虑到需要重新测试的量,通常不鼓励设计者在测试之后对控制项目作出改变。与该方法相比,由于测试脚本902的执行是由本文所描述的IDE系统202支持的集成测试框架的一部分,因此对系统项目302的后续修改可能在已知将受修改影响的系统项目302的部分上调用适当的预定义测试脚本902的执行。图11是示出了由IDE系统202执行的项目相互依赖性分析的图。在一些实施方式中,IDE系统202可以包括对已完成的或开发中的系统项目302执行相互依赖性分析1108的项目分析部件214。该分析1108跨系统项目302识别项目相互依赖性1106,包括但不限于控制代码段或例程之间的程序关系或依赖性、控制代码段与可视化元素之间的依赖性、控制代码与工程制图(例如,I/O图、电气制图、面板布局制图等)之间的依赖性或其他这样的关系。在一些实施方式中,项目分析部件214可以通过执行相互依赖性抓取器(crawler)来学习这些相互依赖性1106,该相互依赖性抓取器执行回归分析以学习系统项目302的代码段和/或其他元素之间的相互依赖性。项目分析部件214还可以识别由项目数据模型602限定的自动化对象和/或控制代码例程或模块之间的层次关系。项目测试部件210可以使用这些层次关系来确定控制代码的哪些部分应当响应于对这些部分之一的改变而被重新测试。然后,项目分析部件214可以利用这些学习的项目相互依赖性1106来训练项目测试部件210,以用于随后的项目验证。
例如,如上所述,IDE系统202可以支持经验证的测试脚本902与相应自动化对象222或控制代码的相应部分的关联。如果系统项目的控制代码的一部分被开发者改变,则项目测试部件210可以基于如基于所学习的项目相互依赖性1106所确定的系统项目302的哪些其他方面可能受到修改的影响的知识来识别系统项目302的哪些部分需要被重新测试。基于这些相互依赖性,项目测试部件210将重新执行适当的测试脚本902以重新核验可能已经受修改影响的系统项目302的部分。以这种方式,IDE系统202可以确定需要多少重新测试来验证对系统项目302的给定修改。
在一些实施方式中,工业IDE系统202还可以支持基于背景的测试。图12是示出基于对系统项目的特性的分析来生成基于背景的测试脚本1202的图。根据该方法,项目分析部件214对系统项目302执行分析1208以确定项目的一个或更多个特性1206并且基于这些特性1206以要针对系统项目302执行的情境测试脚本1202形式自生成验证和核验例程。例如,项目分析部件214可以基于正在针对其开发系统项目302的自动化系统或项目的类型的推断来生成情境测试脚本1202。在这点上,项目测试部件210可以基于对项目302中使用的某些类型的控制编程、代码模块508或可视化510的识别来推断自动化系统或应用的类型。基于自动化系统或应用的类型的这种知识,项目测试部件210可以利用经编码的工业专业知识来生成特定于应用的情境测试脚本1202的合适集合,该特定于应用的情境测试脚本1202的合适集合可以由项目测试部件210针对系统项目302来运行。可以基于在考虑到正在设计的自动化项目的类型的情况下应当核验哪些系统方面的预编程知识来生成这些情境测试脚本1202。
在一些实施方式中,项目分析部件214还可以识别系统项目302所涉及的工业纵向市场(例如,汽车、石油和天然气、食品和药品等),并且基于所识别的纵向市场来生成情境测试脚本1202。在这点上,可以知道某些工业纵向市场授权与验证工业控制编程或系统项目的其他方面相关的特定测试方法,并且这些测试方法可以由项目分析部件214根据所识别的纵向市场生成的情境测试脚本1202来实现。
图13至图16示出了根据本申请的一个或更多个实施方式的各种方法学。虽然出于简化说明的目的,本文所示的一个或更多个方法学被示出且描述为一系列动作,但是应当理解和明白,本发明不受动作的次序限制,因为根据本发明,一些动作可以按与本文所示和所述的次序不同的次序发生以及/或者与其他动作同时发生。例如,本领域技术人员将理解和明白,方法学可以替选地被表示为诸如状态图中的一系列相互关联的状态或事件。此外,并非所有示出的动作都是实现根据本发明的方法学所必需的。此外,当不同的实体制定方法学的不同部分时,交互图可以表示根据本公开内容的方法学或方法。此外,所公开的示例方法中的两个或更多个可以彼此结合地实现以实现本文描述的一个或更多个特征或优点。
图13示出了用于验证工业自动化系统项目的示例方法学1300。初始地,在1302处,经由与工业IDE系统的交互来接收工业设计数据。工业设计数据可以以工业控制器编程(例如,梯形逻辑、顺序功能图表、诸如工业DSL的脚本控制代码等)、HMI画面开发输入、工业设备或装备选择、工程制图输入等中的一个或更多个的形式提交。在一些实施方式中,工业设计数据还可以包括完成的工程制图(例如,P&ID制图、电气制图、机械制图等),所述工程制图可以由工业IDE解析和分析以识别正在设计的工业自动化系统的部件(例如,工业设备、机器、装备、导管、管道等)以及这些部件之间的功能和物理关系。
在一些实施方式中,设计数据还可以包括图像或视频。例如,可以将正在设计的工业自动化系统要安装的安装地点的图像或视频提交至工业IDE,工业IDE可以分析该图像或视频以识别安装区域内的物理元素(例如,墙、梁、安全围栏、现有机器和设备等)以及这些元素之间的物理关系(例如,机器或其他物理元素之间的距离、管道铺设的长度、线束或电缆桥架的位置和距离等)。基于该制图或图像/视频分析的结果,工业IDE可以将部件添加至工程图表、生成用于在制图或图像中识别的部件的控制编程或可视化、生成合适的设备参数设置、生成关于设备或机器的最佳位置的推荐等。
对于支持基于目标的编程的工业IDE的实施方式,设计数据还可以包括例如在所需产品或材料输出率、最大总能耗率、安装空间的约束(如上面所描述的,其可以基于安装地点的图像或视频获得)或其他这样的参数方面对期望的设计目标和相关联的设计约束的指示。基于这些设计目标和约束,工业IDE可以生成自动化系统项目的至少一部分,包括能够鉴于指定的约束满足指定的设计目标的装备或设备选择、控制代码、制图、可视化或设备参数中的一个或更多个。
在1304处,基于在步骤1302处接收的设计数据生成工业自动化系统项目。系统项目包括一个或更多个自动化对象,所述一个或更多个自动化对象具有用于验证自动化对象和参考自动化对象或以其他方式与自动化对象相关联的控制编程的部分的相关联的测试脚本。系统项目包括可以在工业控制设备(例如,PLC或另一类型的工业控制设备)、人机接口终端或另一类型的工业设备中的至少一个上部署和执行的一个或更多个可执行文件。这些文件可以包括例如工业控制编程文件、可视化应用文件、设备配置文件或其他这样的可执行或配置部件。系统项目还可以包括由IDE系统基于设计输入生成的其他工程文档,包括但不限于工程制图(例如,I/O制图、电气制图、P&ID制图等)、材料清单、安装指示或其他这样的文档。
自动化对象是工业自动化系统项目的构建块并且表示各种类型的现实工业资产或过程,包括但不限于泵、罐、阀、马达、马达驱动器(例如,变频驱动器)、工业机器人、致动器(例如,气动或液压致动器)或其他这样的资产。自动化对象根据其所表示的资产或过程与各种属性或特性相关联,所述属性或特性包括限定用于验证其中使用自动化对象的控制编程的测试例程的一个或更多个测试脚本。测试脚本可以根据要馈送至自动化对象和/或其相关联的控制代码的模拟输入的序列以及代码对模拟输入的预期响应来限定测试路由(Routing)。在一些实施方式中,自动化对象可以被配置成基于其中使用自动化对象的编程背景(例如针对其开发系统项目的自动化应用的类型、其中使用系统项目的纵向市场、由其中使用自动化对象的控制代码部分执行的工业功能等)来动态地修改自动化对象的相关联的测试脚本。
在1306处,执行测试脚本以验证包括自动化对象的系统项目的部分以及相关控制代码和参考系统项目的该部分的系统项目的其他部分(例如,可视化应用、工程制图等)的正确操作。在1308处,基于系统项目对测试脚本的执行的响应,作出关于项目是否被验证的确定。如果项目被验证(步骤1308处为是),则该方法学结束。可替选地,如果项目未被验证(步骤1308处为否),则项目进行至步骤1310,在步骤1310处推荐用于以将满足测试脚本的方式修改系统项目的推荐。这种推荐可以包括例如推荐的控制代码修改或替换、对数据标签地址的推荐的校正、对HMI图形对象参考的推荐的校正、用于与控制代码保持一致的对机械制图或电气制图的推荐的校正、对工业设备的配置参数的推荐的修改或其他这样的校正。除了生成建议或者作为生成建议的替选方案,在步骤1310处,可以在系统项目中自动执行校正。
图14示出了用于定制和执行用于验证工业控制系统项目的测试脚本的示例方法学1400。在1402处,接收要与工业IDE系统支持的所选择的自动化对象相关联的定制测试脚本。在1404处,经由与工业IDE系统的交互来接收工业设计数据。在1406处,基于在步骤1404处接收到的设计数据生成工业自动化系统项目。该系统项目包括具有在步骤1404处限定的相关联测试脚本的自动化对象中的一个或更多个。步骤1404和步骤1406可以分别类似于方法学1300的步骤1302和步骤1304。
在1408处,执行定制测试脚本以验证包括自动化对象的系统项目的部分以及控制代码的相关部分和参考自动化对象的系统项目的其他方面的正确操作。在1410处,基于系统项目对定制测试脚本的执行的响应,作出关于项目是否被核验的确定。如果项目被核验(步骤1410处为是),则该方法学结束。可替选地,如果项目未被验证(步骤1410处为否),则该方法学进行至步骤1412,在步骤1412处生成用于以满足定制测试脚本的方式修改系统项目的推荐。可替选地或另外地,所述推荐可以由IDE系统自动执行。步骤1412可以类似于方法学1300的步骤1310。
图15a示出了用于针对工业自动化系统项目生成和执行基于背景的测试脚本的示例方法学1500a的第一部分。初始地,在1502处,经由与工业IDE系统的交互来接收工业设计数据。在1504处,基于在步骤1504处接收到的设计数据生成工业自动化系统项目。该系统项目包括具有相关联的测试脚本的一个或更多个自动化对象。步骤1502和步骤1504可以分别类似于方法学1300的步骤1302和步骤1304。
在1506处,分析在步骤1504处生成的自动化系统项目以学习控制代码段、自动化对象、可视化和/或系统项目中限定的其他项目元素之间的相互依赖性。在步骤1506处执行的分析可以是例如识别哪些系统元素(例如,控制代码段、HMI可视化对象、自动化对象、工程制图元素)确定其他系统元素的行为或状态的回归分析。
在1508处,执行测试脚本以验证系统项目的正确操作。在1510处,基于系统项目对在步骤1508处测试脚本的执行的响应,作出关于项目是否被验证的确定。如果项目未被验证(步骤1510处为否),则该方法学进行至步骤1514,在步骤1514处生成用于以满足测试脚本的方式修改系统项目的推荐。步骤1514可以类似于方法学1300的步骤1310。然后,该方法学返回至步骤1502,并且重复步骤1502至步骤1510,直到在步骤1510处项目被验证。
当项目已经被验证时(步骤1510处为是),该方法学进行至图15b中所示的第二部分1500b。在1516处,作出关于是否接收到对已验证的系统项目的修改的确定。如果接收到这样的修改(步骤1516处为是),则该方法学进行至步骤1518,在步骤1518处基于在步骤1506处学习的相互依赖性来确定受该修改影响的系统项目的部分。例如,如果修改了特定代码段,则参考所学习的相互依赖性来确定控制代码的哪些其他部分以及系统项目的其他元素参考该代码段并且因此可能受该修改的影响。在1520处,执行与在步骤1518确定为受该修改影响的系统项目的部分相对应的测试脚本的子集以重新验证系统项目。在1522处,基于对在步骤1520执行的测试脚本的系统响应,作出关于项目是否被重新验证的确定。如果项目未被重新验证(步骤1522处为否),则该方法学进行至步骤1524,在步骤1524处生成用于以满足测试脚本的子集的方式修改系统项目的另一推荐。可替选地或另外地,在步骤1524处,推荐的修改可以由工业IDE系统自动执行。如果项目被基于测试脚本的子集重新验证(步骤1522处为是),则该方法学结束。
图16示出了用于针对工业自动化系统项目生成和执行基于背景的测试脚本的示例方法学1600。初始地,在1602处,经由与工业IDE系统的交互来接收工业设计数据。在1604处,基于在步骤1602接收到的设计数据生成工业自动化系统项目。该系统项目包括具有相关联的测试脚本的一个或更多个自动化对象。步骤1602和步骤1604可以分别类似于方法学1300的步骤1302和步骤1304。
在1606处,分析在步骤1604处生成的系统项目以学习确定用于验证该项目的合适的测试情景的系统项目的特性。这样的特性可以包括例如正在针对其开发系统项目的自动化系统或应用的类型,其可以基于对项目中使用的某些类型的控制编程、代码模块或可视化的识别来确定。
在1608处,生成情境测试脚本并将其与系统项目相关联,其中情境测试脚本根据在步骤1606处发现的特性限定要对系统项目执行的测试例程。在1610处,执行在步骤1608生成的测试脚本以验证系统项目的操作。在1612处,基于在步骤1610处测试脚本的执行,作出关于项目是否被验证的确定。如果项目未被验证(步骤1612处为否),则该方法学进行至步骤1614,在步骤1614处生成用于以满足测试脚本的方式修改系统项目的推荐。可替选地或另外地,在步骤1614处,IDE系统可以自动执行系统项目中的推荐。如果在步骤1612处项目被验证(步骤1612处为是),则该方法学结束。
本文描述的实施方式、系统和部件以及可以在其中执行本说明书中阐述的各个方面的控制系统和自动化环境可以包括计算机或网络部件例如能够跨网络进行交互的服务器、客户端、可编程逻辑控制器(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、红外和其他无线介质。
再次参照图17,用于实现本文描述的各方面的各实施方式的示例环境1700包括计算机1702,计算机1702包括处理单元1704、系统存储器1706和系统总线1708。系统总线1708将包括但不限于系统存储器1706的系统部件耦接至处理单元1704。处理单元1704可以是各种可商购的处理器中的任何一种。也可以采用双微处理器和其他多处理器架构作为处理单元1704。
系统总线1708可以是若干类型的总线结构中的任一种,该总线结构还可以使用各种可商购的总线架构中的任一种来互连至存储器总线(带有存储器控制器或不带有存储器控制器)、外围总线和局部总线。系统存储器1706包括ROM 1710和RAM 1712。基本输入/输出系统(BIOS)可以被存储在诸如ROM、可擦除可编程只读存储器(EPROM)、EEPROM的非易失性存储器中,该BIOS包含有助于例如在启动期间在计算机1702内的元素之间传输信息的基本例程。RAM 1712还可以包括诸如用于高速缓存数据的静态RAM的高速RAM。
计算机1702还包括内部硬盘驱动器(HDD)1714(例如,EIDE、SATA)、一个或更多个外部存储设备1716(例如,磁软盘驱动器(FDD)1716、存储棒或闪存驱动器读取器、存储卡读取器等)以及光盘驱动器1720(例如,其可以从CD-ROM盘、DVD、BD等读取或写入)。虽然内部HDD 1714被示为位于计算机1702内,但是内部HDD 1714还可以被配置成在合适的机箱(未示出)中在外部使用。另外,虽然在环境1700中未示出,但是除了HDD 1714以外或者代替HDD1714,还可以使用固态驱动器(SSD)。HDD 1714、(一个或多个)外部存储设备1716和光盘驱动器1720可以分别通过HDD接口1724、外部存储接口1726和光盘驱动器接口1728连接至系统总线1708。用于外部驱动器实现方式的接口1724可以包括通用串行总线(USB)和电气与电子工程师协会(IEEE)1394接口技术中的至少一个或两者。其他外部驱动器连接技术在本文描述的实施方式的考虑内。
驱动器及其相关联的计算机可读存储介质提供数据、数据结构、计算机可执行指令等的非易失性存储。对于计算机1702,驱动器和存储介质以合适的数字格式容纳任何数据的存储。尽管上面对计算机可读存储介质的描述涉及相应类型的存储设备,但是本领域技术人员应当理解,也可以在示例操作环境中使用计算机可读的其他类型的存储介质,无论所述存储介质是当前存在的还是将来开发的,并且此外,任何这样的存储介质可以包含用于执行本文所描述的方法的计算机可执行指令。
多个程序模块可以被存储在驱动器和RAM 1712中,所述多个程序模块包括操作系统1730、一个或更多个应用程序1732、其他程序模块1734和程序数据1736。操作系统、应用、模块和/或数据中的全部或部分也可以被高速缓存在RAM 1712中。本文描述的系统和方法可以利用各种可商购的操作系统或操作系统的组合来实现。
计算机1702可以可选地包括仿真技术。例如,管理程序(未示出)或其他中间设备可以仿真用于操作系统1730的硬件环境,并且所仿真的硬件可以可选地不同于图17中所示的硬件。在这样的实施方式中,操作系统1730可以包括在计算机1702处托管的多个虚拟机(VM)中的一个VM。此外,操作系统1730可以为应用程序1732提供运行环境,例如Java运行环境或.NET框架。运行环境是使得应用程序1732能够在包括该运行环境的任何操作系统上运行的一致执行环境。类似地,操作系统1730可以支持容器,并且应用程序1732可以是容器的形式,所述容器是包括例如代码、运行时间、系统工具、系统库和应用的设置的轻量级、独立的、可执行的软件包。
此外,计算机1702可以用安全模块例如可信处理模块(TPM)来启用。例如,使用TPM,引导部件对时间上的下一引导部件进行哈希处理,并且在加载下一引导部件之前等待结果与安全值的匹配。该过程可以发生在计算机1702的代码执行栈中的任何层,例如,应用在应用执行级或操作系统(OS)内核级,从而在任何代码的执行级实现安全性。
用户可以通过一个或更多个有线/无线输入设备例如键盘1738、触摸屏1740和诸如鼠标1742的定点设备将命令和信息输入至计算机1702中。其他输入设备(未示出)可以包括麦克风、红外(IR)遥控器、射频(RF)遥控器、或其他遥控器、操纵杆、虚拟现实控制器和/或虚拟现实头戴式耳机、游戏垫、触摸笔、诸如摄像装置的图像输入设备、姿势传感器输入设备、视觉移动传感器输入设备、情绪或面部检测设备、诸如指纹或虹膜扫描仪的生物测定输入设备等。这些输入设备和其他输入设备通常通过可以耦接至系统总线1708的输入设备接口1744连接至处理单元1704,但也可以通过其他接口例如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口、等进行连接。/>
监测器1744或其他类型的显示设备也可以经由诸如视频适配器1746的接口连接至系统总线1708。除了监测器1744以外,计算机通常包括其他外围输出设备(未示出)例如扬声器、打印机等。
计算机1702可以使用经由到诸如远程计算机1748的一个或更多个远程计算机的有线和/或无线通信的逻辑连接在联网环境中操作。远程计算机1748可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他通用网络节点,并且通常包括相对于计算机1702所描述的许多或所有元件,尽管为了简明起见仅示出了存储器/存储设备1750。所描绘的逻辑连接包括到局域网(LAN)1752和/或更大的网络例如广域网(WAN)1754的有线/无线连接。这样的LAN和WAN联网环境在办公室和公司中是常见的,并且促进了诸如内联网的企业范围的计算机网络,所有这些计算机网络都可以连接至诸如因特网的全球通信网络。
当在LAN联网环境中使用时,计算机1702可以通过有线和/或无线通信网络接口或适配器1756连接至局域网1752。适配器1756可以促进到LAN 1752的有线或无线通信,LAN1752还可以包括布置在其上的无线接入点(AP),以用于以无线模式与适配器1756进行通信。
当在WAN联网环境中使用时,计算机1702可以包括调制解调器1758,或者可以经由用于通过WAN 1754建立通信的其他手段例如通过因特网来连接至WAN 1754上的通信服务器。调制解调器1758——其可以是内部的或外部的并且可以是有线设备或无线设备——可以经由输入设备接口1742连接至系统总线1708。在联网环境中,相对于计算机1702或其部分描绘的程序模块可以被存储在远程存储器/存储设备1750中。将理解,所示的网络连接是示例并且可以使用在计算机之间建立通信链路的其他手段。
当在LAN或WAN联网环境中使用时,除了或代替如上所述的外部存储设备1716,计算机1702还可以访问云存储系统或其他基于网络的存储系统。通常,可以例如分别通过适配器1756或调制解调器1758通过LAN 1752或WAN 1754来建立计算机1702与云存储系统之间的连接。在将计算机1702连接至相关联的云存储系统时,外部存储接口1726可以在适配器1756和/或调制解调器1758的帮助下如管理其他类型的外部存储一样管理由云存储系统提供的存储。例如,外部存储接口1726可以被配置成提供对云存储源的访问,就好像这些源物理地连接至计算机1702一样。
计算机1702能够被操作成与可操作地布置在无线通信中的任何无线设备或实体进行通信,所述无线设备或实体例如打印机、扫描仪、桌上型和/或便携式计算机、便携式数据助理、通信卫星、与无线可检测标签相关联的任何设备或位置(例如,亭、报摊、商店货架等)以及电话。这可以包括无线保真(Wi-Fi)和无线技术。因此,通信可以是如常规网络的预定义结构或者仅仅是至少两个设备之间的自组织通信。
图18是所公开的主题可以与之交互的样本计算环境1800的示意性框图。样本计算环境1800包括一个或更多个客户端1802。客户端1802可以是硬件和/或软件(例如,线程、进程、计算设备)。样本计算环境1800还包括一个或更多个服务器1804。服务器1804也可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器1804可以容纳线程以通过采用例如本文所述的一个或更多个实施方式来执行变换。客户端1802与服务器1804之间的一种可能的通信可以是适于在两个或更多个计算机进程之间传输的数据分组的形式。样本计算环境1800包括可以用于促进客户端1802与服务器1804之间的通信的通信框架1806。客户端1802可操作地连接至可用于存储客户端1802本地的信息的一个或更多个客户端数据存储设备1808。类似地,服务器1804可操作地连接至可用于存储服务器1804本地的信息的一个或更多个服务器数据存储设备1810。
上面所描述的内容包括本发明的示例。当然,不可能为了描述所公开的主题而描述部件或方法学的每个可设想到的组合,但是本领域普通技术人员可以认识到,本发明的许多另外的组合和置换是可能的。因此,所公开的主题旨在涵盖落入所附权利要求书的精神和范围内的所有这样的改变、修改和变型。
尤其是关于由上面描述的部件、设备、电路、系统等执行的各种功能,除非另外指出,否则用于描述这样的部件的术语(包括对“手段”的引用)旨在对应于执行所描述的部件的指定功能的任何部件(例如,功能上等效的任何部件),即使在结构上不等效于所公开的结构而该部件执行本文示出的所公开主题的示例性方面中的功能也是如此。在这点上,还将认识到,所公开的主题包括系统以及具有用于执行所公开的主题的各种方法的动作和/或事件的计算机可执行指令的计算机可读介质。
此外,虽然可能仅针对若干实现方式中的一个实现方式公开了所公开的主题的特定特征,但是这样的特征可以如针对任何给定应用或特定应用来说可能期望有利的与其他实现方式的一个或更多个其他特征组合。此外,就在说明书或权利要求书中使用术语“包含”和“具有”及其变型来说,这些术语旨在以类似于术语“包括”的方式包括在内。
在本申请中,词语“示例性”用于表示用作示例、实例或说明。本文描述为“示例性”的任何方面或设计不一定被解释为比其他方面或设计优选或有利。在某种程度上,词语示例性的使用旨在以具体方式表现概念。
本文描述的各个方面或特征可以使用标准编程和/或工程技术实现为方法、装置或制品。如本文所使用的术语“制品”旨在涵盖可从任何计算机可读设备、载体或介质访问的计算机程序。例如,计算机可读介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁条…)、光盘(例如,压缩盘(CD)、数字多功能盘(DVD)…)、智能卡和闪存设备(例如,卡、棒、钥匙驱动器…)。
Claims (19)
1.一种用于开发工业应用的系统,包括:
存储器,其存储可执行部件;以及
处理器,其可操作地耦接至所述存储器,所述处理器执行所述可执行部件,所述可执行部件包括:
用户接口部件,其被配置成呈现集成开发环境界面并且经由与所述集成开发环境界面的交互来接收限定工业自动化项目的各方面的工业设计输入;
项目生成部件,其被配置成基于所述工业设计输入来生成系统项目数据,其中,
所述系统项目数据限定包括可执行工业控制程序、工业可视化应用或工业设备配置数据中的至少一个的系统项目,并且
所述系统项目数据还包括表示相应工业资产的自动化对象,
其中所述自动化对象包括相应控制代码以及相应测试脚本,所述测试脚本被设计成验证参考所述自动化对象的、所述系统项目的方面;以及
项目测试部件,其被配置成执行所述测试脚本中的一个或更多个测试脚本以促进对所述系统项目的验证,
其中,所述用户接口部件还被配置成:响应于确定所述系统项目的一个或更多个方面未被所述测试脚本中的一个或更多个测试脚本验证,呈现用于以满足所述一个或更多个测试脚本的方式修改所述系统项目的推荐。
2.根据权利要求1所述的系统,其中,所述测试脚本中的测试脚本限定要由所述项目测试部件注入至所述系统项目的模拟输入的序列以及所述系统项目对所述模拟输入的预期响应。
3.根据权利要求1所述的系统,其中,所述自动化对象还限定要由所述项目测试部件执行的多个测试情景以促进对所述系统项目的验证。
4.根据权利要求1所述的系统,还包括测试脚本处理部件,所述测试脚本处理部件被配置成根据经由所述用户接口部件提交的定制测试脚本输入将定制测试脚本添加至所述自动化对象中的自动化对象。
5.根据权利要求1所述的系统,还包括项目分析部件,所述项目分析部件被配置成分析所述系统项目数据以识别所述系统项目的一个或更多个特性来基于所述一个或更多个特性生成情境测试脚本并且将所述情境测试脚本分配给所述自动化对象中的自动化对象。
6.根据权利要求5所述的系统,其中,所述一个或更多个特性包括所述工业自动化项目涉及的工业纵向市场或由所述工业自动化项目执行的自动化应用中的至少一个。
7.根据权利要求1所述的系统,还包括项目分析部件,所述项目分析部件被配置成分析所述系统项目数据以识别所述系统项目的元素之间的相互依赖性,
其中,所述项目测试部件还被配置成响应于检测到对所述系统项目的一部分的修改而基于所述相互依赖性来确定受所述修改影响的所述系统项目数据的子集并且执行与所述系统项目数据的所述子集相关联的所述测试脚本的子集。
8.根据权利要求7所述的系统,其中,所述系统项目的元素包括控制代码段、可视化对象、工程制图元素或设备配置参数中的至少一个。
9.根据权利要求7所述的系统,其中,所述项目分析部件被配置成基于对所述系统项目数据执行的回归分析来识别所述相互依赖性。
10.根据权利要求1所述的系统,其中,所述自动化对象表示工业过程、控制器、控制程序、所述控制程序内的标签、机器、马达、马达驱动器、遥测设备、罐、阀、泵、工业安全设备、工业机器人或致动器中的至少一个。
11.根据权利要求1所述的系统,其中,所述自动化对象中的自动化对象具有相关联的工业资产的输入、输出、分析例程、警报、安全特征或图形表示中的至少一个,并且所述自动化对象中的自动化对象与相关联的工业资产的输入、输出、分析例程、警报、安全特征或图形表示中的至少一个相关联。
12.一种用于开发工业应用的方法,包括:
由包括处理器的系统在客户端设备上呈现集成开发环境界面;
由所述系统经由与所述集成开发环境界面的交互来接收限定工业控制和监测项目的各方面的工业设计输入;
由所述系统基于所述工业设计输入来生成系统项目数据,其中,所述系统项目数据限定包括可执行工业控制程序、工业可视化应用或工业设备配置数据中的至少一个的系统项目,并且所述系统项目数据包括表示相应工业资产的自动化对象,其中所述自动化对象包括相应控制代码以及相应测试脚本,所述测试脚本被设计成验证参考所述自动化对象的、所述系统项目的方面;
由所述系统针对所述系统项目数据执行所述测试脚本中的一个或更多个测试脚本以促进对所述系统项目的验证;以及
由所述系统响应于确定所述系统项目的一个或更多个方面未被所述测试脚本中的一个或更多个测试脚本验证,呈现用于以满足所述一个或更多个测试脚本的方式修改所述系统项目的推荐。
13.根据权利要求12所述的方法,其中,所述执行包括将由所述测试脚本中的一个或更多个测试脚本限定的模拟输入的序列注入至所述工业控制和监测项目并且确定所述工业控制和监测项目的响应是否符合由所述测试脚本中的一个或更多个测试脚本限定的预期响应。
14.根据权利要求12所述的方法,还包括:
由所述系统接收经由所述集成开发环境界面提交的定制测试脚本;以及
由所述系统将所述测试脚本与所述自动化对象中的一个自动化对象相关联。
15.根据权利要求12所述的方法,还包括:
由所述系统基于对所述系统项目数据的分析来识别所述工业控制和监测项目的一个或更多个特性,
由所述系统基于所述一个或更多个特性生成情境测试脚本,以及
由所述系统将所述情境测试脚本分配给所述自动化对象中的自动化对象。
16.根据权利要求15所述的方法,其中,所述识别包括识别所述工业控制和监测项目所涉及的工业纵向市场或由所述工业控制和监测项目执行的自动化应用中的至少一个。
17.根据权利要求12所述的方法,还包括:
由所述系统分析所述系统项目数据以识别所述工业控制和监测项目的元素之间的相互依赖性;以及
响应于检测到对所述工业控制和监测项目的一部分的修改而:
由所述系统基于所述相互依赖性来确定受所述修改影响的所述系统项目数据的子集,以及
由所述系统执行与所述系统项目数据的所述子集相关联的所述测试脚本的子集。
18.一种其上存储有指令的非暂态计算机可读介质,所述指令响应于执行而使包括处理器的系统执行操作,所述操作包括:
在客户端设备上呈现集成开发环境界面;
经由与所述集成开发环境界面的交互从所述客户端设备接收限定工业自动化项目的控制设计方面的工业设计输入;
基于所述工业设计输入来生成系统项目数据,其中,所述系统项目数据限定包括生成可执行工业控制程序、工业可视化应用或工业设备配置数据中的至少一个的系统项目,并且所述系统项目数据包括表示相应工业资产的自动化对象,其中所述自动化对象包括相应控制代码以及相应测试脚本,所述测试脚本被设计成验证参考所述自动化对象的、所述系统项目的方面;
针对所述系统项目数据执行所述测试脚本中的一个或更多个测试脚本以促进对所述系统项目的验证;以及
响应于确定所述系统项目的一个或更多个方面未被所述测试脚本中的一个或更多个测试脚本验证,呈现用于以满足所述一个或更多个测试脚本的方式修改所述系统项目的推荐。
19.根据权利要求18所述的非暂态计算机可读介质,其中,所述执行包括将由所述测试脚本中的一个或更多个测试脚本限定的模拟输入的序列注入至所述工业自动化项目并且确定所述工业自动化项目的响应是否符合由所述测试脚本中的一个或更多个测试脚本限定的预期响应。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/584,368 | 2019-09-26 | ||
US16/584,368 US11080176B2 (en) | 2019-09-26 | 2019-09-26 | Testing framework for automation objects |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112559315A CN112559315A (zh) | 2021-03-26 |
CN112559315B true CN112559315B (zh) | 2024-01-09 |
Family
ID=70110084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010236312.8A Active CN112559315B (zh) | 2019-09-26 | 2020-03-30 | 用于自动化对象的测试框架 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11080176B2 (zh) |
EP (1) | EP3798851A1 (zh) |
CN (1) | CN112559315B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11243874B2 (en) * | 2020-03-31 | 2022-02-08 | Tata Consultancy Services Limited | Knowledge centric approach to auto-generate test specifications for IoT solutions |
US11449028B2 (en) | 2020-09-03 | 2022-09-20 | Rockwell Automation Technologies, Inc. | Industrial automation asset and control project analysis |
US11294360B2 (en) * | 2020-09-09 | 2022-04-05 | Rockwell Automation Technologies, Inc. | Industrial automation project code development guidance and analysis |
US11561517B2 (en) | 2020-09-09 | 2023-01-24 | Rockwell Automation Technologies, Inc. | Industrial development hub vault and design tools |
US11415969B2 (en) | 2020-09-21 | 2022-08-16 | Rockwell Automation Technologies, Inc. | Connectivity to an industrial information hub |
US11796983B2 (en) | 2020-09-25 | 2023-10-24 | Rockwell Automation Technologies, Inc. | Data modeling and asset management using an industrial information hub |
US11809845B2 (en) * | 2020-11-03 | 2023-11-07 | Allstate Solutions Private Limited | Automated validation script generation and execution engine |
US11314493B1 (en) * | 2021-02-19 | 2022-04-26 | Rockwell Automation Technologies, Inc. | Industrial automation smart object inheritance |
US11586186B2 (en) | 2021-03-17 | 2023-02-21 | Rockwell Automation Technologies, Inc. | System model smart object configuration |
US11748243B2 (en) | 2021-04-27 | 2023-09-05 | Salesforce, Inc. | Intelligent generation of page objects for user interface testing |
US11636025B2 (en) * | 2021-04-27 | 2023-04-25 | Salesforce, Inc. | Intelligent generation of automated user interface testing methods |
JP2022175568A (ja) * | 2021-05-14 | 2022-11-25 | オムロン株式会社 | バージョン管理方法、バージョン管理のプログラム、および、バージョン管理のシステム |
CN113220438A (zh) * | 2021-06-02 | 2021-08-06 | 中国邮政储蓄银行股份有限公司 | 执行作业的系统、测试批量作业的方法与装置 |
CN113254008B (zh) * | 2021-06-21 | 2024-04-19 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及设备 |
CN113468048B (zh) * | 2021-06-21 | 2023-03-28 | 上汽通用五菱汽车股份有限公司 | 系统测试方法、装置、设备及计算机可读存储介质 |
US11962456B2 (en) * | 2021-07-21 | 2024-04-16 | Microsoft Technology Licensing, Llc | Automated cross-service diagnostics for large scale infrastructure cloud service providers |
US11835941B2 (en) | 2021-08-10 | 2023-12-05 | Rockwell Automation Technologies, Inc. | Industrial automation smart object parent/child data collection propagation |
US11899432B2 (en) | 2021-08-19 | 2024-02-13 | Rockwell Automation Technologies, Inc. | Industrial automation project library cross sharing |
CN114968533B (zh) * | 2022-06-09 | 2023-03-24 | 中国人民解放军32039部队 | 嵌入式卫星任务调度管理方法、系统和电子设备 |
CN117591396A (zh) * | 2023-10-25 | 2024-02-23 | 国网湖北省电力有限公司宜昌供电公司 | Modbus TCP协议的测试用例生成方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109840085A (zh) * | 2017-11-29 | 2019-06-04 | 德阳市福利叔网络开发有限责任公司 | 一种基于人工智能的软件设计方法 |
WO2019136754A1 (zh) * | 2018-01-15 | 2019-07-18 | 深圳鲲云信息科技有限公司 | 人工智能处理装置的编译方法及系统、存储介质及终端 |
Family Cites Families (116)
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 |
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 |
US7086009B2 (en) | 2001-06-22 | 2006-08-01 | Invensys Systems, Inc. | 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 |
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 |
US20060041440A1 (en) | 2004-08-20 | 2006-02-23 | International Business Machines Corporation | Method, system and program product for managing a project |
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 |
US8464209B2 (en) | 2007-03-19 | 2013-06-11 | Microsoft Corporation | Using collaborative development information in a team environment |
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 |
US7899777B2 (en) | 2007-09-27 | 2011-03-01 | Rockwell Automation Technologies, Inc. | Web-based visualization mash-ups for industrial automation |
US7676294B2 (en) | 2007-09-27 | 2010-03-09 | Rockwell Automation Technologies, Inc. | Visualization of workflow in an industrial automation environment |
US20090089234A1 (en) | 2007-09-28 | 2009-04-02 | Rockwell Automation Technologies, Inc. | Automated code generation for simulators |
EP2210172A1 (en) | 2007-11-13 | 2010-07-28 | Telefonaktiebolaget L M Ericsson (publ) | 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 |
US8799852B2 (en) | 2009-05-18 | 2014-08-05 | National Instruments Corporation | Providing online graphical data flow web application tools or services for charge |
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 |
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 |
US20150347093A1 (en) | 2012-12-11 | 2015-12-03 | 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 |
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软件编程辅助设计方法 |
JP2018501532A (ja) | 2014-10-02 | 2018-01-18 | シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft | 密結合ロジックおよび物理的シミュレーションを用いた3dグラフィックエディタにおけるオートメーションのプログラミング |
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 |
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 |
US10606562B2 (en) | 2015-06-04 | 2020-03-31 | Siemens Aktiengesellschaft | Method and system for generating PLC code with a connectivity model |
AU2016203818A1 (en) | 2015-06-12 | 2017-01-05 | Accenture Global Services Limited | Data processor for project data |
WO2016205800A1 (en) | 2015-06-19 | 2016-12-22 | 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 |
US10372834B2 (en) | 2016-01-15 | 2019-08-06 | DISCUS Software Company | Creating and using an integrated technical data package |
WO2017165712A1 (en) | 2016-03-23 | 2017-09-28 | FogHorn Systems, Inc. | Composition of pattern-driven reactions in real-time dataflow programming |
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 |
US10388075B2 (en) | 2016-11-08 | 2019-08-20 | Rockwell Automation Technologies, Inc. | Virtual reality and augmented reality for industrial automation |
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 |
WO2018132622A1 (en) | 2017-01-11 | 2018-07-19 | Taqtile | Managing virtual reality objects |
US20210327304A1 (en) | 2017-01-24 | 2021-10-21 | Tienovix, Llc | System and method for augmented reality guidance for use of equpment systems |
US20210327303A1 (en) | 2017-01-24 | 2021-10-21 | Tienovix, Llc | System and method for augmented reality guidance for use of equipment 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 |
US10748443B2 (en) | 2017-06-08 | 2020-08-18 | Honeywell International Inc. | Apparatus and method for visual-assisted training, collaboration, and monitoring in augmented/virtual reality 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 |
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 |
US10657716B2 (en) | 2018-03-07 | 2020-05-19 | California Institute Of Technology | Collaborative augmented reality system |
US11275481B2 (en) | 2018-03-07 | 2022-03-15 | 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 |
US10846071B2 (en) | 2018-10-26 | 2020-11-24 | Salesforce.Com, Inc. | Data model API 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 |
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 |
US11733669B2 (en) | 2019-09-27 | 2023-08-22 | Rockwell Automation Technologies, Inc. | Task based configuration presentation context |
US20210096704A1 (en) | 2019-09-27 | 2021-04-01 | Rockwell Automation Technologies, Inc. | User interface logical and execution view navigation and shifting |
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控股有限责任公司 | 用于信息显示的方法、电子设备和计算机程序产品 |
-
2019
- 2019-09-26 US US16/584,368 patent/US11080176B2/en active Active
-
2020
- 2020-03-30 CN CN202010236312.8A patent/CN112559315B/zh active Active
- 2020-03-31 EP EP20167085.8A patent/EP3798851A1/en active Pending
-
2021
- 2021-06-07 US US17/340,896 patent/US11481313B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109840085A (zh) * | 2017-11-29 | 2019-06-04 | 德阳市福利叔网络开发有限责任公司 | 一种基于人工智能的软件设计方法 |
WO2019136754A1 (zh) * | 2018-01-15 | 2019-07-18 | 深圳鲲云信息科技有限公司 | 人工智能处理装置的编译方法及系统、存储介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
US11080176B2 (en) | 2021-08-03 |
US20210096978A1 (en) | 2021-04-01 |
US11481313B2 (en) | 2022-10-25 |
CN112559315A (zh) | 2021-03-26 |
US20210294734A1 (en) | 2021-09-23 |
EP3798851A1 (en) | 2021-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112559315B (zh) | 用于自动化对象的测试框架 | |
CN112631210B (zh) | 用于开发工业控制程序的系统、编程方法及计算机介质 | |
CN112631555B (zh) | 用于开发工业应用的系统和方法 | |
CN112558974B (zh) | 用于协作开发工业应用的系统、方法和计算机介质 | |
CN112558929B (zh) | 用于开发或创建工业应用的系统和方法及计算机可读介质 | |
CN113495539B (zh) | 基于云的协作工业自动化设计环境 | |
CN112558555B (zh) | 维护和调试 | |
US11947943B2 (en) | Industrial automation smart object inheritance | |
EP4137937A1 (en) | Industrial automation project library cross sharing | |
US20230152790A1 (en) | System model smart object configuration | |
EP4057086A1 (en) | Industrial automation smart object inheritance break and singleton creation | |
EP4060479A1 (en) | Notifications from an industrial automation development environment | |
US11835941B2 (en) | Industrial automation smart object parent/child data collection propagation | |
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 |