- Reorganized project: codesys/, docs/codesys|redesign|integration|reference/, scripts/ - CODESYS project and exports in codesys/ - Documentation index in docs/README.md - Redesign and light naming configuration - Water boiler control and safety design Co-authored-by: Cursor <cursoragent@cursor.com>
5.9 KiB
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
-
EK1100 - EtherCAT Coupler (2A E-Bus)
- Vendor: Beckhoff Automation GmbH & Co. KG
- Order Number: EK1100
- Function: EtherCAT coupler connecting to E-Bus modules
-
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)
-
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_6switches.sw_1,switches.sw_2,switches.sw_3,switches.sw_4,switches.sw_5,switches.sw_6switches.all_offswitches.all_on
Room Configuration
The system controls lighting for 15 rooms/areas:
- Master Bedroom
- Master Bathroom
- Bedroom 1
- Bedroom 2
- Bathroom
- Hallway
- Pantry
- Kitchen
- Living Room
- Dining Room
- Entrance
- Guest WC
- Outdoor Veranda
- Outdoor Front
- Outdoor Side
- 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