jQuery(function($) { function closeAllOffCanvas(exceptID = null) { let anyOpen = false; // Track if another Off-Canvas remains open $(".e-off-canvas").each(function() { let canvasID = $(this).attr("id"); if (!exceptID || canvasID !== exceptID) { $(this).removeClass("e-off-canvas-visible") .addClass("e-off-canvas-hidden") .attr("aria-hidden", "true") .css({ "z-index": "10", "visibility": "hidden", "opacity": "0" }); // Full removal delay set to 0ms setTimeout(() => { if ($(this).attr("aria-hidden") === "true") { $(this).css("display", "none"); } }, 0); } else { anyOpen = true; // At least one Off-Canvas is still open } }); } function openOffCanvas(targetID) { let targetCanvas = $(targetID); if (targetCanvas.length) { // Close all others EXCEPT the one we're opening closeAllOffCanvas(targetID); // Open immediately with delay set to 0ms setTimeout(() => { targetCanvas.removeClass("e-off-canvas-hidden") .addClass("e-off-canvas-visible") .attr("aria-hidden", "false") .css({ "z-index": "9999", "visibility": "visible", "opacity": "1", "display": "block" }); // Ensure the White Background Stays Visible $("body").addClass("off-canvas-active"); // Force repaint after opening forceRepaint(); }, 0); } } // Decode Base64 function decodeBase64(str) { try { return atob(str); } catch (e) { return null; } } // Handle Elementor Off-Canvas OPEN clicks $(document).on('click', '[href*="elementor-action%3Aaction%3Doff_canvas%3Aopen"]', function(event) { event.preventDefault(); let href = decodeURIComponent($(this).attr("href")); let base64Match = href.match(/settings=([^&]+)/); if (base64Match) { let decodedSettings = decodeBase64(base64Match[1]); try { let settingsObj = JSON.parse(decodedSettings); if (settingsObj.id) { let offCanvasID = "#off-canvas-" + settingsObj.id; openOffCanvas(offCanvasID); } } catch (e) {} } }); // Handle Elementor Off-Canvas CLOSE clicks $(document).on('click', '[href*="elementor-action%3Aaction%3Doff_canvas%3Aclose"]', function(event) { event.preventDefault(); closeAllOffCanvas(); }); // Ensure all Off-Canvas elements start hidden (ONLY if NOT in Elementor Editor) function initializeOffCanvasVisibility() { // Check if the body does NOT have the Elementor edit mode class if (!$('body').hasClass('elementor-element-edit-mode')) { $(".e-off-canvas").each(function() { $(this).attr("aria-hidden", "true").css({ "z-index": "10", "visibility": "hidden", "opacity": "0", "display": "none" }); }); } } // Call the initialization function $(window).on('load', initializeOffCanvasVisibility); // Utility function to force repaint function forceRepaint() { if ($('body').length) { $('body')[0].style.display = 'none'; $('body')[0].offsetHeight; $('body')[0].style.display = ''; } } });

Control your plant. Keep your PLCs.

Control your plant. Keep your PLCs.

Jouvoli adds a supervisory control and orchestration layer on top of your existing automation infrastructure — Siemens S7, Rockwell, Beckhoff, or any PLC you already run. No rip-and-replace. Real-time visibility and automated device steering from day one.

A supervisory layer, not a PLC replacement.

Most industrial control problems don’t need new hardware. They need a smarter orchestration layer: one that reads from your PLCs, routes decisions through configurable logic, and sends commands back — all with a human in the loop.

Jouvoli's SCADA & Control module sits at the supervisory level of the automation pyramid. Your PLCs keep doing what they do. Jouvoli adds:

Centralized real-time visualization across all devices and sites
Configurable automation logic via built-in soft-logic runtime
Bidirectional control — read sensor data, write setpoints and commands
Full audit trail of every automated and manual action

Capability

Real-Time SCADA Visualization
Live dashboards for every device, every site. Configurable process views, alarm management, and trend analysis. Works across manufacturers — one cockpit, not one per vendor.
Define rules and schedules that automatically adjust device behavior based on sensor readings, energy prices, or production targets. Example: automatically ramp down non-critical station when demand decreases.
Multi-channel alerts (email, SMS, webhook) triggered by process conditions, device faults, or threshold breaches. Configurable escalation chains and acknowledgment workflows.
A logic execution environment runs directly on the edge node. Define sequences, interlocks, and conditional control flows without custom code. Executes locally — control continues even if cloud connectivity drops.
Every automated action can be paused or overridden by an operator. Role-based access controls determine who can override what. All overrides are logged with timestamp and user identity.

Protocol Support

Protocol Typical Use
OPC UA Siemens, Beckhoff, and most modern PLCs. The universal standard for industrial interoperability.
S7comm Native Siemens S7-300 / S7-400 / S7-1200 / S7-1500. Direct connection without OPC UA server.
MQTT Edge devices, IoT sensors, and custom hardware. Lightweight pub/sub for high-frequency data.
Modbus TCP / RTU Energy meters, variable frequency drives, and legacy equipment. The industrial workhorse.
EtherNet/IP Rockwell / Allen-Bradley PLCs, drives, and I/O modules. Full read and write support.
PROFINET Siemens and other PROFINET-capable devices. Real-time Ethernet for process automation.

Custom protocol adapters available as an add-on for proprietary or niche equipment.

Human-in-the-Loop by Design

Human-in-the-Loop by Design

Jouvoli is not an autonomous control system. Every automated sequence has:

  • Operator visibility: What is the system doing and why?
  • Manual override: Any operator with the right role can pause or redirect.
  • Audit trail: Every automated action, override, and configuration change is logged with timestamp and user identity.
  • Safety boundary: Jouvoli works alongside your hardware interlocks, emergency stops, and safety PLCs — it does not replace them. Safety systems always have priority.

Case Study: From Planning Simulation to Live Production Control

The Situation

A European tier-1 automotive supplier manufactures bodyshell components — doors, roofs, hoods, tailgates, and fenders — across more than 650 component types. Their material flow had been carefully designed in Siemens Plant Simulation, a discrete event simulation tool used for planning and layout.

The simulation was accurate. But it had no connection to the real shop floor. Components were tracked on paper. Routing decisions were made manually. There was no centralized visibility into where parts were, which stations were blocked, or which variant path a component should follow.

What Jouvoli Built

Jouvoli took the Plant Simulation design as a blueprint and implemented it as a live SCADA system controlling the actual shop floor via MQTT control plane.

Component tracking: RFID chips on every component feed real-time location data into Jouvoli. 650+ component types, each with its own process specification.

Variant routing: 4 manufacturing paths — covering different sealing, hardening, and packaging sequences — are automated based on component type. Jouvoli reads the RFID identifier, determines the variant, and routes the component to the correct station sequence.

Process control: Both automated processes (oven curing with fixed temperature/time profiles) and manual processes (air curing with operator confirmation) are handled within the same control flow.

Operator dashboard: Real-time view of all active components, station status, and queue depths. Operators can manually override routing decisions for any component. All overrides are logged.

  • 650+ component types tracked in real time via RFID — no paperwork, no manual scanning
  • 4 variant-specific manufacturing paths automated end-to-end
  • From planning simulation to live production control in weeks, using the existing simulation design as the blueprint
  • Operator dashboard with manual override maintained throughout — no black-box automation

Integration with the Rest of Jouvoli

SCADA & Control is one module in a unified platform. No integration overhead.

Combine it with:

Monitoring & Analytics

long-term trend analysis alongside real-time control

ISO 50001 EnMS

use SCADA data to feed automated energy baselines and SEU identification

ML/AI Engine

let production forecasts inform automated scheduling decisions

Ready to add a control layer to your existing automation?

Start with a 6-week pilot. Fixed price. We connect to your existing PLCs — you keep everything that already works.

PT