mbpoll 技术文档
概览
mbpoll 是一个命令行工具,用于通过 ModBus 协议(RTU 或 TCP 方式)与从站设备通信。这是一个跨平台项目,已在 GNU/Linux(x86, x86_64, armhf, arm64)、Microsoft Windows 和 Mac OS X 上进行过编译测试。主要版本1的开发已完成,而使用libmodbuspp的版本2正在开发中。
mbpoll能够实现的功能包括:
- 读取离散输入
- 读写二进制输出(线圈)
- 读取输入寄存器
- 读写输出寄存器(保持寄存器)
寄存器的读写可以以十进制、十六进制或单精度浮点数格式进行。
请注意,尽管mbpoll的输出语法和命令行选项类似proconX发布的原始modpoll程序,但它是完全独立的项目,并且基于不同的源代码。mbpoll遵循GPL许可证发布,而原始modpoll程序则不受GPL覆盖。
安装指南
使用APT仓库安装(推荐)
对于快速安全地安装mbpoll,推荐使用来自piduino.org的APT仓库:
-
添加密钥:
wget -O- http://www.piduino.org/piduino-key.asc | sudo apt-key add -
-
添加仓库并更新包列表(这里以Debian Stretch为例,其他版本替换相应代号):
sudo add-apt-repository 'deb http://apt.piduino.org stretch piduino' sudo apt update
-
安装mbpoll及其依赖:
sudo apt install mbpoll
对于Raspbian,流程稍有不同,需要这样操作:
echo 'deb http://raspbian.piduino.org stretch piduino' | sudo tee /etc/apt/sources.list.d/piduino.list
sudo apt update
sudo apt install mbpoll
从源码构建
环境准备:
-
安装libmodbus(>=3.1.4版本):
$ sudo apt-get install build-essential libtool git-core autoconf automake $ git clone https://github.com/stephane/libmodbus.git $ cd libmodbus $ ./autogen.sh $ ./configure $ make && sudo make install
-
(可选,如果你需要RS485通过GPIO管理)安装piduino:
$ sudo apt-get install cmake libcppdb-dev pkg-config libsqlite3-dev sqlite3 libudev-dev $ git clone https://github.com/epsilonrt/piduino.git $ cd piduino $ git checkout dev $ mkdir build $ cd build $ cmake .. $ make $ sudo make install
-
构建mbpoll:
$ sudo apt-get install cmake pkg-config $ cd mbpoll $ mkdir build $ cd build $ cmake .. $ make $ sudo make install $ sudo ldconfig
或者,你可以生成并安装 deb 包:
$ make package
$ sudo dpkg -i *.deb
项目使用说明
mbpoll允许通过命令行接口与ModBus设备交互,以下为基本用法示例,阅读输入寄存器1和2于地址33的从站,通过RTU连接在 /dev/ttyUSB2
上,波特率为38400:
$ mbpoll -a 33 -b 38400 -t 3 -r 1 -c 2 /dev/ttyUSB2
此命令将持续输出寄存器值,直到按下Ctrl+C停止。
项目API使用文档
mbpoll本身作为一个命令行工具,不直接提供编程API,其功能调用是通过命令行参数来实现的。不过,它背后的libmodbus库提供了API给开发者使用。要深入了解libmodbus API,建议直接参考libmodbus项目的官方文档和头文件中的函数定义。
总结
mbpoll是一个强大的ModBus协议工具,适用于多种场景下的设备通讯。无论是通过便捷的仓库安装还是手动编译,用户都可以迅速集成到自己的系统中。利用其丰富的命令行选项,可以灵活地读写ModBus寄存器,非常适合自动化控制和工业数据采集应用。深入研究其使用方法和结合libmodbus的底层API,可以帮助开发者创建更复杂、定制化的ModBus解决方案。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考