在一个Modbus RTU网络中实现主从双角色节点的方法技术

技术编号:24215479 阅读:35 留言:0更新日期:2020-05-20 18:54
本发明专利技术公开了一种在同一个Modbus RTU网络中实现主从双角色节点的方法。该主从双角色节点只需要一个Modbus物理接口,既作为从节点,响应标准主节点的操作请求;同时也作为扩展主节点,管控网络中标准主节点无法或不需要管控的从节点。本方法避免了网络的物理分割、省去了网关,网络结构更简单、系统部署更快速、成本更节约。

Implementation of master-slave dual role node in a Modbus RTU network

【技术实现步骤摘要】
在一个ModbusRTU网络中实现主从双角色节点的方法
本专利技术涉及Modbus领域,具体涉及一种在一个ModbusRTU网络中实现主从双角色节点的方法。
技术介绍
Modbus通讯协议在自动化控制领域应用非常广泛,具体又分为ModbusASCII、ModbusRTU以及ModbusTCP三中通信模式,其中ModbusRTU在实际应用中最为普遍。ModbusRTU协议是一个主从(master/slave)架构的串行协议:在一个ModBus网络中,包含一个地址为0的主节点(master)和多个的从节点(slave),每一个slave设备都有一个唯一的地址,地址值在1到247之间。ModbusRTU是一种串行协议,采用菊花链拓扑,并通常使用485接口,因此,Modbus网络中的节点均为半双工工作模式,也就是说节点发送数据和接收数据不能同时进行。ModbusRTU协议的上述特征限定了一个Modbus网络中只能有一个主节点;一个节点要么为主节点、要么为从节点,主从节点不能混用。实际工作中,如果遇到需要多个主节点、或者来自不同厂家的从节点存在兼容性问题,就必须在物理上划分多个Modbus网络,并通过Modbus网关连接多个Modbus网络。传统技术存在以下技术问题:1.本质上都是基于Modbus网络的物理分割;2.都是类似网关的技术思路,典型特征就是节点装置需要有多个物理接口、分别连接不同的Modbus网络;3.无法简化网络结构,部署麻烦、成本高。
技术实现思路
专利技术要解决的技术问题是提供一种在一个ModbusRTU网络中实现主从双角色节点的方法,该主从双角色节点只需要一个Modbus物理接口,既作为从节点,响应标准主节点的操作请求;同时也作为扩展主节点,管控网络中标准主节点管辖范围之外的其他从节点。本方法避免了网络的物理分割、省去了网关,网络结构更简单、系统部署更快速、成本更节约。允许一个Modbus节点同时具备主、从两种角色属性,并根据运行时的上下文需求动态切换主/从模式和收/发状态。主从双角色节点只需要一个Modbus物理接口,所有Modbus节点都在同一个物理网络中、采用统一的串口通信参数,包括波特率、数据位、停止位、校验位等。使得主从双角色节点能够有效地避免主/从模式切换以及半双工收/发模式造成的冲突。上述方法的创新性集中在主从双角色节点的工作机制和冲突回避算法上,而通信协议则完全遵从Modbus规范,具有广泛的兼容性。为了解决上述技术问题,本专利技术提供了一种在一个ModbusRTU网络中实现主从双角色节点的方法,包括:其网络结构、为一个标准的ModbusRTU串行网络,网络中包括一个标准的主节点(Master)、若干个(1到n)标准从节点(Slave),以及一个主从双角色节点(特命名为Maslave),Maslave节点在切换为从节点模式时地址假定为n+1;并且,n个标准从节点分为两类:其中节点1到m处于标准主节点的管辖范围内;节点m+1到n不受标准主节点管辖,而是由Maslave管辖;上述Modbus网络中所有节点都处于同一个物理网络,采用统一的串口通信参数;Maslave节点只需要一个Modbus物理接口,既作为从节点,响应标准主节点的操作请求,这时Maslave等同于节点1到m;同时也作为扩展主节点,管控网络中标准主节点管辖范围之外的从节点m+1到n。在其中一个实施例中,Maslave节点启动后从FLASH中加载停机前最近一次保存的模型参数,完成现场恢复;如果是第一次运行,则加载默认的模型参数;然后,立即进入主节点工作模式,完成第一次从节点查询,其过程包括切换到主节点模式、切换到发送模式、向所辖从节点发送指令;指令发送后Maslave立即转入接收模式,等待从节点响应。根据Modbus标准,从节点应立即响应,因此,以超时时间t1(百毫秒级)为限,Maslave或者收到从节点响应、或者超时;如果收到响应,则进行相应的应用层处理;同时,Maslave更新模型参数,并重新计算主从模式冲突概率、将参数回写入FLASH,Maslave节点根据模型计算结果,决定是切换到主节点模式还是切换到从节点模式。在其中一个实施例中,如果切换到从节点模式,其过程包括切换到从节点模式、切换到接收模式、等待标准主节点指令,如果在超时时间t2(秒级)内收到指令,则进行相应的应用层处理,并切换到发送模式向标准主节点发送响应消息,同时(包括t2超时后),Maslave更新模型参数,并重新计算主从模式冲突概率、将参数回写入FLASH,Maslave节点根据模型计算结果,决定是切换到主节点模式还是切换到从节点模式。在其中一个实施例中,Maslave实时运算主从角色冲突预测算法(P),对可能产生的冲突进行预测,当冲突发生概率(p)大于预设门限(h)时,进行主动回避,输入参数包括影响切换到主节点时机的参数集(M)和影响切换到从节点时机的参数集(S)。在其中一个实施例中,主从角色冲突预测算法对以上两组参数进行计算,得出如果Maslave下一时刻切换到主节点模式遭遇冲突的概率,如果此概率p大于系统预先设定的门限(h)则,说明较大概率标准主节点会发送指令,因此Maslave切换到从节点模式,准备接收标准主节点指令;否则,Maslave切换到主节点模式,向所辖从节点(部分或全部)发送指令。门限h为预设参数(0<=h<=1),表示对冲突的容忍度,h值越大对冲突的容忍度越高。主从角色冲突概率p的预测算法可用下列公式表示:p=P(M,S)其中,M=[m1,m2,…,mm]S=[S1,S2,…,Sn]在其中一个实施例中,主从角色冲突预测算法完成M,S到p的变换,具体算法有多种选择,包括但不限于线性公式、的形式至少包括线性公式、二次函数、高阶函数,以及机器学习模型,所述机器学习模型,至少包括随机森林、神经网络;此外,主从角色冲突预测算法支持多级处理,每级均可采用上述列举算法对M和S分别或者复合进行处理,再将中间结果代入下级。在其中一个实施例中,主从角色冲突预测算法具有两级处理功能,具体如下:第一级变换针对参数集M和参数集S,分别计算需要向所辖从节点发指令的紧迫度(pm)和标准主节点即将发消息的概率(ps);这里pm=f1(M),f1采用分段线性函数:公式中a为常量(a>=0),表示超过向从节点发送指令的最大时间间隔后的惩罚幅度;这里ps=f2(S),f2采用分段线性函数:公式中b为常量(b>=0),表示t2超时百分比对ps的惩罚幅度。第二级变换将pm和ps综合运算获得冲突概率p,函数f采用加权平均公式。p=f(pm,ps)=w1·pm+w2·ps+c公式中c为补偿常量(-1<c<1),w1、w2为权重常量,并且满足-1<=w1<=0,0<=w2<=1。基于同样的专利技术构思,本申请还提供一种计算机设备,包括存储器、处理器及存储本文档来自技高网...

【技术保护点】
1.一种在一个Modbus RTU网络中实现主从双角色节点的方法,其特征在于,包括:其网络结构、为一个标准的Modbus RTU串行网络,网络中包括一个标准的主节点(Master)、若干个(1到n)标准从节点(Slave),以及一个主从双角色节点(特命名为Maslave),Maslave节点在切换为从节点模式时地址假定为n+1;并且,n个标准从节点分为两类:其中节点1到m处于标准主节点的管辖范围内;节点m+1到n不受标准主节点管辖,而是由Maslave管辖;上述Modbus网络中所有节点都处于同一个物理网络,采用统一的串口通信参数;Maslave节点只需要一个Modbus物理接口,既作为从节点,响应标准主节点的操作请求,这时Maslave等同于节点1到m;同时也作为扩展主节点,管控网络中标准主节点管辖范围之外的从节点m+1到n。/n

【技术特征摘要】
1.一种在一个ModbusRTU网络中实现主从双角色节点的方法,其特征在于,包括:其网络结构、为一个标准的ModbusRTU串行网络,网络中包括一个标准的主节点(Master)、若干个(1到n)标准从节点(Slave),以及一个主从双角色节点(特命名为Maslave),Maslave节点在切换为从节点模式时地址假定为n+1;并且,n个标准从节点分为两类:其中节点1到m处于标准主节点的管辖范围内;节点m+1到n不受标准主节点管辖,而是由Maslave管辖;上述Modbus网络中所有节点都处于同一个物理网络,采用统一的串口通信参数;Maslave节点只需要一个Modbus物理接口,既作为从节点,响应标准主节点的操作请求,这时Maslave等同于节点1到m;同时也作为扩展主节点,管控网络中标准主节点管辖范围之外的从节点m+1到n。


2.如权利要求1所述的在一个ModbusRTU网络中实现主从双角色节点的方法,其特征在于,Maslave节点启动后从FLASH中加载停机前最近一次保存的模型参数,完成现场恢复;如果是第一次运行,则加载默认的模型参数;然后,立即进入主节点工作模式,完成第一次从节点查询,其过程包括切换到主节点模式、切换到发送模式、向所辖从节点发送指令;指令发送后Maslave立即转入接收模式,等待从节点响应。根据Modbus标准,从节点应立即响应,因此,以超时时间t1(百毫秒级)为限,Maslave或者收到从节点响应、或者超时;如果收到响应,则进行相应的应用层处理;同时,Maslave更新模型参数,并重新计算主从模式冲突概率、将参数回写入FLASH,Maslave节点根据模型计算结果,决定是切换到主节点模式还是切换到从节点模式。


3.如权利要求2所述的在一个ModbusRTU网络中实现主从双角色节点的方法,其特征在于,如果切换到从节点模式,其过程包括切换到从节点模式、切换到接收模式、等待标准主节点指令,如果在超时时间t2(秒级)内收到指令,则进行相应的应用层处理,并切换到发送模式向标准主节点发送响应消息,同时(包括t2超时后),Maslave更新模型参数,并重新计算主从模式冲突概率、将参数回写入FLASH,Maslave节点根据模型计算结果,决定是切换到主节点模式还是切换到从节点模式。


4.如权利要求2所述的在一个ModbusRTU网络中实现主从双角色节点的方法,其特征在于,Maslave实时运算主从角色冲突预测算法(P),对可能产生的冲突进行预测,当冲突发生概率(p)大于预设门限(h)时,进行主动回避,输入参数包括影响切换到主节点时机的参数集(M)和影响切换到从节点时机的参数集(S)。


5.如权利要求4所述的在一个ModbusRTU网络中实现主...

【专利技术属性】
技术研发人员:孙宝石
申请(专利权)人:苏州数言信息技术有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1