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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Abläufe speichern

  1. #11
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von HelleBarde Beitrag anzeigen
    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.
    Die Funktion ist aber gegeben, und so lassen sich auch lange Abläufe und gleichzeitg betätigte Taster aufzeichnen.
    Zum Abspielen startet man einen einzigen Timer mit der Laufzeit der Zeit beim letzten Sample.
    Bei Start setzt man den Array-Index auf Null, und erhöht den Index jeweils wenn die Timer-Ablaufzeit >= der Zeit an der Array-Position ist.
    Die Ausgänge bekommen dann das Signal an der aktuellen Array-Position. Das lässt sich auch in FUP in ein paar Netzwerken programmieren.

  2. #12
    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

    Die Funktionsweise habe ich verstanden, ich weiss nur nicht wie ich das in Fup machen soll. Das Problem ist das ja nicht bekannt ist in welcher Reienfolge die Taster gedrückt werden und ich nicht weiss wie ich die Zeit und den Ausgang unter einer Variablen speichern kann die dann beim zweiten Taster einfach hochzählt?

    MfG Rene

  3. #13
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Eine Zeit direkt als Versatz zu einem Startzeitpunkt bekommst du beispielsweise, wenn du einen TON-Timer mit der maximalen Dauer von 24 Tagen bei Aufzeichnung startest, und dann den Ausgang ET bei Änderung eines Signals zusammen mit deinen Signalzuständen wegspeicherst. Bei Aufzeichnung und Wiedergabe benötigst du somit nur jeweils einen Timer, oder lässt beide Funktionen in einem Zeitinterrupt laufen, dann gehts auch ganz ohne Timer.
    Wenn du bei Änderung eines Signals immer alle Signalzustände mitspeicherst, ist es egal in welcher Reihenfolge die Taster gedrückt werden. Bei der Wiedergabe der Sequenz werden dann alle Signalzustände 1:1 so ausgegeben wie sie aufgezeichnet wurden. Das wäre zumindest mein Vorschlag. Das ist auch in FUP nur etwas mehr als eine Hand voll Netzwerke (je nach Anzahl der Signale).

    Hellebarde hatte da aber einen anderen Ansatz. Bei ihm kommt letztenendes (wenn ich das richtig verstanden habe) ein mehr oder weniger lesbares Programm heraus. Bei mir ist das nur eine Aufzeichnungs- und Wiedergabefunktion.
    Du hast noch nicht geschrieben für welche Variante du dich entschieden hast.

  4. #14
    Registriert seit
    06.10.2003
    Beiträge
    3.403
    Danke
    447
    Erhielt 502 Danke für 406 Beiträge

    Standard

    Hallo Frank,

    Zitat Zitat von Frank_the_Tank Beitrag anzeigen
    ..Das Problem ist das ja nicht bekannt ist in welcher Reienfolge die Taster gedrückt..
    Du speicherst bei Änderung eines Eingangs immer ALLE benötigten Eingänge. So wie von Thomas beschrieben habe ich es auch schon einmal umgesetzt, jedoch unter Step7 Classic und in AWL oder/und in SCL. Im Prinzip schreibst du alle zum Teachen benötigten Eingänge in ein Doppelwort. Beim Teachen überwachst du dieses Doppelwort auf Veränderungen und ermittelst die Zeit zwischen den Veränderungen. Beides (Doppelwort mit den Eingangssignalen und die jeweilige Zeitdauer) speicherst du bei jeder Änderung in einem Register (DB - ARRAY OF UDT (DW, TIME). Beim Teachen gibst du das Doppelword mit den Eingangssignalen direkt auf ein weiteres Doppelwort aus. In diesem Doppelwort steht jetzt (beim Teachen) ein Abbild deiner Eingänge. Die Bits dieses DWs verwendest du in deinem Programm genau so, wie du ansonsten die Eingänge verwenden würdest. In der Automatikfunktion gibst du nach Ablauf der jeweils abgespeicherten Zeit das jeweils abgespeicherte DW auf das "Ausgangs-DW". Im Prinzip einfach, aber eventuell schwierig zu verstehen oder zu erklären.

    Wenn du das ganze im Weckalarm machst, kannst du die Zeiten sehr genau und vor allem exakt reproduzierbar aus dem Aufrufintervall des OB3* ermitteln. In meinem Fall generiere ich aus den Eingangssignalen Rampen für Sollpositionen von hydraulischen Achsen. Ein möglichst genauer Zeittakt (Weckalarm) ist für die Reproduzierbarkeit sehr zu empfehlen.

    Wie werden denn deine Zylinder angesteuert? Fahren sie nur in eine Endlage oder werden sie irgendwie positioniert?


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

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

    Standard

    Wenn ich nen Zähler im OB3x starte, läuft der dann immer nur während der Bearbeitung des OB3x oder unabh. (also mitm OB1) ?

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

    Standard

    Hi

    ich habe
    Zitat Zitat von Frank_the_Tank Beitrag anzeigen
    Es soll ein Teststand gebaut werden mit dem Zylinder verfahren werden können.
    Die Zylinder sollen über Taster gesteuert werden.
    so verstanden, dass es für jeden Zylinder je einen Taster gibt, und solange man den Taster drückt, fährt der entsprechende Zylinder. Lässt man los, dann stoppt der Zylinder und drückt man wieder, fährt er wieder. Und durch etwas was uns Frank nicht verriet, meint derjenige welche da die Taster drückt, dass der eine Zylinder weit genug gefahren ist.

    Dann las ich
    Zitat Zitat von Frank_the_Tank Beitrag anzeigen
    Die Idee ist das gespeichert wird wielange ein Zylinder fährt,
    Ich interpretiere das so, dass es für den einen Zylinder egal ist wie oft man auf den einen Taster gedrückt hat. Letztendlich zählt die Zeit die dieser Zylinder gefahren wurde.

    Aus
    dies gespeichert wird und der Ablauf dann von der Steuerung wiederholt werden kann
    folgere ich: man hat im Programm zwei "Betriebszustände": Lernen, Fahren

    Aus
    Es können auch Taster gleichzeitig gedrückt werden
    folgerte ich, man braucht hier unabhängige "Systeme".

    Zum "Lernen" kann man einen TONR pro Zylinder verwenden. Solange dessen Eingang true ist, zählt der TONR die Zeit. Ist der Eingang false, bleibt er stehen, wird aber eben nicht zurückgesetzt. Dazu gibt es einen RESET Eingang an der Box. Drückt man wieder auf den Taster läuft die Zeit weiter.

    if "Lernen" then
    "Zylinder1_tonr"( IN := "Taster1" );
    "Zylinder2_tonr"( IN := "Taster2" );
    "Zylinder3_tonr"( IN := "Taster3" );
    end_if

    if "gelernt" then
    "Zylinder1_Zeit" := "Zylinder1_tonr".ET
    ...
    end_if

    if "Ablauf_wiederholen" then
    "Zylinder1_tp"( IN := "start", PT := "Zylinder1_Zeit", Q => "Zylinder1_Run" )




    Aber vielleicht habe ich da alles ganz falsch verstanden, dann entschuldigt dass ich auf die falsche Fährte gelockt habe.

    'n schönen Tach auch
    HB

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

    Standard

    Hi Flux
    Zitat Zitat von Flux Beitrag anzeigen
    Wenn ich nen Zähler im OB3x starte, läuft der dann immer nur während der Bearbeitung des OB3x oder unabh. (also mitm OB1) ?
    Zähler zählen wenn sie Flanken sehen. Das hat mit Ablaufebenen gor nix zu tun das.

    Bei Zeiten ist das was ganz anderes und hängt davon ab welche AS du hast.

    Bei AS300/400 werden die IEC Timer durch SFB realisiert. Die zucken nur, wenn du sie auch aufrufst. Also im OB37 starten (CALL TON, Timer1) und im OB31 auf Timer1.ET zugreifen funktioniert nicht. ET ändert sich nur durch den CALL.
    Bei AS1200/1500 werden die IEC Timer durch keine Ahnung was realisiert. Die zucken immer. Also im OB37 starten (CALL TON, Timer1) und im OB31 auf Timer1.ET zugreifen funktioniert. Auch die Abfrage auf Timer1.Q aktualisiert die Instanz!

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

    Flux (22.10.2013)

  9. #18
    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


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe heute mal den Vorschlag von Onkel Dagobert in einem PAP zusammengefasst. Die Idee schaut überschaubar und lösbar aus.
    Habe dann auch gleich angefangen das in SCL zu schreiben, nur zu vielen Bausteinen gibt es keine Beispiele für die Beschaltung, gibt es da eine Seite oder so wo es mehr Beispiele gibt als bei der Hilfe vom TIA Portal?


    Vielen Dank für Eure Hilfe
    Geändert von Frank_the_Tank (23.10.2013 um 16:21 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
  •