[发明专利]一种在RS—485上使用MODBUS通讯协议自动识别地址的方法在审
申请号: | 201410330307.8 | 申请日: | 2014-07-11 |
公开(公告)号: | CN105323328A | 公开(公告)日: | 2016-02-10 |
发明(设计)人: | 姚普粮;劳承毅;黄镜彬;林朝光;龙光成;韦甘铭;欧世文 | 申请(专利权)人: | 北海市深蓝科技发展有限责任公司 |
主分类号: | H04L29/12 | 分类号: | H04L29/12 |
代理公司: | 北海市佳旺专利代理事务所(普通合伙) 45115 | 代理人: | 林以坤 |
地址: | 536000 广西壮族*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 rs 485 使用 modbus 通讯 协议 自动识别 地址 方法 | ||
技术领域
本发明属于总线通讯技术,特别是涉及到一种在RS—485上使用MODBUS通讯协议自动识别地址的方法。
背景技术
在RS—485上使用MODBUS通讯协议时,一个前提是挂接在RS—485上的设备的地址(此地址以下统称为MODBUS地址)为一字节,此地址一定是唯一的,这样在RS—485总线上的设备,才能通过唯一的MODBUS地址进行识别,实现正常通讯。但在实际操作时,因各种各样的原因,造成挂接在RS—485总线上的设备有可能会出现MODBUS地址相同的情况,这样会导致整个总线通讯不正常,影响总线上器件的正常工作。本发明专利“一种在RS—485上使用MODBUS通讯协议自动识别地址的方法”正是为了解决RS—485上存在相同MODBUS地址时,自动设置不同MODBUS地址问题,保证总线上的通讯正常。
发明内容
本发明专利的目的是设计一种在RS—485上使用MODBUS通讯协议自动识别地址的方法,以便当挂接在RS—485上的设备MODBUS地址有相同时,可以识别出来,并能设置为不同,这样在总线上的器件,可以通过唯一的MODBUS地址进行识别,实现正常通讯。
本发明的目的是这样实现的:一种在RS—485上使用MODBUS通讯协议自动识别地址的方法,其特征为:在挂接在RS—485总线上产品的MODBUS通讯命令中,设置用于读设备的总ID的广播寄存器命令FX,所述的总ID为器件ID+MODBUS地址;总线上的控制器作主器件,用MODBUS协议规定的查询类命令发送FX到RS—485总线上,接收全部挂接在总线上的器件的总ID;总线上的其它器件作从控制器,接收到FX后,根据器件ID地址的大小,延时相应一段时间,再将器件上总ID,发送到RS—485总线上;总线上的控制器接收到总线上全部器件的总ID后,检测如没有相同的MODBUS地址,则不用响应,有相同值,则按器件ID值大小排序,并取不相同值器件最高MODBUS地址+1为最小设置MODBUS地址初始值,用MODBUS协议规定的设置类命令发送全部MODBUS地址相同器件的FX命令;总线上的器件接收FX后,如器件ID值相同,则响应,根据接收到的MODBUS地址,将原MODBUS地址改为主控制器设置的MODBUS地址并保存,如器件ID值不同,则不响应。
用于读设备的总ID为器件ID+MODBUS地址,最长为5个字节,其中4个字节为器件ID,器件自带,为唯一值,即所有器件只有唯一一个,另外一个字节为MODBUS地址,即挂接在RS—485总线上器件的通讯地址,器件依靠此地址进行通讯。
总线上的控制器作主器件,用MODBUS协议规定的03类命令发送FX到RS—485总线上,接收全部挂接在总线上的器件的总ID。
总线上的其它器件作从控制器,接收到FX后,根据器件ID地址的大小,延时相应一段时间,再将器件上总ID,发送到RS—485总线上,因器件ID地址不同,因此延时也不同,这样,可保证在同一时间,RS—485上只有一个发送设备,不会造成总线冲突。
总线上的控制器接收到总线上全部器件的总ID后,若有相同值,则按器件ID值大小排序,并取不相同值器件最高MODBUS地址+1为最小设置MODBUS地址初始值,用MODBUS协议规定的06类命令发送全部MODBUS地址相同器件的FX命令。
本发明的软件流程为:
(1)“控制器发送广播寄存器命令FX到485总线上”,启动检测MODBUS地址是否相同功能;
(2)“器件接收到FX命令后,延时一指定值的毫秒值(其值=本器件ID地址值乘一固定值)后,将器件上总ID,发送到RS—485总线”,按不同的器件ID,延时不同的时间,以保证在同一时间内,总线上只能有一设备在发送,保证总线的通讯正常。器件总ID=器件ID+MODBUS地址;
(3)“控制器接收总线上全部器件的总ID地址”;
(4)进入“有相同的MODBUS地址?”,没有则结束,否则直接进入下一步;
(5)进入“相同MODBUS地址按器件ID次序按从小到大排序”;
(6)进入“不相同值器件最高MODBUS地址+1为最小设置MODBUS地址初始值FMINADDR。”;
(7)进入“控制器将未发送过最低器件ID地址+FMINADDR组成对应总ID发送到485总线上”;
(8)进入“器件接收FX命令”;
(9)如器件ID地址相同,则按命令设置,如不同,则退出”;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北海市深蓝科技发展有限责任公司,未经北海市深蓝科技发展有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410330307.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:手表式移动终端
- 下一篇:一种整合工业监控移动物联网平台