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

Ergebnis 1 bis 3 von 3

Thema: Bausteinaufruf in SCL

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

    Ausrufezeichen


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo SPS-Gemeinde,

    leider bin ich sonderlich bewandert in der ganzen SPS Geschichte, dennoch beschäftige ich während meines Studiums damit und habe derzeit ein größeres Projekt bei dem ich auf folgendes Problem gestoßen bin.

    Ich hab Bausteine in SCL geschrieben in denen ich andere Bausteine aufrufen muss. Dazu wähle ich einfach unter Einfügen->Bausteinaufruf den entsprechenden Baustein aus.

    Das ganze sieht dann so aus:
    Code:
    Bausteinname(
    prog :=  // INOUT: STRUCT
    , global :=  // INOUT: STRUCT
    , data :=  // INOUT: STRUCT
     ); // VOID
    Nun muss ich die INOUT Variablen mit denen belegen, die im aufgerufenen Baustein benötigt werden.
    Übersichtshalber habe ich die einzelnen Variablen die thematisch bzw. von ihrer Aufgabe her zusammen gehören in einen UDT gepackt und einzelne UDTs in einem DB zusammen gefasst.

    Das ganze sieht dann so aus:
    Code:
    Bausteinname(
    prog := db1.prog,
    global :=  db1.global,
    data :=  db1.data
     ); // VOID
    Als Fehlermeldung bekomme ich für jeden übergebenen UDT
    Code:
    Ungültiger Datentyp

    Jetzt habe ich schon einiges darüber gelesen wie einzelne Wörter oder ähnliches übergeben werden, aber noch nicht wie komplette Strukturen, also UDTs, übergeben werden.

    Zur Info hier noch der Baustein der aufgerufen werden soll:

    Code:
    FUNCTION Funktionsname: VOID
    
    TITLE = 'Bausteintitel' 
    VERSION : '1.0'
    AUTHOR  : Name
    NAME    : TKCP
    FAMILY  : UEW
    
    // eingangsvariablen
    VAR_INPUT
    
    END_VAR    
    
    // ausgangsvariablen
    VAR_OUTPUT
    
    END_VAR
    
    // ein- und ausgangsvariablen
    VAR_IN_OUT
    prog        : "UDT-TopKnifeProgram";
    global      : "UDT-KnifeGlobal";
    data        : "UDT-TopKnifeData";
    set         : "UDT-TopKnifeSet";
    bits        : "UDT-TopKnifeBits";   
    
    
    
    END_VAR
    
    // temporäre variablen
    VAR_TEMP
    
        zaehler     : INT;      
        zaehler2    : INT;    
        position    : INT;       
    
      
    
    END_VAR
    
    
    BEGIN
    .........
    
    END_FUNCTION
    Würde mich über einige Tipps freuen

    Ritti
    Zitieren Zitieren Bausteinaufruf in SCL  

  2. #2
    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 Ritti,
    das geht genau so, wie du es vorhast ...
    Der UDT, den du übergeben willst, muß dem SCL-Compiler bekannt sein.
    Die Übergabe-Daten MÜSSEN von der erwarteten Struktur sein - in deinem Fall also muß DB1.prog vom Typ "UDT-TopKnifeProgram" sein (und entsprechend für die weiteren).

    Du kannst dann im Script auf die einzelnen Struktur-Elemente zugreifen (nur den IN_OUT-Variablennamen mit einem "." voranstellen ...)

    Gruß
    LL

  3. #3
    ritti ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.04.2009
    Beiträge
    2
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    vielen Dank für die Antwort. Offenbar war wohl der Ansatz nicht ganz so falsch. Nachdem ich alle Quellen nochmals übersetzt habe sind die Fehler verschwunden. Lag anscheinend irgendwie daran.

    Besten Dank
    Ritti

Ähnliche Themen

  1. Variabler Bausteinaufruf in SCL
    Von eugenhuber im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 18.05.2010, 16:55
  2. Indirekter Bausteinaufruf
    Von Supervisor im Forum Simatic
    Antworten: 26
    Letzter Beitrag: 03.12.2007, 11:47
  3. Bausteinaufruf aus Verknüpfung
    Von samson im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 19.02.2006, 21:49
  4. Bedingter Bausteinaufruf
    Von hannes im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 21.07.2005, 09:02
  5. bedingter Bausteinaufruf
    Von Anonymous im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 09.05.2005, 15:30

Stichworte

Lesezeichen

Berechtigungen

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