[发明专利]用于执行程序语句的方法和设备无效
申请号: | 200710096178.0 | 申请日: | 2007-04-18 |
公开(公告)号: | CN101290572A | 公开(公告)日: | 2008-10-22 |
发明(设计)人: | 马凌 | 申请(专利权)人: | 施耐德电器工业公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G05B19/05 |
代理公司: | 北京市柳沈律师事务所 | 代理人: | 邸万奎;黄小临 |
地址: | 法国吕埃*** | 国省代码: | 法国;FR |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 执行 程序 语句 方法 设备 | ||
技术领域
本发明涉及一种用于执行程序语句的方法和设备,更具体地,涉及一种用于执行梯形图语言的方法和使用该方法的可编程逻辑控制器。
背景技术
梯形图语言是使非专业人员方便地控制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的瓶颈。
发明内容
鉴于以上问题,本发明的发明人考虑了如下的方案。
我们知道,梯形程序的运行结果取决于上述的输入变量,如果例如第一个语句中的输入变量%Q0.1、%Q0.2、%I0.7、%Q0.4都没有变化,就没有必要再次执行该语句。如果仍然按照以往的模式进行扫描,大多数的情况下都是在进行冗余的操作。
在实际应用中,只有少数的几个变量会不断的变化,或者说变化也不频繁。实际上,只有不到20%的输入变量发生变化。
这样,在运行第一遍之后,我们只运行那些与变化的值有依赖关系的语句,这样就可以大幅度的提高性能。例如,假设图1中只有变量%IO.3(位于第二条语句中)变化,那么我们的程序只执行第二条语句。如果没有任何变量变化,那么就不执行任何语句。这样,就能大大提高PLC的处理速度。
因此,根据第一方面,本发明提供一种执行程序语句的方法,包括步骤:在每一条语句中设置判定条件;以及根据所述判定条件来决定是否执行含有所述判定条件的语句。
本发明还提供一种用于执行程序语句的设备,包括:设置装置,用于在每一条语句中设置判定条件;以及控制装置,用于根据所述判定条件来决定是否执行含有所述判定条件的语句。
根据第二方面,本发明提供一种用于执行程序的方法,所述程序包括多条语句,所述方法包括:在每一条语句中设置条件值;以及当执行程序时,仅执行条件值为预定值的语句。
本发明还提供一种用于执行程序的设备,包括:设置装置,用于在每一条语句中设置条件值;以及执行装置,用于当执行程序时,仅执行条件值为预定值的语句。
根据第三方面,本发明提供一种用于执行程序的方法,所述程序包括多条语句,该方法包括:在第一次执行所述程序时,执行其中的每一条语句;在第二次及以后执行所述程序时,首先检查每一条语句中设置的条件值;如果所述条件值是预定值,则执行包含所述条件值的语句。
通过本发明的实现,可以减轻PLC的工作负载,并增加PLC的处理速度。
附图说明
从下面结合附图对本发明实施例的详细描述中,本发明的这些和/或其它方面和优点将变得更加清楚并且更容易理解,其中:
图1是示出梯形图语言的一个示例。
图2是示出本发明的梯形图语言的示例。
图3是示出本发明的梯形图语言的条件值与变量对应关系的示例。
图4是示出本发明的梯形图语言的条件值与变量对应关系的另一示例。
图5是示出本发明用于执行程序语句的设备的方框图。
图6是示出本发明执行程序语句的方法的流程图。
具体实施方式
下面将结合附图详细描述本发明的具体实施例。如果考虑到对某些相关现有技术的详细描述可能会混淆本发明的要点,则将不会在这里提供其详细描述。在同一实施例中,相同的附图标记用于表示执行相同功能的元件或元素。
图2是示出本发明的梯形图语言的示例。
如图2所示,对图1中的梯形语言的前两句进行了修改,使得在每一行语句之前,分别增添一个判定条件C_1和C_2。
换句话说,将每一条语句都换成如下的形式:
if(YES==C_n)
{
C_n=NO;//将C_n设置为NO
/*执行该语句中的其余代码*/
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于施耐德电器工业公司,未经施耐德电器工业公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710096178.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:高精度电梯导轨用热轧型钢加工工艺
- 下一篇:一种可变导热系数的测量装置及方法