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

文档序号:9910259阅读:来源:国知局
语法树的每一条语法树逻辑均需要执行下面的操作:
[0037] 首先,将中间语法树逻辑翻译成中间指令。具体的,判断当前中间语法树逻辑是否 被标记为粧点,如果是,则在翻译成中间指令时时添加逻辑粧点标记,否则生成正常的中间 指令;
[0038] 其次,将中间指令翻译成可执行指令。具体的,判断当前中间指令是否被添加粧点 标识,如果是则分配该逻辑粧点所对应的状态变量的偏移地址并将其填充到逻辑粧点信息 的第三部分,然后在逻辑粧点所对应的可执行指令前添加中断逻辑函数调用的可执行指 令,否则生成正常的算法逻辑的可执行指令。至此,POU中维护的逻辑粧点表的信息被填充 完毕。
[0039] 将生成如图3所示逻辑结构的可执行代码以及如图5中(1)部分所示的逻辑粧点对 应的状态变量偏移地址分布表(每一个小格代表一个逻辑粧点对应的状态变量)下发至下 位机;下位机只需要实现中断函数即可完成断点功能。
[0040] 步骤3:设计调试命令,调试命令包括"设置断点","运行到断点Run to"、"单步 Step In"、"单步Step over",具体的:
[0041] 步骤31,用户设置或取消断点,生成断点表,将断点表下发至下位机:用户在组态 界面设置或取消断点时,执行如图4中(1)部分所示的流程:根据逻辑组态界面的特征,进行 设置断点的操作,在逻辑粧点表中挑选可以设置断点的粧点构成断点表,并将生成的断点 表下发至下位机。下位机收到断点表后,将在逻辑粧点对应的状态变量分布表中对断点所 在位置进行标记。如图5中(2)部分所示,其中添加斜线的小格即表示被标记为断点的逻辑 粧点;
[0042] 步骤32:判断当前调试命令是否为"运行到断点Run to",如果不是则进入步骤 (33);否则,当采用"运行到断点Run to"的调试命令时,执行如图4中(2)部分所示流程:逻 辑组态软件将该调试命令下发至下位机,下位机接受到该调试命令后,如图5中(3)部分所 示,将所有粧点状态变量首先置为0,然后根据设置的断点表,将需要设置断点的粧点状态 变量设置为1,即完成运行至断点功能;
[0043] 步骤33:判断当前调试命令是否为"单步Step In",如果不是则进入步骤(34);否 贝1J,当采用"单步Step In"的调试命令时,执行如图4中(3)部分所示流程:逻辑组态软件将 该调试命令下发至下位机,下位机接受到该调试命令后,如图5中(4)部分所示,将所有粧点 所对应的状态变量置为1,表示所有逻辑执行原子操作处会触发中断;
[0044] 步骤34:判断当前调试命令是否为"单步Step Over",如果不是则不做任何处理; 否则,当采用"单步Step Over"的调试命令时,分为两种情况:
[0045] 如果当前逻辑执行原子操作的为非函数调用时,执行如图4中(4-1)所示流程:逻 辑组态软件将该调试命令下发至下位机,下位机接受到该调试命令后进行与步骤33中相同 的操作过程;
[0046] 如果当前逻辑执行原子操作的为非函数调用时,执行如图4中(4-2)所示流程:逻 辑组态软件将该调试命令下发至下位机,下位机接受到该调试命令后,如图5中(4)部分所 示,首先将所有粧点状态变量置为1,然后将函数执行体内所有粧点状态变量置为〇,最后将 设置断点的粧点状态变量置为1。
[0047] 通过步骤3的操作实现了在程序运行过程中,通过组态软件下发调试命令改变逻 辑粧点对应状态变量值的方式使得程序运行过程中执行中断函数实现程序中断。下位机的 中断逻辑执行采用挂起任务的方式,同时保存数据断面,用于调试结束后恢复现场。
[0048]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的 一般原理可以在不脱离本发明实施例的精神或范围的情况下,在其它实施例中实现。因此, 本发明实施例将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和 新颖特点相一致的最宽的范围。
【主权项】
1. 一种工业控制系统逻辑断点调试功能的实现方法,该方法包括逻辑粧点表生成、中 断逻辑指令生成、调试命令设计;其特征在于,所述实现方法包括以下步骤: (1) 定义原子操作,生成逻辑粧点:定义逻辑执行原子操作为不可再拆分的运算及函数 调用,每个原子操作处对应一个逻辑粧点,标识该原子操作执行前可以触发程序中断,每一 个逻辑粧点对应一个粧点状态变量,每个粧点状态变量标识对应该逻辑粧点的原子操作是 否执行,算法逻辑中所有的逻辑粧点构成逻辑粧点表; (2) 调用中断函数,生成带中断逻辑的指令并下发至下位机:识别逻辑粧点,分配其对 应的粧点状态变量,同时在需要中断的算法逻辑前添加函数调用,即在需要中断的算法逻 辑前增加下位机提供的函数以生成带中断逻辑的可执行指令;将带中断逻辑的可执行指令 和逻辑粧点对应的状态变量的偏移地址信息下发至下位机;下位机只需要实现中断函数即 可完成断点功能; (3) 设计调试命令,完成逻辑断点调试功能。2. 根据权利要求1所述的逻辑断点调试功能的实现方法,其特征在于: 在步骤(1)中,同时建立原子操作对应的粧点状态变量与逻辑组态界面的对应关系,用 于中断发生时断点位置的显示。3. 根据权利要求1所述的逻辑断点调试功能的实现方法,其特征在于: 在步骤(2)中,函数内中断方式由控制器自由选择,在函数调用时将该粧点对应的粧点 状态变量传入,下位机产生中断后将该信息返回,逻辑组态界面通过维护粧点状态变量与 逻辑组态界面的对应关系,在逻辑组态界面中显示中断位置。4. 根据权利要求1所述的逻辑断点调试功能的实现方法,其特征在于: 在步骤(3)中,调试命令包括"运行到断点Run to"、"单步Step In"、"单步Step over", 并通过以下具体步骤实现调试功能: (31) 用户设置或取消断点,生成断点表,将断点表下发至下位机:用户在组态界面设置 或取消断点时,根据逻辑组态界面的特征,进行设置断点的操作,在逻辑粧点表中挑选可以 设置断点的逻辑粧点构成断点表,并将生成的断点表通知下位机; (32) 判断当前调试命令是否为"运行到断点Run to",如果不是则进入步骤(33);否则, 当采用"运行到断点Run to"的调试命令时,逻辑组态软件将该调试命令下发至下位机;下 位机接受到该调试命令后,将所有粧点状态变量首先置为〇,然后根据设置的断点表,将需 要设置断点的粧点状态变量设置为1,即完成运行至断点功能; (33) 判断当前调试命令是否为"单步Step In",如果不是则进入步骤(34);否则,当采 用"单步Step In"的调试命令时,逻辑组态软件将该调试命令下发至下位机;下位机接受到 该调试命令后,将所有粧点所对应的状态变量置为1,表示所有逻辑执行原子操作处会触发 中断;当满足上述中断条件时,组态逻辑算法中执行过程中则将调用步骤(2)中下位机提供 的用于中断逻辑的函数,组态软件会直接进入该函数体内部实现中断。 (34) 判断当前调试命令是否为"单步Step Over",如果不是则不做任何处理;否则,当 采用"单步Step Over"的调试命令时,逻辑组态软件将该调试命令下发至下位机;下位机接 受到该调试命令后,需要判断当前逻辑执行原子操作的类型:若原子操作非函数调用时, Step Over的处理与Step In相同;若原子操作为函数调用时,Step Over需要执行完被调函 数并在调用后的逻辑处产生中断,同时若调用函数内部设置断点时,将设置断点的的粧点 状态变量置为1;即原子操作非函数调用时,将所有粧点状态变量置为1;原子操作为函数调 用时,首先将所有粧点状态变量置为1,然后将函数执行体内所有粧点状态变量置为0,最后 将设置断点的粧点状态变量置为1。
【专利摘要】一种工业控制系统逻辑断点调试功能的实现方法。以逻辑最小执行单位划分算法逻辑,并在每个最小执行单元处设置调试状态变量;通过调用相关功能函数来完成逻辑中断,并通过调试状态变量与最小执行单元的对应关系来维护运行调试时的界面显示。具体的包括,实现在算法程序中设置及删除断点,包括文本及图形化算法逻辑的断点设置及删除;程序执行过程中提供运行到断点Run?to和单步Step?In/Step?Over的调试方法,并在算法程序组态界面进行运行状态显示。通过本发明可以实现工业控制系统逻辑断点调试功能,保证了算法逻辑的正确性及稳定性。
【IPC分类】G05B19/418
【公开号】CN105676808
【申请号】CN201511021573
【发明人】张志东, 丁柏玲, 师嘉, 李维, 王沿海, 耿哲
【申请人】北京四方继保自动化股份有限公司
【公开日】2016年6月15日
【申请日】2015年12月31日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1