Bugfix für Kontextmanager.
Version 2.7.0
- Add context manager for ios
- Remove deprecated parameter ‚direct_output‘ from ModIO classes
- Check offset values of the devices for integers
- Check if the length of the previous IO overlaps with the new IO
- Add support for RO device
- Add context manager for modio instance
Mit den neuen Kontextmanagern können die IOs einfacher mit eigenen Zyklen kombiniert werden. Beim Eintritt in den Kontextmanager werden die Eingänge gelesen, innerhalb des Kontextmanagers werden Ausgänge nicht in das Prozessabbild geschrieben, erst beim Austritt werden alle Ausgänge geschrieben.
import revpimodio2 revpi = revpimodio2.RevPiModIO() with revpi.io: revpi.io.O_1.value = not revpi.io.O_1.value
Das Argument autorefresh=True
muss in diesem Fall nicht gesetzt werden, da der Kontextmanager sich um die Aktualisierung des Prozessabbilds kümmert.
Version 2.6.1
Wichtiges Update
- Behebt einen Fehler bei Verwendung von
autofrefresh
undshared_procimg
. Unter bestimmten Umständen konnte es passieren, dass ein Ausgang gesetzt wurde, jedoch der interne Puffer noch den falschen Wert zurück lieferte. - Behebt einen Fehler bei Verwendung von
autofrefresh
undshared_procimg
. Bei dem alle Ausgänge immer geschrieben wurden, auch wenn ein Device keinautorefresh
aktiviert hatte. - Texte für Warnungen klarer geschrieben.
Version 2.6.0
- Die Funktion
replace_io
akzeptiert nun das Schlüsselwort wordorder. Damit ist es nun möglich mehrere Wörter, z.B. von einem Modebus-Device, in die richtige Reihenfolge zu bringen. - Die Neue Funktion
run_net_plc
kann wierun_plc
verwendet werden um den Revolution Pi direkt als PLC über das Netzwerk zu verwenden. - Lizenz wurde, mit Zustimmung aller Mitarbeitenden, von LGPLv3 auf LGPLv2 umgestellt.
- Der RevPi Connect 4 wird nun unterstützt.
- Behebt einen Fehler für das Schalten der LEDs am Revolution Pi (alle)
Version 2.5.10
- Replace IO Datei wird for dem starten von Auto-Refresh angewendet, da es sonst zu Zykluswarnungen kommen könnte.
- Verbesserte Ausgabe in den Texten von Warnungen, wenn gleiche Devicenamen verwendet werden.
Version 2.5.9
Wichtiges Update
Es wird, bei Verwendung von .cycleloop
, dringend empfohlen dieses Update zu installieren!
- Der
.cycleloop
hielt unter bestimmten Umständen (schwankende Laufzeiten der Zyklusfunktion) nicht seine definierte Zykluszeit ein! Die Zyklusfunktion wurde, je nach Fall, zu häufig oder zu selten als erwartet ausgeführt. Mit dieser Version wird die Zykluszeit exakt eingehalten und bei Überschreitung der jeweiligen Zyklusfunktionsdurchläufen eine Warnung ausgegeben. - Behebt Fehler in
.replace_io
um mehr als 8 Bits eines >1 Byte langen IO Objekts zu ersetzen (Danke Nico) - Der Funktion
.reg_timerevent
kann nun auch der Parameterprefire
übergeben werden. Dies ist analog zu.reg_event
Version 2.5.8
Wichtiges Update
- Behebt Fehler bei Verwendung von
shared_procimg
bei Abfrage des Ausgangsstatus, speziell im.cycleloop(...)
. Der Status von gesetzten Ausgängen hing einen Zyklus hinterher. So waren die Werte der Ausgänge im nächsten Zyklus noch auf dem alten Stand. - Offset-Prüfung des gesamten Prozessabbilds und Auslassung von überlappenden IOs. Bei Verwendung mehrerer alter Modbus 150 Devices passen die Offsets der IOs nicht. Eine Überlappung wird nun, durch auslassen der IOs, verhindert.
- Das Export-File kann nun mit ersetzten IOs im Byte-Format (s) umgehen.
- MIO Memory-Mapping Werte hinzugefügt.
Version 2.5.7
Wichtiges Update
- Behebt Fehler in Längenangaben der Speicherbereiche vom Prozessabbild, wenn piCtory Konfigurationen Lücken aufweisen. Dies wurde bis jetzt beim „Modbus Master 150“ Modul entdeckt. Der Fehler führt dazu, dass die IOs von Modulen hinter dem lückenhaften Modul nicht richtig synchronisiert werden.
- Flat: Switch-Button und Relais sind nun als echte IO-Objekte in der
.core
Klasse verfügbar:
.core.relais
.core.switch
Version 2.5.6
Wichtiges Update!
- Behebt Zyklusproblem bei
shared_procimg=True
Sobald einem Ausgang ein neuer Wert zugewiesen wurde, schrieb RevPiModIO diesen sofort in das Prozessabbild. Ausgänge dürfen aber erst nach der kompletten Abarbeitung der Zyklusfunktion (bei Verwendung von.cycleloop
) oder nach Aufruf von.writeprocimg
ins Prozessabbild geschrieben werden.
Die Verwendung von.mainloop
ist dieser Fehler nicht relevant.
Version 2.5.5
Wichtiges Update
- Implementierung vom RevPi Flat (noch ohne .core IOs).
- Härtung von NetIO (Prozessabbild über das Netzwerk).
- Der Aufruf vom
.cycleloop
akzeptiert nun den optionalen Parameterblocking
. Wenn es nicht gewünscht ist, dass der Cycleloop exklusiv ausgeführt wird, kannblocking=False
gesetzt werden – Dies ist analog zu demblocking
Parameter vom.mainloop
zu verstehen. shared_procimg
kann nun pro Device gesetzt werden. Dies ermöglicht es z.B. nur das Coremodul als shared zu verwenden und den Rest als exklusiv.
Jedes device hat nun die Funktion.device.device_name.shared_procimg(activate: bool)
.- Bei
shared_procimg=True
sind die neuen Werte nun auch sofort in den.io
Variablen gesetzt. - Fehlerbehebung: Bei
shared_procimg=True
wurden die LEDs von.core.An
nicht gesetzt. - Das
.export Flag
von ersetzten IOs kann im Programm zur Laufzeit angepasst werden. Diese Einstellung wird dann auch durch.export_replaced_ios()
in die Konfigurationsdatei übernommen – Von dort gelesen.