銷售:13671530603
咨詢:021-57522756
郵箱:sw@wotuo.net
地址:上海市奉賢區川南奉公路9860號
摘要:給出了基于485 總線, 由控制中心PC 機和多個單片機控制系統組成的電動裝置性能檢測系統中的實時通信系統, 重點介紹了利用VB 實現PC 機與多個單片機控制系統實時通訊程序設計方法, 實現了PC 機對多個遠程單元的實時控制與管理。
關鍵詞:Visual Basic 串行通訊 電動裝置性能檢測系統 遠程控制
在許多實時監測系統中, 經常需要接收距離較遠的測控點數據, 如何快速可靠的實現數據的遠程傳輸是這些監測系統必須解決的問題。在監測現場, 為了降低系統的成本, 往往采用單片機系統作為數據采集和記錄單元。在中央控制中心, 常常利用PC 機來完成人機會話及與監測現場的通信。
本文介紹一套用于電動裝置出廠性能檢測系統的實用的主從式(Master/ Slave) 遠程實時通訊系統。檢測系統的下位機是以32 位的ARM 單片機(L PC2214) 為CPU , 兩片CPLD ( XC95108) 擴展I/ O 口對外圍器件如加載電機、卸載電機、光電編碼器和AD 轉換器進行控制的單片機系統, 并有鍵盤進行數據輸入和液晶屏顯示各功能接口, 以及打印機打印測試合格產品的性能參數記錄。上位機的管理平臺則基于Visual Basic 610 。此系統通過對產品的性能參數進行檢測, 嚴格避免不合格產品出廠, 提高產品質量, 增強了產品的市場競爭力。
通訊系統以生產現場的雙絞線為通訊媒介, 上位機利用VB 610 的通訊控件MSComm 實現了與下位機的遠程實時通訊, 下位機應用于生產車間現場, 取得了滿意效果。
2.1 結構組成
網絡系統由控制中心和多個遠程單元RTU(Remote Terminal Unite) 組成(圖1) 。控制中心由上位機和RS232/ 485 轉換器組成, 各遠程單元是以ARM單片機為核心的電動裝置性能檢測系統(圖2) 。
2.2 工作原理
控制中心作為系統的數據終端設備DTE (Da2ta Terminal Equipment) , 負責實現對遠程電動裝置性能檢測系統的檢測數據進行判別、存儲等。PC機通過485 通訊電纜與遠程電動裝置性能檢測系統相連, 其傳輸速率為9 600 bps , 端口數據傳輸速率可根據系統需要設為1 200 bps~19 200 bps〔1〕。
各遠程電動裝置性能檢測系統通過光電編碼器和AD 轉換器對現場設備的性能參數進行數據采集, 采用MAX1480 芯片與PC 機進行數據傳輸,并通過2 片CPLD 實現數據輸入和輸出開關量, 從而實現對現場設備的控制和參數測量。電動裝置性能檢測系統還有復位、故障報警及芯片正常工作檢測等系統。<BR> 通訊系統以控制中心PC 機和遠程單片機控制系統通過485 通訊電纜以同頻異步半雙工方式進行數據信息傳輸, PC 機通過串口發送令牌到遠程單元, 遠程單元收到自己的令牌后發送數據到PC機, PC 機收到數據后回送正確信息。從而實現控制中心對遠程設備的控制和數據采集。
3.1 通訊協議
(1) 一楨數據由1 位起始位, 8 位數據位、1位校驗位、1 位停止位共11 位組成。
(2) 波特率為9 600 bps。電動裝置測試系統的單片機的串口選用UART0 進行數據的發送和接收, 為了得到準確的波特率, ARM 單片機采用振蕩頻率為111059 2 MHz 的晶振。PC 機串口波特率通過VB 通訊控件MSComm 的Setting 屬性設置, 為保證數據傳輸的準確性, 兩者的波特率必須一致。
(3) 系統采用異步通訊方式, 上位機通過令牌傳遞總線(token - passing bus) 方式與遠程單元進行通訊〔2〕。PC 機發送的信息為固定4 個字節。第1 個字節和第2 個字節分別為起始標志符和遠程單元的具體地址號, 第3 個字節表示發送的是令牌還是命令, 第4 個字節為結束標志符。
(4) 遠程單元接收到令牌后, 對照令牌的地址號與本單元地址進行判斷, 得知令牌是本單元的, 此時總線處于接收數據狀態。此單元開始發送信息, 發送的信息共158 個字節。第1 個字節和第2 個字節分別表示起始標志符和命令符, 第3 個字節表示數據個數, 第4 個到第157 個字節表示采集的測試數據, 第158 個字節表示結束標志符。如果地址不符, 則將令牌轉發到下一單元〔3〕。其通訊方式如圖3 所示。
3.2 遠程單片機控制系統的串行通訊程序設計
遠程ARM 單片機采用中斷方式進行數據接收, 基于軟件ADS112 編程與上位機進行通訊, 上位機通訊子程序流程圖以及下位機中斷子程序流程圖分別如圖4 和圖5 所示。
控制中心上位PC 機始終在循環發送令牌, 當遠程單元接收到與本機地址相同的令牌時, 置接受數據標志, 接收到自己的令牌后, 遠程單元開始上傳數據到上位PC 機, 與此同時PC 機停止發送令牌并處于接收數據狀態, 等到接收數據完畢并檢驗數據合格后發送確認命令到此遠程單元, 如果沒收到數據或數據不合格發送錯誤標志到此遠程單元。如果收到的令牌與本機地址不同時, 程序返回中斷入口處, 繼續執行其它操作。這樣可保證遠程單元把數據準確地發送到上位機PC 機。
3.3 上位PC 機串行通訊程序設計方法
上位機利用VB 610 進行編程, 用VB 610 開發串行通訊程序普遍采用兩種方法: 一種是利用Windows 的API 函數; 另一種是采用VB 的通訊控件MSComm。利用API 函數編寫串行通訊程序較為復雜, 需要調用許多繁瑣的API 函數, 而VB610 的MSComm 通訊控件提供了標準的事件處理函數、事件和方法, 用戶不必了解通信過程中的底層操作和API 函數〔4〕, 從而比較容易、高效的實現了串口通信。
控件提供了兩種功能完善的串口數據接收和發送功能: 一種是查詢法, 通過Com2mEvent 的值來輪詢(polling) 事件和通訊狀態,可以使用定時器和DO .Loop 程序來實現; 另一種是事件驅動法( Event - driven) , 利用MSComm 控件OnComm 事件來捕獲串口通訊錯誤或事件, 并在OnComm 事件中編寫程序進行相應的處理〔5〕。本軟件系統采用了定時器來發送令牌以及接收遠程單片機的回執信息, 使PC 機作出更快的反應。
軟件采用定時器Timer1 控件來實現令牌的循環發送。其中設置定時器響應一次的時間為10ms( Timer11Internal = 10) 。
3.4 下位機ARM2210 系列單片機串行通訊程序設計方法
下位機利用軟件ADS112 進行編程, 此軟件是專為ARM 單片機開發的一種軟件, 其語言類似于C 語言, 有很好的應用性。
該系統應用在對遠程設備的在線監測, 其通訊網絡部分運行平穩, 數據傳輸誤碼率低, 傳輸速度符合要求, 效率高, 操作簡單, 組網方便, 滿足生產現場的數據檢測和控制要求。該系統可廣泛應用于高精度的工業測控和數據采集等領域中。
(1)JanAxelson. 串行端口大全〔M〕. 北京: 中國電力出版社,2001
(2)陽憲惠. 現場總線技術及其應用〔M〕. 北京: 清華大學出版社,
(3)李朝青. PC 機及單片機數據通信技術〔M〕. 北京: 航空航天大學出版社, 2000.
(4)項舉偉等. 利用Windows API 函數構造C6 類實現串行通訊〔J〕. 測試技術, 2000
(5)范逸之. Visual Basic 與RS232 串行通訊控制〔M〕. 北京:中國青年出版社, 2000.