CP.TwinCATRx
1.2.1
dotnet add package CP.TwinCATRx --version 1.2.1
NuGet\Install-Package CP.TwinCATRx -Version 1.2.1
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="CP.TwinCATRx" Version="1.2.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CP.TwinCATRx --version 1.2.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: CP.TwinCATRx, 1.2.1"
#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.
// Install CP.TwinCATRx as a Cake Addin
#addin nuget:?package=CP.TwinCATRx&version=1.2.1
// Install CP.TwinCATRx as a Cake Tool
#tool nuget:?package=CP.TwinCATRx&version=1.2.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
TwinCATRx
A Reactive implementation of TwinCAT ADS
This is a reactive implementation of TwinCAT ADS. It is based on the TwinCAT ADS library from Beckhoff. It is a wrapper around the TwinCAT ADS library that allows you to use the TwinCAT ADS library in a reactive way. It is based on the Reactive Extensions (Rx) library.
Currently it does not support the following features:
- Arrays of string
- Arrays of string in structures
// Create Client
var client = new RxTcAdsClient();
var settings = new Settings { AdsAddress = "5.35.59.10.1.1", Port = 801, SettingsId = "Default" };
// Add notification variables
// Structures
settings.AddNotification(".Tag1");
settings.AddNotification(".Tag2");
settings.AddNotification(".Tag3");
settings.AddNotification(".AString", arraySize: 80);
settings.AddNotification(".ABool");
settings.AddNotification(".AByte");
settings.AddNotification(".AInt");
settings.AddNotification(".ADInt");
settings.AddNotification(".AReal");
settings.AddNotification(".ALReal");
// Add Write variables, these can be read too using client.Read("TagName")
// NOT SUPPORTED: arrays of string
////settings.AddWriteVariable(".ArrString", 11));
settings.AddWriteVariable(".ArrBool", 11);
settings.AddWriteVariable(".ArrByte", 11);
settings.AddWriteVariable(".ArrInt", 11);
settings.AddWriteVariable(".ArrDInt", 11);
settings.AddWriteVariable(".ArrReal", 11);
settings.AddWriteVariable(".ArrLReal", 11);
client.Connect(settings);
// Observe notification tags simple types
client.Observe<string>(".AString").Subscribe(data => Console.WriteLine(data));
client.Observe<bool>(".ABool").Subscribe(data => Console.WriteLine(data));
client.Observe<byte>(".AByte").Subscribe(data => Console.WriteLine(data));
client.Observe<short>(".AInt").Subscribe(data => Console.WriteLine(data));
client.Observe<int>(".ADInt").Subscribe(data => Console.WriteLine(data));
client.Observe<float>(".AReal").Subscribe(data => Console.WriteLine(data));
client.Observe<double>(".ALReal").Subscribe(data => Console.WriteLine(data));
// Observe Write variables these will execute when tag is read.
client.Observe<bool[]>(".ArrBool").Subscribe(data => Console.WriteLine(data));
client.Observe<byte[]>(".ArrByte").Subscribe(data => Console.WriteLine(data));
client.Observe<short[]>(".ArrInt").Subscribe(data => Console.WriteLine(data));
client.Observe<int[]>(".ArrDInt").Subscribe(data => Console.WriteLine(data));
client.Observe<float[]>(".ArrReal").Subscribe(data => Console.WriteLine(data));
client.Observe<double[]>(".ArrLReal").Subscribe(data => Console.WriteLine(data));
// Read tags of a simple type
client.Read(".ArrBool");
client.Read(".ArrByte");
client.Read(".ArrInt");
client.Read(".ArrDInt");
client.Read(".ArrReal");
client.Read(".ArrLReal");
// Write a value
client.Write(".ABool", true);
// Create structure to store data
var tag1 = client.CreateStruct(".Tag1", true);
tag1.StructureReady().Subscribe(data =>
{
// read from structure as stream
data.Observe<bool>("ABool").Subscribe(value => Console.WriteLine(value));
data.Observe<short>("AInt").Subscribe(value => Console.WriteLine(value));
data.Observe<string>("AString").Subscribe(value => Console.WriteLine(value));
// read from structure as one time read from the first level.
var tag = data.Value<short>("AInt");
data.WriteValues(ht =>
{
// write values to structure
ht.Value("AInt", (short)(tag + 10));
ht.Value("AString", $"Int Value {tag + 10}");
// Values are written from the structure to the PLC upon return.
});
});
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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. net6.0-windows10.0.17763 is compatible. 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. net7.0-windows10.0.17763 is compatible. net8.0 was computed. 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. net8.0-windows10.0.17763 is compatible. |
.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 was computed. |
.NET Framework | net461 was computed. net462 was computed. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- CP.TwinCATRx.Core (>= 1.2.1)
- HashTableRx (>= 1.1.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.1)
- System.ComponentModel.Composition (>= 8.0.0)
- System.ServiceProcess.ServiceController (>= 8.0.0)
- System.Text.Encoding.CodePages (>= 8.0.0)
-
net6.0-windows10.0.17763
- CP.TwinCATRx.Core (>= 1.2.1)
- HashTableRx (>= 1.1.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.1)
- System.ComponentModel.Composition (>= 8.0.0)
- System.ServiceProcess.ServiceController (>= 8.0.0)
- System.Text.Encoding.CodePages (>= 8.0.0)
-
net7.0-windows10.0.17763
- CP.TwinCATRx.Core (>= 1.2.1)
- HashTableRx (>= 1.1.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.1)
- System.ComponentModel.Composition (>= 8.0.0)
- System.ServiceProcess.ServiceController (>= 8.0.0)
- System.Text.Encoding.CodePages (>= 8.0.0)
-
net8.0-windows10.0.17763
- CP.TwinCATRx.Core (>= 1.2.1)
- HashTableRx (>= 1.1.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.1)
- System.ComponentModel.Composition (>= 8.0.0)
- System.ServiceProcess.ServiceController (>= 8.0.0)
- System.Text.Encoding.CodePages (>= 8.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on CP.TwinCATRx:
Package | Downloads |
---|---|
MQTTnet.Rx.TwinCAT
Reactive extensions for MQTTnet Broker |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.2.1 | 96 | 3/22/2024 |
1.2.0 | 208 | 12/27/2023 |
1.1.0 | 460 | 7/7/2023 |
1.0.1 | 212 | 4/15/2023 |
1.0.0 | 444 | 2/14/2023 |
0.9.0 | 272 | 2/2/2023 |
0.8.1 | 262 | 2/2/2023 |
0.8.0 | 244 | 2/1/2023 |
0.7.0 | 405 | 1/27/2023 |
0.6.0 | 408 | 1/24/2023 |
0.5.0 | 264 | 1/24/2023 |
0.4.0 | 428 | 1/22/2023 |
0.3.0 | 290 | 1/5/2023 |
0.2.0 | 296 | 1/4/2023 |
Compatability with Net 6, Net 7 and netstandard2.0