本发明涉及通信领域,尤其涉及一种基于通信协议的周期性数据通信方法。
背景技术:
1、随着ip仪表技术的发展,未来将有大量的单对线以太网仪表布置在工业现场。一台或者几台modbus tcp主站和多台modbus tcp从站(至少不少于1000台从站)组成的网络将成为下一代工业控制网络的主流。
2、在标准modbus tcp数据读取模式下,主站与从站通信采用“命令响应”方式通信,如果主站需要周期性读取从站数据,主站必须周期性发布读取从站数据命令;如果主站需要周期性写入从站数据,从站也必须周期性返回写入成功响应。
3、主站读取数据命令内容包括:命令代码,数据地址和数量。由于每个周期要读取数据的地址和数量完全相同,这些命令内容也完全相同,理论上没有必要每个周期重复发送,占用通信资源。
4、因此,现有技术中在基于modbus tcp协议进行通信的过程中,周期性通信数据传输情况严重,通信过程繁琐。
技术实现思路
1、本发明所要解决的技术问题是提供一种基于通信协议的周期性数据通信方法。
2、本发明解决上述技术问题的技术方案如下:一种基于通信协议的周期性数据通信方法,包括:
3、基于通信协议,构建从站周期采集数据命令以及主站写入数据命令;
4、基于通信协议,建立主站与从站的链接;
5、根据所述从站周期采集数据命令完成数据的上传或根据所述主站写入数据命令完成数据的写入。
6、本发明的有益效果是:一次性发布周期性读取数据命令,使得主站不必再每个周期发送重复相同的命令数据,而从站不再依赖主站命令主动周期性上传数据,大幅度减少了现有周期性通信数据传输内容,降低了网络传输负荷,提高了数据传输性能。
7、在上述技术方案的基础上,本发明还可以做如下改进。
8、进一步,根据所述从站周期采集数据命令完成数据的上传的过程为:
9、根据所述从站周期采集数据命令,激活从站中的周期读取数据命令响应模块,按照从站周期采集数据命令中的数据上传周期,上传所述从站周期采集数据命令中的数据至主站。
10、进一步,判断主站的传输方式是否为允许变量传输方式,当判断结果为是时,根据所述从站周期采集数据命令完成数据的上传之前还包括:
11、在按照预设周期上传之前,确定当前周期的上传数据与上一周期的上传数据的数值差异百分比,当数值差异百分比大于第一阈值时,通过所述周期读取数据命令响应模块,按照从站周期采集数据命令中的数据上传周期,上传所述从站周期采集数据命令中的数据至主站。
12、进一步,判断主站的传输方式是否为允许变量传输方式,当判断结果为是时,根据所述从站周期采集数据命令完成数据的上传还包括:
13、若当前周期无数据进行上传,则第一未上传数据周期计数值加一,当所述第一未上传数据周期计数值达到心跳保活周期数量时,调取所述从站周期采集数据命令对应的数据上传至主站,同时将所述第一未上传数据周期计数值清零。
14、进一步,按照从站周期采集数据命令中的数据上传周期,上传所述从站周期采集数据命令中的数据至主站之后还包括:
15、当主站的第二未上传数据周期计数值达到心跳保活周期数量时,且没有收到从站上传的数据,则判定从站通信故障,发出报警。
16、进一步,根据所述主站写入数据命令完成数据的写入的过程为:
17、根据所述主站写入数据命令,激活从站中的周期写入数据命令处理模块,按照预设周期写入所述主站写入数据命令中的数据至主站。
18、进一步,激活从站中的周期写入数据命令处理模块之前还包括:
19、确定主站中当前周期的写入数据与上一周期的写入数据的数值差异百分比,当数值差异百分比大于第二阈值时,下发所述主站写入数据命令,激活从站中的周期写入数据命令处理模块,同时将心跳周期计数清零,当数值差异百分比不大于第二阈值时,判断当前心跳周期计数值是否超过预设心跳周期计数值,生成第一判断结果,当第一判断结果为是时,下发所述主站写入数据命令,激活从站中的周期写入数据命令处理模块,当第一判断结果为否时,将心跳周期计数值加一。
20、进一步,按照预设周期写入所述主站写入数据命令中的数据至主站的过程为:
21、确定当前周期的响应状态与上一周期的响应状态是否均为正常,当响应状态均为正常时,则本周期上传数据至周期写入数据命令处理模块中,将所述周期写入数据命令处理模块接收到的数据传输至主站,当响应状态存在至少一个异常时,上传异常响应数据至所述周期写入数据命令处理模块。
22、进一步,按照预设周期写入所述主站写入数据命令中的数据至主站的过程还包括:
23、若当前周期无数据进行写入,则第三未上传数据周期计数值加一,当所述第三未上传数据周期计数值达到所述预设心跳周期数量时,调取所述主站写入数据命令对应的数据写入主站,同时将所述第三未上传数据周期计数值清零。
24、进一步,根据所述主站写入数据命令完成数据的写入之后还包括:
25、当主站的第四未上传数据周期计数值达到预设心跳周期数量值时,且没有收到从站传输的写入数据,则判定从站通信故障,发出报警。
1.一种基于通信协议的周期性数据通信方法,其特征在于,包括:
2.根据权利要求1所述的一种基于通信协议的周期性数据通信方法,其特征在于,根据所述从站周期采集数据命令完成数据的上传的过程为:
3.根据权利要求2所述的一种基于通信协议的周期性数据通信方法,其特征在于,判断主站的传输方式是否为允许变量传输方式,当判断结果为是时,根据所述从站周期采集数据命令完成数据的上传之前还包括:
4.根据权利要求2所述的一种基于通信协议的周期性数据通信方法,其特征在于,判断主站的传输方式是否为允许变量传输方式,当判断结果为是时,根据所述从站周期采集数据命令完成数据的上传还包括:
5.根据权利要求1所述的一种基于通信协议的周期性数据通信方法,其特征在于,按照从站周期采集数据命令中的数据上传周期,上传所述从站周期采集数据命令中的数据至主站之后还包括:
6.根据权利要求1所述的一种基于通信协议的周期性数据通信方法,其特征在于,根据所述主站写入数据命令完成数据的写入的过程为:
7.根据权利要求6所述的一种基于通信协议的周期性数据通信方法,其特征在于,激活从站中的周期写入数据命令处理模块之前还包括:
8.根据权利要求6所述的一种基于通信协议的周期性数据通信方法,其特征在于,按照预设周期写入所述主站写入数据命令中的数据至主站的过程为:
9.根据权利要求6所述的一种基于通信协议的周期性数据通信方法,其特征在于,按照预设周期写入所述主站写入数据命令中的数据至主站的过程还包括:
10.根据权利要求6所述的一种基于通信协议的周期性数据通信方法,其特征在于,根据所述主站写入数据命令完成数据的写入之后还包括: