用于运行自动化系统的方法

文档序号:6355634阅读:104来源:国知局
专利名称:用于运行自动化系统的方法
技术领域
本发明涉及一种用于运行自动化系统的方法,控制程序作为自动化解决方案存储在该自动化系统的存储器中,并且在此特别如出现的情况那样,当在控制程序的运行时间中必须将控制程序的部分与更新的部分进行更换时,不会明显地使控制程序的执行和自动化系统的运行一起中断。
背景技术
这种对控制程序的部分的更换在文献中称为德尔塔加载,这种控制程序的部分以下称为软件模块。尽管对德尔塔加载所存在的问题长期以来一直存在争论,但是现在对于自动化系统仅仅存在当各自的软件模块的接口不发生变化时才能使用的解决方案。其原因在于,这些数据按顺序连续地位于对应于软件模块的、称为所谓的hstanz-DB的数据区域中。在数据区域改变时,所有后续数据的地址位置也就发生变化。因为后续数据区域的地址位置发生变化,使得加载的hstanz-DB也不能容易地继续延长。如果利用到目前为止提供的解决方案对软件模块进行修改或修正,该修改或修正仅仅可以通过在所属的数据区域中的数据扩展来实现(新的输入端或输出端或附加的数据),如果自动化系统事先转入停止状态中,也如果对控制程序的执行被中断,那么现在其仅仅可加载到自动化系统中。因此在处于停止状态中的自动化系统中也使对于各个技术过程的控制和/或监测在这种状态持续时中断。

发明内容
本发明的目的相应地在于,给出一种用于运行自动化系统的方法,在该方法中避免了上述的缺点或者至少减小了这些缺点的影响。该目的根据本发明利用根据权利要求1所述的特征实现。对此在开头所述类型的方法、即用于运行自动化系统的方法中提出下列实施步骤。对于自动化系统提出的先决条件是,该自动化系统包括一个或多个存储器和一个或多个处理单元,其中通过处理单元执行的控制程序作为自动化解决方案存储在存储器中。控制程序包括多个软件模块,在执行控制程序时通过同样由控制程序包括的过程组件模块调用该软件模块。用于在控制程序的运行时间中将至少一个软件模块-旧软件模块-与新软件模块、即特别是带有改变的接口的软件模块进行更换的步骤详细地描述如下-将属于旧软件模块的旧数据区域和属于新软件模块的新数据区域进行比较;-生成用于将用于或属于旧数据区域的数据转换成用于或属于新数据区域的数据的程序编码指令;-加载新软件模块和新数据区域;-为了数据转换和调用新软件模块,将用于调用在过程组件模块中的旧软件模块的程序编码指令与用于调用生成的程序编码指令的程序编码指令进行更换。通过生成用于将用于或属于旧数据区域的数据转换成用于或属于新数据区域的数据的程序编码指令确保了,可以继续执行具有控制程序的与更换不相关的软件模块的控制程序或其它的控制程序。这种软件模块或其它的控制程序可能访问需要更换的旧数据模块的旧数据区域。为了使得新软件模块也能获取这些数据,将数据由旧数据区域传输到新数据区域中。利用数据在新数据区域中的可用性,新软件模块可以直接承担被代替的旧软件模块的功能。如果新软件模块生成与控制程序的其它组成部分或其它的控制程序有关的数据, 则这些数据存储在新数据区域中。然而控制程序的剩余组成部分或其它的控制程序至少首先并不访问新数据区域,而是访问需要代替的软件模块的旧数据区域。为了使也可能由新软件模块生成的数据也能用于控制程序的剩余组成部分或其它的控制程序,用于数据转换的程序编码指令也包括复制指令,以便将数据由新数据区域传输到旧数据区域中。利用由新软件模块生成的数据在旧数据区域中的可用性,控制程序也可以利用其与更换不相关的组成部分直接处理由新软件模块生成的数据。这同样适用于其它可能的控制程序。以下将用于说明数据转换的全部程序编码指令缩写为复制例行程序。为了能使复制例行程序也起作用,通过那个调用旧软件模块或者调用到目前为止的旧软件模块的过程组件模块设置复制例行程序的调用。在过程组件模块中同样设置了新软件模块的调用。用于调用新软件模块的程序编码指令在过程组件模块中代替到目前为止的对旧软件模块的调用。从过程组件模块调用生成的复制例行程序在调用新软件模块之前或之后进行,特别是在这样的调用之前的瞬间或之后的瞬间进行;事实上复制例行程序也包括第一和第二部分。为了调用复制例行程序,过程组件模块分别包括相应的(调用)程序编码指令。在通过复制例行程序的第一部分调用新软件模块之前实现将数据由旧数据区域的数据复制到新数据区域中。相应地,通过调用复制例行程序的第二部分实现了在执行了新软件模块之后将数据由新数据区域复制到旧数据区域中。根据本发明的途径也能够在控制程序中实现对一个或多个软件模块的更换,而无需中断控制程序或其它的控制程序。控制程序也就可以在运行时间中修改。如果在此涉及了其它控制程序,则这是指例如操作-和观测程序,该程序作为控制程序由设置为操作-和观测系统的自动化设备执行。本发明的有利的实施方式是从属权利要求的主题。在此使用的对前面权利要求的引用通过各个从属权利要求所述的特征指出了对独立权利要求的主题的进一步设计;而这些对前面权利要求的引用对于回引的从属权利要求所述的特征组合来说并不应理解为放弃获得独立的、具体的保护。此外,参照权利要求的解释对于在后续的权利要求中所述特征的详细具体化地说明而言由此出发,即在各个前述权利要求中不存在这样的限制。优选地提出,在控制程序中搜索涉及旧数据区域的程序编码指令。优选地,并不搜索自动化系统的控制程序而是搜索保持在工程系统中、即编程环境中的控制程序或自动化系统的全部控制程序的整体。在工程系统中-一种软件环境,其通常在编程设备或类似物上执行-形成了用于自动化系统的控制程序或者对此进行修改。在工程系统中搜索控制程序可以比在自动化系统中其它的自动化设备中更快地、并且特别对自动化设备或自动化系统无影响地进行。特别当自动化系统是分散式的系统、即具有多个自动化设备的系统时,则自动化系统的控制程序也可以是分散式的控制程序。如果自动化系统仅仅包括一个自动化设备,那么自动化系统和自动化设备的概念意味着相同的单元。如果自动化系统包括至少
5一个设置用于控制-和监测目的自动化设备和至少一个设置为操作-和观测设备的自动化设备,那么自动化系统的控制程序包括用于至少一个自动化设备的至少一个控制程序并且还包括用于至少一个操作-和观测设备的至少一个控制程序。因此控制程序概念的有效范围取决于各种相互关系。在搜索控制程序时对发现的程序编码指令这样进行修改,从而使这些发现的程序编码指令涉及新数据区域。控制程序的程序编码指令的这种变化也可以称为“映射 (Mapping) ”。转换能够实现在以后删除用于将数据从旧数据区域转换到新数据区域的程序编码指令。通过对在控制程序中作为涉及旧数据区域的所发现的程序编码指令这样地修改,从而使该程序编码指令涉及新数据区域,从而不必为这些程序编码指令保持旧数据区域中的数据。如果全部这种类型的程序编码指令进行了修改,则只要涉及新软件模块,控制程序就仅仅还包括涉及新数据区域的程序编码指令。一旦确保了这一点,就可以删除旧数据区域和用于将数据由旧数据区域转换到新数据区域中的程序编码指令。也就可以取消控制程序的变为不是必需的组成部分,并且仅仅占用实际所需要的存储区域。优选地提出,新软件模块分配有到目前为止对旧软件模块进行说明的参考标识 (Referenz)。在此可以考虑将名称或类似物、例如“功能模块10”或“FB10”作为参考标识。 在初次加载新软件模块时,新软件模块分配有暂时的名称或暂时的参考标识,因此该新软件模块可以同时和旧软件模块一起加载。如果以后将到目前为止对旧软件模块进行说明的参考标识分配给新软件模块,那么确保了,在开始时提供旧软件模块的那个单元、即例如具有工程系统的编程设备将新软件模块(根据旧软件模块的参考标识)再次识别为“它的”模块。通过将新软件模块根据旧软件模块的参考标识重新加载并且因此代替旧软件模块,可以实现将到目前为止对旧软件模块进行说明的参考标识分配给新软件模块。也可以考虑在初次加载新软件模块后对其进行重命名。重命名随后促成了将到目前为止对旧软件模块进行说明的那个参考标识用作用于新软件模块的参考标识。进一步优选地提出,再次删除首先在过程组件模块中经过更换的程序编码指令并且根据旧软件模块的到目前为止的参考标识将用于调用新软件模块的程序编码指令插入到过程组件模块中的程序编码指令的位置上。在这种修改之后,在过程组件模块中的数据再次主要处于如其在通过插入新软件模块进行修改之前所处于的状态中。过程组件模块不再包括用于调用生成的复制例行程序的程序编码指令,并且对于新软件模块来说过程组件模块仅仅还包括用于新软件模块的调用的程序编码指令,更确切地说是根据参考标识,根据该参考标识在相同的位置上到目前为止调用了旧软件模块。有利地提出,再次释放由旧软件模块和/或由旧数据区域在自动化系统的存储器中占用的存储器区域。因此确保了最佳地使用在自动化系统中提供的存储器,并且总归不再被调用的旧软件模块和与此相关的旧数据区域不再不必要地占用自动化系统的资源。在本方法的一个特别的实施方式中提出,发现的程序编码指令涉及旧数据区域并且不能自动地修改成涉及新数据区域的程序编码指令,在任务列表中接收该发现的程序编码指令。提供任务列表以用于由操作员手动地进行处理,也就是说优选地用于在工程系统中的处理。这种手动处理的目的是,为每个位于任务列表中的条目补充自动生成的、用于将数据从旧存储区域转换到新存储区域中的复制例行程序,从而在处理完完整的任务列表后提供部分地自动生成的和部分地手动补充的、用于将数据从旧存储区域转换到新存储区域中并且可相反转换的复制例行程序。任务列表的目的即是,指出不能自动转换的访问(连接),例如涉及不一致类型的访问。对于这样不一致性的实例是这样的程序编码指令,即如果由于软件模块的修改对于数据区域中的该数据仅仅设置用于“字(Wort) ”类型的数据,则该程序编码指令将从数据区域中读出“长字(Langwort) ”类型的数据。在此特别优选地提出,对于涉及旧数据区域并且不能自动地修改成涉及新数据区域的可能的程序编码指令而言,一直复位或避免在过程组件模块中代替旧软件模块调用新程序模块的更换,直至清空由这种类型的程序编码指令引起的任务列表。因此实现了,只有在通过从旧数据区域到新数据区域中并且相反地相应进行复制来完全确保新软件模块的供给和清除时,才可以调用新软件模块,从而总体地保证了控制程序的正常功能。在用于运行如在此和下面说明的自动化系统的方法中优选地提出,在将多个新软件模块与相应多个旧软件模块进行更换时,从多个新软件模块中分别按顺序地将一个新软件模块与一个相应的旧软件模块进行更换,并且其中在多个新软件模块的内部相应于各自的旧软件模块或新软件模块的各自的调用等级对更换顺序进行选择。这一方面需要注意的是,不能同时更换任意多个软件模块。另一方面该更换过程相应于调用等级根据一个明确的结构进行,该结构例如也简化了手动处理任务列表,这是因为全部存在于任务列表中的条目涉及一个或同样的软件模块。本发明总体上也涉及一种根据该方法工作的自动化系统,即具有存储器和用于执行可加载在该存储器中的控制程序的处理单元的自动化系统,其中为了执行该方法,如这里和以下说明的那样,设置用于实施该方法的装置,即用于将新软件模块与到目前为止由控制程序所包括的旧软件模块、更确切地说在控制程序的运行时间中进行更换。就此来说本发明还涉及一种具有可通过计算机执行的、用于实施该方法和其实施方式的程序编码指令的计算机程序,即在计算机上、也就是说通过自动化系统或由此所包括的自动化设备或可能通过一个至少暂时和自动化系统连接的工程系统来执行该计算机程序。最后本发明也涉及一种存储介质,其具有可通过计算机执行的这种计算机程序、即包括程序编码指令的计算机程序,利用该存储介质由此实现了根据本发明的方法和/或该方法的各个单独的实施方式。以下根据附图详细地说明本发明的一个实施例。彼此相应的物体或元件在所有的附图中具有相同的参考标号。软件模块的功能通过为此设置的程序编码指令来确定。如果软件模块至少在控制程序中使用一次,则该程序编码指令正好成为控制程序的组成部分一次。利用软件模块的数据区域、即^stanz-DB实现调用软件模块。当软件模块的程序编码指令一如既往地仅仅一次成为控制程序的组成部分时,如果软件模块多次被使用,则对于每次这种使用给出一个特有的数据区域。在一个状态中通过软件模块实现了 P-调节器(比例调节器)的功能, 该状态可以用作为一个实例。这种功能例如具有不同的比例系数和/或用于不同的调节过程,可以在控制程序中多次使用。如果例如在对多个反应器的料位进行装料的过程中应借助于比例调节器监测额定料位的实现情况,那么同样的功能可以用于每个这样的反应器料位调节。不同的参数在此保持在不同的hstanz-DB中。然后可以利用各个hstanz-DB实现调用反应器料位调节。如果这种调节模块的功能这样地改变,即调节模块具有在接口上、 也就是数据区域(=Instanz-DB)上的影响或者仅仅改变接口,那么必须对控制程序中的调节模块的全部使用(=出现)进行修改。对此也可以在多次使用调节模块时仅仅在控制程序中接受一次新功能(=程序编码指令)。旧功能首先仍保持由控制程序所包括。新功能的调用利用相应新的数据区域来实现,其中同样首先还保持了到目前为止的、旧的数据区域。由于在运行时间中进行更换,因此控制程序可以(将)首先仍包括在旧数据区域上的连接。所以设置复制例行程序用于将数据从旧数据区域或多个旧数据区域传输到各自的新数据区域并且反之亦然。按顺序地或分组地在控制程序中实现为了每次独立使用调节模块而接入新数据区域和复制例行程序。如果然后不再调用调节模块的初始功能,则可以从控制程序中删除相应的程序编码指令。如果涉及旧数据区域的所有连接通过涉及新数据区域的相应的连接进行代替,那么也不再需要旧数据区域和复制例行程序。控制程序是否是单独的程序或者可能是一个程序组对于该方案来说无关紧要,该程序组甚至可能在分散的设备上、即一个或多个自动化设备上和/或一个或多个操作-和观测系统上执行。这种代替如通常至少用于生成控制程序那样在工程系统的控制下进行。工程系统可以将控制程序或其一部分加载到相应的设备上。在本发明的实施方式中,工程系统或相应的功能将示范性地作为接受修改的调节模块的程序编码指令加载到这个或每个和修改相关的设备上。此后在每个相关的设备上实现了提供新数据区域并且计划了调用具有新数据区域的调节模块和复制例行程序。可能通过操作员手动地在工程系统中补充复制例行程序的自动生成的部分,由此同样由工程系统来确定复制例行程序的功能。工程系统在对调节模块进行替换结束时也从控制程序中删除了不再需要的部分。这个或每个实施例并不应理解为对于本发明的限制。更确切地说,大量的变化和变型在本公开文本的范畴中是可能的,对于本领域技术人员来说鉴于该目的的解决方案例如通过将通常或特别在说明书部分说明的、以及在权利要求和/或附图中所包括的特征或元件或方法步骤单独地相结合的组合或变形是可以得到的,并且通过可组合的特征可以产生新的对象或新的方法步骤或方法步骤顺序的这种变体和组合。


图中示出图1是具有至少一个自动化设备的自动化系统,图2是自动化设备的细节图,即特别是具有其中所包括的存储器和预存在存储器中的控制程序,图3是具有其中所包括的多个软件模块和用于调用软件模块的过程组件模块的控制程序,图4是具有需要代替的旧软件模块和设置为旧软件模块的代替物的新软件模块的控制程序,图5是在将新软件模块与需要代替的旧软件模块进行更换时的图示说明,图6是在属于旧软件模块的旧数据区域和相应的对应于新软件模块的新数据区域之间进行复制操作的图示说明,图7是涉及旧数据区域的控制程序的程序编码指令变成相应地涉及新数据区域的程序编码指令的图示说明。
具体实施例方式图1示出了总体上以1 0表示的自动化系统,该自动化系统包括至少一个自动化设备12-在示出的实施方式中包括多个自动化设备12,在此情况下一个作为控制站或工程系统14并且一个作为操作-和观测设备16。自动化设备12,14,16彼此可联系地、例如通过总线18连接。总体上,这些自动化设备可能在不包含仅仅暂时连接并且作为工程系统起作用的控制站的情况下与可能分散的外围设备20 —起确定用于控制和/或监测未详细示出的技术过程22。图2示意性地简化示出了图1中的自动化设备12,14,1 6之一的实例,即这些自动化设备分别包括一个根据处理器M或类似物类型的处理单元以及一个存储器26。控制程序观可加载在存储器沈中,该控制程序对于各自的自动化设备12,14,1 6确定了其与技术过程22之间的相互作用。在对控制程序观进行控制的情况下也就实现了例如从布置在技术过程22中的传感器(未示出)中读出测量值或者为了影响技术过程22而控制在此预设的、未示出的执行机构。控制程序观执行-或处理同样存储在存储器沈中的数据30。 可以将分别存储在自动化设备12,1 4,1 6的存储器中的程序或全部这种类型的程序在总体上理解为控制程序观,其中在用作操作-和观测设备的自动化设备16中的控制程序通常也相应地是操作-和观测程序。在图3中示意性地简化示出了控制程序28的基础结构。该控制程序包括多个分别以已知类型和方式包括了程序编码指令(未示出)的软件模块32。每个软件模块32通常设置用于执行控制程序观的一个确定的功能。例如考虑将第一软件模块32用于获取技术过程22中的模拟测量值,例如路径数据(Wegdaten)。由此出发可以将软件模块的机构设置为第二软件模块32,该模块执行调节算法(调节模块)。第二软件模块32然后基于获取的路径数据可用于调节运动过程。同一个调节模块的另外的机构可以设置在控制程序观中的另外的位置上。这些另外的机构和上面示例性说明的第二软件模块32的不同之处并不在于其功能,而是在于分别所处理和执行的数据,从而例如可以实现温度调节、料位调节和速度调节。通过同样由控制程序观所包括的过程组件模块34调用软件模块32,更确切地说以可预定的顺序调用软件模块。为了简化关系仅仅示出了一个过程组件模块34。事实上每个控制程序观可以包括多个过程组件模块34。由处理器M利用控制程序的软件模块32执行控制程序28,更确切地说通过将过程组件模块34-或者在更复杂的实施方式中将多个过程组件模块34在分别预定的时间栅中执行来实现。过程组件模块34的执行相应于该处计划的调用顺序预定了软件模块32的分级和次序,在该次序中依次执行这些过程组件模块。因此也对于过程组件模块的实施方式给出了类似循环的实施方式。每个软件模块32分别对应于一个或多个数据区域36。数据区域36用作用于各自的软件模块32的接口(以便例如可以给调节模块的第一机构传输用于调节运动过程的数据并且给同一个调节模块的另外的机构传输用于温度调节的数据)。为此在数据区域36 中通过控制程序观或另外的软件模块32存储数据,各自的软件模块32将这些数据作为输入数据进行处理。在软件模块的执行期间,各自的软件模块32在数据区域36中储存了这种数据,即该数据应作为各自的软件模块32的输出数据全部提供给控制程序28或提供给另外的软件模块32。图4主要示出了控制程序观,如已经在图3中示出的那样。为了说明根据本发明的实施方式而引入了附加的细节。图4示出了仅仅为了可视的可辨认性而在略微向右移动的位置上的软件模块32。 对于该软件模块来说对于说明书的其它部分应设定为,即该软件模块需要在控制程序观中进行替换。相应地,该软件模块在下面称为旧软件模块38并且所属的数据区域称为旧数据区域40。类似地,另一个软件模块同样仅仅为了可视的可辨认性而在略微向左移动的位置上示出。对于另外的说明,该软件模块应是新软件模块42并且所属的数据区域是新数据区域44。新软件模块42在控制程序观的运行时间中加入到控制程序中并且应代替旧软件模块38。为此本发明设置了以下说明的实施方式将新软件模块42加载到各自的自动化设备12的存储器沈(图2)中,即加载到由自动化系统1 O所包括的存储器沈中。在此之前或之后将属于旧软件模块38的旧数据区域40和属于新软件模块42的新数据区域44进行比较,其中比较不涉及数据区域40,44的内容而是涉及它们的结构、即可存储在该处的数据的数量和各自的类型。这优选地在脱机的条件下根据控制程序观的、仍预存在工程系统中的原始数据进行。根据(在以下的比较中的)结构比较,利用用于将用于或属于旧数据区域40的数据转换成用于或属于新数据区域44的数据的程序编码指令生成复制例行程序46(在此以所包括的第一和第二部分46. 1, 46. 2中任一个的形式示出)。也优选地在工程系统中实现生成复制例行程序46或其部分 46. 1,46. 2。复制例行程序46然后随着将新软件模块42加载到自动化设备12的存储器沈中同样传输到自动化设备12。复制例行程序46包括第一和第二部分46. 1,46. 2 ;在执行新软件模块42之前调用第一部分46. 1并且在这之后调用第二部分46. 2。复制例行程序46的第一部分46. 1可以再一次分为单独的调用部段和循环的调用部分(未示出)。复制例行程序46的第一部分46. 1的单独的调用部段在新数据区域44 (新软件模块42的hstanz-DB) 中接收(旧软件模块38的hstanz-DB的)旧数据区域40的内容的副本,该副本是符合逻辑的、即遵循存储在该处的数据和其结构。复制例行程序46的第一部分46. 1的、循环的并且相应地一再被调用直至代替旧软件模块38的部段接收数据的符合逻辑的副本,这些数据从旧数据区域40进入新数据区域44中并且由控制程序的、与更换不相关的软件模块产生或修改。复制例行程序46的第一部分46. 1的、单独调用或循环调用的部段也可以组合在一起。然后复制例行程序46的第一部分46. 1仅仅包括一个循环执行的部段,该部段符合逻辑地将存储在旧数据区域40中的数据复制到新数据区域44中。复制例行程序46的第二部分46. 2包括一个循环的部段并且相应地一再调用直至代替旧软件模块38。该部段接收数据的符合逻辑的副本,这些数据由新软件模块42在其新数据区域44中产生或修改并且进入旧数据区域40中,从而使由新软件模块42处理的数据也供控制程序的、与更换不相关的软件模块使用。以这种方式由复制例行程序46的第一部分46. 1的循环执行的部段获取的数据是这种数据,该数据基于输入连接(即将数据作为输入数据提供给旧软件模块38/新软件模块42)由其它的软件模块得出。软件模块同样地可以考虑为其它的软件模块,该软件模块属于在自身的自动化设备上执行的控制程序,也和这种属于在移除的自动化设备(例如操作-和观测设备)上执行的控制程序的软件模块一样。相应地,由复制例行程序46的第二部分46. 2获取的数据是这种数据,即该数据基于输出连接(即将数据作为输出数据由新软件模块42提供)由其它的软件模块得出。通过生成用于将用于或属于旧数据区域的数据转换成用于或属于新数据区域的数据的程序编码指令确保的是,即可以继续执行具有其和更换不相关的软件模块的控制程序。这些软件模块可能访问需要更换的旧数据模块的旧数据区域。为了使得新软件模块也能使用这些数据,则将数据由旧数据区域复制到新数据区域中。—旦提供了复制例行程序46,在过程组件模块34中就将用于调用具有对应的 hstanz-DB、旧数据区域40的旧软件模块38的程序编码指令与用于调用用于数据转换、即复制例行程序46的和用于调用具有其hstanz-DB、新数据区域44的新软件模块42的程序编码指令进行更换。通过过程组件模块34对具有各自的hstanz-DB (数据区域36)的软件模块32的调用,在此通过从过程组件模块34出发的、在分别需要调用的软件模块32中最后的箭头示出。利用虚线箭头示出了相应地对于旧软件模块38或新软件模块42或复制例行程序46的调用,这是因为例如并不持久调用旧软件模块38,并且在将新软件模块42包括在内之后在通过过程组件模块34实现的调用中取消了对于旧软件模块的调用。同样地, 只要仍通过过程组件模块34实现调用旧软件模块38,并不持久调用新软件模块42,这是因为未对其调用进行设置。相应地,也并不持久调用复制例行程序46。只要同样仍调用旧软件模块38,就并不进行调用复制例行程序46。如果新软件模块42完全代替了旧软件模块 38并且将每次使用在到目前为止的旧数据区域40中的数据转换成使用新数据区域44中的数据,则不再设置另外使用复制例行程序46的进一步使用和其相应的调用。在图5中详细地示出了将旧软件模块38与新软件模块42进行更换。在附图的右上部中利用所使用的标号示出了图例。为了避免附图的剩余部分中的不必要的不简明性, 对于各个标号在任何情况下不再重新记录在此处记录的参考标号。第一图例标号利用引入的垂直的箭头说明了接入例如软件模块或数据区域的数据结构的图示。另外的图例标号利用引入的对角形式的箭头、更确切地说附加地通过对角线的补充说明了数据结构的删除的图示,该对角形式的箭头在示出各自的数据结构的标号上表现为划去线。在附图的左上部中利用在此处计划的调用的分级结构示出了控制程序观(也可参见图4)。控制程序观包括多个软件模块32和过程组件模块34。每个软件模块32对应一个数据区域36。附图下方部分经过时间轴t示范性地示出了在将软件模块32与新软件模块42进行更换时的过程。需要注意的是,基于经计划的调用的图示,一个和相同的软件模块32的多重图示在控制程序观中并不意味着具有多重软件模块32。由软件模块32所包括的程序编码仅仅一次是控制程序观的组成部分;在图5的图示中,一个和相同的软件模块32、例如通过阴影线可识别的软件模块32只由于多重调用而多次表现出来。在自动化设备12的存储器 26中的比例部分地在图5中下方图示的上部中举例说明。在此示出了旧数据区域36和新数据区域44、一些过程组件模块34和新软件模块42。新软件模块42在时间点t = 1时作为暂时的软件模块接入。这个新软件模块42 设置用于代替那个在图示的上部通过相应的阴影线可识别的软件模块32(=旧软件模块 38)。需要代替的软件模块32(=旧软件模块38)在控制程序观中多次使用。由于在不同的过程组件中的多个调用位置和多个分别所属的数据区域而不可能同时将所有需要代替
11的软件模块32和所属的hstanz-DB的调用位置进行更换,从而逐步地进行更换。对此考虑的是,具有其=旧数据区域40)的需要代替的软件模块32 (=旧软件模块 38)怎样和在哪里被调用。为此以下涉及了示出为填满的过程组件模块34,其相应于其在图示中的垂直顺序作为第一、第二、第三和第四过程组件模块34。示出为填满的过程组件模块34表示了这种随后经历变化的模块,如下面继续说明的那样。 两个需要代替的软件模块32 (=旧软件模块38)由第一过程组件模块34调用。相应地,同样在时间点t = 1时,接入两个新数据区域44。因此在执行控制程序观的自动化设备12的方面提供了修改的程序编码、即新软件模块42和hstanz-DB (利用其新软件模块可以分别进行工作)、即首先是两个新数据区域44。新软件模块42隐匿处载入自动化系统10或者其中所包括的自动化设备12的存储器沈中。在时间点t = 2时更换或修改第一过程组件模块34。在过程组件模块34中的修改(或在代替第一过程组件模块34的新过程组件模块34中的相应修改)至少涉及了在过程组件模块34中对需要代替的软件模块32的调用进行解码的那个程序编码指令的修改。 每个这样的程序编码指令由用于调用具有其hstanz-DB、新数据区域44的新软件模块42 的程序编码指令代替。此外在过程组件模块34中还在该调用之前和之后引入对于复制例行程序46的调用(在图5中未示出;参看图4)。随着对第一过程组件模块34的修改直接实现了在控制程序中使用新软件模块42。同样在时间点t = 2时为了避免不相容性而必须也如上面说明的那样修改第四过程组件模块34,这是因为其如第一过程组件模块34那样调用了具有相同的hstanz-DB的新软件模块42。在此和在下面对于过程的构造的图示所使用的时间点t = 1,t = 2等等是时间点或时间段,在该时刻或在此期间示范性地出现了说明的行动。所谓的循环控制点特别适于这样的时间点。循环控制点在可存储编程的控制器中是在循环地执行各自的控制程序期间的特别的状态、例如循环开始或循环结束。在此不必固定精确的时间点。更确切地说取决于单独的行动的顺序。附加地必须注意的是,在图5中给出的时间点t = 1,t = 2等等并不必是等距的。同样不需要的是,在每个循环控制点中单独地进行所说明的行动。时间点t = 1,t = 2等等也就是仅仅说明了时间顺序。在两个相邻的时间点、例如t = 1和t =2之间可以没有问题地存在附加的可用于方法的单独行动的时间点。如果在这里和下面也涉及了同步,则这种同步仅仅涉及在图5中示出的和选择用于简化说明的时间点和时间段。由前述的说明来看,对于以下的说明不考虑可能在示出的时间分配的情况下存在的更精细的时间分配。在时间点t = 3时、即对于由第三过程组件模块34调用的那个新软件模块42接入另一个新数据区域44。然后在时间点t = 4时可以如上述那样更换或修改第三过程组件模块34,从而在此也调用新软件模块42并且通过该新软件模块使用在时间点t = 3时接入的、另外的新数据区域44。在时间点t = 5时、即对于由第二过程组件模块34调用的那个新软件模块42再次接入另一个新数据区域44。然后在时间点t = 6时可以更换或修改第二过程组件模块 34,从而在此也调用新软件模块42。在时间点t = 6之后和时间点t = 8之前将所有的修改存储在各自的自动化设备、 例如第一自动化设备12的存储器中。从现在开始,所有的参考标识、即对于其它的软件模块的输入-或输出连接可以从各自的旧数据区域40转移到新数据区域44中,因此紧接着可以再次删除复制例行程序。对外部的连接的转移、即对另一个自动化设备的控制程序的软件模块的连接或向着该软件模块的连接的转移在此并未示出,然而这种转移可以在一定条件下利用过程组件模块34的修改最佳地进行。在时间点t = 6之后也必须重新加载另外的自动化设备、例如操作-和观测设备16,这是因为在以下的步骤中修改的地址是无效的。在时间点t = 7时为新软件模块42分配了一个参考标识,该参考标识到目前为止表示了被代替的旧软件模块,或者(如示出的那样)在被代替的旧软件模块的参考标识的情况下对新软件模块42重新进行加载并且因此(首先)两次相同地存在有该新软件模块。在时间点t = 8时,在第一和第四过程组件模块34上的在时间点t = 2中的修改近似反向地这样进行,即这样修改这两个过程组件模块,即现在在原来的参考标识的情况下调用被重新加载的新软件模块42。此外也再次取消到目前为止对复制例行程序46的调用,这是因为不再存在对于旧数据区域40的说明。在时间点t = 9时,删除使用了由第一过程组件模块34中调用的、被代替的旧软件模块的两个机构的旧数据区域36。在时间点 t = 10和t = n以及t = 12和t = 13时,对于第三或第二过程组件模块34和与那里的调用相结合而使用的旧数据区域36发生了相应的事件。在时间点t = 4时删除在时间点 t = 1时接入的、(暂时的)新软件模块42,这是因为其不再被说明。在图5中示出的过程基于这种设定,即在工程系统中,具有至少一个新软件模块 42的经过修改的控制程序以随后得出的改变的形式存在。控制程序在工程系统中的修改可以脱机进行并且不影响(到目前为止的)控制程序观在自动化设备12中的运行性能。控制程序在工程系统中的经过修改的部分随后按顺序地、如上面说明的那样传输到自动化设备12上。在传输过程结束之后,由自动化设备12运行的控制系统观相应于在工程系统中经过修改的控制程序。在传输经修改的程序部分时和在将该程序部分连接到控制程序观中时,并不通过自动化设备12中断执行该控制程序。更换也就完全地在该运行时间中进行。通过控制程序所控制的或监测的技术过程也就同样可以无中断地继续。在一定条件下可以考虑几乎不明显地延长循环控制点;同样可以基于复制例行程序使循环负载在一定条件下略微提高。然而控制程序的持续的可执行性由此完全和持续地控制和/或监测各自的技术过程一样存在一点问题。图6尝试图解地说明根据本发明的实施方式,即据此生成用于将用于或属于旧数据区域38(图4)的数据转换成用于或属于所述新数据区域44的数据的程序编码指令,并且以后在执行控制程序观(图4)时使用该程序编码指令。对此设定,即在控制程序观中至少使用一次需要代替的旧软件模块38,从而使该控制程序为了需要代替的旧软件模块38 而包括至少一个hstanz-DB、即旧数据区域40。对于旧数据区域40示范性地设定,在该处使用第一和第二温度数据(T1,T2)48,50和第一和第二路径数据(W1,W2)52J4。对于新软件模块42与此相对地由此出发,即需要使用该软件模块并且集成到控制程序观中,这是因为第三温度数据(T3) 56需要由其执行或处理。根据图6中的示意性的简化的图示也显而易见的是,代替旧数据区域40应用新数据区域44可能并不容易。对旧数据区域40中的第三存储位置的访问因此同样提供了第一路径数据(Wl) 52,而对新存储区域44中相应的存储位置的访问提供了第三温度数据CH)56。相应地也根据本发明提出,生成了用于将数据从旧数据区域40转换到新数据区域44中并且反之亦然的程序编码指令。该转换在图6的图示中通过在各自的数据48,50,52,54之间延伸的双箭头示出,并且在其它地方也称为逻辑复制。通过将全部数据48巧4从旧数据区域40复制到新数据区域44中,新软件模块42 可以利用所有由控制程序观和其所包括的软件模块32执行和处理的数据来工作。相反地, 控制程序观也可以利用其软件模块32来工作,该软件模块具有全部已经在旧数据区域40 的范围中已知的数据48-54,这是因为这些数据从新数据区域44复制到旧数据区域40中并且在此提供以用于通过控制程序观和其软件模块32进行访问。由复制过程也一起获取各自的同样接入其数据区域(=hstanz-DB)中的软件模块的本地数据(LD);复制可能也仅仅需要修改该本地数据(LD)而无需不在软件模块的接口处进行修改。如果新软件模块42在控制程序中多次使用,则基于每次使用而实现利用自身的新数据区域44调用该软件模块42。在多次使用新软件模块42时也相应地出现了多个新数据区域44和多个用于将数据从各自的旧数据区域40转换到各自的新数据区域44中的复制例行程序46。这些或每个复制例行程序46能够实现在总之不发生变化的控制程序观中应用新软件模块42。然而为了完全地通过新软件模块42代替旧软件模块38而提出,从控制程序 28中删除该旧软件模块和所属的旧数据区域40。然后不再可能从控制程序观访问旧数据区域40。相应地,控制程序观必须搜索涉及旧数据区域40的程序编码指令并且因此修改所发现的程序编码指令,因此这些程序编码指令涉及新数据区域44。控制程序观的搜索优选地根据由控制程序在工程系统中的预定的复制并且在时间点t = 6和t = 7时根据在图5中的图示进行,该复制是对于在自动化设备12的存储器 26中的控制程序观的基础。在此发现的、所涉及的软件模块32可以在自动化设备12中类似如根据图5说明的那样进行更换。然而也可能足够的是,当所应用的变量的地址的变化通常不对剩余的控制程序观产生影响之后,在循环控制点处重新加载所涉及的软件模块 32。也可能考虑的是,在循环控制点处在加载的软件模块中更换(“patchen(修补)”)所涉及的程序编码。搜索和随后的修改也称为“映射”。在图7中对此示范性地示出了具有程序编码指令的软件模块32,该程序编码指令的自变量涉及旧数据区域40。旧数据区域40在示例性示出的自变量中在此作为用于“数据模块10”的标号“DB10”象征性地示出。在旧数据区域40中说明的数据同样在此作为标号“T2”象征性地示出。标号“DB10”和“T2”具有数字上的相一致性,从而在由旧数据区域40占用的存储区域中说明了利用第二温度数据50 占用的存储位置。如标号“DB10”的数字上的相一致性可以理解为存储器沈中的旧数据区域40的开始地址。如标号“T2”的数字上的相一致性则是参照通过“DB10”定义的开始地址的相对地址。相关数据的地址可以通过将两个地址相加而得到。由发现的、涉及旧数据区域40的程序编码指令到那些涉及新数据区域44的程序编码指令的修改也需要更换涉及程序编码指令的各自的自变量的地址。在具有作为自变量的“DB10. T2”的程序编码指令中足够的是,为旧数据区域40的标号“DB10”使用了新数据区域44的标号(在图7中表示为 "DBxx. T2”,具有DBxy作为用于hstanz-DB、新数据区域44、新软件模块42的标号)用于。 对于标号“DB10.W2”而言,在在图4中设定的特性的基础下必须考虑的是,即第二路径数据 “W2%4在新数据区域44中的位置与同一个数据在旧数据区域40中的位置相比发生变化。相应地,在具有这种特性的程序编码指令中也需要修改各自的数据的相对位置。如果在搜索控制程序观时发现了涉及旧数据区域40并且不能自动地修改成涉及新数据区域44的程序编码指令的程序编码指令,那么在任务列表58中设置将其接收。在图7中示范性地对于具有自变量标号“DB10.W3”的程序编码指令示出了这种情况。数据W3 表示旧数据区域40中的第三路径数据60。然而在新数据区域44中并不设置第三路径数据。相应地不可能进行自动转换。在任务列表58中接收了相关的程序编码指令,在此提供程序编码指令用于进行手动地执行和修改。手动的修改例如可以意味着,即仅仅第二路径数据(W》M的低位的部分用作新数据区域44中的第三路径数据60。如果在控制程序观中所有涉及旧数据区域40的程序编码指令通过相应的、涉及新数据区域44的程序编码指令或者自动地或者手动地进行更换,那么复制例行程序46不是必要的,并且新软件模块42利用其新数据区域44完全地代替具有其旧数据区域40的旧软件模块38,并且可以删除旧模块38,40。如果多个设备、例如除了自动化设备12以外还有至少一个操作-和观测设备 16(图1)必须访问由控制程序观执行或处理的数据,则在使用根据本发明的方法或其实施方式的时候出现了额外的复杂情况。然后如上面根据图7说明的那样,“映射”对于每个在此处执行的控制-或操作-和观测程序也是必需的。因此可以如下简短地说明本发明给出了一种用于运行自动化系统10的方法,该自动化系统执行作为自动化解决方案的、具有多个软件模块32的控制程序观,该方法具有以下步骤以用于在控制程序观的运行时间中将至少一个软件模块(旧软件模块38)与新软件模块42进行更换将属于旧软件模块38的旧数据区域40和属于新软件模块42的新数据区域44进行比较;生成用于将用于或属于旧数据区域40的数据转换成用于或属于新数据区域44的数据的程序编码指令;在自动化系统10的存储器沈中加载新软件模块42 和新数据区域44;为了数据转换和调用新软件模块42,将用于调用旧软件模块38的程序编码指令与用于调用生成的程序编码指令的程序编码指令进行更换。该方法随时确保了数据在执行控制程序观的自动化设备10的内部的相容性,但该自动化设备也涉及到移开的自动化设备,例如操作-和观测设备16。
权利要求
1.一种用于运行具有存储器06)的自动化系统(10)的方法,控制程序08)作为自动化解决方案存储在所述存储器中并且通过由所述自动化系统(10)包括的处理单元执行所述控制程序,其中所述控制程序08)包括多个软件模块(32),在执行所述控制程序时通过同样由所述控制程序08)包括的过程组件模块(34)调用所述软件模块,其特征在于,在所述控制程序08)的运行时间中将至少一个软件模块-旧软件模块(38)-与新软件模块0 进行更换,包括以下步骤-将属于所述旧软件模块(38)的旧数据区域00)和属于所述新软件模块0 的新数据区域(44)进行比较;-生成用于将用于或属于所述旧数据区域GO)的数据转换成用于或属于所述新数据区域G4)的数据的程序编码指令;-加载所述新软件模块0 和所述新数据区域G4);-为了数据转换和调用所述新软件模块(42),将用于调用在所述过程组件模块(34)中的所述旧软件模块(38)的程序编码指令与用于调用所述生成的程序编码指令的程序编码指令进行更换。
2.根据权利要求1所述的方法,其中在所述控制程序08)中搜索涉及所述旧数据区域GO)的程序编码指令,和其中对在此发现的程序编码指令进行修改,从而使所述在此发现的程序编码指令涉及所述新数据区域G4)。
3.根据权利要求2所述的方法,其中所述新软件模块0 分配有到目前为止对所述旧软件模块(38)进行说明的参考标识。
4.根据权利要求3所述的方法,其中再次删除首先在所述过程组件模块(34)中经过更换的程序编码指令并且根据所述旧软件模块(38)的到目前为止的参考标识将用于调用所述新软件模块0 的程序编码指令插入到所述过程组件模块(34)中的程序编码指令的位置上。
5.根据权利要求4所述的方法,其中释放由所述旧软件模块(38)和由所述旧数据区域 (40)在所述存储器06)中占用的存储器区域。
6.根据权利要求2所述的方法,其中发现的程序编码指令涉及所述旧数据区域00)并且不能自动地修改成涉及所述新数据区域G4)的程序编码指令,在任务列表(58)中接收所述发现的程序编码指令。
7.根据权利要求4和6所述的方法,其中提供所述任务列表(58)用于手动执行和修改涉及所述旧数据区域GO)的、所述发现的程序编码指令,并且只有在清空所述任务列表 (58)时,才可以代替所述旧软件模块(38)调用所述新软件模块02)。
8.根据前述权利要求中任一项所述的方法,其中在将多个新软件模块0 与相应多个旧软件模块(38)进行更换时,从多个新软件模块0 中分别按顺序地将一个新软件模块0 与一个相应的旧软件模块(38)进行更换,并且其中在多个新软件模块0 的内部相应于各自的旧软件模块(38)或新软件模块0 的各自的调用等级对更换顺序进行选择。
9.一种具有存储器06)和用于执行可在所述存储器06)中加载的控制程序08)的处理单元的自动化系统,所述自动化系统具有用于实施根据前述权利要求中任一项所述的方法的装置,所述方法用于,更确切地说在所述控制程序的运行时间中将新软件模块G2)与到目前为止由所述控制程序08)包括的旧软件模块进行更换。
10.一种具有可通过计算机执行的程序编码指令的计算机程序,当在计算机中执行所述计算机程序时,所述程序编码指令用于实施根据权利要求1至8中任一项所述的方法。
11.一种具有可通过计算机执行的、根据权利要求10所述的计算机程序的存储介质。
全文摘要
本发明涉及一种用于运行自动化系统(10)的方法,该系统执行具有多个软件模块(32)的作为自动化解决方案的控制程序(28),为了在控制程序(28)的运行时间中将至少一个软件模块-旧软件模块(38)-与新软件模块(42)进行更换,具有以下步骤在自动化系统(10)的存储器(26)中加载新软件模块(42);将属于旧软件模块(38)的旧数据区域(40)和属于新软件模块(42)的新数据区域(44)进行比较;生成用于将用于或属于旧数据区域(40)的数据转换成用于或属于新数据区域(44)的数据的程序编码指令;为了数据转换和调用新软件模块(42),将用于调用旧软件模块(38)的程序编码指令与用于调用生成的程序编码指令的程序编码指令进行更换。
文档编号G06F9/445GK102193809SQ201110054799
公开日2011年9月21日 申请日期2011年3月8日 优先权日2010年3月9日
发明者马库斯·格拉夫 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1