CASE:創(chuàng)建多路分支
CASE語(yǔ)句用來(lái)選擇幾個(gè)分支程序部分之一。選擇是基于選擇表達(dá)式當(dāng)前值的。
使用“創(chuàng)建多路分支”指令,可以根據(jù)數(shù)字表達(dá)式的值執(zhí)行多個(gè)指令序列中的一個(gè)。
表達(dá)式的值必須為整數(shù)。執(zhí)行該指令時(shí),會(huì)將表達(dá)式的值與多個(gè)常數(shù)的值進(jìn)行比較。如果表達(dá)式的值等
于某個(gè)常數(shù)的值,則將執(zhí)行緊跟在該常數(shù)后編寫的指令。常數(shù)可以為以下值:
? 整數(shù)(例如,5)
? 整數(shù)的范圍(例如,15..20)
? 由整數(shù)和范圍組成的枚舉(例如,10、11、15..20)
CASE語(yǔ)句按下列規(guī)則執(zhí)行:
·選擇表達(dá)式必須返回一個(gè)整數(shù)類型的值。
·當(dāng)CASE語(yǔ)句被處理時(shí),程序檢查是否選擇表達(dá)式的值包含在指定的值表之中。如果找到匹配項(xiàng),列表指定的語(yǔ)句部分將被執(zhí)行。
·如果沒有發(fā)現(xiàn)匹配項(xiàng),程序選擇ELSE后面的語(yǔ)句,或者如果ELSE分支不存在則無(wú)語(yǔ)句可執(zhí)行。
如果表達(dá)式的值等于第一個(gè)常數(shù)(<常數(shù) 1="">)的值,則將執(zhí)行緊跟在該常數(shù)后編寫的指令(<指令 1="">)。
程序?qū)?END_CASE 后繼續(xù)執(zhí)行。
如果表達(dá)式的值不等于第一個(gè)常數(shù)(<常數(shù) 1="">)的值,則會(huì)將該值與下一個(gè)設(shè)定的常數(shù)值進(jìn)行比較。
以這種方式執(zhí)行 CASE 指令直至比較的值相等為止。如果表達(dá)式的值與所有設(shè)定的常數(shù)值均不相等,則將執(zhí)行 ELSE 后編寫的指令(<指令 0="">)。
ELSE 是一個(gè)可選的語(yǔ)法部分,可以省略。此外,CASE 指令也可通過(guò)使用 CASE 替換一個(gè)指令塊來(lái)進(jìn)行嵌套。END_CASE 表示 CASE 指令結(jié)束。
根據(jù)管角value輸入數(shù)來(lái)決定OUT1輸出的數(shù)
FUNCTION FC1 : INT? ?建立FC1程序,輸出反饋值得屬性是INT整數(shù)
VAR_input
??? value:INT;
END_VAR
VAR_outPUT
??? OUT1:INT;
END_VAR
VAR_TEMP
END_VAR
??? CASE?value OF
??????? 1?:
???????????????????? OUT1:=1? ;
??????? 2?:
??????????????????? OUT1:=2??? ;
??????? 3?:
?????????????????? OUT1:=3???? ;
??????? 4?:
????????????????? ? OUT1:=4??? ;
??????? 5?:
?????????????????? OUT1:=5???? ;
??????? 6?:
??????????????????? OUT1:=6???? ;
??? ELSE:?? 不是1-6?就輸出99
?????????????? OUT1:=99? ;
??? END_CASE;
????? FC1?:= OUT1;??FC1的反饋值和OUT1值一致.
END_FUNCTION
審核編輯:劉清
評(píng)論
查看更多