首页> 中国专利> 一种离散数据成块通信的可编程控制器数据监控方法

一种离散数据成块通信的可编程控制器数据监控方法

摘要

本发明公开了一种离散数据成块通信的可编程控制器数据监控方法,包括如下步骤:S1、导出可编程逻辑控制器PLC中的程序,该程序为XML格式文件;S2、读取并解析上述XML格式文件中定义的变量,将该变量的相关信息封装成一个数据结构并生成监控字典;S3、确认需要监控的变量,生成包含需监控的变量信息的通信列表;S4、根据通信列表与可编程控制器PLC执行监控过程,得到变量的实际值;S5、判断需要监控的变量是否变更,若变更则进行步骤S3,反之则进行步骤S4。本发明利用离散数据成块通信的自定义协议很好地解决了监控两个地址跨度较大的变量的问题,从而避免出现数据冗余现象。

著录项

  • 公开/公告号CN114690699A

    专利类型发明专利

  • 公开/公告日2022-07-01

    原文格式PDF

  • 申请/专利权人 杭州电子科技大学;

    申请/专利号CN202210269393.0

  • 发明设计人 邬惠峰;张孝检;孙丹枫;赵建勇;

    申请日2022-03-18

  • 分类号G05B19/05;

  • 代理机构

  • 代理人

  • 地址 310018 浙江省杭州市钱塘新区白杨街道2号大街1158号

  • 入库时间 2023-06-19 15:52:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-01

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及可编程控制器数据监控技术领域,具体涉及一种离散数据成块通信的可编程控制器数据监控方法。

背景技术

随着工业控制领域的不断发展,自动化程度越来越高,工业领域的控制系统越来越复杂,并且可编程控制器的处理器支持32位数据运算。在对可编程控制器进行软件开发时,会使用大量的变量并且可能存在两个跨度较大的变量需要监控的情况。

若采用基于传统Modbus通讯协议的监控方法,那么监控两个地址跨度较大的变量,即离散数据时,有两种解决方案:

1、分开两次发送Modbus帧,即每一帧分别以变量实际地址为Modbus帧中的系统地址,变量长度为Modbus帧中的数据段字节数。

2、合并一次发送Modbus帧,即读取两个变量地址之间的所有数据。

第一种方法并不适用,原因在于可编程控制器的程序运行周期较快,留给监控线程的时间较短,所以发送数据帧、可编程控制器执行监控线程、收到数据帧这三个步骤花费的时间占单次数据监控花费的时间的绝大部分,那么分开两次发送就会带来巨大的时间成本,并不具有良好的实时性。

第二种方法也不适用,原因在于如果两个变量地址跨度较大,那么就会带来太多的数据冗余。

所以需要一种离散数据成块通信的可编程控制器数据监控方法,即一种简单、高效、实时并且能够支持离散数据的监控方法。

发明内容

本发明要解决的问题是提供一种可编程控制器数据监控方法,能够简单、高效、实时地监控普通数据以及离散数据。鉴于此,本发明提出一种离散数据成块通信的可编程控制器数据监控方法。

为了解决上述技术问题,本发明的技术方案为:

一种离散数据成块通信的可编程控制器数据监控方法,包括如下步骤:

S1、导出可编程逻辑控制器PLC中的程序,该程序为XML格式文件;

S2、读取并解析上述XML格式文件中定义的变量,将该变量的相关信息封装成一个数据结构并生成监控字典;

S3、确认需要监控的变量,生成包含需监控的变量信息的通信列表;

S4、根据通信列表与可编程控制器PLC执行监控过程,得到变量的实际值;

S5、判断需要监控的变量是否变更,若变更则进行步骤S3,反之则进行步骤S4。

作为优选,所述步骤S2中,所述数据结构封装有变量名、由变量所在分区以及偏移量计算得出的变量实际地址、变量地址长度和变量值,其中变量值默认为0。

作为优选,所述监控字典设定是以变量名为键,以数据结构值。

作为优选,所述步骤S2中,所述变量地址为根据已定义的变量所在分区以及偏移量计算出的实际地址。

作为优选,所述步骤S4包括如下子步骤:

S4-1、通过通信列表和监控字典中的变量名形成的对应关系获取变量实际地址、变量地址长度等变量信息;

S4-2、对照协议生成并发送帧格式的数据帧;

S4-3、PLC接收到数据帧后,解析该数据帧后,获取指定变量实际地址为起始的、总长为变量地址长度的一段连续地址上的字节流,并对照协议接收帧格式的生成数据帧,返回给发送方;

S4-4、PLC接收到返回数据帧后,对返回数据帧中的返回数据的字节进行切割,并按照变量信息进行计算得到十进制的变量值。

作为优选,所述协议为离散数据成块通信的自定义协议。

本发明具有以下的特点和有益效果:

1.本发明利用离散数据成块通信的自定义协议很好地解决了监控两个地址跨度较大的变量的问题,从而避免出现数据冗余现象。

2.本发明利用监控字典、通信列表以及自定义协议,不仅能够满足可编程控制器的程序运行周期较快,留给监控线程的时间较短的特性,并且能很好地保证了数据监控方法的实时性和高效性,进而达到节约时间成本的效果。

3.本发明使用的自定义协议具有很好地扩展性,能够实现多变量同时修改的效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种离散数据成块通信的可编程控制器数据监控方法的框架流程图;

图2为本发明提供的一种离散数据成块通信的可编程控制器数据监控方法的离散数据成块通信的自定义协议的发送数据帧格式;

图3为本发明提供的一种离散数据成块通信的可编程控制器数据监控方法的离散数据成块通信的自定义协议的接收数据帧格式。

具体实施方式

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

以下将结合附图对本发明提供的技术方案作进一步说明,对本发明实施例中的实现方式、技术手段、操作流程进行完整且清晰的描述。需要指出,所述的实施例不是全部的实施例,仅为本发明的一部分实施例。

本发明提供了一种离散数据成块通信的可编程控制器数据监控方法,如图1所示,包括如下步骤:

S1、导出可编程逻辑控制器PLC中的程序,该程序为XML格式文件;

S2、读取并解析上述XML格式文件中定义的变量,将该变量的相关信息封装成一个数据结构并生成监控字典;

S3、确认需要监控的变量,生成包含需监控的变量信息的通信列表,由于数据监控实时性较好,不适宜每次从头确认需要监控的变量,因此通过通信列表作为中间结构;

S4、根据通信列表与可编程控制器PLC执行监控过程,得到变量的实际值;

S5、判断需要监控的变量是否变更,若变更则进行步骤S3,反之则进行步骤S4。

上述技术方案中,利用监控字典、通信列表以及自定义协议,不仅能够满足可编程控制器的程序运行周期较快,留给监控线程的时间较短的特性,并且能很好地保证了数据监控方法的实时性和高效性,进而达到节约时间成本的效果。

进一步的,所述步骤S2中,所述数据结构封装有变量名、由变量所在分区以及偏移量计算得出的变量实际地址、变量地址长度和变量值,其中变量值默认为0。

进一步的,所述监控字典设定是以变量名为键,以数据结构值。

进一步的,所述步骤S2中,所述变量地址为根据已定义的变量所在分区以及偏移量计算出的实际地址。

本发明的进一步设置,所述步骤S4包括如下子步骤:

S4-1、通过通信列表和监控字典中的变量名形成的对应关系获取变量实际地址、变量地址长度等变量信息;

S4-2、对照协议生成并发送帧格式的数据帧;

S4-3、PLC接收到数据帧后,解析该数据帧后,获取指定变量实际地址为起始的、总长为变量地址长度的一段连续地址上的字节流,并对照协议接收帧格式的生成数据帧,返回给发送方;

S4-4、PLC接收到返回数据帧后,对返回数据帧中的返回数据的字节进行切割,并按照变量信息进行计算得到十进制的变量值。

进一步的,所述协议为离散数据成块通信的自定义协议,该协议具有很好地扩展性,能够实现多变量同时修改的效果。

具体的,如图2所示,离散数据成块通信的自定义协议的发送数据帧格式为5nbyte(n为正整数),依次为:开始符2byte、数据帧编号1byte,变量实际地址4byte,变量类型1byte,CRC校验2byte。其中,变量类型的值为变量字节大小,若想要同时监控多个变量则按次序放置变量实际地址和变量类型的字节流,最后再加上CRC校验。

如图3所示,离散数据成块通信的自定义协议的接收数据帧格式为(4+n)byte(n为正整数),依次为:开始符2byte、数据帧编号1byte,字节流nbyte,CRC校验2byte。其中字节流是发送数据帧中变量对应字节流的按序罗列,解析时需要按变量去分割。

以上结合附图对本发明的实施方式作了详细说明,但本发明不限于所描述的实施方式。对于本领域的技术人员而言,在不脱离本发明原理和精神的情况下,对这些实施方式包括部件进行多种变化、修改、替换和变型,仍落入本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号