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 aktive LIN-Konfiguration zur Laufzeit dynamisch ändern zu können um flexibel verschiedene LIN-Teilnehmer für Prüfläufe zu nutzen.
Die zeitkritische LIN-Kommunikation läuft hierbei in der Prüfstandssteuerung (Beckhoff TwinCAT 3) und arbeitet eine vom Leitrechner definierte 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 und Generierung der Schedule-Table, den Zugriff und die Veränderung von Werten sowie einen Abstraktion des Datenzugriffes auf die Daten der LIN-Teilnehmer inklusive der korrekten Skalierung und Umwandlung in physikalische 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 stets auf die gleiche Weise angesprochen werden können. Dies verringert signifikant die Konfigurationsaufwände bei Umrüstungen oder bei 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. Ein Modul zum dynamischen Parsen von LDF-Dateien zur Laufzeit ist hierbei bereits vorgesehen.
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 zusätzlich ein automatisches Deployment des jeweils aktuellen Softwarestandes im realen Prüfstand erlaubt, sofern gewünscht.