Version 2.2.2

Wichtiges Update + RevPi Connect

  • Core LEDs werden bei Instanziierung nicht mehr ausgeschaltet.
  • Für zukünftige virtuelle Devices können nun mehr als 16 BIT IOs pro Speichereinheit angelegt werden.
  • Die LEDs der Cores können jetzt (neben .core.A1) über .core.a1green.value = True/False / .core.a1red.value = True/False gesetzt werden. Es handelt sich um IO Objekte, die auch alle anderen Funktionen der IOs anbieten.
  • RevPi Connect wird unterstützt
    • .core.A3 bzw. .core.a3green / .core.a3red sind verfügbar.
    • Der Watchdog kann über .core.wd.value = True/False angesprochen werden.
    • Um den Watchdog automatisch während der Programmlaufzeit zu zurückzusetzen kann .core.wdautotoggle = True gesetzt werden.
    • Interne IOs der Klemme X2 .core.x2in und .core.x2out sind RevPiModIO.io Objekte, welche alle Eigenschaften und Funktionen anbieten. Z.B. kann auf .core.x2in.reg_event(funktion) ein Event auf den integrierten Eingang registriert werden. Das Setzen der Ausgänge kann z.B. mit .core.x2out.value = True realisiert werden.
  • Exitsignal für zyklische Schleifen nach .mainloop(blocking=False) wird als instanz.exitsignal.is_set() bzw. while not instanz.exitsignal.wait(0.5): angeboten. Mit diesem Signal können nach dem Mainloop zyklische aufgaben erledigt werden, welche bei Aufruf von instanz.exit() oder durch das Beenden des Programms durch .handlesignalend() verlassen werden können.
    Das Signal wird bei Aufruf von instanz.exit() oder Programmende bei Verwendung von .handlesignalend() gesetzt.
  • Kleine Leistungsverbesserungen

DOWNLOAD

Version 2.1.5

Kleines Update

  • Die Funktion .cycleloop() übernimmt nun vor dem ersten Durchlauf die, durch den optionalen Parameter cycletime übergebene, Zykluszeit.
  • Übernahme der defaultvalue aus piCtory verbessert.

DOWNLOAD

Version 2.1.3

Dieses Update verbessert Fehlermeldungen und führt Bytezusammenfassung bei .replace_io(...) ein:

  • Fehlermeldungen wurden bei fehlender piCtory Konfiguration eindeutiger gestelltet.
  • Netzwerkfehler bei RevPiNetIO werden als Warnungen angezeigt.
  • Mehrere Bytes eines Gateways oder virtuellen Devices können als Bytefolge in einem neuen IO zusammengefasst werden. Dafür unterstützt die .replace_io("neuername", frm="8s") Funktion für das Formatzeichen s nun eine Anzahl der Bytes. Siehe DOKU.

DOWNLOAD

Version 2.1.2

Wichtiges Update!

Dieses Update behebt Fehler und führt neue Netzwerk-Funktionen ein:

  • Überarbeitung der Eventüberwachung (mainloop). Der mainloop wurde leistungsfähiger umgesetzt und verbraucht weniger Systemressourcen.
  • Bei der Eventüberwachung (mainloop) werden jetzt auch während der Ausführung einer Eventfunktionen weitere Events erkannt und zur Abarbeitung übergeben.
  • Eventfunktionen, die als as_thread=True angegeben sind, werden unabhängig von der Abarbeitung anderer Eventfunktionen sofort parallel gestartet!
  • Netzwerkfunktion hinzugefügt. RevPiNetIO, RevPiNetIOSelected und RevPiNetIODriver stehen nun zur Verfügung. Als Übergabeparameter gibt man diesen Funktionen die IP-Adresse des RevPi’s, auf dem RevPiPyLoad ab Version 0.5.3 mit aktivierter plcserver = 1 Funktion läuft.
    Das Prozessabbild wird dann über das Netzwerk ausgetauscht. Die sonstige Syntax und der Funktionsumfang des Moduls bleiben gleich.
  • Weitere Verbesserungen des Codes.

DOWNLOAD

Version 2.0.7 / 1.0.3

Interessantes Update

Dieses Update erweitert unser Modul um folgende Dinge:

  • Fehlerbehandlung der Funktion, die dem Cycleloop übergeben wird.
    Diese Version verwaltet Fehler, die durch den Quelltext der Zyklusfunktion geworfen werden. Dabei wird das RevPiModIO Modul in einen sauberen Zustand versetzt und der Fehler erst dann geworfen. Wird dieser Fehler vom Programmierer abgefangen, kann der Cycleloop wieder neu gestartet werden.

    # (...)
    try:
        rpi.cycleloop(zyklusfunktion)
    except:
        # Fehler behandeln, protokollieren und
        # ggf. den Cycleloop neu starten
    # (...)
  • Fehlerbehandlung der Funktionen, die durch die Eventüberwachung (mainloop) ausgeführt werden.
    Diese Version verwaltet Fehler, die durch den Quelltext der Eventfunktionen geworfen werden. Dabei wird das RevPiModIO Modul in einen sauberen Zustand versetzt (mainloop und Threads beendet) und erst dann der Fehler geworfen. Wird dieser Fehler vom Programmierer abgefangen, kann der Mainloop wieder neu gestartet werden.

    # (...)
    try:
        rpi.mainloop()
    except:
        # Fehler behandeln, protokollieren und
        # ggf. den Mainloop neu starten
    # (...)
  • Klarere Fehlerausgabe bei falscher Instanziierung des Moduls.
  • Korrektur der Abfrage ioobjekt in device.devicename bei Übergabe von IOBase oder vererbte Objekte.

DOWNLOAD

Version 1.0.0 – fertig!

Nach vielen Monaten Entwicklung und neuen Funktionen haben wir nun die finale Version veröffentlicht!

RevPiModIO Version 1

Neben ein paar Verfeinerungen und einen Bugfix bei der Byteorder der Default-Werte ist diese Version würdig, die Versionsnummer 1 zu bekommen 😀

Diese Version wird weiterhin gepflegt, aber wir haben durch die Entwicklung gelernt und die Version 2 steht in den Startlöchern! Schaut euch die neue Syntax an, die auch in einer interaktiven Python Shell auf dem RevPi viele Vorteile bietet!

RevPiModIO – Version 2

DOWNLOAD