欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Linux应用开发 | libmodbus

程序员文章站 2022-04-03 11:14:01
一、下载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官网

二、使用

Linux应用开发 | libmodbus
Linux应用开发 | libmodbus
进入到libmodbus-3.1.6里面

makedir install

创建一个文件夹install,编译信息都输出到这里
Linux应用开发 | libmodbus

设置编译选项 (两种情况 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/

正在配置
Linux应用开发 | libmodbus

make

Linux应用开发 | libmodbus

make install

Linux应用开发 | libmodbus
Linux应用开发 | libmodbus

将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);

}

Linux应用开发 | libmodbus
上面的libmodbus库编译好之后,将三个so结尾的库文件拷贝到当前工程的lib目录里,然后把libmodbus的几个头文件拷贝到当前工程的inc目录下。
修改makefile文件,增加库的路径

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

Linux应用开发 | libmodbus
如果还报错找不到 指定下export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./lib

最后make

运行

Linux应用开发 | libmodbus
Linux应用开发 | libmodbus
这里返回了5 应该是读回来了5个寄存器的值

四、modbus slave

Linux应用开发 | libmodbus

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

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

相关标签: 嵌入式Linux