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 und shared_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 und shared_procimg. Bei dem alle Ausgänge immer geschrieben wurden, auch wenn ein Device kein autorefresh 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 wie run_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 Parameter prefire übergeben werden. Dies ist analog zu .reg_event

DOWNLOAD

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.

DOWNLOAD

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

DOWNLOAD

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.

DOWNLOAD

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 Parameter blocking. Wenn es nicht gewünscht ist, dass der Cycleloop exklusiv ausgeführt wird, kann blocking=False gesetzt werden – Dies ist analog zu dem blocking 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.

DOWNLOAD