<strike id="kiyse"></strike>
  • <tr id="kiyse"></tr>
  • <strike id="kiyse"></strike><samp id="kiyse"><tbody id="kiyse"></tbody></samp>
    <strike id="kiyse"><s id="kiyse"></s></strike>
    <tr id="kiyse"></tr>
    <noframes id="kiyse"><code id="kiyse"></code></noframes>
    <th id="kiyse"></th>
    <samp id="kiyse"></samp>
  • <th id="kiyse"><s id="kiyse"></s></th>
  • 4~20mA電流環采集應用方案

     2017-3-31     作者:陳昌龍        

      工業上普遍需要測量各類非電物理量,例如溫度、壓力、速度、角度等,這些都需要轉換成模擬電信號才能傳輸到幾百米外的監控室或顯示設備上。因為電流信號不易受干擾,工業上廣泛采用4~20mA電流來傳輸模擬量。4mA表示0%的信號,可以區分0%信號和電路斷開;20mA表示100%的信號,其通斷引起的火花能量不足以引燃瓦斯。而控制端需要采集這個模擬電流量,將其轉換成數字量進行處理。


    1、硬件方案


      工業上除特殊要求需要自己設計模擬電流采集電路以外,通用的比較高效、低成本的模擬電流采集方案一般是直接購買專門廠商的模擬量采集模塊(俗稱亞當模塊)。配合上工控主機,可以實現下圖所示的采集流程:電流變送器將傳感器返回的非標準信號轉換成4~20mA的模擬電流信號進行傳輸;亞當模塊是一個ADC模塊,采集4~20mA的模擬電流,轉換成數值存放于寄存器中;主機通過RS485總線訪問各個模塊,得到相應寄存器的數值進行處理。


    4~20mA模擬電流采集應用方案.gif

    圖1 模擬電流采集示意圖


      針對4~20mA模擬電流的采集,市場上有許多廠商都能提供不同性能、不同價格的亞當模塊,這些模塊通過RS485總線接口與主機通信,通信協議是modbus RTU。英創主板提供RS485接口和modbus庫文件,能夠作為485主機,與亞當模塊構成模擬電流采集系統,并進行相應處理。目前,我們對市場上滿足4~20mA輸入范圍要求的一些亞當模塊做了比較詳細的評估,英創主板都能與它們正常通信,完成對模擬電流的采集處理。在9600波特率下,我們用5位半電流表對各個廠商不同產品的測量精度進行了評估(最低0.2%),具體情況及其他參數見表1,不同需求的客戶可以參考下表進行亞當模塊的選型。


      表1 模擬電流采集模塊參數比較


    型號DAM6080DAM7021EMR-AI08-IADAM-4117
    廠商深圳誠控深圳誠控深圳昶為臺灣研華

    單價(元)(不含稅)

    36029853315341
    測試電路與主控電路電源隔離隔離隔離隔離
    采集單元與控制單元光電隔離(2500VDC)光電隔離(2500VDC)光電隔離(1500VDC)光電隔離(3000VDC)
    隔離RS485
    通信接口

    RS232 RS485

    RS232 RS485RS485RS485
    輸入范圍+20mA±20mA4-20mA通道獨立可設
    輸入通道8路單端,共地2路差分,獨立8路差分接線,共負信號28路差分,獨立
    ADC分辨率12位16位12位16位
    轉換速率實測大于10Hz/通道大于5Hz/通道大于30Hz/通道3

    大于10Hz/total 大于30Hz/total4

    手冊5Hz/通道5Hz/通道100Hz/通道

    10/100Hz(total) 軟件可選

    輸入阻抗(Ω)200100250120
    測量精度5實測0.05%0.1%0.2%0.05%/0.15%
    手冊±0.2%±0.1%±0.2%±0.2%
    標準modbus RTU協議支持支持支持支持
    與其他型號組網6兼容兼容兼容兼容
    模塊地址PC端軟件修改PC端軟件修改485主機modbus協議修改PC端軟件修改

     ?。ňG色部分為實際測量結果,僅供參考)

      1. 研華的ADAM-4107+只要1146元,與ADAM-4117的區別主要是通道不能單獨設定輸入范圍,采樣率只有10Hz(total),用戶可以評估一下

      2. 實際就是單端,只是為每個通道提供了一個單獨的地信號接頭

      3. 大于30,9600波特率受限于讀函數一次耗時約30ms,最大能測到約30Hz;當波特率在115200時,讀一次時間約20ms,最大約能測50Hz,100次讀耗時不到2s,結果93次不同,表明差不多有50次/秒。受限實驗條件,不能驗證是否能達到100次/秒

      4. adam-4117測電流要打開外殼,改變跳線,在PC上設置地址采樣率(轉換速率)等參數,可以只enable一個通道,則這個通道的采樣率就是總的采樣率(大于30Hz/total測試過程通注釋3),如果enable多個通道,則每個通道平分總的采樣率

      5. 誤差除以量程為測量精度,5位半電流表測量值作為真實值;可以通過測試最大電流的采樣值和最小電流的采樣值重新標定采樣值范圍,修改換算公式的值來進一步改善

      6. 各個模塊設置不同的地址后,兩兩聯網,485通信沒有問題


      此外,市場上還有更低成本的低精度、單通道亞當模塊,只要其支持標準的modbus RTU協議,物理通信接口為RS485就能配合英創主板使用,設置成不同地址后,可以組建RS485網絡,通過英創提供的modbus庫函數進行訪問。不同模塊與英創主板的連接如圖2所示。


    4~20mA模擬電流采集應用方案.gif

    圖2 不同亞當模塊與英創主板連接


    2、應用軟件編程


      Modbus是工業控制器網絡通信協議中最常用的協議之一,其通信采用主從方式,在同一個網絡中有一個主設備及最多達255臺從設備。工業上一般使用modbus RTU模式,以16進制傳送數據,一個字節就是一幀,效率高于modbus ASCII模式。一個典型的modbus協議數據包由若干幀組成,如圖3所示:


    4~20mA模擬電流采集應用方案.gif

    圖3 modbus數據包格式


      其中,第1幀為從機地址,第2幀為功能碼,第3、4幀為主機欲訪問的從機的起始寄存器地址,第5、6幀為要訪問的寄存器個數,最后兩幀為16位CRC校驗碼。對任何一個 ModBus協議數據包,其第 1、2幀及最后兩幀的意義都是相同的,其他幀則根據功能碼不同而有所區別。


      英創提供的libmbusmaster.a庫實現了modbus協議,支持常用功能碼,詳細介紹請查閱網站文章《ModBus通訊協議軟件包》《英創嵌入式Linux工控主板支持Modbus主控協議軟件》、《Linux下的Modbus設備方協議軟件介紹》。

    下面就linux系統下,使用英創提供的libmbusmaster.a庫文件進行模擬電流采集應用編程作簡單介紹,更詳細的過程請參考具體例程。


      1、打開串口設備

      sprintf( hostName, "ttyS3:9600-8-1-0");

        hPort = mbusMaster_OpenPortProtocol( hostName );


      2、設置modbus通信超時時間

      i1 = mbusMaster_SetTimeout( hPort, 2000 );

        printf( "SetTimeout:%d\n",  i1 );


      3、讀取亞當模塊轉換結果寄存器,處理讀取值

        result = mbusMaster_ReadMultipleRegisters( hPort, moduleAddr, startAddr+channelStart,dataArr,channelCnt);

     

        if (result == 0)

        {

            sampleCnt++;

            printf("*****sample %d*****\n",sampleCnt);

            for (i1 = 0; i1 < channelCnt; i1++)

            {

                value[i1] = CalculateCircuit(moduleID, dataArr[i1]);

                printf("[%d]:\t%hd\t0x%04x\t%0.4f\n", i1 , dataArr[i1], dataArr[i1], value[i1]);

            }

        }

        else

        {

            strcpy( str,mbusMaster_GetErrorText( result ) );

            i1 = strlen( str );

            if( i1>0 )

            {

                printf( "%s!\n", str );

            }

        }


      其中,CalculateCircuit是根據不同模塊的轉換公式將讀到的數值轉換成對應的電流值。在使用mbusMaster_ReadMultipleRegisters讀取寄存器值時,要參照各模塊的手冊,傳遞不同的寄存器映射地址。如果讀取失敗,可以通過mbusMaster_GetErrorText函數提示失敗原因。


      4、關閉串口設備

      mbusMaster_ClosePortProtocol( hPort );


      如果用戶對4~20mA模擬電流采集應用方案感興趣,可以聯系我們。我們將提供表1所有的模塊信息及程序示例。


    3、總結


      目前,市面上亞當模塊(模擬數采模塊)在價格、性能、通道數上有非常靈活的選擇,單通道的亞當模塊最低不到¥100元就能買到。綜合我們的測試情況來看,主控部分使用英創主板,模擬數據采集部分使用市面上成熟的亞當模塊,是工業上一種快速構建4~20mA模擬電流采集硬件平臺的方案,并且具有很高的靈活性,能夠滿足用戶的不同需求。此外,英創的libmbusmaster.a庫文件實現了modbus協議的常用功能,用戶只要簡單的調用幾個函數,就能完成軟件上的編寫,大大減少了整個產品的開發周期,降低了開發難度。因此,此方案具有簡單、高效、靈活、低成本的優勢。

    囯产精品久久久久久久久久妞妞| 国产精品自在自线免费观看| 亚洲性日韩精品国产一区二区| 精品无码国产一区二区三区AV| 亚洲精品国产精品乱码不卞| 麻豆AV无码精品一区二区| 久久97精品久久久久久久不卡| 网曝门精品国产事件在线观看| 全球AV集中精品导航福利| 亚洲午夜精品第一区二区8050| 亚洲AV无码一区二区三区久久精品| 久久精品一区二区三区不卡| 国产三级精品三级男人的天堂| 国产精品jizz在线观看直播| 国产成人精品高清在线观看93| 500av大全导航精品| 久久久精品人妻久久影视| 97精品人人妻人人| 国产亚洲精品久久久久秋霞 | 国产成人精品免费视频大全五级| 久久久久无码精品国产| 91精品在线播放| 国产伦精品一区三区视频| 亚洲国产精品无码久久| 538精品在线视频| 国产精品白丝AV网站| 久久精品无码一区二区日韩AV| 精品久久免费视频| 99视频精品国在线视频艾草 | 亚洲av午夜成人片精品电影| 98色精品视频在线| 久久热这里只有精品在线观看 | 91久久精品国产免费直播| 久久精品国产999大香线焦| 国产自啪精品视频网站丝袜| 国产精品免费久久久久电影网| 国产精品9999久久久久仙踪林| 精品人妻少妇一区二区三区不卡 | 国产亚洲婷婷香蕉久久精品| 国产成人久久久精品二区三区| 国产在线观看精品一区二区三区91 |