发明内容
有鉴于此,本发明提供一种基于MODBUS TCP/IP的电力通信方法和系统,以实现提高系统通信实时性,并简化通信网络、减少网络中转环节,节省软硬件资源。
一种基于MODBUS TCP/IP的电力通信方法,用于电力通信系统,包括MODBUS TCP/IP主站与MODBUS TCP/IP从站,包括:
从站根据主站发出的指令将系统状态信息存入对应信息地址域中;
主站在各个开关量和模拟量巡检周期内读取目标从站握手寄存器中与所述指令对应的响应状态标识位,当响应状态标识位为1时,读取所述系统状态信息。
上述实施方式用于在电力通信过程中有重要信息返回,如远近状态信息、装置通信状态或其他装置闭锁信息等等的处理,主站在各个开关量和模拟量巡检周期内读取目标从站握手寄存器信息地址域中的信息及时向操作者反馈,减少了通信负荷,达到了通信实时性强而组网简洁的技术效果。
优选地,所述方法还包括:将电力通信设备的开关量和模拟量首部寄存器作为握手寄存器,并在所述握手寄存器中标记与主站指令对应的响应状态标识位。
上述实施方式中,以电力通信设备为对象,将开关量和模拟量首部的若干寄存器作为握手寄存器使用,用于通信双方交互一些通信过程状态,握手寄存器在从站分配空间,主站发令访问。
优选地,当所述主站发出的指令为修改电力通信设备运行状态定值时,具体为:
从站接收由主站利用功能码写入的修改定值,将所述修改后的定值放入定值区域,以及重置定值修改响应状态标识位,并通知主站读取修改后当前定值;
主站在每个开关量和模拟量巡检周期内连续读取所述握手寄存器中的所述定值修改响应状态标识位,当所述定值修改响应状态标识位为1时读取修改后定值。
在所述实施方式中,主站通过功能码写入修改定值,所述修改定值包括定值组号、区号、定值个数和待修改的定值数据。
优选地,当所述主站发出的指令为读取故障录波时,具体为:
从站从缓冲区依次读取录波数据中的录波块并存入录波地址域,以及,重置读取故障录波响应状态标识位;
主站在每个开关量和模拟量巡检周期内连续读取握手寄存器的故障录波响应状态标识位,当所述故障录波响应状态标识位为1时读取该录波块;
当所述录波数据中有多个录波块时,主站清零故障录波响应状态标识位并循环上述过程,直至完成整个故障录波的读取。
上述实施方式体现的是,主站从握手寄存器中发现新录波后,采用功能码从录波地址域逐次读取录波小块的过程。
优选地,所述方法还包括:为所述电力通信设备分配地址域及功能地址域,具体为:
以各电力通信设备为对象分配地址域,并用MODBUS应用协议MBAP中单元标识符对各电力通信设备标识,各对象具有MODBUS全寄存器空间;
按照主站通信功能分配功能地址域,建立所述功能地址域与所述地址域的映射。
本实施方式以电力通信设备为对象分配地址域,每个对象具有MODBUS全寄存器空间0000H-ffffH,再按照具体功能在空间内分配功能地址域,将电力通信设备的应用功能与地址域进行一对一绑定。
优选地,所述方法还包括:利用MODBUS应用协议MBAP中的协议标识符标识从站对各电力通信设备的采集协议。
所述MBAP中的协议标识符用于标识从站上各电力通信设备的采集协议,如CAN通信协议、MODBUS串口协议、IEC60870-5-103协议等。
优选地,所述方法还包括:
主站在每个开关量和模拟量巡检周期内向所述从站发送定时写开关量和定时写模拟量的指令,并指示从站将所述指令写入逆向传输数据寄存器地址域内。
该实施例方式中,所述主站可采取让主站反向对从站周期性下传定时写开关量和定时写模拟量的命令,下令写入从站放的逆向数据寄存器地址域中。
优选地,所述方法还包括:主站将TCP报文顺序号的计数器作为MBAP的事务处理标识符,匹配主站与从站之间的召唤/应答包。
本实施方式中,主站发出一个召唤包或接收一个应答包,则该计数器加1,溢出后归零复位,解决了以太网中的召唤/应答包到达的顺序与请求的顺序不一致的问题。
一种基于MODBUS TCP/IP的电力通信系统,包括MODBUS TCP/IP主站与MODBUS TCP/IP从站,所述从站设有多个,所述主站与多个从站通过以太网通信;
所述多个从站分别与电力通信设备通过总线连接;
所述各从站用于,根据主站发出的指令将系统状态信息存入对应信息地址域中;
所述主站用于,在各个开关量和模拟量巡检周期内读取目标从站握手寄存器中与所述指令对应的响应状态标识位,当响应状态标识位为1时,读取所述系统状态信息。
优选地,所述总线具体为:RS232/485、和/或CAN总线。
所述系统与方法对应,基于MODBUS TCP/IP的电力通信网络构架,主站周期轮巡开关量和模拟量,实时读回握手寄存器中的状态,实现主站与从站之间的实时信息交互,减少了通信负荷,达到了网络构架简洁,软硬件资源俭省的目的。
从上述的技术方案可以看出,本发明实施例是基于MODBUS TCP/IP电力通信方法,利用主站周期轮巡开关量和模拟量的时机,实时读取电力通信设备在握手寄存器中状态,达到从站向主站上报实时状态的目的,不仅通信效率高,且减少了通信负荷,且组网形式简洁,克服了现有技术中网络构架复杂,软硬件资源耗费高的技术缺陷。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结如下:
MODBUS TCP/IP:MODBUS Transmission Control Protocol/InternetProtocol;基于MODBUS的传输控制协议/因特网互联协议。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
MODBUS协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。MODBUS TCP/IP作为一种控制领域自动化标准,现有的基于MODBUS通信的可编程逻辑控制器(PLC)需要混合组网,软硬件耗费高,而该方法及系统中采用该MODBUS TCP/IP,可通过本发明方法实施例公开的方式进行实时通信,简化通信网络,减少了通信负荷及网络中转节点,节省软硬件资源。
图1示出了一种基于MODBUS TCP/IP的电力通信方法,用于电力通信系统,包括MODBUS TCP/IP主站与MODBUS TCP/IP从站,包括:
步骤11:从站根据主站发出的指令将系统状态信息存入对应信息地址域中;
需要说明的是:所述系统状态信息包括主站与从站之间的交互信息以及电力通信设备返回的远近状态信息、装置通信状态或其他装置闭锁信息等。
步骤12:主站在各个开关量和模拟量巡检周期内读取目标从站握手寄存器中与所述指令对应的响应状态标识位;
步骤13:判断所述响应状态标识位是否为1时,若是,则读取所述系统状态信息,否则,进行步骤14;
作为优选,本实施例中将电力通信设备的开关量和模拟量首部寄存器作为握手寄存器,并在所述握手寄存器中标记与主站指令对应的响应状态标识位。具体到本实施例,以电力通信设备为对象,将开关量和模拟量首部8个寄存器作为握手寄存器使用,但并不局限上述实施方式。
步骤14:若等待超时后,相应状态标识位为0时,则通信失败。
为了完善上述方案,作为优选,主站将TCP报文顺序号的计数器作为MBAP的事务处理标识符,匹配主站与从站之间的召唤/应答包。本实施例中,主站发出一个召唤包或接收一个应答包,则该计数器加1,溢出后归零复位,解决了以太网中的召唤/应答包到达的顺序与请求的顺序不一致的问题。
本实施例中,主站在各个开关量和模拟量巡检周期内读取目标从站握手寄存器信息地址域中的信息及时向操作者反馈,合理减少了通信负荷,达到了通信实时性强而组网简洁的技术效果。
图2示出了又一种基于MODBUS TCP/IP的电力通信方法,该实施例体现的是主站发出的指令为修改电力通信设备运行状态定值时的方法流程,具体包括:
步骤21:从站接收由主站利用功能码写入的修改定值,将所述修改后的定值放入定值区域,以及重置定值修改响应状态标识位,并通知主站读取修改后当前定值;
步骤22:主站在每个开关量和模拟量巡检周期内连续读取所述握手寄存器中的所述定值修改响应状态标识位;
步骤23:判断所述定值修改响应状态标识位是否为1,若是,则读取修改后定值,否则,进行步骤24
步骤24:若等待超时后,定值修改响应状态标识位为0时,则修改定值失败。
需要明确的是:在所述实施方式中,主站通过功能码写入修改定值,所述修改定值包括定值组号、区号、定值个数和待修改的定值数据。
图3示出了又一种基于MODBUS TCP/IP的电力通信方法,该实施例体现的是当所述主站发出的指令为读取故障录波时的流程,具体包括:
步骤31:从站从缓冲区依次读取录波数据中的录波块并存入录波地址域,以及,重置读取故障录波响应状态标识位;
步骤32:主站在每个开关量和模拟量巡检周期内连续读取握手寄存器的故障录波响应状态标识位;
步骤33:判断故障录波状态标识位是否为1,当所述故障录波响应状态标识位为1时读取该录波块,否则进行步骤33,以及,主站清零故障录波响应状态标识位;
步骤34:若等待超时后,故障录波状态标识位为0时,则读取录波失败。
步骤35:判断是否将整个录波完整读取,若仍有录波块未被读取,则循环步骤31-步骤34,直至完成整个故障录波的读取。
需要说明的是:通常一个录波完整数据需要进行分割为若干录波小块主站从握手寄存器中发现新录波后,采用功能码从录波地址域逐次读取录波小块的过程。
图4示出了又一种基于MODBUS TCP/IP的电力通信方法,包括:
步骤41:以各电力通信设备为对象分配地址域,并用MODBUS应用协议MBAP中单元标识符对各电力通信设备标识,各对象具有MODBUS全寄存器空间;
步骤42:按照主站通信功能分配功能地址域,建立所述功能地址域与所述地址域的映射;
本实施方式以电力通信设备为对象分配地址域,每个对象具有MODBUS全寄存器空间0000H-ffffH,再按照具体功能在空间内分配功能地址域,将电力通信设备的应用功能与地址域进行一对一绑定。
步骤43:利用MODBUS应用协议MBAP中的协议标识符标识从站对各电力通信设备的采集协议;
步骤44:从站根据主站发出的指令将系统状态信息存入对应信息地址域中;
步骤45:主站在每个开关量和模拟量巡检周期内向所述从站发送定时写开关量和定时写模拟量的指令,并指示从站将所述指令写入逆向传输数据寄存器地址域内。
该实施例中,所述主站可采取让主站反向对从站周期性下传定时写开关量和定时写模拟量的命令,下令写入从站放的逆向数据寄存器地址域中。更为具体地,上述应用为从站向主站发出逆向控制,通过从站向主站逆向操作地址域发送从站逆操作命令实现,主站收到从站请求命令后,执行转发自从站请求的反向控制。
图5示出了一种基于MODBUS TCP/IP的电力通信系统,包括MODBUSTCP/IP主站51与MODBUS TCP/IP从站,如图所示:
所述从站52设有多个,所述主站51与多个从站52通过以太网通信;
所述多个从站52分别与电力通信设备53通过总线连接;
所述各从站52用于,根据主站51发出的指令将电力通信设备53返回的状态信息存入返回信息地址域中;
所述主站51用于,在各个开关量和模拟量巡检周期内读取目标从站握手寄存器中与所述指令对应的响应状态标识位,当响应状态标识位为1时,读取所述系统状态信息。
具体地,所述从站有多个,在图中标识出一个,其他不再逐一标识。所述总线具体为:RS232/485、和/或CAN总线。
所述系统与方法对应,基于MODBUS TCP/IP的电力通信网络构架,主站周期轮巡开关量和模拟量,实时读回握手寄存器中的状态,实现主站与从站之间的实时信息交互,达到了网络构架简洁,软硬件资源俭省的目的。
综上所述:
本发明的实施例是基于MODBUS TCP/IP电力通信方法,利用主站周期轮巡开关量和模拟量的时机,实时读取电力通信设备在握手寄存器中状态,达到从站向主站上报实时状态的目的,不仅通信效率高,合理减少了通信负荷,组网形式简洁,克服了现有技术中网络构架复杂,软硬件资源耗费高的技术缺陷。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员可以理解,可以使用许多不同的工艺和技术中的任意一种来表示信息、消息和信号。例如,上述说明中提到过的消息、信息都可以表示为电压、电流、电磁波、磁场或磁性粒子、光场或以上任意组合。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。