PLC数据一致性诊断方法、EtherCAT主站协议栈及电子设备与流程

摘要: 本发明涉及计算机,尤其涉及一种plc数据一致性诊断方法、ethercat主站协议栈及电子设备。背景技术:1、相关技术中,通过plc系统对多节点ethercat从...
PLC数据一致性诊断方法、EtherCAT主站协议栈及电子设备与流程

本发明涉及计算机,尤其涉及一种plc数据一致性诊断方法、ethercat主站协议栈及电子设备。

背景技术:

1、相关技术中,通过plc系统对多节点ethercat从站网络数据进行读取和写入的过程为plc实时数据处理系统将发送给ethercat从站网络中某个节点的数据写入到cpu模块上定义的输出数据区后,经由ethercat主站协议栈读取并随ethercat主站发送的周期性输出过程数据报文将此输出数据发送到相应的ethercat从站节点。同理,ethercat主站协议栈也会将随周期性输入过程数据帧返回的ethercat从站网络节点的输入数据写入到cpu模块上定义的输入数据区,供plc实时数据处理系统读取。

2、但是,在plc实时数据处理系统或ethercat从站网络节点的数据生成源头发生故障引起数据停止实时更新、或生成的数据在不同阶段复制或传输出错的情况下,双边的数据传输系统依然会将历史数据或已经发生异常的数据传输给ethercat主站协议栈,导致ethercat主站协议栈收到的数据是非实时性数据或非预期性数据,进而导致ethercat主站协议栈接收到的数据与数据源头生成数据不一致,可能导致plc系统的运行受到影响。

技术实现思路

1、本发明提供一种plc数据一致性诊断方法、ethercat主站协议栈及电子设备,以解决相关技术的方法由于ethercat主站协议栈接收到的数据与数据源头生成数据不一致,可能导致plc系统的运行受到影响的技术问题。

2、本技术实施例提供了一种plc数据一致性诊断方法,应用于ethercat主站协议栈,所述方法包括:获取ethercat主站协议栈接收的待诊断数据,所述待诊断数据包括当前数据序列标识、当前传输数据和当前循环冗余校验数据;根据所述当前数据序列标识和历史数据序列标识确定序列诊断结果;根据所述待诊断数据确定验证循环冗余校验数据,所述验证循环冗余校验数据的确定规则与所述当前循环冗余校验数据的确定规则相同;根据所述验证循环冗余校验数据和当前循环冗余校验数据确定校验诊断结果;基于所述序列诊断结果和校验诊断结果确定所述待诊断数据的数据一致性诊断结果。

3、于本发明一实施例中,若所述待诊断数据来自于ethercat从站网络节点,所述方法还包括:获取当前周期的当前数据帧,以及所述当前数据帧对应的ethercat从站网络节点的节点数量,所述当前数据帧包括节点数量的ethercat从站网络节点的节点帧数据;若所述节点帧数据尚未得到数据一致性诊断结果,将所述ethercat从站网络节点的节点帧数据作为所述待诊断数据,并确定所述待诊断数据的数据一致性诊断结果,直到全部的节点帧数据均得到数据一致性诊断结果;基于全部的ethercat从站网络节点的数据一致性诊断结果确定所述当前数据帧的数据一致性诊断结果。

4、于本发明一实施例中,所述方法还包括以下至少之一:将诊断时间与所述当前数据帧的数据一致性诊断结果关联存储,所述当前数据帧的数据一致性诊断结果包括每一个ethercat从站网络节点的节点帧数据的数据一致性诊断结果;若所述当前数据帧的数据一致性诊断结果为不一致,将ethercat从站网络节点的数据一致性诊断结果为不一致的ethercat从站网络节点作为异常节点;plc系统读取所述当前数据帧的数据一致性诊断结果,若所述当前数据帧的数据一致性诊断结果为不一致,触发所述plc系统调整运行行为。

5、于本发明一实施例中,所述当前数据帧的生成方式包括:获取ethercat从站网络节点的输入过程数据,得到所述当前传输数据;确定所述输入过程数据的生成序列,得到当前数据序列标识;根据所述当前传输数据和当前数据序列标识确定所述当前循环冗余校验数据;基于所述当前数据序列标识、当前传输数据和当前循环冗余校验数据生成所述ethercat从站网络节点的节点帧数据;将每一个ethercat从站网络节点的节点帧数据插入至初始数据帧的对应数据位置,得到所述当前数据帧。

6、于本发明一实施例中,若所述待诊断数据来自于plc系统,所述方法还包括:获取输出数据区的预设条目数据数量和当前存储的条目数据的当前条目数据数量,所述条目数据包括所述plc系统发送的输出过程数据;基于当前存储的条目数据生成周期性输出数据报文;若所述预设条目数据数量与所述当前条目数据数量相等,分别将每一所述条目数据作为所述待诊断数据,并确定所述诊断数据的数据一致性诊断结果;基于全部的条目数据的数据一致性诊断结果确定所述周期性输出数据报文的数据一致性诊断结果。

7、于本发明一实施例中,基于当前存储的条目数据生成周期性输出数据报文,包括:获取周期性报文标识,以及所述plc系统发送的输出过程数据,得到所述当前传输数据;确定所述输出过程数据的生成序列,得到当前数据序列标识;根据所述周期性报文标识、当前传输数据和当前数据序列标识确定所述当前循环冗余校验数据;基于所述周期性报文标识、当前数据序列标识、当前传输数据和当前循环冗余校验数据生成所述条目数据,将所述条目数据写入所述输出数据区;基于所述输出数据区的条目数据生成所述周期性输出数据报文。

8、于本发明一实施例中,所述方法还包括:若所述预设条目数据数量与所述当前条目数据数量不相等,确定所述周期性输出数据报文的条目个数一致性诊断结果为不一致;若所述预设条目数据数量与所述当前条目数据数量相等,确定所述周期性输出数据报文的条目个数一致性诊断结果为一致。

9、于本技术一实施例中,所述方法还包括:将诊断时间与所述周期性输出数据报文的条目个数一致性诊断结果、数据一致性诊断结果进行关联存储;若所述条目个数一致性诊断结果为不一致,和/或,若所述数据一致性诊断结果为不一致,将所述诊断时间作为错误发生时间;若所述条目个数一致性诊断结果为不一致,和/或,若所述数据一致性诊断结果为不一致,根据所述条目个数一致性诊断结果和所述数据一致性诊断结果确定错误类型。

10、本技术实施例还提供了一种ethercat主站协议栈,所述ethercat主站协议栈包括:数据存储区,用于存储ethercat主站协议栈接收的待诊断数据,所述待诊断数据包括当前数据序列标识、当前传输数据和当前循环冗余校验数据;诊断模块,用于根据所述当前数据序列标识和历史数据序列标识确定序列诊断结果,根据所述待诊断数据确定验证循环冗余校验数据,所述验证循环冗余校验数据的确定规则与所述当前循环冗余校验数据的确定规则相同,根据所述验证循环冗余校验数据和当前循环冗余校验数据确定校验诊断结果,基于所述序列诊断结果和校验诊断结果确定所述待诊断数据的数据一致性诊断结果;诊断结果存储模块,用于存储所述待诊断数据的数据一致性诊断结果;诊断结果访问接口,用于响应于诊断结果访问请求,传输所述诊断结果访问请求对应的数据一致性诊断结果。

11、本技术实施例还提供了一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一实施例提供的方法的步骤。

12、本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例提供的方法的步骤。

13、本技术实施例还提供了一种计算机程序产品或计算机程序,所述计算机程序产品中包括计算机程序,所述计算机程序存储在计算机存储介质中,所述计算机存储介质中的计算机程序被处理器执行时,用于加载并执行上述任一实施例提供的方法的步骤。

14、上述一种plc数据一致性诊断方法、ethercat主站协议栈及电子设备所实现的方案中,该方法通过获取ethercat主站协议栈接收的待诊断数据,待诊断数据包括当前数据序列标识、当前传输数据和当前循环冗余校验数据,根据当前数据序列标识和历史数据序列标识确定序列诊断结果,根据待诊断数据确定验证循环冗余校验数据,验证循环冗余校验数据的确定规则与当前循环冗余校验数据的确定规则相同,根据验证循环冗余校验数据和当前循环冗余校验数据确定校验诊断结果,基于序列诊断结果和校验诊断结果确定待诊断数据的数据一致性诊断结果,能够及时确定ethercat主站协议栈接收到的数据与数据源头生成数据的数据一致性情况,为后续plc系统的运行可以提供参考信息,有利于plc系统及时发现问题并调整plc系统的运行行为。

15、上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。