PLC入門程式設計
可程式設計邏輯控制器,或稱 PLC,大體上是一臺內建作業系統的微型計算機。該作業系統高度專業化,並針對即時處理傳入事件進行了最佳化,即在事件發生時進行處理。
PLC 具有輸入線,感測器連線到輸入線上以通知事件(例如溫度高於/低於某個水平、液位達到等),以及輸出線,執行器連線到輸出線上以影響或發出對傳入事件的反應(例如啟動發動機、開啟/關閉閥門等)。
該系統是使用者可程式設計的。它使用一種稱為“繼電器梯形圖”或 RLL(繼電器梯形圖邏輯)的語言。這種語言的名稱表明,早期由繼電器構建的控制邏輯正在被模擬。
其他一些使用的語言包括
- 順序功能圖
- 功能塊圖
- 結構化文字
- 指令表
- 連續功能圖
可程式設計邏輯控制器、PLC 或可程式設計控制器是一種數字計算機,用於自動化通常為工業的機電過程,例如工廠裝配線上的機械控制、遊樂設施或照明燈具。PLC 用於許多機器,許多行業。PLC 設計用於數字和模擬輸入和輸出的多種排列,擴充套件的溫度範圍,抗電噪聲能力以及抗振動和衝擊能力。控制機器操作的程式通常儲存在電池備份或非易失性儲存器中。PLC 是“硬”即時系統的示例,因為必須在有限的時間內根據輸入條件產生輸出結果,否則會導致意外操作。
在 PLC 之前,汽車製造的控制、排序和安全聯鎖邏輯主要由繼電器、凸輪定時器、鼓式排序器和專用閉環控制器組成。由於這些繼電器可能數量眾多,甚至達到數百甚至數千個,因此更新此類設施以進行年度車型變更的過程非常耗時且昂貴,因為電工需要單獨重新佈線繼電器以更改其操作特性。
數字計算機作為通用可程式設計裝置,很快就被應用於控制工業過程。早期的計算機需要專業的程式設計師,並且需要嚴格的執行環境控制,以控制溫度、清潔度和電源質量。將通用計算機用於過程控制需要保護計算機免受工廠環境的影響。工業控制計算機將具有幾個屬性:它可以承受車間環境,它可以以易於擴充套件的方式支援離散(位格式)輸入和輸出,它不需要多年的培訓即可使用,並且它允許對其操作進行監控。任何計算機系統的響應時間必須足夠快才能用於控制;所需的速度根據過程的性質而異。[1] 由於許多工業過程的時間尺度很容易被毫秒級響應時間解決,因此現代(快速、小型、可靠)電子產品極大地促進了構建可靠的控制器,尤其是因為效能可以與可靠性進行權衡。
1968 年,通用汽車海德拉馬蒂克(通用汽車的自動變速器部門)根據工程師 Edward R. Clark 撰寫的一份白皮書,釋出了一份關於電子替換基於硬連線繼電器系統的提案請求。獲勝的提案來自馬薩諸塞州貝德福德的貝德福德聯合公司。第一個 PLC,命名為 084,因為它是由貝德福德聯合公司的第八十四個專案,是其結果。[2] 貝德福德聯合公司成立了一家新公司,專門致力於開發、製造、銷售和維護此新產品:Modicon,代表 MOdular DIgital CONtroller。參與該專案的人之一是 Dick Morley,他被認為是 PLC 的“之父”。[3] Modicon 品牌於 1977 年出售給古爾德電子,後來被德國公司 AEG 收購,然後被法國施耐德電氣收購,後者是目前的擁有者。
在馬薩諸塞州北安多弗的 Modicon 總部現在展出了最早的 084 型號之一。通用汽車在該裝置連續執行近 20 年後退役時,將其贈送給 Modicon。Modicon 在其產品系列的末尾使用了 84 的綽號,直到 984 出現。
汽車行業仍然是 PLC 的最大使用者之一。
早期的 PLC 旨在取代繼電器邏輯系統。這些 PLC 使用“梯形圖”進行程式設計,這與繼電器邏輯的原理圖非常相似。選擇這種程式表示法是為了減少對現有技術人員的培訓要求。其他早期的 PLC 使用基於堆疊式邏輯求解器的某種形式的指令列表程式設計。
現代 PLC 可以透過多種方式進行程式設計,從繼電器派生的梯形圖到程式語言,例如專門改編的 BASIC 和 C 方言。另一種方法是狀態邏輯,這是一種非常高階的程式語言,旨在根據狀態轉換圖對 PLC 進行程式設計。
許多早期的 PLC 沒有配套的程式設計終端能夠圖形化地表示邏輯,因此邏輯反而表示為某種布林格式的一系列邏輯表示式,類似於布林代數。隨著程式設計終端的演變,梯形圖變得越來越普遍,原因如前所述,還因為它是一種用於機電控制面板的熟悉格式。存在狀態邏輯和功能塊(這類似於使用數字整合邏輯電路時邏輯的表示方式)等更新的格式,但它們仍然不如梯形圖流行。其主要原因是 PLC 以可預測且重複的順序解決邏輯,並且梯形圖允許程式設計師(編寫邏輯的人)比其他格式更容易地看到邏輯序列定時中的任何問題。
PLC 主要用於控制機械。為 PLC 編寫的程式基本上包含根據輸入條件和內部程式開啟和關閉輸出的指令。在這方面,它類似於標準計算機應用程式的使用方式。但是,一旦 PLC 程式被啟用,它通常會作為迴圈連續執行一段時間。基於 PLC 的系統不僅常用於控制簡單的裝置,例如車庫門開啟器,還用於解決複雜的應用場景,例如控制整個房屋,包括在特定時間開啟或關閉燈、監控定製的安全系統等。
最常見的是,PLC 位於工業環境中機器的內部。PLC 可以執行自動機器數年,幾乎無需人工干預。它們設計用於承受大多數惡劣環境。
PLC 的發展始於通用汽車提出的開發標準機器控制器的建議,以緩解與機電電路相關的問題。
當設計第一個電子機器控制時,它們使用繼電器來控制機器邏輯(即按下“啟動”以啟動機器,按下“停止”以停止機器)。一臺基本的機器可能需要一整面牆的繼電器來控制其所有功能。這種型別的控制有一些限制。
- 繼電器會失效。
- 繼電器通/斷時的延遲。
- 需要設計/佈線/排除故障一整面牆的繼電器。
PLC 克服了這些限制,它是一種機器控制操作。
PLC 變得越來越智慧化。近年來,PLC 已被整合到諸如計算機網路之類的電氣通訊中,例如,工業環境中的所有 PLC 都已連線到通常按層次結構組織的網路中。PLC 可以由控制中心或稱為 SCADA 的監控系統進行監控,並且通常連線到人機介面 (HMI)。存在許多基於序列通訊和乙太網通訊的專有網路型別。
PLC 是一種專用的機器控制計算機,旨在讀取來自各種感測器的數字和模擬輸入,執行使用者定義的邏輯程式,並將生成的數字和模擬輸出值寫入各種輸出元件,例如液壓和氣動執行器、指示燈、電磁線圈等。
雖然各個製造商的具體細節有所不同,但大多數 PLC 遵循“掃描週期”格式。PLC 從上到下、從左到右掃描程式。
開銷 - 開銷包括測試 I/O 模組完整性、驗證使用者程式邏輯是否已更改、計算機本身是否已鎖定(透過看門狗定時器)以及任何必要的通訊。通訊可能包括 PLC 程式設計師埠、遠端 I/O 機架和其他外部裝置(如 HMI(人機介面))上的流量。
- 輸入掃描
- 輸入卡上存在的數字和模擬值的“快照”被儲存到輸入儲存器表中。
- 邏輯執行
- 使用者程式逐個元素、逐個梯級地掃描,直到程式結束,並將結果值寫入輸出儲存器表。
- 診斷和通訊
- 在許多不同的學科中使用,邏輯、分析和經驗的使用方式各不相同,以確定“因果關係”。在系統工程和計算機科學中,它通常用於確定症狀、緩解措施和解決方案的原因。它與輸入模組通訊,並向輸出模組傳送任何不正確資料檔案變化的訊息。
- 輸出掃描
- 結果輸出儲存器表中的值被寫入輸出模組。
輸出掃描完成後,該過程會重複,直到 PLC 斷電。
完成掃描週期所需的時間,恰如其分地稱為“掃描週期時間”,範圍從數百毫秒(在較舊的 PLC 或程式非常複雜的 PLC 上)到幾毫秒(在較新的 PLC 或執行簡短、簡單程式碼的 PLC 上)。
請注意,特定術語和操作細節在 PLC 製造商之間差異很大,並且實現細節通常會隨著每一代產品而發展。
通常,最困難的部分(尤其對於沒有經驗的 PLC 程式設計師來說)是練習必要的思維體操,以保持從製造商到製造商的術語一致。
- 正邏輯(大多數 PLC 遵循此約定)
- 真 = 邏輯 1 = 輸入通電。
- 假 = 邏輯 0 = 輸入未通電。
- 負邏輯
- 真 = 邏輯 1 = 輸入未通電
- 假 = 邏輯 0 = 輸入通電。
- 常開
- (XIC) - 檢查是否閉合。
- 當硬體輸入(或內部繼電器等效項)通電時,此指令為真(邏輯 1)。
- 常閉
- (XIO) - 檢查是否開啟。
- 當硬體輸入(或內部繼電器等效項)未通電時,此指令為真(邏輯 1)。
- 輸出使能
- (OTE) - 輸出使能。
- 此指令模擬傳統繼電器線圈的動作。
- 定時器開啟
- (TON) - 定時器開啟。
- 通常,當輸入(使能)線變為真時,ON 定時器開始計時,如果使能線在達到設定值之前變為假,則復位。如果使能直到達到設定值,則定時器輸出變為真,並保持為真,直到輸入(使能)線變為假。
- 定時器關閉
- (TOF) - 定時器關閉。
- 通常,OFF 定時器在從真到假的轉換時開始計時,並在前序邏輯保持為假時繼續計時。當累積時間等於設定值時,TOF 輸出變為開啟,並保持開啟,直到梯級變為真。
- 保持定時器
- (RTO) - 保持定時器開啟。
- 此型別的定時器在輸入條件變為假時不會重置累積時間。
相反,它將上次累積的時間儲存在記憶體中,並且(如果/當輸入再次變為真時)從該點繼續計時。在 Allen-Bradley 結構中,此指令在達到設定值(預設)時間後變為真,並保持為真,直到 RES(復位)指令變為真以將其清除。
- 鎖存繼電器
- (OTL) - 輸出鎖存。
- (OTU) - 輸出解鎖。
通常,解鎖運算子優先。也就是說,如果解鎖指令為真,則繼電器輸出為假,即使鎖存指令也可能為真。在 Allen-Bradley 梯形圖邏輯中,鎖存和解鎖繼電器是單獨的運算子。
但是,其他梯形圖方言選擇了一個以 RS(復位-設定)觸發器 IC 晶片邏輯為模型的單一運算子。
- 跳轉到子程式
- (JSR) - 跳轉到子程式
- 為了從一個梯級跳轉到另一個梯級,使用 JSR(跳轉到子程式)命令。
維基百科
華夏公益教科書
作者:philip