Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 8 von 8

Thema: Funktionsaufruf funktioniert nicht - SCL

  1. #1
    Registriert seit
    05.10.2007
    Beiträge
    26
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!
    Ich hab mal wieder ein Problem. Ich möchte aus meinem OB1 die Funktion FC1 aufrufen. Kann ja eigentlich nicht so schwer sein, laut Hilfe sieht die Synthax auch recht einfach aus. So weit die Theorie...

    Der Aufruf:
    FC1(jahr := akt_jahr); // REAL

    Jetzt bekomme ich die Fehlermeldung, dass der Funktionstyp fehlt oder ungültig ist. Wo definiere ich denn jetzt den Funktionstyp?
    In der Funktion selber ist der Typ wie folgt definiert:

    FUNCTION FC1 : REAL

    Was könnte jetzt der Fehler sein?
    Zitieren Zitieren Funktionsaufruf funktioniert nicht - SCL  

  2. #2
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Ohne es nun zu testen.
    Es könnte sein das der Rückgabewert der Funktion auch verwendet werden muss.
    Im OB1:
    Code:
    myREAL := FC1(jahr := akt_jahr); // REAL
    If you open your Mind too much, your Brain will fall out.

  3. Folgender Benutzer sagt Danke zu zotos für den nützlichen Beitrag:

    amateur (12.10.2007)

  4. #3
    amateur ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.10.2007
    Beiträge
    26
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Super, das war's! Vielen Dank Meine Funktion soll mir am Ende zwei Werte liefern. Wenn ich das jetzt richtig verstanden habe, kann ich auf diese Weise aber nur einen abrufen. Wie bekomme ich dann den anderen?

  5. #4
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Am einfachsten einen Bereich VAR_OUTPUT in der Funktion hinzufügen.

    Dann kannst Du mehrere Ausgänge definieren. Diese Variablen werden dann wie die Eingabe im Aufruf übergeben.

    Um nicht einen RET_VAL und einen VAR_OUTPUT zu haben (wenn Dich das stört) kann man die Funktion den Typ VOID verpassen dann hat sie eben keinen RET_VAL.
    If you open your Mind too much, your Brain will fall out.
    Zitieren Zitieren Viele Wege führen nach Rom.  

  6. #5
    amateur ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.10.2007
    Beiträge
    26
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für die schnelle Antwort! Das hat mich meinem Ziel aber leider nicht näher gebracht. Nachdem ich den VAR_OUTPUT-Bereich definiert und zwei zwei Variablen eingefügt habe(as,ys), bekomme ich nun die Fehlermeldung, dass die Eingangsparameterzuweisung unvollständig ist.

    Wenn wir jetzt mal davon ausgingen, dass das jetzt alles schon funktionierte, wie bekomme ich dann die Variablen zu fassen?

    as := FC1(jahr := akt_jahr)

    oder so

    myReal := FC1(as) (was ich nicht glaube, aber man weiß ja nie...)

    oder ganz anders?

  7. #6
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Code:
    FUNCTION FC1 : VOID
    //Test FC1
    VAR_INPUT
      inReal_1 : REAL;
      inReal_2 : REAL;
    END_VAR
    
    VAR_OUTPUT
      outReal_1 : REAL;
      outReal_2 : REAL;
    END_VAR
    
      // Anweisungsteil
      outReal_1 := inReal_1 / inReal_2;
      outReal_2 := inReal_2 / inReal_1;
    END_FUNCTION
    
    //Aufruf von FC1
    FC1(inReal_1:= 0.5, inReal_2:=0.8, outReal_1:=myRealEXTERN1, outReal_2:=myRealEXTERN2);
    Geändert von zotos (12.10.2007 um 11:03 Uhr)
    If you open your Mind too much, your Brain will fall out.

  8. #7
    amateur ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    05.10.2007
    Beiträge
    26
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Guten Morgen!
    Ich wollte nur noch mal sagen, dass jetzt alles funktioniert hat. Vielen Dank!!

  9. #8
    Registriert seit
    27.08.2003
    Ort
    Schweitenkirchen
    Beiträge
    472
    Danke
    101
    Erhielt 73 Danke für 59 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    unter SCL gibts in der Menueleiste irgendwas wie -> einfügen Funktionsaufruf oder so.(weiss es grade nicht auswendig).

    Damit die Funktion auswählen und dann nur noch deine Variablen anfügen..

    Gruss Andy

Ähnliche Themen

  1. Simulation funktioniert nicht
    Von SPS GEEK im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 27.01.2011, 11:45
  2. SCL Installation funktioniert nicht
    Von ToBo im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 06.08.2009, 13:15
  3. MID-FC in SCL funktioniert nicht
    Von nobby_nobbs im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 19.03.2009, 02:14
  4. MMC funktioniert nicht
    Von MesSen-Nord im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 23.10.2008, 11:06
  5. TD 200 C funktioniert nicht
    Von -Andrea- im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 14.04.2005, 20:41

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •