沈夢夢 姜英 王亦誠
摘要
利用LabVIEW中的VISA技術,實現了SNP協(xié)議下LabVIEW與GE90系列PLC的串口通訊。實際應用結果表明,該系統(tǒng)具有良好的實時性和可靠性。
【關鍵詞】SNP協(xié)議 PLC LabVIEW 串口通訊
LabVIEW是一種圖形化的編程語言和開發(fā)環(huán)境,是美國國家儀器公司開發(fā)的虛擬儀器開發(fā)平臺軟件。其圖形化編程語言環(huán)境,簡單直觀,極大節(jié)省程序開發(fā)時間,可以完成各種編程任務。
PLC在自動化監(jiān)控系統(tǒng)中主要用于數據采集、控制和調節(jié),對控制系統(tǒng)有舉足輕重的作用,而如何實現PLC與上位PC機之間的數據通訊也至關重要。
本文詳細介紹GE 90系列PLC與上位機通過SNP (Series 90 Protocol)串口協(xié)議通訊的具體實現過程,實際運行結果表明,此方法穩(wěn)定可靠,節(jié)約成本,經濟性強,有較強的應用價值。
1SNPt議
1.1 SNP通訊方式
SNP使用RS485(RS422為增強型)接口的半雙工通訊模式,為了支持多種應用,SNP提供多種不同的波特率、奇偶校驗、停止位。在數據連接上可以通過點對點(point-to-point)模式設置單個PLC,也可以通過多點下傳( multi-drop)模式設置多個PLC。
由于上位機通常配備RS232串口,所以在上位機與PLC之間的通訊連接上需增加一個RS-232/RS-485 (RS422)轉換器。配備RS485 (RS422)通訊接口的上位機可以直接通過一根數據線連接至PLC電源模塊上,無需任何轉換設備。允許多個90系列PLC連接至一個上位機,只需要配備一個多串口轉換設備。
1.2 SNP消息幀
SNP數據消息包含三個部分:頭部、尾部、頭部和尾部之間的數據。
頭部由兩個字節(jié)組成,第1個字節(jié)均為lbh(十六進制),第2個字節(jié)及其代表的真實意義為:41h建立連接消息;52h建立連接響應消息;4Dh郵箱消息;54h文本緩沖消息;54h文本緩沖消息;42h塊傳輸消息;43h連接數據消息;55h更新實時連接消息;49h查詢消息。
尾部由六個字節(jié)組成,第1個字節(jié)均為17h,第2個字節(jié)定義下一個消息類型,第3、4個字節(jié)定義下一個消息長度,第5個字節(jié)代表狀態(tài)位,第6個字節(jié)定義BBC校驗碼。
頭部和尾部之間的數據內容依賴于被頭部定義的消息類型。
l.3 SNP數據報服務請求
數據報服務請求允許用戶通過服務請求獲得一組或多組PLC的參數數據。PLC中一個區(qū)域的內存數據定義為一個數據報連接區(qū),在通訊之前,數據報連接區(qū)需要被建立和定義。PLC中數據報連接區(qū)由幾個部分構成:固定12個字節(jié)長度的頭部、監(jiān)測參數格式列表(每組監(jiān)測的參數格式由4個字節(jié)組成)、數據區(qū)域。每個數據報最大可以定義256種數據格式,每組參數格式包含三個部分:數據類型、偏移量、長度。
在一個完整的串口通訊協(xié)議周期中包含下面四種PLC數據報服務請求:
(1)建立連接數據報請求;
(2)寫入數據報請求;
(3)更新數據報請求;
(4)取消數據報請求。
當上位機需要使用數據報連接時,需要按照上述前三個數據報請求順序讀取PLC中數據,當不再需要讀取數據時取消數據報請求。上述四個數據報請求基本上包含以下過程:上位機發(fā)送請求初始化、PLC發(fā)送確認、PLC發(fā)送響應完成確認、上位機發(fā)送請求數據、PLC發(fā)送數據、上位機發(fā)送確認。
一個典型的建立連接數據報初始化請求幀如表1所示。
2程序實現
(1)即設定上位機的串口COM1與PLC通訊,波特率設為19200bits/s,數據位為8位,停止位1位,奇偶校驗設置為偶校驗。
(2)幀校驗,采用BCC異或校驗方式,將要發(fā)送的數據進行異或后加在發(fā)送數據的尾端。
(3)讀寫端口,將命令通過串口COM1發(fā)送給PLC,并接受來自PLC的響應信息,將所得數據進行解包,并進行顯示、計算、分析、存儲等后續(xù)處理。圖l為LabVIEW讀串口的實現程序。
3結束語
本文在LabVIEW軟件開發(fā)平臺上,利用VISA技術,成功開發(fā)基于SNP協(xié)議的串口通訊模塊,可以方便地實現上位PC機與下位機PLC的主從式串行通訊。該模塊可以不加任何修改用于其它虛擬儀器的開發(fā),操作簡單方便,運行可靠,該模塊已經成功應用于某型號發(fā)動機過程控制系統(tǒng),運行良好可靠。
參考文獻
[1]阮奇楨,我和LabVIEW [M].北京:北京航空航天大學出版社,2009.
[2]袁雪,陳斌,魯中巍,管國強.基于LabVIEW的Modbus串口通訊協(xié)議的實現[J].現代儀器,2008,22 (02): 31-33.