CN116016445A - 一种主从式总线通信系统的地址分配方法 - Google Patents
一种主从式总线通信系统的地址分配方法 Download PDFInfo
- Publication number
- CN116016445A CN116016445A CN202211600838.5A CN202211600838A CN116016445A CN 116016445 A CN116016445 A CN 116016445A CN 202211600838 A CN202211600838 A CN 202211600838A CN 116016445 A CN116016445 A CN 116016445A
- Authority
- CN
- China
- Prior art keywords
- slave
- address
- host
- allocation
- interval time
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种主从式总线通信系统的地址分配方法。本发明根据从机唯一的产品识别码来计算从机对分配地址请求报文的应答信息的发送间隔时间,并在对新的分配地址请求报文进行应答时调整应答信息的发送间隔时间。相比现有技术,本发明技术方案不容易产生总线冲突,即使冲突也可通过自动调整发送间隔时间快速解决,从而实现从机通信地址的快速自动分配;此外,本发明自动分配地址为纯软件实现,不需要增加硬件成本。
Description
技术领域
本发明涉及一种主从式总线通信系统的地址分配方法,属于工业通信总线技术领域。
背景技术
Modbus、profibus、HART等工业总线通信系统属于主从式通信,通信要求从机的地址必须唯一且不重复,一般使用从机的拨码开关或者人机界面输入方式逐一对从机地址进行设置,普遍需要手动设置从机的通讯地址,由此需要在现场进行从机地址的设置,给现场安装带来不便,同时在故障更换设备后,若由于遗忘或错误的设置了从机的通讯地址,亦会导致整个系统通信无法正常工作。现有自动地址实现方案主要有增加地址识别线、双串口、空闲状态申请分配地址、虚拟地址、令牌环等,需要增加硬件成本,或者导致分配地址完成时间较长,可靠性差,影响通信效率。
发明内容
本发明所要解决的技术问题在于克服现有技术不足,提供一种主从式总线通信系统的地址分配方法,可以极低的成本快速实现从机通信地址的自动分配。
本发明具体采用以下技术方案解决上述技术问题:
一种主从式总线通信系统的地址分配方法,包括以下步骤:
从机接收主机第一次广播的分配地址请求报文,根据以从机自身唯一的产品识别码为自变量的第一发送间隔时间函数计算出第一发送间隔时间,并按照第一发送间隔时间向主机发送包含从机自身的产品识别码的分配地址请求响应报文;
从机接收主机点对点通信发送的包含从机的产品识别码和分配地址的地址确认报文,用其中的分配地址更新自身的地址并向主机发送地址确认响应报文;
从机接收主机第n次广播的分配地址请求报文,并判断自身的地址是否已分配,如是,则不响应,如否,则根据以从机自身唯一的产品识别码为自变量的第n发送间隔时间函数计算出第n发送间隔时间,并按照第n发送间隔时间向主机发送包含从机自身的产品识别码的分配地址请求响应报文;其中,n=2,3,…,N,N为主机广播分配地址请求报文的次数,主机在每次广播分配地址请求报文后会进行冲突检测,如检测到总线冲突,则再次广播分配地址请求报文,直到不再检测到总线冲突。
相比现有技术,本发明技术方案具有以下有益效果;
本发明根据从机唯一的产品识别码来计算从机对分配地址请求报文的应答信息的发送间隔时间,该方案不容易产生总线冲突,即使冲突也可通过自动调整发送间隔时间快速解决,从而实现从机通信地址的快速自动分配;此外,本发明自动分配地址为纯软件实现,不需要增加硬件成本。
附图说明
图1为主机和从机报文交互模型示意图;
图2为为主机自动分配地址流程示意图;
图3为从机接收分配地址流程示意图;
图4为主机冲突检测报文交互模型示例;
图5为主机冲突检测处理流程示意图。
具体实施方式
针对现有主从式总线通信系统自动分配地址方案在解决总线冲突方面的不足,本发明的思路是根据从机唯一的产品识别码来计算从机对分配地址请求报文的应答信息的发送间隔时间。
具体地,本发明所提出的主从式总线通信系统的地址分配方法,包括以下步骤:
从机接收主机第一次广播的分配地址请求报文,根据以从机自身唯一的产品识别码为自变量的第一发送间隔时间函数计算出第一发送间隔时间,并按照第一发送间隔时间向主机发送包含从机自身的产品识别码的分配地址请求响应报文;
从机接收主机点对点通信发送的包含从机的产品识别码和分配地址的地址确认报文,用其中的分配地址更新自身的地址并向主机发送地址确认响应报文;
从机接收主机第n次广播的分配地址请求报文,并判断自身的地址是否已分配,如是,则不响应,如否,则根据以从机自身唯一的产品识别码为自变量的第n发送间隔时间函数计算出第n发送间隔时间,并按照第n发送间隔时间向主机发送包含从机自身的产品识别码的分配地址请求响应报文;其中,n=2,3,…,N,N为主机广播分配地址请求报文的次数,主机在每次广播分配地址请求报文后会进行冲突检测,如检测到总线冲突,则再次广播分配地址请求报文,直到不再检测到总线冲突。
为了便于公众理解,下面通过一个具体实施例并结合附图来对本发明的技术方案进行详细说明:
以Modbus总线通信系统为例,其采用图1所示主机和从机报文交互模型,通信为请求-应答(request-reply)模型。
在广播模式下,主机向所有的n个从机广播发送广播报文1,即分配地址请求报文request。
每个从机都拥有一个唯一的产品识别码,所有的从机根据自身的产品识别码按照预设的发送间隔时间函数计算自己的发送间隔时间,从机响应主机的分配地址请求报文发送包含自己的产品识别码的响应报文reply1-replyn。
主机接收到所有从机的包含自身产品识别码的响应报文reply1-replyn后,收集已连接从机的产品识别码,建立从机的管理列表,然后主机根据收集的从机产品识别码按一定规则分配地址给从机,主机向从机发送地址确认报文request1-requestn进行点对点通信确认分配地址,从机收到包含自己产品识别码的地址确认报文后响应主机地址确认报文。
主机根据所收到从机响应的报文进行总线冲突检测,如检测到总线冲突,则再次广播分配地址请求报文request;从机接收主机再次广播的分配地址请求报文,并判断自身的地址是否已分配,如是,则不响应,如否,则根据自身的产品识别码按照新的发送间隔时间函数重新计算自己的发送间隔时间,并按照该发送间隔时间响应主机的分配地址请求报文,发送包含自己的产品识别码的响应报文。
依此类推,直到主机未检测到总线冲突,则地址自动分配完成。
产品识别码是产品的唯一标识码,可以是一组有代表意义的数字或字母或数字字母组合组成,如产品出厂年/月/产品代号/序号组成的2208010001,BBJHJAJJJA,CK2208010001等。从机每一轮对分配地址请求报文的响应的发送间隔时间是以自身产品识别码为自变量,根据一系列预设的发送间隔时间函数计算得到。所述发送间隔时间函数可以是一次函数、加权随机函数、散列函数等。例如,第一次的响应信息发送间隔时间t用一次函数表示t=基准间隔时间*产品识别码第0位,再一次的响应信息发送间隔时间可以是t=基准间隔时间*产品识别码第1位,第三次的响应信息发送间隔时间可以是t=基准间隔时间*产品识别码第2位,依此类推,每次计算发送间隔时间所使用的产品识别码数据位数依次下移一位。或者,发送间隔时间t用加权随机函数表示t=fw(ID),fw是加权随机函数,参数ID是产品识别码,每次的发送间隔时间由产品识别码的加权随机函数计算得到。又或者,发送间隔时间t用散列函数表示t=hash(ID),hash是散列函数,参数ID是产品识别码,每次调整发送间隔时间由产品识别码散列函数计算发送间隔时间,下一次计算的发送间隔时间由上一次的发送间隔时间作为hash散列函数的参数再经过hash散列函数计算得到;hash散列函数可根据产品识别码唯一的特点构造,如:取产品识别码后四位(记为m),把m*基准间隔时间计算得出的时间作为基准采用除留余数法,所得余数作为当前发送间隔时间。
主机所采用的地址分配规则可以按照现有的各种地址分配规则,例如按主机收到从机响应的时间顺序,从有效地址开始递增分配。
主机可根据实际需求建立从机管理列表,例如表1所示的从机管理列表,主机根据从机响应主机的地址请求报文的响应信息reply1-replyn,收集从机的产品识别码,然后通过从机的产品识别码建立从机的管理列表,按响应时间先后的规则顺序分配地址给从机,并标识是否分配,默认地址0,标识为未分配,非0地址为已分配。
表1从机管理列表
产品识别码 | Modbus地址 | 是否分配 |
产品识别码1 | 1 | 是 |
产品识别码2 | 2 | 是 |
… | … | … |
产品识别码i | 0 | 否 |
… | … | … |
产品识别码n | n | 是 |
图2显示了主机自动分配地址工作流程:主机上电启动,发送广播报文1分配地址请求报文给所有从机,等待一段预设时间,如果收到从机分配地址请求响应报文,则判断地址未分配,则按产品识别码点对点发送分配地址报文给指定从机;如果没有收到从机分配地址请求响应报文,则重试发送分配地址请求报文,主机等待一段预设时间,收到指定从机分配地址响应报文,自动地址分配结束。
图3显示了从机接收分配地址流程:从机上电启动,读取本机配置,如果收到主机广播的分配地址请求报文且地址未分配,则按产品识别码及发送间隔时间函数计算发送间隔时间,并按照所计算的发送间隔时间响应主机的分配地址请求报文,发送包含自己的产品识别码的响应报文,然后等待主机分配地址报文,如收到分配地址报文中产品识别码与自己产品识别码一致,则响应分配地址报文;如未收到主机分配地址报文,则在收到主机再次广播的分配地址请求报文时,按产品识别码及新的发送间隔时间函数重新计算发送间隔时间,并按照新的发送间隔时间再次发送包含自己产品识别码的分配地址请求响应报文,然后等待主机分配地址报文,。。。,直到收到其中产品识别码与自己产品识别码一致的分配地址报文,从机响应分配地址报文。
图4显示了主机冲突检测报文交互模型示例,图5显示了主机冲突检测处理流程。从机接收到主机广播的分配地址请求报文request后,从机根据自身的产品识别码按照发送间隔时间函数计算自己的发送间隔时间,并按照计算出的发送间隔时间发送包含自己的产品识别码的响应报文reply1-replyn响应主机的分配地址请求报文。如果总线上存在多台从机冲突,总线上就会同时出现多个从机响应报文,导致主机接收到错误响应报文。主机收到从机响应的报文,如果判断发送间隔超时或校验错误或帧错误,则认为响应异常,主机标记广播分配地址请求报文request出错。主机建立从机管理列表,记录成功响应的从机产品识别码,按一定规则分配通信地址。如reply1-replyi成功响应,主机逐条广播地址确认报文request1-requesti,从机收到后,先比较自己的产品识别码和广播地址确认报文request1-requesti中含有的产品识别码是否匹配,如匹配一致,则从机发送含有产品识别码的地址确认报文reply_p1-reply_pi。主机把成功响应主机广播分配地址请求报文request的从机先分配好通信地址,再根据广播分配地址请求报文request出错标记再次发送广播分配地址请求报文request,等待从机发送含有产品识别码的地址确认报文reply_pi-1-reply_pn。从机收到后判断自己的通信地址是否已分配过,如已分配过,则不响应,如未分配过,则根据产品识别码及发送间隔时间函数重新计算自己的发送间隔时间,再次发送含有自己产品识别码的响应报文,直至所有从机地址分配完毕;如果主机收到的从机还还存在冲突报文,则重复上述过程,进行一轮新的广播分配地址请求流程。这样通过多次冲突检测及重复广播分配地址请求流程的方法解决总线冲突,实现Modbus地址的自动分配。
Claims (1)
1.一种主从式总线通信系统的地址分配方法,其特征在于,包括以下步骤:
从机接收主机第一次广播的分配地址请求报文,根据以从机自身唯一的产品识别码为自变量的第一发送间隔时间函数计算出第一发送间隔时间,并按照第一发送间隔时间向主机发送包含从机自身的产品识别码的分配地址请求响应报文;
从机接收主机点对点通信发送的包含从机的产品识别码和分配地址的地址确认报文,用其中的分配地址更新自身的地址并向主机发送地址确认响应报文;
从机接收主机第n次广播的分配地址请求报文,并判断自身的地址是否已分配,如是,则不响应,如否,则根据以从机自身唯一的产品识别码为自变量的第n发送间隔时间函数计算出第n发送间隔时间,并按照第n发送间隔时间向主机发送包含从机自身的产品识别码的分配地址请求响应报文;其中,n=2,3,…,N,N为主机广播分配地址请求报文的次数,主机在每次广播分配地址请求报文后会进行冲突检测,如检测到总线冲突,则再次广播分配地址请求报文,直到不再检测到总线冲突。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211600838.5A CN116016445A (zh) | 2022-12-12 | 2022-12-12 | 一种主从式总线通信系统的地址分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211600838.5A CN116016445A (zh) | 2022-12-12 | 2022-12-12 | 一种主从式总线通信系统的地址分配方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116016445A true CN116016445A (zh) | 2023-04-25 |
Family
ID=86018353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211600838.5A Pending CN116016445A (zh) | 2022-12-12 | 2022-12-12 | 一种主从式总线通信系统的地址分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116016445A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117278639A (zh) * | 2023-11-21 | 2023-12-22 | 浙江国利信安科技有限公司 | 基于确定性网络的通信时间调度的方法、设备和存储介质 |
-
2022
- 2022-12-12 CN CN202211600838.5A patent/CN116016445A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117278639A (zh) * | 2023-11-21 | 2023-12-22 | 浙江国利信安科技有限公司 | 基于确定性网络的通信时间调度的方法、设备和存储介质 |
CN117278639B (zh) * | 2023-11-21 | 2024-01-30 | 浙江国利信安科技有限公司 | 基于确定性网络的通信时间调度的方法、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108737590B (zh) | 一种地址自动分配的方法、系统、Modbus主站、Modbus从站 | |
EP0777948B1 (en) | Duplicate message detection method and apparatus | |
US10204072B2 (en) | Method for automatically allocating addresses to similar bus users | |
CN100477670C (zh) | 一种基于主从通信模式的地址自动分配设置方法 | |
EP3780559A1 (en) | Address competition method of multi-connected type control system | |
CN103856578B (zh) | Modbus RTU从站自动获取站地址方法及从站 | |
CN116016445A (zh) | 一种主从式总线通信系统的地址分配方法 | |
CN107580085B (zh) | 一种物联网组网方法 | |
CN103716420A (zh) | Modbus ASCII从站自动获取站地址方法及从站 | |
CN115314470A (zh) | 一种rs-485组网通信地址自动分配方法、主机、从机及系统 | |
US8443110B2 (en) | Approach for discovering devices on a common bus without direct communication | |
CN114500472B (zh) | 一种rs485通信地址自动分配的方法 | |
JPH03500237A (ja) | マルチアクセス通信システム | |
CN115470165A (zh) | 地址分配方法、电池管理系统以及电子设备 | |
CN111371659B (zh) | 一种rs485从设备地址自动分配的方法 | |
CN111343300A (zh) | 地址自动分配的方法及通讯系统 | |
CN115334041A (zh) | 一种主从站通讯设备自动分配地址的方法、主站、从站和系统 | |
CN113612868B (zh) | 设备地址分配方法、装置以及系统 | |
CN113179338B (zh) | 通信方法、电子设备及存储介质 | |
CN113765760B (zh) | 电池管理系统自动分配从控单元的地址的方法 | |
CN101094145A (zh) | 通信装置和通信系统 | |
JP2002290310A (ja) | 無線通信システム | |
CN117544596B (zh) | 遥测系统的地址自动分配方法及遥测系统、存储介质 | |
CN114866111B (zh) | 一种地址绑定方法、系统、主控节点和设备节点 | |
CN113791804B (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 |