Modbus數據幀都是16進製的,而組態王中的寄存器地址是10進製的,因此需要對數據幀中的地址位做一個(ge) 從(cong) 16進製到10進製的轉換,比如地址1004對應的就4100,前麵再加上功能碼對應的寄存器,從(cong) 而構成變量的寄存器地址。下麵以成都喬(qiao) 存的一款比例放大器為(wei) 例,使用ModbusRTU協議與(yu) 組態王通訊。
主機發送 03 03 00 04 00 01 C4 9
從(cong) 機回複 03 03 02 03 EB C1 3A
下麵對數據幀進行解析:
其中03 E8是數據,轉換成10進製後為(wei) 1000,即讀得該設備的心跳時間為(wei) 1000。0004對應的10進製就是4,在組態王中還需要做一個(ge) 地址偏移,即寄存器地址需要加1,就是0005,前麵再加上功能碼對應的寄存器4,即40005,因此在組態王中的寄存器地址就是40005,如圖2所示。
主機發送:03 06 10 04 01 F4 CD 3E
從(cong) 機回複:03 06 10 04 01 F4 CD 3E
對數據幀進行解析如下:
其中01 F4是數據,轉換成10進製後為(wei) 500,即主機寫(xie) 給該設備的心跳時間為(wei) 500。1004對應的10進製就是4100,在組態王中還需要做一個(ge) 地址偏移,即寄存器地址需要加1,就是4101,前麵再加上功能碼對應的寄存器4,即44101,因此在組態王中的寄存器地址就是44101,如圖3所示。