Wat is het VI-bestandsformaat?
Bestanden met de extensie .vi behoren tot de categorie virtuele instrumentbestanden, gebruikt binnen de LabVIEW-programmeeromgeving ontwikkeld door National Instruments (nu NI, onderdeel van Emerson).
Wat bevatten .vi-bestanden?
Een .vi-bestand slaat een virtueel instrument op - een applicatie die de werking van echte laboratoriumapparatuur simuleert, zoals een multimeter of een oscilloscoop. Elk bestand bevat twee hoofdsecties: een grafische bron geschreven in de G-taal (LabVIEW's dataflow-programmeertaal) en de gecompileerde uitvoerbare versie ervan. Binnen de grafische sectie vindt u:
- gebruikersinterface (het frontpaneel)
- blokdiagram, dat de G-taal brondraden en knooppunten bevat
- dataruimte
- connectorpaneel
- pictogram dat wordt gebruikt om het instrument weer te geven wanneer het als een SubVI in een ander blokdiagram wordt geplaatst
De gecompileerde code die in de tweede sectie is opgeslagen, stelt het virtuele instrument in staat om binnen de LabVIEW-omgeving te draaien zonder een aparte build-stap.
Waar worden .vi-bestanden voor gebruikt?
Virtuele instrumenten laten ingenieurs onderzoek en metingen uitvoeren zonder de geanalyseerde systemen fysiek te hoeven bouwen. Sinds de introductie van LabVIEW in 1986 - oorspronkelijk op Apple Macintosh - zijn VI's ingezet in de industrie, de academische wereld en geavanceerde R&D-projecten, waaronder werk van NASA. VI's kunnen in elkaar worden genest als SubVI's, wat modulaire, herbruikbare instrumentontwerpen mogelijk maakt.
Kan ik mijn eigen .vi-bestanden maken?
De LabVIEW-omgeving maakt de visuele creatie van nieuwe of wijziging van bestaande virtuele instrumenten mogelijk. Wanneer u het blokdiagram of frontpaneel bewerkt, hercompileert LabVIEW automatisch de G-taalbron en slaat de bijgewerkte gecompileerde code weer op in hetzelfde .vi-bestand, zodat het instrument onmiddellijk klaar is voor gebruik.
Intern gebruiken .vi-bestanden NI's eigen binaire Resource Container-formaat (magic bytes 52 53 52 43 0D 0A - RSRC\r\n - op bestandsoffset 0), afgeleid van de Mac OS Resource Fork die werd gebruikt in de oorspronkelijke Mac-only jaren van LabVIEW (1986-1992). Het formaat is niet voorwaarts compatibel: een .vi opgeslagen in een nieuwere LabVIEW-versie kan niet worden geopend in een oudere. Gerelateerde formaten zijn onder meer .vit (VI Template), .ctl (custom control) en .lvproj (LabVIEW-project).
Beveiliging & veiligheid
RISICO: MEDIUMVI-bestanden kunnen gecompileerde uitvoerbare code bevatten die op de hostmachine draait. Een kwaadaardige VI zou bestanden kunnen lezen/schrijven, via het netwerk kunnen communiceren of hardware kunnen aansturen. Open alleen VI's van vertrouwde bronnen. NI-instrumentdrivers van NI's officiële Instrument Driver Network zijn veilig; VI's van derden moeten in het blokdiagram van LabVIEW worden gecontroleerd voordat ze worden uitgevoerd.
Formaatdetails
in een notendop- Unix vi editor herstelbestand - Sommige Unix-systemen gebruiken .vi als herstel-/swapbestanden voor de vi-teksteditor, volledig ongerelateerd aan LabVIEW.
Programma's die VI-bestanden openen
Technische details
diepe specificaties| Binaire handtekening | 52 53 52 43 0D 0A („RSRC\r\n”) op bestandsoffset 0 - Resource Container header |
| Containerformaat | NI Resource Container (eigendomsrechtelijk; gemodelleerd naar Mac OS Resource Fork) |
| Byte-volgorde | Big-endian |
| Codering | Binair |
| Compressie | Standaard geen; individuele datablokken kunnen zlib gebruiken in LabVIEW 2021+ |
| Typische bestandsgrootte | 10 KB - 50 MB (afhankelijk van gecompileerde code, ingebedde SubVI's en pictogramgegevens) |
| Belangrijkste chunk-types | BDPW (blokdiagram), FPHP (frontpaneel), VCTP (connectorpaneel), CONP (gecompileerde code), ICON (VI-pictogram) |
| Containerversie | Resource Container v3 (huidig, sinds ~LabVIEW 8.x); v2 in eerdere versies |
| Compatibiliteit tussen versies | Niet voorwaarts compatibel - .vi opgeslagen in een nieuwere LabVIEW-versie kan niet worden geopend in een oudere; Mass Compile vereist na upgrade |
| Wachtwoordbeveiliging | Beschikbaar via VI Properties voor het vergrendelen van frontpaneel en blokdiagram; geen cryptografische versleuteling |
| Integriteitscontrole | Op CRC gebaseerde controles op resourceblokken; bestand wordt geweigerd bij laden als het corrupt is |
| SubVI-ondersteuning | VI's kunnen als SubVI's in andere VI's worden genest, wat een modulair instrumentontwerp mogelijk maakt |
| MIME-type | application/x-labview-vi |
| OS-ondersteuning | Windows, macOS, Linux |
| Uitgebracht | 1986 (LabVIEW 1.0 for Mac) |
| Laatste versie | Resource Container version 3 (as of LabVIEW 2021+) |
| Specificatie | labviewwiki.org |