December 01.2023
![]()
結構式文件編程語言(英語:Structured text)也稱為ST語言,是為可編程邏輯控制器(PLC)設計的編程語言,是相關的IEC 61131-3標準中支援幾種語言之一。 |
賦值語句 |
賦值語句使用形式如下,其中“:=”為賦值操作符,且要用“;”結尾。 | |
![]() | |
范例: | |
![]() |
IF語句 |
此節將介紹IF語句使用方式以及范例。 IF語句是選擇語句的一種,其根據條件 決定執行哪些語句。判斷 一個指定的條件 是否為真,若真,則執行之后的語句; 若假,則 執 行ELSIF或者ELSE之后的語句。 一條標準的IF語句如圖: | ![]() |
注意:條件表達式可以是一個表達式,也可以是一個變量,其結果 或者類型必須為布爾類型。一個IF語句中可以有多個ELSIF,但是 只能有一個IF,一個ELSE和END_IF。語句組中可以包含其他IF語句。 |
簡單IF語句 | ||
最簡單的IF語句只包含IF和END_IF,不包含 ESLIF和ELSE。 當表達式滿足時,執行IF語句 的語句組,否則不執行該語句組。 | ![]() | |
程序執行流程圖如下: | ||
![]() | ||
范例: | ||
![]() |
帶ELSE的IF語句 | ||
當表達式滿足時,執行語句組1; 不滿足時,則執行語句組2; | ![]() | |
程序執行流程圖如下: | ||
![]() | ||
范例: | ||
![]() |
帶ELSEIF的IF語句 | ||
當表達式1滿足時,執行語句組1;如果表達1 不滿足且表達式2滿 足時,則執行語句組2; 如 果表達1和表達2均不滿足,則執行與語句組3; | ![]() | |
程序執行流程圖如下: | ||
![]() | ||
范例: | ||
![]() |
帶IF的嵌套語句 | ||
IF語句中可嵌套IF語句, 但IF與END_IF需成對出現; | ![]() | |
程序執行流程圖如下: | |
![]() | 范例:![]() |
單次執行IF語句 | ||
搭配R_TRIG語句可實現單次執行的IF語句, 不必每次掃描周期均 執行。 | ![]() | |
程序執行流程圖如下: | ||
![]() | ||
范例: | ||
![]() |
CASE語句 |
此節將介紹case語句如何使用以及使用范例。 CASE語句是選擇語句的一種,在CASE語句中, 控制變量與幾個 值作比較,如果表達式的 結果與其中一個值相同,那么就執 行相應的 語句;如果表達式的結果與任何一個值都不 相同,那么就執 行ELSE后面的程序: “表達式”是一個變量,其數據類型必須為 整數(16bit-INT)。 | ![]() | |
程序執行流程圖如下: | ||
![]() | ||
范例: | ||
![]() |
循環語句 |
FOR語句 | ||
FOR循環語句格式中,控制變量是在 循環過程中不斷變化的變量 ,在每次 循環執行后,該變量的的值增加增值, 即控制變量:=控制 變量+增值。初值是 控制變量起始值,終值是控制變量終止值,增 值是控制變量的每次增量。 每次循環執行后控制變量的值變化,如果其值沒有超過終止值,則繼續 執行循環,反之,如果超過終止 值或執行過程中執行到EXIT或BREAK 語句,則循環執行終止。 | ![]() | |
程序執行流程圖如下: | ||
![]() | ||
范例: | ||
![]() |
WHILE語句 | ||
先判斷表達式條件是否為真(滿足), 如果為真才執行循環有關語 句,反之 則不執行。適合循環次數不確定,且需 要先判斷條件再確 定是否執行。執行 過程中執行到EXIT或BREAK語句, 則立即終止 循環。 | ![]() | |
程序執行流程圖如下: | ||
![]() | ||
范例: | ||
![]() |
REPEAT語句 | ||
REPEAT語句先執行循環有關語句,再判斷 條件表達式條件是否 為真(滿足),如果為 真則結束循環,反之如果為假,則執行循環 有 關語句。適用循環次數不確定,且需要先 執行,再判斷條件。 | ![]() | |
程序執行流程圖如下: | ||
![]() | ||
范例: | ||
![]() |
EXIT/BREAK 語句 | ||
EXIT/BREAK語句通常在執行循環有關 語句的過程中立即中斷循 環語句的執行。 當EXIT/BREAK位于嵌套循環語句內時,其 執行時 ,其所在的循環回路立即中斷,但 更外層的循環不受其影響。 | ![]() | |