Sonstiges Aus 3 Analogwerten den Mittelwert bilden und auf einen Analogausgang ausgeben (Siemens Logo)

Mr. Schnitzel

Level-2
Beiträge
16
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo und Guten Morgen,
grob gesagt geht es in meinem Anwendungsfall darum, dass aus drei analogen Eingabewerten der Mittelwert gebildet werden soll und dieser dann auf einem analogen Ausgang ausgegeben wird. Die Eingangswerte kommen von Drucksensoren (4mA...20mA Drucktransmitter) die ständig ihre Werte übermitteln. Die Übermittlung des Mittelwerts, soll nahezu ständig passieren, da der Ausgabewert über einen Schwellwertschalter die Fackel des Hochofens ein und ausschaltet. Ich hatte Logo Programmierung leider nur die ersten 3 Wochen in der Ausbildung und kenne mich sonst besser mit der S7 und dem TIA-Portal aus, allerdings ist eine 1200 oder 1500 für meinen Anwendungsfall einfach zu teuer.
Ich bedanke mich schon im Voraus für die Hilfe.

Mit freundlichen Grüßen
Alexander Reichelt
 
Alle drei addieren und teilen durch drei.

In fall störung Kanal A; dann B und C addieren und teilen durch 2.
In fall störung Kanal B; dann A und C addieren und teilen durch 2.
In fall störung Kanal C; dann A und B addieren und teilen durch 2.

In fall Störung A und B gibst du C aus. Und so weiter

Bei 2 von drei Störung eine Sicherheitswert ausgeben
 
Ungefähr so:

1661243167291.png

Die Analogwerte sind am Eingang immer zwischen 0 und 1000, womit sich daher mit den max. möglichen INT-Werten in der Arithmetischen Anweisung gut der Mittelwert bilden lässt.
Erst danach würde ich die Skalierung auf den eigentlich anzuzeigenden (mittleren) Druckwert vornehmen (in B005).

Theoretisch sollte es aber auch mit der Skalierung auf die Druckwerte in B001 bis B003 funktionieren, da die Arithmetische Anweisung intern mit der doppelten Genauigkeit arbeitet und erst bei der Ausgabe auf INT beschränkt wird.
 
@de vliegende hollander Habe es jetzt so ungefähr gemacht. Jetzt kommt aufjedenfall der Mittelwert raus. Ich versteh nur nicht ganz wie ich das mit dem ausschließen des falschen Wertes mache. Also so wie du meintest mit nur A-B oder A-C und so.

@HT-T die Berechnungen sollen mit den aktuellen Analogwerten durchgeführt werden.
 

Anhänge

  • Fackel.PNG
    Fackel.PNG
    26,8 KB · Aufrufe: 19
Zuviel Werbung?
-> Hier kostenlos registrieren
Achja, wenn Du den Mittelwert auf einen Analogausgang AQ ausgeben möchtest, muss dieser Wert natürlich auch zwischen 0 und 1000 sein, weil der AQ nix anderes verarbeiten kann. Alles über 1000 wird abgeschnitten.

Der AQ käme also bei mir zwischen B004 und B005:
1661244149097.png


PS:
Theoretisch könnte man die Skalierung von B005 auch in B006 vornehmen (und B005 dann weg lassen), aber ich bevorzuge den extra Baustein, um so den Wert noch für eventuelle andere Bausteine zur Verfügung zu haben.
 
Zuletzt bearbeitet:
Ich versteh nur nicht ganz wie ich das mit dem ausschließen des falschen Wertes mache.
Das ist mit der LOGO nur schwer bis gar nicht möglich, weil deren Analogeingänge keine "Anzeige" haben, ob sie korrekt oder fehlerhaft arbeiten.
Lediglich beim 4-20mA Eingang (bzw. 4-20mA-Sensoren an 0-10V Eingängen mit 500Ω-Widerständen) können die Werte unter 200 als Fehler erkannt werden und z.B. mittels Schwellwertschalter und Analog-Mux dann durch einen Vorgabewert (600 wäre der Mittelwert) ersetzt werden.
 
Das ist mit der LOGO nur schwer bis gar nicht möglich, weil deren Analogeingänge keine "Anzeige" haben, ob sie korrekt oder fehlerhaft arbeiten.
Lediglich beim 4-20mA Eingang (bzw. 4-20mA-Sensoren an 0-10V Eingängen mit 500Ω-Widerständen) können die Werte unter 200 als Fehler erkannt werden und z.B. mittels Schwellwertschalter und Analog-Mux dann durch einen Vorgabewert (600 wäre der Mittelwert) ersetzt werden.
Eventueel überwachen auf Abweicheung und dann die abweichende von der Berechnung ausschliessen
 
Der Messbereich liegt zwischen 0 und 250 milli Bar. Sollte 1 Wert 5% von den anderen Abweichen, soll dieser aus der Berechnung des Mittelwerts rausgenommen werden.

Ok ich verstehe habe gehofft es gestaltet sich etwas einfacher. Im TIA-Portal wäre mir da auch sofort was eingefallen wie ich an die Sache herangegangen wäre. 😃

Genau. Statt des zu ignorierenden Wertes leitet man eine 0 in den ArithmetikBaustein und addiert weiterhin alle 3 Werte, egal, ob "gefaked" oder nicht. Allerdings muss mann dann durch 2 statt 3 dividieren, wenn genau einer der drei Werte "genullt" wird.

Könntest du mir vielleicht zeigen wie das für meinen Fall zu Programmieren wäre?:love:
Würde dir die Datei hier mal mit anhängen.
LG
 

Anhänge

  • Fackel HO5A.zip
    43,9 KB · Aufrufe: 9
Zuviel Werbung?
-> Hier kostenlos registrieren
... weil man Werte nicht mal übertragen und mal nicht übertragen kann...
Ja, das hört sich tatsächlich extrem schwierig an :).

.. Ok ich verstehe habe gehofft es gestaltet sich etwas einfacher...
Natürlich! Du pfeifst ganz einfach auf den größten und auf den kleinsten Messwert, so wie auf eine Mittelwertbildung. Sprich, du verwendest ganz einfach nur den mittleren der drei Messwerte. Voraussetzung ist, die Sensoren und Analogeingänge geben in typischen Fehlerfällen Extremwerte aus, was in der Regel der Fall ist.

PS: Mitteln oder dämpfen kannst du dann immer noch über der Zeit.

.. Im TIA-Portal wäre mir da auch sofort was eingefallen wie ich an die Sache herangegangen wäre. 😃 ..
Wie denn?
 
Zuletzt bearbeitet:
Hast du dein Abschaltung nach oben oder unten? Mittelwert is ungewöhnlich. Eher max oder min Wert. Du kannst auch drei Grenzwerte machen aus die Analogwerte und diese als 2v3 Verknüpfen. Was für Medium messt du? Gas?
 
Natürlich! Du pfeifst ganz einfach auf den größten und auf den kleinsten Messwert, so wie auf eine Mittelwertbildung. Sprich, du verwendest ganz einfach nur den mittleren der drei Messwerte. Voraussetzung ist, die Sensoren und Analogeingänge geben in typischen Fehlerfällen Extremwerte aus, was in der Regel der Fall ist.
Habe mal zu Dagoberts Vorschlag (#15) einen BubbleSort für 3 Werte gebastelt:
Bubble3.jpg
Es werden 3-mal je eine MIN- und eine MAX-Funktion bestehend aus 1 Vergleicher und 2 MUXen gebildet.
Damit wird durch "bedingtes Tauschen" von je 2 Werten so sortiert, dass an AQ1 der mittlere Wert ankommt.

Die angehängte pdf-Datei ist keine. Es muss lediglich nach dem Herunterladen '.pdf' (durch umbenennen) entfernt werden. dann wird sie wieder zu einer lsc-Datei.
 

Anhänge

  • Bubble3.lsc.pdf
    86,1 KB · Aufrufe: 7
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Jo Morgen, also ich hab es jetzt ungefähr hinbekommen. Immer wenn ein Wert jetzt über die 250mB steigt schaltet der Komperator Null und nur die anderen beiden werden zur Mittelwertbildung benutzt. Zusammengefasst wird das alles in einem Analog MUX in den die Rechenergebnisse der Rechenbausteine einfließen.
Durch die digital Beschaltung des analog MUX kann man dann den einen unbrauchbaren Wert ausschließen.
ich schick es mal als Foto rein und endschuldige mich schon vorher für die Unordnung.😁
Muss es alles noch ein bisschen ordnen
 

Anhänge

  • Fackel2.PNG
    Fackel2.PNG
    77,2 KB · Aufrufe: 16
Zurück
Oben