stephane/libmodbus
GitHub: stephane/libmodbus
跨平台 C 语言 Modbus 协议库,支持串口和以太网通信,用于工业设备数据交换的底层开发。
Stars: 4078 | Forks: 1922
# 一个出色的 Modbus 库

[](https://scan.coverity.com/projects/libmodbus)
## 概述
libmodbus 是一个用于向遵循 Modbus 协议的设备发送/接收数据的自由软件库。该库可以使用串行端口或以太网连接。
库中包含的功能衍生自 Modicon Modbus 协议参考指南,该指南可从 [www.modbus.org](http://www.modbus.org) 获取。
libmodbus 的许可协议是 _LGPL v2.1 或更高版本_。
官方网站是 [www.libmodbus.org](http://www.libmodbus.org)。该网站包含最新版本的文档。
该库使用 C 语言编写,旨在 Linux、Mac OS X、FreeBSD、Embox、QNX 和 Windows 上运行。
您可以在搭载 Embox RTOS 的 MCU 上使用该库。
## 安装
您只需要安装 automake、autoconf、libtool 和一个 C 编译器(gcc 或 clang)即可编译该库,以及 asciidoc 和 xmlto 来生成文档(可选)。
要安装,只需运行常规命令 `./configure && make install`。如果需要,请先运行 `./autogen.sh` 以生成 `configure` 脚本。
您可以使用 prefix 选项更改安装目录,例如 `./configure --prefix=/usr/local/`。您必须检查系统上的安装库路径是否正确设置(_/etc/ld.so.conf.d_)以及库缓存是否是最新的(如有必要,请以 root 身份运行 `ldconfig`)。
该库提供了一个 _libmodbus.pc_ 文件,以便配合 `pkg-config` 使用,从而简化程序的编译和链接。
如果您想使用 Microsoft Visual Studio 进行编译,应遵循 `./src/win32/README.md` 中的说明。
要在 Windows 下编译,请安装 [MinGW](http://www.mingw.org/) 和 MSYS,然后选择常用软件包(gcc、automake、libtool 等)。目录 _./src/win32/_ 包含一个 Visual C 项目。
要在 OS X 上使用 [homebrew](http://mxcl.github.com/homebrew/) 进行编译,您需要先安装以下依赖项:`brew install autoconf automake libtool`。
要在 Embox 下构建,您必须使用其构建系统。
## 测试
_ tests_ 目录中提供了一些测试,您可以自由修改源代码以满足您的需求(这是自由软件 :)。
有关每个程序的说明,请参阅 _tests/README_。
为了快速测试 libmodbus,您可以在两个 shell 中运行以下程序:
1. ./unit-test-server
2. ./unit-test-client
默认情况下,将执行所有 TCP 单元测试(有关选项,请参阅 --help)。
也可以使用 `make check` 运行单元测试。
## 报告 Bug 或贡献代码
请参阅 [CONTRIBUTING](CONTRIBUTING.md) 文档。
通过向 libmodbus 做出贡献,即表示您同意 [贡献者许可协议](CLA.txt)。
## 文档
您可以使用以下命令提供本地文档服务:
```
pip install mkdocs-material
mkdocs serve
```
标签:Gophish, ICS, IoT, libmodbus, NTLM Relay, PKINIT, PLC通信, RTOS, SCADA, 中间件, 串口通信, 以太网, 协议栈, 哈希传递, 客户端加密, 嵌入式系统, 工业自动化, 工控安全, 开源库, 搜索引擎爬虫, 物联网, 进程监控