PLC編程入門:梯形圖

梯形圖(LAD)是PLC編程的最佳可視化語言,它看起來非常類似於繼電器電路圖,因此如果 你對繼電器控制和電子電路有所瞭解的話,那麼學起來會非常容易!

在這個教程中,我們將學習關於使用梯形圖進行PLC編程的有關知識。現在,讓我們開始吧!

什麼是梯形圖

梯形圖是一種PLC編程語言,也被稱爲梯形邏輯(Ladder Logic)。之所以稱爲梯形圖,是因爲 這種程序由一條條水平線構成,看起來很像梯子。

梯形圖是爲電氣工程師發明的,它是一種圖形化的編程語言,這意味着編程的過程不是採用 文本,而是組合各種不同的圖形符號,由於目標用戶是電氣工程師,因此採用的符號非常類似於 電路符號,以便於電氣工程師理解。

梯形圖主要用於位邏輯操作,其規範有PLCOpen負責制定,因此梯形圖是標準化的PLC編程語言, 該標準爲IEC 61131-3。

如何閱讀梯形圖

梯形圖和電路圖的一個區別在於編制繪製方法不同。梯形圖通常從左到右、從上到下編制, 原因在於:

1.更容易讀圖

我們的眼睛自然地從左向右讀圖,然後繼續到下一行,就像你閱讀的時候一樣。

2.易於在計算機上編制

當在計算機上編制梯形圖時,你可以一次編制一行。當繪製出越來越多的行時,它們將疊加在一起, 看起來就像一個梯子。查看一個行數衆多的梯形圖的最佳方式,就是沿着屏幕上下滾動。

3.執行的順序

最後一個原因在執行的順序,也就是PLC運行梯形圖的先後順序,更確切的說,就是梯形圖中 的指令如何依次執行:PLC總是從梯形圖頂部開始,然後依次向下執行。

梯形圖看起來非常像電路圖。大多數人也是這樣開始學習編制梯形邏輯圖的。 但是還是有一些不同之處,主要的差異在於:

  • PLC每次執行梯形圖的一行,然後才繼續下一行
  • 電氣系統則是許多回路同時激活

瞭解了這些關鍵的區別,現在讓我們開始學習梯形邏輯。

梯形圖基礎

創建梯形圖時,你首先看到的就是兩條豎線,就是在這兩條豎線之間進行梯形圖的編制,其中 每一條水平線被稱爲一個Rung(橫線):

梯形邏輯符號就放置在這些水平線上,正如你在上圖中看到的,我在每一個水平線上標記了數字, 以便於理解PLC是如何執行梯形邏輯的。你可能聽說過PLC掃描時間或掃描週期,簡單地說,PLC首先 掃描其輸入,然後執行程序,最後設置輸出。

但是PLC如何執行我們的梯形邏輯?

一次一條水平線。

這可能是梯形邏輯的最重要的一條規則:PLC一次只能執行一條水平線,然後纔是下一條。實際上, PLC只能一次執行一個邏輯符號。

編寫梯形邏輯

梯形邏輯中的每個符號都是一個指令,初看起來這相當令人困惑。但是別擔心,我將用簡單的例子 加以解釋。讓我給你一個簡單的實例,在這個例子當中將引入兩個梯形邏輯符號。

那麼,這些符號或指令到底是什麼?

它們是基本的邏輯指令,讓你可以創建一小段邏輯,也就是你的PLC程序。如果你仔細看下面的 示例,可以看到兩個指令(符號):

閉路檢查指令

第一個指令被稱爲閉路檢查,指令的符號看起來是這樣:

這是一個條件指令,意思是說這個指令用來檢查某個條件是否滿足,例如檢查某個數據位是否 處於ON的狀態。

閉路檢查指令用來檢查某個地址的特定位,在上圖中指的是一個數字輸入的特定位,它也可以是 內存位,甚至是輸出位。

閉路檢查指令也被稱爲常開指令,基本上它類似於電路中的常開觸點,因此可以對應於一個點動開關。

需要指出的是,每個閉路檢查指令必須要設置PLC中的一個地址。

輸入和輸出都是PLC中的內存點位。在上面的示例中,閉路判斷指令設置地址I0.0作爲條件, 這個地址屬於PLC的第一個輸入。

其工作原理如下:

當PLC掃描週期開始,PLC將首先檢查所有輸入的狀態,然後將輸入狀態(0或1)寫入內存中, 如果輸入是LOW,那麼對應的內存位置位0,如果輸入是HIGH,則對應的內存位置爲1.

輸出線圈指令

每個指令本身在PLC內存中也有個位置,PLC會將指令的結果存入。要了解PLC使用結果做什麼,讓我們 看下一個指令:

輸出線圈指令用來打開或關閉一個數據位。

正如你看到的,該符號位於水平線的右側,意思是(同一水平線上)之前的指令作爲該指令的條件。 在我們的示例中,之前的指令就是閉路檢查指令。

讓我們檢查下該指令的最終結果,來了解其工作過程:

  1. PLC 掃描 | 輸入 -> I0 字節
  2. 程序執行 | I0.0 -> Xic結果

在這裏插入圖片描述

在上面的動畫中,你會看到PLC首先掃描所有的輸入,並將輸入狀態存入內存。一個內存 字節是彼此相鄰的8位。

一旦PLC保存了所有輸入的狀態,程序將開始運行。第一個要執行的指令是閉路檢查指令, 該指令的結果與內存位狀態一致 —— 這也是該指令被稱爲常開指令的原因 —— 在正常狀態 (內存位爲0),觸點將保持常開,結果將爲0,但是如果內存位爲1,觸點將閉合,結果也 變爲1。

最後,讓我們看這條線的輸出:

  1. XiC結果 -> 輸出線圈
  2. 輸出線圈 -> 輸出字節

現在,輸出線圈指令使用了前序指令的結果作爲條件。這被稱爲RLO(邏輯操作結果)。邏輯操作 結果保存在PLC內存中的特定位置。在西門子S7系列PLC中,這個位置被稱爲狀態字。

在PLC術語中,一個WORD是16位,或2個字節。

輸出線圈指令很簡單,它只是將其結果設置爲與條件相同的值。

在PLC中所有的數字輸出也映射到內存地址。我們將其稱爲輸出位,因此地址Q0對應Q0.0 - Q0.7. 輸出線圈指令的結果將被寫入內存位Q0.0。

當PLC執行完整個程序,它將設置輸出。每個輸出被設置爲與輸出內存位一致的狀態。

掃描週期這個概念非常重要,當你在編制梯形邏輯時一定要記住。否則你的程序可能會有 奇怪的行爲。我們將在下一個示例中展示這一點,同時引入3個新的梯形邏輯指令。

輸出鎖存

在前面的示例中,我們學會了如何讀取數字輸入的狀態,並將數字輸出設置爲同樣的狀態。 需要指出數字輸入是一個暫態按鈕,因爲它內部有個彈簧,這意味着按鈕只有在你一直按下 時纔會保持激活。

上面的梯形圖可以正常工作,不過你可能注意到,只有輸入激活時輸出纔會激活。因此你不 得不用手指一直按住按鈕,才能讓輸出保持激活。但是想一下,如果輸出控制的是一個通風系統 裏的風機,那麼要求操作員一直按着按鈕就很不合理了。我們需要一個辦法來保持輸出 激活,即使操作員已經釋放了按鈕。

在梯形邏輯中,有兩種辦法實現這一點:

如果你熟悉電路,就會發現這很類似,這杯稱爲鎖存(Latching)或者自我保持(self holding)。

這個名稱揭示了其工作原理:線圈簡單的維持自己前一個掃描週期的狀態。讓我們單步分析一下:

當PLC第一次運行這個梯形邏輯程序時(按下按鈕時),輸出將被激活,就像前一個例子一樣。 有趣的事情發生在後續運行邏輯的時候。因爲這是一個暫態按鈕,它不會一直激活。依賴於 PLC程序的運行總時長,按鈕可能在第二次、第三次或第四次運行時不再激活。

讓我們進入按鈕釋放之後的第一個掃描週期。

輸出還處於激活狀態,因爲上一個掃描週期按鈕被按下。這時PLC將再次讀取輸入並存入對應 的內存位。內存位I0.0”這次將存入“0”。因此I0.0的閉路判斷指令結果爲false或“0”。

但是你可以看到,還有另一個並行的閉路判斷指令,不過該指令的條件是輸出內存位,因此 其結果爲true或“1”,因爲這是輸出還處於激活狀態。只要輸出內存位是“1”,輸出就會激活, 它就像自己的條件一樣。

自保持指令與其他指令並聯的原因在於構造一個OR條件,在這個示例當中,I0.0或Q0.0中 的一個爲true都會激活輸出。

開路檢查指令

你剛學習瞭如何編制一個有用的PLC梯形圖程序。一個激活輸出的按鈕。在我們的示例中,這個 可能是連接到一個風機的觸點,輸出可以自保持。

但是這個程序有個問題,怎麼關掉風機?

我們希望能夠再次關掉風機。最簡單的方法是添加一個停機按鈕,該按鈕將連接到PLC的第二 個輸入,因此其內存地址爲I0.1。

問題是,我們爲停機按鈕使用什麼指令?更重要的,我們應當將其放在梯形圖的哪裏?

第一個問題的答案是另一個梯形邏輯指令:開路檢查指令,它看起來如下:

這個指令和閉路檢查指令的工作方式恰恰相反,其結果是條件的反轉。這意味着,如果條件 爲“0”,那麼結果爲“1”,反之亦然。

如果你考慮一下,就會發現這恰恰就是我們希望停機按鈕做的事情。要關閉輸出線圈,我們 必須給出條件“0”。

現在是第二個問題,在哪裏放置這個指令?

我們需要將其放在自鎖指令之後,或者說,串聯起來。否則當停機按鈕按下時,還是會輸出“1”。

現在,梯形邏輯如下:

你可以看到開路檢查指令將其條件的反轉結果傳遞給輸出線圈。要再次激活輸出,就需要 再次按下啓動按鈕。

在上面的示例中,我使用了一個開路判斷指令作爲停機按鈕。這不是好的實踐!

我們最終遵循最佳實踐,修改後的梯形圖如下:

雖然我們修改了指令,梯形圖的運行沒有變化,這是因爲我們同樣修改了物理停機按鈕的 工作方式。

原文鏈接:http://blog.hubwiz.com/2018/12/10/plc-programming-ladder-logic/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章