• Projects
  • Godot & HMI - Human Machine Interface

Dear Godot community,

I think you will be surprised with this. We have used Godot game engine as an HMI (Human Machine Interface) graphical engine. Many of you will ask what exactly is HMI? Probably you’ve seen a small touch screen on a wall where you can control light or temperature in a room. That is simple example of HMI. More complicated HMIs can monitor or control buildings that have thousands of installed devices in it (doors, lights, phones, water, intercoms, cameras, motors, etc.). Also HMI can control any robotic systems, manufacture process, etc.

There are three main components in an HMI configuration. The GUI build with Godot game engine, PLC (Programmable Logic Controller) and an YCS (Yedi Comm Server) that is a communication heart between GUI apps and PLCs. When we design YCS for our HMI project we didn’t think it can be used as a game webserver or server that can connect different kind of GUI applications. We were just made the robust server with simple communication interface, and database connectivity.

OK, please, explore our website http://yedistudio.com, read about our server architecture http://yedistudio.com/HMI/Y/index.php/architecture

Explore our documentation, and the server API

Check our “Quick start” page http://yedistudio.com/HMI/Y/index.php/docs/quickstart with Simple Door Control example http://yedistudio.com/HMI/Y/index.php/download

We open for comments and suggestions here or on Facebook https://www.facebook.com/groups/1652839951697249/

Also we want say thank you, to the Godot community and Juan Linietsky, Ariel Manzur for fantastic Godot engine.

Yedi Studio

a month later

Hi all, We are released new YCS (YediCommServer) version 002-001

What is new? YCS V002-001 Support data flow with password protection Ability to store and retrieve alarm, event, error, messages in/from MySQL database Improved API

PairsViewer V002-001 Support data flow with password protection Ability insert, update, delete Pairs in MySQL database

Added more Godot HMI examples Room label (http://yedistudio.com/HMI/Y/index.php/docs/godot-hmi/godot-hmi-examples?showall=&start=7 Panic Icons (http://yedistudio.com/HMI/Y/index.php/docs/godot-hmi/godot-hmi-examples?showall=&start=8 Panic Icons and Http Client (http://yedistudio.com/HMI/Y/index.php/docs/godot-hmi/godot-hmi-examples?showall=&start=9 Panic, Http buffer, and Alarm Table (http://yedistudio.com/HMI/Y/index.php/docs/godot-hmi/godot-hmi-examples?showall=&start=10

-

The last example most complete and show how to

  1. Create Panic icons, animation, and script
  2. Load static data from comma delimited file to the Panic Icon
  3. Make Http client and create connection to the YCS
  4. How make a Http client buffer. Store messages and Pairs with different priorities to the buffer
  5. Create Alarm table. Display alarms with different priorities and different color.
  6. Dump alarm, event, or error messages to the MySQL database

-

Now data exchange between Godot application and Http server (YCS) become very simple. You can store up to 400000 Pairs in the server, save Pairs or Messages to MySql database. What you have to do, just add Pairs (name/value) or messages (alarm, event, error, etc.) to the Http buffer and Http client send Http request to the Http server. Also, you have to parse Http server response if data requested from Http server.

-

See our updated API http://yedistudio.com/HMI/Y/index.php/docs/yedicommserver/yedi-comm-server-api And Http Client and Http buffer example
http://yedistudio.com/HMI/Y/index.php/docs/godot-hmi/godot-hmi-examples?showall=&start=10

a month later