philipp2604.S7UaLib.Core
5.1.2
dotnet add package philipp2604.S7UaLib.Core --version 5.1.2
NuGet\Install-Package philipp2604.S7UaLib.Core -Version 5.1.2
<PackageReference Include="philipp2604.S7UaLib.Core" Version="5.1.2" />
<PackageVersion Include="philipp2604.S7UaLib.Core" Version="5.1.2" />
<PackageReference Include="philipp2604.S7UaLib.Core" />
paket add philipp2604.S7UaLib.Core --version 5.1.2
#r "nuget: philipp2604.S7UaLib.Core, 5.1.2"
#:package philipp2604.S7UaLib.Core@5.1.2
#addin nuget:?package=philipp2604.S7UaLib.Core&version=5.1.2
#tool nuget:?package=philipp2604.S7UaLib.Core&version=5.1.2
S7UaLib.Core 🧱
The foundational library for the S7UaLib ecosystem. This package provides the core data models, interfaces, and enumerations used for representing a Siemens S7 PLC's structure via OPC UA. It is the shared kernel that enables all other S7UaLib
packages to work together seamlessly.
This library defines what a variable, a data block, or a PLC memory area is, using modern, immutable C# records and interfaces. It is a required dependency for other S7UaLib packages and is typically not used directly by end-users.
✨ Key Features
- 🏗️ Immutable Data Models: All PLC structural elements (
S7Variable
,S7DataBlockGlobal
, etc.) are implemented as C#record
types, ensuring thread safety and predictable behavior. - 🏛️ Comprehensive PLC Structure Contracts: Defines a rich set of interfaces (
IS7Variable
,IS7DataBlockInstance
,IS7StructureElement
) that accurately model the entire S7 OPC UA server layout, including:- Global Data Blocks (
DB
) and Instance Data Blocks (iDB
) - Inputs (
I
), Outputs (Q
), Memory (M
), Timers (T
), and Counters (C
) - Nested structures and complex types (UDTs)
- Global Data Blocks (
- 📋 Rich S7 Data Type Enumeration: Provides the
S7DataType
enum, which covers a wide range of Siemens-specific types, fromBOOL
andINT
toDTL
andS5TIME
. - 🔔 Core Event Definitions: Includes the essential
VariableValueChangedEventArgs
class, providing a standardized way to communicate data changes throughout the ecosystem. - 🔄 Type Converter Abstraction: Defines the
IS7TypeConverter
interface, establishing a contract for converting between raw OPC UA values and user-friendly .NET types. - ⚙️ Simplified OPC UA Configuration Models: Contains user-friendly classes like
ApplicationConfiguration
to abstract away some of the complexities of OPC UA setup.
🚀 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.Core
🎯 What This Library Is (and Isn't)
- ✔️ IT IS: A library of contracts and data models. It defines the "shared language" for the S7UaLib ecosystem.
- ❌ IT IS NOT: An active client. This library does not contain logic to connect to a PLC, browse the server, read/write values, or manage subscriptions. For that functionality, you need a full implementation package like
S7UaLib
.
🤝 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.Core 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
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on philipp2604.S7UaLib.Core:
Package | Downloads |
---|---|
philipp2604.S7UaLib
A modern, high-level .NET library designed to simplify communication with Siemens S7 PLCs via their integrated OPC UA servers. |
|
philipp2604.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. |
GitHub repositories
This package is not used by any popular GitHub repositories.