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

Ergebnis 1 bis 9 von 9

Thema: SCL S_ODT: Status der Zeit woanders abfragen

  1. #1
    Registriert seit
    28.09.2007
    Ort
    Mexicali
    Beiträge
    39
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo SPS-Gemeinde,

    wollte gern wissen, ob ich den Ausgang Q der Funktion S_ODT auch woanders in meinem Programm-Code abfragen kann? Sprich, ob ich den Status des Timers auch an einer anderen Stelle im Code abfragen kann?

    Oder MUSS ich den Ausgang Q bei Aufruf von S_ODT versorgen, weshalb er deshalb implizit immer bei der Timer-Behandlung mit behandelt wird?!

    der neugierige Lars
    Zitieren Zitieren SCL S_ODT: Status der Zeit woanders abfragen  

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

    Standard

    Hallo "neugieriger" Lars,
    ich glaube, auf diese Frage hast du (zumindestens von mir) schon x mal Antwort erhalten. Was war daran unverständlich gewesen ? Ich erkläre es ggf. gerne auch noch einmal ...

    Gruß
    LL

    PS:
    Pass auf, dass ich dich nicht an 4L empfehle für seinen "Spezial-Thread".

  3. #3
    Registriert seit
    28.09.2007
    Ort
    Mexicali
    Beiträge
    39
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo "Erklärbär" Larry,

    ich hatte gestern die gleiche Frage schon mal gestellt und da hast du mir geantwortet, dich aber auf den SFB4 bezogen und nicht auf die Siemens eigene Funktion S_ODT !

    Jetzt handelt sichs aber um S_ODT und darauf war meine Frage gerichtet

    der weiterhin neugierige Lars

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

    Standard

    OK ...

    der S_ODT, wie auch die anderen SCL-Zeitglieder sind nur Importe der aus der Step7-AWL-Ebene bekannten Zeitglieder. Sie beziehen sich sogar auf diese. Es sind also im Grunde wieder absolute Adressierungen. Die bekommst du dann natürlich auch überall in deinem restlichen Programm abgefragt. Vorsicht bei Überschneidungen ... T xyz ist T xyz ...

    Gruß
    LL

  5. #5
    Registriert seit
    28.09.2007
    Ort
    Mexicali
    Beiträge
    39
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    mmhmm Ok, danke, aber so war meine Frage nicht gemeint...

    Ich meinte, wenn ich S_ODT derart aufrufe:

    Code:
     "currTime" :=  S_ODT (T_NO := T0 , S := "Start_Timer" , TV := TimeIn , Q := "Timeout_Timer");
    dann wird doch "Timeout_Timer" genau DANN gesetzt, wenn ich in der Code-Zeile bin UND der Timer schon abgelaufen ist!

    Ich möchte aber in einer ANDEREN Code-Zeile schon (vor dem Timer) das "Timeout_Timer" setzen!
    (Voraussetzung natürlich, dass der Timer schon abgelaufen ist!)

    Das spielt für mich deshalb eine Rolle, da ich das Verhalten des gleichen Codes aus einer anderen Programmiersprache nachbilden möchte und dort die Timer-Abfrage schon VOR der Timer-Behandlung stattfindet!

    Grüße
    Lars

    PS: ich denke aber nicht, dass das mit S_ODT geht, da ich ja den Ausgang Q versorgen MUSS und damit automatisch das Signal für "Timeout_Timer" in dieser Code-Zeile geschrieben wird?!

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

    Standard

    ... wenn "TimeOut_Timer" eine STAT-Variable des Bausteins oder eine absolute Variable (Merker) ist, dann kann du die abfragen, wie du es vorhast. Ob du das mit dem Zustand des Timers in gleicher Weise kannst, habe ich noch nicht probiert ...

  7. #7
    Registriert seit
    08.12.2004
    Beiträge
    94
    Danke
    2
    Erhielt 16 Danke für 14 Beiträge

    Standard

    Hallo Linderlars,

    du kannst alle Variablen eines FBs, außer Temp_Vars, immer und überall abfragen. Auch beschreiben wäre immer und überall möglich. Diese Variablen liegen ja in einem Instanz-DB und sind wie ganz normale Daten zu behandeln.

    Die Daten eines FBs, speziell wenn es IEC-Timer Werte sind, werden sich natürlich nur ändern, wenn auch der FB-Code gelegentlich aufgerufen wird.

    D.h. wenn der FB nicht gecalled wird, dann wird auch die entspr. Zeit nie ablaufen und ein Abfragen der Zeit oder des "Zeitausgangs" ist relativ sinnlos.

    mfG. klaly

  8. #8
    Registriert seit
    28.09.2007
    Ort
    Mexicali
    Beiträge
    39
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Larry und klaly,

    mhmm, ihr zwei bestätigt im Endeffekt meine Anmerkung im PS...soll heißen, dass das eigentliche Signal vom Ausgang Q dann und nur dann abgefragt werden kann, wenn ich den den Timer auch wirklich behandle, sprich ich kann den Ausgang Q nicht aus meiner Funktion S_ODT an eine andere Stelle im Code herausziehen...

    PS: die Abfrage auf Zustand von T0 ist mir auch schon gekommen, das wäre eine Möglichkeit, wie ich es auch in AWL machen würde, doch T0 ist ja jetzt vom Datentyp TIME und wenn man das auf logisches UND abfragt, kommt natürlich die Fehlermeldung, dass T0 nicht BOOL ist!
    Geändert von lindnerlars (04.09.2008 um 13:53 Uhr)

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @klaly:
    wenn du so deine Programme schreibst, dann viel Spaß denen, die damit leben müssen beim Fehler-Suchen - vor allen Dingen dann, wenn man den FB mal ein bißchen geändert hat (z.B. im IN, IN_OUT, OUT, Stat-Bereich).

    @Lars:
    Das wäre dann wieder einen Fall für den SFB4 (z.B.), da du dort ja direkt an die Schnittstelle herankommst. Den anderen beschriebenen Fall würde ich (um Klimmzüge zu vermeiden) in AWL lassen. Oder du beschaltest den Ausgang, wie von mir vorgeschlagen. Das kommt im Ergebnis auf das Gleiche heraus ...
    ---
    Vielleicht wäre es doch mal an der Zeit, dass du dein Vorhaben mal etwas konkretisierst. Vielleicht gibt es für das was du eigentlich bezweckst aus eine "schöne" Lösung ...

Ähnliche Themen

  1. Status bzw. Ausstattung der SPS abfragen
    Von Alexandr im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 05.05.2010, 16:40
  2. TCP Port Link Status bei CPU 315 PN 2 DP abfragen
    Von Pinmaster im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 05.09.2008, 06:45
  3. CP343 Fetch/Write passiv Status abfragen
    Von S7_Mich im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 15.08.2008, 07:38
  4. Pufferbatterie status abfragen?
    Von DennisBerger im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.07.2008, 14:22
  5. WinCC-Server Status abfragen
    Von Elton_500 im Forum HMI
    Antworten: 2
    Letzter Beitrag: 26.04.2008, 14:14

Lesezeichen

Berechtigungen

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