# CODESYS Project Analysis ## Overview This document contains information extracted from the CODESYS project export file (`Home_Automation.export`). ## Device Information - **Device Name**: `codesys-home` - **CODESYS Version**: 4.15.0.0 - **Platform**: CODESYS Control for Raspberry Pi MC SL - **SDK Version**: 3.5.21.0 - **Order Number**: 2302000009 ## Hardware Configuration ### EtherCAT Network - **EtherCAT Master**: Version 4.9.0.0 - **EtherCAT Task**: `EtherCAT_Task` ### EtherCAT Devices 1. **EK1100** - EtherCAT Coupler (2A E-Bus) - Vendor: Beckhoff Automation GmbH & Co. KG - Order Number: EK1100 - Function: EtherCAT coupler connecting to E-Bus modules 2. **EL1809** - 16Ch. Digital Input 24V, 3ms - Vendor: Beckhoff Automation GmbH & Co. KG - Order Number: EL1809 - Function: 16-channel digital input module - Channels: 16 digital inputs (Channels 1-16) 3. **Output Module** (Likely EL2004 or similar) - 16 output channels configured - Channel addresses: 16#1A00 through 16#1A0F (Channels 1-16) ## Network Variables CODESYS communicates with Node-RED using UDP-based network variables. ### Variables Sent to Node-RED (NVL_Sender) **List Identifier**: 1 **Protocol**: UDP **Task**: EtherCAT_Task **Transmission**: Cyclic **Interval**: T#50ms **Minimum Gap**: T#20ms **Structure**: `struct_lights` containing light states for each room: | Variable Name | Type | Description | |--------------|------|-------------| | `l_masterBedroom` | struct_lights | Master bedroom lights | | `l_masterBathroom` | struct_lights | Master bathroom lights | | `l_bedroom_1` | struct_lights | Bedroom 1 lights | | `l_bedroom_2` | struct_lights | Bedroom 2 lights | | `l_bathroom` | struct_lights | Bathroom lights | | `l_hallway` | struct_lights | Hallway lights | | `l_pantry` | struct_lights | Pantry lights | | `l_kitchen` | struct_lights | Kitchen lights | | `l_livingRoom` | struct_lights | Living room lights | | `l_dinningRoom` | struct_lights | Dining room lights | | `l_entrance` | struct_lights | Entrance lights | | `l_guestWc` | struct_lights | Guest WC lights | | `l_outVeranda` | struct_lights | Outdoor veranda lights | | `l_outFront` | struct_lights | Outdoor front lights | | `l_outSide` | struct_lights | Outdoor side lights | | `l_outBack` | struct_lights | Outdoor back lights | ### Variables Received from Node-RED (NVL_Receiver) **List Identifier**: 3 **Protocol**: UDP **Task**: EtherCAT_Task **Transmission**: Cyclic **Interval**: T#50ms **Minimum Gap**: T#20ms **Import File**: `C:\Users\NearchosParaskeva\OneDrive - individual\Codesys_Home_Automation\NVL_Receiver.gvl` **Structure**: `struct_switches` containing switch states for each room: | Variable Name | Type | Description | |--------------|------|-------------| | `masterBedroom` | struct_switches | Master bedroom switches | | `masterBathroom` | struct_switches | Master bathroom switches | | `bedroom_1` | struct_switches | Bedroom 1 switches | | `bedroom_2` | struct_switches | Bedroom 2 switches | | `bathroom` | struct_switches | Bathroom switches | | `hallway` | struct_switches | Hallway switches | | `pantry` | struct_switches | Pantry switches | | `kitchen` | struct_switches | Kitchen switches | | `livingRoom` | struct_switches | Living room switches | | `dinningRoom` | struct_switches | Dining room switches | | `entrance` | struct_switches | Entrance switches | | `guestWc` | struct_switches | Guest WC switches | | `outVeranda` | struct_switches | Outdoor veranda switches | | `outFront` | struct_switches | Outdoor front switches | | `outSide` | struct_switches | Outdoor side switches | | `outBack` | struct_switches | Outdoor back switches | ## Program Structure ### Main Program (PLC_PRG) - **Type**: Program - **Language**: Structured Text (ST) - **Function Blocks Used**: `fb_switch` - **Instances**: - `masterBedroom: fb_switch` ### Function Blocks - **fb_toogleButton**: Toggle button function block - **fb_switch**: Switch control function block ### Variables Used in Logic From the program code, the following variables are referenced: - `lights.l_1`, `lights.l_2`, `lights.l_3`, `lights.l_4`, `lights.l_5`, `lights.l_6` - `switches.sw_1`, `switches.sw_2`, `switches.sw_3`, `switches.sw_4`, `switches.sw_5`, `switches.sw_6` - `switches.all_off` - `switches.all_on` ## Room Configuration The system controls lighting for 15 rooms/areas: 1. Master Bedroom 2. Master Bathroom 3. Bedroom 1 4. Bedroom 2 5. Bathroom 6. Hallway 7. Pantry 8. Kitchen 9. Living Room 10. Dining Room 11. Entrance 12. Guest WC 13. Outdoor Veranda 14. Outdoor Front 15. Outdoor Side 16. Outdoor Back ## I/O Mapping ### Inputs (EL1809) - 16 digital input channels - Likely used for local switch inputs or status feedback ### Outputs (16 channels, likely EL2004) - 16 digital output channels (16#1A00 - 16#1A0F) - Used to control relay outputs for lighting **Note**: The exact mapping between relay outputs and rooms needs to be determined from the program logic or wiring documentation. ## Libraries Used - **IoStandard** (System) - **SM3_Basic** (3S - Smart Software Solutions GmbH) - **SM3_CNC** (3S - Smart Software Solutions GmbH) - **3SLicense** (CODESYS) - **SM3_CamBuilder** (CODESYS) - **SM3_Robotics** (CODESYS) - **SM3_Robotics_Visu** (CODESYS) - **SM3_Transformation** (CODESYS) - **Standard** (System) - **CmpLog** (System) ## Task Configuration - **EtherCAT Task**: Used for EtherCAT communication and network variable updates - **Update Rate**: 50ms (cyclic transmission) ## Notes - The project uses structured data types (`struct_lights`, `struct_switches`) for organizing room data - Network variables are packed and transmitted via UDP - The system appears to support both indoor and outdoor lighting control - Water boiler control mentioned in documentation was not found in the export - may be in a separate module or not yet implemented --- **Analysis Date**: January 27, 2026 **Source File**: `Home_Automation.export` **Export Format**: CODESYS XML