DUT in GVL für Inputs und Outputs

DCDCDC

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

ich möchte ein älteres Projekt ein bisschen sauberer gestalten und verbessern.

Ich würde gerne eine Dut anlegen für einen Bandmotor zu steuern, da werden Inputs und Outputs verschaltet.

Kann ich irgendwie eine Dut erstellen, welche direkt beides abfängt?

In Duts kann ich ja leider nicht AT %I* verwenden.

Was sind hier die best practices für Twincat?

Sind alles boolsche Variablen.

Ich nutze Twincat 3 4024.60.

Danke!
 
Wieso soll das in einer DUT nicht gehen?
Das Folgende funktioniert bestens:
Code:
TYPE ST_Test01 :
STRUCT
    I_xTest01    AT %I*    : BOOL;
    I_xTest02    AT %I*    : BOOL;
    I_xTest03    AT %I*    : BOOL;

    Q_xTest01    AT %Q*    : BOOL;
    Q_xTest02    AT %Q*    : BOOL;
    Q_xTest03    AT %Q*    : BOOL;

END_STRUCT
END_TYPE
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab einen Switch Case bei dem verschiedenen Schritte als Methoden aufgerufen werden, ich würde gerne in den jeweiligen Schritten den Bandmotor einmal triggern.. dann läuft eine Zeit n ab, bis der Bandmotor wieder ausgeht. Ich würde gerne in den jeweiligen Methoden das Verhalten vom Siemens Graph anwenden, indem ich dort Variablen auf true setzen kann, solange der Schritt aktiv ist.

Wie programmierst du das Verhalten davon in deinen Switch Cases? Auf true setzen und in der nächsten Zeile wieder auf false setzen? Beim verlassen auf false setzen? Rtrig / Ftrig?
 
Mein Favorit ist das Beschreiben der Variablen außerhalb des CASE OF Blocks.
Code:
CASE eStepper OF
E_Step.Schritt1:
    //Mach irgendwas
E_Step.Schritt2:
    //Mach was anderes
END_CASE

bBeAtStepOne := eStepper = E_Step.Schritt1;
bBeAtStepTwo := eStepper = E_Step.Schritt2;

Das hat außerdem den Vorteil, das die Werte nicht stehenbleiben, wenn man aus einem Schritt raus springt um z.B. an den Anfang zurück zu gehen, nur weil man eine Initialisierung vergessen hat.
 
Zuletzt bearbeitet:
Bei meinen Kunden wurden Schrittketten mit Case-Anweisungen aber auch in AS erstellt. Bei letzterem hättest Du bei Nutzung von IEC-Aktionen das Selbe Verhalten wie in GRAPH, das eine Variable nur während der Schritt aktiv ist auf TRUE gesetzt wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ändern möchte ich jetzt den Switch Case auch nicht, nur ein paar Dinge verbessern.. der Switch Case basiert auch auf einem Petri Netz, da steckt noch bisschen mehr dahinter.. direkter Zugriff über Ads auf Variablen etc..
 
Zurück
Oben