ich bin gerade dabei mir ein Plugin zur Anbindung meiner Phoenix Contact SPS ILC151 an Craftbeerpi4 zu entwickeln.
Hier kann man mittels HTTP Aufrufs Werte verändern (schalten bzw. Sollwertänderungen) und auch abfragen. Beides hatte ich schon bei meiner Hausautomatisierung erfolgreich in PHP umgesetzt.
Prinzipiell funktioniert mein Plugin auch schon so weit, dass ich die Werte ändern kann und auch den aktuellen Zustand der Veriable abfragen kann.
Da ich neben dem schalten der Werte mittels Visualisierung CBPI4 aber auch noch meine Taster am Schaltschrank verwenden will, benötige ich zwei verschiedene Variablen, die ich schalten/abfragen muss. Eine zum Schalten und eine die den aktuellen Stand des Ausgangs der SPS ausgibt.
Dies ist ebenfalls bereits umgesetzt und funktioniert eigentlich auch.
Jetzt dachte ich mir, ich frage im Plugin alle 5s den Zustand der Variable ab, also "0" oder "1" als Antwort auf meine HTTP-Anfrage und verändere dementsprechend den Wert "self.state" auf True oder False und die Visualisierung in CBPI4 ändert dementsprechend auch den Schalter.
Code: Alles auswählen
#Funktion run--------------------------------------------------------------------------------------------------
async def run(self):
while self.running is True:
if self.continuous_mode is True:
await self.start_request("read")
logger.info("Read from SPS {}".format(self.stat_actor))
if self.stat_actor == "0":
self.state = False
else:
self.state = True
await asyncio.sleep(5)
else:
await asyncio.sleep(1)
pass
Folgend noch ein paar Bilder:
Hier noch der Link zum Plugin:
https://github.com/Vansdan/cbpi4-ilc-actor.git
Danke und schöne Grüße
Daniel