一种电力电网系统中的网络协议转换及其相互通讯方法

文档序号:10597172阅读:465来源:国知局
一种电力电网系统中的网络协议转换及其相互通讯方法
【专利摘要】本发明公开了一种电力电网系统中的网络协议转换及其相互通讯方法,其协议转换通过以太接口经以太网与运行虚拟化集中器的主机进行联接;接收并处理从虚拟集中器下发过来的以太抄表报文;将 DL645 规约的报文通过 485 总线发送出去;按照以太抄表协议发送回去。该电力线网络系统包括主节点和若干个子节点,所述的主节点与各个子节点之间通过电力线交互连接。所述的主节点通过 RS232 接口与上位机应用平台终端交互连接。所述的若干个子节点分别通过 RS485 接口与现场应用设备交互连接。本发明所述的电网络系统及其协议转换、通讯方法能够解决现有技术中的不足,提高电力线网络系统各节点收发数据的速度,保证 PLC 组网中数据报文传输的时效性,使PLC 组网应用更加灵活、可靠。
【专利说明】
一种电力电网系统中的网络协议转换及其相互通讯方法
技术领域
[0001]本发明属于电力电网技术领域,具体涉及一种电力电网系统中的网络协议转换及其相互通讯方法。
【背景技术】
[0002]随着科技的进步,电力电网的建设正在日益深入全面的展开,而电力通信技术是电力电网应用的关键。电力线载波通信方式因其以电力线网络为传输介质,具有通道可靠性高、抗破坏能力强、投资少等优点,在电力电网建设中起着不可替代的作用。随着国家建设坚强电力电网和电力物联网概念的提出,现在的基于FSK和PSK以及S-FSK调制模式的低速载波已无法满足利用载波进行大规模组网和高速传输数据的要求。因此,基于OFDM技术的高速电力线载波技术得到快速发展,OFDM电力线载波技术具有抗衰减能力强、频率利用率高、抗码间干扰能力强等优势,目前基于该技术制定的相关技术规范已实现高于I OOkbps的数据传输速率。
[0003]但是,随着电力线载波速度的大幅提升,之前一些配合低速载波使用的技术缺点也逐渐暴露出来,其主要问题有:
1、低速载波传输数据时,载波节点模块收发数据一般采用串口中断按字节方式,时效不高、延时很大。由于数据在电力线上传输的速度也很低,数据收发的延时相对于数据在电力线上传输的时间来说不是很明显,同时之前的应用一般对数据传输速度要求都不是很高,因此这种技术缺点对载波在应用中的使用影响不大。然而随着电力线载波技术的发展,载波传输数据的速度大幅提升,其应用场合也不断扩大,相关应用对数据传输速度的要求也越来越严。如果载波节点还是按照之前的方式收发数据,一帧数据在节点接收阶段的时间延时将会超过其在电力线上实际传输时间,严重阻碍了高速电力线载波技术的推广使用。
[0004]2、载波节点模块在接收应用层协议帧时,一般都是在收完一完整帧后再进行转发操作。这在应用层协议帧报文长度较短时对报文传输速度影响不大,但是当应用层协议报文长度较长时,节点等全部接收后,由于电力线上对传输的载波帧长度限制,还需分段传输,这种接收后再分段发送的特点使时效性本来就不高的载波通信速度更加缓慢。
[0005]3、一般利用PLC网络组网进行数据传输的应用中,应用协议比较固定单一,不够灵活。当组网中传输的应用协议发生改变时,网络中各个节点需重新烧写代码来支持对新应用协议的解析。
[0006]且当前运行的电网当中计量自动化电表数据抄集业务系统所使用的传统解决方案当中,主流是采用纯485通讯手段实现电表数据的抄集。为适应长距离数据传输要求以及数据的准确性,一般在现场实施安装的时候只会采用1200这样的低速率来实现电表集抄,加上485总线只能支持一问一答的通讯方式,导致计量自动化电表集抄业务的效率低下。
[0007]为了支持新开发的集中器虚拟化解决方案,通讯手段主要采用以太方式实现通讯和组网,为了完成以太电表集抄协议到标准485协议(DL645)的转换,进而需要开发一种新型的电表前置单元,作为主要通讯组网节点而存在,连接到一个或数个电表上,使用高速率进行通讯。

【发明内容】

[0008]发明目的:本发明的目的是为了解决现有技术中的不足,提供一种基于DMA的电网络系统及其通讯方法。网络协议转换方法,该电力线网络系统及其通讯方法能够解决现有技术中的不足,提高电力线网络系统各节点收发数据的速度,保证PLC组网中数据报文传输的时效性,使PLC组网应用更加灵活、可靠。
[0009]技术方案:本发明所述的一种电力电网系统中的网络协议转换方法,包括如下步骤:
(1)通过以太接口经以太网与运行虚拟化集中器的主机进行联接,设备上电后主动与主机之间建立并维持TCP长连接通道,等待接收从主机上发送过来以太抄表协议的报文;
(2)接收并处理从虚拟集中器下发过来的以太抄表报文,解释其报文对应的含义,展开参数并通过对照协议转换成DL645规约的报文;
(3)将DL645规约的报文通过485总线发送出去,实现与电表之间一问一答方式的通讯;发送报文后监听485总线上电表的回应,同时计算响应超时;
(4)接收到从电表发回的DL645报文后,将其当中参数展开并提取出来,按照以太抄表协议进行组装,通过与虚拟化集中器的主机相联接的TCP长连接通道发送回去;
(5)通过以太网接口生成系统配置文件:通过嵌入式Web的形式将连接到通信主站设备的各通信从站设备的设备编号、设备地址、协议类型等信息写入到系统中的一个XML文件中,从而生成一个系统配置文件;
(6)根据步骤(5)的配置文件构建一张通信从站设备信息表,所述通信从站设备信息表是一个结构体类型的链表或数组,该链表或数组的每一个节点记录了一个通信从站设备的相关信息,这些信息包括通信从站设备所连接的RS485端口、通信从站设备类型、通信从站设备所使用协议和通信从站设备的设备号;
(7)根据步骤(5)的配置文件分别初始化485接口和TCP网络;
(8)根据步骤(6)的通信从设备信息表,通过485总线定时轮询485总线上的各从站设备,并对接收的协议数据进行解析,最后将解析得到的数据以一定的XM格式以文本形式,打包成TCP/IP数据包进行远传,从而实现485总线上的多协议与TCP网络协议之间的转换。
[0010]进一步的:
1)在整个协议转化及通讯过程当中,发送回主机的响应报文的序号,应该与主机下发抄表命令的序号相同;
2)同时发送到协议转换设备上的多条抄表命令,按照到达的先后次序排队,然后依次处理;
3)使用115200的高速率进行通讯。
[0011]进一步的,该电力电网系统包括:
DP83848网络模块,用于连接以太网络,进行分组报文交换过程处理,接收和发送以太网络数据;
指令队列模块,用于在接收虚拟集中器下发的多条抄表指令后,采用先进先出的方式排队,等候设备空闲的时候依次逐个处理;
DL645译码转换模块,用于将虚拟集中器发送过来的以太抄表协议命令,翻译成485电表可以接收及处理的DL645协议报文;
数据译码打包模块,用于解析485电表返回的,通过DL645协议封装的报文内容,从中提取出数据并按照以太抄表协议格式打包好;
485应答接受模块,用于控制485总线接收来自电表的回应数据,严格按照一问一答的交互方式控制接收流程执行;
485模块SP3485,用于控制连接485总线,支持设备将数据发送到485总线上,并监听485总线上的其它设备发送请求,从485总线上接收数据;
CPU芯片,用于控制整个设备的总体运行,执行复杂数学运算过程;
所述的各模块分别通过系统总线连接,所述的DP83848网络模块外接以太网、485模块SP3485外接485电表;所述的转换设备信号传送的逻辑线路是依次经过所述的DP83848网络模块、指令队列模块、DL645译码转换模块、数据译码打包模块、485应答接受模块和485模块 SP3485。
[0012]进一步的,所述的设备一端通过以太网络接口接入以太网当中与集中器虚拟化主机进行连接,上行端口用以太方式实现到集中器虚拟化主机之间的连接,通讯协议采用专门定制的高级计量协议,实现多线程并发抄表;而设备的另一端则有485接口,通过485总线联接一个或数个电表。
[0013]本发明还公开了一种电力电网系统中的相互通讯方法,包括如下步骤:
(1)电网络系统初始化,对主节点、子节点以及连接在子节点下的各个现场应用设备的参数进行配置,并对DMA收发缓冲区的长度d、中断触发条件和数据报文分段限定长度L进行设置;
在系统初始化阶段,需要配置的参数包括协议类型、主节点地址、子节点地址和连接在子节点下各个现场应用设备的地址;
(2)采用DMA数据传输技术收发数据,并根据DMA收发缓冲区的中断触发条件,将DMA缓存区中的数据读取到固定的接收数据缓存区待处理;
所述的DMA收发缓冲区的中断触发条件包括两个,第一中断触发条件是:当接收数据长度为DMA收发缓冲区长度d的一半时,触发中断;第二中断触发条件是:当接收数据长度等于DMA收发缓冲区长度d时,触发中断;
当满足第一中断触发条件时,如是一帧报文接收的开始,微控制器MCU先根据系统初始化配置文件中定义的协议类型,获取报文中的设备地址;再根据设备地址以及配置文件中的映射规则,获取到对应目的子节点的地址;
(3)根据数据报文分段限定长度L和传输的数据报文长度LI间的大小关系,对DMA收发缓冲区收发的数据进行判断处理;
(4)根据判断处理结果,对数据进行转发,具体过程为:若传输的数据报文长度LI大于数据报文分段限定长度L,则当DMA收发缓冲区的数据长度累积达到分段限定长度L时,DMA收发缓冲区继续接收剩下的数据;与此同时,微控制器MCU将DMA收发缓冲区中接收到长度为L的数据打包成载波数据包,发送到对应的子节点;
若传输的数据报文长度LI小于等于数据报文分段限定长度L,则当一帧数据收发接收后,将DMA收发缓冲区中的数据打包成载波数据包,发送到对应的子节点。
[0014]进一步的,所述的DMA收发缓冲区长度d为20字节?30字节。
[0015]进一步的,该电力电网系统包括主节点和若干个子节点,所述的主节点与各个子节点之间通过电力线交互连接;所述的主节点通过RS232接口与上位机应用平台终端交互连接;所述的若干个子节点分别通过RS485接口与现场应用设备交互连接;
所述的主节点包括第一微控制器、第一载波电路模块、第一耦合电路模块、第一电源管理模块、和第一收发状态显示模块;所述的第一载波电路模块通过第一微控制器的第一UART接口与第一微控制器交互连接;所述的第一耦合电路模块与第一载波电路模块交互连接;所述的第一电源管理模块的输出端分别与第一微控制器的电源信号输入端、第一载波电路模块的电源信号输入端相连;所述的第一收发状态指示模块与第一微控制器的输出端相连;所述的第一微控制器的第二 UART接口通过RS232接口与上位机应用平台终端交互连接;
所述的子节点包括第二微控制器、第二载波电路模块、第二耦合电路模块、第二电源管理模块、和第二收发状态显示模块;所述的第二载波电路模块通过第二微控制器的第一UART接口与第二微控制器交互连接;所述的第二耦合电路模块与第二载波电路模块交互连接;所述的第二电源管理模块的输出端分别与第二微控制器的电源信号输入端、第二载波电路模块的电源信号输入端相连;所述的第二收发状态指示模块与第二微控制器的输出端相连;所述的第二微控制器的第三UART接口通过RS485接口与现场应用设备交互连接。
[0016]进一步的,所述的主节点还包括第一看门狗模块、第一无源晶振模块、第一时钟模块、第一液晶显示模块和第一按键输入模块;所述的第一看门狗模块、第一无源晶振模块以及第一按键输入模块的输出端分别与第一微控制器的输入端相连;所述的第一时钟模块与第一微控制器交互连接;所述的第一液晶显示模块的输入端与第一微控制器的输出端相连;
所述的子节点还包括第二看门狗模块、第二无源晶振模块、第二时钟模块、第二液晶显示模块和第二按键输入模块;所述的第二看门狗模块、第二无源晶振模块以及第二按键输入模块的输出端分别与第二微控制器的输入端相连;所述的第二时钟模块与第二微控制器交互连接;所述的第二液晶显示模块的输入端与第二微控制器的输出端相连。
[0017]进一步的,所述的第一微控制器和第二微控制器均采用STM32F107VC处理器;所述的第一载波电路模块和第二载波电路模块均采用MAX2992载波芯片。
[0018]有益效果:本发明的有益效果为:
1、本发明在电力线网络系统的各个节点中均采用基于DMA方式收发数据,通过有效设置DMA缓存长度以及中断触发条件,在DMA缓存接收数据为0.5个DMA缓存长度和I个DMA缓存长度时分别触发中断让微控制器MCU读取数据。从而有效提高了电力线网络系统各节点收发数据的速度,保证了 PLC组网中数据报文传输的时效性。
[0019]2、在电力线网络系统主节点的接收转发流程中,利用DMA接收数据无需MCU干涉的特性,对长报文进行分段接收发送。这样无需等待长报文全部接收完成后再组帧进行发送,不仅可实现电力线网络系统节点对长报文的同步收发,减少报文在节点中的处理时间,还能提高报文在PLC网络中的传输速度,有效扩展PLC组网的应用范围。
[0020]3、本发明采用配置参数方式,支持多协议在电力线网络系统中的传输。网络系统中的主节点利用配置参数建立协议设备地址到所在子节点的映射关系。主节点接收到上位机应用平台发送的协议后,依据配置参数和映射关系,获取协议报文接收设备对应的子节点地址,无需解析报文,直接发送给该子节点。从而增加了 PLC组网应用的灵活性、可靠性,同时也有效降低了应用系统的投资,具有明显的经济效益。
【附图说明】
[0021]图1是本发明的协议转换设备组成和连接关系示意图;
图2是本发明中电力线网络系统结构示意图;
图3是本发明中主节点的硬件结构示意图;
图4是本发明中子节点的硬件结构示意图;
图5是本发明中基于DMA的收发数据算法流程图;
图6是本发明中基于DMA的处理数据算法流程图;
图7是本发明中基于DMA的转发数据算法流程图;
图8是本发明网络系统多协议地址映射表。
【具体实施方式】
[0022]如图1所示,本发明的用于网络协议转换的设备11,包括DP83848网络模块I,该模块用于连接以太网络,进行分组报文交换过程处理,接收和发送以太网络数据;指令队列模块2,在接收虚拟集中器下发的多条抄表指令后,采用先进先出的方式排队,等候设备空闲的时候依次逐个处理;DL645译码转换模块3,用于将虚拟集中器发送过来的以太抄表协议命令,翻译成485电表可以接收及处理的DL645协议报文;数据译码打包模块4,用于解析485电表返回的,通过DL645协议封装的报文内容,从中提取出数据并按照以太抄表协议格式打包好;485应答接受模块5,用于控制485总线接收来自电表的回应数据,严格按照一问一答的交互方式控制接收流程执行;SP3485模块6,用于控制连接485总线,支持设备将数据发送到485总线上,并监听485总线上的其它设备发送请求,从485总线上接收数据;CPU芯片7,用于控制整个设备的总体运行,执行复杂数学运算过程;各模块分别通过系统总线8连接。
[0023]本设备11的DP83848网络模块I通过以太端口9外接以太网,最后接入以太网当中与集中器虚拟化主机进行连接,上行端口用以太方式实现到集中器虚拟化主机之间的连接,通讯协议采用专门定制的高级计量协议,能实现多线程并发抄表;设备的485模块通过485总线端口 10外接一个或数个485电表。
[0024]设备的信号传送逻辑线路是依次经过DP83848网络模块、指令队列模块、DL645译码转换模块、数据译码打包模块、485应答接受模块和485模块SP3485。
[0025]设备主要功能是完成从以太抄表协议到485抄表协议的转换,作为关键组网连接节点,实现与一个或数个电表之间的高速率连接(近距离)与通讯。
[0026]采用上述设备实现以太电表集抄协议到标准485协议转换的方法,包括以下步骤:
(1)通过以太接口经以太网与运行虚拟化集中器的主机进行联接,设备上电后主动与主机之间建立并维持TCP长连接通道,等待接收从主机上发送过来以太抄表协议的报文,
(2)接收并处理从虚拟集中器下发过来的以太抄表报文,解释其报文对应的含义,展开参数并通过对照协议转换成DL645规约的报文;
(3)将DL645规约的报文通过485总线发送出去,实现与电表之间一问一答方式的通讯;发送报文后监听485总线上电表的回应,同时计算响应超时;
(4)接收到从电表发回的DL645报文后,将其当中参数展开并提取出来,按照以太抄表协议进行组装,通过与虚拟化集中器的主机相联接的TCP长连接通道发送回去;
(5)通过以太网接口生成系统配置文件:通过嵌入式Web的形式将连接到通信主站设备的各通信从站设备的设备编号、设备地址、协议类型等信息写入到系统中的一个XML文件中,从而生成一个系统配置文件;
(6)根据步骤(5)的配置文件构建一张通信从站设备信息表,所述通信从站设备信息表是一个结构体类型的链表或数组,该链表或数组的每一个节点记录了一个通信从站设备的相关信息,这些信息包括通信从站设备所连接的RS485端口、通信从站设备类型、通信从站设备所使用协议和通信从站设备的设备号;
(7)根据步骤(5)的配置文件分别初始化485接口和TCP网络;
(8)根据步骤(6)的通信从设备信息表,通过485总线定时轮询485总线上的各从站设备,并对接收的协议数据进行解析,最后将解析得到的数据以一定的XM格式以文本形式,打包成TCP/IP数据包进行远传,从而实现485总线上的多协议与TCP网络协议之间的转换。
[0027]整个协议交互和转换过程中要做到:
1、在整个协议转化及通讯过程当中应注意其报文响应的序号,发送回主机的响应报文的序号,应该与主机下发抄表命令的序号相同;
2、同时发送到协议转换设备上的多条抄表命令,将会被协议转换设备按照到达的先后次序排队,然后依次处理;
3、由于485总线与电表之间被设计成近距离通讯,可以使用比1200更高的通讯速率实现与电表之间的数据交换,使用115200的高速率进行通讯(可根据实际电表所支持的最尚速率进彳丁调整)。
[0028]如图2所示的一种基于DMA的电网系统,包括主节点和若干个子节点,所述的主节点与各个子节点之间通过电力线交互连接。所述的主节点通过RS232接口与上位机应用平台终端交互连接。所述的若干个子节点分别通过RS485接口与现场应用设备交互连接。该系统是由一个主节点和若干个子节点通过电力线组成的PLC网络,各个子节点通过RS485总线连接现场应用设备。只要在RS485总线驱动能力范围内,每个子节点可以连接不同数量的现场应用设备,每个现场应用设备具有一个唯一的设备地址。在该电力线网络系统中,主节点和各个子节点都具有各自唯一的短地址,用于标识各自的身份。各个子节点的短地址是主节点在网络初始化时根据配置参数分配的。在该电力线网络系统的组建过程中,主节点根据配置参数来建立各个子节点下的设备地址与对应子节点地址间的映射关系;与此同时,各个子节点也将分配到的网络短地址设置到各自的载波电路模块中。当该电力线网络系统组建成功后,上位机应用平台可以通过配置参数设置的协议类型发送对应的协议报文,实现和网络中各个子节点下各设备的数据通信。
[0029]如图3所示,主节点包括第一微控制器、第一载波电路模块、第一耦合电路模块、第一电源管理模块、和第一收发状态显示模块。所述的第一载波电路模块通过第一微控制器的第一 UART接口与第一微控制器交互连接。所述的第一耦合电路模块与第一载波电路模块交互连接。所述的第一电源管理模块的输出端分别与第一微控制器的电源信号输入端、第一载波电路模块的电源信号输入端相连。所述的第一收发状态指示模块与第一微控制器的输出端相连。所述的第一微控制器的第二UART接口通过RS232接口与上位机应用平台终端交互连接。第一收发状态指示模块由一系列的发光二极管组成,发光二极管闪烁表示对应的端口有数据正在传输。
[0030]如图4所述,子节点包括第二微控制器、第二载波电路模块、第二耦合电路模块、第二电源管理模块、和第二收发状态显示模块。所述的第二载波电路模块通过第二微控制器的第一 UART接口与第二微控制器交互连接。所述的第二耦合电路模块与第二载波电路模块交互连接。所述的第二电源管理模块的输出端分别与第二微控制器的电源信号输入端、第二载波电路模块的电源信号输入端相连。所述的第二收发状态指示模块与第二微控制器的输出端相连。所述的第二微控制器的第三UART接口通过RS485接口与现场应用设备交互连接。第二收发状态指示模块由一系列的发光二极管组成,发光二极管闪烁表示对应的端口有数据正在传输。
[0031]进一步的,所述的主节点还包括第一看门狗模块、第一无源晶振模块、第一时钟模块、第一液晶显示模块和第一按键输入模块。所述的第一看门狗模块、第一无源晶振模块以及第一按键输入模块的输出端分别与第一微控制器的输入端相连。所述的第一时钟模块与第一微控制器交互连接。所述的第一液晶显示模块的输入端与第一微控制器的输出端相连。第一液晶显示模块和第一按键输入模块实现主节点运行时主要参数的显示。
[0032]所述的子节点还包括第二看门狗模块、第二无源晶振模块、第二时钟模块、第二液晶显示模块和第二按键输入模块。所述的第二看门狗模块、第二无源晶振模块以及第二按键输入模块的输出端分别与第二微控制器的输入端相连。所述的第二时钟模块与第二微控制器交互连接。所述的第二液晶显示模块的输入端与第二微控制器的输出端相连。第二液晶显示模块和第二按键输入模块实现子节点运行时主要参数的显示。
[0033]更进一步的,所述的第一微控制器和第二微控制器均采用STM32F107VC处理器。所述的第一载波电路模块和第二载波电路模块均采用MAX2992载波芯片。如图3和图4所示,STM32F107VC的UARTl接口与载波电路模块交互连接,主节点的UART2接口通过RS232接口与上位机应用平台终端交互连接,子节点的UART3接口通过RS485接口与现场应用设备交互连接。STM32F107VC的0SC_IN管脚接无源晶振模块,5个GP1管脚分别接看门狗模块、时钟模块、液晶显示模块、按键输入模块和收发状态指示模块。电源管理模块给STM32F107VC的输出信号为3.3V,给MAX2992载波芯片的输出信号为3.3V/12VJAX2992载波芯片通过STM32F107VC处理器的UARTl接口与微控制器MCU通信。微控制器将应用协议报文按其要求封装成对应的载波报文,通过UARTl接口发送到MAX2992,再由MAX2992将接收到的报文通过其前端电路耦合到电力线上,实现载波数据的收发,或者接收到电力线上的数据后通过UARTl 口将数据发送给微控制器MCU。上位机平台通过RS232接口将应用协议报文发送到主节点,主节点通过STM32F107VC处理器的UART2接口以DMA方式接收协议报文。对于子节点来说,子节点将通过STM32F107VC处理器的UART3接口接收到的协议报文经RS485接口发送到各个现场应用设备。
[0034]本发明还涉及一种根据上述电网系统的通讯方法,该方法包括以下步骤:
(I)电力线网络系统初始化,对主节点、子节点以及连接在子节点下的各个现场应用设备的参数进行配置,并对DMA收发缓冲区的长度d、中断触发条件和数据报文分段限定长度L进行设置。在系统初始化阶段,需要配置的参数包括协议类型、主节点地址、子节点地址和连接在子节点下各个现场应用设备的地址。
[0035](2)采用DMA数据传输技术收发数据,并根据DMA收发缓冲区的中断触发条件,将DMA缓存区中的数据读取到固定的接收数据缓存区待处理。
[0036]所述的DMA收发缓冲区的中断触发条件包括两个,第一中断触发条件是:当接收数据长度为DMA收发缓冲区长度d的一半时,触发中断。第二中断触发条件是:当接收数据长度等于DMA收发缓冲区长度d时,触发中断。当满足第一中断触发条件时,如是一帧报文接收的开始,微控制器MCU先根据系统初始化配置文件中定义的协议类型,获取报文中的设备地址;再根据设备地址以及配置文件中的映射规则,获取到对应目的子节点的地址。
[0037](3)根据数据报文分段限定长度L和传输的数据报文长度LI间的大小关系,对DMA收发缓冲区收发的数据进行判断处理。
[0038](4)根据判断处理结果,对数据进行转发。具体过程为:
若传输的数据报文长度LI大于数据报文分段限定长度L,则当DMA收发缓冲区的数据长度累积达到分段限定长度L时,DMA收发缓冲区继续接收剩下的数据。与此同时,微控制器MCU将DMA收发缓冲区中接收到长度为L的数据打包成载波数据包,发送到对应的子节点。
[0039]若传输的数据报文长度LI小于等于数据报文分段限定长度L,则当一帧数据收发接收后,将DMA收发缓冲区中的数据打包成载波数据包,发送到对应的子节点。
[0040]进一步的,所述的DMA收发缓冲区长度d为20字节?30字节。
[0041]下面,结合图5-图8对数据的接收、处理、转发过程以及多协议映射表进行详细的描述:
图5为主节点采用DMA收发数据的算法过程。在开启一次DMA缓冲区接收数据过程中会有两次触发中断,进入中断函数后判断中断触发类型。若是接收一半中断或者接收满中断,则将DMA缓存区中的数据读取到固定的接收数据缓存区待处理。两种中断读取数据时,数据在DMA缓存区中的位置不同。当接收完数据后,置数帧结束计数器,启动一帧接收结束的判断依据,最后清除相关中断标志位并退出中断。当接收数据DMA模块出现错误时,中断函数根据触发中断的标志位是错误标志位,初始化相关参数后重新使能DMA中断,保证DMA接收数据的可靠性。
[0042]图6为数据接收后,判断是否进行转发的判断处理过程。本发明采用微控制器MCU的systick定时中断作为接收数据帧结束的基础。在图3所述的流程图中,每个DMA接收中断后,均将帧结束计数器初始化为一个固定值;且在每次进入systick定时中断函数中时,均对该计数器进行减I操作,当计数器值为O时,则认定一帧接收结束。在图3所示的接收数据的过程中,因为每次接收数据完成后均对计数器进行重新置数,因此在DMA接收数据过程中,计数器值不为O。同时,为了将接收的长帧报文分段同步接收发送,在接收过程中,需要判断接收数据总长度对分段发送限定长度的求余结果。若求余结果为O,则表示接收的数据长度已经符合分段发送的条件,并将数据转发计数器加I。若求余结果不为O,表示接收的数据长度还未达到限定的发送长度;则判断一帧是否收发结束。如果一帧收发已经结束,但接收的数据长度还没有达到限定的发送长度,则将数据转发计数器加I,并转发实际收到的数据。如果一帧收发未结束,则退出中断进行下次判断。
[0043]图7为将接收到的数据转发到载波电路模块的算法流程。根据图4所示的算法流程的处理结果,对接收的数据进行转发操作。当转发计数器值不为O时,说明数据接收区中存在需要转发的数据报文。首先,根据配置参数中的协议类型,获取数据报文帧中设备地址的位置,读出设备地址。其次,根据映射表查出该设备地址所在的目的子节点地址,将该地址和数据缓存区的数据报文进行载波帧组包,发送到载波电路模块对应串口的DMA发送缓冲区。再次,使能DMA发送中断,通过载波电路模块将数据报文发送出去。最后,发送完一帧后,根据转发计数器的值判断数据是否已经转发完,没有则继按照前面流程进行转发。
[0044]图8给出了本发明中多协议的映射表。在系统组网初始阶段需通过配置参数配置该表,协议类型包含常用的Modbus,DLT645,101等规约。由于不同规约对应的设备地址长度不同,且该地址在不同协议中的位置也不同。因此,主节点在进行组网转发数据前必须通过协议类型得知其转发的是哪种协议报文,并依据不同的协议类型先从数据接收缓冲区中对应协议报文的帧格式读出设备地址,再根据映射表查找出对应的目的子节点地址。下面介绍几种常见协议的协议类型及设备地址:
Modbus协议:协议类型为01,协议设备地址为一个字节,子节点地址为0x0001,该子节点下面对应的设备地址为0x02,0x03。子节点地址为0x0002,该子节点下面对应的设备地址为0x04,0x05,0x06等,其他子节点配置类似。
[0045]DLT645协议:协议类型为02,协议设备地址为6个字节,子节点地址为0x001,该子节点下面对应的设备地址为0x000000000002 ,0x000000000003。子节点地址为0x000 2,该子节点下面对应的设备地址为0x000000000004 ,0x000000000005,0x000000000006等,其他子节点配置类似。
[0046]101协议:协议类型为03,协议设备地址为I个字节,子节点地址为0x001,该子节点下面对应的设备地址为0x02,0x03。子节点地址为0x0002,该子节点下面对应的设备地址为0x04,0x05,0x06等,其他子节点配置类似。
[0047]当主节点判断协议类型是02,主节点知道应用平台发来的数据帧都为645报文帧,在转发数据的过程中,依据该协议报文帧格式,读出设备地址。比如0x000000000005,查表得知该地址对应的网络子节点地址为0x0002。无需解析具体报文,直接根据获得的子节点地址将该报文组装成都应的载波报文,通过载波模块发送到PLC网络中对应的子节点。子节点通过其载波模块收到主节点发给自己的协议报文,将载波报文帧中的数据直接发送到连接设备RS485总线的串口,实现上位机应用平台和PLC组网中各个子节点下的不同设备的数据通信。
[0048]在本发明所述的基于DMA的电力线网络系统中,主节点和子节点均采用DMA接收和发送对应的报文帧。本发明所述的基于DMA的电力线网络系统的通讯方法具有以下特点:
(I)将DMA数据缓冲区的长度d设置成较短的长度(一般设为20?30字节,优选为24字节);并设置第一中断触发条件和第二中断触发条件。所述的第一中断触发条件为:DMA数据缓冲区接收的数据长度等于0.5d。所述的第二中断触发条件为:DMA数据缓冲区接收的数据长度等于d。通过设置两个中断触发条件,在DMA数据缓冲区接收数据期间,微控制器MCU有两次机会对接收的数据进行处理。
[0049]微控制器MCU对接收的数据进行处理的过程为:当满足第一中断触发条件时,如是接收协议数据报文的开始,则根据系统配置文件中定义的协议类型获取报文中的设备地址;然后根据获取的设备地址和配置文件中的映射规则,获取对应目的子节点的地址。
[0050]当传输的数据报文长度大于分段限定长度L时,利用DMA接收数据无需MCU干涉的特点,在缓冲区接收的数据累积达到分段限定长度L个字节时,DMA继续接收数据,与此同时,MCU将已收到的数据打包成载波数据包,发送到对应的子节点。从而实现长报文接收一段就发送一段,而无需等长报文全部接收完后再发送。
[0051 ]当传输的数据报文长度小于分段限定长度L时,等帧结束判断有效时,直接将该数据打包成载波数据包,发送到对应的子节点,无需截断发送。
[0052](2)本发明采用的配置参数方式来将多协议快速映射到对应的子节点。在电力线组网过程中,PLC网络中的主节点和子节点的地址是唯一的,主节点通过子节点的地址来进行数据的一一对应收发的。连接在子节点下的各个设备的地址也是唯一的,并且体现在交互的通信协议报文中。
[0053]在网络系统的初始化配置阶段,配置参数包括协议类型、主节点地址、子节点地址、子节点下对应的所有设备地址等。上位机应用平台通过微控制器MCU的维护端口将配置参数发送给主节点,主节点根据参数建立各个子节点地址和其下接设备地址之间的映射关系,在系统组网阶段将对应的子节点地址分配给各个子节点。组网成功后,上位机应用平台可以根据配置的协议和各个子节点下的设备进行数据通信。主节点收到通信报文后,首先,根据配置参数判断出协议类型;其次,根据每个协议报文帧中设备地址位置固定的特点,读取出设备地址;再次,根据之前建立的映射关系,快速查找出该报文要发往的目的子节点地址;再次,根据地址和协议报文帧组建成载波数据报文帧,通过串口模块发送给载波模块,由载波模块和耦合电路模块耦合到电力线上,发送到协议目的设备所在的子节点。
[0054]以上所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。
【主权项】
1.一种电力电网系统中的网络协议转换方法,其特征在于:包括如下步骤: (1)通过以太接口经以太网与运行虚拟化集中器的主机进行联接,设备上电后主动与主机之间建立并维持TCP长连接通道,等待接收从主机上发送过来以太抄表协议的报文; (2)接收并处理从虚拟集中器下发过来的以太抄表报文,解释其报文对应的含义,展开参数并通过对照协议转换成DL645规约的报文; (3)将DL645规约的报文通过485总线发送出去,实现与电表之间一问一答方式的通讯;发送报文后监听485总线上电表的回应,同时计算响应超时; (4)接收到从电表发回的DL645报文后,将其当中参数展开并提取出来,按照以太抄表协议进行组装,通过与虚拟化集中器的主机相联接的TCP长连接通道发送回去; (5)通过以太网接口生成系统配置文件:通过嵌入式Web的形式将连接到通信主站设备的各通信从站设备的设备编号、设备地址、协议类型等信息写入到系统中的一个XML文件中,从而生成一个系统配置文件; (6)根据步骤(5)的配置文件构建一张通信从站设备信息表,所述通信从站设备信息表是一个结构体类型的链表或数组,该链表或数组的每一个节点记录了一个通信从站设备的相关信息,这些信息包括通信从站设备所连接的RS485端口、通信从站设备类型、通信从站设备所使用协议和通信从站设备的设备号; (7)根据步骤(5)的配置文件分别初始化485接口和TCP网络; (8)根据步骤(6)的通信从设备信息表,通过485总线定时轮询485总线上的各从站设备,并对接收的协议数据进行解析,最后将解析得到的数据以一定的XM格式以文本形式,打包成TCP/IP数据包进行远传,从而实现485总线上的多协议与TCP网络协议之间的转换。2.根据权利要求1所述的一种电力电网系统中的网络协议转换方法,其特征在于: 1)在整个协议转化及通讯过程当中,发送回主机的响应报文的序号,应该与主机下发抄表命令的序号相同; 2)同时发送到协议转换设备上的多条抄表命令,按照到达的先后次序排队,然后依次处理; 3)使用115200的高速率进行通讯。3.根据权利要求1所述的一种电力电网系统中的网络协议转换方法,其特征在于:该电力电网系统包括: DP83848网络模块,用于连接以太网络,进行分组报文交换过程处理,接收和发送以太网络数据; 指令队列模块,用于在接收虚拟集中器下发的多条抄表指令后,采用先进先出的方式排队,等候设备空闲的时候依次逐个处理; DL645译码转换模块,用于将虚拟集中器发送过来的以太抄表协议命令,翻译成485电表可以接收及处理的DL645协议报文; 数据译码打包模块,用于解析485电表返回的,通过DL645协议封装的报文内容,从中提取出数据并按照以太抄表协议格式打包好; 485应答接受模块,用于控制485总线接收来自电表的回应数据,严格按照一问一答的交互方式控制接收流程执行; 485模块SP3485,用于控制连接485总线,支持设备将数据发送到485总线上,并监听485总线上的其它设备发送请求,从485总线上接收数据; CPU芯片,用于控制整个设备的总体运行,执行复杂数学运算过程; 所述的各模块分别通过系统总线连接,所述的DP83848网络模块外接以太网、485模块SP3485外接485电表;所述的转换设备信号传送的逻辑线路是依次经过所述的DP83848网络模块、指令队列模块、DL645译码转换模块、数据译码打包模块、485应答接受模块和485模块 SP3485。4.根据权利要求3所述的一种电力电网系统中的网络协议转换方法,其特征在于:所述的设备一端通过以太网络接口接入以太网当中与集中器虚拟化主机进行连接,上行端口用以太方式实现到集中器虚拟化主机之间的连接,通讯协议采用专门定制的高级计量协议,实现多线程并发抄表;而设备的另一端则有485接口,通过485总线联接一个或数个电表。5.—种电力电网系统中的相互通讯方法,其特征在于:包括如下步骤: (1)电网络系统初始化,对主节点、子节点以及连接在子节点下的各个现场应用设备的参数进行配置,并对DMA收发缓冲区的长度d、中断触发条件和数据报文分段限定长度L进行设置; 在系统初始化阶段,需要配置的参数包括协议类型、主节点地址、子节点地址和连接在子节点下各个现场应用设备的地址; (2)采用DMA数据传输技术收发数据,并根据DMA收发缓冲区的中断触发条件,将DMA缓存区中的数据读取到固定的接收数据缓存区待处理; 所述的DMA收发缓冲区的中断触发条件包括两个,第一中断触发条件是:当接收数据长度为DMA收发缓冲区长度d的一半时,触发中断;第二中断触发条件是:当接收数据长度等于DMA收发缓冲区长度d时,触发中断; 当满足第一中断触发条件时,如是一帧报文接收的开始,微控制器MCU先根据系统初始化配置文件中定义的协议类型,获取报文中的设备地址;再根据设备地址以及配置文件中的映射规则,获取到对应目的子节点的地址; (3)根据数据报文分段限定长度L和传输的数据报文长度LI间的大小关系,对DMA收发缓冲区收发的数据进行判断处理; (4)根据判断处理结果,对数据进行转发,具体过程为:若传输的数据报文长度LI大于数据报文分段限定长度L,则当DMA收发缓冲区的数据长度累积达到分段限定长度L时,DMA收发缓冲区继续接收剩下的数据;与此同时,微控制器MCU将DMA收发缓冲区中接收到长度为L的数据打包成载波数据包,发送到对应的子节点; 若传输的数据报文长度LI小于等于数据报文分段限定长度L,则当一帧数据收发接收后,将DMA收发缓冲区中的数据打包成载波数据包,发送到对应的子节点。6.根据权利要求5所述的一种电力电网系统中的相互通讯方法,其特征在于:所述的DMA收发缓冲区长度d为20字节?30字节。7.根据权利要求5所述的一种电力电网系统中的相互通讯方法,其特征在于:该电力电网系统包括主节点和若干个子节点,所述的主节点与各个子节点之间通过电力线交互连接;所述的主节点通过RS232接口与上位机应用平台终端交互连接;所述的若干个子节点分别通过RS485接口与现场应用设备交互连接; 所述的主节点包括第一微控制器、第一载波电路模块、第一耦合电路模块、第一电源管理模块、和第一收发状态显示模块;所述的第一载波电路模块通过第一微控制器的第一UART接口与第一微控制器交互连接;所述的第一耦合电路模块与第一载波电路模块交互连接;所述的第一电源管理模块的输出端分别与第一微控制器的电源信号输入端、第一载波电路模块的电源信号输入端相连;所述的第一收发状态指示模块与第一微控制器的输出端相连;所述的第一微控制器的第二 UART接口通过RS232接口与上位机应用平台终端交互连接; 所述的子节点包括第二微控制器、第二载波电路模块、第二耦合电路模块、第二电源管理模块、和第二收发状态显示模块;所述的第二载波电路模块通过第二微控制器的第一UART接口与第二微控制器交互连接;所述的第二耦合电路模块与第二载波电路模块交互连接;所述的第二电源管理模块的输出端分别与第二微控制器的电源信号输入端、第二载波电路模块的电源信号输入端相连;所述的第二收发状态指示模块与第二微控制器的输出端相连;所述的第二微控制器的第三UART接口通过RS485接口与现场应用设备交互连接。8.根据权利要求7所述的一种电力电网系统中的相互通讯方法,其特征在于:所述的主节点还包括第一看门狗模块、第一无源晶振模块、第一时钟模块、第一液晶显示模块和第一按键输入模块;所述的第一看门狗模块、第一无源晶振模块以及第一按键输入模块的输出端分别与第一微控制器的输入端相连;所述的第一时钟模块与第一微控制器交互连接;所述的第一液晶显不模块的输入端与第一微控制器的输出端相连; 所述的子节点还包括第二看门狗模块、第二无源晶振模块、第二时钟模块、第二液晶显示模块和第二按键输入模块;所述的第二看门狗模块、第二无源晶振模块以及第二按键输入模块的输出端分别与第二微控制器的输入端相连;所述的第二时钟模块与第二微控制器交互连接;所述的第二液晶显示模块的输入端与第二微控制器的输出端相连。9.根据权利要求7所述的一种电力电网系统中的相互通讯方法,其特征在于:所述的第一微控制器和第二微控制器均采用STM32F107VC处理器;所述的第一载波电路模块和第二载波电路模块均采用MAX2992载波芯片。
【文档编号】H04L29/06GK105959288SQ201610359193
【公开日】2016年9月21日
【申请日】2016年5月27日
【发明人】姹や寒, 汤亮
【申请人】姹や寒, 汤亮
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1