Plc.Omron.Standard 1.0.8

dotnet add package Plc.Omron.Standard --version 1.0.8                
NuGet\Install-Package Plc.Omron.Standard -Version 1.0.8                
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="Plc.Omron.Standard" Version="1.0.8" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Plc.Omron.Standard --version 1.0.8                
#r "nuget: Plc.Omron.Standard, 1.0.8"                
#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 Plc.Omron.Standard as a Cake Addin
#addin nuget:?package=Plc.Omron.Standard&version=1.0.8

// Install Plc.Omron.Standard as a Cake Tool
#tool nuget:?package=Plc.Omron.Standard&version=1.0.8                

PLC Omron Standard

MIT NuGet

This project was created to have an easy to use, .NET Standard library to communicate with Omron PLCs. The following features are available:

  • Read from PLC memory areas
  • Write to PLC memory areas
  • Read and write with single values or arrays
  • Read and write with typed values (options are byte, bool, short, int, float, string)
  • Receive events during communications

Getting Started

These instuctions can be used to acquire and implement the library.

Installation

To use this library either clone a copy of the repository or check out the NuGet package

Usage

TCP Example

The following example provides a basic use case for TCP based communications.

using PLC_Omron_Standard;

public class MyClass() 
{
    public bool Test() 
    {
        // Create PLC connection
        var plc = new PlcOmron("192.168.1.100");

        plc.Connect();

        // Read data
        var data = plc.ReadString(123); // Assumes value is "Hello"

        // Write data
        return plc.Write(123, $"{data}, World!");
    }
}

UDP Example

The following example provides a basic use case for UDP based communications.

using PLC_Omron_Standard;

public class MyClass() 
{
    public bool Test() 
    {
        // Get node addresses
        var ip = "192.168.1.100";
        var remote = byte.Parse(ip.Split('.').Last());

        var local = byte.Parse("101"); // This can be any non-zero value, but using the final part of your local IP address is recommended
        
        // Create PLC connection
        var plc = new PlcOmron(ip, 9600, false, remote, local);

        plc.Connect();

        // Read data
        var data = plc.ReadString(123); // Assumes value is "Hello"

        // Write data
        return plc.Write(123, $"{data}, World!");
    }
}

Events Example

The following example provides a use case where events are subscribed to and handled.

using PLC_Omron_Standard;

public class MyClass() 
{
    private readonly ILogger Logger;

    public bool Test(ILogger<MyClass> logger) 
    {
        // Store logger
        Logger = logger;

        // Create PLC connection
        var plc = new PlcOmron("192.168.1.100");

        plc.NotifyCommandError += LogError;
        plc.Connect();

        // Read data
        var data = plc.ReadString(123); // Assumes value is "Hello"

        // Write data
        return plc.Write(123, $"{data}, World!");
    }

    private void LogError(string message) 
    {
        Logger.LogError("{Message}", message);
    }
}

Authors

  • NF Software Inc.

License

This project is licensed under the MIT License - see the LICENSE file for details

Acknowledgments

Parts of this library have been inspired by:

Thank you to:

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .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
1.0.8 434 3/21/2024
1.0.7 320 8/24/2023
1.0.6 209 7/24/2023
1.0.5 159 7/11/2023

1.0.8
 Update publishing to include source link, deterministic, and compiler flags
 
 1.0.7
 Add project icon, fix invalid XML comments in PlcOmron class

 1.0.6
 Update project file to generate XML documentation in NuGet package

 1.0.5
 Improve error messages, bugfixes

 1.0.4
 Improve error handling

 1.0.3
 Add events, update UDP connection, bugfixes

 1.0.2
 Bugfixes

 1.0.1
 Add typed public read methods

 1.0.0
 Initial release