簡婷
韦德1946网址 上海嘉定 201801
1 通訊說明
Modbus-RTU通訊協議詳細定義(yi) 了校驗碼、數據序列等,這些都是特定數據交換的必要內(nei) 容。MODBUS協議在一根通訊線上使用主從(cong) 應答式連接(半雙工)。當主計算機的信號尋址到一台終端設備(從(cong) 機)後,終端設備發出應答信號傳(chuan) 輸給主機。
MODBUS協議隻允許在主機(PC,PLC等)和終端設備之間通訊,而不允許獨立的終端設備之間的數據交換,這樣各終端設備不會(hui) 在它們(men) 初始化時占據通訊線路,而用於(yu) 響應到達本機的查詢信號。
特別說明:
通信口若是RS485,波特率可在 1200bps、2400,bps、4800 bps、9600bps、19200 bps 和 38400 bps 之間設置,校驗位默認為(wei) 無校驗。
儀(yi) 表的 RS485 通信口要求使用屏蔽雙絞線連接,布線時要考慮整個(ge) 網絡的布局:如通信線纜的長度、走向、上位機的位置、網絡末端的匹配電阻、通信轉換器、網絡可擴展性、網絡覆蓋範圍、環境的電磁幹擾情況等因素,都要綜合考慮。
注:
1、 在布線工程上要嚴(yan) 格按要求施工;
2、 對於(yu) 暫時不需要通信的儀(yi) 表都要將他們(men) 連接到 RS-485 網絡上,以便於(yu) 診斷和測試;
3、 進行 RS-485 電纜連接時,盡量使用雙色雙絞線,所有的 485 通信口“A"端接同一種顏色,“B"端接另一種顏色。
4、 RS-485 總線(從(cong) 上位機通信口到任一被連接儀(yi) 表終端通信口)長不超過 1200 米。
2 信息幀格式
地址碼 | 功能碼 | 數據區 | CRC效驗碼 |
1字節 | 1字節 | n字節 | 2字節 |
地址碼:地址碼在幀的開始部分,由一個(ge) 字節(8位二進製碼)組成,十進製為(wei) 0~255,在PZ儀(yi) 表中隻使用1~247,其它地址保留。這些位標明了用戶的終端設備的地址,該設備將接收來自與(yu) 之相連的主機數據。每個(ge) 終端設備的地址都是唯*,僅(jin) 僅(jin) 被尋址到的終端會(hui) 響應包含了該地址的查詢。當終端發送回一個(ge) 響應,響應中的從(cong) 機地址數據便告訴了主機哪台終端正與(yu) 之進行通信。
功能碼:功能碼告訴了被尋址到的終端執行何種功能。下表列出了該係列儀(yi) 表用到的功能碼,以及它們(men) 的意義(yi) 和功能。
功能 | 定義(yi) | 操作 |
03H/04H | 讀數據寄存器 | 獲得一個(ge) 或多個(ge) 寄存器的當前二進製值 |
10H | 預置多寄存器 | 設定二進製值到一係列多寄存器中 |
數據區:數據區包含了終端執行特定功能所需要的數據或者終端響應查詢時采集到的數據。這些數據的內(nei) 容可能是數值、參考地址或者設置值。
例如:功能碼告訴終端讀取一個(ge) 寄存器,數據區則需要指明從(cong) 哪個(ge) 寄存器開始及讀取多少個(ge) 數據,內(nei) 嵌的地址和數據依照類型和從(cong) 機之間的不同內(nei) 容而有所不同。
CRC效驗碼:錯誤校驗(CRC)域占用兩(liang) 個(ge) 字節,包含了一個(ge) 16位的二進製值。CRC值由傳(chuan) 輸設備計算出來,然後附加到數據幀上,接收設備在接收數據時重新計算CRC值,然後與(yu) 接收到的CRC域中的值進行比較,如果這兩(liang) 個(ge) 值不相等,就發生了錯誤。
生成一個(ge) CRC的流程為(wei) :
a、預置一個(ge) 16位寄存器為(wei) 0FFFFH(全1),稱之為(wei) CRC寄存器。
b、把數據幀中的*一個(ge) 字節的8位與(yu) CRC寄存器中的低字節進行異或運算,結果存回CRC寄存器。
c、將CRC寄存器向右移一位,*高位填以0,低位移出並檢測。
d、如果低位為(wei) 0,重複*三步(下一次移位);如果低位為(wei) 1,將CRC寄存器與(yu) 一個(ge) 預設的固定值(0A001H)進行異或運算。
e、重複*三步和*四步直到8次移位。這樣處理完了一個(ge) 完整的八位。
f、重複*2步到*5步來處理下一個(ge) 八位,直到所有的字節處理結束。
g、*終CRC寄存器的值就是CRC的值。
此外還有一種利用預設的表格計算CRC的方法,它的主要特點是計算速度快,但是表格需要較大的存儲(chu) 空間,該方法此處不再贅述,請參閱相關(guan) 資料。
3 MODBUS通訊
使用Modbus協議進行通訊時,讀數據命令功能碼為(wei) 03H,寫(xie) 數據命令功能碼為(wei) 10H。
具體(ti) 寄存器地址表如下:
3.1 功能碼03H或04H:讀寄存器
此功能允許用戶獲得設備采集與(yu) 記錄的數據及係統參數。主機一次請求的數據個(ge) 數沒有限製,但不能超出定義(yi) 的地址範圍。
下麵的例子是從(cong) 01號從(cong) 機讀3個(ge) 采集到的基本數據 (數據幀中每個(ge) 地址占用2個(ge) 字節)UAB、UBC、UCA,其中UAB的地址為(wei) 0028H, UBC的地址為(wei) 0029H, UCA的地址為(wei) 002AH。
3.2 功能碼10H:寫(xie) 寄存器
功能碼10H允許用戶改變多個(ge) 寄存器的內(nei) 容,該儀(yi) 表中係統參數、開關(guan) 量輸出狀態等可用此功能號寫(xie) 入。主機一次*多可以寫(xie) 入16個(ge) (32字節)數據。
下麵的例子是預置地址為(wei) 01的儀(yi) 表輸出開關(guan) 量Do1。開關(guan) 量輸入/輸出狀態指示寄存器地址為(wei) 0022H,*9-12位對應DI1-DI4, *13-14位分別對應DO1-DO2。
4 通訊應用
采用下表格式(數據為(wei) 16 進製)
4.1 讀數據
例 1:三相電壓表數據
說 明 :
01:從(cong) 機地址
03:功能碼
0c:十六進製,十進製為(wei) 12,表示後麵有 12 個(ge) 字節的數據
1b 05:循環冗餘(yu) 校驗碼
例 2:讀單相電流數據
說 明 :
01:從(cong) 機地址
03:功能碼
04:十六進製,十進製為(wei) 4,表示後麵有 4 個(ge) 字節的數據
5a 50:循環冗餘(yu) 校驗碼
4.2 寫(xie) 數據
例1:單相開關(guan) 量輸出遠程控製(控製字:0012H)
說明:
向開關(guan) 量輸出狀態位遠程寫(xie) 入 1,則閉合;寫(xie) 入 0,則斷開。
當繼電器閉合持續時間為(wei) 非 0 時(0 為(wei) 長閉),繼電器閉合持續時間為(wei) 所設值。
例2:三相開關(guan) 量輸出遠程控製(控製字:002aH)
說明:
向開關(guan) 量輸出狀態為(wei) 遠程寫(xie) 入 1,則閉合;寫(xie) 入 0,則斷開。
當繼電器閉合持續時間為(wei) 非 0 時,表示繼電器工作在脈衝(chong) 方式,繼電器閉合持續時間為(wei) 所設值;若持續時間設置為(wei) 0,則表示繼電器工作在保持方式。
作者介紹
簡婷,韦德1946网址,187 0199 8775
上一篇:綜合醫院能源管理信息係統的建設
掃一掃 微信谘詢
©2025 韦德1946网址 版權所有 技術支持: Sitemap.xml 總訪問量:214358
電瓶車充電樁禁止非法改裝