一、ST語言介紹
發現網上PLC的ST編程資料極少。不過,道理也很簡單,因爲做PLC的基本都是電氣出身,梯形圖類似於繼電器邏輯,比較接近他們的習慣。。。ST屬於文本編程,符合程序員的習慣,兼職做plc的程序員極少,原因你們懂的。(我是個例外,無奈臉)。
由於我只用過三菱的PLC,下面的使用,全以三菱PLC爲依據。其他品牌的若有出入,勿噴,歡迎補充
下面是一個ST程序的例子:當X0接通時,打開Y0。
IF X0 THEN
Y0 := TRUE;
END_IF;
很像C語言對不對?不過呢,建議寫成下面這個樣子(更簡潔):
SET(X0,Y0);
set,rst都是函數,傳入參數就可以了,可以看幫助。(直接給答案吧:第一個參數時,觸發條件,第二個參數是操作對象)
二、T形圖
上面的例子這麼寫:
看到沒,其實差不多。但是呢,當代碼長了之後,就會發現:
1)梯形圖臃腫,一頁屏幕顯示不了多少語句
2)梯形圖只能用軟元件名,不能自己取一個有意義的名字。(可以設置標籤,但是隻是輸入時方便。寫完後,顯示不了標籤);
而ST語言則可以,而且鼠標停靠時,可以顯示註釋。
三、編程工具
T形圖:GX Developer、GX Works2
ST語言:GX Works2
建議使用GX Works2!因爲它比較新,支持多種編程方式:程序員風格的ST語言,電氣工程師風格的T形圖、流程圖風格的SFC、門電路風格的FBD。GX Developer是老古董了
四、開始
1.創建工程
2.創建標籤
標籤就是給軟元件取名字,有名字,編程才流暢啊,誰記得那麼多點編號啊。有全局標籤、局部標籤,顧名思意,相當於全局變量/局部變量嘛。
要先設置軟元件,回車就會自動幫你填好。然後再設置標籤名。
3.開始寫代碼
先寫一個最簡單的
4.設置通訊方式
5.寫入PLC
先編譯,編譯時會檢查程序是否有錯誤。(相當於T形圖中的“轉換”)
再寫入
接下來,再PLC上測試就好了。接通X0,看看Y0是不是會亮(PLC每個電位都有指示燈的)。
如果沒有PLC呢?或者怕寫入PLC把東西搞燒了咋辦呢?嗯,可以模擬嘛!見第6節-PLC模擬
6.PLC模擬
啓動之後,是下面這個樣子
我們把急停信號打開,看看報警輸出會不會打開
注意:
因爲這是模擬PLC,纔可以通過軟件改變輸入信號。如果是接PLC,輸入信號只能通過外部接線來改變。
五、補充一點發現
發現一:
1)將ST語言寫入PLC,然後再讀出來(頂部菜單-在線-PLC讀取),ST工程無法讀取,只有當工程是梯形圖工程時才能讀取。
2)而且,不管哪種編程方式寫的,寫到PLC,再讀出來的都是梯形圖。
好吧,原來不管是寫入時,是轉成T形圖再寫進入的。
發現二:
這樣的例子,讓Y0等於X0。
寫法1:
IF X0 THEN
Y0 :=TRUE;
ELSE
Y0 :=FALSE;
END_IF;
寫法2:
SET(X0,Y0);
RST(NOT X0,Y0);
寫法1雖然更直白,但是語句更多,寫入到PLC的梯形圖很複雜(如下圖)。所以建議用第二種風格
而第2種寫法,則是下面這樣的,這纔像是人寫的嘛。