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

Ergebnis 1 bis 4 von 4

Thema: Fehler bei AT Funktion in SCL

  1. #1
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, ich habe folgenden Programmcoder in SCL érstellt:

    Code:
    TYPE UDT7
        STRUCT
            Einlesen_alt : BOOL;
            Flanke_Einlesen_pos : BOOL;
            Weiterleiten_alt : BOOL;
            Flanke_Weiterleiten_pos : BOOL;
            Button_Reset : BOOL;
            Req_Reset : BOOL;
            Button_Ja : BOOL;
            Button_Nein : BOOL;
            Reserve_10 : BOOL;
            Reserve_11 : BOOL;
            Reserve_12 : BOOL;
            Reserve_13 : BOOL;
            Reserve_14 : BOOL;
            Reserve_15 : BOOL;
            Reserve_16 : BOOL;
            Reserve_17 : BOOL;        
        END_STRUCT;
    END_TYPE
    FUNCTION FC60 : VOID
    VAR_INPUT
        Einlesen : BOOL;
        Weiterleiten : BOOL;
    END_VAR
    VAR_IN_OUT
        Quelle : UDT8;
        Zwischenspeicher : ARRAY[0..20] OF UDT8;
        Ausgabe : UDT8;
        Loeschquelle : UDT8;
        Hilfsbits : WORD;
        Zaehler : INT;
        
    END_VAR
    VAR_TEMP
        Hilfsbits_intern AT Hilfsbits : UDT7;
        Werte_einlesen : BOOL;
        Werte_Weiterleiten : BOOL;
        i : BOOL;
        Max_Array : INT;
        
    END_VAR
    Bei der AT Funktion, sagt er mir immer ungültige Variable, aber warum? Kann mir da jemand helfen?
    Zitieren Zitieren Fehler bei AT Funktion in SCL  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    ... du mußt die AT-Sicht in der Rubrik machen, in der auch die Ursprungs-Variable deklariert ist - also in deinem Fall in der Rubrik IN_OUT :
    Code:
    VAR_IN_OUT
        Quelle : UDT8;
        Zwischenspeicher : ARRAY[0..20] OF UDT8;
        Ausgabe : UDT8;
        Loeschquelle : UDT8;
        Hilfsbits : WORD;
        Hilfsbits_intern AT Hilfsbits : UDT7;
        Zaehler : INT;
      
    END_VAR
    ... du erzeugst mit AT keine neue Variable sondern "nur" eine andere Sichtweise der gleichen (schon vorhandenen) Variablen ...

    Gruß
    Larry

  3. #3
    Bensen83 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Jetzt sagt er mir, dass der Typ der sicht nicht mit dem Typ der Variablen verträglich ist, warum denn? der UDT 7 ist doch genau ein WORD
    Zitieren Zitieren Ok  

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Sorry ... ich hatte nicht gesehen, dass du einen FC erstellst ...

    In einem FC geht das nur bei den TEMP's. Du mußt deine Variable also erst dahin kopieren, dort die AT-Sicht machen und am Ende wieder zurückschreiben.

    Also so :
    Code:
    VAR_TEMP
        Hilfsbits_Temp : word ;
        Hilfsbits_intern AT Hilfsbits_temp : UDT7;
        Werte_einlesen : BOOL;
        Werte_Weiterleiten : BOOL;
        i : BOOL;
        Max_Array : INT;    
    END_VAR
     
     
    ... und dann am Code-Start :
    Hilfsbits_Temp := Hilfsbits ;
     
    ... und am Code-Ende :
    Hilfsbits := Hilfsbits_Temp  ;

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

    Chris_Rgb (15.11.2011)

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 17.06.2011, 08:02
  2. funktion SPS
    Von SheepLord im Forum Stammtisch
    Antworten: 19
    Letzter Beitrag: 19.12.2010, 18:20
  3. Funktion
    Von Placidjam im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 07.05.2009, 15:26
  4. SCL MID Funktion
    Von Uli_87 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 24.02.2009, 10:32
  5. Funktion
    Von isensa im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 26.07.2006, 18:07

Lesezeichen

Berechtigungen

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