Giter VIP home page Giter VIP logo

qqsskk / dashboard-opcua-client Goto Github PK

View Code? Open in Web Editor NEW

This project forked from umati/dashboard-opcua-client

0.0 0.0 0.0 829 KB

OPC UA client based on open62541 to subscribe to servers implementing umati endorsed companion specification and publish via MQTT to the demo dashboard https://umati.app

License: Mozilla Public License 2.0

CMake 7.20% C++ 87.16% Dockerfile 0.22% Python 2.19% Jinja 3.23%

dashboard-opcua-client's Introduction

umati Dashboard OPC UA Client

This is the OPC UA client for the umati Dashboard. The client subscribes to the values of one or multiple machine instances in one OPC UA Server and publish them via MQTT in a JSON encoding. All instances are read based on OPC UA ObjectType-definitions. Invalid instances (e.g. missing mandatory nodes) are skipped. Additional nodes aside from the specified nodes are also ignored to ensure a uniform output via MQTT.

Dependencies

Build

This project uses cmake for building.

Ubuntu or Debian

The following packages are necessary for building:

  • git
  • build-essential
  • gcc
  • g++
  • cmake
  • python3
# Clone the repository and initialize the submodules
git clone [email protected]:umati/Dashboard-OPCUA-Client.git
cd Dashboard-OPCUA-Client
git submodule update --init --recursive

# Build the depencencies
cd .github
mkdir build
cd build
cmake ..
make

# Build the Dashboard OPC UA Client
cd ../..
mkdir build
cd build
cmake ..
make

# Adjust configuration regading your setup
cp configuration.json.example configuration.json
nano configuration.json

# Start the Dashboard OPC UA Client
./DashboardOpcUaClient

# Alternatively build everything in one go:
mkdir -p install
mkdir -p build
cd build
cmake ../.github/ -DCMAKE_INSTALL_PREFIX:PATH=<PATH/TO/>Dashboard-OPCUA-Client/install/ -DCMAKE_BUILD_TYPE=Debug
cmake --build .

Components

  • ModelOpcUa An abstration for OPC UA Type Definitions and OPC UA Types (e.g. NodeId and BrowseName)
  • DashboardClient Read available OPC UA types and check instances and prepare data for publishing. Defines Interfaces for the OPC UA client and the publisher.
  • MachineObserver Looks for new machines and publishes a list of all online machines. Uses the interfaces defined by the DashboardClient
  • MqttPublisher Paho An implementation of a publisher for MQTT using Eclipse Paho.
  • OpcUaClient Implementation of an OPC UA client for the Dashboard using Unified Automation C++ SDK
  • Tests Some basic test, mainly for debugging past errors.
  • Util General purpose code, e.g. Encoding of machine Ids

Tested Companion Specifications

  • MachineTools ✔️
  • WoodWorking ✔️
  • Robotics 🌓
  • Surface Technology 🌖

License

GitHub

Unless otherwise specified, source code in this repository is licensed under the Mozilla Public License v2.0 (MPLv2).

dashboard-opcua-client's People

Contributors

ccvca avatar renovate[bot] avatar basyskom-dege avatar dominikbasnersotec avatar goetzgoerisch avatar wlkrm avatar basyskom-meerkoetter avatar renovate-bot avatar phibla 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.