TIA SCL Funktion

Edy998

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, kann mir jemand bei einem Problem helfen?
Ich möchte eine Funktion in SCL erstellen (Posx = 900+ (x-1) * 710), wobei x 1,2,3 ist. Aber ich weiß nicht, wie ich es machen soll, damit es nur eine Funktion gibt.
 
Hi, du nimmst einen FC erstellst darin deinen Scl-Code und rufst diesen dann auf.
Input dürfte dann x sein und Output PosX
 
Die Rückgabe des Ergebnis über den Returnvalue gefällt mir besser.

Wenn der FC in SCL aufgerufen wird, dann sieht es kompakter aus.
Code:
#Pos := "PosX"(100);


Code:
"PosX"(x:=100,
       PosX=>#Pos);
 
Hi

Wenn du es über das RetVal machen willst dann nimm den Out Weg und im FC dann den Return nutzen.
Der Return heisst gleich wie dein Baustein.

Und so als Hinweis um dir das leben leichter zu machen: verwende in Bausteinen keine Leerschläge, Sonderzeichen und Umlaute.

Gruss
 
Ich habe so versucht aber es funktioniert nicht !:-|
Du mußt in der Funktion das Ergebnis der Berechnung dem Funktionsname zuweisen - das ist der Funktions-Rückgabewert (RET_VAL):
Code:
"Formel für Pos_x" := 900 + (#x - 1) * 710;

Tipp: gewöhne Dir so einen Unfug wie Funktionsnamen oder Variablennamen mit Leerzeichen gar nicht erst an, sowas gibt es aus guten Gründen in keiner verbreiteten Programmiersprache außer bei Siemens ...

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi

Wenn du es über das RetVal machen willst dann nimm den Out Weg und im FC dann den Return nutzen.
Der Return heisst gleich wie dein Baustein.

Und so als Hinweis um dir das leben leichter zu machen: verwende in Bausteinen keine Leerschläge, Sonderzeichen und Umlaute.

Gruss
1.jpg
Ich habe meinen Code jetzt geändert aber mein main gibt mir ein error
 
Beim Aufruf der Funktion mußt Du den Rückgabewert verwenden (das ist der Sinn des Rückgabewertes einer Funktion) - z.B. einer Variable zuweisen, oder weiterrechnen:
Code:
"Pos_x" := "Formel für Pos_x"(x:=1);

#andereVariable := "Formel für Pos_x"(x:=1) + 7;

Harald
 
Zurück
Oben