日韩av大片在线观看欧美成人不卡|午夜先锋看片|中国女人18毛片水多|免费xx高潮喷水|国产大片美女av|丰满老熟妇好大bbbbbbbbbbb|人妻上司四区|japanese人妻少妇乱中文|少妇做爰喷水高潮受不了|美女人妻被颜射的视频,亚洲国产精品久久艾草一,俄罗斯6一一11萝裸体自慰,午夜三级理论在线观看无码

上海韓施電氣自動化設(shè)備有限公司
中級會員 | 第9年

17749779099

施耐德EOCR通訊保護(hù)器
EOCR-3BZ2/FBZ2/i3BZ/iFBZ
施耐德智能保護(hù)器
施耐德EOCR-3DM2/FDM2系列
施耐德漏電保護(hù)器
經(jīng)濟(jì)型保護(hù)器
DZ(T)
韓國三和EOCR
交流(AC)電流保護(hù)(經(jīng)濟(jì)型)
智能馬達(dá)保護(hù)器
交流(AC)電流保護(hù)(數(shù)碼型)
其他繼電器(漏電保護(hù)器)
交流(AC)電壓保護(hù)繼電器
直流(DC)電流保護(hù)繼電器
直流(DC)電壓保護(hù)繼電器
EOCR專用互感器
施耐德EOCR定制
儀器儀表
電子式離心開關(guān)
DSP智能電機(jī)保護(hù)器
DSP
SAMUSCO智能保護(hù)接觸器
韓國DEESYS繼電器
通訊型馬達(dá)保護(hù)器
EOCR通訊線纜
自動復(fù)位型電子過流繼電器
智能電機(jī)保護(hù)繼電器

Modbus通訊協(xié)議是原來是這樣的,!

時間:2021/4/9閱讀:860
分享:

ModBus網(wǎng)絡(luò)是一個工業(yè)通信系統(tǒng),,由帶智能終端的可編程序控制器和計算機(jī)通過公用線路或局部磚用線路連接而成。其系統(tǒng)結(jié)構(gòu)既包括硬件,、亦包括軟件,。它可應(yīng)用于各種數(shù)據(jù)采集和過程監(jiān)控。

ModBus網(wǎng)絡(luò)只有一個主機(jī),,所有通信都由他發(fā)出,。網(wǎng)絡(luò)可支持247個之多的遠(yuǎn)程從屬控制器,但實際所支持的從機(jī)數(shù)要由所用通信設(shè)備決定,。采用這個系統(tǒng),,各PC可以和中心主機(jī)交換信息而不影響各PC執(zhí)行本身的控制任務(wù)。

 

了解Modbus通訊協(xié)議是怎么回事,,在現(xiàn)場就可以用各種第三方的小軟件做通訊測試了,。

 

Modbus協(xié)議包括ASCII、RTU,、TCP等,,并沒有規(guī)定物理層。此協(xié)議定義了控制器能夠認(rèn)識和使用的消息結(jié)構(gòu),,而不管它們是經(jīng)過何種網(wǎng)絡(luò)進(jìn)行通信的,。標(biāo)準(zhǔn)的Modicon控制器使用RS232C實現(xiàn)串行的Modbus。Modbus的ASCII、RTU協(xié)議規(guī)定了消息,、數(shù)據(jù)的結(jié)構(gòu),、命令和就答的方式,數(shù)據(jù)通訊采用Maser/Slave方式,,Master端發(fā)出數(shù)據(jù)請求消息,,Slave端接收到正確消息后就可以發(fā)送數(shù)據(jù)到Master端以響應(yīng)請求;Master端也可以直接發(fā)消息修改Slave端的數(shù)據(jù),,實現(xiàn)雙向讀寫,。Modbus協(xié)議需要對數(shù)據(jù)進(jìn)行校驗,串行協(xié)議中除有奇偶校驗外,,ASCII模式采用LRC校驗,,RTU模式采用16位CRC校驗,但TCP模式?jīng)]有額外規(guī)定校驗,,因為TCP協(xié)議是一個面向連接的可靠協(xié)議,。另外,Modbus采用主從方式定時收發(fā)數(shù)據(jù),,在實際使用中如果某Slave站點斷開后(如故障或關(guān)機(jī)),,Master端可以診斷出來,而當(dāng)故障修復(fù)后,,網(wǎng)絡(luò)又可自動接通,。因此,Modbus協(xié)議的可靠性,。

對于Modbus的ASCII,、RTU和TCP協(xié)議來說,其中TCP和RTU協(xié)議非常類似,,我們只要把RTU協(xié)議的兩個字節(jié)的校驗碼去掉,,然后在RTU協(xié)議的開始加上5個0和一個6并通過TCP/IP網(wǎng)絡(luò)協(xié)議發(fā)送出去即可。

 

1
通訊傳送方式:

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

初始結(jié)構(gòu) = ≥4字節(jié)的時間

地址碼 = 1 字節(jié)

功能碼 = 1 字節(jié)

數(shù)據(jù)區(qū) = N 字節(jié)

錯誤校檢 = 16位CRC碼

結(jié)束結(jié)構(gòu) = ≥4字節(jié)的時間

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

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

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

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

 

2
通訊規(guī)約:

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

1.信息幀結(jié)構(gòu)

地址碼 功能碼 數(shù)據(jù)區(qū) 錯誤校驗碼

8位 8位 N × 8位 16位

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

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

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

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

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

2.錯誤校驗

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

 

3
Modbus支持的功能碼:

功能碼

名稱

作用

1

讀取線圈狀態(tài)

取得一組邏輯線圈的當(dāng)前狀態(tài)(ON/OFF)

2

讀取輸入狀態(tài)

取得一組開關(guān)輸入的當(dāng)前狀態(tài)(ON/OFF)

3

讀取保持寄存器

在一個或多個保持寄存器中取得當(dāng)前的二進(jìn)制值

4

讀取輸入寄存器

在一個或多個輸入寄存器中取得當(dāng)前的二進(jìn)制值

5

強(qiáng)置單線圈

強(qiáng)置一個邏輯線圈的通斷狀態(tài)

6

預(yù)置單寄存器

把具體二進(jìn)值裝入一個保持寄存器

7

讀取異常狀態(tài)

取得8個內(nèi)部線圈的通斷狀態(tài),這8個線圈的地址由控制器決定

8

回送診斷校驗

把診斷校驗報文送從機(jī),,以對通信處理進(jìn)行評鑒

9

編程(只用于484)

使主機(jī)模擬編程器作用,,修改PC從機(jī)邏輯

10

控詢(只用于484)

可使主機(jī)與一臺正在執(zhí)行長程序任務(wù)從機(jī)通信,探詢該從機(jī)是否已完成其操作任務(wù),,僅在含有功能碼9的報文發(fā)送后,,本功能碼才發(fā)送

11

讀取事件計數(shù)

可使主機(jī)發(fā)出單詢問,并隨即判定操作是否成功,,尤其是該命令或其他應(yīng)答產(chǎn)生通信錯誤時

12

讀取通信事件記錄

可是主機(jī)檢索每臺從機(jī)的ModBus事務(wù)處理通信事件記錄,。如果某項事務(wù)處理完成,記錄會給出有關(guān)錯誤

13

編程(184/384 484 584)

可使主機(jī)模擬編程器功能修改PC從機(jī)邏輯

14

探詢(184/384 484 584)

可使主機(jī)與正在執(zhí)行任務(wù)的從機(jī)通信,,定期控詢該從機(jī)是否已完成其程序操作,,僅在含有功能13的報文發(fā)送后,本功能碼才得發(fā)送

15

強(qiáng)置多線圈

強(qiáng)置一串連續(xù)邏輯線圈的通斷

16

預(yù)置多寄存器

把具體的二進(jìn)制值裝入一串連續(xù)的保持寄存器

17

報告從機(jī)標(biāo)識

可使主機(jī)判斷編址從機(jī)的類型及該從機(jī)運(yùn)行指示燈的狀態(tài)

18

(884和MICRO 84)

可使主機(jī)模擬編程功能,,修改PC狀態(tài)邏輯

19

重置通信鏈路

發(fā)生非可修改錯誤后,,是從機(jī)復(fù)位于已知狀態(tài),可重置順序字節(jié)

20

讀取通用參數(shù)(584L)

顯示擴(kuò)展存儲器文件中的數(shù)據(jù)信息

21

寫入通用參數(shù)(584L)

把通用參數(shù)寫入擴(kuò)展存儲文件,,或修改之

22~64

保留作擴(kuò)展功能備用

 

65~72

保留以備用戶功能所用

留作用戶功能的擴(kuò)展編碼

73~119

非法 公能

 

120~127

保留

留作內(nèi)部作用

128~255

保留

用于異常應(yīng)答

 

4
功能碼命令詳解:

在這些功能碼中較長使用的是1、2,、3,、4,、5、6號功能碼,,使用它們即可實現(xiàn)對下位機(jī)的數(shù)字量和模擬量的讀寫操作,。

1、01號命令,,讀可讀寫數(shù)字量寄存器(線圈狀態(tài)):

計算機(jī)發(fā)送命令:[設(shè)備地址] [命令號01] [起始寄存器地址高8位] [低8位] [讀取的寄存器數(shù)高8位] [低8位] [CRC校驗的低8位] [CRC校驗的高8位]

例:[11][01][00][13][00][25][CRC低][CRC高]

意義如下:

<1>設(shè)備地址:在一個485線上可以掛接多個設(shè)備,,此處的設(shè)備地址表示想和哪一個設(shè)備通訊。例子中為想和17號(十進(jìn)制的17是十六進(jìn)制的11)通訊,。

<2>命令號01:讀取數(shù)字量的命令號固定為01,。

<3>起始地址高8位、低8位:表示想讀取的開關(guān)量的起始地址(起始地址為0),。比如例子中的起始地址為19,。

<4>寄存器數(shù)高8位、低8位:表示從起始地址開始讀多少個開關(guān)量,。例子中為37個開關(guān)量,。

<5>CRC校驗:是從開頭一直校驗到此之前。

設(shè)備響應(yīng):[設(shè)備地址] [命令號01] [返回的字節(jié)個數(shù)][數(shù)據(jù)1][數(shù)據(jù)2]...[數(shù)據(jù)n] [CRC校驗的高8位] [CRC校驗的低8位]


例:[11][01][05][CD][6B][B2][0E][1B] [CRC高] [CRC低]

意義如下:

<1>設(shè)備地址和命令號和上面的相同,。

<2>返回的字節(jié)個數(shù):表示數(shù)據(jù)的字節(jié)個數(shù),,也就是數(shù)據(jù)1,2...n中的n的值,。

<3>數(shù)據(jù)1...n:由于每一個數(shù)據(jù)是一個8位的數(shù),,所以每一個數(shù)據(jù)表示8個開關(guān)量的值,每一位為0表示對應(yīng)的開關(guān)斷開,,為1表示閉合,。比如例子中,表示20號(索引號為19)開關(guān)閉合,,21號斷開,,22閉合,23閉合,,24斷開,,25斷開,26閉合,,27閉合...如果詢問的開關(guān)量不是8的整倍數(shù),,那么最后一個字節(jié)的高位部分無意義,置為0,。

<4>CRC校驗同上,。

2、05號命令,,寫數(shù)字量(線圈狀態(tài)):

計算機(jī)發(fā)送命令:[設(shè)備地址] [命令號05] [需下置的寄存器地址高8位] [低8位] [下置的數(shù)據(jù)高8位] [低8位] [CRC校驗的低8位] [CRC校驗的高8位]


例:[11][05][00][AC][FF][00][CRC高][CRC低]

意義如下:

<1>設(shè)備地址和上面的相同,。

<2>命令號:寫數(shù)字量的命令號固定為05,。

<3>需下置的寄存器地址高8位,低8位:表明了需要下置的開關(guān)的地址,。

<4>下置的數(shù)據(jù)高8位,,低8位:表明需要下置的開關(guān)量的狀態(tài)。例子中為把該開關(guān)閉合,。注意,,此處只可以是[FF][00]表示閉合[00][00]表示斷開,其他數(shù)值非法,。

<5>注意此命令一條只能下置一個開關(guān)量的狀態(tài),。

設(shè)備響應(yīng):如果成功把計算機(jī)發(fā)送的命令原樣返回,否則不響應(yīng),。

3,、03號命令,讀可讀寫模擬量寄存器(保持寄存器):

計算機(jī)發(fā)送命令:[設(shè)備地址] [命令號03] [起始寄存器地址高8位] [低8位] [讀取的寄存器數(shù)高8位] [低8位] [CRC校驗的高8位] [CRC校驗的低8位]


例:[11][03][00][6B][00][03] [CRC高][CRC低]

意義如下:

<1>設(shè)備地址和上面的相同,。

<2>命令號:讀模擬量的命令號固定為03,。

<3>起始地址高8位、低8位:表示想讀取的模擬量的起始地址(起始地址為0),。比如例子中的起始地址為107,。

<4>寄存器數(shù)高8位、低8位:表示從起始地址開始讀多少個模擬量,。例子中為3個模擬量,。注意,在返回的信息中一個模擬量需要返回兩個字節(jié),。

設(shè)備響應(yīng):[設(shè)備地址] [命令號03] [返回的字節(jié)個數(shù)][數(shù)據(jù)1][數(shù)據(jù)2]...[數(shù)據(jù)n] [CRC校驗的高8位] [CRC校驗的低8位]


例:[11][03][06][02][2B][00][00][00][64] [CRC高] [CRC低]

意義如下:

<1>設(shè)備地址和命令號和上面的相同,。

<2>返回的字節(jié)個數(shù):表示數(shù)據(jù)的字節(jié)個數(shù),也就是數(shù)據(jù)1,,2...n中的n的值,。例子中返回了3個模擬量的數(shù)據(jù),因為一個模擬量需要2個字節(jié)所以共6個字節(jié),。

<3>數(shù)據(jù)1...n:其中[數(shù)據(jù)1][數(shù)據(jù)2]分別是第1個模擬量的高8位和低8位,,[數(shù)據(jù)3][數(shù)據(jù)4]是第2個模擬量的高8位和低8位,以此類推,。例子中返回的值分別是555,,0,100,。

<4>CRC校驗同上,。

4、06號命令,,寫單個模擬量寄存器(保持寄存器):

計算機(jī)發(fā)送命令:[設(shè)備地址] [命令號06] [需下置的寄存器地址高8位] [低8位] [下置的數(shù)據(jù)高8位] [低8位] [CRC校驗的高8位] [CRC校驗的低8位]


意義如下:

<1>設(shè)備地址和上面的相同,。

<2>命令號:寫模擬量的命令號固定為06,。

<3>需下置的寄存器地址高8位,低8位:表明了需要下置的模擬量寄存器的地址,。

<4>下置的數(shù)據(jù)高8位,低8位:表明需要下置的模擬量數(shù)據(jù),。比如例子中就把1號寄存器的值設(shè)為3,。

<5>注意此命令一條只能下置一個模擬量的狀態(tài)。

設(shè)備響應(yīng):如果成功把計算機(jī)發(fā)送的命令原樣返回,,否則不響應(yīng),。

5、16號命令,,寫多個模擬量寄存器(保持寄存器):

計算機(jī)發(fā)送命令:[設(shè)備地址] [命令號16] [需下置的寄存器地址高8位] [低8位] [數(shù)據(jù)數(shù)量高8位] [數(shù)據(jù)數(shù)量低8位] [下置的數(shù)據(jù)高8位] [低8位][……][……] [CRC校驗的高8位] [CRC校驗的低8位]

例:[11][16][00][01][00][01][00][05] [CRC高] [CRC低]

意義如下:

<1>設(shè)備地址和上面的相同,。

<2>命令號:寫模擬量的命令號固定為16。

<3>需下置的寄存器地址高8位,,低8位:表明了需要下置的模擬量寄存器的地址,。

<4>需下置的數(shù)據(jù)數(shù)量高8位,低8位:表明了需要下置的數(shù)據(jù)數(shù)量,,這里為1,。

<5>下置的數(shù)據(jù)高8位,低8位:表明需要下置的模擬量數(shù)據(jù),。比如例子中就把1號寄存器的值設(shè)為5,。

設(shè)備響應(yīng):如果成功把計算機(jī)返回的如下命令,否則不響應(yīng),。

設(shè)備響應(yīng):[設(shè)備地址] [命令號16] [需下置的寄存器地址高8位] [低8位] [數(shù)據(jù)數(shù)量高8位] [數(shù)據(jù)數(shù)量低8位] [CRC校驗的高8位] [CRC校驗的低8位],,如上例返回:

[11][16][00][01][00][01] [CRC高] [CRC低]

會員登錄

×

請輸入賬號

請輸入密碼

=

請輸驗證碼

收藏該商鋪

X
該信息已收藏,!
標(biāo)簽:
保存成功

(空格分隔,最多3個,單個標(biāo)簽最多10個字符)

常用:

提示

X
您的留言已提交成功,!我們將在第一時間回復(fù)您~
撥打電話
在線留言