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

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

Thema: Abläufe speichern

  1. #1
    Registriert seit
    21.10.2013
    Beiträge
    29
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,


    ich habe folgendes Problem:

    Es soll ein Teststand gebaut werden mit dem Zylinder verfahren werden können.
    Die Zylinder sollen über Taster gesteuert werden.
    Die Idee ist das gespeichert wird wielange ein Zylinder fährt, dies gespeichert wird und der Ablauf dann von der Steuerung wiederholt werden kann.
    Habt Ihr hier vill eine Idee wie ich das angehen kann?

    Software:
    TIA V12

    Hardware:
    S7 1200

    Vielen Dank für Eure Hilfe

    Frank
    Zitieren Zitieren Abläufe speichern  

  2. #2
    Registriert seit
    25.03.2012
    Beiträge
    314
    Danke
    60
    Erhielt 9 Danke für 8 Beiträge

    Standard

    kann immer nur eine taste gleichzeitig gedrueckt werden?
    We must all suffer from one of two pains: the pain of discipline or the pain of regret. The difference is discipline weighs ounces while regret weighs tons.

  3. #3
    Frank_the_Tank ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.10.2013
    Beiträge
    29
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    am besten wäre es wenn es möglich ist das auch Tasten gleichzeitig gedrückt werden können

  4. #4
    Frank_the_Tank ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.10.2013
    Beiträge
    29
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Es können auch Taster gleichzeitig gedrückt werden

  5. #5
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard

    Hi Frank

    die 1200 hat neben TP, TON und TOF auch noch den nicht normgerechten TONR. Der kann ganz gut Zeit messen, muss aber explizit wieder zurückgesetzt werden.
    Irgenwie muss dein System drei Zustände unterscheiden. 1. Initialisieren, 2. Lernphase, 3. Verwendung.

    Also für jeden Zylinder gibt es einen Taster und eine Instanz eines TONR. Dann gibt es noch in einem Retain-Bereich einen Merker für den Zustand und für jeden Zylinder den gemerkten Zeitwert.
    Du hast nicht verraten, wann der Zylinder weit genug gelaufen ist. Hoffentlich, gibt es einen Endschalter, der dann den Taster außer Funktion setzt. Augenschein wäre blöd, denn man kann den TONR nicht runterzählen lassen.

    Schritt 1. Alles auf Null.

    Schritt 2. Lernphase beginnen. Was immer das auslösen mag, ein Panel oder ein weiterer Taster, oder ein Steuern mittels Variablentabelle.
    Wenn der Taster gedrückt wird, dann gibt damit damit den zugehörigen TONR frei. Wenn die Taste losgelassen, dann bleibt auch der TONR stehen.

    Schritt 3. Lernphase beenden. Was immer das auslösen mag, ein Panel oder ein weiterer Taster, oder ein Steuern mittels Variablentabelle.
    Die Werte aus den TONR in die retain Bereiche kopieren, damit sie nach dem nächsten Stromausfall noch da sind.

    Schirtt 4. Auf zur Verwendung: Was immer das auslösen mag, ein Panel oder ein weiterer Taster, oder ein Steuern mittels Variablentabelle.
    Was immer dein Auslöser sein mag, der für den Zylinder gemerkte Wert, kann nun für einen TON verwendet werden.

    Und übrigens: in KOP/FUP, kann man dafür sogar die selbe Instanz für TONR und TP verwenden, denn dort hat die den Datentyp IEC_TIMER. Warum SCL hier zwischen TONR_TIMER und TP_TIMER unterscheiden muss ist mir schleierhaft.

    'n schönen Tach auch
    HB

  6. #6
    Registriert seit
    29.03.2004
    Beiträge
    5.800
    Danke
    144
    Erhielt 1.710 Danke für 1.240 Beiträge

    Standard

    Ich würds etwas anders machen. Und zwar bei Aufzeichnung Start einen Timer auf 0 setzen, und dann die Signale die später abgespielt werden sollen auf Änderung überwachen. Ändert sich ein Signal, werden der Zeitpunkt (als Offset zum Startpunkt t=0) und die Signalzustände abgespeichert.
    Bei Abspielen wird dann wieder eine Zeit gestartet und zu den gespeicherten Zeitpunkten die Signale ausgegeben.

    Dann hat man einen Speicherbereich wie
    Code:
    Samples : ARRAY [0..511] OF  STRUCT // je nach Anzahl der aufzuzeichnender Signaländerungen
      TimeOffset : TIME;
      Signals : ARRAY[0..15] OF BOOL; // je nach gewünschter Anzahl an Signalen
    END_STRUCT;
    in dem man schon einiges unterbringen kann.

  7. #7
    Registriert seit
    25.03.2012
    Beiträge
    314
    Danke
    60
    Erhielt 9 Danke für 8 Beiträge

    Standard

    irgendwie muss man den ablauf abspeichern. z.b. in jedem taster-db jeweils die sequenz aus dauer + tasterzustand (an/aus) (--> UDT "TASTER") hinterlegen und später per Schleife abarbeiten (alle achsen parallel).

    oder du lässt beim lernen einen globalen Zähler als Referenz laufen und speicherst dir für jeden Taster nur die an-Zustände+globalem Zählerstand in den jew. Taster-DB weg. Beim Abarbeiten vergleichst du für jeden Eintrag, ob der Zählstand erreicht oder überschritten wurde und aktivierst den jew. Ausgang für die gemerkte Dauer.


    Kann man das System in unterschiedlichen Geschwindigkeiten verfahren?

  8. #8
    Registriert seit
    25.03.2012
    Beiträge
    314
    Danke
    60
    Erhielt 9 Danke für 8 Beiträge

    Standard

    Thomas' Idee ist auch nicht schecht: alle Taster-Eingänge in ein Bitmuster codieren und Änderungen protokollieren. Beim Abspulen einfach die Sequenz durchlaufen und das jeweilige Bitmuster zum ab jew. prot. Zählerstand demuxen und auf die Ausgänge jagen

    Hat den Vorteil, man braucht theoretisch nur 1 Timer, den "Zeitstrahl" eben
    Geändert von Flux (21.10.2013 um 23:28 Uhr)

  9. #9
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Ich würds etwas anders machen. Und zwar bei Aufzeichnung Start einen Timer auf 0 setzen, und dann die Signale die später abgespielt werden sollen auf Änderung überwachen. Ändert sich ein Signal, werden der Zeitpunkt (als Offset zum Startpunkt t=0) und die Signalzustände abgespeichert.
    Bei Abspielen wird dann wieder eine Zeit gestartet und zu den gespeicherten Zeitpunkten die Signale ausgegeben.

    Dann hat man einen Speicherbereich wie
    Code:
    Samples : ARRAY [0..511] OF  STRUCT // je nach Anzahl der aufzuzeichnender Signaländerungen
      TimeOffset : TIME;
      Signals : ARRAY[0..15] OF BOOL; // je nach gewünschter Anzahl an Signalen
    END_STRUCT;
    in dem man schon einiges unterbringen kann.
    Dann hat man nachher das ganze Getaste wieder -- glaube nicht, dass das die Aufgabenstellung ist. Meine Lösung ermittelt die Summe der gedrückten Zeit für jeden der Zylinder.

  10. #10
    Registriert seit
    25.03.2012
    Beiträge
    314
    Danke
    60
    Erhielt 9 Danke für 8 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ......... . . .
    Geändert von Flux (22.10.2013 um 08:12 Uhr)

Ähnliche Themen

  1. TwinCAT - MotionControl - Abläufe
    Von twincatter im Forum CODESYS und IEC61131
    Antworten: 8
    Letzter Beitrag: 26.07.2013, 12:34
  2. Antworten: 2
    Letzter Beitrag: 14.01.2013, 08:21
  3. Antworten: 3
    Letzter Beitrag: 29.06.2012, 14:35
  4. Antworten: 5
    Letzter Beitrag: 10.11.2008, 18:11

Lesezeichen

Berechtigungen

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