<style id="7i3y3"></style>

      <sub id="7i3y3"><i id="7i3y3"></i></sub>

        午夜精品一区二区三区成人,中文字幕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麻豆特色| 亚洲人成精品久久久久| 免费人成视频在线| av中文字幕在线资源网| 国产永久免费高清在线观看| 亚洲色大成网站WWW国产| 老熟妇喷水一区二区三区| 亚洲国产午夜精品福利| 在线亚洲午夜理论av大片| 亚洲国产中文综合专区在| 亚洲av无码之国产精品网址蜜芽 | 欧美和黑人xxxx猛交视频| 三上悠亚精品一区二区久久| 欧美日韩亚洲国产| 亚洲国产欧美一区二区好看电影| 国产a在视频线精品视频下载| 国产内射XXXXX在线| 午夜福利在线观看6080| 国产精品一区二区小视频| 一本精品99久久精品77| 无人视频在线观看免费播放影院| 免费国产拍久久受拍久久| 久久久久国产精品人妻电影| 日日碰狠狠添天天爽超碰97| 中文字幕理伦午夜福利片| 亚洲人成网站久久久综合| 国产目拍亚洲精品二区| 尹人香蕉久久99天天拍| 免费的特黄特色大片| 国产色爱av资源综合区| 五月婷婷久久草| 2020国产激情视频在线观看| 久久精品99久久久久久久久| 亚洲av无码精品蜜桃| 日本熟妇人妻中出| 中文字幕国产精品自拍| 两个人看的视频www| a在线观看视频在线播放| 亚洲自偷自拍熟女另类|