999国内精品永久免费视频,色偷偷9999www,亚洲国产成人爱av在线播放,6080亚洲人久久精品,欧美超高清xxxhd

首頁 新聞 工控搜 論壇 廠商論壇 產(chǎn)品 方案 廠商 人才 文摘 下載 展覽
中華工控網(wǎng)首頁
  P L C | 變頻器與傳動 | 傳感器 | 現(xiàn)場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業(yè)以太網(wǎng) | 現(xiàn)場總線 | 顯示調(diào)節(jié)儀表 | 數(shù)據(jù)采集 | 數(shù)傳測控 | 工業(yè)安全
  電 源 | 嵌入式系統(tǒng) | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
ARM9工控板在遠(yuǎn)程監(jiān)控中的應(yīng)用
英創(chuàng)信息技術(shù)有限公司
收藏本文     查看收藏

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

一、創(chuàng)建串口應(yīng)用COM組件

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

      本串口COM組件提供四個接口方法函數(shù):打開串口,關(guān)閉串口,向串口寫數(shù)據(jù),讀串口數(shù)據(jù)?蛻舴秸{(diào)用COM組件打開串口后,COM組件服務(wù)器便在組件內(nèi)部創(chuàng)建一數(shù)據(jù)接收線程,接收線程里通過WaitCommEvent來等待串口事件發(fā)生,當(dāng)串口收到數(shù)據(jù)后,將數(shù)據(jù)放入指定的接收數(shù)據(jù)緩存中,客戶方可調(diào)用讀串口數(shù)據(jù)方法函數(shù)將緩存中的數(shù)據(jù)讀出。在實際應(yīng)用中,客戶可在接收線程中加入自己特定的協(xié)議轉(zhuǎn)換代碼,使得通過組件讀取的數(shù)據(jù)為一個完整應(yīng)用報文。

      為了跨語言調(diào)用組件,接口方法函數(shù)參數(shù)數(shù)據(jù)均采用VARIANT數(shù)據(jù)類型,這樣ASP、vbscript等可方便的進行組件調(diào)用,從而輕松實現(xiàn)通過網(wǎng)頁對串口進行操作。

      COM組件的創(chuàng)建過程請參考本網(wǎng)站相關(guān)文章或參考相應(yīng)書籍。這里不再贅述。

二、串口應(yīng)用組件接口方法函數(shù)

      為了跨語言調(diào)用組件,組件接口方法函數(shù)參數(shù)數(shù)據(jù)均采用VARIANT數(shù)據(jù)類型。

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

      功能描述:打開指定串口。
      輸入?yún)?shù):
            VARIANT portNo  要打開的串口號
            VARIANT baud 設(shè)置波特率
            VARIANT parity 設(shè)置奇偶較驗
            VARIANT dataBits 設(shè)置數(shù)據(jù)位
            VARIANT stopBits 設(shè)置停止位
            VARIANT rtsCtrl  RTS設(shè)置
      輸出參數(shù):
            VARIANT* pbool 串口打開成功失敗標(biāo)志

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

      功能描述:向串口寫數(shù)據(jù)
      輸入?yún)?shù):
            VARIANT *var_inp 發(fā)送數(shù)據(jù)緩存
      輸出參數(shù):
            VARIANT *retLen 發(fā)送數(shù)據(jù)個數(shù)

(3)ReadPort(VARIANT *rxData)

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

(4)ClosePort( )

      功能描述:關(guān)閉串口

三、串口組件調(diào)用

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

      //從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位數(shù)據(jù)
      CComVariant stopBits( 1 );                //1位停止位
      CComVariant rtsCtrl(RTS_CONTROL_TOGGLE);  //RTS設(shè)置
      CComVariant pbool( FALSE );               //串口打開成功標(biāo)志
      pbool = pICoSerial->OpenPort( portNo, baud, parity, dataBits, stopBits, rtsCtrl );

      //向串口發(fā)送數(shù)據(jù)
      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 );

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

      在實際的應(yīng)用中,通訊各方必須遵循統(tǒng)一的通訊規(guī)約。在發(fā)送數(shù)據(jù)前通常需要將數(shù)據(jù)按相應(yīng)的協(xié)議打包,添加較驗信息等,收到數(shù)據(jù)后,要進行幀完整性判斷、數(shù)據(jù)解包、數(shù)據(jù)較驗、協(xié)議轉(zhuǎn)換等工作,F(xiàn)在可以將這些與協(xié)議密切相關(guān)的處理放在COM組件內(nèi)部,客戶方在使用串口時僅需要對客戶感興趣的數(shù)據(jù)進行處理,而協(xié)議轉(zhuǎn)換等工作交由COM組件完成。這樣程序具有更好結(jié)構(gòu),維護也更加方便。


 

狀 態(tài): 離線

公司簡介
產(chǎn)品目錄

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

關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 本站動態(tài) | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網(wǎng)客服熱線:0755-86369299
版權(quán)所有 中華工控網(wǎng) Copyright©2022 Gkong.com, All Rights Reserved