一种控制组态程序动态验证的方法及系统与流程

文档序号:17439891发布日期:2019-04-17 04:37阅读:264来源:国知局
一种控制组态程序动态验证的方法及系统与流程

本发明涉及工业自动化控制技术领域,更具体地说,涉及一种控制组态程序动态验证的方法。



背景技术:

工业自动化控制系统正逐渐朝着智能化与复杂化方向发展,控制组态程序算法逻辑关系越来越复杂,控制组态程序元件或者功能块数量也变得愈加庞大。在工业控制系统调试过程中,工程师将控制组态程序下载入控制器运算执行,驱动执行机构作业,但现实情况是,执行机构未能按照控制组态程序的控制策略执行,在排除控制组态程序本身错误的情况下,对控制组态程序在传送下载至控制器或者在控制器内执行过程进行检查,是工控系统故障排查的关键步骤方法。

工业控制系统故障的排查大多数仅停留在控制组态程序本身的检查,人机界面控制设置方式的检查以及通讯链路的检查,但这三项检查还未能进行全面检查,发现并排除故障点。因此,对控制组态程序下载或执行过程的故障检查十分必要,尤其是随着云控制技术的发展,在远程控制系统中,控制组态程序一般需经由互联网传送下载至控制器内执行,经常会出现数据丢包或者时间延迟导致的控制组态执行异常的问题,也可能由于信息安全风险如病毒入侵导致的控制组态执行异常,因此对控制组态程序从传送下载到运行执行过程中的故障检查,实现控制组态程序运算执行过程的透明化,是发现故障并排除bug的重要方法。

有鉴于此,为了能够解决控制组态程序在传送下载与运算执行过程中,难以实现数据透明化进行故障检查的技术问题,特别是对于云控制系统控制组态程序远程下载的情况,本发明提出了一种新的控制组态程序动态验证方法。



技术实现要素:

本发明要解决的技术问题,在于提供一种新的控制组态程序动态验证的方法和系统,以解决工业控制系统中控制组态程序在传送下载至控制器或者在控制器执行的过程中,难以查找异常或故障点的技术问题,有助于快速发现bug,恢复系统正常运行。

本发明方法是这样实现的:一种控制组态程序动态验证的方法,采集控制器在控制组态程序执行过程的中间变量数组数据或逻辑计算结果数据,通过实时监控采集到的中间变量数组数据或逻辑计算结果数据;以及读取和采集上位机控制组态程序编译后的txt格式的文本文件,并提取该txt格式的文本文件中的元件编号、元件下标、元件回路号的字段信息,将该字段信息与控制器的组态执行模块中控制组态程序运行结果信息作一致性比较,从而得出验证结果。

进一步的,本发明方法包括对控制组态程序离线传送过程正确性的验证过程:

步骤s11、上位机按照预先设置的标志位信号,向控制器发送表示离线传送请求的标志位信号-2,控制器接收到标志位信号-2后进行控制器内执行逻辑冻结,并将表示逻辑冻结的标志位信号1反馈至上位机;

步骤s12、上位机接收到标记位信号1后,开始离线传送控制组态程序,传送完成后将表示离线传送完成的标志位信号-1传送到控制器,控制器接收到标志位信号-1后,开始运行控制组态程序,并形成表示逻辑运行的标志位信号0;

步骤s13、上述表示不同含义的四种标志位信号保存于控制器的共享内存模块中;

步骤s14、根据内存区地址,读取控制器的共享内存模块的标志位信号数据,并显示标志位信号的动态变化规律,若变化规律一致,则判别上位机与控制器之间控制组态程序离线传送过程正确,否则为不正确。

进一步的,本发明方法包括对控制组态程序元件调度执行过程数据正确性的验证过程:

步骤s21、读取上位机控制组态程序在离线下载过程中生成的txt文本文件,提取元件编号、元件下标、元件回路号的字段信息,显示在界面上;

步骤s22、读取控制器组态执行模块中来自于上位机下载的控制组态程序运行结果信息,按照元件计算顺序升序提取元件编号、元件下标、元件回路号的字段信息,显示在界面上;

步骤s23、对上述两个步骤中提取的字段信息进行对应比较,若比较结果一致,则判别控制组态程序元件调度执行过程数据正确,否则判断为不正确。

进一步的,本发明方法包括对控制组态程序不同回路周期执行正确性的验证过程:

步骤s31、上位机将具有不同计算周期的控制组态程序回路下载至控制器的组态执行模块,进行运算;

步骤s32、上位机在回路首元件的算法中添加看门狗信号,回路每执行一次,看门狗信号值加1,并将看门狗信号数组存入控制器的共享内存模块的内存区数组中;

步骤s33、控制器在控制器内提取单个回路首元件与尾元件计算时间,计算二者时间差值即回路计算周期数组,存入控制器的共享内存模块的内存区数组中;

步骤s34、根据内存区地址,读取保存于控制器的共享内存模块的内存区数组中首元件看门狗信号数组与回路计算周期数组并显示看门狗信号数组与回路计算周期数组的变化规律,若变化规律一致,则判断不同回路周期控制组态程序执行正确,否则判断为不正确。

进一步的,本发明方法包括对控制组态程序中时间元件执行正确性的验证过程:

步骤s41、对上位机控制组态程序中的时间元件on与off时间参数以及时间元件计算周期进行设置,并将控制组态程序下载至控制器中运算执行;

步骤s42、控制器的控制组态程序运行过程中,提取时间元件on与off的剩余时间字段数值分别存入到控制器的共享内存模块的内存区数组中;

步骤s43、根据内存区地址,块读保存于取控制器的共享内存模块的内存区数组中时间元件两项参数on与off的剩余时间数值数组并显示在界面上,供用户通过观察on与off的剩余时间数值数组的变化规律,若变化规律一致,判断控制组态程序中时间元件执行正确,否则判断为不正确。

进一步的,该方法由控制组态程序动态验证软件来执行,所述控制组态程序动态验证软件主要由下述模块构成;

监控模块,用于实时监控控制器的数据,包括控制组态程序表示离线传送请求的标志位数组、表示逻辑冻结的标志位数组、表示离线传送完成的标志位和表示逻辑运行的标志位数组;实际调度的元件编号数组、元件下标数组、元件回路号数组;控制组态程序回路计算周期数组、看门狗信号数组;时间元件参数数组;

采集模块,用于读取并采集控制器的组态执行模块与共享内存模块中的数组数据,以及读取并采集上位机控制组态程序编译后的txt格式的文本文件;

比较模块,用于对各数组作一致性比较,并显示比较结果;

写值模块,用于对控制器的数值区域手动调节写值。

本发明系统是这样实现的:一种控制组态程序动态验证的系统,主要由下述模块构成:

采集模块,用于采集控制器的组态执行模块与内存模块中的数组数据,以及读取并采集上位机控制组态程序编译后的txt格式的文本文件;

监控模块,用于实时监控控制器的数据并显示在界面上;

比较模块,用于对各数组作一致性比较,并显示比较结果。

还包括:

写值模块,用于对数值区域手动调节写值。

进一步的,所述监控模块所监控的数据包括控制组态程序表示离线传送请求的标志位数组、表示逻辑冻结的标志位数组、表示离线传送完成的标志位和表示逻辑运行的标志位数组;实际调度的元件编号数组、元件下标数组、元件回路号数组;控制组态程序回路计算周期数组、看门狗信号数组;时间元件参数数组。

进一步的,本发明系统执行下述过程:

(1)在对控制组态程序离线传送过程正确性的验证过程中:所述采集模块根据内存区地址,读取保存于控制器的共享内存模块中的标志位信号数据;

(2)在对控制组态程序元件调度执行过程数据正确性的验证过程中:所述采集模块读取上位机的控制组态程序在离线下载过程中生成的txt文本文件,提取元件编号、元件下标、元件回路号的字段信息,显示在界面上;还读取控制器的组态执行模块中来自于上位机下载的控制组态程序运行结果信息,按照元件计算顺序升序提取元件编号、元件下标、元件回路号的字段信息;所述比较模块对提取的上位机数据和控制器数据进行比较并显示比较结果;

(3)在对控制组态程序不同回路周期执行正确性的验证过程中:所述采集模块根据内存区地址,读取控制器的共享内存模块的内存区数组中首元件看门狗信号数组与回路计算周期数组;

(4)在对控制组态程序中时间元件执行正确性的验证过程中:所述采集模块根据内存区地址,读取控制器的共享内存模块的内存区数组中时间元件两项参数on与off的剩余时间数值数组。

本发明具有如下优点:本发明在采集控制组态程序的下载和执行过程中采集相关数据,进行监控和比较,从而快速查找并发现控制组态程序执行过程的故障点,监测控制组态程序正确执行。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为本发明控制器的组态执行模块的结构示意图。

图2为本发明控制组态程序动态验证方法架构原理示意图。

图3为本发明对控制组态程序离线传送过程正确性的验证过程的执行流程图。

图4为本发明对控制组态程序离线传送过程正确性的验证过程中的动态验证软件界面图。

图5为本发明对控制组态程序元件调度执行过程数据正确性的验证过程中的动态验证软件界面图。

图6为本发明对控制组态程序不同回路周期执行正确性的验证过程中的动态验证软件界面图。

图7为本发明对控制组态程序中时间元件执行正确性的验证过程中的动态验证软件界面图。

具体实施方式

本发明的控制组态程序动态验证的方法,采集控制器在控制组态程序执行过程的中间变量数组数据或逻辑计算结果数据,通过实时监控采集到的中间变量数组数据或逻辑计算结果数据;以及读取和采集上位机控制组态程序编译后的txt格式的文本文件,并提取该txt格式的文本文件中的元件编号、元件下标、元件回路号的字段信息,将该字段信息与控制器的组态执行模块中控制组态程序运行结果信息作一致性比较,从而得出验证结果。

其中,由本领域技术人员可以了解:

(1)、所述控制组态程序是指用户在上位机上针对系统过程控制,以元件为基本单元编写的算法组态程序。所述元件是指封装了算法函数的图形化功能块,是控制组态程序的基本组成单元,元件间的连接关系对应着控制状态的递推关系,传递流程以及基本控制算法的编码过程。

(2)、所述控制器的主要功能是执行来自上位机的用户编写的控制组态程序,包括四大模块,分别为组态执行模块、共享内存模块、数据通讯模块、上电初始化模块。通过数据通讯模块,可将组态执行模块与共享内存模块中的数组数据进行共享调用。如图1所示,所述组态执行模块由实时数据库与算法执行驱动组成,实时数据库用于接收上位机发送的控制组态程序算法,在算法执行驱动作用下,按照控制组态程序的字段格式顺序进行数据的逻辑运算。所述共享内存模块用于存储控制组态程序执行过程的中间变量数组数据,如控制组态程序离线传送标志位数组、逻辑冻结/运行标志位数组、看门狗信号数组,供数据共享或调用。所述数据通讯模块用于与其他控制器、上位机、动态验证软件的数据通讯。所述上电初始化模块用于清空组态执行模块中控制组态程序的执行数据,供其他批次控制组态程序下载运算。

如图2所示,为验证方便,本发明一种控制组态程序动态验证的系统(本发明中也称控制组态程序动态验证软件,可安装在计算机上,分别与上位机和控制器进行现场或远程通讯),主要由下述模块构成:

采集模块,用于采集控制组态程序执行过程的中间变量数组数据或逻辑计算结果数据,以及读取并采集上位机控制组态程序编译后的txt格式的文本文件;其中,中间变量数组数据被保存在控制器的共享内存模块中,而逻辑计算结果数据则是控制器的组态执行模块中来自于上位机下载的控制组态程序运行结果信息。

监控模块,用于实时监控控制器的数据并显示在界面上;所述监控模块所监控的数据包括控制组态程序表示离线传送请求的标志位数组、表示逻辑冻结的标志位数组、表示离线传送完成的标志位和表示逻辑运行的标志位数组;实际调度的元件编号数组、元件下标数组、元件回路号数组;控制组态程序回路计算周期数组、看门狗信号数组;时间元件参数数组。

比较模块,用于对采集到的上位机的数组和控制器的数组作一致性比较,并显示比较结果;在具体的实施例中,若比较结果一致,则弹窗显示“比较一致”;若比较结果不一致,则弹窗显示“比较不一致”,并可将不一致数据红色标注突出显示,还具备提取不一致数据的功能,不一致数据可在界面窗口中列表显示。

写值模块,用于对数值区域手动调节写值,比如写入控制组态程序回路的计算周期数值在相应的数值区域,由于控制器的运算过程非常快,在这么快的速度下对于运算结果数据的采集比较困难,因此可以通过写值模块对控制器的运算过程进行控制,如设置控制器的运算周期数值为10秒,则控制器在运算10秒后自动暂停,在采集完相关数据后继续运算。

本发明包括下述几个验证过程:

(1)如图3所示,包括对控制组态程序离线传送过程正确性的验证过程:

步骤s11、上位机按照预先设置的标志位信号,向控制器发送表示离线传送请求的标志位信号-2,控制器接收到标志位信号-2后进行控制器内执行逻辑冻结,并将表示逻辑冻结的标志位信号1反馈至上位机;

步骤s12、上位机接收到标记位信号1后,开始离线传送控制组态程序,传送完成后将表示离线传送完成的标志位信号-1传送到控制器,控制器接收到标志位信号-1后,开始运行控制组态程序,并形成表示逻辑运行的标志位信号0;

步骤s13、上述表示不同含义的四种标志位信号保存于控制器的共享内存模块中;

步骤s14、控制组态程序动态验证软件的所述采集模块根据内存区地址,读取控制器的共享内存模块的标志位信号数据,即可通过判断标志位信号数据是否按照“-2,1、-1,0”的顺序排列,来判断上位机与控制器之间控制组态程序离线传送过程的正确性;判断时可如图3所示,将标志位信号数据显示在界面上,供用户通过观察其动态变化规律来判别,当然也可通过控制组态程序动态验证软件自行判断后直接给出结果。

由于目前控制组态程序在离线传送过程中并没有设置标志位信号,因此步骤步骤s11和步骤s12的具体实现时,只需在上位机程序及控制器的程序中加入该两步骤的处理过程即可。

(2)包括对控制组态程序元件调度执行过程数据正确性的验证过程:

步骤s21、通过控制组态程序动态验证软件的所述采集模块读取上位机控制组态程序在离线下载过程中生成的编绎后的txt文本文件,提取元件编号、元件下标、元件回路号的字段信息,显示在界面上,如图5的左侧上方表单所示;

步骤s22、通过控制组态程序动态验证软件的所述采集模块读取控制器组态执行模块中来自于上位机下载的控制组态程序运行结果信息,按照元件计算顺序升序提取元件编号、元件下标、元件回路号的字段信息,显示在界面上,如图5右侧表单所示;

步骤s23、通过控制组态程序动态验证软件的比较模块对两组数据进行比较并显示比较结果,如图5的左侧下方表单所示,看两组数据是否一致,供用户判别控制组态程序元件调度执行过程数据的正确性,若一致,则组态程序元件调度执行过程数据正确,否则,不正确。

(3)包括对控制组态程序不同回路周期执行正确性的验证过程:

步骤s31、上位机将具有不同计算周期的控制组态程序回路下载至控制器的组态执行模块,进行运算;

步骤s32、上位机在回路首元件的算法中添加看门狗信号,回路每执行一次,看门狗信号值加1,并将看门狗信号数组存入控制器的共享内存模块的内存区数组中;

步骤s33、控制器在控制器内提取单个回路首元件与尾元件计算时间,计算二者时间差值即回路计算周期数组,存入控制器的共享内存模块的内存区数组中;

步骤s34、通过控制组态程序动态验证软件的所述采集模块根据内存区地址,读取保存于控制器的共享内存模块的内存区数组中首元件看门狗信号数组与回路计算周期数组并进行显示,供用户通过观察看门狗信号数组与回路计算周期数组的变化规律,来判断不同回路周期控制组态程序执行的正确性。如图6所示,其显示的回路执行时间依次为5000、10000、15000,说明周期均为5000,变化规律一致,因此执行正确。

(4)本发明方法包括对控制组态程序中时间元件执行正确性的验证过程:

步骤s41、对上位机控制组态程序中的时间元件on与off时间参数以及时间元件计算周期进行设置,并将控制组态程序下载至控制器中运算执行;

步骤s42、在控制器控制组态程序的运行过程中,提取时间元件on与off的剩余时间字段数值分别存入到控制器的共享内存模块的内存区数组中;

步骤s43、通过控制组态程序动态验证软件的所述采集模块根据内存区地址,块读保存于取控制器的共享内存模块的内存区数组中时间元件两项参数on与off的剩余时间数值数组并显示在界面上,如图7所示,供用户通过观察on与off的剩余时间数值数组的变化规律,来判断控制组态程序中时间元件执行的正确性。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1