亚洲视频福利,亚洲丶国产丶欧美一区二区三区,H漫无羞遮无删减漫画免费,需要影音先锋下载的AV,国产日本一区二区精品,亚洲黄图

首頁
產(chǎn)品
卓越 ? 易用 ? 可靠
視頻
讓中國物聯(lián)網(wǎng)領(lǐng)先世界
搜索
歷史搜索
搜索發(fā)現(xiàn)
首頁 > 新聞中心 > 技術(shù)應(yīng)用

Modbus RTU簡介

2022-01-10 14:18:47| 來源:網(wǎng)絡(luò)| | 0

Modbus協(xié)議簡述

ACRXXXE系列儀表使用的是Modbus-RTU通訊協(xié)議,MODBUS協(xié)議詳細(xì)定義了校驗(yàn)碼、數(shù)據(jù)序列等,這些都是特定數(shù)據(jù)交換的必要內(nèi)容。MODBUS協(xié)議在一根通訊線上使用主從應(yīng)答式連接(半雙工),這意味著在一根單獨(dú)的通訊線上信號沿著相反的兩個方向傳輸。首先,主計(jì)算機(jī)的信號尋址到一臺唯一的終端設(shè)備(從機(jī)),然后,終端設(shè)備發(fā)出的應(yīng)答信號以相反的方向傳輸給主機(jī)。

Modbus協(xié)議只允許在主機(jī)(PC,PLC等)和終端設(shè)備之間通訊,而不允許獨(dú)立的終端設(shè)備之間的數(shù)據(jù)交換,這樣各終端設(shè)備不會在它們初始化時占據(jù)通訊線路,而僅限于響應(yīng)到達(dá)本機(jī)的查詢信號。

1.2 查詢—回應(yīng)周期

1.2.1 查詢 查詢消息中的功能代碼告之被選中的從設(shè)備要執(zhí)行何種功能。數(shù)據(jù)段包含了從設(shè)備要執(zhí)行功能的任何附加信息。例如功能代碼03是要求從設(shè)備讀保持寄存器并返回它們的內(nèi)容。數(shù)據(jù)段必須包含要告之從設(shè)備的信息:從何寄存器開始讀及要讀的寄存器數(shù)量。錯誤檢測域?yàn)閺脑O(shè)備提供了一種驗(yàn)證消息內(nèi)容是否正確的方法。

1.2.2 回應(yīng) 如果從設(shè)備產(chǎn)生一正常的回應(yīng),在回應(yīng)消息中的功能代碼是在查詢消息中的功能代碼的回應(yīng)。數(shù)據(jù)段包括了從設(shè)備收集的數(shù)據(jù):如寄存器值或狀態(tài)。如果有錯誤發(fā)生,功能代碼將被修改以用于指出回應(yīng)消息是錯誤的,同時數(shù)據(jù)段包含了描述此錯誤信息的代碼。錯誤檢測域允許主設(shè)備確認(rèn)消息內(nèi)容是否可用。

1.3 傳輸方式

傳輸方式是指一個數(shù)據(jù)幀內(nèi)一系列獨(dú)立的數(shù)據(jù)結(jié)構(gòu)以及用于傳輸數(shù)據(jù)的有限規(guī)則,下面定義了與Modbus 協(xié)議– RTU方式相兼容的傳輸方式。

每個字節(jié)的位:

· 1個起始位

· 8個數(shù)據(jù)位,最小的有效位先發(fā)送

· 無奇偶校驗(yàn)位

· 1個停止位

錯誤檢測(Error checking):CRC(循環(huán)冗余校驗(yàn))

1.4 協(xié)議

當(dāng)數(shù)據(jù)幀到達(dá)終端設(shè)備時,它通過一個簡單的“端口”進(jìn)入被尋址到的設(shè)備,該設(shè)備去掉數(shù)據(jù)幀的“信封”(數(shù)據(jù)頭),讀取數(shù)據(jù),如果沒有錯誤,就執(zhí)行數(shù)據(jù)所請求的任務(wù),然后,它將自己生成的數(shù)據(jù)加入到取得的“信封”中,把數(shù)據(jù)幀返回給發(fā)送者。返回的響應(yīng)數(shù)據(jù)中包含了以下內(nèi)容:終端從機(jī)地址(Address)、被執(zhí)行了的命令(Function)、執(zhí)行命令生成的被請求數(shù)據(jù)(Data)和一個校驗(yàn)碼(Check)。發(fā)生任何錯誤都不會有成功的響應(yīng),或者返回一個錯誤指示幀。

1.4.1 數(shù)據(jù)幀格式

Address Function Data Check

8-Bits 8-Bits N x 8-Bits 16-Bits

1.4.2 地址(Address)域

地址域在幀的開始部分,由一個字節(jié)(8位二進(jìn)制碼)組成,十進(jìn)制為0~255,在我們的系統(tǒng)中只使用1~247,其它地址保留。這些位標(biāo)明了用戶指定的終端設(shè)備的地址,該設(shè)備將接收來自與之相連的主機(jī)數(shù)據(jù)。每個終端設(shè)備的地址必須是唯一的,僅僅被尋址到的終端會響應(yīng)包含了該地址的查詢。當(dāng)終端發(fā)送回一個響應(yīng),響應(yīng)中的從機(jī)地址數(shù)據(jù)便告訴了主機(jī)哪臺終端正與之進(jìn)行通信。

1.4.3 功能(Function)域

功能域代碼告訴了被尋址到的終端執(zhí)行何種功能。下表列出了該系列儀表用到的功能碼,以及它們的意義和功能。

代碼 意義 行為
3讀數(shù)據(jù)寄存器 獲得一個或多個寄存器的當(dāng)前二進(jìn)制值
16預(yù)置多寄存器 設(shè)定二進(jìn)制值到一系列多寄存器中(不對 ACRXXXE開放)

1.4.4 數(shù)據(jù)(Data)域

1.4.5 錯誤校驗(yàn)(Check)域

該域允許主機(jī)和終端檢查傳輸過程中的錯誤。有時,由于電噪聲和其它干擾,一組數(shù)據(jù)在從一個設(shè)備傳輸?shù)搅硪粋€設(shè)備時在線路上可能會發(fā)生一些改變,出錯校驗(yàn)?zāi)軌虮WC主機(jī)或者終端不去響應(yīng)那些傳輸過程中發(fā)生了改變的數(shù)據(jù),這就提高了系統(tǒng)的安全性和效率,錯誤校驗(yàn)使用了16位循環(huán)冗余的方法(CRC16)。

1.5 錯誤檢測的方法

錯誤校驗(yàn)(CRC)域占用兩個字節(jié),包含了一個16位的二進(jìn)制值。CRC值由傳輸設(shè)備計(jì)算出來,然后附加到數(shù)據(jù)幀上,接收設(shè)備在接收數(shù)據(jù)時重新計(jì)算CRC值,然后與接收到的CRC域中的值進(jìn)行比較,如果這兩個值不相等,就發(fā)生了錯誤。

CRC運(yùn)算時,首先將一個16位的寄存器預(yù)置為全1,然后連續(xù)把數(shù)據(jù)幀中的每個字節(jié)中的8位與該寄存器的當(dāng)前值進(jìn)行運(yùn)算,僅僅每個字節(jié)的8個數(shù)據(jù)位參與生成CRC,起始位和終止位以及可能使用的奇偶位都不影響CRC。在生成CRC時,每個字節(jié)的8位與寄存器中的內(nèi)容進(jìn)行異或,然后將結(jié)果向低位移位,高位則用“0”補(bǔ)充,最低位(LSB)移出并檢測,如果是1,該寄存器就與一個預(yù)設(shè)的固定值(0A001H)進(jìn)行一次異或運(yùn)算,如果最低位為0,不作任何處理。

上述處理重復(fù)進(jìn)行,直到執(zhí)行完了8次移位操作,當(dāng)最后一位(第8位)移完以后,下一個8位字節(jié)與寄存器的當(dāng)前值進(jìn)行異或運(yùn)算,同樣進(jìn)行上述的另一個8次移位異或操作,當(dāng)數(shù)據(jù)幀中的所有字節(jié)都作了處理,生成的最終值就是CRC值。

生成一個CRC的流程為:

1 預(yù)置一個16位寄存器為0FFFFH(全1),稱之為CRC寄存器。

2 把數(shù)據(jù)幀中的第一個字節(jié)的8位與CRC寄存器中的低字節(jié)進(jìn)行異或運(yùn)算,結(jié)果存回CRC寄存器。

3 將CRC寄存器向右移一位,最高位填以0,最低位移出并檢測。

4 如果最低位為0:重復(fù)第三步(下一次移位);如果最低位為1:將CRC寄存器與一個預(yù)設(shè)的固定值(0A001H)進(jìn)行異或運(yùn)算。

5 重復(fù)第三步和第四步直到8次移位。這樣處理完了一個完整的八位。

6 重復(fù)第2步到第5步來處理下一個八位,直到所有的字節(jié)處理結(jié)束。

7 最終CRC寄存器的值就是CRC的值。

此外還有一種利用預(yù)設(shè)的表格計(jì)算CRC的方法,它的主要特點(diǎn)是計(jì)算速度快,但是表格需要較大的存儲空間,該方法此處不再贅述,請參閱相關(guān)資料。

數(shù)據(jù)域包含了終端執(zhí)行特定功能所需要的數(shù)據(jù)或者終端響應(yīng)查詢時采集到的數(shù)據(jù)。這些數(shù)據(jù)的內(nèi)容可能是數(shù)值、參考地址或者設(shè)置值。例如:功能域碼告訴終端讀取一個寄存器,數(shù)據(jù)域則需要指明從哪個寄存器開始及讀取多少個數(shù)據(jù),內(nèi)嵌的地址和數(shù)據(jù)依照類型和從機(jī)之間的不同內(nèi)容而有所不同。


聯(lián)系銷售
銷售王經(jīng)理微信 銷售王經(jīng)理
微信公眾號 微信公眾號
服務(wù)熱線
400-6688-400
长葛市| 万载县| 含山县| 琼海市| 深圳市| 徐州市| 辉县市| 吕梁市| 雅江县| 昔阳县| 龙南县| 咸丰县| 多伦县| 紫阳县| 曲阜市| 怀集县| 巢湖市| 西华县|