CX-Programmer SFC-Training
Inhalt
• SFC – Grundlagen• Elemente des SFC• SFC – Merkmale des CX-Programmers• Der SFC-Editor• Das erste SFC-Programm• Übung
SFC – Begriffsbestimmung und Nutzen
SFC = Sequential Function Chart wird in deutsch Ablaufsprache (AS) genannt. (Im französischen Sprachraum auch gerne Graphcet genannt) Es ist eine Weiterentwicklung der Schrittkettenprogrammierung.SFC ist dazu da, um eine komplexe Aufgabe in übersichtliche Teile zu zerlegen.Es eignet sich für alle automatischen Abläufe.Ein typisches Beispiel ist die Waschmaschine: Vorwaschen, Hauptwaschen, Spülen, ...Es verleitet dazu, eine ordentliche Struktur zu erstellen.
SFC - Nutzen
Als grafische Programmiersprache ähnelt sie allgemein verständlichen Darstellungsarten, wie sie in der Prozessindustrie geläufig sind.Auch Nicht-Programmierer können den Prozess damit selbst definieren bzw. verstehen.Die Darstellungsart ist sehr übersichtlich.Die Fehlersuche wird wesentlich vereinfacht.Bestehende Programmteile können einfach wieder verwendet werden.Die Programmabarbeitung beschränkt sich auf den aktiven Schritt, somit wird die Zykluszeit reduziert.
SFC, Kontaktplan und auch ST im Programm (Task)
Für jede Task (Programm) kann die Programmiersprache frei gewählt werden,je nach dem, welche Programmiersprache am Besten passt:Kontaktplan für die Grundfunktionen;SFC für die automatischen Abläufe;oder Strukturierter Text für mathematische Berechnungen. Das bedeutet auch, dass man jetzt das gesamte SPS-Programm in ST schreiben kann.
Kontaktplan und ST als Teile von SFC-Programmen
Innerhalb der Schritte können die Programmteile in Kontaktplan oder Strukturiertem Text programmiert werden.
Funktionsblöcke können in den Kontaktplanteilen genauso wie in den ST-Teilen verwendet werden.
SFC, Grundlegender Ablauf
Die Schrittkettensteuerung ist eine Methode zur Programmsteuerung, wo die Abarbeitung einzelner Schritte, die Teil des gesamten Prozesses sind, sequentiell oder zeitabhängig erfolgt.
Wenn ein Schritt aktiv ist, so werden die Vorgänge, die darin beschrieben sind zyklisch abgearbeitet. Dies geschieht solange, bis eine Endbedingung eintritt, z.B. ein Sensor schaltet oder eine Zeit abgelaufen ist.
Schrittsteuerungsabfolge
Ein Schritt ist entweder aktiv oder inaktiv.
Ein aktiver Schritt führt Vorgänge aus, die in Aktionen beschrieben sind.
Wenn die Endbedingung erfüllt ist, wird der aktuelle Schritt inaktiv und der nachfolgende Schritt wird aktiv.
Trans1 = 0Trans1 = 1
Schrittsteuerungsabfolge
Der Übergang von einem zum anderen Schritt heißt Transition.
In der Transition ist die Übergangsbedingung definiert.
In diesem Beispiel ist die Bedingung erfüllt, und der Schritt: “Step2” ist aktiv.
Der Schritt mit dem “" ist der aktive Schritt
Step 1 Action 1
Step 2 Action 2
Elemente des SFC
Schritte
Initial-Schritt Normal-Schritt Subchart(-Schritt)
Initial - Schritt
Ein Initial-Schritt ist der Schritt, der aktiv wird, nachdem die Programmausführung gestartet wurde, ohne jede weitere Vorbedingung.
Alle anderen Schritte sind in dem Moment inaktiv.
Es ist der erste Schritt, der im SFC-Diagramm abgearbeitet wird.
Wenn der Initialschritt aktiv wird, werden die dort definierten Aktionen ausgeführt.
Der Initialschritt hat folgendes Aussehen:
Nur ein Initialschritt kann in einem SFC-Diagramm eingefügt werden.
Der Initialschritt muss nicht an der obersten Position stehen.
Der Initialschritt kann eine oder mehrere Aktionen haben.
Normaler Schritt
Ein normaler Schritt ist ein Schritt, der aktiv wird, wenn die Transitionsbedingung davor erfüllt wird.
Wenn der normale Schritt aktiv wird, werden die dort definierten Aktionen ausgeführt.
Der normale Schritt hat folgendes Aussehen:
Es gibt keine Grenze für die Anzahl von normalen Schritten in einem SFC-Diagramm.
Der normale Schritt kann eine oder mehrere Aktionen haben.
Subchart
Der Subchart ist hier als ein Schritt dargestellt.
Er dient zur Verbesserung der Übersichtlichkeit.
Es verbirgt sich eine Ablaufkette dahinter, die in einem anderen Diagramm definiert ist. Es ist mit einem Unterprogrammaufruf bzw. Makro zu vergleichen.
Er hat keine Aktionen.
Der Subchart hat folgendes Aussehen:
Subchart
Der Subchart fängt mit dem Entry-Schritt an. Er hört mit einem oder mehreren Return-Schritten auf.Wird ein Return-Schritt aktiv und die Transitionsbedingung hinter dem Subchart wird erfüllt, werden auch alle anderen Schritte inaktiviert.Ist die Transitionsbedingung hinter dem Subchart erfüllt, wird jedoch nicht in den nächsten Schritt gesprungen, solange nicht ein Return-Schritt des Subcharts aktiv wird.
Schrittsteuerungs – Befehle
Schrittsteuerungsbefehle (SA, SE, TSR, TSW) können vom Kontaktplan benutzt werden, um Schritte zu steuern.
SA: Schritt aktivieren(Schaltet einen Schritt in den aktiven Status)
SE: Schritt deaktivieren(Schaltet einen Schritt in den inaktiven Status)
TSR: Schritt-Timer-Wert-Lesebefehl(Liest den Istwert des Schritt-Timers)
TSW: Schritt-Timer-Wert-Setz-Befehl(Überschreibt den aktuellen Wert des Schritt-Timers)
Schritt-Aktivierungs-/ Deaktivierungs- Befehle
Verwendung von Schrittsteuerungsbefehlen
Step timer value read/set instructions can be used in the same way as stepactivation/deactivation instructions.
Normalerweise wird eine andere Schrittkette mit den Befehlen gesteuert, die sich aber auch in einem Kontaktplan einer Aktion einer Schrittkette befinden können.
Verwendung von SchrittsteuerungsbefehlenTheoretisch ist es möglich die Befehle in einem Kontaktplan in einer Aktion für die Steuerung eines Schrittes innerhalb des gleichen SFC-Programms zu benutzen.
Einheit für die Schrittzeit
Ein Schritt kann einen Schritt-Timer haben, um die Zeitdauer, festzustellen, die ein Schritt aktiv ist.
Für jeden Schritt kann die Einheit der Zeit wie folgt gesetzt werden:
– 100 milliseconds
– 1 second
Transitionen
Eine Transition ist die Bedingung, bei der der aktive Status vom vorherigen Schritt auf den nächsten übergeht.Eine Transition muss zwischen zwei Schritten stehen.Die Transition hat folgendes Aussehen:
Trans1 FALSE
Transitionsbedingungen
In der grafischen Darstellung steht die Transitionsbedingung rechts neben der Transition. Wenn eine neue Transition hinzugefügt wird, steht die Bedingung standardmäßig auf dem logischen Wert “FALSE” der ST-Sprache.
Die Transitionsbedingung kann einer der folgenden drei Arten definiert werden:
– Direkte Transitionsbedingung (Boolean)– ST - Ausdruck– Transitions-Programmname
Hinweis: Ein existierender Transitionsprogrammname muss angegeben werden.Das Transistionsprogramm muss also vorher definiert werden.
Direkte Transition (Boolean)
Transition als ST-Ausdruck
(B[6] and A[5] OR c)
Transition als ST-Ausdruck
Operation Zeichen Beispiel Details
Klammern () (a & b) OR c Bedingung erfüllt, wenn beide “a” und “b” sind ON, oder wenn “c” ON ist
Komplement NOT NOT bFlag Bedingung erfüllt, wenn bFlag OFF ist
Und AND, & a & b Bedingung erfüllt, wenn beide “a” und “b” ON sind
Exclusiv Oder XOR a XOR b Bedingung erfüllt, wenn “a” sich von “b” unterscheidet
Oder OR a OR b Bedingung erfüllt, wenn “a” oder “b” ON ist
Gleich = a = b Bedingung erfüllt, wenn “a” und “b” gleich sind
Operation Zeichen Beispiel Details
Klammern () (nValue = 10) & a Bedingung erfüllt, wenn nValue ist 10 und “a” ON ist
Vergleich <, >, <=, >=
nValue >= 10 Bedingung erfüllt, wenn nValue 10 oder größer ist
Gleichheit = nValue = 10 Bedingung erfüllt, wenn nValue gleich 10 ist
Ungleichheit <> nValue <> 10 Bedingung erfüllt, wenn nValue nicht 10 ist
Folgende Elemente des Strukturierten Textes für boolsche Variablen können im Ausdruck der Transition verwendet werden.
Transitionsprogramm
Programmnamen können als Transitionsbedingungen verwendet werden.
Ein Transitionsprogramm kann entweder in Kontaktplan oder Strukturiertem Text geschrieben werden.
Im CX-Programmer, ist eine Transitionsbedingung dann erfüllt, wenn die boolsche Variable mit dem gleichen Namen wie das Transitionsprogramm auf „EIN“ schaltet.
Transitionsprogramm
Kontaktplan
Strukturierter Text
Aktionsblöcke
Die Vorgänge, die ausgeführt werden sollen, während ein Schritt aktiv ist, sind in Aktionsblöcken beschrieben und rechts am Schritt aufgelistet.
Wird ein Schritt aktiv, so werden alle Aktionsblöcke zyklisch ausgeführt.
Sind mehrere Aktionsblöcke vorhanden, so werden sie im Zyklus nacheinander, von oben nach unten ausgeführt.
Der Aktionsblock
Aktionen, die während des Schritts ausgeführt werden sollen, sind in Aktionsblöcken beschrieben.Ein Schritt kann mehrere Aktionsblöcke ausführen (Anzahl unbegrenzt).Ein Aktionsblock besteht aus folgenden drei Teilen:
– Bestimmungszeichen (AQ = Action Qualifier)– Aktionsname– Rückkopplungsvariable (Indicator variable)
Der AktionsblockEin Aktionsblock sieht dann wie folgt aus:
(von links nach rechts)
Bestimmungszeichen (AQ), Aktionsname, Rückkopplungsvariable
Aktionen
Aktionen können folgende zwei verschiedene Beschreibungsarten haben:
- Boolsche Variable- Aktionsprogrammname
Wenn eine Aktion als boolsche Variable definiert ist, wird die Variable auf TRUE gesetzt, wenn die Aktion ausgeführt wird und auf FALSE, wenn die Aktion gestoppt wird.Wenn in einer Aktion ein Aktionsprogrammname definiert ist, wird das Aktionsprogramm ausgeführt, wenn die Aktion ausgeführt wird, und übersprungen, wenn die Aktion gestoppt ist.
Eine Aktion wird ausgeführt, wenn ein Schritt in den aktiven Status übergeht und das Bestimmungszeichen im Aktionsblock die Ausführung zuläßt.
Hinweis: Mehrere Schritte können das gleiche Aktionsprogramm ausführen, innerhalb eines SFCs. Die Aktion wird aber nur einmal ausgeführt pro Zyklus.
Bestimmungszeichen (AQ= Action Qualifier)
Bestimmungszeichen definieren die Ausführungsbedingung oder –zeiten der Aktion
Man kann bestimmen, wie die Aktionen ausgeführt werden sollen, wenn der Schritt aktiv wird.
In jedem Aktionsblock steht ein Bestimmungszeichen und eine Aktion.
AQ Symbol
Name Funktion Schrittzeit benötigt?
N Normal (standard)
Die Aktion wird ausgeführt, solange der Schritt aktiv ist.
P Puls Die Aktion wird einmal ausgeführt, wenn der Schritt aktiviert wird.
P1 Steigende Flanke (=P)
Die Aktion wird einmal ausgeführt, wenn der Schritt aktiviert wird.
P0 Fallende Flanke
Die Aktion wird einmal ausgeführt, nachdem der Schritt deaktiviert wurde.
Typen von Bestimmungszeichen (AQ= Action Qualifier)
AQ Symbol
Name Funktion Schrittzeit benötigt?
L Limit(Zeitbegrenzt)
Wenn der Schritt aktiv wird, wird die Aktion ausgeführt bis die angegebene Zeit abgelaufen ist. Wird der Schritt inaktiv, so wird auch die Ausführung abgebrochen.
JA
D Delay(Zeitverzögert)
Die Aktion wird erst ausgeführt, wenn die angegebene Zeit abgelaufen ist, nachdem der Schritt aktiv wurde. Wenn der Schritt vorher inaktiv wurde, wird die Aktion nicht ausgeführt.
JA
S SET Die Aktion wird ausgeführt, wenn der Schritt aktiv wird, und wird weiter ausgeführt, auch wenn der Schritt deaktiviert wird. Zum Stoppen muss in einem anderen Aktionsblock die Aktion mit dem Bestimmungszeichen “R” ausgeführt werden.
R Reset Wenn der Schritt aktiv wird und die Aktion durch "S", "SL", "SD", oder "DS“ aktiviert wurde, so wird die Ausführung gestoppt und zurückgesetzt. Wurde die Aktion mit anderen Bestimmungs-zeichen ausgeführt, so wird die Aktion nur zurückgesetzt und nicht gestoppt. Das Zurücksetzen bewirkt, dass OUT/ OUT NOT-Befehle auf “AUS”; TIM/TIMH-Befehle: “Zurückgesetzt” werden und andere Timer/Counter/Schieberegister auf “Hold” gesetzt werden.
Typen von Bestimmungszeichen (AQ= Action Qualifier)
Typen von Bestimmungszeichen (AQ= Action Qualifier)
AQ Symbol Name Funktion Schrittzeit benötigt?
SL SET Limit(zeit-begrenzt)
Wenn der Schritt aktiv wird, wird die Aktion ausgeführt bis die angegebene Zeit abgelaufen ist. Im Gegensatz zu “L” wird die Aktion auch weiter ausgeführt wenn der Schritt inaktiv wird, bis die Zeit abgelaufen ist oder ”R” auf die Aktion angewendet wird.
JA
SD SET Delay(zeit-verzögert, unbedingt)
Die Aktion wird erst ausgeführt, wenn die angegebene Zeit abgelaufen ist, nachdem der Schritt aktiv wurde. Auch wenn der Schritt vorher inaktiv wurde, wird die Aktion ausgeführt.
Zum Stoppen der Aktion muss “R“ auf die Aktion angewendet werden.
JA
DS Delay SET(zeit-verzögert)
Die Aktion wird erst ausgeführt, wenn die angegebene Zeit abgelaufen ist, nachdem der Schritt aktiv wurde. Im Gegensatz zu ”SD” wird die Aktion nicht ausgeführt wenn der Schritt vorher inaktiv wurde. Zum Stoppen der Aktion muss “R“ auf die Aktion angewendet werden.
JA
Ausführungsdiagramm für Bestimmungszeichen (AQ)Schrittstatus
N
P
P1
P0
L
D
AQAusgeführt
Nicht Ausgeführt
Aktiver StatusInaktiver Status
Sollzeit
Sollzeit
Ausführungsdiagramm für Bestimmungszeichen (AQ)Schrittstatus
S
SL
SD
AQ
Aktiver Status
Inaktiver Status
Sollzeit
R Beendigung durch “R” AQSollzeit
Sollzeit
Sollzeit
Sollzeit
DS Sollzeit
Sollzeit
“Final Scan”- Logik
Trans1 = 0Trans1 = 1
Step 1 Action 1
Step 2 Action 2
Action 1
Trans1
Ausgeführt
Nicht Ausgeführt
Step 1.X
Nachdem der Schritt deaktiviert ist, wird er noch ein letztes Mal ausgeführt.Final Scan Logik
Action 2
“Final Scan”- Logik
Mit Final Scan Logik ++ addiert 2
Ohne Final Scan Logik ++ addiert 1
Schrittmerker
Der Schrittmerker ist wie folgt spezifiziert:Innerhalb der gleichen Task [Schrittname].XIn einer anderen Task [Programmname].[Schrittname].XFür einen Subchart in der gleichen Task
[Subchartname].[Schrittname].XFür einen Subchart in einer anderen Task
[Programmname].[Subchartname].[Schrittname].X
Schrittmerker
Der Schrittmerker (.X) ist eine boolsche Variable, die “TRUE” ist, wenn der entsprechende Schritt aktiv ist.
Die Variable hat die Form <Schrittname>.X
Aktionsmerker
Der Aktionsmerker ist wie folgt spezifiziert:Innerhalb der gleichen Task [Aktionsname].QIn einer anderen Task [Programmname].[Aktionsname].QFür ein Subchart innerhalb der gleichen Task
[Subchartname].[Aktionsname].QFür ein Subchart in einer anderen Task
[Programmname].[Subchartname].[Aktionsname].Q
Aktionsmerker
Der Aktionsmerker (.Q) ist eine boolsche Variable, die “TRUE” ist, wenn die entsprechende Aktion aktiv ist.
Diese Variable hat die Form <Aktionsname>.Q
Schrittzeit
Der Aktionsmerker ist wie folgt spezifiziert:
Innerhalb der gleichen Task [Schrittname].T
In einer anderen Task [Programmname].[Schrittname].T
Für ein Subchart innerhalb der gleichen Task
[Subchartname].[Schrittname].T
Für ein Subchart in einer anderen Task
[Programmname].[Subchartname].[Schrittname].T
4 Mal unterschiedliches Verhalten?
Übung
• Beschreiben sie das Verhalten der 4 unterschiedlichen Aktionen von der vorherigen Seite.
AuflösungSchrittstatus Aktiver Status
Inaktiver Status
Boolsche Aktion
Schrittmerker
D
5sAktionsmerker
Wert im Programm geändertAktionsprogramm
Hinweis Um den Unterschied zwischen Schrittmerker und Aktionsmerker zu erkennnen, sollte das Bestimmungszeichen D verwendet werden.
Alternativkettenauswahl (Divergenz)
Eine Alternativauswahl wird durch eine einfache horizontale Linie dargestellt. Es ist die Auswahl einer einzigen Folgeschrittkette.Ist Step2 aktiv erfolgt eine Auswertung der Transitionen von links nach rechts. Die erste Transition mit TRUE inaktiviert Step2 und schaltet ihren Nachfolgeschritt aktiv.
FALSE TRUETrans2 Trans3
Step 2
Step 3 Step 4
Zusammenführung Alternativketten (Konvergenz)
Eine Alternativzusammenführung wird durch eine einfache horizontale Linie dargestellt. Die einzelnen Alternativketten werden wieder zusammengeführt.
Wenn der letzte Schritt einer Alternativkette aktiv ist, und die entsprechende Transition TRUE wird, wird der nächste Schritt aktiv.
FALSE FALSETrans4 Trans5
Step 5
Step 3 Step 4
Simultan-Verzweigung
Eine Simultanverzweigung wird durch eine doppelte horizontale Linie dargestellt.
Gemeinsame Freigabe von mehreren Schrittketten. Es werden alle ersten Schritte der nachfolgenden Schrittketten aktiv. Die einzelnen Schrittketten werden dann aber unabhängig voneinander weitergeschaltet.
FALSETrans2
Step 3 Step 4
Simultan-Zusammenführung
Eine Simultan-Zusammenführung wird durch eine doppelte horizontale Linie dargestellt.
Sobald alle letzten Schritte der Simultanverzweigung aktiv sind und die zugehörige Transition TRUE wird, erfolgt eine Deaktivierung aller letzten Schritte der Simultanverzweigung und der einzelne nächste Schritt wird aktiv.
FALSETrans3
Step 3 Step 4
Verbindungen
Eine Verbindung ist eine Linie, die Elemente wie Transitionen und Schritte miteinander verbindet. Sie repräsentiert den Prozessfluss.
Step 4
Step 3
Verbindungen
Sprung
Das ist eine Funktion, wo die Ausführung von einer Transition zu dem angegebenen Schritt springt.
Vorwärts- und Rückwärtssprung (Schleife) sind funktionell identisch.
Bei einer Schleife werden Anfangs- und Endpunkt mit einer Linie verbunden.
Step 1
Step2
Step2…Jump
…Jump Entry Step 2
Step 1
FALSETrans2
FALSETrans1
Kettensprung (Skip)Enthält ein Pfad einer Alternativkettenauswahl keinen Schritt, heißt dieser Pfad Kettensprung.
Step 3
Step 2
FALSETrans5
FALSETrans2
FALSETrans6
FALSETrans3
Step 6
FALSETrans9
FALSETrans7
FALSETrans10
FALSETrans8
Step 5
Step 8
Step 4
FALSETrans4
Step 7
Fragen?
SFC – Merkmale des CX-Programmers
Gleichzeitiges Bearbeiten von Schrittkette und Aktionsprogrammen
Der SFC-Editor kann die grafische Schrittkette und den Kontaktplan gleichzeitig anzeigen. Das Fenster kann vertikal oder horizontal geteilt sein.
Dadurch kann man auch beides gleichzeitig editieren.
Geteiltes Fenster (Split view)
Anzeige der Aktionen abschalten
Array-VariablenIm SFC-Editor und zugehörigen Kontaktplänen des CX-Programmers können Array-Variablen benutzt werden.
Strukturierter Text
SFC
Kontaktplan
Online Edit und Fehlersuche
SFCs können online editiert werden;
Aktionen hinzugefügt / gelöscht und
Transitionen hinzugefügt / gelöscht werden.
(Besonders wichtig bei Prozessen, die nicht abgeschaltet werden können)
Man kann wählen zwischen Standard Modus (Übertragung mit Source Code) und
Quick Modus (Übertragung ohne Source Code).
(Wählen Sie den Quick Modus für häufiges und kontinuierliches Online Editieren und Fehlersuche.)
Der SFC-Editor
Projekt Arbeits-bereich
SFC-Editor
SFC-Diagrammansicht
Programmansicht
Symbole im Projekt-Arbeitsbereich
SFC-Programm
Aktionsprogrammme
Transitionsordner
Transitionsprogramm
Subchart-Ordner
Subchart-Programme
Aktions-Ordner
Lokale Variablen
Ordner: Aktionen
Ordner: Transitionen
Ordner: Subcharts
Symbole auf der Werkzeugleiste
Symbole, die im CX-Programmer 6.0 nicht vorhanden waren
Symbole auf der Werkzeugleiste
Symb Pop-up Menü Funktion
Zoom Reset Setzt die Skalierung im SFCEditor auf 100% zurück.
Symb Pop-up Menü Funktion
Insert SFC Program Erstellt ein neues SFC-Programm.
Insert ST Program Erstellt ein neues ST- Programm.
Symb Pop-up Menü Funktion
Add Step SFC-Schritt hinzufügen.
Add Subchart Step SFC-Subchart hinzufügen.
Add Entry Step SFC-Subchart Eingangsschritt hinzufügen.
Add Return Step SFC-Subchart Return-Schritt hinzufügen.
Add Transition SFC-Transition hinzufügen.
Add Divergence SFC-Alternativverzweigung hinzufügen.
Add Convergence SFC-Alternativzusammenführung hinzufügen.
Add Simultaneous Divergence SFC-Simultanverzweigung hinzufügen.
Add Simultaneous Convergence SFC-Simultanzusammenführung hinzufügen.
Add Connector SFC-Verbindung hinzufügen.
Einstellung des angezeigten Editors bei Teilung
Für ST:Einstellung welcher Inhalt angezeigt wird bei geteiltem Fenster.Auswählbar: Structured Text oder Symbols.
Für SFC:Einstellung welcher Inhalt angezeigt wird bei geteiltem Fenster.Auswählbar: Actions/Transactions, SFC, oder Symbols.
Einstellung der Standardprogrammiersprache bei neuer SPS
Auswählbar:
Kontaktplan, ST oder SFC.
Einstellung der SFC-Darstellung
SFC background HintergrundSFC grid line RasterSFC element ElementActive step and action block color FarbeAction block color
FarbeSubchart step color
FarbeText color for transition conditions FarbeText color for transition names
Farbe
SFC-Diagramm Optionen
Zeige RasterAm Raster ausrichtenZeige TransitionsnamenSFC horizontal teilenZeige aktiven Schritt im Überwachungsmodus automatischRasterabstand
Standard-Einstellungen für SFC-Elemente
Schritt Voreinstellung (Zeige Name)
Transitions Voreinstellung (Zeige Name)
Aktionsblock Voreinstellung (Zeige Name)
Transitions Voreinstellung (Zeige Name)
Subchart Voreinstellung (Zeige Name)
Element-Abstand (Zeige Abstand )
Hinweise
• Symbole im SFC unterscheiden zwischen Groß- und Kleinbuchstaben
• Umlaute ÄÖÜäöü und ß sind nicht erlaubt.
• Der Schritt besteht eigentlich nur aus dem Namen (label)
• Die Transition ist eigentlich nur ein Name (label)
• Der Name des Transitionsprogramms wird als Transition im SFC benutzt
• Der Tansitionsname wird als Ausgang im Transitionsprogramm benutzt
Beispiel Parkhausschranke
Parkhausschranke aus W459 Kapitel 1-4
Beispiel Parkhausschranke, Adressen
Adresse Name Funktion SPS- Ein/ Aus
W0.0 carIn Fahrzeugsensor Ein
W0.1 ticket Signal, Ticket genommen Ein
W0.2 gateopenLimit Endschalter, Schranke offen Ein
W0.3 gatecloseLimit Endschalter , Schranke geschlossen Ein
W1.1 ticketOut Ticket-Spender, Ticket ausgeben Aus
W1.2 gateOpen Schrankenmotoranschl., zum Öffnen Aus
W1.3 gateClose Schrankenmotoranschl., zum Schließen
Aus
Beispiel Parkhausschranke, SFC
Parkhausschranke aus W459 Kapitel 1-4
Das erste SFC-Programm
Eigenschaften für SFC-Programm auswählen
Zyklische Task 01 zuordnen
1. Zyklische Task 01 auswählen
2. Operation Start auswählen
3. “Apply final scan logic” auswählen
Transition hinzufügen
Bitte bestehende Elemente umbenennen: Initial, carIn, S_ticketOut
Dann Transition hinzufügen.Symbole, die benutzt werden können,
sind nicht grau.
Schritt hinzufügen
Als Transitionsbedingung die Eingangsvariable „ticket“ eintragen.
Dann den nächsten Schritt hinzufügen.Symbole, die benutzt werden können,
sind nicht grau.
Weitere Schritte und Transitionen hinzufügen
1. Fügen Sie den Schritt S_openGate hinzu.
2. Fügen Sie die Transition mit der Bedingung gateopenLimit hinzu.
3. Fügen Sie den Schritt S_closeGate hinzu.
4. Fügen Sie die Transition mit der Bedingung gatecloseLimit hinzu.
Verbindung hinzufügen
1. Verbindungs-Symbol auswählen
2. Transition anklicken
3. Ersten Schritt anklicken
Beispiel Parkhausschranke, Aktionen
Parkhausschranke aus W459 Kapitel 1-4
Neue Aktion mit Kontaktplan einfügen
Aktionsname ändern
Ändern Sie im Verzeichnisbaum den Aktionsnamen in A_ticketOut.
Kontaktplan in der Aktion
Geben Sie das Kontaktplan-Programm wie dargestellt ein.
Weitere Aktionen hinzufügen
Fügen Sie noch die beiden anderen Aktionen und Kontaktpläne ein.
SFC - Erstellung abgeschlossen
Gratulation, Sie haben Ihr erstes SFC- Programm erstellt.
Beispiel Parkhausschranke, Simulation
Mit dem CX-Supervisor kann die Parkhausschranke auf dem PC simuliert werden:
Übungen und Beispiele:
Parkhauseinfahrt (Beispiel zur Übung der SFC-Editierung)
Ampel (einfache Schrittkette)
Ampel mit Serviceschalter (Alternativverzweigung)
Doppelbearbeitungsstation (Simultanverzweigung)
Doppelstation-Erweiterungen (Zeitüberwachung, alternative Rücksprünge)
Hand / Automatik (Subchart und Abbruch einer Schrittkette)
Conveyor assignment
Übung Ampel
• Programmieren Sie eine Ampel mit den Schritten:– Rotphase– Gelbrotphase– Gruenphase– Gelbphase
• Die Transtionen:– 5 sec ROT-Zeit abgelaufen– 1 sec ROT/GELB-Zeit abgelaufen– 3 sec GRUEN-Zeit abgelaufen– 2 sec GELB -Zeit abgelaufen
• Rotlicht = W2.12 (1.12)• Gelblicht = W2.13 (1.13)• Gruenlicht = W2.14 (1.14)• Timer werden automatisch vergeben• Schrittmerker werden automatisch vergeben
SFC editieren: Schritt und Transition einfügenRechte Maustaste und dann:
Insert Step and Transition above oder
Add Transition and Step
SFC editieren: Alternativverzweigung einfügenRechte Maustaste und dann:
Add Divergence
SFC editieren: Alternativverzweigung erweiternWaagerechte Linie markieren und dann:
einfach Transition hinzufügen
SFC editieren: Alternativzusammenführung einfügenRechte Maustaste und dann:
Add Convergence
SFC editieren: Alternativzusammenführung erweitern(waagerechte Linie markieren)
einfach Verbindungen hinzufügen von der Linie zu der Transition
SFC editieren: Simultanverzweigung einfügenRechte Maustaste und dann:
Add simultaneous Divergence
SFC editieren: Sultanverzweigung erweiternWaagerechte Linie markieren und dann:
einfach Schritte hinzufügen
SFC editieren: Simultanzusammenführung einfügenRechte Maustaste und dann:
Add simultaneous Divergence
SFC editieren: Simultanzusammenführung erweitern(waagerechte Linie markieren)
einfach Verbindungen hinzufügen von der Linie zu den Schritten
SFC editieren: Subchart einfügenRechte Maustaste und dann:
Add Subchart Step
SFC editieren: Subchart im zweiten Fenster
SFC editieren: Eine Schleife in einen Sprung umwandelnRechte Maustaste und dann:
Connections: Draw Connection from Transition as Jump
SFC editieren: unabhängige Elemente einfügen
An die Stelle auf dem SFC-Hintergrund, wo das Element erscheinen soll, die rechte Maustaste drücken und dann das Element auswählen oder auch einfügen (Paste) wählen, wenn Teile kopiert oder verschoben werden sollen.
Übung Ampel mit Serviceschalter
• Erweitern Sie die vorherige Übung mit einem Serviceschalter:
– Wenn der Serviceschalter auf “Service” steht, sollen die Ampelphasen bis zum Ende durchlaufen werden,
– und danach soll nur noch das gelbe Licht blinken.
– Fügen Sie einen zusätzlichen Schritt, und– eine Alternativverzweigung ein.
• service = W5.00
Übung: Doppelbearbeitungsstation Übung für die Simultanverzweigung (vereinfachter Rundtisch)
Übung: Doppelstation, SPS-Eingangsadressen
Adresse Name Funktion SPS- Ein/ Aus
W3.00 startknopf Start-Taster Ein
W3.01 stopknopf Stopp-Taster Ein
W3.02 limitBoben Endschalter, Bohrer oben Ein
W3.03 limitBunten Endschalter , Bohrer unten Ein
W3.04 limitBwt Endschalter, Warenträger am Bohrer Ein
W3.05 limitEoben Endschalter, Einsetzer oben Ein
W3.06 limitEunten Endschalter , Einsetzer unten Ein
W3.07 limitEwt Endschalter, Warenträger am Einsetzer
Ein
Übung: Doppelstation, SPS-Ausgangsadressen
Adresse Name Funktion SPS- Ein/ Aus
W4.00 anhalten Nach Beendigung des Vorgangs soll die Maschine anhalten
Aus
W4.01 runzustand Die Maschine läuft Aus
W4.02 bohrervor Bohrer nach unten bewegen Aus
W4.03 bohrerzurueck Bohrer nach oben bewegen Aus
W4.04 einsetzervor Einsetzer nach unten bewegen Aus
W4.05 einsetzerzurueck Einsetzer nach oben bewegen Aus
W4.06 pusherwtvor Warenträger weiter transportieren Aus
Übung Doppelstation: Ablaufbeschreibung
• Wenn der Startknopf gedrückt wird, soll die Maschine anlaufen.• Der Warenträger soll so lange transportiert werden, bis der Endschalter belegt
ist.• Wenn der Warenträger in Position ist soll gebohrt und eingesetzt werden.• Der Bohrer soll sich solange herunterbewegen, bis der Endschalter anspricht.• Der Einsetzer soll sich solange herunterbewegen, bis der Endschalter anspricht.• Der Bohrer soll sich wieder nach oben bewegen, wenn er unten war, bis der
obere Endschalter angesprochen wird.• Der Einsetzer soll sich wieder nach oben bewegen, wenn er unten war, bis der
obere Endschalter angesprochen wird.• Wenn Bohrer und Einsetzer fertig sind, soll der Warenträger weiter transportiert
werden.• (für ganz gute Leute: Die Maschine soll in den Zustand “Anhalten” gehen, wenn
die Stopp-Taste gedrückt wurde und noch weiterfahren, bis der Arbeitsvorgang beendet ist und dann anhalten)
Übung: Doppelstation/ ErweiterungenOb sich die Maschinen tatsächlich bewegen kann mit einer Zeitüberwachung kontrolliert werden.
- Einfach eine boolsche Aktion mit dem Action Qualifier D für Delay (verzögerte Ausführung) hinzufügen, das Alarmbit dort reinschreiben, und die Zeit, die der Schritt maximal dauern darf.
Übung: Hand/ AutomatikGroße Programmteile können in Subcharts programmiert werden. Ein Beispiel hierfür sind die unterschiedlichen Programmteile für die Handbedienung einer Maschine und den Automatikablauf.Zwar gibt es hinter Subchartschritten Transitionen, diese können jedoch nicht zum Abbruch des Subcharts benutzt werden. Statt dessen muss im Subchart selber eine Simultanverzweigung mit zweitem Return-Schritt eingefügt werden. Wenn ein Return-Schritt aktiv wird, werden auch alle anderen Schritte im Subchart zurückgesetzt.
Übung: Conveyor
M
Every group create a mainchart for a conveyor belt1. Detect the workpiece2. Start the motor3. Detect the workpiece has reached the end of the belt4. Stop the motor
M
9
Conveyor setup
3 5
6
7
8
10
12
9
Lower level Upper level
411
= Sensor
Pusher 2
Pusher 12
1
Beam Sensor
Sensor allocation
Sensor Bf001Sensor Bf002Sensor Bf003Sensor Bf004Sensor Bf005Sensor Bf006Sensor Bf007Sensor Bf008Sensor Bf010, pusher 1Sensor Bf013Sensor Bf010, pusher 2Sensor Bf011Sensor Bf014
Sensor Bridge 2Sensor Bridge 1
Symbol table DeviceNet allocationsensor_track1 BOOL 3302.00 sensor track1
sensor_track2 BOOL 3302.01 sensor track2
sensor_track3 BOOL 3302.02 sensor track3
sensor_track10 BOOL 3302.03 sensor track10
sensor_track11 BOOL 3302.04 sensor track11
sensor_track12 BOOL 3302.05 sensor track12
sensor_track4 BOOL 3302.06 sensor track4
sensor_track5 BOOL 3302.07 sensor track5
sensor1_track6 BOOL 3302.08 sensor1 track6
sensor_track7 BOOL 3302.09 sensor track7
sensor2_track6 BOOL 3302.10 sensor2 track6
sensor_track9 BOOL 3302.11 sensor track9
sensor_track8 BOOL 3302.12 sensor track8
Symbol table DeviceNet allocation
ID_Tall_product BOOL 3303.00 ID Tall product
Start_ID BOOL 3303.01 Start ID
ID_Silver_product BOOL 3303.02 ID Silver product
Output allocation
Bf001Bf002Bf003Bf004Bf005Bf006Bf007Bf008Bf010Bf013Bf011Bf014
01234567891011121314
0VCOM
Description Pin no. Description Pin no.
Bf001 0 Bf010 8
Bf002 1 Bf013 9
Bf003 2 Bf011 10
Bf004 3 Bf014 11
Bf005 4 Elevator 12
Bf006 5 Pusher1 13
Bf007 6 Pusher2 14
Bf008 7 NC 15ElevatorPusher1Pusher2
15
Output allocation
track1_ON BOOL 1.00 track1
track2_ON BOOL 1.01 track2
track3_ON BOOL 1.02 track3
track10_ON BOOL 1.03 track10
BOOL 1.04 track11
BOOL 1.05 track12
track4_ON BOOL 1.06 track4
track5_ON BOOL 1.07 track5
track6_ON BOOL 1.08 track6
track7_ON BOOL 1.09 track7
track9_ON BOOL 1.10 track9
track8_ON BOOL 1.11 track8
bridge_up BOOL 1.12 bridge_up
Sort_to_track7 BOOL 1.13 track6_7
Sort_to_track9 BOOL 1.14 track6_9
Input allocation
Elevator DownElevator Up
0123456789101112131415COM
Description Pin no.
Elevator Down 0
Elevator Up 1
Input allocation
Sensor_bridge_closed BOOL 0.00 Sensor_bridge_closed 0
Sensor_Bridge_open BOOL 0.01 Sensor_Bridge_open 0
Assignment per group
• Use the program Conveyer.cxp for the symbol list • Make a subchart per conveyor
Assignment
Every group can test their part on local PLCGroup 1 starts with 15 minutes ONLINE with conveyor (192.168.100.99)Group 2 upload the program and adds the program for Belt 2 and 3Group 3 upload the program and adds the program for Belt 4 and 5Etc..
Group Responsible for
1 Belt 8 and 1
2 Belt 2 and 3
3 Belt 4 and 5
4 Belt 6, 7 and 9
5 Belt 10,11 and 12
6 Main SFC and sorting