CN107181659B - 基于rs485总线的智能柜通信方法以及系统 - Google Patents
基于rs485总线的智能柜通信方法以及系统 Download PDFInfo
- Publication number
- CN107181659B CN107181659B CN201610135576.8A CN201610135576A CN107181659B CN 107181659 B CN107181659 B CN 107181659B CN 201610135576 A CN201610135576 A CN 201610135576A CN 107181659 B CN107181659 B CN 107181659B
- Authority
- CN
- China
- Prior art keywords
- command
- slave
- slave device
- slave devices
- delay 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/403—Bus networks with centralised control, e.g. polling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
一种基于RS485总线的智能柜通信方法以及系统,用于主设备和从设备之间的通信,主设备通过RS485总线连接至少一个从设备,各个从设备具有不同的地址编号,方法包括:S1、自定义通信协议格式和通信协议中的命令格式,命令格式的预设字段表示时间戳/用户数据;S2、主设备通过以下步骤获取所有从设备的身份信息:主设备给所有的从设备发送广播命令,且此时的广播命令中的时间戳/用户数据的数值用于标识单位延时时间,从设备根据自身的地址编号以及单位延时时间确定该从设备的本次延时时间,并在接收到广播命令后等待一个本次延时时间后发送包含该从设备的身份信息的返回命令。本发明避免了冲突问题,主设备不需指定就可以自动得到所有从设备的地址。
Description
技术领域
本发明涉及智能柜通信领域,尤其涉及一种基于RS485总线的智能柜通信方法以及系统。
背景技术
随着智能设备的广泛普及和使用,单片机系统中需要越来越多的各种不同类型的智能设备与主机通讯,由于主机的物理端口数量的限制,同时也为了便于上层软件的设计,通常具有同一类或相似功能的多个设备会通过某种方式连接到主机的同一个端口,从而方便主机对它们的统一访问和控制。
智能仪表是随着单片机技术的成熟而发展起来的,企业在仪表选型时其中的一个必要条件就是要具有联网通信接口。RS232接口可以实现全双工点对点的通信方式,但这种方式不能实现联网功能且受限于主机物理端口数量。随后出现的RS485解决了这个问题。
RS485接口组成的半双工网络,这种接线方式为总线式拓扑结构,在同一总线上最多可以挂接32个结点。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。RS485网的设备间要想相互通信息只有通过主设备(Master)中转才能实现,这个主设备通常是PC,而这种设备网中只允许存在一个主设备,其余全部是从设备(Slave)。
智能柜系统中通常包含普通快递柜子系统、冷鲜柜子系统和其它柜子系统,其中各子系统中都有各自的控制板、硬件电路、开锁模块、传感器数据采集模块,各子系统还有一个公共的用于远程控制的无线传输模块。由于各子系统的硬件电路、开锁功能逻辑、传感器类型等各不相同,因此,需要解决如何在主机的统一控制下实现对各子系统的功能操作和访问,获取或设置子系统的配置和工作方式,有效区分子系统返回的数据和状态,同时又能避免总线冲突的问题。
采用经典的Modbus总线技术似乎可以解决这些问题。首先智能柜系统符合主从设备的模型,因而查询、应答的通讯方式是适合当前系统的;其次它提供了准确而紧凑的帧格式可以用于控制各子系统;最后它还提供了比较完备的错误检测功能。然而因为紧凑的帧格式而无法区分特定状态下的数据,这种技术不能自动获得从设备的地址,另外,也无法分辨同一从设备返回的先后数据。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于RS485总线的智能柜通信方法以及系统。
本发明解决其技术问题所采用的技术方案是:构造一种基于RS485总线的智能柜通信方法,用于主设备和从设备之间的通信,所述主设备通过RS485总线连接至少一个从设备,各个从设备具有不同的地址编号且所有的地址编号是连续的,所述方法包括:
S1、自定义通信协议格式和通信协议中的命令格式,命令格式的预设字段表示时间戳/用户数据;
S2、主设备通过以下步骤获取所有从设备的身份信息:主设备给所有的从设备发送广播命令,且此时的广播命令中的时间戳/用户数据的数值用于标识单位延时时间,从设备根据自身的地址编号以及所述单位延时时间确定该从设备的本次延时时间,并在接收到广播命令后等待一个本次延时时间后发送包含该从设备的身份信息的返回命令。
在本发明所述的基于RS485总线的智能柜通信方法中,步骤S2中所述的确定该从设备的本次延时时间基于以下公式:
T=AddrN*T0
其中,T代表本次延时时间,单位为毫秒;AddrN代表地址编号,T0代表单位延时时间,单位为毫秒。
在本发明所述的基于RS485总线的智能柜通信方法中,所述方法还包括:
S3、主设备通过以下步骤与某类从设备进行通讯:主设备基于步骤S2中各个从设备的返回命令建立在线设备信息列表,并根据所述在线设备信息列表给某类从设备发送广播命令,且此时的广播命令中的时间戳/用户数据的数值用于标识用户数据,从设备根据所述用户数据以及步骤S2中获取的单位延时时间确定该从设备的本次延时时间,并在接收到广播命令后等待一个本次延时时间后发送返回命令。
在本发明所述的基于RS485总线的智能柜通信方法中,所述步骤S3中的用户数据为字节数据,且该字节数据转换为二进制数据后,所述二进制数据中的数值为1的位基于在线设备信息列表的从设备的地址编号确定;
步骤S3中所述的确定该从设备的本次延时时间包括:从设备根据该二进制数据中的所有数值为1的位的信息以及自身的地址编号,确定该从设备在在线的同类从设备中的排序,并根据该排序基于以下公式确定该从设备的本次延时时间:
T=SeqN*T0
其中,T代表本次延时时间,单位为毫秒;SeqN代表从设备在在线的同类从设备中的排序;T0代表单位延时时间,单位为毫秒。
在本发明所述的基于RS485总线的智能柜通信方法中,所述方法还包括:
S4、主设备通过以下步骤与某个从设备进行通讯:主设备给某个从设备发送命令,且此时命令中的时间戳/用户数据的数值用于标识命令发出时间,从设备将所述命令发出时间填写到返回命令的时间戳/用户数据字段后再将返回命令发送给主设备。
在本发明所述的基于RS485总线的智能柜通信方法中,步骤S1中的命令格式包括以下字段:命令类型、命令数据、时间戳/用户数据,
在所述步骤S2中,主设备通过设定命令类型的数值设定发出的命令是发往所有从设备的广播命令且该广播命令是要求从设备返回身份信息;
在所述步骤S3中,主设备通过设定命令类型的数值设定发出的命令是发往某类从设备的广播命令,以及通过设定命令数据中的数值设定该广播命令要求从设备所要执行的操作;
在所述步骤S4中,主设备通过设定通信协议中的板地址字段的数值设定发出的命令是发往某个从设备的命令,以及通过设定命令类型中的数值设定该命令要求从设备所要执行的操作。
在本发明所述的基于RS485总线的智能柜通信方法中,步骤S1中的通信协议格式包括以下字段:
包头,标识一个协议包的开始;
数据长度,标识此协议包所含数据的字节数;
板地址,标识此协议包所要发往的从设备的地址;
命令,标识此协议包所含的命令;
校验和,标识对前面字段的内容进行的CRC16校验和。
在本发明所述的基于RS485总线的智能柜通信方法中,所述身份信息包括从设备的地址编号、版本号和可以提供的命令类型。
本发明还公开了一种基于RS485总线的智能柜通信系统,包括:主设备和至少一个从设备,所述主设备通过RS485总线连接所有的从设备,各个从设备具有不同的地址编号且所有的地址编号是连续的,所述系统通过如上所述的方法进行通信。
实施本发明的基于RS485总线的智能柜通信方法以及系统,具有以下有益效果:本发明自定义通信协议格式和通信协议中的命令格式,特别是设定了时间戳/用户数据字段,在需要获取所有从设备的身份信息的时候,可以通过广播命令将单位延时时间填写到该时间戳/用户数据字段以告知各个从设备,各从设备根据自身的地址编号以及所述单位延时时间确定该从设备的本次延时时间,由于各从设备的地址编号是不同的,所以各从设备返回命令的时间也就不同,这就避免了冲突问题,主设备不需指定就可以自动得到所有从设备的地址,设备断线或未连接从设备也能预先获知,避免了每次从设备地址变更都需要更改上位机程序或配置文件的麻烦;
进一步的,针对某类从设备的广播时,基于建立在线设备信息列表确定用户数据,从设备再基于用户数据按照顺序返回命令,只有具有对应功能的从设备才予以响应,而且响应是分时的且没有等待不会导致数据失效,485总线一直处于有效利用状态;
更进一步的,向同一从设备短时间内发送相同的命令时,每次通信下发的命令和返回命令都在时间戳/用户数据字段中设置了相同的命令发出时间,因此便于区分命令是何时所发,上位机程序可以根据该时间戳来区分作何种处理。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明的基于RS485总线的智能柜通信系统的结构示意图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
参考图1,是本发明的基于RS485总线的智能柜通信系统的结构示意图。
系统包括主设备和至少一个从设备,所述主设备通过RS485总线连接所有的从设备,各个从设备具有不同的地址编号且所有的地址编号是连续的,地址编号可以用Addr0~AddrN表示,例如假如有24台从设备,则可以依次用0-23表示各个从设备的地址编号,当然实际通过协议包发送时,其是用二进制或者十六进制表示,例如0x00~0x17。
所述系统通过以下方法进行通信:
S1、自定义通信协议格式和通信协议中的命令格式,命令格式的预设字段表示时间戳/用户数据;
其中,从设备返回的协议格式和命令格式与主设备发出的协议格式和命令格式一致。
S2、主设备通过以下步骤获取所有从设备的身份信息:主设备给所有的从设备发送广播命令,且此时的广播命令中的时间戳/用户数据的数值用于标识单位延时时间,从设备根据自身的地址编号以及所述单位延时时间确定该从设备的本次延时时间,并在接收到广播命令后等待一个本次延时时间后发送包含该从设备的身份信息的返回命令。
S3、主设备通过以下步骤与某类从设备进行通讯:主设备基于步骤S2中各个从设备的返回命令建立在线设备信息列表,并根据所述在线设备信息列表给某类从设备发送广播命令,且此时的广播命令中的时间戳/用户数据的数值用于标识用户数据,从设备根据所述用户数据以及步骤S2中获取的单位延时时间确定该从设备的本次延时时间,并在接收到广播命令后等待一个本次延时时间后发送返回命令。
S4、主设备通过以下步骤与某个从设备进行通讯:主设备给某个从设备发送命令,且此时命令中的时间戳/用户数据的数值用于标识命令发出时间,从设备将所述命令发出时间填写到返回命令的时间戳/用户数据字段后再将返回命令发送给主设备。
关于步骤S1:
参考下面的表1所示,自定义的通信协议格式主要包括以下字段:
包头,标识一个协议包的开始。例如,在本实施例中,固定为0xAA,0x55,也就是说一旦从设备解析出协议包的开头是0xAA,0x55,就可以判断是基于本发明所设定的通信协议进行通信的。
数据长度,标识此协议包所含数据的字节数;
板地址,标识此协议包所要发往的从设备的地址;
命令,标识此协议包所含的命令,对于该字段,本发明同样进行了自定义,在后文将会重点介绍;
校验和,标识对前面字段的内容进行的CRC16校验和,大端(big-endian)字节序,即按先高字节,后低字节的顺序。
表1
参考表2,对于上述表1中的命令进行了自定义,本发明规定命令格式包括以下字段:命令类型、命令数据、时间戳/用户数据。
表2
其中,命令类型包括三大类:
第一类是针对所有从设备的广播命令,且该广播命令的功能是获取所有从设备的身份信息,例如从设备的地址编号、版本号和可以提供的命令类型。
例如,可以用0xFF表示这种命令类型,则其既表示该命令是针对所有从设备的广播命令,又表示其功能仅仅是获取所有从设备的身份信息。当然0xFF只是一个示例,可以根据需要自行确定具体数值。
第二类是针对某类从设备的广播命令,例如,可以用0x0F~0x(M-1)F表示这种命令类型,M表示从设备的类别数。比如,若系统有4种类别的从设备,分别为:普通锁控板、冷鲜柜控制板、温控器、WiFi模块,那么可以用0x0F~0x3F表示这4种类别的从设备的广播命令的命令类型。
这类广播命令与第一类广播命令的不同,不仅仅在于广播的范围不同,更在于第一类广播命令的命令类型兼具表示获取所有从设备的身份信息的操作指示,而第二类广播命令的命令类型仅仅能表示其所要发往的目的从设备,具体的从设备所要执行的操作需要结合命令数据(也可以称之为子命令)这个字段。例如,本发明针对上述的4种类别的广播命令0x0F~0x3,例举了部分子命令,如表2-1、2-2、2-3、2-4所示。
表2-1.0x0F命令的命令数据中包含的子命令(普通锁控板)
子命令表示 | 含义 | 子命令数据字节数 | 描述 |
0x00 | 查询锁 | N-1 | 查询所有普通锁控板的锁状态 |
0x01 | 开锁 | N-1 | 设置所有普通锁控板的锁状态 |
0x0F | 查询版本 | N-1 | 查询所有普通锁控板的版本号 |
表2-2.0x1F命令的命令数据中包含的子命令(冷鲜柜控制板)
子命令表示 | 含义 | 子命令数据字节数 | 描述 |
0x00 | 查询门 | N-1 | 查询所有冷鲜柜的门状态 |
0x01 | 查询锁 | N-1 | 查询所有冷鲜柜的锁状态 |
0x02 | 开锁 | N-1 | 打开所有冷鲜柜的锁 |
0x0F | 查询版本 | N-1 | 查询所有冷鲜柜控制板的版本号 |
表2-3.0x2F命令的命令数据中包含的子命令(温控器)
子命令表示 | 含义 | 子命令数据字节数 | 描述 |
0x00 | 查询温度 | N-1 | 查询所有温控器的当前温度值 |
0x01 | 设置阈值 | N-1 | 设置所有温控器的上下阈值 |
表2-4.0x3F命令的命令数据中包含的子命令(WiFi模块)
子命令表示 | 含义 | 子命令数据字节数 | 描述 |
0x00 | 配置WiFi | N-1 | 配置WiFi模块的工作模式 |
第三类就是针对某个从设备的普通命令,例如可以用0xXY(X=0,1,…M,Y≠F)表示这种命令类型,XY的具体取值可以根据需要设置。
下面的表3中即是以4种类别的从设备为例,归纳的所有命令类型。
表3
其中,命令数据表示命令相关的数据,一些命令可能没有命令数据。
其中,时间戳/用户数据根据命令类型的不同,表示3种不同的意义。第一种是用于标识单位延时时间(例如3字节的毫秒数),第二种是用于标识用户数据,第三种是用于标识命令发出时间(Min-1B,Sec-6b,MilliSecond-10b)。
关于步骤S2:
在所述步骤S2中,主设备通过设定命令类型的数值设定发出的命令是发往所有从设备的广播命令且该广播命令是要求从设备返回身份信息。且步骤S2中所述的确定该从设备的本次延时时间基于以下公式:
T=AddrN*T0
其中,T代表本次延时时间,单位为毫秒;AddrN代表地址编号,T0代表单位延时时间,单位为毫秒。
例如,根据表3的定义,则步骤S2中应该设定命令类型的数值为0xFF,另外还需要设定时间戳/用户数据的数值作为单位延时时间T0。还可以在命令数据中设定从地址编号AddrN的范围,例如0-23则可以在命令数据这个字段中填入0x00,0x17,当然命令数据的数值也可以缺省。板地址可以随意。
因此,主设备发送的协议包如表4所示:
表4
那么从设备首先根据包头即可确定该协议包采用的是本发明的自定义协议;再根据命令类型0xFF即可知道此属于一条针对所有设备的广播命令,且从设备需要返回地址编号、版本号和可以提供的命令类型等身份信息;然后再根据时间戳/用户数据的0x00,0x01,0xF4的数值可以确定T0=500mS。于是,24台设备分别在等待(0~23)*T0的时间后发送包含身份信息的返回命令。
可见,自定义协议格式和命令格式后,各个从设备的返回命令的发送时间是完全错开的,因此可以避免总线冲突,而且从设备根据命令类型的数值就可以判断出该类广播命令兼具的功能是要求从设备发送身份信息,这样就实现了自动获取从设备身份信息,避免了每次从设备地址变更都需要更改上位机程序或配置文件的麻烦。
关于步骤S3:
首先,主设备通过设定命令类型的数值设定发出的命令是发往某类从设备的广播命令,以及通过设定命令数据中的数值设定该广播命令要求从设备所要执行的操作。
然后,确定用户数据,用户数据为字节数据,且该字节数据转换为二进制数据后,所述二进制数据中的数值为1的位基于在线设备信息列表的从设备的地址编号确定。
最后,从设备根据该二进制数据中的所有数值为1的位的信息以及自身的地址编号,确定该从设备在所有的在线的同类从设备中的排序,并根据该排序基于以下公式确定该从设备的本次延时时间:
T=SeqN*T0
其中,T代表本次延时时间,单位为毫秒;SeqN代表从设备在所有的在线的同类从设备中的排序,其数值范围为0~N-1;N为整数,表示从设备的总数量;T0代表单位延时时间,单位为毫秒。
例如,假如主设备可以连接24台从设备,在经过步骤S2后,建立了如下表5所示的在线设备信息列表。那么根据该表可以看出:在线的设备总共有6台,其中第0、2、8号属于同一类:普通锁控板。
表5
假如现在要“查询所有普通锁控板的锁状态”,那么需要给“普通锁控板”这类设备发送广播。
首先根据表3确定普通锁控板所对应的广播命令的命令类型应该是:0x0F,将其填入命令类型所对应的字段。因为所要执行的操作是查询锁状态,根据表2-1可知其对应的子命令是0x00,将其填入命令数据(子命令)所对应的字段。
然后,确定用户数据。24台设备对应24位二进制(也就是3个字节),那么二进制数据的第0、2、8位应该为1,即时间戳/用户数据的数值是:0000 0000,0000 0001,0000 0101,写入协议包中用16进制表示也即0x00,0x01,0x05。
同样的,该类广播命令中板地址可以随意。
根据上述步骤,于是可以得到主设备发送的协议包如表6所示:
表6
最后,从设备根据用户数据“0x00,0x01,0x05”对应的二进制数据“0000 0000,0000 0001,0000 0101”确定总共有3台普通锁控板,且分别为0、2、8号,0、2、8号板的排序依次为0、1、2,那么其应该分别等待0*T0、1*T0、2*T0。于是,地址编号为0x00的0号普通锁控板将会在收到命令后处理后立即响应,而地址编号为0x02的2号普通锁控板和地址编号为0x08的8号普通锁控板将在收到命令后分别等待T0和2*T0的时间后响应主设备。
由于基于建立在线设备信息列表确定用户数据,从设备再基于用户数据按照顺序返回命令,只有具有对应功能的从设备才予以响应,而且响应是分时的且没有等待不会导致数据失效,485总线一直处于有效利用状态。
关于步骤S4:
该步骤中,主设备通过设定通信协议中的板地址字段的数值设定发出的命令是发往某个从设备的命令,以及通过设定命令类型中的数值设定该命令要求从设备所要执行的操作。此是直接通过设定表1中的“板地址”确定目的设备,通过设定表2中的“命令类型”设定所要执行的操作,与平常的通信协议差不多,此处不再赘述。
值得注意的是,在该步骤中,时间戳/用户数据的数值用于标识命令发出时间,从设备将所述命令发出时间填写到返回命令的时间戳/用户数据字段后再将返回命令发送给主设备。
例如,主设备在第0秒、第1秒、第2秒内分别给地址为0x05(表5)的冷鲜柜锁控板发送了3条查询门的状态命令,但在表2中分别写入了3字节的时间戳“0x00,0x00,0x00”,“0x00,0x03,0xE8”,“0x00,0x03,0xE8”,设备0x05在响应主设备的查询命令时就将当前的门状态与对应的时间戳写入返回命令,主设备可以根据时间戳来区别返回的命令是否对应它所发出的命令,避免了命令混淆。参考表7-1以及7-2,示意出了主设备在第1秒发送给地址为0x05的从设备的协议包,以及0x05的从设备返回给主设备的协议包(对应第1秒发送的状态)。
表7-1主设备在第1秒发送给地址为0x05的从设备的协议包
表7-2从设备返回给主设备的协议包(对应第1秒发送的状态)
表7-1和表7-2中的“0x00,0x03,0xE8”表示1秒,数据长度5个字节;表7-2中的命令数据字段中的“0xFF,0xFE,0xFF”表示了0x05号板对应的生鲜柜的门状态,数据长度8个字节。
由于向同一从设备短时间内发送相同的命令时,每次通信下发的命令和返回命令都在时间戳/用户数据字段中设置了相同的命令发出时间,因此便于区分命令是何时所发,上位机程序可以根据该时间戳来区分作何种处理。
综上所述,实施本发明的基于RS485总线的智能柜通信方法以及系统,具有以下有益效果:本发明自定义通信协议格式和通信协议中的命令格式,特别是设定了时间戳/用户数据字段,在需要获取所有从设备的身份信息的时候,可以通过广播命令将单位延时时间告知各个从设备,各从设备根据自身的地址编号以及所述单位延时时间确定该从设备的本次延时时间,由于各从设备的地址编号是不同的,所以各从设备返回命令的时间也就不同,这就避免了冲突问题,主设备不需指定就可以自动得到所有从设备的地址,设备断线或未连接从设备也能预先获知,避免了每次从设备地址变更都需要更改上位机程序或配置文件的麻烦;进一步的,针对某类从设备的广播时,基于建立在线设备信息列表确定用户数据,从设备再基于用户数据按照顺序返回命令,只有具有对应功能的从设备才予以响应,而且响应是分时的且没有等待不会导致数据失效,485总线一直处于有效利用状态;更进一步的,向同一从设备短时间内发送相同的命令时,每次通信下发的命令和返回命令都在时间戳/用户数据字段中设置了相同的命令发出时间,因此便于区分命令是何时所发,上位机程序可以根据该时间戳来区分作何种处理。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (7)
1.一种基于RS485总线的智能柜通信方法,其特征在于,用于主设备和从设备之间的通信,所述主设备通过RS485总线连接至少一个从设备,各个从设备具有不同的地址编号且所有的地址编号是连续的,所述方法包括:
S1、自定义通信协议格式和通信协议中的命令格式,命令格式的预设字段表示时间戳/用户数据;
S2、主设备通过以下步骤获取所有从设备的身份信息:主设备给所有的从设备发送广播命令,且此时的广播命令中的时间戳/用户数据的数值用于标识单位延时时间,从设备根据自身的地址编号以及所述单位延时时间确定该从设备的本次延时时间,并在接收到广播命令后等待一个本次延时时间后发送包含该从设备的身份信息的返回命令;
S3、主设备通过以下步骤与某类从设备进行通讯:主设备基于步骤S2中各个从设备的返回命令建立在线设备信息列表,并根据所述在线设备信息列表给某类从设备发送广播命令,且此时的广播命令中的时间戳/用户数据的数值用于标识用户数据,从设备根据所述用户数据以及步骤S2中获取的单位延时时间确定该从设备的本次延时时间,并在接收到广播命令后等待一个本次延时时间后发送返回命令;
其中,所述步骤S3中的用户数据为字节数据,且该字节数据转换为二进制数据后,所述二进制数据中的数值为1的位基于在线设备信息列表的从设备的地址编号确定;
步骤S3中所述的确定该从设备的本次延时时间包括:从设备根据该二进制数据中的所有数值为1的位的信息以及自身的地址编号,确定该从设备在在线的同类从设备中的排序,并根据该排序基于以下公式确定该从设备的本次延时时间:
T=SeqN*T0
其中,T代表本次延时时间,单位为毫秒;SeqN代表从设备在在线的同类从设备中的排序;T0代表单位延时时间,单位为毫秒。
2.根据权利要求1所述的基于RS485总线的智能柜通信方法,其特征在于,步骤S2中所述的确定该从设备的本次延时时间基于以下公式:
T=AddrN*T0
其中,T代表本次延时时间,单位为毫秒;AddrN代表地址编号,T0代表单位延时时间,单位为毫秒。
3.根据权利要求1所述的基于RS485总线的智能柜通信方法,其特征在于,所述方法还包括:
S4、主设备通过以下步骤与某个从设备进行通讯:主设备给某个从设备发送命令,且此时命令中的时间戳/用户数据的数值用于标识命令发出时间,从设备将所述命令发出时间填写到返回命令的时间戳/用户数据字段后再将返回命令发送给主设备。
4.根据权利要求3所述的基于RS485总线的智能柜通信方法,其特征在于,步骤S1中的命令格式包括以下字段:命令类型、命令数据、时间戳/用户数据,
在所述步骤S2中,主设备通过设定命令类型的数值设定发出的命令是发往所有从设备的广播命令且该广播命令是要求从设备返回身份信息;
在所述步骤S3中,主设备通过设定命令类型的数值设定发出的命令是发往某类从设备的广播命令,以及通过设定命令数据中的数值设定该广播命令要求从设备所要执行的操作;
在所述步骤S4中,主设备通过设定通信协议中的板地址字段的数值设定发出的命令是发往某个从设备的命令,以及通过设定命令类型中的数值设定该命令要求从设备所要执行的操作。
5.根据权利要求1所述的基于RS485总线的智能柜通信方法,其特征在于,步骤S1中的通信协议格式包括以下字段:
包头,标识一个协议包的开始;
数据长度,标识此协议包所含数据的字节数;
板地址,标识此协议包所要发往的从设备的地址;
命令,标识此协议包所含的命令;
校验和,标识对前面字段的内容进行的CRC16校验和。
6.根据权利要求1所述的基于RS485总线的智能柜通信方法,其特征在于,所述身份信息包括从设备的地址编号、版本号和可以提供的命令类型。
7.一种基于RS485总线的智能柜通信系统,其特征在于,包括:主设备和至少一个从设备,所述主设备通过RS485总线连接所有的从设备,各个从设备具有不同的地址编号且所有的地址编号是连续的,所述系统通过权利要求1-6任一项所述的方法进行通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610135576.8A CN107181659B (zh) | 2016-03-10 | 2016-03-10 | 基于rs485总线的智能柜通信方法以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610135576.8A CN107181659B (zh) | 2016-03-10 | 2016-03-10 | 基于rs485总线的智能柜通信方法以及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107181659A CN107181659A (zh) | 2017-09-19 |
CN107181659B true CN107181659B (zh) | 2020-06-30 |
Family
ID=59829624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610135576.8A Expired - Fee Related CN107181659B (zh) | 2016-03-10 | 2016-03-10 | 基于rs485总线的智能柜通信方法以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107181659B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108243017B (zh) * | 2016-12-24 | 2020-10-23 | 华为技术有限公司 | 广播实现方法、装置和设备 |
CN107942769B (zh) * | 2017-10-09 | 2021-04-06 | 深圳市瑞凌实业股份有限公司 | 数字电源与多种数字焊接设备的通信系统及方法 |
CN109660483A (zh) * | 2017-10-10 | 2019-04-19 | 深圳市美好创亿医疗科技有限公司 | 嵌入式硬件通信协议及通信系统 |
CN108345558B (zh) * | 2017-12-29 | 2020-02-21 | 河南平高电气股份有限公司 | 一种支持多协议的rs485集配单元 |
CN108650296A (zh) * | 2018-03-30 | 2018-10-12 | 深圳阿凡达智控有限公司 | 通讯方法、装置以及系统 |
CN108737590B (zh) * | 2018-05-15 | 2022-02-25 | 浙江正泰电器股份有限公司 | 一种地址自动分配的方法、系统、Modbus主站、Modbus从站 |
CN109495215B (zh) * | 2018-12-20 | 2022-02-11 | 山东比特智能科技股份有限公司 | 一种半双工总线的通信方法、系统、装置及可读存储介质 |
CN109981821A (zh) * | 2019-04-10 | 2019-07-05 | 深圳市信锐网科技术有限公司 | 物联网总线地址的分配方法、系统、装置、设备及介质 |
CN110187171A (zh) * | 2019-06-25 | 2019-08-30 | 武汉阿迪克电子股份有限公司 | 一种快速入网机制的LoRaWAN电能表及入网方法 |
CN111147619B (zh) * | 2019-12-20 | 2022-07-19 | 海丰通航科技有限公司 | 本地实现rs485从机设备自动分配地址的方法和系统 |
CN111614534A (zh) * | 2020-05-18 | 2020-09-01 | 上海采日能源科技有限公司 | 通信方法、装置及电子设备 |
CN111817820B (zh) * | 2020-05-28 | 2021-08-20 | 珠海格力电器股份有限公司 | 设备的编码方法及装置、基于二总线的编码系统 |
CN112150726B (zh) * | 2020-09-18 | 2022-06-21 | 递易(上海)智能科技有限公司 | 综合型智能柜及其使用方法 |
CN112860591B (zh) * | 2021-01-27 | 2022-07-01 | 艾欧创想智能科技(武汉)有限公司 | 一种rs485总线利用信号继电器顺序寻址的方法 |
CN113965308A (zh) * | 2021-10-26 | 2022-01-21 | 上海三思电子工程有限公司 | 连接通信方法、从设备以及设备控制系统 |
CN114202861A (zh) * | 2021-12-17 | 2022-03-18 | 广东天波信息技术股份有限公司 | 一种智能快递柜系统中的数据防碰撞方法、系统及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551153A (zh) * | 2009-01-15 | 2009-10-07 | 东元总合科技(杭州)有限公司 | 多联式空调系统和多联式空调系统自动定址方法 |
CN101895453A (zh) * | 2010-07-19 | 2010-11-24 | 江苏省东方世纪网络信息有限公司 | 共享型总线主从通讯模式下地址自动识别的握手方法 |
CN103577485A (zh) * | 2012-08-07 | 2014-02-12 | 上海达实联欣科技发展有限公司 | 主从模式查询系统及方法 |
CN104716393A (zh) * | 2013-12-17 | 2015-06-17 | 北汽福田汽车股份有限公司 | 电池参数采集控制方法、装置及电池管理系统 |
CN105278413A (zh) * | 2015-10-30 | 2016-01-27 | 广西柳工机械股份有限公司 | 上位机与同类can设备的通信方法 |
-
2016
- 2016-03-10 CN CN201610135576.8A patent/CN107181659B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551153A (zh) * | 2009-01-15 | 2009-10-07 | 东元总合科技(杭州)有限公司 | 多联式空调系统和多联式空调系统自动定址方法 |
CN101895453A (zh) * | 2010-07-19 | 2010-11-24 | 江苏省东方世纪网络信息有限公司 | 共享型总线主从通讯模式下地址自动识别的握手方法 |
CN103577485A (zh) * | 2012-08-07 | 2014-02-12 | 上海达实联欣科技发展有限公司 | 主从模式查询系统及方法 |
CN104716393A (zh) * | 2013-12-17 | 2015-06-17 | 北汽福田汽车股份有限公司 | 电池参数采集控制方法、装置及电池管理系统 |
CN105278413A (zh) * | 2015-10-30 | 2016-01-27 | 广西柳工机械股份有限公司 | 上位机与同类can设备的通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107181659A (zh) | 2017-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107181659B (zh) | 基于rs485总线的智能柜通信方法以及系统 | |
KR100596756B1 (ko) | 홈 네트워크 시스템 | |
CN101222377B (zh) | 一种分布式主从机通信中对从机参数的处理方法及装置 | |
CN106899638A (zh) | 一种解决数据异构的融合物联网关系统和方法 | |
CN103248526A (zh) | 实现带外监控管理的通信设备、方法及主从切换方法 | |
CN103188122B (zh) | 基于can网络的通讯系统及方法 | |
DE112014005505T5 (de) | Sensorsonde und verwandte Systeme und Verfahren | |
WO2023279910A1 (zh) | 一种主从机控制方法、控制系统及血液柜 | |
CN112765075A (zh) | 一种基于串口的一对多通信方法及系统 | |
CN107221939B (zh) | 无功补偿控制组网系统及其容量分散整合补偿方法 | |
CN101453356A (zh) | 一种计算机切换器及其与多台服务器匹配的方法 | |
CN110247936B (zh) | 一种通讯协议转换卡及通讯协议转换系统 | |
CN108512907A (zh) | 半透传的设备通信方法 | |
CN114039808B (zh) | 基于can的多通道的can/lin/sent转发协议 | |
CN110474828A (zh) | 一种mbus总线通信方法及系统 | |
CN112165422B (zh) | 一种一主多从温度控制系统的地址自动匹配方法 | |
CN102255766B (zh) | 服务器系统 | |
CN210954663U (zh) | 一种集群式锁控系统 | |
CN108770063A (zh) | 一种集成网关及处理多节点通信碰撞的方法 | |
CN107229586B (zh) | 基于rs485桥电路装置的通信方法 | |
CN216013989U (zh) | 扩展模块数量识别电路 | |
CN109873741B (zh) | 一种单线共享总线协议的系统和工作方法 | |
CN103135483A (zh) | Profibus与Modbus的协议转换模块和智能断路器 | |
CN107395478A (zh) | 一种用于高速卷烟包装设备的网络控制系统以及网络通信模块 | |
CN112206453A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200630 Termination date: 20210310 |
|
CF01 | Termination of patent right due to non-payment of annual fee |