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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 28

Thema: Sprungbefehl

  1. #11
    Bollmann ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.07.2009
    Beiträge
    16
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hey, erstmal vielen Dank für die Antworten!
    So wie es borromeus im 4. Beitrag gemacht hat, hatte ich es auch schon. Allerdings sollte das "= A 9.x" nur stellvertretend sein. Ich möchte ja eigentlich ein Programm initiieren, wenn die jeweiligen Vergleichsbedingungen zutreffen. Daher dachte ich, dass ich auf die jeweilige Programmschleife mit einem Sprungbefehl zugreife. Nach Ablauf des Programms sollte dann wieder verglichen werden und erneut eine Programmentscheidung stattfinden.

  2. #12
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Dann nimm Merker und nach Ermittlung dieser

    L
    L
    >
    = Mx.y

    L
    L
    >
    = Mx.z

    U Mx.y
    SPB
    U Mx.z
    SPB

    ist krisensicherer als dieses herum- und übergespringe


    lG
    Karl

  3. #13
    Bollmann ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.07.2009
    Beiträge
    16
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Oh, das könnte klappen, danke!
    Kann man auch irgendwie verhindern, dass sich die Programmabläufe, die durch die Merker initiiert werden, überschneiden? Denn wenn sich während des Programms das dynamische Eingangssignal ändert, werden die Merker ja trotzdem gesetzt. :-/
    Also geht es, dass eine neue Vergleichsoperation erst stattfindet, nachdem das Programm abgelaufen ist?

  4. #14
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Das Eingangssignal ist während einer Bearbeitung des OB1 (ausser du arbeitest mit TPA.. vermutlich nicht) immer gleich.
    Bevor ein OB1 Zyklus beginnt wird die Peripherie in das sogenannte Eingangsabbild geschrieben... auf das greifst Du zu.
    War das Deine Frage?

  5. #15
    Bollmann ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.07.2009
    Beiträge
    16
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Nein, also ich habe einen analogen dynamischen Eingangswert den ich in das Merkerwort 1 (MW 1) transferiere. Das ist so eine AI/AO-Baugruppe, der lässt sich im Bereich von +/- 10V regeln.
    Der Eingangswert wird also ständig ins MW 1 transferiert. Das MW1 wird dann mit definierten Schwellwerten verglichen und die Programmentscheidung getroffen.

  6. #16
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Ja ist aber einen ganzen Zyklus lang gleich....

  7. #17
    Bollmann ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.07.2009
    Beiträge
    16
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Okay, und wie kann ich diesen Zyklus per Programmbefehl definieren bzw. eingrenzen?

    Zur Zeit Ist am Anfang nur die Sprungmarke und am Ende ein absoluter Sprungbefehl SPA Exit -> Exit: NOP 0. Muss man das mit "Loop" als Zyklus definieren oder ist das jetzt schon ein Programmzyklus?

  8. #18
    Registriert seit
    05.03.2007
    Ort
    Lindlar
    Beiträge
    112
    Danke
    19
    Erhielt 20 Danke für 18 Beiträge

    Standard

    Hallo Bollmann,
    du brauchst diesen Zyklus nicht einzugrenzen und einen "LOOP" brauchst du dort auch nicht, das regelt alles schon die SPS für dich.
    Vielleicht hast du schonmal was von dem EVA-Prinzip gehört?
    Eingabe - Verarbeitung - Ausgabe

    Das heißt wenn deine SPS sich im "RUN"-Zustand befindet passiert vereinfacht gesagt folgendes:
    1. Eingabe: Eingänge werden gelesen (digital und analog)
    2. Verarbeitung: Der OB1 wird abgearbeitet (natürlich auch alle Aufrufe und Funktionen die du reingeschrieben hast - ganz normal von oben nach unten)
    3. Ausgabe: Nach der Verarbeitung erfolgt die Ausgabe von dem was du programmiert hast an die Ausgänge (auch digital und analog)

    Das heißt also das wenn du z.B. ganz oben im OB1 einen Ausgang setzt und ihn ganz unten im OB1 wieder zurücksetzt, wird dieser Ausgang nicht angesteuert, da die Ausgabe erst nach der gesamten Abarbeitung des OB1 gemacht wird.
    Die Zyklusgeschwindigkeit hängt von der Länge des von dir geschriebenen Codes ab. Je mehr Operationen, Berechnungen, Zuweisungen etc. du durchführst, desto länger braucht die SPS für einen EVA-Zyklus. Es gibt auch noch die Möglichkeit einer "Mindestzykluszeit". Diese kann man bei den Objekteigenschaften der CPU in der Hardwarekonfiguration machen, jedoch denke ich nicht das du das benötigen wirst.
    IF Time < '09:00:00' THEN
    SELECT finger from right hand where ID=3
    END IF

  9. #19
    Bollmann ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.07.2009
    Beiträge
    16
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hm, ich glaub ich mein was anderes. *g*
    Also. Im OB1 steht bei mir nur drin:

    Call FC1
    NOP 0

    Und im Funktionsbaustein FC1 sind dann Vergleichsoperationen.
    Diese weisen je nach Ergebnis den jeweiligen Merkern das VKE 1 zu.
    Und mit diesen Merkern wird der Sprungbefehl zu einem "Programm" gegeben.

    Es soll ein Scheibenwischerprogramm werden.. also beispielsweise erfolgt nach einer bestimmten Vergleichsoperation der Sprungbefehl zum Programm "Intervall Wischen". Das besteht aus zahlreichen Und-Verknüpfungen und Merker-Abfolgen. Nun soll erst nachdem dieses Programm zu Ende ausgeführt wurde, also der Scheibenwischer wieder in Ausgangsposition ist, die nächste Vergleichsoperation stattfinden und den entsprechenden Merker setzen, der den Sprungbefehl zu einem entsprechenden Programm setzt. Also falls inzwischen das Eingangssignal gefallen ist auf "Dauerwischen".

    Diese Unterprogramme erst durchlaufen zu lassen und dann erst die nächste Programmentscheidung treffen zu lassen, mag mir nicht recht gelingen. :-/

  10. #20
    Registriert seit
    05.03.2007
    Ort
    Lindlar
    Beiträge
    112
    Danke
    19
    Erhielt 20 Danke für 18 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    okay, das könnte man recht einfach lösen in dem du mit der Vergleichsoperation und einem Hilfsmerker deine FCs nur bedingt aufrufst.

    z.B.

    O(
    L EW0
    L 1
    ==I
    )
    O M10.0
    UN M10.1
    UN M10.2
    CC FC1

    O(
    L EW0
    L 2
    ==I
    )
    O M10.1
    UN M10.0
    UN M10.2
    CC FC2

    O(
    L EW0
    L 3
    ==I
    )
    O M10.2
    UN M10.0
    UN M10.1
    CC FC3

    Im FC1:
    SET
    S M10.0
    .
    .
    Dein Programm
    .
    .
    Wenn Dein Programm fertig ist:
    R M10.0

    Im FC2:
    SET
    S M10.1
    .
    .
    Dein Programm
    .
    .
    Wenn Dein Programm fertig ist:
    R M10.1

    Im FC3:
    SET
    S M10.2
    .
    .
    Dein Programm
    .
    .
    Wenn Dein Programm fertig ist:
    R M10.2
    Geändert von Panzerknacker (01.08.2009 um 12:49 Uhr) Grund: Leichte Fehler in der Syntax behoben ;)
    IF Time < '09:00:00' THEN
    SELECT finger from right hand where ID=3
    END IF

Ähnliche Themen

  1. Mit Sprungbefehl aus der For-Schleife ?
    Von Sashimi im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 23.02.2011, 10:14
  2. Probleme mit Sprungbefehl s7/300
    Von freezer im Forum Programmierstrategien
    Antworten: 4
    Letzter Beitrag: 22.02.2010, 21:55
  3. Sprungbefehl SPBN
    Von petzi im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 10.05.2009, 15:16
  4. Kann Zähler nicht bei Sprungbefehl setzen
    Von Tigerkroete im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 25.07.2006, 14:07
  5. Sprungbefehl S5 CPU 928
    Von Anonymous im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 15.07.2005, 11:00

Lesezeichen

Berechtigungen

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