一种基于有限状态机的计算机联锁平台控制方法与流程

文档序号:14940442发布日期:2018-07-13 20:33阅读:221来源:国知局

本发明涉及一种计算机联锁平台的控制方法,尤其涉及一种基于有限状态机的计算机联锁平台控制方法。



背景技术:

铁路运输已经成为现代运输中不可替代的运输方式,铁路因其运输量大、运输速度快,而对国家经济的发展发挥着越来越重要的作用。计算机联锁系统是铁路运输系统的一项重要组成部分,计算机联锁系统是保障车站铁路运输安全、高效进行的主要设备。当前国内应用的计算机联锁系统大多为双机热备制式,随着铁路运输在市场的作用越来越重要,对计算机联锁系统的可靠性与安全性要求也越来越高,因此,目前更多的计算机联锁系统使用二乘二取二制式控制方法。

二乘二取二控制方式与双机热备制式、三取二制式控制方式相比,具有更高的可靠性与安全性。双机热备控制方式为两个cpu同时工作,互为主备。三取二控制方式为三个cpu同时工作,取其中2个cpu相同运算结果进行输出。二乘二取二控制方式为4个cpu同时工作,并且分为两系,完成二取二的工作,即每系2个cpu同时进行运算,运算结果通过比较后输出,两系工作单元互为主备,在安全性、可靠性方面有了显著的提高。

二乘二取二制式联锁控制平台由两台独立的联锁机构成,一台作为主系,另外一台作为备系。每系由两个独立的运算逻辑单元处理器(cpu)构成,两个运算逻辑单元处理器(cpu)有主从之分,即每系的两个cpu,一个为主cpu,另一个为从cpu。主cpu拥有绝对控制权,从cpu负责对主cpu的结果数据进行验证以完成二取二逻辑,因此,在二乘二取二制式联锁控制平台中共有4个cpu分别为4种状态:主系主cpu,主系从cpu,备系主cpu,备系从cpu。

在二乘二取二计算机联锁控制平台当中,4个运算逻辑单元处理器(cpu)执行完全一致的指令代码,它们之间彼此相互通信,构成了一个由4台运算逻辑单元处理器构成的小型集群,但是如何确保4台运算逻辑单元处理器同步运行,目前还没有一个更完善的控制方式。



技术实现要素:

本发明针对现有技术存在的缺陷,提供一种既能保证4台运算逻辑单元处理器同步运行,又能保证4台运算逻辑单元处理器能够长时间稳定的运行而不从系统中退出,又能保证当系统发生故障或者需要切换时,能够将将主系、备系无缝切换的计算机联锁平台控制方法。

本发明提供的基于有限状态机的计算机联锁平台控制方法,所述控制方法包括:

——新周期同步,校核主系、备系的主cpu、从cpu至同一时间线上运行,所述同一时间线的算法为:设定主系主cpu为主定时器,并为所述主定时器设计一主计数器,每触发一次主定时器,所述主计数器的序号便增加1,在心跳帧当中流逝的周期数字段将该主计数器的序号传递到其它的cpu上,其它cpu的计数器与主计数器的序号比较,若两者的差值的绝对值大于等于1,则其它cpu的计数器调整为主定时器的序号。

——输入数据同步,主系主cpu向备系主cpu发送输入数据,主系主cpu与主系从cpu相互发送、接收输入数据,并比较输入数据,若主系从cpu的输入数据与主系主cpu的输入数据不一致,则主系从cpu的输入数据同步至与主系主cpu一致。

备系主cpu接收主系主cpu发送的输入数据,并与主系主cpu的输入数据比较;若备系主cpu与主系主cpu的输入数据相同,则备系主cpu与备系从cpu相互发送、接收输入数据,并进行比较;若备系主cpu与主系主cpu的输入数据不相同,则备系主cpu的输入数据同步至与主系主cpu一致,以确保各cpu的输入数据同步。

——结果数据同步,主系主cpu向备系主cpu发送结果数据,主系主cpu与主系从cpu相互发送、接收结果数据,并比较结果数据;备系主cpu接收主系主cpu发送的结果数据,并与主系主cpu的结果数据比较;若结果数据一致,则备系主cpu与备系从cpu相互发送、接收结果数据,并比较结果数据。

——发送控制命令或结束周期,若结果数据一致,则由主系主cpu向外部设备发送控制命令,完成一个周期的运算;若结果数据至少有一个不一致,则终止系统。

在一个优选实施例中,系统启动时,主系、备系的关系确定方式为:

1)若两系启动之间有时间差,将两系分别记为i系和ii系,i系尝试接收ii系的心跳信号帧,若i系收到ii系发出的心跳信号帧,则将i系设置为校核状态,并在校核完成后将i系设置为热备状态,即i系为备系,ii系为主系。

2)若两系同时启动,启动过程中使用随机退避等待算法,两系的主cpu均产生一个随机值,若产生该随机值的等待时间不同,则产生随机值的等待时间较短的一系成为主系;若产生随机值的等待时间相同,则再次使用随机退避等待算法竞争主系,直至两系产生的随机值的等待时间不同,产生的随机值的等待时间较短的一系成为主系。

在一个优选实施例中,系统运行过程中,主系、备系之间定时向对方发送心跳信号帧,1)若i系在设定的阈值周期内收到ii系发出的心跳信号帧,则不发生双系切换,i系仍为备系,ii系仍为主系。

2)若i系在设定的阈值周期内均未收到ii系发出的心跳信号帧,则i系提升为主系,ii系调整为备系。

在一个优选实施例中,本发明提供的控制方法中,主系、备系之间,以及每系内的主cpu和从cpu之间均发送心跳信号帧。

在一个优选实施例中,每系内的主cpu和从cpu之间相互发送心跳信号帧,每系内的主cpu和从cpu发送的心跳信号帧的内容包括用于避免重复帧的时间戳,确保每个cpu运行在同一时间线上的流逝的周期数字段,数据类型,用于检验通信数据的正确性校验码,帧编号,用以检测系统是否出现双主系、双备系、双主cpu、双从cpu状态错误故障的双系状态,以及主cpu状态中的任意一种或几种。

在一个优选实施例中,主系、备系之间发送的心跳信号帧的内容包括用于避免重复帧的时间戳,确保每个cpu运行在同一时间线上的流逝的周期数字段,数据类型,用于检验通信数据的正确性的校验码,帧编号,用以检测系统是否出现双主系、双备系、双主cpu、双从cpu状态错误故障的双系状态,a路电子单元(eeu)、b路电子单元的通信状态和a路控显机、b路控显机(hmi)的通信状态中的任意一种或几种。

其中,主系、备系心跳信号帧中的eeu(电子单元)通信状态和hmi(控显机)通信状态用于确认通信信道是否正常,以便决定是否切换主系、备系关系。

本发明提供的基于有限状态机的计算机联锁平台控制方法,在整个控制平台中,有限状态机在新周期开始、输入数据、计算的结果数据分别进行同步,提高了发送的数据的准确性。另外通过设定算法确定主、备系cpu地位,在系统发生故障时将备系提升为主系,进行无缝切换,保证计算机联锁平台的正常运行。

附图说明

图1为主系主cpu状态机工作原理图;

图2为备系主cpu状态机工作原理图;

图3为从cpu状态机工作原理图;

图4为两系启动时有时间差时,主备系关系确定算法;

图5为两系同时启动时,主备系关系确定算法;

图6为有限状态机的运行状态图;

图7为有限状态机在不同阶段的执行图;

图8为主cpu、从cpu的通信状态图;

图9为主cpu、从cpu的心跳信号帧内容图;

图10为主系、备系的心跳信号帧内容图;

图11为现有技术中,系统长时间运行出现的不稳定现象;

图12为本申请提供的一种同一时间线算法。

具体实施方式

本发明中,主cpu、从cpu关系由配制确定,每一系只有一个主cpu,一个从cpu,系统启动时,主系、备系的关系由启动时间确定。系统运行过程中,主系、备系在接收同系的另外一个cpu的输入数据后,会进行权限校核,根据权限校核结果确定是否进行主系、备系的切换。

如图1至图11所示,本发明提供的基于有限状态机的计算机联锁平台控制方法,包括:

主系主cpu的状态迁移,具体参考图1,新周期开始时,主系主cpu向备系发送新周期消息,不判断新周期消息是否发送成功,主系主cpu即使发现新周期数据未发送成功,也不停留在此步骤继续尝试发送数据,而是直接进入下一步骤,这样可以避免状态机的延迟。主系主cpu发送新周期消息后,向主系从cpu发送新周期消息,若向主系从cpu发送新周期消息失败,则重新发送直至发送成功,发送成功后接收主系从cpu发送的新周期数据。若接收失败,则重新接收,直至接收新周期数据成功。接收新周期数据成功后,接收控显机数据和电子模块数据,然后获取并判断室外设备状态,确定室外设备状态良好后,向备系发送输入数据,不判断输入数据是否发送成功,而是直接进入下一步骤,即向主系从cpu发送输入数据,这样可以避免有限状态机的延迟。若向主系从cpu发送输入数据失败,则重新发送直至发送成功,发送成功后接收主系从cpu发送的输入数据,并校验是否接收成功,若接收失败,则重新接收,直至接收成功。

接收输入数据成功后,验证该系统为主系或备系,若仍为主系,则进行联锁运算。若不符合主系条件,则将备系调整为主系,进行双系切换,切换完成后,进行联锁运算。并向备系和主系从cpu发送结果数据,不需判断向备系发送结果数据是否成功,但需判断向主系从cpu发送结果数据是否成功,若发送失败,则重新发送直至发送成功,发送成功后接收主系从cpu发送的结果数据,并与接收的结果数据进行比较,若结果数据一致,则由主系主cpu向室外设备发送控制命令以完成一个周期的联锁运算,并进入下一周期。若经比较后结果数据不一致,则认定为系统出现故障,系统停止运行,终止系统。

备系主cpu的状态迁移,具体参考图2,新周期开始,备系主cpu接收主系主cpu发送的新周期消息,该步骤若接收不成功,则连续接收10次,如果接收10次仍接收失败,则无条件转移,并向备系从cpu发送新周期消息,若向备系从cpu发送新周期消息失败,则重新发送直至发送成功,发送成功后接收备系从cpu发送的新周期数据。若接收失败,则重新接收,直至接收新周期数据成功。接收新周期数据成功后,接收控显机数据和电子模块数据,然后获取并判断室外设备状态,确定室外设备状态良好后,接收主系发送的输入数据,不判断输入数据是否接收成功,而是直接进入下一步骤,即向备系从cpu发送输入数据,这样可以避免有限状态机的延迟。若向备系从cpu发送输入数据失败,则重新发送直至发送成功,发送成功后接收备系从cpu发送的输入数据,并校验是否接收成功。若接收失败,则重新接收,直至接收备系从cpu发送的输入数据成功。

接收输入数据成功后,校验该系统为主系或备系,若仍为备系,则进行联锁运算。若主系不符合条件,则将备系调整为主系,进行双系切换,切换完成后,进行联锁运算。运算完成后,接收主系主cpu发送的结果数据,直至接收成功。接收成功后,比较备系结果数据与主系结果数据,若结果数据不一致,则终止该系统。若备系主cpu的结果数据与主系主cpu结果数据一致,则备系主cpu向备系从cpu发送结果数据,若发送失败,则重新发送,直至发送成功。结果数据发送成功后,接收备系从cpu发送的结果数据,接收成功后,比较备系主cpu的结果数据与备系从cpu的结果数据。若结果数据一致,则完成一个周期的联锁运算,并进入下一周期。若结果数据不一致,则终止系统。

当主系停机后,备系不处理与双系相关的任何逻辑。备系在接收主系主cpu发出的新周期同步、输入数据和结果数据的时候可能会一直停留在这一个状态内,导致联锁周期延迟,若连续出现三个周期延迟,则重启系统。

从cpu的状态迁移,具体参考图3,备系从cpu接收主系主cpu发送的新周期消息,若接收失败,则重复接收,直至接收成功。主系从cpu和备系从cpu分别向主系主cpu和备系主cpu发送新周期消息,若发送失败,则重复发送,直至发送成功。发送成功后,主系从cpu和备系从cpu分别接收主系主cpu和备系主cpu发送的新周期消息,若接收失败,则重复接收,直至接收成功。接收新周期数据成功后,接收控显机数据和电子模块数据,然后获取并判断室外设备状态,确定室外设备状态良好后,备系从cpu接收主系主cpu发送的输入数据,不判断输入数据是否接收成功,而是直接进入下一步骤,这样可以避免有限状态机的延迟。即主系从cpu和备系从cpu分别向主系主cpu和备系主cpu发送输入数据,若发送失败,则重复发送,直至发送成功。

发送输入数据成功后,主系从cpu和备系从cpu分别接收主系主cpu和备系主cpu发送的输入数据,若接收失败,则重复接收,直至接收成功。接收输入数据成功后,主系从cpu或备系从cpu分别校验自身是否仍为主系或从系,若仍然满足条件,则进行联锁运算。若不满足条件,则进行双系切换,切换完成后,进行联锁运算。联锁运算完成后,主系从cpu向主系主cpu发送结果数据。备系从cpu接收主系主cpu发送的结果数据,若接收不成功,则重复接收,直至接收成功。接收成功后,比较备系从cpu的结果数据与主系主cpu的结果数据是否一致,若结果数据不一致,则终止该系统。若结果数据一致,则备系从cpu向备系主cpu发送结果数据。若发送失败,则重新发送,直至发送成功。发送结果数据成功后,主系从cpu和备系从cpu分别接收主系主cpu和备系主cpu发送的结果数据,接收成功后,主系从cpu和备系从cpu的结果数据分别与主系主cpu和备系主cpu的结果数据进行比较,若结果数据一致,则完成一个周期的联锁运算,并进入下一周期。若有一个结果数据不一致,则终止系统。

在其他实施例中,系统启动时,主系、备系的关系确定方式为:

1、若两系启动之间有时间差,则如图4所示,将两系分别记为i系和ii系,i系尝试接收ii系的心跳信号,若i系收到ii系发出的心跳信号,则将i系设置为校核状态,并在校核完成后将i系设置为热备状态,即i系为备系,ii系为主系。

2、若两系同时启动,则如图5所示,启动过程中使用随机退避等待算法,两系的主cpu均产生一个3秒内的随机值,产生的随机值的等待时间短的一系成为主系;若产生的随机值的等待时间相同,则再次使用随机退避等待算法竞争主系,直至两系产生的随机值的等待时间不同,产生的随机值的等待时间较短的一系成为主系。

系统运行过程中,主系、备系的关系确定方式为:若i系收到ii系发出的心跳信号,则不发生双系切换,i系仍为备系,ii系仍为主系。若i系连续10个周期未收到ii系发出的心跳信号,则i系提升为主系,ii系调整为备系。

如图6、图7所示,本发明提供的基于有限状态机的计算机联锁平台控制方法中,有限状态机为平台软件的核心,该控制平台在一个大循环当中无限次数的运行有限状态机,直到发现系统故障后有限状态机才从循环当中退出。有限状态机分别在新周期开始时、输入数据时和经过联锁运算,产生结果数据时,均进行数据同步。具体描述如下:

新周期同步,启动系统,校核主系、备系每一系中的主cpu和从cpu以及两系的主cpu是否分别在同一时间线上运行,若4个cpu均在同一时间线上运行,则通过校核。若有一个或多个cpu与主系主cpu不在同一时间线上运行,则根据设定规则,其它cpu调整自己至与主系主cpu在同一时间线上。

新周期开始时,在控制平台软件当中,4个cpu是否在同一时间线上运行将决定其它状态是否正确执行,而新周期同步可以保证主系、备系的两个主cpu,以及每一系中的主cpu和从cpu在同一时间线上运行。

保证各cpu时间线的同一是系统正常运行的前提,而时间线是由主定时器控制的,在计算机当中定时器是由一个晶体振荡器控制的,由于每个pc104上的晶体振荡器可能存在偏差,从而导致无法保证每个pc104的定时器都在50ms内到来,由此,当长时间运行时系统就会出现不稳定。如图11列举出一种当新周期定时器错开的情况,当一个主cpu在还未收到从cpu反馈的结果比较数据时,下一个新周期的定时器已经到来,由于在控制方法当中将这种情况做为障碍处理,所以这种情况会影响系统的稳定运行。

本发明为了解决系统长时间运行时可能存在的不稳定现象,提出一种同一时间线算法,具体如图12所示的同步模型,为解决同一时间线的问题,设定主系主cpu为主定时器。系统的主定时器为50ms,并为主定时器设计一主计数器,每触发一次主定时器,该主计数器的序号便增加1,这样在心跳帧当中流逝的周期数字段将该主计数器的序号传递到其它的主机上,并且其它的主机均以主系主cpu的主定时器为主。图12中,假设当主定时器的序号为8时新周期开始,图12中可以观察出主cpu与从cpu之间的周期存在延迟,当主定时器的序号为8时,从cpu的定时器的序号为5,从cpu与主cpu的定时器的序号差的绝对值为3,大于等于1,则从cpu将自己的定时器的序号调整为主定时器的序号,图12中,显示出从cpu在定时器序号为10时将自己的定时器序号同步为了主cpu的序号13。备系中cpu的新周期同步与从cpu的同步类似。

输入数据同步,本申请提供的二乘二取二计算机联锁平台控制方法中,在每一个运算周期内,均会在固定的时间段采集室外设备的状态,并在每个cpu上彼此做同步,从而确保每个cpu都是采用相同的数据进行运算,只有每个cpu使用了相同的数据做运算,它们比较结果数据才有意义。

作为本发明的一个优选实施例,输入数据同步的具体算法为:主系主cpu向备系主cpu发送输入数据,主系主cpu与主系从cpu相互发送输入数据并进行比较。备系主cpu接收主系主cpu发送的输入数据,并与主系主cpu的输入数据比较,若输入数据相同,则备系主cpu向备系从cpu发送输入数据,并接收备系从cpu发送的输入数据,并比较输入数据,以确保各cpu的输入数据同步。

结果数据同步,每个cpu完成输入数据同步之后,根据输入数据计算结果数据,若计算的结果数据一致,则计算的结果数据可靠。

作为本发明的一个优选实施例,结果数据同步的具体算法为:主系主cpu向备系主cpu发送结果数据,主系主cpu与主系从cpu相互发送结果数据并进行比较。备系主cpu接收主系主cpu发送的结果数据,并与主系主cpu的结果数据比较,若结果数据相同,则备系主cpu向备系从cpu发送结果数据,并接收备系从cpu发送的结果数据,并比较结果数据,以确保各cpu的结果数据同步。

结果数据同步完成后,由主系主cpu向外部设备发送控制命令,完成一个周期的运算。

每一系之间的主cpu与从cpu之间的cpu通信过程如图8所示,主cpu和从cpu均时刻保持在同一时间线上,主cpu和从cpu相互发送、接收新周期数据,分别获取分别获取控显机、电子单元数据,并相互发送和接收输入数据。

如图9、图10所示,本发明提供的二乘二取二计算机联锁平台控制方法中的主系、备系之间,以及每系内的主cpu和从cpu之间均发送心跳信号帧,每系内的主cpu和从cpu发送的心跳信号帧的内容包括31位的时间戳、32位的流逝的周期数字段、数据类型、校验码、帧编号、主系和从系的双系状态、主cpu状态中的任意一种或几种。

其中,时间戳用于避免重复帧,流逝周期数字段用以确保每个cpu运行在同一时间线上,校验码使用crc16校验码,用于检验通信数据的正确性。数据类型字段用以标志该数据的类型,双系状态、双cpu状态字段用以检测系统是否出现双主系、双备系、双主cpu、双从cpu等状态错误故障。

在一个优选实施例中主系、备系心跳信号帧内容包括时间戳、流逝的周期数字段、数据类型、校验码、帧编号、双系状态、a路电子单元(eeu)、b路电子单元通信状态和a路控显机、b路控显机(hmi)通信状态中的任意一种或几种。

其中,主系、备系心跳信号帧中的eeu(电子单元)通信状态和hmi(控显机)通信状态用于确认通信信道是否正常,以便决定是否切换主系、备系关系。

需要说明的是,本申请中,涉及到的“双系”指主系、备系之间的数据传输和/或比较,或i系接收ii系的数据,“双cpu”指同系之间的主cpu和从cpu之间的数据传输和/或比较,ε表示无条件转移,即处理完当前的工作后立即转入下一状态。本申请中“心跳信号”与“心跳信号帧”为同一含义。

以上对本发明的具体实施例进行了详细描述,但其只是作为范例,本发明并不限制于以上描述的具体实施例。对于本领域技术人员而言,任何对本发明进行的等同修改和替代也都在本发明的范畴之中。因此,在不脱离本发明的精神和范围下所作的均等变换和修改,都应涵盖在本发明的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1