安科瑞AMC16Z配電監(jiān)控RS485通訊導(dǎo)軌電表采用Modbus-RTU協(xié)議:“9600,8,1,n”,其中為默認(rèn)波特率, 可通過通訊修改等,參量地址見7.5通訊參量地址表;8表示有8個數(shù)據(jù)位;n表示無奇偶校 驗位;1表示有1個停止位。
產(chǎn)品型號
技術(shù)參數(shù)
外形結(jié)構(gòu)
AMC16Z-FD16高精度電壓監(jiān)測裝置
5 協(xié)議
當(dāng)數(shù)據(jù)幀到達終端設(shè)備時,它通過一個簡單的“端口”進入被尋址到的設(shè)備,該設(shè)備去掉數(shù)據(jù)幀的“信 封”(數(shù)據(jù)頭),讀取數(shù)據(jù),如果沒有錯誤,就執(zhí)行數(shù)據(jù)所請求的任務(wù),然后,它將自己生成的數(shù)據(jù)加入到取 得的“信封”中,把數(shù)據(jù)幀返回給發(fā)送者。返回的響應(yīng)數(shù)據(jù)中包含了以下內(nèi)容:終端從機地址(Address)、被 執(zhí)行了的命令(Function)、執(zhí)行命令生成的被請求數(shù)據(jù)(Data)和一個CRC校驗碼(Check)。發(fā)生任何錯誤 都不會有成功的響應(yīng),或者返回一個錯誤指示幀。
5.2.1 數(shù)據(jù)幀格式
5.2.2 地址(Address)域
地址域在幀首,由一個字節(jié)(8-Bits,8位二進制碼)組成,十進制為0~255,在我們的系統(tǒng)中只使用1~ 247,其它地址保留。這些位標(biāo)明了用戶的終端設(shè)備的地址,該設(shè)備將接收來自與之相連的主機數(shù)據(jù)。同一 總線上每個終端設(shè)備的地址必須是的,只有被尋址到的終端才會響應(yīng)包含了該地址的查詢。當(dāng)終端發(fā)送回 一個響應(yīng),響應(yīng)中的從機地址數(shù)據(jù)便告訴了主機哪臺終端正與之進行通信。
5.2.3 功能(Function)域
功能域代碼告訴了被尋址到的終端執(zhí)行何種功能。下表列出了該系列儀表用到的功能碼,以及它們的意義 和功能
5.2.4 數(shù)據(jù)(Data)域
數(shù)據(jù)域包含了終端執(zhí)行特定功能所需的數(shù)據(jù)或終端響應(yīng)查詢時采集到的數(shù)據(jù)。這些數(shù)據(jù)可能是數(shù)值、參量地址或者設(shè)置值。
例如:功能域告訴終端讀取一個寄存器,數(shù)據(jù)域則需要指明從哪個寄存器開始及讀取多少個數(shù)據(jù),內(nèi)嵌的地址和數(shù)據(jù)依照類型和從機之間的不同而內(nèi)容有所不同。
5.2.5 錯誤校驗(Check)域
該域采用CRC16循環(huán)冗余校驗,允許主機和終端檢查傳輸過程中的錯誤。有時由于電噪聲和其它干擾,一組數(shù)據(jù)從一個設(shè)備傳輸?shù)搅硪粋€設(shè)備時,在線路上可能會發(fā)生一些改變,錯誤校驗?zāi)軌虮WC主機或從機不去響應(yīng)那些發(fā)生改變的數(shù)據(jù),這就提高了系統(tǒng)的安全性、可靠性和效率。
5.3 錯誤校驗的方法
錯誤校驗(CRC)域占用兩個字節(jié),包含了一個16位的二進制值。CRC值由傳輸設(shè)備計算出來,然后附加到數(shù)據(jù)幀上,接收設(shè)備在接受數(shù)據(jù)時重新計算CRC值,然后與接收到的CRC域中的值進行比較,如果這兩個值不相等,就發(fā)生了錯誤
CRC運算時,首先將一個16位的寄存器預(yù)置為全1,然后連續(xù)把數(shù)據(jù)幀中的每個字節(jié)中的8位與該寄存器的當(dāng)前值進行運算,僅僅每個字節(jié)的8個數(shù)據(jù)位參與生成CRC,起始位和停止位以及可能使用的奇偶位都不影響CRC。在生成CRC時,每個字節(jié)的8位與寄存器中的內(nèi)容進行異或,然后將結(jié)果向低位移位,高位則用“0”補
充,(LSB)移出并檢測,如果是1,該寄存器就與一個預(yù)設(shè)的固定值(0A001H)進行一次異或運算,如果為0,不作任何處理。
CRC生成流程:
1 預(yù)置一個16位寄存器為0FFFFH(全1),稱之為CRC寄存器。
2 把數(shù)據(jù)幀中的字節(jié)的8位與CRC寄存器中的低字節(jié)進行異或運算,結(jié)果存回CRC寄存器。
3 將CRC寄存器向右移一位,填0,移出并檢測。
4 如果移出為0:重復(fù)第3步(下一次移位);如果移出為1:將CRC寄存器與一個預(yù)設(shè)固定值(0A001H)進行異或運算。
5 重復(fù)第3步和第4步直到8次移位。這樣就處理完了一個完整的8位。
6 重復(fù)第2步到第5步來處理下一個8位,直到所有的字節(jié)處理結(jié)束。
7 最終CRC寄存器的值就是CRC的值。
此外還有一種利用查表計算CRC的方法,它的主要特點是計算速度快,但是表格需要較大的存儲空間,該方法此處不再贅述,請查閱相關(guān)資料
安科瑞AMC16Z配電監(jiān)控RS485通訊導(dǎo)軌電表