1. 哪里用到PLC?
· 大家逛商場、坐地鐵經(jīng)常會乘坐自動扶梯。通常情況下,沒人乘梯的時候,扶梯會以一個低速節(jié)能方式運行。有人乘梯時,會自動平穩(wěn)過渡到正常速度運行。我有個同學(xué)在世界第一大自動扶梯生產(chǎn)商迅達,聽他說里面用的控制器就是PLC。
PLC廣泛應(yīng)用于鋼鐵、石油、化工、電力等工控領(lǐng)域,主要有以下原因:
· 高可靠性。工控領(lǐng)域環(huán)境相對較惡劣,同時還需要穩(wěn)定可靠的長時間運行,不能出錯,畢竟很多時候一旦出錯,那可是會造成重大損失的,不像消費電子領(lǐng)域,出了問題大不了重啟一下。
· 容易編程。對工程師的編程水平不需要那么高的要求,工程師可以專注在應(yīng)用領(lǐng)域,節(jié)約開發(fā)周期。
· 易于維護。模塊化的設(shè)計,出了問題相對容易維護。
2. PLC和單片機關(guān)系
· PLC其實是電氣工程師手中的MCU,當(dāng)然大部分的中小型的PLC本身就是由MCU來實現(xiàn)的。講到這里,會有很多小伙伴問,這倆家伙到底有什么區(qū)別?從研發(fā)的角度看,PLC是把MCU有限的資源根據(jù)一定的規(guī)范設(shè)計出來的,具體的講,MCU的IO資源對應(yīng)了PLC的輸入輸出,Core對應(yīng)了計算能力,RAM對應(yīng)了數(shù)據(jù)空間,F(xiàn)LASH對應(yīng)了程序空間。從用戶角度看,由于不同的PLC廠商都遵循了相同的規(guī)范,同時它的功能往往是其實現(xiàn)MCU的子集,所以學(xué)習(xí)起來比MCU更加容易。下圖中間黃色部分就是MCU,PLC是在其基礎(chǔ)上增加了輸入模塊、輸出模塊、電源模塊、編程器。
3. PLC的軟件實現(xiàn)
· 下面更多的會從軟件方案角度出發(fā)來探究PLC,主要還是針對嵌入式工程師,大家感興趣也可以自己上手去實現(xiàn)一個簡單的PLC。
3.1 IEC61131-3
講到PLC的軟件實現(xiàn),那就不得不提IEC61131-3,它是IEEE制定的用于PLC的編程系統(tǒng)標準,定義了以下五種編程語言:
指令表(ILD)
梯形圖(LD)
image-20210115222504169
功能塊(FBD)
結(jié)構(gòu)化文字(STL)
順序功能流程圖(SFC)
小型PLC由于功能簡單,而且步長受限,往往最常用的是指令表和梯形圖。STL類似C語言,經(jīng)常用于編寫功能塊,F(xiàn)BD/SFC更加直觀,經(jīng)常用于復(fù)雜邏輯的頂層設(shè)計。
3.2 PLC的軟件構(gòu)成
用過PLC的朋友都知道,通用的PLC都會提供一個PC端的軟件用來編輯用戶邏輯,比較常見的有西門子的STEP7,3S的Codesys,KW的MULTIPROG,rockwell的ISaGRAF。所以,一般情況下,PLC的軟件由兩部分組成:
(1) PC端的編程軟件,給用戶提供編程調(diào)試環(huán)境
(截圖代碼源于和利時G3小型PLC)
(2) 設(shè)備端的軟件,而設(shè)備端的軟件又分為runtime system(后稱RTS)和用戶程序(后稱POU)兩部分內(nèi)容。RTS是PLC設(shè)備端的核心,主要有以下幾個作用:
· 實現(xiàn)通訊接口:包括與PC端軟件通訊,與IO擴展模塊的通訊
· 存儲并執(zhí)行PC端生成的POU
· 執(zhí)行IO的輸入輸出
當(dāng)然,也有一些微型PLC自帶屏幕,無需PC軟件,可以直接在屏幕上編程,比如西門子的Logo系列。
圖片源自西門子官網(wǎng)
3.3 POU的分類
PLC的RTS從實現(xiàn)角度講,分為兩類:解釋型和編譯型,有點像學(xué)校里學(xué)習(xí)VB和VC的區(qū)別。編譯型PLC生成的POU是可以執(zhí)行的二進制代碼,解釋型PLC生成的POU是一個中間文件。
編譯型PLC
編譯型PLC支持的IEC61131-3編程軟件會根據(jù)用戶的編程語言生成PLC可以執(zhí)行的二進制機器代碼,其有以下幾個特點:
· 執(zhí)行效率高, 平均有效指令僅是解釋型PLC的1 /10
· 開發(fā)難度大,PC端開發(fā)環(huán)境除了需要解析IEC61131-3相關(guān)語法,還需要涉及編譯器、鏈接器、反編譯、Mempry地址分配等內(nèi)容
· 基于MCU開發(fā)PLC跨平臺難度大,受限于CPU指令集影響,不同廠商CPU Memory地址分配不同,開發(fā)環(huán)境很難做到適配所有不同CPU的編譯器
· 反編譯難度大
解釋型PLC
解釋型PLC支持的IEC61131-3編程軟件會根據(jù)用戶的編程語言生成中間文件,CPU會作為解析器來解析該中間文件,其有以下幾個特點:
· 開發(fā)容易, PC端開發(fā)環(huán)境僅需要解析IEC61131-3相關(guān)語法并生成中間文件即可
· 產(chǎn)品容易跨平臺,由于開發(fā)環(huán)境生成的中間文件并不直接在CPU上運行,也很容易做到地址無關(guān),所以很容易在不同內(nèi)核的CPU上運行
· 由于容易做到地址無關(guān),更容易做到無擾下裝
· 容易實現(xiàn)反編譯功能
如果覺得文章不錯,點個贊或者在看支持一下吧。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。