本发明专利技术涉及一种通讯方法,具体涉及一种基于RS485总线的低负载的通讯方法。该方法包括:启动并初始化主机和各从机,各从机进入准备状态;主机以固定的轮询间隔依次向各从机发出报文;若从机在响应时间内接收到有效的报文,则对主机的报文进行解析;若接收的报文是对当前从机的请求报文,则当前从机切换到发送状态;若接收的报文不是对当前从机的请求报文,则当前从机切换到休眠状态;若从机在响应时间内未接收到有效的报文,则该从机切换到掉线状态;主机跳过掉线状态的从机,持续对剩下的从机进行轮询。该通讯方法具有从机负载较低和系统成本较低的优点,解决了现有的通讯方法存有的从机负载高和系统成本高的问题,满足了主机与从机的通讯需要。机的通讯需要。机的通讯需要。
【技术实现步骤摘要】
一种基于RS485总线的低负载的通讯方法
[0001]本专利技术涉及一种通讯方法,具体涉及一种基于RS485总线的低负载的通讯方法。
技术介绍
[0002]RS485总线是工业环境下常用的可编程逻辑控制器之间的内部通信标准,它采用了半双工的工作方式,支持多点数据通信。RS485总线还具有平衡发送和差分接收的特点,因此具有抑制共模干扰的能力,一般来讲,RS485总线的网络拓扑采用的是终端匹配的总线型结构,即采用一条总线将各个节点串接起来,在这种网络系统中,通常存有一台性能较为强大的主机,用于接收和处理数据,各节点上还存有众多的从机,从机的性能较差,以便满足基础的数据交互功能并降低采购费用。
[0003]现有的基于RS485总线的通讯方式在工作过程中容易产生瓶颈,当主机高频率访问各个从机时,由于各个从机都需要持续对总线保持监听,导致各个从机的CPU负载居高不下,当总线上持续存在大量数据在传输时,由于从机要持续监听这些数据是否是对自身的访问,无论是基于中断还是查询方式,此时从机的串口外设将大量地占用CPU的算力,严重时会导致从机无法执行其他任务,使系统瘫痪;另一方面,由于主机的性能较强,对于高频率访问所产生的开销不敏感,但众多的低性能从机则难以应对高频率的访问,往往需要更换性能更强的从机,增加了采购成本,因此需要一种新的通讯方法来解决上述的不足。
技术实现思路
[0004]为了克服上述现有的通讯方法存有的从机负载高和系统成本高的技术缺陷,本专利技术提供一种从机负载较低和系统成本较低的基于RS485总线的低负载的通讯方法。
[0005]为了解决上述问题,本专利技术按以下技术方案予以实现的:
[0006]本专利技术所述的一种基于RS485总线的低负载的通讯方法,其特征在于,该方法包括:
[0007]启动并初始化主机和各从机,各从机进入准备状态;
[0008]主机轮询向各从机发出报文;
[0009]若从机在响应时间内接收到有效的报文,则对主机的报文进行解析;
[0010]若接收的报文是对当前从机的请求报文,则当前从机切换到发送状态;
[0011]若接收的报文不是对当前从机的请求报文,则当前从机切换到休眠状态;
[0012]若从机在响应时间内未接收到有效的报文,则该从机切换到掉线状态;
[0013]主机跳过掉线状态的从机,持续对剩下的从机进行轮询。
[0014]所述的启动并初始化主机和各从机,各从机进入准备状态,具体的,所述准备状态包括:从机开启接收数据的功能,等待主机的报文。
[0015]所述的轮询向各从机发出报文。轮询时间受到波特率限定而不同。
[0016]所述的若从机在响应时间内接收到有效的报文,则对主机的报文进行解析,具体的,所述响应时间为100ms以内。
[0017]所述的若从机在响应时间内接收到有效的报文,则对主机的报文进行解析,具体的,所述解析包括:从机关闭接收数据的功能,开启发送数据的功能,并检查报文内容,判断报文是否为对自身的请求报文。
[0018]所述的若接收的报文是对当前从机的请求报文,则当前从机切换到发送状态,具体的,所述发送状态包括:从机向主机连续发送数据,当从机将一个完整的数据帧发送完毕,则该从机切换到准备状态。
[0019]所述的若接收的报文不是对当前从机的请求报文,则当前从机切换到休眠状态,具体的,所述休眠状态包括:从机关闭接收数据和发送数据的功能,并在休眠时间结束之后切换到准备状态。
[0020]所述的休眠时间按需设定。
[0021]所述的若从机在响应时间内未接收到有效的报文,则该从机切换到掉线状态,具体的,所述掉线状态包括:从机关闭接收数据和发送数据的功能,并从RS485总线上断开。
[0022]与现有技术相比,本专利技术的有益效果是:
[0023]本专利技术所述的一种基于RS485总线的低负载的通讯方法具有从机负载较低和系统成本较低的优点,通过给从机设定初始化状态、准备状态、发送状态、休眠状态和掉线状态,可根据需要对从机的状态进行切换,以便在有从机与主机进行通讯时,将其他从机切换到休眠状态,避免从机持续监听导致CPU占用率居高不下;此外,由于该方法降低了从机的算力负载,因此使用性能较低的从机即可满足工作需要,无需批量更换高性能从机,节省了成本,解决了现有的通讯方法存有的从机负载高和系统成本高的问题,满足了主机与从机的通讯需要。
附图说明
[0024]下面结合附图对本专利技术的具体实施方式作进一步详细的说明,其中:
[0025]图1是本专利技术的方法流程示意图;
[0026]图2是本专利技术的从机的状态切换示意图。
具体实施方式
[0027]以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。
[0028]如图1~图2所示,本专利技术所述的一种基于RS485总线的低负载的通讯方法,其特征在于,该方法包括:
[0029]101、启动并初始化主机和各从机,各从机进入准备状态。
[0030]所述的启动并初始化主机和各从机,各从机进入准备状态,具体的,主机和各从机在初始化状态下完成必要的初始化工作,然后各从机即会切换到准备状态,所述准备状态包括:从机开启接收数据的功能,等待主机数据。
[0031]102、主机以固定的轮询间隔依次向各从机发出报文。
[0032]所述的主机轮询向各从机发出报文,具体的,主机采用一条RS485总线将各个节点串接起来,各节点上分别设置有从机,主机首先向RS485总线上距离最近的从机发出报文,传输工作结束后,主机等待接收报文。
[0033]103、若从机在响应时间内接收到有效的报文,则对主机的报文进行解析。
[0034]所述的若从机在响应时间内接收到有效的报文,则对主机的报文进行解析,具体的,所述响应时间为100ms以上,作为本专利技术一种较佳的实施方式,所述的响应时间为100ms,即,若从机在100ms以内接收到有效的报文,则对主机的报文进行解析;进一步的,所述报文为网络系统中实现交换与传输功能的数据单元,即主机一次性发送的数据块,报文中包含了将要发送的完整的数据信息,根据实际的需要,报文的长度不设限制;所述解析包括:从机关闭接收数据的功能,解析接收的数据。
[0035]104、若接收的报文是对当前从机的请求报文,则当前从机切换到发送状态;
[0036]所述的若接收的报文是对当前从机的请求报文,则当前从机切换到发送状态,具体的,当报文为请求报文,且指定了当前接收到报文的从机来完成数据传输工作,则当前从机切换到发送状态,所述发送状态包括:从机向主机连续发送数据,当从机将一个完整的数据帧发送完毕,则该从机切换到准备状态。
[0037]105、若接收的报文不是对当前从机的请求报文,则当前从机切换到休眠状态。
[0038]所述的若接收的报文不是对当前从机的请求报文,则当前从机切换到休眠状态本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于RS485总线的低负载的通讯方法,其特征在于,该方法包括:启动并初始化主机和各从机,各从机进入准备状态;主机轮询向各从机发出报文;若从机接收到有效的报文后,则对主机的报文进行解析;若接收的报文是对当前从机的请求报文,则当前从机切换到发送状态;若接收的报文不是对当前从机的请求报文,则当前从机切换到休眠状态;若从机在响应时间内未接收到有效的报文,则该从机切换到掉线状态;主机跳过掉线状态的从机,持续对剩下的从机进行轮询。2.根据权利要求1所述的一种基于RS485总线的低负载的通讯方法,其特征在于:所述的启动并初始化主机和各从机,各从机进入准备状态,具体的,所述准备状态包括:从机开启接收数据的功能,持续监听RS485总线的数据,以等待主机的报文。3.根据权利要求1所述的一种基于RS485总线的低负载的通讯方法,其特征在于:所述的主机轮询向各从机发出报文,当主机与从机存有确定的波特率时,轮询间隔保持固定。4.根据权利要求1所述的一种基于RS485总线的低负载的通讯方法,其特征在于:所述的从机在响应时间内接收到有效的报文,则对主机的报文进行解析,具体的,所述响应时间为100ms以内。5.根据权利要求4所述的一种基于RS485总线的低负载的...
【专利技术属性】
技术研发人员:杨康佳,秦茂,张兴旺,孙君光,解建伟,赖前程,
申请(专利权)人:广州擎天实业有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。