TwinCAT 3 Laufzeit des Programms ermitteln.

Username2.1

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

ich bin komplett neu in dem Bereich unterwegs und habe erst vor kurzen verstanden was Variablen, Typen, Strukturen, Instanzen etc. sind.
(Ob das realistisch ist oder nicht sei mal dahin gestellt geht nur um das Üben)

Aufgabenbeschreibung:

Immer wenn am Eingang (I1 z.B.) ein 1 Signal bekommt, sind in einen Rohr z.B. 21,3 Liter durchgeflossen.
Nun möchte ich aber den Durchschnitt wissen was in einer Minute in diesem Rohr durchfließt.

Das mit dem Litern ist leicht zu berechnen. Was ich allerdings nicht verstehe ist wie man die Laufzeit des Programms ermittel.
Sprich ich muss ja für meine Berechnung wissen wie lange er schon am Messen ist.
Ich hab schon gelesen das es eine GetTime Funktion geben sollte oder so ähnlich allerdings weiß ich nicht welche werte er mir dabei rausspuckt und wie ich das ganze in mein Programm reinschreiben soll.

Wie oben schon erwähnt benutz ich TwinCAT 3.

Vielen Dank für eure Hilfe im voraus schon mal ! :D

Mit freundlichen Grüßen

Username2.1 :)
 
Hallo,

sieh dir im Infosys mal die Struktur "PlcTaskSystemInfo" an. TwinCAT legt automatisch ein Array an, das je eine Instanz der Struktur für jeden Task enthält.
Die "Laufzeit" des "Programs" für Task 1 in zehntel µs erhälst du bzw. so:
Code:
_TaskInfo[1].LastExecTime;
Ich denke aber das für deine Aufgabenstellung die Zykluszeit relevant ist:
Code:
_TaskInfo[1].CycleTime;
Eine Möglichkeit den Volumenstrom zu ermitteln wäre nun die Zyklen zwischen zwei Signalen zu zählen... oder auch einfach den Wert von
Code:
_TaskInfo[1].CycleCount;
nach jedem Interval auslesen und die Differenz bilden.

Standardmäßig läuft ein Task mit 10ms (Default in TwinCAT) - ich schätze mal die Abtastung des Signals alle 10ms reicht in deinem Fall aus.

Gruß
sieric
 
Zurück
Oben