Gisteren ben ik aanwezig geweest bij de officiële opening van de motorenproefstand, waaraan ik heb meegewerkt. Hiervoor heb ik voor diverse elektronisch aangestuurde dieselmotoren een Can-bus communicatie protocol opgezet, waardoor de motoren vanuit de controle kamer kunnen worden aangestuurd met een klik van de muis.
Can-bus protocol J1939
Voor groot onderhoud en revisie haalt de klant de complete motoren uit de machines/boten. Om er na de repartie zeker van de zijn dat de motoren in een goede conditie verkeren, wil de klant deze op vermogen getest hebben, voordat ze teruggeplaatst worden. De oude motorproefstand voldeed niet meer aan de eisen en kon de hogere vermogens niet meer aan, aanleiding om een geheel nieuwe motorproefstand te bouwen. Een van de eisen voor de nieuwe proefstand, was een eenvoudige bediening (starten/stoppen en gas geven) voor de diverse motoren. De motoren kunnen mechanisch, elektrisch of via Can-bus communicatie worden aangestuurd. In het laatste geval betreffen het elektronisch geregelde dieselmotoren met een ECU, welke de dieselinspuiting verzorgt. Voordeel van motoren met een ECU; deze hebben al diverse sensoren aan boord voor het aansturen van de actuatoren op de motor, dus deze sensor informatie kunnen we ook uitlezen via de can-bus. Het algemeen bekende Can-bus protocol voor dieselmotoren is J1939. Hierin staan diverse standaarden beschreven die merken van dieselmotoren gebruiken om te communiceren over de Can-bus.
In de oude situatie werd er voor de elektronisch aangestuurde motoren een kopie van het originele aansturingssysteem nagebootst in de testcel. Nadelen hiervan zijn echter: aansturing via een gashandel, geen extra noodstopbeveiligingen, geen live motordata (eventueel via diagnose tool), elke type motor zijn eigen hardware + software. Voor bijvoorbeeld Volvo Penta marine motoren wordt vaak het EVC systeem gebruikt voor aansturing van de motoren, hierin zijn echter diverse generatie en software varianten die niet altijd met elkaar communiceren. Opzetten van dergelijke systemen zou dus veel componenten (duur!) en tijd omvatten. Tijd dus voor een directe oplossing: directe aansturing en uitlezing over de CAN-bus!
Reverse-engineering Can-bus communicatie
Echter is niet elke motor hetzelfde, en zend niet elke motor dezelfde data uit. Tevens is het vaak zo dat er buiten de J1939, nog merk-afhankelijke data/adressen worden gebruikt. Om dit per motor goed uit te zoeken, heb ik met behulp van een CAN-analyse module het can-bus systeem van elk type motor uitgelezen en gelogd. Deze data heb ik via reverse-engineering gelabeld, waarna deze bruikbaar is voor de Horiba hardware en software.
Het heeft enige avonduurtjes in beslag genomen, maar het resultaat mag er zijn! Er is voor diverse type elektronisch aangestuurde motoren een Can-bus communicatie opgezet, en mechanische motoren worden via een actuator aangestuurd. Ook de actuator wordt via Can-bus aangestuurd vanuit de Horiba software ‘Stars’.
Heeft u ook een vraagstuk over Can-bus communicatie of wilt u weten wat de mogelijkheden zijn? Neem dan vrijblijvend contact met me op: info@ddr-projects.nl of 06-42712295