CN114826812B - 一种rs485通信多主站的实现方法及系统 - Google Patents

一种rs485通信多主站的实现方法及系统 Download PDF

Info

Publication number
CN114826812B
CN114826812B CN202210150781.7A CN202210150781A CN114826812B CN 114826812 B CN114826812 B CN 114826812B CN 202210150781 A CN202210150781 A CN 202210150781A CN 114826812 B CN114826812 B CN 114826812B
Authority
CN
China
Prior art keywords
master device
communication
master
slave
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210150781.7A
Other languages
English (en)
Other versions
CN114826812A (zh
Inventor
史金良
于静
孙振来
张清雨
刘勇超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Industrial Internet Co Ltd
Original Assignee
Inspur Industrial Internet Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Industrial Internet Co Ltd filed Critical Inspur Industrial Internet Co Ltd
Priority to CN202210150781.7A priority Critical patent/CN114826812B/zh
Publication of CN114826812A publication Critical patent/CN114826812A/zh
Application granted granted Critical
Publication of CN114826812B publication Critical patent/CN114826812B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

本申请公开了一种RS485通信多主站的实现方法及系统,用以解决现有的RS485通信系统中从设备无法连接多个主设备的技术问题。方法包括:第一主设备在RS485通信系统启动之后,通过时间同步报文,将RS485通信系统中各设备对应的时间进行同步;第一主设备与第二主设备对RS485通信总线的通信状态进行排队监听;第一主设备或者第二主设备在监听到RS485通信总线的通信状态为空闲状态时,将其分别对应的数据缓冲区中的通信数据进行发送;从设备在接收到第一主设备或者第二主设备发送的通信数据之后,对通信数据进行校验,以确定RS485通信总线没有出现总线冲突。本申请通过上述方法实现了多个主设备共享RS485通信总线与一个从设备之间的通信。

Description

一种RS485通信多主站的实现方法及系统
技术领域
本申请涉及数据采集及通信技术领域,尤其涉及一种RS485通信多主站的实现方法及系统。
背景技术
在制造业企业中,许多设备的通信接口都是基于RS485实现的。同时,许多设备只有一个RS485通信接口。常见的RS485通讯系统多为一主多从的半双工通讯网络方式,每个RS485主设备可以连接多个RS485从设备,但每个RS485从设备只能连接一个RS485主设备。
在实际应用中,有时一个RS485从设备需要同时和两个甚至多个RS485主设备进行通信,如果直接通过RS485总线连接,必然会发生RS485总线冲突。
发明内容
本申请实施例提供了一种RS485通信多主站的实现方法及系统,用以解决现有的RS485从设备无法直接通过总线与多个RS485主设备进行通信的技术问题。
一方面,本申请实施例提供了一种RS485通信多主站的实现方法,包括:第一主设备在RS485通信系统启动之后,通过时间同步报文,将所述RS485通信系统中各设备对应的时间进行同步;其中,所述RS485通信系统至少包括第一主设备、第二主设备、RS485通信总线以及从设备;所述第一主设备与所述第二主设备对所述RS485通信总线的通信状态进行排队监听;其中,所述第一主设备的监听时间与所述第二主设备的监听时间均与所述RS485通信系统对应的传输速率有关;所述第一主设备在监听到所述RS485通信总线的通信状态为空闲状态时,将所述第一主设备对应的数据缓冲区中的通信数据进行发送,或者,所述第二主设备在监听到所述RS485通信总线的通信状态为空闲状态时,将所述第二主设备对应的数据缓冲区中的通信数据进行发送;所述从设备在接收到所述第一主设备或者所述第二主设备发送的通信数据之后,对所述通信数据进行校验,以确定所述RS485通信总线没有出现总线冲突。
在本说明书的一个或多个实施例中,所述第一主设备在RS485通信系统启动之后,通过时间同步报文,将所述RS485通信系统中各设备对应的时间进行同步,具体包括:所述第一主设备在所述RS485通信系统启动时,向所述从设备发送扫描报文;所述第一主设备在第一预设时间点,向所述从设备发送第一时间同步报文,以使所述从设备根据所述第一时间同步报文调整自身时钟;其中,所述第一预设时间点与所述RS485通信系统的启动时间有关;所述从设备准备第二时间同步报文,并在接收到所述第二主设备在第二预设时间点发送的扫描报文之后,将所述第二时间同步报文发送给所述第二主设备,以使所述第二主设备根据所述第二时间同步报文调整自身时钟;其中,所述第二预设时间点与所述RS485通信系统的启动时间有关,且在所述第一预设时间点之后。
在本说明书的一个或多个实施例中,所述第一主设备与所述第二主设备对所述RS485通信总线的通信状态进行排队监听,具体包括:所述第一主设备确定所述RS485通信系统采用的传输码类型,进而确定所述RS485系统对应的传输码位数;所述第一主设备根据所述传输码位数以及所述传输速率,确定所述RS485通信系统传输一位传输码所占用的传输时间;所述第一主设备根据所述传输码位数以及所述传输时间,确定所述第一主设备对应的监听时间。
在本说明书的一个或多个实施例中,所述第一主设备对应的监听时间为(传输码位数+1)*传输时间+1*α;所述第二主设备对应的监听时间为(传输码位数+1)*传输时间+2*α;其中,所述α为延时参数,用于指示所述第一主设备与所述第二主设备对所述RS485通信总线的监听时间差。
在本说明书的一个或多个实施例中,所述第一主设备将其对应的数据缓冲区中的通信数据进行发送之后,所述方法还包括:所述第一主设备将其对应的监听时间修改为(传输码位数+1)*传输时间+2*α;以及,所述第二主设备将其对应的监听时间修改为(传输码位数+1)*传输时间+1*α。
在本说明书的一个或多个实施例中,所述从设备对所述通信数据进行校验,具体包括:所述从设备提取所述通信数据中携带的校验码,并对所述校验码进行校验;所述从设备在校验结果为校验码错误的情况下,向所述第一主设备或者所述第二主设备发送应答报文;其中,所述应答报文的内容用于通知所述第一主设备或者所述第二主设备发送通信数据错误;所述第一主设备或者所述第二主设备在接收到所述从设备的应答报文之后,查询自身对应的数据发送标志位;其中,所述数据发送标志位用于指示所述第一主设备或者所述第二主设备是否发送过所述通信数据;所述第一主设备或者所述第二主设备在确定自身对应的数据发送标志位为1的情况下,向所述从设备重新发送所述通信数据。
在本说明书的一个或多个实施例中,所述第一主设备或者所述第二主设备向所述从设备重新发送所述通信数据,具体包括:所述第一主设备或者所述第二主设备在监听到所述RS485通信总线的通信状态为空闲状态时,直接向所述从设备发送所述通信数据;以及,所述第一主设备或者所述第二主设备在监听到所述RS485通信总线的通信状态为占线状态时,延时(传输码位数+1)*传输时间之后,重新向所述从设备发送所述通信数据。
在本说明书的一个或多个实施例中,所述从设备对所述校验码进行校验之后,所述方法还包括:所述从设备在校验结果为校验码正确的情况下,向所述第一主设备或者所述第二主设备发送通知报文;其中,所述通知报文的内容用于通知所述第一主设备或者所述第二主设备发送的通信数据正确;所述第一主设备或者所述第二主设备在预设时间内,没有接收到所述从设备发送的通知报文或者应答报文的情况下,直接向所述从设备重新发送所述通信数据;所述第一主设备或者所述第二主设备若连续发送三次所述通信数据,都没有接收到所述从设备发送的应答报文或者通知报文,则确定所述RS485通信系统发生通信异常。
在本说明书的一个或多个实施例中,在所述第一主设备与所述第二主设备对所述RS485通信总线的通信状态进行排队监听之后,所述方法还包括:所述第一主设备或者所述第二主设备在监听到所述RS485通信总线的通信状态为空闲状态时,确定所述第一主设备与所述第二主设备之间的优先级关系;若所述第一主设备对应的优先级高于所述第二主设备对应的优先级,则所述第一主设备优先将其数据缓冲区中的通信数据进行发送。
另一方面,本申请实施例还提供了一种RS485通信多主站的实现系统,包括:第一主设备、第二主设备、RS485通信总线以及从设备;其中,所述第一主设备用于,在所述RS485通信系统启动之后,通过时间同步报文,将所述RS485通信系统中各设备对应的时间进行同步;所述第一主设备与所述第二主设备用于,对所述RS485通信总线的通信状态进行排队监听;其中,所述第一主设备的监听时间与所述第二主设备的监听时间均与所述RS485通信系统对应的传输速率有关;所述第一主设备还用于,在监听到所述RS485通信总线的通信状态为空闲状态时,将所述第一主设备对应的数据缓冲区中的通信数据进行发送,或者,所述第二主设备还用于,在监听到所述RS485通信总线的通信状态为空闲状态时,将所述第二主设备对应的数据缓冲区中的通信数据进行发送;所述从设备用于,在接收到所述第一主设备或者所述第二主设备发送的通信数据之后,对所述通信数据进行校验,以确定所述RS485通信总线没有出现总线冲突。
本申请实施例提供的一种RS485通信多主站的实现方法及系统,通过对RS485系统内的各设备进行对时,使得系统内各设备的时钟实现同步;然后通过第一主设备与第二主设备对RS485通信总线进行排队监听,解决了两个主设备使用RS485通信总线的时序配合问题,从而避免了总线冲突;从设备在接收到任一主设备发送的通信数据之后进行数据校验,保证了通信数据传输的准确性,进一步保证了两个或者多个主设备使用同一RS485总线与一个从设备进行通信的可靠性,较好地实现了RS485通信系统中“一从多主”的通信方式。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种RS485通信多主站的实现方法流程图;
图2为本申请实施例提供的一种RS485通信多主站的实现系统架构图;
图3为本申请实施例提供的另一种RS485通信多主站的实现系统架构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在制造业迅速发展的大背景下,一些制造业企业纷纷往数字化转型,工厂设备互联、消除信息孤岛成为众企业的统一诉求。但是在数字化过程中,许多企业的设备老旧,设备的RS485接口被本身的控制系统所占用,无法提供多余的通信接口给信息化系统采集使用。
在制造业企业中,许多设备的通信接口都是基于RS485实现的,但许多设备只有一个RS485通信接口,常见的RS485通讯系统多为“一主多从”的半双工通讯网络方式,每个RS485主设备可以连接多个RS485从设备,但每个RS485从设备只能连接一个主设备。在实际应用中,有时一个RS485从设备需要同时和两个RS485主设备进行通信,如果直接通过RS485总线连接,就会发生RS485总线冲突。
本申请实施例提供了一种RS485通信多主站的实现方法及系统,解决了现有的RS485通信系统中,RS485从设备无法同于与两个或者多个RS485主设备通信连接的技术问题。
下面通过附图对本申请实施例提出的技术方案进行详细的说明。
图1为本申请实施例提供的一种RS485通信多主站的实现方法流程图。如图1所示,本申请实施例提供的实现方法至少包括以下执行步骤:
步骤101、第一主设备在RS485通信系统启动之后,通过时间同步报文,将RS485通信系统中各设备对应的时间进行同步。
本申请实施例提供的RS485通信系统多主站实现方法,在系统启动之后,首先要做的是对系统内各设备进行对时,以使通信系统内各个设备的时钟保持一致,进而便于后期第一主设备与第二主设备进行排队监听。
具体地,在RS485系统启动之后,第一主设备与第二主设备都会向从设备发送扫描报文,以确定从设备开始上电运行或者在线。但本申请实施例中并不是让第一主设备与第二主设备按照原有系统设定发送扫描报文的,而是对扫描报文的发送时间进行干预,以便于第一主设备与第二主设备进行时间同步报文的发送或者接收。
进一步地,本申请实施例中,在RS485系统启动时,第一主设备向从设备发送扫描报文,以确定从设备开始上电运行或者在线;然后第一主设备在第一预设时间点,向从设备发送第一时间同步报文;从设备在接收到上述第一时间同步报文之后,根据报文内容,调整自身时钟,以使从设备的时钟与第一主设备的时钟保持一致。需要说明的是,第一时间同步报文中携带的报文内容可以是第一主设备的时钟。在从设备将自身时钟调整完成之后,接收第二主设备发送的扫描报文,以使第二主设备明确从设备上电运行或者在线。
需要说明的是,本申请实施例中从设备在调整时钟时,处于非接收状态,即此时接收不到第二主设备发送的扫描报文。或者是,第二主设备将其对应的扫描报文在从设备调整完时钟之后再进行发送。
具体地,第二主设备在第二预设时间点向从设备发送扫描报文,从设备在接收到上述扫描报文之后,准备好携带自身时钟信息的第二时间同步报文,并将该第二时间同步报文作为第二主设备的扫描报文的应答报文,发送给第二主设备。进一步地,第二主设备在接收到第二时间同步报文之后,根据报文内容,调整自身时钟。在第二主设备将自身时钟调整为与从设备时钟一致之后,即完成RS485通信系统中各设备的时钟或时间同步。
需要说明的是,本申请实施例中的第一预设时间点与第二预设时间点均与RS485通信系统的启动时间有关,且第二预设时间点在第一预设时间点之后。即,第二主设备向从设备发送扫描报文的时间应该设计在第一主设备向从设备发送第一时间同步报文的时间点之后,以此保证从设备先将自身时钟调整为与第一主设备一致,然后第二主设备再按照从设备的时钟信息调整自身时钟,最终实现三者的时间同步。
步骤102、第一主设备与第二主设备对RS485通信总线的通信状态进行排队监听。
在RS485通信系统内的第一主设备、第二主设备以及从设备三者时间同步之后,第一主设备与第二主设备即可进行对RS485通信总线的排队监听工作。需要说明的是,本申请实施例中的排队监听指的是第一主设备与第二主设备按照不同的监听时间对RS485通信总线进行监听,而并非是第一主设备监听完,第二主设备再去监听这种监听方式。
具体地,第一主设备首先确定RS485通信系统所采用的传输码类型及传输速率。要知道,不同的传输码类型具有不同的传输码结构,也即传输码位数。而本申请实施例中,正是根据RS485通信系统对应的传输码位数以及传输速率,确定第一主设备与第二主设备的监听时间。在确定RS485通信系统的传输速率与传输码位数的情况下,即可计算出传输一位传输码所需要的传输时间。
进一步地,在计算出传输一位传输码所需要的传输时间之后,第一主设备与第二主设备分别根据以下计算方式,确定出对应的监听时间:
第一主设备对应的监听时间为:(传输码位数+1)*传输时间+1*α;
第二主设备对应的监听时间为:(传输码位数+1)*传输时间+2*α;
其中,α为延时参数,用于指示第一主设备与第二主设备对RS485通信总线的监听时间差。
需要说明的是,常规设计中,第一主设备与第二主设备只需要监听传输码位数*传输时间(传输一位传输码所需要的时间)即可,但在本申请实施例中,考虑到一个传输信号不可能瞬时在RS485通信总线上建立起来,即传输信号的建立过程需要一定的时间,即使这个时间很短,但也是实际存在的。因此,本申请实施例中多监听传输一位传输码的时间,即按照(传输码位数+1)*传输时间进行监听。
再者,假设第一主设备与第二主设备都处于准备发送的状态下,如果二者的监听时间均为传输码位数+1)*传输时间,那么在第一主设备或者第二主设备监听到RS485总线的通信状态为空闲状态时,二者都会进行数据发送,同时抢占总线,这样势必会造成RS485总线冲突。因此,本申请实施例中,在确定监听时间时增加一个延时参数α,以实现两个主设备差别延时,即第一主设备多监听一个α,第二主设备多监听两个α。这样,即使二者都监听到RS485总线的通信状态为空闲状态,由于二者的连续监听时间存在差别延时,靠前的(监听时间短的)主设备就会优先占用总线进行发送,而靠后的(监听时间长的)主设备还在连续监听,此时就不会造成总线冲突。
在本申请实施例的一种或多种可能实现方式中,第一主设备与第二主设备由于监听时间的延时不同,会存在第一主设备排队在前,第二主设备排队在后的情况。在这种情况下,如果二者的监听时间不进行调整,就会出现第二主设备轮空的情况发生,即第一主设备发送完数据后,又监听到RS485通信总线的空闲状态,此时第一主设备又进行数据发送,使得第二主设备轮空一次。为了避免这种情况的发生,本申请实施例中,第一主设备在将其数据缓冲区内的通信数据发送完成之后,调整其对应的监听时间,即第一主设备将自身的监听时间由(传输码位数+1)*传输时间+1*α修改为(传输码位数+1)*传输时间+2*α;同时,第二主设备将自身的监听时间由(传输码位数+1)*传输时间+2*α修改为(传输码位数+1)*传输时间+1*α;即将第一主设备的排队或者优先级往后移,将第二主设备的排队或者优先级往前移。
需要说明的是,在RS485通信系统中存在多个主设备时,可以确定其中一个或者几个主设备的监听时间不变,即优先级最高不能调整,用来完成一些特殊功能。
步骤103、在监听到RS485通信总线的通信状态为空闲状态时,第一主设备或者第二主设备将自身数据缓冲区中的通信数据发送给从设备。
本申请实施例中,第一主设备以及第二主设备按照上述监听时间对RS485通信总线的通信状态进行监听,并在监听到空闲状态时,将通信数据发送出去。
具体地,如果第一主设备在监听到RS485通信总线的通信状态为空闲状态,则第一主设备将其对应的数据缓冲区中的通信数据进行发送,或者,如果第二主设备在监听到RS485通信总线的通信状态为空闲状态,则第二主设备将其对应的数据缓冲区中的通信数据进行发送。
进一步地,如果第一主设备或者第二主设备的数据缓冲区中不存在将要发送的通信数据,则跳过数据发送步骤,继续进行监听。
步骤104、从设备在接收到第一主设备或者第二主设备发送的通信数据之后,对通信数据进行校验。
在第一主设备或者第二主设备将自身对应的数据缓冲区内的数据进行发送之后,从设备进行接收,并在接收到通信数据之后,对通信数据进行校验,以明确通信数据的准确性,即确定RS485通信总线没有发生冲突。
在本申请实施例的一种或多种可能实现方式中,第一主设备或者第二主设备发送的通信数据携带有数据校验码,从设备可以根据该数据校验码,对通信数据进行校验。具体地,从设备在接收到的通信数据中,提取携带的校验码,然后根据接收到的通信数据进行校验码计算,并将计算得到的数据校验码与提取出来的数据校验码进行比对,如果二者一致,则说明从设备接收到的通信数据正确,也即说明RS485通信总线正常,没有发生冲突。如果二者不一致,即从设备发现校验码出现错误,此时,从设备向第一主设备或者第二主设备(具体看是哪个主设备发送的通信数据)发送应答报文,以告知第一主设备或者第二主设备发生通信数据传输错误的情况。
进一步地,第一主设备或者第二主设备在接收到从设备发送的应答报文之后,查询自身对应的数据发送标志位。需要说明的是,第一主设备以及第二主设备的发送标志位分别用于指示第一主设备以及第二主设备是否发送过通信数据,具体地,如果第一主设备或者第二主设备发送过通信数据,则其对应的发送标志位为1;如果第一主设备或者第二主设备没有发送过通信数据,则其对应的发送标志位为0。
更进一步地,如果第一主设备或者第二主设备查询到自身对应的发送标志位为1,则说明之前确实发送过通信数据,此时,第一主设备或者第二主设备通过RS485通信总线向从设备重新发送通信数据。
从设备在接收到重新发送的数据之后,继续进行数据校验,直至确定接收到的通信数据正确,即确定RS485通信总线没有发生冲突。
在本申请实施例的一种或多种可能实现方式中,第一主设备或者第二主设备向从设备重新发送通信数据时,需要考虑RS485通信总线的状态问题,以避免RS485通信总线的冲突。具体地,如果第一主设备或者第二主设备监听到RS485通信总线的通信状态为空闲状态,则说明此时总线上没有数据传输,可以使用总线进行重新发送,此时第一主设备或者第二主设备直接向从设备发送所述通信数据。而如果第一主设备或者第二主设备监听到RS485通信总线的通信状态为占线状态,即此时的RS485通信总线上有数据传输,被占用,此时第一主设备或者第二主设备延时(传输码位数+1)*传输时间之后,重新向从设备发送所述通信数据。
需要说明的是,上述过程中延时(传输码位数+1)*传输时间,不考虑延时参数α,是因为,总线上有数据正在传输时,不管是刚刚开始传输,还是已经传输了一部分,延时(传输码位数+1)*传输时间,都能保证数据传输完成,即保证不会出现总线上当前传输的数据与第一主设备或者第二主设备将要重新发送的通信数据发送冲突。
在本申请实施例的一种或多种可能实现方式中,从设备在对接收到的通信数据进行校验之后,如果校验结果正确,从设备就会向第一主设备或者第二主设备发送通知报文,以告知第一主设备或者第二主设备其发送的通信数据已经被正确接收到。需要明确的是,本申请实施例中的应答报文与通知报文是同种类型的报文,只不过应答报文是用于通知第一主设备或者第二主设备收到的通信数据错误,而通知报文是用于通知第一主设备或者第二主设备收到的通信数据正确。
进一步地,第一主设备与第二主设备可以根据从设备发送的应答报文或者是通知报文,来判断从设备的状态是否正常,即RS485通信系统是否发生异常。具体地,第一主设备或者第二主设备在向从设备发送完通信数据之后,就进行报文接收状态,接收从设备返回的应答报文或者是通知报文。如果第一主设备或者第二主设备在预设时间内,没有接收到从设备发送的通知报文或者应答报文,则说明从设备可能出现没有接收到通信数据的情况发生,此时,第一主设备或者第二主设备直接向从设备重新发送通信数据。
更进一步地,如果第一主设备或者第二主设备连续发送三次通信数据,都没有接收到从设备发送的应答报文或者通知报文,此时,就可以直接确定RS485通信系统发生通信异常。
在本申请实施例的一种或多种可能实现方式中,将第一主设备与第二主设备进行优先级排序,也可以很好地避免二者在发送通信数据时遇到的时序问题,即避免总线冲突问题。因此,本申请实施例提出的技术方案中,第一主设备或者第二主设备在对RS485通信总线进行排队监听之后,方法还包括:第一主设备或者第二主设备在监听到RS485通信总线的通信状态为空闲状态时,确定二者之间的优先级关系,然后,优先级高的一个主设备进行通信数据的优先发送。例如,在第一主设备对应的优先级高于第二主设备对应的优先级的情况下,第一主设备优先将其数据缓冲区中的通信数据进行发送。如果第一主设备的数据缓冲区中不存在需要发送的通信数据,此时,再由第二主设备进行发送。
以上为本申请实施例中的方法实施例,基于同样的发明构思,本申请实施例还提供了一种RS485通信多主站的实现系统,其架构图如图2、图3所示。
图2为本申请实施例提供的一种RS485通信多主站的实现系统架构图。如图2所示,系统包括:第一主设备201、第二主设备202、RS485通信总线204以及从设备203。
其中,所述第一主设备201用于,在所述RS485通信系统启动之后,通过时间同步报文,将所述RS485通信系统中各设备对应的时间进行同步;所述第一主设备201与所述第二主设备202用于,对所述RS485通信总线的通信状态进行排队监听;其中,所述第一主设备201的监听时间与所述第二主设备202的监听时间均与所述RS485通信系统对应的传输速率有关;所述第一主设备201还用于,在监听到所述RS485通信总线的通信状态为空闲状态时,将所述第一主设备201对应的数据缓冲区中的通信数据进行发送,或者,所述第二主设备202还用于,在监听到所述RS485通信总线的通信状态为空闲状态时,将所述第二主设备202对应的数据缓冲区中的通信数据进行发送;所述从设备203用于,在接收到所述第一主设备201或者所述第二主设备202发送的通信数据之后,对所述通信数据进行校验,以确定所述RS485通信总线203没有出现总线冲突。
图3为本申请实施例提供的另一种RS485通信多主站的实现系统架构图。如图3所示,系统包括:第一主设备301、第二主设备302、从设备303以及RS485通讯共享器304。
其中,从设备303主要通过RS485通讯共享器304实现与第一主设备301以及第二主设备302之间的通信连接,即实现两个主设备共享一根RS485总线。具体地,第一主设备301通过RS485接口连接RS485通讯共享器304,第二主设备302通过RS485接口连接RS485通讯共享器304,从设备303通过RS485接口连接RS485通讯共享器304。
在本申请实施例的一种或多种可能实现方式中,RS485通讯共享器304采用市场主流的MCU中央处理器,基于Linux操作系统,使用C++高级语言,编写嵌入式软件,实现报文透传。若第一主设备301与第二主设备302同时发送报文,RS485通讯共享器304会进行智能排队,使得从设备303以最优最快的方式进行报文应答。
并且,RS485接口芯片采用MS1285,MS1285可应用于RS485通信系统的收发芯片,传输和接收速率可高达10Mbps。片内集成瞬态保护功能保护器件不受IEC61000静电放电(ESD)和瞬态放电(EFT)的影响。器件具有宽的共模电压范围,这使得此器件适合于长电缆运行上的多点应用。
在本申请实施例的一种或多种可能实现方式中,RS485通讯共享器304的供电系统,是在内部配有一个专用开关式稳压电源,将交流/直流供电电源转化为内部各子器件运行需要的工作电源(5V直流)。当输入端子为非干接点结构时,为外部输入元件提供24V直流电源。一般交流电压波动+10%(+15%)范围内,可以不采取其它措施而将设备直接连接到交流电网上去。
本申请实施例提供的一种RS485通信多主站的实现方法及系统,可以有效地解决工业现场单RS485口的多串口通信问题,较好的实现了RS485通信系统“一从多主”的通信方式,且成本低、运行稳定。
需要说明的是,本申请实施例中的说明,都是按照第一主设备、第二主设备这两个主设备参与通信的情况进行说明的,但在实际的应用场景中,有时可能会存在多个(三个或者三个以上)主设备参与通信的场景,本申请实施例提供的实现方法对此也可以进行良好的适用。即,本申请实施例中的主设备数量、从设备数量,仅用来做示例性说明,并不用于具体数量的限定。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (8)

1.一种RS485通信多主站的实现方法,其特征在于,所述方法包括:
第一主设备在RS485通信系统启动之后,通过时间同步报文,将所述RS485通信系统中各设备对应的时间进行同步;其中,所述RS485通信系统至少包括第一主设备、第二主设备、RS485通信总线以及从设备;包括:所述第一主设备在所述RS485通信系统启动时,向所述从设备发送扫描报文;所述第一主设备在第一预设时间点,向所述从设备发送第一时间同步报文,以使所述从设备根据所述第一时间同步报文调整自身时钟;其中,所述第一预设时间点与所述RS485通信系统的启动时间有关;所述从设备准备第二时间同步报文,并在接收到所述第二主设备在第二预设时间点发送的扫描报文之后,将所述第二时间同步报文发送给所述第二主设备,以使所述第二主设备根据所述第二时间同步报文调整自身时钟;其中,所述第二预设时间点与所述RS485通信系统的启动时间有关,且在所述第一预设时间点之后;
所述第一主设备与所述第二主设备对所述RS485通信总线的通信状态进行排队监听;其中,所述第一主设备的监听时间与所述第二主设备的监听时间均与所述RS485通信系统对应的传输速率有关;
所述第一主设备在监听到所述RS485通信总线的通信状态为空闲状态时,将所述第一主设备对应的数据缓冲区中的通信数据进行发送,或者,所述第二主设备在监听到所述RS485通信总线的通信状态为空闲状态时,将所述第二主设备对应的数据缓冲区中的通信数据进行发送;
所述从设备在接收到所述第一主设备或者所述第二主设备发送的通信数据之后,对所述通信数据进行校验,以确定所述RS485通信总线没有出现总线冲突,包括:所述从设备提取所述通信数据中携带的校验码,并对所述校验码进行校验;所述从设备在校验结果为校验码错误的情况下,向所述第一主设备或者所述第二主设备发送应答报文;其中,所述应答报文的内容用于通知所述第一主设备或者所述第二主设备发送的通信数据错误;所述第一主设备或者所述第二主设备在接收到所述从设备的应答报文之后,查询自身对应的数据发送标志位;其中,所述数据发送标志位用于指示所述第一主设备或者所述第二主设备是否发送过所述通信数据;所述第一主设备或者所述第二主设备在确定自身对应的数据发送标志位为1的情况下,向所述从设备重新发送所述通信数据。
2.根据权利要求1所述的一种RS485通信多主站的实现方法,其特征在于,所述第一主设备与所述第二主设备对所述RS485通信总线的通信状态进行排队监听,具体包括:
所述第一主设备确定所述RS485通信系统采用的传输码类型,进而确定所述RS485系统对应的传输码位数;
所述第一主设备根据所述传输码位数以及所述传输速率,确定所述RS485通信系统传输一位传输码所占用的传输时间;
所述第一主设备根据所述传输码位数以及所述传输时间,确定所述第一主设备对应的监听时间。
3.根据权利要求2所述的一种RS485通信多主站的实现方法,其特征在于,
所述第一主设备对应的监听时间为(传输码位数+1)*传输时间+1*α;
所述第二主设备对应的监听时间为(传输码位数+1)*传输时间+2*α;
其中,所述α为延时参数,用于指示所述第一主设备与所述第二主设备对所述RS485通信总线的监听时间差。
4.根据权利要求1所述的一种RS485通信多主站的实现方法,其特征在于,所述第一主设备将其对应的数据缓冲区中的通信数据进行发送之后,所述方法还包括:
所述第一主设备将其对应的监听时间修改为(传输码位数+1)*传输时间+2*α;以及,
所述第二主设备将其对应的监听时间修改为(传输码位数+1)*传输时间+1*α。
5.根据权利要求1所述的一种RS485通信多主站的实现方法,其特征在于,所述第一主设备或者所述第二主设备向所述从设备重新发送所述通信数据,具体包括:
所述第一主设备或者所述第二主设备在监听到所述RS485通信总线的通信状态为空闲状态时,直接向所述从设备发送所述通信数据;以及,
所述第一主设备或者所述第二主设备在监听到所述RS485通信总线的通信状态为占线状态时,延时(传输码位数+1)*传输时间之后,重新向所述从设备发送所述通信数据。
6.根据权利要求1所述的一种RS485通信多主站的实现方法,其特征在于,所述从设备对所述校验码进行校验之后,所述方法还包括:
所述从设备在校验结果为校验码正确的情况下,向所述第一主设备或者所述第二主设备发送通知报文;其中,所述通知报文的内容用于通知所述第一主设备或者所述第二主设备发送的通信数据正确;
所述第一主设备或者所述第二主设备在预设时间内,没有接收到所述从设备发送的通知报文或者应答报文的情况下,直接向所述从设备重新发送所述通信数据;
所述第一主设备或者所述第二主设备若连续发送三次所述通信数据,都没有接收到所述从设备发送的应答报文或者通知报文,则确定所述RS485通信系统发生通信异常。
7.根据权利要求1所述的一种RS485通信多主站的实现方法,其特征在于,在所述第一主设备与所述第二主设备对所述RS485通信总线的通信状态进行排队监听之后,所述方法还包括:
所述第一主设备或者所述第二主设备在监听到所述RS485通信总线的通信状态为空闲状态时,确定所述第一主设备与所述第二主设备之间的优先级关系;
若所述第一主设备对应的优先级高于所述第二主设备对应的优先级,则所述第一主设备优先将其数据缓冲区中的通信数据进行发送。
8.一种RS485通信多主站的实现系统,其特征在于,所述系统至少包括:第一主设备、第二主设备、RS485通信总线以及从设备;
所述第一主设备用于,在所述RS485通信系统启动之后,通过时间同步报文,将所述RS485通信系统中各设备对应的时间进行同步,包括:所述第一主设备在所述RS485通信系统启动时,向所述从设备发送扫描报文;所述第一主设备在第一预设时间点,向所述从设备发送第一时间同步报文,以使所述从设备根据所述第一时间同步报文调整自身时钟;其中,所述第一预设时间点与所述RS485通信系统的启动时间有关;所述从设备准备第二时间同步报文,并在接收到所述第二主设备在第二预设时间点发送的扫描报文之后,将所述第二时间同步报文发送给所述第二主设备,以使所述第二主设备根据所述第二时间同步报文调整自身时钟;其中,所述第二预设时间点与所述RS485通信系统的启动时间有关,且在所述第一预设时间点之后;
所述第一主设备与所述第二主设备用于,对所述RS485通信总线的通信状态进行排队监听;其中,所述第一主设备的监听时间与所述第二主设备的监听时间均与所述RS485通信系统对应的传输速率有关;
所述第一主设备还用于,在监听到所述RS485通信总线的通信状态为空闲状态时,将所述第一主设备对应的数据缓冲区中的通信数据进行发送,或者,所述第二主设备还用于,在监听到所述RS485通信总线的通信状态为空闲状态时,将所述第二主设备对应的数据缓冲区中的通信数据进行发送;
所述从设备用于,在接收到所述第一主设备或者所述第二主设备发送的通信数据之后,对所述通信数据进行校验,以确定所述RS485通信总线没有出现总线冲突,包括:所述从设备提取所述通信数据中携带的校验码,并对所述校验码进行校验;所述从设备在校验结果为校验码错误的情况下,向所述第一主设备或者所述第二主设备发送应答报文;其中,所述应答报文的内容用于通知所述第一主设备或者所述第二主设备发送的通信数据错误;所述第一主设备或者所述第二主设备在接收到所述从设备的应答报文之后,查询自身对应的数据发送标志位;其中,所述数据发送标志位用于指示所述第一主设备或者所述第二主设备是否发送过所述通信数据;所述第一主设备或者所述第二主设备在确定自身对应的数据发送标志位为1的情况下,向所述从设备重新发送所述通信数据。
CN202210150781.7A 2022-02-18 2022-02-18 一种rs485通信多主站的实现方法及系统 Active CN114826812B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210150781.7A CN114826812B (zh) 2022-02-18 2022-02-18 一种rs485通信多主站的实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210150781.7A CN114826812B (zh) 2022-02-18 2022-02-18 一种rs485通信多主站的实现方法及系统

Publications (2)

Publication Number Publication Date
CN114826812A CN114826812A (zh) 2022-07-29
CN114826812B true CN114826812B (zh) 2024-05-03

Family

ID=82527101

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210150781.7A Active CN114826812B (zh) 2022-02-18 2022-02-18 一种rs485通信多主站的实现方法及系统

Country Status (1)

Country Link
CN (1) CN114826812B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115189985B (zh) * 2022-08-24 2023-09-19 中国科学院沈阳自动化研究所 一种modbus多主站数据规划和转发装置
CN116566762B (zh) * 2023-07-07 2023-10-20 武汉亚为电子科技有限公司 一种基于Modbus-RTU协议的级联设备及其使用方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546141A (zh) * 2012-02-20 2012-07-04 杭州海康威视系统技术有限公司 485总线系统及其异步半双工通信方法
CN107659456A (zh) * 2017-10-19 2018-02-02 奥维飞越通信有限公司 一种基于rs485通信的数据冲突传输方法
CN111030909A (zh) * 2020-03-03 2020-04-17 南京科远智慧科技集团股份有限公司 一种应用于can总线多主设备通讯间时间同步的方法
CN112231260A (zh) * 2020-10-21 2021-01-15 中煤科工集团重庆研究院有限公司 一种基于动态优先级的抢占式多主rs485总线通讯方法
WO2021137226A1 (en) * 2019-12-30 2021-07-08 Essence Security International (E.S.I.) Ltd. Slave and master devices and methods

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558557B1 (en) * 1991-11-12 2009-07-07 Broadcom Corporation Low-power messaging in a network supporting roaming terminals
US10462759B2 (en) * 2017-01-31 2019-10-29 Dialog Semiconductor B.V. System and method for clock synchronization on a wireless network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546141A (zh) * 2012-02-20 2012-07-04 杭州海康威视系统技术有限公司 485总线系统及其异步半双工通信方法
CN107659456A (zh) * 2017-10-19 2018-02-02 奥维飞越通信有限公司 一种基于rs485通信的数据冲突传输方法
WO2021137226A1 (en) * 2019-12-30 2021-07-08 Essence Security International (E.S.I.) Ltd. Slave and master devices and methods
CN111030909A (zh) * 2020-03-03 2020-04-17 南京科远智慧科技集团股份有限公司 一种应用于can总线多主设备通讯间时间同步的方法
CN112231260A (zh) * 2020-10-21 2021-01-15 中煤科工集团重庆研究院有限公司 一种基于动态优先级的抢占式多主rs485总线通讯方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
高精度时钟同步系统的研究与实现策略;王延年;宋小伟;;国外电子测量技术;20180315(03);全文 *

Also Published As

Publication number Publication date
CN114826812A (zh) 2022-07-29

Similar Documents

Publication Publication Date Title
CN114826812B (zh) 一种rs485通信多主站的实现方法及系统
US20200201798A1 (en) Time and event based message transmission
US8819327B2 (en) Communication system having a can bus and a method for operating such a communication system
CN105743757B (zh) Rs485通讯终端自由组网的方法
CN111030909B (zh) 一种应用于can总线多主设备通讯间时间同步的方法
CN104424680A (zh) 一种门禁冗余控制系统
CN105183687A (zh) 一种分时串口通信方法及系统
US5896509A (en) Network system for a programmable controller
CN106953761B (zh) 服务器备灾系统及基于备灾系统的处理消息的方法
JP2019097088A (ja) シリアル通信システム
CN113722254B (zh) 一种适用于工业控制现场的多主机通讯总线系统
CN113806265A (zh) 一种spi主从式通讯方法
Hank Pelican: A new can controller supporting diagnosis and system optimization
Hilmer et al. A fault-tolerant communication architecture for real-time control systems
CN111614532B (zh) 一种基于dsp的can冗余通讯系统
CN111736578A (zh) 一种基于双cpu控制器的uds诊断方法及装置
Bertoluzzo et al. Application protocols for safety-critical CAN-networked systems
CN111984576B (zh) 数据通信系统以及方法
CN111478838B (zh) 一种高效高带宽的通信方法及系统
JP2000040013A (ja) 二重化通信システムの回線異常検出方法
Almeida Safety-critical automotive systems: New developments in CAN
JP2007174118A (ja) 通信メッセージ変換装置
CN111355647A (zh) 一种通信设备
CN114967559A (zh) 一种新型工业通信总线控制器
CN115664572A (zh) 时钟同步方法、装置及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Country or region after: China

Address after: 250101 19th floor, building S02, Inspur Science Park, No. 1036, Inspur Road, high tech Zone, Jinan, Shandong Province

Applicant after: Inspur industrial Internet Co.,Ltd.

Address before: 250101 19th floor, building S02, Inspur Science Park, No. 1036, Inspur Road, high tech Zone, Jinan, Shandong Province

Applicant before: Shandong Inspur industrial Internet Industry Co.,Ltd.

Country or region before: China

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant