選擇語句是根據規定的條件選擇表示式來確定執行它所組成的語句。從大類上可分為 IF 和CASE 兩類。
IF語句
1)用 IF語句實現單分支選擇結構,基本格式如下。
IF <布林表示式> THEN
<語句內容>;
END_IF
布林表示式:
可以是一個bool變數,或者多個布林量的與或關係;也可以是實數判斷條件,例如一個實數不等於0等等。
如果使用上述格式,只有當<布林表示式>為 TRUE 時,才執行語句內容,否則不執行 IF 語句的<語句內容>。語句內容可以為一條語句或者可以為空語句,也可以並列多條語句。
示例:判斷當前溫度是否超過了 60 攝氏度,如果超過,始終開啟風扇進行散熱處理。
2) IF…ELSE 語句
用 IF語句實現雙分支選擇機構,基本格式如下:
IF <布林表示式> THEN
<語句內容 1>;
ELSE
<語句內容 2>;
END_IF
如上表達式先判斷<布林表示式>內的值,如果為 TRUE,則執行<語句內容 1>,如下 FALSE,
則執行<語句內容 2>。
示例:判斷當溫度小於到 20攝氏度時,開啟加熱裝置,否則(溫度大於等於 20
攝氏度)加熱裝置斷開狀態。
當程式的條件判斷式不止一個時,此時,需要再一個巢狀的 IF…ELSE 語句,即多分支選擇結
構,基本格式如下。
IF <布林表示式 1> THEN
IF <布林表示式 2> THEN
<語句內容 1>;
ELSE
<語句內容 2>;
END_IF
ELSE
<語句內容 3>;
END_IF
如上,在 IF…ELSE 中有放入了一個 IF…ELSE 語句,實現巢狀。PLC週期性從上向下執行,當<布林表示式1>為True,則執行第二條IF語句,否則執行<語句內容3>。
3) IF。。ELSIF。。ELSE 語句
此外,多分支選擇結構還能透過如下方式來呈現。具體格式如下
IF <布林表示式 1> THEN
<語句內容 1>;
ELSIF <布林表示式 2> THEN
<語句內容 2>;
ELSIF <布林表示式 3> THEN
<語句內容 3>;
。 。 。
。 。 。
ELSE
<語句內容 n>;
END_IF
如上,PLC
週期性從上向下執行。
1。當<布林表示式1>為True,則執行<語句內容1>;
2。當<布林表示式2>為True,則執行<語句內容2>;
3。當<布林表示式3>為True,則執行<語句內容3>;
…
1、2、3都不為True,則執行<語句內容n>;
CASE 語句
CASE 語句是多分支選擇語句,他根據表示式的值來使程式從多個分支中選擇一個用於執行的
分支,基本格式如下。
CASE <條件變數> OF
<數值 1>: <語句內容 1>;
<數值 2>: <語句內容 2>;
<數值 3, 數值 4, 數值 5>: <語句內容 3>;
<數值 6 。。 數值 10>: <語句內容 4>;
。。。
<數值 n>: <語句內容 n>;
ELSE
END_CASE;
CASE 語句按照下面的模式進行執行:
如果<條件變數>的值為<數值 i>,則執行指令<語句內容 i>。
如果<條件變數>沒有任何指定的值,則執行指令< ELSE 語句內容>。
如果條件變數的幾個值都需要執行相同的指令,那麼可以把幾個值相繼寫在一起,並且用逗號
分開。這樣,共同的指令被執行,如上程式第四行。
如果需要條件變數在一定的範圍內執行相同的指令,可以透過寫入初、終值,以兩個點分開。
這樣,共同的指令被執行,如上程式第五行。
示例:當前狀態為 1 或 5 時,裝置 1 執行和裝置 3 停止;狀態為 2 時,裝置 2 停止和裝置
3 執行;如當前狀態在 10至 20 之間,裝置 1 和裝置 3 均執行,其他情況時要求裝置 1, 2, 3均停止。
如上:當 nState 為 1 或者 5時,裝置 1開,裝置 3 關;
nState 為 2時,裝置 2 關,裝置 3 開;
nState 為 10~20時,裝置 1關,裝置 3 開;
其他情況則裝置 1關,裝置 2關,裝置 3關。
編者旨在與對Codesys感興趣的同學一起分享交流,歡迎關注!關注!關注!轉發,然後私信我關鍵字“資料”。