日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

 

SCL作為一種編程語言,可以實現LAD/FBD所有的功能,大多數的指令與LAD/FBD都是相同的,只是在編輯器中的外形不同。只有一些指令使用是不太一樣的甚至LAD/FBD沒有的,這里只介紹這些不同的。

SCL特殊的指令有以下幾種,如圖1-3紅框中的指令:

西門子SCL語言編程,常用指令介紹(收藏了)

圖1 讀寫存儲器


西門子SCL語言編程,常用指令介紹(收藏了)

圖2 轉換操作


西門子SCL語言編程,常用指令介紹(收藏了)

圖3 程序控制指令

在這三部分中,讀寫存儲器的PEEK POKE指令可以參考鏈接,轉換操作可以參考鏈接,這里只介紹圖3的程序控制指令。

程序控制指令

程序控制指令見以下表格。

西門子SCL語言編程,常用指令介紹(收藏了)

 

程序控制指令是SCL編程的基礎,接近高級語言的指令,雖然這些功能通過LAD/FBD也可以實現,但使用SCL編寫會更加方便,邏輯條理也更加清晰。

IF:條件執行

說明:使用"條件執行"指令,可以根據條件控制程序流的分支。該條件是結果為布爾值(True 或 False)的表達式。可以將Bool變量、邏輯表達式或比較表達式作為條件。

執行該條件執行指令時,將對指定的表達式進行運算。如果表達式的值為 True,則表示滿足該條件;如果其值為 False,則表示不滿足該條件。

參數

根據分支的類型,可以對以下形式的指令進行編程:

  • IF...THEN... 分支:IF <條件>THEN <語句1>END_IF;
西門子SCL語言編程,常用指令介紹(收藏了)

圖4 IF...THEN... 分支

如果滿足該條件,則將執行 THEN 后編寫的指令。如果不滿足該條件,則程序將從 END_IF 后的下一條指令開始繼續執行。

  • IF...THEN... ELSE...分支:IF <條件>THEN <語句1>ELSE <語句2>END_IF;
西門子SCL語言編程,常用指令介紹(收藏了)

圖5 IF...THEN... ELSE...分支

如果滿足該條件,則將執行 THEN 后編寫的語句。如果不滿足該條件,則將執行 ELSE 后編寫的語句。不論執行哪一個語句,之后都將從 END_IF 后的下一條指令開始繼續執行。

  • IF...THEN... ELSIF...分支:IF <條件1>THEN <語句1>ELSIF <條件2>THEN <語句2>END_IF;
西門子SCL語言編程,常用指令介紹(收藏了)

圖6 IF...THEN... ELSIF...分支

如果滿足條件1,則將執行 THEN 后的語句1,執行這些語句后,程序將從 END_IF 后繼續執行。

如果不滿足條件1,則將檢查條件2。如果滿足條件2,則將執行 THEN 后的語句2。執行這些語句后,程序將從 END_IF 后繼續執行。

如果不滿足任何條件,則直接執行 END_IF 后的程序部分。

在 IF 指令內可以嵌套任意多個 ELSIF 和 THEN 組合。可以選擇對 ELSE 分支進行編程。

參數

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

西門子SCL語言編程,常用指令介紹(收藏了)

 

示例

西門子SCL語言編程,常用指令介紹(收藏了)

圖7 IF示例

下表展示了不同的操作數數值對目標變量的影響:

西門子SCL語言編程,常用指令介紹(收藏了)

 

CASE:創建多路分支

說明:使用"創建多路分支"指令,可以根據數字表達式的值執行多個指令序列中的一個。

按如下方式聲明此指令:

CASE <變量> OF

<常數1>: <語句1>;

<常數2>: <語句2>;

......

<常數n>: <語句n>;

ELSE <語句>;

END_CASE;

西門子SCL語言編程,常用指令介紹(收藏了)

圖8 CASE語句

參數

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

西門子SCL語言編程,常用指令介紹(收藏了)

 

* TIA PORTAL V16開始支持位序列數據類型的變量

示例

西門子SCL語言編程,常用指令介紹(收藏了)

圖9 CASE示例

下表展示了不同的操作數數值對目標變量的影響:

西門子SCL語言編程,常用指令介紹(收藏了)

 

FOR:在計數循環中執行

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

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

通過指令"復查循環條件"(Continue),可以終止當前正在運行的程序循環。通過指令"立即退出循環"(Exit)終止整個循環的執行。

注意:

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

程序運行時無法更改運行次數。出于性能原因,應在塊接口的"Temp"部分中聲明運行變量。在循環中,該運行變量無法更改。

按如下方式聲明此指令:

FOR <運行變量> := <起始值> TO <結束值> BY <增量> DO

<語句>;

END_FOR;

如果增量為1,可以簡寫為:

FOR <運行變量> := <起始值> TO <結束值> DO

<語句>;

END_FOR;

西門子SCL語言編程,常用指令介紹(收藏了)

圖10 FOR語句

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

西門子SCL語言編程,常用指令介紹(收藏了)

 

*TIA PORTAL V16開始支持無符號整數類型的變量

示例

西門子SCL語言編程,常用指令介紹(收藏了)

圖11 FOR示例

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

下表展示了給定 Tag_Value 與 b_array[i] 的值得到 a_array[i] 的結果:

西門子SCL語言編程,常用指令介紹(收藏了)

 

WHILE:滿足條件時執行

說明:使用"滿足條件時執行"指令可以重復執行程序循環,直至不滿足執行條件為止。該條件是結果為布爾值(True 或 False)的表達式。可以將邏輯表達式或比較表達式作為條件。

執行該指令時,將對指定的表達式進行運算。如果表達式的值為 True,則表示滿足該條件;如果其值為 False,則表示不滿足該條件。

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

通過指令"復查循環條件"(Continue),可以終止當前連續運行的程序循環。通過指令"立即退出循環"(Exit)終止整個循環的執行。

可按如下方式聲明此指令:

WHILE <條件>

DO <語句>;

END_WHILE;

西門子SCL語言編程,常用指令介紹(收藏了)

圖12 WHILE語句

參數

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

西門子SCL語言編程,常用指令介紹(收藏了)

 

示例

西門子SCL語言編程,常用指令介紹(收藏了)

圖13 WHILE示例

下表展示了循環初始和循環結束時變量值的變化

西門子SCL語言編程,常用指令介紹(收藏了)

 

REPEAT:不滿足條件時執行

說明:使用"不滿足條件時執行"指令可以重復執行程序循環,直至不滿足執行條件為止。該條件是結果為布爾值(True 或 False)的表達式。可以將邏輯表達式或比較表達式作為條件。

執行該指令時,將對指定的表達式進行運算。如果表達式的值為 True,則表示滿足該條件;如果其值為 False,則表示不滿足該條件。

即使滿足終止條件,至少也會執行一次循環內的語句。

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

通過指令"復查循環條件"(Continue),可以終止當前連續運行的程序循環。通過指令"立即退出循環"(Exit)終止整個循環的執行。

可按如下方式聲明此指令:

REPEAT <語句>;

UNTIL <條件>

END_REPEAT;

西門子SCL語言編程,常用指令介紹(收藏了)

圖14 REPEAT語句

參數

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

西門子SCL語言編程,常用指令介紹(收藏了)

 

示例

西門子SCL語言編程,常用指令介紹(收藏了)

圖15 REPEAT示例

下表展示了循環初始和循環結束時變量值的變化

西門子SCL語言編程,常用指令介紹(收藏了)

 

CONTINUE:復查循環條件

說明:使用"復查循環條件"指令,可以結束 FOR、WHILE 或 REPEAT 循環的當前程序運行。

執行該指令后,將再次計算繼續執行程序循環的條件。該指令將影響其所在的程序循環。

西門子SCL語言編程,常用指令介紹(收藏了)

圖16 CONTINUE用在FOR循環


西門子SCL語言編程,常用指令介紹(收藏了)

圖17 CONTINUE用在WHILE循環


西門子SCL語言編程,常用指令介紹(收藏了)

圖18 CONTINUE用在REPEAT循環

示例

西門子SCL語言編程,常用指令介紹(收藏了)

圖19 CONTINUE示例

下表展示了計算結果:

西門子SCL語言編程,常用指令介紹(收藏了)

 

如果滿足條件 i < 5,則不執行后續值分配 ("DB10".Test[i] := 1)。運行變量 (i) 以增量"1"遞增,然后檢查其當前值是否在設定的循環取值范圍內。如果執行變量在循環取值范圍內,則將再次計算 IF 的條件。

如果不滿足條件 i < 5,則將執行后續值分配 ("DB10".Test[i] := 1) 并開始一個新循環。在這種情況下,執行變量也會以增量"1"進行遞增并接受檢查。

EXIT:立即退出循環

說明:使用"立即退出循環"指令,可以隨時取消 FOR、WHILE 或 REPEAT 循環的執行,而無需考慮是否滿足條件,并在循環結束(END_FOR、END_WHILE 或 END_REPEAT)后繼續執行程序。

該指令將影響其所在的程序循環。

西門子SCL語言編程,常用指令介紹(收藏了)

圖20 EXIT語句

示例

西門子SCL語言編程,常用指令介紹(收藏了)

圖21 EXIT示例

下表展示了計算結果:

西門子SCL語言編程,常用指令介紹(收藏了)

 

如果滿足條件 i > 5,則將取消循環執行。程序將從 END_FOR 后繼續執行。

如果不滿足條件 i <= 5,則將執行后續值分配 ("DB10".Test[i] :=1) 并開始一個新循環。將運行變量 (i) 以 1 進行遞增,并進行檢查該變量的當前值是否在程序中設定的循環取值范圍之內。如果執行變量 (i) 在循環取值范圍內,則將再次計算 IF 的條件。

GOTO:跳轉

說明:使用"跳轉"指令,可以從標注為跳轉標簽的指定點開始繼續執行程序。

跳轉標簽和"跳轉"指令必須在同一個塊中。在一個塊中,跳轉標簽的名稱只能指定一次。每個跳轉標簽可以是多個跳轉指令的目標。不允許從"外部"跳轉到程序循環內,但允許從循環內跳轉到"外部"。

注意:

LAD/FBD語言內的SCL段,不能使用GOTO指令。

跳轉標簽遵循以下語法規則:

  • 字母(a 至 z,A 至 Z)
  • 字母和數字組合;請必須字母為開始

可按如下方式聲明此指令:

GOTO <跳轉標簽>;

...

<跳轉標簽>: <語句>

示例

西門子SCL語言編程,常用指令介紹(收藏了)

圖22 GOTO示例

下表展示了每個操作數數值對目標變量的變化影響:

西門子SCL語言編程,常用指令介紹(收藏了)

 

根據"Tag_Value"操作數的值,程序將從對應的跳轉標簽標識點開始繼續執行。例如,如果"Tag_Value"操作數的值為 2,則程序將從跳轉標簽"MyLABEL2"開始繼續執行。在這種情況下,將跳過"MyLABEL1"跳轉標簽所標識的程序行。

RETURN:退出塊

說明:使用"退出塊"指令,可以終止當前處理塊中的程序執行,并在調用塊中繼續執行。

如果該指令出現在塊結尾處,則可以跳過。

西門子SCL語言編程,常用指令介紹(收藏了)

圖23 RETURN語句

示例

西門子SCL語言編程,常用指令介紹(收藏了)

圖24 RETURN示例

如果"Tag_Error"操作數的信號狀態不為 0,則將終止當前處理塊中的程序執行。

 

分享到:
標簽:語言 編程
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定