Deutsch - Software > easySoft

Remanenz / Neustartverhalten von Timer --> sehr seltsam

(1/4) > >>

Benni:
Hallo Zusammen,

unten habe ich einmal einen kleinen Ausschnitt aus einem Programm angehangen, an dem ich schon fast verzweifelt bin.

Der Knackpunkt sind die beiden Merker 10 und 11, deren Zustand auch nach Spannungsausfall erhalten bleiben.

Soweit die Theorie, praktisch siehts dann so aus:

* M11 = TRUE, Ausschalten/Einschalten oh wunder 11=TRUE :)
* M10 = TRUE, Ausschalten/Einschalten M10=FALSE ???

Der Grund ist M76, der die Selbsthaltung von M10 aufheben kann. Aber wieso ist M76 nach dem Einschalten auf einmal gesetzt?
Diese Frage führt zu T07. T07 ist als remanente Einschaltverzögerung definiert, die die Zeit aus DB01 liest.

Jetzt kommts!!!
Nach einem Kaltstart sieht es nun so aus, das T07 geschaltet ist, obwohl die Zeit noch lange nicht abgelaufen ist (man beachte das beigefügte Bild).
Durch T07 wird dann M76 gesetzt und somit M10 zurückgesetzt.

UFF. darauf musste ich erst einmal kommen.

Ich frage mich natürlich jetzt, wie ich das beheben kann. Da ich T07 auch remanent brauche, will ich den am Anfang natürlich nicht zurücksetzen.

Vor allem da das hier nach einem Bug im Betriebssystem der Easy aussieht und nicht nach einem Denk- oder Programmierfehler. :-\

Da lasse mich aber gerne eines besseren überzeugen.

MFG
Benjamin

Das eigentliche Programm läuft auf MFD-80-B  +  CP8-ME (Softwarestand >05)
Am Schreibtisch hatte ich jetzt nur eine 819-DC-RE (Software 06-xxx) Das Verhalten war aber bei beiden gleich.

ThomasD:
Hallo Benni
die Merker 10,11,76 und der Timer sind remanent geschaltet, d.h. nach einem Neu,-Kaltstart haben sie den gleichen Wert wie vorher.
Du hast die Timer 7-8 und die MB 1-50 remanent, darin ist auch der M 76 enthalten.

Benni:
Hallo ThomasD,

das ist mir schon klar. Das erklärt das Verhalten aber überhaupt nicht.

Also Zustand BEVOR ich ausschalte:
M10 = TRUE
M76 = FALSE
T01 = FALSE, da vielleicht erst eine der 180 Minuten abgelaufen ist

Ausschalten / Einschalten
T01 = TRUE !!! wie schon oben beschrieben passiert das, obwohl die Zeit noch lange nicht abgelaufen ist.

Wenn du dir das Bild oben aniehst, und mit einem vergleichst, wie es normalerweise aussieht, wirst du feststellen, das hier etwas nicht stimmt.


Ich vermute, das die EASY ein Problem damit hat Zeiten aus Datenbausteinen zu übernehmen.
Das Problem könnte daher kommen, das zuerst die Merker und Bausteine überprüft werden und erst dann die Zeiten gelesen werden.

Gedanklicher Ablauf:
M10 ist TRUE damit wird auch T01 geschaltet und da die Zeit in T01 noch 0min beträgt, wird der Ausgang gesetzt.
Erst jetzt werden die 180min aud DB01 in T01 geladen.
Aber jetzt wird T01 nicht zurückgesetzt, sondern behält seinen Status bei....


MFG
Benjamin

fmr:
Hallo Benjamin

Hatte auch schon Probleme mit Timer. Weiss nicht mehr genau was. Die Lösung war jedoch, dass ich den Timer nicht mit DBxx initialisieren konnte, sondern die Zeit mit einer Nu Konstante eingeben musste. Wenn der Timer läuft entstehen Fehler, wenn neu zugewiesen wird. Der Timer weiss nicht welchen Wert er hat.

Zeit direkt im Timer eintragen und nicht während dem Ablauf zuweisen.

Musst es selbst probieren, denn das verstehen der ganzen Schaltung braucht viel Zeit.

Gruss
fmr

Benni:
Aber wieso soll ich eine Konstante verwenden, wenn ich eine Variable haben will?

Daneben sprechen noch mehrere Gründe für die verwendung von DB:

1) Die Werte brauche ich für unterschiedliche Zwecke (Anzeige MFD, mehrere Timer...). Ohne DB müsste ich die Werte jedemal einzeln anpassen. Fehler sind da garantiert.

2) Ich kann  meine Sollwerte sehr schön übersichtlich am Anfang des Projektes ablegen

3) Die Übernahme von Werten aus (remanenten) Merkerbereichen ist sehr schlecht, da ich keinen Startwert vorgeben kann. Wenn ich ein Programm auf die Steuerung lade, müsste ich erst einmal alle Wertebereiche initialisieren. Das gleiche passiert, wenn ich die Steurung zurücksetzte.

4) DB lassen sich sehr gut aus der Visualisierung ansprechen. Wenn ich über das Display Merkerbereiche verändern will, dann muss ich einzeln dokumentieren, welche Bereiche zu welchem Zweck belegt sind. Früher oder später ist dies ein Quell unerschöpflicher Verwirrung und Fehlersuche. Ein Datenbaustein dagegen ist im Schaltplan sichtbar.

MFG
Benjamin

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln