Step 7 Daten aus Global-DB in SCL verarbeiten

penki

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen, Ich traue mich gerade zum ersten mal an SCL ran und möchte eigentlich nur aus einem DB Real Zahlen auslesen, dann eine real zahl von der anderen Subtrahieren und das Ergebnis dann in einen anderen DB schreiben. Da ich leider keine Unterlagen habe, habe ich mich jetzt mühsam von Anfangs über 50 fehlern beim übersetzen auf jetzt 19 runtergearbeitet. leider komm ich jetzt nicht mehr ohne hilfe weiter und im Forum hab ich auch nochnix gefunden was mir weiterhilft. Vielen Dank ! St.JPG
 
Hallo penki!

Also was mir jetzt mal auffällt:

  1. Funktionsbausteine haben keinen Rückgabewert (es sei denn du willst sowieso nur eine Funktion ("Function") machen, dann kannst du den Rückgabewert beibehalten)
  2. Du kannst als Variablenname nicht direkt die Adresse angeben, das musst du dann beim Aufruf des Bausteins machen!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
. leider komm ich jetzt nicht mehr ohne hilfe weiter und im Forum hab ich auch nochnix gefunden was mir weiterhilft. Vielen Dank !

1. Im Forum gibt es zig Beispiele zu SCL
2. Bei SCL ist eine Gute Hilfe dabei
3. In SCL gibt es Vorlagen die man einfügen kann z.B für den Baustein-Kopf und die Variablen
4. Warum verwendest du keine Symbolik

Wenn Du direkt mit den Variablen Rechnen willst, werden die nicht als IN oder OUT Deklariert, dies macht man, wenn man den Baustein mehrmals brauchen kann. Dann kann man von aussen die Werte anlegen.
Code:
FUNCTION FC666 : VOID

// Bausteinparameter
VAR_INPUT
    // Eingangsparameter
    I_Wert1: REAL;
    I_Wert2: REAL;
END_VAR

VAR_IN_OUT
    // Durchgangsparameter
    
END_VAR

VAR_OUTPUT
    // Ausgangsparameter
    O_Wert: REAL;
END_VAR

VAR_TEMP
    // temporäre Variablen

END_VAR

    // Anweisungsteil
    O_Wert:=I_Wert1-I_Wert2;
    
END_FUNCTION

Wenn Due direkt zugreifen willst benötigt man die Symbolik, oder Weisst die Werte innerhalb des Bausteines zu, da ist aber die obere Lösung besser.
Code:
FUNCTION FC666 : VOID

// Bausteinparameter
VAR_INPUT
    // Eingangsparameter
END_VAR

VAR_IN_OUT
    // Durchgangsparameter    
END_VAR

VAR_OUTPUT
    // Ausgangsparameter
END_VAR

VAR_TEMP
    // temporäre Variablen

END_VAR

    // Anweisungsteil
 "Werte".Wert1:="Werte".Wert2+"Werte".Wert3;    
END_FUNCTION
 
Besten Dank für die hilfe! Ich hatte ein Denkfehler bei den In und out Variablen! Jetzt haut alles hin.
 
Zurück
Oben