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

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

Thema: Verständnisproblem mit S5-Timer und VKE

  1. #1
    Registriert seit
    14.10.2010
    Ort
    Telgte
    Beiträge
    654
    Danke
    97
    Erhielt 129 Danke für 99 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Morgen werte Profis
    Ich habe ein Verständnisproblem mit einem AWL-Code. Ich habe mir schon alleine mit dem Titel schwer getan...
    Bei dem Codeschnipsel geht es weniger darum welchen Sinn es hat oder ob es eine andere Möglichkeit gibt (Obwohl ich gerne dazu lerne ),
    sondern vielmehr warum es nicht funktioniert...
    Es ging um einen möglichst kurzen AWL-Code um einen Taktimpuls zu erzeugen.

    UN T1
    L S5T#500ms
    SE T1 //wenn die Zeit abgelaufen ist sollte hier für einen Flankenimpuls das VKE1 erzeugt werden, und das kommt auch...(theoretisch)

    ergänze ich den Code folgend:

    UN T1
    L S5T#500ms
    SE T1
    NOT
    =M1.0

    bekommt der Merker M1.0 den entsprechenden Flankenimpuls.
    Ergänze ich wie folgt:

    UN T1
    L S5T#500ms
    SE T1
    ZV Z3

    wird auch im entsprechenden Takt hochgezählt.
    ABER bei dieser Variante funktioniert nichts:

    UN T1
    L S5T#500ms
    SE T1
    U T1
    ZV Z3

    Ich habe auch direkt im Anschluss an das SE einen bedingten Sprung gehangen, der funktioniert ebenso.
    Warum funktioniert die einfache binäre Abfrage auf UND in diesem Moment nicht?


    Gruß, Toki
    Programmierumgebung: Step7 V5.5, WinCCflex2008-SP3, TIA-PortalV13, MicroWinV4.0
    Zitieren Zitieren Verständnisproblem mit S5-Timer und VKE  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo Torsten,
    ganz richtig erklären kann ich es dir (in diesem Fall) auch nicht.
    Der Fehler ist, dass du den Timer an sich selbst festmachst und dieser im Grunde vom Zyklus unabhängig operiert.
    Um es (sauber) in dem Griff zu bekommen verwendest du für die Rückkopplung einfach einen Merker (am Besten auch für den Counter). Das sähe dann z.B. so aus :
    Code:
    UN M100.0
    L S5T#500ms
    SE T1
    U T1
    = M 100.0
    
    U M 100.0  // diese Anweisung ist möglicherweise in dieser Konstellation schon überflüssig ...
    ZV Z3
    Gruß
    Larry

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

    Toki0604 (19.11.2014)

  4. #3
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.735
    Danke
    321
    Erhielt 1.523 Danke für 1.283 Beiträge

    Standard

    Die Erklärung ist very simpel:
    Der Timer arbeitet so er denn mal gestartet wurde hart im Betriebssystem, und somit unabhängig vom Zyklus.

    Bei deinem letzten nicht funktionierenden Beispiel müsste der Timer also vom Zyklus her betrachtet zwischen der Anweisung SE T1 bzw. dem folgenden U T1 ablaufen,
    die Chance hierauf ist praktisch 0. Je länger dein Zyklus jetzt aber wird und je größer der Zeitabstand zwischen SE T1 bzw. U T1 steigt die Wahrscheinlichkeit wieder an.

    Also zu Beginn der OB1 den Timer starten, und am Ende des OB1 den Timer abfragen, dazwischen ein möglichst zykluszeitfressendes Programm ...

    Mfg
    Manuel
    Geändert von MSB (19.11.2014 um 09:34 Uhr)
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  5. Folgender Benutzer sagt Danke zu MSB für den nützlichen Beitrag:

    Toki0604 (19.11.2014)

  6. #4
    Avatar von Toki0604
    Toki0604 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.10.2010
    Ort
    Telgte
    Beiträge
    654
    Danke
    97
    Erhielt 129 Danke für 99 Beiträge

    Standard

    Hallo Larry, Hallo Manuel,

    Ich habe diverse mögliche Konstellationen getestet und festgestellt das die Zähler (wenn sie funktionieren) unterschiedliche Werte bekommen.
    Was in diesem Falle zu eurer Theorie passen würde. Die Tatsache das der S5 Timer unabhängig zum SPS-Zyklus läuft !!
    Jetzt muss ich mir nur noch im Klaren darüber sein welche Variante, unabhängig von der Zykluszeit, die Beste ist...

    Im Grunde war der Ursprung des Gedankens, bzw. der Aufgabe, einen 4 Hz.-Takt zu erzeugen.
    Oder besser gesagt irgendeinen Takt auf einen einzelnen Bit zu programmieren ohne das Taktmerkerbyte zu nutzen.
    Es funktioniert so jetzt zwar, aber vielleicht habt ihr ja noch eine andere / bessere Variante für mich parat?!

    Danke auf jden Fall erst Mal für eure Zeit und Gedanken !

    Gruß, Torsten
    Angehängte Grafiken Angehängte Grafiken
    Programmierumgebung: Step7 V5.5, WinCCflex2008-SP3, TIA-PortalV13, MicroWinV4.0

  7. #5
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.356
    Danke
    455
    Erhielt 695 Danke für 520 Beiträge

    Standard

    Zitat Zitat von Toki0604 Beitrag anzeigen
    ABER bei dieser Variante funktioniert nichts:

    UN T1
    L S5T#500ms
    SE T1
    U T1
    ZV Z3
    Ähhm bei der Variante gibts noch ein essentielles Problem im Signalfluss....

    Annahme Timer ist die ersten 500ms gelaufen und geht auf T1 = True
    dann siehts im Zyklus so aus

    Code:
    UN T1 (T1 ist true daher VKE = 0)
    L S5T#500ms
    SE T1 (T1 wird neu gestartet, T1 ist also wieder False)
    U T1 (T1 ist hier also immer false)
    ZV Z3 (Zähler kann nicht zählen)
    Auch Larrys Variante mit dem Merker dazwischen wird daran nichts ändern.

    Das hier geht zum Beispiel schon
    Code:
    U T1            //diese Variante müsste auch insofern korrekt sein das du jedes Timer-Ereignis mitbekommst.
    ZV Z3
    
    UN T1
    L S5T#500ms
    SE T1
    Geändert von RONIN (19.11.2014 um 10:14 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  8. Folgender Benutzer sagt Danke zu RONIN für den nützlichen Beitrag:

    Toki0604 (19.11.2014)

  9. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo Torsten,
    hat es einen tieferen Sinn, dass du in NW2 und 3 den selben Timer benutzt ?

    Gruß
    Larry

  10. #7
    Avatar von Toki0604
    Toki0604 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.10.2010
    Ort
    Telgte
    Beiträge
    654
    Danke
    97
    Erhielt 129 Danke für 99 Beiträge

    Standard

    Hallo Larry,

    das war natürlich ohne tieferen Sinn , ein Copy/Paste Fehler heute morgen nach der Nachtschicht...

    Hallo Ronin,

    ich werde deine Variante zusammen und im Vergleich mit den anderen Varianten heute Nacht mal an der Firma testen.
    Hier habe ich derzeit nur PLCSIM zu Hause und kein Programm mit entsprechender Zykluszeitbelastung.
    In der Simulation läuft die Variante synchron zu T1 und T4
    Ich bin gespannt.

    Gruß, Toki
    Programmierumgebung: Step7 V5.5, WinCCflex2008-SP3, TIA-PortalV13, MicroWinV4.0

  11. #8
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.735
    Danke
    321
    Erhielt 1.523 Danke für 1.283 Beiträge

    Standard

    Zur Erklärung der Zählerunterschiede:
    In der Variante zwischen Z2/3 bzw. Z4 dürfte auch so ein Effekt sein.
    Bei der Variante in der der Timer auf einen Merker gelegt wird, startet der Timer dann erst zwei Zyklen später wieder,
    somit hast du pro Zählung einen Versatz jeweils in Höhe von 2x Zykluszeit (Was sich dann natürlich entsprechend addiert).

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  12. #9
    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 RONIN Beitrag anzeigen
    Auch Larrys Variante mit dem Merker dazwischen wird daran nichts ändern.
    Doch, ich denk schon!
    Denn der Merker steht nicht nur dazwischen sondern vor allem auch vor dem Start des Timers:
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Code:
    UN M100.0
    L S5T#500ms
    SE T1
    U T1
    = M 100.0
    
    U M 100.0  // diese Anweisung ist möglicherweise in dieser Konstellation schon überflüssig ...
    ZV Z3
    Und damit nimmt er das azyklische aus dem Timerablauf, was das eigentliche Problem darstellt.

  13. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    RONIN (19.11.2014)

  14. #10
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.356
    Danke
    455
    Erhielt 695 Danke für 520 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @hucki: Vollkommen richtig. Ich und meine Fischaugen haben natürlich die M100.0-Stelle, die du hervorgehoben hast, übersehen.

    @Larry: War ja klar, wie konnte ich auch nur zweifeln... *sichselbstinsMesserstürzt*
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

Ähnliche Themen

  1. Verständnisproblem mit AR in Schleife
    Von Pico1184 im Forum Simatic
    Antworten: 20
    Letzter Beitrag: 22.08.2013, 13:38
  2. Verständnisproblem mit pointer ?
    Von Waelder im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 03.08.2009, 09:02
  3. Obwohl ein Timer "1" ist, hat er das falsche VKE.
    Von Tigerkroete im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 22.08.2006, 22:26
  4. mit vke wert in timer schreiben !?
    Von tinnitus im Forum Programmierstrategien
    Antworten: 4
    Letzter Beitrag: 14.12.2005, 19:27
  5. VKE und Pointer im FC...
    Von halorenzen im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 23.07.2004, 13:16

Lesezeichen

Berechtigungen

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