Natural Language Industrial Control
Description
Intelligent Industrial Automation Platform: Integration of Edge AI, IoT, and Cloud Supervision Abstract This project represents a modern approach to industrial automation, bridging the gap between traditional PLC (Programmable Logic Controller) systems and advanced AI/IoT technologies. It consists of a distributed architecture featuring an intelligent edge node (Raspberry Pi), a central coordination server, and a high-performance React-based HMI (Human-Machine Interface). The system allows for real-time control, data logging, and novel 'Natural Language Control' capabilities, enabling users to interact with industrial hardware using conversational AI System Architecture The project is divided into three main components: 1. Intelligent Edge Controller (ServidorPlc) Hosted on a Raspberry Pi, this component acts as the "Soft PLC". Technology: Node.js, Express, Socket.io, Node-OPCUA. Functionality: Hardware Interface: Direct actuation (PWM, Digital I/O) and sensing (ADC communication). Control Loops: Implements PI/PID algorithms and automatic system identification (ARX models). AI Integration: Processes natural language prompts (via OpenAI/Local LLMs) to generate control commands dynamically. Connectivity: MQTT and WebSockets for real-time telemetry. 2. Supervisory Interface / HMI (Plc) A web-based SCADA/HMI application for monitoring and control. Technology: React, Vite, CoreUI, Redux, Vega-Lite. Features: Data Visualization: Real-time charts (Vega-Lite) for sensor data (temperature, level, flow). Command Center: Interface to send voice/text commands to the PLC. Dashboard: CoreUI-based administrative panels for user management and configuration. 3. Backend & Data Layer (ServidorPc) (Contextual) A central server or database handler for long-term storage and aggregation. Technology: Node.js, PostgreSQL. Functionality: Data persistence for historical analysis. Centralized authentication and user management. Key Features Automatic Model Identification: The system can automatically perturb the plant, record response data, and fit ARX (AutoRegressive with Exogenous input) models (Order 1-3) to mathematically represent the system dynamics. Generative AI Control: Users can issue commands like "Maintain level at 50% indefinitely" or "Identification test with steps of 5 seconds," which are parsed into executable machine code. Remote Telemetry: Real-time streaming of process variables (Setpoints, Process Values, Control Outputs). Extensibility: Modular Node.js architecture allows easy addition of new protocols (Modbus, OPC UA) or AI models.
Files
Steps to reproduce
Steps to Reproduce the Project This project consists of three main modules that must be configured in the following order: 1. PLC Server (Raspberry Pi) This module acts as the logic controller (Soft PLC). Hardware Requirements Raspberry Pi (v3 or higher) running Raspberry Pi OS (Bullseye or Bookworm). Industrial Shields RPIPLC v6 (RPi-based PLC Hardware). Installation Initial RPi Configuration: Default User: pi / Password: raspberry. Enable SSH and VNC (sudo raspi-config). C Libraries (Industrial Shields): git clone https://github.com/Industrial-Shields/librpiplc.git cd librpiplc cmake -B build/ -DPLC_VERSION=RPIPLC_V6 -DPLC_MODEL=RPIPLC_58 sudo cmake --install build/ Node.js Libraries: Install dependencies for compiling native modules: npm install -g node-gyp In the ServidorPlc directory: npm install node-gyp configure node-gyp build Execution: npm start 2. PC Server (Backend) Central coordination server and database handler. Requirements Node.js (v18+) PostgreSQL MQTT Server (Mosquitto) Installation Database: Install PostgreSQL. Configure credentials in the .env file (create it based on variables used in config/database.js). Dependencies: In the ServidorPc directory: npm install Execution: npm start 3. PLC (HMI / Frontend) React-based Graphical User Interface. Requirements Node.js (v18+) Installation In the Plc directory: npm install Configuration: Verify that the .env file or configuration points to the correct IP addresses of ServidorPc and ServidorPlc. Execution (Development): npm start # or yarn start Access via http://localhost:3000. 4. Connectivity Ensure all devices (PC and Raspberry Pi) are on the same local network. MQTT: The ServidorPlc publishes to and subscribes from topics on the MQTT broker (typically hosted on the PC). Ensure the mosquitto service is running and ACLs are correctly configured.
Institutions
- Universidad del CaucaPopayan
Categories
Funders
- University of CaucaColombia