Fehler 3703: CanOpen implicit Variables

aho
2007-02-09
2007-02-13
  • aho - 2007-02-09

    Hallo zusammen,

    ich habe folgendes Problem:

    Ich habe eine interne Bibliothek erstellt, in der ich unter anderem die 3S_CANopenManager.Lib und die 3S_CANopenMaster.Lib verwende. Dazu gehören zwangsweise auch folgende globalen Variablen:

    VAR_GLOBAL CONSTANT

    MAX_CTRLINDEX : INT := 0;
    

    END_VAR

    VAR_GLOBAL CONSTANT

    USE_CANOPEN_NODES : BOOL := TRUE;
    
    MAX_MASTERINDEX : INT := 0;
    
    MAX_NODEINDEX : INT := 0;
    
    MAX_SDOINDEX : INT := 163;
    
    MAX_PDOINDEX_RX : INT := 6;
    
    MAX_PDOINDEX_TX : INT := 7;
    
    MAX_MASTER_ODENTRY_IDX : INT := 0;
    

    END_VAR

    VAR_GLOBAL

    pCANopenMaster : ARRAY[0..MAX_MASTERINDEX] OF CanOpenMaster;
    
    pCanOpenNode : ARRAY[0..MAX_NODEINDEX] OF CanOpenNode;
    
    pCanOpenSDO : ARRAY[0..MAX_SDOINDEX] OF CanOpenSDO;
    
    pCanOpenPDO_Rx : ARRAY[0..MAX_PDOINDEX_RX] OF CanOpenPDO_Rx;
    
    pCanOpenPDO_Tx : ARRAY[0..MAX_PDOINDEX_TX] OF CanOpenPDO_Tx;
    
     ODMEntries: ARRAY[0..MAX_MASTER_ODENTRY_IDX] OF CanOpenODEntry;
    

    END_VAR

    Wenn ich jetzt diese Bibliothek in ein Projekt einbinde, in dem in der Steuerungskonfiguration ein CanMaster mit zugehörigem EDS-File eingebunden ist, werden beim Übersetzen in der Globalen Variablenliste oben genannte Variablen erneut angelegt und es kommt der Fehler 3703: CanOpen implicit Variables (xy): Mehrere Deklarationen mit dem gleichen Bezeichner 'xy'.

    Ich kann den Inhalt der globalen Variablenliste „CanOpen implicit Variables“ aus dem Projekt löschen, aber bei jedem Übersetzen werden diese erneut angelegt. Wenn ich sie in meiner erstellten Bibliothek entferne lässt sich diese nur mit Fehlermeldungen übersetzen, allerdings mit dieser fehlerbehafteten Lib lässt sich mein Projekt fehlerfrei übersetzen. Das halte ich allerdings für keine glückliche Lösung.

    Ich hoffe ich habe das Problem verständlich geschildert…

    Danke schon mal im Voraus …

    Andreas

     
  • Andreas Fauter - 2007-02-13

    Hallo,

    innerhalb einer Bibliothek, die sich auf der Can-Lib abstützt, kann man leider keine Can-Bibliotheken einbinden.

    Man muss sich tatsächlich darauf verlassen, dass diese Bibliothek zusammen mit der Can-Lib in das Projekt eingebunden wird.

    Anders geht's wirklich nicht.

    Andreas.

     

Log in to post a comment.