Unit-Test Instrumentierung für Präzisions-Drehwinkelgeber nach SIL

Kategorie Embedded Softwareentwicklung
Firma Hengstler GmbH
Schwerpunkt Unit-Tests als Voraussetzung für SIL Zertifizierung für
magnetisch-optischen Präzisions-Drehwinkelgeber nach SIL.
Zeitraum Q3 2014 bis Q3 2015
Team 2-3 Mann
Beschreibung Beim ACURO-Savety AS37 handelt es sich um einen neu entwickelten magnetisch-optischen Drehwinkelgeber von hoher Präzision. Von Seiten des Kunden wurde eine Zertifizierung nach Sicherheits-Integrationslevel (SIL) 2 (später 3) angestrebt. Der hierfür erforderliche Nachweis von Unit-Tests wurde von uns ge-währleistet. Aufgrund der speziellen Rahmenbedingungen wurde in Abstimmung mit dem Kunden und dem TÜV entschieden die Tests On-Line durchzuführen. Das heißt, dass die funktionalen Tests direkt auf dem Zielgerät (Target) ausgeführt werden. Dies war eine große Herausforderung und stellte einen erheblichen Mehraufwand dar.
Zunächst wurde in Zusammenarbeit mit dem Kunden ein Unit-Test-Framework entwickelt. Dadurch war es in einem speziellen Modus möglich Testparameter und Ergebnisse über den S4Wire Bus zu versenden.
Anschließend erfolgte die Testinstrumentierung jeder einzelnen Funktion. Dabei wurden die Funktionen durch gekapselte Testblöcke erweitert. Diese dienten zur Bereitstellung der Eingangsparameter von der Testumgebung zu Beginn der Funktion und dem Auslesen der Ergebniswerte am Ende der Funktion. Vorhandene Funktionsaufrufe innerhalb der Funktion mussten dabei durch sog. Stubs (Dummies) ersetzt werden. Gleiches galt für die Abfrage von Ports, Prozessor-register und anderer nicht von außen beeinflussbarer Parameter.
Gleichzeitig mit der Instrumentierung erfolgte auch das Definieren der Testfälle, d.h. das Festlegen der Eingangsparameter und der zu erwartenden Ergebnisse. Durch eine Erweiterung des Test-Frameworks wurde es außerdem ermöglicht, zusammen mit den Tests auch das vollständige Durchlaufen aller Funktionspfade zu dokumentieren.
Parallel dazu erfolgte die Entwicklung eines Test-Tools (PC-Programm) für den automatisierten Testablauf (Start und Überwachung der Tests, Auslesen und Protokollierung der Ergebnisse).
Die Umsetzung erfolgte in der Programmiersprache C (Firmware) und C# (PC-Programm).
Für die Definition der Testfälle war eine umfassende Einarbeitung in die physikalischen Grundlagen, sowie die verwendeten Algorithmen und Protokolle erforderlich.
Tools und Technologien Target basiertes Unit-Testing
dsPIC33 Programmierung
XC16-Compiler
MPLAB IDE von Microchip
ICD-3 Debugger
Git