S7 Variable aktualisiert sich selbst

Hi,

ich habe ein Problem mit der S7 in IPS.

Meine Digitalen eingänge werden durch einen datenbaustein an IPS übertragen. Funktioniert Super!

Ich habe an den Eingängen Sensoren für die Alarmanlage hängen, die dauerhaft geschlossen sind.(Öffner-Prinzip)

Wenn z.b. eine Tür geöffnet wird dann wird Prowl eine Meldung zum iPhone geschickt.

Jetzt zum Problem:

Die Variable aktualisiert sich alle paar minuten so ca. zwischen 1-5min. immer wieder.

Obwohl der Sensor kein mal geöffnet wurde.

Und jetzt bekomme ich immer alle paar minuten eine push meldung.

Das nervt verdammt, bisher habe ich noch eine probleme mit der S7 gehabt, weil ich bisher nur Taster als eingänge benutzt habe.

Achja, die Instanz wird jede sekunde aktualisiert.

Im Forum habe ich was gefunden, was so ähnlich ist.
Da geht es aber um eine WAGO anlage mit 10mbit und max. 3 gleichzeitigen verbindungen.

Die S7 ist mit einem CoProzessor (CP343-1), über 100mBit FD
angebunden.

fällt einem irgend etwas ein wie man das lösen kann?

LG

Matthias

Hallo Matthias,

es gab „früher“ mal ein Thema mit „selbstaktualisierenden“ Variablen, bin mir aber nicht sicher, ob das auch die S7 relevant sein kann

  • welche IPS-Version benutzt Du?
  • wie sieht Dein Systemauslastung des IPS-Rechners aus?

http://www.ip-symcon.de/forum/project.php?issueid=952

kann aber auch die falsche Denkrichtung sein … :confused:

Tilo

Ich verwende Die Version 2.4, hab es auch bei Version 2.3 gehabt.

Die CPUauslastung ist so bei ca. 5 - 10%.

Bei dem wago System wird es ja mit einer modbus Verbindung gemacht.
Die S7 ist mit ISO over TCP/IP verbunden.

Was ja komisch ist, ist ja das die Variable sich nur aktualisiert, aber nicht den Wert ändert.

Also sie bleibt immer auf true, wie es sein soll.

Denn würde sie sich nur kurz ändern, dann würde der Alarm ausgelöst werden.

Sogesehen tritt das Problem nur bei Aktionen im Skript auf.

Wenn ich z.b. Einen Schalter an dem Eingang der S7 hänge und per Skript einen Ausgang anspreche wo eine Lampe dran hängt, würde sie ja für einen kurzen Augenblick ausgehen.

Das passiert aber ja nicht.

Es gibt eigentlich nur der Problem mit dem prowl push Meldungen, durch Dauerhafter Meldung bei aktualisierung der Variable.

Was ich mir mal überlegt habe, das man es so machen könnte wenn die variable länger als z.b. 1 Sekunde den wert ändert, das sie sich dann erst aktualisiert.

Aber wie man das macht weis ich leider nicht. Vielleicht mit ins Skript übernehmen.

die Frage ist, ob sich die Variable wirklich nicht kurzzeitig ändert, ggf. einfach mal mit loggen (IPS-DB).

ansonsten kann man das natürlich unschön lösen im Sinne von :

if variable =1
then ipssleep = 1000
if variable =1
then aktion
end if
end if

ist aber m.E. unsauber - lieber die Ursache finden (es gibt ja in der IT fast nix, was man nicht erklären könnte :smiley: )

Tilo

so habe das schon eine ganze zeit lang(1 woche ca.) geloggt.
Ist aber alles I.O.

Habe mal ein Bild mit bei getan!

Hallo,

kenn mich ja jetzt S7 in Verbindung mit IPS nicht so genau aus, aber es ließt sich für mich so, wie wenn du die Scripte mit einem auslösendem Ereignis „bei Variablenaktualisierung“ auslöst… warum verwendest du da nicht „Bei Variablenänderung“?

Wie muss ich das anlegen?

if variable =1
then ipssleep = 1000
if variable =1
then aktion
end if
end if

In einem Script oder wie?

ja - das wäre in einem Skript unter zu bringen, aber das ist wirklich keine saubere Lösung.

besser:

Parsey hat freundlicherweise die Funktion noch robuster gemacht. :loveips:

bitte dann mal testen und hier berichten.

p.s. hat der Wechsel von Variablenaktualisierung auf Variablenänderung schon etwas gebracht?

in diesem Sinne

Tilo

Habe es mit der Variablenänderung versucht.

Funktioniert auch aber bei jeder änderung (true/false) wird das skript ausgelöst.

Was ja komisch ist, ist ja das die Variable sich nur aktualisiert, aber nicht den Wert ändert.

Das passiert genau jede Minute, damit du weist, dass das Abfragen der Adresse noch korrekt funktioniert. (Wenn die Zeit >1Minute ist, könnte es sein, dass du zu viele Adresse zu schnell abfragst und sich eine Warteschleife bildet) Sofern Variablen nicht kipeen, also den falschen Status anzeigen, ist die Funktionsweise so gewollt.

Trigger einfach auf Variablenänderung und dann gibt es keinerlei Probleme :slight_smile:

paresy