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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Drei UINT - Werte als ODER Verknüpfung für Dimmersteuerung

  1. #1
    Registriert seit
    13.06.2013
    Beiträge
    12
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    gibt es einen FB den man mit zB. 3 Werten (uint) Input Füttern kann und am Ausgang einen dieser 3 Werte erhält indem man einen dazugehörigen Input (BOOL) auf True setzt?

    Etwa so ähnlich wie ein ODER FB mit 3 Eingängen als UINT und zu diesen 3 UINT Eingängen noch 3 (BOOL) Eingänge zum auswählen des UINT Eingang den man im OUTPUT haben möchte.

    Hoffe Ihr versteht was ich meine und habt einen Tipp für mich.

    Schonmal Vielen Dank im Voraus!
    Zitieren Zitieren Drei UINT - Werte als ODER Verknüpfung für Dimmersteuerung  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.227
    Danke
    534
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Das kann man auch selbst schreiben:

    Code:
    Definiert bei Inputs
    
    bInput_1: Bool;
    bInput_2: Bool;
    bInput_3: Bool;
    uiInput_1: UInt;
    uiInput_2: UInt;
    uiInput_3: UInt;
    
    Definiert bei Outputs
    
    uiOutput: UInt;
    
    
    
    Code:
    
    uiOutput := 0;
    
    IF bInput_1 THEN
      uiOutput := uiInput_1;
    END_IF; 
    IF bInput_2 THEN
      uiOutput := uiInput_2;
    END_IF; 
    IF bInput_3 THEN
      uiOutput := uiInput_3;
    END_IF;
    Das mal so schnell als Einfachlösung.
    Man kann das noch optimieren indem man IF … THEN … ELSIF nutzt, aber so wie oben gezeigt geht es auch.
    Sind zwei bInput True, gewinnt der letzte im Code!!
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    calimer0 (27.01.2014)

  4. #3
    calimer0 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.06.2013
    Beiträge
    12
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo Ralle,

    hab mir jetzt einen FB mit deinem Inhalt geschrieben und ihn uintoder genannt.
    Bekomme beim Online Einloggen jetzt folgenden Fehler:

    Fehler 4024: uintoder (1): Erwarte : vor :=
    Fehler 4200: uintoder (3): LD erwartet

    Was ist falsch?

  5. #4
    Registriert seit
    15.02.2011
    Ort
    Stromness, Scotland, UK
    Beiträge
    339
    Danke
    25
    Erhielt 34 Danke für 33 Beiträge

    Standard

    ... das du vermutlich nicht ST ausgewählt hast?

  6. Folgender Benutzer sagt Danke zu gloeru für den nützlichen Beitrag:

    calimer0 (27.01.2014)

  7. #5
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 920 Danke für 740 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Man kann das noch optimieren indem man IF … THEN … ELSIF nutzt, aber so wie oben gezeigt geht es auch.
    Sind zwei bInput True, gewinnt der letzte im Code!!
    Und bei der genannten ELSIF-Variante gewinnt der Erste.

    Man hat also die Qual der Wahl.

  8. #6
    calimer0 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.06.2013
    Beiträge
    12
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Da hast Du vollkommen recht, gloeru!

    Was soll ich sagen, jetzt funktioniert es wie gewünscht!!!

    Vielen, vielen Dank!!!
    Geändert von calimer0 (27.01.2014 um 19:51 Uhr)

  9. #7
    calimer0 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.06.2013
    Beiträge
    12
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    EDIT: Geht alles!
    nochmals Danke!
    Geändert von calimer0 (28.01.2014 um 16:19 Uhr)

  10. #8
    calimer0 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.06.2013
    Beiträge
    12
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Wie schaffe ich es einen Ausgang zB. q:BOOL zu schalten wenn uiInput_1 grösser 0 ist?

    Habe es mit

    if uiInput_1 > 0 THEN
    q := true;
    end_if

    probiert. Nur leider ist Q dann immer TRUE.

    Wie lautet der Befehl richtig?
    Geändert von calimer0 (29.01.2014 um 16:24 Uhr)

  11. #9
    Registriert seit
    15.02.2011
    Ort
    Stromness, Scotland, UK
    Beiträge
    339
    Danke
    25
    Erhielt 34 Danke für 33 Beiträge

    Standard

    ... weil du nur ein TRUE hast, und kein FALSE...

    Einfacher:
    q := (uiINput_1 > 0);
    Ist übrigens ein Fehler der sehr häufig passiert! Deshalb habe ich mir angewöhnt, bei jedem TRUE kurz inne zu halten, wo denn das FALSE stehen soll!
    Geändert von gloeru (28.01.2014 um 21:17 Uhr)

  12. #10
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.227
    Danke
    534
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Oder, wenn du bei der IF-VErsion bleibe willst:

    Code:
    if uiInput_1 > 0 THEN
      q := true;
    else
      q := false;
    end_if
    
    
    
    Aber wirklich schöner sieht die Variante von gloeru aus.
    Bei der If…Then Variante könnte man bei Bedarf noch andere Aktionen gleich mit ausführen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

Ähnliche Themen

  1. MTTF, FIT oder B10- Werte für PP7 und S7-300
    Von joko96 im Forum Sonstige Steuerungen
    Antworten: 33
    Letzter Beitrag: 16.10.2013, 13:30
  2. Antworten: 8
    Letzter Beitrag: 27.11.2012, 20:30
  3. Antworten: 2
    Letzter Beitrag: 23.11.2012, 13:30
  4. 0-10V Dimmersteuerung mit S7
    Von DLBURNIE im Forum Simatic
    Antworten: 21
    Letzter Beitrag: 17.10.2010, 10:56
  5. ein Frequenzumrichter für drei Motoren
    Von Alex01 im Forum Antriebstechnik
    Antworten: 20
    Letzter Beitrag: 27.03.2008, 13:56

Lesezeichen

Berechtigungen

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