在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            Modbus總線協(xié)議

            作者: 時間:2016-12-16 來源:網(wǎng)絡(luò) 收藏
            Modbus協(xié)議最初由Modicon公司開發(fā)出來,是針對PLC設(shè)備設(shè)計的基于串行總線的主從模式的應(yīng)用層總線設(shè)備協(xié)議。ModbusTCP是封裝在TCP包內(nèi)的Modbus協(xié)議,雖然有一些變化,但是根本上還是主從模式。
              隨著嵌入式技術(shù)的發(fā)展,國內(nèi)很多系統(tǒng)的控制和采集單元部分為公司自主研發(fā),一般建議這些公司的串行通訊協(xié)議采用Modbus協(xié)議,很多用戶在modbus協(xié)議存在著理解錯誤,現(xiàn)在分析如下:
              一、modbus的保持和輸入寄存器是以word(16bit)為單位的。
              比如4****(保持寄存器/輸出寄存器)和3****(輸入寄存器)是以字為單位的。所以,如果讀40001寄存器開始的一個16位的無符號數(shù),那么返回2個Byte,并可以從40002開始讀下一個16位的無符號數(shù)。
              但是,如果讀40001寄存器開始的一個32位浮點數(shù),那么,返回4個Byte,而且,下一個32位浮點數(shù)必須從40003開始。
              常見問題:
              1)、將40001定義為一個Byte的數(shù)據(jù);
              2)、將40001定義為32位浮點數(shù),40002為下一個32位浮點數(shù)。
               二、寄存器最小地址為1,而報文起始地址為0。
              在數(shù)據(jù)報文中,所有的modbus地址都是從0開始的。也就是首次出現(xiàn)的數(shù)據(jù)項在報文中的地址為0。比如:
              1.在控制器中,“線圈1”在Modbus報文的地址域中的地址為00 00。
              2.線圈127的十六進制報文地址為007E hex(十進制的126)
              3.保持寄存器40001的報文地址為00 00。因為報文功能碼明確要操作“保持寄存器”,所以,協(xié)議就以“4XXXX”代表這個寄存器。
              4.保持寄存器40108的報文地址為006B hex (十進制107)
              總之,Modbus地址一般指4****(保持寄存器/輸出寄存器)和3****(輸入寄存器),這時應(yīng)用層面的:
              比如設(shè)備說明書可以簡要說明設(shè)備支持Modbus RTU標(biāo)準(zhǔn)協(xié)議,并詳細描述其地址對應(yīng)關(guān)系為:40001 -- 模擬量采集通道1,16位有符號數(shù),.....。比如組態(tài)軟件的地址設(shè)置,一般為輸出寄存器,從地址1開始,連續(xù)多少個?;蛘咧该?00001:16位有符號數(shù)。但是,在數(shù)據(jù)報文層面,寄存器起始地址從0開始。
              數(shù)據(jù)報文包括:設(shè)備地址+功能碼+起始地址+寄存器個數(shù)+校驗位。其中,起始地址是從0開始的。
              舉例說明:從設(shè)備17讀40001開始的2個寄存器數(shù)據(jù)的報文
              設(shè)備地址 功能碼 起始地址 寄存器個數(shù) 校驗
               11 03 00 00 00 02 --
              常見問題:
              1、使用和定義40000地址;
              2、分析報文時,直接將報文起始地址當(dāng)作應(yīng)用層寄存器地址。
              3、Modbus的寫寄存器命令的不同。
              常用Modbus寄存器有:線圈(Coil)、輸入(Input)、保持寄存器(Holding Registers)和輸入寄存器(Input Registers)。
              從Modbus設(shè)備角度看,輸入是上位機采集Modbus設(shè)備的信息,也就是這些寄存器是只讀的,所以,Modbus協(xié)議沒有寫輸入(Input)和輸入寄存器(Input Registers)的命令。
              線圈(Coil)是狀態(tài)量,對應(yīng)Modbus設(shè)備的開關(guān)量輸出(DO),保持寄存器(Holding Registers)是模擬量,對應(yīng)Modbus設(shè)備模擬量輸出(AO),這些寄存器需要Modbus設(shè)備的上位機進行設(shè)置,也就是為可以寫的寄存器。
              在Modicon_Modbus協(xié)議 協(xié)議中,寫線圈(Coil)和保持寄存器(Holding Registers)都有兩種寫命令:
              1)、寫單個寄存器:
              置單線圈(Force Single Coil)功能碼05(0x05)
              寫單個寄存器(Preset Single Holding Register)功能碼06(0x06)
              2)、寫多個寄存器
              寫多線圈(Force Multiple Coils)功能碼15(0x0F)
              寫多個寄存器(Preset Multiple Registers)功能碼16(0x10)


            關(guān)鍵詞: Modbus總線協(xié)

            評論


            技術(shù)專區(qū)

            關(guān)閉