JADE Application Development Environment
Full-featured, low-code industrial automation
Overview
JADE is a better way to quickly build custom applications using highly configurable, communicating plugins - without writing code
A Simple JADE Application
Stop reinventing the wheel and avoid the pitfalls of traditional application development
Start with rich features and battle-tested capabilities right out of the (proverbial) box
How It Works
JADE makes it easy to compose, save, and run custom applications
Features
Tons of features to meet your custom application development needs
General Purpose Plugins
These plugins are designed to cover many of the common features required by most applications.
Multiple Charts Plugin
The Multiple Charts plugin displays data in up to 20 charts.
Only the number of charts configured will be displayed.
This plugin subscribes (see configuration for subscribesTo) to any number of other publishing plugins, and can peform computations against that data before plotting to charts.
Charts are highly configurable including the number of plots per chart, size, position, and many other display properties.
As with many plugins, this plugin supports the JADE Expression Language in many places, such as allowing computations using subscription data when defining plot data.
For more information please reach out to Sixclear or check out the plugin documentation.
Relay Manager Plugin
The Relay Manager plugin provides control over any number of relay boards, each with any number of banks, where each bank holds any number of relays.
Boards, banks, and relays can all be semantically named and then ordered into named sections for access on the user interface.
Within a given section, enable all and disable all buttons allow for quickly enabling (On) or disabling (Off) all relays with that section.
Initial states can be configured for each relay to be set on launch and relays can optionally be returned to a specified state on shutdown.
For more information please reach out to Sixclear or check out the plugin documentation.
Serial Publisher Plugin
The Serial Publisher plugin communicates with a device over a serial port and publishes a configurable, transformable data set for consumption by other plugins, as well as logs a separately configurable format of the data.
Configuration options include full serial port configuration, serial communication initialization sequence, simulation mode, expression handling (including for simulation mode), regular expressions for response parsing, data publishing, and data logging.
The Serial Publisher user interface is exceedingly simple by design and is often used simply for debugging (ex. validating published and logged data format are as desired).
The top section shows the latest published message and the bottom section shows the data logged to file.
Again, both formats are essentially completely configurable and can use any data acquired from the serial port.
For more information please reach out to Sixclear or check out the plugin documentation.
State Machine Plugin
The State Machine plugin is a configurable programming point by supporting a state machine implementation in configuration.
States generally take various actions and define logic for if and how to transition to other states.
States can perform computations, send messages to other plugins (publish or point-to-point), and even issue command line operations.
State machines can also subscribe to other plugins in order to be reactive to system state.
The user interface displays the received subscription message (top left), the aggregate messages (bottom left, messages under instance name top level keys), and the data space of computations performed (right).
For more information please reach out to Sixclear or check out the plugin documentation.
Subscriber Plugin
The Subscriber plugin subscribes to any plugina and expects JSON messages.
It displays both the Latest Message and a Merged Messages object.
The plugin stores messages in the Latest Messages object under keys equal to the corresponding plugin instance names of the published data.
For system information (ex. when subscribing to __PLUGIN_INFO__), the unique worker responsible for publishing the data is used.
The Subscriber interface is simple by design, containing two strings: one for the Latest Message (displayed on top) and one for the Merged Messages (displayed on the bottom).
These are updated as messages are received, and a splitter provides the ability to change how much of each JSON object is shown at a given time.
May of the other "subscribing" plugins listed use similar features to display incoming and aggregate data.
For more information please reach out to Sixclear or check out the plugin documentation.
TCP Server Plugin
The TCP Server plugin hosts configurable TCP connections to which networked client computers can connect and communicate with running JADE systems.
Clients open a connection to the hosted IP address and port as defined in the TCP Server configuration.
Multiple simultaneous connections are supported and handled concurrently, and the maximum number of connections allowed is configurable.
Like the Subscriber plugin, the TCP Server plugin subscribes to any other plugins and aggregates their data accordingly.
Connected clients can then send requests to the TCP Server to perform actions such as fetching data from the TCP Server, and having control messages forwraded to the Worker or any other plugin.
This plugin may be used to remotely control JADE systems. Notably, the Worker accepts control messages for launching and shutting down plugins (and more), and plugins define their own control messages according on their implementations.
For more information please reach out to Sixclear or check out the plugin documentation.
XY Chart Plugin
The XY Chart plugin displays data in time-series chart.
A plot legend at the top provides the ability to show/hide plots and change colors if desired, however those parameters and many other display are all available in configuration.
All plots are normalized into the range [0, 1] for display on this single chart based on the plot's `min` and `max` settings.
The `min` and `max` values are shown next to the plot's current value in the plot legend so this context is always visible.
This plugin subscribes to any number of other publishing plugins, and can peform computations against that data before plotting to charts (see configuration for `subscribesTo`).
As with many plugins, this plugin supports the JADE Expression Language in many places, such as allowing computations using subscription data when defining plot data.
See the configuration documentation below and/or the example editor for further details.
For more information please reach out to Sixclear or check out the plugin documentation.
Manufacturer-specific Plugins
These plugins are designed to work directly with specific devices, providing all the customization points you'll need to integrate into your projects.
Basler Camera Plugin
The Basler Camera plugin provides control over any number of Basler cameras.
Each camera is highly configurable including file and folder storage formats, file size limitation, files per folder limitation, the ability to show/hide a real-time viewer and record AVI video files, and much more.
Diagnostics are also optionally viewable for each camera instance showing acquisition rates, bandwith statistics, disk metrics, and other performance characteristics.
The Basler Camera plugin also supports control messages from other plugins.
For more information please reach out to Sixclear or check out the plugin documentation.
Bellamare Flight Control Plugin
The Bellamare Flight Control plugin provides controls and display for operating Bellamare Remoted Operated Towed Vehicles (ROTVs, subsea vehicles with many research and commercial applications).
Like all JADE plugins, this plugin is highly configurable, where everything from plots on the main graph to motor control settings, to pitch, roll, and rudder actuator settings are all flexibly managed.
Automated control for depth-keeping, altitude-keeping, undulation, and automatically engaging the rudder for resurface safety are all out of the box.
As shown, the interface pulls out key, real-time telemetry measures and displays the current position of the vehicle relative to the sea surface and sea floor.
For more information please reach out to Sixclear or check out the plugin documentation.
Galil Control Plugin
The Galil Control plugin controls one or more Galil motion controllers (only one section shown here) while providing deep configuration over initialization, polling, publishing, and how data is rendered in the interface.
Initialization and shutdown procedures manage controller start and end states.
Global operations which compose any number of Galil commands may be composed and exposed for access in the menu.
Polling configuration allows for defining what information should be periodically fetched from the controller and displayed in a configurable format on the interface.
Custom command sections can also be configured for easy access, while a general command line is provided for full control.
Furthermore, this plugin has configurable publishing so that other plugins may use the data collected from the controller in real-time.
All commands sent are logged so that all interaction with the controllers can be later analyzed.
For more information please reach out to Sixclear or check out the plugin documentation.
NI DAQmx AI Thermocouple Plugin
The NI DAQmx AI Temperature Thermocouple plugin acquires data from one or more thermocouple channels spanning one or more devices with options to display, log, and publish data.
All of the core data acquisition features are exposed including channel definition, sampling, buffer control, triggering, logging, and more.
Data can be published with an averaging or last value strategy, and several key points of sampling information are provided as variables to build up the desired publish data object.
Publishing can of course be disabled if, for example, logging the data to disk (ex. TDMS) is all that is required.
For more information please reach out to Sixclear or check out the plugin documentation.
NI DAQmx AI Voltage Plugin
The NI DAQmx AI Voltage plugin acquires data from one or more voltage channels spanning one or more devices with options to display, log, and publish data.
All of the core data acquisition features are exposed including channel definition, sampling, buffer control, triggering, logging, and more.
Data can be published with an averaging or last value strategy, and several key points of sampling information are provided as variables to build up the desired publish data object.
Publishing can of course be disabled if, for example, logging the data to disk (ex. TDMS) is all that is required.
For more information please reach out to Sixclear or check out the plugin documentation.
SPLixel LED Plugin
The SPLixel LED plugin controls both the color and blink delay of an SPLixel multicolor LED by running a set of rules.
This plugin can subscribe to other plugins and the rules can use any subscription data to determine the color and blink delay, if any.
Rules are configured in an array of objects where each object represents a rule.
Rules run in the order specified in the array each time subscription data arrives.
Each rule specifies which led to address (multiple are allowed by the SPLixel platform), a blink object with enable and delay elements to determine the blinking state, a color for the led specified as RGB, and a condition which determines whether the rule applies.
The first rule whose condition evaluates to true will apply.
The interface shows the latest received message, aggregrate messages (with each under instance name top level keys), and current led color, and the blink delay (0 means not blinking).
For more information please reach out to Sixclear or check out the plugin documentation.