Acuit.Pinpoint.IO.PlcCommunication
8.0.0-preview.25
dotnet add package Acuit.Pinpoint.IO.PlcCommunication --version 8.0.0-preview.25
NuGet\Install-Package Acuit.Pinpoint.IO.PlcCommunication -Version 8.0.0-preview.25
<PackageReference Include="Acuit.Pinpoint.IO.PlcCommunication" Version="8.0.0-preview.25" />
<PackageVersion Include="Acuit.Pinpoint.IO.PlcCommunication" Version="8.0.0-preview.25" />
<PackageReference Include="Acuit.Pinpoint.IO.PlcCommunication" />
paket add Acuit.Pinpoint.IO.PlcCommunication --version 8.0.0-preview.25
#r "nuget: Acuit.Pinpoint.IO.PlcCommunication, 8.0.0-preview.25"
#:package Acuit.Pinpoint.IO.PlcCommunication@8.0.0-preview.25
#addin nuget:?package=Acuit.Pinpoint.IO.PlcCommunication&version=8.0.0-preview.25&prerelease
#tool nuget:?package=Acuit.Pinpoint.IO.PlcCommunication&version=8.0.0-preview.25&prerelease
Acuit.Pinpoint.IO.PlcCommunication
This package provides types for communicating with PLCs via libplctag.
Background
Sometimes multiple plug-ins at a single Acuit Pinpoint station need to communicate with PLCs, or possibly the same PLC. While plug-ins are free to use any PLC communication library, libplctag is a popular open-source library for performing PLC communication. libplctag is designed to optimize communication via a single library instance within a process, so when multiple Acuit Pinpoint Workstation plug-ins are using libplctag for PLC communication, they should preferably all be using a shared libplctag library instance. However, due to Acuit Pinpoint Workstation's plug-in architecture, each plug-in is typically loaded into its own isolated assembly load context with its own private copy of its dependencies, which would normally result in multiple instances of libplctag being loaded into the same process.
To facilitate plug-ins using a shared instance of libplctag, Acuit Pinpoint Workstation includes libplctag via this library.
Low-level libplctag API
Low-level access to libplctag via a thin .NET layer over the C API is provided via types in the Acuit.Pinpoint.IO.PlcCommunication.LibPlcTag namespace.
High-level API
This package also includes a higher-level API that abstracts libplctag tags via carefully-designed .NET types (i.e., ITag<TAttributes>), along with providing PLC-specific types that properly handle various tag data types (e.g., the types in the Acuit.Pinpoint.IO.PlcCommunication.ControlLogix namespace).
Note that this functionality is similar to that provided by the popular libplctag.NET .NET wrapper library, but with these improvements:
- The API is cleaner and more closely aligns to the latest .NET API conventions.
- The implementation is more efficient, with fewer allocations and better performance.
- The design allows for easy testing, with abstractions that allow for unit testing, bypassing any PLC communication or libplctag at all. Fake implementations are provided to facilitate unit testing or simulated PLC features.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. 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 was computed. 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. |
-
net9.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.7)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.7)
- Microsoft.Extensions.Options (>= 9.0.7)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Acuit.Pinpoint.IO.PlcCommunication:
Package | Downloads |
---|---|
Acuit.Pinpoint.Workstation.PlugIns
This meta package does not contain any assets itself, but it references all of the package dependencies used to develop plug-ins for Acuit Pinpoint Workstation. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
8.0.0-preview.25 | 211 | 7/23/2025 |
8.0.0-preview.24 | 111 | 7/13/2025 |
8.0.0-preview.23 | 257 | 6/12/2025 |
8.0.0-preview.22 | 92 | 6/7/2025 |
8.0.0-preview.21 | 127 | 5/19/2025 |
8.0.0-preview.20 | 154 | 5/16/2025 |
8.0.0-preview.19 | 132 | 3/13/2025 |
8.0.0-preview.18 | 119 | 3/8/2025 |
8.0.0-preview.17 | 173 | 3/3/2025 |
8.0.0-preview.16 | 78 | 1/18/2025 |
8.0.0-preview.15 | 66 | 1/13/2025 |
8.0.0-preview.14 | 68 | 1/9/2025 |
8.0.0-preview.13 | 79 | 12/22/2024 |
8.0.0-preview.12 | 84 | 12/21/2024 |
8.0.0-preview.11 | 79 | 12/20/2024 |
8.0.0-preview.10 | 91 | 12/16/2024 |