philipp2604.S7UaLib.Infrastructure
4.0.0
See the version list below for details.
dotnet add package philipp2604.S7UaLib.Infrastructure --version 4.0.0
NuGet\Install-Package philipp2604.S7UaLib.Infrastructure -Version 4.0.0
<PackageReference Include="philipp2604.S7UaLib.Infrastructure" Version="4.0.0" />
<PackageVersion Include="philipp2604.S7UaLib.Infrastructure" Version="4.0.0" />
<PackageReference Include="philipp2604.S7UaLib.Infrastructure" />
paket add philipp2604.S7UaLib.Infrastructure --version 4.0.0
#r "nuget: philipp2604.S7UaLib.Infrastructure, 4.0.0"
#:package philipp2604.S7UaLib.Infrastructure@4.0.0
#addin nuget:?package=philipp2604.S7UaLib.Infrastructure&version=4.0.0
#tool nuget:?package=philipp2604.S7UaLib.Infrastructure&version=4.0.0
S7UaLib.Infrastructure ⚙️
The internal engine room for the S7UaLib ecosystem. This library provides the concrete implementations for the abstractions defined in S7UaLib.Core
. It brings the data models and contracts to life with a robust OPC UA client, a rich set of data type converters, an in-memory data store, and serialization logic.
This package contains the "how" – the logic for connecting, browsing, reading, writing, and converting data. It is a required dependency for the high-level S7UaLib
package and is not intended for direct use by end-users.
✨ Key Features
- 🔌 Robust OPC UA Client (
S7UaClient
): The heart of the library, providing a concrete implementation for all communication with the PLC. It manages sessions, handles automatic reconnection, and exposes low-level methods for browsing, reading, writing, and creating subscriptions. - 🔄 Comprehensive S7 Data Type Conversion: A rich collection of type converters that seamlessly handle complex S7-specific formats.
- BCD-based types like
DATE_AND_TIME
and legacyS5TIME
. - Modern nanosecond-precision types like
DTL
andLTIME
. - Specialized types like
COUNTER
(BCD) andDATE
. - Meta-converters for handling
ARRAY
s of complex types.
- BCD-based types like
- 💾 Efficient In-Memory Data Store (
S7DataStore
): A thread-safe, in-memory cache for holding the entire discovered PLC structure. It enables fast, path-based variable lookups and uses immutable data patterns for updating variable state. - 📄 Advanced JSON Serialization (
S7StructureSerializer
): A purpose-builtSystem.Text.Json
configuration for saving and loading the complete, discovered PLC structure. It correctly handles the polymorphic nature of the data models (IS7Variable
,IS7StructureElement
, etc.).
🚀 Getting Started
Installation
This package is a dependency for other S7UaLib
libraries and will typically be installed automatically. However, you can install it manually using the .NET CLI:
dotnet add package philipp2604.S7UaLib.Infrastructure
🎯 What This Library Is (and Isn't)
- ✔️ IT IS: The concrete implementation layer. It contains the working code that communicates with the PLC and manages data.
- ❌ IT IS NOT: The public-facing API. Its components are complex and require careful coordination. For a simple, unified interface, you should use the main
S7UaLib
package, which orchestrates these components for you.
🤝 Contributing
Contributions are welcome! Please refer to the main S7UaLib repository for guidelines on reporting issues or submitting pull requests.
⚖️ License
This project is licensed under the GNU General Public License v2.0 (GPL-2.0).
This is a direct consequence of the dependency on the official OPCFoundation.NetStandard.Opc.Ua
packages, which are licensed under GPL 2.0. Any project using S7UaLib.Infrastructure must therefore also comply with the terms of the GPL 2.0 license, which generally means that if you distribute your application, you must also make the source code available.
Please review the license terms carefully before integrating this library into your project.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | 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 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. |
-
net8.0
- OPCFoundation.NetStandard.Opc.Ua.Client (>= 1.5.376.235)
- OPCFoundation.NetStandard.Opc.Ua.Core (>= 1.5.376.235)
- philipp2604.S7UaLib.Core (>= 4.0.0)
-
net9.0
- OPCFoundation.NetStandard.Opc.Ua.Client (>= 1.5.376.235)
- OPCFoundation.NetStandard.Opc.Ua.Core (>= 1.5.376.235)
- philipp2604.S7UaLib.Core (>= 4.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on philipp2604.S7UaLib.Infrastructure:
Package | Downloads |
---|---|
philipp2604.S7UaLib
A modern, high-level .NET library designed to simplify communication with Siemens S7 PLCs via their integrated OPC UA servers. |
GitHub repositories
This package is not used by any popular GitHub repositories.