Werkzeugkasten welcher der aufgerufenen Zyklusfunktion bei jedem Aufruf durch .cycleloop() übergeben wird.
revpimodio2.helper.Cycletools()
Klassenattribute
.core
.device
.io
Über die Objekte.core
,.device
and.io
kann direkt auf die Objekte der RevPiModIO Instanz zugegriffen werden. Dadurch können alle IOs direkt abgerufen und gesetzt werden, auch wenn man mehrere Funktionen oder Module für die Steuerung verwendet. Es müssen lediglich die Cycletools weitergereicht werden.def loop(ct): # (...) ct.io.output.value = True ct.var.mrk_counter = ct.io.counter.value ct.io.counter.reset() # (...)
.first
Enthält den WertTrue
im ersten Zyklus bei Programmstart, sonst immerFalse
. Dient z.B. für das Anlegen von Zyklusvariablen.var.name = 2
.def loop(ct): if ct.first: ct.var.my_variable = 0 ct.core.a1green.value = True
.flag1c
.flag5c
.flag10c
.flag15c
.flag20c
Wechselt den Status zwischenTrue
undFalse
hält diesen für n Zyklen bei.
1 = 1 ZyklusFalse
, 1 ZyklusTrue
15 = 15 ZyklenFalse
, 15 ZyklenTrue
.flank5c
.flank10c
.flank15c
.flank20c
Ist im ersten ZyklusTrue
dannFalse
und in jedem n. ZyklusTrue
.
10 = 9 ZyklenFalse
, im 10. ZyklusTrue
usw.
.last
Dieser Wert istTrue
, wenn das Programm das Signal zum Beenden erhalten hat. Hier sollten alle IOs bereinigt und die Anlage in einen sicheren Zustand versetzt werden.def loop(ct): # (...) if ct.last: ct.core.a1green.value = False ct.io.output.value = False
.runtime
Hier kann die aktualle Laufzeit der Funktion abgerufen werden. Der Wert ist die Laufzeit der Funktion an der Stelle des Aufrufs. Zu Beginn der Funktion ist dieser Wert nahe 0 und in der letzten Zeile der Funktion erreicht er den maximalen Wert.
.var
An diese leere Klasse werden alle Zyklusvariablen angehängt. Diese sind in jedem Zyklus verwendbar. Die erste Einrichtung sollte im ersten Zyklus gemacht werden:def cycle(ct): if ct.first: # Variablen im ersten Zyklus anlegen ct.var.anzahl = 10 ct.var.text = "Hallo Welt" ct.var.noch_eine = 0 # Variablen sind ab jetzt direkt zugreifbar if ct.var.anzahl == 10: ct.var.noch_eine += 1 # usw.
Klassenfunktionen
.changed(io_object, edge=BOTH)
Auf Wertänderung zum vorherigen Zyklus prüfen.
io_object
IO Object, welches geprüft werden soll.edge=revpimodio2.BOTH
Nur auf RISING, FALLING or BOTH Wertänderung von BIT-orientierten IOs prüfen.
.get_tofc(name)
Ruft den Wert der Ausschaltverzögerung ab.
name
Name der Ausschaltverzögerung.
.set_tofc(name, cycles)
Startet die Ausschaltverzögerung, deren Wert über .get_tofc(name)
abgerufen werden muss.
name
Name der Ausschaltverzögerung.cycles
Anzahl der Zyklen, die die Ausschaltverzögerung bei Aufruf von.get_tofc(name)
den WertTrue
zurückgeben soll, nachdem.set_tofc(name, cycles)
nicht mehr im Zyklus aufgerufen wurde. Die Standardzykluszeit beträgt 50 Millisekunden.
.get_tonc(name)
Ruft den Wert der Einschaltverzögerung ab.
name
Name der Einschaltverzögerung.
.set_tonc(name, cycles)
Startet die Einschaltverzögerung, deren Wert über .get_tonc(name)
abgerufen werden muss.
name
Name der Einschaltverzögerung.cycles
Anzahl der Zyklen, die die Einschaltverzögerung bei Aufruf von.get_tonc(name)
den WertFalse
zurückgeben soll, wenn in jedem Zyklus.set_tonc(name, cycles)
aufgerufen wird. Erst nach Erreichen der Zyklenanzahl gibt.get_tonc(name)
den WertTrue
zurück. Die Standardzykluszeit beträgt 50 Millisekunden.
.get_tpc(name)
Ruft den Wert des Impuls ab.
name
Name des Impuls.
.set_tpc(name, cycles)
Startet einen Impuls, dessen Wert über .get_tpc(name) abgerufen werden muss.
name
Name des Impulses.cycles
Anzahl der Zyklen, die der Impuls bei Aufruf von.get_tpc(name)
den WertTrue
zurückgeben soll, unabhängig von weiteren.set_tpc(name, cycles)
Aufrufen! Nach Erreichen der Zyklenanzahl gibt.get_tpc(name)
dannFalse
aus. Die Standardzykluszeit beträgt 50 Millisekunden.