TIA Ein- und Ausschalten Abfolge mit Taster

SPS_Step

Level-2
Beiträge
108
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

Ich habe ein Problem das gestaltet sich wie folgt:

Ich habe einen Taster um den Automatikbetrieb einer Anlage Ein bzw. Auszuschalten. In dem Moment wo ich den Taster betätige wird jeweils der S- und auch der R-Eingang von dem SR-Glied betätigt.

Kurioser Weise funktioniert diese Konstellation in der alten Steuerung (S5) nur jetzt in einer S7-1200 nicht mehr. Ist die S5 langsamer oder hat das einen bestimmten Grund? Wahrscheinlich liegt die Lösung auf der Hand, aber ich finde sie leider gerade nicht. Habe das ganze in einen FB gepackt und den Eingang als Variable an den Input beim Aufruf ergänzt.

Grüße
 

Anhänge

  • Problem_Einschalten_Ausschalten.PNG
    Problem_Einschalten_Ausschalten.PNG
    52,6 KB · Aufrufe: 342
Zuletzt bearbeitet:
Ich würde im 2. Netzwerk die beiden Und-Glieder jeweils auf einen eigenen Hilfsmerker schalten und in einem Netrzwerk 3 dann diese Hilfsmerker auf den SR "Automatikbetrieb".

Funktionieren oder nicht funktionieren hängt hier von der Reihenfolge der Abarbeitung der einzelnen Anweisungen im NW ab. Das konnte man in den alten 300-er Steuerungen gut sehen, wenn man von KOP/FUP auf AWL umgeschalten hat. Geht nun bei den 1200 und 1500 Steuerungen leider nicht mehr. Richitg sauber war es schon damals nicht, das so zu programmieren, wie du es zeigst.
 
Hallo,

Vielen Dank für die Antworten.

@ Ralle, ja mit dem aufteilen funktioniert es, super vielen Dank. :D

@hucki ja da habe ich auch schon drüber nachgedacht und das gelesen, leider scheitert es an der richtigen Umsetzung. Ich habe das aufgebaut, bekomme aber das unten stehende Ergebnis (ständiges Ein/-Ausschalten)
 

Anhänge

  • Problem_Einschalten_Ausschalten_Stromstoss.PNG
    Problem_Einschalten_Ausschalten_Stromstoss.PNG
    15,1 KB · Aufrufe: 250
Zuviel Werbung?
-> Hier kostenlos registrieren
Was davon schaltet ständig aus/ein?

Verwendest Du Deinen Code in einem FB oder FC?
Bei Letzterem muss #Ausgang ein INOUT sein, weil #Ausgang erst den vorigen Zustand lesen muss.

Ich verwende den Code in einem FB. Das SR Glied #Test schaltet nach dem ersten betätigen des Tasters immer ein und wieder aus (Falsch - Sollte dauerhaft 1). Wenn ich Ihn ein zweites mal betätige dann bleibt das SR-Glied aus (Richtig - dauerhaft 0).
 
Wenn es unbedingt mit SR sein soll: Im S/R-Netzwerk muß der Zustand des #Merker_Automatikbetrieb von vor dem Netzwerk verknüpft werden. Also vor dem Netzwerk auf eine Hilfsvariable umkopieren und dann diese Hilfsvariable verwenden.

Noch ein Fehler: "Impuls_Anlage_Ein" ist ein Output. Dein Programm liest den Output wieder ein - das sollte von aktuellen TIA-Versionen angemeckert werden.
Und: Der Name "Impuls_Anlage_Ein" ist ungünstig gewählt. Der Impuls kommt auch wenn die Anlage ausgeschaltet wird.

FUP mit SR:
Code:
                  +----------+     #Impuls_Taster_Ein_Aus
 #Taster_Anlage_  |  P_TRIG  |     +-----+
         Ein_Aus--|CLK      Q|--+--|  =  |
                  +----------+  |  +-----+
                  #FHM_Taster   |
                                |  #HM_Impuls
                                |  +-----+
                                +--|  =  |
                                   +-----+

                  #HM_Automatik
        #Merker_  +-----+
Automatikbetrieb--|  =  |
                  +-----+


                  +-----+     #Merker_
                  |  &  |     Automatikbetrieb
      #HM_Impuls--|     |     +------+
                  |     |     |  SR  |
   #HM_Automatik-o|     |-----|S     |
                  +-----+     |      |
                              |      |
                  +-----+     |      |
                  |  &  |     |      |
      #HM_Impuls--|     |     |      |     #Automatikbetrieb
                  |     |     |      |     +-----+
   #HM_Automatik--|     |-----|R1   Q|-----|  =  |
                  +-----+     +------+     +-----+
Harald
 
Zuletzt bearbeitet:
Das SR Glied #Test schaltet nach dem ersten betätigen des Tasters immer ein und wieder aus (Falsch - Sollte dauerhaft 1). Wenn ich Ihn ein zweites mal betätige dann bleibt das SR-Glied aus (Richtig - dauerhaft 0).
Ja, so hast Du's auch programmiert.

#Ausgang ist der Stromstossschalter, der mit jeder Betätigung des Tasters seinen Zustand wechselt. PS: #Ausgang ist also schon der Automatikmerker. /PS
#Test wird hingegen mit Deinem Code in jedem Zyklus negiert, in dem #Ausgang auf HIGH ist.

Sollte #Test einfach mit #Ausgang mitgehen oder negiert zu #Ausgang sein oder bei jeder positiven Flanke von #Ausgang seinen Zustand ändern oder was hattest Du damit vor?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn es unbedingt mit SR sein soll: Im S/R-Netzwerk muß der Zustand des #Merker_Automatikbetrieb von vor dem Netzwerk verknüpft werden. Also vor dem Netzwerk auf eine Hilfsvariable umkopieren und dann diese Hilfsvariable verwenden.

Noch ein Fehler: "Impuls_Anlage_Ein" ist ein Output. Dein Programm liest den Output wieder ein - das sollte von aktuellen TIA-Versionen angemeckert werden.
Und: Der Name "Impuls_Anlage_Ein" ist ungünstig gewählt. Der Impuls kommt auch wenn die Anlage ausgeschaltet wird.

FUP mit SR:
Code:
                  +----------+     #Impuls_Taster_Ein_Aus
 #Taster_Anlage_  |  P_TRIG  |     +-----+
         Ein_Aus--|CLK      Q|--+--|  =  |
                  +----------+  |  +-----+
                                |
                                |  #HM_Impuls
                                |  +-----+
                                +--|  =  |
                                   +-----+

                  #HM_Automatik
        #Merker_  +-----+
Automatikbetrieb--|  =  |
                  +-----+


                  +-----+     #Merker_
                  |  &  |     Automatikbetrieb
      #HM_Impuls--|     |     +------+
                  |     |     |  SR  |
   #HM_Automatik-o|     |-----|S     |
                  +-----+     |      |
                              |      |
                  +-----+     |      |
                  |  &  |     |      |
      #HM_Impuls--|     |     |      |     #Automatikbetrieb
                  |     |     |      |     +-----+
   #HM_Automatik--|     |-----|R1   Q|-----|  =  |
                  +-----+     +------+     +-----+
Harald

Also ich ich habe die Lösung verstanden, allerdings kann ich die Funktion hiermit nicht erfüllen. Kann ich evtl. die Pos. Fl. nicht forcen? Habe leider jetzt nur die Möglichkeit das Ergebnis mit PLC Sim auszuprobieren. Deine Fehler habe ich korrigiert. Hat die Lösung mit der Flanke einen Vorteil gegenüber der Ursprünglichen Variante von @Ralle?
 
Ja, so hast Du's auch programmiert.

#Ausgang ist der Stromstossschalter, der mit jeder Betätigung des Tasters seinen Zustand wechselt. PS: #Ausgang ist also schon der Automatikmerker. /PS
#Test wird hingegen mit Deinem Code in jedem Zyklus negiert, in dem #Ausgang auf HIGH ist.

Sollte #Test einfach mit #Ausgang mitgehen oder negiert zu #Ausgang sein oder bei jeder positiven Flanke von #Ausgang seinen Zustand ändern oder was hattest Du damit vor?

Achso, ich glaube ich habe etwas vergessen zu erwähnen, Entschuldigung. Ich wollte ein SR nehmen weil noch weitere Bedingungen an das Aus und Einschalten geknüpft werden (Motorschutz, Rückmeldungen usw.)

Der Taster dient nur dem einmaligen Starten und danach dem Ausschalten, es muss aber noch von mit anderen Bedingungen eingeschaltet und von anderen Bedingungen ausgeschaltet werden.
 
Wenn Du in der FAQ zum 2. Beitrag gehst, findest Du auch Zentralsteuereingänge für den Stromstossschalter, die ein gezieltes Setzen/Rücksetzen bewirken bzw. das Toggeln dadurch ggf. verhindern.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
allerdings kann ich die Funktion hiermit nicht erfüllen. Kann ich evtl. die Pos. Fl. nicht forcen?
Ich verstehe nicht was Du damit meinst.

Hat die Lösung mit der Flanke einen Vorteil gegenüber der Ursprünglichen Variante von @Ralle?
Unterschied zum Ralle-Vorschlag: Bei meiner Variante wird die Logik des SR nicht so künstlich "zerissen" sondern bleibt als ein Netzwerk sichtbar.

Warum schreibst Du hier "Lösung mit der Flanke"? Die Flankenerkennung mit P_TRIG anstatt der unnötig umständlichen "verschwurbelten" S5-Lösung hat mit den Vorschlägen von Ralle nichts zu tun.

Harald
 
Hallo,

Ich glaube wir haben aneinander vorbei geredet.

Ich brauche nur die Funktion der Lösung von @Ralle an einem SR damit ich noch weiter verknüpfen kann und ich dachte man könnte es auch zentraler mit einer positiven Flanke o. ähnlichem lösen.

Vielen Dank für eure zahlreichen Antworten. :)
 
Wenn Du in der FAQ zum 2. Beitrag findest Du auch Zentralsteuereingänge für den Stromstossschalter, die ein gezieltes Setzen/Rücksetzen bewirken bzw. das Toggeln dadurch ggf. verhindern.

Hallo,

Genau das funktioniert super!! Vielen Dank! Habe es wie unten gelöst.

Schönen Abend noch!
 

Anhänge

  • Loesung_Ein_Aus.PNG
    Loesung_Ein_Aus.PNG
    16,7 KB · Aufrufe: 178
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
1. In dem Moment wo ich den Taster betätige wird jeweils der S- und auch der R-Eingang von dem SR-Glied betätigt.

2. Kurioser Weise funktioniert diese Konstellation in der alten Steuerung (S5) nur jetzt in einer S7-1200 nicht mehr. Ist die S5 langsamer oder hat das einen bestimmten Grund? Wahrscheinlich liegt die Lösung auf der Hand, aber ich finde sie leider gerade nicht.
Zu 1.:
Nein, das stimmt so nicht. Der im Netzwerk 1 erzeugte FlankenImpuls '#Impuls_Anlage_Ein' wird im Netzwerk 2 entweder auf den S- oder den R-Eingang geleitet, abhängig vom Zustand des SR-Gliedes des Netzwerks 2. Es mag allerdings so sein, dass in der S7-Variante von FUP die erwartete Reihenfolge der Abarbeitung (zuerst die beiden Abfragen des '#Merker_Automatikbetrieb' und dann erst seine neue Bildung) nicht eingehalten wird.

Zu 2.:
Ja, S5 war definitiv langsamer als S7. Eine längere ZyklusZeit kann natürlich das Prellen eines (Taster-)Kontaktes besser unterdrücken bzw. eigentlich "überbrücken".

Warum hat man in S5 nicht mit XOR-Bitverknüpfungen gearbeitet? Ganz einfach: in S5 gab es diese nicht (nur als WORD- und als DWORD-Verknüpfungen XOW bzw. XOD). Man hätte die XOR-Bitverknüpfung zwar durch z.B. zwei UND- und eine ODER-Verknüpfung nachbilden können ... aber das wäre mit den Mitteln einer S5 nicht wirklich eine Vereinfachung gewesen.

In S5 war die in Netzwerk 1 gezeigte Art, einen ImpulsMerker zu bilden, durchaus gängig und beliebt. Das wurde vermutlich so gelehrt und vorbehaltlos immer wieder so übernommen.
Das SR-FF ist aber für die Funktion der FlankenErkennung nicht erforderlich. Geringfügig weniger aufwändig ist stattdessen eine einfache Zuweisung des TasterEingangs auf den FlankenMerker '#Hilfsmerker_Anlage_Ein', die allerdings erst zum Schluss der BefehlsFolge erfolgen darf.
 
Code:
        +-----+
        |  &  |      Merker
  Puls--|     |     +------+
        |     |     |  SR  |
Merker-o|     |-----|S     |
        +-----+     |      |
                    |      |
        +-----+     |      |
        |  &  |     |      |
  Puls--|     |     |      |
        |     |     |      |
Merker--|     |-----|R1   Q|-
        +-----+     +------+
Es mag allerdings so sein, dass in der S7-Variante von FUP die erwartete Reihenfolge der Abarbeitung (zuerst die beiden Abfragen des '#Merker_Automatikbetrieb' und dann erst seine neue Bildung) nicht eingehalten wird.
Beim SR bei S7-300/400 und Nachfolger wird erst der obere S-Zweig abgearbeitet bis einschließlich des "S Merker", dann wird der untere R-Zweig mit dem (ggf. neuen) Zustand des Merker abgearbeitet bis einschließlich des "R Merker". Bei einem Puls wird also der SR immer im unteren Zweig rückgesetzt, egal welchen Zustand er vorher hatte.

S5 habe ich gerade nicht greifbar, doch da müsste das genauso gewesen sein.

Bei S7-200 (entwickelt von Texas Instruments) werden erst die UND-Verknüpfungen berechnet (und die Ergebnisse im VKE-Stack gespeichert) und danach ähnlich einer Selbsthaltung mit dem Zustand des SR verknüpft. Jeder Puls invertiert das SR

Harald
 
Zurück
Oben