Ich hab in meiner sps.sub folgendes stehen (neben vielem anderen )
if ( (start == false) and (bedingung) ) then
start = true
machwas = true
endif
if ( (start) and (fehler) ) then
fehler_nr = 13
start = false
endif
(Code gekürzt...)
Dabei sind fehler und bedingung digitale eingänge die über profibus reinkommen und start ist eine globale varibale (config.dat)
Anfangsbedingung: start = true, bedingung = true, fehler = false
Nun wurde fehler = true und es dauerte 1,7 sekunden bis machwas true wurde. (Trat nur einmal auf aber es gibt andere Fehler die auf ähnliche Fehler im sps.sub zurückzuführen sein könnten.)
Nun ist mein sps.sub wie gesagt ziemlich vollgepackt. Zb eine etwas größere Berechnung in einem gebundenen Unterprogramm mit eigenen lokalen Unterprogrammen.
Kann es da sein, dass sowas in der Art auftritt:
fehler wird false, dadurch wird start false, er läuft im oberen if aber nur bis zur Anweisung start = true und "hüpft" dann wieder unten rein (weil fahler noch true ist) und setzt start wieder auf false usw...
Vielleicht dadurch, dass der sps.sub, weil er zulange für den durchlauf braucht mehrfach aufgerufen wurde und quasi Altlasten abarbeitet in einer Form die sich mir nicht erschließt.
Oder könnt ihr euch andere Effekte die ein solches Verhalten bewirken könnten.