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

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

Thema: TC2 Zeiten für Signalwechsel aller Ausgänge ist Zykluszeitabhängig

  1. #1
    Registriert seit
    13.12.2011
    Beiträge
    1.420
    Danke
    147
    Erhielt 161 Danke für 152 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    wie heißt es doch, alle guten Dinge sind drei, hier kommt mein drittes und hoffentlich letztes Problem für heute.
    Für einen anderen Test habe ich ein Lauflichtprogramm für ein CX5010 erstellt bei dem die Bits eines Words jeweils um ein Bit weiter rotieren. Was mir jetzt aufgefallen ist, war das je nach Zykluszeit die Zeitdauer die die CPU zum Umschalten aller Ausgänge braucht unterschiedlich lang ist. Mal ein Beispiel:
    Im aktuellen Zyklus wird das Bit per ROL von 2 nach 3 verschoben, die Zykluszeit beträgt 1s. Nun geht an den Ausgängen zunächst Bit 2 auf false und ca. 500ms später geht Bit 3 auf true. Mir ist schon klar, dass das nicht unbedingt gleichzeitig passieren kann, aber das das so relativ lange dauert und die Zeit sich mit der Zykluszeit ändert ist für mich doch etwas unverständlich. Nicht das Missverständnisse aufkommen, ich meine nicht die Zeit die benötigt wird um ein Word komplett zu rotieren, die muss sich natürlich mit der Zykluszeit ändern, da pro Zyklus nur um ein Bit verschoben wird.

    Von irgendwas mit Internetzugang gesendet.
    Zitieren Zitieren TC2 Zeiten für Signalwechsel aller Ausgänge ist Zykluszeitabhängig  

  2. #2
    Registriert seit
    04.11.2014
    Beiträge
    139
    Danke
    1
    Erhielt 25 Danke für 23 Beiträge

    Standard

    Also wenn beide Ausgänge im selben Zyklus beschrieben werden, dann sollten sich doch die Ausgänge (so gut wie) gleichzeitig ändern?
    Läuft den Bus jetzt auch mit 1s Zykluszeit? Da läufst du doch sogar in den Watchdog, oder nicht?

    Kannst du den Code Ausschnitt mal posten?

  3. #3
    Registriert seit
    13.12.2011
    Beiträge
    1.420
    Danke
    147
    Erhielt 161 Danke für 152 Beiträge

    Standard

    Hallo Hack,
    gerne, hier ist das Machwerk:
    Code:
    FUNCTION_BLOCK FB_Light
    VAR_INPUT
     I_enDirection : EN_Direction;
    END_VAR
    VAR_OUTPUT
    END_VAR
    VAR
     wLightPos : WORD  := 16#0001;
    END_VAR
    
    Q_wLEDs := wLightPos;
    xLED1 := wLightPos.0;
    xLED2 := wLightPos.1;
    xLED3 := wLightPos.2;
    xLED4 := wLightPos.3;
    xLED5 := wLightPos.4;
    xLED6 := wLightPos.5;
    xLED7 := wLightPos.6;
    xLED8 := wLightPos.7;
    xLED9 := wLightPos.8;
    xLED10 := wLightPos.9;
    xLED11 := wLightPos.10;
    xLED12 := wLightPos.11;
    xLED13 := wLightPos.12;
    xLED14 := wLightPos.13;
    xLED15 := wLightPos.14;
    xLED16 := wLightPos.15;
    IF I_enDirection = Forward THEN
     wLightPos := ROL(wLightPos, 1);
    ELSIF I_enDirection = Backward THEN
     wLightPos := ROR(wLightPos, 1);
    END_IF
    Auf die Ausgangskarte (KL2809) ist Q_wLEDs gemappt jeweils mit einem um je Ausgang um 1 höheren Offset. Die Zeiten der Tasks in System Manager habe ich nicht geändert, lediglich im PLC Control habe ich die Zykluszeit unter Taskkonfiguration angepasst.
    Die Binärvariablen sind für das TC Scope.

    Gruß Oliver

  4. #4
    Registriert seit
    04.11.2014
    Beiträge
    139
    Danke
    1
    Erhielt 25 Danke für 23 Beiträge

    Standard

    Kann ich mir nicht wirklich erklären.

    Es könnte sein, dass es echt am Bus liegt. Der Bus wird normalerweise über die verknüpfte Task getriggert. Normalerweise ist der Watchdog dort 100ms.
    Ich hatte mit Zykluszeiten > 100ms auch schon Probleme.

    Weiß aber nicht ob das die Lösung ist.

    Grüße

  5. #5
    Registriert seit
    13.12.2011
    Beiträge
    1.420
    Danke
    147
    Erhielt 161 Danke für 152 Beiträge

    Standard

    Zitat Zitat von Hack Beitrag anzeigen
    Es könnte sein, dass es echt am Bus liegt. Der Bus wird normalerweise über die verknüpfte Task getriggert. Normalerweise ist der Watchdog dort 100ms.
    Ich hatte mit Zykluszeiten > 100ms auch schon Probleme.
    Selbst bei 100ms kann man noch halbwegs erkennen, dass erst der eine Ausgang aus und dann der andere an geht. Ich erwarte ja, wie gesagt, nicht, dass die Ausgänge gleichzeitig schalten, aber doch so schnell nach einander, dass man dies nicht mehr mit bloßem Auge erkennen kann und erst recht nicht, dass der Zeitraum sich mit der Zykluszeit ändert.

  6. #6
    Registriert seit
    04.11.2014
    Beiträge
    139
    Danke
    1
    Erhielt 25 Danke für 23 Beiträge

    Standard

    Verstehe nicht was dort passiert. Die Daten werden ja unter einmal versendet im Prozessabbild.

    Ich versuche das bei Gelegenheit nächste Woche nach zu stellen.

    Grüße und schönes WE

  7. Folgender Benutzer sagt Danke zu Hack für den nützlichen Beitrag:

    oliver.tonn (19.02.2016)

  8. #7
    Registriert seit
    13.12.2011
    Beiträge
    1.420
    Danke
    147
    Erhielt 161 Danke für 152 Beiträge

    Standard

    Danke, bei Bedarf lasse ich Dir auch gerne die PRO und TSM Datei zukommen. Das Ganze ist für meinen Spielaufbau zum Üben.

    Auch ein schönes WE

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

    Standard

    Das interessiert mich jetzt aber auch mal. Müsste sich ja einfach mit einem Speicher Oszi messen lassen. Wenn ich am Mo im Büro bin (und dran denke) kann ich das ja recht fix überprüfen. Bastel- und Spiel SPSen hängen genug an der Wand.
    Sänd from mei Kombjudder mitse Dastadurr.

  10. #9
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Wie erzeugst Du die 1s Wartezeit zwischen den Aufrufen des FB_Light?
    Gibt es bei TC sowas wie eine Zuordnung des Prozessabbildes zu einer Task? Wie oft wird diese "E/A"-Task aufgerufen?
    Besteht Dein Programm nur aus dem FB_Light oder gibt es noch wesentlich mehr Code? Schreiben womöglich noch weitere Programmteile auf die Ausgänge der Klemme?

    Ich kenne Twincat nicht und ich kenne die KL2809 nicht, doch ich würde erwarten, daß alle Ausgänge der Klemme gleichzeitig schalten.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  11. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    weißnix_ (20.02.2016)

  12. #10
    Registriert seit
    13.12.2011
    Beiträge
    1.420
    Danke
    147
    Erhielt 161 Danke für 152 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von MasterOhh Beitrag anzeigen
    Bastel- und Spiel SPSen hängen genug an der Wand.
    Das möchte ich mal von mir behaupten können, aber da ich das Ganze privat kaufe ist das Ge1ldsäckel recht schnell leer. An mein Testrack soll noch eine S7-314C mit DP und PN und noch 1-2 Beckhoff CPU mit TC2 und NCI und eine mit TC3, dazu noch etwas Peripherie und IOs., aber eins nach dem Anderen.

Ähnliche Themen

  1. Ausgänge bei Breakpoint nicht abschalten in TC2
    Von oliver.tonn im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 22.02.2016, 08:08
  2. Die uneinsichtigsten Fragesteller aller Zeiten
    Von vierlagig im Forum Stammtisch
    Antworten: 132
    Letzter Beitrag: 23.06.2013, 13:52
  3. Aller Anfang ist schwer..
    Von aileron im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 06.03.2013, 17:42
  4. Aller Anfang ist schwer
    Von SPS_ANFAENGER001 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 04.04.2006, 12:53
  5. Signalwechsel zählen und Zahl im Ausgabefeld darstellen
    Von dellamorte-dellamore im Forum HMI
    Antworten: 3
    Letzter Beitrag: 13.06.2005, 13:01

Lesezeichen

Berechtigungen

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