變送輸出數(shù)碼管顯示智能型3路溫濕度控制器型號說明:
變送輸出數(shù)碼管顯示智能型3路溫濕度控制器技術(shù)參數(shù):
通訊
在本章主要講述如何利用軟件通過通訊口來操控該系列儀表。本章內(nèi)容的掌握需要您具有 MODBUS 協(xié) 議的知識儲備并且通讀了本冊其它章節(jié)所有內(nèi)容,對本產(chǎn)品功能和應(yīng)用概念有較全面了解。 本章內(nèi)容包括 MODBUS 協(xié)議簡述,通訊應(yīng)用格式詳解,本機(jī)的應(yīng)用細(xì)節(jié)及參量地址表。
協(xié)議
錯誤校驗(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è)的固定值(OA001H)進(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 的流程為:
●預(yù)置-個 16 位寄存器為 OFFFFH(全 1) ,稱之為 CRC 寄存器。
●把數(shù)據(jù)幀中的個字節(jié)的 8 位與 CR 寄存器中的低字節(jié)進(jìn)行異或運(yùn)算,結(jié)果存回 CRC 寄存器。
●將 CRC 寄存器向右移一位,高位填以 0,低位移出并檢測。
●如果低位為 0: 重復(fù)第三步(下一次移位);如果低位為 1:將 CRC 寄存器與一個預(yù)設(shè)的固定值 (OA001H) 進(jìn)行異或運(yùn)算。
●重復(fù)第三步和第四步直到8 次移位。這樣處理完了一個完整的八位。