<nobr id="zkazv"></nobr>

      午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
      首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
      中華工控網首頁
        P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
        D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
        電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
      ARM9工控板在遠程監控中的應用
      英創信息技術有限公司
      收藏本文     查看收藏

            英創公司的ARM9工控主板產品均預裝了Windows CE5.0操作系統,支持包括EVC、C#、VB、LabView等多種開發工具。作為工業控制領域的嵌入模塊,客戶的應用程序往往對系統的底層調用較多,相對于其它語言,C++具有強大的硬件控制能力和很高執行效率,因此我們提供的示例程序和軟件方面的技術支持均集中在C++方面。而C#、.net VB等在圖型界面開發、數據庫方面的應用和易用性方面更具優勢,我們很多客戶也選用他們作為開發工具。為了結合各語言的優勢,為了對客戶提供更好的支持,我們將與主板密切相關的一些底層功能模塊封裝成COM組件,用戶可以使用自己喜歡的語言來調用COM組件,不必關心低層調用的細節,而COM組件本身則采用C++來編寫。本文將介紹基于英創工控主板串口應用的COM組件和組件調用方法。

      一、創建串口應用COM組件

            串口通訊在工業控制場合應用十分廣泛,當串口作為RS485通信應用時,很多場合下,需要通過硬件RTS信號來控制數據收發的方向,以提高抗干擾能力。在C#這一類的高級語言中,盡管也包括了串口控件,但缺乏對RTS硬件的操作,因此在RS485應用中受到一定的限制。為了彌補這一缺陷,在我們所設計的串口應用COM組件中,通過對串口DCB結構參數的設置,并結合英創ARM9主板低層的串口驅動程序,實現對RTS信號的完整控制。本串口組件采用C++編寫,在組件內部對RTS進行設置,而上層的開發工具,如C#等,可通過向組件接口函數傳遞參數來控制RTS信號,從而最終實現RS485的半雙工通訊。

            本串口COM組件提供四個接口方法函數:打開串口,關閉串口,向串口寫數據,讀串口數據。客戶方調用COM組件打開串口后,COM組件服務器便在組件內部創建一數據接收線程,接收線程里通過WaitCommEvent來等待串口事件發生,當串口收到數據后,將數據放入指定的接收數據緩存中,客戶方可調用讀串口數據方法函數將緩存中的數據讀出。在實際應用中,客戶可在接收線程中加入自己特定的協議轉換代碼,使得通過組件讀取的數據為一個完整應用報文。

            為了跨語言調用組件,接口方法函數參數數據均采用VARIANT數據類型,這樣ASP、vbscript等可方便的進行組件調用,從而輕松實現通過網頁對串口進行操作。

            COM組件的創建過程請參考本網站相關文章或參考相應書籍。這里不再贅述。

      二、串口應用組件接口方法函數

            為了跨語言調用組件,組件接口方法函數參數數據均采用VARIANT數據類型。

      (1)OpenPort( VARIANT portNo, VARIANT baud, VARIANT parity, VARIANT dataBits, 
                               VARIANT stopBits, VARIANT rtsCtrl, VARIANT* pbool)

            功能描述:打開指定串口。
            輸入參數:
                  VARIANT portNo  要打開的串口號
                  VARIANT baud 設置波特率
                  VARIANT parity 設置奇偶較驗
                  VARIANT dataBits 設置數據位
                  VARIANT stopBits 設置停止位
                  VARIANT rtsCtrl  RTS設置
            輸出參數:
                  VARIANT* pbool 串口打開成功失敗標志

      (2)WritePort(VARIANT *var_inp, VARIANT *retLen)

            功能描述:向串口寫數據
            輸入參數:
                  VARIANT *var_inp 發送數據緩存
            輸出參數:
                  VARIANT *retLen 發送數據個數

      (3)ReadPort(VARIANT *rxData)

            功能描述:讀取串口數據
            輸出參數:
                  VARIANT *rxData 接收數據緩存

      (4)ClosePort( )

            功能描述:關閉串口

      三、串口組件調用

            下面是在EVC中調用串口組件接口函數的一些程序片段,主要說明在調用接口方法時,VARIANT參數的用法。

            //從Program ID得到Class ID 
            hr = CLSIDFromProgID( OLESTR( 'ComSerial.CoSerial' ), &clsid );
            if( FAILED( hr ) )
            {
                  return -1;
            }
            //從Class ID得到ICoSerial接口指針
            hr = CoCreateInstance( clsid, NULL, CLSCTX_INPROC_SERVER, __uuidof( ICoSerial ),
                                                  ( void** )&pICoSerial );
            if( FAILED( hr ))
            {
                  return -1;
            }

            //打開串口  
            CComVariant portNo( 3 );                  //打開串口3
            CComVariant baud( 9600 );                 //波特率:9600
            CComVariant parity( 'n' );                //無校驗位
            CComVariant dataBits( 8 );                //8位數據
            CComVariant stopBits( 1 );                //1位停止位
            CComVariant rtsCtrl(RTS_CONTROL_TOGGLE);  //RTS設置
            CComVariant pbool( FALSE );               //串口打開成功標志
            pbool = pICoSerial->OpenPort( portNo, baud, parity, dataBits, stopBits, rtsCtrl );

            //向串口發送數據
            char strBuf[100];
            strcpy( strBuf, '1234567890!' );
            long i=0, m=0;
            m = strlen( strBuf );
            SAFEARRAY FAR* pSafeArray;
            SAFEARRAYBOUND rgsabound[1];
            rgsabound[0].lLbound = 0;
            rgsabound[0].cElements = m;
            pSafeArray = SafeArrayCreate( VT_VARIANT, 1, rgsabound );
            VARIANT var;
            for( i; i < m; i++)
         
      {

                  var.vt = VT_UI1;
                  var.bVal = strBuf[i];
                  SafeArrayPutElement( pSafeArray, &i, &var );
            }
            VARIANT tarray,retLen;
            tarray.parray = pSafeArray;
            retLen = pICoSerial->WritePort( &tarray );

            //接收數據
            VARIANT vinput, var;
            BYTE rxBuf[1500];
            vinput = pICoSerial->ReadPort(  );
            SafeArrayGetUBound( vinput.parray, 1, &lUbound );
            SafeArrayGetLBound( vinput.parray, 1, &lLbound );
            //m:串口接收到的數據個數
            m = lUbound - lLbound+1;
            // m=0表示串口沒有收到數據
            if( 0 == m )
                  return;
            for( i=0; i < m; i++)
          
      {
                  Safe=ArrayGetElement( vinput.parray, &i, &var );
                  rxBuf[i] = (BYTE)var.bVal;
            }

            在實際的應用中,通訊各方必須遵循統一的通訊規約。在發送數據前通常需要將數據按相應的協議打包,添加較驗信息等,收到數據后,要進行幀完整性判斷、數據解包、數據較驗、協議轉換等工作。現在可以將這些與協議密切相關的處理放在COM組件內部,客戶方在使用串口時僅需要對客戶感興趣的數據進行處理,而協議轉換等工作交由COM組件完成。這樣程序具有更好結構,維護也更加方便。


       

      狀 態: 離線

      公司簡介
      產品目錄

      公司名稱: 英創信息技術有限公司
      聯 系 人: 李林
      電  話: 028-86180660
      傳  真: 028-85141028
      地  址: 成都市高新區高朋大道5號博士創業園
      郵  編: 610041
      主  頁:
       
      該廠商相關技術文摘:
      GPRS集抄單元整機方案
      DOS工控主板的TCP/IP應用
      低成本LCD的選型與使用
      ARM9工控主板支持斷點續傳的FTP文件傳送
      嵌入式數據庫SQLCE的開發與應用
      C#使用COM組件接口操作精簡ISA總線
      基于精簡ISA總線的CE設備驅動程序
      工控主板EM9360的GPIO的各種使用方法
      工控主板EM9000數字IO的增強擴展
      英創工控主板同時驅動RS232和RS485的方法
      主板EM9161實現音頻輸出的方法
      更多文摘...
      立即發送詢問信息在線聯系該技術文摘廠商:
      用戶名: 密碼: 免費注冊為中華工控網會員
      請留下您的有效聯系方式,以方便我們及時與您聯絡

      關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
      工控網客服熱線:0755-86369299
      版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved

      主站蜘蛛池模板: 国产午夜福利在线观看播放| 乱码精品一区二区三区| 九九热视频精品在线播放| 亚洲丰满熟女一区二区蜜桃| 中文字幕亚洲一区二区三区| 亚洲嫩模喷白浆在线观看| 亚洲天堂亚洲天堂亚洲色图| 老色鬼在线精品视频在线观看| 亚洲性线免费观看视频成熟| 午夜在线观看成人av| 蜜臀av一区二区三区不卡| 久久国产精品波多野结衣| 99久久亚洲综合精品成人网| 亚洲情A成黄在线观看动漫尤物| 少妇熟女久久综合网色欲| 成人精品天堂一区二区三区| 国产在线观看网址不卡一区| 国产精品美女一区二区三| 国产熟女50岁一区二区| 欧美videos粗暴| 国产乱人伦偷精品视频下| 国产福利社区一区二区| 亚洲av无码乱码在线观看野外 | 国产精品成人午夜久久| 亚洲乱熟女一区二区三区| 超碰成人精品一区二区三| 内射极品少妇xxxxxhd| 亚洲精品乱码久久久久久中文字幕| 日韩人妻中文字幕精品| 久久亚洲综合精品成人网| 国内揄拍国内精品对久久| 国产精品成| 亚洲精品日韩在线观看| 日本久久99成人网站| 无码囯产精品一区二区免费| 亚洲av第三区国产精品| 自拍偷拍第一区二区三区| 久久婷婷大香萑太香蕉AV人| 丝袜a∨在线一区二区三区不卡| 中文字幕亚洲无线码A| 精品国产中文字幕av|