CASE_OF

der_NooB

Level-2
BeitrÀge
131
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey ich bin es wieder eurem Noob 😁

also ich möchte den Vollstand von dem BehÀlter beobachten der Sensor gibt 0-32767, und ich hab es von 0-100% gemacht
und den Programm wie ihr sieht falsch geschrieben.
bestimmt habe ich Case of Nutzung wie immer Falsch verstanden.

danke fĂŒr eure andauernde Hilfe ^_^
 

AnhÀnge

  • 5.png
    5.png
    7 KB · Aufrufe: 41
  • 6.png
    6.png
    15,4 KB · Aufrufe: 42
Zuviel Werbung?
-> Hier kostenlos registrieren
Beispiel:

Code:
VAR
    i : INT;
END_VAR

CASE i OF
    1:
    // Code hier wird bearbeitet, wenn i die Wertigkeit 1 hat
 
    2:
    // Code hier wird bearbeitet, wenn i die Wertigkeit 2 hat
 
    3..5:
    // Code hier wird bearbeitet, wenn i die Wertigkeit 3, 4 oder 5 hat

    6,7,8,9:
    // Code hier wird bearbeitet, wenn i die Wertigkeit 6, 7 oder 9 hat ( die Zahlen mĂŒssen nicht zusammen hĂ€ngen, es kann auch 6, 20, 100, 16000 sein )
 
    // usw. usw.

    ELSE
    // Der Code hier wird bearbeitet, wenn i eine Wertigkeit hat, welche
    // oben nicht definiert ist ( also 0 oder >9)

END_CASE;
 
Zuletzt bearbeitet:
Beispiel:

Code:
VAR
    i : INT;
END_VAR

CASE i OF
    1:
    // Code hier wird bearbeitet, wenn i die Wertigkeit 1 hat
 
    2:
    // Code hier wird bearbeitet, wenn i die Wertigkeit 2 hat
 
    // usw. usw.

    ELSE
    // Der Code hier wird bearbeitet, wenn i eine Wertigkeit hat, welche
    // oben nicht definiert ist ( also 0 oder >2)

END_CASE;
also ich kann kein Bereich setzen, zwischen den wert und den oder großer/kleiner als den
 
also ich kann kein Bereich setzen, zwischen den wert und den oder großer/kleiner als den
Naja, du kannst ein CASE aufmachen und dann 0..16000 definieren und 16001 bis 32000 definieren z.b.
Ob das Sinn macht ist eine andere Frage. Ich weiß nicht was dein Ziel ist. FĂŒr einen Vergleich wĂ€re eher ein IF geeignet.

PS:
Ich habe Beitrag 3 noch etwas ergÀnzt in den Möglichkeiten innerhalb eines CASE
 
Zuviel Werbung?
-> Hier kostenlos registrieren
also ich kann kein Bereich setzen, zwischen den wert und den oder großer/kleiner als den
Naja, mit ein bisschen KreativitÀt ginge das:

Code:
VAR
    i : INT;
END_VAR

CASE i OF
    0..20:
    // Kleiner als 20
 
    21..50:
    // zwischen 20 und 51
 
    50..100:
    // zwischen 49 und 101

    ELSE
    // grĂ¶ĂŸer als 101

END_CASE;
 
was denkt ihr, so ist Case of richtig?


warum eigentlich markiert er mir Percentlevel obwohl es ist UNIT und die Berechnung ist in INT?
 

AnhÀnge

  • 7.png
    7.png
    32,6 KB · Aufrufe: 28
  • 8.png
    8.png
    5,7 KB · Aufrufe: 27
6,7,8,9: Könnte man hier nicht 6..10 machen ?
// Code hier wird bearbeitet, wenn i die Wertigkeit 6, 7 oder 9 hat ( die Zahlen mĂŒssen nicht zusammen hĂ€ngen, es kann auch 6, 20, 100, 16000 sein )

// usw. usw.

ELSE
// Der Code hier wird bearbeitet, wenn i eine Wertigkeit hat, welche
// oben nicht definiert ist ( also 0 oder >8)

END_CASE;[/CODE]
 
Da in dem Zusammenhang eventuell auch die Frage nach der Umrechnung in eine physikalische GrĂ¶ĂŸe, wie zum Beispiel Liter kommen kann, hier schon mal der Verweis auf diesen FAQ Beitrag oder auf den Teil 2 "Etwas Handfestes", dort Kapitel 10 "Alles IO", im Unterabschnitt "Darf es ein bisschen mehr sein?" des Buches oder Kurz Seite 234ff.
 
was denkt ihr, so ist Case of richtig?


warum eigentlich markiert er mir Percentlevel obwohl es ist UNIT und die Berechnung ist in INT?

Case ist falsch genutzt, immer noch. Beispiele wie die Case Anweisungen auszusehen haben sind ja einige hier drin.

Eine IF ist aber besser, CASE wird zB verwendet um Sequenzen/Schrittketten abzubilden.. deine Bedingungen sind nur ganz normale WENN Bedingungen.

UInt = unsigned Integer, ein Integer ohne Vorzeichen, Wertebereich 0..65535
Int = Integer, Integer mit Vorzeichen, Wertebereich -32768..+32767
 
Da in dem Zusammenhang eventuell auch die Frage nach der Umrechnung in eine physikalische GrĂ¶ĂŸe, wie zum Beispiel Liter kommen kann, hier schon mal der Verweis auf diesen FAQ Beitrag oder auf den Teil 2 "Etwas Handfestes", dort Kapitel 10 "Alles IO", im Unterabschnitt "Darf es ein bisschen mehr sein?" des Buches oder Kurz Seite 234ff.
Ich habe das Handbuch gekauft und warte darauf, dass es ankommt. bis dahin werde ich dein FAQ noch einmal lesen

danke ^_^
 
Zuviel Werbung?
-> Hier kostenlos registrieren
was hÀttest du eigentlich besser gemacht, oder wie hÀttest du es programmiert ?
Ich hĂ€tte die Bereiche so definiert, dass sie auch passen und noch ein ELSE eingefĂŒgt falls ein undefinierter Wert kommt. Also alle > 100 oder < 0
und entsprechend darauf reagiert.
 
ZurĂŒck
Oben