FreeModbus RTU slave & Modbus RTU master


一、FreeModbus RTU 協議數據格式

FreeModbus RTU是開源的一個協議,並且使用FreeModbus RTU 只能當做從機Slave,RTU協議中的指令由地址碼(一個字節),功能碼(一個字節),起始地址(兩個字節),數據(N個字節),校驗碼(兩個字節)五個部分組成,其中數據又由數據長度(兩個字節,表示的是寄存器個數,假定內容為M)和數據正文(M乘以2個字節)組成,而RTU協議是采用3.5個字節的空閑時間作為指令的起始和結束。

Modbus 數據的請求及應答

其中3.5個字節的空閑時間是指從接收到第一個字節數據到最后一個字節數據所有的時間,如下所示程序中是50us的定時時基,

那么3.5個字節的空閑時間 = 50us * usTimerT35_50us

 /* If baudrate > 19200 then we should use the fixed timer values
         * t35 = 1750us. Otherwise t35 must be 3.5 times the character time.
         */
        if( ulBaudRate > 19200 )
        {
            usTimerT35_50us = 35;       /* 1800us. */
        }
        else
        {
            /* The timer reload value for a character is given by:
             *
             * ChTimeValue = Ticks_per_1s / ( Baudrate / 11 )
             *             = 11 * Ticks_per_1s / Baudrate
             *             = 220000 / Baudrate
             * The reload for t3.5 is 1.5 times this value and similary
             * for t3.5.
             */
            usTimerT35_50us = ( 7UL * 220000UL ) / ( 2UL * ulBaudRate );
        }

調試modbus 工具

Modbus 調試精靈或者Modbus Poll模擬當做 主機
Modbus Slave 模擬當做 從機

http://www.modbustools.com/download.html//工具下載

二、參考文檔

Modbus 協議文檔

http://www.modbus.org/docs/Modbus_Messaging_Implementation_Guide_V1_0b.pdf

http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf

FreeModbus Slave

//FreeModbus 源代碼:

https://sourceforge.net/projects/freemodbus.berlios/files/

//FreeModbus 移植參考:

https://www.dhlx.wang/STM32F411VET6/Porting_FreeModbus_to_STM32F411VET6_based_on_STM32CubeF4.html

http://blog.csdn.net/dldw8816/article/details/44563749

http://blog.csdn.net/liu236141068/article/details/51841245

Modbus RTU Master

//移植源代碼

https://github.com/LittleBigQi/ModBus-Master

https://github.com/4-20ma/ModbusMaster

by 羊羊得億
2018-01-30 ShenZhen


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM