HL.MCP.Service.Package 2.0.9

HL.MCP.Service.Package

MCP 框架的 PLC 通信服务实现,支持三菱和西门子 PLC。

功能特性

  • 三菱 PLC 通信支持
  • 西门子 S7-200 PLC 通信支持
  • MCP 服务框架集成
  • 变量读写功能
  • 数据变化事件通知
  • 状态分发机制

安装

dotnet add package HL.MCP.Service.Package

支持的 PLC

三菱 (Mitsubishi)

  • MitsubishiService - 三菱 PLC 通信服务
  • 支持常见的三菱 PLC 系列

西门子 (Siemens)

  • SiemensService - 西门子 PLC 通用服务
  • S7200Service - 专用于 S7-200 系列

使用方法

三菱 PLC 服务

var mitsubishiService = new MitsubishiService();
mitsubishiService.Initialize("mitsubishi-config.xml");
mitsubishiService.Start();

// 读取变量
object value = mitsubishiService.Read("D100");

// 写入变量
mitsubishiService.Write("D100", 123);

西门子 S7-200 服务

var s7200Service = new S7200Service();
s7200Service.Initialize("s7200-config.xml");
s7200Service.Start();

// 读取变量
object value = s7200Service.Read("VB100");

// 写入变量
s7200Service.Write("VB100", 42);

配置文件

配置文件应包含 PLC 连接参数和监控项:

<Configuration>
  <!-- PLC 连接参数 -->
  <ConnectionString>IP=192.168.1.100;Port=102</ConnectionString>
  
  <!-- 监控项列表 -->
  <Items>
    <Item Name="Temperature" Address="D100" />
    <Item Name="Pressure" Address="D101" />
  </Items>
</Configuration>

事件处理

服务会在变量值变化时触发事件:

mitsubishiService.OnItemChanged += (sender, e) =>
{
    Console.WriteLine($"变量 {e.ItemName} 值变化为: {e.ItemValue}");
};

通过 MCP 框架的状态分发机制,变量变化会自动传递给相关的业务流程。

架构说明

每个服务类都继承自 MCP 框架的 AbstractService,提供:

  • Initialize: 加载配置并初始化 PLC 连接
  • Start: 启动 PLC 通信和数据监控
  • Stop: 停止 PLC 通信
  • Release: 释放资源
  • Read: 读取指定变量的值
  • Write: 写入指定变量的值

依赖项

  • HL.MCP - MCP 框架核心
  • PPi.dll - PLC 通信协议库(已包含)

外部 DLL

本包包含以下外部库:

  • PPi.dll - PPI 协议通信库,用于 PLC 通信

注意事项

  • 确保 PLC 的网络连接正常
  • 验证 PLC 的 IP 地址和端口配置正确
  • 检查地址格式是否符合对应 PLC 的规范
  • 三菱和西门子使用不同的地址格式
  • 某些 PLC 可能需要配置允许远程访问

地址格式示例

三菱 PLC

  • D 寄存器: D0, D100, D1000
  • M 位: M0, M100
  • X 输入: X0, X10
  • Y 输出: Y0, Y10

西门子 S7-200

  • V 区: VB0, VW100, VD200 (字节/字/双字)
  • M 区: MB0, MW10
  • I 输入: IB0, IW1
  • Q 输出: QB0, QW1

许可证

MIT License

No packages depend on HL.MCP.Service.Package.

.NET Framework 4.6.2

Version Downloads Last updated
2.0.9 0 08/19/2026