Skip to content

HEYAHONG/SimpleModbusRTUPacket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

说明

极其简易的Modbus-RTU模式数据包处理。

一般用于单片机,本代码只包含数据包处理程序,时序部分需要在单片机其它代码中实现。

特点如下:

  • 代码极其简易,便于移植。
  • 可用于各类带硬件串口的单片机。
  • 使用简单

缺陷:

  • 串口驱动以及Modbus时序需要自行编写。
  • 未进行某些检查。

使用

注意事项:

  • 本代码中的地址都是从0开始的,但Modbus标准协议中地址规定是从1(数据帧中仍然是从0开始)开始。

  • 所有需要缓冲的函数需要的缓冲推荐分配在栈上,因此在操作系统中需要将任务栈分配到足够大(若可以实现的话),对于一个经典的Modbus任务来讲,至少应当在其它需要的基础上额外分配256字节的栈空间专门用于接收与发送缓冲。可采用以下代码定义缓冲:

    /*
    源代码文件应包含Modbus.h
    */
    #include "Modbus.h"
    
    /*
    在需要调用Modbus函数时定义缓冲
    */
    uint8_t buff[MODBUS_RTU_MAX_ADU_LENGTH];
    /*
    定义好缓冲后,即可使用buff作为调用函数的buff参数,sizeof(buff)作为调用函数的buff_length参数。
    */

主机

主机主要使用modbus_master_context_t结构体及 Modbus_Master开头的函数。主要步骤如下:

  • 定义modbus_master_context_t结构体,并填写相关成员(回调函数需自行定义,通常不可为NULL)。
  • 当需要请求数据时,调用Modbus_Master系列函数。

从机

主机主要使用modbus_slave_context_t结构体及 Modbus_Slave_Parse_Input函数。主要步骤如下:

  • 定义modbus_slave_context_t结构体,并填写相关成员(回调函数需自行定义,通常不可为NULL)。
  • 当串口接收到一帧数据时,调用 Modbus_Slave_Parse_Input函数。

Doxygen文档

进入doc目录后,直接运行doxygen程序,可在output目录中得到最新的文档。

已编译的文档见 doc/html/index.chm

测试

源代码下载

由于本源代码包含第三方源代码,故直接下载可能有部分源代码缺失,需要通过以下方法解决:

  • 在进行git clone 使用--recurse-submodules参数。

  • 若已通过git clone下载,则在源代码目录中执行以下命令下载子模块:

     git submodule update --init --recursive

工具

  • VSPD:虚拟串口驱动
  • ModScan32:Modbus上位机软件

编译

本测试均在MSYS2环境下使用CMake编译,可直接进入相应测试程序目录使用CMake编译。

注意:需要安装对应环境的GCC编译器、CMake、make(或者ninja)等

ModbusSlaveWin32

Modbus从机测试,仅支持Windows。

虚拟串口设置

VSPD

ModScan32测试结果

ModScan32_01

ModScan32_02

ModScan32_03

ModScan32_04

ModScan32_15_1

ModScan32_15_2

ModScan32_15_3

ModScan32_16_1

ModScan32_16_2

ModScan32_16_3

ModbusMasterTestWin32

主机测试,仅支持Windows。需要ModbusSlaveWin32。

对于主机模式的Modbus,通常采用更加强大的libmodbus库,本库仅用于简易使用。

若需GUI版的测试程序,请使用 cutecom-ng(个人修改版)

虚拟串口设置

VSPD

测试结果

ModbusMasterTestWin32

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published