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

Ergebnis 1 bis 6 von 6

Thema: FB Aufruf in S7 SCL

  1. #1
    Registriert seit
    26.08.2010
    Beiträge
    20
    Danke
    17
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,
    Ich möchte einen Funktionsbaustein(FB101) in einem weiteren FB(FB100) aufrufen und beim Aufruf sowohl Eingangs-, als auch Ausgangs- und Durchgangsparameter übergeben. Beide Funktionsbausteine sind in SCL geschrieben. Die Parameter habe ich mit Hilfe von Strukturen (STRUCT) sotiert, sodass ich nicht alle einzelnen Parameter übergeben muss. Die Übergabe der IN und OUT Parameter funktioniert auch schon bereits, obwohl ich auch mit denen zum Anfang Probleme hatte.

    Nun wollte ich noch die INOUT Parameter implentieren. Beim kompelieren der SCL Quelle des FB 100 kommt es jedoch zu einem Fehler "Parameterübergabe nicht Korrekt".
    Der Compiler scheint wohl die Strukturen nicht zu akzeptieren. Jedenfalls kommt es zu keinem Fehler bei der INOUT Parameterübergabe, wenn ich die Strukturen weg lasse.

    Nun wollte ich mal im Forum fragen, ob vielleicht schon jemand bei der Übergabe von Strukturen in SCL Probleme gehabt hat. die beiden FBs (FB100 und FB 101) sind in 2 seperaten SCL Quellen implementiert. Ich compeliere immer zuerst den FB 101 und danach den FB 100.

    Der Durchgangsparameterbereich des FB 101 sieht wie folgt aus:

    //INOUT Variablen des FB101******************************************
    VAR_IN_OUT
    INOUTTouchPanel: STRUCT
    Functions: STRUCT
    Feedback: INT;
    END_STRUCT;
    END_STRUCT;
    INOUTInverter: STRUCT
    Functions: STRUCT
    Feedback: INT;
    END_STRUCT;
    END_STRUCT;

    END_VAR
    //**********************************************************************
    Diesen FB 101 möchte ich im FB 100 in SCL aufrufen. Der FB100 gibt die Durchgangsparmeter des FB101 direkt weiter ohne sie zu benutzen, daher verfügt der FB 100 über den gleichen Aufbau der Durchgangsparameter:

    //INOUT Variablen des FB100******************************************
    INOUTTouchPanel: STRUCT
    Functions: STRUCT
    Feedback: INT;
    END_STRUCT;
    END_STRUCT;
    INOUTInverter: STRUCT
    Functions: STRUCT
    Feedback: INT;
    END_STRUCT;
    END_STRUCT;

    END_VAR
    //****************************************************************
    Den Aufruf des FB 101 im FB 100 habe ich wie folgt implementiert:

    //Aufruf FB 101 ******************************************************
    FB101.DB101( Start:=P4, // IN
    FromTouchPanel:=FromTouchpanel, //IN
    INOUTTouchPanel:=INOUTTouchPanel, // INOUT
    INOUTInverter:=INOUTInverter); //INOUT
    ToTouchpanel:=DB101.ToTouchpanel; //OUT
    ToInverter:=DB101.ToInverter; //OUT
    P6:=DB101.End; //OUT
    //*****************************************************************

    Hat dazu vielleich jemand einen Tip, was da falsch läuft? Ist das von mir falsch implementiert, oder vielleicht doch ein Systemfehler im Compiler?

    Update: Ich habe mal versucht den FB 101 im OB1 aufzurufen der in AWL geschrieben ist. Das hat ohne Probleme funktioniert.

    Danke
    Starter
    Geändert von Starter (24.10.2011 um 12:07 Uhr)
    Zitieren Zitieren FB Aufruf in S7 SCL  

  2. #2
    Registriert seit
    23.10.2009
    Beiträge
    391
    Danke
    58
    Erhielt 113 Danke für 87 Beiträge

    Standard

    Es ist nur mit Einschränkungen möglich, Parameter von Funktionen oder Funktionsbausteinen als Aktualparameter an aufgerufene Funktionen oder Funktionsbausteine weiter zu geben. Das ist unabhängig von KOP, FUP, AWL, SCL.
    Sieh Dir mal die Online-Hilfe zum Thema 'Parameterübergabe bei Bausteinen' an, da ist beschrieben, was geht und was nicht, und es gibt Tips, was man dann tun kann.
    Gruß
    Erich

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

    Starter (24.10.2011)

  4. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Hallo,
    ich kann das jetzt nicht ausprobieren ... ggf. würde es aber funktionieren, wenn du anstatt des STRUCT-Parameters einen gleich definierten UDT auf die Schnittstelle legst.

    Diese Deklaration ginge dann über "TYPE".

    Gruß
    Larry

  5. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Starter (24.10.2011)

  6. #4
    Registriert seit
    23.10.2009
    Beiträge
    391
    Danke
    58
    Erhielt 113 Danke für 87 Beiträge

    Standard

    Zusammengesetzte Datentypen können nicht als Durchgangsparameter durchgereicht werden, nur Ein- oder Ausgangsparameter. Über dieses Problem bin ich erst vor wenigen Tagen wieder mal gestolpert.
    Gruß
    Erich

  7. Folgender Benutzer sagt Danke zu LargoD für den nützlichen Beitrag:

    Starter (24.10.2011)

  8. #5
    Starter ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    26.08.2010
    Beiträge
    20
    Danke
    17
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von LargoD Beitrag anzeigen
    Es ist nur mit Einschränkungen möglich, Parameter von Funktionen oder Funktionsbausteinen als Aktualparameter an aufgerufene Funktionen oder Funktionsbausteine weiter zu geben. Das ist unabhängig von KOP, FUP, AWL, SCL.
    Sieh Dir mal die Online-Hilfe zum Thema 'Parameterübergabe bei Bausteinen' an, da ist beschrieben, was geht und was nicht, und es gibt Tips, was man dann tun kann.
    Gruß
    Erich
    Danke für den Tip Erich. Kannst du mir bitte den Link zur Online-Hilfe schicken?

    Besten Dank
    Starter

  9. #6
    Registriert seit
    23.10.2009
    Beiträge
    391
    Danke
    58
    Erhielt 113 Danke für 87 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    In der S7-Hilfe auf Index umschalten, dann
    "Parameterübergabe bei Bausteinen"
    (ohne Gänsefüßchen) eingeben und schon hast Du
    die Stelle.
    Gruß
    Erich

Ähnliche Themen

  1. OB3 Aufruf
    Von Higgi im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 15.04.2010, 11:52
  2. FB-Aufruf
    Von S7 Frischling im Forum Programmierstrategien
    Antworten: 9
    Letzter Beitrag: 10.10.2009, 11:52
  3. S7 OB1 - FB/DB Aufruf
    Von Marco Polo im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 21.04.2009, 14:07
  4. Aufruf DB im OB1
    Von tino2512 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 18.09.2007, 12:43
  5. DIX -Aufruf in SCL
    Von Wastel im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 20.10.2005, 11:09

Lesezeichen

Berechtigungen

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