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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Eine Frage zu Variablen in SCL

  1. #1
    Registriert seit
    18.12.2008
    Beiträge
    255
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zusammen,

    ich habe ein Testprogramm in SCL mit einem Timer geschrieben und verstehe nicht, warum ich bezüglich "VAR_OUTPUT" einen Fehler bekomme; wenn ich das Ganze mit "VAR_IN_OUT" mache, dann klappt es. Kann mir das bitte Jemand näher erläutern - vielen Dank!

    Code:
    FUNCTION_BLOCK FB1
     
    VAR_INPUT
        Eingang: BOOL;
    END_VAR
     
    VAR_OUTPUT
        Ausgang: BOOL;
    END_VAR
     
    VAR
        currTime: S5TIME;
        biVal: WORD;
        actFlag: BOOL;
    END_VAR
     
    BEGIN
     
        // Einschaltverzögerung
     
         currTime := S_ODT (T_NO:=T1, S:=Eingang, TV:=T#1s, R:=FALSE, BI:=biVal, Q:=Ausgang);                     
     
    END_FUNCTION_BLOCK
     
     
    DATA_BLOCK DB1 FB1
     
    BEGIN
     
    END_DATA_BLOCK
     
    ORGANIZATION_BLOCK OB1
     
    VAR_TEMP
     
        info : ARRAY[0..19] OF BYTE;
     
    END_VAR
     
        FB1.DB1(Eingang:=E1.0, Ausgang:=A1.0);
     
    END_ORGANIZATION_BLOCK

    Als Fehlermeldung bekomme ich "Ungültige Zuweisung" und der Curser springt auf A1.0 im OB1!
    Grüße
    petzi
    Zitieren Zitieren Eine Frage zu Variablen 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,
    ich kann weder deinen Fehler noch deine Fehlermeldung nachvollziehen - dein komplettes Script kann ich allerdings auch nicht durchcompilieren. Bei mir sagt er : "Fehler beim Zugriff auf den Baustein (offline)" und meint damit den FB1.
    Wenn ich den FB1 einzeln compiliere und ihn dann genau wie du (allerdings in AWL) aufrufe gibt es keine Probleme.

    Gruß
    Larry

  3. #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

    Nachtrag :
    der OB1 muß bei einem OUT-Parameter so erstellt werden - dann gehts :
    Code:
    ORGANIZATION_BLOCK OB1
     
    VAR_TEMP
        info : ARRAY[0..19] OF BYTE;
    END_VAR
    FB1.DB1(Eingang:=E1.0);
        A1.0 := DB1.Ausgang ;
    END_ORGANIZATION_BLOCK
    Gruß
    Larry

  4. #4
    petzi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    18.12.2008
    Beiträge
    255
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Aja, vielen Dank LL!

    Verstehe ich zwar nicht ganz, denn die Schreibweise

    FB1.DB1(Eingang:=E1.0, Ausgang:=A1.0);

    bezieht doch ebenfalls den DB1 ein...

    Anders gefragt, was genau ist denn der Unterschied zwischen den beiden Schreibweisen?

    FB1.DB1(Eingang:=E1.0, Ausgang:=A1.0);

    und

    FB1.DB1(Eingang:=E1.0);
    A1.0 := DB1.Ausgang ;
    Grüße
    petzi

  5. #5
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zitat Zitat von petzi Beitrag anzeigen
    Aja, vielen Dank LL!

    Verstehe ich zwar nicht ganz, denn die Schreibweise

    FB1.DB1(Eingang:=E1.0, Ausgang:=A1.0);

    bezieht doch ebenfalls den DB1 ein...

    Anders gefragt, was genau ist denn der Unterschied zwischen den beiden Schreibweisen?

    FB1.DB1(Eingang:=E1.0, Ausgang:=A1.0);

    und

    FB1.DB1(Eingang:=E1.0);
    A1.0 := DB1.Ausgang ;
    Ich würde sagen, die eine funktioniert und die andere nicht.
    Aber Spaß beiseite, das sind ja Dinge, die nicht wir, die Programmierer festgelegt haben, sondern die SCL-Entwickler.
    Ich würde das als Bug betrachten, daß es so nicht geht.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  6. #6
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Als Bug würde ich das nicht betrachten.
    Denn irgendwie sollte man beim Bausteinaufruf auch erkennen was die Eingangsparameter und was die Ausgangsparameter sind.
    Naja und da es bei Hochsprachen üblich ist das die zu übergebenden Aktualparameter an den Baustein bzw Methode in Klammern steht wird es deshalb auch so von den SCL-Entwicklern gewählt worden sein. Meine Vermutung...

    godi

  7. #7
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von godi Beitrag anzeigen
    Naja und da es bei Hochsprachen üblich ist das die zu übergebenden Aktualparameter an den Baustein bzw Methode in Klammern steht wird es deshalb auch so von den SCL-Entwicklern gewählt worden sein. Meine Vermutung...

    godi
    nun, in vielen hochsprachen gibt es für die deklaration dann den "out"-parameter ... und eine vernünftige entwicklungsumgebung zeigt dann auch im tooltip an, was an übergaben erwartet und was zurückgegeben wird.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  8. #8
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    nun, in vielen hochsprachen gibt es für die deklaration dann den "out"-parameter ... und eine vernünftige entwicklungsumgebung zeigt dann auch im tooltip an, was an übergaben erwartet und was zurückgegeben wird.
    nun, da der SCL Editor beides nicht unterstützt wird es eben so gelöst worden sein...

  9. #9
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von godi Beitrag anzeigen
    nun, da der SCL Editor beides nicht unterstützt wird es eben so gelöst worden sein...
    eine vernünftige SCL-entwicklungsumgebung wäre mir lieber gewesen!
    selbst für intelliSens brauch man dalbi... das ist einfach nur fahrlässig! notepad++ kann mehr als dieser sogenannte "Editor"
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. #10
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von vierlagig Beitrag anzeigen
    eine vernünftige SCL-entwicklungsumgebung wäre mir lieber gewesen!
    selbst für intelliSens brauch man dalbi... das ist einfach nur fahrlässig! notepad++ kann mehr als dieser sogenannte "Editor"
    Na dann sollten wir uns mal ein Plugin für Eclipse Programmieren damit Eclipse SCL unterstützt...

Ähnliche Themen

  1. Alles Variablen in eine Datei schreiben
    Von Bensen83 im Forum HMI
    Antworten: 3
    Letzter Beitrag: 13.10.2011, 19:45
  2. Frage: benötige für eine LOGO eine Steuerung
    Von movie im Forum Sonstige Steuerungen
    Antworten: 14
    Letzter Beitrag: 15.08.2011, 14:16
  3. Eine Frage zum CP 343-1
    Von El Cattivo im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 18.03.2011, 12:17
  4. Zwei Variablen in eine Exelzelle mittels VBS
    Von gingele im Forum Hochsprachen - OPC
    Antworten: 16
    Letzter Beitrag: 22.04.2010, 09:26
  5. Grundlegen Frage zu den Variablen
    Von franzlurch im Forum HMI
    Antworten: 3
    Letzter Beitrag: 09.05.2008, 13:30

Lesezeichen

Berechtigungen

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