Acuit.Pinpoint.IO.PlcCommunication 8.0.0-preview.25

This is a prerelease version of Acuit.Pinpoint.IO.PlcCommunication.
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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Acuit.Pinpoint.IO.PlcCommunication" Version="8.0.0-preview.25" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Acuit.Pinpoint.IO.PlcCommunication" Version="8.0.0-preview.25" />
                    
Directory.Packages.props
<PackageReference Include="Acuit.Pinpoint.IO.PlcCommunication" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Acuit.Pinpoint.IO.PlcCommunication --version 8.0.0-preview.25
                    
#r "nuget: Acuit.Pinpoint.IO.PlcCommunication, 8.0.0-preview.25"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Acuit.Pinpoint.IO.PlcCommunication@8.0.0-preview.25
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Acuit.Pinpoint.IO.PlcCommunication&version=8.0.0-preview.25&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Acuit.Pinpoint.IO.PlcCommunication&version=8.0.0-preview.25&prerelease
                    
Install as a Cake Tool

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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