天堂网www中文天堂在线/色操在线/成人精品视频一区二区三区/欧美特黄一片aa大片免费看

  • 利用泓格產品進行高山無人監控站的系統設計與開發
    泓格科技上海技術服務中心

    1 應用背景
      本系統用來監控杭州、溫州、寧波等城市的微波站,主控站在城市機房,受控站則在內地或海邊的山頂,環境比較惡劣。共有6個主控站,每個主控站帶1個受控站,采用總線型的主控機和受控機兩級結構,通過微波信道(圖1粗黑線所示)在主控機之間傳送數據,但在某一時刻只有一臺主控機Polling所屬受控機,被Polling受控機作應答處理,其余主控機處于偵聽(Listen)狀態。主控機Polling完所屬受控機后,轉移Polling權,由下一臺主控機接管Polling權……如此循環。監控內容主要包括柴油發電機、開關電源、市電、蓄電池等的工作狀態、環境溫度、濕度、防盜等。系統結構如圖1所示。
      
      



      
      2 硬件設計
      油機監控器是與大型柴油發電機配套的專用監控器,采用雙機熱備;1600與2800也是與原設備配套的專用監控器,其中1600主要用來監控市電和環境參數,2800對兩組蓄電池(各12節)進行監控;報警開關量(遙信)輸入模塊采用7041,控制開關量(遙控)采用7067模塊,受控機的主控模塊則選用7188。7188有四個串行口,其中兩個RS232(僅含Rx、Tx、GND信號線),一個RS485,一個9針全信號RS232口(通過內部跳線,可將此口改變為RS485口)。7188模塊接口多,抗惡劣環境,同時,提供豐富的內部函數,有利于快速開發出性能可靠的下位機監控系統程序。受控站系統的硬件結構見圖2所示。由于各監控模塊均使用RS485接口,所以需要兩個RS232/RS485轉換接口。COM1口為全信號RS232,連接專用Modem,從而進入微波信道進行數據的傳輸。主控站通過RS232接口與專用Modem連接,進入微波信道。
      
      


      
      3 軟件實現
      3.1 主控機部分
      主控機部分采用組態王5.1來實現。該系統可運行于Win98/NT平臺,真正32位程序,實時多任務、多線程,采樣速度快,可靠性高,同時,支持分布式歷史數據庫及撥號網絡,具有豐富的ActiveX控件,廣泛應用于鋼鐵、化工、環保、國防、航空航天等重大領域。
      利用組態王開發實時計算機監控系統方便快捷。首先,定義設備,加載通訊驅動程序。如對于本系統,是利用RS232接口來與受控機通訊的,其定義設備時選取的順序如下:智能模塊—I-7000系列—I-7188—Modbus RTU Extention。然后,再規定RS232的工作參數。其次,定義數據詞典,規定變量名、數據類型、寄存器之間的關系。數據詞典中的變量可以根據原始數值自動計算所對應的線性目標值。最后,根據組態王提供的圖元控件設計用戶界面,無論是字符串還是圖元,均可建立“動畫鏈接”,從而,將數據變量和數據的顯示結合起來。數據顯示包括兩種形式,一是數據的文本格式的顯示,二是數據的動畫表示,如對于報警量,正常顯示綠燈,報警顯示紅燈等。如此三步,主控機軟件開發基本完工。
      
      3.2 受控機部分
      3.2.1 受控機主程序設計
      7188提供了豐富而方便的庫函數,其中包括關鍵的看門狗、相關的數據發送和接收函數、時鐘中斷函數等等,同時,還提供了豐富的例程,因而,使得受控機軟件邏輯簡捷,開發極其迅速可靠,與其它廠家的模塊也能極其友好地連接。7188的一個串口控制兩臺智能設備,這是通過地址來區分的。對于泓格產品的7000系列模塊,其工作參數及模塊地址是可調的,可在系統組裝之前對其進行設置。而其它智能模塊的工作參數和地址則是由廠家設定的,不可更改。
      由于7188內嵌基本的DOS環境,因而,采用TC2.0來編寫受控機程序。主程序首先初始化系統,包括對各串口的初始化及系統運行參數的初始化,并安裝用戶時鐘中斷。由于該用戶中斷固定為1ms,因而,在中斷程序中應避免接收和發送數據,因為監控系統中的波特率一般不超過9600(太高可能導致數據傳輸的不可靠),而對于9600的波特率,傳輸1個字節的數據大約需要1ms,一般情況下,所選擇的波特率低于9600,而且,一次發送和接收的數據一般超過2個字節,因而,會引起DOS重入,從而使系統不可靠。所以,時鐘中斷程序應盡量簡捷,主要完成各個工作節拍之間的協調問題,主要工作在主程序中進行,即輪詢時間或節拍到,即向智能模塊或設備發送查詢命令,而當有數據返回時,再去讀取數據并處理。其軟件系統框圖如圖3所示。
      
      


      
      3.2.2 通訊問題及解決方案
      對于計算機監控系統,最關鍵的問題是數據通訊的可靠性。泓格產品的I/O設備數據傳輸平穩,能與7188可靠地連接,但其它廠家模塊的數據傳輸并不象所想象的那么連續,因而,應該根據所接收的數據的不連續性作相應的等待,時間太短,數據將可能丟失,時間太長,則可能造成死機或將下一批的數據也一塊接收進來。數據接收程序見算法1中的ReadDataDelay子程序。經過反復調試,對于本系統,發現延時數據大于0x0140即可,小于0x0130則數據錯誤率達1/4左右,并且,主要是每次丟失1~2個字節的數據。0x0130與0x0140之間為臨界值。數據發送也用一個統一的子程序來完成,見算法1中的SendData子程序,數組中第一個字節用來存放收到的字節數,其后為數據內容。以下算法對嵌入式模塊的程序設計具有通用性,其基本原理可以廣泛使用。
      /****************************************************/
      /* ReadDataDelay:讀取串口nPort中的數據,放入 */
      /* bData中,nDealy為需要等待的節拍數 */
      /****************************************************/
      void ReadDataDelay(int nPort, unsigned char *bData, int nDelay)
      {
       int nData=0; /*接收到的字節數*/
       int iCount=0; /*等待計時*/
       while(iCount < nDelay)
       {
       if(IsCom(nPort)==QueueIsNotEmpty) /*nPort口有數據*/
       {
       nData++;
       bData[nData] = ReadCom(nPort); /*讀取一個字節的數據*/
       iCount = 0; /*有數據,計時清零*/
       }
       else iCount++; /*沒有數據,則等待計時*/
       }
       /*bData數據中第一個字節地址存放收到的字節數,其余為字節內容*/
       bData[0] = nData;
       ClearCom(nPort); /*清除串口數據內容,為下次數據接收作準備*/
      }
      
      /*********************************************************/
      /* SendData:nPort為串口號,ComData為需要發送的數據 */
      /*********************************************************/
      void SendData(int nPort, unsigned char *ComData)
      {
       int nlength, i;
       nlength = ComData[0];
       if(2 == nPort) Set485DirToTransmit(nPort);
       for(i=0; i  {
      ToCom(nPort, ComData[i+1]);
       if(2 == nPort) WaitTransmitOver(nPort);
       }
       /*Com2為485口,應調整其數據傳輸方向*/
       if(2 == nPort) Set485DirToReceive(nPort);
       return;
      }
      
      4 調試及結論
      泓格產品的7000系列組合方便,而且,7188有四個RS232/485串口,價格卻非常便宜,一塊7188主控模塊只要2000多元,且同樣抗惡劣環境,曾用電吹風對其連續勁吹,使其表面發燙(溫度在50℃以上),卻依然可靠地工作。由于上位機提供了組態軟件,因而,上位機程序開發迅速,性能可靠;下位機提供了豐富的庫函數和例程,使得下位機軟件的邏輯簡捷,編程靈活而迅速,看門狗功能又能使其自動恢復。
      作者長期從事計算機監控方面的項目與研究工作,設計了“通用多功能計算機監控系統測試軟件”,專門用來通過RS232或RS485測試監控系統或相應的智能設備 [1] 。該軟件既能充當受控機用來測試主控機程序,又能充當主控機用來測試受控機程序,并在多個監控系統中得到驗證。在測試過程中發現,7000系列的模塊數據傳輸平穩,并且,連續測試48小時(5秒測試1次),非泓格產品的監控器平均發生25次數據傳輸錯誤,而對于7000系列的模塊卻沒有一次錯誤記錄;用該測試軟件模擬受控機對主控機(組態軟件)進行測試,也沒有錯誤記錄。目前,該系統已經在實驗室調試通過,效果良好。由于采用了泓格產品的組態軟件及7000系列的模塊,該系統開發迅速,性能可靠,因而,極有推廣價值(onspring@sina.com)。
      
      參考文獻∶
      [1] 馬玉春, 宋瀚濤. 串行通訊協議的研究與應用. 計算機應用研究, 2004.4, p228


     
     
    網站首頁  |  關于我們  |  聯系我們  |  廣告服務  |  版權隱私  |  友情鏈接  |  站點導航