歡迎光臨
每天分享高質量文章

西門子S7-1200基本指令(8)——程式控制操作2CL語言程式


點選 《福利來了!PLC的資料(免費),你要嗎?

點選第二波福利來了!PLC的資料(免費),你要嗎?

SCL 程式控制陳述句

1、SCL 程式控制陳述句概述:
結構化控制語言 (SCL, Structured Control Language)提供三類用於結構化使用者程式的程式控制陳述句:
● 選擇陳述句: 選擇陳述句可將程式執行轉移到備選陳述句序列。
● 迴圈: 可以使用迭代陳述句控制迴圈執行。
迭代陳述句指定應根據某些條件重覆執行的程式部分。
● 程式跳轉:
程式跳轉是指立刻跳轉到特定的跳轉標的,因而跳轉到同一塊內的其它陳述句。這些程式控制陳述句都使用 PASCAL 程式語言的語法。

2、IF-THEN 陳述句
IF-THEN 陳述句是條件陳述句,可控製程式流,根據邏輯運算式的 Bool值的結果決定是否執行一組陳述句。 您還可以使用括號巢狀或結構化多條 IF-THEN陳述句的執行。

IF 陳述句按照下列規則執行:
● 執行第一個邏輯運算式為 TRUE 的陳述句序列。 不執行其餘陳述句序列。
● 如果無布林型運算式為 TRUE,則執行 ELSE 引入的陳述句序列(或者,如果ELSE分支不存在,則不執行陳述句序列)。
● 不限制 ELSIF 陳述句的數量。

3、CASE 陳述句

CASE 陳述句按照下列規則執行:
● Test_value 運算式必須傳回一個 Int 型別的值。
● 處理 CASE 陳述句時,程式會檢查 Test_value運算式的值是否包含在指定的值串列中。如果找到匹配項,則執行分配給該串列的陳述句成分。
● 如果未找到匹配項,則執行 ELSE 後面的程式段,如果不存在 ELSE分支,則不執行任何陳述句。
示例: 巢狀 CASE 陳述句
CASE 陳述句可以巢狀使用。 每個巢狀的 CASE 陳述句必須具有相關聯的END_CASE陳述句。

4、FOR 陳述句

FOR 陳述句的執行方式如下:
● 迴圈開始時,控制變數設定為初始值(初始分配),每次重覆進行迴圈時,控制變數會增加指定增量(正增量)或減少指定增量(負增量),直至達到最終值。
● 每次執行完迴圈之後,會檢查該條件(達到最終值)以確定是否滿足該條件。
如果沒有滿足結束條件,則重新執行陳述句序列,否則迴圈將終止並繼續執行迴圈後面的陳述句。
定義 FOR 陳述句的規則:
● 控制變數的資料型別只能是 Int 或 DInt。
● 可以省略陳述句 BY [increment]。 如果未指定增量,則自動預設為 +1。
要結束迴圈而不考慮“condition”運算式的狀態,請使用 EXIT 陳述句。 EXIT陳述句將執行緊隨 END_FOR 陳述句之後的陳述句。
使用 CONTINUE 陳述句可跳過某個 FOR迴圈的後續陳述句,並繼續執行迴圈,同時檢查是否滿足終止條件。

5、WHILE-DO 陳述句

說明
WHILE 陳述句先評估“condition”的狀態,然後執行陳述句。
要執行陳述句一次或多次而不考慮“condition”的狀態,請使用 REPEAT 陳述句 。

WHILE 陳述句按照下列規則執行:
● 每次迴圈執行迴圈體之前,評估執行條件。
● 只要執行條件的值為 TRUE,就重覆執行 DO 後面的迴圈體。
● 一旦值變為 FALSE,則立即跳過迴圈,去執行迴圈後面的陳述句。
要結束迴圈而不考慮“condition”運算式的狀態,請使用 EXIT 陳述句 。 EXIT陳述句執行緊跟 END_WHILE 陳述句的陳述句使用 CONTINUE 陳述句可跳過 WHILE迴圈後面的陳述句,併在檢查是否滿足終止條件後決定是否繼續執行迴圈。

6、REPEAT-UNTIL 陳述句

說明
在迴圈的首次迭代過程中,REPEAT 陳述句在執行相關陳述句(即使“condition”為FALSE)後評估“condition”的狀態。 要在執行這些陳述句前檢視“condition”的狀態,請使用WHILE 陳述句。

要結束迴圈而不考慮“condition”運算式的狀態,請使用 EXIT 陳述句 。 EXIT陳述句執行緊跟 END_REPEAT 陳述句的陳述句使用 CONTINUE 陳述句 可跳過REPEAT迴圈的後續陳述句,並繼續執行迴圈,同時檢查是否滿足終止條件。

7、CONTINUE 陳述句

CONTINUE 陳述句按照下列規則執行:
● 該陳述句立即終止迴圈體的執行。
● 根據是否滿足重覆執行迴圈的條件,決定是再次執行迴圈體還是退出迭代陳述句而去執行緊隨其後的陳述句。
● 在 FOR 陳述句中,在執行 CONTINUE 陳述句後控制變數立即增加指定的增量。只能在迴圈中使用 CONTINUE 陳述句。 在巢狀迴圈中,CONTINUE始終與直接包含它的迴圈相關。CONTINUE 通常與 IF 陳述句一起使用。如果要退出迴圈而不考慮終止測試情況,請使用 EXIT 陳述句。
示例: CONTINUE 陳述句
下例說明瞭使用 CONTINUE 陳述句來避免計算值的百分數時發生被 0 除的錯誤:

8、EXIT 陳述句

EXIT 陳述句按照下列規則執行:
● 該陳述句會立即退出該退出陳述句所處的重覆陳述句。
● 繼續執行該迴圈後面(例如 END_FOR 之後)的程式。
在迴圈中使用 EXIT 陳述句。 在巢狀迴圈中,EXIT 陳述句將處理權傳回到下一更高巢狀級。

示例: EXIT 陳述句

9、GOTO 陳述句

不能跳轉到迴圈部分(FOR、WHILE 或 REPEAT)。 可以在迴圈中進行跳轉。
示例: GOTO 陳述句
在以下示例中: 根據運算元“Tag_value”的值在對應跳轉標簽定義的位置繼續執行程式。如果“Tag_value”等於2,則會在跳轉標簽“MyLabel2”位置繼續執行,並會跳過“MyLabel1”。

10、RETURN 陳述句

示例: RETURN 指令:


尋找同路人

做自動化工業變革的踐行者


可透過選單查詢自己喜歡的文章彙總:

現場儀錶DCS部分PLC部分SIS部分通訊標準數字化問題解答】此處列出部分連結,更多文章透過選單獲取。



贊(0)

分享創造快樂