利用CAN-bus實現(xiàn)多臺PLC之間的遠(yuǎn)程配置與實時通信
摘要: 通過現(xiàn)場總線CAN-bus,可以將多達(dá)數(shù)十臺的中/小型PLC聯(lián)網(wǎng),構(gòu)成一個智能PLC網(wǎng)絡(luò);同時,主控制器可以與指定的遠(yuǎn)程PLC實現(xiàn)遠(yuǎn)程配置、控制通信,以及實現(xiàn)組態(tài)環(huán)境中的應(yīng)用。
關(guān)鍵詞: PLC;CAN-bus;CAN232MB轉(zhuǎn)換器;PC-CAN接口卡
PLC特點與PLC網(wǎng)絡(luò)
可編程控制器(PLC)是一種數(shù)字控制專用電子計算機,它使用了可修改的程序存儲器儲存指令,執(zhí)行諸如邏輯、順序、計時、計數(shù)與演算等功能,并通過模擬和數(shù)字輸入、輸出等功能組件,控制各種機械或工作程序。長期以來,PLC一直在各個行業(yè)的自動化控制領(lǐng)域得到廣泛的使用,為各種各樣的自動化設(shè)備提供了非常可靠的控制應(yīng)用。
PLC系統(tǒng)的工作任務(wù)相對簡單,且需要傳輸?shù)臄?shù)據(jù)量一般不會太大,所以常見的PLC系統(tǒng)為一層網(wǎng)絡(luò)結(jié)構(gòu)。PLC一般應(yīng)用在小型自控場所,比如設(shè)備的控制或少量模擬量的控制及聯(lián)鎖。小范圍的集中式控制環(huán)境是PLC發(fā)揮功能的最佳舞臺。
目前,只有少量型號的PLC集成有Ethernet或現(xiàn)場總線CAN-bus通訊接口,價格也較貴;一般常見PLC型號沒有隨本機集成通訊功能,不便于組建多臺PLC構(gòu)成的中型控制網(wǎng)絡(luò)。但是,隨著應(yīng)用技術(shù)的發(fā)展,經(jīng)常會出現(xiàn)一些應(yīng)用場合,在面積較大的范圍內(nèi),需要n臺PLC協(xié)同完成一個系統(tǒng)的綜合控制。此時,原有集中控制的單一PLC控制方案就顯得力所不及,PLC網(wǎng)絡(luò)的需求也應(yīng)運而生。
本文提出了一種基于現(xiàn)場總線CAN-bus的PLC網(wǎng)絡(luò)方案,能夠?qū)Χ嗯_聯(lián)網(wǎng)的PLC實現(xiàn)遠(yuǎn)程配置、數(shù)據(jù)通信,并能夠在投入較低硬件成本的基礎(chǔ)上,實現(xiàn)良好的系統(tǒng)運行性能。這個方案也充分發(fā)揮了現(xiàn)場總線CAN-bus的通信特點:實時、可靠、高速、遠(yuǎn)距離、易維護等。此方案是現(xiàn)場總線技術(shù)與集中控制技術(shù)的有機結(jié)合,聯(lián)網(wǎng)后的PLC網(wǎng)絡(luò)可以構(gòu)成一個性能優(yōu)秀的DCS系統(tǒng);用戶在同一個主控制器上可以遠(yuǎn)程監(jiān)控、改變?nèi)魏我慌_聯(lián)網(wǎng)PLC的程序或狀態(tài)。
PLC網(wǎng)絡(luò)的兩種方式
通用PLC一般都會提供1~2個RS-232或RS-485通訊端口,用于與其他控制設(shè)備或主控制器PC通訊;這些集成的通訊端口支持自行規(guī)定的通訊協(xié)議,或者Modbus協(xié)議,實現(xiàn)PLC設(shè)備的通訊與配置。構(gòu)建PLC網(wǎng)絡(luò),即利用PLC本機的這一類通訊端口,將其擴展成為能夠與多臺設(shè)備聯(lián)網(wǎng),實現(xiàn)多點通訊的現(xiàn)場總線CAN-bus通訊接口。
根據(jù)網(wǎng)絡(luò)中主控制器的不同,PLC網(wǎng)絡(luò)可以分為以下方式:
*多臺PLC聯(lián)網(wǎng),各PLC地位平等,可外擴HMI人機界面。
*多臺PLC聯(lián)網(wǎng),由1臺工控PC作為主控制器與操作界面。
多臺PLC串行聯(lián)網(wǎng)
通過一個RS-232/RS-485轉(zhuǎn)CAN-bus網(wǎng)關(guān)進行信號轉(zhuǎn)換,獨立PLC就具有了現(xiàn)場總線CAN-bus通訊接口。多臺具有現(xiàn)場總線CAN-bus通訊接口的PLC之間相互連接,即可以組建PLC網(wǎng)絡(luò)。
每一臺連接PLC單元的RS-232/RS-485轉(zhuǎn)CAN-bus網(wǎng)關(guān)都可以設(shè)定一個獨立的設(shè)備ID號,長度為11位或29位,用作為該PLC單元的地址。每一臺聯(lián)網(wǎng)的PLC單元在發(fā)送數(shù)據(jù)時,可設(shè)定在數(shù)據(jù)流中自動添加本地網(wǎng)關(guān)的設(shè)備ID號;同理,每一臺PLC單元在接收數(shù)據(jù)時,可設(shè)定由網(wǎng)關(guān)檢查數(shù)據(jù)流中的設(shè)備ID號,自動接收符合要求的數(shù)據(jù)。
通過上述方式組建的PLC網(wǎng)絡(luò),各臺PLC地位平等,任何一臺PLC均可以主動發(fā)起數(shù)據(jù)通訊,由CAN-bus網(wǎng)關(guān)起硬件自動仲裁作用,保障每一次通訊的數(shù)據(jù)不丟失;網(wǎng)絡(luò)中的PLC數(shù)量不受限制,數(shù)百、上千臺PLC都可以連接在同一現(xiàn)場總線CAN-bus網(wǎng)絡(luò)中。同時,這個PLC網(wǎng)絡(luò)中還可以連接具有CAN-bus通訊接口的HMI人機界面,或由其中一臺PLC通過其他的串行通訊端口連接HMI人機界面。
這種方式組建的PLC網(wǎng)絡(luò),與選擇集成CAN-bus通訊功能的PLC設(shè)備相比,具有更加靈活的系統(tǒng)擴展能力,也能夠獲得更好的性價比。
多臺PLC與工控PC并行聯(lián)網(wǎng)
工控PC能夠深入地配合PLC廠商提供的各種軟件,從而實現(xiàn)更多強大的功能,比如系統(tǒng)配置、人機界面、組態(tài)開發(fā)等,在PLC領(lǐng)域的作用也越來越不可或缺。通常,工控PC與單臺PLC通過1個串口連接通訊,實現(xiàn)各種擴展功能;但串口的通訊距離、節(jié)點數(shù)量都受到了串口本身的性能限制。比如,RS-232標(biāo)準(zhǔn)只可以實現(xiàn)“點-點”通訊,RS-485/422標(biāo)準(zhǔn)能夠?qū)崿F(xiàn)32個節(jié)點以內(nèi)的通訊,但通訊距離、抗干擾能力都比較弱,并不能夠滿足實際工業(yè)現(xiàn)場多臺PLC聯(lián)網(wǎng)應(yīng)用的需求。
工控PC內(nèi)置PC-CAN接口卡,可以建立起1條或者多條現(xiàn)場總線CAN-bus網(wǎng)絡(luò),并通過連接在CAN-bus網(wǎng)絡(luò)中的網(wǎng)關(guān)RS-232/RS-485轉(zhuǎn)CAN-bus轉(zhuǎn)換器,借助于CAN-bus網(wǎng)絡(luò)配套的“虛擬串口”軟件,建立多達(dá)2047個標(biāo)準(zhǔn)的串行通訊端口,從而連接多達(dá)2047條串行網(wǎng)絡(luò)。也就是說,可以在同1條普通雙絞線上連接多達(dá)2047臺PLC設(shè)備,工控PC訪問連接在這條CAN-bus網(wǎng)絡(luò)上的PLC設(shè)備,也與操作標(biāo)準(zhǔn)串口完全一致。這種方式可以充分發(fā)揮工控PC的作用,通訊效率也比較高。
通過工控PC組建多臺PLC網(wǎng)絡(luò)的系統(tǒng)結(jié)構(gòu)如圖 1所示。按這一種方式的建立PLC網(wǎng)絡(luò)的通訊效率較高,應(yīng)用靈活,是一般PLC網(wǎng)絡(luò)建設(shè)的主流方向。
圖 1 多臺PLC與工控PC并行聯(lián)網(wǎng)
PLC網(wǎng)絡(luò)的硬件組成與連接
建立PLC網(wǎng)絡(luò),除了實現(xiàn)具體功能的PLC設(shè)備,還需要一些建立現(xiàn)場總線CAN-bus網(wǎng)絡(luò)的設(shè)備,主要有RS-232轉(zhuǎn)CAN-bus網(wǎng)關(guān)、PC-CAN接口卡等。
RS-232轉(zhuǎn)CAN-bus網(wǎng)關(guān)
CAN232MB 轉(zhuǎn)換器是一種常用的RS-232轉(zhuǎn)CAN-bus網(wǎng)關(guān)。轉(zhuǎn)換器集成1個RS-232通道、1個CAN-bus 通道,可以很方便地連接到PLC設(shè)備的RS-232標(biāo)準(zhǔn)通訊端口,使PLC設(shè)備具有與現(xiàn)場總線CAN-bus網(wǎng)絡(luò)通訊的能力。轉(zhuǎn)換器提供三種工作模式——透明轉(zhuǎn)換、透明帶標(biāo)識轉(zhuǎn)換、Modbus協(xié)議轉(zhuǎn)換,分別可以支持不同通訊協(xié)議的PLC設(shè)備。通過PC配置軟件,CAN232MB轉(zhuǎn)換器可設(shè)定一個獨立的11位或29位設(shè)備ID號,可以用作為該網(wǎng)關(guān)所連接PLC設(shè)備的地址編號,并對往來串口的數(shù)據(jù)流加以標(biāo)注或識別。
對于只集成RS-485/422通訊端口的PLC設(shè)備,可以選擇RS-485轉(zhuǎn)CAN-bus網(wǎng)關(guān)。
PC-CAN接口卡
工控PC內(nèi)置或外接PC-CAN接口卡,可以令工控PC具有現(xiàn)場總線CAN-bus通訊接口,從而成為CAN-bus網(wǎng)絡(luò)中的一個主要功能節(jié)點。根據(jù)與PC連接方式的不同,PC-CAN接口卡可以分為很多種不同的類型,常見的型號有PCI-CAN接口卡、ISA-CAN接口卡、PC104-CAN接口卡、USBCAN接口卡、以太網(wǎng)轉(zhuǎn)CAN接口卡等。
PC-CAN接口卡一般都提供有CAN-bus測試工具、API開發(fā)例程、OPC服務(wù)器軟件等。配套的“虛擬串口服務(wù)器”軟件可以在不修改原有PC軟件的基礎(chǔ)上,開發(fā)基于串口通訊的軟件項目,比如PLC網(wǎng)絡(luò)。
通訊附件
通訊電纜是現(xiàn)場總線CAN-bus網(wǎng)絡(luò)的重要組件。通訊電纜的合理選擇,對CAN-bus網(wǎng)絡(luò)的通訊距離也有非常重要的影響。使用國標(biāo)AWG18(截面積為Φ0.75 mm2)的雙絞線作為CAN-bus網(wǎng)絡(luò)的通訊電纜,可以在1Km距離內(nèi)實現(xiàn)可靠通訊;使用截面積為Φ1.5 mm2的普通雙絞線,則可以達(dá)到6~7Km的通訊距離。
現(xiàn)場總線CAN-bus網(wǎng)絡(luò)在布線時,必須注意終端電阻的連接。主干線的最遠(yuǎn)兩端必須各連接一個120Ω的終端電阻。
另外,CAN-bus網(wǎng)絡(luò)的分支線不宜過長,當(dāng)網(wǎng)絡(luò)通訊速率為20Kbps時,建議每一條連接PLC設(shè)備的分支線長度小于100米。
應(yīng)用實例
在一個實際的油田控制系統(tǒng)中,需要由超過32臺PLC組建一個中型PLC網(wǎng)絡(luò)。每一臺PLC用于控制一套工作井站的現(xiàn)場設(shè)備。選用PLC型號為OMRON公司CPM2A系列,不支持現(xiàn)場總線CAN-bus網(wǎng)絡(luò),但集成有1個RS-232通訊端口。單臺PLC之間的最大距離超過了10Km距離,但這個油田控制系統(tǒng)要求能夠在同一個主控制器上,對每一臺現(xiàn)場的PLC實時監(jiān)控。由于各個現(xiàn)場PLC工作點距離很遠(yuǎn),主控制器PC不可能實現(xiàn)每一臺PLC設(shè)備的單獨電纜連接。因此,將各臺PLC設(shè)備通過現(xiàn)場總線CAN-bus網(wǎng)絡(luò)連接,組建一個地區(qū)范圍內(nèi)的PLC網(wǎng)絡(luò),從而實現(xiàn)PLC遠(yuǎn)程維護、數(shù)據(jù)實時監(jiān)控,既能夠大大提高系統(tǒng)的管理效率,也可以有效地降低網(wǎng)絡(luò)建設(shè)成本。
井站的PLC設(shè)備集成有1個RS-232串行通訊端口,通過CAN232MB轉(zhuǎn)換器連接到現(xiàn)場總線CAN-bus網(wǎng)絡(luò)。主控制器PC內(nèi)置1塊PC-CAN接口卡,型號為PCI-9840接口卡,可以使PC成為CAN-bus網(wǎng)絡(luò)中的節(jié)點,能夠同時管理4路物理獨立的CAN-bus網(wǎng)絡(luò)。
CAN-bus網(wǎng)絡(luò)
現(xiàn)場總線CAN-bus網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)一般使用直線結(jié)構(gòu)。所有CAN-bus設(shè)備節(jié)點通過短分支線連接至CAN-bus網(wǎng)絡(luò)的主干線;短分支線不宜過長,一般必須小于30米。如果因網(wǎng)絡(luò)布線、地理環(huán)境等因素,需要改變CAN-bus網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),則可以通過CANbridge網(wǎng)橋或CANHub集線器。
在CAN-bus網(wǎng)絡(luò)布線中,必須注意終端電阻的連接。CAN-bus主干線的最遠(yuǎn)兩端必須各端接一個120Ω的終端電阻;主干線上的其它任何CAN-bus節(jié)點則不用連接終端電阻。
設(shè)定為5Kbps波特率時,使用截面積為Φ1.5 mm2的雙絞線,至少可以達(dá)到6~7Km的通訊距離。通常,隨著通訊距離的加長,需要適當(dāng)加大通訊電纜線的截面積。
當(dāng)網(wǎng)絡(luò)連接設(shè)備數(shù)量大于110或距離超過10Km時,在合理位置安裝CANbridge網(wǎng)橋,就可以使CAN-bus網(wǎng)絡(luò)延長1倍的通訊距離,并可增加連接220個的CAN-bus節(jié)點數(shù)目。
PLC串行通訊協(xié)議
OMRON公司CPM系列中小型PLC的串行通訊使用“命令-應(yīng)答”通信方式,工控PC可通過對串口編程的方式與CPM系列PLC實現(xiàn)數(shù)據(jù)通信。PC與PLC實現(xiàn)一次數(shù)據(jù)交換的過程,即傳輸?shù)拿詈蛻?yīng)答之?dāng)?shù)據(jù)總和稱為一幀,一幀最多可包含131個數(shù)據(jù)字符。
OMRON公司PLC采用HOSTLINK通訊協(xié)議。
HOSTLINK命令幀格式
PC機按HOSTLINK命令幀的格式,向PLC發(fā)送命令。HOSTLINK命令幀見圖2。
圖2 OMRON公司PLC命令幀格式
HOSTLINK命令幀的規(guī)定如下:
*@符號必須置于每個命令的開頭;
*節(jié)點號,用來辨識每一臺PLC的節(jié)點地址;
*讀/寫,指明PLC的哪個寄存器單元,例讀寫IR/SR區(qū)時它的識別碼設(shè)置分別為RR和WR,讀寫DM區(qū)分別為RD和WD。
*FCS,設(shè)置兩字符的幀檢查順序碼,是一個轉(zhuǎn)換成2個ASCII字符的8位數(shù)據(jù),這8位數(shù)據(jù)為從幀開始到正文結(jié)束(即FCS之前)所有數(shù)據(jù)執(zhí)行“異或”操作的結(jié)果。
*終止符設(shè)置“*”和回車兩字符,表示命令結(jié)束。
HOSTLINK命令幀可以有最多131個字符長。一個等于或大于132字符的命令必須分成若干幀。命令分段,使用回車定界符(CHR $(13))。
HOSTLINK應(yīng)答幀格式
PLC對于接收到的命令幀,都會給予數(shù)據(jù)響應(yīng),發(fā)送HOSTLINK應(yīng)答幀,格式見圖3。
圖3 OMRON公司PLC應(yīng)答幀格式
識別碼、正文取決于PLC接收到的上位機聯(lián)結(jié)命令,結(jié)束字表示命令完成的狀態(tài)(即是否有錯誤發(fā)生),當(dāng)應(yīng)答幀的長度超過132字符,它必須分成若干幀。
結(jié)束字是應(yīng)答幀中表示PLC應(yīng)答的信息。結(jié)束字代碼為00表示正常結(jié)束,13表示FCS錯誤,14表示格式錯誤,15表示入口碼數(shù)據(jù)錯誤,18表示幀長度錯誤,A3表示傳輸數(shù)據(jù)時因FCS錯誤引起終止,A8表示傳輸數(shù)據(jù)時,因幀長度錯誤引起終止。
PLC與網(wǎng)關(guān)CAN232MB的連接
CPM系列PLC集成1個RS-232串行通訊端口,采用DB9孔型插座;CAN232MB轉(zhuǎn)換器集成1個RS-232串行通訊端口,也采用DB9孔型插座。
串行通信電纜一端連接CAN232MB轉(zhuǎn)換器,另一端連接CPM系列PLC。注意,通訊電纜的兩個DB9端口不可互換。通訊電纜的連接示意如圖 4所示。
圖4 PLC通信電纜的引腳連接
PLC與網(wǎng)關(guān)CAN485MB的連接
OMRON公司的CXP軟件可以在一個RS-485標(biāo)準(zhǔn)的串行通訊端口上連接多達(dá)32臺CPM2A系列PLC設(shè)備;每臺PLC設(shè)備都需要預(yù)先設(shè)定一個唯一的5位地址編號,用于在RS-485網(wǎng)絡(luò)中區(qū)分各臺PLC設(shè)備。
RS-485標(biāo)準(zhǔn)是一種多點網(wǎng)絡(luò)通訊方式。通過網(wǎng)關(guān)CAN485MB轉(zhuǎn)換器,可以建立一個符合RS-485標(biāo)準(zhǔn)的虛擬串口。CPM2A系列PLC可以借助于RS-232轉(zhuǎn)RS-485電平轉(zhuǎn)換器,得到一個RS-485標(biāo)準(zhǔn)的通訊端口。多臺預(yù)設(shè)地址編號的PLC可以通過RS-485串行通訊方式聯(lián)網(wǎng),并與CAN485MB轉(zhuǎn)換器組成1~32個節(jié)點、1Km距離范圍內(nèi)、RS-485標(biāo)準(zhǔn)的PLC網(wǎng)絡(luò)。
按上述方式,整個地區(qū)的PLC網(wǎng)絡(luò)可以由多個網(wǎng)關(guān)CAN485MB轉(zhuǎn)換器構(gòu)建面成,而每一個網(wǎng)關(guān)CAN485MB轉(zhuǎn)換器都可以組建一個RS-485標(biāo)準(zhǔn)的小型PLC網(wǎng)絡(luò)構(gòu)成。這樣,就可以形成大型的星形PLC 網(wǎng)絡(luò)。
PLC網(wǎng)絡(luò)的組態(tài)開發(fā)
通過網(wǎng)關(guān)CAN232MB/CAN485MB轉(zhuǎn)換器可以建立多個虛擬串口,用于連接PLC設(shè)備。虛擬串口的操作方式與PC標(biāo)準(zhǔn)串口完全相同。
通常的組態(tài)環(huán)境(例如昆侖通態(tài)MCGS、組態(tài)王KingView等)都可以按串行通訊設(shè)備驅(qū)動的方式支持OMRON公司PLC設(shè)備的開發(fā)。如果組態(tài)環(huán)境可以支持按多串口方式擴展的多臺PLC設(shè)備,同樣也可以支持基于現(xiàn)場總線CAN-bus網(wǎng)絡(luò)的虛擬串口方式構(gòu)建的串行PLC網(wǎng)絡(luò)。
需要注意的是,串行PLC網(wǎng)絡(luò)基于現(xiàn)場總線CAN-bus而構(gòu)建,每一條命令幀/響應(yīng)幀都需要一定的傳輸時間。例如,當(dāng)CAN-bus總線的通訊波特率設(shè)置為10Kbps時,傳輸30字節(jié)的命令幀至少約需60mS傳輸時間;加上響應(yīng)幀的延遲,PLC網(wǎng)絡(luò)中的任何一臺PLC與工控PC需要約150mS才能夠執(zhí)行1次完整的通訊過程。這一時間即單臺PLC通訊周期。按此參數(shù)計算,當(dāng)使用1條現(xiàn)場總線CAN-bus網(wǎng)絡(luò),建立有30臺PLC設(shè)備構(gòu)成的PLC網(wǎng)絡(luò)時,工控PC主動查詢一遍所有PLC設(shè)備的狀態(tài),大概需要花費約30倍的單臺PLC通訊周期。應(yīng)用組態(tài)環(huán)境開發(fā)PLC網(wǎng)絡(luò)時,用戶必須重視網(wǎng)絡(luò)的通訊延遲因素,并在組態(tài)環(huán)境中設(shè)置相關(guān)的定時參數(shù);否則,可能會導(dǎo)致組態(tài)環(huán)境不能夠正常運行。
我們可以通過一些方法來提高PLC網(wǎng)絡(luò)的響應(yīng)速度。解決方法之一是增加CAN-bus網(wǎng)絡(luò)的數(shù)量,由此減少每一個CAN-bus網(wǎng)絡(luò)中的PLC設(shè)備數(shù)量;另外,提高CAN-bus網(wǎng)絡(luò)的通訊波特率也可以獲得相同的效果,其代價是會縮短CAN-bus網(wǎng)絡(luò)的通訊距離。
結(jié)語
本文介紹的實例“通過現(xiàn)場總線CAN-bus網(wǎng)絡(luò)對多臺PLC進行聯(lián)網(wǎng)控制”已經(jīng)通過了實際項目的運行考驗,現(xiàn)場作業(yè)的網(wǎng)絡(luò)長度達(dá)到7Km以上。在系統(tǒng)的實際運行中,現(xiàn)場總線CAN-bus的穩(wěn)定性、抗干擾能力得到充分的體現(xiàn)。在這個工程項目中,不需要改變原有的PC控制平臺,可以將現(xiàn)有控制設(shè)備無縫地嵌入先進的現(xiàn)場總線網(wǎng)絡(luò),構(gòu)成新一代的DCS分布式控制系統(tǒng)。方案以較低的成本投入,換取了現(xiàn)場自動化網(wǎng)絡(luò)的大跨度提升。
參考文獻:
1. Bosch, CAN specification, Version 2.0, 1991, Robert Bosch GmbH
2. 《CiA DS 201-207 V1.1, CAN Application Layer for Industrial Applications》,CiA , 1996
3. 夏繼強等,現(xiàn)場總線工業(yè)控制網(wǎng)絡(luò)技術(shù),北航出版社,2005
4. 構(gòu)建CAN-bus網(wǎng)絡(luò)中的虛擬串口,周立功公司,2005
數(shù)字通信相關(guān)文章:數(shù)字通信原理
通信相關(guān)文章:通信原理
雙絞線傳輸器相關(guān)文章:雙絞線傳輸器原理
評論