Fehler bei mehrmaligem FB Aufruf

Björn2305

Level-1
Beiträge
13
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Abend!
Ich wäre euch sehr dankbar um eure Hilfe!
Ich habe mir einen FB für eine Jalousie gebastelt der auch bei einmaligem Aufruf funktioniert hat. Jetzt habe ich diesem FB mehmals mit eigenem DB aufgerufen und es funzt nicht mehr. Ich habe das Programm im Anhang. Der Zähler im FB soll bei gleich oder größer 4 zurück gesetzt werden. Dies macht er aber nicht. Habe leider keine Ahnung warum. Wäre dankbar um eure Hilfe.
Den FB habe ich mit Step7 V5.1 SP4 geschrieben und den Rest das Programms mit Step7 V5.4 SP3+HF1 führt das evtl. zu Problemen.
Hardware: VIPA System 200
 

Anhänge

  • Tinnemei.zip
    304 KB · Aufrufe: 15
Guten Abend!
Ich wäre euch sehr dankbar um eure Hilfe!
Ich habe mir einen FB für eine Jalousie gebastelt der auch bei einmaligem Aufruf funktioniert hat. Jetzt habe ich diesem FB mehmals mit eigenem DB aufgerufen und es funzt nicht mehr. Ich habe das Programm im Anhang. Der Zähler im FB soll bei gleich oder größer 4 zurück gesetzt werden. Dies macht er aber nicht. Habe leider keine Ahnung warum. Wäre dankbar um eure Hilfe.
Den FB habe ich mit Step7 V5.1 SP4 geschrieben und den Rest das Programms mit Step7 V5.4 SP3+HF1 führt das evtl. zu Problemen.
Hardware: VIPA System 200

Also verschiedene Versionen für Step7 führen im allgemeinen nicht zu einem Problem.

Schön wäre, wenn du uns erklärst was nicht funktioniert.
Wir können dein Programm gern analysieren, doch es ist einfacher wenn du schreibst was nicht funktioniert.
Denn so schön ist dein Programm nicht, dass ich es gern länger betrachte, es gibt so viel schöneres auf der Welt ;)


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also mal zum FB1.
Hilfsvariablen für Flanken mußt du im Stat definieren, nicht als Temp!
Das halte ich für den ganz heißen Kandidaten!

#hm_f_taster zum Beispiel.

Es kann sein, das man den Counter per IN angeben kann, möglich, das es besser als INOUT sein sollte, aber da ja die fest definierten Counter der SPS genutzt werden kann es durchaus so gehen. Würde ich erst ändern, wenn das mit der Flanke nichts bringt.
Da du eh einen FB nutzt, würde ich im Stat-Bereich einen Counter aus der IEC-Funktion-Library nutzen oder selbst eine Int-Variable hochzählen.
 
Hallo Björn,

ich hab mir mal kurz deinen fb1 angeschaut.

Ich würde mal sagen es liegt an deinen Temporären Variablen.

Startest du nur einen FB, bleiben deine temporären Variablen bis zum nächsten aufruf erhalten.

Sobald du einen weitern FB oder sogar FC startest, werden die Temporären Daten überschrieben (je nach bedarf des nächsten Bausteines an temporären Variablen).

Nutze einfach statische Variablen!

Gruß Holger
 
Ach noch etwas, wozu wandelst du alles in BCD? Kannst doch gleich mit Ganzzahlen arbeiten.

#rück als Temp wird erst beschrieben, nachdem es schon ausgewertet (am Zähler) wird. Das geht nicht, auch #rück muß eine statische Variable sein. Das funktioniert bei nur einem Aufruf nur zufällig, weil keine andere Funktion den temporären Bereich mit nutzt und so die Werte nicht überschrieben werden!
 
Zuletzt bearbeitet:
Zurück
Oben