Realzahl runterzählen

Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, OK. Jetzt habe ich nicht richtig hingeschaut.

Nun wurde am Programm alles umgedreht auf negative Logik. So, damit man nicht mehr auf den ersten oder zweiten Blick die Logik versteht. Von den beiden Flankenauswertungen wird nun meistens nur noch eine durchlaufen. Manchmal aber doch beide. Das Genie beherrscht nun sogar das bedingte Ausführen von Flankenerkennungen. Also mir ist das einfach zu undurchsichtig. Da muß man zu lange drüber nachdenken.

@Chris48
Du tust Dir keinen Gefallen, wenn Du das Programm beim Testen solange überall negierst und umstellst, bis es scheinbar tut was Du wolltest. Du hast es nur unübersichtlicher gemacht. Und trotzdem noch nicht verstanden, warum der erste übersichtliche Entwurf nicht funktioniert hat.

Kannst Du auf Anhieb erklären, was Dein Programm macht (und ob es das immer macht), wenn Pumpenleistung_Vorgabe == Pumpenleistung_Aktual ist? Wenn kein Grund zum Eingreifen besteht?

wobei ich immer noch meine dass dass mit dem Taktmerker und der gleichen Flankenauswertung kein Problem sein dürfte, ich habe es mir nämlich so gedacht, dass ich am Anfang des jeweiligen Netzwerkes, jeweils den gleichen Takt "anstehen" und diesen dann abhängig vom Ergebnis des Vergleichs auf den Zähler "durchschalte", wo lag hier mein denkfehler, dass die Sprünge nicht so funktioniert haben wie ich es vorhatte.
Das lag daran, daß Du eben nicht wie gedacht am Anfang der Netzwerke den gleichen Takt anstehen hattest. Du hattest zwei Variablen "Fest_Flanke_Durchfluss" und M255.5, die sich beide anders verhalten als Du gedacht hast.

Harald
 
Hallo,

ich will ja nicht nochmal meinen Post4 wiederholen, aber warum nutzt Ihr nicht einfach einen fertigen PID? Oder programmiert wenigstens einen diskreten PI-Algorithmus? Das ist nur eine kurze Formel in AWL + Antiwindup.

Dieses Vergleichen find ich persönlich nicht so toll... Machen kann man natürlich alles mögliche, aber warum für ne Regelung nicht einfach nen fertigen PI-regler nehmen und gut?

Gruß.
 
ja aber wenn aktual = Vorgabe, dann is ja nie einer von den Vergleichen erfüllt, dann wird ja das rauf oder runterzählen eh übersprungen, wass soll da schiefgehen???
und ja ich kann mein code erklären
ich überprüfe im jeweiligen vergleich ob der Vergleich erfüllt is oder nicht und gleichzeitig ob ein Überlauf besteht oder nicht, abhängig davon wird die zählerei übersprungen oder eben nicht!
im zählteil wird überprüft ob es eine steigende Flanke gibt, wenn ja zählen, wenn nein überspringen des Zählteils.
das passt doch so alles?
@PN/DP
aber mein taktmerker kann doch in der ersten Variante nicht beeinflussen ob der Vergleich einen Sprung auslöst oder nicht...
@ ducati
weil meine cpu, bzw. meine soft sps (bin noch Schüler...) die ich verwende, den SFB 41 nicht hat und dass mit dem einfügen eines fb41 den ich mir hier ausm forum gedownloaded hat nicht ging... i-wann hab ich dann selbst angefangen, weils bei der hypothetischen Anwendung ja eh nicht auf die geschwindigkeit ankam...
 
@chris, es geht doch auch gerade bei dir um die Grundlagen, und da sollte es doch schon gleich richtig gemacht werden.
Bei den Einwürfen von den "Gurus" heißt es genau lesen und Ratschläge befolgen, von deinem Programmcode hast du aber Recht,
war mein Bock nicht der von PN/DP.

P.S. Genau diese Dinge sind es die es ausmachen ( wechselt ein Taktmerker während des Zykluses seinen Zustand )

gruß Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
weil meine cpu, bzw. meine soft sps (bin noch Schüler...) die ich verwende, den SFB 41 nicht hat und dass mit dem einfügen eines fb41 den ich mir hier ausm forum gedownloaded hat nicht ging... i-wann hab ich dann selbst angefangen, weils bei der hypothetischen Anwendung ja eh nicht auf die geschwindigkeit ankam...

Ok, dann würde ich trotzdem nen richtigen PI-Regler programmieren, siehe link aus Post4 zu dem Buch. Gerade weil Du Schüler bist, solltest Du es gleich richtig lernen :) DAs mit dem Vergleichen ist gefrickel, und wenn Du es in die Praxis umsetzt wirst Du erkennen, das es nicht besonders gut läuft, da Du nur schaust ob Istwert zu groß oder zu klein, aber die regelabweichung nicht mit in die Formel eingeht, was die Regelgüte entscheidend verbessert.

Trotzdem respekt, dass Du Dich als Schüler mit dem Thema befasst, und natürlich bekommst Du hier auch die nötige Unterstützung.

Gruß.
 
ja aber wenn aktual = Vorgabe, dann is ja nie einer von den Vergleichen erfüllt, dann wird ja das rauf oder runterzählen eh übersprungen, wass soll da schiefgehen???
Beachte: Deine Sprünge sind jetzt alle umgedreht (negative Logik). Wenn aktual = Vorgabe dann wird NICHT gesprungen und BEIDE Flankenerkennungen werden ausgeführt, wobei der zweite FP nicht funktionieren kann, weil der erste FP den Zustand des M255.5 in den Flankenhilfsmerker SPEICHERT. Dein "Fest_allgemein_Betriebsd".FU_Pumpe würde bei einer steigenden Flanke des Taktmerkers erhöht werden ("hochgezählt").

aber mein taktmerker kann doch in der ersten Variante nicht beeinflussen ob der Vergleich einen Sprung auslöst oder nicht...
Oh doch! In der ersten Variante hätte eine funktionierende Flankenerkennung dafür gesorgt, daß die Ergebnisse der Vergleiche überhaupt nur bei einer steigenden Flanke des Taktmerkers beachtet werden. Dazu muß man aber die Operation FP und das Verhalten der Taktmerker genau kennen. Es hätte einfach nur beachtet werden müssen, daß FP nicht zweimal mit dem selben Hilfsmerker ausgeführt werden darf und daß der Taktmerker nur einmal abgefragt werden darf.

und dass mit dem einfügen eines fb41 den ich mir hier ausm forum gedownloaded hat nicht ging
Die Regelbausteine wie FB41 sind in der Step7-Standardbibliothek enthalten und können leicht in eigene Programme eingefügt werden:
Im KOP/AWL/FUP-Editor Einfügen > Programmelemente (Ctrl-G)
dann Bibliotheken > Standard Library > PID Control Blocks > FB 41 CONT_C

Ausführliche Bausteinbeschreibungen erhält man, wenn man einen Baustein markiert und dann F1 drückt, oder im Handbuch "System- und Standardfunktionen für S7-300/400".

Harald
 
Zurück
Oben