Einem INPUT in SCL etwas zuweisen

Bensen83

Level-1
Beiträge
777
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich habe ein bestehendes SCL Projekt, in dem ein INPUT Parameter im SCL Code überschrieben wird. Wenn ich jetzt aber einen neuen FC erstellen möchte, meckert er mir die zeile an, in dem ich den INPUT Parameter kurzzeitig überschreiben möchte. Gibt es da bestimmte vorgehensweisen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Einem IN-Parameter im Baustein selbst etwas zuweisen ist ja auch nicht erlaubt, es ist ein IN-Parameter und diese dürfen nicht verändert werden! Probier es mal mit einer IN-OUT-Variable, wenn der Wert auch nach Außen sich ändern soll! Wenn nicht, dann musst Du den IN-Parameter in eine lokale Variable schieben und mit dieser weiterarbeiten.
 
Welchen Sinn macht das genau, den Input-Parameter kurz zu überschreiben?
Dann kopiere doch am Anfang des Codes den Input-Parameter in eine Temp und arbeite dann damit weiter. Da kannst du dann alles mit anstellen, was dir beliebt.
 
... ist interessant ... ich habe die Frage nicht im Ansatz so verstanden wie ihr. Aber es hört sich so natürlich plausibel an. Ic h würde es dann auch so machen wie von Ralle beschrieben ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe ein bestehendes SCL Projekt, in dem ein INPUT Parameter im SCL Code überschrieben wird. Wenn ich jetzt aber einen neuen FC erstellen möchte, meckert er mir die zeile an, in dem ich den INPUT Parameter kurzzeitig überschreiben möchte.
Meinst Du, den INPUT-Parameter eines Bausteins im Code dieses Bausteins beschreiben oder von außerhalb des Bausteins?
Dein bestehender Baustein ist wahrscheinlich ein FB. In einem FC ist das Beschreiben eines INPUT-Parameters nicht möglich.

Die SCL-Hilfe und das SCL-Handbuch sagen
Eingangsparameter [...] können nur gelesen werden.
und erwähnen da keinen Unterschied zwischen FB und FC.

Mein SCL-Compiler V5.3+SP5 macht aber einen Unterschied:
- in FB (FUNCTION_BLOCK) läßt der Compiler das Beschreiben eines Eingangsparameters zu! --> 0 Fehler, 0 Warnung(en)
- in FC (FUNCTION) läßt der Compiler das Beschreiben eines Eingangsparameters NICHT zu --> F: Ungültige Zuweisung.

Etwas schwammig sagen die SCL-Hilfe und das SCL-Handbuch fast gleichlautend zu FB und FC
Eingangszuweisung (FB)
Durch Eingangszuweisungen werden den formalen Eingangsparametern Aktualparameter zugewiesen.
Der FB kann diese Aktualparameter nicht verändern.
Das "kann nicht verändern" bezieht sich allerdings nur auf den am Eingangsparameter zugewiesenen Aktualparameter!
Der bei FB im IDB liegende Eingangsparameter kann geändert werden, der beim FB-Aufruf zugewiesene Aktualparameter wird
davon aber nicht beeinflußt.

Beispiel:
Code:
      L     0
      T     MW   200            // Aktualparameter vorbelegen

      CALL  "FB100" , "DB100"   // der FB schreibt 123 auf iIN
       iIN:=MW200               // iIN ist beim Aufruf 0 (von MW200)

      L     "DB100".iIN         // ist hier 123 !
      L     MW   200            // ist hier 0

      CALL  "FB100" , "DB100"
       iIN:=                    // iIN ist hier 123 !

Harald
 
Zurück
Oben