Git Product home page Git Product logo

developer-guide-hands-on-app's Introduction

My first Industrial Edge App - App Developer Guide

Creating a first Industrial Edge App on a development environment to deploy it to an Industrial Edge Device based on App Developer Guide.

Prerequisites

Prerequisites are in the App Developer Guide which is available on industrial-edge.io. It contains description of the requirements as well as the step-by-step description how to work with this Developer Guide repository.

Installation

If you would like to run the solution of this app you need to rename all files called "Dockerfile.example" to Dockerfile. These Dockerfiles are just an example how you could implement it.

Description

As the example app will cover the most common use case in the Industrial Edge environment, the app on the Industrial Edge Device will look like the architectural overview in the figure below. The goal of the app will be to collect, process and store data from an OPC UA Server, which provides data from a PLC.

Overview of app architecture

The app contains three parts โ€“ the connectivity to collect the data from the OPC UA Server by system apps, the IE Databus for distributions of the data and the process, storing and visualization of data in the Edge App.

  1. The IE Databus based on MQTT is responsible for distributing data to certain topics, that are filled by system or custom apps by publishing and subscribing to these topics.
  2. To receive the data from the OPC UA server, which is providing data from a PLC, the OPC UA Connector connectivity is used. OPC UA Connector is a system app, that publishes the data to IE Databus. Another system app, the SIMATIC Flow Creator, consumes the data from the OPC UA Connector topics on the IE Databus. The data is preprocessed in the SIMATIC Flow Creator before being published on the IE Databus again.
  3. The developed data analytics container with Python is consuming the preprocessed data on the topics from the SIMATIC Flow Creator. The Python data analytics performs calculations and evaluations and returns the results as KPIs back to the IE Databus. To handle the IE Databus publishes and subscriptions, the data analytics container requires a MQTT client.
  4. The SIMATIC Flow Creator consumes the analyzed data again. The SIMATIC Flow Creator persistently stores the (raw) and analyzed data in InfluxDB.
  5. The InfluxDB is a time series database which is optimized for fast, high-availability storage and retrieval of time series data. It stores both the data transmitted by the OPC UA server to the app and the analyzed data.
  6. The data stored in the database can be queried and graphed in dashboards to format them and present them in meaningful and easy to understand way. There are many types of dashboards to choose from including those that come with InfluxDB or other open source projects like Grafana. In this application, the native InfluxDB Dashboards are leveraged for basic data visualization.

Documentation

Contribution

Thank you for your interest in contributing. Anybody is free to report bugs, unclear documentation, and other problems regarding this repository in the Issues section. Additionally everybody is free to propose any changes to this repository using Pull Requests.

If you haven't previously signed the Siemens Contributor License Agreement (CLA), the system will automatically prompt you to do so when you submit your Pull Request. This can be conveniently done through the CLA Assistant's online platform. Once the CLA is signed, your Pull Request will automatically be cleared and made ready for merging if all other test stages succeed.

License and Legal Information

Please read the Legal information.

Disclaimer

IMPORTANT - PLEASE READ CAREFULLY:

This documentation describes how you can download and set up containers which consist of or contain third-party software. By following this documentation you agree that using such third-party software is done at your own discretion and risk. No advice or information, whether oral or written, obtained by you from us or from this documentation shall create any warranty for the third-party software. Additionally, by following these descriptions or using the contents of this documentation, you agree that you are responsible for complying with all third party licenses applicable to such third-party software. All product names, logos, and brands are property of their respective owners. All third-party company, product and service names used in this documentation are for identification purposes only. Use of these names, logos, and brands does not imply endorsement.

developer-guide-hands-on-app's People

Contributors

chris1612 avatar cosminbulai avatar endycz avatar filipd147 avatar hummeln7872 avatar jaltenriederer avatar stancd-siemens avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

developer-guide-hands-on-app's Issues

Repository topics

Please add topics to the repository like "grafana", "ie-databus", "v1-2" ...

OPC UA Client Node not available on Node Red running on node js 14

Issue:

Summary

When trying to run the Node Red Server of the HandsOn 1 Example the OPC UA Client Node does not show up and by that the example project can't run.

Version of the used components

  • Node-RED version: v2.2.2
  • Node.js version: v14.18.2
  • node-red-contrib-opcua: 0.2.289

Steps to reproduce

What is the current bug behavior?

The docker compose output shows the following warning:
[node-red-contrib-opcua/OpcUa-Client] Error [ERR_UNKNOWN_BUILTIN_MODULE]: No such built-in module: node:stream/promises
The OPC UA Client Node is not imported to Node RED. The example project can't deploy as it requires the OPC UA Client Node.

What is the expected correct behavior?

The OPC UA Client Node should be loaded in Node Red.

Relevant logs and/or screenshots

The Docker Compose Output is attached node_red_docker_compose.log.

Possible solution

The issue is documented here. As node 14 has reached EOL in February 2023 node 16 should be used.

Edit Dockerfile.example#L1 by setting ARG NODE_VERSION=16.

Problem with possible solution

When upgrading the node version the influxdb Token (which is 'testtoken' for the project) needs to be inserted by hand as it is not included in the flow.json.

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.