自控技研: PLC ST教學4

2025-05-08 11:46:09      世界杯排名球队

結構化語言(Structured Text,ST)是一種類似 C 語言編程方式,程式碼最大的特色是使用人類孰悉的文字例如: if then else, while, for ..等文字敘述組合而成,與CPU有關的IL指令比較,結構化語言接近人類語法所以被稱為高階語言,IL指令式(或LD)被稱為低階指令,IL指令專長在處理0跟1的信號;ST語言則擅長在處理數值資料。當今的工業自動化已朝向智慧化發展,使用AD/DA、伺服馬達、視覺影像、機器手臂已經非常普遍,PLC程式也必須大量的處數值運算,可以預見未來結構化語言會逐漸成為PLC編碼的主流。

ST 程式要素

敘述句(Statement)是 ST 語言中最基本的執行單位,它代表的是一個階梯圖區段(NETWORK),敘述句由表達式(Expression)加上分號 ”;”

而成,而表達式由運算元(Operand)與運算子(Operator)組合而成。

運算元是資料,運算子是處理資料的方法。

EX:

D0 := D1+10;

敘述句: D0 := D1+10;

表達式: D1+10

運算元: D1,10

運算子: +

布林資料做AND,OR及 NOT位元邏輯運算。

EX:

M0 := X0.0 AND

X0.1;

數值資料做 加,減,乘,除 算術運算及 <, > ,<= ,>= 比較運算。

EX:

M0 := (D0 >=

100);

假如 D0的數值大於等於100,M0 ON;否則 M0 OFF。

在( * 與 * )符號之間的文字為註解不會進行編譯,程式中多寫注解以便後續維護。

在 ST 語言中使用常數時,其格式如下。

 10 進制:23456

 16 進制:16#5BA0

 8 進制:8#55640

 2 進制:2#101101110100000

 字串:”XYZ”

 BOOL:TRUE 或 FALSE。

ST 語法運算子表。

結構化語言包括3種結構:

l 順序結構:依照程式編寫順序,依序一行一行執行,用上表運算子組成的敘述屬順序結構。

指定結構 :=

語法

範例

:=

a :=

b;

範例說明

將b值指定(傳送)給a裝置或變數符號。

l 分歧結構(判斷結構):依判斷示結果(True或 False) 2擇1執行,有2種語法 IF, CASE。

分歧結構 IF

語法

範例

IF

expression 1> THEN

statements;

ELSIF

THEN

statements;

.

.

ELSIF

THEN

statements;

ELSE

statements;

END_IF;

IF

d

f:=1;

ELSIF

d=e THEN

f:=2;

ELSE

f:=3;

END_IF;

範例說明

假如 d

然後執行f:=1後離開;否則執行f:=3後結束。

分歧結構 CASE

語法

範例

CASE

OF

:

statements 1;

:

statements 2;

...

:

statements n;

ELSE

statements

END_CASE;

CASE f OF

1:

g := 10;

2:

g := 20;

ELSE

g := 0;

END_CASE;

範例說明

判斷 f 的值是否為1,若是,則執行 g := 10; 後離開此結構;若否,繼續判斷 f 的值是否為 2,若是,則執行 g := 20; 後離開此結構;若否,則執行關鍵字「ELSE」之後的 g := 0; 後離開。

l 重複結構(迴圈結構):重複執行程式待條件成立後即離開迴圈,繼續執行下一行程式,有3種語法 REPEAT,WHILE及FOR。

迴圈結構 REPEAT

語法

範例

REPEAT

statements;

UNTIL

END_REPEAT;

REPEAT

i := m + n;

UNTIL

i < 100

END_REPEAT;

範例說明

先執 i := m + n; 後再判斷 i

< 100 的值是否為真(True),若其值為真,則程式會直接離開此結構;若為否(False),則結構內部的程序便會重複執行 i := m + n;,直 i < 100 值為真(True)之後才會離開。

迴圈結構 WHILE

語法

範例

WHILE

DO

statements;

END_WHILE;

WHILE m > 1

DO

a := a + m;

END_WHILE;

範例說明

先判斷假如 m > 1 的值是否為真(True),若為真,則程式便會重複執行 a := a + m;,直到 m > 1值為否(False)之後才會離開。

迴圈結構 FOR

語法

範例

FOR

:= TO {BY } DO

statements;

END_FOR;

FOR h:=1 TO 10

BY 2 DO

a := a + h;

END_FOR;

範例說明

先將變數 h 設為初始值 1,假如變數 h 值小於終點值10,執行 a := a + h; 之後再將變數h的內容值加上增量值2,接著再判斷變數 h 值是否小於終點值10,若是,則繼續執行 a := a + h; 及 h 的內容值加上增量值2;直到 h 值大於終點值10,則程式便會離開 FOR 結構。

凯德斯婴儿推车排行榜
苹果手机为何遇到WiFi就自动打开?解析背后的原因与机制