CN111552262A - 用于验证自动化系统的控制程序的系统及其方法 - Google Patents
用于验证自动化系统的控制程序的系统及其方法 Download PDFInfo
- Publication number
- CN111552262A CN111552262A CN202010084336.6A CN202010084336A CN111552262A CN 111552262 A CN111552262 A CN 111552262A CN 202010084336 A CN202010084336 A CN 202010084336A CN 111552262 A CN111552262 A CN 111552262A
- Authority
- CN
- China
- Prior art keywords
- simulation
- controller
- environment
- control program
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000004088 simulation Methods 0.000 claims abstract description 373
- 238000004891 communication Methods 0.000 claims description 54
- 230000003542 behavioural effect Effects 0.000 claims description 33
- 238000012546 transfer Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 14
- 230000006399 behavior Effects 0.000 description 68
- 230000008569 process Effects 0.000 description 17
- 238000012795 verification Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 12
- 230000000977 initiatory effect Effects 0.000 description 11
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 230000015654 memory Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000009434 installation Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000012636 effector Substances 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0208—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
- G05B23/0213—Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total 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/41885—Total 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23446—HIL hardware in the loop, simulates equipment to which a control module is fixed
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23451—Software in the loop, bypass function, execute new program parts on external device
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24065—Real time diagnostics
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34454—Check functioning controller, cpu or program
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Manufacturing & Machinery (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Programmable Controllers (AREA)
- Testing And Monitoring For Control Systems (AREA)
Abstract
本申请涉及用于验证自动化系统的控制程序的系统及其方法,其中控制程序(312)以第一控制器编程语言创建并且被布置和建立用于在由自动化系统(400)的自动化控制器(410)执行时控制自动化系统(400)的装置(420)或设备,并且用于验证控制程序的系统(100)包括:用于执行控制程序的控制器环境(154、410);用于执行模拟程序(322)以模拟装置(420)或设备或其零件的行为的装备模拟环境(152),其中装备模拟环境(152)可通信联接到控制器环境(154、410)以启用和/或执行自动化系统(400)的模拟,并且模拟程序(322)以第一控制器编程语言或第二控制器编程语言创建。
Description
技术领域
本发明涉及用于验证自动化系统的控制程序的系统,其中控制程序以第一控制器编程语言创建并且被进一步布置和建立以用于在由自动化系统的自动化控制器执行时控制自动化系统的装置或设备。
背景技术
用于验证控制程序的系统包括用于执行控制程序的控制器环境,以及用于执行模拟程序以模拟装置或设备或其零件的行为的装备模拟环境。
装备模拟环境可通信联接到控制环境以实现对自动化系统的模拟或模拟自动化系统。
此类系统从现有技术是已知的。欧洲专利EP 2790101B1示出了例如用于工业自动化系统的自动化虚拟调试的系统和方法。
待调试的工业自动化系统包括用于在生产过程期间控制工厂的分布式控制系统。用于自动化虚拟调试的系统包括与自动化系统服务器相对应并连接到工程客户端的虚拟器具模板。系统还包括用于模拟相应类型的控制系统元件的分布式控件的不同元件的虚拟机模板。在从工程客户端检索工程数据后,将对应地实例化这些虚拟机模板。在建立该系统后,其可以用于工业自动化系统的自动化调试。
现有技术的缺点是,建立涉及各种模拟工具和元件的此类模拟系统是相对困难和复杂的。
发明内容
因此,本发明的目的是提供一种用于验证控制程序的系统,其实现系统的更简单建立。
该目的由用于验证自动化系统的控制程序的系统实现。自动化系统包括用于执行控制程序的自动化控制器以及装置或设备,
其中控制程序以第一控制器编程语言创建并且被布置和建立以用于在由自动化控制器执行时控制装置或设备。
用于验证控制程序的系统包括:
用于执行控制程序的控制器环境,
用于执行模拟程序以模拟装置或设备或其零件的行为的装备模拟环境,
其中装备模拟环境可通信联接到控制器环境以启用和/或执行自动化系统的模拟,
并且其中模拟程序以第一控制器编程语言或第二控制器编程语言进行创建。
由于模拟程序和控制程序都以控制器编程语言编写,因此更容易协调控制程序的执行与模拟程序的执行,因为对于这两者可使用类似的工具。
因此,例如可以使用用于创建控制程序的工具(例如所谓的自动化工程系统)来编写控制程序。此类系统通常被制造并使用以建立自动化系统,其通常包括控制器和由那些控制器控制的设备。那些自动化工程系统通常还包括用于为控制器创建控制程序以控制设备的工具。例如,可以在这种工程系统中创建控制程序,并且还可以在这种工程系统中创建模拟。
在有利的实施方式中,可以在相同自动化工程系统内创建控制程序和模拟程序。
为了将装备模拟环境与控制器环境通信联接以模拟自动化系统,需要将控制器环境的输出数据与装备模拟环境的输入数据协调,并且将控制器环境的输入数据与装备模拟环境的输出数据协调。
如果控制程序以及模拟程序都在自动化工程系统中创建,则输入和输出数据的这种协调比现有技术已知的更容易。并且如果两个程序由于类似的数据结构、编程工具和接口而在相同或相似的自动化工程系统内创建,则可能会更加容易。这简化了对模拟和控制程序的相应输入和输出数据的识别,该模拟和控制程序必须被联接以获得装备模拟环境与控制器环境的适当协调,从而用于自动化系统的模拟。这是本文公开的用于验证控制程序的系统使得这种验证系统的建立更简单的一个原因。
控制器可以是例如所谓的可编程逻辑控制器(PLC)或所谓的模块化可编程逻辑控制器。控制器也可以是被构建和建立以控制装置或设备的任何类型的计算机或计算机系统。控制器也可以是被设计用于由计算机、计算机系统或云执行的控制器软件应用程序(例如,所谓的软件控制器或控制器app)。
装置或设备可以例如是或包括传感器、机电或机械作用器(如电动机或逆变器)、机械或机电模块、机器、部件、工厂和/或其零件。
控制程序的执行可被设计和布置为使得控制程序的程序代码直接在例如自动化控制器内执行。控制程序的执行也可以被设计和布置为使得在例如自动化控制器和/或控制器环境内执行程序代码的编译版本。
控制器编程语言(例如第一和/或第二控制器编程语言)可以是专门设计用于编程控制器或可编程逻辑控制器(PLC)的任何编程语言。
这种控制器编程语言可以例如是根据标准IEC 61131-3和/或根据标准IEC 61499的编程语言。
如在IEC 61131-3中所定义的,PLC的标准编程语言为:结构化文本(ST)(也称为结构化文本语言(STL)或SCL(结构化控制语言))、梯形图(LAD)、指令列表(IL)、顺序功能图(SFC)(也称为例如“S7 GRAPH”和功能框图(FBD)(也称为FUP(“Funktionsplan”))。作为由IEC 61131-3定义的编程语言的扩展,标准IEC 61499将算法封装、子程序和系统应用程序定义为标准控制器编程语言。
控制器编程语言(例如第一和/或第二控制器编程语言)可以被设计和建立以包含、包括或由所谓的功能块组成。功能块可以被定义为具有参数和本地数据的子程序,并且可以是例如根据IEC 61131-3标准的功能块。
功能块也可以是根据标准IEC 61499的功能块。此类功能块可以例如被分配和建立为算法中使用的功能块可以几种语言进行编写,例如包括在标准IEC 61131中的语言,以及还以高级语言(例如C或Java)编写。
用于创建模拟程序的控制器编程语言例如可以是第一控制器编程语言,其也用于创建控制程序。用于创建模拟程序的控制器编程语言也可以是第二控制器编程语言,其与用于创建控制程序的编程语言不同。根据本说明书,第二控制器编程语言也可以被布置和建立为控制器编程语言。
这样使用第二控制器编程语言来创建模拟程序可能是有利的,因为它可以使得能够使用特别适于模拟设备、部件、机器和/或工厂的工作原理或此类设备的一个或多个特殊模拟方面的控制器编程语言。
控制器环境例如可以被设计和建立为控制器硬件,例如所谓的可编程逻辑控制器(PLC)或本说明书中公开的控制器。控制器环境也可以被设计和建立为控制器模拟系统或用于模拟控制器硬件的平台。这种控制器模拟系统可以例如在任何类型的计算机、计算机系统、计算机网络上或在云中运行或建立。
控制器环境可以被设计和建立成例如执行控制程序代码本身或执行控制程序代码的编译版本。例如,可以通过对应的编译器或通过其中已经创建或存储了控制程序代码的对应自动化工程系统来创建控制程序代码的这种编译版本。控制程序的这种编译版本也可以在控制器环境内执行代码之前直接创建。执行代码本身或执行代码的编译版本的两个变体被理解为根据本说明书的控制程序的执行。
装备模拟环境可以是被启用、布置和/或建立以执行模拟程序的任何软件或硬件环境。例如,它可以是用于执行模拟程序的软件模拟系统或软件模拟环境。
模拟程序可以例如被布置和建立以模拟设备、机器、发动机、部件、工厂和/或类似类型的设备或机器的电气、机械、气动、物理和/或任何其他类型的行为。
装备模拟环境可以被设计和建立以例如执行模拟程序代码本身或执行模拟程序代码的编译版本。例如,可以通过对应的编译器或通过其中已经创建或存储了模拟程序代码的对应自动化工程系统来创建模拟程序代码的这种编译版本。模拟程序的这种编译版本也可以在装备模拟环境内执行代码之前直接创建。执行代码本身或执行代码的编译版本的两个变体被理解为根据本说明书的模拟程序的执行。
自动化系统的模拟被布置和建立为使得控制程序由控制器环境执行并且模拟程序由装备模拟环境执行,其中控制器环境和装备模拟环境交换数据,使得自动化系统或至少自动化系统的一个方面被模拟。
自动化系统的这种方面可以是例如装置或设备或其零件的电气、机械、气动、物理和/或类似的行为。
自动化系统的模拟可以例如被布置和建立为使得在由控制器环境执行控制程序期间,使用控制器输入数据并且生成控制输出数据。并行地,在装备模拟环境执行模拟程序期间,则使用这种控制器输出数据并且生成控制器输入数据。
控制环境和装备模拟环境的通信联接可以被布置和建立以启用和/或执行由控制程序使用和/或生成的输入和/或输出数据与由模拟程序生成和/或使用的输出和/或输入数据的交换。
这种通信可以被布置和建立,使得它能够根据本说明书模拟自动化系统。
装备模拟环境与控制环境的通信联接可以被进一步布置和建立,以根据本说明书在自动化系统的模拟期间,在控制环境和装备模拟环境之间转移控制器输入数据和控制器输出数据。
装备模拟环境和控制器环境的通信联接还可以包括将控制器输入数据和控制输出数据分配给模拟程序或其部分的相应输出和输入数据。可以手动或自动或以半自动方式进行两个程序的这种数据分配。
这种数据分配可以例如被实现为将控制程序的输出数据分配给模拟程序的对应输入数据,以实现自动化系统或自动化系统一个方面的正确模拟。例如,控制器输出数据可以包括描述用于控制设备或装置的物理值的一个或多个变量。可以将此类变量分配给模拟程序的输入变量,使得相应变量的物理含义相同或彼此对应。
也可以执行这种方式的分配变量用于将模拟程序的输出数据分配给控制程序的输入数据。
在通信联接的优选实施方式中,控制器环境被布置和建立为以现场总线电报形式输出数据。可以根据自动化网络中使用的典型现场总线标准(例如,ProfiNet、Profibus、EtherCat、Ethernet-IP或类似的现场总线标准)来布置和建立此类现场总线电报。根据本说明书,也可以现场总线电报的形式将数据输入到控制器环境中。以相同方式,根据本说明书,也能以此类现场总线电报的形式来将数据输入到装备模拟环境中和/或从装备模拟环境输出数据。
该实施方式具有以下优点:例如,被设计用于获取和发送现场总线电报的控制程序的部件(例如像所谓的功能块)可以根据本说明书直接在验证系统内使用。以相同方式,还可以更容易地在装备模拟环境中使用同样被设计用于接收和/或发送现场总线电报的对应模拟部件。
通过该实施方式,不仅可以模拟和/或测试与设备或装置一起工作的控制程序,而且还可以模拟和/或测试在自动化控制器与装置或设备之间的可能现场总线通信。
在另一优选实施方式中,控制器环境可以被布置和建立以周期地处理控制程序。控制器环境可以被进一步布置和建立,使得在每个程序周期执行一次装备模拟环境与控制器环境之间的数据交换。其可被布置和建立为使得例如在执行控制程序的第一周期之后并且在执行控制程序的紧接着的下一个周期之前执行这种数据交换。也可以在执行控制程序的周期期间执行数据交换。
控制器环境与装备模拟环境之间的数据交换还可以根据本说明书进行布置。
在另一个优选实施方式中,控制器环境被布置并建立以用于周期地处理控制程序并且用于在控制程序的程序周期结束时输出周期结束时间值。本发明的这种实施方式实现控制器模拟和装备模拟环境之间的更容易和/或更灵活的协调。
周期和时间值可以是根据与控制程序的执行的特定周期结束时的时刻相对应的时钟值的时间值。这种周期结束时间值还可以包括使得能够计算这种结束时间值的信息。
这种周期结束时间值可以例如是控制器输出数据的一部分,或者可能以单独的方式传送。
例如,用于执行控制程序的一个周期的时间可以由周期时间值表征,其中在处理控制程序的第一周期之后,输出第一周期结束时间值。另外,在执行控制程序的后续执行之后,输出第二周期结束时间值,其中第二周期结束时间值基于第一周期结束时间值和周期时间值。
使用此类周期时间来计算后续程序周期的结束时间简化了相应周期结束时间的计算。它还使得能够在执行控制程序期间使用预定周期时间,例如用于模拟特殊情况、控制器或用例。
周期时间值可以被布置和建立为用于执行单个程序周期的时间。其可以被布置和建立为例如在后续程序周期中的两个对应时间值之间的时间。因此,周期时间可以是例如在第一程序周期的开始与后续程序周期的开始之间的时间。
在另一实施方式中,控制器环境被布置和建立以使用时钟来确定周期时间值。
这种时钟可以例如是控制环境内的内部时钟或联接到控制环境的外部时钟。时钟可以被布置和建立以递送时间值或/和递送计数器值,例如合法脉冲、周期数、所有类似的计数器数。
控制器环境可以被布置和建立以例如在预定程序周期的执行之后和/或在程序周期的每次执行之后计算选定周期时间值。为预定或给定的程序周期确定的特殊周期时间值可以用作后续程序周期的周期次数的基础。
周期时间值也可以被布置和建立为预定值。这种预定值可以例如由用户设置和/或改变。
控制器环境还可以通过确定控制程序的执行期间的两个后续程序周期之间的两个对应点之间的时间的时间值来估计这种预定值。确定这种周期时间可以根据本说明书来建立和布置。
该预定值例如可以是用于至少多个子序列编程周期的固定预定值。根据本说明书,这种固定预定值可以例如由用户设置或者通过使用时钟来确定。这种预定值也可以是从另一个连接的系统接收的值。此类其他系统例如可以是装备模拟系统,如模拟协调系统或用于运行、执行和/或协调模拟的类似系统。
通过使用这种预定值,可以模拟特殊情况。例如,预定周期时间可以对应于与特定控制环境有关的周期时间,例如,在类似用例中稍后使用的特别控制环境,例如像特别的PLC模型或选定控制器。另外,通过使用大于或小于实际周期时间值的周期时间值,预定周期时间可以用于减慢或加速自动化系统的模拟,以用于在真实控制器中执行控制程序的周期。
在另一优选实施方式中,用于验证控制程序的系统可通信地联接到自动化工程系统,用于从自动化工程系统接收自动化系统工程数据,其中
-通过生成自动化系统工程数据来布置和建立自动化工程系统,以用于设计自动化系统,并且
-自动化系统工程数据包括控制程序。
将用于验证控制程序的系统连接到这种自动化工程系统使得能够更容易地访问用于验证控制程序的系统的控制程序。
这种建立还使得用于验证控制程序的系统能够访问与控制程序相关的另外数据,如有关控制程序所使用的变量和/或与此类变量相关的元数据的变量列表。它还使得用于验证控制程序的系统能够访问有关自动化系统的另外数据,特别是有关ID信息、参数、设置以及与自动化系统的不同硬件部件和通信建立相关的类似数据。
这再次使得能够对用于验证控制程序的系统进行更简单设置。
在优选实施方式中,为自动化系统创建自动化系统工程数据。这种工程数据可以在自动化工程系统中生成和/或存储在自动化工程系统中。它可以是包括与自动化系统相关的工程数据的自动化系统工程项目的一部分。
自动化工程系统可以是软件环境、计算机系统、软件应用程序、或用于建立自动化系统的类似系统。此类工程系统可以例如被布置和建立以用于为作为自动化系统的一部分的控制器生成控制程序、为作为自动化系统的一部分的设备设置参数以及在自动化系统的不同零件之间建立通信,并且类似的任务对于建立自动化系统是必要的或有利的。
这种自动化系统工程数据可以例如包括控制程序并且最终包括一个或多个另外的控制程序。它还可以包括与控制程序和/或一个或多个另外的控制程序相关的附加数据。此类附加数据可以是例如变量列表,其包括由特定控制程序使用的变量或与该控制程序所使用的数据和/或变量相关的元数据。
此外,根据本说明书,自动化工程系统可以被布置和建立以便以一种或多种控制器编程语言创建控制程序。
自动化系统工程数据还可以包括硬件配置数据,该硬件配置数据包括与作为自动化系统一部分的硬件部件相关的ID信息、参数、设置和类似数据。此类硬件部件可以是例如控制器、设备、作用器、传感器、部件、机器、机器人、工厂的计划和零件、或自动化系统的类似元件。
自动化系统工程数据还可以包括有关用于建立和运行自动化系统的不同硬件部件之间的通信的通信参数的通信数据。此类通信参数可以是与使用通信协议相关的ID参数、用于使用此类通信协议的设置、用于建立主从通信连接或系统的参数、用于建立发布/订阅通信连接或系统的参数、用于建立和/或执行实时通信的参数和/或类似数据以及用于建立通信连接或系统的参数。
自动化系统工程数据也可以包括有关建立HMI信息的HMI数据,以使得用户能够操作和监测自动化系统。这种HMI信息可以例如包括有关待对应HMI设备(如监视器、HMI面板、或能够显示图形用户界面的任何其他设备)输出的数据的信息。另外,HMI信息可以包括有关建立这种图形用户界面的数据(例如,所谓的“面板”的信息)和有关由这种图形用户界面呈现和生成的输入和输出数据的信息(例如,所谓的“标签”)。
自动化系统工程数据还可以包括有关由控制程序使用的输入数据和/或由控制程序生成的输出数据的变量列表,其中用于验证控制程序的系统被进一步布置和建立以用于限定控制器环境和装备模拟环境之间的控制器输入数据和控制器输出数据的传送。
根据本说明书,这种变量列表的使用可以简化用于验证控制程序的系统的建立,因为它使得能访问限定控制环境和装备模拟环境之间的协调的附加数据。这种变量列表可以包含有关由控制程序使用的数据和由控制程序生成的数据的附加信息。
变量列表可以包含有关分配给那些变量的由控制程序使用和产生的数据的信息。有关这些变量的这种信息可以例如包括有关变量的变量名称或变量ID信息和/或元数据。此类元数据可以例如包括关于与此类数据有关的物理单元的信息、此类数据的描述、此类数据的物理含义、与此类数据相关的装置或设备或类似信息。
控制器环境与装备模拟环境之间的控制器输入数据和控制器输出数据的转移的定义可以包括将控制器输入数据分配给输出数据的步骤,这些数据由模拟程序生成。该步骤例如可以包括有关控制器输入数据的变量列表的分析和有关由模拟程序生成的输出数据的类似变量列表的分析。
此类列表的比较可以例如包括有关那些列表中的变量的变量名称和/或元数据或ID信息的一个或多个元素的比较。基于这种分析,控制器输入数据的对应变量可以分配给由模拟程序生成的对应变量。因此,例如,有关作为装置或设备一部分的电动机的速度值的元数据可以包含以下信息:该值与具有给定ID的该电动机的速度有关。这种信息也可以包含在变量的元数据中,该变量的值由模拟程序生成。在控制器环境与装备模拟环境之间的数据的转移的定义期间,可以将此类变量相互分配。
以类似方式,控制器输出数据可以被分配给由模拟程序使用的对应数据。
控制器环境与装备模拟环境之间的控制器输入数据和控制输出数据的转移的这种定义可能以手动方式、自动方式、或半自动方式执行。这种自动方式可执行为使得将有关控制器输入和/或输出数据的变量列表与有关由模拟程序输出和/或使用的数据的对应变量列表进行比较。通过比较包含在该列表中的一种或多种类型信息(如变量名称、变量ID和/或包含在该列表中的不同类型的元数据),可以将相应变量相互分配。
变量的半自动分配可执行为使得根据以上描述自动分配尽可能多的变量,并且其余变量由用户手动分配,如下文更详细描述。
在这种自动或半自动分配之后的步骤中,该分配可以由用户进一步修改。
控制器环境与装备模拟环境之间的数据的转移的定义也可以由用户手动执行。为了在控制程序将输出和输入数据分配给由模拟程序使用和产生的数据期间帮助用户,用于验证控制程序的系统可被布置和建立为将根据本说明书的对应变量列表输出给用户,例如使用在显示器上呈现的图形用户界面。然后,用于验证控制程序的系统可以例如被进一步布置和建立以使得用户能够使用这样的图形用户界面来直接以图形方式连接对应的控制程序变量和模拟程序变量。
在优选实施方式中,用于验证控制程序的系统还包括装备模拟数据库,其用于存储用于模拟技术装备及其零件的行为部件并包括与该模拟程序相对应的至少一个模块行为部件。
使用该基于装备模拟的数据库使得能够使用预编程模拟软件部件(在此称为行为部件)的集合来模拟技术设备、作用器、传感器、机器、部件、计划和/或其零件。例如,在这种数据库中,可以存储用于不同电动机、传感器、转换器、或类似设备的模拟部件。
通过使用这种装备模拟数据库,可以使得用于验证控制程序的系统的建立更加简单,因为预编程模拟行为部件可以从这种装备模拟数据库中选择并且稍后用于在建立用于验证控制程序的系统时生成模拟程序,而不必为装置或设备的每一个部分编程模拟软件。
行为部件可以被布置和建立为用于模拟预定技术元件(如传感器、作用器、设备、部件、机器或其元件)的计算机程序。这种计算机程序可以优选地以控制器编程语言创建,但也会以不同的编程语言创建。
用于验证控制程序的系统可以被布置和建立以基于至少一个模块行为部件来创建模拟程序。
模拟数据库可以是任何类型的数据库,例如SQL数据库或非SQL数据库。装备模拟数据库例如可以位于根据本说明书的模拟建立和协调模块内、根据本说明书的自动化工程系统内、根据本说明书的模拟运行时计算机内和/或作为单独的数据处理单元或计算机。
在对于模拟自动化系统所必需的装置或设备的所有零件,将行为部件存储在基于装备模拟的数据库中的情况下,用于验证控制程序的系统可以被布置和建立以基于那些行为部件(在此称为模块行为部件)创建模拟程序。
在装备模拟数据库不包含模拟自动化系统所必需的装置或设备的所有零件的行为部件的情况下,可以生成附加行为部件或模拟程序,也可以从其他系统(如其他模拟数据库或类似系统)导入它们。
模拟程序可以基于单个行为部件或者可以包括多于一个行为部件。包括装备模拟数据库的用于验证控制程序的系统可被布置和建立为使得模拟程序可仅基于至少一个模块行为部件或者至少一个模块行为部件包含生成模拟程序所必需的所有信息。
用于验证控制程序的系统可以被布置和建立以基于至少一个模块行为部件来生成模拟程序。生成模拟程序的此步骤可以包括在不同编程语言之间转换程序代码。在使用多于一个行为部件的情况下,模拟程序的生成可以另外包括以下步骤:在不同行为部件之间分配变量和/或在不同行为部件之间建立通信。
在行为部件的优选实施方式中,行为部件基于第一控制器编程语言、第二控制器编程语言和/或另外的一种或多种控制器编程语言。
该实施方式的优点在于,它进一步简化用于验证控制程序的系统的建立,因为它实现了模拟程序的简化建立。在另一优选实施方式中,至少一个模块行为部件已经以用于模拟程序的控制器编程语言进行创建。在这种情况下,无需在不同的编程语言之间转换程序代码即可创建模拟程序。
在优选的实施方式中,用于验证控制程序的系统被进一步布置和建立以用于从装备模拟数据库中选择至少模块行为部件。
该实施方式进一步简化了用于验证控制程序的系统的建立,因为存储在装备模拟数据库中的至少一个模块行为部件可以由系统自动选择。
选择可以例如基于用于验证控制程序的系统中包含的有关装置或设备的附加信息。例如,有关模拟自动化系统所必需的关于装置或设备的部件或元件的信息可以被存储在用于验证控制程序的系统中。然后,该信息可以用于从装备模拟数据库中选择至少一个模块行为部件。
此类信息可以是例如有关此类装置或设备或其元件的ID信息,其中这种ID信息允许用于验证控制程序的系统稍后从装备模拟数据库中选择对应行为部件。
根据本说明书的自动化系统工程数据还可以包括有关装置或设备或其零件的ID信息,其中用于验证控制程序的系统被进一步布置和建立以用于导入这种ID信息并且用于基于该ID信息从装备模拟数据库中选择至少一个模块行为部件。
该实施方式进一步简化了用于验证控制程序的系统的建立,因为可以从自动化工程系统导入用于从装备模拟数据库中选择至少一个模块行为部件的相关数据。
自动化工程系统可以例如包括自动化系统工程项目,该自动化系统工程项目包括带有控制程序的自动化系统工程数据以及有关装置或设备或其零件的ID信息。这使得用于验证控制程序的系统还能够基于从自动化工程系统导入的信息,从装备模拟数据库中选择至少一个模块行为部件。
至少一个模块行为部件的选择可以基于从自动化工程系统导入的ID信息的分析。例如,可以将这种分析的ID信息与装备模拟数据库中存储的关于其中存储的行为部件的信息进行比较。基于该比较,从装备模拟数据库中选择至少一个模块行为部件可以由用于验证控制程序的系统执行。
在优选实施方式中,用于验证控制程序的系统被进一步布置和建立以基于至少一个模块行为部件来建立模拟程序。
基于至少一个模块行为部件的模拟程序的这种建立可以根据本说明书来布置和建立。
在另一个优选实施方式中,用于验证控制程序的系统被进一步布置和建立以便在自动化工程系统或另一自动化工程系统内生成模拟工程项目,模拟工程项目包括模拟程序。
该实施方式进一步简化了用于验证控制程序的系统的设置,因为控制程序的创建和模拟程序的创建是在相同自动化工程系统中或在不同自动化工程系统中执行—优选是类似的自动化工程系统。因此,用户不必处理完全不同的系统以用于创建控制程序和用于创建模拟程序。
使用自动化工程系统以用于建立包括模拟程序的模拟工程项目可以实现例如相对容易地访问用于编辑以控制器编程语言编写的软件的编辑工具。因此,在这种情况下,为自动化系统创建模拟的用户只需处理一种类型的软件环境即可创建控制程序和模拟程序两者。
仅具有一种用于创建和/或编辑自动化程序和模拟程序的软件系统类型也可以简化将装备模拟环境与控制器环境进行通信联接的建立,因为例如与模拟程序和控制器程序相关的变量列表可以具有相似的格式,或者可以在相同的软件环境或相似的软件环境内呈现给用户。这使得更容易比较数据以及将控制程序的数据分配给模拟程序的相关数据。
用于验证控制程序的系统还可以包括被布置和建立以用于执行以下任务中的至少一项的模拟协调模块:
-协调控制器系统和装备模拟系统以模拟自动化系统,
-开始控制程序从自动化工程系统到控制器环境的转移,
-从自动化工程系统接收ID数据并且从装备模拟数据库中选择至少一个模块行为部件,
-从自动化工程系统接收变量列表并且在控制器环境与装备模拟环境之间建立通信联接,和/或
-在自动化工程系统或自动化工程系统的另一实例内生成模拟工程项目,该模拟工程项目包括模拟程序。
这种模拟协调模块的使用使得能够更容易和更简单地建立用于验证控制程序的系统,因为建立这种系统所必需的一个或多个步骤可以由单个模块以协调方式执行。在优选实施方式中,可以在模拟协调模块内或由模拟协调模块执行多于一个或甚至所有的步骤。
控制系统、装备模拟系统、控制程序、自动化工程系统、ID数据、至少一个模块行为部件、装备模拟数据库、变量列表、通信联接、装备模拟环境、模拟工程项目、自动化工程系统和/或模拟程序可以根据本说明书进行布置和建立。
用于验证控制程序的系统还可以包括可通信地联接到控制器环境和装备模拟环境的通信软件模块。
这样的通信软件模块实现了控制器环境与装备模拟环境之间的更容易的通信,因为其使得例如能够转交由控制程序生成和/或使用的数据以及由模拟程序生成和/或使用的数据。该实施方式使得例如更独立地设置控制器环境和装备模拟环境变得更加容易,因为这两种环境之间的数据的转交例如不需由这些环境之一或两个环境处理。
两个环境也可以例如在甚至不知道其他环境数据的情况下连接到这种通信软件模块。
在这种情况下,装备模拟环境和控制环境的通信联接可以例如是只能通过通信软件模块来执行。如果以这种方式建立系统,则控制器模拟、设备模拟的处理以及两个模拟之间的办公室通信将在不同的模块中分开,这将简化用于验证控制程序的系统的建立和处理。
在优选实施方式中,自动化系统还包括附加技术装备,并且用于验证控制程序的系统还包括用于模拟附加技术装备的另一模拟环境,
其中控制程序被布置和建立以用于在由自动化控制器执行时也控制技术装备,
并且其中另一模拟环境可通信地联接到控制环境以启用对自动化系统的模拟或模拟自动化系统。
用于验证控制程序的系统、控制程序本身、通信联接和/或控制环境可以根据本说明书来布置和建立。
该实施方式允许用于验证控制程序的系统结合由两个(或更多个)子系统组成的装备模拟。这些子系统中的一个子系统使得能够在根据本说明书的装备模拟环境内进行模拟,其中在另一个模拟环境内对装置或设备的另一部分进行模拟。这种组合具有的优点在于,它使得能够在不同的模拟环境中进行不同模拟的组合-例如模拟装置或设备的不同方面。此类不同方面可以例如是装置或设备的电气、机械、热力学或类似模拟。
控制环境与另一模拟系统之间的通信联接可以与控制环境和装备模拟系统的通信联接的建立相似的方式来布置和建立。
在用于验证控制程序的系统包括根据本说明书的通信软件模块的情况下,另一模拟环境也可以通信地联接到该通信软件模块,用于处理另一模拟环境和控制器环境之间的数据转移。
模拟协调模块可以被进一步布置和建立以用于协调控制器环境、装备模拟环境和另一模拟环境。
在模拟协调模块的这种建立中,自动化系统的模拟所涉及的模拟环境之间的同步由该协调模块处理。这使得用于验证控制程序的系统的处理和建立更加简单,因为没有一种环境必须要关心与其他环境的通信。这使建立系统变得更容易,并且以后也可以通过例如添加另一种模拟环境或从系统中删除模拟环境来改变系统。在这样做时,用户无需关心改变相关通信,因为这是由模拟协调模块处理的。
在优选实施方式中,控制器环境包括自动化控制器。
本发明的这种实施方式是例如所谓的硬件在环建立。在这种设置中,控制环境包括自动化系统的自动化控制器或由其组成,其中自动化系统的装置或设备在装备模拟环境中进行模拟。
在这种系统中,控制程序由自动化控制器执行,并且可以在不建立自动化系统的完整装置或设备的情况下进行测试。
在另一个优选实施方式中,控制器环境被布置并建立为用于模拟自动化控制器的控制器模拟环境。
本发明的这个实施方式是例如所谓的软件在环模拟环境。
使用此类模拟环境使得能够仅基于模拟工具来测试控制程序。这样使得即使不使用任何硬件也能够设计和测试控制程序,然后将其用于自动化系统。该实施方式使得例如能够分离自动化系统硬件的建立和控制程序的开发。
在本发明的另一个实施方式中,控制器模拟环境被布置为模拟环境程序的第一实例,并且装备模拟环境被布置为模拟环境程序的第二实例。
根据本说明书,该实施方式极大简化了用于验证控制程序的系统的建立和处理,因为它允许使用类似的软件环境来模拟控制器和模拟自动化系统的装置或设备。提供以控制器编程语言创建控制程序以及模拟程序,可以实现对于两个模拟环境使用模拟环境程序的可能性。这使得能够在类似的软件环境内执行对应的模拟。
例如,这种模拟环境程序可以是用于模拟控制器的软件程序,并且该软件程序被设置和布置以用于执行以控制器编程语言创建的程序。由于模拟程序也以控制器编程语言进行编写,因此其也可以使用用于模拟控制器的这种软件程序来执行。
模拟环境程序可以被实现为存储在存储器中的软件程序和/或软件程序代码,例如存储在电子存储器、磁存储器、磁盘存储器、RAM、ROM、EPROM或类似存储器中。例如,它可以存储为可执行版本或软件,其在执行之前必须被编译和/或安装在计算机、计算机设备、计算机网络等上。
可以将模拟环境程序定义为指示计算机应执行哪些操作的指令序列。可以将模拟环境程序例如存储为所谓的源代码版本,该版本例如最初是由人类使用编程语言编写的。在许多情况下,在执行之前,它已被编译器翻译为所谓的“目标代码”或“二进制文件”。
模拟环境程序的实例应当被理解为模拟环境程序在计算机上的可执行版本或实施方式的副本。例如,可以将其写入或存储到计算机的、计算机系统的、或计算机网络的存储器中。
模拟环境程序的此类可执行版本是该程序的一种版本,其可以由计算机的中央处理单元理解,并且一旦将其从存储装置(例如,电子存储器、磁盘存储器、RAM、ROM、EPROM、或类似产品)复制到与中央处理单元相关的工作存储器中就准备好运行。
上面提到的本发明的目的也通过一种方法来实现,该方法使用根据本说明书的用于验证控制程序的系统来验证用于自动化系统的控制程序,
自动化系统包括用于执行控制程序的自动化控制器以及装置或设备,
其中控制程序以第一控制器编程语言创建并且被布置和建立以用于在由自动化控制器执行时控制装置或设备。
用于验证控制程序的此方法包括以下步骤:
-生成用于模拟装置或设备或其零件的行为的模拟程序,模拟程序以第一控制器编程语言或第二控制器编程语言创建,
-在装备模拟环境中实现模拟程序,
-在控制器环境中实现控制程序,
-在装备模拟环境与控制器环境之间建立通信联接以启用自动化系统的模拟,
-开始自动化系统的模拟。
由于模拟程序和控制程序都以控制器编程语言创建,因此类似系统可以用于控制环境和装备模拟环境。与现有技术相比,这使得根据本说明书的用于验证控制程序的方法更简单。
可以根据本说明书来布置和建立自动化系统、自动化控制器、控制程序、装置或设备、第一和第二控制器编程语言、模拟程序、装备模拟环境、装备模拟环境与控制器环境之间的通信联接和/或自动化系统的模拟。
装置、设备或其零件的行为的模拟可被布置和建立为通过该模拟程序来模拟装置、设备或其零件的电气、机械、气动、物理和/或类似行为。
模拟的开始可以包括以下步骤:
开始在装备模拟环境内执行模拟程序,并且
开始在控制环境内执行控制程序。
模拟的这种开始可以另外包括以下步骤:
开始或启用在控制器环境和装备模拟环境之间的控制程序的输入和/或输出数据的转移。
在优选实施方式中,用于验证控制程序的系统可以包括根据本说明书的通信软件模块。在这种情况下,开始控制器环境与装备模拟环境之间的控制程序的输入和/或输出数据的转移涉及使用通信软件模块。
方法还可以包括以下步骤:在生成模拟程序之前,从装备模拟数据库中选择与模拟程序相对应的至少一个模块行为部件,其中模拟数据库存储装置或设备或其零件的行为部件。
至少一个模块行为部件、模拟程序、装备模拟数据库和/或装置或设备或其零件可以根据本说明书进一步布置和建立。
在另一优选实施方式中,生成模拟程序的步骤被布置和建立以基于至少一个模块行为部件生成模拟程序。
基于至少一个模块行为部件的模拟程序的这种生成可以根据本说明书来布置和建立。
另外,控制程序可以是存储在自动化工程系统中的自动化系统的工程数据的一部分,其中自动化工程系统通信地联接到或可以通信地联接到用于验证控制程序的系统。
可以根据本说明书来布置和建立控制程序、工程数据、自动化系统、自动化工程系统和/或用于验证控制程序的系统。
自动化系统的工程数据可以例如存储在自动化工程系统中,其中通过生成用于自动化系统的工程数据来布置和建立自动化工程系统以设计自动化系统。
工程数据还可以包括有关装置或设备或其零件的ID信息。在这种情况下,方法还可以包括在生成模拟程序之前从自动化工程系统导入ID信息的步骤。
可以根据本说明书来布置和建立ID信息。
模拟程序的生成可以基于ID信息或ID信息的附加分析。可以根据本说明书再次布置和建立基于该信息的模拟程序的这种生成。
在模拟程序的生成基于存储在装备模拟数据库中的至少一个模块行为部件的情况下,从装备模拟数据库中这样选择至少一个模块行为部件可以基于ID信息和/或对ID信息的分析。
在这种情况下,用于验证控制程序的方法可以被布置和建立,即在从装备模拟数据库中选择至少一个模块行为部件之前执行ID信息的导入。
工程数据还可以包括有关由控制程序使用的输入数据和/或由控制程序生成的输出数据的变量列表。
在这种情况下,用于验证控制程序的方法还可以包括以下步骤:从自动化工程系统导入变量列表,以及定义控制器系统与装备模拟系统之间的控制器输入数据和控制器输出数据的转移。
可以根据本说明书来布置和建立在控制器系统与装备模拟系统之间的控制器输入数据和控制器输出数据的转移的这种定义。该数据转移的定义例如可以在导入变量列表之后和/或在分析变量列表之后和/或基于变量列表来进行。
另外,在控制器系统与装备模拟系统之间的控制器输入和输出数据的转移的这种定义可以进一步作为装备模拟环境与控制器环境之间的通信联接的建立的一部分,以用于实现根据本说明书的自动化系统的模拟。
在控制器系统与装备模拟系统之间的控制器输入和输出数据的转移的这种定义也可以是控制器环境与装备模拟环境的通信联接的特殊实施方式。
在控制器环境与装备模拟环境之间的控制器输入数据和控制器输出数据的转移的定义可以包括将控制器输入数据分配给输出数据的步骤,这些数据由模拟程序生成。该步骤例如可以包括有关控制器输入数据的变量列表的分析和有关由模拟程序生成的输出数据的类似变量列表的分析。
此类列表的这种比较可以例如包括有关那些列表中的变量的变量名称和/或元数据或ID信息(例如,相关设备或部件的ID信息)的一个或多个元素的比较。基于这种分析,控制器输入数据的对应变量可以分配给由模拟程序生成的对应变量。因此,例如,有关作为装置或设备一部分的电动机的速度值的元数据可以包含以下信息:该值与具有给定ID的电动机的速度有关。这种信息也可以包含在变量的元数据中,该变量的值由模拟程序生成。
在控制器环境和装备模拟环境之间的数据的转移的定义期间,可以将此类变量相互分配以定义此类通信。
以类似方式,控制器输出数据可以被分配给由模拟程序使用的对应数据。
在控制器环境与装备模拟环境之间的控制器输入数据和控制输出数据的转移的这种定义可手动地、自动方式、或半自动方式执行。这种自动方式或半自动方式可被执行为将有关控制器输入和/或输出数据的变量列表与有关由模拟程序使用和/或输出的数据的对应变量列表比较。通过比较包含在该列表中的一种或多种类型信息(如变量名称、变量ID和/或包含在该列表中的不同类型的元数据),可以将相应变量相互分配。
在接下来的步骤中,用户可以进一步修改这种分配。
在控制器环境与装备模拟环境之间的数据的转移的定义也可以由用户执行。为了在将控制程序的输入和输出数据分配给由模拟程序使用和产生的数据期间帮助用户,用于验证控制程序的系统可以被布置和建立以便将根据本说明书的相应变量列表输出给用户,例如使用在显示设备上示出的图形用户界面。用于验证控制程序的系统可以被进一步布置和建立以使得用户能够使用这样的图形用户界面来直接以图形方式连接对应的控制程序变量和模拟程序变量。
用于验证控制程序的方法还可以包括以下步骤:在自动化工程系统或另一自动化工程系统内生成模拟工程项目,以及在模拟工程项目内实现模拟程序。
替代地,用于验证控制程序的方法还可以包括在自动化工程系统内生成模拟工程项目的步骤,其中模拟工程项目包括模拟程序。
此类实施方式使得能够更简单地建立用于验证控制程序的系统和/或方法,因为在包含模拟程序的这种自动化工程系统中建立项目可以使用用于创建、修改和处理模拟程序的现有工具,这是因为此类工具是专门为以控制器编程语言编写的程序而制作的。这些工具例如可以是用于修改和检查程序代码、用于错误分析、用于编译这样的代码和/或用于验证这样的代码的工具。
在优选实施方式中,控制器环境根据本说明书被布置并建立为控制器模拟环境,用于模拟自动化控制器。
这样的实施方式实现了所谓的软件在环系统,其中控制器和自动化系统的装置或设备被模拟以验证控制程序。
在根据本说明书将控制器环境实现为控制器模拟环境的情况下,用于验证控制程序的方法还可以包括以下步骤:生成控制器模拟环境作为模拟环境程序的第一实例,并且生成装备模拟环境作为模拟环境程序的第二实例。
可以根据本说明书进一步布置和建立模拟环境程序和该模拟环境程序的实例。
这种实施方式进一步简化了根据本说明书的用于验证控制程序的系统和/或方法的建立,因为它使得能够在类似的模拟环境中执行控制程序以及模拟程序。例如,这例如使得能够非常容易地建立该系统,因为只涉及一种类型的工具。它还实现了例如在模拟环境和控制器环境之间的更加容易的通信,因为这两种环境具有类似的结构和建立。例如,这样的类似结构可以是有关数据的通信或有关结构、如何在系统内存储和使用数据的类似结构。
附图说明
将参考附图通过示例更详细地解释本发明。这些附图示出
图1:自动化系统的示例;
图2:模拟系统的示例,其用于使用软件在环概念来验证控制程序;
图3:模拟系统的另一示例,其用于使用硬件在环概念来验证控制程序;
图4:用于建立和运行示例性系统的过程的示例,该示例性系统用于使用软件在环概念来验证控制程序;
图5:用于建立和运行示例性系统的过程的另一示例,该示例性系统用于使用包括通信软件模块的软件在环概念来验证控制程序;
图6:用于建立和运行示例性系统的过程的第三示例,该示例性系统用于使用硬件在环概念来验证控制程序。
具体实施方式
图1示出了包括机器人420和自动化控制器410或PLC 410的自动化系统400的示例。自动化控制器410包括控制程序312,当在自动化控制器410中执行该控制程序时,该控制程序会控制机器人420(例如,机器人420的移动)。
图2示出了用于控制程序312的验证系统100。如图2中描绘的,控制程序312存储在自动化工程系统300中,该自动化工程系统包括装备工程项目310和模拟工程项目320。装备工程项目310包括控制程序312,并且还包括有关图1所示的自动化系统400的自动化的工程数据。
该自动化工程项目310的另一部分是硬件配置数据316,其包含例如有关自动化系统400的部件的装备信息和参数。在本示例中,那些部件是机器人420和PLC 410。硬件配置数据316例如包括有关机器人420和/或该机器人420的部件、模块或零件的ID信息,其例如是机器人420或其零件、模块或部件的类型名称、类型或模型号和/或订单号或序列号。硬件配置数据316例如还包括有关PLC 410和/或该PLC 410的部件、模块或零件的ID信息,其再次例如是PLC 410和/或PLC 410的部件、模块或零件的类型名称和/或类型或模型号和/或订单号或序列号。
装备工程项目310还包括变量列表314,其包括例如有关由控制程序312使用的变量(例如,包含控制程序312的输入数据的变量和包含控制程序312的输出数据的变量)的名称、定义、元数据和/或地址。
模拟工程项目320包括用于模拟机器人420的模拟程序322。
图2进一步示出了包括模拟运行时计算机150的模拟系统100或验证系统100。该验证系统100是根据本说明书的用于验证控制程序的系统的示例。模拟运行时计算机150包括装备模拟环境152和控制器模拟环境154。控制器模拟环境154是用于模拟自动化系统400(见图1)的PLC 410的模拟环境。它包含控制程序412的副本或控制程序312的编译版本。控制器模拟环境154被布置并建立以执行控制程序312或控制程序312的编译版本,就好像它是由PLC 410运行一样。
根据本说明书,控制程序312以PLC编程语言进行编写。其可能以任何此类语言来进行编写。例如,IEC 61131语言的“梯形图”(LD)或“功能框图”(FBD)可以优选用于典型的控制程序312。
装备模拟环境152包含用于模拟自动化系统400的机器人420的模拟程序322或该模拟程序322的编译版本。如果由装备模拟环境152执行,则模拟程序322或模拟程序322的编译版本将模拟自动化系统400的机器人420的行为或机器人420或其零件的行为的一方面。行为的该方面可以例如是机器人420或其零件的电气行为、机械行为、机电行为、自动化相关行为、热力学行为和/或气动行为。
根据本说明书,模拟程序322也以PLC编程语言进行编写。其可能以任何此类语言来进行编写。对于此类模拟程序322,例如可以优选地使用IEC 61131语言“结构化文本”(ST)或“顺序功能图”(SFC)。
由控制器模拟环境154执行的控制程序312所生成的输出数据经由通信软件模块120(其也是验证系统100的一部分)被传送至装备模拟环境150。当执行控制程序312以控制机器人420时,这种输出数据对应于由PLC 410生成的输出数据。因此,该输出数据用作运行模拟程序322以模拟机器人420的装备模拟环境152的输入数据。
然后,该机器人模拟使用该控制器输出数据作为输入控制数据模拟机器人420的行为以控制机器人420,例如以通过执行模拟程序322来生成表征由装备模拟环境152模拟的机器人420的行为的相关传感器、作用器和其他输出数据。
这种模拟输出数据经由通信软件模块120传送回控制器模拟环境154,并且随后用作用于模拟自动化系统400的控制器410的输入数据,由运行控制程序312的控制器环境154实现。再次经由通信软件模块120协调这种数据通信来执行该通信。
结合图4及以下更详细地描述了这种控制器输出数据到装备模拟输入数据的分配以及装备模拟输出数据到控制器输入数据的分配。
在装备模拟环境152与控制器模拟环境154之间的通信联接的优选实施方式中,控制器模拟环境154可能以现场总线电报的形式输出其数据。可以根据自动化网络中使用的典型现场总线标准(例如,ProfiNet、Profibus、EtherCat、Ethernet-IP或类似的现场总线标准)来布置和建立此类现场总线电报。根据本说明书,也可能以现场总线电报的形式将数据输入到控制器模拟环境154中。以相同方式,根据本说明书,也可能以此类现场总线电报的形式来将数据输入到装备模拟环境152中和/或从装备模拟环境输出数据。在另一优选实施方式中,可以使用现场总线电报来执行装备模拟环境152和控制器模拟环境154之间的通信。
该实施方式具有以下优点:例如,根据本说明书,可以更容易地在验证系统100内使用被设计用于获取和发送现场总线电报的控制程序312和/或其部件。控制程序312的这种部件可以是例如子程序和/或所谓的“功能块”(例如,由标准IEC 61131-3和/或IEC61499定义的功能块)。以相同方式,可以更容易地在验证系统100内使用被设计用于接收和/或发送现场总线电报的模拟部件和/或行为部件。
通过该实施方式,不仅可以模拟和/或测试与机器人420一起工作的控制程序312,而且还可以模拟自动化控制器410和机器人420之间的可能现场总线通信。
图2还示出了存储在单独计算机硬件上的模拟环境程序代码200。装备模拟环境152被实现为该模拟环境程序代码200的第一实例,其中控制器模拟环境154被实现为该模拟环境程序代码200的第二实例。可以根据本说明书来布置和建立这些实例。在图2所描绘的实施方式中,两个实例都在相同模拟运行时计算机150内实现。在另一个可能的实施方式中,它们也可以在不同的计算机硬件上实现。
模拟环境程序代码200可以例如被实现为PLC模拟软件。在这种情况下,可以使用这种PLC模拟软件,因为控制程序312和模拟程序322都以PLC编程语言编写。
以PLC编程语言编写两个模拟程序312、322大大简化了这种验证系统100的生成和建立。因此,例如,生成模拟程序312、322的用户仅需处理一种环境以生成此类程序。这种环境可以例如是根据本说明书的自动化工程系统,其通常用于生成控制程序,并且在这里也可以用于生成模拟程序322。因此,用户可以充分利用(例如,自动化工程系统300)生成验证控制程序312所需的所有程序代码312、322。
具有以PLC编程语言编写的两个程序(控制程序312和模拟程序322)的另一个优点是,可以使用类似的软件环境或相同的软件环境来执行那些模拟程序312、322。由于用户仅需要处理一种模拟环境类型,因此这也简化了系统的处理。在图2所示的实施方式中,两个模拟环境152、154都是相同的模拟环境代码200的实例。
如果使用相同的模拟环境程序代码200来生成装备模拟环境152和控制器模拟环境154,则在装备模拟环境152与控制器模拟环境154之间的通信也更易于布置和建立。情况是这样,是因为这时两个模拟环境152、154都具有相似或相同的通信结构,其因此与两个不同模拟环境的通信结构相比更易于匹配和协调。在装备模拟环境152与控制器模拟环境154之间的通信的建立将通过图4及后面的示例进行更详细的说明。
图2还示出模拟建立和协调模块110,其具有例如用于分别通过模拟程序322和控制程序312来触发建立模拟环境152、154的功能。它附加地具有使装备模拟环境152的对机器人420的模拟与控制器模拟环境154的对控制器410的模拟相协调的功能。
这种协调例如可以涉及两个模拟的时间同步的管理。根据现有技术中已知的用于同步两个模拟的方法,这种时间同步可以例如通过使用在装备模拟环境152和控制器模拟环境154内的一个或多个内部时钟来执行。
下面通过特别示例来描述两个模拟的这种同步和协调。在该示例中,以周期性执行控制程序312的方式来布置和建立控制器模拟环境154和控制程序312。这样布置和建立的方式是,在执行控制程序312的一个周期后,在该程序周期的执行过程期间由控制程序312产生的输出数据存储在控制器模拟环境154内的输出过程映像存储区域中,并且然后由控制器模拟环境154经由通信软件模块120输出到装备模拟环境152。并行地,在控制器模拟环境154内还实现了一个输入过程映像存储区域,以用于存储控制器输入数据以用作控制程序的输入数据。在该输入过程映像存储区域中,存储由装备模拟环境152通过执行模拟程序322来生成的模拟输出数据,以稍后在随后程序周期的执行期间由控制程序312使用。
可以在控制器模拟和装备模拟之间执行时间协调,例如通过将相应程序周期的结束时间值包括在该程序周期内产生的控制器输出数据到装备模拟环境152的转移中。然后,该结束时间值被用于在装备模拟环境152内设置对应时钟值以用于模拟机器人420。使用这种时间协调,可以通过使用现有技术中的已知用于同步模拟的协调方法来使两个模拟相应地关联。
用作相应程序周期的结束时间的时间值例如可以是在控制器模拟环境154内运行的时钟的或由控制器模拟环境154使用的外部时钟的实际时间值。结束时间值也可以是例如使用例如相应程序周期的计数值乘以周期时间来计算出的时间值,该周期时间预设在控制器模拟环境154内或可由用户设置和/或修改。这种计数器值可以例如由计数器生成,从而计数控制程序312的程序周期。
周期时间的这种设置或修改例如可以用于模拟由特别控制器硬件实现的周期时间,或者用于加速或延迟自动化系统400的模拟。
在装备模拟环境152与控制器模拟环境154之间的时间协调也可以由模拟建立和协调模块110来处理。例如,这可能以上述类似方式或现有技术中已知的用于同步不同模拟的其他方式来完成。
图2还示出了装备模拟数据库130,它也是验证系统100的一部分。该装备模拟数据库130包括不同的行为部件132、134、136。装备模拟数据库130和行为部件132、134、136可以根据本说明书布置和建立。装备模拟数据库130可以位于单独计算机或数据处理单元内,如图2所描绘的。装备模拟数据库130例如也可以在自动化工程系统300和/或模拟建立和协调模块110和/或模拟运行时计算机150内布置和建立。
行为部件132、134、136是用于模拟自动化系统或其零件的不同硬件部件或设备的软件模拟模块。此类硬件部件可以是例如电动机、逆变器、传感器、通信装备件、各种类型的计算机和数据处理单元、HMI设备或其零件、无源通信部件、机械部件,以及可作为零件机器、工厂和/或自动化系统的另外部件、设备或其零件。
装备模拟数据库130中的行为部件132、134、136根据本说明书以PLC编程语言编写,优选地以随后用于创建相应模拟程序的PLC编程语言编写。
在图2所示的示例中,所描绘的三个行为部件132、134、136是用于图1所示的机器人420的零件的模拟模块。这三个行为部件132、134、136以相同的PLC编程语言编写,其中以该PLC编程语言编写模拟程序322。
为了创建用于模拟机器人420的模拟程序322,图2所示的三个行为部件132、134、136从装备模拟数据库130中提取,并且布置为使得通过行为部件132、134、136的这种布置来模拟完整机器人420。根据现有技术中已知的用于组合不同模拟的方法来执行该布置。
行为部件132、134、136的这种布置或者直接用作用于模拟创建的机器人420的模拟程序322,或者用作创建用于模拟机器人420的模拟程序的基础。
例如,可以由模拟建立和协调模块110从装备模拟数据库130中选择用于模拟完整机器人420的必要行为部件132、134、136。例如,可以根据从装备工程项目310获取的工程数据来确定信息,即需要存储在装备模拟数据库130中的哪些行为部件才能模拟机器人420。将相对于图4更详细地解释该过程。
模拟建立和协调模块110也可以被布置和建立以基于从装备模拟数据库130提取的相关行为部件132、134、136来创建用于模拟机器人420的模拟程序322。
将参考图4更详细地说明协调模块110中的模拟设置的另外功能。
图3示出了在所谓的“硬件在环”建立中的验证系统100的另一个实现示例。在这种建立中,图1所示的自动化系统400的控制器410没有像图2所示的实施方式那样由相应的控制器模拟环境模拟,而是直接在验证系统100内使用。
在该建立中,控制程序312由PLC 410执行。然后,以类似的方式在控制器/PLC 410与装备模拟环境152之间传送在执行控制程序312时生成的控制器输出数据,就像关于图2讨论的先前示例中在控制器模拟环境154与装备模拟环境152之间进行的一样。另外,在装备模拟环境152与控制器/PLC 410之间的协调以与在装备模拟环境152与控制器模拟环境154之间的关于图2的解释的方式相似的方式完成。
图4示出了用于生成如图2所示的验证系统100的方法或处理流程的示例。为了更清楚地示出在图2所示的哪个部件中执行或基本上执行相应的过程步骤,图4另外示意性地示出了自动化工程系统300、模拟建立和协调模块110以及模拟运行时计算机150(其中实现了控制器模拟环境154和装备模拟环境152)。
在图4至图6的以下描述中使用的自动化系统400、验证系统100、模拟环境程序代码200、自动化工程系统及其单独部件的名称引用在附图1至3中使用的那些部件的名称。
在图4所示的示例中,控制程序312在自动化工程系统300内开发并存储在其中,作为为图1所示的自动化系统400的自动化而设计和建立的相应装备工程项目310的一部分。
图4示出了装备工程项目310的开发,作为第一步骤710。该装备工程项目310包括用于随后由自动化系统400的控制器410执行的控制程序312。它另外包括硬件配置数据316,其包含自动化系统400中包括的硬件的相关参数。已经相对于图2描述了这一点。另外,装备工程项目310包含变量列表314,其包含有关由控制程序312使用的变量的信息。装备工程项目的这些部件已经相对于图2的描述进行了详细描述。
在下一个步骤720中,将控制程序312下载到模拟运行时计算机150内的控制器模拟环境154。该下载由模拟建立和协调模块110触发并由自动化工程300执行。
然后在下一个步骤730中,将装备工程项目410的硬件配置数据316导入模拟建立和协调模块110中。该导入也由模拟建立和协调模块110触发和处理。然后,也在步骤730内,由模拟建立和协调模块110分析此硬件配置数据316,以提取有关自动化系统400内使用的不同硬件部件的ID信息。经由分析例如该ID信息,识别与控制该机器人有关的机器人420的部件。
另外,在步骤730内,将变量列表314从装备工程项目310导入模拟建立和协调模块110中。将关于行为部件132、134、136或模拟程序322与控制程序312之间的变量映射来更详细地描述对该变量列表314的分析和使用。
在图4所示的另一步骤740中,模拟建立和协调模块110搜索行为部件132、134、136,以查找模拟机器人420的自动化所需的所有部件。作为第一步骤,模拟建立和协调模块110搜索图2和图3所示的装备模拟数据库130,以查找与那些机器人部件相关的相应行为部件132、134、136。在本文描述的示例中,机器人420包括与模拟其自动化有关的三个部件,并且图2和图3所示的三个行为部件132、134、136对应于这三个相关的机器人部件。使用从硬件配置数据316获取的相应ID信息,模拟建立和协调模块110识别相应的行为部件132、134、136并从装备模拟数据库130中提取它们。
在模拟建立和协调模块110无法在装备模拟数据库130内识别模拟机器人420所需的相应行为部件,或者无法识别所有行为部件的情况下,模拟建立和协调模块110可以提示用户输入信息,在哪里找到相应行为部件,或者输入相应行为部件的ID信息或名称。可替代地,用户还可以直接输入信息以获得对这种行为部件的访问,或者甚至直接将它们输入或加载到模拟建立和协调模块110中。
另外,在自动选择行为部件之后,模拟建立和协调模块110还可以提示用户自动选择的所选行为部件是否正确。然后,如果未正确选择,则用户可以改变、移除和/或添加一个或多个行为部件。
在下一步骤750中,模拟建立和协调模块110使用包括在相应机器人部件的硬件配置数据316中的参数来配置相应行为部件。在此,在自动设置此类参数之后,模拟建立和协调模块110还可以提示用户,以最终改变、移除和/或添加相应机器人部件的配置中的一个或多个参数。
然后,在步骤750内,将行为部件132、134、136使用的变量映射在由控制程序312使用的变量上。
由控制程序使用的变量可以包括与控制器输入数据相关的控制程序输入变量,以及与控制器输出数据相关的控制程序输出变量。由模拟程序使用的变量可以包括与模拟输入数据相关的模拟程序输入变量,以及与模拟输出数据有关的模拟程序输出变量。
类似地,行为部件132、134、136也具有对应的输入和输出变量,其与相应行为部件132、134、136的输入和输出数据相关。
通常,变量的映射可以例如在模拟程序变量与控制程序变量之间、或在行为部件变量与控制程序变量之间执行。在下文中,针对行为部件变量和控制程序变量的映射描述了这种映射。可以类似地执行模拟程序变量和控制程序变量的映射。
由行为部件132、134、136使用的变量在由控制程序312使用的变量上的映射可以例如由用户手动完成。为此,模拟建立和协调模块110可以例如在显示设备上显示列表,该列表示出了控制程序312的所有输入变量和控制程序312的输出变量。该控制程序变量列表中包含的变量和有关这些变量的信息取自从自动化工程系统300导入的变量列表314。可以显示变量列表314中包含的与包含在该列表中的控制程序312的输入变量和输出变量有关的信息的一部分或全部信息。包含在变量列表314中的这种信息可以例如包括变量名称、有关变量的元信息和/或有关变量的单元。另外,可以根据本说明书来布置和建立包含在变量列表中并且在用户界面上的相应显示内使用的此类信息。
另外,模拟机器人420所必需的行为部件132、134、136的所有输入和输出变量、或模拟程序322的所有输入和输出变量也显示在显示设备上的对应列表中,再次连同有关变量的对应信息,如已经关于控制程序312的变量所描述的。
这些列表然后可以例如显示在显示设备的不同部分上,并且然后例如用户可以在对应变量之间绘制图形连接,以便将控制程序312的相应输出变量、行为部件132、134、136中的对应行为部件或模拟程序322的两个输入变量以及控制程序312的相应输入变量分配给输出行为部件132、134、136中的对应行为部件的或模拟程序322的输出变量。如上,在两个列表中显示的有关变量的信息可以帮助用户进行这种分配。例如,比较变量名称、物理单位、设备ID和/或有关变量的其他元信息可以允许用户明确且容易地分配此类变量。
通过将变量列表314中包含的有关控制程序312所使用的变量的所有信息与有关由用于模拟机器人420的行为部件132、134、136或模拟程序322所使用的变量的所有可用信息进行比较,变量的这种分配也可以由模拟建立和协调模块110以自动方式进行。如上,例如,比较变量名称、物理单元、相关部件的ID信息和其他元信息可以允许将控制程序变量明确分配给行为部件变量。这种分配可以例如以下面的方式进行:在第一步骤中,在可以根据可用于相应变量的信息明确进行此分配的情况下,将所有控制程序变量分配给行为部件或模拟程序变量。在第二步骤中,可以根据本说明书分配其余变量。
变量的分配也可能以半自动方式进行。在第一步骤中,可以由模拟建立和协调模块110根据先前的描述来执行变量的自动分配。然后可以向用户提示不可自动分配的变量。例如,这可以通过例如显示所有未分配控制程序变量和所有未分配行为部件变量的列表以供用户手动分配来执行,例如根据先前的描述。
在任何情况下,在控制程序312和行为部件132、134、136或模拟程序322的变量的自动或半自动分配之后,可以将所执行的分配显示在显示装置上以供用户手动校正和修正。
在通过控制程序312和模拟程序322的变量来执行变量分配的情况下,则该变量分配也可以在步骤760而不是步骤750内执行。
然后,在后面的步骤760中,模拟建立和协调模块110在自动化工程系统内创建新的模拟工程项目320。然后,从装备模拟数据库130获取的行为部件132、134、136被布置成构建作为该模拟工程项目320的部分的模拟程序322。这种组成可以例如使用现有技术中已知的方法来执行。模拟程序322的组成可以例如通过简单地使用行为部件132、134、136的集合作为模拟程序322来执行。集成行为部件以构建模拟程序322是相对简单的,因为行为部件132、134、136已经以也用于模拟程序322的PLC编程语言编写。
然后,在接下来的下一个步骤770中,将模拟程序322从自动化工程系统300下载到装备模拟环境152。该下载由模拟建立和协调模块110触发并由自动化工程系统300执行。
现在,通过模拟程序322建立装备模拟环境152,并且通过控制程序312建立控制器模拟环境154,并且准备启动自动化系统400的模拟。该启动(如图4中的步骤770所示)由模拟建立和协调模块110自动或在对应用户输入之后执行和触发。通过启动模拟,模拟建立和协调模块110在控制器模拟环境154内触发模拟程序322的启动和控制程序312的启动。通过启动两个模拟环境152、154,还启动了那些模拟环境152、154之间的通信。该通信如图4中的箭头790所示。在优选实施方式中,由控制器模拟环境154和装备模拟环境152提供的应用程序接口(API)可以分别用于执行装备模拟环境152和控制器模拟环境154之间的通信。特别是在控制器模拟环境154和装备模拟环境152是相同模拟环境程序代码200的两个实例的情况下,因为两个API具有相同的功能和布局,所以这简化了两个模拟环境154、152之间的通信。
可以根据现有技术中已知的用于协调不同模拟的方法来执行装备模拟环境152和控制器模拟环境154的协调。
在图4所示的方法的优选实施方式中,在方法步骤780内启动模拟之前的某个时间,可以将装备模拟环境152创建为存储在单独计算机上的模拟环境程序代码200的实例。该实例的这种创建例如也可以由模拟建立和协调模块110触发和/或执行。以类似方式,在方法步骤780内启动模拟之前的某个时间,还可以将控制器模拟环境154创建为模拟环境程序代码200的第二实例。该控制器模拟环境154的创建也可以由模拟建立和协调模块110触发和/或执行。
图5所示的方法是已经相对于图4说明的方法的变体。在下文中,仅说明图5和图4之间的区别。图5所示的其他方法步骤对应于图4中的对应步骤。
图4和图5之间的唯一区别是,在图5中,控制器模拟环境154和装备模拟环境152之间的通信经由通信软件模块120执行。这意味着,在启动和协调模拟的步骤770中,不仅开始控制器模拟环境154和装备模拟环境152的启动,而且还启动通信软件模块120。通过启动这三个部件154、152、120,然后还启动了装备模拟环境154和通信软件模块120之间的通信,如箭头794所示。而且,在控制器模拟环境154与通信软件模块120之间的通信是并行启动的,这在图5中由箭头792描绘。
然后可以根据本说明书和/或根据现有技术已知的方法来执行该通信。
图6示出了图4和图5所示的方法的另一种替代实施方式。在图6中,描绘了用于根据图3来建立硬件在环验证系统的建立规程的示例。
在下文中,仅描述了图5和图六之间的区别。图6所示的其他处理步骤对应于图5所示的相应步骤。
在图3所示的硬件在环设置中,控制程序312由控制器410执行。因此,对于硬件控制器410或PLC 410执行图6中的控制程序的下载步骤720。然后,除了在模拟运行时计算机150中的装备模拟环境152内开始执行模拟程序322之外,在图6中的开始模拟的步骤770还包括由控制器410开始执行控制程序312。类似地,在经由通信软件模块120开始控制器410与装备模拟环境152之间的通信期间,也开始了控制器410与通信软件模块120之间的通信,这在图6中被示为箭头796。
Claims (30)
1.一种用于验证自动化系统(400)的控制程序(312)的系统(100),
其中所述控制程序(312)以第一控制器编程语言创建并且被布置和建立以用于在由所述自动化系统(400)的自动化控制器(410)执行时控制所述自动化系统(400)的装置(420)或设备,
并且其中用于验证所述控制程序的系统(100)包括:
-用于执行所述控制程序的控制器环境(154、410),
-用于执行模拟程序(322)以模拟所述装置(420)或设备或其零件的行为的装备模拟环境(152),
其中所述装备模拟环境(152)可通信联接到所述控制器环境(154、410)以启用和/或执行所述自动化系统(400)的模拟,
并且其中所述模拟程序(322)以所述第一控制器编程语言或第二控制器编程语言创建。
2.根据权利要求1所述的系统,其中所述控制器环境(154、410)被布置并建立以用于周期地处理所述控制程序(312)并且用于在所述控制程序的程序周期结束时输出周期结束时间值。
3.根据权利要求2所述的系统,
其中所述控制程序(312)的一个周期的执行时间由周期时间值表征,并且
其中在处理所述控制程序(312)的第一周期之后,输出第一周期结束时间值,并且在执行所述控制程序(312)的后续执行之后,输出第二周期结束时间值,所述第二周期结束时间值基于所述第一周期结束时间值和所述周期时间值。
4.根据权利要求3所述的系统,其中所述控制器环境(154、410)被布置和建立以使用时钟来确定所述周期时间值。
5.根据权利要求3或4所述的系统,其中所述周期时间值是预定值。
6.根据权利要求5所述的系统,其中所述周期时间值是由用户设置或改变的预定值。
7.根据前述权利要求中任一项所述的系统,其中用于验证所述控制程序的系统(100)可通信地联接自动化工程系统(300),用于从所述自动化工程系统(300)接收自动化系统工程数据(310、312、314、316),
其中通过生成所述自动化系统工程数据(310、312、314、316)来布置和建立所述自动化工程系统(300)以用于设计所述自动化系统(400),
其中所述自动化系统工程数据(310、312、314、316)包括所述控制程序(312)。
8.根据权利要求7所述的系统,
其中所述自动化系统工程数据(310、312、314、316)还包括有关由所述控制程序使用的输入数据和/或有关由所述控制程序生成的输出数据的变量列表(314),
并且其中用于验证所述控制程序的系统(100)被进一步布置和建立以用于限定在所述控制器环境(154、410)与所述装备模拟环境(152)之间转移控制器输入数据和控制器输出数据。
9.根据前述权利要求中任一项所述的系统,
其中用于验证所述控制程序的系统(100)还包括装备模拟数据库(130)以存储用于模拟技术装备和/或其零件的行为部件(132、134、136),并且
其中所述装备模拟数据库(130)包括与所述模拟程序(322)相对应的至少一个模块行为部件(132、134、136)。
10.根据权利要求9所述的系统,其中所述行为部件(132、134、136)以所述第一控制器编程语言、所述第二控制器编程语言和/或一种或多种另外的控制器编程语言创建。
11.根据权利要求9或10所述的系统,其中用于验证所述控制程序的系统(100)被进一步布置和建立以用于从所述装备模拟数据库(130)中选择所述至少一个模块行为部件(132、134、136)。
12.根据前述权利要求中任一项所述的系统,
其中所述系统(100)根据权利要求7和9中任一项布置和建立,
其中所述自动化系统工程数据(310、312、314、316)包括有关所述装置(420)或设备和/或其零件的ID信息(316),
并且其中用于验证所述控制程序的系统(100)被进一步布置和建立以用于导入所述ID信息(316)并且用于从所述装备模拟数据库(130)中选择所述至少一个模块行为部件(132、134、136)。
13.根据前述权利要求中任一项所述的系统,其中用于验证所述控制程序的系统(100)被进一步布置和建立以基于所述至少一个模块行为部件来建立所述模拟程序(322)。
14.根据权利要求13所述的系统,
其中所述系统(100)根据权利要求7布置和建立,
并且其中所述系统(100)被进一步布置和建立以在所述自动化工程系统(300)内或在另一自动化工程系统内生成模拟工程项目(320),所述模拟工程项目(320)包括所述模拟程序(322)。
15.根据前述权利要求中任一项所述的系统,
其中用于验证所述控制程序的系统(100)还包括被布置和建立以用于以下中的至少一项的模拟协调模块(110):
-协调所述控制器系统(154、410)和所述装备模拟系统(152)以模拟自动化系统(400),
-开始所述控制程序(312、332)从所述自动化工程系统(300)到所述控制器环境(154、410)的转移,其中所述系统(100)根据权利要求6布置和建立,
-从所述自动化工程系统(300)接收ID数据(316)并且从所述装备模拟数据库(130)中选择所述至少一个模块行为部件,其中所述系统(100)根据权利要求7和9中任一项布置和建立,
-从所述自动化工程系统(300)接收变量列表(314),并且在所述控制器环境(154、410)与所述装备模拟环境(152)之间建立通信联接,其中所述系统(100)根据权利要求7布置和建立,
-在所述自动化工程系统(300)内生成模拟工程项目(320),所述模拟工程项目(320)包括所述模拟程序(322),
其中所述系统(100)根据权利要求7和14中任一项布置和建立。
16.根据前述权利要求中任一项所述的系统,其中用于验证所述控制程序的系统(100)包括可通信联接到所述控制器环境(154、410)和所述装备模拟环境(152)的通信软件模块(120)。
17.根据前述权利要求中任一项所述的系统,
其中所述自动化系统(400)还包括附加技术装备,并且
其中用于验证所述控制程序的系统(100)包括用于模拟所述附加技术装备的另一模拟环境,
其中所述控制程序(312)被布置和建立以用于在由所述自动化控制器(410)执行时也控制所述附加技术装备,
并且其中所述另一模拟环境可通信联接到所述控制器环境(154、410),以启用所述自动化系统(400)的模拟或模拟所述自动化系统(400)。
18.根据权利要求15至17中任一项所述的系统,其中所述模拟协调模块(110)被布置和建立以用于协调所述控制器环境(154、410)、所述装备模拟环境(152)和另一模拟环境。
19.根据前述权利要求中任一项所述的系统,其中所述控制器环境(154、410)包括所述自动化控制器(410)。
20.根据权利要求1至18中任一项所述的系统,其中所述控制器环境(154、410)被布置和建立为用于模拟所述自动化控制器(410)的控制器模拟环境(154)。
21.根据权利要求20所述的系统,其中所述控制器模拟环境(154)被布置为模拟环境程序(200)的第一实例,并且所述装备模拟环境(152)被布置为所述模拟环境程序(200)的第二实例。
22.一种用于使用根据前述权利要求中任一项所述的用于验证控制程序的系统(100)来验证自动化系统(400)的控制程序(312)的方法,
其中所述控制程序(312)以第一控制器编程语言创建并且被布置和建立以用于在由所述自动化系统(400)的自动化控制器(410)执行时控制所述自动化系统(400)的装置(420)或设备,
所述方法包括以下步骤:
-生成用于模拟所述装置(420)或设备或其零件的行为的模拟程序(322),所述模拟程序(322)以所述第一控制器编程语言或第二控制器编程语言创建,
-在所述装备模拟环境(152)中实现所述模拟程序(322),
-在所述控制器环境(154、410)中实现所述控制程序(312),
-在所述装备模拟环境(152)与所述控制器环境(154、410)之间建立通信联接,以启用所述自动化系统(400)的模拟,以及
-开始所述自动化系统(400)的模拟。
23.根据权利要求22所述的方法,其中所述方法还包括在生成所述模拟程序(322)之前,从装备模拟数据库(130)中选择与所述模拟程序(322)相对应的至少一个模块行为部件(132、134、136)的步骤,所述装备模拟数据库存储用于装置(420)或设备或其零件的行为部件(132、134、136)。
24.根据权利要求23所述的方法,其中生成所述模拟程序(322)的步骤被布置和建立以基于所述至少一个模块行为部件来生成所述模拟程序(322)。
25.根据权利要求22至24中任一项所述的方法,
其中所述控制程序(312)是所述自动化系统(400)的工程数据(310、312、314、316)的一部分,
其中所述工程数据被存储在自动化工程系统(300)中,并且
其中所述自动化工程系统(300)可通信联接到用于验证所述控制程序的系统(100)。
26.根据权利要求25所述的方法,
其中所述工程数据(310、312、314、316)还包括有关所述装置(420)或设备或其零件的ID信息(316),
并且其中所述方法还包括在生成所述模拟程序(322)之前从所述自动化工程系统(300)导入所述ID信息(316)的步骤。
27.根据权利要求25至26中任一项所述的方法,
其中所述工程数据(310、312、314、316)还包括有关由所述控制程序使用的输入数据和/或有关由所述控制程序生成的输出数据的变量列表(314),
并且其中所述方法还包括以下步骤:从所述自动化工程系统(300)导入所述变量列表(314),以及限定控制器输入数据和控制器输出数据在所述控制器环境(154、410)与所述装备模拟环境(152)之间的转移。
28.根据权利要求25至27中任一项所述的方法,其中所述方法包括以下步骤:在所述自动化工程系统(300)内生成模拟工程项目(320),以及在所述模拟工程项目(320)内实现所述模拟程序(322)。
29.根据权利要求22至28中任一项所述的方法,其中所述控制器环境(154、410)被布置和建立为用于模拟所述自动化控制器的控制器模拟环境(154)。
30.根据权利要求29所述的方法,其中所述方法包括以下步骤:生成所述控制器模拟环境(154)作为模拟环境程序(200)的第一实例,并且生成所述装备模拟环境(152)作为所述模拟环境程序(200)的第二实例。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19156415.2 | 2019-02-11 | ||
EP19156415.2A EP3693816A1 (en) | 2019-02-11 | 2019-02-11 | System for validation of a control program |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111552262A true CN111552262A (zh) | 2020-08-18 |
Family
ID=65408948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010084336.6A Pending CN111552262A (zh) | 2019-02-11 | 2020-02-10 | 用于验证自动化系统的控制程序的系统及其方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11604446B2 (zh) |
EP (1) | EP3693816A1 (zh) |
CN (1) | CN111552262A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416608A (zh) * | 2021-12-06 | 2022-04-29 | 埃夫特智能装备股份有限公司 | 基于虚拟机器人控制器总线结构的外部设备模拟平台及其模拟方法 |
CN114844739A (zh) * | 2022-04-22 | 2022-08-02 | 道莅智远科技(青岛)有限公司 | 一种可实现工业总线实时性的方法 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6341291B1 (en) * | 1998-09-28 | 2002-01-22 | Bentley Systems, Inc. | System for collaborative engineering using component and file-oriented tools |
US20030033133A1 (en) * | 2001-08-07 | 2003-02-13 | Dieter Kleyer | Simulation system |
US20080126973A1 (en) * | 2006-09-27 | 2008-05-29 | Rockwell Automation Technologies, Inc. | Sequential function chart validation tool |
US20090089234A1 (en) * | 2007-09-28 | 2009-04-02 | Rockwell Automation Technologies, Inc. | Automated code generation for simulators |
US20120197617A1 (en) * | 2011-01-31 | 2012-08-02 | Muris Mujagic | Co-Simulation with Peer Negotiated Time Steps |
US20120232869A1 (en) * | 2011-03-07 | 2012-09-13 | Rockwell Automation Technologies, Inc. | Industrial simulation using redirected i/o module configurations |
US20150019191A1 (en) * | 2011-03-07 | 2015-01-15 | Rockwell Automation Technologies, Inc. | Industrial simulation using redirected i/o module configurations |
CN104635508A (zh) * | 2013-11-08 | 2015-05-20 | 洛克威尔自动控制技术股份有限公司 | 在工业控制器与仿真应用之间交换数据以仿真机器的接口 |
CN104678778A (zh) * | 2013-11-08 | 2015-06-03 | 洛克威尔自动控制技术股份有限公司 | 用于仿真工业自动化中的机器的信号传送间隔的时间同步 |
CN104950741A (zh) * | 2014-03-26 | 2015-09-30 | 洛克威尔自动控制技术股份有限公司 | 用于系统连接的多控制器的配置管理接口 |
CN105278402A (zh) * | 2014-06-27 | 2016-01-27 | 欧姆龙株式会社 | 信息处理装置、信息处理方法以及程序 |
EP2985663A1 (de) * | 2014-08-14 | 2016-02-17 | Siemens Aktiengesellschaft | Verfahren zur Simulation einer automatisierten industriellen Anlage |
CN105843152A (zh) * | 2015-02-02 | 2016-08-10 | 西门子公司 | 在自动化设备中的损坏的设备组件的更换 |
CN106020008A (zh) * | 2015-03-31 | 2016-10-12 | 欧姆龙株式会社 | 控制装置 |
CN107667349A (zh) * | 2015-06-04 | 2018-02-06 | 西门子公司 | 在多学科工程系统中用于对工程数据进行聚类的方法和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194489B2 (en) * | 1998-09-28 | 2007-03-20 | Bentley Systems Incorporated | System, method and computer program product for collaborative engineering using component and file oriented tools |
EP2790101B1 (en) | 2013-04-10 | 2016-01-20 | ABB Technology AG | System and method for automated virtual commissioning of an industrial automation system |
-
2019
- 2019-02-11 EP EP19156415.2A patent/EP3693816A1/en active Pending
-
2020
- 2020-02-10 US US16/786,480 patent/US11604446B2/en active Active
- 2020-02-10 CN CN202010084336.6A patent/CN111552262A/zh active Pending
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6341291B1 (en) * | 1998-09-28 | 2002-01-22 | Bentley Systems, Inc. | System for collaborative engineering using component and file-oriented tools |
US20030033133A1 (en) * | 2001-08-07 | 2003-02-13 | Dieter Kleyer | Simulation system |
US20080126973A1 (en) * | 2006-09-27 | 2008-05-29 | Rockwell Automation Technologies, Inc. | Sequential function chart validation tool |
US20090089234A1 (en) * | 2007-09-28 | 2009-04-02 | Rockwell Automation Technologies, Inc. | Automated code generation for simulators |
US20120197617A1 (en) * | 2011-01-31 | 2012-08-02 | Muris Mujagic | Co-Simulation with Peer Negotiated Time Steps |
US20120232869A1 (en) * | 2011-03-07 | 2012-09-13 | Rockwell Automation Technologies, Inc. | Industrial simulation using redirected i/o module configurations |
US20150019191A1 (en) * | 2011-03-07 | 2015-01-15 | Rockwell Automation Technologies, Inc. | Industrial simulation using redirected i/o module configurations |
CN104635508A (zh) * | 2013-11-08 | 2015-05-20 | 洛克威尔自动控制技术股份有限公司 | 在工业控制器与仿真应用之间交换数据以仿真机器的接口 |
CN104678778A (zh) * | 2013-11-08 | 2015-06-03 | 洛克威尔自动控制技术股份有限公司 | 用于仿真工业自动化中的机器的信号传送间隔的时间同步 |
CN104950741A (zh) * | 2014-03-26 | 2015-09-30 | 洛克威尔自动控制技术股份有限公司 | 用于系统连接的多控制器的配置管理接口 |
CN105278402A (zh) * | 2014-06-27 | 2016-01-27 | 欧姆龙株式会社 | 信息处理装置、信息处理方法以及程序 |
EP2985663A1 (de) * | 2014-08-14 | 2016-02-17 | Siemens Aktiengesellschaft | Verfahren zur Simulation einer automatisierten industriellen Anlage |
CN105843152A (zh) * | 2015-02-02 | 2016-08-10 | 西门子公司 | 在自动化设备中的损坏的设备组件的更换 |
CN106020008A (zh) * | 2015-03-31 | 2016-10-12 | 欧姆龙株式会社 | 控制装置 |
CN107667349A (zh) * | 2015-06-04 | 2018-02-06 | 西门子公司 | 在多学科工程系统中用于对工程数据进行聚类的方法和系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416608A (zh) * | 2021-12-06 | 2022-04-29 | 埃夫特智能装备股份有限公司 | 基于虚拟机器人控制器总线结构的外部设备模拟平台及其模拟方法 |
CN114844739A (zh) * | 2022-04-22 | 2022-08-02 | 道莅智远科技(青岛)有限公司 | 一种可实现工业总线实时性的方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3693816A1 (en) | 2020-08-12 |
US11604446B2 (en) | 2023-03-14 |
US20200257259A1 (en) | 2020-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Süß et al. | Test methodology for virtual commissioning based on behaviour simulation of production systems | |
EP2778816B1 (en) | System and method for testing a distributed control system of an industrial plant | |
US20090089234A1 (en) | Automated code generation for simulators | |
Mathias et al. | Automatic model generation for virtual commissioning based on plant engineering data | |
CN108345265B (zh) | 硬件设备的编程方法、可视化编程平台、存储器和处理器 | |
US20140228978A1 (en) | Method for generating and handling applications for components of a distributed control system and engineering system for implementing the process | |
CN103477290A (zh) | 控制器辅助装置、用于在该装置中执行的控制器辅助程序以及存储有该程序的记录介质 | |
CN113260935A (zh) | 对模块化技术系统进行计算机辅助仿真的方法和设备 | |
Park et al. | Development of virtual simulator for visual validation of PLC program | |
Hammerstingl et al. | Unified Plug&Produce architecture for automatic integration of field devices in industrial environments | |
CN111552262A (zh) | 用于验证自动化系统的控制程序的系统及其方法 | |
US20090043408A1 (en) | Integrated drive management and configuration using instantiated objects | |
KR20180009344A (ko) | 프로그램 생성 장치 및 그 방법 | |
JP6445029B2 (ja) | 自動化システムを構成するための処理装置および方法 | |
CN111610725B (zh) | 一种联合仿真方法 | |
Scheifele et al. | Engineering of machine tools and manufacturing systems using cyber-physical systems | |
CN110968051A (zh) | 用于规划自动化系统的方法和工程系统 | |
Kim et al. | Automatic control sequence generation for a hybrid disassembly system | |
Olbort et al. | Integration of Communication using OPC UA in MBSE for the Development of Cyber-Physical Systems | |
US10776536B2 (en) | Method for generating a Petri Net simulation model of an industrial control system | |
Schäfer et al. | Design and Deployment of Digital Twins for Programmable Logic Controllers in Existing Plants. | |
US10599112B2 (en) | Method for programming and configuring a device in a traceable manner | |
JP4301976B2 (ja) | プログラミングツール | |
Sieffert et al. | Generation of inter-plc communication in distributed control systems using IEC 61499 | |
US11287802B2 (en) | Simulation method for simulating a real control for an industrial process, a system, or a machine, and simulation system for carrying out such a simulation method |
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 |