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