Corsinvest.AllenBradley.PLC.Api 0.1.5

.NET Standard 2.0
There is a newer version of this package available.
See the version list below for details.
NuGet\Install-Package Corsinvest.AllenBradley.PLC.Api -Version 0.1.5
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.
dotnet add package Corsinvest.AllenBradley.PLC.Api --version 0.1.5
<PackageReference Include="Corsinvest.AllenBradley.PLC.Api" Version="0.1.5" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Corsinvest.AllenBradley.PLC.Api --version 0.1.5
#r "nuget: Corsinvest.AllenBradley.PLC.Api, 0.1.5"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Corsinvest.AllenBradley.PLC.Api as a Cake Addin
#addin nuget:?package=Corsinvest.AllenBradley.PLC.Api&version=0.1.5

// Install Corsinvest.AllenBradley.PLC.Api as a Cake Tool
#tool nuget:?package=Corsinvest.AllenBradley.PLC.Api&version=0.1.5

Corsinvest.AllenBradley.PLC.Api

License

Comunication for Allen-Bradley Rockwell PLC in .NET Core

LibTagPLC library C++ Api

Based on libplctag-csharp

Nuget

Special tanks for testing Mavert

Special thanks to Mario Averoldi for technical support mario.averoldi@mavert.it.

Corsinvest Srl

AppVeyor branch

   ______                _                      __
  / ____/___  __________(_)___ _   _____  _____/ /_
 / /   / __ \/ ___/ ___/ / __ \ | / / _ \/ ___/ __/
/ /___/ /_/ / /  (__  ) / / / / |/ /  __(__  ) /_
\____/\____/_/  /____/_/_/ /_/|___/\___/____/\__/

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, INT64, UINT64, FLOAT32, FLOAT64, 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 StatusCodeOperation.DecodeError()
  • Group interval read/write
  • Event result Tag and TagGroup with result changed value
  • Enable "Fail Operation Raise Exception"
  • Value Manager directry modify
  • Bit manipulation
  • Debug level
  • Auto Read/Write when using value (default: false)

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:

  • CreateTagInt64
  • CreateTagUInt64
  • CreateTagInt32
  • CreateTagUInt32
  • CreateTagInt16
  • CreateTagUInt16
  • CreateTagInt8
  • CreateTagUInt8
  • CreateTagString
  • CreateTagFloat32
  • CreateTagFloat64
  • 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
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
.NET Core netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.0 netstandard2.1
.NET Framework net461 net462 net463 net47 net471 net472 net48
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Corsinvest.AllenBradley.PLC.Api:

Package Downloads
InTuneProducts.Core.Net

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.1.7 5,611 10/4/2019
0.1.6 444 7/10/2019
0.1.5 502 2/24/2019
0.1.4 458 1/25/2019
0.1.3 469 1/22/2019
0.1.2 436 1/22/2019
0.1.1 450 1/22/2019
0.1.0 451 1/22/2019
0.0.7 611 10/3/2018
0.0.6 530 9/26/2018
0.0.5 544 9/25/2018
0.0.4 543 9/25/2018
0.0.3 549 9/24/2018