數字通訊
本儀表提供串行異步半雙工RS485通訊接口,采用MODBUS-RTU協議,各種數據信息均可在通訊線路上傳送。在一條線路上可以同時連接多達64個網絡儀表,每個網絡儀表均可設定其通訊地址,通訊連接應使用帶有銅網的屏蔽雙絞線,線徑不小于0.5mm2。布線時應使通訊線遠離強電電纜或其他強電場環境,推薦采用T型網絡的連接方式,不建議采用星形或其他的連接方式。
MODBUS_RTU通訊協議:MODBUS協議在一根通訊線上采用主從應答方式的通訊連接方式。先,主計算機的信號尋址到一臺地址的終端設備(從機),然后,終端設備發出的應答信號以相反的方向傳輸給主機,即:在一根單獨的通訊線上信號沿著相反的兩個方向傳輸的通訊數據流(半雙工的工作模式)。MODBUS協議只允許在主機(PC,PLC等)和終端設備之間通訊,而不允許的終端設備之間的數據交換,這樣各終端設備不會在它們初始化時占據通訊線路,而限于響應到達本機的查詢信號。
主機查詢:查詢消息幀包括設備地址、功能代碼、數據信息碼、校準碼。地址碼表明要選中的從機設備;功能代碼告之被選中的從設備要執行何種功能,例如功能代碼03或04是要求從設備讀寄存器并返回它們的內容;數據段包含了從設備要執行功能的任何附加信息,校驗碼用來檢驗一幀信息的正確性,從設備提供了一種驗證消息內容是否正確的方法,它采用CRC16的校準規則。
從機響應:如果從設備產生一正常的回應,在回應消息中有從機地址碼、功能代碼、數據信息碼和CRC16校驗碼。數據信息碼則包括了從設備收集的數據:象寄存器值或狀態。如果有錯誤發生,我們約定是從機不進行響應。
傳輸方式:是指一個數據幀內一系列的數據結構以及用于傳輸數據的有限規則,下面定義了與MODBUS協議– RTU方式相兼容的傳輸方式。我們規定在本儀表中采用的通訊數據格式:10位數據通訊(1個起始位、8個數據位、1個停止位、無校驗位)
數據幀的結構,即:報文格式
地址碼 | 功能碼 | 數據碼 | 校驗碼 |
1個BYTE | 1個BYTE | N個BYTE | 2個BYTE |
在我們的系統中只使用1~247,其它地址保留。這些位標明了用戶指定的終端設備的地址,該設備將接收來自與之相連的主機數據。每個終端設備的地址須是的,被尋址到的終端會響應包含了該地址的查詢。當終端發送回一個響應,響應中的從機地址數據便告訴了主機哪臺終端正與之進行通信。
功能碼:告訴了被尋址到的終端執行何種功能。下表列出儀表所支持的的功能碼,以及它們的意義和功能。
代碼 | 意 義 | 行 為 |
03/04 | 讀數據寄存器 | 獲得一個或多個寄存器的當前值 |
16 | 寫預置寄存器 | 設定值到相關的寄存器中 |
數據碼 :包含了終端執行特定功能所需要的數據或者終端響應查詢時采集到的數據。這些數據的內容可能是數值、參考地址或者設置值。例如:功能域碼告訴終端讀取一個寄存器,數據域則需要指明從哪個寄存器開始及讀取多少個數據,而叢機數據碼回送內容則包含了數據長度和相應的數據。
校驗碼: 錯誤校驗(CRC)域占用兩個字節,包含了一個16位的二進制值。CRC值由傳輸設備計算出來,然后附加到數據幀上,接收設備在接收數據時重新計算CRC值,然后與接收到的CRC域中的值進行比較,如果這兩個值不相等,就發生了錯誤。
生成一個CRC 的流程為:
1.預置一個16位寄存器為FFFFH(全1),稱之為CRC寄存器。
2.把數據幀中的個字節的8位與CRC寄存器中的低字節進行異或運算,結果存回CRC寄存器。
3. 將CRC寄存器向右移一位,位填以0,位移出并檢測。
4.如果位為0:重復第三步(下移位);如果位為1:將CRC寄存器與一個預設的固定值(0A001H)進行異或運算。
5. 重復第三步和第四步直到8次移位。這樣處理完了一個完整的八位。
6. 重復第2步到第5步來處理下一個八位,直到的字節處理結束。
7. 終CRC寄存器的值就是CRC的值。
一.舉例說明:
1:讀取從機參數(功能碼03):可取得被編址從機中參數的設定值。
詢問: 要求讀取1號從機參數的設定值
地址 | 功能碼 | 參數起始寄存器高位 | 參數起始寄存器低位 | 參數寄存器個數高位 | 參數寄存器個數低位 | 校驗低位 | 校驗高位 |
01 | 03 | 00 | 00 | 00 | 01 | 84 | 0A |









