Actor Plugin - HTTP Abfrage an SPS - Aktualisierung self.state
Verfasst: Freitag 2. Dezember 2022, 15:21
Hallo zusammen,
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.
Dies funktioniert aber leider nicht. Wo wird im Plugin der aktuelle Schaltwert ausgelesen/vorgegeben? Hier sind ja doch einige gute Python bzw. Plugin Programmierer unterwegs, die mir sicherlich einen kurzen Hinweis geben könnten... Vielen Dank dafür!
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
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