Fehler bei erster Schrittkette mit Codesys

D.T.

Level-1
Beiträge
6
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

Ich bin Schüler einer Berufsschule und mache dort gerade eine Techniker Weiterbildung.
Gerade befinde ich mich in meiner Projektarbeit. In dieser arbeiten wir mit einer Codesys Steuerung.
Um warm zu werden wollte ich erst mal eine klassische Ampelsteuerung entwerfen. In Form einer Ablaufsteuerung.
Ich habe mir die youtube Videos von "So geht by Sven Stemmler" angeschaut und alles soweit gemacht wie er.
Nun habe ich allerdings ziemlich viele Fehler mit denn SR und TON Bausteinen.

Ich bekomme ganz viele Fehler mit der Bezeichnung C0046. Das die Bezeichnung: "TON" "SR" "Q1" "ET" nicht definiert wurden. Dies habe ich aber aller benannt und sie werden auch unter der Variablen Bezeichnungen angezeigt.
Einige weitere Fehler sind C0004. Hier wird unter anderem beklagt das ET keine Komponente von TON_1 ist. Hier habe ich gesagt das ET = Zeit ist. und dies wird in der Variablen Liste auch als Time angezeigt ( Zeit: TIME; ).


Zwei Bausteine .png

So habe ich unter anderem die Bausteine programmiert.
Könnt ihr mir in etwas sagen was ich falsch gemacht habe oder benötigt ihr mehr Informationen ??
Ich hoffe, ich habe mein Problem ausreichend geschildert und ihr könnt mir helfen.
 
Hallo D.T.,

solche Funktionen sind in der Regel in Bibliotheken definiert. Du hast vermutlich vergessen, die Bibliothek einzubinden, kann das sein?
Bitte schreib einmal, mit welcher Steuerung Du Dich beschäftigst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie sieht denn deine Deklaration dazu aus?

Codesys direkt ist jetzt nicht mein Fachgebiet, aber ich schätze dass auch dort eine Deklaration für deine Variablen notwendig ist.

Ich bekomme ganz viele Fehler mit der Bezeichnung C0046. Das die Bezeichnung: "TON" "SR" "Q1" "ET" nicht definiert wurden.
Deutet nämlich genau darauf hin.

Du musst in deiner Deklaration auch Variablen passend zu den verwendeten Funktionen definieren, damit auch da eine Zuordnung herrscht.

Also die Variable TON_2 / TON_3 auch als solche deklarieren:
Code:
TON_2 : TON;
TON_3 : TON;

Hier noch die Codesys Hilfe:

Kleiner Tipp noch für ET (elapsed time) auch unterschiedliche Variablen definieren, also zB TON_2_ET / TON_3_ET
 
Hallo D.T.,

solche Funktionen sind in der Regel in Bibliotheken definiert. Du hast vermutlich vergessen, die Bibliothek einzubinden, kann das sein?
Bitte schreib einmal, mit welcher Steuerung Du Dich beschäftigst.
Ich benutze eine IFM Steuerung.
Ich habe die Bibliotheken auch schon runtergeladen und eingefügt.
Gibt es einen Befehl denn man nochmal extra eingeben muss um dem Programm Zugriff auf die Bibliothek zu gewähren ??
 
Ich weiß nicht, wie die Entwicklungsumgebung bei IFM aussieht, aber "Runterladen" reicht nicht. Du mußt irgendwo in Deinem Projekt einen Punkt "Bibliotheken" haben. Da muß die dann eingefügt werden. Ab dem Moment wird sie mit genutzt.

Vielleicht machst Du mal ein paar mehr Screenshots:
Wo ist die Bibliothek eingefügt, wo hast Du TON_2 und TON_3 deklariert, ... so daß wir uns ein Bild machen können, was bei Dir vorhanden ist und was nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du musst in deiner Deklaration auch Variablen passend zu den verwendeten Funktionen definieren, damit auch da eine Zuordnung herrscht.
Das habe ich eigentlich getan.

Fehler.png
Trotzdem bekomme ich diese Fehler Liste ich vermute das es auch mit der Bibliothek zu tun hat. Evtl installiere ich die einfach mal neu. Vll hilft das ja.
 
Eine Bibliothek ist meinstens nur eine Datei... und in der Regel kann man die auch öffnen. Eventuell hast Du die falsche, so daß sie diese Funktionen garnicht enthält.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine Bibliothek ist meinstens nur eine Datei... und in der Regel kann man die auch öffnen. Eventuell hast Du die falsche, so daß sie diese Funktionen garnicht enthält.
Sind das nicht alles Standardbefehle aus der IEC? Muss man die bei ifm wirklich erst importieren?
 
Sind das nicht alles Standardbefehle aus der IEC? Muss man die bei ifm wirklich erst importieren?
Wenn IFM CoDeSys verwendet, mußt Du die importieren, die sind in der Regel in der Standard.lib.

Das sind ja keine Befehle, Operanden, Datentypen oder Schlüsselwörter, das sind ja Funktionsbausteine. Die sind nicht im Grundgerüst enthalten sondern müssen importiert werden.
 
Werkzeuge.pngVariablen In und Out.pngVariablen.png

So hier sind ein paar Bilder. "Die Werkzeuge" die mir angezeigt werden, die in and out Variablen und die Variablen die deklariert wurden.

Standard Bibiliothek .png
Die Standard Bibliothek ist auch vorhanden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, ich bin mir nicht ganz sicher... aber das ist vermutlich nur die Ansicht der Bibliotheken, die in Deinem System installiert sind.
Die Installation reicht in der Regel aber nicht. Du mußt in Deinem Projekt angeben, welche Bibliothek(en) Du nutzen möchtest.
Da muß es also irgendwo noch projektbezogen die Möglichkeit geben, Bibliotheken zum Projekt hinzuzufügen.
 
Screenshot 2023-10-10 163858.png

In Twincat geht das im Projekt, in der SPS unter Referenzen > Rechtsklick auf Referenzen > Bibliothek hinzufügen

Damit hast du dann alle Abhängigkeiten ins Projekt importiert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke :D
Habe es jetzt hinbekommen.

Die Bibliotheken waren wohl der Fehler wie schon vermutet.

Bibilotheksverwalter.pngApplication.pngnachdem ich diese Bibliotheken ausgewählt hatte und hinzugefügt hatte.
Konnte ich denn Code neu erzeugen
Code erstellen.png
Danach waren die Fehler weg :)
Vielen dank für eure zeit und eure Gedanken Anstöße.
 
Zurück
Oben