官术网_书友最值得收藏!

任務1.3 學習PLC的編程語言

任務引入

與個人計算機相比,PLC的硬件、軟件的體系結構都是封閉的而不是開放的。各個廠家PLC的編程語言和指令系統的功能和表達方式也不一致,有的甚至有相當大的差異,因此各個廠家的PLC互不兼容。本書以西門子S7-200機型為主,其常用的編程語言有哪幾種?

任務分析

完成本節任務,需要詳細了解可編程序控制器的編程語言的相關知識。

相關知識

目前,PLC提供的編程語言通常有以下幾種:梯形圖、語句表、功能圖和功能塊圖。各種類型的PLC基本上都同時具備兩種以上的編程語言。其實,同時使用梯形圖和語句表的占大多數,而梯形圖與語句表在表達方式上,不同廠家、不同型號的PLC還有些差異,使用符號也不盡相同,配置的功能也各有千秋。

1.梯形圖(LAD)

梯形圖(LADDER)是一種圖形編程語言,它是從接觸器-繼電器控制系統原理圖的基礎上演變而來的。PLC的梯形圖與接觸器-繼電器控制系統原理圖的基本思想是一致的,它沿用繼電器的觸點、線圈、串并聯等術語和圖形符號,同時還增加了一些繼電器-接觸器控制系統中沒有的特殊功能符號。對于熟悉接觸器-繼電器控制系統線路的技術人員來說,很容易被接受,且不需要學習專門的計算機知識。因此,在PLC應用中,梯形圖是最基本的、最普通的編程語言。需要說明的是,這種編程方式只能用編程軟件通過計算機下載到PLC當中去。如果使用編程器編程還需要將梯形圖轉變為語句表用助記符將程序輸入PLC中。

PLC的梯形圖雖然是從接觸器-繼電器控制系統線路圖發展而來的,但與其又有一些本質的區別。

1)PLC的梯形圖中的某些元件沿用了“繼電器”這一名稱,例如:輸入繼電器、輸出繼電器和中間繼電器等。但是,這些繼電器并不是實際存在的物理繼電器,而是“軟繼電器”,也可以說是存儲器。它們中的每一個都與PLC的用戶程序存儲器中的數據存儲區的元件映像寄存器中的一個具體存儲單元相對應。如果某個存儲單元為“1”狀態,則表示與這個存儲單元相對應的那個繼電器的“線圈斷電”。反之,如果某個存儲單元為“0”狀態,則表示與這個存儲單元相對應的那個繼電器的“線圈得電”。這樣,就能根據數據存儲區中某個存儲單元的狀態時“1”還是“0”判斷與之對應的那個繼電器的線圈是否“得電”。

2)PLC梯形圖中仍然保留了動合觸點和動斷觸點的名稱,這些觸點的接通或斷開,取決于其線圈是否得電(這是繼電器、接觸器的最基本的工作原理)。在梯形圖中,在程序掃描到某個繼電器的觸點時,就去檢查器線圈是否“得電”,即去檢查與之對應的那個存儲單元的狀態是“1”還是“0”。如果該觸點是動合觸點,就取它的原狀態,如果該觸點是動斷觸點,就取它的反狀態。

3)PLC梯形圖中的各種繼電器觸點的串并聯相連,實質上是在程序執行時將這些基本單元的狀態一次取出來,進行“邏輯與”“邏輯或”等邏輯運算。而計算機對進行這些邏輯運算的次數是沒有限制的,因此可以在編輯程序時無限次使用這些觸點。特別需要注意的是,在梯形圖程序中同一個繼電器的線圈一般只能使用一次,但其觸點形式及使用次數是隨意的。

4)圖1-3是典型的梯形圖。左右兩條垂直的線稱為母線。母線之間是觸點的邏輯連線和線圈的輸出,不過多數PLC現在只保留左母線了。

梯形圖的一個關鍵概念是“能流”(POWER FLOW),這只是概念上的“能流”。在圖1-3中,把左邊的母線假想為電源中的“相線”。如果有“能流”從左至右流向線圈,則線圈被激勵?!澳芰鳌笨梢酝ㄟ^被激勵(ON)的常開觸點和未被激勵(OFF)的常閉觸點自左向右流,如圖1-3中,當I0.0、I0.1、I0.2觸點都接通后,線圈Q0.0才能接通(被激勵),只要其中一個觸點不接通,線圈就不會接通;而I0.1、I0.2、I0.3觸點中任何一個接通,線圈Q0.1就被激勵。

要強調指出的是引入“能流”的概念,僅僅是為了和繼電器-接觸器控制系統相比較,使用戶對梯形圖有一個深入的理解,其實“能流”在梯形圖中是不存在的。

圖1-3 梯形圖示例

在梯形圖中,觸點代表邏輯“輸入”條件,如開關、按鈕和外部條件等;線圈通常代表邏輯“輸出”結果,它可驅動像接觸器線圈、電磁閥、燈及警鈴等直流或交流負載。

5)在繼電器控制電路中,各個并聯電路是同時加電壓,并行工作的,由于實際元器件動作的機械慣性可能會出現觸點競爭現象。在梯形圖中,各個編程元件的動作順序是按掃描順序依次執行的,或者說是按串行的方式工作的,在執行梯形圖程序時,是自上而下,從左到右,串行掃描,不會發生觸點競爭現象。

下面舉兩個例子說明,表面上看起來完全一樣的繼電器控制電路圖與梯形圖,它們產生的效果可能不完全相同,甚至某些作用完全相反。圖1-4和圖1-5給出了兩組結構上完全一樣的繼電器控制電路圖與梯形圖,但最后的控制結果卻不相同。

圖1-4 接觸器-繼電器控制原理圖與梯形圖

a)接觸器-繼電器控制原理圖 b)梯形圖

圖1-5 接觸器-繼電器控制原理圖與梯形圖

a)接觸器-繼電器控制原理圖 b)梯形圖

在圖1-4a中,當SB1工作后,線圈KM1得電并自保持,且為線圈KM3得電創造條件。接著SB2動作,使線圈KM2得電。KM2的動斷觸點先切斷KM1線圈,KM1的動合觸點隨之斷開,此時雖然KM2的動合點閉合,但KM1已斷開,使KM3總不能得電,更不用說自保持了。再來分析圖1-4b,當I0.0動作后輸出Q0.0“得電”并自保持,在I0.1動作后,輸出Q0.1“得電”,本掃描周期內不會再改變輸出Q0.0,當程序掃描到下面的Q0.0、Q0.1動合觸點時,因其線圈此時均已“得電”,它們均處于接通狀態。這樣,輸出Q0.2能“得電”且自保持。待到下個掃描周期時,雖然Q0.0因為Q0.1線圈得電而被復位,動合點斷開,但因輸出Q0.2已自保持,所以輸出Q0.2不會受到影響,始終處在閉合狀態,達到了控制目的。

下面再來分析圖1-5的情況,這是一個電動機單向連續與點動運行的控制電路,繼電器控制電路圖能實現但梯形圖不能實現的例子,在圖1-5a中,當按下SB1時,KM線圈得電,它的動合觸點隨之閉合自鎖,實現電動機連續運行;當按下SB2時,線圈KM的自保持線路斷開,實現電動機的點動運行。再看圖1-5b,當I0.0為“1”時,同樣能形成連續運行狀態。當I0.1為“1”時,就形成不了點動連續運行狀態。具體分析一下,當I0.1為“1”時,它的常開觸點為“1”,常閉觸點為“0”的自保持電路,當松開SB2時,由于PLC的周期性逐行掃描的特點,就會形成SB2的常開觸點是斷開了,但常閉觸點閉合,而此時此刻的KM常開觸點取上一個周期KM線圈的狀態,也即閉合狀態。這樣一來就仍能形成KM“得電”,使KM不能隨著SB2的斷開而斷開,從而也就形成不了點動的功能。

梯形圖語言直觀形象,易于理解,是編程者首選的一種編程語言。

2.語句表(STL)

語句表(Statements List)就是用助記符號來表達PLC的各種功能,類似于計算機的匯編語言,但比匯編語言通俗易懂,它是PLC最基本的編程語言之一。所謂語句表編程,是用一個或幾個容易記憶的字符代表PLC的某種操作功能。這種編程語言可使用簡易編程器編程,尤其是在未開發計算機軟件時,就只能將已編好的梯形圖程序轉換成語句表的形式,再通過簡易編程器將用戶程序逐條輸入到PLC的存儲器中進行編程。通常每條指令由操作碼(指令)、地址和操作數(數據或器件編號)3部分組成。語句編程設備簡單,連接范圍不受限制,但比較抽象,一般與梯形圖語言配合使用,互為補充。目前,由于計算機技術和通信技術的發展,編程器已經淡出,人們基本使用編程軟件在計算機上編程,然后下載到PLC,大多數PLC編程軟件都有梯形圖與語句表編程之間轉換的功能。

3.順序功能圖(SFC)

順序功能圖(Sequence Function Chart)編程方式采用畫工藝流程圖的方法編程,也稱為功能圖,只要在每一個工藝方框的輸入和輸出端標上特定的符號即可。對于在工廠中搞工業設計的人來說,這種方法編程不需要很多的電氣知識,非常方便。

不少PLC的新產品采用了順序功能圖,提供了用于SFC編程的指令,有的公司已生產出系列的、可供不同PLC使用的SFC編輯器,原來幾十頁的梯形圖程序,SFC只用一頁就可以完成。另外,由于這種編程語言最適合從事工藝設計的工程技術人員,因此它是一種效果顯著、深受歡迎、前途光明的編程語言。目前國際電工委員會(IEC)也正在實施并發展這種語言的編程標準。

4.功能塊圖(FBD)

這是一種由邏輯功能符號組成的功能塊圖(Function Block Diagrams)來表達命令的編程語言。這種編程語言基本上沿用半導體邏輯電路的邏輯框圖,對每一種功能都是用一個運算方塊,其運算功能由方塊內的符號確定,常用“與”“或”“非”等邏輯功能表達控制邏輯。和功能方塊有關的輸入畫在方塊的左邊,輸出畫在方塊的右邊。利用FBD可以查到像普通邏輯門圖形的邏輯盒指令,它沒有梯形圖編輯器中的觸點和線圈,但有與之功能等同的邏輯塊指令,這些指令是作為塊指令出現的,程序邏輯由這些塊指令之間的連接方式決定。采用這種編程語言,不僅能簡單明確地表達邏輯功能,還能通過對各種功能塊的組合,實現加法、乘法、比較等高級功能,所以它也是一種功能較強的圖形編輯語言。在大多數編程軟件里,可以同梯形圖、語句表之間進行轉換。對于熟悉邏輯電路和具有邏輯代數基礎的人來說,是非常方便的。圖1-6為實現電動機起、停、??刂频?種編程語言的表達方式圖。

圖1-6 起、保、??刂频?種編程語言表達方式圖

a)梯形圖語言 b)語句表語言 c)功能塊圖語言

5.高級語言

在一些大型PLC中,為了完成一些較為復雜的控制,采用功能很強的微處理器和大容量存儲器,將邏輯控制、模擬控制、數值計算與通信功能結合在一起,配備BASIC、C等計算機語言,從而可像使用通用計算機那樣進行結構化編程,使PLC具有更強的功能。

由于不同廠家不同系列、不同型號的PLC的編程語言各不相同,所以不同廠家的PLC是互不兼容的,但基本的邏輯思想與編程原理是一致的。

西門子S7-200機型的PLC為用戶提供了語句表、梯形圖及功能塊圖3種編程語言,以適應用戶編程的需要。

任務實施

請者自行設計完成該任務的步驟。

任務總結

通過完成可編程序控制器的常用編程語言統計任務,就能夠明確PLC的常用編程語言及西門子S7-200 PLC的3種常用編程語言。

主站蜘蛛池模板: 庆安县| 屯留县| 金山区| 依兰县| 鱼台县| 永宁县| 呼伦贝尔市| 甘谷县| 大厂| 永德县| 岑巩县| 高陵县| 靖边县| 泸水县| 甘泉县| 晴隆县| 旺苍县| 登封市| 集安市| 湖州市| 青川县| 吉林省| 巴林左旗| 肇源县| 天门市| 伊宁市| 泰和县| 外汇| 淮南市| 揭东县| 甘泉县| 洪湖市| 南丹县| 横山县| 措美县| 嘉善县| 吉林省| 巫山县| 洮南市| 保山市| 宝丰县|