一种工业控制系统逻辑断点调试功能的实现方法

文档序号:9910259阅读:596来源:国知局
一种工业控制系统逻辑断点调试功能的实现方法
【技术领域】
[0001] 本发明属于工业自动化控制系统技术领域,更具体地说,涉及一种工业控制系统 逻辑断点调试功能的实现方法。
【背景技术】
[0002] 在工业自动化控制中,由组态软件与控制器(也称为上位机与下位机)组成的控制 系统广泛的应用于各控制领域:如分布式控制系统(DCS)、可编程控制器(PLC)等。组态软件 负责生成算法程序,控制器负责执行程序实现控制功能。在很多应用场合中,算法程序都具 有一定的复杂性,而算法程序正确与否直接关系到工业控制的正确性及安全性。因此提供 一套准确、高效的算法程序调试方法对工业控制系统具有重要的意义。
[0003] 行业内传统方式多采用替换指令的方式来触发中断,已完成断点调试功能。但该 方法在逻辑运行过程中替换指令具有较高的风险性,逻辑运行存在安全隐患,同时如果在 中断后下位机出现异常可能无法将指令恢复至正常执行状态。

【发明内容】

[0004] 有鉴于此,本发明提供一种工业控制系统逻辑断点调试功能的实现方法,用来完 成算法逻辑调试功能,通过引入中断函数调用的方式避免在运行时修改程序指令。具体的 包括:逻辑组态页面设置或取消断点,运行过程中提供运行到断点Run to、单步Step In以 及单步Step Over的调试方法,以此来完成对算法逻辑的调试。
[0005] 本发明的技术方案实现如下所述:
[0006] -种工业控制系统逻辑断点调试功能的实现方法,该方法包括逻辑粧点表生成、 中断逻辑指令生成、调试命令设计;其特征在于,所述实现方法包括以下步骤:
[0007] (1)定义原子操作,生成逻辑粧点:定义逻辑执行原子操作为不可再拆分的运算及 函数调用,每个原子操作处对应一个逻辑粧点,标识该原子操作执行前可以触发程序中断, 每一个逻辑粧点对应一个粧点状态变量,每个粧点状态变量标识对应该逻辑粧点的原子操 作是否执行,算法逻辑中所有的逻辑粧点构成逻辑粧点表;
[0008] (2)调用中断函数,生成带中断逻辑的指令并下发至下位机:识别逻辑粧点,分配 其对应的粧点状态变量,同时在需要中断的算法逻辑前添加函数调用,即在需要中断的算 法逻辑前增加下位机提供的函数以生成带中断逻辑的可执行指令;将带中断逻辑的可执行 指令和逻辑粧点对应的状态变量的偏移地址信息下发至下位机;下位机只需要实现中断函 数即可完成断点功能;
[0009] (3)设计调试命令,完成逻辑断点调试功能。
[0010]本发明还进一步包括以下优选方案:
[0011] 在步骤(1)中,同时建立原子操作与逻辑组态界面的对应关系,用于中断发生时断 点位置的显示。
[0012] 在步骤(2)中,函数内中断方式由控制器自由选择,在函数调用时将该粧点对应的 粧点状态变量传入,下位机产生中断后将该信息返回,逻辑组态界面通过维护逻辑粧点与 逻辑组态界面对应关系,在逻辑组态界面中显示中断位置。
[0013] 在步骤(3)中,调试命令包括"运行到断点Run to"、"单步Step In"、"单步Step over",并通过以下具体步骤实现调试功能:
[0014] (31)用户设置或取消断点,生成断点表,将断点表下发至下位机:用户在组态界面 设置或取消断点时,根据逻辑组态界面的特征,进行设置断点的操作,在逻辑粧点表中挑选 可以设置断点的逻辑粧点构成断点表,并将生成的断点表通知下位机;
[0015] (32)判断当前调试命令是否为"运行到断点Run to",如果不是则进入步骤(33); 否则,当采用"运行到断点Run to"的调试命令时,逻辑组态软件将该调试命令下发至下位 机;下位机接受到该调试命令后,将所有粧点状态变量首先置为0,然后根据设置的断点表, 将需要设置断点的粧点状态变量设置为1,即完成运行至断点功能;
[0016] (33)判断当前调试命令是否为"单步Step In",如果不是则进入步骤(34);否则, 当采用"单步Step In"的调试命令时,逻辑组态软件将该调试命令下发至下位机;下位机接 受到该调试命令后,将所有粧点所对应的状态变量置为1,表示所有逻辑执行原子操作处会 触发中断;当满足上述中断条件时,组态逻辑算法中执行过程中则将调用步骤(2)中下位机 提供的用于中断逻辑的函数,组态软件会直接进入该函数体内部实现中断。
[0017] (34)判断当前调试命令是否为"单步Step Over",如果不是则不做任何处理;否 贝1J,当采用"单步Step Over"的调试命令时,逻辑组态软件将该调试命令下发至下位机;下 位机接受到该调试命令后,需要判断当前逻辑执行原子操作的类型:若原子操作非函数调 用时,Step Over的处理与Step In相同;若原子操作为函数调用时,Step Over需要执行完 被调函数并在调用后的逻辑处产生中断,同时若调用函数内部设置断点时,将设置断点的 的粧点状态变量置为1;即原子操作非函数调用时,将所有粧点状态变量置为1;原子操作为 函数调用时,首先将所有粧点状态变量置为1,然后将函数执行体内所有粧点状态变量置为 〇,最后将设置断点的粧点状态变量置为1。
[0018] 相对于现有技术,本发明具有以下有益的技术效果:
[0019] 本发明提供一套准确、高效的算法程序调试方法,提高了算法程序调试效率,减少 算法程序逻辑出错的可能性,进而确保受控的工业控制系统运行的正确性;本发明对工业 控制系统安全运行具有重要的积极意义。
【附图说明】
[0020] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附 图作简单地介绍。
[0021] 图1为本发明工业控制系统逻辑断点调试功能的实现方法流程示意图;
[0022] 图2为本发明实施例提供的工业控制系统逻辑断点调试功能的实现方法中生成带 断点调试逻辑的可执行代码的流程示意图;
[0023] 图3为本发明提供的一种工业控制系统逻辑断点调试功能的实现方法中生成断点 调试可执行指令的逻辑结构图;
[0024] 图4为本发明实施例提供的断点调试命令处理流程;
[0025] 图5为本发明实施例提供的粧点对应的状态变量示意图;
[0026] 其中图5(1)为原始的粧点对应的状态变量示意图,5(2)为执行"设置断点"调试命 令后的粧点对应的状态变量示意图,5 (3)为执行"运行至断点Run To"调试命令后的粧点对 应的状态变量示意图,5(4)为执行"单步Step Into"调试命令后的粧点对应的状态变量示 意图,5(5)为为执行"单步St印Over"调试命令后的粧点对应的状态变量示意图。
【具体实施方式】
[0027] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一种实施例,而不是全部的实施例。
[0028]本具体实施例为该方法在满足IEC61131-3标准的组态软件中的应用方案。
[0029] 图1为本发明提供的一种工业控制系统逻辑断点调试功能的实现的流程示意图, 所述逻辑断点调试功能的实现方法具体包括以下步骤:
[0030] 步骤1,定义原子操作,生成逻辑粧点:定义逻辑执行原子操作为不可再拆分的运 算及函数调用,每个原子操作处对应一个逻辑的粧点,标识该逻辑执行前可以触发程序中 断,每一个粧点对应一个粧点状态变量,算法逻辑中所有的粧点信息构成逻辑粧点表。
[0031] 每个程序组织单元(以下称P0U)都需要维护一张逻辑粧点表。逻辑粧点表中的每 一条粧点信息包含三部分内容,如表1所示:第一部分为逻辑粧点所对应的组态软件界面的 位置信息;第二部分为逻辑粧点对应的中间语法树结点的位置信息;第三部分为逻辑粧点 所对应的状态变量的偏移地址信息。
[0032]表1逻辑粧点信息所包含内容 「orml
L0034」上述操作过程是在组态软件编译前端完成的,组态过的算法逻辑均被翻译成中间 语法树,中间语法树作为步骤2的输入数据源使用。经过组态软件的编译前端处理后,每个 原子操作处对应一个逻辑粧点的所在组态界面位置信息和中间语法树结点位置信息被记 录下来,从而完成逻辑粧点信息中第一部分和第二部分的填充;同时,逻辑粧点所对应的中 间语法树结点被特殊标记,以便在后续步骤中被识别。
[0035] 步骤2,调用中断函数,生成带中断逻辑的指令并下发至下位机:识别逻辑粧点,分 配其对应的状态变量,同时在中断逻辑前添加函数调用,即在需要中断的算法逻辑前增加 下位机提供的函数以生成带中断逻辑的可执行指令。
[0036] 上述操作过程是在组态软件编译后端完成,如图2所示。对于步骤1中输出的中间
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1