easy-forum
Deutsch - Software => easySoft => Thema gestartet von: Epoxy am März 06, 2009, 15:17:29 Nachmittag
-
Ich möchte einen PW-Baustein einsetzen.
Von einem PID-Baustein erhalte ich die Stellgröße SV für den PW-Baustein.
Beim PW-Baustein setze ich eine Abtastzeit TC=1 (100 ms) ein,
um ein Analogsignal zu messen.
Wenn ich jetzt beim PW-Baustein eine Periodendauer PD = 30000 (30 Sekunden) eingebe, heisst das eigentlich, daß der PW-Baustein seine Stellgröße nur einmal innerhalb der Periodendauer zur Auswertung übergibt ?
oder
übergibt er Ihn alle 100ms, was den PW-Baustein dann veranlasst auch eine neuen Beginn der Periodendauer machen zu lassen, und dabei den vom PID-Regler neu für SV übergebenen Wert zu verarbeiten ?
Grüße Epoxy
-
Hallo Epoxy,
wirfst du da nicht etwas durcheinander?
Kann in der Hilfe beim PW-Baustein nirgens eine Abtastzeit TC finden.
Gruss
Jürgen
-
Hi Epoxi
Eine Abtastzeit gibt es beim PID-Regler. Du hast den PW-Baustein in Verbindung mit dem PID-Regler im Einsatz. Meinst Du die Abtastzeit im PID-Regler?
-
Beim PW-Baustein setze ich eine Abtastzeit TC=1 (100 ms) ein,
um ein Analogsignal zu messen.
Tschuldigung, habe mich verschrieben .Am PID-Baustein setze ich eine Abtastzeit TC=1=100ms ein.
Kann ... beim PW-Baustein nirgens eine Abtastzeit TC finden.
Schon klar ! (Schreibfehler s.o.)
Mir geht es darum:
Der PID-Regler wertet ständig (ich schätze ca. 1 mal pro Abtastzeit TC) die Einganssignale aus. Dafür berechnet er aus P und I und D-Anteil die Stellgröße für den Ausgang QV des PID-Bausteins.
Das Ausgangssignal QV vom PID-Baustein nehme ich als Eingang SV beim PW-Baustein.
Soweit klar !
Jetzt muss ich aber wissen, ob mein PW-Baustein die ständig eingehenden Signale nur 1 mal am Beginn der im PW-Baustein definierten PD Periodendauer berücksichtigt
oder
ob sobald ein neues Signal, ich nenne es mal QV2 vom PID-Regler kommt (nach Ablauf des 2. Abtastzeitraums) auch der PW-Baustein schon wieder bereit ist, um den neuen Eingangswert SV2 zu verarbeiten, also einen neuen Impuls im berechneten Tastverhältnis am Ausgang bereitzustellen. (Wobei die Mindesteinschaltdauer ME vom PW beachtet wurde, aber die gesamte PD noch nicht abggelaufen war.)
Sozusagen:
Darf der PID-Regler den PW ständig "nachbessern"
oder erlaubt der PW die Nachbesserung erst nach Ablauf von genau einer Periodendauer (plus einer Mindestauschaltdauer).
Ich Frage deshalb, weil ich ca. 10 mal pro Sekunde das Analogsignal auswerten (kann), aber ich nur ca. alle 2 bis 4 Sekunden einen neuen Regelvorgang auslösen soll.
In den 2-4 Sekunden kann sich aber schon viel am Analogeingang getan haben, so daß ich zwischendrin lieber meinen neu vom PID Regler berechneten Wert nehmen würde. (Quasi vorzeitiger Abbruch des Regelvorgangs weil erkannt wurde, daß zulässiger Sollwert I1 des Analogeingangs bereits überschritten wurde)
Um den vollen erwarteten Wertebereich auszuregeln, würde ca. eine Gesamtimpulslänge am Ausgang des PW-Bausteins von 30000 ms (30 Sekunden) gebraucht.
Aber in 30 Sekunden kann schon sehr sehr viel passieren. Bis zum Ende einer so langen Periodendauer sind meine Analogmesswerte vermutlich schon längst nicht mehr Aktuell.
Weil ich Relais am Ausgang Q1 ansteuern muß (819 DC-RC), will ich diese aber nicht unnötig oft schalten lassen. Ich dachte so maximal an einmal in ca. 2 Sekunden mit maximaler PD von 2 Sekunden (incl. ME bzw.MA).
(Pro Sekunde ergibt sich also eine theoretisch mögliche Regelabweichung von 1/30 = 3,33 %, falls sofort nach Übergabe PID ----> PW der PID eine total andere Stellgröße ausgerechnet haben sollte.
Bei 2 Sekunden also schon ein maximaler theoretischer Fehler von 6,66 %, in der Praxis erwarte ich deutlich kleinere Fehler, da der PID eigentlich "richtig" vorausberechnet hat.
Aber Störungen von außen können immer kommen, können aber wegen der am Relais angekoppelten mechanischen Stellglieder nur begrenzt ausgeregelt werden (mit 3,33 % des Sollwertes pro Sekunde ! Wäre aber o.k., weil es mir nur um Ausregelung der üblichen Fehler < 6,66 % ankommt, aber dafür hier möglichst schnell)
Zurück zum PW01-Baustein:
Bleibt der Zustand 1 (=ON) am Ausgang Q01 eigentlich dauernd erhalten (d.h. ohne eine Mindestauschaltdauer=Mindesteinschaltdauer einzufügen) , wenn SV den max. zulässigen Eingangswertebereich -4096 bzw. +4095 hat? Oder wie vermeide ich den Kontaktabfall sonst ?
(Meine Idee dazu wäre, eventuell Schaltkontakt LI vom PID-Baustein unter Umgehung des PW -Bausteins (für die Dauer LI-Zustand =1) zu benutzen. Müsste dann aber vom LI-Kontakt parallel zum PW-Baustein direkt auf den Ausgang Q01 gehen. Bin mir aber nicht sicher, ob das so erlaubt wäre. Ist so eine Art Volllastumgehung des PW-Bausteins, damit Q01 bei Wertüberschreitung des Ausganges QV beim PID immer den Zustand ON (ohne Schaltpause MA beibehält).
Durch Wahl des Proportionalfaktors KP beim PID kann ich ja leicht Ausgangswerte QV am PID erzeugen, die schnell zum Maximum 4095 der Stellgröße QV führen.
Kann ich am Ausgang QV durch Definition als MD-Merkerdoppelwort auch größere Werte als 4095 erhalten ? Ich vermute - nein, aber was passiert, außer das der Bit Kontakt Ausgang des PID-Bausteins für LI den Wert 1 annimmt, mit dem Wert an QV ?
Meine Frage richtet sich eher an die Praktiker, die den PID und den PW schon benutzt haben, weil die Fragen, die ich hier formuliert habe beantwortet auch die Easy-Soft-Hilfe leider nicht genauer als ich hier gemutmaßt habe.
Danke und schöne Grüße
Epoxy
-
Hallo Epoxy,
puh, ganz schön viel was du da auf einmal wissen willst.
Habe zwar noch keine direkte Anwendung mit dem PW-Baustein gemacht, habe aber auf Grund deiner Frage und weil ich es wissen wollte mal einen Versuchsaufbau gemacht. Den PID-Regler hab ich ganz aussen vorgelassen.
Habe eine 821 DC-TC Versionsstand 4 benutzt, 10V Spannungsquelle mit Poti.
Poti auf Analogwert 1 geklemmt mit AR-Baustein Eingang x 4, mit I12 PW-Baustein ein oder ausgeschaltet, PD auf 30000.
Also folgende Erkenntnis:
Poti 5V gestellt, mit I12 Ein schaltet Q1 sofort für 15 Sek Ein, dann 15 Sek. Pause. Während der 15 Sek. Ein Poti auf fast min. reduziert, voller Takt läuft ab (15Sek-Ein/15Sek-Aus) danach Q1 ca. 1 Sek. Ein, 29 Sek Aus.
AR-Baustein geändert mit Faktor 8, damit ich >4096 erreiche.
SV-Wert auf ca 2048 gestellt, mit I12 wieder gestartet. Reaktion, gleiche wie vor beschrieben. Während der Pausenphase Poti voll aufgedreht (SV >4096), Q1 schaltet sofort Ein und bleibt auch solange Ein wie SV > 4096.
Nach 35 Sek nach Q1 Ein Poti wieder Null gedreht, Q1 schaltete nach ereichen von 60 Sek. ab.
Ich häng dir mal noch das Versuchprogramm an, damit du auch nachvollziehen kannst vorher die Zeiten kommen.
Gruss
Jürgen
-
Hallo Jürgen
Geht aber nur in der Hardware. Ich denke der PW-Baustein ist nicht simulationsfähig. Oder?
Gruss
Hermann
-
Hallo Hermann,
deshalb habe ich ja einen Hardware-Versuchsaufbau gemacht und mit dem anhängenden Programm getestet.
Gruss
Jürgen
-
Danke Jürgen, Du bist wirklich sehr sehr hilfsbereit.
Hätte niemals gedacht, daß sich jemand zu einem Harwaretest aufrafft.
zum Programm:
Habe ich mir angesehen:
Im PW stehen bei den Operanden keine Wertre drin. Kannst Du diese evtl. mal hier reinschreiben.
Bei den Zeitgliedern, steht bei mir drin I1 NU-Konstante 999.000 , das wären nach meiner Berechnung 999 Sekunden = 16,65 Minuten, außerdem Betriebsart Ansprechverzögert.
Insofern verstehe ich den Sinn dieser Zeitglieder nicht.
Aber zu deinen o.g. Versuchsergebnissen sehe ich mich in meinen Annahmen bestätigt.
1. Innnerhalb der PD Periodendauerlaufzeit hat ein neues Eingangssignal keine Auswirkung, erst für die darauffolgende Periodedauer wird der neue Wert SV berücksichtigt.
2. Bei Überschreitung des Wertebereiches SV über 4096 hinaus, bleibt der Ausgung Q1 auf ON.
Während der Pausenphase Poti voll aufgedreht (SV >4096), Q1 schaltet sofort Ein und bleibt auch solange Ein wie SV > 4096.
Nach 35 Sek nach Q1 Ein Poti wieder Null gedreht, Q1 schaltete nach ereichen von 60 Sek. ab.
Was meinst du hier mit Pausenphase, hast Du eine ME definiert? Und wieso schaltet Q1 erst nach 60 sekunden wieder ab. Ich dachte PD +ME = 30 Sekunden.
Ich hätte erwartet das Q1 nach 25 Sekunden (Quasi Restzeit, bis zum Beginn der folgenden Periode) wieder den Zustand Null annimmt.
Ich bin echt riesig erfreut, daß Du und noch einige andere sich immer so zeitnah an der Lösung von solchen "Randproblemen" beteiligen.
Aber für die praktische Anwendung ist es sicher auch für andere gut, um die Funktionsweise der Easy zu wissen. (Vorausgesetzt Sie verstehen, was ich geschrieben habe - Du Jürgen verstehst, und hast dazu ja auch den passenden Avatar gewählt !!!)
:) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :)
Schöne Grüße
Epoxy
-
Hallo Epoxy,
sorry, so ist das wenn man an 2 Rechnern arbeitet, Werte von PW jetzt eingetragen. Die Zeiten habe ich nur eingetragen damit ich in etwa sehe wann sich was tut. Bin aber gerade dabei weitere Feststellungen zu machen, die ich dir ebenfalls mitteile und verstehe jetzt warum der Baustein so kurz beschrieben ist, weil wahrscheinlich eine ausführliche Beschreibung niemand verstehen würde und ob alle Reaktionen so im Detail bekannt sind möchte ich auch bezweifeln.
Gruss
Jürgen
-
Hallo Epoxy,
hier die weiteren Ergebnisse, warum es so ist keine Ahnung.
Screen 0, Potiwert 5V von DB1 bis 4
Screen 1, Potiwert 2,5V-DB1, danach auf 5V gewartet bis DB2, danach auf 7,5V gewartet bis DB3, danach max. gewartet bis DB4
Screen 2 umgekehrte Reihenfolge von max. bis 2,5V.
Falls du ev. weitere Versuche brauchst, die ich mit dem Aufbau durchführen kann und nicht allzu Zeitintensiv sind, kein Problem.
Gruss
Jürgen
Habe mir gerade überlegt ob mit Flankenmerkern zu Q1 und weiteren DB als SV-Vorgabe nicht eine Art Testprogramm möglich ist. Mach dir mal Gedanken dazu. Wenn du ein solches Programm erstellst kann ich dies gerne ablaufen lassen und das Ergebnis dir zur Verfügung stellen.
-
Hallo Epoxy,
zu deiner 2. Frage hab ich mal ein Testprogramm gemacht, Ergebnis siehe Anhang.
Gruss
Jürgen
-
hier noch screen 26, hat er wohl rausgeworfen.
-
Screen 1, Potiwert 2,5V-DB1, danach auf 5V gewartet bis DB2, danach auf 7,5V gewartet bis DB3, danach max. gewartet bis DB4
Screen 2 umgekehrte Reihenfolge von max. bis 2,5V.
Hallo Jürgen, danke für Deine weiteen Versuche.
Ich habe mir Versuch 3 angesehen, und die von Dir geposteten Screenshots zu den Ergebnissen.
Kannst Du Dir/mir erklären, wie die Ergebnisse zu T02 zustandekommen ?
Ich bin davon ausgegangen, daß ein QV= 3976 (~ 3976/4095 bzw. 97,1 % ) am Eingang des PW-Bausteins bei einer PD = 30000 einen Ausgangswert am PW-Baustein (hier gemessen vom Zeitbaustein T02) auch einen Wert von 97,1 % also 29 s 128 ms erzielt, tatsächlich stehen in T02 8s 325
das gleiche für den Screenshot 00002
QV 1012 ~ 24,7 % von 4095) ergibt T02 = 1s 285, ich hätte erwartet , das T02 jetzt bei PD 30000 einen Wert von 7 s 414 hätte.
Ist meinen Annahme falsch, oder welche Erklärung hättest Du ?
---------------------------
Dein Testprogramm zur 2. Frage habe ich noch nicht so richtig verstanden.
Kannst Du mal kurz die Quintessenz aus den Versuchsergebnissen in Worte fassen ?
Was zeigt uns dieser Versuch nach Deiner Interpretation ?
Danke, und schöne Grüße
Epoxy
-
Hallo Epoxy,
vergiss T2, die screenshot wurden zu einem Zeitpunkt x gemacht und da war halt der Ausgang Q2 gerademal 8 und einpaar Sek. aktiv.
Bei Testprogramm zu Frage 2 habe ich versucht nachzubilden was ich am Vortag mit Poti gemacht habe.
Mit T32 resete ich erst einmal alles und verzögere den Start.
Ist T32 abgelaufen starte ich T1, PW und gebe Sollwert 1 (2040) vor. Mit pos. Flanke PWQ schiebe ich Zeitwert T1 in DB1. Wird DB1 neg. schiebe ich Zeitwert T1 wieder in DB2 und starte gleichzeitig T20 mit Verzögerung von 5 Sek. Mit T20 gebe ich dann SW2 (5000) vor. Jetzt wird PWQ sofort wieder 1 was ich in DB3 speichere. Mit PWQ=1 starte ich T21 und schaltet mit diesem nach 35 Sek DB21 was mit dann Sollwert 3 (2040) wieder am PW vorgibt. Wird PWQ=0 schreibe ich Zeitwert T1 in DB4, wird PWQ=1 schreibe ich Zeitwert t1 in DB5.
Dies entspricht in etwa meiner Beschreibung mit dem Wert > 4096 am PW in meinem ersten Beitrag, jetz aber definiert und mit gespeicherten Zeitwerten von PWQ.
Gruss
Jürgen
-
Hallo Jürgen, vielen Dank für die Erläuterung zu dem Testprogramm.
Den Letzten Stand der Meßzeiten gibt ja Screenshot 00027.jpg wieder.
Habe mir die in DB-Bausteinen gespeicheten Zeiten angesehen.
Demnach ist es wohl so, daß maximal einmal pro Periodendauer PD vom PW-Baustein ein Ausgangssignal geschickt wird, was dem Tastverhältnis SV/PD entspricht, und in diesem Verhältnis den 1. Teil der gerade aktuellen PD den Ausgang auf den Zustand 1 setzt.
Danke erstmal, ich schaue mal, wie ich das jetzt löse, daß ich permanent neuere Daten vom Analogeingang bekomme, aber die aktuelle Regelungsphase (Periodendauer) keine Nachregelung zulässt.
Werde wohl mich nur im Kernbereich auf die Regelung stützen (Periodendauer im PW entsprechend verkürzen), und die unwahrscheinlicheren Randbereiche mit übersteuertem SV (> 4095) am PW-Regler abfahren, und somit den Ausgang am PW auf dauernd 1 setzen.
Damit habe ich die maximale mögliche Regelgeschwindigkeit ausserhalb des Kernbereiches und maximale Stellgenauigkeit innerhalb der Periodendauer bei genau einem Schaltvorgang pro Periodendauer (12 Sekunden)
Wieviele Schaltungen,
Schaltstrom der Relais 22mA (bei 24 V=),
wird der Relaisausgang einer 800er Easy wohl durchhalten ?
Pro Tag (24h) wären es maximal 7200 ON/OFF-Wechsel bzw. 2,63 Mio pro Jahr. Ich wollte nicht jedes Jahr eine Easy zerrütteln. Naja, die Nächste wird dann wohl eine mit Transistorausgang. Und als Schalter ein Halbleiterrelais.
Dazu könnte ich noch eine Aussage gebrauchen, ob der PW-Baustein bei SV Werten über 4095 trotz ME=100 (ms) ständig den Zustand 1 behält.
Als PD würde ich 12000 (ms) nehmen.
Schöne Grüße
Epoxy
-
Hallo Epoxy,
schreib mir ein Testprogramm, oder ändere meines ab, ich lass es durchlaufen und mach dir wieder einen screenshot.
Gruss
Jürgen
Oder probier es doch mit dem Testprogramm an deine Easy. ;D
-
Hallo Epoxy,
zu deiner 2. Frage hab ich mal ein Testprogramm gemacht, Ergebnis siehe Anhang.
Hallo Jürgen, jetzt hatte ich endlich Zeit, mich nochmal mit Deinem Testprogramm zu befassen (und es nun auch im Detail zu verstehen).
Um so erstaunlichewr finde ich deine Versuchsergebnisse, die Du mit Screen 00027 wunderbar dokumentiert hast.
Der Ausgang des PW produziert dabei Ergebnisse, die sehr erstaunlich sind.
So erwartet hätte ich sie keinesfalls, und das OFF -Signal (gespeichert in DB04) zum Ende der Verarbeitung des 2. Eingangssignales (SV=5000) kann ich mir bisher absolut nicht erklären.
Genauso die Zeitdauer bis zur Verarbeitung des 3. Eingangssignales.
Alle Zeiten nach der OFF-Flanke des 1. Impuls sind viel zu lange nach hinten verschoben. Am Ende des 1. OFF-Signals (DB02) hätte ich auch noch eine längere Pause erwartet, und zwar PD=(30000- Restzeit der PD), wobei Restzeit der PD hier (2055/4095)*PD, also 15055 sein sollten, stattdessen triggert der PW sofort nach, sobald das neue Signal ansteht (DB03). Das ON Signal des 2. Impulses dauert dafür viel zu lange.
Hat jemand eine Erklärung ?
Im Anhang mal ein Zeitdiagramm, damit man auf Anhieb sieht, wo die Zeitverschiebung auftritt. (Ab DB04)
Viele Grüße
Epoxy
Als Anhang habe ich noch das PW6-Testprogramm von Jürgen mit erläuterndem Text versehen. Hilft vielleicht manchem zum besseren Verständnis. An der Funktion habe ich hier keine Änderungen gemacht.
Achtung Update: Im vorstehenden Text habe ich am 11.03.2009 um 22:00 Ergänzungen gemacht.
-
Habe selbst jetzt eine Erklärung gefunden, wie der PW arbeitet:
DB04 (69915) ist auf folgende Weise zustande gekommen:
1. Impuls aus DB20: 14955
+ Zeit nach 1. OFF (T20): 5000
+ Vorgabewert für 2. Impuls (DB21 erzeugt volle PD): 30000
+ Leerlaufzeit bis zum 3. Impuls (T21 - Zeit aus DB21): 5000
+ 3. Impulsvorgabewert (aus DB22): 14955
In Summe macht das 69910
(5ms sind wohl als Zykluszeit irgendwo auf der Strecke geblieben)
Dieser 3. Impuls ist bis zum DB04 eigentlich noch gar nicht dran !!!
Also hat der PW bereits einen Ausschaltimpuls unterdrückt, und blieb im Zustand ON, was auch in der Doku so beschrieben wurde.
Der kommende 3. Impuls wurde dann wieder normal verarbeitet.
Insofern ist meine Skizze oben dahingehend zu berichtigen, das DB04 und DB05 um einen Schritt weiter nach rechts rücken müssen ( DB05 auf nicht ermittelt).
Innerhalb der ersten 85 Sekunden wurden 60 Sekunden als ON Zeit vorgegeben, aber tatsächlich 80 Sekunden vom PW ausgeführt !
Das sollte man wissen, wenn man PW-Bausteine einsetzt.
Es wird eine Nachtriggerung am Eingang zugelassen, obwohl die PD noch nicht um ist. Das finde ich aktzebtabel.
Aber was nicht gut ist:
Das vorgegeben Taktverhältnis über den gesamten Zeitraum stimmt aber nicht. Jeder der PID-Regler einsetzt wundert sich, das die Regler übersteuern - das liegt offensichtlich am PW-Baustein, der innerhalb der PD nachtriggert, dabei aber insgesmt zu hohe Taktzeiten auswirft.
Update:
Um diese Aussage zu festigen würde ich evtl. Jürgen bitten, ggf. noch mal einen 4. Impuls zu messen. Interessant sind DB05 bis DB08 und PW01 nach Ablauf von ca. 3 Minuten per Screenshot
Programm habe ich gerade hochgeladen 12.03.2009 00:27
Interessanter wäre es jedoch, wie ich verhindern kann, daß der PW über einen beliebigen Zeitraum X betrachtet zu hohe Taktzeiten anwendet.
Meine Idee: PID-Signale nur eine Zykluszeit vor Beginn einer PD ausgeben, und das auch nur genau 1 mal, damit der PW nicht nachtriggert.
Jemand eine Idee, wie ich das programmieren könnte ?
Mit Zeitrelais über 2 Merker hinter den Ausgang des PID setzen, Zeitrelais getriggert vom Ausgang des PW (ansteigende Flanke), ansprechverzögert um (PD minus voraussichtliche Zykluszeit).
Wie kriege ich die voraussichtliche Zykluszeit in Erfahrung gebracht ?
Ziemlich komplex das Problem - was?
Aber leider ziemlich bedeutsam in seinen Folgen. Wenn ich 60 Sekunden lange Befehle erwarte, aber 80 Sekunden lang welche geliefert bekomme!
Nächtliche Grüße
Epoxy
-
Hallo Epoxy,
musste Vergleicher noch anpassen, weil hatte mich gewundert das bei Zählerstand 15 immer noch keine Werte in DB8 abgespeichert wurden. Ansonsten habe ich mich nicht weiter mir beschäftigt, weil komme gerade aus der Nachtschicht und bin jetzt nur noch müde. Rest siehe Anhang.
Gruss
Jürgen
-
Danke Jürgen, daß du Dir noch die Zeit genommen hattest den Test mit dem 4. Impuls zu machen.
Ich habe mir die Ergebnisse angesehen und grafisch ins Zeitdiagramm (siehe Anhang)übernommen:
Der 4. Impuls wurde mit SV 3276 vorgegeben, und hätte bei PD 30000 somt genau 24000 ms dauern müssen.
Der PW hat bis auf -5ms die PD exakt eingehalten (DB08 minus DB06), aber den SV-Wert 3276 aus DB23 vorgegeben hat er nicht umgesetzt, stattdessen hat er einen Impuls von 15050ms (DB01-DB06) verarbeitet. Diese Impulsdauer ist aber nirgends angegeben.
Woher hat er diese also?
Ich rechne nochmal die Gesamteinschaltdauer aller ON Zyklen zusammen:
Vorgabe/tatsächlich gemessen
1. Impuls 14945/14955
2. Impuls 30000/65005
3. Impuls 14945/ steckt bereits im 2. Impuls mit drin.
4. Impuls 24000/15050
Gesamt 83890/95010
Der PW-Baustein hat auch nach dem 4. Impuls immer noch eine zu große Gesamtimpulslänge von 11120ms (=95010-83890)
Das sind jetzt zwar "nur" noch 11,1 Sekunden zuviel (zur Erinnerung nach dem 3. Impuls waren es noch 20 Sekunden). Aber wat too viel is, is too viel !!!
Wieso der PW im 4. Impuls aus vorgegeben 24 Sekunden etwas mehr als 15 Sekunden macht, bleibt weiter rätselhaft. Bei 14945 ms hätte ich vielleicht noch aktzeptiert, dass aus den vorangegangenen 3 Ereignissen immer noch ein "Zeitüberhang" besteht, und er deshalb noch keine "neuen" Werte verarbeiten mag - hat aber offensichtlich einen anderen Grund, den ich bis jetzt aber noch nicht erkennen konnte.
Auf gut Deutsch, der PW-Baustein ist ein Sensibelchen, dass nur dann macht was er soll, wenn es "ihm" in den Kram passt:
Einmal pro PD - wer öfter Eingangssignale sendet kriegt ziemlichen Schrott am Ausgang des PW geliefert.
Die Frage wäre noch, ob das auch so dramatisch die Gesamtpulszeit anhebt, wenn man immer nur SV-Werte kleiner als 50 % des zulässigen Wertebereiches sendet. (SV<2048)
Sollen wir das noch testen, alle SV < 2048 mit Nachtriggerung innerhalb der PD, oder achtet jeder ab sofort darauf, das nur ein Wert für SV am Eingang des PW anliegt (in der Hoffnung, daß er wenigstens dann wie erwartet arbeitet).
Jürgen, bis Du wieder munter bist, hab ich vielleicht auch diesen Test programmiert. (Was war eigentlich in den Vergleichern zu ändern ? Und wieso ist aus DB07 jetzt DB01 geworden ?) Bis in Kürze.
Grüße Epoxy
Update: Testprogramm mit 4 Impulsen, alle SV< 2048
-
Hallo Epoxy,
bin wieder munter muss aber bis spätestens 20 Uhr wieder los. Aber die Zeit nehme ich mir zu testen, ohne allerdings nachzuvollziehen was.
Bei Test 8 war Vergleicher 8 als < programmiert und ein Vorgabewert I2 fehlte. Warum DB7 jetzt DB1, keine Ahnung, schau dir mal dein Programm an, ist dort so. Was ich schon hatte mit Easy-Soft 6.30 das plötzlich nach erneutem Programmaufruf in einem Baustein (immer Baustein1), egal ob Zeitglied, DB usw. keine Werte mehr enthalten waren. Könnte also wieder mal ein Softwareproblemchen sein.
Also jetzt teste ich.
Gruss
Jürgen
Testergebnis jetzt im Anhang
-
Hallo Epoxy,
bin wieder munter muss aber bis spätestens 20 Uhr wieder los. Aber die Zeit nehme ich mir zu testen, ohne allerdings nachzuvollziehen was.
Bei Test 8 war Vergleicher 8 als < programmiert und ein Vorgabewert I2 fehlte.
Naja, war vielleicht selbst für mich schon spät am Abend, tut mir leid, daß Du erst den Fehler suchen musstest.
Warum DB7 jetzt DB1, keine Ahnung, schau dir mal dein Programm an, ist dort so. Was ich schon hatte mit Easy-Soft 6.30 das plötzlich nach erneutem Programmaufruf in einem Baustein (immer Baustein1), egal ob Zeitglied, DB usw. keine Werte mehr enthalten waren. Könnte also wieder mal ein Softwareproblemchen sein.
Ja, ich glaube auch, das es ein Softwareproblem sein könnte. Ich habe Easy-Soft 6.20 Build 3211, die hat auch Macken ---kleines y kann man nicht in Kommentare schreiben. Und die Easy-Soft-Hilfe ist bei den Analogeingängen falsch ---> entsprechenden Thread.
Testergebnis jetzt im Anhang
Vielen Dank, leider fehlt mir noch DB04. Der ist im ersten Screenshot nicht lesbar. Solange ich den nicht habe, bleibt es spannend, welche "Rechenkünste" der PW an den Tag legt. Brauchst nur den Ausgangswert von DB04 hier ins Forum schreiben. Screenshot wäre nicht notwendig.
Bis dann.
Epoxy
-
Hallo Epoxy,
42005
Gruss
Jürgen
-
Auswertung des PW-Baustein Test mit SV Werten < 2048:
Der 2. Impuls erfolgte, bevor die erste PD abgelaufen war. Diese Nachtriggerung erfolgte 5 Sekunden nach Ablauf des 1. ON-Taktes.
Der 3. Impuls erfolgte 35 Sekunden nach Beginn des 2. Impulses. (PD 30000 ms).
Der 4. Impuls erfolgte 30005 ms nach Beginn des 3. Impules.
Beim 3. und 4. Impuls erfolgte also keine zu frühe Impulswertvorgabe, nur der 2. Impuls kam vor Ablauf der 1. Periodendauer. (11 Sekunden vor Ender der 1. PD)
Der PW-Baustein ist offensichtlich nicht in der Lage, richtige Taktverhältnisse zu bilden, falls ein neues Eingangssignal vor Ablauf der PD geliefert wird, wobei noch unklar ist, wie lange der Fehler weiter "mitgeschleppt" wird.
Hier mal die Testergebnisse. (PD 30000)
Vorgabewert/ausgeführter Wert (in ms)
1. Impuls SV 1911: 14000/13995 ist o.k.
2. Impuls SV 1638: 12000/11995 ist o.k.
3. Impuls SV 2047: 14996/11995 ist nicht o.k.
4. Impuls SV 1365: 10000/11960 ist nicht o.k.
Summe(1 bis 4): 50996/49945
Warum der PW-Baustein diesmal rund 1 Sekunde (1051 ms) weniger "abarbeitet" als die Vorgabewerte waren, vermag ich derzeit nicht zu deuten. In den beiden vorangegangen Versuchen hat er ja 20 s bzw 11,12 s "zuviel gearbeitet".
Bisheriges Fazit dieser Versuchsreihen:
Ich gehe mal davon aus, das der PW-Baustein nur dann korrekte Tastverhältnisse am Ausgang liefert, wenn er genau einen SV-Wert und zwar unmittelbar vor Beginn der gerade beginnenden Periodendauer bekommt.
Erfolgt die SV-Wert Vorgabe vor Ablauf der gerade noch laufenden Periodendauer, so wird nicht unbedingt der Wert falsch verarbeitet, der als nächstes dran ist, sondern erst die weiteren Werte, die dann später folgen, und zwar auch, wenn diese erst nach Ablauf einer PD abgegeben wurden.
Dieses Verhalten finde ich fatal !
Da kann doch ein PID-Regler noch so tolle Tastverhältnisse berechnen - wenn der PW-Baustein daraus nur noch "Zufallszahlen" an seinem Ausgang bereitstellt, wird es beim Regelvorgang immer unbefriedigend bleiben !
Wie löst man das aufgezeigte Problem ?
Jetzt frage ich auch gerne wieder alle anderen Easy-Experten, die sich während dieser Testphase etwas zurückgehalten haben.
- Synchronisierung von PID Ausgang mit PW-Eingang unmittelbar vor Beginn der PD ?
- den PW-Baustein ganz vergessen
- sich selbst einen PW-Baustein aus Zeitgliedern, Zählern und Vergleichern basteln
- oder PID Ausgang an LS-Wertskalierung an Zeitglied an Ausgang
Ich habe leider Null praktische Erfahrung mit der Easy bisher, und ich muss mich ziemlich mühsam erst in jeden einzelnen Baustein einarbeiten.
Gerade bei den Zeit-Relais mit seinen zahlreichen Optionen ist es für mich manchmal schwierig die Optionen auszuwählen, die am Ende auch das am Ausgang liefern, was ich von dem Zeitrelais gerade möchte.
Für Vorschläge bin ich als Neuling immer dankbar !
Schöne Grüße
Epoxy
-
Jetzt frage ich auch gerne wieder alle anderen Easy-Experten
Ich bin zwar immer noch kein Experte und habe den PID-Wert bisher nur über den Analogausgang ausgegeben, aber wenn ich das hier so lese, dann bezweifle ich ebenfalls, ob der PWM-Baustein für Regelungen tatsächlich geeignet ist.
Gruß
Boppel
-
Auswertung des PW-Baustein Test mit SV Werten < 2048:
Der 2. Impuls erfolgte, bevor die erste PD abgelaufen war. Diese Nachtriggerung erfolgte 5 Sekunden nach Ablauf des 1. ON-Taktes.
Der 3. Impuls erfolgte 35 Sekunden nach Beginn des 2. Impulses. (PD 30000 ms).
Der 4. Impuls erfolgte 30005 ms nach Beginn des 3. Impules.
Beim 3. und 4. Impuls erfolgte also keine zu frühe Impulswertvorgabe, nur der 2. Impuls kam vor Ablauf der 1. Periodendauer. (11 Sekunden vor Ender der 1. PD)
Der PW-Baustein ist offensichtlich nicht in der Lage, richtige Taktverhältnisse zu bilden, falls ein neues Eingangssignal vor Ablauf der PD geliefert wird, wobei noch unklar ist, wie lange der Fehler weiter "mitgeschleppt" wird.
Hier mal die Testergebnisse. (PD 30000)
Vorgabewert/ausgeführter Wert (in ms)
1. Impuls SV 1911: 14000/13995 ist o.k.
2. Impuls SV 1638: 12000/11995 ist o.k.
3. Impuls SV 2047: 14996/11995 ist nicht o.k.
4. Impuls SV 1365: 10000/11960 ist nicht o.k.
Summe(1 bis 4): 50996/49945
Warum der PW-Baustein diesmal rund 1 Sekunde (1051 ms) weniger "abarbeitet" als die Vorgabewerte waren, vermag ich derzeit nicht zu deuten. In den beiden vorangegangen Versuchen hat er ja 20 s bzw 11,12 s "zuviel gearbeitet".
Bisheriges Fazit dieser Versuchsreihen:
Ich gehe mal davon aus, das der PW-Baustein nur dann korrekte Tastverhältnisse am Ausgang liefert, wenn er genau einen SV-Wert und zwar unmittelbar vor Beginn der gerade beginnenden Periodendauer bekommt.
Erfolgt die SV-Wert Vorgabe vor Ablauf der gerade noch laufenden Periodendauer, so wird nicht unbedingt der Wert falsch verarbeitet, der als nächstes dran ist, sondern erst die weiteren Werte, die dann später folgen, und zwar auch, wenn diese erst nach Ablauf einer PD abgegeben wurden.
Dieses Verhalten finde ich fatal !
Da kann doch ein PID-Regler noch so tolle Tastverhältnisse berechnen - wenn der PW-Baustein daraus nur noch "Zufallszahlen" an seinem Ausgang bereitstellt, wird es beim Regelvorgang immer unbefriedigend bleiben !
Wie löst man das aufgezeigte Problem ?
Jetzt frage ich auch gerne wieder alle anderen Easy-Experten, die sich während dieser Testphase etwas zurückgehalten haben.
- Synchronisierung von PID Ausgang mit PW-Eingang unmittelbar vor Beginn der PD ?
- den PW-Baustein ganz vergessen
- sich selbst einen PW-Baustein aus Zeitgliedern, Zählern und Vergleichern basteln
- oder PID Ausgang an LS-Wertskalierung an Zeitglied an Ausgang
Ich habe leider Null praktische Erfahrung mit der Easy bisher, und ich muss mich ziemlich mühsam erst in jeden einzelnen Baustein einarbeiten.
Gerade bei den Zeit-Relais mit seinen zahlreichen Optionen ist es für mich manchmal schwierig die Optionen auszuwählen, die am Ende auch das am Ausgang liefern, was ich von dem Zeitrelais gerade möchte.
Für Vorschläge bin ich als Neuling immer dankbar !
Schöne Grüße
Epoxy
-
Hallo Boppel,
ich stimme Dir zu. So wie Epoxy sich das mit dem PWM vorstellt funktioniert es nicht.
Ich habe schon öfters das PM verwendet und zur Wasserstandsregulierung für Wasserkraftwerke in Betrieb.
Gruß
Bruno (Bär vom Allgäu)
-
Hallo Bruno,
was ist falsch? Wie funktioniert der Baustein? Die Hilfe, weder Easysoft noch das Handbuch geben dazu eine genaue Beschreibung.
Gruss
Jürgen
-
Hallo Jürgen,
die Anforderung von Epoxy ist leider ungeeignet u. unlogisch.
Hast Du eine andere Anwendung in Zusammenwirken mit einer PID-Regelung?
Gruß
Bruno
-
Hallo Bruno,
Nein.
Ich habe eigentlich nur ebenfalls den PM-Baustein verstehen wollen und habe deshalb das Testprogramm erstellt. Wie man daraus erkennen kann sind keine logischen Erklärungen daraus abzuleiten. Der PID-Regler ist, im Fall von Epoxy vorgeschaltet und soll den Eingangswert des PM-Baustein sein. Aber lassen wir den mal Aussen vor und konzentrienen uns nur auf den PM. Hast du dazu nähere Beschreibung oder aus deiner Erfahrung heraus Erklärungen zum Funktionsprinzip.
Gruss
Jürgen
-
Schön, daß sich wieder ein paar mehr in dieser Runde beteiligen: ???
Indes, die Frage bleiben!
Hallo Boppel,
ich stimme Dir zu. So wie Epoxy sich das mit dem PWM vorstellt funktioniert es nicht.
Ich habe schon öfters das PM verwendet ......
Hallo Bruno,
was müssen denn aus Deiner Erfahrung für Voraussetzungen erfüllt sein, damit der PW-Baustein richtig arbeitet.
Den PID-Regler, wollen wir hier jetzt überhaupt nicht betrachten. Die Stellgrößen für den PW-Baustein könnten, ja auch von ganz anderen Bausteinen erzeugt worden sein !
Wir haben nur einen PW-Baustein. der bekommt Eingangswerte SV.
Falls unbedingt nötig, wird SV sogar begrenzt auf Werte <4096.
Aber welche Anforderungen sind an den Zeitpunkt zu stellen, an dem sich der SV-Wert ändern darf ?
Wir möchten als Anwender eines PW-Bausteins einfach nur exakte Tastverhältnisse entsprechend dem als SV- vorgegebenen Wert haben.
(SV=4095 = 100 % der PD ist der Ausgang im Zustand ON, bei kleineren Werten entsprechend)
Nicht mehr und nicht weniger !
Die Versuchsreihe von mir und Jürgen hat da leider ein ganz "eigenwilliges" Verhalten des PW-Bausteins an den Tag gefördert.
Vielleicht merkt man es ja in der Praxis bei kleinen Periodendauern nicht so, vielleicht auch deshalb, weil man es noch nie exakt gemessen hat, aber bei der vorgegebenen PD = 30000 ms sind lt. Testergebnissen erhebliche Abweichungen (-1051 bis +20000 ms) bei 4 Takten à 30000 ms nachgewiesen.
Wie machst Du das denn mit deinem PW-Baustein, damit der "richtig" arbeitet ?
Kläre uns auf !
Viele Grüße
Epoxy
-
Hallo Epoxy,
offensichtlich weißt Du nicht was Du willst und dies unter der Überschrift: "PID-Baustein wirkt auf Eingang PW."
Zitat:
"Den PID-Regler, wollen wir hier jetzt überhaupt nicht betrachten. Die Stellgrößen für den PW-Baustein könnten, ja auch von ganz anderen Bausteinen erzeugt worden sein ! usw"
Offensichtlich hab ich ich für Dich wie beim PID-Drehzahlregler wiederum ein falsches Programm erstellt. Auf meinem Schreibtisch arbeitet bereits ein PW-Demo-Programm auf einer EASY822-DC-TCX bestens.
Morgen feiere ich lieber ausgiebig meinen runden Geburtstag, als dass ich mit weiter mit solchen Spielerien abgebe.
Bruno
-
Hallo Bruno,
feier mal schön, Gratulieren tu ich morgen. Wenn du dann ausgefeiert hast möchte ich dich bitten mich aus dem Tal der Ahnungslosen zu holen, vielleicht kannst du mir ja dann erklären woher die Zeitunterschiede beim PM kommen oder wo der Fehler beim Testprogramm liegt.
Aber jetzt freu dich erst mal auf deine Geschenke.
Bis morgen, Gruss
Jürgen
-
Hallo,
@ HKW: dann wünsch dir schon mal im voraus alles Gute!!
Gruß
Elektropro
-
Hallo HKW,
feier schön in Deinen Geburtstag!
-
Hallo Epoxy,
offensichtlich weißt Du nicht was Du willst und dies unter der Überschrift: "PID-Baustein wirkt auf Eingang PW."
Sehr wohl will ich einen PID Regler einsetzen, und werde es wohl auch tun. Das Problem ist leider, das der PW-Baustein offensichtlich nicht das tut, was er tun soll - exakte Tastverhältnisse bilden.
Zitat:
"Den PID-Regler, wollen wir hier jetzt überhaupt nicht betrachten. Die Stellgrößen für den PW-Baustein könnten, ja auch von ganz anderen Bausteinen erzeugt worden sein ! usw"
Siehe Satz zuvor: Der PW-Baustein, macht nicht das, was er soll. Lediglich um diesem eigenwilligem Verhalten auf die Schliche zu kommen, haben ich und Jürgen uns ausgiebige Tests überlegt, um eventuell den Fehler (auch eventuell in unseren Überlegungen ) einkreisen zu können. Der PW-Baustein ist mindestens unzureichend in seinen Funktionen dokumentiert. Und dieser Mangel führt dazu, dass man "merkwürdige" Schaltzustände erhält, die nichts mehr mit den Eingangssignalen (z.B. vom Ausgang eines PID, oder eines anderen Baustein stammend) zu tun haben.
Offensichtlich hab ich ich für Dich wie beim PID-Drehzahlregler wiederum ein falsches Programm erstellt.
Ja, Dein PID-Drehzahlreglerprogramm hat nichts mit der von mir gewünschten Regelaufgabe zu tun - ist mir aber trotzdem eine Lehre gewesen, da ich mich seitdem so intensiv mit dem PID und PW-Baustein befasst habe. Und dank Jürgens Test auch gehörige Lehren daraus gezogen habe:
---- Vorsicht----- bei PW-Bausteinen !!!!!
Vielen Dank - an dieser Stelle nochmal- auch für Deine Bemühungen mir/uns zu helfen.
Auf meinem Schreibtisch arbeitet bereits ein PW-Demo-Programm auf einer EASY822-DC-TCX bestens.
Das freut mich für Dich !
Und - gibt es Unterschiede zum Test von Jürgen ? ???
Morgen feiere ich lieber ausgiebig meinen runden Geburtstag, als dass ich mit weiter mit solchen Spielerien abgebe.
Das sehe ich ein - viel Spaß.
Lass Dich feiern !!!
Wir wollen hier niemand von unseren Spielen - wie du es nennst -ausschließen, sondern lediglich etwas mehr Verständnis für die Sache - hier- PW-Baustein- erwerben.
Der PID-Baustein ist tatsächlich derzeit nicht weiter wichtig, weil ich erst später im Betrieb merken werde, ob er das tut, was ich mit meiner PID-Excel Tabelle für Erwartungen an den PID-Regler-Ausgang gestellt habe.
Grundsätzlich ist der PID-Baustein noch Gegenstand dieses Threads, da dieser aber in Anbetracht der PW-Problematik momentan unwichtig erscheint, lassen wir diesen erstmal aussen vor, bis das PW-Thema geklärt ist.
Leider ist es das für mich noch nicht.
Momentan habe ich mir deshalb gerade aus Zeitgliedern Arithmetik und Vergleichern selbst einen individuellen PW-Baustein erstellt. Bin gerade noch am simulieren und testen ! Er ist ganz speziell auf meine Bedürfnisse zugeschnitten (mit eingeschränktem linearem Zeitverhalten und Vollast-Daueroutput).
So kann ich mir erstmal weiterhelfen, und definierte Regelgrößen am Ausgang meines PID in reproduzierbare und definierte Stellgrößen (zeitgesteuerte Tastverhältnisse am Ausgang Q01 bzw. Q02) umsetzen.
Nächtliche Grüße speziell an das Geburtstagskind !!! :D :D :D :D
Epoxy
-
Nur mal so nebenbei:
Wie oft bekomme ich vom PID-TRegler einen Wert am Ausgang des PID bereitgestellt ?
- einmal pro Zyklus(-zeit)
- einmal pro Abtastzeit TC
- einmal pro Summe aus Abtastzeit TC plus Vorhaltezeit TV plus Nachstellzeit TN
Falls jemand einen Versuch macht:
Bitte mal für TC =0,5 Sekunden und TV = 0,1 Sekunde und TN = 2,5 Sekunden messen - vielleicht kann man sich aus den Ergebnissen einen Reim machen, wenn man noch die Zykluszeit kennt.
Der PID -Baustein hängt mit dem Eingang am Analogeingang I07, I08, I11 oder I12 und der hat zu jedem Zyklus einen neuen Wert (zumndest theoretisch).
Schönen Tag noch
Epoxy
-
Morgen feiere ich lieber ausgiebig meinen runden Geburtstag, als dass ich mit weiter mit solchen Spielerien abgebe.
Ach so!
-
Ach so!
Toll dieser Ratschlag. Epoxy wird begeistert sein!
-
Ich habe mal ein kleines Programm geschrieben. Es ist ein aus Zeitgliedern und Vergleichern und Arithmetik-Bausteinen zusammengesetzter PW-Baustein.
Diese Eigenkonstruktion von mir
- ist simulationsfähig
- könnte für jeden Ausgang benutzt werden
- ist nachtriggerbar
- Schaltet weitestgehend richtige Tastverhältnisse (schwankt minimal mit der Zykluszeit)
- Kann leicht für eigene Anwendungen modifiziert werden.
- Zeigt die Tastzeiten an. Die Tastzeiten können in Datenbausteinen eingesehen werden
ist mit geänderter Skalierung geeignet
- für beliebige Periodendauern PD
- ermöglicht nahezu beliebige Einangswerte SV zu benutzen
- Kann den Zustand "Dauerhaft ON" am Ausgang erzeugen
- Kann Mindesteinschaltdauer berücksichtigen
- Kann eine Hysterese im Bereich um 100 % der PD berücksichtigen
Das beigefügte Programmierbeispiel ist etwas speziell für meine Zwecke abgefasst. Ich brauchte bei einem SV-Einganswert von 425 Digits ein Tastverhältnis von 100 % ON bei 3,1 Sekunden Periodendauer.
Mit Hilfe der beigefügten Kommentare und Texte in den Parametern sollte eigentlich jeder daraus auch "seinen" PW-Baustein programmieren können.
Achtung - dieses Programmelement von einem Programmieranfänger und Easy-Neuling ist nur als Anregung gedacht. Jeder prüfe bitte vorher eigenverantwortlich ob es für die eigenen Ideen taugt. Ich lehne jegliche Haftung dafür ab.
Zurück zum Problem.
Nicht nur ich, sondern auch andere wäre aber dennoch daran interessiert, zu erfahren, wie genau nun der Original Möller Easy PW-Baustein arbeitet, bzw. was genau für Bedingungen vorliegen müssen, damit der PW-Baustein so arbeitet, wie man es erwartet: exakte Tastverhältnisse zu bilden !!!
Der Thread ist also noch längst nicht abgeschlossen.
Viele Grüße
Epoxy
P.S. Bitte nicht ewig Fragen zum beigefügtem Programmierbeispiel stellen, sondern lieber daran arbeiten, das ursächliche Problem eigenartiger Verhaltensweisen beim "Möller Easy PW-Baustein" lösen !
-
Würde gerne nochmal auf diesen Punkt zurückkommen, da sich bisher noch niemand dazu geäußert hatte:
Wie oft bekomme ich vom PID-Regler einen Wert am Ausgang des PID bereitgestellt ?
- einmal pro Zyklus(-zeit)
- einmal pro Abtastzeit TC
- einmal pro Summe aus Abtastzeit TC plus Vorhaltezeit TV plus Nachstellzeit TN
Falls jemand einen Versuch macht:
Bitte mal für TC =0,5 Sekunden und TV = 0,1 Sekunde und TN = 2,5 Sekunden messen - vielleicht kann man sich aus den Ergebnissen einen Reim machen, wenn man noch die Zykluszeit kennt.
Der PID -Baustein hängt mit dem Eingang am Analogeingang I07, I08, I11 oder I12 und der hat zu jedem Zyklus einen neuen Wert (zumndest theoretisch).
Auch an neuen "Erkenntnissen" zum Easy PW-Baustein darf sich geäußert werden, auch wenn ich den Punkt vorerst mit meiner PW-Eigenkonstruktion gelöst glaube.
Allerdings hat mein Gesamtprogramm inzwischen den kompletten 8 kb Speicher belegt. Und die restlichen Dinge, die mein Programm noch verhübschen sollten, kriege ich in den 12 freien Bytes nicht mehr unter ???
Wünsche Euch einen schönen Frühlingsanfang
Epoxy