easy-forum
Deutsch - Hardware => easyRelais => Thema gestartet von: Epoxy am Februar 21, 2009, 23:42:56 Nachmittag
-
Ich habe ein Programmierproblem beim Analogwertvergleich:
3 fast identische Analogwerte schwanken ständig etwas in ihrem Wert.
Ich möchte programmieren, das die Bedingung erfüllt ist, solange der 2. und 3. Analogwert nicht mehr als maximal jeweils ca. +/- 20 % vom 1. Analogwert abweicht.
Überschreitet die Abweichung eines oder zweier dieser 3 Analogwerte diese zulässigen Fehlergrenzen, soll in einem Merker der Schaltzustand verändert werden.
Also z.B. 3 Eingangsspannungen von 1,0 Volt ist der Normalzustand.
Unterschreitet eine der Spannungen 0,8 Volt, oder ist eine der Spannungen größer als 1, 2 Volt, soll dies als Zustandsänderung in einem Merker ausgegeben werden.
Ist der Normalzustand aller 3 Eingangsspannungen 0,2 Volt soll es genauso funktionieren , wie bei 2,5 Volt als Normalzustand der 3 Analogwerte.
Mir kommt es nur auf die prozentuale Abweichung an, die eingehalten werden soll, bzw. auf die Zulässigkeit gewisser Fehlergrenzen.
Danke für Eure Hilfe, es ist mein erstes EASY-Projekt, aber bei diesem Problem komme ich mit der Hysteresefunktion des Analogwertevergleichs der Easy 700er-Serie nicht klar.
Viele Grüße von Epoxy
-
Hallo Epoxy,
habe Verständnisproblem. Soll die Steuerung nur für einen fixen Wert an allen 3 Eingängen benutzt werden oder kann dieser Wert variiren. Woher weis die Steuerung was die richtige Vorgabe ist. Mit der Easy 700 kann man nur feste Werte vergleichen. Wenn deine Aufgabe aber flexibel sein sollte benötigst du zum einen eine feste Vorgabe (welcher Wert soll überwacht werden) zum anderen eine Steuerung die rechnen kann um eben diese Wertevorgabe mit Toleranzen zu bestimmen. Falls dies der Fall sein sollte benötigst du mindestens eine 800-er Steuerung.
Gruss
Jürgen
-
Danke, daß Ihr versucht mir bei dem Problem zu helfen.
Nochmal etwas klarer formuliert:
Ich habe 3 Analogeingänge.
I8 kann Werte zwischen 0 Volt und 1 Volt annehmen.
auch die Analogeingänge I11 und I12 haben diesen Wertebereich zwischen 0 Volt und 1 Volt.
Normalerweise sind auch alle Eingänge in ihrem Wert fast gleich.
Kommt es aber in der überwachten Anlage zu Störungen, dann weicht vielleicht einer der Werte von den beiden anderen Werten etwas ab.
Sobald ein Wert mehr als ca. 20 % von einem der anderen beiden normalen Werte abweicht, soll das den Schaltzustand eines Merkers ändern.
Ich habe schon herumprobiert, indem ich den Analogwertvergleichern den Faktor 5 für die jeweils überwachten Analogeingänge gegeben habe, und als Hysterese einen der Analogwerte genommen habe.
Mit diesem Trick sollte erreicht werden, daß die Hysterese etwa 20 % des einen Analogwertes ergibt.
Aber keiner der Logik-Verknüpfungen I1>I2 oder die anderen Varianten: <; =; >=;<= führt dann wirklich zum wirklich gewünschten Ergebnis.
Falls es überhaupt ansatzweise funktioniert, ergeben sich damit Fehlergrenzen von bis zu 40 %, wobei ich das eigentlich nicht verstehe.
Hängt wohl mit der Arbeitsweise der Hysterese zusammen.
Die Schaltung funktioniert für mich, wenn I8 = 1,00 Volt hat, sobald I11 = 0,79 Volt hat soll der Merker M01 seinen Zustand (auf ON) wechseln.
Hat I11 dann wieder 0,80 Volt soll der Merker M01 wieder (auf OFF) wechseln. Überschreitet I11 den Wert von 1,21 Volt soll der Merker M01 wieder den Zustand ON haben, fällt der Wet I11 auf 1,20 Volt soll M01 wieder auf OFF gehen.
Auch I12 darf sich so wie I11 verhalten.
Simulation:
Wenn das ganze auch funktioniert, wenn I8 mal 0,79 Volt hat (M01 soll dann auf auf ON gehen, ab 0,80 Volt auf OFF ) und I11 in dem Moment gerade 1,00 Volt hat. (I12 hat gerade irgendeinen Wert zwischen 0,80 Volt und 1,20 Volt) ist das Ziel schon fast erreicht.
Weil ich keine festen Werte habe, sondern immer nur das Verhältnis der Werte zueinander, soll das ganze auch genau so funktionieren, wenn man alle Werte z.B. halbiert oder verdoppelt oder mit dem Faktor 0, irgendwas multipliziert.
Ich hoffe, ich konnte klarmachen was gesucht ist:
bei
I8 = 0,80 bis 1,20 Volt ist allles o.k.,
solange
I11= 0,80 bis 1,20 Volt
und
I12= 0,80 bis 1,20 Volt im gleichen Moment haben.
Aber auch bei
I8 = 0,33 bis 0,50 Volt ist alles o.k.
solange
I11 = 0,33 bis 0,50 Volt
und
I12 = 0,33 bis 0,50 Volt im gleichen Moment haben.
Habe mir gedacht, die Easy 700er Serie kann das.
Viel rechnen soll sie doch garnicht, eigentlich nur 3 Werte (mit gewissen üblichen Fehlertoleranzen) vergleichen.
Wenn ich die Logikverknüfung " = " nehme, und Fehler 0% wird es sicher funktionieren, ist aber nicht praxistauglich.
Irgendwie fehlt der Easy die Logikfunktion ungleich in Verbindung mit einer Hysterese.
Praktische Anwendung könnte z.B. sein, einen Drehstrommotor (mit Stromsensor als Analogwertgeber) so zu überwachen, daß bei ungleicher Phasenbelastung z.b. infolge durchgebrannter Wicklung/Isolationsfehler der sich anbahnende Motordefekt bemerkt wird, bevor eine Phase des Motors völlig durchgebrannt ist, bzw, auch Fehler in Motorzuleitungen bemerkt werden.
Schöne Sonntagsgrüße
Epoxy
-
Wenn die abweichungen in einem bestimmten prozentualen Verhältniss zueinender überwacht werden müssen, dann nenn ich sowas schon rechnen. Bei einer Hysterese geht man normalerweise auch von einem Festwert (z.B. Schaltpunkt aus).
Den Eingang 0-1Volt sollte man auch noch überdenken! Ein zehntel des Wertebereichs bedeutet zehnfacher Fehler!
Evtl. stellst Du dein bisheriges Programm mal ein? ;)
-
Hallo,
hab dir mal was angehängt! Hilft dir das weiter?
Falls die Werte recht schwanken würde ich die Auswertung noch Zeitverzögern um 1sec!
Gruß
Elektropro!
-
Hallo,
hab dir mal was angehängt! Hilft dir das weiter?
Gruß
Elektropro!
Danke, habe es probiert.
Es funktioniert so leider nicht, da
in Deinem Beispiel die Hysterese als Konstante vorgegeben wurde (NU=20).
Damit ergibt sich bei einem Normalzustand von I7 = 0,50 Volt eine Abweichung von 42 % bevor die Schaltung den Merkerzustand ändert.
Ich brauche ca. 20 %, und zwar als Relativwert !
Zum anderen hat diese Schaltung die Funktion, dass ich z.B. bei Analogwert I7 und I11 mit einem Vorgabewert von z.B. 0,50 V einen Wert von I8 = 0,29 V brauche damit der Merker 01 erstmalig umschaltet. Das sind 22 %, das wär o.k. , aber ich muss jetzt den Wert für I8 wieder bis auf 0,50 V anheben, damit der Merker wieder zurückschaltet.
Genau dieser Effekt ist nicht erwünscht !
Bereits bei einem Wert von I8 = 0,30 Volt (I8 = 0,35 V wäre auch noch o.K. ) sollte der Merker wieder seinen Zustand wechseln.
In der anderen Richtung verhält sich diese Schaltung genauso. Erst muß man I8 = 0,70 Volt erreichen bis Schaltzustand wechselt und erst wenn man wieder den Ausgangswert von I8 = 0,50 V erreicht hat, schaltet der Merkerkontakt wieder zurück.
Ich habe so den Verdacht, daß man mit irgendwelchen Sprungbefehlen arbeiten muss, damit man diesen Effekt der Hysterese umgeht.
So nach dem Motto: Hat der Merker M01 ausgelöst tritt Plan b in Kraft, in dem gilt alles ist o.k. sobald I8 wieder größer wird als I7 (oder I11) minus 20 %.
Habe aber noch nicht mit Sprungbefehlen gearbeitet - vielleicht kann mal jemand was zu dieser Idee sagen, bevor ich mich hier abquäle.
Danke für Eure Hilfe.
Epoxy
-
Habe aber noch nicht mit Sprungbefehlen gearbeitet
Hallo Epoxy
Alles über Sprungbefehle hier klicken (http://trainingscenter.moeller.net/functions/easySoft/easy-700/jump.html)
-
Hallo Epoxy,
ich denke den Versuch mit den Sprungbefehlen kannst du dir sparen. Was du möchtest ist eigentlich nur mit rechnen möglich. Die Hysterese arbeitet immer in einem Bereich von/bis, du möchtest aber genau den Wert unterhalb oder oberhalb einer fliessenden Grenze. Dazu musst du den Wert von Analogeingang 2 nehmen, dir den oberen und unteren Vergleichswert errechnen und mit Anlogeingang 1 auf grösser oder kleiner vergleichen, ohne Hysterese. Nur so bekommst du einen Zustand der dir bei Über- bzw. Unterschreitung eine Auswertung ermöglicht. Dies ist vermutlich eine Aufgabe mindestens für die 800-er oder grösser.
Gruss
Jürgen
-
Hallo Epoxy.
Um die Hinweise von Jürgen noch zu verdeutlichen habe ich mal das Beispielprogramm
etwas modifiziert, damit man erkennen kann, wie die einzelnen Parameter funktionieren.
Du erhältst bei der Verwendung des Parameters HY (Hysterese) deshalb so "seltsame"
Ergebnisse, weil die Hysterese bei den Abfragen >, <, usw. unsymmetrisch wirkt. Dieses
Verhalten ist z.B. sinnvoll bei Zweipunktreglern. Bei steigendem Istwert (Parameter I1)
wird verglichen mit Sollwert + Hysterese (Parameter I2+HY), bei fallendem Istwert
mit Sollwert - Hysterese. Ganz anschaulich wird das in angehängtem Beispiel beim
Vergleicher A7, denn ich nur zur Info eingefügt habe. Hier werden IA1 und IA2 auf
Gleichheit überprüft, wenn eine Hysterese angegeben ist.
Für Dein Problem ist die Verwendung des Parameters Offset besser. Hierdurch wird der
Istwert um Deine Toleranz verschoben und überprüft. Um sowohl die obere als auch die
untere Grenze zu erkennen, werden zwei Vergleiche benötigt. Einen möglichen Vorschlag
findest Du im Beispiel.
Wie bereits gesagt ist es bei einer EASY7xx nicht möglich die Toleranz als prozentualen
Anteil des Sollwerts anzugeben, bei einer EASY8xx, MFD, .. dagegen schon.
Gruß Maikky
-
Hallo,
das könnte eigentlich die Lösung sein. Nimmt man jetzt so wie Eingangs von Epoxy beschrieben den 1. Vergleichswert auf Faktor 5 und vergleicht .........
Muss nochmal genauer nachdenken wenn die grauen Zellen wieder erholt sind. Meine spontane Überlegung ist, warum muss ich eigentlich kleiner Abfragen? Entweder sind alle Werte im Bereich, ist ein Wert kleiner sind die anderen Werte zu gross oder sind 2 Werte gleich ist der dritte zu gross. Ich denke bei genauerer Überlegung lässt sich da etwas machen (hoffe ich).
Gruss
Jürgen
-
Hallo Jürgen, hallo Epoxy.
Der Tipp war gut.
Mit den Verstärkungsfaktoren F1,F2 ist es doch möglich zu "rechnen".
Die Toleranz 20% kann erreicht werden mit Faktor F1=5, F2=4, also z.B. IA1 vergleichen
mit 4/5 IA2 = 80% von IA2.
Ich habe das Beispiel dementsprechend geändert.
Einen kleinen Unterschied zur ursprünglichen Beschreibung von Epoxy gibt es allerdings.
Durch die Faktoren wird mit 80% des grösseren Werts überprüft. Sind z.B. alle Eingänge
1,0V und IA1 wird verringert, kommt die Meldung bei 0,79V (Referenz : 80% von 1,0V).
Wird allerdings IA1 vergrössert, kommt die Meldung bei 1,25V (Referenz : 80% von 1,25V).
Ich vermute mal, dass das vernachlässigbar ist, oder jemand hat noch eine Idee wie das zu umgehen ist.
Gruß Maikky
-
Hallo,
das könnte eigentlich die Lösung sein. Nimmt man jetzt so wie Eingangs von Epoxy beschrieben den 1. Vergleichswert auf Faktor 5 und vergleicht .........
Meine spontane Überlegung ist, warum muss ich eigentlich kleiner Abfragen? Entweder sind alle Werte im Bereich, ist ein Wert kleiner sind die anderen Werte zu gross oder sind 2 Werte gleich ist der dritte zu gross. Ich denke bei genauerer Überlegung lässt sich da etwas machen (hoffe ich).
Gruss
Jürgen
Und auch die Idee von
Hallo Jürgen, hallo Epoxy.
Der Tipp war gut.
Mit den Verstärkungsfaktoren F1,F2 ist es doch möglich zu "rechnen".
Die Toleranz 20% kann erreicht werden mit Faktor F1=5, F2=4, also z.B. IA1 vergleichen
mit 4/5 IA2 = 80% von IA2.
Ich habe das Beispiel dementsprechend geändert.
Einen kleinen Unterschied zur ursprünglichen Beschreibung von Epoxy gibt es allerdings.
Durch die Faktoren wird mit 80% des grösseren Werts überprüft. Sind z.B. alle Eingänge
1,0V und IA1 wird verringert, kommt die Meldung bei 0,79V (Referenz : 80% von 1,0V).
Wird allerdings IA1 vergrössert, kommt die Meldung bei 1,25V (Referenz : 80% von 1,25V).
Ich vermute mal, dass das vernachlässigbar ist, oder jemand hat noch eine Idee wie das zu umgehen ist.
Gruß Maikky
erscheint mir sehr nachdenkenswert.
Ich werde in den kommenden Stunden mal sehen, ob diese Lösung der Weg zum Ziel mit einer Easy 700er sein kann.
Schon mal ganz vielen Dank für Euer Brainstorming. Auf ein paar Prozent mehr oder weniger kommt es in diesem Fall wirklich nicht an. Hauptsache man kann abschalten, bevor irgendwas ganz im Argen liegt.
Schönen Tag wünscht
Epoxy
-
Hallo Jürgen, hallo Epoxy.
Der Tipp war gut.
Mit den Verstärkungsfaktoren F1,F2 ist es doch möglich zu "rechnen".
Die Toleranz 20% kann erreicht werden mit Faktor......
Ich vermute mal, dass das vernachlässigbar ist, oder jemand hat noch eine Idee wie das zu umgehen ist.
Gruß Maikky
Thats it, vielen Dank an Maikky und die anderen, die sich an der Lösung des Analogwertvergleiches mit prozentualen Fehlergrenzen beteiligt haben.
Ich habe das Programm von Maikky nochmal mit leicht veränderten Faktoren F1 (NU=6) und F2 (NU=5) ausgestattet.
Es ist also doch möglich alle 4 Analogeingänge einer Easy 700er mit nahezu beliebigen prozentualen Fehlergrenzen auszustatten, um Abweichungen gegenüber den anderen Analogeingängen festzustellen.
Einfach mit den Faktoren F1 und F2 (im Wertebereich 1-9999) arbeiten.
Es sind damit beliebige Verhältnisse von 1/9999 bis 9999/1 realisierbar, mit denen man die Analogwerte vergleichen kann.
Bei F1=6 und F2=5 ergibt sich eine zulässige abweichung von + 20 % oder von -16,67%
Es ist dabei immer so, das die Plusabweichungen immer größer sind als die Minus-Abweichungen. Das liegt an der Prozentrechnung an sich.
Ist wie bei der Mehrwertsteuerberechnung mit 19% von Brutto/Netto:
Bei 1,00 Euro ergibt sich bei 19 % MWST. netto 0,84 Euro.
Genauso ist es hier auch.
Angenommen alle 3 Werte haben normalerweise 1,00 Volt, dann findet ein Schaltwechsel des Merkers bei <=0,83 Volt, bzw. >=1,20 Volt statt. (F1=6,F2=5)
Damit ist der beabsichtigte Zweck hinreichend erfüllt.
Da ich nur feststellen wollte, ob überhaupt eine unzulässige Abweichung vorliegt, habe ich alles auf einem Merker zusammengeführt.
Insgesamt werden so zum Vergleich von 3 Analogwerten
6 Strompfade und 6 Analogwertvergleicher und 1 (bis 3 Merker) gebraucht.
Bei 4 max. möglichen Analogwerten werden 12 Strompfade und 12 Analogwertvergleicher und 1 (bis 4 Merker) gebraucht.
Gut, daß wir verglichen haben !
Vielen Dank nochmals.
Grüße
Epoxy
-
Vielleicht noch einen kleinen Hinweis zur praktischen Anwendung:
Ich habe noch ein OFFSET definiert:
Dies bringt mehrere Veränderungen mit sich:
- Im Bereich um 0,00 Volt am Analogeingang beseitigt man damit unerwünschte Schaltzustände, da prozentuale Anteile bei 0 Volt immer Null ergeben. Daher löst der Merker ohne Offset immer aus, obwohl der voreingestellte prozentuale Fehler eigentlich nicht überschritten wurde.
Ich habe ein OS (NU) = 15 definiert (für alle Analogvergleicher)
Dies führt dann zu einer Spannungstoleranz von 0,02 Volt bzw 0,03 Volt.
für die Analogeingänge ohne daß die Merker gleich verrückt spielen.
Natürlich verändert der OFFSET auch den prozentualen Fehlerbereich.
Die Fehlergrenzen zwischen der Minus-Toleranz und der Plus-Toleranz nähern sich etwas an. Der Plus-Fehler steigt aber dadurch auch mit an.
Dem wirke ich entgegen, indem ich den Faktor etwas anpasse.
Für mein Beispiel mit Analogeingängen von normalerweise 1,00 Volt
habe ich bei Offset 15
Faktor F1 = 8
Faktor F2 = 7
gewählt.
Damit Ihr mal den zusammenhang seht:
Bei 1,00 Volt schaltet der Merker bei 0,85 Volt (-15%) bzw. bei 1,16 Volt (+16%)
Bei 2,00 Volt schaltet der Merker dann bei 1,73 Volt (-13,5%) bzw. bei 2,31 Volt. (+15,5%)
Bei 0,50 Volt schaltet der Merker erst bei 0,41 Volt (-18%) bzw. bei 0,60 Volt. (+20%)
Bei 0,03 Volt schaltet der Merker bei 0,00 Volt bzw. bei 0,06 Volt. (+100 %)
Die OFFSET-Lösung bietet sich also dann an, wenn man einen bestimmten Analogwertebereich betrachten will.
Mir war es auch wichtig, wegen dem Problem bei 0,00 Volt, da sonst der Merker immer "gemeckert" hätte. Ich habe leider auch in meiner Anwendung kein anderen Schwellwertschalter/Analogwertvergleicher mehr übrig (nur noch einen, und der reicht nicht um 3 Analogwerte mit Schwellwerten auszustatten).
Oder hat noch jemand eine andere Idee zum Thema 0,00 Volt und Fehlerberechnung bei Analogwerten < 0,3 Volt ( oder so) auslassen ?
Was passiert eigentlich, wenn am Analogeingang mal negative Spannung von z.B. minus 2,50 Volt anliegt ?
Ich glaube, ich habe ne Diode davor geschaltet, war das notwendig und sinnvoll ? (hat den Nachteil, daß ich 0,7 Volt Spannungsabfall am Analogeingang in Kauf nehmen musste, was ggf. die Auflösung/Genauigkeit der Analogeingänge negativ beeinträchtigt
Schöne Grüße
Epoxy
-
Was passiert eigentlich, wenn am Analogeingang mal negative Spannung von z.B. minus 2,50 Volt anliegt ?
Mach doch eine Clamp-Diode (vom Eingang auf Minus), dann hast du max. -0,7V und keine Meßwertverfälschung (plus Temperaturdrift)! Der Analogsensor muß den Strom halt begrenzen/abkönnen!