当前位置: 移动技术网 > 网络运营>服务器>Linux > Linux应用开发 | libmodbus

Linux应用开发 | libmodbus

2020年10月10日  | 移动技术网网络运营  | 我要评论
一、下载libmodbus官网二、使用进入到libmodbus-3.1.6里面创建一个文件夹install,编译信息都输出到这里设置编译输出路径./configure --prefix=/home/zys/linux/application/libmodbus/libmodbus-3.1.6/install/正在配置配置完成 再make在make install将lib下的3个动态库libmodbus.so.x.x,拷贝到项目所在环境的/lib目录。1】下载2】解压安

一、下载

libmodbus官网

二、使用

在这里插入图片描述
在这里插入图片描述
进入到libmodbus-3.1.6里面

makedir install

创建一个文件夹install,编译信息都输出到这里
在这里插入图片描述

设置编译选项 (两种情况 ubuntu or 开发板)

ubuntu下:

./configure --prefix=/home/zys/linux/application/libmodbus/libmodbus-3.1.6/install/

开发板(需指定交叉编译器):

./configure --host=arm-linux-gnueabihf --enable-static --prefix=/home/zys/linux/application/libmodbus/libmodbus-3.1.6/install/

正在配置
在这里插入图片描述

make

在这里插入图片描述

make install

在这里插入图片描述
在这里插入图片描述

将lib下的3个动态库libmodbus.so.x.x,拷贝到项目所在环境的/lib目录。

1】下载
2】解压安装包:tar zxvf libmodbus-3.1.6.tar.gz
3】进入安装包:cd libmodbus-3.1.6
4】创建文件夹,存放编译输出:mkdir install
5】配置交叉编译器:注意两种情况
6】make
7】make install

三、测试

/**
 * @name: 测试modbus客户端
 * @test: 首先启动modbus slave客户端软件
 * @return {type} 
 */
int test_md_client()
{
  modbus_t *mb;
  int len;
  uint16_t tab_reg[32];

  mb = modbus_new_tcp("192.168.2.189", 502);
  modbus_connect(mb);

  /* Read 5 registers from the address 0 */
  len=modbus_read_registers(mb, 0, 5, tab_reg);
  printf("len=%d\n",len);
  modbus_close(mb);
  modbus_free(mb);

}

在这里插入图片描述
上面的libmodbus库编译好之后,将三个so结尾的库文件拷贝到当前工程的lib目录里,然后把libmodbus的几个头文件拷贝到当前工程的inc目录下。
修改makefile文件,增加库的路径

#modbus动态库的位置 如果还报错找不到 指定下export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./lib
LDFLAGS += -L./lib -lmodbus

在这里插入图片描述
如果还报错找不到 指定下export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./lib

最后make

运行

在这里插入图片描述
在这里插入图片描述
这里返回了5 应该是读回来了5个寄存器的值

四、modbus slave

在这里插入图片描述

注意:
  (1)连接Connection采用Modbus TCP/IP协议;
  (2)网络地址为本地地址,127.0.0.1;
  (3)端口设置为“502”;
  (4)选择“Ignore Unit ID”,如果不选择,测试程序返回空值。

本文地址:https://blog.csdn.net/myWorld001/article/details/108991704

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网