Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 22

Thema: Minimalwertauswahl bei Codesys

  1. #11
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hast du den Beitrag von Chrigu gelesen ?
    Wenn ja, dann würde das in der Konsequenz heißen, dass du irgendwo stehen haben mütest (und zwar vor dem IF-Block) :
    Code:
    BinWert_01 := false ;
    BinWert_02 := false ;
    usw.
    ... oder du ermittels den Binwert so, wie ich es dir gepostet habe ... (Beitrag #9)

    Gruß
    LL
    Geändert von Larry Laffer (28.02.2010 um 15:35 Uhr)

  2. #12
    Don_Travolta ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.02.2010
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Beitrag

    Code schaut jetzt folgendermaßen aus:
    MINWERT := MIN(WERT_01,WERT_02);
    MINWERT := MIN(MINWERT,WERT_03);
    MINWERT := MIN(MINWERT,WERT_04);
    MINWERT := MIN(MINWERT,WERT_05);
    MINWERT := MIN(MINWERT,WERT_06);
    MINWERT := MIN(MINWERT,WERT_07);
    MINWERT := MIN(MINWERT,WERT_0;
    MINWERT := MIN(MINWERT,WERT_09);
    MINWERT := MIN(MINWERT,WERT_10);
    MINWERT := MIN(MINWERT,WERT_11);
    MINWERT := MIN(MINWERT,WERT_12);
    BIN_WERT_01 := FALSE;
    BIN_WERT_02 := FALSE;
    BIN_WERT_03 := FALSE;
    BIN_WERT_04 := FALSE;
    BIN_WERT_05 := FALSE;
    BIN_WERT_06 := FALSE;
    BIN_WERT_07 := FALSE;
    BIN_WERT_08 := FALSE;
    BIN_WERT_09 := FALSE;
    BIN_WERT_10 := FALSE;
    BIN_WERT_11 := FALSE;
    BIN_WERT_12 := FALSE;

    IF MINWERT = WERT_01 THEN
    BIN_WERT_01 := TRUE;
    ELSIF MINWERT = WERT_02 THEN
    BIN_WERT_02 := TRUE;
    ELSIF MINWERT = WERT_03 THEN
    BIN_WERT_03 := TRUE;
    ELSIF MINWERT = WERT_04 THEN
    BIN_WERT_04 := TRUE;
    ELSIF MINWERT = WERT_05 THEN
    BIN_WERT_05 := TRUE;
    ELSIF MINWERT = WERT_06 THEN
    BIN_WERT_06 := TRUE;
    ELSIF MINWERT = WERT_07 THEN
    BIN_WERT_07 := TRUE;
    ELSIF MINWERT = WERT_08 THEN
    BIN_WERT_08 := TRUE;
    ELSIF MINWERT = WERT_09 THEN
    BIN_WERT_09 := TRUE;
    ELSIF MINWERT = WERT_10 THEN
    BIN_WERT_10 := TRUE;
    ELSIF MINWERT = WERT_11 THEN
    BIN_WERT_11 := TRUE;
    ELSIF MINWERT = WERT_12 THEN
    BIN_WERT_12 := TRUE;
    END_IF;

    Habe es mal Offline simuliert, dürfte funktionieren.

    Ich habe zwischenzeitlich mal probiert:

    .....
    ELSIF MINWERT = WERT_12 THEN
    BIN_WERT_12 := TRUE;
    ELSE
    BIN_WERT_01 := FALSE;
    ....
    BIN_WERT_12 := FALSE;

    END_IF;

    Das hat aber nichts gebracht, war das gleich Ergebniss wie am Anfang, verstehe aber nicht wieso. Arbeitet er das ELSE erst aber wenn keine der IF´s True ergibt?

    @Larry Lafter (gutes Spiel)

    Wo hätte ich diesen Ausdruck einbauen müssen:
    binWert_01 ;= (minWert = Wert_01) ;
    binWert_02 ;= (minWert = Wert_02) ;

    @ Lupo
    Es hat eh funktioniert aber wenn Du mein Eröffnungspost genau gelesen hättest, wäre Dir aufgefallen das ich immer nur einen anstehenden binären Ausgang brauche.

    @all danke nochmals




    lg

  3. #13
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    statt dem :
    Zitat Zitat von Don_Travolta Beitrag anzeigen
    Code schaut jetzt folgendermaßen aus:
    BIN_WERT_01 := FALSE;
    BIN_WERT_02 := FALSE;
    BIN_WERT_03 := FALSE;
    BIN_WERT_04 := FALSE;
    BIN_WERT_05 := FALSE;
    BIN_WERT_06 := FALSE;
    BIN_WERT_07 := FALSE;
    BIN_WERT_08 := FALSE;
    BIN_WERT_09 := FALSE;
    BIN_WERT_10 := FALSE;
    BIN_WERT_11 := FALSE;
    BIN_WERT_12 := FALSE;

    IF MINWERT = WERT_01 THEN
    BIN_WERT_01 := TRUE;
    ELSIF MINWERT = WERT_02 THEN
    BIN_WERT_02 := TRUE;
    ELSIF MINWERT = WERT_03 THEN
    BIN_WERT_03 := TRUE;
    ELSIF MINWERT = WERT_04 THEN
    BIN_WERT_04 := TRUE;
    ELSIF MINWERT = WERT_05 THEN
    BIN_WERT_05 := TRUE;
    ELSIF MINWERT = WERT_06 THEN
    BIN_WERT_06 := TRUE;
    ELSIF MINWERT = WERT_07 THEN
    BIN_WERT_07 := TRUE;
    ELSIF MINWERT = WERT_08 THEN
    BIN_WERT_08 := TRUE;
    ELSIF MINWERT = WERT_09 THEN
    BIN_WERT_09 := TRUE;
    ELSIF MINWERT = WERT_10 THEN
    BIN_WERT_10 := TRUE;
    ELSIF MINWERT = WERT_11 THEN
    BIN_WERT_11 := TRUE;
    ELSIF MINWERT = WERT_12 THEN
    BIN_WERT_12 := TRUE;
    END_IF;
    ... könntest du das von mir genannte schreiben :
    Code:
    BinWert_01 := (Wert_01 = minWert) ;
    BinWert_02 := (Wert_02 = minWert) ;
    BinWert_03 := (Wert_03 = minWert) ;
    BinWert_04 := (Wert_04 = minWert) ;
    BinWert_05 := (Wert_05 = minWert) ;
    BinWert_06 := (Wert_06 = minWert) ;
    BinWert_07 := (Wert_07 = minWert) ;
    BinWert_08 := (Wert_08 = minWert) ;
    BinWert_09 := (Wert_09 = minWert) ;
    BinWert_10 := (Wert_10 = minWert) ;
    ... jetzt gechecked ...?

  4. #14
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Nachtrag :
    das mit dem ELSE würde auch funktionieren, wenn du es richtig machst - es muß sich auf das richtige IF beziehen ...

  5. #15
    Don_Travolta ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.02.2010
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    BinWert_01 := (Wert_01 = minWert) ;
    BinWert_02 := (Wert_02 = minWert) ;
    BinWert_03 := (Wert_03 = minWert) ;
    BinWert_04 := (Wert_04 = minWert) ;
    BinWert_05 := (Wert_05 = minWert) ;
    BinWert_06 := (Wert_06 = minWert) ;
    BinWert_07 := (Wert_07 = minWert) ;
    BinWert_08 := (Wert_08 = minWert) ;
    BinWert_09 := (Wert_09 = minWert) ;
    BinWert_10 := (Wert_10 = minWert) ;

    Hätte ich gleich nach der bestimmung des Minwerte einbauen können und hätte ich mir dann die IF Then geschichte erspart?

    Bin leider ein absoluter Newbie was ST programmierung betrifft. Entschuldigt die dummen Fragen.

    Wenn ich es mit ELSE gelöste hätte wäre es so richtig gewesen:

    IF MINWERT = WERT_01 THEN
    BIN_WERT_01 := TRUE;
    ELSE
    BIN_WERT_01 := FALSE;
    END_IF;

    IF MINWERT = WERT_02 THEN
    BIN_WERT_02 := TRUE;
    ELSE
    BIN_WERT_02 := FALSE;
    END_IF;

    etc.

    oder hätte ich da auch mit ELSIF arbeiten können?

    lg

  6. #16
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Hätte ich gleich nach der bestimmung des Minwerte einbauen können und hätte ich mir dann die IF Then geschichte erspart?
    ... ja ...

    Wenn ich es mit ELSE gelöste hätte wäre es so richtig gewesen:

    IF MINWERT = WERT_01 THEN
    BIN_WERT_01 := TRUE;
    ELSE
    BIN_WERT_01 := FALSE;
    END_IF;
    ... ja ...

    oder hätte ich da auch mit ELSIF arbeiten können?
    ... das wäre m.E. in dem nZusammenhang so nicht sinnvoll geworden / gewesen ...

    Gruß
    LL

  7. #17
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Code:
    BinWert_01 := (Wert_01 = minWert) ;
    BinWert_02 := (Wert_02 = minWert) ;
    BinWert_03 := (Wert_03 = minWert) ;
    BinWert_04 := (Wert_04 = minWert) ;
    BinWert_05 := (Wert_05 = minWert) ;
    BinWert_06 := (Wert_06 = minWert) ;
    BinWert_07 := (Wert_07 = minWert) ;
    BinWert_08 := (Wert_08 = minWert) ;
    BinWert_09 := (Wert_09 = minWert) ;
    BinWert_10 := (Wert_10 = minWert) ;
    Ist zwar schön kurz, erfüllt aber leider nicht die Aufgabenstellung aus dem EP:
    Zitat Zitat von Don_Travolta Beitrag anzeigen
    Wichtig ist das wenn mehrer Eingänge den gleichen niedrigsten Wert haben immer der erste in der Reihenfolge signalisiert wird. Soll heisen Ausgangsseitig soll immer nur ein binärer Ausgang anstehen.
    Die längere IF...ELSEIF-Kette von Don_Travolta in #12 funktioniert dagegen richtig.

    Gruß
    Harald
    Zitieren Zitieren nur 1 Ausgang True  

  8. #18
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Ist zwar schön kurz, erfüllt aber leider nicht die Aufgabenstellung aus dem EP:

    Die längere IF...ELSEIF-Kette von Don_Travolta in #12 funktioniert dagegen richtig.

    Gruß
    Harald
    Ich glaube Du hast die Lösung von Larry nur nicht verstanden. Sie liefert ein auch nur Bool Signale als ergebnis und das entspricht doch der Aufgabenstellung.

    z.B. die Variable BinWert_01 ist vom typ Bool und kann TRUE oder FALSE sein und sie ist TRUE wenn der Wert_01 eben der Minwert ist.
    If you open your Mind too much, your Brain will fall out.

  9. #19
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard

    Hallo zotos,

    wenn Wert_01 = Wert_02 = minWert, dann werden BinWert_01 und BinWert_02 beide True.
    Es sollte aber nur genau 1 Ausgang True werden. (siehe den von mir Rot markierten Text im Zitat des EP in #17)

    Gruß
    Harald
    Zitieren Zitieren nur genau 1 Ausgang True  

  10. #20
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von PN/DP Beitrag anzeigen
    Es sollte aber nur genau 1 Ausgang True werden.
    Ich war zu voreilig Du hast recht.
    If you open your Mind too much, your Brain will fall out.

  11. Folgender Benutzer sagt Danke zu zotos für den nützlichen Beitrag:

    PN/DP (28.02.2010)

Ähnliche Themen

  1. CoDeSys
    Von doug82 im Forum PC- und Netzwerktechnik
    Antworten: 6
    Letzter Beitrag: 02.11.2011, 21:29
  2. EoE mit CoDeSys 3.4 sp3
    Von HomerX im Forum CODESYS und IEC61131
    Antworten: 0
    Letzter Beitrag: 07.06.2011, 10:54
  3. CodeSys
    Von Mark4you im Forum Suche - Biete
    Antworten: 6
    Letzter Beitrag: 01.02.2011, 10:28
  4. CodeSys und S7
    Von Tommi im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 19.12.2010, 20:32
  5. CoDeSys
    Von Gast im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 16.06.2006, 21:35

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •