Modbus RTU常見問題匯總
ModBus協議是應用層報文傳輸協議(OSI模型第7層),它定義了一個與通信層無關的協議數據單元(PDU),即PDU=功能碼+數據域。
ModBus協議能夠應用在不同類型的總線或網絡。對應不同的總線或網絡,Modbus協議引入一些附加域映射成應用數據單元(ADU),即ADU=附加域+PDU。目前,Modbus有下列三種通信方式:
1.以太網,對應的通信模式是MODBUS TCP。
2.異步串行傳輸(各種介質如有線RS-232-/422/485/;光纖、無線等),對應的通信模式是MODBUS RTU或MODBUS ASCII。
3.高速令牌傳遞網絡,對應的通信模式是Modbus PLUS。
二 關于MODBUS RTU通訊協議的提問?
modbus 主要由站地址(一個字節)+功能碼(一個字節)+首地址(兩個字節)+訪問字數(兩個字節)+校驗碼(CRC16或LRC兩個字節)總共8個字節組成。其實VB中編程很簡單從組建添加MSComm組建就行了,難的是校驗,
三 modbus、rtu、modbus rtu分別是什么?
modbus協議是工控行業的標準協議,前身為莫迪康所寫,現已被施奈德收購
而modbus分為兩種協議:即串口協議(modbus rtu)和網口協議(modbus tcp)協議,一般的工控機只支持rs232或者RS485的串口模式,這個時候工控機的協議棧里就只有modbusRTU協議,當他從串口接收 到數據時,會直接根據報文中的數據進行控制,如果需要用modbusTCP協議進行傳輸,則需要使用帶有網口的PLC
具體的幀格式如下
modbus RTU 地址域 功能碼 數據 差錯校驗
modbus TCP 目的地址 協議id 長度 單元號 功能碼 數據
簡單的說 tcp是由RTU加工而來的
而RTU則是另外一種概念,不包含在modbus協議內
是工控行業對監控設備的簡稱。
四 關于modbus_RTU協議主機發送的命令的一些問題
• 01 讀保持線圈狀態(Read coil status)
• 02 讀輸入線圈狀態(Read input status)
• 03 讀保持寄存器(Read holding register)
• 04 讀輸入寄存器(Read input register)
• 05 寫單個線圈(Force single coil)
• 06 寫單個寄存器(Preset single register)
• 15 寫多個線圈(Force multiple coils)
• 16 寫多個寄存器(Preset multiple registers)
這些都是什么意思?
答:01 讀取邏輯線圈組狀態
02 讀取離散量線圈組狀態
03 讀取一個或多個保持寄存器的二進制值
04 讀取一個或多個輸入寄存器的二進制值
05 改變邏輯線圈狀態
06 改變單個寄存器的二進制值
15 改變多個寄存器的二進制值
16 指定多個操持寄存器的二進制值
五 OPC 轉modbus RTU 方式 我現在有一個OPC服務器,里面很多tag,tag是AB里出來的,怎么將tag連到modbus?
Profibus、Fielbus、Modbus、CC-link等等是各中PLC硬件支持的通訊協議,這個是各廠商的硬件屬性一樣.只是現在計算機組態軟件都支持很多種協議的PLC.你理解反了.
Profibus、Fielbus、Modbus、CC-link這些協議,是一種通訊協議,一般不需要你去編程,就好象你使用計算機,你不需要編寫IP協議一樣,只是要遵循它.
遵循的意思就是,你必須按照該廠家所支持的協議在PLC或者DCS硬件組態的時候按照該通訊協議設置硬件.其實這個很簡單. 這里簡單指的是,你學編程,重點是編寫執行控制的動作的程序,硬件通訊協議不需要你自己動手寫。
六 什么是modbus rtu master?
就是選RTU模式,因為MODBUS分為ASCII模式和RTU模式,MASER就是設置為主站,一般為PLC端,變頻器設為從站,還要注意主站和從站地址的設置。
七 Modbus rtu 為什么沒有開始和結束標記?
由于Modbus rtu幀的每個字節是16進制數,數值范圍在00~FF,若像Modbus ASCII那樣用02、03表示開始和結束標記,則與數值2、3發生沖突,無法判斷其是標記還是數值,無法數據解包。
八 modbus tcp 到 rtu的轉換?
請仔細查看幀格式,
modbus RTU 地址域 功能碼 數據 差錯校驗
modbus TCP 目的地址 協議id 長度 單元號 功能碼 數據
寫一個TCP轉RTU的程序放到設備里做modbus網橋即可
九 MODBUS RTU通訊線被燒?
關鍵詞:
ModbusRTU常見問
評論