Skip to main content

Our Projects

Discover a selection of our successfully completed projects and learn more about how we work.

Data Hub – Central PLC Data Management
Automation

Data Hub – Central PLC Data Management

Central data management for control systems – collecting, processing, and providing PLC signals for code generation.

Project Description

The Data Hub is a central data management application for industrial control systems, developed for BKW Energie AG. The application collects, manages, and harmonizes control and system data from various sources and stores it in an open database. This data is subsequently used to generate code for PLC control systems.

A key focus is the management of KKS codes (Power Plant Classification System), which ensure a unique identification of all plant components and signals across multiple power plants. The application supports both "Classic" and "TIA" project types and offers interfaces to existing systems such as Hydrolog and Ignition.

Challenges

  • Central management of control data from various plants and systems
  • Unique identification of plant components across multiple power plants using KKS
  • Consistent database for automatic code generation (SCL, TIA Data Blocks)
  • Integration of heterogeneous systems: Siemens TIA Portal, Ignition (Inductive Automation), Hydrolog
  • Management of complex data structures (UDTs) for PLCs and SCADA systems

Scope

  • Desktop application based on WPF with MVVM architecture
  • Project tree navigation with hierarchical plant structure (power plants, PLCs, signal lists)
  • DataGrid with advanced filtering, sorting, and paging functions for data display and management
  • Edit Data Panel with dynamic PropertyGrid for editing individual records
  • KKS Library with complete KKS standard numbering system and automatic validation
  • Import/Export Interfaces:
    • Excel import and export for signal lists and messages
    • TIA Portal integration: UDT import, DB export, SCL code generation
    • Ignition UDT import and export (JSON-based)
    • Hydrolog export for process data
  • Data Validation with real-time KKS checking for uniqueness and formal correctness
  • User Authentication via LDAP integration

Technologies

  • C# / WPF / MVVM
  • PostgreSQL with Entity Framework Core
  • Ignition (Inductive Automation) – UDT and Tag generation
  • Siemens TIA Portal – UDT and DB structures

Results

  • Centralized and harmonized control data in an open database
  • Real-time synchronization and clear visualization of PLC signals
  • Validated KKS management with checks for uniqueness and formal correctness
  • Automatic code generation (SCL) for Siemens PLC systems
  • Seamless integration of Ignition UDTs with bidirectional import/export
  • Seamless integration into existing automation environments (Hydrolog, TIA Portal, Ignition)
  • Significant time savings during commissioning and maintenance of power plant controls

Optimax – Energy Optimization for Hydroelectric Power Plants
Automation 2024 - 2025

Optimax – Energy Optimization for Hydroelectric Power Plants

Industrial optimization system for efficient power distribution across up to six turbines in hydroelectric plants – with IEC-104 integration and MATLAB-based calculation.

Project Description

Optimax is an industrial energy optimization system developed for Kraftwerke Oberhasli AG (KWO). The system calculates the optimal power distribution across up to six turbines and generators of a hydroelectric power plant in real time. It takes into account each machine's individual efficiency characteristics and availability.

Communication with the plant control system (SCADA/KWREG) is handled via the industrial standard protocol IEC 60870-5-104. The optimization logic is based on MATLAB-generated tables that are processed directly within the system without requiring a MATLAB runtime environment.

Challenges

  • Real-time capable optimization of power distribution across five smaller and one larger turbine
  • Reliable bidirectional communication with the plant control system via IEC-104
  • Processing of 4-dimensional MATLAB optimization tables without a MATLAB runtime
  • Robust operation as a Windows service in a safety-critical industrial environment
  • Correct error handling for invalid optimization results (NaN detection)

Scope

  • Development of the optimization core with connection to MATLAB data tables (.mat files)
  • Implementation of IEC-104 communication with master and slave stations
  • Configurable actions: recalculation on value change or on every new message
  • Architecture as a Windows service with .NET 8 and dependency injection
  • Redundant connection options for increased availability
  • Comprehensive logging with configurable retention period (Serilog)
  • Automated installation via setup script (Inno Setup)

Approach

  • Data Flow Input: Target power (PSoll) and machine availability are received from the plant control system via IEC-104
  • Processing: The optimization algorithm determines the most efficient power split across active machines using the 4D lookup table
  • Data Flow Output: The calculated individual power per machine along with status information is sent back to the plant control system via IEC-104

Technologies

  • C# / .NET 8 / .NET Standard 2.0
  • IEC 60870-5-104 (industrial telecontrol protocol)
  • MATLAB data processing via CSMatIO library
  • Serilog (structured logging)
  • xUnit, Moq, FluentAssertions (testing)
  • Windows Service (Microsoft.Extensions.Hosting)

Results

  • Fully automated, real-time capable power optimization during live plant operation
  • Reliable IEC-104 communication with automatic reconnection and optional redundancy
  • Robust error detection: NaN values are identified and reported as optimization errors
  • Modular, maintainable architecture with clear separation of communication, optimization, and configuration
  • Configuration-driven system – adjustments possible via JSON files without code changes
HQ Importer – Automated HQ Curve Updater
Automation Renewal

HQ Importer – Automated HQ Curve Updater

Automated management and transmission of water level-discharge curves (HQ data) to PLC controllers.

Project Description

The HQ Importer is a distributed software system for the automated management and transmission of height-discharge curves (HQ data) to Siemens PLC systems (S7-400/S7-1500). The solution is used in hydrological measuring stations of the AWA (Office for Water and Waste of the Canton of Bern).

The system consists of three main components: a WPF user interface for data management, a Windows service for PLC communication, and a data acquisition service that automatically retrieves hydrological data from various sources.

Challenges

  • Automated acquisition of HQ data from heterogeneous sources (KiWIS REST API, FTP/SFTP servers from AWA and FOEN)
  • Central version control of HQ data across multiple measuring stations
  • Automated transmission of HQ data to PLC controllers

Scope

  • Data Acquisition (HqTaker Service): Automated retrieval of rating curves via the KiWIS REST API (hydrodata.ch) and of HQ tables via FTP/SFTP servers. Configurable schedules (daily or interval-based).
  • PLC Communication (Worker Service): Monitoring of PLC init flags, automated transmission of HQ tables into the data blocks of Siemens controllers via the S7 protocol. CRC-based synchronization.
  • WPF User Interface: Management, visualization, and manual transmission of HQ data. Real-time charts, version overview, and multi-instance support for different locations.
  • Web Monitoring: Bootstrap-based web interface for service status, download logs, and manual trigger functions.

Approach

The architecture is based on a microservice-oriented structure with gRPC as the internal communication protocol. The HqTaker Service acquires the raw data and provides it via gRPC. The Worker Service synchronizes the data and writes it to the PLC when needed. The WPF application also connects via gRPC and provides the operator with a complete overview and control capabilities.

Results

  • Fully automated data acquisition and PLC transmission at three operating sites
  • Real-time monitoring with web interface and auto-refresh
  • Support for over 30 measuring stations

Technologies

  • .NET, WPF
  • gRPC / Protobuf
  • Siemens S7 Communication
  • ASP.NET Core Web API, Bootstrap 5
  • LiveCharts
  • Windows Services

Your project could be next

Let's talk about your plans. We look forward to supporting you in your next project.