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

Ergebnis 1 bis 10 von 10

Thema: Timer Oder abgefragt Awl SCL

  1. #1
    Registriert seit
    28.02.2014
    Beiträge
    24
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Leute,

    Ich habe hier Programm vorgelegt bekommen, in AWL geschrieben.

    A Bool
    O Bool
    O Timer
    O Timer
    = Bool

    Wie geht das in SCL? Oo
    Zitieren Zitieren Timer Oder abgefragt Awl SCL  

  2. #2
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Genauso wie in AWL:
    Code:
    Bool := Bool OR Bool OR Timer OR Timer;

  3. #3
    Aikapan ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.02.2014
    Beiträge
    24
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Bei mir:

    IF
    Bool
    OR Bool
    OR Timer
    OR Timer
    THEN
    ...
    END_IF;

    Da sagt TIA "Operator OR ist nicht kompatibel mit den Datentypen von Bool und Timer."

    Kommentier ich die timer aus dann funktionierts.
    Kommentier ich die Bools aus dann gleiche Fehlermeldung nur mit "Datentypen von Timer und Timer"...

    ..auch als direkte Anweisung kommt der gleiche Fehler :/
    Geändert von Aikapan (05.06.2015 um 17:33 Uhr)

  4. #4
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Bei Timern ist Q der Ausgang. Versuchs mal mit Timer.Q in deiner Verknüpfung.
    Sänd from mei Kombjudder mitse Dastadurr.

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

    Standard

    Wozu IF? Du willst einem BOOL TRUE oder FALSE zuweisen. Das kann direkt per Verknüpfung erfolgen. Das macht ein sinnloses IF-Konstrukt sicher nicht übersichtlicher.

    Das zweite Problem liegt an Deinem verwendeten Timer. Ist das kein Hardware(S5)- sondern ein Software(FB)-Timer, muss natürlich dessen Ausgang "Timer.Q" verwendet werden. Soll dieser Timer mehrmals im Zyklus abgefragt werden, muss auch ggf. ein Zwischenspeicher verwendet werden. Das hängt aber von der verwendeten CPU ab. Dazu gibt's schon genügend Threads hier.

  6. #6
    Aikapan ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.02.2014
    Beiträge
    24
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Leider sagt er dann "Der Operand T_Bla.Q ist nicht definiert" :/

    Der wurde irgendwo in awl mit sd erzeugt.

  7. #7
    Aikapan ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.02.2014
    Beiträge
    24
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von hucki Beitrag anzeigen
    Wozu IF? Du willst einem BOOL TRUE oder FALSE zuweisen. Das kann direkt per Verknüpfung erfolgen. Das macht ein sinnloses IF-Konstrukt sicher nicht übersichtlicher.

    Das zweite Problem liegt an Deinem verwendeten Timer. Ist das kein Hardware(S5)- sondern ein Software(FB)-Timer, muss natürlich dessen Ausgang "Timer.Q" verwendet werden. Soll dieser Timer mehrmals im Zyklus abgefragt werden, muss auch ggf. ein Zwischenspeicher verwendet werden. Das hängt aber von der verwendeten CPU ab. Dazu gibt's schon genügend Threads hier.
    der Timer ist wohl noch aus s5 zeiten...


    Vielen Dank für die Antworten!
    Wühle mich dann nochmal tiefer durchs Forum.

  8. #8
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Zitat Zitat von Aikapan Beitrag anzeigen
    Bei mir:

    IF
    Bool
    OR Bool
    OR Timer
    OR Timer
    THEN
    ...
    END_IF;
    Das entspräche in AWL:
    Code:
    IF:   A Bool
          O Bool
          O Timer
          O Timer
          SPBN ELSE
    THEN: SET
          = Bool
          SPA END
    ELSE: CLEAR
          = Bool
    END:  NOP 0
    Würde man doch für 'ne einfache Zuweisung auch nicht machen, oder?

  9. #9
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Zitat Zitat von Aikapan Beitrag anzeigen
    Leider sagt er dann "Der Operand T_Bla.Q ist nicht definiert" :/

    Der wurde irgendwo in awl mit sd erzeugt.
    Was für 'ne CPU? Wie sieht der Timeraufruf aus? Gleicher FB/FC oder nicht? Wenn nicht, Timerausgang auf globale Variable übertragen? ...

  10. #10
    Aikapan ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.02.2014
    Beiträge
    24
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke hucki für die "richtigen Fragen".
    Cpu: 1512-f (et 200sp)
    Timeraufruf bzw schreibende cross reference nicht gefunden oO
    Verschiedene fc/fbs
    Umweg über globale var wäre halt ein umweg.
    Datentyp is nornal der timer, direkt adressiert auf %T9
    Und das if then else konstrukt ist natürlich nicht nur für ne einfache Zuweisung aber darum sollte es hier ja nicht gehen. Müsste/Sollte ja beides gehen...

Ähnliche Themen

  1. SCL oder AWL
    Von evolem im Forum Programmierstrategien
    Antworten: 18
    Letzter Beitrag: 09.03.2014, 15:53
  2. Step 7 SCL oder AWL Eingänge abfragen
    Von Legosteine im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 06.09.2013, 21:33
  3. Schrittkette IN SCL oder mit SPL in AWL
    Von Bensen83 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 22.06.2010, 11:40
  4. Heiz und Kühlvorgang in SCL oder AWL
    Von Roland1 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 16.06.2009, 18:48
  5. PWM in SCL, AWL oder FUP?
    Von stefanblitz im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 01.02.2009, 20:47

Lesezeichen

Berechtigungen

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