CN117857249A - 基于Modbus协议的数据传输方法 - Google Patents
基于Modbus协议的数据传输方法 Download PDFInfo
- Publication number
- CN117857249A CN117857249A CN202410123867.XA CN202410123867A CN117857249A CN 117857249 A CN117857249 A CN 117857249A CN 202410123867 A CN202410123867 A CN 202410123867A CN 117857249 A CN117857249 A CN 117857249A
- Authority
- CN
- China
- Prior art keywords
- data
- slave
- host
- register
- read
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 103
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000006854 communication Effects 0.000 claims abstract description 22
- 238000004891 communication Methods 0.000 claims abstract description 20
- 125000004122 cyclic group Chemical group 0.000 claims description 40
- 238000012795 verification Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Abstract
本发明公开了一种基于Modbus协议的数据传输方法,包括如下步骤:当通讯正常时,主机生成第一请求帧并发送至从机,从机根据解析数据生成第一响应帧并发送至主机;主机与从机按设定间隔进行多次小数据量传输;当网络出现故障且有大量数据积压时,主机对未发出及发送失败的数据进行合并生成第二请求帧,待网络恢复后,主机将第二请求帧发送至从机,从机生成第二响应帧发送至主机。本发明通过将数据按照不同的请求帧进行传输,当通讯正常时,主机与从机之间按照第一请求帧通过小数据量传输;当有大量数据积压时,主机与从机之间按照第二请求帧通过大数据量传输,可在短时间内将大量的小数据进行传输,不仅操作简单,且传输效率高,可靠性好。
Description
技术领域
本发明涉及通讯领域,具体涉及一种基于Modbus协议的数据传输方法。
背景技术
工业控制中常用的协议modbusRTU是基于硬件232和485的串口通用协议,通过一问一答的方式来实现数据得交互。现有的基于modbusRTU的串口通信来实现数据的收发方法中,收发的数据量只能满足常规的小数据传输。然而,在实际通讯过程中,可能会出现数据发送失败或网络延迟等问题,这时需要对发送失败的数据进行再次发送。当数据传输量不大时,现有的数据传输方式可满足传输需求,但当故障较严重时,将有大量的发送失败的数据积压,此时,若仍然用现有的数据传输方式进行数据传输,将要花费大量的时间,大大降低的传输效率。另一方面,虽然可通过改变传输频率来提高传输效率,但改变传输频率设置比较麻烦,操作不便。因此,如何实现一种既能够实现操作简单,又可满足在大数据传输时高效、可靠的基于modbus协议的传输方法就成为一种客观需求。
发明内容
本发明提供了一种基于Modbus协议的数据传输方法,用于解决现有的基于Modbus协议的数据需要传输大量数据时存在的数据传输效率低、操作不便的问题。
为实现本发明的目的,本发明提供了一种基于Modbus协议的数据传输方法,该方法包括如下步骤:
当通讯正常时,主机按要求生成第一请求帧并发送至从机,从机对所述第一请求帧进行解析并校验,若校验正确,则根据解析数据生成第一响应帧并发送至主机,主机接收第一响应帧并解析,完成主机与从机的单次小数据量传输;
所述主机与从机按设定间隔进行多次小数据量传输;
当网络出现故障有大量数据积压时,主机按要求对未发出及发送失败的数据进行合并生成第二请求帧,待网络恢复后,主机将所述第二请求帧发送至从机,从机对所述第二请求帧进行解析并校验,若校验正确,则根据解析数据生成第二响应帧发送至主机,主机接收第二响应帧并解析,完成主机与从机的单次大数据量传输;
所述主机与从机按设定间隔进行多次大数据量传输;
当大数据量传输结束后,所述主机与从机继续按设定间隔进行小数据量传输。
进一步地,当网络出现故障且有大量数据积压时,所述主机与从机之间通过进行多次小数据量传输是否正常判断网络是否恢复,若每次小数据量传输均正常,则网络恢复,所述主机与从机进行大数据量传输。
在一些实施例中,在所述主机与从机进行大数据量传输,且当传输的数据中有重要数据时,所述主机对重要数据进行封装并优先对封装数据通过小数据量传输至从机,当所述封装数据传输完成后,所述主机与从机再进行大数量传输。
进一步地所述第一请求帧和第一响应帧分别包括功能码,所述功能码为读取寄存器或写入寄存器。
可选地,当所述功能码为读取寄存器时,所述第一请求帧包括依次排序的地址码、功能码、寄存器起始地址、读取寄存器数量及循环冗余校验码;所述第一响应帧包括依次排序的地址码、功能码、读取数据字节数、读取寄存器值及循环冗余校验码。
可选地,当所述功能码为写入寄存器时,所述第一请求帧包括依次排序的地址码、功能码、寄存器起始地址、写入寄存器数量、写入数据字节数、写入寄存器值及循环冗余校验码;所述第一响应帧包括依次排序的地址码、功能码、寄存器起始地址、写入寄存器数量及循环冗余校验码。
进一步地,所述读取数据字节数或写入数据字节数的长度为一个字节。
所述第二请求帧和第二响应帧分别包括功能码,所述功能码包括读取寄存器和写入寄存器。
进一步地,所述第二请求帧包括依次排序的地址码、功能码、读取寄存器起始地址、读取寄存器数量、写入寄存器起始地址、写入寄存器数量、写入数据字节数、连续批量地写入寄存器值及循环冗余校验码;所述第二响应帧包括依次排序的地址码、功能码、读取寄存器起始地址、写入寄存器起始地址、读取数据字节数、读取寄存器值及循环冗余校验码。
进一步地,所述写入数据字节数及读取数据字节数的长度均为两个字节。
本发明的有益效果为:本发明的基于Modbus协议的数据传输方法通过根据数据量不同按照不同的请求帧进行传输,当通讯正常时,主机与从机之间按照第一请求帧通过小数据量传输;当网络出现故障且有大量数据积压时,主机与从机之间按照第二请求帧通过大数据量传输,当有大量数据积压时,可在不改变传输频率的基础上,在短时间内将大量的小数据进行传输,不仅操作简单,且传输效率高,可靠性好。
另一方面,当网络出现故障后,主机与从机通过多次小数据量传输是否成功以判断网络是否恢复,当多次的小数据量传输均成功时,则网络恢复,主机再将第二请求帧发送至从机,从而保障大数据量发送成功,进一步提高数据传输的可靠性。
此外,当主机与从机进行大数据量差传输时,若积压的数据中有重要数据,主机将重要数据优先通过小数据量输出至从机,以方便对重要数据进行单独监控,同时可提高重要数据发送的成功率及对从机对重要数据的处理速度,从而保证重要数据传输的可靠性及提高重要数据的传输效率。
附图说明
图1是本发明的方法流程图。
图2是本发明的一种第一请求帧的组成示意图。
图3是本发明的一种第一响应帧的组成示意图。
图4是本发明的另一种第一请求帧的组成示意图。
图5是本发明的另一种第一响应帧的组成示意图。
图6是本发明的第二请求帧的组成示意图。
图7是本发明的第二响应帧的组成示意图。
具体实施方式
下面将结合附图和具体实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明基于Modbus协议的数据传输方法包括如下步骤:
S110、当通讯正常,主机按要求生成第一请求帧并发送至从机。
该步骤中,第一请求帧为主机向从机发送的请求指令,其包括功能码。其中,功能码可以为读取寄存器,也可为写入寄存器,其可为常用的功能码,如01,02,03,04,05,06,15,16。
当功能码为读取寄存器时,如图2所示,第一请求帧由地址码、功能码、寄存器起始地址、读取寄存器数量及循环冗余校验码组成,且地址码、功能码、寄存器起始地址、读取寄存器数量及循环冗余校验码依次排序。其中,地址码为从机地址,用于确认主机的通讯对象。功能码用于定义从机执行Modbus协议的功能。寄存器起始地址为读取起始信息的寄存器地址,其长度由两个字节组成。读取寄存器数量为需要读取寄存器的长度,其长度由两个字节组成。循环冗余校验码用于校验主机发送的数据是否正确。具体地,第一请求帧以010300 01 00 01D5 CA为例进行说明,01为地址码,其为从机地址,即主机需要与编号为01的从机通讯。03为功能码,其为读取多路寄存器。00 01为寄存器起始地址,即从00 01寄存器开始读取信息。00 01为读取寄存器数量,即只需要读取编号为01的从机的第0001个寄存器的信息,D5 CA为循环冗余校验码,用于从机校验主机发送的数据是否正确。需要说明的是,寄存器起始地址可以为任意一个寄存器地址,读取寄存器数量也不限于一个,可以为多个。
当功能码为写入寄存器时,如图4所示,第一请求帧由地址码、功能码、寄存器起始地址、写入寄存器数量、数据字节数、写入寄存器值及循环冗余校验码组成,且地址码、功能码、寄存器起始地址、写入寄存器数量、数据字节数、写入寄存器值及循环冗余校验码依次排序。其中,地址码为从机地址,用于确认主机的通讯对象。功能码用于定义从机执行Modbus协议的功能。寄存器起始地址为要写入寄存器的起始地址,其长度由两个字节组成。写入寄存器数量为需要写入数据的字长度,其长度由两个字节组成。数据字节数为写入寄存器的字节长度,本实施例中,数据字节数的长度为一个字节,一个字节最大为255,即主机写入的字节最大为255个,当数据数量超过255个时无法一次性写入。写入寄存器值为写入从机寄存器的值,每个写入寄存器值的长度由两个字节组成。当有多个寄存器地址需要写入时,分别按顺序依次写入即可。循环冗余校验码用于校验主机发送的数据是否正确。具体地,第一请求帧以01 1000 04 00 03 06 00 01 00 00 00 01 5B 55为例进行说明,01为地址码,其为从机地址,即主机需要与编号为01的从机通讯。10为功能码,其为写入多路寄存器。00 04为寄存器起始地址,即从0004寄存器开始写入数据。00 03为写入寄存器数量,即需要写入编号为01的从机的第0004、第0005、第0006三个寄存器的数据。06为数据字节数,即三个寄存器需要写入六个字节。00 01 00 00 0001分别为第0004、第0005、第0006三个寄存器写入的数据。5B 55为循环冗余校验码,用于从机校验主机发送的数据是否正确。需要说明的是,起始寄存器地址可以为任意一个寄存器地址,读取寄存器数量也不限于三个,可以为一个或者多个。
S120、从机接收第一请求帧并解析及校验。
该步骤中,从机接收主机发送的第一请求帧,并对第一请求帧进行解析及校验。从机根据解析的地址码判断是否为与主机通讯的对象,若地址码与从机地址一致,则正确。同时,从机根据循环冗余校验码校验主机发送的第一请求帧是否正确,若不正确,则不应答;若正确,则执行步骤S130。
S130、从机根据解析数据生成第一响应帧,并发送至主机。
该步骤中,第一响应帧为从机向主机发送的执行指令,其包括功能码。其中,该功能码与第一请求帧的功能码相同。当功能码为读取寄存器时,如图3所示,第一响应帧由地址码、功能码、读取数据字节数、读取寄存器值及循环冗余校验码组成,且地址码、功能码、数据字节数、读取寄存器值及循环冗余校验码依次排序。其中,地址码为从机地址,用于主机确认回复的对象是否与通讯对象一致。功能码与第一请求帧的功能码相同,用于定义从机执行Modbus协议的功能。读取数据字节数为读取数据的长度。本实施例中,读取数据字节数的长度为一个字节,一个字节最大为255,即从机读取的字节最大为255个,当数据数量超过255个时无法一次性发送出去。读取寄存器值为主机需要读取的寄存器值,每个读取寄存器值的长度由两个字节组成。循环冗余校验码用于校验从机发送的数据是否正确。具体地,第一响应帧以01 03 02 00 01 79 84为例进行说明,01为地址码,其为从机地址,即编号为01的从机与主机通讯。03为功能码,其为读取多路寄存器。02为读取数据字节数,即读取一个寄存器的两个字节数。00 01为编号为0001寄存器的信息,79 84为循环冗余校验码,用于主机校验从机发送的数据是否正确。需要说明的是,读取数据字节数与读取寄存器数量相对应,当读取寄存器数量为一个时,由于每个寄存器的值由两个字节组成,因此,读取数据字节数为02,当读取寄存器数量为两个时,读取数据字节数为04,以此类推。相应地,读取寄存器值与读取寄存器数量相对应,当读取多个寄存器时,需要发送相应数量寄存器的值。
当功能码为写入寄存器时,如图5所示,第一响应帧由地址码、功能码、寄存器起始地址、写入寄存器数量及循环冗余校验码组成,且地址码、功能码、寄存器起始地址、写入寄存器数量及循环冗余校验码依次排序。其中,地址码为从机地址,用于主机确认回复的对象是否与通讯对象一致。功能码与第一请求帧的功能码相同,用于定义从机执行Modbus协议的功能。寄存器起始地址为要写入寄存器的起始地址。写入寄存器数量为需要写入数据的字长度。循环冗余校验码用于校验从机发送的数据是否正确。具体地,第一响应帧以01 100004 00 03C1 C9为例进行说明,01为地址码,其为从机地址,即编号为01的从机与主机通讯。10为功能码,其为写入多路寄存器。00 04为起始寄存器地址,即从0004寄存器开始写入数据。00 03为写入寄存器数量,即需要写入编号为01的从机的第0004、第0005、第0006三个寄存器的数据。C1 C9为循环冗余校验码,用于主机校验从机发送的数据是否正确。需要说明的是,起始寄存器地址、写入寄存器数量均与第一请求帧的值相同。
S140、主机接收第一响应帧并解析及校验。
该步骤中,主机接收从机发送的第一响应帧,并对第一响应帧进行解析及校验。主机根据解析的地址码判断是否为与主机通讯的对象,若地址码与从机地址一致,则正确。同时,主机根据循环冗余校验码校验从机发送的第一响应帧是否正确,若不正确,则返回步骤S110;若正确,则完成主机与从机的单次读取寄存器小数据量传输,并按照设定间隔重复步骤S110~S140。
S210、当网络出现故障且有大量数据积压时,主机对未发出及发送失败的数据进行合并生成第二请求帧。
该步骤中,在通讯过程中,当出现信息发送失败或网络延迟等问题时,主机向从机传输的数据可能会失败,在数据传输量不大的情况下,即当传输数据长度小于一个字节数,也就是255个字节时,主机按照步骤S130向从机传输数据。而当网络出现比较严重的故障,比如断开通讯时间较长,此时有大量的待发送及发送失败的数据积压,其数据长度可能会远远大于一个字节数,若主机与从机之间再通过步骤S110~S140传输数据,则会导致发送时间过长,数据传输效率低。此时,主机通过对未发出及发送识别的数据进行合并生成第二请求帧,再将第二请求帧发送至从机,实现大数据量传输。
具体地,如图6所示,第二请求帧由地址码、功能码、读取寄存器起始地址、读取寄存器数量、写入寄存器起始地址、写入寄存器数量、写入数据字节数、连续批量地写入寄存器值及循环冗余校验码组成,且地址码、功能码、读取寄存器起始地址、读取寄存器数量、写入寄存器起始地址、写入寄存器数量、写入数据字节数、连续批量地写入寄存器值及循环冗余校验码依次排序。其中,地址码为从机地址,用于确认主机的通讯对象。功能码用于定义从机执行Modbus协议的功能。读取寄存器起始地址为要读取寄存器的起始地址。读取寄存器数量为要读取寄存器的长度,其长度由两个字节组成。写入寄存器起始地址为要写入寄存器的起始地址,其长度由两个字节组成。写入寄存器数量为需要写入数据的字长度,其长度由两个字节组成。写入数据字节数为写入寄存器的字节长度,本实施例中,写入数据字节数的长度为两个字节,两个字节最大为65535个字节,即主机写入的字节最大为65535个字节,可满足大数据量写入寄存器。连续批量地写入寄存器值为写入的未发送及发送失败的数据,其中,每个写入寄存器值的长度由两个字节组成。循环冗余校验码用于校验主机发送的数据是否正确。具体地,第二请求帧以01 11 00 01 00 02 01F4 00 02 00 04 0002 0000B394为例进行说明,01为地址码,其为从机地址,即主机需要与编号为01的从机通讯。11为功能码,其为读写多路寄存器。00 01为读取寄存器起始地址,即从0001寄存器开始读取数据。00 02为读取寄存器数量,即需要读取编号为01的从机的第0001、第0002两个寄存器的数据。01F4为写入寄存器起始地址,即从01F4寄存器开始写入数据。00 02为写入寄存器数量,即需要写入编号为01F4、01F5两个寄存器的数据。00 04为写入数据字节数,其长度由两个字节组成,最多可写入65535个字节。00 02 00 00为批量写入的未发送及发送失败的数据。B394为循环冗余校验码,用于从机校验主机发送的数据是否正确。需要说明的是,上述第二响应帧的读取寄存器数量、写入寄存器数量及连续批量地写入寄存器值仅仅是一个示例,实际可超过255个。
S220、待网络恢复后,主机将所第二请求帧发送至从机。
该步骤中,当网络出现故障后,主机与从机通过进行多次小数据量传输是否正常来判断网络是否恢复。具体地,若主机与从机进行多次小数据量传输时,每次数据传输都正常,则说明网络恢复。若主机与从机进行多次小数据量传输时,不是每次数据传输都正常,则说明网络尚未恢复,主机需要继续向从机发送小数据量数据,直至每次数据传输都正常。其中,判断数据传输是否正常可通过正常输出数据时间或数据传输次数来确定,例如,在设定的时间内,当单次输出数据时间大于正常输出数据时间,则说明网络出现延迟或网络断开,即网络尚未恢复;或者在一定的时间内,正常可输出数据5次,而当前输出数据次数小于5次,说明网络出现延迟或网络断开,即网络尚未恢复。只有当单次输出数据时间与正常输出时间相同或在一定时间内数据输出的次数与正常输出次数相同,才判断该数据输出正常。待网络恢复后,主机将第二请求帧发送至从机,并执行步骤S230。本实施例中,主机通过小数据量传输确定网络是否正常,待网络正常后再进行大数据量传输,从而确保大数据量传输成功,进而保证数据传输的可靠性。
S230、从机接收第二请求帧并解析及校验。
该步骤中,从机接收主机发送的第二请求帧,并对第二请求帧进行解析及校验。从机根据解析的地址码判断是否为与主机通讯的对象,若地址码与从机地址一致,则正确。同时,从机根据循环冗余校验码校验主机发送的第二请求帧是否正确,若不正确,则不应答;若正确,则执行步骤S240。
S240、从机根据解析数据生成第二响应帧,并发送至主机。
该步骤中,如图7所示,第二响应帧由地址码、功能码、读取寄存器起始地址、写入寄存器起始地址、读取数据字节数、读取寄存器值及循环冗余校验码组成,且地址码、功能码、读取寄存器起始地址、写入寄存器起始地址、读取数据字节数、读取寄存器值及循环冗余校验码依次排序。其中,地址码为从机地址,用于主机确认回复的对象是否与通讯对象一致。功能码与第二请求帧的功能码相同,用于定义从机执行Modbus协议的功能。读取寄存器起始地址为要读取寄存器的起始地址,其长度由两个字节组成。写入寄存器起始地址为需要写入寄存器的起始地址,其长度由两个字节组成。读取数据字节数为读取数据的字节数,其长度为两个字节,即可读取最大为65535个字节,例如,当需要读取两个寄存器值时,每个寄存器的值由两个字节组成,读取数据字节数的长度为两个字节,则其读取数据字节数为00 04;当需要读取4个寄存器值时,每个寄存器的值由两个字节组成,读取数据字节数的长度为两个字节,则其读取数据字节数为00 08。循环冗余校验码用于校验从机发送的数据是否正确。具体地,第二响应帧以01 11 00 01 01F4 00 04 00 00 00 00 41AE为例进行说明,01为地址码,其为从机地址,即编号为01的从机与主机通讯。11为功能码,其为读写多路寄存器。00 01为读取寄存器起始地址,即从0001寄存器开始读取数据。01F4为写入寄存器起始地址,即从01F4寄存器开始写入数据。00 04为读取数据字节数,其读取两个寄存器的四个字节。00 00 00 00为读取寄存器值,即分别读取第0001、第0002两个寄存器的数据。41AE为循环冗余校验码,用于主机校验从机发送的数据是否正确。需要说明的是,读取起始寄存器地址、写入起始寄存器地址均与第二请求帧的值相同。
S250、主机接收第二响应帧并解析及校验。
该步骤中,主机接收从机发送的第二响应帧,并对第二响应帧进行解析及校验。主机根据解析的地址码判断是否为与主机通讯的对象,若地址码与从机地址一致,则正确。同时,主机根据循环冗余校验码校验从机发送的第二响应帧是否正确,若不正确,则返回步骤S210;若正确,则完成主机与从机的单次大数据量读写寄存器数据传输,并按照设定间隔返回步骤S210,继续将积压的数据传输完成,当积压数据传输完成后,按照设定间隔返回步骤S110,继续使用小数据量传输。本实施例中,当出现大量数据积压时,主机与从机之间通过大数据量传输,可在不改变传输频率的基础上,在短时间内将大量的小数据进行传输,不仅操作简单,且传输效率高,可靠性好。
在一些实施例中,还包括步骤:
S300、当主机与从机进行大数据量传输,且传输的数据中有重要数据时,主机将重要数据优先通过小数据量传输,重要数据传输完成后,再将积压的数据通过大数量传输。
该步骤中,当主机与从机在进行大数据量传输时,若积压的数据中有重要数据,则主机对重要数据进行封装并优先通过步骤S110~S140进行小数据量传输,待重要数据传输完毕后,主机再按照步骤S210~S250对未发送及发送失败的数据进行合并,并将合并对数据通过大数据量传输至从机。主机通过将积压数据中的重要数据进行小数据量传输,可方便对重要数据进行单独监控,同时可提高重要数据发送的成功率及对从机对重要数据的处理速度,从而保证重要数据传输的可靠性及提高重要数据的传输效率。
本实施例的基于Modbus协议的数据传输方法通过将数据按照不同的请求帧进行传输,当通讯正常时,主机与从机之间按照第一请求帧通过小数据量传输;当网络出现故障且有大量数据积压时,主机与从机之间按照第二请求帧通过大数据量传输,可在不改变传输频率的基础上,在短时间内将大量的小数据进行传输,不仅操作简单,且传输效率高,可靠性好。另一方面,当网络出现故障后,主机与从机通过多次小数据量传输是否成功以判断网络是否恢复,当每次的小数据量传输正常,则网络恢复,主机再将第二请求帧发送至从机,从而保障大数据量发送成功,进一步提高数据传输的可靠性。
尽管通过以上实施例对本发明进行了揭示,但本发明的保护范围并不局限于此,在不偏离本发明构思的条件下,对以上各构件所做的变形、替换等均将落入本发明的权利要求范围内。
Claims (10)
1.一种基于Modbus协议的数据传输方法,其特征在于,该方法包括如下步骤:
当通讯正常时,主机按要求生成第一请求帧并发送至从机,从机对所述第一请求帧进行解析并校验,若校验正确,则根据解析数据生成第一响应帧并发送至主机,主机接收第一响应帧并解析,完成主机与从机的单次小数据量传输;
所述主机与从机按设定间隔进行多次小数据量传输;
当网络出现故障且有大量数据积压时,主机按要求对未发出及发送失败的数据进行合并生成第二请求帧,待网络恢复后,主机将所述第二请求帧发送至从机,从机对所述第二请求帧进行解析并校验,若校验正确,则根据解析数据生成第二响应帧发送至主机,主机接收第二响应帧并解析,完成主机与从机的单次大数据量传输;
所述主机与从机按设定间隔进行多次大数据量传输;
当大数据量传输结束后,所述主机与从机继续按设定间隔进行小数据量传输。
2.如权利要求1所述的基于Modbus协议的数据传输方法,其特征在于,当网络出现故障且有大量数据积压时,所述主机与从机之间通过进行多次小数据量传输是否正常判断网络是否恢复,若每次小数据量传输均正常,则网络恢复,所述主机与从机进行大数据量传输。
3.如权利要求1所述的基于Modbus协议的数据传输方法,其特征在于,在所述主机与从机进行大数据量传输,且当传输的数据中有重要数据时,所述主机对重要数据进行封装并优先对封装数据通过小数据量传输至从机,当所述封装数据传输完成后,所述主机与从机再进行大数量传输。
4.如权利要求1所述的基于Modbus协议的数据传输方法,其特征在于,所述第一请求帧和第一响应帧分别包括功能码,所述功能码为读取寄存器或写入寄存器。
5.如权利要求4所述的基于Modbus协议的数据传输方法,其特征在于,当所述功能码为读取寄存器时,所述第一请求帧包括依次排序的地址码、功能码、寄存器起始地址、读取寄存器数量及循环冗余校验码;所述第一响应帧包括依次排序的地址码、功能码、读取数据字节数、读取寄存器值及循环冗余校验码。
6.如权利要求4所述的基于Modbus协议的数据传输方法,其特征在于,当所述功能码为写入寄存器时,所述第一请求帧包括依次排序的地址码、功能码、寄存器起始地址、写入寄存器数量、写入数据字节数、写入寄存器值及循环冗余校验码;所述第一响应帧包括依次排序的地址码、功能码、寄存器起始地址、写入寄存器数量及循环冗余校验码。
7.如权利要求5或6所述的基于Modbus协议的数据传输方法,其特征在于,所述读取数据字节数或写入数据字节数的长度为一个字节。
8.如权利要求1所述的基于Modbus协议的数据传输方法,其特征在于,所述第二请求帧和第二响应帧分别包括功能码,所述功能码包括读取寄存器和写入寄存器。
9.如权利要求8所述的基于Modbus协议的数据传输方法,其特征在于,所述第二请求帧包括依次排序的地址码、功能码、读取寄存器起始地址、读取寄存器数量、写入寄存器起始地址、写入寄存器数量、写入数据字节数、连续批量地写入寄存器值及循环冗余校验码;所述第二响应帧包括依次排序的地址码、功能码、读取寄存器起始地址、写入寄存器起始地址、读取数据字节数、读取寄存器值及循环冗余校验码。
10.如权利要求9所述的基于Modbus协议的数据传输方法,其特征在于,所述写入数据字节数及读取数据字节数的长度均为两个字节。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410123867.XA CN117857249A (zh) | 2024-01-29 | 2024-01-29 | 基于Modbus协议的数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410123867.XA CN117857249A (zh) | 2024-01-29 | 2024-01-29 | 基于Modbus协议的数据传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117857249A true CN117857249A (zh) | 2024-04-09 |
Family
ID=90539963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410123867.XA Pending CN117857249A (zh) | 2024-01-29 | 2024-01-29 | 基于Modbus协议的数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117857249A (zh) |
-
2024
- 2024-01-29 CN CN202410123867.XA patent/CN117857249A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5371897A (en) | Method for requesting identification of a neighbor node in a data processing I/O system | |
US9432289B2 (en) | Method and device for serial data transmission which is adapted to memory sizes | |
EP0137438B1 (en) | Method for passing a token in a local-area network | |
JP2015130668A (ja) | 送信システムエラー検出および訂正のシステムおよび方法 | |
US6574744B1 (en) | Method of determining a uniform global view of the system status of a distributed computer network | |
US20100050062A1 (en) | Sending device, receiving device, communication control device, communication system, and communication control method | |
JP3996928B2 (ja) | 破損データを処理する方法 | |
US11715337B2 (en) | Controller diagnostic device and method thereof | |
CN106126465A (zh) | 一种数据传输方法及装置 | |
JP2006503510A (ja) | バス上でデータを伝送する方法 | |
US20050144339A1 (en) | Speculative processing of transaction layer packets | |
US7769966B2 (en) | Apparatus and method for judging validity of transfer data | |
CN117857249A (zh) | 基于Modbus协议的数据传输方法 | |
US20030154288A1 (en) | Server-client system and data transfer method used in the same system | |
CN114884767B (zh) | 一种同步双冗余can总线通信系统、方法、设备及介质 | |
CN111431668B (zh) | 基于多节点uart通讯的波特率切换方法、空调系统及处理器 | |
CN115422099A (zh) | 一种通信信息发送方法、装置、电子设备及存储介质 | |
CN110687854B (zh) | 一种pa总线控制器以及一种pa总线控制系统 | |
CN115878534A (zh) | 串行外设接口spi通信方法 | |
JPH02100538A (ja) | ローカルエリアネットワークのデータ通信方法 | |
US20110222533A1 (en) | Switch apparatus | |
CN116185936B (zh) | 一种spi通信数据收发异常检测控制系统及检测方法 | |
JP2763394B2 (ja) | 通信制御装置 | |
CN112346922B (zh) | 服务器装置及其通讯协议方法 | |
CN117493248B (zh) | Usb数据传输方法、装置、系统、电子设备及存储介质 |
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 |