erikwang2013/industrial-protocols-iec61850

There is no license information available for the latest version (v1.1.1) of this package.

IEC 61850 协议包 — 变电站自动化,MMS over TCP,IED 数据路径解析

Maintainers

Package info

github.com/erikwang2013/industrial-protocols-iec61850

Type:industrial-protocol

pkg:composer/erikwang2013/industrial-protocols-iec61850

Transparency log

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.1.1 2026-07-22 04:40 UTC

This package is auto-updated.

Last update: 2026-07-22 08:17:09 UTC


README

English

IEC 61850 协议包 — 变电站自动化,MMS over TCP,IED 数据路径解析。纯 PHP 实现,通过内核框架适配器兼容 6 种 PHP 运行时环境。

安装

composer require erikwang2013/industrial-protocols-kernel erikwang2013/industrial-protocols-iec61850

本包依赖 erikwang2013/industrial-protocols-kernel,内核提供连接管理、协议注册、协程适配、事件系统等基础设施。

架构

基于内核 SDK 接口(ProtocolInterface/ConnectorInterface/DriverInterface/FrameInterface)构建,通过 Iec61850Driver 实现底层通信,Iec61850Connector 封装为统一 ConnectorInterface。

功能

完整的 iec61850 协议帧编解码、驱动层通信、Connector 封装、健康检查、连接策略支持(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 示例

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 示例

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

Hyperf 示例

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

使用说明

$conn = $kernel->getConnectionManager()->connect('ied-001');
$result = $conn->read('IED1/MMXU1.MX.A.phsA');   // 电流 A 相
$result = $conn->read('IED1/MMXU1.MX.PhV.phsA');  // 电压 A 相

配置示例

'devices' => [
    'device-id' => [
        'protocol' => 'iec61850',
        'host'     => '192.168.1.10',
        'port'     => 102,
        'timeout'  => 3000,
    ],
],

适配厂商

Siemens (SIPROTEC, SICAM)、ABB (REF615, REL650)、Schneider (MiCOM)

系统要求

  • PHP >= 8.1
  • Composer
  • erikwang2013/industrial-protocols-kernel

相关链接

License

MIT — Copyright (c) 2026 erik erik@erik.xyzhttps://erik.xyz