[go: up one dir, main page]

CN1228173A - 同步方法 - Google Patents

同步方法 Download PDF

Info

Publication number
CN1228173A
CN1228173A CN97197275A CN97197275A CN1228173A CN 1228173 A CN1228173 A CN 1228173A CN 97197275 A CN97197275 A CN 97197275A CN 97197275 A CN97197275 A CN 97197275A CN 1228173 A CN1228173 A CN 1228173A
Authority
CN
China
Prior art keywords
sequence
synchronization
machine instructions
value
subsystem
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
CN97197275A
Other languages
English (en)
Inventor
赫伯特·巴塞尔
海纳·富克斯
阿方斯·戈贝尔
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.)
Siemens Corp
Original Assignee
Siemens Corp
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 Siemens Corp filed Critical Siemens Corp
Publication of CN1228173A publication Critical patent/CN1228173A/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/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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • 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/0428Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • G05B9/03Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24186Redundant processors are synchronised
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24187Redundant processors run identical programs
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25483Synchronize several controllers using messages over data bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Devices For Executing Special Programs (AREA)
  • Programmable Controllers (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
  • Iron Core Of Rotating Electric Machines (AREA)
  • Control Of Motors That Do Not Use Commutators (AREA)

Abstract

一种由至少两个分系统(2、2’)构成的、冗余自动化系统(1)的同步方法,所述分系统为控制过程执行机器指令(MP)功能相同的序列,所述机器指令(MP)序列在相互一致的位置具有用于对同步计数器(SZ、SZ′)进行增值变更的增值变更语句(IA)。至少在分系统(2、2’)记录了一个特殊事件(11)时,利用同步计数器(SZ、SZ′)的值进行同步。为此,求出同步计数器-目的值(SZZ),从而当到达同步位置(SP)时,即同步计数器(SZ、SZ′)的值到达同步计数器-目的值(SZZ)时,使分系统(2、2’)中断执行机器指令(MP)序列。

Description

同步方法
本发明涉及一种由至少两个分系统构成的冗余自动化系统的同步方法,其中至少两个分系统具有至少一个处理器并通过通信装置相互联通,所述分系统为控制一个过程执行功能相同的机器指令序列并有时候通过通信装置相互同步。
通常的自动化系统的同步方法是已知的。在采用EP-A-0497147的方法时,由两个分系统构成的自动化系统的分系统至迟在由使用者预选定的时间后进行同步。类似的方法在EP-A-0 616 274中也有所记载。在此,根据机器指令序列的实际运行时间进行同步。为此,既需要了解应用程序指令的运行时间,又需要对这些运行时间持续累加。由于为实现同步不必要地消耗过多的时间,因此已知的方法就此而言还不是最佳的。
故本发明的目的在于,提出一种以最小付出实现一个至少由两个分系统构成的自动化系统的同步的同步方法。其中同步方法应与是否具有专用的硬件无关。其中本发明的同步方法对自动化系统的计算能力的影响应当尽可能小。
本发明的目的是通过具有权利要求1或2特征部分的特征的方法来实现的。
本发明的同步方法以每个分系统的计数器(以下称作同步计数器)为基础,该同步计数器通过增值变更语句被增值变更,即增大1。对一个处理器来说,增值变更是一个特别简单的任务,该任务在具体情况下甚至在一个脉冲周期内即可完成,并因而可特别迅速地完成。
至少当至少两个分系统中的一个,以下称作报警分系统,记录了一个特殊事件,例如一个中断或报警时,进行同步。在此情况时,报警分系统向至少另一分系统转送其同步计数器的实际值。通过此转送至少另一分系统至少被告知,出现了特殊事件。至少另一分系统向每个其它的分系统转送其同步计数器的实际值。每个分系统随之既了解了自己的同步计数器的实际值,又了解了至少另一分系统的同步计数器的值。
在出现特殊事件的时间点,就执行机器指令序列而言,一个分系统可以超前于至少另一分系统。如果是此情况,此外超前的分系统可能已经执行了较大数量的增值变更语句,从而出现了两个分系统同步计数器值的差异。
每个分系统由自己的同步计数器的值和至少另一分系统的同步计数器的值求出实际最大值。所有的分系统通过继续执行机器指令序列可共同到达的同步计数器的值是同步计数器增大了1的,即经增值变更的最大值。因而在每个分系统中,所有的分系统的同步计数器的最大值都被增值变更。这个对所有的分系统都相同的值在下面被称作同步计数器-目的值。对此值当然也可以采用另一方式加以确定,其中首先对同步计数器的值进行增值变更并接着求出作为最大值的同步计数器-目的值。
当到达某个增值变更语句位置时,下面对此称作同步位置,在此位置同步计数器的值到达同步计数器-目的值,分系统中断执行机器指令序列。由于增值变更语句出现在机器指令功能相同的序列的相互一致的位置,因此增值变更语句特别适用于作为潜在的同步位置。
另一方面,通过某个同步计数器的值与同步计数器-目的值的比较可以非常简单地推断出是否到达这种同步位置。故同步方法基本建立在增值-及比较运算上,由一个处理器即可以特别迅速和高效地实现所述增值-及比较运算。
由于两个分系统可以在不同的时间点上到达其同步位置,故每个分系统都利用同步信号向至少另一分系统通告到达同步位置的信息。每个分系统接着等待由至少另一分系统发送的同步信号的输入,通过此同步信号该分系统通告它已经到达同步位置。在有一个以上的其它的分系统情况下,每个分系统都要等待来自所有其它的分系统的同步信号的输入,从而使每个分系统只有在所有的分系统已到达同步位置时,才继续动作。
但在到达同步位置时不交换同步信号的应用情况也同样是可以想像的。
每个分系统在至少另一分系统到达同步位置并记录同步信号后,求出对特殊事件的特定的响应并执行此响应。该响应是对特殊事件特定的机器指令序列。此后每个分系统继续执行这个机器指令序列,在到达同步位置时基于同步及基于对特殊事件的响应该执行被复位。
报警的分系统最早直接在记录特殊事件后,例如结合转送同步计数器的实际值,最迟也可以结合同步信号向至少另一分系统转送特殊事件。
但也有下述情况,在执行对特殊事件的特定的响应时不进行交换和对同步信号的等待。在这种情况时,当到达同步位置时直接执行特殊事件-特定的响应。虽然未进行时间同步,但采用本发明的方法保证了尽管不是同时,但却是在某个分系统机器指令序列内的功能相同的位置执行特殊事件-特定的响应。由于同步位置设置在功能相同的机器指令序列的相互一致的位置,故采用此方式可以保证所需的同步。
如果按照权利要求3求出机器指令序列的每个机器指令的地址,尤其是实际待执行的机器指令的地址以及某个与同步位置一致的机器指令的地址,则尤其可以有效地到达同步位置。
因而可以至少在由报警的分系统对特殊事件记录之后执行机器指令序列时,始终将实际待执行的机器指令的地址与某个与同步位置一致的机器指令的地址进行比较。如果确定出所比较的两个地址一致时,则到达同步位置。采用此方式正好在到达同步位置时可中断执行机器指令序列。
在同步位置位于机器指令序列的一个有条件或无条件重复的分序列中时,则对各个机器指令多次处理。但只有当随着执行增值变更语句同步计数器到达同步计数器-目的值时,增值变更语句位置才变成同步位置。故在循环的情况下会出现,在循环范围内多次对增值变更语句进行处理,但只有在一定数量的处理后才成为同步位置的情况。在此情况时仅求出增值变更语句的地址是不够的。在此情况下,只有当实际执行的机器指令的地址与某个与潜在的同步位置一致的机器指令的地址相一致并且同时同步计数器与同步计数器目的值一致时,才到达同步位置。
如上所述,当求出每个机器指令的地址时,除此之外还有一“断点”与同步位置连接,从而使机器指令序列的执行正好在同步位置中断。由处理器直接进行检查,看同步位置,即与断点连接的地址是否已达到。通常由INTEL公司生产的处理器,例如i80386、i80486、奔腾等在到达与断点连接的地址时启动中断,中断的实现明确地表明已到达有关的地址。
如果处理器可以单步方式运行,那么也可以至少在报警的分系统记录一特殊事件后执行机器指令序列时,始终将实际执行的机器指令的地址与同步位置的地址进行比较。当确定一致时,则到达同步位置并且中断机器指令序列的各个指令的处理。
按照权利要求4的特征,到达同步位置的另一有效的方案在于,在至少由报警的分系统记录特殊事件之后执行机器指令序列时,始终将同步计数器的值与同步计数器-目的值进行比较并且当同步计数器值到达同步计数器-目的值时,中断执行机器指令序列。为此求出第一存储位置和第二存储位置,其中在第一存储位置存储同步计数器的值并且在第二存储位置存储同步计数器-目的值。在采用通用的处理器时,尤其是INTEL公司生产的所述处理器时,对处理器的编程应使一旦第一存储位置的内容与第二存储位置的内容一致时,中断机器指令序列的执行。该处理器专用的功能迄今首先用于查找错误程序,即所谓的调试程序。但当然也可以利用此功能到达同步位置。
可以按照不同的策略确定机器指令序列内的增值语句的位置。在由一种程序设计语言的指令序列产生机器指令序列时,比较有利的是在指令序列转换成机器指令序列时插入增值变更语句。在产生机器指令序列之后,但在执行该机器指令之前利用再定位将增值变更语句插入机器指令序列中也属于本发明的范围。
当指令序列涉及的是一种程序设计语言的指令序列时,其中相关连的指令序列被合并在一个程序块中,则增值变更的语句分别在至少程序块的一个界偶处插入机器指令的序列中。这种程序设计语言例如包括诸如PASCAL、PEARL、C/C++等所有“结构化的”程序设计语言,它们都分别具有用于协定程序块的语言手段,其中专用的语言手段另外还隐含地确定一个程序块。
与按照EP-A-0 497 147的已有技术相同,结合所有的跳变指令,例如有条件的和无条件的跳变指令始终必须插入增值变更语句。其中跳变指令系指在处理器可以直接理解的语言级导致有条件的或无条件的跳变的所有指令并且也包括所谓的高级语言的语句。由于可能需要通过跳变越过增值变更语句,所以此点是必要的。尤其考虑到,通过跳变将在较长的、可能甚至无限的时间内在两个增值变更语句间仅执行机器指令,从而在这个时间内没有增值变更语句被执行。在此情况时,相应不会到达潜在的同步位置,从而不会实现同步。所以增值变更语句经常地,但不是必要地,插入在这种跳变指令前。
在调用所谓的子程序的情况下,如果将增值变更语句插入在子程序内,即插入在子程序的开始和结束处,则是有益的。由于虽然是子程序的开始和结束,但对子程序的调用并不总是可以明显地识别出,因而宜对增值变更语句插入机器指令序列进行明显的简化。例如在采用汇编程序设计语言时,在这里称作调用语句和返回语句,所述语句分别启动向子程序的跳变及由子程序的返回。
在通常其专用的程序设计语言不能为面向程序块的结构化提供语言手段的存储器编程控制的情况下,增值变更语句始终插入在跳变指令前。特别是在存储器编程控制的情况下,经常利用所谓的“组件”实现机器指令序列的结构化。因而完全可以把组件视为一程序块的专门的特征。由于是利用跳变指令实现的在执行存储器编程控制的机器指令序列时必要的组件变换,故在此将增值变更语句插入在跳变指令前也会达到所需的结果。以类似的方式,这些同样也适用于如汇编或BASIC等非结构化的或仅在很小程度上结构化的程序设计语言。
另外也可以在一固定的,尤其是由使用者预定数量的机器指令序列的单个指令之后将增值变更语句插入到机器指令序列中。采用此方式预定的增值变更语句的顺序具有这样的优点,在两个增值变更语句间的平均时段始终是大致相同的。由在增值变更语句间执行的各个指令的运行时间的总和确定出现两个增值变更语句间的时间。
如果需要以实际等距离时间间隔的、与增值变更语句一致的潜在的同步位置,则在将程序设计语言的指令序列转换成机器指令序列时求出每个单独指令的运行时间并通过将各单独指令的运行时间累加求出单独指令序列的运行时间。在到达一确定的,尤其是由使用者预定的运行时间时,在机器指令序列中插入一增值变更语句。在一增值变更语句后,又重新从零开始对各指令的运行时间进行累加。但出于上述原因,始终需要将增值变更语句插入在跳变指令前。另外除了在固定的运行时间-/空间间隔后的插入外,还可以附加在跳变指令前实现增值变更语句。但另外也可以在一个插入在跳变指令前的增值变更语句后,从零开始对运行时间或间隔的计数。
另外增值变更语句也可插入到机器指令序列或指令顺序序列中,对此下面称作源序列或源顺序,其中对有关某机器指令或某指令顺序的源序列或源顺序,尤其是有关机器指令序列的某子序列或指令顺序的某子序列(对此下面称作搜索序列或搜索顺序)的源序列或源顺序进行检查。
一旦识别出源序列或源顺序中的搜索序列或搜索顺序,即可以将增值变更语句前置于搜索序列或搜索顺序或附加于后。搜索序列或搜索顺序是源序列或源顺序的某些单元的特征,如上所述,增值变更语句(即至少程序块边界和/或跳变指令)被分配给源序列或源顺序的这些单元。
按照一专门的实现方式,利用一专门的编译程序器实现增值变更语句的插入。专门的编译程序器的转换方法与标准的编译程序器的转换方法的区别在于,对那些例如给程序块或跳变指令定义的语言手段进行识别并将其转换成所配属的机器指令以及附加转换成增值变更语句。
另一种选择方案是采用所谓的“预处理程序”(“Pre-Prozessor”)。利用此预处理程序可对程序设计语言的指令顺序进行预处理。借助一个专门的程序员基本已知的句法即可驱动这种预处理程序,一种设序设计语言特定的语言手段,例如引导一个程序块的语言手段与引导这样一种程序块的语言手段以及启动增值变更语句的另一种语言手段进行调换。
但将增值变更语句以对使用者透明的方式插入机器指令序列中却是合乎人们愿望的。在预处理程序上的上述语句对使用者来说是可识别的并因而是可操作的。但操作有时也会导致同步时的差错和/或产生的程序本身的差错。所以用于将增值变更语句插入指令序列中的另一有益的选择方案在于,替代预处理程序采用一专用的预处理程序,该专用的预处理程序与有时其它的按照语句的交换无关,至少将那些按照上述表述分配有一个增值变更语句的指令序列转换成刚才那个指令序列以及增值变更语句。
除上述基本不由使用者施加影响的插入增值变更语句的方案外,另外还可以由使用者亲自将增值变更语句插入到机器指令序列中或插入到指令顺序序列中。
从下述对实施例的说明中可得出本发明进一步的优点和细节。附图中:
图1为自动化系统的线路框图;
图2为同步方法的原理图;
图3为同步方法的流程图;
图4为插入方法的原理图;
图5和6为插入方法的流程图。
如图1所示,冗余自动化系统1由至少二个分系统2、2’构成,所述分系统为操纵和控制一个图中未示出的技术过程,与该技术过程结合在一起。每个分系统2、2’具有一个处理器3、一个数据存储单元4、一个指令序列存储单元5以及至少一个通信装置6。其中数据存储单元4和指令序列存储单元5不必非得是冗余自动化系统1中的分立单元。
至少二个分系统2、2’通过通信装置6并通过总线7实现相互间及与图中未示出的技术过程的联通。
在数据存储单元4中至少存储有同步计数器的值SZ、SZ'的值以及同步计数器-目的值SZZ。在指令序列存储单元5中至少存储有机器指令MP序列。机器指令MP序列对于二个分系统2、2’至少功能相同。在对图中未示出的技术过程进行控制时,由分系统2、2’的处理器3执行指令序列存储单元5的机器指令MP序列。
在图2中示出至少两个分系统2、2’的机器指令MP序列。在左侧的机器指令MP序列是分系统2的机器指令MP序列,在右侧的机器指令MP序列是分系统2'的机器指令MP序列。
如图2所示,增值语句IA插入机器指令MP序列中。利用增值语句IA,某分系统2、2’的同步计数器SZ,SZ'被增值,即增大1。在机器指令MP序列内用箭头10、10'标示的位置分别表示那个在出现特殊事件11的时间点被实际执行的机器指令。另外从图2中还看出,至少有一个分系统2、2’将特殊事件11记录下来。
如图2所示,分系统2、2’在此时间点执行机器指令MP序列的不同的机器指令。在此时间点对特殊事件11的处理有时将导致产生自动化系统1的分系统2、2’的不稳定的数据。所以在特殊事件11处理之前需要实现分系统2、2’的同步。在分系统2中,在出现特殊事件11的时间点上同步计数器SZ具有的值为n。在分系统2'中,在出现特殊事件的时间点上同步计数器SZ'具有的值已经是n+1。
为实现同步,某个在执行机器指令MP序列时超前于至少另一分系统2、2’的分系统必须中断机器指令MP序列的执行,直至另一分系统2、2’到达机器指令MP功能相同的序列内的相关位置。
增值语句IA是机器指令MP序列中的直接相应的位置。同步计数器SZ'在图2中所示的状况下具有的值为n+1。同步计数器SZ具有的值为n。如果分系统2'的机器指令MP序列的执行暂停在实际状况下,同时在分系统2中的机器指令MP序列的执行继续进行,直至同步计数器SZ也到达值n+1,则还没有实现同步。
所以两个分系统2、2’可同时到达的下一个增值语句IA是同步计数器SZ和同步计数器SZ'都取值n+2时的同步语句IA。两个分系统2、2’能共同到达的同步计数器SZ、SZ'的值被称作同步计数器-目的值SZZ。其中同步位置SP相应于机器指令MP序列内的某增值语句IA的位置,在此位置同步计数器SZ、SZ'的值到达同步计数器-目的值SZZ。
如图3所示,在对特殊事件11记录后报警的分系统2为推断同步计数器-目的值SZZ向至少另一分系统2'发送它的同步计数器SZ的值以及特殊事件11。这是用于转送特殊事件11的尽可能早的时间点。最迟必须与转送同步信号SS相关联转送特殊事件。以此方式使至少另一分系统2'被告知出现特殊事件11并发送其同步计数器SZ'的实际值,此实际值被报警的分系统2接收到。
每个分系统2、2’了解了自己的同步计数器SZ的值以及至少另一分系统2、2’的同步计数器SZ'的值。由两个被增值变更的同步计数器SZ、SZ'的最大值得出同步计数器-目的值SZZ。当然另外也可以首先推断最大值并通过对该最大值的增值变更求出同步计数器-目的值SZZ。
在同步计数器SZ、SZ'的信息交换后,两个分系统2、2’继续执行机器指令MP序列。一旦一个分系统2、2’在执行机器指令MP序列时已到达同步位置SP,则中断机器指令MP序列的执行。可以通过实际执行的机器指令MP序列的指令的地址与同步位置SP的地址的比较或者如图3所示,通过监督同步计数器SZ、SZ'的值是否到达同步计数器-目的值SZZ来判别是否到达同步位置SP。
每个到达同步位置SP的分系统2、2’通过转送同步信号SS向至少另一分系统2、2’通告已到达同步位置SP。报警的分系统2、2’最早紧接着对特殊事件11记录之后并且最迟与同步信号SS的转送相结合向至少另一分系统2、2’转送特殊事件11。
每个分系统2、2’一旦到达同步位置SP并且由至少另一分系统2、2’接收到同步信号SS时,就求出对特殊事件11特定的响应并执行此响应。在执行完对特殊事件11特定的响应后,将继续执行同步位置SP后面的机器指令MP的序列。
如在开始时已提及的那样,也有为执行特殊事件11特定的响应时不需要信息交换和等待同步信号SS的情况。在此种情况时,当到达同步位置SP时直接执行特殊事件的特定的响应。所以在这里明确地指出,在图3流程图中在询问“SZ<SZZ?”与执行“特殊事件-特定响应”间的程序块是可选用的。每次如果不需要精确的时间同步并且如果特殊事件-特定响应虽然不是同时的,但是在机器指令MP序列的功能相同的位置上执行已足够了的时候,就可以省去选用这一节。
按照本发明同步方法的一种选择设计,替代增值语句IA将减值语句IA插入机器指令序列中。在此种情况时,与上述同步计数器SZ、SZ'由0开始分别增值1相同,同步计数器SZ、SZ'由起动值,例如32.767开始,分别减值变更。其中同步方法在这种减值变更的同步计数器SZ、SZ'计值的情况下以完全类似的方式进行。
图4以一种程序设计语言的指令序列为例示出增值语句的IA的插入方法。尤其是对结构化的程序设计语言,在一所谓的结构图形(Struktogramm)中实现了对程序过程的显示。由此结构图形中尤其可以看到程序块边界和相伴随的结构化。在图的左侧示意示出简化的结构图形。结构图形由二个程序块B1和B2构成,其中程序块B1例如用于所谓的主程序,与此相反程序块B2例如用于所谓的子程序。
在主程序B1中开始执行程序。主程序B1和子程序B2分别构成一单独的程序块。所以它们分别被置入程序块指令。在主程序B1及子程序B2开始处的程序块指令分别引出程序块,在主程序B1及子程序B2结束处的程序块指令结束程序块。而且在一个程序块的语句中会出现其它程序块,例如与在循环时相同的多次重复的语句。在主程序B1中,由内部程序块调用子程序B2。
图4在右侧示出通过插入增值变更语句IA所形成的结构图形。每个引导一个程序块的程序块指令被转换成一个引导一个程序块的程序块指令和一个增值变更语句IA;每个结束一个程序块的程序块指令被转换成一个增值语句IA和一个结束程序块的程序块指令。程序块指令和增值变更语句IA的顺序并不限于图4中所示的顺序并且也可以进行变更。而且在主程序B1的内部程序块中调用子程序的语句被转换成增值语句IA和调用子程序B2的语句。
图5和6分别示出一个插入方法流程图。
图5示出权利要求6所述的插入方法。首先对指令计数器BZ的值预置,即置零。接着求出机器指令MP序列的实际后承的机器指令。只有当机器指令涉及的是一个跳变指令时,增值变更指令IA才被插入机器指令MP序列中。只有当指令计数器BZ超过指令计数器阀值BZS时,增值变更语句IA才被插入机器指令MP序列中并且接着指令计数器BZ又被置于零。此后,求出的机器指令被插入机器指令MP序列中。在紧接插入机器指令后,指令计数器BZ被增值变更,即增大1,这是因为这时机器指令MP序列的机器指令的数量正如增加一个机器指令。随着求出一个机器指令继续进行处理,直至所有的机器指令被处理完毕。
替代图5中所示的指令计数器BZ及指令计数器阀值BZS也可以采用运行时间计数器及运行时间计数器阀值。运行时间计数器被分别增大一个插入的机器指令的运行时间。运行时间计数器-阀值预先给定两个增值变更语句IA间的运行时间。
图6示出按照权利要求7的插入方法,该方法涉及机器指令MP序列及一种程序设计语言的指令顺序的序列,通过对该序列的解释控制一个过程,尤其是一个技术过程。为插入增值语句IA,检查机器指令MP序列及指令顺序的序列,看是否出现搜索序列及搜索顺序。只有当在机器指令序列及指令顺序的序列内找到搜索序列及搜索顺序时,才插入增值语句。该插入方法采用检查机器指令序列及指令顺序的序列的方式继续进行,直至对所述序列检查完毕。
最后还应对“功能相同”这一措词的含义说一下看法。机器指令功能相同的序列例如是作为不同的高级语言的语句编译的结果,但所述不同的高级语言的语句描述的都是一个和同一任务。另外,机器指令的功能相同的序列是作为由一种高级语言的语句编译的结果产生的,但所述一种高级语言的语句是由该种语言的不同的编译器转换的。机器指令的功能相同的序列也是作为由一种或同一高级语言的语句编译的结果实现的,所述高级语言的语句描述的是同一任务,所述任务由一个或同一编译器,但对此编译器采用不同的参数,例如采用不同的最佳化层进行处理。

Claims (10)

1.一种由至少两个分系统(2、2’)构成的冗余自动化系统(1)的同步方法,其中至少两个分系统(2、2’)分别具有至少一个处理器(3),并通过通信装置(6)相互连接,为控制处理器,执行机器指令(MP)功能相同的序列并有时候通过通信装置相同步,其特征在于:
-每个分系统(2、2’)具有一个同步计数器(SZ、SZ’),
-功能相同的机器指令(MP)序列在相互一致的位置中具有增值变更-或减值变更语句(IA),利用所述增值变更-或减值变更语句同步计数器(SZ、SZ’)被增值变更或减值变更,
-至少在一个分系统(2、2’),即报警的分系统(2、2’)记录一个特殊事件(11)时,进行同步,
-其中该同步的步骤如下:
每个分系统(2、2’)
a)向另一分系统(2、2’)转送其同步计数器(SZ、SZ’)的实际值,
b)由自己的同步计数器(SZ、  SZ’)的增值变更的或减值变更的值并由一分系统(2、2’)的同步计数器(SZ、SZ’)的增值变更的或减值变更的值求出实际的最大值或最小值,同步计数器-目的值(SZZ),
c)在到达机器指令(MP)序列内的一个位置(下面称作同步位置(SP))时,在此位置同步计数器(SZ、SZ’)的值到达同步计数器-目的值(SZZ),中断机器指令(MP)序列的执行,
d)求出对特殊事件(11)特定的响应,执行此响应并在此后继续执行同步位置(SP)后的机器指令(MP)序列,
-其中报警的分系统(2、2’)最早紧接记录特殊事件(11)之后并且最迟结合求出特殊事件(11)特定的响应向另一分系统(2、2’)转送特殊事件(11)。
2.一种由至少两个分系统(2、2’)构成的冗余自动化系统(1)的同步方法,其中至少两个分系统(2、2’)分别具有至少一个处理器(3)并通过通信装置(6)相互连接,为控制处理器,执行机器指令(MP)功能相同的序列并有时候通过通信装置相互同步,其特征在于:
-每个分系统(2、2’)具有一个同步计数器(SZ、SZ’),
-功能相同的机器指令(MP)序列在相互一致的位置具有增值变更-或减值变更语句(IA),利用所述增值变更-或减值变更语句同步计数器(SZ、SZ')被增值变更或减值变更,
-至少在一个分系统(2、2’),即报警的分系统(2、2’)记录一个特殊事件(11)时,进行同步,
-其中该同步的步骤如下:
每个分系统(2、2’)
a)向另一个分系统(2、2’)转送其同步计数器(SZ、SZ')的实际值,
b)由自己的同步计数器(SZ、SZ')的增值变更的或减值变更的值和由另一分系统(2、2’)的同步计数器(SZ、SZ')的增值变更的或减值变更的值求出实际最大或最小值,即同步计数器-目的值(SZZ),
c)在到达机器指令(MP)序列内的一个位置(下面称作同步位置(SP))时,在此位置同步计数器(SZ、SZ')的值到达同步计数器-目的值(SZZ),中断执行机器指令(MP)序列,
d)用一个同步信号(SS)向另一个分系统(2、2’)通告到达同步位置(SP),
e)在到达同步位置(SP)并记录另一分系统(2、2’)的同步信号(SS)后求出对特殊事件(11)特定的响应,执行此响应并在此后继续执行同步位置(SP)后的机器指令(MP)序列,
-其中报警的分系统(2、2’)最早紧接记录特殊事件(11)之后并且最迟结合同步信号(SS)向另一分系统(2、2’)转送特殊事件。
3.按照格要求1或2所述的同步方法,其特征在于:
-对机器指令(MP)序列的每个机器指令通过其在机器指令(MP)序列中的位置分配一个明确的地址,
-求出机器指令(MP)序列的每一个机器指令的地址,尤其是实际有待执行的机器指令地址以及与同步位置(SP)一致的某机器指令的地址,
-在至少由报警的分系统(2、2’)对特殊事件(11)记录之后执行机器指令(MP)序列时,始终将实际待执行的机器指令的地址与某个与同步位置(SP)一致的机器指令的地址进行比较并且
-正好在到达同步位置(SP)时中断执行机器指令(MP)序列。
4.按照权利要求1或2所述的同步方法,其特征在于:
-至少在由报警的分系统(2、2’)记录特殊事件(11)之后执行机器指令(MP)序列时,始终将同步计数器(SZ、SZ')的值与同步计数器-目的值(SZZ)进行比较并且
-当同步计数器(SZ、SZ')的值到达同步计数器-目的值(SZZ)时,中断执行机器指令(MP)序列。
5.按照权利要求1、2、3或4所述的同步方法,其特征在于:分别至少
-在机器指令(MP)序列的固定数量的单独指令之后或在对一定数量的机器指令的运行时间计值的情况下以一定的基本等距的运行时间间隔以及
-结合每个跳变指令执行增值变更语句(IA)。
6.按照上述任一项权利要求所述的同步方法,其特征在于:分别
-在机器指令(MP)序列的固定数量的单独指令之后或在对一定数量的机器指令的运行时间计值的情况下以一定的、基本等距的运行时间间隔以及
-结合每个跳变指令将增值语句(IA)插入机器指令(MP)序列中。
7.按照上述任一项权利要求所述的同步方法,其特征在于:
-由一种程序设计语言的指令顺序的序列产生机器指令(MP)的序列,
-对机器指令(MP)的序列或指令顺序序列查找特定的机器指令或特定的指令顺序,尤其是机器指令(MP)序列的特定的分序列或指令顺序的特定的分序列,对此以下称作搜索序列或搜索顺序,
-对搜索序列或搜索顺序的出现进行识别并且
-将增值变更语句(IA)置于搜索序列或搜索顺序前面或对搜索序列或搜索顺序添加增值变更语句。
8.按照权利要求7所述的同步方法,其特征在于:
-相关连的指令顺序被分别合并在一个程序块中并且
-一个搜索序列或一个搜索顺序至少是程序块的一个界偶和/或一个跳变指令。
9.按照权利要求8所述的同步方法,其特征在于:
-在产生机器指令(MP)序列的同时将增值变更语句(IA)插入机器指令序列中,
-其中利用一专门的编译程序以已知的方式产生机器指令(MP)序列,
-其中分别在识别出搜索序列或搜索顺序时由专门的编译程序产生增值变更语句(IA)并且插入机器指令(MP)序列中。
10.按照权利要求8或9所述的同步方法,其特征在于:
-在产生机器指令(MP)序列之前和/或之后将增值变更语句(IA)插入机器指令(MP)序列中,
-利用一种标准的编译程序以已知的方式产生机器指令(MP)序列,
-在产生机器指令(MP)序列之前和/或之后,分别在识别出搜索序列或搜索顺序时,将增值变更语句(IA)插入机器指令(MP)序列中或指令顺序序列中。
CN97197275A 1996-06-24 1997-06-03 同步方法 Pending CN1228173A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19625195.8 1996-06-24
DE19625195A DE19625195A1 (de) 1996-06-24 1996-06-24 Synchronisationsverfahren

Publications (1)

Publication Number Publication Date
CN1228173A true CN1228173A (zh) 1999-09-08

Family

ID=7797824

Family Applications (1)

Application Number Title Priority Date Filing Date
CN97197275A Pending CN1228173A (zh) 1996-06-24 1997-06-03 同步方法

Country Status (9)

Country Link
US (1) US6356795B1 (zh)
EP (1) EP0907912B1 (zh)
JP (1) JP2000513468A (zh)
KR (1) KR20000022171A (zh)
CN (1) CN1228173A (zh)
AT (1) ATE192583T1 (zh)
DE (2) DE19625195A1 (zh)
ES (1) ES2146474T3 (zh)
WO (1) WO1997050024A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1303544C (zh) * 2003-05-16 2007-03-07 浙江中控技术股份有限公司 自动进行开关量事件先后顺序记录的系统及其方法
CN101916068A (zh) * 2010-07-29 2010-12-15 北京交通大学 基于2取2结构的计算机控制系统及其实现方法
CN103154837A (zh) * 2010-08-20 2013-06-12 西门子公司 用于自动化系统的过程冗余控制的方法
CN103207596A (zh) * 2012-01-12 2013-07-17 西门子公司 用于在冗余的自动化系统中同步地执行程序的方法
CN109254525A (zh) * 2017-07-13 2019-01-22 西门子股份公司 用于运行两个冗余的系统的方法和设施
CN114090272A (zh) * 2020-08-24 2022-02-25 达明机器人股份有限公司 进程同步的方法

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256753B1 (en) 1998-06-30 2001-07-03 Sun Microsystems, Inc. Bus error handling in a computer system
DE19834331A1 (de) * 1998-07-30 2000-02-10 Bosch Gmbh Robert Sicherheitsvorrichtung für eine speicherprogrammierbare Steuerung
DE19836347C2 (de) 1998-08-11 2001-11-15 Ericsson Telefon Ab L M Fehlertolerantes Computersystem
DE10065417B4 (de) * 2000-12-27 2011-07-21 Siemens AG, 80333 Programmierung von zyklischen Maschinen
US6941175B2 (en) * 2000-12-27 2005-09-06 Siemens Aktiengesellschaft Method of operating an industrial controller
FI113113B (fi) * 2001-11-20 2004-02-27 Nokia Corp Menetelmä ja laite integroitujen piirien ajan synkronoimiseksi
EP1398701A1 (de) * 2002-09-12 2004-03-17 Siemens Aktiengesellschaft Verfahren zur Ereignissynchronisation, insbesondere für Prozessoren fehlertoleranter Systeme
EP1398699A1 (de) * 2002-09-12 2004-03-17 Siemens Aktiengesellschaft Verfahren zur Ereignissynchronisation, insbesondere für Prozessoren fehlertoleranter Systeme
DE10343057A1 (de) 2002-09-16 2004-03-25 Robert Bosch Gmbh Verfahren und Rechnersystem zum Betreiben von mindestens zwei miteinander verbundenen Steuergeräten
JP2005006037A (ja) * 2003-06-12 2005-01-06 Nec Corp メディア同期システム及びそれに用いるサービス提供方法
US7665070B2 (en) * 2004-04-23 2010-02-16 International Business Machines Corporation Method and apparatus for a computing system using meta program representation
US7353365B2 (en) * 2004-09-29 2008-04-01 Intel Corporation Implementing check instructions in each thread within a redundant multithreading environments
US7802075B2 (en) * 2005-07-05 2010-09-21 Viasat, Inc. Synchronized high-assurance circuits
US8190877B2 (en) * 2005-07-05 2012-05-29 Viasat, Inc. Trusted cryptographic processor
US8527741B2 (en) * 2005-07-05 2013-09-03 Viasat, Inc. System for selectively synchronizing high-assurance software tasks on multiple processors at a software routine level
US8301870B2 (en) * 2006-07-27 2012-10-30 International Business Machines Corporation Method and apparatus for fast synchronization and out-of-order execution of instructions in a meta-program based computing system
US8037355B2 (en) * 2007-06-07 2011-10-11 Texas Instruments Incorporated Powering up adapter and scan test logic TAP controllers
JP4697314B2 (ja) * 2009-02-05 2011-06-08 横河電機株式会社 二重化フィールド制御装置
GB2497017B (en) * 2010-08-20 2018-05-23 Siemens Ag Method for redundantly controlling processes of an automation system
BE1020023A5 (nl) * 2011-01-28 2013-04-02 Niko Nv Systeem en werkwijze voor het aansturen van producten.
US8880198B2 (en) * 2011-08-23 2014-11-04 Siemens Aktiengesellschaft Byzantine fault-tolerant SCADA system
EP2657797B1 (de) * 2012-04-27 2017-01-18 Siemens Aktiengesellschaft Verfahren zum Betreiben eines redundanten Automatisierungssystems
DE102012106601A1 (de) 2012-07-20 2014-05-15 Pilz Gmbh & Co. Kg Verfahren zum Synchronisieren von Anzeigeelementen
US9256426B2 (en) * 2012-09-14 2016-02-09 General Electric Company Controlling total number of instructions executed to a desired number after iterations of monitoring for successively less number of instructions until a predetermined time period elapse
EP2765464A1 (de) 2013-02-08 2014-08-13 Siemens Aktiengesellschaft Verfahren zum Betreiben eines redundanten Automatisierungssystems
EP2857913B1 (de) 2013-10-01 2019-04-24 Siemens Aktiengesellschaft Redundantes Automatisierungssystem
EP3229141A1 (de) 2016-04-07 2017-10-11 Siemens Aktiengesellschaft Verfahren zur erhöhung der verfügbarkeit eines redundanten automatisierungssystems sowie redundantes automatisierungssystem
EP3246771B1 (de) 2016-05-17 2021-06-30 Siemens Aktiengesellschaft Verfahren zum betreiben eines redundanten automatisierungssystems
EP3751363B1 (de) 2019-06-11 2022-11-23 Siemens Aktiengesellschaft Verfahren zum betreiben eines redundanten automatisierungssystems und entsprechendes system
EP3872583B1 (de) 2020-02-26 2023-07-19 Siemens Aktiengesellschaft Redundant ausgelegtes automatisierungssystem
EP3872582A1 (de) 2020-02-26 2021-09-01 Siemens Aktiengesellschaft Redundant ausgelegtes automatisierungssystem
EP4428633A1 (de) 2023-03-08 2024-09-11 Siemens Aktiengesellschaft Verfahren zum betreiben eines redundanten automatisierungssystems und redundantes automatisierungssystem

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4674036A (en) * 1984-11-23 1987-06-16 Gte Communication Systems Corporation Duplex controller synchronization circuit for processors which utilizes an address input
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
EP0394514B1 (de) * 1989-04-25 1994-07-13 Siemens Aktiengesellschaft Verfahren zur Synchronisation von Datenverarbeitungsanlagen
EP0497147A3 (en) * 1991-01-28 1993-05-05 Siemens Aktiengesellschaft Redundant automation system
DE4104114C2 (de) * 1991-02-11 2000-06-08 Siemens Ag Redundantes Datenverarbeitungssystem
EP0616274B1 (de) * 1993-03-16 1996-06-05 Siemens Aktiengesellschaft Synchronisationsverfahren für Automatisierungssysteme
DE4401467C2 (de) * 1993-03-25 1996-12-12 Siemens Ag Betriebsverfahren für ein redundant aus mindestens zwei Teilsystemen aufgebautes Automatisierungssystem
DE4405297C2 (de) * 1994-02-19 1997-06-05 Bosch Gmbh Robert Verfahren zur Synchronisation von Sendeeinrichtungen in Zugangseinheiten bei einem getakteten Bussystem

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1303544C (zh) * 2003-05-16 2007-03-07 浙江中控技术股份有限公司 自动进行开关量事件先后顺序记录的系统及其方法
CN101916068A (zh) * 2010-07-29 2010-12-15 北京交通大学 基于2取2结构的计算机控制系统及其实现方法
CN103154837A (zh) * 2010-08-20 2013-06-12 西门子公司 用于自动化系统的过程冗余控制的方法
CN103154837B (zh) * 2010-08-20 2017-06-16 西门子公司 用于自动化系统的过程冗余控制的方法
CN103207596A (zh) * 2012-01-12 2013-07-17 西门子公司 用于在冗余的自动化系统中同步地执行程序的方法
CN109254525A (zh) * 2017-07-13 2019-01-22 西门子股份公司 用于运行两个冗余的系统的方法和设施
CN109254525B (zh) * 2017-07-13 2021-02-12 西门子股份公司 用于运行两个冗余的系统的方法和设施
CN114090272A (zh) * 2020-08-24 2022-02-25 达明机器人股份有限公司 进程同步的方法

Also Published As

Publication number Publication date
EP0907912A1 (de) 1999-04-14
JP2000513468A (ja) 2000-10-10
DE59701592D1 (de) 2000-06-08
ES2146474T3 (es) 2000-08-01
KR20000022171A (ko) 2000-04-25
DE19625195A1 (de) 1998-01-02
US6356795B1 (en) 2002-03-12
ATE192583T1 (de) 2000-05-15
EP0907912B1 (de) 2000-05-03
WO1997050024A1 (de) 1997-12-31

Similar Documents

Publication Publication Date Title
CN1228173A (zh) 同步方法
EP2494468B1 (en) Context-sensitive slicing for dynamically parallelizing binary programs
US7243333B2 (en) Method and apparatus for creating and executing integrated executables in a heterogeneous architecture
CN109272109B (zh) 神经网络模型的指令调度方法及装置
US20110145834A1 (en) Code execution utilizing single or multiple threads
US8527969B2 (en) Systems, methods, and computer programs for dynamic binary translation in an interpreter
US8752056B2 (en) Running native code across single or multi-core hybrid processor achitecture
CN1243306C (zh) 程序变换装置和程序变换方法
CN110928778B (zh) 死循环定位方法、装置、计算机设备和存储介质
CN113760290B (zh) 一种程序控制方法、装置、计算机设备及存储介质
CN118820134B (zh) 自动线程级并行化中的缓存一致性优化方法
US8276128B2 (en) Systems, methods, and computer programs for dynamic binary translation in a master control program interpreter
WO2019157743A1 (zh) 线程处理方法和图形处理器
CN1834907A (zh) 在运行时期间优化计算机程序的系统与方法
CN103383566A (zh) 一种程序流监控方法
CN112540764A (zh) 条件转移预测方向变换的编译优化方法
Upadhyaya et al. Effectively mapping linguistic abstractions for message-passing concurrency to threads on the Java virtual machine
EP0481458A2 (en) High speed synchronous processing system for executing parallel processing of programs
WO2015062369A1 (zh) 轮廓技术编译的优化方法及装置
EP2605134B1 (en) Systems, methods, and computer programs for dynamic binary translation in an interpreter
CN109460254B (zh) 一种指令处理方法、cpu交互系统及采用该系统的耗材芯片
CN116166323B (zh) 命令处理方法、装置及存储设备
KR100655275B1 (ko) 조건 분기 명령어의 컴파일 방법
CN101226498B (zh) 获取处理器工作状态的方法、多处理器系统与处理器
CN119127206A (zh) 一种编译处理方法、装置、电子设备及可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication