目录
前言
库介绍
libModbus下载及编译
下载
编译
1.进到libmodbus/src/win32目录中,实际路径看使用者具体情况
2.运行 configure.js,依次生成必要文件
3.使用vs2019打开 modbus-9.sln,确认升级
4.Win32下的Debug、Release可以直接编译
5.X64编译
5.1进配置管理器增加X64
5.2进入项目属性编辑器
5.2.1在配置属性=常规-配置类型中,将Debug、Release配置类型均修改为“动态库(.dll)”
5.2.2在配置属性-C/C++-预处理器-预处理器定义中,
5.2.3在配置属性-链接器-输入-附加依赖项,Debug、Release均修改为
5.2.3X64下Debug、Release分别编译即可,注意生成的文件在X64文件夹内
libModbus简单应用
1.新建Qt工程,配置属性-C/C++-附件包含目录,按实际情况添加libModbus相关头文件
2.配置属性-链接器-常规-附加库目录,按实际情况添加libModbus生成的lib
3.如果需要,可以在配置属性-生成事件-生成后事件-命令行中,添加命令,将打印信息输出到Console,方便调试Modbus
4.将modbus.dll放到项目工作目录
5.添加代码
6.验证结果
前言
本文将libModbus编译经过进行分享,介绍Windows平台下libModbus的编译及使用,基于VS2019。
库介绍
libModbus官网libmodbus。是遵循开源协议LGPL-2.1-or-later的一款开源软件。请大家自行研判使用条款及风险。
文末有编译好的.dll .lib,方便大家。压缩包解压密码:123。
libModbus下载及编译
下载
libModbus位于github,GitHub - stephane/libmodbus: A Modbus library for Linux, Mac OS, FreeBSD and Windows
可以点击链接跳转到CSDN推荐的加速站点下载
也可以直接使用命令下载:git clone https://github.com/stephane/libmodbus.git
编译
1.进到libmodbus/src/win32目录中,实际路径看使用者具体情况
2.运行 configure.js,依次生成必要文件
3.使用vs2019打开 modbus-9.sln,确认升级
4.Win32下的Debug、Release可以直接编译
Debug编译结果
Release编译结果
5.X64编译
5.1进配置管理器增加X64
5.2进入项目属性编辑器
5.2.1在配置属性=常规-配置类型中,将Debug、Release配置类型均修改为“动态库(.dll)”
5.2.2在配置属性-C/C++-预处理器-预处理器定义中,
Debug修改为
HAVE_CONFIG_H;DLLBUILD;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NONSTDC_NO_DEPRECATE=1;_WINDLL;%(PreprocessorDefinitions)
Release修改为
HAVE_CONFIG_H;DLLBUILD;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NONSTDC_NO_DEPRECATE=1;_WINDLL;%(PreprocessorDefinitions);
5.2.3在配置属性-链接器-输入-附加依赖项,Debug、Release均修改为
ws2_32.lib;%(AdditionalDependencies)
5.2.3X64下Debug、Release分别编译即可,注意生成的文件在X64文件夹内
libModbus简单应用
1.新建Qt工程,配置属性-C/C++-附件包含目录,按实际情况添加libModbus相关头文件
$(ProjectDir)\libModbus\include;
2.配置属性-链接器-常规-附加库目录,按实际情况添加libModbus生成的lib
$(ProjectDir)\libModbus\lib;
3.如果需要,可以在配置属性-生成事件-生成后事件-命令行中,添加命令,将打印信息输出到Console,方便调试Modbus
editbin /SUBSYSTEM:CONSOLE $(OUTDIR)\$(ProjectName).exe
4.将modbus.dll放到项目工作目录
5.添加代码
添加头文件引用
#include "modbus.h"
#pragma comment(lib, "modbus.lib")
声明变量
modbus_t * pModbus;
往前8个寄存器写入随机数
pModbus = modbus_new_rtu("COM8", 115200, 'N', 8, 1);
qDebug() << modbus_set_debug(pModbus, true);
qDebug() << modbus_rtu_set_serial_mode(pModbus, MODBUS_RTU_RS485);
qDebug() << modbus_set_slave(pModbus, 1);
qDebug() << modbus_set_response_timeout(pModbus, 0, 200 * 1000);
qDebug() << modbus_connect(pModbus);
uint16_t buffer[8] = { 0 };
qDebug() << "generate random registers";
for (int i = 0; i < 8; i++)
{
buffer[i] = rand();
qDebug() << buffer[i];
}
qDebug() << modbus_write_registers(pModbus, 0, 8, buffer);
qDebug() << modbus_read_registers(pModbus, 0, 8, buffer);
6.验证结果
可以看到,随机生成的数据已经成功写入到对应的寄存器
编译结果
编译完成的libModbus
https://download.csdn.net/download/wuqunce/88640535
文章中开发好的简单Demo
https://download.csdn.net/download/wuqunce/88642528文章来源:https://www.toymoban.com/news/detail-846188.html
使用的环境为,Qt-opensource-windows-x86-5.9.4,vs2017,qt-vsaddin-msvc2017-2.10.1-rev.2文章来源地址https://www.toymoban.com/news/detail-846188.html
到了这里,关于[开源库的使用]libModbus编译及使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!