历史更新
定义
命名空间:
TouchSocketPro.PlcBridges安装:
dotnet add package TouchSocketPro.PlcBridges一、说明
TouchSocketPro.PlcBridges 是一个高效、灵活的PLC数据桥接库,专为.NET开发者设计,用于简化与可编程逻辑控制器(PLC)的数据交互流程。该库提供了强大的数据读写管理能力,支持多种PLC协议和数据类型,使工业自动化开发更加便捷高效。
二、支持的目标框架
- .NET Framework 4.5+
- .NET Standard 2.0+
- .NET Core 3.1+
- .NET 5/6/8/9
三、快速开始
3.1 安装NuGet包
Install-Package TouchSocketPro.PlcBridges
3.2 基本使用示例
🔄 正在加载代码...
四、配置详解
4.1 PlcDriveOption 配置属性
| 属性 | 类型 | 说明 | 默认值 |
|---|---|---|---|
Name | string | 驱动器名称标识符,用于唯一标识当前驱动实例 | null |
Start | int | 映射到PLC桥接服务的起始地址偏移量 | 必须自定义赋值 |
Count | int | 映射到PLC桥接服务的数据单元数量 | 必须自定义赋值 |
EndianType | EndianType | PLC数据的字节序类型(Big-Endian) | EndianType.Big |
MaxReadGap | int | 读取地址范围间的最大间隙阈值(单位:地址偏移量): - 当连续地址块之间的间隙 ≤ 该值时,会被合并为一次性读取操作 - 示例:地址块 0-1, 2-3, 4-7 (间隙≤10) → 合并读取 0-7 | 10 |
MaxWriteGap | int | 写入地址范围间的最大间隙阈值(默认值): - 0 表示每次写入操作单独处理(不合并)- 若设置为有效值需配合 WriteGapValidityWindow | 0 |
WriteGapValidityWindow | TimeSpan | 写入间隙有效时间窗口(需与 MaxWriteGap 配合使用):- 当写入操作存在间隙(≤ MaxWriteGap)时,若该间隙值在窗口时间内被读取过- 系统会将读取值作为补丁数据,与写入操作合并批量提交 - 作用:避免间隙地址被意外覆盖(如默认0值填充) | TimeSpan.Zero |
Group | string | 驱动器分组名称: - 相同分组名称的驱动器使用同一个Task执行队列(串行化执行) | null |
DelayTime | TimeSpan | 驱动器轮询延迟时间: - 值越大,批量处理合并的可能性越高(提升吞吐量) - 值过大会降低实时性,需根据业务场景权衡 | TimeSpan.Zero |
4.2 示例配置
🔄 正在加载代码...
五、核心类与方法
5.1 PlcBridgeService 类
PLC桥接服务的主入口点,负责管理驱动器和操作请求。
5.1.1 主要方法
| 方法 | 说明 |
|---|---|
SetupAsync(TouchSocketConfig) | 配置服务 |
AddDriveAsync(IPlcDrive) | 添加PLC驱动器 |
StartAsync() | 启动服务 |
StopAsync() | 停止服务 |
CreateOperator<T>() | 创建数据操作器 |
5.2 IPlcOperator 接口
提供读写PLC数据的操作接口。
5.2.1 主要方法
| 方法 | 说明 |
|---|---|
ReadAsync(ReadableValueCollection<T>) | 读取数据 |
WriteAsync(WritableValueCollection<T>) | 写入数据 |
5.3 数据集合类
| 类 | 说明 |
|---|---|
ReadableValue<T> | 定义可读值(起始地址+长度) |
ReadableValueCollection<T> | 可读值集合 |
WritableValue<T> | 定义可写值(起始地址+数据) |
WritableValueCollection<T> | 可写值集合 |
六、高级特性
6.1 请求合并优化
通过配置MaxWriteGap和WriteGapValidityWindow实现相邻请求的智能合并:
🔄 正在加载代码...
6.2 使用PlcObject简化访问
通过定义PLC对象映射简化数据访问:
🔄 正在加载代码...
🔄 正在加载代码...
6.3 多驱动器协同工作
支持多个驱动器协同工作,自动处理地址映射:
🔄 正在加载代码...
七、性能优化建议
🔄 正在加载代码...