Rückschritt TC3 -> TC2: Bausteine mit EN/ENO?

ADS_0x1

Level-2
Beiträge
343
Reaktionspunkte
89
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum,

ich habe bisher die Beckhoff Steuerungen mit TwinCAT 3 programmiert, muss nun allerdings eine Steuerung mit TwinCAT 2 programmieren.

In TC3 kann ich Alle Bausteine mit ENABLE Ein- und Ausgang einfügen, ist dies bei TC2 ebenfalls (mit Hausmitteln) möglich? Momentan gehe ich den Umweg, dass ich neue Bausteine / Programme in ST erstelle und den EN/ENO händisch hinzufüge.

Vielen Dank für eure Hilfe!
 
Nach ein paar Nachforschungen habe ich bisher folgendes herausgefunden:

Im KOP / LD und CFC kann man Bausteine mit EN-Eingang (In CFC auch mit EN0) einfügen. Es reicht dabei nicht, die Ansicht eines in bspw. FUP erstellten Programms / einer Funktion umzustellen, das Programm muss bereits in einer der beiden Sprachen erstellt werden.

Leider schaffe ich es nicht, in KOP den EN0 hinzuzufügen, lediglich den EN habe ich platzieren können.

Aus dem Infosys geht aber m.E. hervor, dass dies ebenfalls möglich ist:

MOVE

Zuweisung einer Variablen auf eine andere Variable eines entsprechenden Typs. Dadurch, dass MOVE in den CFC- und KOP-Editoren als Baustein verfügbar ist, kann dort die EN/EN0-Funktionalität auch auf eine Variablenzuweisung angewendet werden. Im FUP-Editor ist dies leider nicht möglich.
Beispiel in CFC in Verbindung mit der EN/EN0 Funktion:
Nur wenn en_i TRUE ist, wird der Wert der Variablen var1 Variable var2 zugewiesen.
 

Anhänge

  • degvadeswf3wr2q135t.PNG
    degvadeswf3wr2q135t.PNG
    5,3 KB · Aufrufe: 16
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
Das Umschalten zwischen verschiedenen Sprachen funktioniert nicht. (Hast du ja schon gemerkt);)

EN schließt den Baustein von der Abarbeitung aus. Ich verstehe nicht, wozu du ENO brauchst.
Bei anderen Systemen wird ENO gesetzt, wenn der Baustein komplett, ohne Fehler abgearbeitet wurde.
In TC2/ Codesys2.3 wird EN auf ENO kopiert. Dabei geht der Sinn von ENO leider verlohren.
Ich habe mal ein Bild angefügt, wo dies deutlich wird. Baustein 1 hat einen Überlauf und das Ergebnis ist nicht richtig. Jetzt müsste ENO eigentlich auf 0 gesetzt werden.

Holger
 

Anhänge

  • EN_ENO.jpg
    EN_ENO.jpg
    27,7 KB · Aufrufe: 12
Danke dir Holger für deinen Beitrag.

Ich habe gerade mal auf die schnelle versucht ein Beispiel aus TC3 zu finden, leider habe ich nicht exakt das gefunden, was ich gesucht habe.
Mir geht es um mehrfache Zuweisung von Werten, die aber noch zusätzlich an Bedingen geknüpft werden können. Sprich wir haben einen EN/ENO bei Move-Bausteinen, die von einem zum anderen noch mit Weiterschaltbedingungen verknüpft sind. Als Beispiel habe ich eigentlich eine Positionsfenster-Varianz gesucht, die von Geschwindigkeiten und/oder Positionen abhängt - da haben wir das aber zugegebener Maßen etwas ad absurdum genutzt.

Einfaches Beispiel: Mehrere MOVE hintereinander, wo ich mit einer Bedingung (erstes EN) mehrere Folgewerte (Folge-MOVEs) nutzen kann.

Darauf gestoßen bin ich gestern beim Implementieren einer Stop-Uhr, da wollte ich den aktuellen Wert eines TON in eine Variable schreiben, solange der Timer läuft (IN Bedingung erfüllt): Timer.ET per MOVE an t_t_StopZeit übergeben und wenn der Timer nicht mehr läuft, den Wert eben nicht mit 0 überschreiben - da ich aber keinen MOVE mit EN für FUP gefunden habe, habe ich das mit einem JUMP gelöst.

​EDIT:​

Habe die Stopuhr mal angehangen, vielleicht habe ich das etwas unklar beschrieben
 

Anhänge

  • multi_move.jpg
    multi_move.jpg
    12,1 KB · Aufrufe: 11
  • zeitmesser.PNG
    zeitmesser.PNG
    9,9 KB · Aufrufe: 19
Zuletzt bearbeitet:
Zurück
Oben