Ladung vom Gabelstapler aus präzise positionieren, war das Thema von unserem Modell auf dem RevPiDay 2019 in Leipzig. Es handelt sich dabei um ein POC der Firma Willenbrock Fördertechnik GmbH & Co. KG*.
Version 2.4.2
Wichtiges Update!
Dieses Update behebt kleine allgemeine Fehler und kritische Fehler bei Netzwerkverwendung!
- Fehler bei allen RevPiNetIO Klassen behoben, der unter bestimmten Umständen eine Neuverbindung verhinderte
- Fehlerkorrektur bei Verwendung von
prefire
undas_thread
in.reg_event(...)
. - Fehlerkorrektur bei Exportdatei für ersetzte IOs
- Fehlerkorrektur, bei setzen von verzögerten Events auf
.core.ios
, wie z.B..core.a1green
,.core.x2in
usw. - Warnungen werden nun einmalig beim Auftreten von Fehlern und nach Beseitigung der Fehler ausgegeben. Keine Warnungsfluten mehr in der Konsole!
- Fehlerzähler auf Prozessabbild verbessert.
- Der Funktion
.reg_event(...)
kann nun als Parameterprefire=True
übergeben werden, damit diese Funktion beim Eintritt in den.mainloop()
sofort ausgeführt wird [Doku]. - Alle RevPiNetIO Klassen benötigen RevPiPyLoad in Version mindestens 0.8.0!
- RevPiNetIO Klassen haben das Attribut
.reconnecting
, mit dem abgefragt werden kann, ob die Verbindung vorübergehend abgerissen ist. - Alle RevPiNetIO Verbindungen werden bei Veränderung von piCtory oder replace_ios.conf getrennt und können über das Attribut
.config_changed
abrufen, ob es eine Veränderung gab und eine Neuinstantiierung nötig ist. - IOs, welche mit
.replace_io(...)
exportiert wurden, können für andere Instanzen oder RevPiPyLoad / Control mit.export_replace_ios()
exportiert werden. - Parameter
replace_io_file
für RevPiModIO eingeführt, für den Import der exportieren Datei. Bei RevPiNetIO kann „:network:“ verwendet werden um diese Daten per RevPiPyLoad zu importieren. - Parameter
direct_output
bei Instanziierung hinzugefügt [Doku]. - Zugriff auf IOs über
.device
Object per Index möglich (.device.dio01[0]
).
Version 2.3.2
Diese Version beseitigt hauptsächlich Fehler bei Counter IOs
- Counter IOs 8 – 16 können nun auch mit
.reset()
zurückgesetzt werden - Laufzeitwarnungen haben bessere Fehlerhinweise
debug
Argument eingeführt um komplette Fehlertexte zu erhalten- Formatprüfung von
.replace_io(...)
auf bestimmte Typen umgesetzt
Danke an Nicolai Buchwitz - Argumentprüfung bei Instantiierung verbessert
Version 2.3.1
Dieses Update führt den Counter-Reset von DI / DIO Modulen ein!
- Counter IOs haben nun die Funktion
.reset()
zum zurücksetzen der Counter auf den DI / DIO Modulen.
Hinweis: Das Wheezy (7) System unterstützt diese Funktion NICHT im piControl! - Counter können auch per RevPiNetIO über das Netzwerk zurückgesetzt werden.
- Iteratoren geben nun Python-Konforme Exceptions aus.
- Die Funktion
.replace_io(...)
wurde bei allen IO-Objekten angeboten, können aber nur bei Gateway- oder virtuellen Devices verwendet werden. Sie ist nun nur noch bei IOs verfügbar, die diese Funktion auch unterstützen. - Dem
.mainloop(...)
kann nun der Parameterno_warn=True
übergeben werden, um Laufzeitwarnungen zu deaktivieren.
NodeRed mit MQTT im Revolution Pi
Auf dem RevPiDay 2018 haben wir euch unsere Erweiterung von RevPiPyLoad vorgestellt, mit der wir NodeRed auf dem Revolution Pi sehr einfach, dank MQTT, verwenden können. Hier zeigen wir euch wie es geht. „NodeRed mit MQTT im Revolution Pi“ weiterlesen
Version 2.2.5
Wichtiges Update!
- IOs der Core/Connect Module werden nun statisch verwaltet, was sehr wichtig ist, wenn in piCtory neue IO Varianten der Module erscheinen sollten.
- Wenn Events mit
.reg_event(...)
an IOs der.core.
Klasse angehängt werden, wird als IO-Name nun ein core. vorangestellt. Der Name des IOs für den Eingang von X2 am Connect lautet nun „core.x2in“ um Überschneidungen mit anderen piCtory Namen zu verhindern. - Export-Flag aus piCtory für RevPiStatus und RevPiLED wird an die IOs der
.core.
Klasse übergeben. - Export-Flag für
x2in
wurde von RevPiLED ausgelesen, welches nun richtigerweise von RevPiStatus übernommen wird.
Quelltexte mit Visualisierung
Sowohl auf dem RevPiDay 2017, als auch auf dem RevPiDay 2018 haben wir unseren Revolutionsumbau vorgestellt!
Hier findet ihr die aktuellen Quelltexte, basierend auf RevPiModIO2. „Quelltexte mit Visualisierung“ weiterlesen
Version 2.2.3
- Verbessert Modulperformance
- Interne Zykluszeit je nach Core-Version bei Instanziierung festlegen. Dadurch wird das Eventsystem verbessert und reagiert deutlich schneller auf IO Veränderungen – vor allem bei Core3
- Laufzeitüberwachung für Eventfunktionen integriert. Es werden Warnungen ausgegeben, wenn Funktionen zu lange Laufzeiten haben
- Das „Export“ Flag aus piCtory kann jetzt über
.io.ioname.export
abgerufen werden - Den Funktionen
.get_allios(...)
/.get_inputs(...)
/.get_outputs(...)
der Device Klasse kann der Parameterexport=True/False
übergeben werden, um nur IOs zu erhalten, die in piCtory das Export-Flag haben, bzw. nicht haben - Behebt Fehler die unter bestimmten Umständen bei
reg_event(...)
/unreg_event(...)
auftreten könnten - Verbesserungen in den RevPiNetIO Klassen, sorgen für eine bessere Netzwerkkommunikation in Verbindung mit RevPiPyLoad
Events und eigene zyklische Aufgaben
Hier möchten wir euch eine Lösung vorstellen, mit der ihr auf Events reagieren, aber gleichzeitig auch eigene zyklische Aufgaben erledigen könnt. „Events und eigene zyklische Aufgaben“ weiterlesen
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 alsinstanz.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 voninstanz.exit()
oder durch das Beenden des Programms durch.handlesignalend()
verlassen werden können.
Das Signal wird bei Aufruf voninstanz.exit()
oder Programmende bei Verwendung von.handlesignalend()
gesetzt. - Kleine Leistungsverbesserungen