预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN112260914A(43)申请公布日2021.01.22(21)申请号202010918803.0(22)申请日2020.09.04(71)申请人武汉迈威通信股份有限公司地址430000湖北省武汉市东湖新技术开发区流芳大道52号凤凰产业园E地块第2幢(72)发明人张朋飞周厚明(74)专利代理机构武汉蓝宝石专利代理事务所(特殊普通合伙)42242代理人廉海涛(51)Int.Cl.H04L12/40(2006.01)H04L29/12(2006.01)权利要求书2页说明书8页附图2页(54)发明名称一种虚拟ModbusID生成方法、装置和网关(57)摘要本发明实施例提供一种虚拟ModbusID生成方法和装置,要求ModbusID相同的元器件必须对接在Modbus网关的不同RS485总线上;也就是说对接在不同的物理串口上;不需要"Modbus从设置"支持重新设置ModbusID功能;通过Modbus网关的“虚拟ModbusID”转换算法;将位于多个Modbus总线上的ModbusRTU设备,虚拟成位于同一个“虚拟Modbus总线”上;ModbusTCP主设备感知不到Modbus从设备是接入在不同的RS485总线上;ModbusTCP主设备认为从设备是处在同一个Modbus总线上的。CN112260914ACN112260914A权利要求书1/2页1.一种虚拟ModbusID生成方法,其特征在于,包括:步骤101,将若干个虚拟ModbusID均分到Modbus网关的N个串口;步骤102,获取ModbusRTU设备的真实设备ModbusID和物理连接的串口ID,将ModbusRTU设备物理连接至任一串口中,并为所述ModbusRTU设备分配一个唯一的虚拟ModbusID,其中,同一串口中不接入真实设备ModbusID相同的ModbusRTU设备。2.根据权利要求1所述的虚拟ModbusID生成方法,其特征在于,步骤102中,并为所述ModbusRTU设备分配一个唯一的虚拟ModbusID,具体包括:对添加在同一串口下的ModbusRTU设备,基于真实设备ModbusID的大小进行排序,得到每个ModbusRTU设备的真实设备ModbusID排序序号;并基于虚拟ModbusID的最大值和最小值对ModbusRTU设备进行虚拟ModbusID分配:Virtual_Modbus_id=min_mod_id+dev_id或,Virtual_Modbus_id=max_mod_id-dev_id;其中,Virtual_Modbus_id为ModbusRTU设备分配到的虚拟ModbusID,max_mod_id为虚拟ModbusID中的最大值,min_mod_id为虚拟ModbusID中的最小值,dev_id为ModbusRTU设备的真实设备ModbusID排序序号。3.根据权利要求1所述的虚拟ModbusID生成方法,其特征在于,步骤102中,并为所述ModbusRTU设备分配一个唯一的虚拟ModbusID,具体包括:对添加在同一串口下的ModbusRTU设备进行虚拟ModbusID分配:Virtual_Modbus_id=com_id*com_modbus_cnt+dev_real_modbus_id%ph(k)=k%p其中,Virtual_Modbus_id为ModbusRTU设备分配到的虚拟ModbusID,com_id为物理连接的串口ID,com_modbus_cnt为每个串口可用虚拟ModbusID的数量,dev_real_modbus_id为真实设备ModbusID,h(k)为hash函数,p为不大于com_modbus_cnt的最大素数,%表示模p取余运算。4.根据权利要求2或3所述的虚拟ModbusID生成方法,其特征在于,还包括:删除ModbusRTU设备时,将ModbusRTU设备的虚拟ModbusID对应的真实设备ModbusID修改为一个非法值。5.根据权利要求4所述的虚拟ModbusID生成方法,其特征在于,还包括:新添加ModbusRTU设备,找第一个真实设备ModbusID为一个非法值的那一项,并序号作为新添加ModbusRTU设备的dev_id。6.根据权利要求3所述的虚拟ModbusID生成方法,其特征在于,还包括:若判断获知Virtual_Modbus_id对应的真实设备ModbusID不是非法值,则表示hash函数出现冲突;在该串口对应的虚拟modbusid范围内,顺序查找第一个真实设备ModbusID为一个非法值的那一项,假设序号为new_id;则设备对应的虚拟虚拟ModbusID为:Virtual_Modbus_id=com_