4. 啟動(dòng)服務(wù)器,如圖 14 所示。
在“服務(wù)”菜單中啟動(dòng)虛擬串口服務(wù)器,就可以使已映射的虛擬串口能夠正常通訊。
虛擬串口服務(wù)器的啟動(dòng)參數(shù)可由用戶(hù)設(shè)置,方便系統(tǒng)的日常管理與運(yùn)行,如圖 15 所示。

圖 15 設(shè)置服務(wù)器的系統(tǒng)參數(shù)
4.2.3 虛擬串口的測(cè)試
PC 運(yùn)行虛擬串口服務(wù)器之后,便在設(shè)備列表中多出了一組虛擬串口;虛擬串口的編號(hào)一般會(huì)從COM3 開(kāi)始,具體編號(hào)會(huì)取決于PC 機(jī)的硬件配置。
可以使用超級(jí)終端軟件,對(duì)新建的虛擬串口進(jìn)行通信測(cè)試。將1 臺(tái)測(cè)試PC(標(biāo)識(shí)A 機(jī))的標(biāo)準(zhǔn)串口連接到CAN232MB 轉(zhuǎn)換器的RS-232 端口,在另1 臺(tái)運(yùn)行虛擬串口服務(wù)器軟件的測(cè)試PC(標(biāo)識(shí)B 機(jī))建立一條CAN-bus 網(wǎng)絡(luò)并連接到CAN232MB 轉(zhuǎn)換器的CAN 端口。
首先,設(shè)置并啟動(dòng)虛擬串口服務(wù)器。遠(yuǎn)程的虛擬串口按以下步驟進(jìn)行測(cè)試:
第一步,A 機(jī)和B 機(jī)都打開(kāi)超級(jí)終端軟件,設(shè)置所連接的串口屬性,例如將通訊波特率設(shè)為9600bps、數(shù)據(jù)位8、無(wú)奇偶校驗(yàn)、停止位1、無(wú)流控制;這些參數(shù)要與CAN232MB轉(zhuǎn)換器的配置參數(shù)一致。
第二步,串行發(fā)送字符測(cè)試。在A 機(jī)的超級(jí)終端窗口中鍵入一些字符,在B 機(jī)的超級(jí)終端窗口中將會(huì)看到這些字符的出現(xiàn)。反之,在B 機(jī)的超級(jí)終端窗口中鍵入一些字符,在A機(jī)的超級(jí)終端窗口中也會(huì)出現(xiàn)同樣內(nèi)容的字符。
第三步,發(fā)送文件測(cè)試。點(diǎn)擊A 機(jī)的超級(jí)終端軟件菜單“傳送→發(fā)送文件…”,即可以發(fā)送指定的文件到B 機(jī),文件保存在B 機(jī)的默認(rèn)目錄中;反之亦然。
有關(guān)虛擬串口的詳細(xì)說(shuō)明,可以參考虛擬串口服務(wù)器的軟件幫助及技術(shù)文檔《構(gòu)建CAN-bus 網(wǎng)絡(luò)中的虛擬串口》。
5 應(yīng)用實(shí)例
在一個(gè)實(shí)際的油田控制系統(tǒng)中,需要由超過(guò)32 臺(tái)PLC 組建一個(gè)中型PLC 網(wǎng)絡(luò)。每一臺(tái)PLC 用于控制一套工作井站的現(xiàn)場(chǎng)設(shè)備。選用PLC 型號(hào)為OMRON 公司CPM2A 系列,不支持現(xiàn)場(chǎng)總線(xiàn)CAN-bus 網(wǎng)絡(luò),但集成有1 個(gè)RS-232 通訊端口。單臺(tái)PLC 之間的最大距離超過(guò)了10Km 距離,但這個(gè)油田控制系統(tǒng)要求能夠在同一個(gè)主控制器上,對(duì)每一臺(tái)現(xiàn)場(chǎng)的PLC 實(shí)時(shí)監(jiān)控。由于各個(gè)現(xiàn)場(chǎng)PLC 工作點(diǎn)距離很遠(yuǎn),主控制器PC 不可能實(shí)現(xiàn)每一臺(tái)PLC設(shè)備的單獨(dú)電纜連接。因此,將各臺(tái)PLC 設(shè)備通過(guò)現(xiàn)場(chǎng)總線(xiàn)CAN-bus 網(wǎng)絡(luò)連接,組建一個(gè)地區(qū)范圍內(nèi)的PLC 網(wǎng)絡(luò),從而實(shí)現(xiàn)PLC 遠(yuǎn)程維護(hù)、數(shù)據(jù)實(shí)時(shí)監(jiān)控,既能夠大大提高系統(tǒng)的管理效率,也可以有效地降低網(wǎng)絡(luò)建設(shè)成本。
井站的PLC 設(shè)備集成有1 個(gè)RS-232 串行通訊端口,通過(guò)CAN232MB 轉(zhuǎn)換器連接到現(xiàn)場(chǎng)總線(xiàn)CAN-bus 網(wǎng)絡(luò)。主控制器PC 內(nèi)置1 塊PC-CAN 接口卡,型號(hào)為PCI-9840 接口卡,可以使PC 成為CAN-bus 網(wǎng)絡(luò)中的節(jié)點(diǎn),能夠同時(shí)管理4 路物理獨(dú)立的CAN-bus 網(wǎng)絡(luò)。
5.1 CAN-bus 網(wǎng)絡(luò)的相關(guān)概念
現(xiàn)場(chǎng)總線(xiàn)CAN-bus 網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)一般使用直線(xiàn)結(jié)構(gòu),如圖 18 所示。所有CAN-bus設(shè)備節(jié)點(diǎn)通過(guò)短分支線(xiàn)連接至CAN-bus 網(wǎng)絡(luò)的主干線(xiàn);短分支線(xiàn)不宜過(guò)長(zhǎng),一般必須小于3~6 米。如果因網(wǎng)絡(luò)布線(xiàn)、地理環(huán)境等因素,需要改變CAN-bus 網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),則可以通過(guò)CANbridge 網(wǎng)橋或CANHub 集線(xiàn)器。
在CAN-bus 網(wǎng)絡(luò)布線(xiàn)中,必須注意終端電阻的連接。CAN-bus 主干線(xiàn)的最遠(yuǎn)兩端必須各端接一個(gè)120Ω 的終端電阻;主干線(xiàn)上的其它任何CAN-bus 節(jié)點(diǎn)則不用連接終端電阻。
設(shè)定為5Kbps 波特率時(shí),使用截面積為Φ1.5 mm2 的普通雙絞線(xiàn),CAN-bus 總線(xiàn)至少可以達(dá)到6~7Km 的通訊距離。通常,隨著通訊距離的加長(zhǎng),需要適當(dāng)加大通訊電纜線(xiàn)的截面積。通信距離與波特率的關(guān)系如圖 19 所示。
隨著網(wǎng)絡(luò)中CAN-bus 節(jié)點(diǎn)數(shù)量的增加,最大通訊距離會(huì)有所降低,同一條CAN-bus 網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)量達(dá)到100 個(gè)時(shí),最大通訊距離至少會(huì)減少20%左右。通過(guò)在CAN-bus 網(wǎng)絡(luò)的合理位置安裝CANbridge 網(wǎng)橋,就可以使CAN-bus 網(wǎng)絡(luò)延長(zhǎng)1 倍的通訊距離,并可以增加連接1 倍的CAN-bus 節(jié)點(diǎn)數(shù)目。
5.2 PLC 串行通訊協(xié)議
OMRON 公司CPM 系列中小型PLC 的串行通訊使用“命令-應(yīng)答”通信方式,工控PC 可通過(guò)對(duì)串口編程的方式與CPM 系列PLC 實(shí)現(xiàn)數(shù)據(jù)通信。PC 與PLC 實(shí)現(xiàn)一次數(shù)據(jù)交換的過(guò)程,即傳輸?shù)拿詈蛻?yīng)答之?dāng)?shù)據(jù)總和稱(chēng)為一幀,一幀最多可包含131 個(gè)數(shù)據(jù)字符。OMRON 公司PLC 采用HOSTbbbb 通訊協(xié)議。
5.2.1 HOSTbbbb 命令幀格式
PC 機(jī)遵循HOSTbbbb 命令幀的格式,向PLC 發(fā)送命令。HOSTbbbb 命令幀如圖 20所示。
HOSTbbbb 命令幀的規(guī)定如下:
●@符號(hào)必須置于每個(gè)命令的開(kāi)頭;
●節(jié)點(diǎn)號(hào),用來(lái)辨識(shí)每一臺(tái)PLC 的節(jié)點(diǎn)地址;
●讀/寫(xiě),指明PLC 的哪個(gè)寄存器單元,例讀寫(xiě)IR/SR 區(qū)時(shí)它的識(shí)別碼設(shè)置分別為RR和WR,讀寫(xiě)DM 區(qū)分別為RD 和WD。
●FCS,設(shè)置兩字符的幀檢查順序碼,是一個(gè)轉(zhuǎn)換成2 個(gè)ASCII 字符的8 位數(shù)據(jù),這8 位數(shù)據(jù)為從幀開(kāi)始到正文結(jié)束(即FCS 之前)所有數(shù)據(jù)執(zhí)行“異或”操作的結(jié)果。
●終止符設(shè)置“*”和回車(chē)兩字符,表示命令結(jié)束。
HOSTbbbb 命令幀可以有最多131 個(gè)字符長(zhǎng)。一個(gè)等于或大于132 字符的命令必須分成若干幀。命令分段,使用回車(chē)定界符(CHR $(13))。
5.2.2 HOSTbbbb 應(yīng)答幀格式
PLC 對(duì)于接收到的正確命令幀,都會(huì)給予數(shù)據(jù)響應(yīng),發(fā)送HOSTbbbb 應(yīng)答幀,格式如圖 21 所示。
識(shí)別碼、正文取決于PLC 接收到的上位機(jī)聯(lián)結(jié)命令,結(jié)束字表示命令完成的狀態(tài)(即是否有錯(cuò)誤發(fā)生),當(dāng)應(yīng)答幀的長(zhǎng)度超過(guò)132 字符,它必須分成若干幀。
結(jié)束字是應(yīng)答幀中表示PLC 應(yīng)答的信息。例結(jié)束字代碼為00 表示正常結(jié)束,13 表示FCS 錯(cuò)誤,14 表示格式錯(cuò)誤,15 表示入口碼數(shù)據(jù)錯(cuò)誤,18 表示幀長(zhǎng)度錯(cuò)誤,A3 表示傳輸數(shù)據(jù)時(shí)因FCS 錯(cuò)誤引起終止,A8 表示傳輸數(shù)據(jù)時(shí),因幀長(zhǎng)度錯(cuò)誤引起終止。
5.3 PLC 與網(wǎng)關(guān)CAN232MB 的連接
CPM 系列PLC 集成1 個(gè)RS-232 串行通訊端口,采用DB9 孔型插座;CAN232MB 轉(zhuǎn)換器集成1 個(gè)RS-232 串行通訊端口,也采用DB9 孔型插座。
按下面的連接方法,可以快速制作CPM 系列PLC 與網(wǎng)關(guān)CAN232MB 之間連接的通信電纜;此通訊電纜也可用于PC 與OMRON 公司PLC 之間通訊。制作材料包括兩個(gè)DB9 針型直腳連接器,3 根細(xì)導(dǎo)線(xiàn),少量焊接工具。

圖 22 DB9 針連接器和引腳定義
串行通信電纜一端連接CAN232MB 轉(zhuǎn)換器,另一端連接CPM 系列PLC。注意,通訊電纜的兩個(gè)DB9 端口不可互換。通訊電纜的連接示意如圖 23 所示。
5.4 CXP 軟件與PLC 通訊
CXP 軟件是OMRON 公司CPM 系列PLC 的集成開(kāi)發(fā)環(huán)境。這里,將通過(guò)CXP 軟件與PLC 的串行通訊功能,對(duì)建立的虛擬串口進(jìn)行測(cè)試,驗(yàn)證PLC 網(wǎng)絡(luò)的可靠性。
打開(kāi)CX-Programmer 軟件,選擇一個(gè)通信端口。例如,選擇剛才由虛擬串口服務(wù)器軟件建立的串口COM3,如圖 24 所示。



圖 24 在CXP 軟件中選擇PLC 通信端口
點(diǎn)擊“PLC”菜單的“自動(dòng)在線(xiàn)”項(xiàng)目,CXP 軟件會(huì)自動(dòng)查找對(duì)應(yīng)的PLC 類(lèi)型。一旦通過(guò)COM3 與PLC 成功建立了通訊連接,就可以對(duì)PLC 進(jìn)行編程、擦除、調(diào)試等操作;這與使用標(biāo)準(zhǔn)串口COM1、COM2 的操作方式完全一致,如圖 25 所示。
5.5 PLC 與網(wǎng)關(guān)CAN485MB 的連接
OMRON 公司的CXP 軟件可以在一個(gè)RS-485 標(biāo)準(zhǔn)的串行通訊端口上連接多達(dá)32 臺(tái)CPM2A 系列PLC 設(shè)備;每臺(tái)PLC 設(shè)備都需要預(yù)先設(shè)定一個(gè)唯一的5 位地址編號(hào),用于在RS-485 網(wǎng)絡(luò)中區(qū)分各臺(tái)PLC 設(shè)備。
RS-485 標(biāo)準(zhǔn)是一種多點(diǎn)網(wǎng)絡(luò)通訊方式。按照前面描述的方式,通過(guò)網(wǎng)關(guān)CAN485MB 轉(zhuǎn)換器,可以建立一個(gè)符合RS-485 標(biāo)準(zhǔn)的虛擬串口。CPM2A 系列PLC 可以借助于RS-232轉(zhuǎn)RS-485 電平轉(zhuǎn)換器,得到一個(gè)RS-485 標(biāo)準(zhǔn)的通訊端口。多臺(tái)預(yù)設(shè)地址編號(hào)的PLC 可以通過(guò)RS-485 串行通訊方式聯(lián)網(wǎng),并與CAN485MB 轉(zhuǎn)換器組成1~32 個(gè)節(jié)點(diǎn)、1Km 距離范圍內(nèi)、RS-485 標(biāo)準(zhǔn)的PLC 網(wǎng)絡(luò)。網(wǎng)絡(luò)結(jié)構(gòu)如圖 26 所示。
按上述方式,整個(gè)地區(qū)的PLC 網(wǎng)絡(luò)可以由多個(gè)網(wǎng)關(guān)CAN485MB 轉(zhuǎn)換器構(gòu)建面成,而每一個(gè)網(wǎng)關(guān)CAN485MB 轉(zhuǎn)換器都可以組建一個(gè)RS-485 標(biāo)準(zhǔn)的小型PLC 網(wǎng)絡(luò)構(gòu)成。這樣,就可以形成大型的星形PLC 網(wǎng)絡(luò)。
5.6 PLC 網(wǎng)絡(luò)的組態(tài)開(kāi)發(fā)
通過(guò)網(wǎng)關(guān)CAN232MB 轉(zhuǎn)換器或CAN485MB 轉(zhuǎn)換器可以建立多個(gè)虛擬串口,用于連接PLC 設(shè)備。虛擬串口的操作方式與PC 標(biāo)準(zhǔn)串口完全相同。
通常的組態(tài)環(huán)境(例如昆侖通態(tài)MCGS、組態(tài)王KingView 等)都可以按串行通訊設(shè)備驅(qū)動(dòng)的方式支持OMRON 公司PLC 設(shè)備的開(kāi)發(fā)。如果組態(tài)環(huán)境可以支持按多串口方式擴(kuò)展的多臺(tái)PLC 設(shè)備,同樣也可以支持基于現(xiàn)場(chǎng)總線(xiàn)CAN-bus 網(wǎng)絡(luò)的虛擬串口方式構(gòu)建的串行PLC 網(wǎng)絡(luò)。
需要注意的是,串行PLC 網(wǎng)絡(luò)基于現(xiàn)場(chǎng)總線(xiàn)CAN-bus 而構(gòu)建,每一條命令幀/響應(yīng)幀都需要一定的傳輸時(shí)間。例如,當(dāng)CAN-bus 總線(xiàn)的通訊波特率設(shè)置為10Kbps 時(shí),傳輸30 字節(jié)的命令幀至少約需60mS 傳輸時(shí)間;加上響應(yīng)幀的延遲,PLC 網(wǎng)絡(luò)中的任何一臺(tái)PLC 與工控PC 需要約150mS 才能夠執(zhí)行1 次完整的通訊過(guò)程。這一時(shí)間即單臺(tái)PLC 通訊周期。按此參數(shù)計(jì)算,當(dāng)使用1 條現(xiàn)場(chǎng)總線(xiàn)CAN-bus 網(wǎng)絡(luò),建立有30 臺(tái)PLC 設(shè)備構(gòu)成的PLC 網(wǎng)絡(luò)時(shí),工控PC 主動(dòng)查詢(xún)一遍所有PLC 設(shè)備的狀態(tài),大概需要花費(fèi)約30 倍的單臺(tái)PLC 通訊周期。應(yīng)用組態(tài)環(huán)境開(kāi)發(fā)PLC 網(wǎng)絡(luò)時(shí),用戶(hù)必須重視網(wǎng)絡(luò)的通訊延遲因素,并在組態(tài)環(huán)境中設(shè)置相關(guān)的定時(shí)參數(shù);否則,可能會(huì)導(dǎo)致組態(tài)環(huán)境不能夠正常運(yùn)行。
我們可以通過(guò)一些方法來(lái)提高PLC 網(wǎng)絡(luò)的響應(yīng)速度。解決方法之一是增加CAN-bus 網(wǎng)絡(luò)的數(shù)量,由此減少每一個(gè)CAN-bus 網(wǎng)絡(luò)中的PLC 設(shè)備數(shù)量;另外,提高CAN-bus 網(wǎng)絡(luò)的通訊波特率也可以獲得相同的效果,它的代價(jià)是會(huì)縮短CAN-bus 網(wǎng)絡(luò)的通訊距離。
6 結(jié)束語(yǔ)
本文介紹的實(shí)例“通過(guò)現(xiàn)場(chǎng)總線(xiàn)CAN-bus 網(wǎng)絡(luò)對(duì)多臺(tái)PLC 進(jìn)行聯(lián)網(wǎng)控制”已經(jīng)通過(guò)了實(shí)際項(xiàng)目的運(yùn)行考驗(yàn),現(xiàn)場(chǎng)作業(yè)的網(wǎng)絡(luò)長(zhǎng)度達(dá)到7Km 以上。在系統(tǒng)的實(shí)際運(yùn)行中,現(xiàn)場(chǎng)總線(xiàn)CAN-bus 的穩(wěn)定性、抗干擾能力得到充分的體現(xiàn)。在這個(gè)工程項(xiàng)目中,不需要改變?cè)械腜C 控制平臺(tái),可以將現(xiàn)有控制設(shè)備無(wú)縫地嵌入先進(jìn)的現(xiàn)場(chǎng)總線(xiàn)網(wǎng)絡(luò),構(gòu)成新一代的DCS分布式控制系統(tǒng)。方案以較低的成本投入,換取了現(xiàn)場(chǎng)自動(dòng)化網(wǎng)絡(luò)的大跨度提升。在煤礦遠(yuǎn)傳、電力通信、石油采集等行業(yè),該方案都有著廣泛的市場(chǎng),較高的應(yīng)用價(jià)值。


















