一种监控可编程逻辑控制器的通信数据打包方法技术

技术编号:9768074 阅读:111 留言:0更新日期:2014-03-15 22:35
本发明专利技术提出了一种监控可编程逻辑控制器的通信数据打包方法,其特征在于,步骤为:步骤1、形成连续的有效数据包及有效数据包的排列关系;步骤2、有效数据包若符合拆分条件,则进入步骤3;有效数据包若符合合并条件,则进入步骤4;有效数据包若既不符合合并条件也不符合拆分条件,则进入步骤5,步骤3、拆分有效数据包;步骤4、合并有效数据包;步骤5、当前的有效数据包打包完成后,判断是否所有有效数据包全部打包完成,如果还有未被打包的有效数据包,则返回步骤2继续打下一个包,否则打包结束。本发明专利技术能够避免由于数据打包的不合理,导致通信效率降低,无法达到监控可编程逻辑控制器的最佳效果。

【技术实现步骤摘要】
一种监控可编程逻辑控制器的通信数据打包方法
本专利技术涉及一种可编程控制逻辑控制器的通信数据打包方法。
技术介绍
可编程逻辑控制器在当今的各行各业中具有广泛的应用,如汽车、化工、纺织等等。它采用可编程的存储区,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算数操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。用户可以使用设备供应商提供的可编程逻辑控制器编程软件对可编程逻辑控制器进行调试,达到实时监控可编程逻辑控制器存储区当前值的效果。可是,在可编程逻辑控制器程序量大的情况下监控,周期性通信的数据量较多,通信交互的实时性无法得到应有的保障,不能给用户一个高效响应的友好可视化界面,甚至影响现场运行过程的跟踪与调试。如何快速、稳定的将可编程逻辑控制器存储区的值在可编程逻辑控制器编程软件的界面中实时的显示是其中一个很重要的问题。在考虑如何解决此问题前,必须先了解目前监控可编程逻辑控制器通信的整个过程,如图2所示,其分为收集存储区地址、打包存储区地址、将打包的存储区地址信息转化为数据帧并发送给可编程逻辑控制器、等待可编程控制器回复数据。从目前主流的可编程逻辑控制器编程软件访问可编程逻辑控制器存储区当前值的通信报文格式来看,发送数据帧的请求过程中,数据帧的报文格式中一定会包含的信息有,起始位、设备地址、功能代码、存储区类型、首地址、数量、效验位、结束符,如图3A及图3B所示。由此可得,访问存储区时,若数据为同一存储区类型,并且是连续的,则可以通过一次的数据交互过程完成。回复过程中,可编程控制器将访问的存储区当前值的数据回复给可编程控制器编程软件。在符合主流通信报文格式的前提下,传统的存储区地址打包方式为:同一存储区类型的连续数据打包在一起,否则分开打包。此方案并非最优的打包方案,其原因在于:第一、若同一存储区类型的连续数据量非常大,将其打成一个包,此包在一次通信交互过程中完成,回复的数据量会超出通信的最大负荷,导致误码率提高,影响通信效率。故此情况下,需要考虑将其再分包和怎么分包的问题。第二、在同一存储区类型的连续数据量非常小的情况下,若连续同一存储区类型地址的中间有一处断开地址个数很少,将其分开打包,打成2个包,原本一次就可完成的交互过程现在需要进行2次数据交互才能完成对这些存储区地址的访问,而且2次交互的数据有部分为重复数据,例如,起始位、效验位、结束符等等。
技术实现思路
本专利技术的要解决的技术问题是避免由于数据打包的不合理,导致通信效率降低,无法达到监控可编程逻辑控制器的最佳效果。为了解决上述技术问题,本专利技术的技术方案是提供了一种监控可编程逻辑控制器的通信数据打包方法,其特征在于,步骤为:步骤1、生成需监控可编程逻辑控制器存储区地址的描述数据,记为有效数据,将所有有效数据根据存储区地址以连续性的特点分组,连续的有效数据分为一组,形成连续的有效数据包,将连续的有效数据包以存储区地址从小到大的顺序排列,形成有效数据包的排列关系;步骤2、有效数据包若符合拆分条件,则进入步骤3;有效数据包若符合合并条件,则进入步骤4;有效数据包若既不符合合并条件也不符合拆分条件,则进入步骤5,其中:拆分条件为:有效数据包的大小大于能够确保通信误码率保持平稳的最大字节数;合并条件为:相邻两个有效数据包合并后的大小不大于能够确保通信误码率保持平稳的最大字节数,且相邻两个有效数据包合并后的估算通信时间小于多个有效数据包合并前的估算通信时间;步骤3、拆分有效数据包:记Dbase为当前有效数据包的字节数,记L为能够确保通信误码率保持平稳的最大字节数,将有效数据包一分为二,其一是能够确保通信误码率保持平稳的最大字节数部分,记为L部分,其二是有效数据包去除能够确保通信误码率保持平稳的最大字节数后剩余的部分,记为(Dbase-L)部分,将L部分与(Dbase-L)部分分别打成一个包,进入步骤5;步骤4、合并有效数据包:记Dafter为与当前的有效数据包相邻的有效数据包的字节数,记Dmid为相邻两个有效数据包之间的无效连续数据字节数,将相邻的两个有效数据包合并成一个,则新的打包的基本数据字节数的值为Dbase+Dmid+Dafter,以新的打包的基本数据字节数将相邻两个有效数据包打成一个包,进入步骤5;步骤5、当前的有效数据包打包完成后,判断是否所有有效数据包全部打包完成,如果还有未被打包的有效数据包,则返回步骤2继续打下一个包,否则打包结束。优选地,所述步骤2包括:步骤2.1、开始监控可编程逻辑控制器之前,先发送一些固定长度的通信帧,测量4个参数,包括v、L、Ts,Tp,其中,v为通信平均速率,Ts为监控可编程逻辑控制器的设备收发数据的间隔时间,Tp为可编程逻辑控制器的收发数据的间隔时间;步骤2.2、若Dbase>L时,则满足拆分有效数据包的条件,进入所述步骤3,否则不满足拆分有效数据包的条件,进入步骤2.3;步骤2.3、若Dbase+Dmid+Dafter>L,则不满足合并有效数据包的条件,进入所述步骤5,否则判断相邻两个有效数据包合并后的估算通信时间是否小于多个有效数据包合并前的估算通信时间,若是,则进入所述步骤4,否则进入所述步骤5。优选地,所述步骤2.3中判断相邻两个有效数据包合并后的估算通信时间是否小于多个有效数据包合并前的估算通信时间的步骤为:步骤2.3.1、估算合并前需要的通信时间Tuc:步骤2.3.2、估算合并后需要的通信时间Tc:;步骤2.3.3、对合并前和合并后需要的通信时间进行比较:若Tc-Tuc<0,则进入所述步骤4,否则进入所述步骤5。本专利技术提供了一种可编程控制逻辑控制器的通信数据打包方法,能够避免由于数据打包的不合理,导致通信效率降低,无法达到监控可编程逻辑控制器的最佳效果。附图说明图1为一种监控可编程逻辑控制器的通信数据打包方法的整个过程;图2为目前监控可编程逻辑控制器通信的整个过程;图3A为目前主流的可编程逻辑控制器编程软件访问可编程逻辑控制器存储区当前值的发送通信报文格式;图3B为目前主流的可编程逻辑控制器编程软件访问可编程逻辑控制器存储区当前值的回复通信报文格式;图4为拆分数据包的过程;图5为合并数据包的过程;图6A为实施例的发送通信报文格式;图6B为实施例的回复通信报文格式;图7为实施例的流程图。具体实施方式为使本专利技术更明显易懂,兹以优选实施例,并配合附图作详细说明如下。结合图1及图7,本专利技术提供了一种监控可编程逻辑控制器的通信数据打包方法,其步骤为:需要监视可编程控制器的存储区地址为QB1QB2QB3QB5QB6QB7QB8QB53QB54,则按照如下步骤打包。步骤1:生成需监视可编程逻辑控制器存储区地址的描述数据,形成存储区地址的集合和排列关系集合。将所有存储区地址的数据以从小到大的顺序排列,根据连续性的特点分为,QB1QB2QB3、QB5QB6QB7QB8、QB53QB54三个部分的此序列的集合。步骤2-1:开始监视可编程逻辑控制器之前,先发送一些固定长度的通信帧,测量4个参数,包括v、L、Ts,Tp,得到v=9600bps=9600bit/s=1200byte/s,L=64byte,Ts=0.003s,Tp=0.002s其中,V为通信平均速率,L为能够确保本文档来自技高网
...
一种监控可编程逻辑控制器的通信数据打包方法

【技术保护点】
一种监控可编程逻辑控制器的通信数据打包方法,其特征在于,步骤为:步骤1、生成需监控可编程逻辑控制器存储区地址的描述数据,记为有效数据,将所有有效数据根据存储区地址以连续性的特点分组,连续的有效数据分为一组,形成连续的有效数据包,将连续的有效数据包以存储区地址从小到大的顺序排列,形成有效数据包的排列关系;步骤2、有效数据包若符合拆分条件,则进入步骤3;有效数据包若符合合并条件,则进入步骤4;有效数据包若既不符合合并条件也不符合拆分条件,则进入步骤5,其中:拆分条件为:有效数据包的大小大于能够确保通信误码率保持平稳的最大字节数;合并条件为:相邻两个有效数据包合并后的大小不大于能够确保通信误码率保持平稳的最大字节数,且相邻两个有效数据包合并后的估算通信时间小于多个有效数据包合并前的估算通信时间;步骤3、拆分有效数据包:记Dbase为当前有效数据包的字节数,记L为能够确保通信误码率保持平稳的最大字节数,将有效数据包一分为二,其一是能够确保通信误码率保持平稳的最大字节数部分,记为L部分,其二是有效数据包去除能够确保通信误码率保持平稳的最大字节数后剩余的部分,记为(Dbase?L)部分,将L部分与(Dbase?L)部分分别打成一个包,进入步骤5;步骤4、合并有效数据包:记Dafter为与当前的有效数据包相邻的有效数据包的字节数,记Dmid为相邻两个有效数据包之间的无效连续数据字节数,将相邻的两个有效数据包合并成一个,则新的打包的基本数据字节数的值为Dbase+Dmid+Dafter,以新的打包的基本数据字节数将相邻两个有效数据包打成一个包,进入步骤5;步骤5、当前的有效数据包打包完成后,判断是否所有有效数据包全部打包完成,如果还有未被打包的有效数据包,则返回步骤2继续打下一个包,否则打包结束。...

【技术特征摘要】
1.一种监控可编程逻辑控制器的通信数据打包方法,其特征在于,步骤为:步骤1、生成需监控可编程逻辑控制器存储区地址的描述数据,记为有效数据,将所有有效数据根据存储区地址以连续性的特点分组,连续的有效数据分为一组,形成连续的有效数据包,将连续的有效数据包以存储区地址从小到大的顺序排列,形成有效数据包的排列关系;步骤2、有效数据包若符合拆分条件,则进入步骤3;有效数据包若符合合并条件,则进入步骤4;有效数据包若既不符合合并条件也不符合拆分条件,则进入步骤5,其中:拆分条件为:有效数据包的大小大于能够确保通信误码率保持平稳的最大字节数;合并条件为:相邻两个有效数据包合并后的大小不大于能够确保通信误码率保持平稳的最大字节数,且相邻两个有效数据包合并后的估算通信时间小于多个有效数据包合并前的估算通信时间;步骤3、拆分有效数据包:记Dbase为当前有效数据包的字节数,记L为能够确保通信误码率保持平稳的最大字节数,将有效数据包一分为二,其一是能够确保通信误码率保持平稳的最大字节数部分,记为L部分,其二是有效数据包去除能够确保通信误码率保持平稳的最大字节数后剩余的部分,记为(Dbase-L)部分,将L部分与(Dbase-L)部分分别打成一个包,进入步骤5;步骤4、合并有效数据包:记Dafter为与当前的有效数据包相邻的有效数据包的字节数,记Dmid为相邻两个有效数据包之间的无效连续数据字节数,将相邻的两个有效数据包...

【专利技术属性】
技术研发人员:琚长江明勤程睿远薛吉张志深
申请(专利权)人:上海电器科学研究院上海电器科学研究所集团有限公司
类型:发明
国别省市:

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

1