Nicht eindeutiger Namensraum...

JüKo

Level-2
Beiträge
87
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo an Alle,
ich hab vor ein paar Jahren ein Programm in Codesys 3.5.14 erstellt, alles hat funktioniert. Nun habe ich Codesys 3.5.20 auf einem neuen Rechner installiert.
Das alte Programm wurde gestartet, erst mal gab es einige Fehlermeldungen die ich mittlerweile größtenteils behoben habe. Alles aber leider nicht.
Nun zu meinem Problem, ich kann meine Pixtend-Steuerung nicht mehr über einen Button herunterfahren. Das Problem liegt, wie ich herausgefunden habe, an einer Bibliothek. Ich bekomme folgende Frehlermeldung "C0180: Nicht eindeutiger Namensraum 'SYSTYPES' definiert von Bibliothek 'SysTypes2 Interfaces".
Kennt das jemand von euch und was muß ich tun um das zu beheben?
Danke schon mal vorab für die Antworten und Grüße,
Jüko
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Kennt das jemand von euch und was muß ich tun um das zu beheben?
Im laufe der Zeit hat sich scheinbar der Namensraum geändert.
Du könntest versuchen "alles auf neuste" zu setzen. (alle Bibliotheken, Compiler...)
Anschließend über Codesys "fehlende Bibliotheken laden" ausführen.

Hilft dies nicht, die benötigte Funktion aus der aktuellen Bibliothek neu einfügen und die Abhängigkeiten neu zu verknüpfen.
 
Das Problem liegt, wie ich herausgefunden habe, an einer Bibliothek. Ich bekomme folgende Fehlermeldung "C0180: Nicht eindeutiger Namensraum 'SYSTYPES' definiert von Bibliothek 'SysTypes2 Interfaces".
Wenn der Name nicht eindeutig ist, dann muss er wohl an 2 oder mehr Stellen im Programm definiert sein.
Diese (hinzugekommenen) Stellen müsstest Du suchen und Dir überlegen, wie Du am besten die Doppel- bzw. MehrDeutigkeiten beseitigen kannst.
 
Hallo holgermaik,
meinst Du mit "alles auf neueste setzen" unter Device "Gerät aktualisieren"? Das hab ich zu Anfang gemacht, dann waren die ersten 50 Fehlermeldungen auch gleich weg. Oder gibt es an anderer Stelle noch etwas zum aktualisieren?
Die Bibliothek hab ich schon nachträglich eingefügt: Was meinst Du mit "die Abhängigkeiten neu zu verknüpfen"?
Danke und Grüße,
Jürgen
 
Hallo an Alle,
ich hab vor ein paar Jahren ein Programm in Codesys 3.5.14 erstellt, alles hat funktioniert. Nun habe ich Codesys 3.5.20 auf einem neuen Rechner installiert.
Das alte Programm wurde gestartet, erst mal gab es einige Fehlermeldungen die ich mittlerweile größtenteils behoben habe. Alles aber leider nicht.
Nun zu meinem Problem, ich kann meine Pixtend-Steuerung nicht mehr über einen Button herunterfahren. Das Problem liegt, wie ich herausgefunden habe, an einer Bibliothek. Ich bekomme folgende Frehlermeldung "C0180: Nicht eindeutiger Namensraum 'SYSTYPES' definiert von Bibliothek 'SysTypes2 Interfaces".
Kennt das jemand von euch und was muß ich tun um das zu beheben?
Danke schon mal vorab für die Antworten und Grüße,
Jüko

Da hast du zwei mal den gleichen Namen für für unterschiedliche oder vielleicht gleiche Bibliotheken. Am besten nennst du eine um (Namensraum) wenn es die selben sind, ich nutze gerne „Nur qualifizierten Zugriff auf alle Bezeichner erlauben“
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Leider habe ich mit Codesys keinerlei Erfahrung. Bei SiemensSystemen hätte ich es mit QuerverweisListen versucht, die auch erkennen lassen, wo VariablenNamen definiert bzw. Variablen beschrieben oder "nur" abgefragt werden.

Und ich kenne mich mit Siemens nicht mehr aus, ist bestimmt schon 15 Jahre her, aber das Problem liegt nicht bei den Variablen sondern in der Bibliothek.
 
Hallo Jürgen
Oder gibt es an anderer Stelle noch etwas zum aktualisieren?
Dein Problem ist dadurch enstanden, dass eine frühere Version einer Bibliothek den gleichen Namensraum genutzt hat.
Gehe mal nach "Projekt" -> "Project Environment"
Jetzt solltest du einen ähnlichen Dialog sehen
project environment.jpg
In allen Reitern "Set All to Newest" betätigen.
Jetzt werden alle Bibliotheken, Compiler... auf die letzte Version gesetzt und anschließend das Projekt neu aufgebaut. (Es ist eine Internet Verbindung nötig zum Codesys Store). Ebenfalls wird der Namensraum bereinigt.
Anschließend alles bereinigen und Code erzeugen.

Sollte der Namensraum immernoch mehrfach benutzt sein, musst du die entsprechende Bibliothek im Bibliotheks Manager per Hand suchen und entweder den Namensraum ändern oder die alte Bibliothek löschen.

In der SysTypes2 sind benutzerdefinierte Datentypen enthalten. Wenn du Datentypen mit dem gleichen Namen verwendest, müssen diese auf den richtigen Namensraum zugewiesen sein.
Mit Hilfe des Pragmas "{attribute 'qualified_only'}" lässt sich die Definition erzwingen.
Eine korrekte Definition sollte dann so aussehen
Code:
myvar : SysTypes.RTS_IEC_RESULT;

Grüße
 
Hallo holgermaik,

wahrscheinlich ist durch das Aktualiseren das Problem entstanden? Vermute ich mal. Sieht bei mir so aus! Also alles aktuell.
1744719118422.png

Was meinst Du mit Löschen?
Meinst Du die "alten Bibliotheken" in der Projektumgebung oder im Bibliotheksrepository?
Die Bibliotheken "Sysprocess" und "Sys Types2 Interfaces" hab ich schon mehrfach in meiner Projektumgebung
gelöscht und wieder hinzugefügt.

Hier noch ein Bild der Bibliotheken:
1744719249158.png
Eine Frage zu dem Bild oben. Ist es in Ordnung, dass die "Sys Types2 ..." in dem Ordner steckt (mitte Bild) und gleichzeitig nochmal weiter unten?
Und die Bibliothek SysProcess Implementation =..." war in der alten Version nicht drin. Ist das okay so?


Zu meinem eigenlichen Problem hab ich folgendes gefunden, was mir aber auch nicht weiterhilft.

Und so sieht übrigens mein Code aus der nicht mehr funktioniert:
1744719865513.png
Danke und Grüße an Alle,
Jürgen
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Bitte die 3 markierten Bibliotheken löschen
Sysprocess_org.JPG

Anschließend SysProcess neu einfügen. Nur diese. Die Abhängigkeiten werden automatisch geladen.

Anschließend sollte es so aussehen
Sysprocess.JPG

SysProcess.SysProcessExecuteCommand ist ja ein Zugriff aus das System. Dazu musste eine eine cfg Datei geändert werden.
Dabei kann ich aber im Moment nicht weiter helfen. ist zu lange her
 
Hallo holgermaik,
Hab die Bibliotheken gelöscht und die neue hinzugefügt. Sieht bei mir so aus und SPS kann nicht heruntergefahren werden.1744740477814.png
Muss ich vielleicht etwas in der Repository löschen und wieder hinzufügen?
Hab gesehen, dass deine Sysprocess die 3.5.17 ist und meine die 3.5.7

Das ist das Bild der Repository
1744740819764.png
Versteh nicht warum dann bei mir immer die 3.5.7 im Projekt ist!?!?

Grüße, Jürgen
 

Anhänge

  • 1744740444941.png
    1744740444941.png
    19,8 KB · Aufrufe: 2
Hi,

eigentlich sollte es so wie bei @holgermaik aussehen, unterhalb der Bibliothek noch die drei anderen eingebunden. Die Funktion ist in der SysProcess Implementation Bibliothek. Da hast Du aber oben bereits die Mitteilung NotImplementedByDevice, ich denke da fehlt noch etwas

Hast Du das aktuelle Raspberry Addon installiert?
  • starte mal den Codesys Installer mit Adminrechten,
  • dann auf Ändern bei der aktuellen Codesys Version,
  • dann unten auf Durchsuchen
  • in die Suchzeile raspberry eingeben und das Paket installieren
  • danach ein neues Projekt anlegen und als Controller Raspberry wählen
  • Bibliotheksverwalter öffnen und download fehlender Bibliotheken anklicken
  • dann mal die SysProcess Bibliothek hinzufügen
Dann sollte alles vorhanden sein und Du kannst Dein altes Programm öffnen. Eventuell auch da noch einmal Download fehlende Bibliotheken drücken.

Eventuell mußt Du dann noch die Runtime auf dem Raspberry erneuern. Aber Achtung, schau vorher wie Du die Lizenz sicherst bzw. wieder herstellen kannst.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Bibliothek SysProcess wird vom Gerät (SPS) aufgelöst, hier ist sicherlich noch ein altes Gerät das die 3.5.7.0 als Version setzt.
Wenn die SPS jetzt nicht runtergefahren werden kann, dann ist die Applikation jetzt übersetzbar?

Die System Kommandos müssen im Target freigeschaltet werden.
 
Die Info "Die System Kommandos müssen im Target freigeschaltet werden." hat mir gefehlt. Jetzt klappt aber alles.
Danke an Euch und Grüße,
Jürgen
 
Zurück
Oben