PHPackages                             erikwang2013/industrial-protocols-modbus - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. erikwang2013/industrial-protocols-modbus

ActiveIndustrial-protocol

erikwang2013/industrial-protocols-modbus
========================================

Modbus TCP/RTU/ASCII 协议包 — 支持 FC 01/03/04/06/10，纯 PHP Socket 实现

v1.1.1(yesterday)00PHP &gt;=8.1

Since Jul 22Compare

[ Source](https://github.com/erikwang2013/industrial-protocols-modbus)[ Packagist](https://packagist.org/packages/erikwang2013/industrial-protocols-modbus)[ RSS](/packages/erikwang2013-industrial-protocols-modbus/feed)WikiDiscussions Synced today

READMEChangelogDependencies (1)Versions (2)Used By (0)

Modbus TCP/RTU/ASCII 协议包 — 支持 FC 01/03/04/06/10，纯 PHP Socket 实现
===============================================================

[](#modbus-tcprtuascii-协议包--支持-fc-0103040610纯-php-socket-实现)

> [English](README.en.md)

Modbus TCP/RTU/ASCII 协议包 — 支持 FC 01/03/04/06/10，纯 PHP Socket 实现。纯 PHP 实现，通过内核框架适配器兼容 6 种 PHP 运行时环境。

安装
--

[](#安装)

```
composer require erikwang2013/industrial-protocols-kernel erikwang2013/industrial-protocols-modbus
```

> 本包依赖 [erikwang2013/industrial-protocols-kernel](https://github.com/erikwang2013/industrial-protocols-kernel)，内核提供连接管理、协议注册、协程适配、事件系统等基础设施。

架构
--

[](#架构)

双驱动架构 — ModbusTcpDriver（TCP Socket，stream\_socket\_client）+ ModbusRtuDriver（RS-485 串口，fopen+stty+CRC16）。帧编解码层：ModbusFrame 抽象基类（CRC16 计算/校验）、ModbusRequest（请求构建，5 种工厂方法）、ModbusResponse（响应解析，含异常帧检测+getRegisters 寄存器提取）。Connector 层：ModbusConnector 实现 ConnectorInterface，自动地址解析（40001-49999 保持寄存器、30001-39999 输入寄存器）。

功能
--

[](#功能)

FC 01 读线圈、FC 03 读保持寄存器、FC 04 读输入寄存器、FC 06 写单个寄存器、FC 10 写多个寄存器、TCP 通信（端口 502，MBAP 头）、RTU 通信（RS-485，CRC16 校验，19200 bps 默认）、ASCII 通信、批量读写、健康检查、连接策略支持（Lazy/Eager/Pooled）

支持的框架
-----

[](#支持的框架)

本包通过内核的框架适配器兼容以下 6 种 PHP 运行时环境：Laravel (ServiceProvider+Facade+artisan)、Webman (config/plugin 自动发现+ProtocolProcess)、Hyperf (ConfigProvider+DI+KernelFactory)、ThinkPHP (services.php+IndustrialProtocolsService)、Yii2 (Bootstrap+组件注册)、Plain PHP (直接实例化 Kernel)

### Laravel 示例

[](#laravel-示例)

```
use Erikwang2013\IndustrialProtocols\Kernel;
use Erikwang2013\IndustrialProtocols\Modbus\ModbusProtocol;

// AppServiceProvider::boot()
$kernel = app(Kernel::class);
$kernel->getProtocolRegistry()->register(new ModbusProtocol());
$kernel->boot();

$conn = $kernel->getConnectionManager()->connect('device-id');
$result = $conn->read('address');

// 或使用 Facade
\Erikwang2013\IndustrialProtocols\Framework\Laravel\IndustrialProtocolsFacade::connect('device-id')->read('address');
```

### Webman 示例

[](#webman-示例)

Worker 启动时 ProtocolProcess 自动初始化。配置 `config/plugin/erikwang2013/industrial-protocols-kernel/config/industrial-protocols.php`。

### Hyperf 示例

[](#hyperf-示例)

```
$kernel = \Hyperf\Context\ApplicationContext::getContainer()->get(Kernel::class);
$conn = $kernel->getConnectionManager()->connect('device-id');
```

使用说明
----

[](#使用说明)

```
use Erikwang2013\IndustrialProtocols\Kernel;
use IndustrialProtocols\Bridge\TcpGatewayBridge;
use IndustrialProtocols\Bridge\ExternalProcessBridge;

$kernel = new Kernel(['config_path' => __DIR__ . '/config.php']);
$kernel->boot();

// 方式 1: 通过 TCP 网关连接
$bridge = new TcpGatewayBridge('192.168.1.200', 502);
$conn = $kernel->getConnectionManager()->connect('device-id', [
    'protocol' => 'modbus',
    'bridge'   => $bridge,
]);
$result = $conn->read('address');

// 方式 2: 通过厂商工厂一键创建
$bridge = $kernel->getVendorBridgeFactory()->create('beckhoff', 'CX2030', '3.1');
$conn = $kernel->getConnectionManager()->connect('device-id', [
    'protocol' => 'modbus', 'bridge' => $bridge,
]);

// 方式 3: 通过 C/C++ SDK 子进程
$bridge = new ExternalProcessBridge('/opt/sdk/bin/master');
$conn = $kernel->getConnectionManager()->connect('device-id', [
    'protocol' => 'modbus', 'bridge' => $bridge,
]);
```

配置示例
----

[](#配置示例)

```
'devices' => [
    'device-id' => [
        'protocol' => 'modbus',
        'host'     => '192.168.1.10',
        'port'     => 502,
        'timeout'  => 3000,
    ],
],
```

适配厂商
----

[](#适配厂商)

Hilscher (netX, cifX)、HMS/Anybus (Communicator, X-gateway)、Moxa (MGate 5105-MB-EIP)、Phoenix Contact (AXL F IL ETH)

系统要求
----

[](#系统要求)

- PHP &gt;= 8.1
- Composer
- erikwang2013/industrial-protocols-kernel

相关链接
----

[](#相关链接)

- [Industrial Protocols 主项目](https://github.com/erikwang2013/industrial-protocols)
- [Kernel 内核](https://github.com/erikwang2013/industrial-protocols-kernel)
- [全部 42 个协议包](https://github.com/erikwang2013/industrial-protocols#%E6%94%AF%E6%8C%81%E7%9A%84%E5%8D%8F%E8%AE%AE)

License
-------

[](#license)

MIT — Copyright (c) 2026 erik  —

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance100

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/9014941?v=4)[erik](/maintainers/erikwang2013)[@erikwang2013](https://github.com/erikwang2013)

---

Tags

modbusplcModbus RTUindustrial protocolsmodbus-tcp

### Embed Badge

![Health badge](/badges/erikwang2013-industrial-protocols-modbus/health.svg)

```
[![Health](https://phpackages.com/badges/erikwang2013-industrial-protocols-modbus/health.svg)](https://phpackages.com/packages/erikwang2013-industrial-protocols-modbus)
```

###  Alternatives

[php-opcua/opcua-client

Pure PHP OPC UA client — binary protocol over TCP, 6 security policies, browse/read/write/subscribe/history, zero external dependencies

131.4k23](/packages/php-opcua-opcua-client)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
