Bör felstyrda fallstrukturer användas i varje VI?
Av Andrei Zagorodni
Den mest använda VI-mallen är förmodligen SubVI med felhantering.
Det kan ses överallt, från nybörjarens två-VI-program till de mest komplicerade programvarorna. Men är det så nödvändigt som vi tror?
En fallstruktur används om olika kod ska exekveras beroende på det värde som anges i fallväljaren. En felstyrd fallstruktur gör det möjligt att exekvera olika kod beroende på om det finns ett fel eller inte:
I de flesta fall lämnas dock felfallet tomt. Syftet med en sådan fallstruktur är alltså att hoppa över exekveringen av koden.
Vad händer om vi tar bort fallstrukturen?
Förmodligen händer ingenting eftersom varje subVI har sin egen feldrivna fallstruktur. Även om så inte är fallet kan det förmodligen inte skada att försöka köra.
Vad gör fallstrukturen om det inte är någon fara med att utföra SUB1, SUB2 och SUB3? Den påskyndar bara exekveringen om ett fel inträffar. Men hur ofta bryr vi oss om exekveringshastigheten om programmet körs i ett feltillstånd?
Onödig användning av feldrivna fallstrukturer optimerar exekveringen i feltillstånd och de-optimerar exekveringen i normaltillstånd. Är det här vad vi vill göra?
Felstyrda fallstrukturer är dock mycket praktiska i felsökningsprocessen. Låt oss sätta vår VI i en loop:
Låt oss anta att en av subVI:erna (SUB1, SUB2 eller SUB3) startar ett fel. Vilket av dem? Detta kan besvaras genom att slå på Retain Wire Values och köra programmet.
Ett fel som genereras i en tidigare iteration kommer dock att fortplanta sig till nästa iteration, vilket gör att bibehållna värden blir värdelösa.
Men om det rör sig om en feldriven ärendestruktur kan den felorsakande subVI:n lätt identifieras:
Slutsatser: Tänk igenom effekten av att använda en feldriven ärendestruktur och använd den bara om det är nödvändigt.
Ta bort några av de feldrivna fallstrukturerna efter felsökning om de inte behövs.