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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

Thema: SCL symbolischer Name übergeben

  1. #11
    dentech ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.10.2010
    Beiträge
    553
    Danke
    57
    Erhielt 39 Danke für 37 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Kann ich das denn nicht absolut machen? Wenn ich das alles symbolisch mache nimmt er irgendeine DB Nummer und das möchte ich eigentlich nicht

  2. #12
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von dentech Beitrag anzeigen
    Kann ich das denn nicht absolut machen? Wenn ich das alles symbolisch mache nimmt er irgendeine DB Nummer und das möchte ich eigentlich nicht
    Irgendeine? Er nimmt die Nummer die zum Symbol dazugehört.

    Ich würde das ja komplett so machen:
    Code:
    TYPE "tOB80_Local"
        STRUCT
          OB80_EV_CLASS : BYTE ;    //16#35, Event class 3, Entering event state, Internal fault event
          OB80_FLT_ID : BYTE ;    //16#XX, Fault identifcation code
          OB80_PRIORITY : BYTE ;    //Priority of OB Execution
          OB80_OB_NUMBR : BYTE ;    //80 (Organization block 80, OB80)
          OB80_RESERVED_1 : BYTE ;    //Reserved for system
          OB80_RESERVED_2 : BYTE ;    //Reserved for system
          OB80_ERROR_INFO : WORD ;    //Error information on event
          OB80_ERR_EV_CLASS : BYTE ;    //Class of event causing error
          OB80_ERR_EV_NUM : BYTE ;    //Number of event causing error
          OB80_OB_PRIORITY : BYTE ;    //Priority of OB causing error
          OB80_OB_NUM : BYTE ;    //Number of OB causing error
          OB80_DATE_TIME : DATE_AND_TIME ;    //Date and time OB80 started   
        END_STRUCT
    END_TYPE
    
    DATA_BLOCK "OB_DATEN"
    STRUCT
        OB80_DATA : tOB80_Local;
    END_STRUCT
    BEGIN    
    END_DATA_BLOCK
    
    ORGANIZATION_BLOCK "CYCL_FLT"
    
    VAR_TEMP
      OB80_Local : tOB80_Local;
    END_VAR
    BEGIN
    
    "OB_DATEN".OB80_DATA := OB80_Local;
    
    END_ORGANIZATION_BLOCK

  3. #13
    dentech ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.10.2010
    Beiträge
    553
    Danke
    57
    Erhielt 39 Danke für 37 Beiträge

    Standard

    ich habe das ganze jetzt auf absolut umgestellt:

    "Fehler_OBs"."OB_Date" := OB80_DATE_TIME; //Das Symbol wurde nicht gefunden
    "Fehler_OBs".OB_Date := OB80_Date_TIME; //Die Komponente ist nicht vorhanden

    Das sind die Fehler die ich jeweils bekomme.

    Test.zip
    Geändert von dentech (09.11.2012 um 07:35 Uhr)

  4. #14
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Hallo,
    "Fehler_OBs" wäre das Symbol für den DB11 ?
    "OB_Date" der Name der Variablen im DB11 ?

    Wenn beides ja dann müßte die zugewiesene Variable (zumindest gemäß deinem letzten Code in Beitrag #9) dann "Fehler_OB80.OB_Date" heißen ...

    Gruß
    Larry

  5. #15
    dentech ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.10.2010
    Beiträge
    553
    Danke
    57
    Erhielt 39 Danke für 37 Beiträge

    Standard

    hab ich gerade mal getestet mit

    "Fehler_OBs.OB_Date" := OB80_DATE_TIME;

    Fehlermeldung: Das globale Symbol wurde nicht gefunden
    Fehlermeldung2: Ungültiger Datentyp

  6. #16
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Du hast aber schon meinen Beitrag gelesen ?
    Gibt es bei dir in der Deklaration (des OB80) die Variable "OB80_DATE_TIME" ?

  7. #17
    dentech ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.10.2010
    Beiträge
    553
    Danke
    57
    Erhielt 39 Danke für 37 Beiträge

    Standard

    Klar,

    die steht doch in VAR_Temp vom ob80.

    Schau dochmal projekt hab ich doch hochgeladen

  8. #18
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Hallo,
    du mußt (vielleicht auch mal in dem DB) schauen, wie deine Variable WIRKLICH heißt.
    In dem Fall funktioniert es wenn du das Folgende schreibst :
    Code:
     "Fehler_OBs".Fehler_OB80.OB_Date := OB80_DATE_TIME;
    Der Fehler war nicht die Quell-Variable sondern die Ziel-Variable - und der SCL-Compiler springt auch auf die richtige Stelle ...!

    Anmerkung:
    Eine SCL-Quelle, die so viele unterschiedliche Sachen enthält, finde ich persönlich nicht unbedingt übersichtlich.

    Gruß
    Larry

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

    dentech (09.11.2012)

  10. #19
    dentech ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.10.2010
    Beiträge
    553
    Danke
    57
    Erhielt 39 Danke für 37 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    danke, das funzt.

    Ich werde das nachher mal in mehrere Quellen aufteilen.

Ähnliche Themen

  1. DB in SCL übergeben
    Von Felse im Forum Simatic
    Antworten: 20
    Letzter Beitrag: 11.09.2012, 19:50
  2. Antworten: 1
    Letzter Beitrag: 23.01.2012, 17:06
  3. DB-Nummer in FB übergeben in SCL
    Von Der Bithirte im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 10.08.2010, 13:15
  4. Instanz-DB an SCL übergeben
    Von hub im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 14.05.2010, 12:13
  5. SCL : symbolischer Name
    Von Larry Laffer im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 14.06.2007, 06:56

Lesezeichen

Berechtigungen

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