Scl - Ausgangsparameter

kpeter

Level-1
Beiträge
693
Reaktionspunkte
26
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallöchen allerseits

Mein SCL ist ein bisschen eingerostet könnt ihr mir mal kurz weiter helfen :rolleyes:

ich hab ein Programm wo eine Variabel als ausgangsparameter parametriert ist

Code:
VAR_OUTPUT
    [COLOR=red][B]A_StatusFB[/B][/COLOR]                    : INT;
  END_VAR

ist es dann erlaubt das ich diese Variabel lesend bearbeite

Code:
[/SIZE]
[SIZE=3]IF ([COLOR=red][B]A_StatusFB[/B][/COLOR] < 0) THEN

Normalerweise müsste ich es doch als IN/OUT angeben oder habe ich da was verpasst
 
@kPeter

Bei einem Out-Parameter ist es im Prinzip wie bei einer Temp-Var. Du mußt ihn im FB beschreiben, sonst ist er unbestimmt. Hast du ihn im FB z.Bsp. im 1. NW beschrieben, dann kannst du in den folgenden Netzwerken lesend darauf zugreifen. Wenn also dein FB u.U. um die Schreibzuweisung herumspringt, ist es besser eine INOUT zu nehmen, allerdings muß man bei Programmstart sinnvollerweise auf jeden Fall für eine Initialisierung sorgen, sonst wird bis zur 1. Zuweisung ein "Zufallswert" am Output anliegen!
 
Wie schon gesagt musst du temp variabeln erst beschreiben.
Aber OUT-Variablen kannst du auch erst abfragen wenn es nötig ist da die variable den Wert des letzen FB Durchlaufes noch hat.

Ah ja, ich geb dir Recht, bei FB-Variablen ist das ja etwas anders als bei FC-Variablen. Die sind dann nicht unbestimmt, sondern entsprechen dem Wert im Instanz-DB.
 
Also,

Abfragen kannst du eigentlich jede Variable.

Als IN/Out - Variable brauchst du sie nur zu deklarieren, wenn sie in einem anderen FB auch beschrieben werden soll.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Abfragen kannst du eigentlich jede Variable.

Als IN/Out - Variable brauchst du sie nur zu deklarieren, wenn sie in einem anderen FB auch beschrieben werden soll.


stimmt nicht ganz kann bei normalen fc und fb komische phänomene geben

war mir nur nicht bei scl sicher
 
Wenn es um einen normalen FB geht und du auf einen OUT Parameter lesend zugreifest ist das kein problem solange du ihn nicht außerhalb des FB noch einmal änderst dann bekommt der fb diese änderung nicht mit und arbeitet mit denn wert der in seinen db steht.

nur bei scl war ich mir nicht sicher
 
Zurück
Oben