摘要:筆者在本研究中對實現(xiàn)上位機通信的主要方法進行了詳細的介紹,并深入分析了基于VB的PLC和上位機通信之間的通信協(xié)議,提出了基于VB的PLC和上位機通信的軟件實現(xiàn)方法,給出了基于VB的PLC上位機通信的軟件流程。此外,編寫出的上位機通信軟件在數(shù)據(jù)采集和監(jiān)控系統(tǒng)得到了廣泛的應用,證明了它能夠可靠且穩(wěn)定的運行,值得推廣和使用。
關(guān)鍵詞:VB;PLC;上位機通信
基于VB的PLC和上位機通信的編程所占據(jù)的空間比較小,運行速度快,功能更加全面,不僅支持開放網(wǎng)絡,還能夠緊密地將機器與機器之間連接起來,以達到更高的數(shù)據(jù)信息共享效率。為保證基于計算機VB的PLC總線和上位機之間可以連接可以精確的交換信息,必需制定科學合理的通信協(xié)議。這種通信協(xié)議一般選擇主從輪詢的方法:上位機通信應該具有優(yōu)先進行傳輸數(shù)據(jù)的權(quán)利,且全部的通信應該都通過上位機來運行。每個通信單元接收到指令之后,將指令傳達給PLC執(zhí)行,再把執(zhí)行的結(jié)果傳達回上位機,這兩部分以幀為基本單位互相進行信息的交換。上位機向基于VB的PLC傳輸信息或者從基于VB的PLC中采集信息都是通信單元以幀的形式進行傳輸?shù)模瑢τ谕ㄐ艈挝话l(fā)來的指令幀,上位機使用回復幀進行回復。在指令幀或回復幀中含有需要進行通信的信息,必需按照標準進行判別,這樣才可以準確的提取出有用的動態(tài)數(shù)據(jù)和信息,才可以把需要進行傳輸?shù)男畔⒓皶r傳達給用戶。
2.1基于VB的PLC控件
通過采用VB提供的PLC控件,能夠?qū)崿F(xiàn)基于VB的PLC和上位機通信。基于VB的PLC控件是麥斯寇索芙特公司提供的簡化Windows環(huán)境中下上位機通信程序編制的艾克提姆科斯控件,它利用上位機傳輸和采集信息,這種控件的操作非常簡單便捷,性能也比較穩(wěn)定且安全可靠。基于VB的PLC控件包括兩種處理通信問題的方式:事件驅(qū)動方式和查詢方式。事件驅(qū)動方式的優(yōu)勢是程序運行時占據(jù)的CPU較小,響應時間比較短,可靠性和安全性高,在出現(xiàn)新字符傳輸?shù)缴衔粰C端口的狀態(tài)發(fā)生改變或錯誤的情況下,基于VB的PLC控件會自動啟動OnComm程序,當應用程序運行這個指令之后,會自動檢測基于VB的PLC控件的Comm事件屬性,以此來得到所出現(xiàn)的錯誤情況,進而采取相應的措施。在本系統(tǒng)中采用事件驅(qū)動方式的常用的屬性包括Commport屬性、Settings屬性、PortOpen屬性、Input屬性以及Output屬性。Commport屬性是用于設置或返回通信連接端口號碼。Settings屬性是用于設置初始化參數(shù)。以字符串的形式設置或返回傳輸速率、校驗位、數(shù)據(jù)位及停止位等4個參數(shù)。格式為“BBBB,P,D,S”,其中BBBB為傳輸速率;P表示校驗檢查方式;D表示數(shù)據(jù)位數(shù);S表示停止位數(shù)。默認值是“9600,N,8,1”,本系統(tǒng)采用系列PLC,通信初始化參數(shù)設置為“9600,E,7,2”,它表示所使用的通信端口是以每秒9600位的速度作傳輸,作偶校驗的檢查,每個數(shù)據(jù)是7位,而停止位是2位。PortOpen屬性是用于設置或返回通信連接端口的狀態(tài)。Input屬性是用于從輸入緩沖區(qū)返回并刪除字符。
2.2基于VB的PLC上位機通信的軟件流程
基于VB的PLC上位機通信軟件是通過基于VB的PLC控件來實現(xiàn)上位機通信的。軟件的具體流程如下:通過PLC編程軟件對計算機硬件進行科學合理的信息設置;建立上位機連接端口,并對上位機參數(shù)進行初始化,把打開的上位機號、輸送的波頻率、奇偶校驗以及停止位等參數(shù)進行設置;上位機判別來自PLC傳輸?shù)闹噶睢榱吮WC上下位機之間的準確及時的通信,上位機所傳輸?shù)闹噶顜匦枋菧蚀_的,在發(fā)送完指令幀之后,上位機便處于等待狀態(tài),直到接收到PLC的回復幀為止,分析結(jié)束碼,判斷是否有錯誤,正常情況下,回復幀的代碼為“oo”,出錯則顯示錯誤代碼,之后PLC再根據(jù)錯誤類型作相應的糾錯處理。
2.3基于VB的PLC上位機通信程序?qū)嵗?/p>
在數(shù)據(jù)采集和監(jiān)控系統(tǒng)中,基于VB的PLC上位機通信程序?qū)嵗饕迷诒硎竞头治鰪膫鞲性O備接收到的信息。在該系統(tǒng)中能夠利用設置定時器控件的英特威爾屬性,確定收集信息的時間間隔,通常情況下,系統(tǒng)設定為一百毫秒的時間間隔,這樣能夠有效提高信息采集的速率。在系統(tǒng)的操作界面上,用戶能夠根據(jù)實際情況自由的選擇上位機通信端口和模塊編號;在地址文本框中可設定讀取PLC存儲區(qū)的地址。鼠標左鍵單擊打開上位機通信端口的窗口,啟動定時器,程序代碼會不斷地通過中間程序發(fā)送,并收集得到信息數(shù)據(jù)的指令,及時處理得到的指令結(jié)果,并在窗體上顯示模擬輸入值,繪出模擬量變化的曲線圖。
本研究對基于VB的PLC和上位機通信之間的通信協(xié)議進行了深入的研究,通過基于VB的PLC控件達到了基于VB的PLC的上位機通信。基于VB的PLC控件程序所編寫的上位機通信軟件在數(shù)據(jù)采集和監(jiān)控系統(tǒng)中得到了廣泛地應用,證實了這種上位機通信的可靠性和安全性。此外,利用上位機通信對基于VB的PLC的判別,還實現(xiàn)了實時的信息自動收集,能夠在很大程度上對工業(yè)現(xiàn)場設備進行高效的監(jiān)測和管理。
[1]高欽和.可編程控制器應用技術(shù)與設計實例[M].北京:人民郵電出版社,2014:49-50.
[2]陳常祥,王強,張?zhí)鞓虻?MS(X)MM與程序接口函數(shù)實現(xiàn)PLC上位機通信比較[J].工業(yè)控制計算機,2012,19(10):9-10.
作者簡介:林晰明(1989.6-)吉林長春熱你,國家新聞出版廣播電影電視總局523臺助理工程師,本科
(作者單位:國家新聞出版廣播電影電視總局 523臺)