Für einen namhaften Hersteller von Medizintechnik-Geräten hat die redlogix Software & System Engineering GmbH neben einem HiL-Testsystem eine SiL-Umgebung (HiL = hardware in the loop, SiL = software in the loop) für ein Dialysegerät realisiert, innerhalb derer sich sowohl die Software einzelner Elektronikbaugruppen als auch des Gerätes als Ganzes auf Entwicklungsrechnern mit Windows bzw. Linux betreiben lässt. Mit der SiL-Umgebung lässt sich die Software weiterentwickeln und es ist möglich, automatisierte Tests ohne Einsatz der Zielhardware zu implementieren. Ein interessanter Vorteil dieses Ansatzes ist die Möglichkeit, das System in bestimmten Testphasen schneller oder langsamer laufen zu lassen als beim Betrieb am integrierten Zielsystem. Dadurch werden insbesondere die am echten System sehr langen Rüstzeiten erheblich verkürzt, was die Testentwicklung deutlich beschleunigt.
Eingesetzte Technologien und Entwicklungswerkzeuge
- C und C++
- Python
- STL
- Framework SWIG
- CAN
- Socket-Kommunikation
- Multithreading und Interprozesskommunikation
- PXI-Komponenten (von National Instruments und Pickering)
Software in the Loop-Umgebung
Zum Betrieb der im Zielsystem auf unterschiedlichen Mikrocontrollern mehrerer Baugruppen verteilten Embedded Software innerhalb der SiL-Umgebung wird lediglich die Low-Level-Treiberschicht durch SiL-Treiber ersetzt. Auf diese Weise kann der für die Zielsysteme entwickelte Quellcode ohne weitere Modifikationen innerhalb der SiL-Umgebung auf den Entwicklungsrechnern übersetzt und ausgeführt werden. Die im Zielsystem über CAN und UART stattfindende Kommunikation zwischen den Einzelbaugruppen wird in der SiL-Umgebung durch Socket-Kommunikation nachgebildet.
Eine besondere Herausforderung bei der Umsetzung war, dass die Embedded-Software bereits seit mehreren Jahren im Produktivbetrieb eingesetzt wird und nicht von vornherein für den Betrieb auf einer anderen Plattform oder in einer SiL-Umgebung ausgelegt war. Da die Software bereits nach der Medizintechnik-Norm in Europa zugelassen ist, musste nachgewiesen werden, dass der Binärcode auf der Zielplattform durch die notwendigen Quellcodeänderungen bei der Einführung der Hardwareabstraktionsschicht nicht geändert wurde. Nur so konnte eine vollständige Neuzulassung vermieden werden.
Eine weitere sehr wichtige Projektanforderung war die Kompatibilität der durch die SiL-Umgebung bereitgestellten Ausführungsumgebung für automatisierte Tests mit der Testschnittstelle der parallel entwickelten HiL-Testumgebung. Dadurch ist es möglich, die HiL-Testskripte innerhalb der SiL-Umgebung zu implementieren und zu prüfen, was aufgrund der bereits erwähnten Möglichkeit das System innerhalb der SiL-Umgebung im Zeitraffer zu betreiben sehr viel weniger Zeit in Anspruch nimmt. Zur Implementierung der automatisierten Tests kommt die Programmiersprache Python zum Einsatz.
Unser Kunde hat sich nicht zuletzt deshalb für die Zusammenarbeit mit uns entschieden, weil wir durch den von uns entwickelten redBlocks-Simulator langjährige Erfahrung in der Entwicklung von SiL-Simulationsumgebungen für Embedded Softwareanwendungen besitzen.
Hardware in the Loop-Testsystem
Im Rahmen dieses Projektes hat redlogix außer der SiL-Simulationsumgebung auch das HiL-Testsystem für eine Baugruppe zur Messung der extrakorporalen Bluttemperatur innerhalb der Dialysemaschine konzipiert, realisiert und für die Softwareverifikation eingesetzt. Dazu wurden zunächst die Anforderungen an das HiL-Testsystem ermittelt, um die externen und zum Teil internen Schnittstellen der zu testenden Baugruppe prüfen zu können. Anschließend wurde das HiL-Testsystem mit PXI-Komponenten von National Instruments und Pickering (Controller, Multi-IO-Karten, Widerstandssimulatoren, CAN-Interface) realisiert. Neben dem Aufbau der Testhardware wurden die erforderlichen Softwaretreiber für die Komponenten in eine selbst entwickelte und mit C++ und Python implementierte Testumgebung integriert und mit Hilfe des Frameworks SWIG die zugehörige Python-API generiert.
Auf Basis der Software-Anforderungen an die Baugruppe wurden Testszenarien definiert und vollautomatisierte Testfälle mit Hilfe der SiL-Umgebung implementiert. Diese wurden benutzt, um die Software der zu prüfenden Baugruppe in der HiL-Umgebung zu verifizieren.
Formale Verifikation
Für die Neuzulassung des Geräts auf dem US-Amerikanischen Markt hat redlogix im Auftrag des Kunden wesentliche formale Verifikationsarbeiten nach den Entwicklungsprozessen des Kunden übernommen, die konform zu den Vorgaben der FDA sind:
- Formale Definition und Verifikation funktionaler und nichtfunktionaler Anforderungen
- Reviews an bestehendem und neu entwickeltem Quellcode
- Formaler Nachweis der Binärgleichheit nach Einführung einer für die SiL-Umgebung benötigten Hardwareabstraktionsschicht
- Unit-Tests
- Testspezifikation, Implementierung automatisierter Systemtests und Durchführung manueller Systemtests