Work with tags of devices instead of pin numbers!
The easest way to define what to do with devices in a graphical way!
Micro HMI framework
Just draw it in a Inkscape and make it a live!
Define devices and logic for them
completly by web-interface!
Ventilation System remote monitoring and control
Remote lighting control
In this video I show you example of remote lightning control with relay module.
Functional Block Diagram usage for control logic
This video is demonstration of Functional Block Diagram graphical language usage for devices control logic.
All defined devices tags is available through global IO variable that available in a task execution context.
Another important feature is the concept of virtual devices. The first thing you need to do when you have connected all the sensors and actors, is described in the web interface that you have connected and where. In carrying out this task, you create a virtual device that can both reflect a single instance of real equipment and to combine a number of different aspects of the connected devices. At the stage when you are programming the behavior, you are already working with convenient names instead of pins, buses and other hardware complexity of the world. For example, you specify the need to turn off light bulb "LampInBathroom", rather than something that you need to send a signal to logic 0 on GPIO 17. This also means that if you decide to rearrange the LED to pin 17 on the pin 18, you do not have to adjust your control program and only need to reflect this change in one place - in the virtual device map, in which the LED is determined.
Currently, the platform supports the following hardware interfaces:
- Digital inputs/outputs (DIO)
- Analog input/outputs (AIO) (not available for RaspberryPi, you can use any modbus extension module for that)
- Modbus/RTU on RS485 bus (which is very simply realized on RaspberryPi)
The platform has a deeply thoughtful, extensible architecture in different directions. When designing the architecture it was also carried out the requirement for portability. To date, the platform ported to the industrial controller based AT91SAM9G45 processor. The entire platform code is written in C/C++ (obviously except the front-end part of the web application). RD/IO has incredible web-interface perfomance because it is on top of great CppCMS framework, that provide ability to make dynamic web applications on highest perfomance, most-efficient C++ language. The widgets concepts of HMI subsystem is implemented on top of svidgetjs framework.