Actor Plugin - HTTP Abfrage an SPS - Aktualisierung self.state

Antworten
Benutzeravatar
Vaninger
Posting Klettermax
Posting Klettermax
Beiträge: 103
Registriert: Sonntag 19. Oktober 2014, 15:34
Kontaktdaten:

Actor Plugin - HTTP Abfrage an SPS - Aktualisierung self.state

#1

Beitrag von Vaninger »

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.

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
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:
Config CBPI4
Config CBPI4
Schaltvorgang
Schaltvorgang
Auslesen aktueller Wert Schaltausgang
Auslesen aktueller Wert Schaltausgang
Hier noch der Link zum Plugin:
https://github.com/Vansdan/cbpi4-ilc-actor.git

Danke und schöne Grüße
Daniel
Benutzeravatar
Vaninger
Posting Klettermax
Posting Klettermax
Beiträge: 103
Registriert: Sonntag 19. Oktober 2014, 15:34
Kontaktdaten:

Re: Actor Plugin - HTTP Abfrage an SPS - Aktualisierung self.state

#2

Beitrag von Vaninger »

Hallo zusammen,

in der Zwischenzeit noch eine andere Frage.
Wie aktualisiere ich den Status des Schalters/Aktors in der Visualisierung mittels Code bei Variablenänderung? Gibt es hier einen speziellen Befehl?
Eventuell etwas ähnliches wie "self.push_update(self.value)"?

Danke für die Unterstützung!

Schöne Grüße
Daniel
Benutzeravatar
Vaninger
Posting Klettermax
Posting Klettermax
Beiträge: 103
Registriert: Sonntag 19. Oktober 2014, 15:34
Kontaktdaten:

Re: Actor Plugin - HTTP Abfrage an SPS - Aktualisierung self.state

#3

Beitrag von Vaninger »

Hallo,

mittlerweile konnte ich mir es selbst erarbeiten, die Lösung war ein:

Code: Alles auswählen

await self.cbpi.actor.actor_update(self.id, self.state)
Gruß
Daniel
Antworten