<em id="ju2li"></em>

<style id="ju2li"><kbd id="ju2li"></kbd></style>

  • <style id="ju2li"></style>
    <acronym id="ju2li"><cite id="ju2li"></cite></acronym>
    <blockquote id="ju2li"></blockquote>
  • 国产av丝袜熟女一二三,国产精品国语对白露脸在线播放 ,中文字幕国产精品日韩,一区二区福利在线视频,日韩一区二区在线看精品,毛片无码一区二区三区,大屁股肥熟女流白浆,av中文字幕在线二区

    AMF電磁流量計通信協議

    2016/7/15 21:02:33 人評論 次瀏覽 分類:流量測量  文章地址:http://www.xzycr.cn/tech/908.html

    本電磁流量計通信協議針對AMF智能電磁流量計工業應用設計,通信協議版本:AMF CP V1.1。通信協議主要用于電磁流量計實時數據采集、流量測量及流量累計控制。
    電磁流量計

    一、主機系統通訊部件要求

    國際標準RS-485通訊接口部件,不小于10Bytes的通信緩沖區(FIFO),支持600、1200、2400、4800、9600、14400通訊波特率,支持半雙工通訊模式。通訊程序應允許FIFO,從機要求主機FIFO不小于10Bytes。

    二、協議結構
    AMF CP V1.1協議遵從基本開放系統互連(OSI)參考模型,基本開放系統互連參照模型提供通訊系統基本結構和要素,但昌暉AMF CP V1.1協議使用簡化的OSI參照模型,僅采用1、2和7層?;鹃_放系統互連參考模型

    三、AMF電磁流量計通信協議物理結構
    AMF電磁流量計的網絡通訊接口在物理結構上采用電氣隔離方式,隔離電壓1500伏。通訊數據傳輸接口為半雙工方式,標準通訊速率大于250khz,通訊方向轉換時間3.5uS。通訊接口電氣標準遵從RS-485國際標準。
    昌暉AMF CP V1.1協議可用于星型式網絡結構和總線式網絡結構。標準通訊連接介質為屏蔽雙絞線。


    四、AMF CP V1.1主機信息結構

    AMF CP V1.1協議為主從掃描式通訊協議,每次通訊過程均由主機發起,然后從機進行響應,回傳規定的信息,完成一次通訊過程。
    主機至從機信息結構

    主機發送至從機的信息由兩字節組成,第一字節為從機地址,其編碼:0-127(最高二進制位另有定義),第一字節為數據分類命令(下表定義)。從機通訊緩沖區(FIFO)為兩字節,因此,主機發送至從機的兩字節可連續發送,不必留時間間隔。
    從機工作在多機通訊方式,因此,主機應使用11位串行數據格式,并且不使用奇偶校驗,將奇偶校驗位作多機通訊尋址標志使用。主機發送第一個字節時,奇偶校驗位強制為1,發送第二個字節時,奇偶校驗位強制為0。(見附錄一)
    數據分類命令

    數據分類命令指示從機回送的數據類型,數據分類命令編碼:0---127,昌暉AMF CP V1.1 僅使用0—9號編碼,其他編碼暫時保留。

    五、AMF CP V1.1從機信息結構
    從機接受到主機命令信息后,按命令要求回傳測量數據。
    從機響應信息數據結構

    從機響應主機命令,回送10個字節數據,分為命令段、數據段、校驗和、結束標志四部分。
    1、命令段
    命令段由兩字節組成:從機地址和數據分類命令,該段是將主機發來的信息直接返回,用于主機校驗從機對主機傳送信息中地址和命令響應的正確性。 
    2、數據段
    由于流量計各測量數據長度、單位、符號等信息各不相同,因此,從機回傳的數據段按各命令具體定義。
    (1)流量信息定義
    數據段的D4、D3、D2、D1、D0五個字節組成十位流量測量數據,每字節表示兩位十進制數,每字節表示的十進制數值范圍:0-99。

    主機恢復流量測量值十進制數據的算法:
    a)流動方向
    將D4D3D2D1D0 恢復成十六進制數據DATA_HEX;若DATA_HEX<80000000H則流動方向為正;若DATA_HEX>=80000000H則智能電磁流量計流體流動方向為負; 
    b)原數據
    將DATA_HEX中的最高位(符號位)消掉,得到無符號原數據;即原數據=DATA_HEX與7FFFFFFFH;流量測量數據最大值為99999
    D5字節以段位方式定義流量單位、小數點位置:
    5位定義

    流量單位定義:0----L/S(升/秒)
                  1----L/M(升/分)
                  2----L/H(升/時)
                  3----M3/S(立方米/秒)
                  4----M3/M(立方米/分)
                  5----M3/H(立方米/時)
    小數點位置:  4 -------±.00000
                  5 -------±0.0000
                  6 -------±00.000
           7 -------±000.00
           8 -------±0000.0
           9 -------±00000;
                 10 ------±00000×10
             .  
             .
             .
           13-------±00000×10000
    (2)流速信息定義
    數據段的D4、D3、D2、D1、D0五個字節組成十位流速測量數據,每字節表示兩位十進制數,每字節表示的十進制數值范圍:0-99。

    主機恢復流速十進制數據的算法:
    a)流動方向將D4D3D2D1D0恢復成十六進制數據DATA_HEX;若DATA_HEX<80000000H則流動方向為正;若DATA_HEX>=80000000H則流動方向為負。       
    b)原數據
    將DATA_HEX中的最高位(符號位)消掉,得到無符號原數據;即原數據=DATA_HEX與7FFFFFFFH;流量測速數據最大值為19.999。
    D5無定義:
    流速單位固定:m/S(米/秒)。
    數點位置固定:±00.000。

    (3)流量百分比信息定義
    數據段的D4、D3、D2、D1、D0五個字節組成十位流量百分比測量數據,每字節表示兩位十進制數,每字節表示的十進制數值范圍:0-99。

    主機恢復流量百分比十進制數據的算法:
    a)流動方向
    將D4D3D2D1D0 恢復成十六進制數據DATA_HEX;若DATA_HEX<80000000H則流動方向為正;若DATA_HEX>=80000000H則流動方向為負。
    b)原數據
    將DATA_HEX中的最高位(符號位)消掉,得到無符號原數據;即原數據=DATA_HEX與7FFFFFFFH;流量測量百分比數據最大值為999.99。
    D5無定義:
    向定義: 0-----流體正向流動
             1-----流體反向流動
    流量百分比單位固定:%
    數點位置固定:±0000.0%

    (4)流體電導比信息定義
    數據段的D4、D3、D2、D1、D0五個字節組成十位電導比測量數據,每字節表示兩位十進制數。

    主機恢復流體電導比十進制數據的算法:原數據=10000×D2+100×D1+D0;流體電導比測量數據最大值為999.9。
    D5無定義。
    流體電導比單位固定:%
    小數點位置固定:000.0%

    (5)正向流量累積信息定義
    數據段的D4、D3、D2、D1、D0五個字節組成十位正向流量測量數據,每字節表示兩位十進制數。

    主機恢復流量十進制數據的算法:原數據=100000000×D4+1000000×D3+10000×D2+100×D1+D0;流量累積數據最大值為4294967296(十六進制0FFFFFFFFH)。
    D5字節以段位方式定義流量單位、小數點位置:
    D5字節位定義

    小數點位置及單位:0 ------- 1L
             1 ------- 0.1L
             2 ------- 0.01L 
             3 ------- 0.001L
             4 ------- 1m3
             5 ------- 0.1 m3
             6 ------- 0.01 m3     
             7 ------- 0.001 m3

    (6)反向流量累積信息定義
    反向流量累積信息定義同正向流量累積信息定義。

    (7)報警狀態信息定義
    數據段的D1、D0兩個字節組成二進制報警狀態。

    主機恢復報警狀態二進制數據的算法:原數據(二進制)=D0
    報警狀態定義


    (8)流量計管徑信息定義

    數據段的D0字節指示流量計管徑


    (9)禁止流量累積信息定義

    從機接到該命令后,立即停止流量累積,并回送命令認可信息。停止流量累積延續時間為20秒,20秒后從機自動恢復流量累積計算。因此,若想連續禁止流量累積計算,必須以小于20秒的間隔,向從機發送該命令。該功能可用于斷續過程計量。
    回送的命令認可信息由數據段的D4、D3、D2、D1、D0五個字節組成。

    主機恢復命令認可信息碼的算法:命令認可信息碼=100000000×D4+1000000×D3+10000×D2+100×D1+D0;正確的命令認可信息碼=2A3A4A5AH(十六進制)。

    (10)啟動流量累積信息定義
    從機接到該命令后,立即啟動流量累積計算,并回送命令認可信息。該功能可用于斷續過程計量。
    命令認可信息由數據段的D4、D3、D2、D1、D0五個字節組成。

    主機恢復命令認可信息碼的算法:命令認可信息碼=100000000×D4+1000000×D3+10000×D2+100×D1+D0;正確的命令認可信息碼=5A4A3A2AH(十六進制)。

    3.校驗和
    從機回傳的數據校驗和為前八個字節的異或和。
    異或和(byte8) = byte0 ⊕ byte1 ⊕ byte2 …………byte6 ⊕ byte7;
    4.信息塊結束標志
    從機以結束標志表示本次回傳信息塊完畢。結束標志編碼為:0AAH(通訊結束命令,十六進制格式)。

    六、昌暉AMF CP V1.1通訊過程時序
    通訊過程時序指編制通訊軟件時應遵從的時間間隔、延時、等待時間等。
    1、主機發送時序
    主機發送的兩個信息字節間的時間間隔最小為0,最大時間間隔為20毫秒,大于20毫秒,從機認為發送超時。
    2、從機回傳時序
    從機最小回傳響應時間為0,最大為10毫秒+11位傳送時間;從機每個回傳字節時間間隔最大為10毫秒+11位傳送時間。(11位傳送時間根據選用波特率計算出)
    3、從機允許的通訊頻度
    從機允許的通訊頻度為20次/每秒,大于該值,可能影響從機其他功能。

    七、AMF電磁流量計通信協議波特率
    昌暉AMF CP V1.1支持的通訊波特率為:600、1200、2400、4800、9600、14400。

    八、AMF CP V1.1通訊數據塊偵錯信息
    1、從機地址和數據分類命令回傳,主機可用于校對從機是否正確響應。
    2、從機回傳字節異或和校驗,主機可用于校對是否有數據位錯誤。
    3、從機回傳字節中B7 = 0為數據字節,B7 = 1為命令字節。
    4、從機回傳字節中的數據字節值不大于99。
    5、從機回傳字節數長度固定,共十字節長度,主機可做長度檢驗。
    6、從機回傳結束標志,主機可用于長度檢驗和數據字節定位。

    九、AMF電磁流量計標準通訊網絡連接圖
            附錄一  通訊實驗程序
               (MSDOS TURBO C)

    #incLude<stdio.h>
    #incLude<io.h>

    /*  MODE setting        */
    #define BIT_5       0x00            /* Word Length define   */
    #define BIT_6       0x01
    #define BIT_7       0x02
    #define BIT_8       0x03

    #define STOP_1      0x00            /* Stop bits define */
    #define STOP_2      0x04

    #define P_EVEN      0x18            /* Parity define    */
    #define P_ODD       0x08
    #define P_SPC       0x38            /* Set tb = 0       */
    #define P_MARK      0x28            /* Set tb = 1       */
    #define P_NONE      0x00

    #define I_RDA       0x01       /* EnabLe recieve-data-avaiLabLe interrupt */
    #define I_TRE       0x02   /* EnabLe transmitter-hoLding-register-empty interrupt */
    #define I_RLS       0x04       /* EnabLe recieve-Line-status interrupt */
    #define I_MS        0x08       /* EnabLe modem-status interrupt */
    #define I_NON       0x00       /* DisabLe interrupt */

    #define B600        0xc0
    #define B1200       0x60
    #define B2400       0x30
    #define B4800       0x18
    #define B9600       0x0C
    #define B14400      0x08

    #define COM1_ADDR  0x3e8

    unsigned char  COMM_Buf[100];
    unsigned char   baud_rate;
    unsigned int error_cnt;

    void SioInit_1(void)
    {
      outportb(COM1_ADDR + 2, 0xcf);   /* EnabLe FIFO and cLear FIFO  */
      outportb(COM1_ADDR + 3, 0x80);   /* Set DLAB = 1  */

      /* Set bps */
      outportb(COM1_ADDR,     baud_rate % 256);
      outportb(COM1_ADDR + 1, baud_rate / 256);

      outportb(COM1_ADDR + 3, BIT_8 | STOP_1 | P_MARK);   /* 11 bits mode & P = 1 */
      outportb(COM1_ADDR + 1, I_NON);                     /* disabLe interrupt */
    }

    void SioInit_0(void)
    {
      outportb(COM1_ADDR + 2, 0xcf);             /* EnabLe FIFO and cLear FIFO  */
      outportb(COM1_ADDR + 3, 0x80);             /* Set DLAB = 1  */

      /* Set bps */
      outportb(COM1_ADDR,     baud_rate % 256);
      outportb(COM1_ADDR + 1, baud_rate / 256);
      outportb(COM1_ADDR + 3, BIT_8 | STOP_1 | P_SPC);  /* 11 bits mode & P = 0 */
      outportb(COM1_ADDR + 1, I_NON);                   /* disabLe interrupt */
    }

    int SioRecieve()
    { unsigned k;
      for (k=0;k<10000;k++)
        {if((inportb(COM1_ADDR + 5) & 1) == 1)
         { return inportb(COM1_ADDR); }
          deLay(1);
        }
      return 0;
    }

    void SioSend(unsigned char data)
    { outportb(COM1_ADDR,data);  /* Send data */
      whiLe((inportb(COM1_ADDR + 5) & 0x40) == 0){}
    }

    main()
    { int i; 
    unsigned char ch_n;
      unsigned char ch;
      int cnnt;

      baud_rate = B14400;

      cnnt=0;
      error_cnt = 0;
      ch_n = 0;
      for(;;) {
       SioInit_1();
       cnnt++;
       cprintf("%03d ",cnnt);
       cprintf("Send Data  ");

       ch = 0x03;
       SioSend(ch);
       outportb(COM1_ADDR + 3, BIT_8 | STOP_1 | P_SPC);
       SioSend(ch_n);
       ch_n = (ch_n + 1) & 7;
       for (i=0;i<10;i++) { COMM_Buf[i] = SioRecieve(); }
       deLay(20);
       for (i=0;i<10;i++) { cprintf("%03d ",COMM_Buf[i]); }
       if ((COMM_Buf[9] != 0xaa) && (COMM_Buf[9] != 0)) { error_cnt++; }
       cprintf("%05d\n\r",error_cnt);
       deLay(20);
       }
    }

    共有訪客發表了評論 網友評論

      客戶姓名:
    郵箱或QQ:
    驗證碼: 看不清楚?
    主站蜘蛛池模板: 国产成人精品亚洲高清在线| 国产情侣自拍av在线| 99精品国产一区二区三区| 人妻无码精品| 国产精品林美惠子在线观看| 人人澡超碰碰97碰碰碰| 久久精品国产亚洲7777| 夜夜福利| 3p在线视频| 久久国内精品一国内精品| 国产av中文字幕精品| 91精品老司机福利在线观看| 中文字幕亚洲乱码熟女| 67194手机在线网址| 天堂AV无码大芭蕉伊人AVapp| 亚洲无码a∨在线视频| a级国产乱理伦片在线观看al| 久久涩综合| 精品久久中文字幕有码| 久久被窝亚洲精品爽爽爽| 中文字幕av无码免费一区| 亚洲全网成人资源在线观看| 国产乱人伦av在线无码| 亚洲大尺度无码无码专线| 国产精品无码av天天爽| 亚洲精品天堂无码中文字幕| 亚洲国产精久久久久久久春色| 亚洲国产成熟视频在线多多| 国产九九免费| 久久久精品2019免费观看| 日本一卡2卡3卡四卡精品网站| 中文字幕乱码人妻综合二区三区 | 乱人伦人妻中文字幕不卡| 色欲狠狠躁天天躁无码中文字幕| 免费无码黄网站在线观看| www三级片| 国产成人精品无码专区| 一区国产传媒国产精品| 国模粉嫩小泬视频在线观看| 亚洲精品一二三四区| 激情综合五月|