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

Seite 4 von 4 ErsteErste ... 234
Ergebnis 31 bis 38 von 38

Thema: S7: TON Timer funktioniert nicht?

  1. #31
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.638
    Danke
    787
    Erhielt 654 Danke für 497 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Automatinator Beitrag anzeigen
    Und wieso bitte nicht???!! o_O
    Das musst du die götter in Petrol fragen.
    Meine Beobachtungen bei der 1500er hab ich im von PN/DP verlinkten Tread beschrieben. Warum das so ist, kann dir hier wohl keiner sagen nur vermuten.

    mfG René

  2. #32
    Automatinator ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.09.2014
    Beiträge
    103
    Danke
    15
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von vollmi Beitrag anzeigen
    Das musst du die götter in Petrol fragen.
    Meine Beobachtungen bei der 1500er hab ich im von PN/DP verlinkten Tread beschrieben. Warum das so ist, kann dir hier wohl keiner sagen nur vermuten.
    Ach du meine Güte... wie will man eine Software schreiben / testen wenn die Beobachtung nicht funktioniert? Funktioniert wenigstens das Online-Debugging?

  3. #33
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.367
    Danke
    457
    Erhielt 696 Danke für 521 Beiträge

    Standard

    Zitat Zitat von Automatinator Beitrag anzeigen
    Ach du meine Güte... wie will man eine Software schreiben / testen wenn die Beobachtung nicht funktioniert? Funktioniert wenigstens das Online-Debugging?
    Nein reicht nicht, Siehe Huckis Beitrag (Screenshots)
    Alles funktioniert wie gewohnt wenn du dich einfach an die (mittlerweile schon oft erwähnte) Regel hältst das Q oder ET abgefragt werden muss.
    Code:
    #fbTONmyTest(IN := #bInitDone, PT := T#1h, Q => "Tag_Q");
    Schon geht alles wie gewohnt. Kann ja nicht so schwer sein....

    Übrigens solltest du auch im Rest des SPS-Programms (Konsistenzgründe) nur mehr "Tag_Q" verwenden.
    Geändert von RONIN (16.10.2015 um 17:26 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  4. #34
    Automatinator ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.09.2014
    Beiträge
    103
    Danke
    15
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von RONIN Beitrag anzeigen
    Alles funktioniert wie gewohnt wenn du dich einfach an die (mittlerweile schon oft erwähnte) Regel hältst das Q oder ET abgefragt werden muss.
    Code:
    #fbTONmyTest(IN := #bInitDone, PT := T#1h, Q => "Tag_Q");
    Schon geht alles wie gewohnt. Kann ja nicht so schwer sein....
    Übrigens solltest du auch im Rest des SPS-Programms (Konsistenzgründe) nur mehr "Tag_Q" verwenden.
    Und wieso muss ich das nicht in einem FB deklarierten FB mit Timer machen?? Also ich hab den OB1 da ruf ich ein FB1 auf, im FB1 ist ein FB2 deklariert, und im FB2 ist ein TON_TIME und dort frage ich weder Q noch ET ab... und es funktioniert. Wenn ich nun den gleichen Timer im FB1 deklariere brauch ich diese Q zuweisung auf eine Temporäre Variable... sont läuft der nicht...
    Wie das?
    Und vor allem will ich keine Temporärvariablen oder Merker verwenden...

  5. #35
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.638
    Danke
    787
    Erhielt 654 Danke für 497 Beiträge

    Standard

    Zitat Zitat von Automatinator Beitrag anzeigen
    Und wieso muss ich das nicht in einem FB deklarierten FB mit Timer machen?? Also ich hab den OB1 da ruf ich ein FB1 auf, im FB1 ist ein FB2 deklariert, und im FB2 ist ein TON_TIME und dort frage ich weder Q noch ET ab... und es funktioniert.
    Gleiche CPU? Kann ich kaum glauben. Du fragst Q und ET nicht ab und beobachtest nur die Instanz? In der 1500er?
    Was machst du überhaupt mit dem Timer in FB1 wenn du weder Q noch ET abfragst?

    Zitat Zitat von Automatinator Beitrag anzeigen
    Wenn ich nun den gleichen Timer im FB1 deklariere brauch ich diese Q zuweisung auf eine Temporäre Variable... sont läuft der nicht...
    Wie das?
    Und vor allem will ich keine Temporärvariablen oder Merker verwenden...
    Musst du auch nicht, du kannst auch Statische Variablen verwenden. Du kannst auch Q abfragen. Aber beobachten in der VAT ist keine Abfrage. Und bei einer abfrage von Q muss man einfach wissen das diese nicht über den ganzen Zyklus konsistent ist (verhält sich so wie früher wenn man T abgefragt hat)

    Code:
    IF #timer1.Q THEN
    Ist auch eine Abfrage. Macht doch überhaupt keinen Sinn einen Timer zu beobachten der im Programm nur als Füllmaterial aufgerufen wird.

    mfG René
    Geändert von vollmi (27.10.2015 um 10:56 Uhr)

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

    RONIN (27.10.2015)

  7. #36
    Automatinator ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    11.09.2014
    Beiträge
    103
    Danke
    15
    Erhielt 1 Danke für 1 Beitrag

    Standard

    und wieso muss Q oder ET zyklisch abgefragt werden?? Ich dachte zuerst okay, das hat evtl. was mit dem Compiler zu tun, wenn der keine Ausgangsabfrage sieht, performance-optimiert er den Maschinencode und lässt den Aufruf weg. Das wäre ja gar nicht mal so unintelligent... aber das ist ja auch nicht der Fall. Die Ausgangs-Abfrage des Timers MUSS zyklisch erfolgen, sonst wird der Timer-FB unter oder abgebrochen.
    Ist das noch ne Leiche im TIA-S7? oder pure Absicht????? im S7-v5.5 ist das ja net so...

  8. #37
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.638
    Danke
    787
    Erhielt 654 Danke für 497 Beiträge

    Standard

    Zitat Zitat von Automatinator Beitrag anzeigen
    und wieso muss Q oder ET zyklisch abgefragt werden??
    Muss er nicht. Hat auch keiner behauptet. Bei der 1500er muss nichtmal der Timer zyklisch aufgerufen werden (was er bei der 300/400er muss)

    Die Ausgangs-Abfrage des Timers MUSS zyklisch erfolgen, sonst wird der Timer-FB unter oder abgebrochen.
    Ist das noch ne Leiche im TIA-S7? oder pure Absicht????? im S7-v5.5 ist das ja net so...
    Wie kommst du darauf das der Timer-FB abgebrochen wird wenn du nicht abfragst? Es ist einzig die Instanz die nicht aktualisiert wird wenn du nicht abfragst. Der Timer läuft weiter.

    Wenn du ET nach 2 sek wieder abfragst sind halt 2 sek abgelaufen und das steht dann auch in der Instanz. In den zwei Sekunden in der ET oder Q nicht abgefragt wird, läuft die Zeit trotzdem, aber in der Instanz sieht man das halt nicht. Aber für das Programm spielt das ja keine Rolle, da interessierts erst zum Aufrufzeitpunkt wie die Zeit nun aussieht.
    Das ist ganz klar pure absicht. Great Siemens will offensichtlich die IEC Timer den S7 Timern angleichen um Umsteigern das Programmieren zu erleichtern. Aber wie wir grad sehen ist es deswegen nicht wirklich leichter.

    Ja bei der S7v5.5 ist das nicht so. Da kannst du auch keine 1500er projektieren, sonst wärs da auch so.

    mfG René

  9. #38
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.367
    Danke
    457
    Erhielt 696 Danke für 521 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Automatinator Beitrag anzeigen
    Ich dachte zuerst okay, das hat evtl. was mit dem Compiler zu tun
    Ist das noch ne Leiche im TIA-S7? oder pure Absicht????? im S7-v5.5 ist das ja net so...
    Der große Unterschied zwischen S7 und Tia ist das die Timer dort Systemfunktionsbausteine sind die sich eben wie ganz normale
    Multiinstanzfähige-Fbs verhalten. Programmaktualisierung bei Durchlauf.

    Die Timer in TIA 1200/1500 scheinen etwas anderes zu sein, auf Grund der jederzeitgen Aktualisierung des Instanz bei Zugriff auf ET und Q.
    Wie genau die Implementation aussieht weiß ich nicht, ob es irgendwie in Betriebssystem integriert ist oder ob der TON-FB einmal automatisch aufgerufen wird
    sobald man ET und Q abfragt. Das merkwürdige dabei ist auf jeden Fall dass der alleinige Aufruf (ohne ET,Q) des FB nicht das Ergebnis bringt.
    Das steckt einfach so in der Firmware der 1200/1500.

    Vom Verhalten her sind die Timer also näher an den S7-Timern (S5#T) als an den IEC-FBs aus 300/400.
    Warum dieser Mechanismus so ausgelegt wurde musst du bei Siemens fragen, gewisse Vermutungen gibt es ja.

    Wie Vollmi schon schrieb, man muss Q, ET nicht zyklisch aktualisieren, eben nur wenn man will das die Timerinstanz doch mal aktualisiert wird....
    Geändert von RONIN (27.10.2015 um 13:47 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

Ähnliche Themen

  1. TIA Timer TON Restlaufzeit auslesen
    Von MK_Auto im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 03.12.2014, 23:07
  2. TIA IEC Timer kaskadieren funktioniert nicht
    Von kiar im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 18.12.2013, 17:55
  3. Step 7 Probleme mit TON in FB (TON als Multiinstanz, der FB selbst nicht!)
    Von Jochen Kühner im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 14.06.2013, 18:29
  4. IEC Timer TON im Simatic S7
    Von spovi1 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 23.12.2011, 06:21
  5. Timer in SCL funktioniert nicht
    Von karlm44 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 03.05.2010, 22:47

Stichworte

Lesezeichen

Berechtigungen

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