Schrittkettenprogrammierung und Ausgänge sicher schalten

Zuviel Werbung?
-> Hier kostenlos registrieren
ich hab auch schon schrittketten gebaut, die einfach eine schrittnummer im format INT (selten DINT ;)) haben und diese dann für den jeweiligen schritt verglichen wird und inkrementiert ... ähnlich einem GPI (getriggertes prioritäten-inkrement)

Das gleiche Prinzip wende ich auch an.
Vorteil an der Sache ist, das man den Schrittkettenzähler schön am Panel anzeigen und sogar mit Textlisten hinterlegen kann. Da weiß der Bediener gleich was Tango ist.

Ausgänge werden dann mit = zugewiesen

Code:
O #Schritt1
O #Schritt3
O #Schritt6
O #Schritt7
O #Schritt11
O #Schritt15
O #HAND_EIN
UN #STOERUNG
UN #NOTAUS
UN #PAUSE_HALT
= #ANTRIEB1

O #Schritt2
O #Schritt4
 O #Schritt6
 O #Schritt7
 O #Schritt12
 O #Schritt13
O #HAND_EIN
 UN #STOERUNG
UN #NOTAUS
UN #PAUSE_HALT
= #ANTRIEB2

usw.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo moeins,

wo in Deinem Beispiel verbirgt sich denn jetzt die INT Zahl?
Die steckt in meiner Schrittkette ;)

Das Beispiel ist ja die Zuweisung der einzelnen Ausgänge, weil es beim Thema um das setzen/rücksetzen von Ausgängen ging.

Für meine Schrittkette habe ich mir einen FC programmiert, indem einfach per SPL bedingt gesprungen wird.

Dieses Netzwerk ist der Kern vom Baustein:

Code:
  L     #SchrittkettenZaehler
      SPL   Ende                        // Sprung bei >= 20
      SPA   S001                        // Sprung bei = 0
      SPA   S002                        // Sprung bei = 1
      SPA   S003                        // Sprung bei = 2
      SPA   S004                        // Sprung bei = 3
      SPA   S005                        // Sprung bei = 4
      SPA   S006                        // Sprung bei = 5
      SPA   S007                        // Sprung bei = 6
      SPA   S008                        // Sprung bei = 7
      SPA   S009                        // Sprung bei = 8
      SPA   S010                        // Sprung bei = 9
      SPA   S011                        // Sprung bei = 10
      SPA   S012                        // Sprung bei = 11
      SPA   S013                        // Sprung bei = 12
      SPA   S014                        // Sprung bei = 13
      SPA   S015                        // Sprung bei = 14
      SPA   S016                        // Sprung bei = 15
      SPA   S017                        // Sprung bei = 16
      SPA   S018                        // Sprung bei = 17
      SPA   S019                        // Sprung bei = 18
      SPA   S020                        // Sprung bei = 19

Ende: NOP   0
      SPA   Zuws                        // Schritt-Zuweisungen anspringen
      BEA   

Takt: L     #SchrittkettenZaehler       // Schritt hochzählen
      L     1
      +I    
      T     #SchrittkettenZaehler
      BEA   

S001: U     #Schritt_1
      U     #Freigabe_STEP
      SPB   Takt
      SPA   Ende

usw...
Natürlich gibts da noch ein bisschen mehr drumherum, wie Freigaben, Tipp-Betrieb, Reset und Pause.

Gruß
moeins
 
Hallo moins,

was ich nicht verstehe :

Code:
S001: U     #Schritt_1
      U     #Freigabe_STEP
      SPB   Takt
      SPA   Ende

Warum gibt es noch eine binäre Variable Schritt_1, wenn der Schritt doch eigentlich in der Integerzahl steht?
 
Um es verständlicher zu machen, der Baustein sieht von aussen in etwa so aus (siehe Anlage).


#Schritt1 ist das Ergebnis der Verknüpfung -> Weiterschaltbedingung vom Schritt 1

Mein Baustein enthält 20 Schritte und ist weiter kaskadierbar.
 

Anhänge

  • Schrittkettenbaustein.jpg
    Schrittkettenbaustein.jpg
    34,8 KB · Aufrufe: 147
Nun denn !

Wenn ich in Schrittketten etwas speichere -dann muss ich den Speicher auch mal wieder löschen. Das kann bei einem großen Programm mal zu Problemen führen.(Vergessen!)
Wenn ich die Ausgangszuweisung am Schluss über "=" Zuweisung mache welche ge-odert sind :

Lade Schritt 12
oder Schritt 13
oder Schritt 44
= A0.3

-kann ich nichts vergessen weil automatisch bei jedem anderen Schritt der Ausgang sozusagen automatisch nicht aktiv ist.

Das ist doch der Gag an der Sache !!

Natürlich ist die Verlockung groß dass wenn in 20 aufeinanderfolgenden Schritten ein Ausgang gesetzt sein soll ich den Ausgang beim 1sten Schritt setze und beim 20sten Schritt dann wieder Rücksetze.

Aber wie gesagt : Vorsicht! Vorsicht !

Da ist die Methode mit der 20-maligen "=" Zuweisung sicherer - zumal Rücksetzfehler oft bei Programmänderungen oder Erweiterungen passieren.

Gruß Xetni
 
Schrittkette

Wenn man die schritkette richtig aufbaut, kann man die ausgaenge steuern ohne speicherfunktion. Ich baue erst die kette auf mitt das richtige anzahl schritte (ich beginn mit zb schrittnummer 10,20,30 usw, so kann ich spaeter einfach schritte einfuegen). Die ausgaenge steuer ich dann mit vergleichfunktionen. zb ausgang ist hoch wenn schrittnr >30 und <50.
Bei notstop oder spannungsausfall schreibe ich einfach 0 in schrittvar und alles geht nach eine sichere ruhezustand.Auch sehr einfach beim fehlersuchen. Die position wo die kette gestopt ist gibt direct auch die ursache an warum die machine nicht weiter lauft.

Kann einfach programmiert werden in FUP oder KOP

Chris
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich bevorzuge auch die Variante mit der Variable. Bei der Variante mit zig Merkern passiert es doch mal leichter daß irgendwo ein Setzen oder Rücksetzen vergessen wird, zudem kann man leichter von einem Punkt des Ablaufs an einen ganz anderen Punkt springen (z.B. von 40 auf 150 statt auf 50), abhängig von entsprechenden Bedingungen (z.B. Produkt vorhanden...). In ST kann man das auch schön mit der "Case" Anweisung programmieren.
 
Halo Erny

Vieleicht ist es für den Anfang nicht schlecht sich an die Gegebenheiten in der Firma anzupassen. Generell ist es auch nicht unbedingt gut in den Schrittketten Ausgänge zu nutzen. Ausgänge als Speicher zu nutzen hat tatsächlich ab und an zu Schwierigkeiten geführt. Mindestens bei S5. Ob das bei S7 auch noch so ist kann ich nicht sagen. Wenn Schrittkette dann eher über Datenbaustein. Diese sind bei S7, mindestens ab 315 immer remanet gespeichert. Allerdings muß nach einem Abbruch die Schrittkette eventuel rückgesetzt werden.
Die Ausgänge würde ich eher einem Anlagenteil, einem Antrieb oder einer sonstigen Einheit zuordnen. Diese Einheiten werden dann von den Schrittkettenzuständen gesteuert.
Mit dieser Trennung von Anlagenteilen und Schrittketten kann dann auch eine komplexere Struktur erzeutgt werden.

Gruß Maeggy
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Rudi

hab ich in eigenen Anwendungen Erfahrungen gesammelt, als ich Ausgänge als SR Gliedern verwendet habe. Da es allerdings schon mehr als 20 Jahre her ist kann ich dies nicht mehr näher erkläutern. Deshalb empfehle ich Schrittkettenergebnisse immer in DB's zu speichern.

Gruß Maeggy
 
Ausgänge setzen hat für mich den Nachteil, steht die Anlage in Störung o.ä. und ich muß eine Handbedienung machen, komme ich mit der Schrittkette vielleicht in Konflikt. Habe ich einen Schrittkettenmerker und eine Zuweisung, UND-Verknüpft mit Auto und was weiß ich, dann kann ich das mit Hand und was weiß ich verodern und bin immer sauber.
 
Zurück
Oben