[发明专利]一种主节点自动设置子节点波特率和地址的方法有效
申请号: | 201811576163.9 | 申请日: | 2018-12-22 |
公开(公告)号: | CN109361585B | 公开(公告)日: | 2021-10-26 |
发明(设计)人: | 李友赫 | 申请(专利权)人: | 沈阳阿尔特科技发展有限公司 |
主分类号: | H04L12/40 | 分类号: | H04L12/40;H04L29/12 |
代理公司: | 北京贵都专利代理事务所(普通合伙) 11649 | 代理人: | 李新锋 |
地址: | 110031 *** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 节点 自动 设置 波特率 地址 方法 | ||
1.一种主节点自动设置子节点波特率和地址的方法,其特征在于:该方法基于ModbusRTU串行链路通信系统实现,所述Modbus-RTU串行链路通信系统包括一个主节点和多个子节点;在主节点中保存了子节点的第一信息,所述第一信息如下所示:
No 设备序列号 子节点地址分配 波特率 设备通信状态 1 123456 从机1 9600-115200 通信状态:N | | N 123xyz 从机N 9600-115200 通信状态:N | | 247 123yyy 从机247 9600-115200 通信状态:N
;
其中,N:表示通信状态0-正常;1-通信失败1次;2-通信失败2次;3-通信异常;
每个子节点保存的第二信息,如下表所示:
序列号(唯一) 地址(可设置) 波特率(可设置) 123456 1-247 X(bps)
;
其中x:表示产品采用的波特率5种,包括:9.6k,19.2k,38.4k,57.6k,115.2k;所述方法具体包括自动设置子节点的地址和自动设置子节点的波特率;其中,所述的自动设置子节点的地址包括如下步骤:
S10、主节点逐条发送广播数据帧给子节点,所述广播数据帧如表所示:
地址 功能码 产品序列号 设置ADDR CRC 00 06 0x###### 1-247 0x####
;
S20、每个子节点接收广播数据帧后将广播数据帧中的序列号与该子节点所保存的第二信息中的序列号对比,若对比一致则将广播数据帧中的地址更新至该子节点的第二信息中地址字段中;
S30、子节点发送返回数据帧至主节点,所述返回数据帧如下表所示:
主节点将接收的返回数据帧中的序列号与其所保存的每个子节点的第一信息中的序列号相对比,若对比一致则将返回数据帧更新至该子节点的第一信息中;
S40、若所有子节点接收的广播数据帧中的序列号均与该子节点所保存的第二信息中的序列号不一致,则初始化与该序列号相对应的第一信息中的数据;
所述自动设置子节点的波特率包括如下步骤:
S11、主节点按照设定频率发送多次0x0D至Modbus-RTU串行链路通信系统;
S21、Modbus-RTU串行链路通信系统中的每个子节点接收0x0D后启动电源并将该子节点的波特率设置为一预设频率;
当子节点波特率都一致,且已知,子节点的地址均相同时:先把子节点信息登记到主节点的子节点信息表里;主节点里保持的子节点信息,根据产品序列号升序排序,然后用广播地址0,逐条发送给子节点,此时所有子节点都能收到信息,每个子节点都保持子节点的第二信息,再分析主节点传递来的信息里是否有与自己保持的序列号一致,就用传递进来的信息里的设置ADDR来更新子节点的第二信息里的地址字段;然后再使用248应答给主节点,主节点收到子节点传递来的信息数据正常就把信息更新子节点的第一信息的序列号相应的数据;如果没有应答就把子节点的第一信息的序列号相应的数据初始化;
如此把子节点的第一信息的信息表所有行都执行一遍,就可以自动设置通信链路上的所有子节点的地址;如上第一轮设置时子节点的第一信息的设备通信状态为正常的以外重新执行一遍,如此执行3遍结束;主节点上,更新完的子节点的第一信息可突出显示出有硬件故障的子节点信息;
当子节点波特率不清楚时,设置波特率和地址,自动设置所有子节点的波特率为38.4kbps,然后,间隔500ms发送三次0x0D到系统链路,系统链路上的每个子节点电源启动,即定期判断是否为波特率要求;采用的频率种类有5种,分别为9.6k,19.2k,38.4k,57.6k,115.2k;利用波特率穷举法,发送0x0D字节给系统链路;每个子节点接收到0x0D的字符就把自己的波特率设置为38.4k,重新设定所有子节点的地址即可;
在线新增加子节点,串行系统工作中,新的子节点不会事先登记到主节点的子节点的第一信息当中,需要动态加载到系统工作链路上时,系统运行中新的子节点,传感器出场设置地址为249,波特率为38.4k直接接入系统中,且系统默认的通信波特率是38.4k;主节点测试程序启动后,首先发送查询子节点的数据帧给所有子节点,查询249地址有没有应答信号,有应答表明有新的子节点加入进来了,这时查询子节点的第一信息中使用的有效地址是否=247,如果是则显示无可分配的地址,如果否则新增设地址、波特率、通信状态添加到子节点的第一信息的信息表中,将信息表中的各行都执行一次后重新开始查询249地址有没有应答信号;这样周而复始的执行下去,可以在系统正常运行当中添加新的子节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于沈阳阿尔特科技发展有限公司,未经沈阳阿尔特科技发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811576163.9/1.html,转载请声明来源钻瓜专利网。