PLC编程之ST语言
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                PLC编程之ST语言
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                PLC編程之ST語言
- 1,IF結構:
- 2,FOR結構:
- 3,CASE結構:
- 4,WHILE結構:
ST語言是IEC61131-3中規(guī)定的5中標準語言之一,目前常用見品牌的PLC都支持這種語言(施耐德,AB可以直接選擇創(chuàng)建該類型的程序段或者功能塊,西門子的略微麻煩一點),ST語言的一個好處是移植性好,各家的ST語言基本都是類似的,所以如果有一個巨牛逼的算法,用ST語言實現(xiàn)是再好不過的了,這樣可以很容易的在多個品牌的PLC上移植,當前,有個前提條件是在這個算法中不要使用太多的系統(tǒng)功能塊,因為系統(tǒng)功能塊往往都是各個品牌比較個性的東西,會給移植帶來麻煩。另外,ST語言最適合寫一些復雜的算法,個人覺得尤其是對應一些數(shù)組的操作,用ST語言是最方便的,當然有梯形圖也能實現(xiàn),不過遠沒有用ST來的方便。ST語言的語法和pascal,C語言等都非常像,有時候各種語言用多了,就會混,所以這里將ST語言的幾種常用控制語句記錄下來。
基本語法參考鏈接:參考鏈接
1,IF結構:
基本語法是:
IF bool_expression_1 THEN<邏輯語句> ELSE IF bool_expression_2 THEN //這兩行可選<邏輯語句> ElSE //這兩行可選<邏輯語句> END_IF;舉例:
IF a>b THENflag:=1;ELSE IF a<b THENflag:=2;ELSEflag:=3;END_IF;說明:
   IF語句和梯形圖里的常開常閉指令類似,不太推薦用IF語句寫復雜邏輯,bool邏輯還是用梯形圖寫起來方便也直觀,除非對ST語言非常熱愛同時對梯形圖一點不懂。
2,FOR結構:
基本語法是:
FOR count:= initial_value TO final_value BY increment DO<循環(huán)體> END_FOR;舉例:
sum:=0; FOR i:= 2 TO 100 BY 2 DOsum:=sum+i; //計算0-100內偶數(shù)和,包含100 END_FOR;說明:
 BY可后面跟的步長是可選的,如果沒有默認為1.
 如果要提前退出循環(huán),可以在循環(huán)內部增加一個判斷條件,配合EXIT語句實現(xiàn),如下:
3,CASE結構:
基本語法:
CASE numeric_expression OF selector_1:<邏輯語句> …… selector_n:<邏輯語句> ELSE<邏輯語句> END_CASE;舉例:
CASE num OF1,2,3:a:=10;4:a:=20; elsea:=100; END_CASE;說明:
 CASE語句和其他高級語言中的CASE語句很類似,但是少了break,實際上這里的CASE只會執(zhí)行第一個滿足條件的語句,相當于在每一個選項里自動增加了一個break操作。
4,WHILE結構:
基本語法:
WHILE bool_expression DO<邏輯語句> END_WHILE;舉例:
i:=0; sum:=0; WHILE i=100 DOsum:=sum+i;i:=i+1; END_WHILE;基本結構就上面幾種,不同的軟件之間可能會有細小差別。
舉例:
 變量定義:
代碼:
IF start THEN num := 10;boy := 0;girl := 0;ageSum := 0;scoreSum := 0;FOR i:=1 to num BY 1 DOIF stu1.gender[i]=TRUE THENboy := boy + 1;ELSE girl := girl + 1;END_IF;ageSum := ageSum + stu1.age[i];scoreSum := scoreSum + INT_TO_UINT(stu1.score[i]);END_FOR; END_IF;aveAge := ageSum / num; aveScore := aveScore / num;END_PROGRAM總結
以上是生活随笔為你收集整理的PLC编程之ST语言的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: JRTPLib的编译步骤
- 下一篇: Java练习题——集合
