時間:2018-03-23 10:20:29來源:網絡轉載
1引言
在現代工業中,PLC之間或PLC與計算機之間的通信聯網應用日益廣泛。PLC的聯網功能越來越強。以歐姆龍CP1、CJ1和CS1系列PLC為例,配合使用各種模塊,可以支持工業以太網、ControllerLink等現場總線通信聯網功能。但是,應用廣泛的CPM1A、CPM2A等中小型PLC的通信聯網一般只能采用工業總線的物理層形式(如RS232或RS485),通信的穩定性與抗干擾能力并不是很強。
2CAN總線簡介
CAN總線由德國BOSCH公司首先提出來的,CAN總線是目前工業界廣泛應用的總線。
CAN控制器工作于多主站方式,網絡中的各節點都可根據總線訪問優先權采用無損結構的逐位仲裁的方式競爭向總線發送數據。CAN協議廢除了傳統的站地址編碼,可使網絡內的節點個數在理論上不受限制,通信實時性強,提高系統的可靠性和系統的靈活性。
報文采用短幀格式,傳輸時間短,受干擾概率低,保證了數據出錯率極低。CAN的每幀信息都有CRC校驗及其他檢錯措施,具有極好的檢錯效果。CAN的通訊介質可以為雙絞線、同軸電纜或光纖,選擇靈活。CAN節點在錯誤幀的情況下具有自動關閉輸出功能,而總線上其它節點的操作不受影響。CAN總線通過兩個輸出端CANH和CANL與物理總線相連,不會出現損壞某些節點的現象。CAN節點在錯誤嚴重的情況下具有自動關閉輸出功能,以使總線上其他節點的操作不受影響,不會出現象“死鎖”狀態。
3通信結構
通信系統組成如圖1所示,上位計算機運行監控軟件與OMRON專用的PLC編程及配置軟件,并將計算機串口連接到RS232-CAN適配器,配置為CAN總線。下位PLC采用多臺OMRON的CPM2A型PLC,將CPM2A的串口連接RS232-CAN適配器,實現CAN總線通信。
圖1通信系統結構
通過適配器,計算機與PLC成為CAN總線的節點。
節點之間通過雙絞屏蔽線進行總線式連接,首尾節點需要接120R的匹配電阻。上位計算機可以通過CAN總線實時監控PLC系統的運行。
此方案是現場總線技術與集中控制技術的有機結合,聯網后的PLC網絡可以構成一個DCS系統。用戶在計算機上可以遠程監控、配置任何一臺PLC的程序或狀態。并能夠在投入較低硬件成本的基礎上,實現良好的系統運行性能。這個方案充分發揮了CAN總線的通信特點:實時、可靠、高速、遠距離、易維護等。
使用RS232-CAN適配器后,通信距離擴大到5公里(9600bps時),組網的PLC可增至110臺(實際上受PLC內部系統軟件的限制,最多只能支持32臺PLC聯網)。
RS232-CAN適配器采用光電隔離,大大提高了系統的抗干擾能力和安全性能。
另外,使用RS232-CAN適配器,并不需改變PLC系統原有的PLC通訊協議和上位機監控軟件,開發人員無須更改現在使用的串口通信程序,最大限度的節省成本。
4HOST-LINK通信協議
采用RS232-CAN適配器,計算機與PLC的串口都被配置成CAN總線。通信方式與上位機監控軟件的編程方式與串行通信完全相同。通信協議一般采用OMRON公司的HOST-LINK通信協議。
OMRON公司的HOST-LINK通信系統是由上位計算機(IBMPC或兼容機)通過安裝在各臺PLC上的HOST-LINK單元或串行通信接口連接多臺PLC構成的網絡。上位機對系統中的PLC進行集中管理與監控,通過與HOST-LINK單元的通信,可以編輯或修改各臺PLC的程序,實時監控其運行過程,實現自動化系統的集散控制。對于小型PLC(如CPM2A),可以通過其RS232通信端口進行鏈接。
系統使用HOST-LINK通信協議進行通信,上位機具有傳送優先權,總是首先發出命令并啟動通信,HOST-LINK單元收到命令交由PLC執行,然后將執行結果返回上位機,二者以通信幀為單位,輪流交換數據。
通信時,一組傳送的數據稱為“塊”,它是命令或響應的單位,從上位機發送到HOST-LINK單元的數據塊稱為命令塊,反過來,從HOST-LINK單元發送到上位機的數據塊稱為響應塊。多點通信時,可作為單幀發送的最大數據塊為131個字符,因此當一個數據塊含有132個或更多字符時,要分成兩幀或多幀發送。
每個數據塊都以設備號及標題開始,以校驗碼(FCS)及結束符結束。響應塊中還包括反應執行結果的響應碼。通信格式如圖2所示。
圖2HOST-LINK通信幀格式
5通信實現
用戶可以采用通用的組態軟件(如組態王)實現計算機與PLC的通信,也可以編寫計算機程序。
要編寫計算機通信程序,可以采用VB、VC等高級語言進行編程,編程可以有多種方式[4]。使用MSComm控件通過串行端口傳送和接收數據,實現計算機與PLC之間的數據通信,編程較簡單。
MSComm控件提供了一種有效的處理串*互作用的方法:事件驅動法。該方法利用OnComm事件捕獲并處理通信及其錯誤,當CommEvent屬性發生變化時,就產生事件并等待相應處理。每個MSComm控件都有一個串口相對應。
VisualBasic6.0(以下簡稱VB)是一種功能強大、簡單易學的程序設計語言,利用ActiveX控件MSComm能十分方便地開發出使用計算機串口的計算機通信程序。本文在VB中使用MSComm控件實現上位機與PLC的串行通信。
VB程序由串口初始化、數據發送、數據接收等幾大部分組成。主要的程序段如下所示。
Rem程序加載時進行串口初始化
以上給出了計算機與PLC通信的主要程序段。需要注意的是,如果傳送的數據大于132個字符,可以將數據分成起始幀、若干中間幀、結束幀進行傳送。起始幀必須包含設備號,命令碼等,否則通信的過程中將會有錯誤發生。上位機每發送完一幀時,在收到PLC返回的分界符(即“↙”)后再發送下一幀,只有當結束幀數據發送完畢時才返回響應代碼。
6結束語
本文基于VB利用MSComm控件實現了上位機與歐姆龍PLC的串行通信,充分發揮了CAN總線實時、可靠、高速、遠距離、易維護的特點。計算機能夠深入地配合PLC廠商提供的各種軟件,從而實現更多強大的功能,比如系統配置、人機界面、組態開發等。
通常,計算機與PLC通過串口連接,實現各種通信功能。但串口的通信距離、節點數量都受到了串口本身的性能限制。比如,RS-232標準只可以實現1:1通信,RS-422/485標準能夠實現32個節點以內的通信,通信距離、抗干擾能力都比較弱,并不能夠滿足實際工業現場多臺PLC聯網應用的需求。即使借助RS232/RS485-CAN適配器也很難突破串行通信本身的功能限制[5]。
針對這一情況,可以采用計算機內置PC-CAN接口卡,可以建立起1條或者多條CAN總線網絡,并通過連接在CAN總線網絡中的RS232/RS485-CAN適配器,借助于CAN總線網絡配套的虛擬串口軟件,建立多達2047個標準的串行通信端口,從而連接多達2047條串行網絡[6]。也就是說,可以在同1條普通雙絞線上連接多達2047臺PLC設備,工控PC訪問連接在這條CAN總線網絡上的PLC設備,也與操作標準串口完全一致。
這種方式可以充分發揮工控PC的作用,通信效率比較高,應用靈活,是一般PLC網絡建設的主流方向。
標簽:
上一篇:【應用干貨】四大加速度傳感...
下一篇:基于PLC的水電站空壓機控制系統
中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-05-19
2025-04-30
2025-04-11
2025-04-08
2025-03-31
2025-03-26