Codesys Neuling

Tom86

Level-1
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen, ich bin am verzweifeln, ich bin absoluter Neuling und habe keine Ahnung von Codesys. Gibt es irgendwo ein Plattform die per Video erklärt wie das alles funktioniert.
Ich weiß nicht mal warum man Variablen eingibt und warum man Variablen mit Input und Output eingibt. Wann verwende ich so was (Bild oben) und wann
das andere? Was hat es mit dem BOOL auf sich und wann nehme ich INT. Meine Bücher helfen mir nicht wirklich weiter.

Über Hilfe wäre ich echt sehr sehr froh!


Bild 2.PNG

Bild 1.PNG
 
Also im Prinzip ist oben und unten erstmal das selbe. Variablen werden benannt.
Bei deinem Bild oben werden allerdings noch Eingangs- (Var_input) und Ein-Ausgangs Variablen deklariert. Das macht man zB für Funktiosbausteinen.
Das grüne kommt einfach daher weil in der Reihe bei Tank1 mit (* auskommentiert wurde und das ganze nicht ordentlich abgeschlossen wurde.
Was ist eine Deklaration und warum ?
Du brauchst in deinem Programm Variablen für bspw. Eingänge, Ausgänge, Zähler und Co.
Diese kannst du (bis auf wenige Ausnahmen) so nennen wie du möchtest.
Damit dein Programm jetzt aber weiß was "Theo" denn sein soll wird dieser zugewiesen.
Das einfachste ist hier eine Zuweisung als BOOl. Hier gibt es zwei Möglichkeiten welchen Wert deine Var haben kann. Wahr oder Falsch (True bzw False) (1 Oder 0). Da du ja aber auch Analoge Werte hast oder Rechnungen gibt es auch noch div Zahlentypen. Int wäre ein solcher. Aber auch DInt, Real, Word und noch weitere.
Das sind unterwandertem Zuweisungen die Codesys von Haus aus kennt. Aber hier gibt es noch Zahlreiche mehr. Je mehr Bibliotheken du hinzufügst desto mehr kennt Codesys auch.
Da kommen dann Dinge wie Time und sowas dazu.
Am Anfang ist das sehr viel. Aber man kommt da recht leicht rein wenn man mal ein paar kleine Beispiele durch hat.
 
Danke euch, das hilft mir schon weiter. Kann ich dann einfach die Werte aus einer Zuordnungstabelle (PLC-Eingänge und PLC-Ausgänge) bei VAR_INPUT und VAR_OUTPUT nacheinander mit z.B. B1: BOOL usw. eingeben oder muss ich alles erst als VAR definieren, bevor ich es als INPUT und OUTPUT eingeben kann.
Wozu benötige ich das in Klammern (*...*), es wird doch durch INPUT und OUTPUT ohnehin alles definiert.
 
Deine Hardware Ein- und Ausgänge kannst du (meiner Meinung nach) besser in der Steuerungskonfiguration machen.
Natürlich kannst du auch eine direkte Adressierung machen unter VAR Input mit AT%iX1.2 oder so. Das hat aber ggf den Nachteil wenn du die Eingangskarte verschiebst bekommt sie eine andere Adresse.
Das (* *) ist rein zum Kommentieren.
Varxyz123:Bool; (*Das ist mein Eingang1*)
Dann weißt du oder derjenige der in drei Jahren sich das Program ansieht was das denn sein soll.
Bei kleinen Spielereien sicher noch nicht wichtig aber wenn es mehr und unübersichtlich wird unverzichtbar.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Teilweise verstehe ich um was es geht, das mit den Funktionsbausteinen ist mir soweit klar und hat auch soweit geklappt - Danke!
Eine Frage hätte ich noch zum Time-Format der Variablen. Was ist das bzw. kann ich hier einfach hinter meine VAR_INPUT und VAR_OUTPUT Zeiten setzen?
 
Time sind halt Zeiten. In ms. ZB brauchst du diese bei einem TON Baustein. Das wäre eine Einschalverzögerung.
Du kannst jetzt nicht einfach hingehen und sagen VAR Input.
Einschalten:18:25:Time; oder sowas und dann schaltet um 18:25 der Eingang.
Das klappt so nicht.
 
Hm, okay. Konkret soll ich für mehrere Funktionsbausteine die VAR_INPUT und VAR_OUTPUT vergeben + die Zeiten die gegeben sind für die einzelnen Schritte z.B. Schalten 1s, im TIME-Format als Variable generieren.

Also muss ich doch für die einzelnen Schritte Funktionsbausteine anlegen und mit den jeweiligen Kommentaren beschreiben, aber das TIME-Format ist neu für mich.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Am besten beschreibst du mal was genau passieren soll. Ich denke das was du brauchst wäre ein TON Baustein.
Wenn Variable xy für z Sekunden 1 ist dann schaltet dieser den Ausgang.
Öffne mal Codesys, drück F1 und schau dir den TON an.
Da brauchst du keine Variablen in Time zu deklarieren. Dem kannst du über T#1s sagen das er eine Sekunde verzögert schaltet.
Anders wäre es wenn du die Zeit in der Visu vorgeben/ändern möchtest.
Dann würdest du bei VAR zB
Verzoegerung1 : Time;
Deklarieren und das in der Visu machen.
Aber denke die erste und einfachere Möglichkeit ist für den Anfang die bessere.
 
Mach mal das bekannte AMPEL-Programm u. spiele damit ordentlich - hilft!
Findest Du übrigens per F1 in der Onlinehilfe.
 
Bin anscheinend zu blöd dafür, habe mir jetzt das Buch "Programmieren mit SPS" gekauft und arbeite es mal durch.

In meiner Aufgabe soll ich für einen Öffner (Silo 1: 3 Sekunden) die Öffnungszeiten als Variablen im Time-Format generieren. Ich finde dazu aber im Netz und im Buch nichts.
 
Zurück
Oben