| Beschreibung |
Für Messdaten, die in einem spezifischen (XML) Format vorlagen, sollten grundlegende
Funktionsbausteine zur Verfügung gestellt werden
- Zusammenführen der Daten aus mehreren, zeitlich parallelen Dateien
- Abarbeiten beliebig langer Zeitreihen (mehrere zeitlich aufeinander folgende Dateien)
- Toleranz gegenüber dem Wegfallen bzw. Hinzukommen einzelner Messwerte
- Auswahl der jeweils interessierenden Werte
- Mittelwert- und Summenbildung
- Berechnete Werte nach Formel selbst erzeugen
Zum Teil konnten Ergebnisse aus einem früheren Projekt übernommen werden (s.u. "Tool zur Hilfe bei Messdatenauswertung").
Es stellte sich heraus, dass das Programm bei der Bearbeitung grosser Datenmengen zu
langsam war. Daher wurde in einem Folgeprojekt an der Optimierung gearbeitet, indem
- ein schnellerer XML-Parser eingesetzt wurde,
- durch genaues Timing einige Designschwächen aufgedeckt und beseitigt wurden und
- eine bestimmte Operation in C realisiert wurde.
Die Summe dieser Modifikationen brachte eine 6 - 8 mal höhere
Bearbeitungsgeschwindigkeit.
|
| Projekt |
Tool zur Hilfe bei Messdatenauswertung |
| Beschreibung |
Jeder kennt die Situation: Es scheint, als würde jeder, der Messdaten erfasst, sein
eigenes Format zur Speicherung "erfinden". Ergebnis: Viel Aufwand, wenn solche
Daten ausgewertet werden sollen.
Hier wurde dieses Problem dadurch in Angriff genommen, dass einzelne Bausteine (in
objektorientierter Form) entwickelt wurden, die zunächst einmal überhaupt den Zugriff
auf die Daten ermöglichen, indem sie
- die unterschiedlichsten Datenformate lesen können,
- die verschiedensten Möglichkeiten, Datum und Uhrzeit zu dekodieren, kennen,
- eine Auswahl der jeweils interessierenden Messwerte erlauben
- und dies alles für beliebig lange Zeiträume auch über mehrere Dateien.
- Weiterhin wurden Objekte entwickelt, um Daten zu komprimieren (Mittelwert- bzw.
Summenbildung) oder zu expandieren (falls etwa Stundenwerte vorliegen, ein
Simulationsprogramm aber 10 Minuten Mittelwerte erwartet) und natürlich um die -
möglicherweise komprimierten - Daten in beliebiger Darstellung ausgeben zu können.
Damit existieren Software-Bausteine, die vom Anwender mit Hilfe einer Konfigurationsdatei
nach seinen Erfordernissen geeignet zusammen geschaltet werden können - also eine Programmmierer-Schnittstelle.
Der nächste Schritt wäre die Entwicklung einer graphischen Benutzeroberfläche, damit
keine Programmierkenntnisse zur Nutzung der hier zur Verfügung stehenden Funktionen mehr
notwendig sind. Leider standen hierfür bisher keine Mittel zur Verfügung.
|
| Programmiersprache(n) |
Tcl |
|
| Projekt |
Programm zum Software-Update (Flash) diverser Steuergeräte eines Herstellers über RS
232, RS 485, RS 485 Bus oder Modem unter Benutzung des HDLC-Protokolls (Windows) |
| Beschreibung |
Anforderungen
- Es sollten beliebig viele Schnittstellen eines Typs unterstützt werden (immerhin
unterstützen intelligente serielle Zusatzkarten bis zu 64 Schnittstellen).
- Bei Benutzung eines bus-fähigen Mediums sollten dort beliebig viele Endgeräte
angeschlossen sein können.
- Die Software sollte so strukturiert sein, dass die Benutzung eines weiteren Mediums (z.B
CAN-Bus) leicht realisiert werden kann und sich nahtlos in die bestehende Oberfläche
einpassen lässt.
- Die Kernfunktionalität sollte als DLL zur Verfügung stehen, damit sie auch von anderen
Programmen genutzt werden konnte.
- Auch die Implementierung der Kommunikationsfunktionen der Endgeräte (x86 Clones)
gehörte zum Lieferumfang.
Der Zufall wollte es, dass ich noch den Artikel Virtuality von Herb
Sutter (C/C++ User's Journal September 2001) in Erinnerung hatte. Dort ging es um die
Frage, wie das Interface von C++ Klassen unter verschiedenen Randbedingungen aussehen
sollte, und das passte hier einfach auf das Problem, einheitliche Schnittstellen
für ganz unterschiedliche Kommunikationsmedien zur Verfügung zu stellen (und damit auch
(3) zu ermöglichen).
|
| Programmiersprache(n) |
C++ für alle Windows-spezifischen Teile, C für die Low-Level Funktionen der Kommunikation, die auch in den Endgeräten benutzt werden sollten und Tcl zur Realisierung eines Batch-Betriebs (durch Entwicklung einer einfachen "Sprache"). |
|
| Projekt |
Grossküchengeräte-Controller auf Basis eines PIC 16C74A |
| Beschreibung |
Implementierung der Funktionalität 12 verschiedener Geräte (von Kochkessel bis
schwenkbarer Bratpfanne)
Bedienung/Anzeige lokal / Monitoring durch Leitsystem (RS 485-Bus) / Steuerung remote
durch Leitsystem.
Besonderheit: Es war kein Emulator verfügbar und der Compiler schien mitunter
fehlerhaften Code zu produzieren - eine echte Herausforderung. |
| Programmiersprache(n) |
C |
|
| Projekt |
Software-Entwicklung für eine neuentwickelte EIB-Komponente |
| Beschreibung |
Im Rahmen eines Folgeprojekts zu "Standardisierung der Datenkommunikation ..." (s.u.) wurde eine Baugruppe entwickelt, die als Bindeglied zwischen Geräten wie Wechselrichter, Dieselgenerator, u.ä. und dem EIB diente. Das Ziel war, in grösseren Photovoltaik-Anlagen die einzelnen Geräte mittels EIB zu vernetzen, um Datenabfragen und Schaltvorgänge zu ermöglichen.
Baugruppe und Software wurden zwar fertiggestellt, aber das Interesse der Industrie an dieser Lösung war gering.
|
|
| Projekt |
Portierung eines DOS-Programms zur Fernabfrage von Messstellen nach Windows 95 /
Windows NT und Visualisierung der Online-Messwerte. Anforderungen: Auswahl der Standorte
via Landkarte, Parallelbetrieb mehrerer Modems zur gleichzeitigen Darstellung mehrerer
Messstellen, Ersatz des (Assembler-) Treibers, der das Protokoll (DIN 19244)
implementierte |
| Beschreibung |
Delphi für die Oberfläche, C++ für die serielle Kommunikation (dabei
Zustandsprogrammierung für die Implementierung des Protokolls) |
|
| Projekt |
Portierung eines Windows-Programms von 16 nach 32 Bit |
| Beschreibung |
Anforderungen: Der Quellcode bestand aus Delphi, C++ und FORTRAN Modulen,
Funktionsaufrufe gab es in alle denkbaren Richtungen.
Besonderheit: Der FORTRAN-Compiler war leider nicht im Hause verfügbar. |
|
| Projekt |
Standardisierung der Datenkommunikation bestimmter Komponenten auf Basis des EIB |
| Arbeiten |
Zusammenfassung des bisher erarbeiteten Diskussionsstands zu einer Diskussionsvorlage,
die sich an die Teilnehmer eines Industrie-Arbeitskreises richtete, Diskussion der Vorlage
mit einigen Industrievertretern, Überarbeitung der Vorlage, Präsentation der Ergebnisse
auf einer Sitzung des Arbeitskreises. |
|
| Projekt |
Referenzimplementierung eines proprietären seriellen Protokolls Zielsetzung: Dieses
Programm simuliert einen "Slave" (hinsichtlich der Kommunikation) und dient als
Referenz gegenüber zukünftigen Geräten (auch anderer Hersteller).
Zusatzanforderung: Das Programm sollte als Echtzeit-Anwendung ausgelegt sein, damit der
Kommunikationsteil unverändert in das Endgerät (ein "Embedded PC") übernommen
werden kann. |
| Beschreibung |
C, MS DOS |
|
| Projekt |
Das leidige Jahr-2000-Problem (Oder: Warum sollte ausgerechnet ich davon verschont
bleiben?) Ein Datenlogger liefert die Jahreszahl zwar korrekt, aber zweistellig. Die
Datenbank, in der die Daten letztendlich landen sollen, arbeitet mittlerweile mit
vierstelligen Jahreszahlen. Ausserdem gibt es Sekundär-Programme, die
"zwischen" Datenlogger und Datenbank angesiedelt sind und ihrerseits bestimmte
Dateien erzeugen. Sie müssen ebenfalls angepasst werden.
Schlussendlich sind noch alle bisher erzeugten (ASCII-) Dateien auf das neue -
vierstellige - Format umzustellen. |
| Beschreibung |
C, Pascal |