日本b站一卡二不卡_草樱免费视频_yellow字幕网在线_午夜dj免费在线观看

9000px;">
  • <nav id="6mk8i"></nav>
    返回首頁 在線訂單 聯(lián)系我們

    服務熱線:0550-7025603

    產品分類
    聯(lián)系我們
    公司名稱:安徽美克斯自動化儀表有限公司
    地址:安徽省天長市唐人街14號
    郵編:239300
    電話:0550-7025603
    手機: 15055008401
    聯(lián)系人: 李經(jīng)理
    傳真:0550-7020026
    網(wǎng)址:www.www811233.com
    E-mail: 2298728263@qq.com
    技術文章
    當前位置:首頁 > 技術文章
    MODBUS通訊協(xié)議以及應用
    點擊次數(shù):2727 更新時間:2009-12-20

    ModBus通訊協(xié)議分為RTU協(xié)議和ASCII協(xié)議,我公司的多種儀表都采用ModBus RTU通訊協(xié)議,如:YD2000智能電力監(jiān)測儀、巡檢表、數(shù)顯表、光柱數(shù)顯表等。下面就ModBus RTU協(xié)議簡要介紹如下:

    一、通訊協(xié)議

    (一)、通訊傳送方式
       通訊傳送分為獨立的信息頭,和發(fā)送的編碼數(shù)據(jù)。以下的通訊傳送方式定義也與MODBUS RTU通訊規(guī)約相兼容:

    編 碼

    8位二進制

    起始位

    1位

    數(shù)據(jù)位

    8位

    奇偶校驗位

    1位(偶校驗位)

    停止位

    1位

    錯誤校檢

    CRC(冗余循環(huán)碼)

    初始結構 = ≥4字節(jié)的時間
    地址碼 = 1 字節(jié)
    功能碼 = 1 字節(jié)
    數(shù)據(jù)區(qū) = N 字節(jié)
    錯誤校檢 = 16位CRC碼
    結束結構 = ≥4字節(jié)的時間


      地址碼:地址碼為通訊傳送的*個字節(jié)。這個字節(jié)表明由用戶設定地址碼的從機將接收由主機發(fā)送來的信息。并且每個從機都有具有*的地址碼,并且響應回送均以各自的地址碼開始。主機發(fā)送的地址碼表明將發(fā)送到的從機地址,而從機發(fā)送的地址碼表明回送的從機地址。

      功能碼:通訊傳送的第二個字節(jié)。ModBus通訊規(guī)約定義功能號為1到127。本儀表只利用其中的一部分功能碼。作為主機請求發(fā)送,通過功能碼告訴從機執(zhí)行什么動作。作為從機響應,從機發(fā)送的功能碼與從主機發(fā)送來的功能碼一樣,并表明從機已響應主機進行操作。如果從機發(fā)送的功能碼的zui高位為1(比如功能碼大與此同時127),則表明從機沒有響應操作或發(fā)送出錯。

      數(shù)據(jù)區(qū):數(shù)據(jù)區(qū)是根據(jù)不同的功能碼而不同。數(shù)據(jù)區(qū)可以是實際數(shù)值、設置點、主機發(fā)送給從機或從機發(fā)送給主機的地址。

       CRC碼:二字節(jié)的錯誤檢測碼。

    (二)、通訊規(guī)約:

       當通訊命令發(fā)送至儀器時,符合相應地址碼的設備接通訊命令,并除去地址碼,讀取信息,如果沒有出錯,則執(zhí)行相應的任務;然后把執(zhí)行結果返送給發(fā)送者。返送的信息中包括地址碼、執(zhí)行動作的功能碼、執(zhí)行動作后結果的數(shù)據(jù)以及錯誤校驗碼。如果出錯就不發(fā)送任何信息。

    1.信息幀結構

    地址碼

    功能碼

    數(shù)據(jù)區(qū)

    錯誤校驗碼

    8位

    8位

    N × 8位

    16位

      地址碼:地址碼是信息幀的*字節(jié)(8位),從0到255。這個字節(jié)表明由用戶設置地址的從機將接收由主機發(fā)送來的信息。每個從機都必須有*的地址碼,并且只有符合地址碼的從機才能響應回送。當從機回送信息時,相當?shù)牡刂反a表明該信息來自于何處。

       功能碼:主機發(fā)送的功能碼告訴從機執(zhí)行什么任務。表1-1列出的功能碼都有具體的含義及操作。

    代碼

    含義

    操作

    03

    讀取數(shù)據(jù)

    讀取當前寄存器內一個或多個二進制值

    06

    重置單一寄存器

    把設置的二進制值寫入單一寄存器

      數(shù)據(jù)區(qū):數(shù)據(jù)區(qū)包含需要從機執(zhí)行什么動作或由從機采集的返送信息。這些信息可以是數(shù)值、參考地址等等。例如,功能碼告訴從機讀取寄存器的值,則數(shù)據(jù)區(qū)必需包含要讀取寄存器的起始地址及讀取長度。對于不同的從機,地址和數(shù)據(jù)信息都不相同。

      錯誤校驗碼:主機或從機可用校驗碼進行判別接收信息是否出錯。有時,由于電子噪聲或其它一些干擾,信息在傳輸過程中會發(fā)生細微的變化,錯誤校驗碼保證了主機或從機對在傳送過程中出錯的信息不起作用。這樣增加了系統(tǒng)的安全和效率。錯誤校驗采用CRC-16校驗方法。

    注:信息幀的格式都基本相同:地址碼、功能碼、數(shù)據(jù)區(qū)和錯誤校驗碼。

    2.錯誤校驗

       冗余循環(huán)碼(CRC)包含2個字節(jié),即16位二進制。CRC碼由發(fā)送設備計算,放置于發(fā)送信息的尾部。接收信息的設備再重新計算接收到信息的 CRC碼,比較計算得到的CRC碼是否與接收到的相符,如果兩者不相符,則表明出錯。

      CRC碼的計算方法是,先預置16位寄存器全為1。再逐步把每8位數(shù)據(jù)信息進行處理。在進行CRC碼計算時只用8位數(shù)據(jù)位,起始位及停止位,如有奇偶校驗位的話也包括奇偶校驗位,都不參與CRC碼計算。

       在計算CRC碼時,8位數(shù)據(jù)與寄存器的數(shù)據(jù)相異或,得到的結果向低位移一字節(jié),用0填補zui高位。再檢查zui低位,如果zui低位為1,把寄存器的內容與預置數(shù)相異或,如果zui低位為0,不進行異或運算。

       這個過程一直重復8次。第8次移位后,下一個8位再與現(xiàn)在寄存器的內容相相異或,這個過程與以上一樣重復8次。當所有的數(shù)據(jù)信息處理完后,zui后寄存器的內容即為CRC碼值。CRC碼中的數(shù)據(jù)發(fā)送、接收時低字節(jié)在前。

       計算CRC碼的步驟為:

    • 預置16位寄存器為十六進制FFFF(即全為1)。稱此寄存器為CRC寄存器;

    • 把*個8位數(shù)據(jù)與16位CRC寄存器的低位相異或,把結果放于CRC寄存器;

    • 把寄存器的內容右移一位(朝低位),用0填補zui高位,檢查zui低位;

    • 如果zui低位為0:重復第3步(再次移位); 如果zui低位為1:CRC寄存器與多項式A001(1010 0000 0000 0001)進行異或;

    • 重復步驟3和4,直到右移8次,這樣整個8位數(shù)據(jù)全部進行了處理;

    • 重復步驟2到步驟5,進行下一個8位數(shù)據(jù)的處理;

    • zui后得到的CRC寄存器即為CRC碼。

    3.功能碼03,讀取點和返回值:

      儀表采用Modbus RTU通訊規(guī)約,利用通訊命令,可以進行讀取點(“保持寄存器”) 或返回值(“輸入寄存器” )的操作。保持和輸入寄存器都是16位(2字節(jié))值,并且高位在前。這樣用于儀表的讀取點和返回值都是2字節(jié)。一次zui多可讀取寄存器數(shù)是60。由于一些可編程控制器不用功能碼03,所以功能碼03被用作讀取點和返回值。從機響應的命令格式是從機地址、功能碼、數(shù)據(jù)區(qū)及CRC碼。數(shù)據(jù)區(qū)中的寄存器數(shù)據(jù)都是每兩個字節(jié)高字節(jié)在前。

    4.功能碼06,單點保存

      主機利用這條命令把單點數(shù)據(jù)保存到儀表的存儲器。從機也用這個功能碼向主機返送信息。

    二、編程舉例

      下面是一個用VC編寫的ModBus RTU通訊的例子

    (一)、通訊口設置

    DCB dcb;
    hCom=CreateFile("COM1",
         GENERIC_READ|GENERIC_WRITE,
         0,
         NULL,
         OPEN_EXISTING,
         0,
         NULL);
    if(hCom==INVALID_HANDLE_VALUE)
    {
      MessageBox("createfile error,error");
    }
    BOOL error=SetupComm(hCom,1024,1024);
    if(!error)
      MessageBox("setupcomm error");
    error=GetCommState(hCom,&dcb);
    if(!error)
      MessageBox("getcommstate,error");
    dcb.BaudRate=2400;
    dcb.ByteSize=8;

    dcb.Parity=EVENPARITY;//NOPARITY;
    dcb.StopBits=ONESTOPBIT;

    error=SetCommState(hCom,&dcb);

    (二)、CRC校驗碼計算

    UINT crc
    void calccrc(BYTE crcbuf)
    {
    BYTE i;

    crc=crc ^ crcbuf;
    for(i=0;i<8;i++)
    {
    BYTE TT;
    TT=crc&1;
    crc=crc>>1;
    crc=crc&0x7fff;
    if (TT==1)
    crc=crc^0xa001;
    crc=crc&0xffff;
    }
    }

    (三)、數(shù)據(jù)發(fā)送

    zxaddr=11;//讀取地址為11的巡檢表數(shù)據(jù)
    zxnum=10;//讀取十個通道的數(shù)據(jù)

    writebuf2[0]=zxaddr;
    writebuf2[1]=3;
    writebuf2[2]=0;
    writebuf2[3]=0;
    writebuf2[4]=0;
    writebuf2[5]=zxnum;
    crc=0xffff;
    calccrc(writebuf2[0]);
    calccrc(writebuf2[1]);
    calccrc(writebuf2[2]);
    calccrc(writebuf2[3]);
    calccrc(writebuf2[4]);
    calccrc(writebuf2[5]);

    writebuf2[6]=crc & 0xff;
    writebuf2[7]=crc/0x100;
    WriteFile(hCom,writebuf2,8,&comnum,NULL);

    (四)、數(shù)據(jù)讀取

    ReadFile(hCom,writebuf,5+zxnum*2,&comnum,NULL);//讀取zxnum個通道數(shù)據(jù)
    可增加錯誤處理程序,如地址碼錯誤、CRC碼錯誤判斷、通訊故障處理等。

    日本b站一卡二不卡_草樱免费视频_yellow字幕网在线_午夜dj免费在线观看
  • <nav id="6mk8i"></nav>
    国产精品久久久久国产精品日日| 91精彩视频在线观看| 欧美丝袜自拍制服另类| 成人一级片网址| 日本一区二区在线不卡| 欧美在线制服丝袜| 成人国产精品免费网站| 91国偷自产一区二区三区观看| 99精品视频一区二区| 6080yy午夜一二三区久久| 欧美最猛黑人xxxxx猛交| 色综合久久88色综合天天免费| 奇米影视一区二区三区| 亚洲一区在线视频观看| 久久久亚洲综合| 92国产精品观看| 波多野结衣视频一区| 国产成人精品aa毛片| 亚洲电影激情视频网站| 成人av在线一区二区三区| 91精品国产综合久久久久久漫画| 欧美日韩高清一区二区三区| 亚洲国产精品麻豆| 日韩一区二区三区三四区视频在线观看| 91国偷自产一区二区开放时间| 日韩一区二区在线观看视频播放| 欧美一区二区大片| 日本韩国精品一区二区在线观看| 久久国产三级精品| 国产suv精品一区二区6| 国产成人欧美日韩在线电影| 亚洲国产欧美日韩另类综合| 久久综合九色欧美综合狠狠| 天堂午夜影视日韩欧美一区二区| www.色综合.com| 国产亚洲欧美日韩在线一区| 色婷婷综合久久久中文一区二区| 精品sm在线观看| 日韩毛片高清在线播放| 欧美精品1区2区| 日韩欧美成人一区二区| 一区二区三区丝袜| 免费欧美在线视频| 精品欧美一区二区在线观看| 成人av在线电影| 1区2区3区精品视频| 99久久er热在这里只有精品15| 一本久久a久久免费精品不卡| 中文在线一区二区| 亚洲免费视频中文字幕| 91美女片黄在线观看91美女| 在线视频欧美精品| 久久av资源站| 欧美精品一区二区三区高清aⅴ| 亚洲国产成人精品视频| 亚洲精品在线三区| 国内精品伊人久久久久av影院| 久久久国产一区二区三区四区小说| jlzzjlzz欧美大全| 欧美精选在线播放| 久久先锋影音av鲁色资源| 老鸭窝一区二区久久精品| 欧美国产成人精品| 亚洲人成人一区二区在线观看| 欧美性生活一区| 亚洲欧美一区二区三区国产精品| 欧美三级视频在线观看| 精品久久久久久久久久久久久久久久久| 图片区小说区国产精品视频| 日韩国产在线一| 欧美亚洲国产一区在线观看网站| 九九久久精品视频| 美脚の诱脚舐め脚责91| 91麻豆福利精品推荐| 国产女人18毛片水真多成人如厕| 色哟哟一区二区| 99久久er热在这里只有精品66| 日韩黄色一级片| 亚洲一区日韩精品中文字幕| 久久久久9999亚洲精品| 成人激情av网| 国产精品自拍毛片| 午夜精品福利在线| 日韩女优电影在线观看| 亚洲欧洲综合另类在线| 日韩精品久久理论片| 91精品国产欧美日韩| 欧美精品一区二区高清在线观看| 91精品国产欧美日韩| 日本久久一区二区三区| 久久精品国产99久久6| 一区二区三区日韩欧美精品| 日韩av电影免费观看高清完整版| 日韩精品中文字幕在线不卡尤物| 欧美一区二区福利视频| 久久精工是国产品牌吗| 亚洲高清久久久| 国产91精品精华液一区二区三区| 欧美色老头old∨ideo| 欧美视频一区二区| 欧美电影免费观看高清完整版在线| 国产成人a级片| 欧美男同性恋视频网站| 国产精品进线69影院| 亚洲免费观看高清完整版在线观看熊| 亚洲综合激情另类小说区| 91行情网站电视在线观看高清版| 日韩不卡手机在线v区| 中文字幕av一区 二区| 久久国产日韩欧美精品| 欧美精品视频www在线观看| 国产一区二区成人久久免费影院| 国产欧美精品一区二区色综合朱莉| 国产欧美日韩不卡| 久久疯狂做爰流白浆xx| 中文字幕一区二区5566日韩| 国产清纯在线一区二区www| 黑人巨大精品欧美一区| 视频一区二区三区入口| 在线视频国产一区| 99久久久免费精品国产一区二区| 麻豆91免费观看| 成人国产视频在线观看| 日韩成人精品在线观看| 国产精品日韩精品欧美在线| 91麻豆产精品久久久久久| 久久精品99国产精品日本| 日韩精品一区二区三区视频播放| 国产一区不卡视频| 日本不卡一二三| 欧美一区二区三区视频| 一本色道久久综合精品竹菊| 一级精品视频在线观看宜春院| 99久久99久久久精品齐齐| 欧美成人福利视频| 日本特黄久久久高潮| 男人操女人的视频在线观看欧美| 在线不卡中文字幕播放| 亚洲一区二区三区不卡国产欧美| 日本sm残虐另类| 欧美一区二区免费视频| 一区二区高清免费观看影视大全| 在线视频国产一区| 2023国产一二三区日本精品2022| 夜夜揉揉日日人人青青一国产精品| 亚洲精品国产a久久久久久| 日本成人超碰在线观看| 色妞www精品视频| 成人污视频在线观看| 免费成人av在线| 欧美高清性hdvideosex| 亚洲观看高清完整版在线观看| 99re热视频这里只精品| 国产成人三级在线观看| 国产亚洲精品福利| 久久综合久久综合九色| 久久精品欧美日韩| 日韩精品每日更新| 久久日一线二线三线suv| 亚洲国产精品高清| 精品国产免费视频| 91在线视频在线| 美国一区二区三区在线播放| 日韩一级大片在线观看| 久久精品国产免费看久久精品| 日韩av一级片| 最新久久zyz资源站| 久久日韩粉嫩一区二区三区| 一区二区三区成人在线视频| 三级影片在线观看欧美日韩一区二区| 国产成都精品91一区二区三| 欧美日韩国产美| 色一情一伦一子一伦一区| 亚洲大片免费看| 日本不卡一区二区| 久久综合色一综合色88| 色综合久久中文综合久久97| 亚洲视频综合在线| 中文字幕亚洲一区二区va在线| 91九色02白丝porn| 国产欧美一区二区精品秋霞影院| 国产精品天美传媒沈樵| fc2成人免费人成在线观看播放| 亚洲一二三区视频在线观看| 成人黄色国产精品网站大全在线免费观看| 91精品综合久久久久久| 一区二区三区在线观看欧美| 成人网页在线观看| 精品一区二区三区视频在线观看| 在线视频综合导航| 91福利国产精品| 毛片基地黄久久久久久天堂| 亚洲欧洲日韩av| 麻豆精品视频在线观看| 国产午夜精品一区二区| 欧美美女一区二区在线观看| 成人久久久精品乱码一区二区三区| 欧美日韩夫妻久久| 成人免费在线观看入口| 中文字幕第一区第二区|