在Modbus通信网络中为从节点设备分配地址的方法

文档序号:7918265阅读:266来源:国知局

专利名称::在Modbus通信网络中为从节点设备分配地址的方法
技术领域
:本发明涉及一种分配地址的方法,尤其涉及一种在Modbus通信网络中为从节点设备分配地址的方法。
背景技术
:现场总线技术已经越来越多地应用于工业现场。Modbus总线更是以其协议简单、实施容易、性价比高、可靠性高等优点而获得了越来越广泛的应用。基于串行链路的Modbus通信网络是一种主从式网络,在串行网络中只允许存在一个主节点和最多247个从节点。在Modbus通信网络中,采用命令/应答的通信方式,主站发出请求,从站应答请求并送回数据或状态信息,从站不能够主动发送信息。MODBUS协议定义的各种信息帧格式,描述了主节点控制器访问从节点设备的过程,规定从站怎样做出应答响应,以及检查和报告传输错误等。在Modbus通信网络中,标准ModbusADU中的附加地址域只包含从节点的地址,可寻址范围是0-247,地址0作为广播格式地址使用,从节点地址的有效取值范围是1-247,并且每个从节点的地址必须是唯一的,主节点不存在具体的地址值。在通信时,主节点设备将要访问的从节点设备的地址放入到请求帧的地址域中,当该地址的从节点设备作出响应时,将会把从节点设备的地址复制到响应帧的地址域中,主节点设备通过该地址得知是由哪个从节点设备发来的响应。主从网络结构的地址配置方法,对于理解Modbus关键技术是很有意义的,但现有技术并没有提供在Modbus通信网络中为从节点设备分配地址的方法。
发明内容本发明所要解决的技术问题在于提供一种在Modbus通信网络中为从节点设备的缺点。为解决上述问题,本发明提供了一种在Modbus通信网络中为从节点设备分配地址的方法,其包括以下步骤(1)初始化主节点设备和从节点设备,为一从节点设备设置地址;(2)主节点设备周期性地向各个从节点设备发送地址轮询报文,所述地址轮询报文指示从节点设备比较其自身地址和所述地址轮询报文携带的地址是否一致;(3)当一从节点设备首次判断到其地址和所述地址轮询报文携带的地址一致时,其向主节点设备回送携带该从节点设备的地址的报文;(4)当主节点设备判断其中已存储有与该从节点设备的地址相同的地址时,执行下述步骤(5);否则,所述主节点设备保存该从节点设备的地址,执行下述步骤(6);(5)为该从节点设备重新设置地址,执行上述步骤(2);(6)当主节点设备判断到其中保存的从节点设备的地址的数目小于所述从节点设备的数目时,为未被设置地址的另一从节点设备设置地址,执行上述步骤(2);当主节点设备判断到其中保存的从节点设备的地址的数目与所述从节点设备的数目相等时,流程结束。优选的,所述地址轮询报文携带的地址依次是一预先设定的地址范围内的地址。优选的,所述初始化主节点设备和从节点设备步骤包括设置通信参数;所述通信参数包括报文帧格式和波特率。优选的,在步骤(l)中,所述为从节点设备设置地址步骤包括以下步骤(11)由用户手动为一从节点设备设置地址;(12)该从节点设备判断所述地址是否处于所述预先设定的地址范围内;当该从节点设备判断到所述地址处于所述预先设定的地址范围内时,保存该地址,执行步骤(2);否则,由用户手动为该从节点设备重新设置地址,执行步骤(12)。优选的,所述预先设定的地址范围是。优选的,所述报文帧格式为RTU帧格式;所述地址轮询报文的功能域携带的功能代码是自定义功能代码67H;所述地址轮询报文的数据域携带的数据的长度为一个字节,随着周期数的递增,该数据的值由OIH开始递增,当该数据的值递增至F7H时,将该数据重新赋值为01H;一从节点设备接收到所述地址轮询才艮文后,当首次判断到其地址和所述地址轮询报文的数据域携带的数据值相同时,向主节点设备回送携带该从节点设备的地址的地址回送才艮文。采用本发明所述方法,与现有技术相比,可以方便地检验从节点地址分配是否正确完成。图1是本发明实施例采用的Modbus通信网络中节点设备的结构图;图2是本发明一优选实施例所述的在Modbus通信网络中为从节点设备分配地址的方法的流程图3是本发明又一优选实施例所述的在Modbus通信网络中为从节点设备分配地址的方法的流程图4是本发明一应用实例采用的Modbus通信网络的结构图。具体实施例方式本发明提供了一种在Modbus通信网络中为从节点设备分配地址的方法,其通过自定义一种地址轮询报文,主节点设备向从节点设备周期性地发送该地址轮询报文,以检验从节点地址分配是否正确完成。本发明实施例所述的在Modbus通信网络中为从节点设备分配地址的方法,是基于Modbus通信系统的,所述Modbus通信系统包括一主节点设备和至少一从节点设备,所述主节点设备和所述从节点设备分别连接到Modbus总线上。如图l所示,所述主节点设备和所述从节点设备均包括微处理器、键盘、显示单元和通信单元。优选情况下,所述微处理器可以是型号为C8051F021的单片机,所述显示单元可以为液晶显示器,所述通信单元可以为MAX4854妻口芯片。如图2所示,本发明一优选实施例所述的在Modbus通信网络中为从节点设备分配地址的方法,包括以下步骤步骤21:初始化主节点设备和从节点设备,为一从节点设备设置地址;步骤22:主节点设备周期性地对各个从节点设备进行地址轮询操作,向各个从节点设备发送地址轮询报文,所述地址轮询报文指示从节点设备比较其自身地址和所述地址轮询报文携带的地址是否一致,所述地址轮询报文携带的地址依次是一预先设定的地址范围内的地址;步骤23:当一从节点设备首次判断到其地址和所述地址轮询报文携带的地址相同时,其向主节点设备回送携带该从节点设备的地址的报文;步骤24:当主节点设备判断其中已存储有与该从节点设备的地址相同的地址时,转至步骤25;否则,所述主节点设备保存该从节点设备的地址,执行下述步骤26;步骤25:为该从节点设备重新设置地址,执行上述步骤22;步骤26:当主节点设备判断到其中保存的从节点设备的地址的数目小于所述从节点设备的数目时,为未被设置地址的另一从节点设备设置地址,执行上述步骤22;当主节点设备判断到其中保存的从节点设备的地址的数目与所述从节点设备的数目相等时,执行下述步骤27;步骤27:流程结束。优选的,在步骤21中,所述初始化主节点设备和从节点设备包括设置通信参数、初始化显示单元;所述通信参数包括才艮文帧格式、波特率等;所述报文帧格式可以为ASCII帧格式或RTU帧格式。ASCII帧格式以冒号字符开始,以回车换行符结束,其它域使用的传输字符为十六进制;釆用RTU帧格式的Modbus通讯协议报文帧格式如下表所示。<table>tableseeoriginaldocumentpage7</column></row><table>地址域地址域为被查询的从节点地址,它所表示的从节点有效地址范围为00H-F7H,其中00H表示广播地址。功能域:功能域的功能代码范围是OIH-FFH。有些功能代码适用于所有控制器,有些功能代码适用于特定控制器,还有些功能代码保留以备用户功能扩展使用。当消息从主节点设备发往从节点设备时,功能域携带的功能代码将告知从节点设备需要执行哪些行为。例如,功能代码03H为读寄存器(内部字变量),用于读取从节点的寄存器值;功能代码67H为自定义代码,可由用户自定义功能。数据域数据域包括从节点设备执行特定功能所需要的数据、或从节点设备响应查询时采集到的数据,这些数据可以是I/0值、状态数据或其它测量控制信息。CRC校验域在Modbus通讯协议中的RTU帧校验通常采用CRC循环冗余校验。整个信息帧以连续的数据位流进行传输,CRC校验从地址域开始对报文帧的所有数据进行校验。从节点设备识别主节点设备按地址发来的消息,决定要执行何种操作。主节点设备可单独和从节点设备通讯,从节点设备返回一消息作为回应;从节点设备的正常应答是发送相同格式的报文帧,以便让主节点设备确认。如果有错误,功能代码将被修改以指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误校验域允许主节点设备确认消息内容是否可用。在配置每个控制器的时候,一个Modbus通信网络上的所有设备都必须选择相同的传输格式和串口参数。如图3所示,本发明又一优选实施例所述的在Modbus通信网络中为从节点设备分配地址的方法,包括以下步骤步骤31:在Modbus通信网络中,为主节点设备和从节点设备设置通信参数,并进行对显示单元的初始化;将波特率设置为19.2Kbps,将报文帧格式设置为RTU帧格式;通过主节点设备的键盘,输入从节点设备的数目NodeNo,并将所述从节点设备的数目保存至主节点设备的微处理器中;手动设置一从节点设备的地址;步骤32:判断该地址是否处于预先设定的地址范围内,当不处于时,转至步骤33;否则,转至步骤34;步骤33:提示地址设置错误,重新手动设置该从节点设备的地址,转至步骤32;步骤34:将所述从节点设备的地址保存至相应从节点设备的微处理器中,转至步骤35;步骤35:每隔一预定周期,主节点设备向各个从节点设备发送地址轮询报文;所述地址轮询报文采用RTU帧格式,其功能域设置为自定义功能代码67H;所述地址轮询才艮文的数据域携带的数据的长度为一个字节,随着周期数的递增,该数据的值由OIH开始递增,当该数据的值递增至F7H时,将该数据重新赋值为01H;当从节点设备首次判断到其地址与所述地址轮询报文的数据域携带的数据的值相同时,该从节点设备向主节点设备发送携带一地址回送报文,该地址回送"^艮文的数据域携带该从节点设备的地址;当主节点设备接收到来自从节点设备的地址回送报文时,将所述地址回送报文的数据域携带的地址与主节点设备的微控制器中已储存的地址做比较;当存在相同地址时,转至步骤36;当不存在相同地址时,转至步骤37;步骤36,由主节点设备向该从节点设备发送表示地址配置错误的报文,所述表示地址配置错误的报文的功能域设置为自定义功能代码69H;该从节点设备在接收到表示地址配置错误的报文后,在其显示单元上显示"地址配置错误",由用户手动为该从节点设备重新设置地址,执行上述步骤35;步骤37:将主节点设备接收到的来自该从节点设备的地址回送报文的数据域携带的地址,存储至主节点设备的微控制器中,并将主节点设备的微控制器中预先设置的初值为0的地址参数AddressNo的数值加1;步骤38:在主节点设备中,将所述地址参数AddressNo的数值与所述从节点设备的数目NodeNo相比较;当所述地址参数AddressNo的数值小于所述从节点设备的数目NodeNo时,为未被设置地址的另一从节点设备设置地址,执行上述步骤35;当两者相等时,执行下述步骤39;步骤39:结束轮询状态,主节点设备向各从节点设备发送表示地址配置完成的广播报文;各个从节点设备接收到表示地址配置完成的广播报文后,进入等待正常通信状态,所述表示地址配置完成的广播报文的功能域设置为自定义功能代码68H。下面,以一应用实例介绍本发明提供的一种在Modbus通信网络中为从节点分配地址的方法如图4所示,在本应用实例中,Modbus通信网络包括一个主节点设备和三个从节点设备从节点设备l、从节点设备2、从节点设备3;将所述报文帧格式设置为RTU帧格式,并将功能代码67H自定义为地址轮询功能;将从节点设备的数目3存储至主节点设备的微控制器中;手动设置从节点设备1的地址为01H;在主节点设备的微控制器中,预先设置初值为0的地址参数;每隔20ms,主节点设备向从节点设备l、从节点设备2、从节点设备3发送地址轮询报文;从节点设备1向主节点设备回送数据域携带地址为01H的报文,主节点设备将01H储存至其微控制器的存储单元中;将地址参数的数值加l,此时,所述地址参数的数值为1;比较地址参数的数值与从节点设备的数目,不相等;手动设置从节点设备2的地址为01H;从节点设备2向主节点设备回送数据域携带地址为01H的报文,经比较,地址重复,主节点设备向从节点设备2发送表示地址配置错误的报文帧;从节点设备2在接收到表示地址配置错误的报文帧后,在其显示单元上显示"地址配置错误,,,操作者看到显示后,重新将从节点设备2的地址设置为02H;从节点设备2向主节点设备回送数据域携带地址为02H的报文,经比较,不存在地址重复,主节点设备将02H储存至其微控制器的存储单元中;将地址参数的数值加l,此时,所述地址参数的数值为2;比较地址参数的数值与从节点设备的数目,不相等;手动设置从节点设备3的地址为03H;接着,从节点设备3向主节点设备回送数据域携带地址为03H的报文,经比较,不存在地址重复,主节点设备将03H储存至其微控制器的存储单元中;将地址参数的数值加l,此时,所述地址参数的数值为3;比较地址参数的数值与从节点设备的数目,相等,则结束轮询过程,主节点设备向从节点设备l、从节点设备2、从节点设备3发送表示地址配置完成的广播报文,各个从节点设备接收到表示地址配置完成的广播报文后,进入等待正常通信状态,地址分配过程结束。以上说明对本发明而言只是说明性的,而非限制性的,本领域普通技术人员理解,在不脱离以下所附权利要求所限定的精神和范围的情况下,可做出许多修改,变化,或等效,但都将落入本发明的保护范围内。权利要求1、一种在Modbus通信网络中为从节点设备分配地址的方法,其特征在于,其包括以下步骤(1)初始化主节点设备和从节点设备,为一从节点设备设置地址;(2)主节点设备周期性地向各个从节点设备发送地址轮询报文,所述地址轮询报文指示从节点设备比较其自身地址和所述地址轮询报文携带的地址是否一致;(3)当一从节点设备首次判断到其地址和所述地址轮询报文携带的地址一致时,其向主节点设备回送携带该从节点设备的地址的报文;(4)当主节点设备判断其中已存储有与该从节点设备的地址相同的地址时,执行下述步骤(5);否则,所述主节点设备保存该从节点设备的地址,执行下述步骤(6);(5)为该从节点设备重新设置地址,执行上述步骤(2);(6)当主节点设备判断到其中保存的从节点设备的地址的数目小于所述从节点设备的数目时,为未被设置地址的另一从节点设备设置地址,执行上述步骤(2);当主节点设备判断到其中保存的从节点设备的地址的数目与所述从节点设备的数目相等时,流程结束。2、如权利要求1所述的在Modbus通信网络中为从节点设备分配地址的方法,其特征在于,所述地址轮询报文携带的地址依次是一预先设定的地址范围内的地址。3、如权利要求2所述的在Modbus通信网络中为从节点设备分配地址的方法,其特征在于,所述初始化主节点设备和从节点设备步骤包括设置通信参数;所述通信参数包括报文帧格式和波特率。4、如权利要求3所述的在Modbus通信网络中为从节点设备分配地址的方法,其特征在于,在步骤(l)中,所述为从节点设备设置地址步骤包括以下步骤(11)由用户手动为一从节点设备设置地址;(12)该从节点设备判断所述地址是否处于所述预先设定的地址范围内;当该从节点设备判断到所述地址处于所述预先设定的地址范围内时,保存该地址,执行步骤(2);否则,转至步骤(13);(13)由用户手动为该从节点设备重新设置地址,执行步骤(12)。5、如权利要求4所述的在Modbus通信网络中为从节点设备分配地址的方法,其特征在于,所述预先设定的地址范围是。6、如权利要求5所述的在Modbus通信网络中为从节点设备分配地址的方法,其特征在于,所述报文帧格式为RTU帧格式;所述地址轮询报文的功能域携带的功能代码是自定义功能代码67H;所述地址轮询报文的数据域携带的数据的长度为一个字节,随着周期数的递增,该数据的值由OIH开始递增,当该数据的值递增至F7H时,将该数据重新赋值为01H;一从节点设备接收到所述地址轮询4艮文后,当首次判断到其地址和所述地址轮询报文的数据域携带的数据值相同时,向主节点设备回送携带该从节点设备的地址的地址回送净艮文。全文摘要本发明公开了一种在Modbus通信网络中为从节点设备分配地址的方法,其包括以下步骤初始化主节点设备和从节点设备;设置一从节点设备的地址,设置从节点设备的数目;主节点设备周期性地向各个从节点设备发送地址轮询报文;当一从节点设备首次接收到携带的数据与其地址相同的地址轮询报文时,其向主节点设备回送携带从节点设备的地址的报文;当主节点设备判断该从节点设备的地址与其储存的地址不相同时,其保存该从节点设备的地址;当主节点设备中保存的从节点设备的地址的数目与所述从节点设备的数目相等时,流程结束。本发明所述方法可以方便地检验从节点地址分配是否正确完成。文档编号H04L29/12GK101309306SQ200810142920公开日2008年11月19日申请日期2008年7月16日优先权日2008年7月16日发明者佟为明,勇刘,李凤阁,林景波,胡素君申请人:哈尔滨工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1