Een systeem resetten, zodat het een paar minuten niet beschikbaar is, wordt in de meeste kantooromgevingen als vervelend, maar acceptabel ervaren. Voor een schip dat ’s nachts de haven binnenvaart zou dat een gevaarlijke situatie opleveren. Betrouwbaarheid is daar de eerste vereiste.
Het Nederlandse bedrijf Free Technics, wereldwijd leverancier van systemen voor scheepsnavigatie, bereikt betrouwbaarheid door de software op gezette tijden radicaal opnieuw te ontwerpen. Vier gekoppelde beeldschermen telt de proefopstelling van Free Technics in Hazerswoude/Rijndijk, vol analoge metertjes van het type dat in de auto de snelheid of het toerental aangeeft. Die look and feel van de ouderwetse scheepsbrug is niet zomaar een gimmick. Anders dan met digitale weergave of grafiekjes zie je direct of er iets mis is. Staat een van de wijzer in de linkerhelft, dan vraagt hij gegarandeerd om aandacht. Bij normaal gebruik staan de meeste weergaves namelijk op tien over twaalf.
"Die aandacht voor ontwerpen heeft verder niemand", zegt Wim van Rij, directeur van Free Technics, trots, terwijl hij laat zien hoe de gebruiker zelf kan bepalen welke gegevens op de metertjes getoond worden. Op de plattegrond van een schip kan de gebruiker bijvoorbeeld aangeven welke sensoren geïnstalleerd zijn en of er problemen opduiken.
Hoezeer de interface ook een ‘unique selling point' is, de kernactiviteit van Free Technics is uiteraard het realtime betrouwbaar verwerken van 500 tot 15000 signalen. Het bedrijf levert vooral aan jachtbouwers, maar er zijn ook baggerschepen en zelfs olieplatforms uitgerust met de software van Free Technics, die FT NavVision heet. In zekere zin is de software vergelijkbaar met die voor vliegtuigen, al zijn de veiligheidseisen daar nog een tandje scherper.
De expertise met navigatie- en controlesystemen voor schepen brengt het bedrijf ook in bij het superbusproject van Wubbo Ockels. Deze bus zou over speciale banen met 250 kilometer per uur moeten rijden, met als groot voordeel boven de trein dat je aan het gewone verkeer kunt deelnemen, dus minder kwetsbaar bent voor typische spooreuvels als wisselstoringen. Tot de vele hulpmiddelen behoort een radarsysteem, dat de chauffeur bij topsnelheden moet helpen botsingen te voorkomen. "Als je vijftig keer per seconde samplet, is de bus bij topsnelheid iedere keer alweer drie meter verder", vat Van Rij de uitdaging samen. Hij ziet overigens geen onoverkomelijke problemen.
Taboe
"Toen we vijftien jaar geleden begonnen, gebruikten de meeste fabrikanten een scada-systeem (supervisory control and data acquisition – red.) of een combinatie van scada, eigen hardware en software", vertelt Van Rij. Scada zorgt voor het verzamelen, doorsturen, verwerken, visualiseren voor de menselijke operator van meet- en regelsignalen voor machines in grote industriële systemen, en dus weer de aansturing daarvan. "Wij vonden dat een verkeerde insteek en hebben gekozen voor marktconforme hardware: pc's, in combinatie met ethernet."
Die hardware is tegenwoordig zo betrouwbaar dat het falen ervan geen werkelijke bedreiging vormt, zolang alles maar dubbel is uitgevoerd. Op snellere schepen zijn, vanwege het golfgeweld, harde schijven taboe. In plaats daarvan worden flash- of solid-state-geheugens gebruikt. Falende software is echter iets waar terdege rekening mee gehouden dient te worden.
Van Rij: "Onze software is eigenlijk onafhankelijk gemaakt van het besturingssysteem. We programmeren het in C++, zonder programmeertools. Die vergroten de afhankelijkheid, maar ze werken bovendien nadelig op de performance. Vanwege die performance doen we de grafische programmering zelfs in machinetaal. Het is dus echt op de bit en byte programmeren. En dat honderdduizenden regels code lang."
Dat prestatieniveau verklaart ook de keuze voor ethernet, zegt Van Rij. "Met scada krijg je nooit de vloeiende beweging op de schermen zoals wij die hebben. Andere fabrikanten kiezen bijvoorbeeld voor can-bus, maar dat is een systeem met veel overhead. Als je vele duizenden i/o's hebt, loopt dat vast."
De software is multithreaded geprogrammeerd, zodat één vastlopend proces niet het hele systeem in de wachtstand kan zetten. Het actieve systeem zorgt er bovendien voor dat het vastgelopen proces vanzelf weer opstart. Ook tijdens het installeren en configureren van modules draait het systeem gewoon door en is het realtime te configureren. Her-starten is niet nodig. Alle processen worden realtime gemonitord en gelogd, zodat op ieder moment duidelijk is welk proces welke resources gebruikt.
Hoge eisen
"Een schip stopt niet, mocht het systeem vastlopen", stelt Van Rij nuchter vast. "Wanneer je net de haven binnenvaart, moet het systeem dus koste wat het kost beschikbaar zijn. Als het uitvalt, moet je binnen luttele seconden weer verder kunnen. Dat wordt ook getest. Keurders van Lloyds en Bureau Veritas eisen dat het geen chaos is in softwareland. Als die komen controleren, trekken ze zelfs de stekkers uit het stopcontact. Dan moet het systeem blijven draaien op noodvoorziening."
De hoge eisen aan de code worden gegarandeerd door een strenge ontwikkeldiscipline van de software. "Na een jaar ontwikkelen hebben we in het begin alle toen geschreven code weggegooid", vertelt Van Rij. "Later hebben we dat nog een keer gedaan, en onlangs hebben we onze hele netwerkmodule herschreven. Als je nieuwe inzichten hebt over de opzet van de software, moet je radicaal zijn en opnieuw beginnen. Wanneer je gaat proberen de bestaande software te repareren, zoals veel ontwikkelaars doen, krijg je een kind met een waterhoofd. Jaren later loop je dan alsnog vast."
Kostbaar, maar lonend
Het is een kostbare manier van werken, geeft Van Rij toe, maar volgens hem de enige juiste voor wie betrouwbare, goed presterende software wil. "Het is een lange, moeizame weg geweest, want de investeringen waren groot, maar lonend is het wel. We zien de concurrenten komen en gaan. Zelf zijn we de afgelopen vijf jaar uitgegroeid tot een bedrijf dat in twintig landen vertegenwoordigd is en we zien de toekomst met zeer veel vertrouwen tegemoet."