基于有限状态机的iec-101通信规约链路建立方法

文档序号:8006021阅读:497来源:国知局
基于有限状态机的iec-101通信规约链路建立方法
【专利摘要】一种基于有限状态机的IEC-101通信规约链路建立方法,包括步骤S100,设置IEC-101通信规约的链路建立和通信机制的状态机,至少包括请求链路状态、复位远方链路状态、链路空闲状态及链路工作状态;步骤S200,启动状态机,发送请求链路报文,进入请求链路状态;步骤S300,解析请求链路报文,确认无误后状态机转移到复位远方链路状态,并发送复位远方链路报文;步骤S400,收到终端回复报文,解析终端回复报文,确认无误后状态机转移到链路空闲状态;步骤S500,根据工作指令,状态机由链路空闲状态转移到链路工作状态,并在完成该工作状态时返回到链路空闲状态。该方案不但程序代码简洁,而且可维护性有效增强。
【专利说明】基于有限状态机的IEC-101通信规约链路建立方法
【技术领域】
[0001]本发明涉及电力通讯领域,尤其涉及一种基于有限状态机的IEC-101通信规约链
路建立方法。
【背景技术】
[0002]随着计算机通信技术的发展和国民经济发展的需要,电网建设日趋现代化、智能化,IEC-101电力通信规约在电力通信中的应用越来越广泛。IEC-101电力通信规约定义了一套链路建立及通信方式,但在当前我国电力通信建设中,各个局方(电力局)在IEC-101规约的基础上根据不同需要制定了自己的电力通信协议,这些通信规约主体基本是一致的,只是在细节上略有不同,因此电力设备厂家在设计实现IEC-101规约时,需要考虑各个局方的实际要求,以提高产品的兼容性,以适应各个局方的通信规约。
[0003]通常,很多厂家在设计实现IEC-101电力通信规约时,通常采用面向过程的设计方法实现IEC-101的链路建立流程,即以过程为中心的编程思想实现IEC-101的链路建立流程;同时为了适应各个局方的不用规约,在程序中大量使用宏定义或者if-else语句。因此,在对IEC-101电力通信规约设计时,随着要求适应局方数目的增多,程序将会变的非常庞大而且可读性大大降低,对后期代码的维护带来了极大的不便。

【发明内容】

[0004]本发明旨在解决现有技术中IEC-101电力通信规约在设计时程序庞大、可读性低及不易维护的技术问题,提供一种基于有限状态机的IEC-101通信规约链路建立方法,不但程序代码简洁,而且可维护性有效增强。
[0005]本发明提供一种基于有限状态机的IEC-101通信规约链路建立方法,包括以下步骤:
[0006]步骤S100,设置IEC-101通信规约的链路建立和通信机制的状态机,至少包括请求链路状态、复位远方链路状态、链路空闲状态及链路工作状态;
[0007]步骤S200,启动状态机,发送请求链路报文,进入请求链路状态;
[0008]步骤S300,解析请求链路报文,确认无误后状态机转移到复位远方链路状态,并发送复位远方链路报文;
[0009]步骤S400,收到终端回复报文,解析终端回复报文,确认无误后状态机转移到链路空闲状态;
[0010]步骤S500,根据工作指令,状态机由链路空闲状态转移到链路工作状态,并在完成该工作状态时返回到链路空闲状态。
[0011]优选地,所述链路工作状态至少包括初始化状态、总召状态、对时状态及遥控状态。
[0012]优选地,在步骤S200中,当状态机处于请求链路状态且数据发送超时时,则控制向终端重新发送请求链路报文。[0013]优选地,在步骤S300中,当状态机处于复位远方链路状态且数据发送超时时,则控制终端重新发送复位远方链路报文;当发送次数达到第一内设值时,状态机进入请求链路状态。
[0014]优选地,在步骤S500中,状态机由链路空闲状态转移到链路工作状态,当该状态数据发送超时时,重复发送上一次发送过的数据,当重发次数达到第二内设值时,则认为链路通信失败,状态机进入请求链路状态。
[0015]优选地,当状态机发生状态转移时,状态机执行上一状态退出动作、下一状态进入动作及下一状态工作动作。
[0016]优选地,状态机在链路工作状态下发生链路错误或重启时,状态机转移到请求链路状态,重新建立链路。
[0017]以上技术方案中,通过将IEC-101通信规约进行设计,按规约的通信机制将将不同局方的规约特点涉及的通信流程的每一步封装成一个个“状态”,形成包含多种“状态”的状态机,只要控制状态机通过选择不同的“状态”进行转移即可实现软件兼容性,而且程序简洁,后期可维护性有效提高,同时可将不同局方的规约特点封装为”状态”,便于开发维护人员的使用,在保证程序的兼容性的同时提高了工作效率。
【专利附图】

【附图说明】
[0018]图1是本发明一种实施例的基于有限状态机的IEC-101通信规约不同状态之间的转移示意图;
[0019]图2是本发明一种实施例的基于有限状态机的IEC-101通信规约通讯机制示意图。
【具体实施方式】
[0020]为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0021]如图1所示,本发明的实施例提供一种基于有限状态机的IEC-101通信规约链路建立方法,针对IEC-101通信规约中的链路建立流程和通信机制的特点,提出一种基于有限状态机的规约设计实现方法,该方法使用面向对象的设计思想巧妙地将规约通信流程与“状态” 一一对应起来,同时可将不同局方的规约特点封装为“状态”。
[0022]可根据IEC-101规约的链路建立和通信机制可将其主要分成4个状态:请求链路状态、复位远方链路状态、链路空闲状态、链路工作状态;链路工作状态又可细分为初始化状态、总召状态、对时状态、遥控状态等,同时也可根据实际需要增加相应状态。即根据IEC-101规约的链路建立和通信机制,其状态不不限于请求链路状态、复位远方链路状态、链路空闲状态、链路工作状态;而链路工作状态不限于初始化状态、总召状态、对时状态及遥控状态。
[0023]请求链路状态,表示此时有建立通信链路的需求,终端之间,或者终端与主站之间需要通信之前,一方发出的需要建立通信链路的请求;复位远方链路状态,表示接收到一方发送的请求链路报文后,另一方需要作出应答,从而建立起通信链路,该过程即为复位远方链路状态;链路空闲状态,表示此时链路建立成功,但没有执行任何操作流程,为链路空闲的意思,算是空闲状态,在这个状态下可接收命令进入各种工作状态,完成各种工作状态后又回到该状态,大多数情况下,都处于该状态;链路工作状态,表示终端之间或者终端与主站之间根据各种指令进行相应的通信操作,比如进行总召状态,进行遥控状态等,该状态表示继进行的实际通讯过程。
[0024]在上述实施例中,每个状态在一定的条件下可向其他状态转移,发生状态转移时,状态机会执行状态退出动作、状态进入动作及状态工作动作,同时也可根据需要增加响应动作,如根据IEC-101通信规约超时重发机制,当超时发生时,执行该状态的超时动作,将会把数据重发一次,这样就可以通过各个状态转移时的不同动作的执行来实现IEC-101的通信机制。
[0025]结合图2所示,IEC-101通信规约链路建立的状态转移流程包括以下步骤:
[0026]步骤S100,设置IEC-101通信规约的链路建立和通信机制的状态机,至少包括请求链路状态、复位远方链路状态、链路空闲状态及链路工作状态;
[0027]步骤S200,启动状态机,首先为请求链路状态,发送请求链路报文,进入请求链路状态;当收到请求链路报文并确认后则进入复位远方链路状态;
[0028]步骤S300,解析请求链路报文,确认无误后状态机转移到复位远方链路状态,并发送复位远方链路报文;
[0029]步骤S400,收到终端回复报文,解析终端回复报文,确认无误后状态机转移到链路空闲状态;此时,链路成功建立
[0030]步骤S500,根据工作指令,状态机由链路空闲状态转移到链路工作状态,并在完成该工作状态时返回到链路空闲状态。
[0031]进一步地,在步骤S200中,当状态机位于请求链路状态且数据发送超时时,则重新发送请求链路报文。
[0032]更进一步地,在步骤S300中,当状态机位于复位远方链路状态且数据发送超时时,则重新发送复位远方链路报文;当发送次数达到第一内设值时,状态机进入请求链路状态。
[0033]更加优选地,在步骤S500中,状态机由链路空闲状态转移到链路工作状态时,当该状态数据发送超时时,重复发送上一次发送过的数据,当重发次数达到第二内设值时,则认为链路通信失败,状态机进入请求链路状态。如,当需要执行总召或其他命令时,从链路空闲状态则转移到总召状态,发送总召报文,当收到总召结束报文时,则回到链路空闲状态,等待下一指令;如过程中发生超时,则执行总召的超时动作;如需重启链路则转移到请求链路状态,重新建立链路。
[0034]采用上述的设计方法,当需要根据规约进行修改时,则只要找到相应的“状态”进行修改,或者在转移过程中增加相应的执行动作,如在实际运用中,A省规约的对时协议与B省的对时规约有差异,则可设计“对时状态A”和“对时状态B”,在执行对时命令时选择相应状态即可。
[0035]为了进一步理解本发明的实质内容,下面具体描述IEC-101通信规约的链路建立过程实例。
[0036]首先,启动状态机,进入请求链路状态,可设定该状态的进入动作为发送请求链路报文,如发送:10 49 01 4a 16 ;收到报文,经解析并确认无误后,则将状态机转移到复位远方链路状态,该状态进入动作为发送复位远方链路报文,相应的为10 Ob 01 Oc 16。
[0037]然后,收到终端回复的报文,经解析并确认无误后,则将状态机转移到链路空闲状态,此时也会执行该状态的进入动作,但是该状态的启动动作进入为空,故无需任何操作,到此,链路算建立完毕,因IEC-101通信规约设定链路建立后需进行总召,对时操作。
[0038]进入下一步,状态机会转移到总召状态,执行该状态进入动作发送报文:68 09 0968 73 01 64 01 06 05 00 00 14 f8 16 ;随后按IEC-101通信规约进行数据召唤,根据终端上传的控制域信息进行一级或者二级数据召唤,直到收到终端回复的总召结束报文:6809 09 68 28 05 64 01 07 05 00 00 14 b2 16,则此时总召流程结束,状态机转移到链路空闲状态。
[0039]然后再进行对时操作,状态机由链路空闲状态转移到对时状态,收到对时结束报文后又回到链路空闲状态,至此一个完整的IEC-101通信规约启动过程就结束了。
[0040]在上述实施例中,当状态机处于链路空闲状态时,如果收到遥控命令,则转移到遥控状态,进入动作为发送遥控报文,进入遥控流程,根据终端上传的控制域信息进行一级或者二级数据召唤,直到收到终端回复的遥控结束报文,然后状态机将状态返回到链路空闲状态。
[0041]每种状态进入动作执行后会重置定时器,收到终端回复后也会重置定时器,如状态机从链路空闲状态进入总召状态后终端异常,终端不会有回复,定时器计数到某一个数值后则执行该状态的超时动作,即发送上一次发送过的数据,此时记录重发次数并重置定时器,当重发次数达到第二内设值时,则认为链路通信失败,状态机进入请求链路状态,以重新建立链路。
[0042]使用本发明的技术方案,对IEC-101规约进行设计,可按规约的通信机制将通信流程的每一步封装成一个个“状态”,通过设计状态迁移时发生的动作来实现通信目的,同时可以根据不同的规约要求设计成不同的“状态”,通过选择不同的“状态”进行转移即可实现软件兼容性,采用面向对象的设计思想比原有基于面向过程的设计思想使得代码程序简洁,易于维护,极大地提高开发人员的工作效率,有效降低了产品成本。
[0043]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于有限状态机的IEC-1Ol通信规约链路建立方法,其特征在于:包括以下步骤: 步骤S100,设置IEC-101通信规约的链路建立和通信机制的状态机,至少包括请求链路状态、复位远方链路状态、链路空闲状态及链路工作状态; 步骤S200,启动状态机,发送请求链路报文,进入请求链路状态; 步骤S300,解析请求链路报文,确认无误后状态机转移到复位远方链路状态,并发送复位远方链路报文; 步骤S400,收到终端回复报文,解析终端回复报文,确认无误后状态机转移到链路空闲状态; 步骤S500,根据工作指令,状态机由链路空闲状态转移到链路工作状态,并在完成该工作状态时返回到链路空闲状态。
2.根据权利要求1所述的基于有限状态机的IEC-101通信规约链路建立方法,其特征在于:所述链路工作状态至少包括初始化状态、总召状态、对时状态及遥控状态。
3.根据权利要求2所述的基于有限状态机的IEC-101通信规约链路建立方法,其特征在于:在步骤S200中,当状态机处于请求链路状态且数据发送超时时,则控制向终端重新发送请求链路报文。
4.根据权利要求2所述的基于有限状态机的IEC-101通信规约链路建立方法,其特征在于:在步骤S300中,当状态机处于复位远方链路状态且数据发送超时时,则控制终端重新发送复位远方链路报文;当发送次数达到第一内设值时,状态机进入请求链路状态。
5.根据权利要求2所述的基于有限状态机的IEC-101通信规约链路建立方法,其特征在于:在步骤S500中,状态机由链路空闲状态转移到链路工作状态,当该状态数据发送超时时,重复发送上一次发送过的数据,当重发次数达到第二内设值时,则认为链路通信失败,状态机进入请求链路状态。
6.根据权利要求1所述的基于有限状态机的IEC-101通信规约链路建立方法,其特征在于:当状态机发生状态转移时,状态机执行上一状态退出动作、下一状态进入动作及下一状态工作动作。
7.根据权利要求2所述的基于有限状态机的IEC-101通信规约链路建立方法,其特征在于:状态机在链路工作状态下发生链路错误或重启时,状态机转移到请求链路状态,重新建立链路。
【文档编号】H04L12/24GK103428225SQ201310388498
【公开日】2013年12月4日 申请日期:2013年8月30日 优先权日:2013年8月30日
【发明者】岑银 申请人:航天科工深圳(集团)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1