一、梯形圖LAD
梯形圖語言是從常用的繼電器與接觸器邏輯控製基礎上簡化了符號演變而來的,具有形象、直觀、實用等特點,電氣技術人員容易接受,是目前運用上最多的一種plc的編程語言。
在PLC程序圖中,左、右母線類似於繼電器與接觸器控製電源線,輸出線圈類似於負載,輸入觸點類似於按鈕。梯形圖由若幹階級構成,自上而下排列,每個階級起於左母線,經過觸點與線圈,止於右母線。圖1為一段典型的梯形圖語言編寫的程序。
圖1 梯形圖語言
上圖中,“常開點”I0.3、I1.2、I1.1及“常閉點”I0.2串聯後,與(yu) “常開點”M0.0並聯,然後為(wei) “線圈”Q4.2供電。在“繼電器與(yu) 接觸器“型電路中,用梯形圖編程會(hui) 顯得一目了然,猶如看電氣連接圖一般。
二、功能塊圖FBD
FBD用方框圖的形式來表示控製邏輯,類似於(yu) 數字邏輯門電路的編程語言。駝子在大學時,對數字電路情有獨鍾,因而後來對FBD語言有了天然的好感,工作中傾(qing) 向於(yu) 用FBD進行編程。FBD語言對於(yu) 有數字電路基礎的人來說很容易掌握,該編程語言用類似與(yu) 門、或門的方框來表示邏輯運算關(guan) 係,方框的左側(ce) 為(wei) 邏輯運算的輸入變量,右側(ce) 為(wei) 輸出變量;信號也是由左向右流向的,各個(ge) 功能方框之間可以串聯,也可以插入中間信號。在每個(ge) 最後輸出的前麵組合邏輯操作方框數是有限的,同一組邏輯運算的輸出結果的數目也要根據操作係統的不同而不同;經過擴展,不但可以表示各種簡單的邏輯操作,並且也可以表示複雜的運算、操作功能。圖1的梯形圖控製邏輯用FBD編程的話,如圖2所示。
圖2 FBD語言
圖2中,方框”&“為(wei) “與(yu) ”運算,“>="為(wei) 或運算,其真值表如下:
圖3 真值表
FBD語言的編程過程類似於(yu) 數字電路中用集成模塊搭建電路,每個(ge) 模塊都有其自己的功能,根據控製需要,選用合適的模塊,用“線”連起來即可。
三、語句表STL
STL是一種與(yu) 匯編語言類似的助記符編程語言,用一個(ge) 或幾個(ge) 容易記憶的字符來代表PLC的某種操作功能,每個(ge) 語句由地址(步序號)、操作碼(指令)和操作數(數據)三部分組成。語句表可以實現某些不易用梯形圖或功能塊圖來實現的功能。玩過單片機的小夥(huo) 伴再學習(xi) STL,可能會(hui) 有些優(you) 勢。圖4為(wei) 用STL編寫(xie) 的同一控製邏輯的程序。wWw.diangon.com
圖4 STL語言
其中,“A”為(wei) 與(yu) 運算,“AN”為(wei) 與(yu) 非運算,“O”為(wei) 或運算,“=”為(wei) 賦值運算。
用STL編程,需要對PLC的微觀邏輯結構有相當的了解,比如:需要了解各種存儲(chu) 模式,熟悉各種尋址方式,同時還要能熟練使用各種編程助記符。可以說,能夠熟練運用STL編程的小夥(huo) 伴,siemens的PLC一定玩的相當的溜。駝子我的STL編程仍處在初學者階段,猶記得去年用STL編寫(xie) 過一段光電測距儀(yi) 的接口程序,不知死了多少腦細胞,實在是不堪回首。
四、三種語言,該如何抉擇?
1、三種語言互相轉換
在STEP7中,可以通過菜單選擇,在三種語言中相互切換顯示。如圖5所示。
圖5 LAD、FBD、STL切換顯示
當然,通常LAD和FBD直接可以互相切換,LAD、FBD也可以轉換為(wei) STL語言,但STL卻不一定可以轉換為(wei) LAD或FBD語言。
2、三種語言的優(you) 劣比較
LAD是最常用的plc編程語言,其形象、直觀,稍懂電氣的人就能很快上手,而且目前市麵上幾乎所有的PLC都支持LAD編程,一通百通。其在“繼電器或接觸器型”邏輯功能中應用比較好,但隨著STEP7中集成的程序功能單元越來越多,LAD語言寫(xie) 出的程序多少有點“不倫(lun) 不類”。如圖6所示,程序單元“CMP>=D”在FBD程序中,以“塊”的形式顯示,與(yu) 其他單元一樣;但在LAD語言中,仍以“塊”的形式顯示,與(yu) 其它“觸點單元”放在一起顯得有點格格不入,雖然不影響邏輯,但看起來不工整。
圖6 FBD、LAD程序對比
FBD語言寫(xie) 出的程序,個(ge) 人認為(wei) 邏輯性較強,在編程過程中,可以根據被控對象的控製邏輯,“輕易”的捋清程序邏輯,編程就會(hui) 輕鬆許多。同時,STEP7提供了大量的、功能各異的“程序邏輯單元”,僅(jin) 需要簡單的拖動,就能實現編程。
STL接近於(yu) 匯編語言,起點較高,不容易掌握。但在一些需要對硬件操作的時候,比如:駝子曾經編寫(xie) 過的激光測距儀(yi) 的接口程序,就不得不用到STL語言了。