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

Version 0.16.1 – Analogmodul

Es gibt ein neues Update für die Verwendung des analogen Moduls AIO.

  • IOs des analogen Moduls werden „signed“ instanziiert. Damit wird die Werteberechnung mit Vorzeichen durchgeführt. Ansonsten wäre der Wert -1 plötzlich 65535 und negative Werte bei Zuweisungen nicht erlaubt.

DOWNLOAD

Version 0.16.0 – Weniger Python, mehr SPS!

Dieses Update bringt neue Funktionen mit sich, um mit weniger Python mehr SPS zu programmieren!

Wir stellen vor: cycleloop(zyklusfunktion)

  • Neuer Cycleloop der in einem festgelegten „auto_refresh“ Takt die Eingänge einließt, die übergebene Funktion aufruft und nach Abarbeitung die Outputs schreibt. Wird im Programm devices.cycleloop(zyklusfunktion) aufgerufen, blockiert es an dieser Stelle und führt zyklisch die Funktion „zyklusfuntkion“ aus. Dieser Funktion wird eine Instanz der Klasse RevPiCycletools() übergeben, welche Werkzeuge wie Taktmerker, Flankenmerker oder Timerobjekte beinhaltet.
  • Neue Funktion für einfaches Beenden eines zyklischen oder eventbasierten Programms .handlesignalend(cleanupfunc)
  • Sollte die eingestellte Aktualisierungsrate der Prozessabbildaktualisierung (auto_refresh) nicht einzuhalten sein, werden Warnungen ausgegeben.
  • auto_refresh Werte größer 1000 Millisekunden ergaben Fehler bei .wait und mainloop()
  • Modul beendet sich schneller bei .cleanup() oder .exit()
  • Modul blockiert das Beenden nicht mehr bei Verwendung im interaktiven Modus der Python-Shell

DOWNLOAD