Corsinvest.AllenBradley.PLC.Api
0.0.5
See the version list below for details.
dotnet add package Corsinvest.AllenBradley.PLC.Api --version 0.0.5
NuGet\Install-Package Corsinvest.AllenBradley.PLC.Api -Version 0.0.5
<PackageReference Include="Corsinvest.AllenBradley.PLC.Api" Version="0.0.5" />
paket add Corsinvest.AllenBradley.PLC.Api --version 0.0.5
#r "nuget: Corsinvest.AllenBradley.PLC.Api, 0.0.5"
// Install Corsinvest.AllenBradley.PLC.Api as a Cake Addin #addin nuget:?package=Corsinvest.AllenBradley.PLC.Api&version=0.0.5 // Install Corsinvest.AllenBradley.PLC.Api as a Cake Tool #tool nuget:?package=Corsinvest.AllenBradley.PLC.Api&version=0.0.5
Corsinvest.AllenBradley.PLC.Api
Comunication for Allen-Bradley Rockwell PLC in .NET Core
Special tanks for testing Mavert
Special thanks to Mario Averoldi for technical support mario.averoldi@mavert.it.
______ _ __
/ ____/___ __________(_)___ _ _____ _____/ /_
/ / / __ \/ ___/ ___/ / __ \ | / / _ \/ ___/ __/
/ /___/ /_/ / / (__ ) / / / / |/ / __(__ ) /_
\____/\____/_/ /____/_/_/ /_/|___/\___/____/\__/
Client Api Allen-Bradley PLC (Made in Italy)
WARNING - DISCLAIMER
Note: PLCs control many kinds of equipment and loss of property, production or even life can happen if mistakes in programming or access are made. Always use caution when accessing or programming PLCs!
We make no claims or warrants about the suitability of this code for any purpose.
Be careful!
General
The client is wapper of LibTagPLC library.
Main features
- Open source
- Controller implementation
- Native Tag type INT8, UINT8, INT16, UINT16, INT32, UINT32, FLOAT32, STRING
- Custom class definition structure
- Manupulation local value variable
- Read and Write with advanced result
- Time execution
- Status code
- Timestamp
- Tag
- Value property decode value natively
- Lock/Unlock for thread operation
- Decode Error
- Group interval read/write
- Event result Tag and TagGroup with result changed value
- Enable "Fail Operation Raise Exception"
Usage
[Serializable]
public class Test12
{
public int AA1 { get; set; }
public int AA2 { get; set; }
public int AA3 { get; set; }
public int AA4 { get; set; }
public int AA5 { get; set; }
public int AA6 { get; set; }
public int AA7 { get; set; }
public int AA8 { get; set; }
}
public static void Main(string[] args)
{
//initialize controller
using (var controller = new Controller("10.155.128.192", "1, 0", CPUType.LGX))
{
//ping controller
Console.Out.WriteLine("Ping " + controller.Ping(true));
//create group tag
var grp = controller.CreateGroup();
//add tag
var tag = grp.CreateTagType<string[]>("Track", TagSize.STRING, 300);
tag.Changed += TagChanged;
var value = tag.Read();
//add tag from Class
var tag1 = grp.CreateTagType<Test12>("Test");
tag.Changed += TagChanged;
var tag2 = grp.CreateTagFloat32("Fl32");
grp.Changed += GroupChanged;
grp.Read();
}
}
private static void PrintChange(string @event, ResultOperation result)
{
Console.Out.WriteLine($"{@event} {result.Timestamp} Changed: {result.Tag.Name}");
}
static void TagChanged(ResultOperation result)
{
PrintChange("TagChanged", result);
}
static void GroupChanged(IEnumerable<ResultOperation> results)
{
foreach (var result in results) PrintChange("GroupTagChanged", result);
}
Create Tag
Are possible to create any tag:
- CreateTagInt32
- CreateTagUInt32
- CreateTagInt16
- CreateTagUInt16
- CreateTagInt8
- CreateTagUInt8
- CreateTagString
- CreateTagFloat32
- CreateTagType specify type and name only, and automatcly calculated size from property or array
- CreateTagType specify name,size,length for array
- CreateTagArray
Size are specified in TagSize.
For array specify size in definition.
Example:
public class TestArray
{
public int InTest { get; set; }
public int[] InTestArray { get; set; } = new int[5];
public string[] StringTestArray { get; set; } = new string[300];
}
Custom type are class. The properties are read sequentially.
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. 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. 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. |
.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. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.1.7 | 9,933 | 10/4/2019 |
0.1.6 | 1,009 | 7/10/2019 |
0.1.5 | 1,090 | 2/24/2019 |
0.1.4 | 1,030 | 1/25/2019 |
0.1.3 | 1,059 | 1/22/2019 |
0.1.2 | 1,016 | 1/22/2019 |
0.1.1 | 1,029 | 1/22/2019 |
0.1.0 | 1,038 | 1/22/2019 |
0.0.7 | 1,205 | 10/3/2018 |
0.0.6 | 1,136 | 9/26/2018 |
0.0.5 | 1,131 | 9/25/2018 |
0.0.4 | 1,105 | 9/25/2018 |
0.0.3 | 1,134 | 9/24/2018 |