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

Seite 2 von 9 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 85

Thema: Ein Problemchen beim Planen einer Schrittkette

  1. #11
    Registriert seit
    13.01.2011
    Ort
    Bremen
    Beiträge
    128
    Danke
    15
    Erhielt 7 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    denke SCL ist nicht so meine welt

    ich würde das so machen:
    Notaus ist in jeder Weiterschaltbedingung und ein "Schrittkette betrieb merker"

    Löst du nun Notaus aus, wird der "Schrittkette betrieb merker" eine 0

    Somit fehlen dir 2 Bedingungen. ist dein Notaus wieder entriegelt, soll ja die Anlage nicht gleich anlaufen daher drückst du danach noch einmal Start, dieser Startimpuls setzt dein "Schrittkette betrieb merker" wieder auf 1 und alles läuft weiter

    Wegen dem Handbetrieb würd ich es so machen

    Bedingung TIPP als weiterschaltbedingung ist immer 1wenn Automatik angewählt ist,
    wählst du nun Hand an, vergleichs du kette = 1 und setzt denTipp zurück, somit würde sie im schritt 1 warten, bis du Tipp drückst oder automatik

  2. #12
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.793
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    Damit aber die SK bei NotAus sofort stehen bleibt, müsste ich wohl in jedem Schritt zusätzlich die Abfrage auf Freigabe machen, wie anfangs schon von Larry vorgeschlagen. Sehe ich das richtig?
    ... oder außerhalb der CASE-Abfrage die Variable #Kette auf 0 schreiben wenn Not-Aus ...

    Ansonsten liegst du richtig ...

    Gruß
    Larry

  3. #13
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    ... oder außerhalb der CASE-Abfrage die Variable #Kette auf 0 schreiben wenn Not-Aus ...

    Ansonsten liegst du richtig ...

    Gruß
    Larry
    Hm, aber hätte ich das nichtschon mit folgender Programmierung außerhalb der Case-Abfrage, Larry?

    Code:
    IF Taster_Start AND Automatik AND Freigabe AND GS_Aktoren THEN
       SK_Kette := 1;
    ELSE
       SK_Kette := 0;
    END_IF;
    Da ja NotAus die Freigabe entzieht; würde doch über den ELSE-Zweig die Kette in Schritt 0 (= keine Aktion) gehen, oder nicht?

    Denn ich stelle mir das mal SPS-technisch so vor:

    - Baustein wird aufgerufen und von oben nach unten bearbeitet
    - Alle Bedingungen erfüllt und Start-Taster gedrückt --> Kette geht in Schritt1
    - Anschließend wird in Schritt2, 3, usw. gesprungen

    Die Frage aller Fragen ist jetzt nur, was passiert, wenn der Bediener z.B. in Schritt 3 NotAus betätigt?

    A) Die SK geht sofort in Schritt0 ODER

    B) Da die Bedingungen in Schritt3 für Schritt4 erfüllt sind, wird die SK verlassen und beim erneuten Aufruf des Bausteins hat die Variable #Kette den Wert4, so dass überhaupt nicht auf NotAus reagiert wird?
    Geändert von spirit (24.07.2013 um 16:12 Uhr)
    LG
    spirit

  4. #14
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Nochmal ich...

    Hatte versucht mir meine oben gestellte Frage selbst zu beantworten; komme aber auf keinen grünen Zweig!

    Code:
    IF Taster_Start AND Automatik AND Freigabe AND GS_Aktoren THEN
       SK_Kette := 1;
    ELSE
       SK_Kette := 0;
    END_IF;
    Soweit ich weiß, wird die Case-Anweisung sofort verlassen, wenn eine Übereinstimmung gefunden wurde.

    Also angenommen, mitten in der Bearbeitung von Schritt3 wird von Auto auf Hand umgeschaltet und die Variable "#SK_Kette" hat in Schritt3 den Wert4 (für nächsten Schritt) erhalten, dann wird die Case-Anweisung doch sofort verlassen, oder?

    Wenn die SPS den nächsten Zyklus startet und den Baustein erneut aufruft; auf was wird dann geschaut?

    1)
    Variable "#SK_Kette" hat den Wert 4; also geht es weiter mit Schritt4. ODER

    2)
    Die Bedingungen vor der Case-Anweisung sind nicht mehr erfüllt und die Kette geht in Schritt0.

    Vielen Dank für eine Aufklärung!
    LG
    spirit

  5. #15
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.793
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    Hm, aber hätte ich das nichtschon mit folgender Programmierung außerhalb der Case-Abfrage, Larry?

    Code:
    IF Taster_Start AND Automatik AND Freigabe AND GS_Aktoren THEN
       SK_Kette := 1;
    ELSE
       SK_Kette := 0;
    END_IF;
    Da ja NotAus die Freigabe entzieht; würde doch über den ELSE-Zweig die Kette in Schritt 0 (= keine Aktion) gehen, oder nicht?
    Ja schon ... aber immer - du wirst nie wirklich aus Schritt=1 herauskommen ...
    Also hier wirklich nur zum Setzen auf 0 benutzen ...

    Zitat Zitat von spirit Beitrag anzeigen
    Die Frage aller Fragen ist jetzt nur, was passiert, wenn der Bediener z.B. in Schritt 3 NotAus betätigt?

    A) Die SK geht sofort in Schritt0 ODER

    B) Da die Bedingungen in Schritt3 für Schritt4 erfüllt sind, wird die SK verlassen und beim erneuten Aufruf des Bausteins hat die Variable #Kette den Wert4, so dass überhaupt nicht auf NotAus reagiert wird?
    Immer zyklisch denken.
    Es passiert nichts mitten in der Bearbeitung. Der Zustand Not-Aus ist schon bei Aufruf des Bausteins (eigentlich bei Aufruf von OB1) da und es wird reagiert wie programmiert.
    Ist der Zustand in dem Zyklus noch nicht da arbeitet die Schrittkette wie programmiert. Der Unterschied in der Reaktion ist deine Zykluszeit ...
    Deshalb ja die obige Geschichte - wenn du bei NA die Schrittkette abbrechen willst dann diese Abfrage nicht in jeden Schritt programmieren sondern einmal für alle ...

    Gruß
    Larry

  6. #16
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Danke Larry, aber ich glaube ich bin grad mal wieder etwas überfordert... ist aber nichts Neues bei mir... komische SPS-Welt! Hätte vielleicht doch lieber Hauswirtschafterin werden sollen...

    Also nochmal langsam zum Mitschreiben...

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Ja schon ... aber immer - du wirst nie wirklich aus Schritt=1 herauskommen ...
    Also hier wirklich nur zum Setzen auf 0 benutzen ...

    Gruß
    Larry
    ... es sei denn, ich würde den "Taster_Start" mit einer pos. Flanke verbinden, dann würde ich doch schon aus Schritt 1 herauskommen, richtig?


    Zitat Zitat von Larry Laffer Beitrag anzeigen

    Immer zyklisch denken.
    Es passiert nichts mitten in der Bearbeitung. Der Zustand Not-Aus ist schon bei Aufruf des Bausteins (eigentlich bei Aufruf von OB1) da und es wird reagiert wie programmiert.
    Ist der Zustand in dem Zyklus noch nicht da arbeitet die Schrittkette wie programmiert. Der Unterschied in der Reaktion ist deine Zykluszeit ...
    Deshalb ja die obige Geschichte - wenn du bei NA die Schrittkette abbrechen willst dann diese Abfrage nicht in jeden Schritt programmieren sondern einmal für alle ...

    Gruß
    Larry
    Hm, das verstehe ich nun nicht so ganz.

    Was passiert genau in meinem Beispiel???

    Die Schrittkette ist gerade in Schritt3 und die Variable #Kette hat den Wert4 für den nächsten Schritt erhalten. In diesem Moment drückt der Bediener NotAus.

    Die Case-Anweisung wird ja verlassen, weil in Schritt3 eine Übereinstimmung gefunden wurde. Nun wird der SK-Baustein erneut aufgerufen und der Zustand NotAus ist vorhanden.

    Geht die Kette jetzt (weil im Baustein ganz oben im ELSE-Zweig so programmiert) in Schritt0 oder macht sie weiter in Schritt4, da ja die Variable #Kette den Wert4 hat?
    LG
    spirit

  7. #17
    Registriert seit
    12.11.2011
    Beiträge
    35
    Danke
    17
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vorschlag:

    UND (AUTOMATIK_START oder IMPULS_EINZELSCHRITT) UND NOTAUS = SCHRITTFREIGABE

    jetzt SCHRITTFREIGABE in jeden einzelnen Schritt einbinden.

    Im Schritt 0 noch einfügen: >UNDNICHT HNTE (Halt nach Taktende), wobei HNTE noch definiert werden muss. Dieses HNTE verhindert ein Wiederanlauf der Schrittkette nach Betriebsartwechsel.

    LG
    olddragon

    For fümpf Jahren wussste ich noch nich mal wie mann INSCHINÖR schreibt - un häute bin ich ainer!

    X: Was machst'n heute?
    Y: Nix!
    X: Haste doch gestern schon getan.
    Y: Bin noch nicht fertig!!!

  8. #18
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.582
    Danke
    63
    Erhielt 261 Danke für 221 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    Was passiert genau in meinem Beispiel???
    Das meinte Larry mit zyklisch denken.
    Das Programm läuft zyklisch von oben nach unten durch.
    Denk auch noch mal daran, dass das Prozessabbild am Anfang des Zyklus eingelesen wird.
    Wenn also im Zyklus zuerst der Not-Aus abgefragt wird, springt die Kette gemäß der Anweisung auch nach Schritt 0.

    Ob eine Schrittkette nur angehalten oder auf 0 zurückgesetzt werden sollte, muss man vermutlich individuell entscheiden.
    Nach Deiner Aussage soll der Zyklzus noch zu Ende gefahren werden, wenn man auf Hand umstellt. Was ist denn, wenn jemand eine "echte" Handfunktion braucht? Z.B. wenn etwas verklemmt ist o.ä. Muss er dann nicht doch etwas verfahren können, ohne den Zyklus zu beenden?

    Vielleicht noch ein weiterer Ansatz:
    Wenn man eine Schrittkette bei Not-Halt (nur) anhält, kann man die Aktoren sehr schön abschalten, indem man einen Merker in die Zuweisung für den Ausgang bringt.

    Code:
    U #Automatik
    UN #Stoerung
    U #Schritt_XY
    = Ventil_Auto_Ein
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

  9. #19
    Registriert seit
    12.11.2011
    Beiträge
    35
    Danke
    17
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Übrigens, zum Aufstarten Schritt 0 in Schritt 1:
    Du kommst zwar aus dem Schritt 1 heraus, wenn die Bedingung stimmt; allerdings wird der Schrittwert sofort wieder 0, wenn du die Starttaste losläßt oder eine andere der Startbedingungen nicht mehr stimmt.

    olddragon

    For fümpf Jahren wussste ich noch nich mal wie mann INSCHINÖR schreibt - un häute bin ich ainer!

    X: Was machst'n heute?
    Y: Nix!
    X: Haste doch gestern schon getan.
    Y: Bin noch nicht fertig!!!

  10. #20
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ok, dank' euch!

    Ich versuche es nochmals...

    Code:
    IF Taster_Start AND NOT FLM AND Automatik AND Freigabe AND GS_Aktoren OR LS1 and GS_Aktor1 THEN
       SK_Kette := 1;
    ELSEIF NOT Freigabe THEN
       SK_Kette := 0;
    END_IF;
    FLM := Taster_Start;
    Gehe ich recht in der Annahme, dass durch diese Programmierung ganz am Anfang des SK-Bausteins Folgendes passiert:

    1)
    Sind alles Bedingungen erfüllt und es wird der Start-Taster gedrückt so geht die SK in Schritt1 und sind dort die Bedingungen erfüllt, so geht die SK beim nächsten Aufruf des Bausteins in Schritt2. Im Automatikablauf geht die Kette dann über die OR-Bedingung selbstständig von Schritt0 in Schritt1.

    2)
    Drückt der Bediener während der Abarbeitung der SK den NotAus, so wird dieser Zustand (über das Prozessabbild) im nächsten SPS-Zyklus eingelesen und die Schrittkette geht beim nächsten Bausteinaufruf über den ELSEIF-Zweig in Schritt0. Wie lange das dauert, von der Auslösung des NotAus bis die Kette in Schritt0 geht, hängt von der Zykluszeit ab!

    Stimmen die Punkte 1 und 2 so? Hoffe es sehr!


    Zitat Zitat von Tigerente1974 Beitrag anzeigen
    Nach Deiner Aussage soll der Zyklzus noch zu Ende gefahren werden, wenn man auf Hand umstellt. Was ist denn, wenn jemand eine "echte" Handfunktion braucht? Z.B. wenn etwas verklemmt ist o.ä. Muss er dann nicht doch etwas verfahren können, ohne den Zyklus zu beenden?
    Nun, es gibt einen Schalter für Handbetrieb und wenn dieser aktiviert wird, dann können die Zylinder über das Display einzeln gefahren werden...

    Zitat Zitat von Tigerente1974 Beitrag anzeigen
    Vielleicht noch ein weiterer Ansatz:
    Wenn man eine Schrittkette bei Not-Halt (nur) anhält, kann man die Aktoren sehr schön abschalten, indem man einen Merker in die Zuweisung für den Ausgang bringt.

    Code:
    U #Automatik
    UN #Stoerung
    = Ventil_Auto_Ein
    Hm, aber werden die Aktoren nicht sowieso abgeschaltet, wenn die SK in Schritt0 geht? Ich dachte mir das so, dass im Ausgabebaustein bei einem best. Schritt die notwendigen Aktoren angesteuert werden. Und in Schritt0 passiert Nichts!
    Geändert von spirit (25.07.2013 um 08:32 Uhr)
    LG
    spirit

Ähnliche Themen

  1. PID-Regler in einer Schrittkette
    Von zloyduh im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 23.05.2009, 17:56
  2. Visualisierung planen und einsetzten
    Von voxrider im Forum HMI
    Antworten: 17
    Letzter Beitrag: 31.08.2008, 09:47
  3. Antworten: 1
    Letzter Beitrag: 28.07.2008, 18:09
  4. Transitionen einer Schrittkette
    Von neon im Forum Programmierstrategien
    Antworten: 7
    Letzter Beitrag: 28.11.2006, 11:00
  5. Timer in einer Schrittkette
    Von DirkKuhn im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 22.08.2005, 16:53

Lesezeichen

Berechtigungen

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