基于CAN總線(xiàn)的計算機與PLC通信
1 引言
本文引用地址:http://dyxdggzs.com/article/264338.htm在現代工業(yè)中,PLC 之間或PLC 與計算機之間的通信聯(lián)網(wǎng)應用日益廣泛。PLC 的聯(lián)網(wǎng)功能越來(lái)越強。以歐姆龍CP1、CJ1 和CS1 系列PLC 為例,配合使用各種模塊,可以支持工業(yè)以太網(wǎng)、Controller Link 等現場(chǎng)總線(xiàn)通信聯(lián)網(wǎng)功能。但是,應用廣泛的CPM1A、CPM2A等中小型PLC 的通信聯(lián)網(wǎng)一般只能采用工業(yè)總線(xiàn)的物理層形式(如RS232 或RS485),通信的穩定性與抗干擾能力并不是很強。
本文選用歐姆龍的CPM2A 機型,配合使用RS232-CAN 適配器,實(shí)現了計算機與PLC 的通信聯(lián)網(wǎng),方法簡(jiǎn)單, 實(shí)用性強。
2 CAN 總線(xiàn)簡(jiǎn)介
CAN 總線(xiàn)由德國B(niǎo)OSCH 公司首先提出來(lái)的,CAN總線(xiàn)是目前工業(yè)界廣泛應用的總線(xiàn)。
CAN 控制器工作于多主站方式,網(wǎng)絡(luò )中的各節點(diǎn)都可根據總線(xiàn)訪(fǎng)問(wèn)優(yōu)先權采用無(wú)損結構的逐位仲裁的方式競爭向總線(xiàn)發(fā)送數據。CAN 協(xié)議廢除了傳統的站地址編碼, 可使網(wǎng)絡(luò )內的節點(diǎn)個(gè)數在理論上不受限制, 通信實(shí)時(shí)性強, 提高系統的可靠性和系統的靈活性。
報文采用短幀格式,傳輸時(shí)間短,受干擾概率低, 保證了數據出錯率極低。CAN 的每幀信息都有CRC 校驗及其他檢錯措施,具有極好的檢錯效果。CAN 的通訊介質(zhì)可以為雙絞線(xiàn)、同軸電纜或光纖,選擇靈活。CAN 節點(diǎn)在錯誤幀的情況下具有自動(dòng)關(guān)閉輸出功能,而總線(xiàn)上其它節點(diǎn)的操作不受影響。CAN 總線(xiàn)通過(guò)兩個(gè)輸出端CANH 和CANL 與物理總線(xiàn)相連,不會(huì )出現損壞某些節點(diǎn)的現象。CAN 節點(diǎn)在錯誤嚴重的情況下具有自動(dòng)關(guān)閉輸出功能, 以使總線(xiàn)上其他節點(diǎn)的操作不受影響, 不會(huì )出現象“死鎖”狀態(tài)。
3 通信結構
通信系統組成如圖1 所示,上位計算機運行監控軟件與OMRON 專(zhuān)用的PLC 編程及配置軟件,并將計算機串口連接到RS232-CAN 適配器,配置為CAN 總線(xiàn)。下位PLC 采用多臺OMRON 的CPM2A 型PLC,將CPM2A的串口連接RS232-CAN 適配器,實(shí)現CAN 總線(xiàn)通信。

圖1 通信系統結構
通過(guò)適配器,計算機與PLC 成為CAN 總線(xiàn)的節點(diǎn)。
節點(diǎn)之間通過(guò)雙絞屏蔽線(xiàn)進(jìn)行總線(xiàn)式連接,首尾節點(diǎn)需要接120R 的匹配電阻。上位計算機可以通過(guò)CAN 總線(xiàn)實(shí)時(shí)監控PLC 系統的運行。
此方案是現場(chǎng)總線(xiàn)技術(shù)與集中控制技術(shù)的有機結合,聯(lián)網(wǎng)后的PLC 網(wǎng)絡(luò )可以構成一個(gè)DCS 系統。用戶(hù)在計算機上可以遠程監控、配置任何一臺PLC 的程序或狀態(tài)。并能夠在投入較低硬件成本的基礎上,實(shí)現良好的系統運行性能。這個(gè)方案充分發(fā)揮了CAN 總線(xiàn)的通信特點(diǎn): 實(shí)時(shí)、可靠、高速、遠距離、易維護等。
使用RS232-CAN 適配器后,通信距離擴大到5 公里(9600bps 時(shí)),組網(wǎng)的PLC 可增至110 臺(實(shí)際上受PLC內部系統軟件的限制,最多只能支持32 臺PLC 聯(lián)網(wǎng))。
RS232-CAN 適配器采用光電隔離,大大提高了系統的抗干擾能力和安全性能。
另外,使用RS232-CAN 適配器,并不需改變PLC 系統原有的PLC 通訊協(xié)議和上位機監控軟件,開(kāi)發(fā)人員無(wú)須更改現在使用的串口通信程序,最大限度的節省成本。
4 HOST-LINK 通信協(xié)議
采用RS232-CAN 適配器,計算機與PLC 的串口都被配置成CAN 總線(xiàn)。通信方式與上位機監控軟件的編程方式與串行通信完全相同。通信協(xié)議一般采用OMRON 公司的HOST-LINK 通信協(xié)議。
OMRON 公司的HOST-LINK 通信系統是由上位計算機( IBM PC 或兼容機) 通過(guò)安裝在各臺PLC 上的HOST-LINK 單元或串行通信接口連接多臺PLC 構成的網(wǎng)絡(luò )。上位機對系統中的PLC 進(jìn)行集中管理與監控,通過(guò)與HOST-LINK 單元的通信,可以編輯或修改各臺PLC 的程序,實(shí)時(shí)監控其運行過(guò)程,實(shí)現自動(dòng)化系統的集散控制。對于小型PLC( 如CPM2A) , 可以通過(guò)其RS232 通信端口進(jìn)行鏈接。
系統使用HOST-LINK 通信協(xié)議進(jìn)行通信,上位機具有傳送優(yōu)先權, 總是首先發(fā)出命令并啟動(dòng)通信,HOST-LINK 單元收到命令交由PLC 執行,然后將執行結果返回上位機, 二者以通信幀為單位, 輪流交換數據。
通信時(shí), 一組傳送的數據稱(chēng)為“塊”, 它是命令或響應的單位,從上位機發(fā)送到HOST-LINK 單元的數據塊稱(chēng)為命令塊,反過(guò)來(lái), 從HOST-LINK 單元發(fā)送到上位機的數據塊稱(chēng)為響應塊。多點(diǎn)通信時(shí),可作為單幀發(fā)送的最大數據塊為131 個(gè)字符,因此當一個(gè)數據塊含有132 個(gè)或更多字符時(shí), 要分成兩幀或多幀發(fā)送。
每個(gè)數據塊都以設備號及標題開(kāi)始,以校驗碼(FCS)及結束符結束。響應塊中還包括反應執行結果的響應碼。通信格式如圖2 所示。

圖2 HOST-LINK 通信幀格式
5 通信實(shí)現
用戶(hù)可以采用通用的組態(tài)軟件(如組態(tài)王)實(shí)現計算機與PLC 的通信,也可以編寫(xiě)計算機程序。
要編寫(xiě)計算機通信程序,可以采用VB、VC 等高級語(yǔ)言進(jìn)行編程,編程可以有多種方式[4]。使用MSComm控件通過(guò)串行端口傳送和接收數據,實(shí)現計算機與PLC之間的數據通信, 編程較簡(jiǎn)單。
MSComm 控件提供了一種有效的處理串*互作用的方法:事件驅動(dòng)法。該方法利用OnComm 事件捕獲并處理通信及其錯誤,當CommEvent 屬性發(fā)生變化時(shí),就產(chǎn)生事件并等待相應處理。每個(gè)MSComm 控件都有一個(gè)串口相對應。
Visual Basic 6.0(以下簡(jiǎn)稱(chēng)VB) 是一種功能強大、簡(jiǎn)單易學(xué)的程序設計語(yǔ)言,利用ActiveX 控件MSComm能十分方便地開(kāi)發(fā)出使用計算機串口的計算機通信程序。本文在VB中使用MSComm控件實(shí)現上位機與PLC的串行通信。
VB 程序由串口初始化、數據發(fā)送、數據接收等幾大部分組成。主要的程序段如下所示。
Rem 程序加載時(shí)進(jìn)行串口初始化

通信相關(guān)文章:通信原理
雙絞線(xiàn)傳輸器相關(guān)文章:雙絞線(xiàn)傳輸器原理
評論