PLC技术资料
    plc编程中,循环语句for和while该怎么选?
    发布者:  发布时间:2023/11/21 13:51:45

    迭代语句主要用于重复执行的程序,在codesys中,常见的迭代语句有 for,repeat 及while 语句。

    for 循环

    for 循环语句用于计算一个初始化序列,当某个条件为 true 时,重复执行嵌套语句并计算一个迭代表达式序列,如果为 false,则终止循环,具体格式如下。

    for <变量>; := <初始值>; to <目标值>; {by <步长>;} do

    <语句内容>;

    end_for;

    for 循环的执行顺序如下:

    ? 计算<变量>;是否在<初始值>;与<目标值>;的范围内;

    ? 当<变量>;小于<目标值>;,执行<语句内容>;;

    ? 当<变量>;大于<目标值>;,则不会执行<语句内容>;;

    ? 当每次执行<语句内容>;时,<变量>;总是按照指定的步长增加其值。步长可以是任意的整数值。

    如果不指定步长,则其缺省值是 1。当<变量>;大于<目标值>;时,退出循环。

    示例:使用 for 循环实现 2 的五次方计算。

    1.jpg

    假设 var1 的初始值是 1,那么循环结束后,var1的值的为 32。

    while 循环

    while 循环与 for 循环使用方法类似。二者的不同之处是,while 循环的结束条件可以是任意的逻辑表达式。即可以指定一个条件,当满足该条件时,执行循环,具体格式如下。

    while <布尔表达式>;

    <语句内容>; ;

    end_while;

    while 循环的执行顺序如下:

    ? 计算<布尔表达式>;的返回值。

    ? 当<布尔表达式>;的值为 true 时,重复执行<语句内容>;。

    ? 当<布尔表达式>;初始值为 false,那么指令<语句内容>;不会被执行,跳转至 while 语句的结尾。

    2.jpg

    注意:

    如果<布尔表达式>;的值始终为 true,那么将会产生死循环,应当避免死循环的产生。可以通过改变循环指令的条件来避免死循环的产生。例如:利用可增减的计数器避免死循环的产生。

    示例:只要计数器不为零,则始终执行循环体内的程序。

    3.jpg

    在一定的意义上,while 循环比 for 循环的功能更加强大,这是因为在执行循环之前,

    while 循环不需要知道循环的次数。因此,如果清楚地知道了循环的次数,那么 for 循环更好,因为 for 循环可以避免产生死循环。

    版权声明PLC信息网转载作品均注明出处,本网未注明出处和转载的,是出于传递更多信息之目的,并不意味 着赞同其观点或证实其内容的真实性。如转载作品侵犯作者署名权,或有其他诸如版权、肖像权、知识产权等方面的伤害,并非本网故意为之,在接到相关权利人通知后将立即加以更正。联系电话:0571-87774297。
0571-87774297