基于VB的PLC與計算機間串行通信實(shí)現
在工業(yè)控制領(lǐng)域中,PLC作為一種穩定可靠的控制器得到廣泛的應用。但它也有自身的一些缺點(diǎn),即數據的計算處理和管理能力較弱,不能給用戶(hù)提供良好的界面等。而計算機恰好能彌補PLC的不足,它不但有很強的數據處理和管理能力,而且能給用戶(hù)提供非常美觀(guān)而又易于操作的界面。將PLC與計算機結合,可使系統達到既能及時(shí)地采集、存儲數據,又可處理和使用好數據,兩者結合的關(guān)鍵是PLC與計算機之間的通信。本文以OMRON公司的CPMI小型PLC為例,詳細的討論了PLC與計算機通信的原理和用VB如何實(shí)現PLC與計算機的通信。
本文引用地址:http://dyxdggzs.com/article/202505.htm一、通行原理與方法
上位機要能夠通過(guò)PLC監控下層設備的狀態(tài),就要實(shí)現上位機與PLC間的通信,一般工業(yè)控制中都是采用RS232C實(shí)現。上位機首先向PLC 發(fā)送查詢(xún)數據的指令(實(shí)際上是查詢(xún)PLC中端子的狀態(tài)和dm區的值等),PLC接收了上位的指令后,進(jìn)行校驗(fcs校驗碼),看其是否正確,如果正確,則向上位機傳送數據(包含首尾校驗字節)。否則,PLC拒絕向上位機傳送數據。上位接收到PLC傳送的數據,也要判斷正確與否,如果正確,則接收,否則,拒絕接收。
由于cpm1a沒(méi)有提供串行通信口,我們利用其提供的外設端口實(shí)現通信。PLC與計算機之間的連接是通過(guò)omron提供的專(zhuān)用電纜cqm1-cif01來(lái)實(shí)現的,其硬件連接圖如圖1所示。
二、 PLC與計算機間的通信規約
計算機與PLC間的通信是以“幀”為單位進(jìn)行的,并且在通信的過(guò)程中,計算機具有更高的優(yōu)先級。首先,計算機向PLC發(fā)出命令幀,然后,PLC作出響應,向計算機發(fā)送回響應幀。其中命令幀和響應幀的格式如下:
?。?) 命令幀格式。為了方便計算機和PLC的通訊,cpm1a對在計算機連接通信中交換的命令和響應規定了相應的格式。當計算機發(fā)送一個(gè)命令時(shí),命令數據主準備格式如圖2所示。
其中@放在首位,表示以@開(kāi)始,設備號為上位機識別所連接的PLC的設備號。識別碼為命令代碼,用來(lái)設置用戶(hù)希望上位機完成的操作,fcs為幀檢驗代碼,一旦通信出錯,通過(guò)計算fcs可以及時(shí)發(fā)現。結束符為“*”和cr回車(chē)符,表示命令結束。
?。?) 響應幀格式。由PLC發(fā)出的對應于命令格式的響應幀格式如圖3所示。
其中,異常碼可以確定計算機發(fā)送的命令是否正確執行。其它的與正文中的含義相同。正文僅在有讀出數據時(shí)有返回。
三、 通信程序的設計
為了充分利用計算機數據處理的強大功能,我們可以采用計算機有優(yōu)先權的方式,在計算機上編寫(xiě)程序來(lái)實(shí)現計算機與PLC的通信, 計算機向 PLC發(fā)出命令發(fā)起通信,PLC自動(dòng)返回響應。本文中采用vb來(lái)編寫(xiě)計算機與PLC間的通訊程序。在vb中提供了通信控件—應用通信控件(mscomm),實(shí)現通過(guò)串行端口傳送和接受的功能。
下面介紹mscomm控件的屬性:
?。猚ommport:設定通信連接端口代號,程序必須指定所要使用的串行端口號,windows系統使用所設定的端口與外界通信。
?。猵ortopen:設定通信口狀態(tài),若為真,通信端口打開(kāi),否則關(guān)閉。
?。猻ettings:設定通信口參數,其格式是BBbb,p,d,s,其中bbbb為通信速率(波特率),p為通信檢查方式(奇偶校驗), d 為數據位數,s為停止位數,其設定應與PLC的設定一致。
評論