TouchSocketPro.PlcBridges
4.3.11
Prefix Reserved
dotnet add package TouchSocketPro.PlcBridges --version 4.3.11
NuGet\Install-Package TouchSocketPro.PlcBridges -Version 4.3.11
<PackageReference Include="TouchSocketPro.PlcBridges" Version="4.3.11" />
<PackageVersion Include="TouchSocketPro.PlcBridges" Version="4.3.11" />
<PackageReference Include="TouchSocketPro.PlcBridges" />
paket add TouchSocketPro.PlcBridges --version 4.3.11
#r "nuget: TouchSocketPro.PlcBridges, 4.3.11"
#:package TouchSocketPro.PlcBridges@4.3.11
#addin nuget:?package=TouchSocketPro.PlcBridges&version=4.3.11
#tool nuget:?package=TouchSocketPro.PlcBridges&version=4.3.11
TouchSocketPro.PlcBridges
项目概述
TouchSocketPro.PlcBridges 是一个高效、灵活的PLC数据桥接库,专为.NET开发者设计,用于简化与可编程逻辑控制器(PLC)的数据交互流程。该库提供了强大的数据读写管理能力,支持多种PLC协议和数据类型,使工业自动化开发更加便捷高效。
核心特性
🧩 驱动器管理系统
- 地址范围管理:每个驱动器管理特定的PLC地址范围(起始地址+数量)
- 地址重叠检测:自动检测并防止驱动器地址范围重叠
- 分组执行:支持驱动器分组,相同分组的驱动器串行执行
⚡ 高效数据处理
- 读写请求合并:智能合并相邻的读写请求,减少通信次数
- 异步操作:全异步API设计,支持CancellationToken
- 缓冲区管理:内置高效缓冲区,减少内存分配开销
📊 灵活的数据类型支持
- 支持所有非托管数据类型(
unmanaged) - 自定义字节序处理(
EndianType) - 泛型驱动器和操作器实现
🔒 安全与可靠性
- 只读驱动器支持
- 完善的异常处理机制
- 操作结果状态跟踪(
Result)
单驱动读写
通过 PlcDriveOperator<TValue> 可以直接包装一个驱动器,构造后即可读写,支持现有的 IPlcOperator<TValue> 扩展和 PlcObject。
using var drive = new MemoryPlcDrive<short>(new PlcDriveOption
{
Start = 100,
Count = 1000
});
using var plcOperator = new PlcDriveOperator<short>(drive);
var writeResult = await plcOperator.WriteAsync(100, new short[] { 10, 20 });
var readResult = await plcOperator.ReadAsync(100, 2);
if (readResult.IsSuccess)
{
ReadOnlyMemory<short> values = readResult.Value;
}
读写地址沿用驱动器的 Start/Count 范围。操作器内部独立串行调度,保留驱动器的请求合并、最大读写数量、只读限制等行为。多个操作器可分别包装地址相同的不同驱动器;各操作器之间不会按 Group 串行执行。一个驱动器只能由一个操作器或桥接服务调度。
释放操作器会停止调度并取消等待中的请求,驱动器由调用方释放。超时和调用方取消只结束请求等待,已经提交给驱动器的操作仍可能执行,与桥接服务的操作器行为一致。
性能优化
- 请求合并:自动合并相邻地址的请求(通过
MaxGap控制合并间隙) - 缓冲区复用:减少内存分配开销
- 批量处理:单次执行处理多个读写请求
应用场景
- 工业自动化控制系统
- SCADA系统数据采集
- PLC数据监控与分析
- 自动化测试模拟环境
- 工业物联网(IIoT)应用
文档说明
详细的说明文档请访问:https://touchsocket.net/
支持的目标框架
- net462
- net472
- netstandard2.0
- netstandard2.1
- net6.0
- net10.0
- net8.0
贡献与反馈
如果你在使用过程中遇到问题或有任何建议,欢迎提交 issue 或参与项目贡献。
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- TouchSocketPro (>= 4.3.11)
-
.NETStandard 2.0
- TouchSocketPro (>= 4.3.11)
-
.NETStandard 2.1
- TouchSocketPro (>= 4.3.11)
-
net10.0
- TouchSocketPro (>= 4.3.11)
-
net6.0
- TouchSocketPro (>= 4.3.11)
-
net8.0
- TouchSocketPro (>= 4.3.11)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on TouchSocketPro.PlcBridges:
| Package | Downloads |
|---|---|
|
TouchSocketPro.Modbus
【专业版】这是一个Modbus从站功能库,目前包括ModbusTcpSlave、ModbusUdpSlave、ModbusRtuSlave、ModbusRtuOverTcpSlave、ModbusRtuOverUdpSlave。 说明文档:https://touchsocket.net/ |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.3.11 | 0 | 10/25/2026 |
| 4.3.10 | 133 | 10/11/2026 |
| 4.3.9 | 185 | 9/17/2026 |
| 4.3.8 | 141 | 9/17/2026 |
| 4.3.7 | 190 | 9/10/2026 |
| 4.3.6 | 214 | 9/5/2026 |
| 4.3.5 | 152 | 9/5/2026 |
| 4.3.4 | 190 | 8/27/2026 |
| 4.3.3 | 158 | 8/22/2026 |
| 4.3.2 | 191 | 8/15/2026 |
| 4.3.1 | 170 | 8/9/2026 |
| 4.3.0 | 199 | 8/1/2026 |
| 4.2.18 | 218 | 7/26/2026 |
| 4.2.17 | 228 | 7/12/2026 |
| 4.2.16 | 225 | 7/5/2026 |
| 4.2.14 | 252 | 6/14/2026 |
| 4.2.13 | 232 | 6/7/2026 |
| 4.2.12 | 224 | 5/30/2026 |
| 4.2.11 | 251 | 5/23/2026 |
| 4.2.10 | 184 | 5/15/2026 |