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