Alexander Pil
14 September 2007

National Instruments heeft versie 8.5 gelanceerd van zijn grafische ontwikkelomgeving Labview. Belangrijkste update is dat NI het pakket geschikt heeft gemaakt voor het ontwerpen voor multicoresystemen. Verder beschikken gebruikers nu over toestandsdiagrammen om hun code te genereren.

’De wereld is parallel. We doen altijd meerdere dingen tegelijk zoals lopen over straat en kauwgom kauwen‘, zei NI-medeoprichter en Labview-uitvinder Jeff Kodosky bij de lancering van versie 8.5 op de NI Week. ’Waarom zouden we onszelf dan beperken tot sequentieel denken als we computerprogramma‘s schrijven. Waar de rest van de industrie worstelt om grip te krijgen op multicoremachines, kunnen jullie als Labview-programmeurs op dezelfde voet verder gaan en toch de vruchten plukken van multicore.‘

Het is inderdaad geen sinecure om software te schrijven voor multicoresystemen. Om volledig te profiteren van de parallelle rekenkracht moeten de threads goed zijn georganiseerd. Essentieel is dat de aanvoerlijnen voor de verschillende processorkernen op elkaar zijn afgestemd. Labview Real-Time biedt die mogelijkheid, zegt NI. Die module is gebouwd op het realtime besturingssysteem Pharlab. NI heeft dit aangepast zodat het als een van de weinige RTOS‘en overweg kan met symmetrische multicore processing (SMP).

’Noem het een vooruitziende blik, maar Labview-gebruikers programmeren al sinds 1998 automatisch voor multithreadapplicaties‘, zegt Remco Krul van NI Nederland. ’Daar profiteren gebruikers nu van als ze ontwikkelen voor multicoresystemen.‘ Het bedrijf heeft Labview uitgebreid met een realtime load balancer voor het verdelen van de processorbelasting om realtime SMP te kunnen realiseren. Deze load balancer wijst automatisch de taken toe aan de verschillende processorkernen. Concessies aan het deterministisch gedrag of codewijzigingen zijn niet nodig. De grootte van de verbeteringen hangt vanzelfsprekend af van de applicatie maar NI toonde tijdens zijn perstour een voorbeeld waar de dualcore-versie 40 procent sneller was dan een enkele kern. NI-topman James Truchard demonstreerde bij de introductie van Labview 8.5 een spectaculairder voorbeeld. Onderzoekers van het Max Planck-instituut voor plasmafysica in München schakelde over van een enkele CPU naar een multicoreprocessor met acht kernen. De Duitsers versnelden de verwerkingstijd met een factor twintig, mede door het gebruik van Labview 8.5.

 advertorial 

The waves of Agile

Derk-Jan de Grood has created a rich source of knowledge for Agile coaches and leaders. With practical tips to create a learning organization that delivers quality solutions with business value. Order The waves of Agile here.

TTUIT20Labview

Met Labview 8.5 zijn de threads handmatig over de rekenkernen te verdelen. De eerste core kan bijvoorbeeld gereserveerd worden voor het tijdkritische proces. Dat kan heel wat tijdwinst opleveren.

Met de nieuwe release is het ook mogelijk om threads handmatig toe te wijzen aan een van de rekenkernen. Zo kun je er bijvoorbeeld voor kiezen om het tijdkritische proces door de eerste core te laten verwerken en de andere threads door de tweede core. Krul: ’Je kunt bijvoorbeeld de data-acquisitie koppelen aan de ene CPU en de verwerking en logging aan de andere. Zo voorkom je dat je data verliest omdat de core bezig is met het genereren van documentatie, wat best even in de wacht had kunnen staan.‘ De Real-Time Execution Trace Toolkit biedt hiervoor de nodige handvatten. Terwijl de code draait, geeft dit pakket precies aan welke core welke thread uitvoert en hoeveel milliseconden dat kost. Zo komen problemen makkelijk boven water en is bovendien de stroom threads te optimaliseren door de toewijzing aan te passen.

Toestandsdiagrammen

De tweede interessante toevoeging aan Labview 8.5 is de Statechart Module. Hiermee brengt National Instruments het abstractieniveau van programmeren weer een stapje hoger. Gebruikers kunnen nu software bouwen door hun systeem in toestandsdiagrammen te beschrijven. Volgens NI raakt deze beschrijvingswijze steeds meer in zwang, vooral bij het ontwerp van digitale communicatieprotocollen, machinebesturing en systeembeveiliging waar wordt gemodelleerd met gebeurtenissen en de reacties daarop. De overgangen tussen de verschillende toestanden zijn te configureren via triggers of andere condities.

National Instruments heeft ook de Labview FPGA-module geüpdatet. Hiermee kunnen gebruikers FPGA-gebaseerde I/O definiëren zonder dat ze verstand hoeven te hebben van hardwaredesign, Verilog of VHDL. Met de module is het mogelijk om Labview-diagrammen direct te draaien op een FPGA. Volgens NI is de Labview-taal zeer geschikt voor het programmeren van de herconfigureerbare logica omdat het opties bevat om de dataflow, parallel programmeren en pipelining te visualiseren en te implementeren. Nieuw is de FPGA Project Wizard en de mogelijkheid tot automatisch genereren van logica en code, zoals analoge en digitale metingen met direct memory access (DMA). Dat leidt tot snellere dataoverdracht.

Mechatronica

Labview voelt zich ook thuis in een mechatronische omgeving. Ingenieurs en wetenschappers kunnen industriële systemen op basis van PLC‘s integreren met geavanceerdere programmeerbare controllers (PAC‘s). Zo is snelle I/O en complexe controlelogica toe te voegen. Labview 8.5 bevat een scala aan I/O en meet- en displayverbeteringen voor het bouwen van PAC-systemen. Een nieuwe bibliotheek met OPC-drivers verdubbelt het aantal beschikbare PLC‘s en industriële devices in vergelijking de vorige versie.

Labview 8.5 bevat verder nieuwe algoritmes voor machinevisie, ordertracking en trillingsanalyse in industriële monitoringsystemen. Voor machines met veel kanalen is er de nieuwe multivariabele editor waarmee gebruikers honderden I/O-tags kunnen configureren en bewerken via een spreadsheetinterface. De labels zijn via drag and drop snel te koppelen aan gebruikersinterfaces op Windows CE-gebaseerde touchpanels en PDA‘s.