windows下libmodbus使用攻略

libmodbus

libmodbus使用起来很方便,支持modbus的多种模式,提供了很简单的函数供使用,并且可以支持多个平台。本文主要讲述在windows平台下使用libmodbus的方法,不需要安装其他的环境。

libmodbus下载地址

官方网址:https://libmodbus.org/
源码下载地址:https://github.com/stephane/libmodbus/releases

windows下应下载.zip后缀的源代码

使用步骤

  1. 解压libmodbus源码包。
  2. (重要)进入libmodbus-3.1.10\libmodbus-3.1.10\src\win32文件夹,运行configure.js,配置源代码中的相关信息
  3. 将libmodbus-3.1.10\src中的.c和.h源码文件,以及libmodbus-3.1.10\src\win32中生成的config.h文件,拷贝到一个新建文件夹中,文件夹可命名为modbus(名称随意)
  4. 以Qt为例,新建一个工程,将刚才创建的modbus文件夹导入
  5. 由于modbus TCP模式要用到网络连接,需要在.pro配置文件中增加应用的网络库 -lws2_32,在.pro文件中增加 LIBS += -lws2_32
  6. 此时如果编译的话,会提示config.h找不到,config.h现在在modbus文件夹中,修改相应的#include 为#include "config.h"即可
  7. 在main.cpp中引入modbus.h 测试编译成功。

使用步骤详解

  1. 解压libmodbus源码包。windows下libmodbus使用攻略_第1张图片

  2. (重要)进入libmodbus-3.1.10\libmodbus-3.1.10\src\win32文件夹,运行configure.js,配置源代码中的相关信息
    windows下libmodbus使用攻略_第2张图片
    windows下libmodbus使用攻略_第3张图片

  3. 将libmodbus-3.1.10\src中的.c和.h源码文件,以及libmodbus-3.1.10\src\win32中生成的config.h文件,拷贝到一个新建文件夹中,文件夹可命名为modbus(名称随意)windows下libmodbus使用攻略_第4张图片

  4. 以Qt为例,新建一个工程,将刚才创建的modbus文件夹导入
    windows下libmodbus使用攻略_第5张图片

  5. 由于modbus TCP模式要用到网络连接,需要在.pro配置文件中增加应用的网络库 -lws2_32,在.pro文件中增加 LIBS += -lws2_32
    windows下libmodbus使用攻略_第6张图片

  6. 此时如果编译的话,会提示config.h找不到,config.h现在在modbus文件夹中,修改相应的#include 为#include "config.h"即可
    windows下libmodbus使用攻略_第7张图片
    windows下libmodbus使用攻略_第8张图片

  7. 在main.cpp中引入modbus.h 测试编译成功。
    windows下libmodbus使用攻略_第9张图片

  8. 输入测试用例

#include 
#include "modbus/modbus.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    qDebug()<<"Wait for connection\n";

    modbus_t* mb;
    mb=modbus_new_tcp("127.0.0.1",502);
    modbus_set_debug(mb, TRUE);

    if (modbus_connect(mb)== -1)
    {
        qDebug()<<"Connect error\n";
    }
    else
    {
        qDebug()<<"Connect successfully\n";
    }

    //测试写入保持寄存器
    int stt;
    stt=modbus_write_register(mb,0,123);

    return a.exec();
}

执行成功,modbus slave从机显示结果
windows下libmodbus使用攻略_第10张图片

你可能感兴趣的:(qt,c++,开发语言)