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
- HL.MCP (>= 2.0.9)
| Version | Downloads | Last updated |
|---|---|---|
| 2.0.9 | 0 | 08/19/2026 |