Für einen Kunden entwickelten wir einen flexiblen LIN-Master zur Anbindung verschiedener LIN-Teilnehmer an Prüfstände in der Automobilindustrie. Das Hauptziel war hierbei, die LIN-Konfiguration zur Laufzeit einfach ändern zu können um flexibel verschiedene LIN-Teilnehmer für Prüfläufe nutzen zu können.
Die zeitkritische LIN-Kommunikation läuft hierbei in der Prüfstandssteuerung (Beckhoff TwinCAT 3) und arbeitet eine vom Leitrechner definierte und übergebene Schedule-Table ab. Hierdurch wurde die Performance der LIN-Implementierung gegenüber der früher eingesetzten Lösung signifikant verbessert und die Betriebssicherheit erhöht. Die physische Kommunikation wird über eine serielle Schnittstellenklemme sowie einen - ebenfalls im Rahmen des Projektes entwickelten - LIN-Signalkonverter realisiert.
Das zugehörige C#-Modul zur Integration in die Leitrechnersoftware übernimmt die Konfiguration der Schedule-Table, den Zugriff und die Veränderung von Werten sowie einen einheitlichen Zugriff auf die Daten der LIN-Teilnehmer inklusive der korrekten Skalierung und Umwandlung in physische Einheiten.
Das zu Grunde liegende Datenmodell orientiert sich an den in der Praxis eingesetzten LDF-Files zur Beschreibung eines LIN-Netzwerkes und erlaubt eine vollständige Abbildung des Netzwerks in Software. So können Prüfaufbauten mit neuen LIN-Teilnehmern sehr schnell umgesetzt werden. Die Implementierung ist dabei nicht auf einzelne Teilnehmer oder ein vordefiniertes LIN-Netzwerk beschränkt.
Zudem lassen sich "virtuelle Signale" definieren, welche ein flexibles Mapping von LIN-Datenpunkten erlauben. Dies erlaubt die Verwendung identischer Signale (z.B. ein Temperatur-Istwert) bei unterschiedlichen LIN-Teilnehmern, sodass diese auf die gleiche Weise angesprochen werden können. Dies verringert signifikant die Konfigurationsaufwände bei Umrüstungen oder der Integration neuer Geräte und spart somit nicht nur Zeit sondern reduziert auch mögliche Fehlerquellen.
Die gesamte Software ist stark modular aufgebaut und somit einfach erweiterbar, beispielsweise um ein Modul zum dynamischen Parsen von LDF-Dateien zur Laufzeit. Sämtliche Funktionalitäten wurden mittels Test-Driven-Development entwickelt, sodass stets ein Nachweis der korrekten Funktion möglich ist. Dazu wurde auch eine vollständige DevOps-Pipeline in Azure aufgesetzt, welche auch ein automatisches Deployment im realen Prüfstand erlaubt, sofern notwendig.


