st語言 陣列的常用方法 ST語言入門基礎

2021-10-13 12:05:05 字數 2547 閱讀 8897

一、結構化文字(st 語言)

結構化文字(structured text)簡稱 st 語言,是 iec61131-3 所規定的 plc 程式語言之一,

用於工業控制的高階語言。由於其編寫方式與一般計算機語言相似,多用於較為複雜的控制

場合和複雜的控制演算法中。

1、特點:

程式語言採用高度簡化的表達形式,使得程式緊湊,結構清晰;

帶有多種控制語句,便於實現複雜的控制邏輯,如if、 case條件語句和for、while、 repeat迴圈語句;

程式結構清晰,便於閱讀。

2、st程式結構

st語言的程式由語句組成,語句由表示式和關鍵字組成,表示式由運算元和操作符組成。

st結構

二、語法基礎

1、表示式

表示式的構成

st語言的程式中,表示式由運算元和操作符組成。

乙個表示式可包含乙個或多個操作符、變數和函式

語法1運算元

運算元可以是表示資料的資料文字、字串文字、時間文字、變數元素、函式呼叫和其他表示式;

例如: 15、 true、 t#20s、 array1[1]、 sin(a)、(a>b) &(c=d)。

操作符在乙個表示式中使用多個操作符時,按優先順序從高到低依次執行。 相同優先順序的操作符按照書寫順序從左向右依次執行。

操作符2、語句

賦值語句

賦值語句用於將賦值符號(:=)右側的表示式計算的值賦給左側的變數。

格式賦值語句的一般形式如下, 其中「:=」為賦值操作符, 且要用分號「;」結尾。

格式 變數 := 表示式 ;

例子變數1 := 100 ; //對變數1賦值100

變數2 := true; //對變數2賦值true

變數3 := 變數1 *2 ; //將變數1乘以2後得到結果賦值給變數3

變數4 := sin(變數3); //將變數3做正弦運算後的結果賦給變數4

陣列a[1] := 1.5; //對陣列a下標為1的元素賦值1.5

變數5 := 1; 變數6 := 1.5; 變數7 := false; //一行中可以同時存在多條賦值語句

函式呼叫

u 函式(fc)呼叫後將其返回值作為表示式的值賦值給其他變數,其一般格式如下:

變數 := 函式名(參數列) ;

參數列有兩種書寫方式:

方式1: 變數 := 函式名 ( 函式輸入引數1 := 輸入變數1 ,函式輸入引數2 := 輸入變數2 , … );

方式2: 變數 := 函式名 (輸入變數1 , 輸入變數2 , … );

例如:通過函式max(取最大值)選取變數1和變數2中的最大值,並將該最大值賦值給變數3,兩種呼叫方式如下:

方式1:變數3: =max(in1:=變數1, in2:=變數2);

方式2: 變數3: =max(變數1,變數2);

注意:通過方式2呼叫時,參數列中的變數從左往右依次與函式的輸入引數對應,所以不能空缺;

某些二元操作符不能作為函式名進行函式呼叫,如mod、 and,not等:

注意變數: =mod(變數1,變數2); ×

變數: =變數1 mod 變數2; √

例子函式呼叫

功能塊呼叫

功能塊(fb)呼叫需要將其進行例項化,通過例項名稱實現呼叫,其一般格式如下:

格式功能塊例項名(參數列) ;

參數列有兩種書寫方式:

方式1: 功能塊例項名( 功能塊輸入引數1 := 輸入變數1 ,

功能塊輸入引數2 := 輸入變數2 ,

功能塊輸出引數1=> 輸出變數1 ,

功能塊輸出引數2=> 輸出變數2,

方式2: 功能塊例項名(輸入變數1 , 輸入變數2 , …,輸出變數 1,輸出變數2, ….);

例如:通過功能塊ton的例項名timer1對ton進行呼叫:

方式1:

timer1( en:= 變數1 , in:= 變數2 , pt:= t#1s,

eno =>變數4, q =>變數5, et=>變數6 );

或方式2:

timer1(變數1 , 變數2 , t#1s, 變數4, 變數5, 變數6 );

直接賦值與間接賦值

直接賦值

通過功能塊ton的例項名timer1對ton進行呼叫:

timer1( en:= 變數1 ,

in:= 變數2 ,

pt:= t#1s,

eno =>變數4,

q =>變數5,

et=>變數6 );

間接賦值

timer1 .en:= 變數1; //對ton的輸入引數en進行賦值

timer1 . in:= 變數2; //對ton的輸入引數in進行賦值

timer1 . pt:= t#1s; //對ton的輸入引數pt進行賦值

timer1 ( );//呼叫ton功能塊執行

變數4 := timer1 .eno; //將ton功能塊輸出引數eno的狀態輸出到變數4

變數5 := timer1 .q; //將ton功能塊輸出引數q的狀態輸出到變數5

變數6 := timer1 .et; //將ton功能塊輸出引數et的狀態輸出到變數6

st語言 陣列的常用方法 ST語言

st 語言學習心得 一 工程的簡介和建立工程 1.工程檔案的結 工程檔案的字尾名為 pro,在新工程中建立的第乙個程式結構單元 program organization unit 將被自動命名為 plc prg 這個程式結構單元就類似於 c語言中的主程式。在 plc prg 中可以呼叫各種函式及功能...

plcst語言程式設計教程 st語言程式設計例項講解

首先在早期的的程式設計中,並不支援st語言,之後的gx iec developer中雖然支援,但是鑑於gx iec developer只面向歐洲市場,這裡也不做討論。這裡主要討論的是gx developer中以及面對全球市場的gx works2,當然,gx works3因為使用方法和gx works...

三菱st語言程式設計例項 C語言程式設計例項39

素數又稱質數。所謂素數是指除了 1 和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被 2 16 的任一整數整除。思路1 因此判斷乙個整數m是否是素數,只需把 m 被 2 m 1 之間的每乙個整數去除,如果都不能被整除,那麼 m 就是乙個素數。思路2 另外判斷方法還可以簡化。m 不...