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

Ergebnis 1 bis 5 von 5

Thema: Problem mit FB in SCL

  1. #1
    Registriert seit
    14.05.2007
    Beiträge
    29
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Einem FB(Stack) mit Instanz-DB(Weg_erfassung) übergebe ich die in der Klammer angegegebenen Werte.

    Aufruf des FBs:
    Code:
    Stack.Weg_erfassung(Adr_in:=DB1.DW0,Adr_insert:=TRUE,Adr_remove:=FALSE);
    Jetzt sollte beim Simulieren doch in den Variablen der IF-Anweisungzumindest irgend etwas angezeigt werden.
    Anscheinend springt er erst gar nicht in die IF-Anweisung.
    Warum nicht. Alle Parameter wurden doch übergeben!

    Code:
    FUNCTION_BLOCK Stack
    VAR_INPUT
        Adr_in : DWORD;
        Adr_insert : BOOL;
        Adr_remove : BOOL;
    //    Reset : BOOL;
    END_VAR
    VAR_OUTPUT
        empty : BOOL;
        full : BOOL;
        Adr_return : DWORD;                     //Rückgabe der aktuellen Adresse
    END_VAR
    VAR
        Stack : ARRAY[0..31] OF DWORD;          //Stack(Das Array mit den Wegelementen, die den Weg beschreiben
        All   : ARRAY[0..31] OF DWORD;          //Alle Aufgerufenen Elemente im Array "ALL"
     
        N : INT := -1;                          //Zählervariable für den STACK
        K : INT := -1;                          //Zählervariable für ALL
        top : INT := 31;
    END_VAR
    VAR_IN_OUT
    END_VAR
     
     
    (*IF Reset=true THEN
        (* reset Stack *)
        N := -1;
        empty := TRUE;
        full := FALSE;*)
    IF Adr_insert AND Adr_remove=false AND NOT full=false THEN
        (* schreibe in den Stack *)
        N := N + 1;
        K := K + 1;
        IF N = top THEN full := TRUE; END_IF;                       (*Die Adresse im letzten Feld soll gelöscht bzw. eine Null in*)
        empty := FALSE;                                             (*das Feld geschrieben und der Zähler um einen zurück gesetzt*)
        stack[N] := Adr_in;                             //Schreibe Adresse ins Array "STACK"
        all[K]   := Adr_in;                             //Schreibe Adresse ins Array "ALL"
        Adr_return:=Adr_in;                             //Rückgabe der akt. Adresse an die aufrufende Funktion
    Zitieren Zitieren Problem mit FB in SCL  

  2. #2
    Registriert seit
    23.11.2004
    Beiträge
    347
    Danke
    2
    Erhielt 28 Danke für 28 Beiträge

    Standard

    Könnte es daran liegen, dass "Adr_in" als DWORD deklariert ist und nur ein Wort übergeben wird?
    Heisst es nicht auch "DB1.DBW0"?

    Gruß
    raika
    Rainer Kandziora
    Grollmus GmbH
    Qualität in SIMATIC Schulungen
    E-Mail: mailto:Rainer.Kandziora@grollmus.de
    Internet: http://www.grollmus.de

  3. #3
    broesel ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.05.2007
    Beiträge
    29
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Habe ich geändert. Doch das war es auch nicht.
    Ich vermute es liegt an den Abfragen in der IF_ANweisung.

    Mit den Anweisungen habe ich jetzt auch schon rumgespielt,
    doch die Variablen (N, K, Empty,...) werden im PLCSIM
    nicht angezeigt.

    Letzte änderung in der IF-Anweisung waren:

    Code:
    IF Adr_insert=true AND Adr_remove=false AND full=false THEN
    Wenn die Bedingungen erfüllt sind, dann springe in die Anweisung

    Trotzdem Danke!!

  4. #4
    Registriert seit
    28.10.2005
    Ort
    Ottweiler, Saar
    Beiträge
    940
    Danke
    259
    Erhielt 124 Danke für 109 Beiträge

    Standard

    full ist doch Ausgabeparameter. Den fragst Du in der IF ab, aber woher soll full einen definierten Wert bekommen ?

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

    broesel (29.05.2007)

  6. #5
    broesel ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.05.2007
    Beiträge
    29
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das wars!!
    Danke ARGV_USER. Jetzt wo du es sagst!!

Ähnliche Themen

  1. OPC Problem routen problem
    Von kpeter im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 25.08.2010, 19:54

Lesezeichen

Berechtigungen

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