Skip to content
CAI
Software that uses CAICheck a score

RWTH-EBC/AixOCAT

45.8

Weak · 28 September 2026

5.3k

lines of production code

VB.NET

with Python

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Features

Add TikZ icons for new sensor and valve components

The GUI now includes visual representations for several new sensor and valve components, including 3-way and control valves (horizontal and vertical orientations), axial and radial fans (with active states), flaps (closed, half, and open), humidity, power, absolute and differential pressure sensors, cold and hot temperature indicators, and volumetric flow sensors (rectangular and round). These TikZ vector graphics are added to the \GUI/VBAixGUI/tikz\_icons\ directory, enabling the interface to display these specific sensor types in the simulation model.

_GUI/VBAixGUI/tikz\icons · high confidence

Add TwinCAT PLC example project with control mode types and global variables

Added a new TwinCAT PLC example project (MQTT\_Example) that defines two enumeration types, E\_ControlMode and E\_PumpControlMode, along with a global variable list (sampleADSGVL) containing input/output mappings for various system components such as main control, district heating, concrete core activation, and air handling units. The project includes a main program (MAIN) that generates random values for temperature setpoints, and a task configuration (PlcTask) that executes the main program. This provides a complete, runnable example of how to structure a TwinCAT project for MQTT-ADS interface integration.

_Interfaces/Python/MQTT-ADS-interface/TwinCAT Project\_MQTT\Example · high confidence

Added ERC Test Hall example for AixOCAT paper

The Examples/ERC\_TestHall directory now contains a complete example implementation for the AixOCAT paper, including the main controller (FB\_CCAController), the object-oriented wrapper (FB\_CCA\_OOP), and the necessary interfaces (I\_Controller, I\_HydMixCircControl, I\_Pump, I\_TempSens, I\_Valve) along with component implementations (FB\_HydMixCirc, FB\_PumpBAC\_OOP, FB\_TempSensPt100, FB\_Valve\_2\_10V) to support the test case.

_Examples/ERC\TestHall · high confidence

Added Heat Supply Circle example with PLC components and data structures

Added the \HeatingSupplySystem\ project for the Heat Supply Circle example, including the solution file, project configuration, and all associated PLC source files. This includes data type definitions (e.g., \E\_ControlMode\, \E\_PumpControlMode\), global variable lists for system state and sensor data, and function blocks for controlling fans, pumps, valves, and nozzles via Modbus and BACnet protocols.

Examples/HeatSupplyCircle · high confidence

Added HeatPumpTestBenchControl example with data files and PLC project structure

The HeatPumpTestBenchControl example project has been added, including a solution file, a TwinCAT project, and associated data files. The data files include characteristic curves for temperature sensors (VR10, VR11, PT100), heating curves, night mode schedules, and sensor calibration data (pressure, temperature). The PLC project defines global variables and data types for system state, control signals, and sensor inputs/outputs, providing a complete template for a heat pump test bench control application.

Examples/HeatPumpTestBenchControl · high confidence

Added Modbus RTU example project with valve control data structures

The ModbusCom solution now includes a new ModbusRTU project containing a ST\_ValveDat data type for valve control data, along with associated PLC project files and type definitions for Modbus communication, enabling users to implement Modbus RTU-based device communication.

(repo-wide) · high confidence

Initial release of the VBAixGUI library and components

The VBAixGUI library is now available as a reusable component for building graphical user interfaces. This release includes the core ADS connection module for PLC communication, a humidity controller (Befeuchter) control, a checkbox input component, and a statistical buffer class. Users can import the generated DLL to add these elements to their toolbox and connect to PLC variables via the ADS connection component.

GUI/VBAixGUI/VBAixGUI · high confidence

Initializes VBAixGUI project metadata and resources

The VBAixGUI application is initialized with essential project configuration files, including assembly metadata (AssemblyInfo.vb), application settings (Settings.settings), and a comprehensive set of embedded image resources (Resources.resx/Designer.vb) for UI elements such as valves, pumps, and sensors.

GUI/VBAixGUI/VBAixGUI/My Project · high confidence

Introduce MQTT-ADS interface for PLC data exchange

Added a new Python interface that bridges MQTT and ADS (Automation Device Specification) protocols, enabling bidirectional data transfer between a local PLC and an MQTT broker. The implementation includes an \ads.py\ module to manage PLC connections and routes, an \mqtt.py\ module to handle MQTT client connections and message handling, and a \mqtt\_ads\_interface.py\ orchestrator that coordinates the two. The \parsing\_and\_assignment.py\ module provides utilities to parse PLC variable lists and format data for publishing or subscribing. A \config.ini\ file allows configuration of MQTT and ADS connection details, while \setup.py\ defines the package dependencies (\pyads\, \paho-mqtt\, \pytz\).

Interfaces/Python/MQTT-ADS-interface · high confidence

OSCAT library migration to TwinCAT PLC project structure

The OSCAT library has been migrated from the XAE project format to the modern PLC project structure (OSCAT.plcproj), enabling support for multiple TwinCAT runtime environments including ARM, x86, and x64 architectures. This change updates the solution file and project configuration to reflect the new build system, ensuring compatibility with current TwinCAT development workflows.

OSCAT · high confidence

Behavioural changes

3 commits (0 fixes) modifying Interfaces

A change to existing behaviour in Interfaces — 3 commits, 1 file.

Interfaces · medium confidence · unverified

Dependencies

Added VBAixGUI library with TwinCAT dependencies

Introduced the VBAixGUI project, a .NET 4.5 library providing UI components for industrial sensors and controls, including compressors, valves, and measurement tools. The project integrates TwinCAT.Ads and TwinCAT.Scope2 libraries to enable PLC and scope visualization capabilities.

(dependencies) · medium confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 45 → 46 (+0.5)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.16) — scores are not directly comparable.

Lenses

  • Code Health 92 → 85 (-6.8)
  • Architecture 96 → 100 (+4.0)
  • Maturity 47 → 40 (-7.3)
  • Readiness 17 → 23 (+6.4)
  • Security 100 → 100 (+0.0)

Resolved (4)

  • Build did not complete in the analyzer
  • Monorepo: only 1 of 6 solutions was scored
  • No exposed public API
  • Shell project: VBAixGUI (GUI/VBAixGUI/VBAixGUI/VBAixGUI.vbproj)

New (30)

  • Build failed
  • Diagram.TimerPoll_Tick (cognitive 22) (GUI/VBAixGUI/VBAixGUI/Diagram.vb)
  • Dormant codebase
  • DreiWegVentil.Wert.Set (cognitive 18) (GUI/VBAixGUI/VBAixGUI/DreiWegeVentil.vb)
  • DreiWegeKugelhahn.Stellung_false.Set (cognitive 18) (GUI/VBAixGUI/VBAixGUI/DreiWegeKugelhahn.vb)
  • DreiWegeKugelhahn.Stellung_false.Set (cyclomatic 18) (GUI/VBAixGUI/VBAixGUI/DreiWegeKugelhahn.vb)
  • DreiWegeKugelhahn.Stellung_true.Set (cognitive 18) (GUI/VBAixGUI/VBAixGUI/DreiWegeKugelhahn.vb)
  • DreiWegeKugelhahn.Stellung_true.Set (cyclomatic 18) (GUI/VBAixGUI/VBAixGUI/DreiWegeKugelhahn.vb)
  • Duplicated block (10 lines × 3) (GUI/VBAixGUI/VBAixGUI/Pumpe.vb)
  • Duplicated block (12 lines × 7) (GUI/VBAixGUI/VBAixGUI/Diagram.vb)
  • Duplicated block (13 lines × 2) (GUI/VBAixGUI/VBAixGUI/Histogram.vb)
  • Duplicated block (13–15 lines × 7) (GUI/VBAixGUI/VBAixGUI/DreiWegeKugelhahn.vb)
  • Duplicated block (15 lines × 6) (GUI/VBAixGUI/VBAixGUI/Befeuchter.vb)
  • Duplicated block (18–19 lines × 4) (GUI/VBAixGUI/VBAixGUI/Befeuchter.vb)
  • Duplicated block (5 lines × 2) (GUI/VBAixGUI/VBAixGUI/Heizer.vb)
  • Duplicated block (53–54 lines × 2) (GUI/VBAixGUI/VBAixGUI/DreiWegeKugelhahn.vb)
  • Duplicated block (6 lines × 2) (Interfaces/Python/MQTT-ADS-interface/parsing_and_assignment.py)
  • Duplicated block (7 lines × 2) (Interfaces/Python/MQTT-ADS-interface/mqtt_ads_interface.py)
  • Duplicated block (8 lines × 2) (GUI/VBAixGUI/VBAixGUI/DreiWegeVentil.vb)
  • Duplicated block (8 lines × 3) (GUI/VBAixGUI/VBAixGUI/DreiWegeVentil.vb)
  • …and 10 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

RWTH-EBC/AixOCAT was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 28 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 580100c2eb280a9e50ce7f22ae6bc9536157900b — the exact code this score is about.
  • Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-2d9048c36d26.