<object id="ir2le"></object>
  • 加入收藏 在線留言 聯系我們
    關注微信
    手機掃一掃 立刻聯系商家
    全國服務熱線15267534595
    公司新聞
    西門子博途SCL: FOR:在計數循環中執行
    發布時間: 2023-08-17 10:25 更新時間: 2024-12-26 09:10

    使用“在計數循環中執行”指令,重復執行程序循環,直至運行變量不在指定的取值范圍內。

    也可以嵌套程序循環。在程序循環內,可以編寫包含其它運行變量的其它程序循環。

    通過指令“復查循環條件”(CONTINUE),可以終止當前連續運行的程序循環。通過指令“立即退出循環”(EXIT) 終止整個循環的執行。有關本主題的更多信息,請參見“另請參見”。


    說明

    有關運行次數和運行變量的信息

    程序運行時無法更改運行次數。

    出于性能原因,應在塊接口的“Temp”部分中聲明運行變量。此外,程序運行時不得更改運行變量。否則,該指令可能根據實施情況返回未定義結果。


    FOR 語句的限制

    編寫不會導致死循環的“安全”FOR 語句時,請遵循以下規則和限制:

    FOR <Run_tag> := <Start_value> TO <End_value> BY <Increment> DO <Instructions>;

    END_FOR;



    如果...

    ... 則

    說明

    起始值 < 結束值

    結束值 <(PMAX 增量)

    運行變量在正方向上運行

    起始值 > 結束值 AND 增量 < O

    結束值 >(NMAX 增量)

    運行變量在負方向上運行


    限制

    各種數據類型的限制不同:



    數據類型

    PMAX

    NMAX

    SINT 類型的運行變量

    127

    -128

    INT 類型的運行變量

    32767

    -32768

    DINT 類型的運行變量

    2147483647

    -2147483648

    LINT 類型的運行變量

    9223372036854775807

    -9223372036854775808


    參數

    下表列出了該指令的參數:



    參數

    數據類型

    存儲區

    說明

    S7-1200

    S7-1500

    <執行變量>

    SINT、INT、DINT

    SINT、INT、DINT、LINT

    I、Q、M、D、L

    執行循環時會計算其值的操作數。執行變量的數據類型將確定其它參數的數據類型。

    <起始值>

    SINT, INT, DINT

    SINT、INT、DINT、LINT

    I、Q、M、D、L

    表達式,在執行變量首次執行循環時,將分配表達式的值。

    <結束值>

    SINT, INT, DINT

    SINT、INT、DINT、LINT

    I、Q、M、D、L

    表達式,在運行程序Zui后一次循環時會定義表達式的值。在每個循環后都會檢查運行變量的值:

    未達到結束值:
    執行符合 DO 的指令

    達到結束值:
    Zui后執行一次 FOR 循環

    超出結束值:
    完成 FOR 循環

    執行該指令期間,不允許更改結束值。

    <Increment>

    SINT, INT, DINT

    SINT、INT、DINT、LINT

    I、Q、M、D、L

    執行變量在每次循環后都會遞增(正增量)或遞減(負增量)其值的表達式。可以選擇指定增量的大小。如果未指定增量,則在每次循環后執行變量的值加 1。

    執行該指令期間,不允許更改增量。

    <指令>

    -

    -


    只有運行變量的值在取值范圍內,每次循環都就會執行的指令。取值范圍由起始值和結束值定義。


    有關有效數據類型的更多信息,請參見“另請參見”。

    示例

    以下示例說明了該指令的工作原理:



    SCL

    FOR i := 2 TO 8 BY 2

    DO "a_array[i] := "Tag_Value"*"b_array[i]";

    END_FOR;


    “Tag_Value”操作數乘以“b_array”ARRAY 變量的元素 (2, 4, 6, 8)。并將計算結果讀入到“a_array”ARRAY 變量的元素 (2, 4, 6, 8) 中。


    聯系方式

    • 電  話:18126392341
    • 聯系人:梁濤
    • 手  機:15267534595
    • 微  信:15267534595