Skip to content

KIT-IRS/Ilo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Industrial Lightweight Overlay (Ilo)

This repository contains the source code and experimental data for the research paper: "Enabling Zero-Touch Certificate Management in Modular Plants through Overlay Networks".

Project Overview

This project investigates whether Overlay Networks (ONs) can provide a lightweight, deterministic addressing and routing substrate inside modular plants (specifically "Production Gray Boxes") to enable zero-touch certificate management. The code implements three structured overlay topologies suitable for Operational Technology (OT) environments:

  1. Chord (Ring-based)
  2. Kademlia (Tree-based/XOR metric)
  3. CAN (Content Addressable Network / Space-based)

The implementation focuses on resource efficiency and feasibility within automation systems, utilizing Beremiz (Soft-PLC) for the nodes and Siemens TIA Portal for the orchestration interface.

Hardware & Software Architecture

The code is designed for a specific hardware demonstrator setup described in the associated paper:

  • Nodes: 5x Raspberry Pi 4B units running Ubuntu 22.04.5 LTS.
  • Orchestrator: 1x Siemens S7-1500 PLC.
  • Network: Star topology via a managed Ethernet switch.
  • Communication: Modbus TCP is used for communication between nodes and the PLC.

Software Stack

  • Runtime: Beremiz (Python-based IEC 61131-3 Soft-PLC).
  • Middleware: Node-RED (handling S7 and Modbus-TCP translation).
  • Engineering: Siemens TIA Portal V18.

Repository Content

1. Nodes (Beremiz Code)

This directory contains the Beremiz projects for the three supported overlay algorithms.

  • Variants:
    • Naive (e.g., Chord_N1): Uses conservative timing margins (2s timer delays, 500ms cyclic tasks) to ensure stability without acknowledgement messages.
    • Optimized (e.g., Chord_N1_opt): Features reduced timing margins (1s timer, 250ms cyclic tasks) and proximity-aware NodeID assignment to demonstrate performance headroom.
  • Subdirectories:
    • Chord / Chord optimised: Ring topology implementation.
    • Kademlia / Kademlia optimised: Tree topology using XOR metrics.
    • CAN / CAN optimised: d-dimensional coordinate space implementation.

2. Node-RED

Contains the flow definitions for routing messages between the PLC and the Soft-PLC nodes.

  • CAN_NodeRED.json
  • Chord_NodeRED.json
  • Kad_NodeRED.json

3. TIA - Project

Contains the orchestration logic for the Siemens S7-1500.

  • P2P.zap18: Archived TIA Portal V18 project file.

4. Evaluation

Contains validation data regarding the join/leave procedures and resource impact.

  • RawData: Logs from the experimental runs.
  • Scenarios: Excel files and scripts used to calculate recovery times and state durations.

How to Run the Demonstrator

Prerequisites

  • 5x Raspberry Pis configured with Beremiz and Node-RED.
  • 1x Siemens S7-1500 PLC connected to the network.
  • Engineering PC with TIA Portal V18.

Step 1: Start the Soft-PLCs (Raspberry Pis)

Perform this step on each of the 5 Raspberry Pi nodes.

  1. Navigate to the Beremiz directory and launch the IDE:
cd Beremiz/beremiz/
python3 Beremiz.py
  1. Open the specific Project File corresponding to the node number and algorithm (e.g., Chord_N1).
  2. Build & Connect:
    • Click "Build project in build folder".
    • Click the Green Plug icon to connect to the local PLC runtime.
    • Click the Yellow Arrow to transfer the code.
    • Click the Running Man icon to start the execution.

Step 2: Start Node-RED (Communication Layer)

  1. Access Raspberry Pi 1 (physically located as the uppermost unit on the IRS demonstrator).
  2. Start Node-RED.
  3. Import and select the JSON flow corresponding to the network being tested (e.g., Chord_NodeRED.json).
  4. Verification: Check if all nodes are online. On the physical demonstrator, a green light below the node indicates valid data transfer.

Step 3: TIA Portal Orchestration

  1. Open P2P.zap18 in TIA Portal V18.
  2. Connect to the physical S7-1500 PLC.
  3. State Check:
    • Inspect the Data Blocks (DBs) responsible for "Bootstrap" and "Leave" procedures.
    • Ensure the variable State is set to 0. If not, force the value to 0.
    • Ensure variables Join and Leave are set to false.

Step 4: Operation via HMI

The system is controlled via the HMI connected to the PLC (or the TIA Portal HMI simulation).

  1. Activate Simulation: Press "Activate simulation" to enable the state display lights on the physical rig.
  2. Join Procedure:
    • Press Join Procedure. This triggers the JoinCtrl signal in the function blocks.
    • The nodes will transition through Init -> Joining -> Online states.
  3. Manual Operation:
    • Once joined, click buttons Node 2 to Node 5 to view network details in a pop-up window.
    • You may manually trigger "Join" or "Leave" signals for specific nodes to simulate churn.
  4. Leave Procedure:
    • Press Leave Procedure to trigger the graceful exit sequence (LeaveCtrl).

Citation

If you use this code or data in your research, please cite the authors.

About

Ilo (Industrial Lightweight Overlay) is a proof of concept for utilizing overlay networks in opertional technology of the Institute of Control Systems (IRS), at the Karlsruhe Institue of Technology (KIT).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors