• Skip to main content
  • Skip to header right navigation
  • Skip to site footer
CDP Studio logo

CDP Studio

The no-code and full-code software development tool for distributed control systems and HMI

  • Doc
  • Why CDP
    • Software developers
    • Automation engineers
    • Managers
  • Product
    • Design UI
    • Develop
    • Analyze and test
    • Deploy
    • Framework and toolbox
    • Compatibility
  • Services
  • Use cases
  • Pricing
  • Try CDP

CDP Studio Documentation

  • Examples and Tutorials
  • Creating a Database GUI

Intro 4: Using Messages and States Sending Telemetry to Ubidots

Creating a Database GUI

Introduction

The StepsUI application allows users to manage "process recipes" with their associated "steps" and control some device by running selected "process recipes" that apply parameters in each step based on given timing.

Please note that the "recipe step" could have arbitary parameters depending on the use-case and the playback of steps could use some other feedback value, not just the timing criteria used in this example.

It uses a Sequencer module to control the flow of operations, interfacing with an SQLite database to store and retrieve data. The application also integrates with an OPC UA client for communication with emulated device by ServOPCUA application.

Database Configuration

The DBControl component is responsible for initializing the database tables and managing database operations. It sets up tables for recipes and steps with associated triggers to limit precision on numerical columns.

Initialization

Upon application startup, the DBControl component triggers the creation of the recipes and steps tables in the SQLite database. This is done through the CreateRes and CreateSteps blocks, which execute the SQL statements to create the required tables and associated triggers.

The CreateRes block executes an SQL statement to create a recipes table when needed. The table includes fields for the recipe ID, name, and description. The recipe ID is an auto-incrementing primary key, ensuring each recipe has a unique identifier.

The CreateSteps block creates a steps table when needed with fields for step ID, recipe ID, name, and parameters such as speed, temperature, power, and duration. It also includes SQL triggers to round the values of these parameters for precision control.

InsertRecipe and InsertStep

These blocks handle the insertion of new recipes and steps into their respective tables. They use parameterized SQL queries with bound parameters.

SelectStepById, SelectAllSteps and SelectAllRecipes

These blocks are used to retrieve step details by ID and all steps or recipes, respectively. The retrieved data by SelectStepById is stored in a BasicBlock based data object StepObject that is used by all step manipulation operations and UI. The retrieved data by SelectAllSteps and SelectAllRecipes is used to populate the DataNodes based StepsList and RecipeList blocks that are linked to UI NodeTable widgets.

UpdateStepById

This block updates the details of a step when the user makes changes in the UI through StepObject. It uses a parameterized SQL query to update the step parameters currently represented by the StepObject.

DeleteStepById and DeleteRecipeById

These blocks remove a step or recipe from their respective tables based on the provided ID. This operation is reflected in the UI, where the corresponding item is removed from the list.

Playback Configuration

The StepTimeControl block is a basic function block that triggers step execution with specific parameters. It transitions between states based on input events and executes step commands received from a message queue.

Message Queue

The StepQueue is a message queue that serializes step commands to ensure orderly execution.

OPC UA Client

The OPC-UA-Client interfaces with external systems, receiving data to be used in step execution. It maps incoming data to the appropriate output channels.

User Interface

The applications user interface allows for interactive management of recipes and steps. Users can:

  • Add, update, and delete recipes and steps.
  • Execute a recipe, which sequentially processes its associated steps.

"Steps UI Application Screenshot"

Integration

The integration between the Sequencer, database, and OPC UA client is achieved through message routing. Events are used to trigger transitions in the sequencer, which in turn execute database queries or step commands.

Running the Application

When the application starts, it initializes the database and sets up the necessary tables when needed. The user can then interact with the UI to manage the recipes and steps.

Example Usage

A typical flow of operations in the Steps UI application would be:

  • User adds a new recipe through the UI.
  • The new recipe is inserted into the database and displayed in the recipe list.
  • User adds steps to the recipe, which are also stored in the database.
  • User selects a recipe to run, triggering the sequencer to process each step.
  • Step parameters are sent to the OPC UA client and the associated ServOPCUA application.
  • Upon completion of all steps, the application returns to idle state, ready for the next operation.

This example highlights the seamless interaction between different components in a CDP application, showcasing the power and flexibility of the Sequencer module in process control and automation.

Intro 4: Using Messages and States Sending Telemetry to Ubidots

The content of this document is confidential information not to be published without the consent of CDP Technologies AS.

CDP Technologies AS, www.cdpstudio.com

Get started with CDP Studio today

Let us help you take your great ideas and turn them into the products your customer will love.

Try CDP Studio for free
Why CDP Studio?

CDP Technologies AS
Hundsværgata 8,
P.O. Box 144
6001 Ålesund, Norway

Tel: +47 990 80 900
E-mail: info@cdptech.com

Company

About CDP

Contact us

Services

Partners

Blog

Developers

Get started

User manuals

Support

Document download

Release notes

My account

Follow CDP

  • LinkedIn
  • YouTube
  • GitHub

© Copyright 2024 CDP Technologies. Privacy and cookie policy.

Return to top