Coder Social home page Coder Social logo

opcua-client-server's Introduction

OPC UA Server & Client Solution โš™๏ธ ๐Ÿ’ป

Documentation

A minimal implementation of OPC UA server and client applications using C#.

Don't know what UPC is? Follow the documentation.

Overview ๐Ÿ”ญ

This solution consists of two projects, Server and Client, which demonstrate the functionality of an OPC UA server and client respectively.

The solution showcases the following features:

  • OPC UA server and client communication
  • Secure communication using certificates
  • Minimal implementation for easy understanding (albeit third party library is pretty weird)

readme-client.png readme-client-desktop.png

Getting Started ๐Ÿš€

To use this solution, follow these steps:

1. Build the Server

First, build the server project to generate the necessary certificates. At the root, run the following command:

dotnet build --project OPCUA-Server/

2. Build the Clients

Next, build the client project by running the following command:

dotnet build --project OPCUA-Client/
dotnet build --project OPCUA-Client-Desktop/

3. Run the Server and any of the Clients

Although it is not necessary to run the clients and server in order as the client will catch the connection error and report it to the user, the idea would be to:

Start the OPC UA server by running the following command:

dotnet run --project OPCUA-Server/

The server will start and initialize the necessary certificates.

Finally, start one of the OPC UA clients:

dotnet run --project OPCUA-Client/
dotnet run --project OPCUA-Client-Desktop/

The client will connect to the OPC UA server and establish communication.

Project Structure ๐Ÿ“

The solution has the following project structure:

Solution/
โ”œโ”€โ”€ Server/
โ”‚   โ”œโ”€โ”€ ...
โ”‚   โ””โ”€โ”€ Server.csproj
โ”œโ”€โ”€ Client/
โ”‚   โ”œโ”€โ”€ ...
โ”‚   โ””โ”€โ”€ Client.csproj
โ”œโ”€โ”€ Desktop-Client/
โ”‚   โ”œโ”€โ”€ ...
โ”‚   โ””โ”€โ”€ Client.csproj
โ”œโ”€โ”€ Solution.sln
โ””โ”€โ”€ README.md
  • Server/: Contains the OPC UA server implementation.
  • Client/: Contains the OPC UA client implementation.
  • Desktop-Client/: Cross-platform Avalonia 11 MVVM desktop app with ReactiveUI.
  • Solution.sln: The solution file for JetBrains Rider or other IDEs.
  • README.md: This file, providing an overview and instructions for the solution.

Dependencies ๐Ÿ“š

The solution has dependencies on the following Nuget packages:

  • Opc.UaFx.Advanced: OPC UA server library, in the OPCUA-Server project
  • Opc.UaFx.Client: OPC UA client library, in the OPCUA-Client project(s)

Ensure that these dependencies are correctly retrieved with dotnet restore.

Contributing ๐Ÿ™Œ

Contributions to enhance this solution are welcome! If you find any issues or have ideas for improvements, feel free to create a pull request or submit an issue.

License ๐Ÿ“ƒ

This solution is licensed under the MIT License.

Feel free to modify and add any additional information specific to your solution. Enjoy!

opcua-client-server's People

Contributors

feremabraz avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.