首页> 中国专利> 无线传感器网络接入Modbus总线的网关通信协议转换方法

无线传感器网络接入Modbus总线的网关通信协议转换方法

摘要

一种无线传感器网络接入Modbus总线的网关通信协议转换方法,是先对网关初始化:根据地址映射配置文件,分别建立传感器网络节点地址与Modbus地址之间和传感器网络每个节点的多个传感器编号与Modbus寄存器地址之间的两个映射关系,再为每个传感器的感测数据按照modbus地址和寄存器地址分配内存空间;再同时启动两个进程:传感器网络监听进程负责接收和解析传感器网络的周期性数据包,并按照映射关系保存于本地内存;且用接收的新感测数据更新相应的内存;Modbus守护进程负责监听Modbus总线和分析Modbus查询包,如果查询的modbus地址归属本传感器网络,则从内存取出相应数据给Modbus总线返回查询结果。本发明是在网关完成通信协议转换,能实时响应Modbus查询,且不增加传感器网络节点开销。

著录项

  • 公开/公告号CN101977167A

    专利类型发明专利

  • 公开/公告日2011-02-16

    原文格式PDF

  • 申请/专利权人 深圳市兆讯达科技实业有限公司;

    申请/专利号CN201010529440.8

  • 发明设计人 陈耿彬;陈春燕;胡四泉;

    申请日2010-10-25

  • 分类号H04L12/66(20060101);H04L29/06(20060101);

  • 代理机构11018 北京德琦知识产权代理有限公司;

  • 代理人夏宪富

  • 地址 518040 广东省深圳市福田区泰然工业区206栋8层西

  • 入库时间 2023-12-18 01:48:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-12-14

    未缴年费专利权终止 IPC(主分类):H04L12/66 授权公告日:20120822 终止日期:20151025 申请日:20101025

    专利权的终止

  • 2012-08-22

    授权

    授权

  • 2011-03-30

    实质审查的生效 IPC(主分类):H04L12/66 申请日:20101025

    实质审查的生效

  • 2011-02-16

    公开

    公开

说明书

技术领域

本发明涉及一种网关通信协议转换方法,确切地说,涉及一种无线传感器网络接入Modbus总线的网关通信协议转换方法;属于网络通信技术领域。

背景技术

Modbus是工业控制技术中的一种标准的通用语言和通信协议,用于描述一个控制装置在请求访问其它设备的过程中,如何回应来自其它设备的请求,以及怎样侦测错误并记录之。该协议制定了消息域格局及其内容的公共格式,定义了一个控制装置能够认识与使用的消息结构,而不管它们是经由何种网络进行通信的。有了它,不同厂商分别生产的各种控制设备就可以直接连接而构成工业网络,实现集中监控。因此,Modbus协议在目前的工业生产自动化技术领域得到了广泛应用。然而,Modbus设备是采用以太网接口或RS-232/422/485接口通过有线网络方式接入总线的,对于工业生产中的移动设备来说,这种有线网络的通信方式既不方便,也不灵活。此时,人们通常采用无线传感器网络来采集移动设备的相关数据。

无线传感器网络是由多个传感器以自组织方式构成的无线网络,其目的用于协作地感知采集和处理网络覆盖的地理区域中被感知对象的信息,并传送给观察者。无线传感器网络中的部分节点或全部节点都是可以移动的,因此,传感器网络的拓扑结构会随着节点的移动而不断发生动态变化。每个节点不仅能够充当路由器,还都具备动态搜索、定位和恢复连接的功能。在工业自动化领域里,无线传感器网络正在得到越来越广泛的应用。

但是,目前无线传感器网络中的无线通信还存在链路不稳定和通信延迟较大等许多缺点,还不能完全替代工业领域的现场总线。因此,结合两者的长处和特点所形成的综合工业网络是未来工业控制技术的发展趋势。然而,由于Modbus网络和无线传感器网络采用不同的通信介质和通信协议,这就需要一个通信协议的转换网关作为两种网络的连接桥梁来整合它们,以便能够充分发挥两者各自的优点。

经对现有技术的文献检索发现:刊于《自动化仪表》2007年第28卷第7期的论文《Modbus通信协议的紫蜂无线传输网络的研究》对基于Modbus通信协议的紫蜂无线总线网络系统的实现进行了分析和探讨,提出了一个利用zigbee设备的IEEE地址与其设定的Modbus地址进行绑定,同时利用网络短址进行网络地址定向,并通过无线透传的方式来实现遵循Modbus通信协议的数据在紫蜂无线网络中传输的具体方案。

发表于清华大学学报(自然科学版)2008年第48卷第S2期的文章《Modbus报文有线/无线混合传输的实现》提出一种实现Modbus报文有线/无线混合传输的方案,为在ZigBee网络中封装与传输Modbus协议报文,设计了一种可兼容有线/无线网络混合传输的帧结构与寻址方法,并从软硬件角度讨论了网关的设计,给出了Modbus协议报文在有线/无线混合网络之间转换的方法,使ZigBee网络可用于传输Modbus报文。

刊于2009 International Forum on Information Technology and Applications会议上的论文《Research on ZigBee Wireless Sensors Network Based on ModBusProtocol(基于modbus协议的zigbee无线传感器网络研究)》,提出了一个基于协调器的zigbee/modbus两个通信协议的转换方案,在该方案中,zigbee无线传感器网络的协调器,一方面作为一个特殊的无线传感器节点分配网络地址、发起路由和接收各节点数据,另一方面接受modbus的查询和返回modbus响应。

经检索还发现,刊于《微计算机信息》2009年第25卷第6-2期的论文《基于Modbus协议的ZigBee/工业以太网网关设计》提出一种ZigBee/工业以太网的网关设计方案,该网关应用层采用Modbus/RTU主从式协议,以太网传输层采用UDP协议,网关将Modbus/RTU报文作为UDP和Zigbee应用层数据传输,Modbus主站报文通过UDP端口接收后,删除帧头与帧尾,再附加Zigbee短地址,通过串口发送给无线传感器网络节点并转化为Zigbee报文发送;Modbus从站的Zigbee报文由串口接收,去掉Zigbee短地址后,再附加UDP帧头与帧尾,然后由以太网口转发。

虽然上述各篇论文都提出了Zigbee无线传感器网络与Modbus总线的协议转换,但是,其采用的方法都是基于在Zigbee协议中嵌入Modbus查询和响应机制,具有两个极其致命的缺陷:一是增加了资源受限的无线传感器网络节点的开销,二是由于无线传感器网络传输延迟,从而无法及时对Modbus查询命令作出响应,导致查询失败。因此,如何对Modbus网络和无线传感器网络之间的连接桥梁-转换网关执行的通信协议转换方法进行改进,就成为业内科技人员关注的焦点。

发明内容

有鉴于此,本发明的目的是针对上述现有技术的不足,提供一种无线传感器网络接入Modbus总线的网关通信协议转换方法,该方法是在无线传感器网络与Modbus总线之间设置网关,该网关一方面连接无线传感器网络的数据汇聚节点,收集各传感器节点的感测数据;另一方面与Modbus总线相连,负责接受Modbus查询和返回Modbus响应。本发明方法的特点是能够适用各种无线传感器网络,而不局限于Zigbee网络,且开销小和实时性好。

为了达到上述发明目的,本发明提供了一种无线传感器网络接入Modbus总线的网关通信协议转换方法,其特征在于:该方法包括下述步骤:

(1)网关初始化:根据地址映射配置文件,分别建立传感器网络节点地址与Modbus地址的映射关系和传感器网络每个节点上的多个传感器的编号与Modbus寄存器地址的映射关系,再为每个传感器采集的感测数据按照modbus地址和寄存器地址分配内存空间;

(2)同时启动传感器网络监听进程和Modbus守护进程:其中,

传感器网络监听进程负责接收传感器网络的周期性数据包,解析数据包,并按照映射关系保存在本地内存中;且在传感器网络传送的新数据到来时,更新内存中的相应数据;

Modbus守护进程负责监听Modbus总线和分析Modbus查询包,如果查询的modbus地址归属本传感器网络,则从其内存区域中取出相应的数据作为查询结果返回给Modbus总线。

所述建立传感器网络节点地址与Modbus地址的映射关系是把每个传感器网络节点作为一个虚拟的Modbus从站,建立传感器网络节点地址与Modbus从站地址之间的一一对应关系。

所述建立传感器网络每个节点上的多个传感器的编号与Modbus寄存器地址的映射关系,是把传感器网络节点上的每个传感器采集的包括温度、湿度和电压的多个参数都分配到各个对应的Modbus寄存器地址内。

所述为每个传感器采集的感测数据按照modbus地址和寄存器地址分配内存空间,是为传感器网络节点及其对应的每个传感器采集的感测参数分配存储空间:采用数组或链表形式,并以modbus从站地址为索引,每个寄存器的各个字段分别与每个传感器的感测参数相对应。

所述传感器网络的周期性数据包是传感器网络各个节点每隔一个设定的周期时段采集的各个感测数据,并经过传感器网络多跳路由传输至汇聚节点的数据包;该数据包再通过包括RS232/422/485接口或以太网接口或其它接口被网关的传感器网络监听进程进行接收、解析和存储的处理;由于是周期性数据,当某个节点的新感测数据到达时,就会覆盖对应内存区域中相应的旧数据。

所述Modbus查询包是Modbus总线上的主站发出的查询数据帧,该查询数据帧是美国标准信息交换代码ASCII或远程终端单元RTU(Remote TerminalUnit)格式,查询帧中包含要查询的modbus从站地址和寄存器地址及寄存器数量,网关根据该查询的modbus从站地址是否为传感器网络中的某个节点对应的从站地址决定是否返回应答帧:若是,则返回,否则,不响应。

所述返回给Modbus总线的查询结果是根据查询包中的从站地址和寄存器地址及数量,将内存中对应的传感器的感测数据按照Modbus协议规定的格式组织的应答帧,该应答帧包括从站地址、功能码、寄存器数量和每个寄存器内的各个感测数值。

与现有技术相比,本发明方法具有如下有益效果:

两个不同网络通信协议的转换是在与传感器网络节点完全独立的网关上进行和完成的,不需要增加无线传感器网络节点的传输和能源开销。

由于各个传感器的感测数据是实时地存储在网关的内存区域中,并得到周期性更新。这样,当网关接收到Modbus网络主站的查询后,能够立即就从内存中直接读取数据进行应答,没有传统方法要在传感器多跳网络中进行查询的传输时延,即不需要等待就能够对Modbus查询作出实时响应。

因此,本发明的优点是显著的,具有很好的推广应用前景。

附图说明

图1是本发明无线传感器网络接入Modbus总线的网关通信协议转换方法操作步骤流程图。

图2是本发明方法适用的位于无线传感器网络和Modbus总线的系统结构及其网关位置示意图。

图3是本发明方法中的网关初始化的工作流程图。

图4是本发明方法中的网关的传感器网络监听进程的工作流程图。

图5是本发明方法中的网关的Modbus守护进程的工作流程图。

图6是本发明方法中的各个步骤的状态转换图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明作进一步的详细描述。

在Modbus网络上的工业控制装置进行通信时,所采用的Modbu协议要求每个工业控制装置都必须要知道自身设备的地址,并能够识别按地址发来的消息和决定产生何种行动。如果需要回应,每个工业控制装置还要生成反馈信息,并使用Modbus协议发送出去。如果这个控制装置还与其它网络沟通与联系,就需要将采用Modbus协议的消息转换为在该网络上使用的数据帧或数据包。以便这种转换后的数据包能够在新的应用网络中解决节点地址、路由路径及错误检测的相关操作,从而拓展Modbus协议及其网络的应用范围。本发明方法就是解决上述问题的一个有效方法。

本发明实施例的传感器网络是采用以CC2420为射频芯片(其中包含温度、湿度和光照强度的3个传感器)作为节点组成的自组织多跳网络,实际应用不局限于此种节点。

下面先参见图1,具体说明本发明无线传感器网络接入Modbus总线的网关通信协议转换方法,该方法包括如下步骤:

步骤1,网关初始化:本发明的网关是介于无线传感器网络和Modbus工业总线之间的工业计算机(参见图2所示),该计算机通过串口连接到无线传感器网络的汇聚节点,从而能够接收传感器网络中各个节点的周期性感测数据包。该计算机还通过RS232/422/485接口或以太网接口或其它接口连接到Modbus工业总线,从而能够监听Modbus上的查询包并根据条件返回应答包。

该步骤的网关初始化是网关根据地址映射配置文件执行下述三项操作:

(11)建立传感器网络节点地址与Modbus地址的映射关系:把每个传感器网络节点作为一个虚拟的Modbus从站,建立传感器网络节点地址与Modbus从站地址之间的一一对应关系。

(12)建立传感器网络每个节点上的多个传感器的编号与Modbus寄存器地址的映射关系:把传感器网络节点上的每个传感器采集的包括温度、湿度和电压的多个参数都分配到各个对应的Modbus寄存器地址内。

(13)为每个传感器采集的感测数据按照modbus地址和寄存器地址分配内存空间:网关为传感器网络节点及其对应的每个传感器采集的感测参数分配内存的存储空间:采用数组或链表形式,并以modbus从站地址为索引,每个寄存器的各个字段分别与每个传感器的感测参数相对应。例如,Modbus从站12的对应的传感器节点包含3个传感器,则按照传感器读数的数据类型分配3个相应的内存变量。

其中的地址映射配置文件可以是任何可处理格式的已知文本文件,如csv文件或XML文件,该文件包括多个记录,每条记录设有4个字段,分别为传感器节点地址、传感器号码、Modbus从站地址和Modbus寄存器地址。例如,要表述传感器网络中的5号节点上的第2个传感器映射为Modbus从站12中的寄存器地址4002,则在csv文件中可以表述为这样的记录:5,2,12,4002,而在XML文件中则表述为:<Mapping name=“Mapping1”,value=”5,2,12,4002”/>。

参见图3,具体说明该步骤1的操作内容:网关开始运行时,先读取地址映射配置文件,进入状态1;如果其中的剩余映射记录非空,则进入状态2,取出其中的第一条记录并建立映射关系和分配内存空间,然后回到状态1,再搜索下一条记录;如果存在下一条记录,则进入状态2继续处理,如此不断循环,直到在状态1中发现下一条记录为空时,即全部纪录处理完毕,这时步骤1进入终止状态,即该步骤1完成全部处理任务。步骤1完成后,网关就实际建立了一套索引,当以传感器节点地址和传感器编号为输入变量,索引就能提供相应的输出变量:Modbus从站地址和寄存器地址,从而知道应该把数据保存在哪里。

步骤2,同时启动传感器网络监听进程和Modbus守护进程,即同时执行下述两项操作:

(21)传感器网络监听进程:网关负责接收传感器网络的周期性数据包,解析数据包,并按照映射关系保存在本地内存中;且在传感器网络传送的新数据到来时,更新内存中的相应数据。

传感器网络的周期性数据包是传感器网络各个节点每隔设定的周期时段所采集的各个感测数据,并经过传感器网络多跳路由传输至汇聚节点的数据包;该数据包再通过包括RS232/422/485接口或以太网接口或其它接口被网关的传感器网络监听进程进行接收、解析和存储的处理;由于是周期性数据,当某个节点的新感测数据到达时,就会覆盖对应内存区域中相应的旧数据。

参见图4,具体介绍该传感器网络监听进程的操作情况:网关完成初始化后,进入状态1,不断侦听串口,当接收到传感器网络的数据汇聚节点通过串口发来的周期性数据包,就进入状态2;此时对数据包进行解析,如果数据包合法,则进入状态3,提取其中的感测参数:温度、湿度和光照读数,并根据步骤1所建立的映射关系,确定这些读数的存储地址后,再用这些最新数据覆盖旧的数据,处理完毕后回到状态1,继续监听串口发来的数据包。在状态2中,如果接收到的数据包无法解析,即数据包不合法,说明传感器网络提供的感测数据出现错误,此时不再处理该数据包,返回到状态1,等待下一个周期性数据包到来时,重新开始处理新的数据包。传感器网络监听进程是一个不断周而复始的循环过程,实际上是由串口的周期性数据包每次到来的这个事件所触发的处理过程。

(22)Modbus守护进程:网关负责监听Modbus总线和分析Modbus查询包,如果查询的modbus地址归属本传感器网络,则从其内存区域中取出相应的数据作为查询结果返回给Modbus总线。

Modbus查询包是Modbus总线上的主站发出的查询数据帧,该查询数据帧采用美国标准信息交换代码ASCII或远程终端单元RTU(Remote Terminal Unit)格式,查询帧中包含要查询的modbus从站地址和寄存器地址及寄存器数量,网关根据该查询的modbus从站地址是否为传感器网络中的某个节点对应的从站地址决定是否返回应答帧:若是,则返回,否则,不响应。

返回给Modbus总线的查询结果是根据查询包中的从站地址和寄存器地址及数量,将内存中对应的传感器的感测数据按照Modbus协议的规定格式组织的应答帧,该应答帧包括从站地址、功能码、寄存器数量和每个寄存器内的各个感测数值。

参见图5,具体介绍Modbus守护进程的操作情况:网关初始化后,进入状态1,此时就开始持续不断地监听Modbus总线,以便及时接收Modbus协议数据包,如果收到,则进入状态2;在状态2中,网关执行Modbus守护进程,分析其接收到的数据包中的查询地址,如果该地址属于网关所负责的传感器网络中某个节点对应的Modus从站地址,即地址匹配成功,说明总线上的Modbus总站希望查询该传感器节点的数据,此时进入状态3;在状态3中,网关根据该协议数据包中要查询的寄存器地址从内存中取出被查询的Modbus从站的对应数据,再按照Modbus协议包装在Modbus应答数据包后,发送到Modbus总线后,再返回状态1,继续监听Modbus总线;如果在状态2中,发现Modbus查询地址不是传感器网络中任何节点所对应的Modbus从站地址,即地址不匹配,则说明主站要求查询其它从站的状态,与本传感器网络无关;此时丢弃该查询包,不作任何处理,直接返回状态1,继续监听Modbus总线上的相关信息。

图6是将图3~图5的各个操作步骤的集成,具体操作内容与前述内容完全相同,这里不再赘述。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号