Hallo Achim,
vielen Dank für die Glückwünsche. Es war echt ein ganz toller Tag, hoffentlich bleibts auch so...
Ich werde mal versuchen, Deinen Vorschlag im Programm umzusetzen. Deine Idee schaut gut aus. Melde mich dann wieder. Erstmal viele Grüße und bis später,
marvin
edit: Ich steige durch die Funktion der case-Struktur noch nicht ganz durch...
Hallo Achim,
die case-Struktur liefert mir momentan noch eine Fehlermeldung:
"A Case structure must have a case corresponding to every possible value of the selector. An easy way to fill this requirement is to specify a default case or cases whose selector values include ranges to or from infinity."
Ich habe 3 cases implementiert: 1, 2 und 4 und sie mit den numerischen Konstanten 0, 1 und 2 versehen. Aber wie gesagt verstehe ich die Funktion dieser Struktur nicht richtig und kann deshalb auch nicht den Fehler erkennen.
Gruß marvin
Hi Marvin,
die Struktur braucht einen Default (Standard)-Wert! Rechtsklick auf einen beliebigen Case (oder einen neuen) und "Make this case default" (oder in deutsch...;-))
Sollte hier nämlich ein numerischer Wert eingestellt werden, der nicht definiert ist: Was soll dann passieren? Dann muss eben der Default-Case greifen, bei mir im Beispiel "Case 0" (T_ist in keinem der drei Bereiche enthalten => Boolsches Array überall null => Umwandlung in Zahl = 0).´
Wenn der Temperaturistwert kleiner als 77K und größer als 275K ist (kann ja theoretisch sein, zumindest ist so ein Zahlenwert einstellbar), dann müssen die Aktionen ausgeführt werden, die im Default definiert sind (z.B. Abbruch, Fehlermeldung, andere PID's, usw.). Das musst du in deinem Programm abfangen! Wenn du sicher bist, dass solche Istwerte nicht vorkommen können (z.B. weil der Messbereich schon in den Grenzen liegt), dann kannst du auch einen beliebigen der drei Fälle als Default definieren, eben weil andere Werte nie vorkommen.
Naja, irgendwie wirst du meine wirren Gedanken schon durchsteigen ;-)
Gruss
Achim
PS: Folgende Varianten für Belegungen sind im Case möglich, dh. manuell oben eingebbar:
..3 => Case behandelt alle Werte von -Unendlich bis 3
3.. => Case von 3 bis +Unendlich
3..6 => Case von 3 bis 6
3 => Nur "3" wird behandelt
3, Default: "3" und alle nicht weiter definierten Werte werden verarbeitet
Default: Alle nicht definierten Werte werden verarbeitet
Hallo Achim,
und wieder habe ich etwas gelernt...
Hab jetzt einen default-Wert definiert und die Schleife läuft. Ich habe sie erst einmal als neues vi programmiert und werde jetzt die Ändereungen im Programm vornehmen. Also nochmals: Ganz herzlichen Dank für die Mühe und man liest sich sicher bald mal wieder!
Viele Grüße
marvin