Vergleicher geht nicht richtig

bitotec

Level-1
Beiträge
25
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Ich habe ein kleines Problem

Habe eine Temperatursteuerung programiert aber irgendwie gibts Probleme mit den Vergleichern - Wie auf dem Bild zu sehen ist sind beide Vergleicher angesteuert.

regler.jpg


Wo liegt da mein Denkfehler - Danke an alle im Voraus

MfG Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Oh sorry-

Eigentlich hatte ich am 2. Vergleicher 4 eingestellt - aber da fängt es zum flackern an

reglerflackert.jpg


Die Temp ist für eine Kühlstrecke

Die Temperatur wurde gerade gesenkt - Eigentlich müßte der Merker gesetzt bleiben bis ich die 4 Grad ereicht habe.

Aber es flackert

MfG Thomas
http://file1.npage.de/001856/92/bilder/reglerflackert.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
die Temp-Variable #Merker wird nach jedem Aufruf des FB im besten Fall gelöscht, auf keinen Fall aber gespeichert. Schiebe Merker in den STAT-Bereich deines FBs, dann funktioniert das auch. ...das selbe gilt übrigens für Flankenmerker, die müssen auch im STAT-Bereich stehen (oder als INOUT, mach ich aber nur bei FC)
 
Vielen Dank

Habe die ganze Sache in einen FC geschrieben - Da gehts komischerweise

Wieso macht der FB solche Probleme

Was wäre eine bessere Lösung?

MfG Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
FC: Nimm anstatt #Merker (temp) einen Mx.x.

das ist nicht dein ernst, oder? entschuldige aber: bist du von allen guten geistern verlassen - so einen tipp hab ich ja schon lange nicht mehr gelesen! :evil:

bevor ich in einer funktion, die den anspruch hat, mehrfach aufgerufen werden zu können, global zu adressieren lass ich mir lieber ein bein abhacken!

statt global zu adressieren verwendet man ein INOUT ... und ich denke, dass wird er gemacht haben, denn den tipp gab ich vorhin schon einmal!
 
jo - glaube(hoffe) das ich alles draufgeladen habe

Ich probiers nochmal

sah irgendwie witzig aus am Merker stand bei setzten ne 1 und bei rücksetzten ne 0 aber der Merker war nicht gesetzt*ROFL*

----he Vierlagig----

hättest du da ne idee wie ich es anders lösen könnte da ich gerne jedesmal einen extra instanzdatenbaustein möchte

MfG Thomas
 
Bei uns wurde das bisher immer so gemacht. Aber ich lerne ja gerne dazu. Ich muss aber auch dazu sagen, daß die Regel besteht einen Merker nur einmal zu verwenden. Wenn man sich daran hält, kann doch nichts schief gehen...

INOUT habe ich bisher nie benutzt. Wo liegt der Vorteil?

pass auf:

du schreibst eine funktion, sei es fb oder fc, du übergibst die eingangsvariablen und holst die ausgangsvariablen ab, aber intern ist alles lokal. diese funktion kannst du in eine bibliothek packen und immer wieder ausgraben, wenn du sie mal wieder brauchst ohne darauf achten zu müssen welche globalen variablen darin verwendet wurden - sind ja keine drin.

darüber hinaus kannst du in einem projekt so, die selbe funktion mehrfach mit unterschiedlichen parametern aufrufen ohne die bausteinnummer und die verwendeten globalen variablen anpassen zu müssen.

verstehste?
 
Zurück
Oben