Ok das ist schonmal neu für mich und sieht ganz gut aus. Wenn ich nun den fb aufrufe mit Ein Zeit und Aus als in parameter und Stern und Dreieck als Out, nehme ich noch Netz und "hilfsschalter" als var.
Dennoch muss ich doch in der symboliktabelle sagen was Netz oder Hilfsschalter sind, (eingang, ausgang) oder nicht?
Das ist mir leider noch unklar...
Das Thema ist nicht mit ein paar Infos rüberzubringen.
OK, ich versuch mal einen kleinen Crashkurs (wo soll ich nur anfangen?)
Also,
du musst zwischen den "Absoluten Adressen" (Ex.x, Ax.x usw) und den Parametern innerhalb des FBs unterscheiden.
Die Absoluten sind im gesamten Programm immer die gleichen.
Die im FB deklarierten sind nur innerhalb des FBs gültig.
Daher dürfen in einem universellen FB (zB. für mehrere Motoren identische Logik)
keine "Absoluten" verwendet werden.
Diese werden beim Aufruf des FBs an IN, OUT, INOUT übergeben.
Der FB "trägt" diese in seinen Instanz-DB, der beim Aufruf angegeben wird, ein.
Dabei ist zu beachten:
Bei Abfragen (U, O, L..) im FB ist IN zu verwenden.
Bei Zuweisen (S, R, =) im FB ist es OUT.
Ist beides programmiert, muss INOUT angegeben werden.
Die Deklarationen im Bereich STAT sind "Speicherzellen" im Instanz-DB.
Diese sind beim nächsten Zyklus (Abarbeiten des Programms) für diesen Aufruf des FBs gültig (Gedächtnis).
Die Deklarationen im Bereich TEMP sind nur temporär (zeitlich) während der Abarbeitung innerhalb des FBs gültig.
Einer Abfrage
muss daher
vorher eine Zuweisung erfolgen.
Verwendung zB für Zwischenmerker, die nur innerhalb des FBs gebraucht werden.
(gültig = reeler Wert)
Mal so grob für Nicht-SPSler
Zur Symboltabelle:
Die solltest du eintragen, ist aber für die Funktionalität kein Muss.
Ich hoffe, ich konnte dir mal weiterhelfen.
Gruß Roland
Edit
Puzzlefreak war schneller
Zum Verständnis:
Die "Absoluten" bei mir sind mit den "Globalen" bei Puzzlefreak identisch.