Step 7 Schrittkette in FB erstellen

Revalco

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ihr lieben.
Ich sitze hier gerade an einer Prüfungsaufgabe und komme nicht weiter.
Teil 1 der Prüfung war ein FC als Standart FC zu erstellen und dazu einen DB. Das ging noch so einigermaßen. Man musste lediglich In und Out deklarieren und eine Temp variable benutzen.
Wert vorgabe lief dann über Variablentabellen vorgabe.
Teil 2 der Prüfung ist nun einen FB zu erstellen und in diesem dann eine Schrittkette zu Programmieren. nur irgendwie blick ich da nicht ganz durch.
muss man da auch jeweils in und out variablen deklarieren und so wie ich denke dann als Temp variable ein array bereich für die schrittmerker einfügen?
 
Die Schrittmerker sollen sich MERKEN in welchem Schritt die Schrittkette ist - TEMP-Variablen können sich nichts bis zum nächsten Aufruf "merken" --> Du mußt das Schrittmerker-Array im Bereich STAT anlegen, wodurch die Variablen in dem Instanz-DB angelegt werden --> das ist der wesentliche Unterschied der FB gegenüber FC.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Stimmt ja STAT sind die Baustein eigenen Lokalen Daten. Ok dann kommt das schon mal da rein. Und die Schrittkette dann einfach runterschreiben wie sonst auch nur mit den IN und OUT des Bausteins oder?
 
Ich vermute, der FB der Prüfungsaufgabe soll gar keine IN und OUT haben sondern nur die Schrittmerker als lokale Variablen "kapseln", ansonsten aber auf alle globalen Variablen (Eingänge, Ausgänge, Taktmerker, Zeiten, ...) direkt zugreifen. Für eine sehr kurze rein theoretische Prüfungsfrage kann man aber auch die wenigen benötigten globalen Variablen über IN/OUT/IN_OUT an den FB übergeben. In der Praxis tut man das nicht.

Code:
U #schritt[1]
U E1.0
R #schritt[1]
S #schritt[2]

U #schritt[2]
U E1.2
R #schritt[2]
S #schritt[3]

...

O #schritt[1]
O #schritt[2]
= A4.0

...

Harald
 
Zuletzt bearbeitet:
Für Schrittketten verwende ich immer die Sprungliste (SPL) und eine statische Variable, in der der abzuarbeitende Schritt steht.
Gleuch am Anfang wird über die Sprungliste wird dann in den aktuellen Schritt gesprungen, dieser abgearbeitet und ggf der nächste Schritt in die statische Variable eingetragen und der Schritt (und der FB) mit BEA beendet (oder einen SPA END auf die Sprungemarke END am Ende des FB gesprungen)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ohne Sprungleiste ist das Fehlersuchen leichter.

Wer diese Art der Programmierung nicht kennt, der hat ggF Probleme eine Störung oder einen Programmfehler zu suchen.


bike
 
Also hier mal kurz die Aufgabenstellung:
Das Einlagern eines Teils soll hier in einem Standartfunktionsbaustein programmiert werden , damit dieser bei ähnlichen Projekten immer wieder genau in dieser form verwendet werden kann.
Dabei wird der Funktionsbaustein im Aufruf mit den Ein-, Ausgangsadressen belegt und die vertikal- und Horizontalposition jeweils in einem Merker im BCD - Format vorgegeben. Außerdem müssen beim Aufruf noch die Zeiten und Zähler zugeordnet werden.

Der Funktionsbaustein fordert über eine OUT Variable die Bereitstellung der Positionswerde an und über eine andere OUT Variable das Schreiben eines neuen Wertes für das abgelegte Teil in den Datenbaustein.

Das Einlagern soll in folgender Chronologischer Reihenfolge durchgeführt werden:
-Grundstellung links (S11) unten (S2) anfahren ( Soweit recht klar was da passieren soll )
-Teil anfordern / Position Lagerplatz leer ermitteln ( muss ich das dann vorgeben ? Da die lagerplätze ( 28 im gesammten ) ja nicht im DB zur verfügung stehen bzw wenn ja dann alle als leer)
-Werte für die Vertikal und Horizontalposition laden ( bekommt man dann über den DB zugeteilt denke ich mal )
-Position andahren über Zähler gesteuert ( wo kommt der Zähler her und was muss der Zählen? zählt er von platz 1 bis 28 hoch? )
-Greifer anheben Zeitgesteuert ( keinerlei Zeitvorgabe also frei definierbar? )
-Zylinder ausfahren ( das wiederum ist ein klacks :D )
-Greifer senken zeitgesteuert ( wieder frei wählbar? )
-Zylinder einfahren ( einfache geschichte )
-Übergabeposition links ( S11 ) unten ( S2) anfahren / Code in Datenbaustein schreiben ( als OUT variable an DB zu übergeben? )
- weiter mit Schritt 2: Teil anfordern / Position Lagerplatz leer ermitteln.

ja wie ihr merkt blick ich da gerade recht wenig durch :/ würde mich über ein paar brachiale kommentare ( gerne auch sehr direkt und zurechtweisend ) freuen :)
nur so lernt man es dann xD

ich Tipsel euch auch noch gerne die ZULI ab wenn ihr wollt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ohne Sprungleiste ist das Fehlersuchen leichter.
Dadrüber kann man streiten, allein herauszufinden welcher Schritt gerade aktiv ist ist viel leichter, da ich nur die Schrittvariable ansehen muss.
Wer diese Art der Programmierung nicht kennt, der hat ggF Probleme eine Störung oder einen Programmfehler zu suchen.
Das könnte durchaus stimmen.
 
Zurück
Oben