libmodbus g070 485响应时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了libmodbus g070 485响应时间相关的知识,希望对你有一定的参考价值。

参考技术A 响应时间一般为几百毫秒
当使用ModbusTCP通信时,可以根据结点的多少设置一下超时时间,默认可能为:3000ms(3秒)有点长。但modbustcp响应时间一般为几百毫秒。

vs2022 编译libmodbus源码

​​​​​vs编译libmodbus-C++文档类资源-CSDN下载

项目需要用到了第三方库libmodbus,本文安装的是libmodbus3.1.7,结果如下。

方法一、vs2022编译,默认32位,64位版本需要进行一些设置,详见下文

1.libmodbus下载版本

https://github.com/stephane/libmodbus
2.src双击configure.js

出现
3.vs打开modbus-9.sln编译生成modbus.lib和modbus.dll

将平台配置成release,x64,编译

此时,会遇到如下LNK2019链接错误

解决如下图:缺少依赖库,在additional dependences添加ws2_32.lib,重新编译

出现下图错误

解决:缺少main函数,并不是可执行工程,将configuration type改为.dll,再次编译

编译成功,但会有一些inconsistent dll linkage warning,可以添加预定义

WIN32
_DEBUG
HAVE_CONFIG_H
DLLBUILD
_CRT_SECURE_NO_DEPRECATE=1
_CRT_NONSTDC_NO_DEPRECATE=1
_WINDOWS
ENABLE_THREADS
_CONST_CORRECT_OVERLOADS
NOMINMAX
FREEGLUT_STATIC

此时,成功生成.lib 和.dll

方法二、采用qt编译生成的,64位可用。注意在.pro文件添加 LIBS += -lWS2_32

方法三、模拟linux

一、搭建MSYS环境

1.下载安装msys(在windows上模拟linux)
网址:MSYS2

2.更新pacman -Syu(pacman类似apt-get)

3.配置
参考:在windows上安装配置msys2_hustlei的博客-CSDN博客_msys2安装
3.1实现 cd +文件名进入目录:打开/etc/profile文件,添加一个关键变量:“export MSYS="winsymlinks:lnk”
3.2配置国内镜像,方便快捷下载资源:在/etc/pacman.d文件中对3个镜像文件mirrorlist文件进行修改。
3.3安装git和vim编辑器:有点像linux了, 安装命令:pacman -S git;
3.4安装配置zsh:在linux下,默认采用的是bash,但是现在大多数人都用zsh,方便快捷。安装zsh的命令:pacman -S zsh ;zsh主题采用oh-my-zsh,需要链接到相应的github网址,进行下载。
修改默认shell为zsh:在msys2_shell.cmd文件中,将LOGINSHELL的变量,改为zsh,则启动msys2后自动进入zsh
3.5选择oh-my-zsh中的主题,采用ys。采用vim编辑器在根目录下,打开zshrc文件,修改其中的ZSH_THEME的名字,完成修改。
3.6gcc的安装和环境配置:我安装的是mingw64 mingw-x86_64-gcc版本。安装命令:pacman -S mingw-w64-x86_64-gcc安装完成。

二、编译安装modbus

1.下载源码

网址:https://libmodbus.org/releases/libmodbus-3.1.7.tar.gz

GitHub - stephane/libmodbus at v3.1.7

2. 下载如下工具或组件:autoconf,automake,m4,libtool,perl,crypt。

其中autoconf,automake是主要使用工具;m4,libtool是必要工具;perl是支撑工具;crypt是支撑库。libtool和crypt以库的形式下载。

pacman -S autoconf

3.automake使用
    3.1运行autoscan命令,产生configure.scan文件;
    3.2将configure.scan 文件重命名为configure.in,并修改configure.in文件;
    3.3运行aclocal命令,产生aclocal.m4文件;
    3.4运行autoconf命令,产生configure文件;
    3.5新建Makefile.am文件,新建NEWS、 README、 ChangeLog 、AUTHORS文件;
    3.6修改Makefile.am,并运行automake -a命令;(automake --add-missing)
    3.7运行./confiugre脚本。
    3.8至此,Makefile已生产,然后执行make编译即可。

4.编译安装 

 
  1. make

  2. make install

至此,libmodbus库生成。

以上是关于libmodbus g070 485响应时间的主要内容,如果未能解决你的问题,请参考以下文章

功率计 - Modbus RS485 - 5 到 6 小时后,设备不再响应

RS-485通信接口编码器

串口服务器rs485通信教程存储型网关工作模式

libmodbus 单元 ID 更改

使用 JavaScript 的响应式计数器动画

vs2022 编译libmodbus源码