# Brauche Hilfe bei SCL.SFC Aufrufen in SCL



## Gerold (5 Oktober 2005)

Hallo,

ich beschäftige mich seit ein paar Tagen mit SCL.
Nun habe ich ein kleines Programmchen fertig benötige aber die Funktion SFC 20 "BLKMOV".
In AWL ist alles einfach,aber wie in aller Welt rufe ich eine Systemfunktion in SCL auf.
Für eine Lösung wäre ich euch dankbar.

Danke
Gruß Gerold


----------



## old_willi (5 Oktober 2005)

Hallo,

das aus dem Handbuch:

Einfügen von Bausteinaufrufen
S7-SCL unterstützt Sie beim Programmieren von Bausteinaufrufen. Aufrufbare
Bausteine sind:
• Systemfunktionsbausteine (SFB) und Systemfunktionen (SFC) aus den
SIMATIC-Bibliotheken,
• in S7-SCL erstellte Funktionsbausteine und Funktionen,
• in anderen STEP 7-Sprachen erstelle Funktionsbausteine und Funktionen.
Gehen Sie folgendermaßen vor:
1. Wählen Sie den Menübefehl Einfügen > Bausteinaufruf.
2. Wählen Sie im nachfolgenden Dialogfeld den gewünschten SFC, SFB, FC
oder FB aus und bestätigen Sie mit "OK".
S7-SCL trägt den Bausteinaufruf sowie die Formalparameter des Bausteins
syntaktisch korrekt in die Quelle ein.
3. Wenn Sie einen Funktionsbaustein aufgerufen haben, ergänzen Sie die
Angabe des Instanz-DB.
4. Geben Sie nun die Aktualparameter zur Versorgung des Bausteins ein. Um
Ihnen die Auswahl eines Aktualparameters zu erleichtern, gibt S7-SCL den
geforderten Datentyp als Kommentar an.

Würde dir gerne ein Beispiel geben, dauert aber etwas.

Gruß Wilfried


----------



## Gerold (5 Oktober 2005)

*Problem gelöst*

Hallo,
danke für deine Antwort.Es hat funktioniert.Was mich aber noch interessieren würde.Welches Handuch ist das denn.Sollte ich darüber hinweg geschaut haben.


Auf jedenfall : Vielen Dank

Gruß Gerold


----------



## old_willi (5 Oktober 2005)

Hallo,

wenn du es nicht kriegen kannst sag Bescheid.

Gruß Wilfried


----------



## old_willi (5 Oktober 2005)

Hallo,
hatte ich vergessen


----------



## Gerold (5 Oktober 2005)

*neues Problem*

Hallo ,

das Handbuch habe ich schon.Ich denke ich habe nicht richtig nachgeschaut.

Kaum ist das Problem gelöst ,tut sich ein neue sauf.

In AWL würde es so aussehen

L ANxx // ist Periepherieanfangsadresse aus Hardwarekonfig
SLW 3
L AR1
....
....
....
....
....
T PAW[AR1,P#2.0]
das heißt ich möchte einen INT Wert einlesen ,und so umwandeln ,daß ich diesen als Periherieausgang beschreiben kann.

Ich hoffe Du kannst mir folgen.

Gruß Gerold


----------



## old_willi (5 Oktober 2005)

Hallo,

ich glaube der Baustein enthält das.


```
FUNCTION FC200 : VOID

TITLE = 'Setzen und Auslesen von TR Seilzuggeber'
(* Mit dem Baustein kann ein TR- Seilzuggeber 
ausgelesen und auf einen bestimmten Wert gesetzt werden.
1 Umdr. = 199,96 mm = 4096 Inc.
Meßlänge = 2.000 mm
Geber CE 66M *)

//************ Bausteinparameter ******************

VAR_INPUT   // Eingangsparameter
ANF_ADR_INP  :INT;  // PED Anfangsadresse
ANF_ADR_OUTP :INT;  // PAW Anfangsadresse
SETZWERT     :INT;  // Mit "SETZEN" = 1 wird der Geber auf Setzwert gestellt
  END_VAR
//************ Durchgangsparameter ******************
VAR_IN_OUT
SETZEN       :BOOL; // Geber auf "SETZWERT" stellen
END_VAR
//************ Ausgangsparameter ******************
VAR_OUTPUT
ISTW_MM     :REAL; // Istwert vom Geber in mm
END_VAR
//************ temporäre Parameter ******************
VAR_TEMP
ISTW_DWORD   :DWORD;
END_VAR

//************ Anweisungsteil ******************

BEGIN

ISTW_DWORD := PED [ANF_ADR_INP];

ISTW_MM := (DINT_TO_REAL (DWORD_TO_DINT (ISTW_DWORD)))*  0.08125;

IF SETZEN THEN
    PAW [ANF_ADR_OUTP + 2] := INT_TO_WORD (SETZWERT);
    PAW [ANF_ADR_OUTP] := W#16#8000;
ELSE
    PAW [ANF_ADR_OUTP] := W#16#0000;
    SETZEN := FALSE;
END_IF;

IF PEW [ANF_ADR_INP + 2] = INT_TO_WORD (SETZWERT) THEN
    Setzen := False;
END_IF;

END_FUNCTION
```


----------



## Gerold (5 Oktober 2005)

*Vielen Dank*

Hallo old_willi,

was soll ich sagen.Ich bin schwer begeistert.
Das ist das was ich gesucht habe.
Vielen Dank für deine Hilfe.


Ach ja.Das Forum ist besser als jedes SPS-Buch.

Danke.


----------



## old_willi (5 Oktober 2005)

Hallo Gerold,

welch ein Glück für dich, dass ich Step7- AWL  total Schei... finde.
Weiter frohes Schaffen.
Gruß Wilfried


----------



## Gerold (6 Oktober 2005)

*SFC 20 und RET_VAL ??? Wie wird dieser Parameter beschrieben*

Hallo,

leider habe ich noch ein Problem.
Wenn ich in SCL den SFC 20 "BLKMOV" einfüge escheint die Aufrufstruktur ja automatisch im Editor.

BLKMOV (SRCBLK: =//int
             ,DSTBLK :=//OUT:ANY
             );//int

Die Werte für SRCBLK und DSTBLK sind ja ok ,aber was ist mit RET_VAL.

Meine Frage nun : Wie sieht die korrekte Schreibweise für einen solchen Bausteinaufruf aus.

Vielen Dank für Eure Antworten.

Gruß Gerold


----------



## Gerold (6 Oktober 2005)

*Habe Antwort gefunden*

Hallo,
diese Frage braucht nicht mehr beantwortet zu werden.Habe es im dem Buch von Hans Berger gefunden.

Es ist nur enttaüschend ,daß solche Informationen nicht in den Siemens Handbüchern vermerkt sind.


Gruß Gerold


----------

