NEWS
Setzen von Variable
-
Hallo zusammen,
ich bin etwas am verzweifeln.
Ich habe mein Haus über eine Industrie-SPS laufen, nur Datenbank, Visu und Kommuniktaion nach Aussen wir über den ioBroker gehandelt.
ich schicke mir über Telegram ne Nachricht, wenn das Alive SPS<>ioroker fehlt. Das funktioniert auch wunderbar.
Jetzt möchte ich mir aber auch ne Nachricht schicken lassen, wenn das Alive wieder da ist!
Und hier verzweifele ich am Setzen einer Variable, eventl denke ich auch zuviel SPS-Programmierer
Ich nutze die Variable HM_AliveTimeout, wenn das Alive der SPS weg geht, dann läuft auch auch in die Schleife (sh debug output), aber die falls Bedingung bekommt nicht mit, dass die Variable auf 1 ist, bzw die Variable wird nicht auf 1 geschrieben, hat da jemand ne Hilfestellung für mich?Gruß T.Spooner
-
- Vergiss mal die Variable.
- Aender den Trigger auf "wurde geaendert"
- im Timeout, setz nen Falls Block, Hol Dir den "Objekt ID" Baustein aus dem Trigger Bereich, und Wechsel den auf "Wert". Damit Machst du: "Falls Wert mache Meldung Alive is weg, sonst mache Alive ist wieder da.
Fettich
-
@Asgothian, Danke Dir.
Leider funktioniert es nicht bzw läuft immer noch wie vorher.
Wahrscheinlich habe ich etwas falsch verstanden, habe es so gemacht:
-
Die Meldungen sehen so erst einmal nicht schlecht aus. Anscheinend hat das Skript die Änderung von des Datenpuntktes von "true" auf "false" erkannt.
Mach mal bitte folgendes:
- Sorg dafür das das Alive da ist
- Halte die SPS für mindestens 4 Sekunden an, damit das Alive 4 Sekunden weg geht
- Starte sie wieder.
Du solltest dann nacheinander 2 Meldungen bekommen, eine dafür das das Alive abfällt, die andere dafuer das es wieder da ist.
So wie das Skript gebaut ist bekommst Du bei Änderungen die weniger als 1.5 Sekunden auseinander liegen nur die Meldung der LETZTEN Änderung.
A.
-
@Asgothian
Ich halte die SPS sogar 10 Sekunden an, es kommt nur die Meldung, dass das Alive weg geht, dass es nochmal kommt nicht.
Der SPS-Alive-Takt liegt übrigens bei 1Hz -
@T-Spooner Das ist seltsam. Kannst du Bitte das Skript nach diesem Muster anpassen:
Wenn da die Ausgabe nur kommt wenn die SPS aus geht dann ist etwas mit den Datenpunkten komisch.
A.
-
@Asgothian
trigger wird erfasst:
-
@T-Spooner ok.. dann setz doch einmal einen Timeout um genau diese Meldung. Mit einem Stop Timeout davor.
-
@Asgothian
ok läuft auch, natürlich nicht mehr wenn ich die SPS stoppe -
@T-Spooner ok.. die antwort verstehe ich nicht.
Du bekommst die gleichen Meldungen wie vorher ohne den Timeout ?
-
@Asgothian ich bekomme die gleichen Meldungen.
wenn ich die SPS stoppe, kommen keine Meldungen mehr, wenn ich sie starte, kommen sie wieder -
@T-Spooner
Also wenn ich dich richtig verstehe funktioniert der Datenpunkt so das die SPS den regelmässig von falsch auf wahr setzt solange sie läuft ? Und wenn sie nicht läuft dann bleibt er auf falsch stehen ? -
@Asgothian genau
-
@T-Spooner OK.. das hättest du früher sagen sollen. Dann kann das Skript ja auch nicht arbeiten.
Was du also brauchst ist eine Überwachung das sich der Datenpunkt regelmässig ändert. Tut er das nicht ist die SPS aus
Sehe ich das richtig ?
-
@Asgothian genau so ist es
-
@T-Spooner Wie genau willst du das an/aus erfassen ? Reicht eine Erkennung nach 1 Minute, oder muss die Meldung "sofort" kommen ?
-
ca 1,5 Sekunden, der Takt liegt ja bei 1Hz
-
@T-Spooner sagte:
ca 1,5 Sekunden, der Takt liegt ja bei 1Hz
Typischer Watchdog. Dann muss auf "wurde geändert getriggert werden".
-
@T-Spooner
versuch mal so:
Das was @paul53 geschrieben hat funktioniert auch, wenn du zusätzlich noch einen Trigger wie ich oben vorgeschlagen auf den neu angelegten Datenpunkt "SPS läuft" setzt.
-
@Asgothian und @paul53
es läuft, vielen Dank!!!
@Asgothian , sorryhatte es anfänglich etwas schlecht beschrieben!