用于执行程序语句的方法和设备的制作方法

文档序号:6608541阅读:111来源:国知局
专利名称:用于执行程序语句的方法和设备的制作方法
技术领域
本发明涉及一种用于执行程序语句的方法和设备,更具体地,涉及一种 用于执行梯形图语言的方法和使用该方法的可编程逻辑控制器。
背景技术
梯形图语言是使非专业人员方便地控制PLC (可编程逻辑控制器)的一 种符号指令集,如图1所示。图1是示出梯形图语言的一个示例。如图1所示,当循环往复地执行梯形图语言程序时,每次循环都要将程 序从头至尾扫描一遍,之后根据运算结果设置输出,其优点是简单方便。举 例来说,当图1中所示的程序代码下载到PLC的CPU (中央处理单元)中 的时候,CPU会逐行执行该程序。也就是说,在该梯形图语言中,所示出的 环境输入变量分别为%Q0.1、 %Q0.2、 %I0.7、 %Q0.4、 %I0.3、 %I0.4、 %Q0.3、 %M5和。/。Q0.5,这些变量将依次被执行。在现有技术中,例如每次程序运行到第一行的时候,都要执行这段代码 %Q0.1、 %Q0.2、 %I0.7、 %Q0.4。即使程序的条件都没有变化,我们的程序 也不得不全部扫描,这就造成了 PLC的运算负担过重。而且,随着用户的应用越来越复杂,其程序数量不断增大,而单片机的 运算速度有限,处理速度逐渐成为PLC的瓶颈。发明内容鉴于以上问题,本发明的发明人考虑了如下的方案。我们知道,梯形程序的运行结果取决于上述的输入变量,如果例如第一 个语句中的输入变量o/oQ0.1、 %Q0.2、 %I0.7、 0/。Q0.4都没有变化,就没有必 要再次执行该语句。如果仍然按照以往的模式进行扫描,大多数的情况下都 是在进行冗余的操作。在实际应用中,只有少数的几个变量会不断的变化,或者说变化也不频繁。实际上,只有不到20%的输入变量发生变化。这样,在运行第一遍之后,我们只运行那些与变化的值有依赖关系的语句,这样就可以大幅度的提高性能。例如,假设图1中只有变量%10.3 (位于 第二条语句中)变化,那么我们的程序只执行第二条语句。如果没有任何变 量变化,那么就不执行任何语句。这样,就能大大提高PLC的处理速度。因此,根据第一方面,本发明提供一种执行程序语句的方法,包括步骤 在每一条语句中设置判定条件;以及根据所述判定条件来决定是否执行含有 所述判定条件的语句。本发明还提供一种用于执行程序语句的设备,包括设置装置,用于在 每一条语句中设置判定条件;以及控制装置,用于根据所述判定条件来决定 是否执行含有所述判定条件的语句。根据第二方面,本发明提供一种用于执行程序的方法,所述程序包括多 条语句,所述方法包括在每一条语句中设置条件值;以及当执行程序时, 仅执行条件值为预定值的语句。本发明还提供一种用于执行程序的设备,包括设置装置,用于在每一 条语句中设置条件值;以及执行装置,用于当执行程序时,仅执行条件值为 预定值的语句。根据第三方面,本发明提供一种用于执行程序的方法,所述程序包括多 条语句,该方法包括在第一次执行所述程序时,执行其中的每一条语句; 在第二次及以后执行所述程序时,首先检查每一条语句中设置的条件值;如 果所述条件值是预定值,则执行包含所述条件值的语句。通过本发明的实现,可以减轻PLC的工作负载,并增加PLC的处理速度。


从下面结合附图对本发明实施例的详细描述中,本发明的这些和/或其它 方面和优点将变得更加清楚并且更容易理解,其中 图l是示出梯形图语言的一个示例。 图2是示出本发明的梯形图语言的示例。图3是示出本发明的梯形图语言的条件值与变量对应关系的示例。图4是示出本发明的梯形图语言的条件值与变量对应关系的另 一示例。图5是示出本发明用于执行程序语句的设备的方框图。 图6是示出本发明执行程序语句的方法的流程图。
具体实施方式
下面将结合附图详细描述本发明的具体实施例。如果考虑到对某些相关 现有技术的详细描述可能会混淆本发明的要点,则将不会在这里提供其详细 描述。在同一实施例中,相同的附图标记用于表示执行相同功能的元件或元素。图2是示出本发明的梯形图语言的示例。如图2所示,对图1中的梯形语言的前两句进行了修改,使得在每一行 语句之前,分别增添一个判定条件C一l和C—2。 换句话说,将每一条语句都换成如下的形式 if(YES == C一n)C—n = NO; 〃将C_n设置为NO /*执行该语句中的其余代码*/严这里的条件值C的下标n,代表着第n行语句"在本发明的实施例中,根据以上的语句,如果该判定条件得到满足,即 如果条件值C一n等于预定值(这里设置为"YES (是)"),则执行该语句中的 其它代码。
在进行了上述判定之后,去除条件值C—n,或者使其不等于该预定值, 例如可以使该条件值C一n等于"NO(否)"。本发明的一个实施例中,也可以 在执行了该语句中的其它代码之后执行上述去除操作。这样,在没有其它条 件(例如后面描述的变量变化)的情况下,该语句将不再被执行。由于在梯形语句编译的时候,就可以知道每一行的条件值C一n所对应的 一组输入变量。如图3和图4所示,条件值C一1对应本行中的输入变量。/。Q0.1、 %Q0.2、 %10.7、和o/oQ0.4,条件值C—2对应本行中的输入变量%10.3、 %10.4、 %Q0,3。在本发明的实施例中,只要对当前行内的任何输入变量进行了改变,那 么这个语句行中的条件值将被设为"YES (是)"。对输入变量写的操作代码如下 variable—write(old, new)if(new is not equal to old) { old = new; C—n=YES } 》〃这里的条件值C的下标n,代表着第n行。 上述代码的含义是,判断某个变量的新值"new"是否与其旧值"old" 相等,如果不相等,则用该变量的新值"new"代替其旧值"old",并将预定 值"YES"赋予该语句的条件值C一n。也就是说,只要对当前行内的任何输入变量进行了改变,那么这个语句 行中的条件值将被设为"YES",则对这条语句再次执行时,将执行这条语句 中的其它代码。在本发明的一个实施例中,可以在程序第一次运行的时候,将所有的条 件值C一n都设定为"YES",所以程序将会从头到尾的执行每一语句。而当第 二次及以后运行的时候,该程序会检查每一语句的条件值,如果该条件值是"YES",则执行该语句,否则不执行该语句,而继续对下一行语句的条件值 进行判断。任何一个输入变量的改变都将导致对应语句行的条件值变为"YES"。图5是示出本发明用于执行程序语句的设备的方框图。 如图5所示,本发明的设备10包括设置装置102,用于在每一条语句 中设置判定条件;控制装置104,用于根据所述判定条件来决定是否执行含 有所述判定条件的语句;和执行装置106,用于如果所述判定条件(条件值 C一n)得到满足,则执行包含所述判定条件的语句。例如,如果控制装置104 确定某语句行的条件值C一n为预定值"YES",则当执行程序时,执行装置 106先清除该语句中的预定值"YES",然后执行条件值为预定值"YES"的 该语句。在本发明的一个实施例中,所述控制装置104确定所述判定条件是否得 到满足,如果所述判定条件没有得到满足,则所述执行装置106不执行含有 所述判定条件的语句。在本发明的一个实施例中,在第一次执行全部语句之前,所述设置装置 102设置每一条语句的判定条件,例如设置装置102将每一条语句的条件值 C n都设置为预定值"YES",使得每一条语句都将被执行。并且,在第一次执行程序后,即在第二次及以后运行该程序的时候,如果包含在某条语句中 的任何变量发生改变,则设置装置102设置该语句的判定条件,例如将该语句的条件值设置为预定值"YES",使得该语句下一次将要被执行。本发明中的设置装置102不对本发明的技术范围构成限制,也可以通过将其合并在控制装置104或执行装置106中来实现其功能。在本发明的一个实施例中,所述设备10可以是可编程逻辑控制器(PLC )。 图6是示出本发明执行程序语句的方法的流程图。如图6所示,在步骤S602,设置装置102在每一条语句中设置判定条件。在后面的步骤中,控制装置104将根据所述判定条件来决定是否执行含 有所述判定条件的语句。具体地,在步骤S604,控制装置604判定该语句中 的所述判定条件是否得到满足,即该判定条件值是否等于预定值(例如 "YES")。如果该判定条件值等于该预定值,例如为"YES",则过程进行到 步骤S606;否则,如果该判定条件值不等于该预定值,例如等于"NO(否)", 则过程前进到步骤S610。在步骤S606,设置装置102清除该语句中的预定值,或者将该条件值设 置为与该预定值不同的值,例如将其设置为"NO",然后过程前进到步骤S608。 在步骤S608,执行装置106执行该语句。步骤S606和S608的顺序不对本发明的范围构成限制,也可以在步骤 S604中的判定操作完成后,先执行步骤S608中的执行操作,然后再执行步 骤S606中的清除操作。然后,过程前进到步骤S610,在步骤S610中,控制装置104判断是否 包含在某一语句中的任何变量发生了改变。如果判断包含在某一语句中的任 何变量发生了改变,则过程进行到步骤S612。在步骤S612,设置其中变量发生了变化的语句的判定条件,例如使其等 于预定值"YES"(使得该语句在下一次将要被执行),然后这一执行过程结 束,程序等待下一次扫描。如果在步骤S610中判断包含在全部语句中的任何变量都没有发生改变, 则不对任何语句的判定条件进行设置,该执行过程直接结束,程序等待下一 次扫描。在本发明的一个实施例中,还可以在第一次执行全部语句之前,将每一 条语句的判定条件都设置为预定值,使得每一条语句都将被执行。在本发明的另一个实施例中,还可以釆用这样的方式在第一次执行程 序前,不在程序语句中设置条件值,直接执行其中的每一条语句,而在第二 次执行该程序前,开始设置条件值,并在第二次及以后执行所述程序时,首 先检查每一条语句中设置的条件值,如果所述条件值是预定值,则执行包含 所述条件值的语句,否则,跳过该语句。并且,如果包含在某一语句中的任 何变量发生改变,则将该条语句的条件值设置为上述预定值。虽然上面已经结合附图示出并详多田描述了本发明的一些实施例,本领域 地技术人员应当理解,在不偏离本发明的原则和精神的情况下,可以对这些 实施例做出变化和修改,而仍然落在所附的权利要求及其等价物的范围内。
权利要求
1.一种执行程序语句的方法,包括步骤在每一条语句中设置判定条件;以及根据所述判定条件来决定是否执行含有所述判定条件的语句。
2. 如权利要求l所述的方法,还包括步骤 确定所述判定条件是否得到满足;以及如果所述判定条件没有得到满足,则跳过含有所述判定条件的语句。
3. 如权利要求2所述的方法,还包括步骤 如果所述判定条件得到满足,则执行包含所述判定条件的语句。
4. 如权利要求1所述的方法,还包括步骤在第一次执行全部语句之前,设置每一条语句的判定条件,使得每一条 语句都将被执行。
5. 如权利要求1所述的方法,还包括步骤 如果所述判定条件得到满足,立即清除其判定条件。
6. 如权利要求1所述的方法,还包括步骤如果包含在所述语句中的任何变量发生改变,则设置所述语句的判定条 件,使得该语句将要被执行。
7. 如权利要求l所述的方法,其中判定条件位于每一条语句的前面。
8. 如权利要求l所述的方法,其中所述语句是用于可编程逻辑控制器的 斗弟形i吾言。
9. 一种用于执行程序的方法,所述程序包括多条语句,所述方法包括 在每一条语句中设置条件值;以及当执行程序时,仅执行条件值为预定值的语句。
10. 如权利要求9所述的方法,还包括步骤在第一次执行程序前,将每一条语句的条件值设置为所述预定值;以及 在第一次执行程序后,如果包含于所述语句中的任何变量发生改变,则 将所述语句的条件值设置为所述预定值。
11. 如权利要求9所述的方法,还包括步骤 所述语句一旦得到执行,立即清除所述条件值。
12. 如权利要求9所述的方法,其中条件值被设置于每一条语句的前面。
13. —种用于执行程序的方法,所述程序包括多条语句,该方法包括 在第一次执行所述程序时,执行其中的每一条语句; 在第二次及以后执行所述程序时,首先检查每一条语句中设置的条件值; 如果所述条件值是预定值,则执行包含所述条件值的语句。
14. 如权利要求11所述的方法,还包括步骤如果包含在所述语句中的任何变量发生改变,则将所述语句的条件值设 置为所述预定值。
15. —种用于执行程序语句的设备,包括 设置装置,用于在每一条语句中设置判定条件;以及语句。 ' 、 ' '
16. 如权利要求15所述的设备,还包括执行装置,用于如果所述判定条件得到满足,则执行包含所述判定条件 的语句。
17. 如权利要求16所述的设备,其中所述控制装置确定所述判定条件是 否得到满足,如果所述判定条件没有得到满足,则所述执行装置不执行含有 所述判定条件的语句。
18. 如权利要求15所述的设备,其中在第一次执行全部语句之前,所述 设置装置设置每一条语句的判定条件,使得每一条语句都将被执行。
19. 如权利要求15所述的设备,其中如果包含在所述语句中的任何变量 发生改变,则设置所述语句的判定条件,使得该语句将要被执行。
20. 如权利要求15所述的设备,其中所述设备是可编程逻辑控制器。
21. —种用于执行程序的设备,包括 设置装置,用于在每一条语句中设置条件值;以及 执行装置,用于当执行程序时,仅执行条件值为预定值的语句。
22. 如权利要求21所述的设备,其中在第一次执行程序前,所述设置装 置将每一条语句的条件值设置为所述预定值;在第一次执行程序后,如果包 含于所述语句中的任何变量发生改变,则所述设置装置将所述语句的条件值 设置为所述预定值。
全文摘要
提供了一种用于执行程序的方法和设备,所述程序包括多条语句,所述方法包括在每一条语句中设置条件值;以及当执行程序时,仅执行条件值为预定值的语句。通过本发明的实现,可以减轻可编程逻辑控制器的工作负载,并增加它的处理速度。
文档编号G06F9/44GK101290572SQ200710096178
公开日2008年10月22日 申请日期2007年4月18日 优先权日2007年4月18日
发明者凌 马 申请人:施耐德电器工业公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1