• <button id="4a4ss"><input id="4a4ss"></input></button>
    
    
  • <rt id="4a4ss"><pre id="4a4ss"></pre></rt>
  • <button id="4a4ss"><input id="4a4ss"></input></button>
    <code id="4a4ss"></code>
    20240703
    關(guān)注中國(guó)自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
    工業(yè)智能邊緣計(jì)算2024年會(huì)
    2024
    2024中國(guó)自動(dòng)化產(chǎn)業(yè)年會(huì)
    2023年工業(yè)安全大會(huì)
    OICT公益講堂
    當(dāng)前位置:首頁(yè) >> 資訊 >> 行業(yè)資訊

    資訊頻道

    如何快速掌握plc或工控機(jī)與其他設(shè)備的modbus通訊協(xié)議?
    • 點(diǎn)擊數(shù):2804     發(fā)布時(shí)間:2019-07-18 16:42:00
    • 分享到:
    Modbus協(xié)議是OSI模型的第七層的應(yīng)用層通訊協(xié)議,定義了不同類(lèi)型設(shè)備間交換信息方式,以及信息的格式。
    關(guān)鍵詞:

    Modbus協(xié)議是OSI模型的第七層的應(yīng)用層通訊協(xié)議,定義了不同類(lèi)型設(shè)備間交換信息方式,以及信息的格式。

    Modbus的工作方式是請(qǐng)求/應(yīng)答,每次通訊都是主站先發(fā)送指令,可以是廣播,或是向特定從站的單播,從站響應(yīng)指令,并按要求應(yīng)答,或者報(bào)告異常。當(dāng)主站不發(fā)送請(qǐng)求時(shí),從站不會(huì)自己發(fā)出數(shù)據(jù),從站和從站之間不能直接通訊。

    Modbus協(xié)議的報(bào)文(或幀)的基本格式是:

    表頭 + 功能碼 + 數(shù)據(jù)區(qū) + 校驗(yàn)碼

    功能碼和數(shù)據(jù)區(qū)在不同類(lèi)型的網(wǎng)絡(luò)都是固定不變的,表頭和校驗(yàn)碼則因網(wǎng)絡(luò)底層的實(shí)現(xiàn)方式不同而有所區(qū)別。表頭包含了從站的地址,功能碼告訴從站要執(zhí)行何種功能,數(shù)據(jù)區(qū)是具體的信息。

    先以串行通訊的Modbus為例(注意Modbus TCP的報(bào)文表頭和校驗(yàn)碼是不一樣的),主站發(fā)送了:

    09 03 00 04 00 03 XX

    主站告訴從站09,我要讀取的地址偏移為4、5、6的Holding Register的數(shù)值。其中"03"是讀Holding Register的功能碼,"00 04 00 01"是數(shù)據(jù)區(qū),"00 04"是寄存器的地址,"00 03"說(shuō)明要連續(xù)讀三個(gè)寄存器的值。"XX"代表最后的校驗(yàn)位,校驗(yàn)方法是LRC或CRC。

    從站收到信息后,就從對(duì)應(yīng)的寄存器找到數(shù)值,回復(fù):

    09 03 06 02 2B 00 01 00 64 XX

    從站回答,該地址偏移為4的寄存器值為02 2B,地址偏移為5的寄存器值為00 01,地址偏移為6的寄存器值為00 64。其中"09 03"是復(fù)制了主站發(fā)來(lái)的地址和功能碼,"06"代表接下來(lái)的數(shù)據(jù)共有6個(gè)字節(jié)。

    如果從站收到了一個(gè)錯(cuò)誤的請(qǐng)求,例如發(fā)現(xiàn)要讀的寄存器地址是錯(cuò)誤的,則回復(fù):

    09 83 02 XX

    其中"83"是把功能碼"03"的最高位置1,告訴主站發(fā)生了異常,"02"是異常碼,說(shuō)明發(fā)生了無(wú)效地址的異常。

    Modbus的四種數(shù)據(jù)類(lèi)型

    Coil:大小只有1位,ON或OFF,可讀可寫(xiě),既可以是一個(gè)輸出量輸出點(diǎn),也可以是數(shù)字量輸入點(diǎn),有效的地址范圍是1-9999。

    Input Status:大小只有1位,ON或OFF,只讀,即數(shù)字量輸出點(diǎn),有效地址范圍是10001-19999。

    Input Register:16位的寄存器,只讀,可以用作模擬量或16位打包輸入點(diǎn),有效地址范圍是30001-39999。

    Holding Register:16位的寄存器,可讀可寫(xiě),既可以是一個(gè)模擬量或16位打包輸入點(diǎn),也可以是模擬量或16位打包輸出點(diǎn),有效地址范圍是40001-49999。

    在PLC或DCS上用點(diǎn)名標(biāo)記不同的變量,在Modbus則以數(shù)據(jù)地址來(lái)標(biāo)記每個(gè)點(diǎn)。以上所說(shuō)的地址都是參考地址,而不是實(shí)際的物理地址。上述的地址是在設(shè)備中的地址,按照PLC的習(xí)慣從1開(kāi)始遞增,而Modbus報(bào)文中是從0開(kāi)始遞增。例如地址偏移為4、5、6的Holding Register,其實(shí)是指參考地址是40005、40006、40007的寄存器。

    Modbus TCP、Modbus RTU和Modbus ASCII的區(qū)別

    對(duì)于不同類(lèi)型的網(wǎng)絡(luò),Modbus的第7層實(shí)現(xiàn)是一樣的,區(qū)別在于下層的實(shí)現(xiàn)方式,常見(jiàn)的有TCP/IP和串行通訊兩種。

    Modbus TCP基于以太網(wǎng)和TCP/IP協(xié)議,Modbus RTU和Modbus ASCII則是使用異步串行傳輸(通常是RS-232/422/485)。

    對(duì)于Modbus TCP而言,主站通常稱(chēng)為Client,從站稱(chēng)為Server;而對(duì)于Modbus RTU和Modbus ASCII來(lái)說(shuō),主站是Master,從站是Slave。

    如圖2所示,串行傳輸?shù)奈锢韺邮荝S-485或RS-232,數(shù)據(jù)鏈路層是Modbus的串行傳輸協(xié)議;Modbus TCP的1、2、3、4層實(shí)現(xiàn)和日常所見(jiàn)的以太網(wǎng)、因特網(wǎng)一樣。Modbus默認(rèn)采用的TCP端口號(hào)是502。

    圖3說(shuō)明了Modbus TCP的改動(dòng):

    1.取消了校驗(yàn)位。數(shù)據(jù)鏈路層上就進(jìn)行了CRC-32的校驗(yàn),TCP/IP是面向連接的可靠性的協(xié)議,因此沒(méi)必要再加上校驗(yàn)位。

    2.Slave地址換成了Unit Identifier。當(dāng)網(wǎng)絡(luò)里的設(shè)備全是使用TCP/IP,這個(gè)地址是沒(méi)有意義的,因?yàn)镮P就能進(jìn)行路由尋址。如果網(wǎng)絡(luò)里還有串行通訊的設(shè)備,則需要網(wǎng)關(guān)來(lái)實(shí)現(xiàn)Modbus TCP到Modbus RTU或ASCII之間的協(xié)議轉(zhuǎn)換,這時(shí)用Unit Identifier來(lái)標(biāo)識(shí)網(wǎng)關(guān)后面的每個(gè)串行通訊設(shè)備。

    3.Length是指后面的字節(jié)總數(shù)。實(shí)際上數(shù)據(jù)區(qū)的長(zhǎng)度是能確定的,有的功能碼就可以確定數(shù)據(jù)區(qū)的長(zhǎng)度,有的功能碼雖不能確定數(shù)據(jù)區(qū)長(zhǎng)度,但是數(shù)據(jù)區(qū)有字節(jié)計(jì)數(shù),參見(jiàn)上文舉的從站應(yīng)答的例子。表頭增加的Length是為了應(yīng)對(duì)有些情況下TCP/IP協(xié)議會(huì)將應(yīng)用層的數(shù)據(jù)拆包傳輸。

    4.Transaction Identifier和Protocol Identifier由Client生成,Server的響應(yīng)將復(fù)制這些參數(shù)。

    RTU和ASCII的區(qū)別

    RTU模式下,一個(gè)字節(jié)的數(shù)據(jù),傳輸?shù)木褪且粋€(gè)字節(jié)。ASCII模式下,同樣一個(gè)字節(jié)數(shù)據(jù)用了兩個(gè)字節(jié)來(lái)傳輸。

    例如,要傳輸數(shù)字0x5B,RTU傳輸?shù)氖?101 1011(二進(jìn)制),而ASCII傳輸?shù)氖?0110101和01000010。可見(jiàn),ASCII傳輸?shù)乃俾适荝TU的一半。

    ASCII模式采用LRC校驗(yàn),RTU模式采用16位CRC校驗(yàn)。

    來(lái)源:網(wǎng)絡(luò)整理

    熱點(diǎn)新聞

    推薦產(chǎn)品

    x
    • 在線(xiàn)反饋
    1.我有以下需求:



    2.詳細(xì)的需求:
    姓名:
    單位:
    電話(huà):
    郵件:
    主站蜘蛛池模板: 国产激情视频一区二区三区| 一区二区三区无码视频免费福利| 美女极度色诱视频国产| 再深点灬舒服灬太大了岳| 成在人线AV无码免费高潮喷水| 国美女福利视频午夜精品| 日韩精品国产另类专区| 日本高清黄色片| 正在播放西川ゆい在线| 国产亚洲人成网站在线观看| 4455永久在线观免费看| 蜜柚视频网在线观看免费版| 黑人巨大两根一起挤进欧美| 国产高清在线免费视频| 精品国产国产综合精品| 一本大道香蕉中文在线高清| jealousvue熟睡入侵中| 欧美国产综合视频| 亚洲欧美中文日韩在线v日本| jizz性欧美2| 中文字幕日韩在线观看| 国产成人午夜片在线观看| 国产精品手机视频一区二区| 四虎影院的网址| 99久热任我爽精品视频| 久久精品无码午夜福利理论片| av片在线观看永久免费| 荡乱妇3p疯狂伦交下载阅读| 亚洲伊人久久网| 在线欧美精品国产综合五月| 精品偷自拍另类在线观看| 欧美成人免费全部色播| 无码国产精品一区二区免费模式| 公和我做好爽添厨房在线观看| 欧美最猛黑人xxxx黑人猛交98| 四虎精品成人免费观看| 又色又爽又黄的三级视频在线观看| 攵女yin乱篇| 色老头成人免费综合视频| 亚洲天堂水蜜桃| 激情国产AV做激情国产爱|