一种PLC内部数据监控系统的实现方法技术方案

技术编号:38514916 阅读:10 留言:0更新日期:2023-08-19 16:57
本发明专利技术属于工业控制领域,更具体地,涉及一种PLC内部数据监控系统的实现方法。所述方法包括S1、上位机发送监控请求至通信模块,经通信模块处理后输出一个原数据包到数据压缩模块;S2、数据压缩模块接收到原数据包后进行数据压缩;S3、下数据解析模块接收到数据压缩模块的输入后进行数据解析并传输至下位机;S4、下位机执行监控命令并返回响应监控请求至通信模块,经通信模块处理后输出一个返程数据包到数据压缩模块;S5、数据压缩模块接收到返程数据包后进行数据压缩;S6、上数据解析模块接收到数据压缩模块的输入后进行数据解析并传输至上位机。本发明专利技术解决了现有技术中数据冗余或通信次数过多,监控速率较低的问题。监控速率较低的问题。监控速率较低的问题。

【技术实现步骤摘要】
一种PLC内部数据监控系统的实现方法


[0001]本专利技术属于工业控制领域,更具体地,涉及一种PLC内部数据监控系统的实现方法。

技术介绍

[0002]现代自动化系统在许多工业领域具有效率高和应用广泛的特点,但由于网络化和分布式的发展,其复杂性也呈现不断增加的趋势。一些可编程逻辑控制器(PLC)仍采用低级语言进行编程,使用这些平台的开发软件比较容易出错。因此在软件开发的过程中可以随时对内部数据进行监控是必不可少的。随着PLC应用场景中对系统实时性的要求不断提高,在自动化系统的整个生命周期中,内部数据获取的速率对排除故障、优化监控过程和提高编程效率也变得越来越重要。
[0003]虽然期间已经公开了多种PLC内部数据监控系统方案,但是依然无法实质性解决监控速率较低、通信次数过多的技术问题。
[0004]中国专利CN114995280A文献公开了一种提高PLC数据采集效率的方法,包括:读缓冲区和写缓冲区,其数据类型包括:开关量I/O、模拟量I/O和控制参数;上位机中设置有与每一个PLC对应的读缓冲区和写缓冲区;上位机发送数据读取指令;以使每一个PLC根据读取指令,从对应的读缓冲区中确认对应的数据;上位机读取该PLC对应的数据;上位机发送数据写指令;以使每一个PLC根据写指令,从对应的写缓冲区中确认需要输出的数据;上位机将需要输出的数据写入该PLC对应的写缓冲区。通过将PLC在地址分散的开关量IO、模拟量IO和其他数据集中到读写缓冲区,上位机通过一条读指令和一条写指令即可完成与PLC的通信,简化了上位机通信程序的代码。
[0005]中国专利CN114690699A文献公开了一种离散数据成块通信的可编程控制器数据监控方法,该方法首先导出可编程逻辑控制器PLC中的程序,该程序为XML读取并解析上述XML格式文件中定义的变量,将该变量的相关信息封装成一个数据结构并生成监控字典;然后确认需要监控的变量,生成包含需监控的变量信息的通信列表;根据通信列表与可编程控制器PLC执行监控过程,最后得到变量的实际值。
[0006]中国专利CN110244649A文献公开了一种PLC内部数据采集方法和系统,其中的方法包括:蓝牙无线智能数据采集器采集PLC内部的数据,并通过蓝牙无线传输技术将采集到的数据发送到支持蓝牙的网关;所述网关接收所述数据,并将所述数据发送到服务器;所述服务器接收所述数据,并将所述数据通过Web服务呈现给用户。
[0007]综上所述,现有技术虽然减少了读写次数,但监控速率较低,其次采集多个数据地址跨度较大的离散变量,将会造成数据冗余或通信次数过多,从而降低监控速率;即使将所有的变量都当做了离散变量,仍然没有解决监控速率低的问题。为了优化监控过程和提高编程效率,急需一种监控速率快,通信次数少的PLC内部数据监控方法。

技术实现思路

[0008]本专利技术旨在克服上述现有技术的至少一种缺陷,提供一种PLC内部数据监控系统的实现方法。
[0009]本专利技术详细的技术方案如下:
[0010]本专利技术为了解决上述技术问题,提供了一种PLC内部数据监控系统的实现方法,以解决现有技术监控速率较低、通信次数过多等问题。
[0011]为实现上述目的,本专利技术提供了一种PLC内部数据监控系统的实现方法,包括以下步骤:
[0012]一种PLC内部数据监控系统的实现方法,其特征在于,包括:
[0013]S1、上位机发送监控请求至通信模块,经通信模块处理后输出一个原数据包到数据压缩模块;
[0014]S2、数据压缩模块接收到原数据包后,根据压缩阈值判断是否需要压缩;
[0015]若需要压缩,则将经过数据压缩后的压缩数据包输出到下数据解析模块;
[0016]若不需要压缩,则直接输出原数据包到下数据解析模块;
[0017]S3、若下数据解析模块接收到压缩数据包则进行数据解压和数据解析并传输至下位机;若下数据解析模块接收到原数据包则进行数据解析并传输至下位机;
[0018]S4、下位机执行监控命令并返回响应监控请求至通信模块,通信模块将响应监控请求通过DTC通信协议和数据打包单元打包后输出一个返程数据包到数据压缩模块;
[0019]S5、数据压缩模块接收到原数据包后,根据压缩阈值判断是否需要压缩;
[0020]若需要压缩,则将经过数据压缩后的压缩返程数据包输出到上数据解析模块;
[0021]若不需要压缩,则直接输出返程数据包到上数据解析模块;
[0022]S6、若上数据解析模块接收到压缩返程数据包则进行数据解压和数据解析并传输至上位机;若上数据解析模块接收到返程数据包则进行数据解析并传输至上位机。。
[0023]进一步地,所述通信模块包括DTC通信协议和数据打包单元;
[0024]所述DTC通信协议规定了DTC通信报文即所述DTC通信协议是一条包含多个数据地址、多种数据类型的通信报文,包括终端地址、命令码、数据地址、数据类型、数据长度、CRC校验或数据;所述DTC通信协议将连续或离散的变量以离散变量组的形式合并到一条DTC通信报文中;随着自动化发展,工业程序的规模和复杂度不断增加,在对PLC进行软件开发时,一个规模较大的梯形图程序可能需要使用到很多变量(所述变量包括开关量、模拟量和PLC中的控制变量如字节、字、双字及浮点数等),这些类型不同的变量数据地址并不是都是连续的(即变量的数据地址既有连续的又有离散的);当监控多个变量,有些数据类型相同且数据地址是连续的变量,也有些数据地址空间跨度较大且数据类型不同的变量,针对这种情况基于传统的modbus通信协议进行监控通常采用两种解决方案:
[0025]①
分开多次发送modbus通信请求,每次读取一个或多个连续的数据地址,上位机每一次发送通信协议,下位机都需要响应请求。在一个完整的监控过程中,PLC需要对接收到的数据解析,并获取相应的数据地址的值,然后将打包再发送给上位机,上位机接收到数据并解析数据,所以通信时间和数据处理所需时间占单次数据监控所需时间比重较高。若分开发送通信请求会极大的浪费时间,降低监控速率且系统的实时性较差;
[0026]②
将所有需要监控的变量合成一个modbus通信请求,这样会带来太多的数据冗
余,传送的数据包也会过大导致数据传输时间过长;
[0027]基于传统离散成块通信协议,将所有的变量都当成离散变量全部封装到报文中,又会导致报文过长的同时增加了报文解析的复杂度;因此针对多个变量数据类型不同,数据地址可能是连续的或数据地址跨度较大的问题,本专利技术中DTC通信协议可以将连续或离散的变量以离散变量组的形式合并到一条DTC通信报文中,无论监控多少变量只需要发送一次DTC通信报文即可,解决了多次通信和数据冗余的问题同时降低了报文长度和报文解析的复杂度,提高内部数据监控的速率;
[0028]所述数据打包单元具有将报文整合成数据包的功能,负责将终端地址、命令码、数据地址、数据类型、数据长度、CRC校验或数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种PLC内部数据监控系统的实现方法,其特征在于,包括;S1、上位机发送监控请求至通信模块,经通信模块处理后输出一个原数据包到数据压缩模块;S2、数据压缩模块接收到原数据包后,根据压缩阈值判断是否需要压缩;若需要压缩,则将经过数据压缩后的压缩数据包输出到下数据解析模块;若不需要压缩,则直接输出原数据包到下数据解析模块;S3、若下数据解析模块接收到压缩数据包则进行数据解压和数据解析并传输至下位机;若下数据解析模块接收到原数据包则进行数据解析并传输至下位机;S4、下位机执行监控命令并返回响应监控请求至通信模块,通信模块将响应监控请求通过DTC通信协议和数据打包单元打包后输出一个返程数据包到数据压缩模块;S5、数据压缩模块接收到原数据包后,根据压缩阈值判断是否需要压缩;若需要压缩,则将经过数据压缩后的压缩返程数据包输出到上数据解析模块;若不需要压缩,则直接输出返程数据包到上数据解析模块;S6、若上数据解析模块接收到压缩返程数据包则进行数据解压和数据解析并传输至上位机;若上数据解析模块接收到返程数据包则进行数据解析并传输至上位机。2.根据权利要求1所述的一种PLC内部数据监控系统的实现方法,其特征在于,所述通信模块包括DTC通信协议和数据打包单元;所述DTC通信协议规定了DTC通信报文,包括终端地址、命令码、数据地址、数据类型、数据长度、CRC校验或数据;所述DTC通信协议将连续或离散的变量以离散变量组的形式合并到一条DTC通信报文中;所述数据打包单元具有将报文整合成数据包的功能,负责将终端地址、命令码、数据地址、数据类型、数据长度、CRC校验或数据打包成一个数据包后发送至数据压缩模块。3.根据权利要求2所述的一种PLC内部数据监控系统的实现方法,其特征在于,所述离散变量组包括数据地址、数据类型、数据长度或/和数据;当读取数据时,所述离散变量组包括数据地址、数据类型和数据长度;当写入数据时,所述离散变量组包括数据地址、数据类型、数据长度和数据;所述离散变量组中变量的数据类型相同且数据地址连续。4.根据权利要求1所述的一种PLC内部数据监控系统的实现方法,其特征在于,所述数据压缩模块采用改进的lzw压缩算法,所述S2具体包括以下步骤:S21、设置压缩阈值:大于等于压缩阈值的数据包进行压缩,继续以下步骤;小于压缩阈值的数据包不需要压缩直接传输到下数据解析模块;S22、初始化字典,将0

F添加到字典树中,编码对应为0

15:S23、将data[i]赋值给curent,初始i为0,将data[i+1]赋值给next;S24、若当前的current在字典中存在,则将current与next组合在一起形成新的字符数组后,赋值给current;i的值加1后,将data[i+1]赋值给next;重复此操作直至current不存于字典中;
若不存在,则直接进行下一步;S25、将current在字典中对应的编码处存放到data_code中;S26、更新字典并将current加入到字典中:将data[i]赋值给next,将current与next组合在一起形成新的字符数组后赋值给current,然后把current添加到字典树中,编码加1;S27、重复S24、S25、S26步骤,直到待压缩数据全部压缩完成;以上步骤出现的变量含义如下:data表示待压缩数据,类型是字符数组;data_code表示压缩后的数据,类型是整型数组;current表示当前正在压缩的字符数组,类型是字符数组;next表示current的下一个字符,类型是字符变量。5.根据权利要求4所述的一种PLC内部数据监控系统的实现方法,其特征在于,所述改进的lzw压缩算法采用tire算法优化字典查找速率:(1)将字典以字典树的方式进行存储,字典树中的每个节点都存储一个字符且每个字符只能为0

F;(2)根据所查找字符串的第一个字符,查找根节点的子节点中对应的字符与所查找字符是否匹配;若不匹配,则直接将此字符串插入到字典树中;若匹配,则查找此节点的子节点是否匹配字符串中的下一个字符:若不匹配,则此字符串的后续字符插入到字典树中,结束;若匹配,则继续查找下一个字符对应的下一个子节点是否匹配,直到字符串所有字符查找结束。6.根据权利要求2所述的一种PLC内部数据监控系统的实现方法,其特征在于,所述DTC通信协议每字节具体为:终端地址:对应下位机PLC的地址,大小为1byte;命令码:根据命令码下位机执行不同的操作;当命令码为0时,代表上位机向下位机读数据;当命令码为1时,代表上位机向下位机写数据,大小为1byte;数据地址:表示需要读取或写入数据的地址,大小为2byte;数据类型:表示需要读取或写入数据的类型,包括位变量0、短整型1、整型2、单精度浮点型3和双精度浮点型4,大小为1byte;数据长度:表示需要读取或写入数据的个数,大小为2byte;数据:表示需要读取或写入数据的值;CRC校验:表示DTC通信报文经过CRC校验后的结果,大小为...

【专利技术属性】
技术研发人员:王振硕程广河孙瑞瑞孔志刚张让勇郝凤琦郝慧娟丁文康万众马宗军
申请(专利权)人:齐鲁工业大学山东省科学院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1