CN103428225A - 基于有限状态机的iec-101通信规约链路建立方法 - Google Patents
基于有限状态机的iec-101通信规约链路建立方法 Download PDFInfo
- Publication number
- CN103428225A CN103428225A CN2013103884989A CN201310388498A CN103428225A CN 103428225 A CN103428225 A CN 103428225A CN 2013103884989 A CN2013103884989 A CN 2013103884989A CN 201310388498 A CN201310388498 A CN 201310388498A CN 103428225 A CN103428225 A CN 103428225A
- Authority
- CN
- China
- Prior art keywords
- link
- state
- state machine
- iec
- communication protocol
- 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
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
一种基于有限状态机的IEC-101通信规约链路建立方法,包括步骤S100,设置IEC-101通信规约的链路建立和通信机制的状态机,至少包括请求链路状态、复位远方链路状态、链路空闲状态及链路工作状态;步骤S200,启动状态机,发送请求链路报文,进入请求链路状态;步骤S300,解析请求链路报文,确认无误后状态机转移到复位远方链路状态,并发送复位远方链路报文;步骤S400,收到终端回复报文,解析终端回复报文,确认无误后状态机转移到链路空闲状态;步骤S500,根据工作指令,状态机由链路空闲状态转移到链路工作状态,并在完成该工作状态时返回到链路空闲状态。该方案不但程序代码简洁,而且可维护性有效增强。
Description
技术领域
本发明涉及电力通讯领域,尤其涉及一种基于有限状态机的IEC-101通信规约链路建立方法。
背景技术
随着计算机通信技术的发展和国民经济发展的需要,电网建设日趋现代化、智能化,IEC-101电力通信规约在电力通信中的应用越来越广泛。IEC-101电力通信规约定义了一套链路建立及通信方式,但在当前我国电力通信建设中,各个局方(电力局)在IEC-101规约的基础上根据不同需要制定了自己的电力通信协议,这些通信规约主体基本是一致的,只是在细节上略有不同,因此电力设备厂家在设计实现IEC-101规约时,需要考虑各个局方的实际要求,以提高产品的兼容性,以适应各个局方的通信规约。
通常,很多厂家在设计实现IEC-101电力通信规约时,通常采用面向过程的设计方法实现IEC-101的链路建立流程,即以过程为中心的编程思想实现IEC-101的链路建立流程;同时为了适应各个局方的不用规约,在程序中大量使用宏定义或者if-else语句。因此,在对IEC-101电力通信规约设计时,随着要求适应局方数目的增多,程序将会变的非常庞大而且可读性大大降低,对后期代码的维护带来了极大的不便。
发明内容
本发明旨在解决现有技术中IEC-101电力通信规约在设计时程序庞大、可读性低及不易维护的技术问题,提供一种基于有限状态机的IEC-101通信规约链路建立方法,不但程序代码简洁,而且可维护性有效增强。
本发明提供一种基于有限状态机的IEC-101通信规约链路建立方法,包括以下步骤:
步骤S100,设置IEC-101通信规约的链路建立和通信机制的状态机,至少包括请求链路状态、复位远方链路状态、链路空闲状态及链路工作状态;
步骤S200,启动状态机,发送请求链路报文,进入请求链路状态;
步骤S300,解析请求链路报文,确认无误后状态机转移到复位远方链路状态,并发送复位远方链路报文;
步骤S400,收到终端回复报文,解析终端回复报文,确认无误后状态机转移到链路空闲状态;
步骤S500,根据工作指令,状态机由链路空闲状态转移到链路工作状态,并在完成该工作状态时返回到链路空闲状态。
优选地,所述链路工作状态至少包括初始化状态、总召状态、对时状态及遥控状态。
优选地,在步骤S200中,当状态机处于请求链路状态且数据发送超时时,则控制向终端重新发送请求链路报文。
优选地,在步骤S300中,当状态机处于复位远方链路状态且数据发送超时时,则控制终端重新发送复位远方链路报文;当发送次数达到第一内设值时,状态机进入请求链路状态。
优选地,在步骤S500中,状态机由链路空闲状态转移到链路工作状态,当该状态数据发送超时时,重复发送上一次发送过的数据,当重发次数达到第二内设值时,则认为链路通信失败,状态机进入请求链路状态。
优选地,当状态机发生状态转移时,状态机执行上一状态退出动作、下一状态进入动作及下一状态工作动作。
优选地,状态机在链路工作状态下发生链路错误或重启时,状态机转移到请求链路状态,重新建立链路。
以上技术方案中,通过将IEC-101通信规约进行设计,按规约的通信机制将将不同局方的规约特点涉及的通信流程的每一步封装成一个个“状态”,形成包含多种“状态”的状态机,只要控制状态机通过选择不同的“状态”进行转移即可实现软件兼容性,而且程序简洁,后期可维护性有效提高,同时可将不同局方的规约特点封装为”状态”,便于开发维护人员的使用,在保证程序的兼容性的同时提高了工作效率。
附图说明
图1是本发明一种实施例的基于有限状态机的IEC-101通信规约不同状态之间的转移示意图;
图2是本发明一种实施例的基于有限状态机的IEC-101通信规约通讯机制示意图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明的实施例提供一种基于有限状态机的IEC-101通信规约链路建立方法,针对IEC-101通信规约中的链路建立流程和通信机制的特点,提出一种基于有限状态机的规约设计实现方法,该方法使用面向对象的设计思想巧妙地将规约通信流程与“状态”一一对应起来,同时可将不同局方的规约特点封装为“状态”。
可根据IEC-101规约的链路建立和通信机制可将其主要分成4个状态:请求链路状态、复位远方链路状态、链路空闲状态、链路工作状态;链路工作状态又可细分为初始化状态、总召状态、对时状态、遥控状态等,同时也可根据实际需要增加相应状态。即根据IEC-101规约的链路建立和通信机制,其状态不不限于请求链路状态、复位远方链路状态、链路空闲状态、链路工作状态;而链路工作状态不限于初始化状态、总召状态、对时状态及遥控状态。
请求链路状态,表示此时有建立通信链路的需求,终端之间,或者终端与主站之间需要通信之前,一方发出的需要建立通信链路的请求;复位远方链路状态,表示接收到一方发送的请求链路报文后,另一方需要作出应答,从而建立起通信链路,该过程即为复位远方链路状态;链路空闲状态,表示此时链路建立成功,但没有执行任何操作流程,为链路空闲的意思,算是空闲状态,在这个状态下可接收命令进入各种工作状态,完成各种工作状态后又回到该状态,大多数情况下,都处于该状态;链路工作状态,表示终端之间或者终端与主站之间根据各种指令进行相应的通信操作,比如进行总召状态,进行遥控状态等,该状态表示继进行的实际通讯过程。
在上述实施例中,每个状态在一定的条件下可向其他状态转移,发生状态转移时,状态机会执行状态退出动作、状态进入动作及状态工作动作,同时也可根据需要增加响应动作,如根据IEC-101通信规约超时重发机制,当超时发生时,执行该状态的超时动作,将会把数据重发一次,这样就可以通过各个状态转移时的不同动作的执行来实现IEC-101的通信机制。
结合图2所示,IEC-101通信规约链路建立的状态转移流程包括以下步骤:
步骤S100,设置IEC-101通信规约的链路建立和通信机制的状态机,至少包括请求链路状态、复位远方链路状态、链路空闲状态及链路工作状态;
步骤S200,启动状态机,首先为请求链路状态,发送请求链路报文,进入请求链路状态;当收到请求链路报文并确认后则进入复位远方链路状态;
步骤S300,解析请求链路报文,确认无误后状态机转移到复位远方链路状态,并发送复位远方链路报文;
步骤S400,收到终端回复报文,解析终端回复报文,确认无误后状态机转移到链路空闲状态;此时,链路成功建立
步骤S500,根据工作指令,状态机由链路空闲状态转移到链路工作状态,并在完成该工作状态时返回到链路空闲状态。
进一步地,在步骤S200中,当状态机位于请求链路状态且数据发送超时时,则重新发送请求链路报文。
更进一步地,在步骤S300中,当状态机位于复位远方链路状态且数据发送超时时,则重新发送复位远方链路报文;当发送次数达到第一内设值时,状态机进入请求链路状态。
更加优选地,在步骤S500中,状态机由链路空闲状态转移到链路工作状态时,当该状态数据发送超时时,重复发送上一次发送过的数据,当重发次数达到第二内设值时,则认为链路通信失败,状态机进入请求链路状态。如,当需要执行总召或其他命令时,从链路空闲状态则转移到总召状态,发送总召报文,当收到总召结束报文时,则回到链路空闲状态,等待下一指令;如过程中发生超时,则执行总召的超时动作;如需重启链路则转移到请求链路状态,重新建立链路。
采用上述的设计方法,当需要根据规约进行修改时,则只要找到相应的“状态”进行修改,或者在转移过程中增加相应的执行动作,如在实际运用中,A省规约的对时协议与B省的对时规约有差异,则可设计“对时状态A”和“对时状态B”,在执行对时命令时选择相应状态即可。
为了进一步理解本发明的实质内容,下面具体描述IEC-101通信规约的链路建立过程实例。
首先,启动状态机,进入请求链路状态,可设定该状态的进入动作为发送请求链路报文,如发送:10 49 01 4a 16;收到报文,经解析并确认无误后,则将状态机转移到复位远方链路状态,该状态进入动作为发送复位远方链路报文,相应的为10 0b 01 0c 16。
然后,收到终端回复的报文,经解析并确认无误后,则将状态机转移到链路空闲状态,此时也会执行该状态的进入动作,但是该状态的启动动作进入为空,故无需任何操作,到此,链路算建立完毕,因IEC-101通信规约设定链路建立后需进行总召,对时操作。
进入下一步,状态机会转移到总召状态,执行该状态进入动作发送报文:68 09 09 68 73 01 64 01 06 05 00 00 14 f8 16;随后按IEC-101通信规约进行数据召唤,根据终端上传的控制域信息进行一级或者二级数据召唤,直到收到终端回复的总召结束报文:68 09 09 68 28 05 64 01 07 05 00 00 14 b2 16,则此时总召流程结束,状态机转移到链路空闲状态。
然后再进行对时操作,状态机由链路空闲状态转移到对时状态,收到对时结束报文后又回到链路空闲状态,至此一个完整的IEC-101通信规约启动过程就结束了。
在上述实施例中,当状态机处于链路空闲状态时,如果收到遥控命令,则转移到遥控状态,进入动作为发送遥控报文,进入遥控流程,根据终端上传的控制域信息进行一级或者二级数据召唤,直到收到终端回复的遥控结束报文,然后状态机将状态返回到链路空闲状态。
每种状态进入动作执行后会重置定时器,收到终端回复后也会重置定时器,如状态机从链路空闲状态进入总召状态后终端异常,终端不会有回复,定时器计数到某一个数值后则执行该状态的超时动作,即发送上一次发送过的数据,此时记录重发次数并重置定时器,当重发次数达到第二内设值时,则认为链路通信失败,状态机进入请求链路状态,以重新建立链路。
使用本发明的技术方案,对IEC-101规约进行设计,可按规约的通信机制将通信流程的每一步封装成一个个“状态”,通过设计状态迁移时发生的动作来实现通信目的,同时可以根据不同的规约要求设计成不同的“状态”,通过选择不同的“状态”进行转移即可实现软件兼容性,采用面向对象的设计思想比原有基于面向过程的设计思想使得代码程序简洁,易于维护,极大地提高开发人员的工作效率,有效降低了产品成本。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于有限状态机的IEC-101通信规约链路建立方法,其特征在于:包括以下步骤:
步骤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通信规约链路建立方法,其特征在于:状态机在链路工作状态下发生链路错误或重启时,状态机转移到请求链路状态,重新建立链路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103884989A CN103428225A (zh) | 2013-08-30 | 2013-08-30 | 基于有限状态机的iec-101通信规约链路建立方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103884989A CN103428225A (zh) | 2013-08-30 | 2013-08-30 | 基于有限状态机的iec-101通信规约链路建立方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103428225A true CN103428225A (zh) | 2013-12-04 |
Family
ID=49652401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013103884989A Pending CN103428225A (zh) | 2013-08-30 | 2013-08-30 | 基于有限状态机的iec-101通信规约链路建立方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103428225A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108923537A (zh) * | 2018-07-14 | 2018-11-30 | 东方电子股份有限公司 | 基于链路转接的智能变电站维护方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070198239A1 (en) * | 2006-01-11 | 2007-08-23 | Hiroyuki Yagi | Event direction detector and method thereof |
CN102882872A (zh) * | 2012-09-28 | 2013-01-16 | 航天科工深圳(集团)有限公司 | 101规约平衡模式下的数据链路链接系统及其链接方法 |
-
2013
- 2013-08-30 CN CN2013103884989A patent/CN103428225A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070198239A1 (en) * | 2006-01-11 | 2007-08-23 | Hiroyuki Yagi | Event direction detector and method thereof |
CN102882872A (zh) * | 2012-09-28 | 2013-01-16 | 航天科工深圳(集团)有限公司 | 101规约平衡模式下的数据链路链接系统及其链接方法 |
Non-Patent Citations (2)
Title |
---|
傅钦翠等: "基于有限状态机的远动规约的设计和实现", 《电网技术》 * |
唐先河: "110KV变电站综合自动化系统中101规约通信的实现", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108923537A (zh) * | 2018-07-14 | 2018-11-30 | 东方电子股份有限公司 | 基于链路转接的智能变电站维护方法 |
CN108923537B (zh) * | 2018-07-14 | 2020-07-07 | 东方电子股份有限公司 | 基于链路转接的智能变电站维护方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103338226B (zh) | 工程机械软件远程调试和升级系统及方法 | |
CN109560838B (zh) | 一种电力计量现场检测数据蓝牙通讯方法 | |
CN102891785B (zh) | 错误码转换方法、系统、pppoe服务器及移动终端 | |
CN101916200B (zh) | 终端升级的方法、终端升级回退的方法和升级管理中心 | |
CN108964264A (zh) | 智能变电站就地化装置的无线调试实现方法 | |
CN103268243B (zh) | 一种链式变流器的就地执行单元远程在线升级系统 | |
EP2911340B1 (en) | Method and system for removing fault of internet of things gateway | |
CN104636986A (zh) | 一种基于服务的调度远程安全遥控校核的方法 | |
CN1973282A (zh) | 用于管理针对集群配置的改变的系统和方法 | |
CN102594910B (zh) | 采用数据服务总线实现单实例的变电站程序化处理方法 | |
CN105282207A (zh) | 一种基于可拼装通信协议栈的通信方法及系统 | |
CN103138991B (zh) | 一种基于oam协议的分类升级家庭网关软件的方法 | |
CN105812504A (zh) | 一种智能型通信地址编码方法 | |
CN105141657A (zh) | 适用于智能家居控制系统的新型网络通讯方法 | |
CN102752148B (zh) | 基于网元适配子系统的管理系统及方法 | |
CN103428225A (zh) | 基于有限状态机的iec-101通信规约链路建立方法 | |
CN102333022B (zh) | 电力通信网络中跨安全防护区信息交互的方法及防护系统 | |
CN104539493A (zh) | 基于usb接口实现的智能终端对智能家电的管控系统及其实现方法 | |
CN102497306B (zh) | 一种配网子站实现数据传输的方法和系统 | |
JP2007199761A (ja) | 無線テレメータシステム | |
CN102868945A (zh) | 一种epon中onu的升级方法 | |
CN105608774A (zh) | 一种智能门禁控制系统及其控制方法 | |
CN104022901A (zh) | 国网集中器onu模块的plc配置管理方法 | |
CN106506504A (zh) | 一种智能规约转换方法和装置 | |
CN103957079A (zh) | 一种hdlc网络中的协商方法和设备 |
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 |
Application publication date: 20131204 |