Embedded Softwareentwickler C/C++

gewünschte Einsatzorte:
deutschlandweit
Wohnort:
Wolfersdorf
Rollen:

Softwareentwickler

Skills:
Programmiersprachen
C, C++, C#, VB.NET, VB6, VBA
Betriebssysteme
Windows, Vx-Works, Linux
Bussysteme
LIN, GPIB, RS485, SPI, MODBUS, MIL-STD-1553, RS232, USB, I2C
Software
Visual Studio, Eagle, Matlab, Qt Creator, IAR Workbench, Eclipse, P-Spice, Access, Kinetis NXP, Redmine
Hardware / Controller
Atmel / 8-Bit, TI MSP430, Freescale, M-Cortex
sonstiges
MFC, .NET, ASP.NET, SVN, Windows Forms, CMMI, Win32-API, ADO.NET, LINQ, .NET Reports, XML, UML
Ausbildung:
Abschluss

  • Elektro- und Informationstechnik, Automatisierungstechnik / Regelungstechnik, M. Eng.
  • Elektro- und Informationstechnik, Kommunikationstechnik, B. Eng.
  • Elektroinstallateur (HWK)

Name
Beschreibung
Projekte:
03/2016 - 05/2018
Embedded Softwareentwicklung, Steuerungstechnik
ait-Deutschland GmbH, Kasendorf / Wärmepumpen
Für eine neue Produktlinie wurde eine Steuerungsplatine durch eine wirtschaftlichere Platine ersetzt. Meine Aufgabe war es, die Firmware für diese Platine zu entwickeln und diese in ein Gesamtsystem zu integrieren.

Teil 1:

Ein Scheduler und der Modbus-Treiber waren bereits implementiert. Die Firmware wurde von mir durch folgende Funktionen erweitert:

  • Konfigurieren der µController Ports
  • Lesen/Schreiben der GPIOs
  • Lesen der Analogeingänge
  • Schrittmotorsteuerung
  • PWM Ausgänge schreiben, alternativ: 0V-10V Ausgang
  • PWM Eingänge lesen, 0% - 100%
  • Steuerung der Platine über Modbus
  • Eine statische Bibliothek für Basisfunktionen des Controllers
  • PID-Regelalgorithmus zur Regelung des Kältekreises (Rekursiver Geschwindigkeitsalgorithmus)

Teil 2:

Das Gesamtsystem besteht aus einer Wärmepumpe und zwei I/O Platinen, sowie einem Bedienteil (HMI). Eine I/O Platine wurde durch die Platine aus Teil 1 ersetzt. Die Firmware der zweiten Platine musste angepasst werden. Hierzu wurden folgende Änderungen vorgenommen:

  • Mod-Kommunikation mit der Platine aus Teil 1
  • Mod-Kommunikation mit Frequenzumrichter
  • Mod-Kommunikation mit Ventilator
  • Anpassung der LIN-Frames zur Kommunikation mit dem Bedienteil (HMI)

Teil 3:

Das Bedienteil ist die Hauptsteuerung für die Wärmepumpe. Die Software musste mit neuen Funktionen angepasst werden. Zudem werden die I/O Platinen angesteuert und Sensorwerte gelesen.

Teil 4:

Erstinbetriebnahme der Funktionsmuster:

  • Konfiguration der PID-Werte für die Regelung des Kältekreises.
  • Funktionstests der Fühler und Sensoren.

Teil 5:

Implementierung eines Bootloaders für den KL26 Mikrocontroller. Das Grundgerüst für den Bootloader war bereits gegeben. Ich habe eine C# Anwendung geschrieben, damit Daten aus einer .hex-Datei via RS485 übertragen werden können. Somit wird das Debugging erleichtert. Anschließend habe ich den Bootloader für den Mikrocontroller angepasst.

Teil 6:

  • Überarbeiten der Softwarestruktur (Legacy-Code)
  • Betreuung und Programmierung für weitere Neuentwicklungen
  • Dokumentation

Während der gesamten Zeit habe ich das Entwicklungsteam bei der Neustrukturierung des Entwicklungsprozesses unterstützt:

  • Dokumentation und Anforderungsmanagement mit Redmine
  • Strukturierung der Software
    • Aufteilen neuer Funktionen in Module
    • Refactoring von Legacy Code
  • Einführung von „Clean Code“ im Team
  • Unterstützung bei der Strukturierung von SVN
  • Erstellen von Testplänen und Testprozeduren
  • Implementierung von Unit-Test (Google Test)

Sonstiges:

  • Aufnahme von Kennlinien der Temperatur-, Drucksensoren und Umwälzpumpen (Durchflusssensor)
  • Anpassung einer weiteren Firmware die nicht zu diesem Projekt gehört. Ich habe eine unvollständige Library zur Ansteuerung der Ein- und Ausgänge vervollständigt
  • Optimierung der Überhitzungsregelung
  • Einarbeitung in Enterprise Architect
Rolle(n): Softwareentwickler
Skills: C/C++, LIN-Bus, MODBUS, ARM, Embedded Linux, Qt, IAR Embedded Workbench, Segger J-Link, .NET, NXP MKL26z256x4 Cortex-M0, Atmel ATSAM3S1C Cortex-M3
08/2015 - 12/2015
Digitalisierung des Emitter Location Systems
(Werksstudent/Masterarbeit/Befristete Beschäftigung)
Raytheon Deutschland GmbH / Raumfahrt und Verteidigung

Meine Aufgaben waren:
  • Planen und durchführen von Tests in Absprache mit dem Entwicklungsteam. Hierzu gehörte die Entwicklung von Hard-, und Software, Dokumentation, Ressourcenplanung, Testprozeduren schreiben und eine abschließende Qualifizierung.
  • Es wurden folgende Testanwendungen geschrieben:
  • Anwendung in C++/MFC zur Qualifizierung des MIL-BUS-1553B Interfaces.
  • Embedded Anwendung in C zur Qualifizierung des MIL-BUS-1553B Interfaces.
  • Anwendung in C++/MFC zur Ansteuerung von GPIB-Geräten für EMV Tests
  • Anwendung in C++/MFC für Performance Tests des Emitter Location Systems
  • Embedded Webserver in C/JavaScript (vxWorks) zur Qualifizierung der Charakteristik der elektrischen Inputs/Outputs.
  • Anwendung in VB.NET zur Datenauswertung und Testprotokoll- Generierung
Rolle(n): Softwareentwickler
Skills: C/C++, VB.NET, JavaScript, Multithreading, Visual Studio, Eclipse, HF-Technik, Oszilloskop, Networkanalyzer, Spektrumanalyzer, GPIB, MIL-STD-1553B, RS485-Standard, Matlab, CMMI, UML
03/2011 - 08/2011
Realisierung einer statisch konfigurierbaren und autarken LIN Master-/Slave- Einheit („LIN-BOX“)
(Bachelorarbeit)
BMW Group, München / Automobilindustrie

Ein Eval-Board, Tastenfeld und ein Display habe ich zusammen in einem Gehäuse verbaut und verdrahtet. Anschließend habe ich einen C-Code Generator mit VB.NET geschrieben. Aus bestehenden LIN-Descripion-Files kann C-Code generiert werden der in die LIN-Box geladen wird. Somit kann die LIN-Box individuell als Master oder Slave programmiert werden.

Nach abschließenden Tests fertigte die Juniorfirma von BMW eine Kleinserie von 10 Stück an.
Rolle(n): Softwareentwickler
Skills: C, CodeWarrior, VB.NET, Visual Studio Express, Freescale SX12 Controller, BMW Standardcore, UML
05/2011 - 09/2011
Anwendungsentwicklung, Stundenabrechnung Werkschutz
(Werksstudent)
Raytheon Deutschland GmbH, Freising / Raumfahrt und Verteidigung
Für die Lohnbuchhaltung habe ich eine Anwendung entwickelt, damit die Arbeitsstunden der Werkschutzmitarbeiter nach Sonn-, Feiertagen, Urlaub, Krankheitstagen, Überstunden aufgeschlüsselt werden können. Die Daten werden in eine Excel-Datei geschrieben und können ausgedruckt werden.
Rolle(n): Softwareentwickler
Skills: VB.NET, Visual Studio
09/2009 - 12/2009
Implementierung eines Sicherheitsmechanismus für ein vorhandenes Radartestsystem
(Praktikum)
Raytheon Deutschland GmbH, Freising / Raumfahrt und Verteidigung

Es musste eine unzureichende Kühlluftversorgung der Prüflinge verhindert werden, sowie eine rotieren Radarantenne bei geöffneter Schutztüre gestoppt werden. Für die Überwachung der Kühlluftversorgung habe ich ein Interface installiert, welches Spannungswerte von vorhandenen Luftmengensensoren digitalisiert und eine Anwendung programmiert, die alle Luftmengen visuell darstellt und die Prüflinge abschaltet sobald ein Luftstrom einen Minimalwert unterschreitet.

Einen Reed-Kontakt an der Schutztüre habe ich mit einem Digitaleingang der Interface-Platine verbunden. Die Anwendung schaltet die Radarantenne ab, sobald die Türe geöffnet wird.

Rolle(n): Softwareentwickler
Skills: C++/MFC