CN112799351A - 用于模块化适配可编程控制器的方法 - Google Patents

用于模块化适配可编程控制器的方法 Download PDF

Info

Publication number
CN112799351A
CN112799351A CN202011259522.5A CN202011259522A CN112799351A CN 112799351 A CN112799351 A CN 112799351A CN 202011259522 A CN202011259522 A CN 202011259522A CN 112799351 A CN112799351 A CN 112799351A
Authority
CN
China
Prior art keywords
command
function
data
objects
data element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011259522.5A
Other languages
English (en)
Inventor
T·施勒德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN112799351A publication Critical patent/CN112799351A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4147Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using a programmable interface controller [PIC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31229Supervisor, master, workstation controller, automation, machine control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34013Servocontroller

Abstract

本发明涉及一种用于模块化适配可编程控制器的方法,所述方法包括:提供基础运行时系统;在所述基础运行时系统中以所规定的顺序定义明确的引用(S1、S2、S3;330、332、334;402、404、406、408、410、412、414);提供至少一个功能对象(100;F1、F2、F3;320、322),所述功能对象具有一个或多个要实施的方法(104)和具有至少一个到所述方法其中的一个或多个方法的功能指针,其中每个功能指针与所定义的明确的引用链接;和基于所链接的明确的引用执行所提供的功能对象(100;F1、F2、F3;320、322)其中至少之一。

Description

用于模块化适配可编程控制器的方法
技术领域
本发明涉及一种用于模块化(modular)适配经编程的控制器的方法、计算机程序和计算单元。
背景技术
在用于不同应用领域的控制器情况下,尤其是在自动化控制器的领域中,通常将计算序列固定地锚定(verankern)在控制器软件的架构中。在这样的结构中,控制器的用户仅具有非常有限的干预可能性。虽然部分可能的是,在计算序列(Berechnungsabfolge)的各个位事后修改结果或者在预给定的元素(Element)定义附加功能,但是如果这种简单的干预并不足够,则必须开发和创建新的固件。同样地,不能放弃计算序列的针对本地应用而言根本不需要的部分。在这样的系统中的共同数据访问针对这样的干预可能性而言也受限。所有这些特性使得控制器的维护或功能性的模块化分布是困难的。
发明内容
根据本发明,提出一种具有独立专利权利要求的特征的有实时能力地模块化适配经编程的控制器的方法。有利的构型方案是从属权利要求以及接下来的描述的主题。
尤其是提出一种方法,在所述方法的情况下首先提供基础运行时系统,在该基础运行时系统中以所规定的顺序定义了明确的引用(Referenz)。然后,提供至少一个功能对象,其中所述功能对象具有一个或多个要实施的方法和具有至少一个到这些方法其中的一个或多个方法的功能指针(Funktionszeiger),其中每个功能指针又与基础运行时系统的所定义的明确的引用之一链接(verknüpfen)。接下来,基于所链接的明确的引用执行所提供的功能对象其中至少之一。以这种方式,可以在控制器中使用以用于执行程序流程的被封装的(gekapselt)对象类的形式的功能对象,其中使用明确的引用(在下文中也称为区段(Sektion))确保了以匹配的顺序进行的多个功能对象的流程,而不必存在或已知之前的所有功能对象。作为功能对象可以使用任意的对于该控制器而言基础的功能,例如各式各样的计算、变换或各个控制指令(Steuerbefehl)。
该方法可以在一种实施方式中进一步包括:在基础运行时系统中登记(Anmelden)至少一个新的功能对象,其中所述登记包括:所述至少一个功能指针和与之链接的明确的引用的说明;以及由功能元素所使用的数据元素的说明。因此,可以例如将之后开发的或者由客户或外来供应商开发的附加功能以模块化方式并且在运行时间(在并不重新启动控制系统的情况下)添加到原始的基础系统并且列入(einreihen)到现有的程序流程中,而不必已经原始已知所包括的功能对象。通过在系统进行登记,可以由命令(Kommando)(尤其是在可编程的单元中)使用附加的功能对象。
根据示例性的实施方式,由这些所注册的(registrieren)功能对象其中的一个或多个形成可执行的命令。在此,可以使用这些命令,以便由功能对象的这些单个功能形成完整的流程步骤(Ablaufschritt),例如执行器(Aktor)的确定的运动流程。可以经由适合的接口从外部预给定命令,并且定义该控制器的行为并且因此定义该机器的行为。
此外,可以针对如下命令提供数据管理模块,该数据管理模块管理在命令中所包含的功能对象之间的数据元素的交换,其中数据元素的交换包括如下项其中至少之一:通过功能对象提供至少一个数据元素;通过功能对象读取至少一个数据元素。该数据管理模块允许在命令中分配并且时间上归类(Einordnung)针对任意的所登记的功能对象的数据访问并且也能够承担关于所述数据的其他任务,诸如所交换的数据的定型化(Typisierung)或定型检验(Typprüfung)。
在通过功能对象提供数据元素的情况下,可以将该数据元素与运行时系统中的所定义的、明确的引用之一链接,优选与如下引用链接,在该引用情况下进行相应步骤的执行(例如数据元素的计算)。因此,数据元素可以以与明确的引用链接的方式给出数据的不同计算状态并且被分配数据的不同计算状态。优选地,对于每个引用而言每个数据元素可以被提供最多一次,以便实现明确的分配。然而,当每个写访问被分配给单独的引用时,数据元素可以被多次地写入。因此可能的是,描绘(abbilden)该数据元素的不同的计算状态。
因此,例如,所命令(kommandiert)的目标位置可以在多个区段中被写入:初始地在区段“CmdData”中作为恰好如下值被写入,其中这些值已作为参数被提供(mitgeben)给该命令;之后在区段“AbsPosition”中被写入,其中相对值已被换算成绝对值(并且因此仅仅还有绝对值保存在该区段中);并且最后在区段“Offsets”中被写入,其中这些绝对值还附加地通过所编程的移位(Verschiebung)被修改。
在读取数据元素时,于是又可以参考该基础运行时系统的所定义的明确的引用之一。因此,每个进行读取的功能对象可以选择:该功能对象想要访问数据元素的这些计算状态中的哪个。选择性地,可以在读取数据元素时说明(angeben)基础运行时系统的所定义的明确的引用中的目标引用,其中,所读取的数据元素于是相应于在目标引用之前最后提供的数据元素,从而也将该目标引用之前的未知的附加修改包括在内,而该功能对象不必精准知晓之前的步骤。
在以上的示例中,该功能对象现在可以选择:其想要得到被命令(kommandieren)的目标位置来作为原始参数(读取区段“CmdData”)、作为绝对值(读取区段“AbsPosition”)还是作为在移位之后的值(读取区段“Offsets”)。如果没有移位是激活的(aktiv)(并且因此使区段“Offsets”不包含数据元素),则数据管理模块能够自动地提供在所期望的区段之前的最后区段(也即来自区段“AbsPosition”)的数据。因此进行读取的功能对象不必知晓:是否移位实际上是激活的。
按照其他实施方式,可以检测用于命令的至少一个如下命令参数,其中所述至少一个命令参数能够由在该命令中所包含的功能对象的方法来调用。命令参数可以例如从数据管理模块被传递到功能对象,作为数据元素,在此处然后能够将这些命令参数用于接下来的执行步骤。
附加地可能的是,由这些功能对象其中一个或多个功能对象形成命令选项(Kommandooption)。这样的命令选项然后可以被激活并引起:将该命令选项的所述功能对象其中的所述一个或多个功能对象添加至至少一个接下来的命令。
在此,例如能够针对预给定数目个接下来的命令激活命令选项,或者仅针对下一个命令激活命令选项;但是选择性地也可以针对所有接下来的命令激活命令选项,直至调用对该命令选项的去激活。因此,可以灵活地打开和关闭在命令之内的各个功能,而并不持续地重新开发整个命令。
针对命令选项的示例是所命令的目标位置的上述的移位。如果该选项是激活的,则该选项将下一步添加到计算链。如果并非如此,则不消耗运行时间并且也并不占用存储器。所有其他计算步骤完全地无关于:是否移位是激活的。
在一种实施方式中,可以将扩展(Erweiterung)添加到基础系统,其中该扩展包括如下项至少之一:一个或多个功能对象、一个或多个命令、一个或多个命令选项。因此,能够在每个时间点灵活扩展基础系统,不仅在制造商侧而且也特定地为所确定的客户应用来定制(zuschneiden)该基础系统。扩展的安装优选在并不重新启动该控制器的情况下是可能的并且因此能够非常简单并且快速地实施。一旦已经在基础系统登记了该扩展,就能够使用并且能够通过适合的接口来从外部调用附加的命令和命令选项。
在其他实施方式中,可以提供图形的用户接口,该图形的用户接口使得能够显示所提供的功能对象。然后,能够检测用户输入,该用户输入再现了(wiedergeben)对功能对象的选择,并且能够由所选择的功能对象形成能执行的命令。这样的用户接口使得应用者能够以简单的方式实施控制器的附加功能性和运动流程,而不必在此深入地(vertieft)干预到开发。在此,所使用的功能对象又可以是原始的基础系统的部分和/或之后通过扩展来被添加。
优选地,这些功能对象可以形成用于操控例如一个或多个执行器、一个或多个传感器、一个或多个驱动装置的子功能。能够设想在实际上每个能操控的系统中通过功能对象来模块化扩展控制器的基本原理,而以这种方式则可扩展地尤其是构建用于自动化系统、通用机、加工中心和例如具有有存储器可编程控制器的其他系统的控制器。
根据本发明的计算单元、例如自动化控制器尤其是在编程技术上设立用于执行根据本发明的方法。以具有用于执行所有方法步骤的程序代码的计算机程序产品或计算机程序的形式的根据本发明的方法的实现方案也是有利的,因为这引起特别小的成本,尤其是在进行执行的控制设备还被用于其他任务并且因此总归存在的情况下引起特别小的成本。用于提供该计算机程序的适合的数据载体尤其是磁性存储器、光学存储器和电存储器,诸如硬盘、闪存存储器、EEPROM、DVD等等。也可能经由计算机网(互联网、内联网等)对程序进行下载。
本发明的其他优点和构型方案从说明书和附图中得出。
应理解:上文提及的并且接下来还要阐述的特征不仅仅以分别所说明的组合方式而且也以其他组合方式或者以单独方式是可用的,而并不偏离本发明的范畴。
本发明依据实施例在附图中示意性被示出并且在下文中参照附图被详细描述。
附图说明
图1示例性地示出由所选择的功能对象形成命令;
图2示意性地示出在不同区段中的功能对象的数据访问;
图3示出按照一个可能的实施方式在数据管理模块中在命令的两个功能对象之间的数据交换;和
图4示例性地示出在执行不同区段中的命令的情况下可视化的数据流。
具体实施方式
在图1中示意性地示出根据本发明的实施方式的用于适配经编程的控制器的示例性的模块化系统。
该基础首先是作为被嵌入的运行时系统(embedded system(嵌入式系统))的控制器的基础系统,其中在所述被嵌入的运行时系统中能够实现不同的标准功能。在此,其可以例如是用于自动化系统的所有类型的基础控制功能。该运行时系统可以作为单元来提供。
为了适配和扩展该系统,现在可以设置功能对象100,其中所述功能对象基本上可以是经编译的(kompilieren)对象类。功能对象应该为了在运行时系统中使用而满足确定的接口。在此,功能对象可以要么已经是基础系统的部分并且然后连接到运行时系统,要么可以被包含在运行时系统的扩展中。
在此,扩展可以作为具有预先定义的接口的共同使用的程序库而存在。在加载扩展的情况下,该扩展可以在运行时系统进行登记并且对该扩展中所包含的附加功能性进行注册。因此,扩展可以事后安装并且不仅可以在制造商侧被纳入(einbinden)而且也可以由控制器的最终用户开发和/或模块化地被纳入。相应地,多个扩展也能够例如从不同来源或者在不同时间点被添加到现有的系统或者可选地也再次被移除或者改变。
功能对象可以同样地在加载时在运行时系统登记并且自所述登记起优选地在整个系统中是可用的,例如也针对附加的扩展是可用的。在此,针对每个功能对象分派(vergeben)明确的名称,该名称用于标识。
可以通过功能对象实施控制器的任意的适合的单个功能性。这些单个功能性可以例如涉及针对执行器的或机器轴的运动的指示(Anweisung)或特定的计算步骤。在此,不仅功能性自身而且在系统的登记也在该功能对象中进行。对于每个功能对象100都有内部数据104和方法106可供使用,其中所述内部数据和方法仅仅在所述功能对象中是可用的。在此,这些组成部分能够被转用到图1中所示的功能对象100a、100b、...、100h其中的每个,其中应理解:每个功能对象可以具有不同数据和/或方法。这些内部方法和数据可以由相应功能对象中的所有子功能来读取、写入和/或调用。相反,这些内部方法和数据从外部是不可达的,也即这些功能对象是完全封装的。为了向外部进行数据交换,例如与其他功能对象进行数据交换,可以使用数据管理模块和经由定义的接口进行的功能对象的跳出(Aussprung),这在下文中被更详细地阐述。
以之前提及的用于自动化系统或加工机的控制器为例,可以作为预先定义的或者事后引入的功能对象例如设置如下各项:
- 几何的运动功能、例如线性运动;环形运动;沿着三次样条(kubischer Spline)或B样条的运动;
- 一维的内插,例如用于以梯形速度走向生成加加速度受限(ruckbegrenzt)的速度分布(Geschwindigkeitsprofil)的内插(Interpolator),或者也可以是基于sin2函数的内插;
- 归一化和换算功能(normierung),诸如米(metrisch)度量、英美(angloamerikanisch)度量、在坐标系之间的换算,其中坐标系例如是极坐标系、笛卡尔坐标系、其他坐标系;
- 移位,诸如零点移位、工具移位、Helmert变换;
- 以加加速度限制进行的速度内插;
- 碰撞识别,例如以相应容差以一维的或三维的方式进行的碰撞识别;
- 位置切换点;
- 驱动模式的切换,例如鉴于位置或速度进行驱动模式的切换;
- 事件,诸如生成或等待;
- 测量头(Messtaster);
- 轴变换;
- 附加的变换,例如气缸套变换、端侧变换;
- 倒圆、倒棱、倒角;
- 工具校正;
- 轴耦合,例如龙门、经由电子传动装置的耦合、柔性型材;
- 补偿和校正。
应理解,根据被操控的系统和所期望的功能范围而定,能够使用任意的其他的和/或另外的功能对象,这些功能对象能够形成用于控制的程序流程的相对应的模块化的模块(Baustein)。
优选地,使用命令120中的功能对象100。在此,命令可以表示如下逻辑单元,该逻辑单元代表在应用的流程中的步骤。在此,每个命令120可以包含功能对象100f、100g、100h的预先定义的组,这些功能对象实施其功能。所使用的功能对象在开发该命令时被规定。在此可能的是,已经在制造商侧定义并且利用该系统预给定这些命令。但是,替代性地或附加地,也能够根据功能对象模块化地定义命令,例如通过机器制造商或者甚至通过最终应用者来定义。同样可能的是,事后添加被定义好的命令,例如在功能扩展的范畴内。
针对命令的示例例如是:执行器的运动流程、例如机器人的执行器沿直线运动到空间内的点;接通用于任意设备中的驱动装置的功率;消除针对轴的故障;和其他流程。在此,可以通过命令来实施更简单的或者更复杂的功能性,其方式为:在其中规定为此所需的功能对象。一般而言,这些命令优选地形成控制应用的相继运行的组成部分,其中所述组成部分由运行时系统相继执行(abarbeiten)。
为了实施这样的功能性,命令也可以包含如下参数、例如运动的目标位置。命令参数可以例如作为数据元素的值引入到命令的一个或多个功能对象中并且相应地被继续使用或者作为针对特定的功能的参数设定被使用。
命令可以经由不同的常见接口从外部预给定,诸如:REST-API(RepresentationalState Transfer Application Programming Interface(表述性状态转移应用程序编程接口));OPC统一架构(OPC Unified Architecture);SPS(有存储器可编程控制器,例如经由功能模块);脚本(例如经由以Python方式的扩展库);低等级C接口等等。
为了共同使用在命令之内的数据可以给每个命令分配自己的数据管理模块。该数据管理模块用于在命令的不同功能对象之间的数据交换。因为在开发时间点不必已知在命令中存在哪些功能对象,所以这些功能对象彼此不能够直接通信。该数据管理模块可以承担所有功能,例如类型检验和所有类型的数据访问,也即,例如读访问、写访问和/或调用访问。附加地,可以经由该数据模块确保这些数据元素的有效性(首先写、然后读)。
为了一致地控制在这样的系统中的流程和访问,可以定义多个区段,这些区段是在运行时系统中的明确的引用。对此,可以经由明确的名称或限定符(Kennzeichner)标识每个区段。这些区段具有经定义的顺序。同样地,也能够定义附加的区段并且列入到现有顺序,例如通过经登记的扩展。在引入新的区段的情况下,使这些区段在基础系统中全局地已知并且进行排列(einordnen)。
针对在加工机的示例性控制器中的区段的示例例如是:命令参数的输入;几何处理(Geometrieaufbereitung)的结束;所计算的额定位置可用。当然,可以定义任意的其他区段和另外的区段,这些区段能够用作针对所执行的功能对象的适合的引用点。
此外,这些功能对象具有经定义的接口。在此,跳出是以经定义的接口到功能对象中的方法的功能指针(Funktionszeiger)。每个功能对象可以包括任意多个跳出。当命令被接纳到系统中时,创建(anlegen)所有对其所属的功能对象。然后,由每个功能对象调用接口功能,所述接口功能实现:在运行时系统中登记多个跳出。
针对功能对象的每个跳出,应该在此定义所属的如下区段,在该区段中应调用跳出。通过将跳出固定分配到具有经定义顺序的区段,因此跨所有功能对象地规定这些跳出的实施顺序,而不必在此已经已知这些功能对象自身。
此外,可以利用区段,以便表示数据的不同处理状态。对此,在提供或写入时将数据与如下区段链接,这些数据自该区段起而存在。典型地,在此涉及如下区段,在该区段中运行跳出或方法,该方法计算所述数据。在此,功能对象可以进一步在之后的区段中提供现有的数据元素,其中原始的首先被提供的数据元素优选进一步保持可用,也即并不被替代。由数据元素和区段组成的组合表示该数据元素(通过数据标识定址)的计算状态。
不仅针对借助接口经由数据管理模块来提供自己的数据,而且也针对读访问的登记因此优选地需要所属的区段的说明。因此,可以验证该数据流。这些区段的顺序可以例如自动地根据该数据流来被确定或者经由配置被详尽地定义。
在读出时,数据于是可以要么直接与区段链接要么利用目标区段被定义。在与确定区段固定链接的情况下,该数据元素的其他功能对象必须在该区段中被准确写入,也即在所说明的区段中请求恰好该数据元素。相反地,如果定义目标区段,则利用该目标区段说明:数据元素直至该区段为止必须被写入。
根据实施方式而定,可以预给定数据与区段的链接的所述变型之一或者可以例如使用适合的句法(Syntax),以便在访问时在硬链接的数据和具有目标区段的数据之间进行区分。
根据第二变型方案的目标区段的应用使得可能灵活地响应于附加的功能对象。如果功能对象请求具有预给定的目标区段的数据元素,则任意多的其他功能对象可能已修改了在之前的区段中的数据元素。
在图2中示出针对其中将数据与目标区段链接的这样的应用的示例。
在此,例如定义如下区段S1、S2、S3,这些区段以所述顺序在运行时系统中作为引用来预给定。
此外,在此考虑两个功能对象F1和F2。功能对象1具有在区段S1中的跳出并且在那里写入数据元素D。该功能对象F2具有在区段S2中的跳出并且在那里同样写入该数据元素D。在系统中因此提供针对区段S1和S2的数据元素D的两个处理状态。第三功能对象F3在区段S3中的跳出中运行,该第三功能对象现在可以例如对所述数据进行读访问。对此,该功能对象可以说明:其是否想要读取来自该区段S1的数据元素D,D(S1),并且因此想要读取功能对象F1的结果,或者想要读取来自区段S2的数据元素D并且因此想要读取功能对象F2的结果。在其他变型方案中,在该功能对象F3中替代固定链接也可以说明:应该读取在该目标区段S3之前的D的最后的所提供的结果。这种变型方案实现:总是读取该数据元素的最后写入的处理状态(Bearbeitungsstand)。在当前情况下,如果功能对象F2已被执行了或者在有关命令中存在,则功能对象F3因此获得功能对象F2的结果并且因此获得处理状态D(S2),否则的话,其获得功能对象F1的结果,也即D(S1)。
如果数据在一区段中未修改,则所述数据在一种实施方式中分别被进一步遗传到(vererben)接下来的区段,从而因此在上述示例中来自区段S2的最后写入的数据元素D能够被继承到区段S3中和接下来的区段中并且能够在访问时利用该说明被读出。因此,读功能可以经由所期望的区段来控制:所述读功能想要访问哪个计算状态。因此,可以例如在读取第一区段中的目标位置时访问未经修改的目标位置,而在读取来自经定义的第二区段的相同数据元素时则能够以激活的零点移位来修改目标位置。如果在此根本没有激活零点移位,则也能够从第二区段读取第一区段的被继承的数据元素。因此,如果该移位是激活的,则该功能在访问第二区段的目标位置时获得经修改的值,而如果该移位是非激活的,则该功能在访问第二区段的目标位置时获得未经修改的值。相应的功能的开发者不必在此考虑到零点移位,因为这两个功能性以这种方式是脱耦的(entkoppeln)。对各个功能对象进行选择性激活的可能性在下文中进一步予以描述。
在功能对象之内的方法或跳出之间的数据交换不需要经由数据管理模块进行访问,而是可以经由功能对象的私有成员(Member)进行。
根据实施方式而定可以使用其他机制,以便确保数据通信。例如,可以优选规定:对于每个区段和数据元素允许仅一次的提供(publish(发布)),从而可能经由该区段的说明来进行明确的分配。
同样可以规定:在每个区段中,写访问必须在读访问之前进行,从而确保:访问数据元素的特定处理状态的功能对象也获得最终结果,该结果可能在该区段中才被提供。
此外也可以规定:以受保护的方式进行读访问并且不再可能写入。
根据一种实施方式,可以此外使用严格的(streng)定型检验,尤其是针对在功能对象之间所交换的数据使用严格的定型检验。这意味着:相对于相应所使用的语言的基本的基础数据类型(例如double(双精度浮点型)、float(单精度浮点型)、int(整数)...)而言附加地可以这样定义其他数据类型,使得能够例如总是将目标位置分配给用于目标位置的仅一个变量并且并不分配给用于速度的变量,尽管这两者都可以基于相同的基础数据类型。因此,在系统中优选定义附加的、更特定的数据类型并且然后分配给每个数据元素。因此,分别不仅仅检验基础数据类型而且也检验特定的数据类型,以便确保数据一致性。差异(Differenzierung)的程度可以任意选择。特定的数据类型的定义简化了该系统维护以及针对应用者的扩展可能性。
根据一种实施方式,在基础系统中已经预定义一系列的数据类型。所添加的扩展于是可以在系统中全局地登记新的数据类型,从而使所述新的数据类型自该时间点起能够由所有功能对象来使用。
在图3中示出利用共同数据管理的命令的示意图。在此,使用两个功能对象320、322,这些功能对象其中一个已经在基础系统310中存在,而其中另一个则能够通过之后安装的扩展312被添加到该系统。在当前情况下,例如可以涉及针对圆形路径322和运动内插312的功能对象,它们共同形成用于执行器的圆形运动的命令。这两个功能对象可以在基础系统例如在对象模块314处注册,就如通过从功能对象出发的箭头所表示的那样。然后,命令300可以被形成,该命令包括这两个被注册的功能对象320、322。为了管理共同使用的数据,设置该命令300的所属的数据管理模块302。
功能对象的流程通过具有固定顺序的多个区段来预给定,其方式为,这些功能对象的跳出被分派给这些区段。在当前情况下,区段330a、330b、330c例如被分配给如下流程步骤:参数验证(vlidate)、数据准备(prepare)和执行(execute)。在相应的功能对象中所使用的数据在此经由数据管理模块302来交换。在此,作为针对圆形运动的示例的能设想的数据示出:动态极限值、目标位置、辅助位置、路径长度和其他能够作为输入参量来使用的数据。它们能例如被固定地预给定或者作为命令参数350被引入到所使用的数据中。于是显而易见的是:这两个功能对象相应地经过(ablaufen)固定区段并且在各个区段中读取或提供如下数据,所述数据于是又在其他跳出中由功能对象进一步使用。例如,在第一区段330a中首先验证用于在圆形路径功能对象322中的位置和方向的数据,而在下个区段330b中则准备所述数据和其他数据。在每个区段中,运行在这些功能对象中的相应方法。同样可见的是,也能够在区段中提供由功能对象322所写入的数据344(例如通过该功能对象所计算的路径长度)并且在所述相同的区段中通过其他功能对象再次调用。这通过优选地预给定所有写访问在读访问之前进行来实现。
在功能对象320中接下来示出在区段332和334之间的内部数据传递,其中该数据管理模块并不在这些区段中纳入。相反,在该时间点在功能对象322中则在这些区段之间没有内部数据被传递。替代于此,该功能对象322在接下来的区段334中调取一维的长度345以用于执行,其中在相同区段334中通过执行第一功能对象320事先已提供了所述一维长度。这两个功能对象此外提供其他所生成的数据346、347、348、349,这些数据然后共同地将运动序列(Bewegungsabfolge)发给(ergeben)执行器。在此可以例如涉及速度346、加速度347、加加速度(也即加速度的导数)348或者调整位置349。
当然,命令也能够包括明确更多的功能对象和经由该数据管理模块进行的更复杂的交互。但是,命令基本上可以同样地也包括单个功能对象。
在其他实施方式中可以实施命令选项(Kommandooption)。在此,涉及的是逻辑单元,该逻辑单元修改命令。优选地,命令选项也在内部包括一个或多个预定义的功能对象,这些功能对象实施自身的功能。在此,也可以通过恰好一个功能对象实现命令选项。命令选项一般可以通过相同的接口、例如命令(REST、OPC-UA、SPS、Skript(脚本)、低级(Low-Level)C)预给定。
可选地,命令选项也能够包括如下参数,例如所设置的移位,作为用于工具移位的参数值。如果预给定当前已经激活的命令选项,则具有所说明的参数的新的选项能够改写现有的选项,从而能够以这种方式例如适配命令选项的所述参数。
在机器控制器的示例情况中用于命令选项的可能示例例如是轴变换、工具移位或用于两个运动命令相互过渡(Überschleifen)的功能。一般,可以使用每个功能对象或每组功能对象来作为命令选项。
可以持久地激活命令选项,也即一直激活命令选项,直至该命令选项被明确地再次关闭,例如通过相应的指令。同样,命令选项也能够仅针对下个命令或针对预给定数目个接连的命令是有效的。
只要是命令选项是被激活的,该命令选项就能够在所有接下来的命令中生成自身的功能对象的实例(Instanz)。以这种方式,命令能够被灵活修改并且相应的功能性能够暂时被打开和关闭。如果命令进入到系统中,则因此施加(anlegen)所有属于该命令的功能对象以及所有当前激活的命令选项的功能对象并且添加到该命令。
当前描述的模块化的构造(Aufbau)可以按照一种实施方式被使用于,使得最终应用者或客户能够独立构造附加的命令和/或命令选项。在此,针对附加的命令可以单纯地动用到(zurueckgreifen)在制造商侧设置在基础系统中的功能对象;但是其他功能对象能够尤其是通过扩展来有针对性地被开发或者作为针对特定应用目的已提供的扩展嵌入到系统中。在运行时系统中登记新的功能对象之后,能够使用新的功能对象以用于形成新的命令和/或命令选项。在此,并不需要重新启动整个控制器;系统重置是足够的并且提供了用于适配控制器的明显更快速的可能性。
在实施例中,可以在制造商侧提供特定的功能对象,例如1D的速度内插以用于加加速度受限的速度控制。该功能对象又可以在同样已存在于基础系统中的命令“机器人的执行器沿直线运动到空间内的点”中被使用。现在,可以在应用者侧期望附加的功能或修改,例如在特定的样条轨迹(Spline-Bahn)上驶到目标位置。为了所述目的,于是可以开发其他功能对象,所述其他功能对象经由样条实施轨迹内插。接下来,可以创建新的命令,所述新的命令不仅包括原始的功能对象也包括用于该样条轨迹的新的功能对象,其中所述原始的功能对象具有1D的速度内插。附加的功能对象、新创建的命令以及一些登记功能于是可以被汇总到能安装的库中或扩展中。一旦所述扩展在控制器上被安装,在那里就优选地在系统重置之后有新的命令可用并且能够被执行。
作为其他的实施例,现在阐述将制造商侧的功能与通过命令选项事后扩展的功能相结合。在此应该依照应用者的期望例如提供特定的补偿功能,所述特定的补偿功能在现有的基础系统中不可用。对此,可以首先实施相对应的功能对象“补偿”,所述功能对象“补偿”可由应用者特定地开发或者也能够通过供应商已提供。该功能对象然后被使用,以便形成命令选项。具有所属的功能对象的命令选项然后被引入到如下扩展中,该扩展能够在基础系统中被安装或登记。在成功登记并且优选进行系统重置之后,能够调用新的命令选项。
在接下来的步骤中,现在能够首先永久激活命令选项“补偿”,从而使该命令选项保持被激活,直至进行该选项的有效关闭。接下来,针对线性运动调用第一运动命令。现在,所有属于所述第一运动命令的功能对象在第一命令中被实例化(instanziieren)。因为该命令选项是激活的,此外在该第一命令中附加地实例化该命令选项的功能对象。接下来,第一命令的所有功能对象按照其区段被执行并且在每个周期(Takt)中计算额定位置,所述额定位置通过功能对象“补偿”被修改并且然后被输出。
接下来,针对圆形运动发出(absetzen)第二运动命令。如果该命令选项总是还被激活的,也针对所述第二命令实施如在第一命令中的那样的步骤,也即第二运动命令的所有功能对象的实例化以及该命令选项的功能对象的实例化和相应修改的位置的输出。
然而,如果在该第二运动命令之前已执行了命令选项的去激活,则该第二命令在没有命令选项的功能对象的情况下被实例化并且再次输出未经修改的额定位置。因此可以在其他命令中任意地打开和关闭附加功能,所述附加功能被包含在命令选项中。如果该命令选项并非已永久被激活,而是仅仅例如针对单个接下来的命令被激活,则接下来不需要去激活并且所有其他命令被再次以未修改的方式执行。
根据一种实施方式,之前提及的实施方式的不同部分可以针对这样的控制器的开发者或最终应用者被可视化或者以其他方式在用户接口中被示出。例如,可以为了由功能对象生成命令/命令选项而使用如下图形表示,所述图形表示如在图1中那样类似地作为在显示器上的块元素来展示(aufzeigen)有待选择的功能对象并且例如通过将所需功能对象移位到命令中来示出命令的模块化构造。在此,也能够任意地集成自己的、例如通过扩展所添加的功能对象。但是,当然也能够设想用于适合的用户接口的其他表示方式,例如基于文本的或者用于结合适合的命令和选项的依据树形结构预给定的选项。
同样地,经由适合的用户接口对应用者可视化数据流、诸如在图4中所示的示例中作为定向图形或者以其他方式来可视化数据流,其中所述数据流例如基于所执行的命令而运行。因此,能够理解具有不同功能对象的计算序列,这尤其是能够简化系统组成部分的开发和适配。
在此,图4示出如下数据流的可视化,所述数据流可以在实施例中发生。在左侧,按照时间顺序,从上向下列出区段402、404、406、408、410、412、414。在此,在该示例的实例化的命令中存在四个功能对象,其中这些功能对象的部分也可以来自于一个或多个命令选项。在图的右侧的访问步骤分别在上半部中说明该功能对象和该功能对象的所使用的跳出,而在下半部中则说明被链接的区段。在步骤之间的箭头也显示出数据元素或参数值的传递。
在第一阶段中准备数据和参数。
1.在第一区段TST_input, 402中,具有内容{54;23}的命令参数420,即TST_TargetPos,在步骤430中由系统来提供,也即由命令的数据管理模块来提供。
2.第一功能对象DummySender的跳出job1在步骤432中使用来自该区段402中的该数据元素420(TST_TargetPos)。在此,步骤430和432这两个步骤都在相同区段402中被执行。
3.在接下来的区段404(TST_PrepOffset)中,第二功能对象DummyOffset的跳出在步骤434中读取数据元素420(TST_TargetPos),修改该数据元素并且将该数据元素再次以自身的新值{64;43}来写入,作为经修改的元素422。
4.在区段406,即TST_PrepGeometry中,第三功能对象DummyPath的跳出job1现在在步骤436中使用这种经修改的目标位置422,计算轨迹长度(17.3)并且将该轨迹长度作为TST_PathLength 424来提供。在此,该区段406,即TST_PrepGeometry,已作为目标区段被说明。在内部变量中,功能对象可以存储附加的数据,所述附加的数据却并非普遍被提供。
5.为了结束准备,在区段408中还调用第四功能对象Dummylpo的跳出job1,即访问步骤438。该访问步骤使用之前所计算的轨迹长度TST_PathLength 424。该跳出预先计算速度分布并且在内部存储所属的数据,但是其并非普遍地提供。
在接下来的阶段中,针对该命令的最终输出执行其他计算和数据操纵。
6.在区段410、即TST_Ecexlpo中,该运行时系统提供具有值(0.45)的当前时间戳426 TST_CurrentTime。
7.该时间戳426同样在区段410中由即第四功能对象Dummylpo的跳出442、即job2来利用。基于在跳出438、即job1中所计算的数据和当前时间426,确定和发布经内插的长度428 TST_InterpolatedLength(0.123456)。
8.功能对象DummyPath的跳出job2最终在区段412、即TST_ExecGeometry中被调用,利用经内插的长度428,TST_InterpolatedLength并且在步骤444中由此进行计算并且以自身的内部数据计算经内插的位置429 TST_InterpolatedPos{24.21;-273.15}并且将其在系统中提供。
9.因为没有登记其他跳出,该系统可以在区段414中最终在步骤446 TST_Output中读出计算完成的额定位置并且发送到驱动装置。
应理解:上文示例性的实施方式仅仅已被使用用于相互分开地阐明本发明的不同基本原理,并且能够任意地对其扩展、修正和相互结合。尤其是,可以例如在所有涉及到命令的应用的示例中也如所述那样使用命令选项;可以登记任意的新的功能对象和其他区段;可以通过其他的数据元素和流程来代替所述的数据元素和流程,使其适配于相应的技术应用;可以在所有示例中或多或少地使用到如在此已被使用用于描述的功能对象、命令、数据元素等。

Claims (15)

1.用于模块化适配可编程控制器的方法,所述方法包括:
提供基础运行时系统;
在所述基础运行时系统中以所规定的顺序定义明确的引用(S1、S2、S3;330、332、334;402、404、406、408、410、412、414);
提供至少一个功能对象(100;F1、F2、F3;320、322),其中所述至少一个功能对象具有一个或多个要实施的方法(104)和具有至少一个到所述方法(104)其中的一个或多个方法的功能指针,其中每个功能指针与所定义的明确的引用链接;和
基于所链接的明确的引用执行至少一个所提供的功能对象(100;F1、F2、F3;320、322)。
2.根据权利要求1所述的方法,所述方法还包括:
在所述基础运行时系统中登记至少一个新的功能对象(322),其中所述登记包括:所述至少一个功能指针和与之链接的明确的引用的说明;以及由所述功能对象所使用的数据元素的说明。
3.根据权利要求1或2所述的方法,所述方法还包括:
由所述功能对象(100g、100f、100h;320、322)其中的一个或多个功能对象形成能执行的命令(120;300)。
4.根据权利要求3所述的方法,所述方法还包括:
提供用于命令(300)的数据管理模块(302),其中所述数据管理模块(302)管理在所述命令中所包含的功能对象(320、322)之间的数据元素(340、341、342、343、344、345、346、347、348、349)的交换,并且其中所述数据元素的交换包括如下项其中至少之一:通过功能对象提供至少一个数据元素;通过功能对象读取至少一个数据元素。
5.根据权利要求4所述的方法,其中数据元素的所述提供包括:将所述数据元素与所述基础运行时系统的所定义的、明确的引用之一链接。
6.根据权利要求4或5所述的方法,其中数据元素的读取包括:在参照所述基础运行时系统的所定义的、明确的引用的情况下调用所述数据元素。
7.根据权利要求4至6其中任意一项所述的方法,其中对数据元素的读取包括:利用所述基础运行时系统的所定义的明确的引用中的目标引用来调用数据元素,并且其中所读取的数据元素相应于在所述目标引用之前最后提供的数据元素。
8.根据权利要求3至7其中任意一项所述的方法,其中所述方法还包括:检测用于命令(300)的至少一个命令参数(350),其中所述至少一个命令参数能够由在所述命令中所包含的功能对象(320、322)的方法来调用。
9.根据权利要求3至8其中任意一项所述的方法,其中所述方法还包括:由所述功能对象其中一个或多个功能对象形成命令选项;激活命令选项;并且将所述命令选项的功能对象其中的所述一个或多个功能对象添加至接下来的命令。
10.根据权利要求9所述的方法,其中针对预给定数目个接下来的命令激活所述命令选项,或者其中针对所有接下来的命令激活所述命令选项直至调用对所述命令选项的去激活。
11.根据上述权利要求其中任意一项所述的方法,所述方法还包括:将扩展(312)添加到所述基础系统(310),其中所述扩展包括如下项其中至少之一:一个或多个功能对象(322)、一个或多个命令、一个或多个命令选项。
12.根据上述权利要求其中任意一项所述的方法,所述方法还包括:
提供图形的用户接口;
显示所提供的功能对象;
检测输入,所述输入再现了对功能对象的选择;和
根据所检测的输入来形成能执行的命令。
13.计算单元,所述计算单元被设立用于,执行根据上述权利要求其中任意一项所述的方法。
14.计算机程序,当所述计算机程序在计算单元上被执行时,所述计算机程序促使所述计算单元执行根据权利要求1至13其中任意一项所述的方法。
15.机器可读的存储介质,所述机器可读的存储介质具有在自身上所存储的根据权利要求14所述的计算机程序。
CN202011259522.5A 2019-11-13 2020-11-12 用于模块化适配可编程控制器的方法 Pending CN112799351A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102019217520.1A DE102019217520A1 (de) 2019-11-13 2019-11-13 Verfahren zur modularen Anpassung einer programmierbaren Steuerung
DE102019217520.1 2019-11-13

Publications (1)

Publication Number Publication Date
CN112799351A true CN112799351A (zh) 2021-05-14

Family

ID=75683641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011259522.5A Pending CN112799351A (zh) 2019-11-13 2020-11-12 用于模块化适配可编程控制器的方法

Country Status (3)

Country Link
US (1) US11782418B2 (zh)
CN (1) CN112799351A (zh)
DE (1) DE102019217520A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113485252A (zh) * 2021-07-17 2021-10-08 中山迈雷特数控技术有限公司 多通道数控系统中多通道plc控制方法与多通道数控系统

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5769527A (en) * 1986-07-17 1998-06-23 Vari-Lite, Inc. Computer controlled lighting system with distributed control resources
US10361802B1 (en) * 1999-02-01 2019-07-23 Blanding Hovenweep, Llc Adaptive pattern recognition based control system and method
US5603043A (en) * 1992-11-05 1997-02-11 Giga Operations Corporation System for compiling algorithmic language source code for implementation in programmable hardware
US5784577A (en) * 1996-08-05 1998-07-21 Xilinx Inc Automated control system for programming PLDs
US5768287A (en) * 1996-10-24 1998-06-16 Micron Quantum Devices, Inc. Apparatus and method for programming multistate memory device
US6073160A (en) * 1996-12-18 2000-06-06 Xerox Corporation Document communications controller
US6154684A (en) * 1997-06-14 2000-11-28 Rockwell Technologies, Llc Template language for industrial controller programming
US6402031B1 (en) * 1997-12-16 2002-06-11 Donald R Hall Modular architecture sensing and computing platform
US6157955A (en) * 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US7111290B1 (en) * 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6438738B1 (en) * 2000-09-19 2002-08-20 Xilinx, Inc. System and method for configuring a programmable logic device
US7290030B2 (en) * 2001-07-13 2007-10-30 Rockwell Automation Technologies, Inc. Internet object based interface for industrial controller
US7542867B2 (en) * 2001-08-14 2009-06-02 National Instruments Corporation Measurement system with modular measurement modules that convey interface information
KR100442439B1 (ko) * 2002-10-07 2004-07-30 엘지전자 주식회사 제어국의 멀티링크에서 링크별 큐 할당 장치 및 방법
US7721273B1 (en) * 2003-11-17 2010-05-18 Rockwell Automation Technologies, Inc. Controller equipment model systems and methods
EP2310926B1 (en) * 2006-06-01 2013-11-20 Google Inc. Modular computing environments
DE102009043090A1 (de) * 2009-09-25 2011-03-31 Wincor Nixdorf International Gmbh Vorrichtung zur Handhabung von Wertscheinen
US8504530B2 (en) * 2010-06-26 2013-08-06 Asibo Inc. Global information management system and method
TWI481979B (zh) * 2011-11-08 2015-04-21 Inst Information Industry Programmable logic controller drive system, method and recording media
US8939056B1 (en) * 2012-04-20 2015-01-27 Barron Associates, Inc. Systems, devices, and/or methods for managing targeted payload descent
US9531204B2 (en) * 2013-01-29 2016-12-27 Eco-H Technologies Inc. Portable modular power system
US9274572B2 (en) * 2013-11-08 2016-03-01 Dell Products, Lp High capacity power distribution panel for a modular data center
US11622468B1 (en) * 2018-06-01 2023-04-04 Worldwide Environmental Services, LLC Modular data center

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113485252A (zh) * 2021-07-17 2021-10-08 中山迈雷特数控技术有限公司 多通道数控系统中多通道plc控制方法与多通道数控系统

Also Published As

Publication number Publication date
US11782418B2 (en) 2023-10-10
DE102019217520A1 (de) 2021-05-20
US20210141364A1 (en) 2021-05-13

Similar Documents

Publication Publication Date Title
US7640291B2 (en) Agent-equipped controller having data table interface between agent-type programming and non-agent-type programming
US7146232B2 (en) Agent program environment
Gabor et al. A simulation-based architecture for smart cyber-physical systems
EP1580630B1 (en) Controller with agent functionality
US7912560B2 (en) Module and controller operation for industrial control systems
US6757568B2 (en) Automation system for merging automation components
Minhat et al. A novel open CNC architecture based on STEP-NC data model and IEC 61499 function blocks
JP5291912B2 (ja) プロセス制御システムにおいて使用する機能ブロックの動作を修正変更するための方法及び動的モディファイア機能ブロック
EP2169547A1 (en) Compilation model for programmable logic controllers (PLC)
US8984131B2 (en) Real-time run-time system with an administrative module to configure functional modules of the system
US10747211B2 (en) Method for engineering a method- or process-engineering plant, function module and stored program control
US20150177723A1 (en) Control unit, output control method and program
KR20010029898A (ko) 집적제어기, 집적제어시스템, 및 데이터통신용 전송제어기
CN112799351A (zh) 用于模块化适配可编程控制器的方法
US8676354B2 (en) Automation system having framework based controller
US9563181B2 (en) Method for operating an automation system
JP6954191B2 (ja) 制御システム、開発支援装置、および開発支援プログラム
EP1577724B1 (en) Agent program environment
CN113534744A (zh) 用于构成数控系统的软件架构和硬件架构
WO2022054792A1 (en) Method and apparatus for multi-core processor management in a motion control system
CN115167265B (zh) Plc应用包生成方法、plc应用包运行方法及相关装置
US20140222170A1 (en) PLC Functional Modules for Energy Management Functionalities
CN112825027A (zh) 用于配置计算单元的存储器单元的方法
US7337028B2 (en) Method for the organization of a process having at least one processing device for carrying out a predefinable subprocess
Braun et al. Object-Oriented Programming with SIMOTION: Fundamentals, Program Examples and Software Concepts According to IEC 61131-3

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