JK Flipflop - CoDeSys 2.3.5

EC4P_beginner

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

wir sind zwei Studenten, die sich im Rahmen einer Hausarbeit mit der Easy Control EC4P-221-MRXD1 von Moeller beschäftigen. Zur Programmierung benutzen wir CoDeSys V2.3.4.

Da dies unsere erste Begegnung mit CoDeSys ist, wären wir sehr dankbar, wenn uns hier jemand weiter helfen könnte.

Und zwar geht es darum, dass wir im Rahmen unserer kleinen aber feinen Anwendung ein positiv flankengesteuertes JK-Flipflop verwenden wollen. Allerdings wissen wir (nach mehreren Fehlversuchen) nicht, wie wir dies realisieren können ...

Für Hinweise wären wir sehr dankbar!
Vielen Dank und viele Grüße
EC4P_beginner[FONT=&quot][/FONT]
 
Dann zeigt doch mal eure Fehlversuche! - Einfach so mal eure Hausaufgaben machen wir hier schon seit längerer Zeit nichtmehr...

Gruss unter Studenten
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Schön, dass sich jemand unserem Problem annehmen will. In dem Screenshot ist ein Ausschnitt des Programms dargestellt. Wir haben oben den Taktgeber, dessen Takt auf das JK-Flipflop laufen soll. Unten befindet sich unser improvisiertes JK-Flipflop … mit Hilfe eines RS-FlipFlops realisiert.

Das konkrete Problem ist, dass das der Ausgang Q1 nach einer kurzen Zeit anfängt unkontrolliert hin- und herzuschwingen.

Das große Ziel, dass hinter diesem Programm steht ist, dass wir selber einen Zähler aus vier JK Flipflops bauen. Und dieser Zähler soll dann zur Steuerung einer einfachen Verkehrsampel eingesetzt werden.

Ich hoffe, dass unsere Ausführungen nachvollziehbar sind …
 

Anhänge

  • Problem.JPG
    Problem.JPG
    45,6 KB · Aufrufe: 90
Zuviel Werbung?
-> Hier kostenlos registrieren
ich will ja nicht meckern, aber dieses Programm ist hirnissig. macht eigentlich nichts sinvolles.
Wenn du alles 5 Sekunden Zählen wilst, dann nimmst du deinen Takgeber, verknüpfst den Ausgang (.Q) mittels AND und legt den Ausgang des AND auf einen Zähler. Fertig...


MfG CAS
 
Über die Logik oder die Motivation ein Programm so oder anders zu schreiben, ist Geschmackssache.
Wenn jemand gefragt wird, wo der Fehler ist, dann würde ich darauf antworten was falsch ist.

Zu klassifizieren das Programm ist gut oder das andere ist schlecht, maße ich mir nicht an.

Ich habe leider kein Copdesys hier und kann daher nicht nachschauen. (ist ja kein Siemens:ROFLMAO: )


bike
 
Hallo an alle,

das Wichtigste vorweg: das Problem ist gelöst!
Dank des FF_JEK aus der oscat konnten wir das Programm (wie gewünscht) realisieren. Vielen Dank also an zotos!

Dass das Programm zur Umsetzung der Idee nicht ideal ist, wissen wir auch. Jedoch sind wir diesen (durchaus komplizierten) Weg in der Vorlesung immer gegangen, um das Ampelproblem "zu Fuß" zu lösen.
Mit der Hilfe der von CoDeSys zur Verfügung gestellten Bausteine wollen wir im nächsten Schritt aufzeigen, dass es halt auch einfacher geht ...

Vielen Dank euch allen!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dann zeigt doch mal eure Fehlversuche! - Einfach so mal eure Hausaufgaben machen wir hier schon seit längerer Zeit nichtmehr...

Gruss unter Studenten
Hallo gloeru, ich möchte ein SR Flip Flop in einer Funktion programmieren und ich kann den SR Flip Flop ins Netzwerk ziehen und beschalten und dann die Funktion ins PLC_PRG einfügen. Nur bleibt der Ausgang nicht gesetzt. Liegt das an dem NIcht-Gedächtnis der Funktion?
Ein Flip Flop im Hauptprogramm funktioniert wieder. Grüße
 
Der User @gloeru war im Juni 2015 das letzte mal aktiv hier im Forum. Das ist dir aufgefallen, bevor du diesen Thread hier für dein völlig anderes Problem gefleddert hast?

ich möchte ein SR Flip Flop in einer Funktion programmieren (...) Nur bleibt der Ausgang nicht gesetzt. Liegt das an dem NIcht-Gedächtnis der Funktion?
Funktionen können sich nichts merken. Wenn Funktionen Merkfunktionen brauchen, dann muß der Speicher zum merken über IN_OUT oder als Pointer an die Funktion übergeben werden. Alternativ kann man anstatt der Funktion einen Funktionsblock programmieren.
 
Der User @gloeru war im Juni 2015 das letzte mal aktiv hier im Forum. Das ist dir aufgefallen, bevor du diesen Thread hier für dein völlig anderes Problem gefleddert hast?


Funktionen können sich nichts merken. Wenn Funktionen Merkfunktionen brauchen, dann muß der Speicher zum merken über IN_OUT oder als Pointer an die Funktion übergeben werden. Alternativ kann man anstatt der Funktion einen Funktionsblock programmieren.
Das ist mir nicht neu. In CoDeSys kann man aber problemlos ein SR- oder RS Flip Flop in eine Funktion reinziehen und beschalten. Bei der Simulation bleibt der Ausgang aber nicht gesetzt. Mache ich das in einem Funktionsblock, bleibt der Ausgang gesetzt. Hintergrund der Sache ist bei mir, ich will ein STEP 7 Programm von Siemens nach CoDeSys umschreiben. Ich habe 4 Funktionen bei dem Siemens Programm mit vielen SR Flip Flops usw.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hintergrund der Sache ist bei mir, ich will ein STEP 7 Programm von Siemens nach CoDeSys umschreiben. Ich habe 4 Funktionen bei dem Siemens Programm mit vielen SR Flip Flops usw.
Und wie sind die SR im Siemens Programm implementiert? :unsure: Siemens FC können sich ebenfalls nichts merken. (Es sei denn, Inputs oder Outputs werden mit Merkern beschaltet, dann ist die Übergabe per Pointer. Das ist aber seeehr schlechter Programmierstil.)
 
Das ist mir nicht neu. In CoDeSys kann man aber problemlos ein SR- oder RS Flip Flop in eine Funktion reinziehen und beschalten. Bei der Simulation bleibt der Ausgang aber nicht gesetzt. Mache ich das in einem Funktionsblock, bleibt der Ausgang gesetzt. Hintergrund der Sache ist bei mir, ich will ein STEP 7 Programm von Siemens nach CoDeSys umschreiben. Ich habe 4 Funktionen bei dem Siemens Programm mit vielen SR Flip Flops usw.
Ja, aber bei Siemens hast Du für jeden im FC genutzten FB vermutlich einen Einzel-DB und keinen Instanz-DB. Ein Einzel-DB ist im Codesys Universum vergleichbar mit einer GVL in der nur eine Instanz eines FBs existiert.
Ich weiß nicht, ob man in TIA in einem FC einen Instanz-DB eines FBs erzeugen kann, ist dem so, würdest Du das selbe Verhalten beobachten können, wie bei Codesys.
 
Zuletzt bearbeitet:
Und wie sind die SR im Siemens Programm implementiert? :unsure: Siemens FC können sich ebenfalls nichts merken. (Es sei denn, Inputs oder Outputs werden mit Merkern beschaltet, dann ist die Übergabe per Pointer. Das ist aber seeehr schlechter Programmierstil.)
Hallo, also ich bin der Frank, falls wir uns mit Namen ansprechen wollen. Das Programm stammt aus einer Abschlußprüfung zum SPS Techniker und man mußte es in der Prüfung individuell zur Aufgabenstellung anpassen, es steuert ein Fließband was Klötze aussortiert. Es sollen z.B. 4 Metallklötze in das Fach am Ende des Bandes sortiert werden und ankommende Kunsstoffklötze sollen aussortiert werden. Es wurden 4 FC´s dazu programmiert. Kann man hier auch pdf´s posten? Genau PN/DP, die SR Flips Flops wurden mit Merkern bezeichnet und das ist jetzt mein Problem bei der Übersetzung nach CoDeSys. Ich versuche mal ein Bild zu posten.
 
Die Methode mit den Merkern funktioniert bei Siemens, nur hätte ich das jetzt vielleicht besser mit einem Datenbaustein gelöst. Die HMI Ansteuerung wurde schon mittels eines Datenbausteins gelöst. (siehe Bild) Vielleicht hat einer von euch eine Idee, wie ich das am geschicktesten im CoDeSys realisieren kann. Gibt es in CoDeSys auch Datenbausteine oder Merker? Oder soll ich das besser mit Funktionsbausteinen lösen?
 
Ja, aber bei Siemens hast Du für jeden im FC genutzten FB vermutlich einen Einzel-DB und keinen Instanz-DB. Ein Einzel-DB ist im Codesys Universum vergleichbar mit einer GVL in der nur eine Instanz eines FBs existiert.
Ich weiß nicht, ob man in TIA in einem FC einen Instanz-DB eines FBs erzeugen kann, ist dem so, würdest Du das selbe Verhalten beobachten können, wie bei Codesys.
Hallo Oliver, ich habe unten mal einen Ausschnitt gepostet. Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das kann man im Codesys natürlich auch mit einer globalen Variable lösen, der FC ist dann aber nicht mehr instanzfähig und daher sollte man so einen Scheiß auch nicht anfangen (wie man es in der Siemens Welt auch nicht machen sollte).
 
Es wurden 4 FC´s dazu programmiert. (...) Genau PN/DP, die SR Flips Flops wurden mit Merkern bezeichnet und das ist jetzt mein Problem bei der Übersetzung nach CoDeSys.
Das sind keine lokalen Variablen eines FC, sondern globale Variablen (z.B. Merker und DB-Variablen). Da wird der FC nicht im Sinne einer "Function" benutzt (die sich nichts merken kann), sondern einfach nur als allgemeiner Programmbaustein/Organisationseinheit zur Strukturierung des Programms. Das kann man in Codesys auch so machen und in Programmeinheiten direkt globale Variablen verwenden. Dann kann (bzw. sollte) man (wie bei Siemens) von der Programmeinheit halt nicht mehrere Aufrufe oder Instanzen machen.

Kann man hier auch pdf´s posten?
Ja. zip txt pdf und einige Bildformate. siehe unter dem Beitragseditor den Button "Dateien anhängen"

Harald
 
Das sind keine lokalen Variablen eines FC, sondern globale Variablen (z.B. Merker und DB-Variablen). Da wird der FC nicht im Sinne einer "Function" benutzt (die sich nichts merken kann), sondern einfach nur als allgemeiner Programmbaustein/Organisationseinheit zur Strukturierung des Programms. Das kann man in Codesys auch so machen und in Programmeinheiten direkt globale Variablen verwenden. Dann kann (bzw. sollte) man (wie bei Siemens) von der Programmeinheit halt nicht mehrere Aufrufe oder Instanzen machen.


Ja. zip txt pdf und einige Bildformate. siehe unter dem Beitragseditor den Button "Dateien anhängen"

Harald
Hallo Harald, habe es jetzt auch entdeckt. Danke!
 
Zurück
Oben