Autor Thema: Mittelwert ohne Ausfälle  (Gelesen 3612 mal)

Offline RAU-UV

  • Jr. Member
  • **
  • Beiträge: 42
  • Test it!
Mittelwert ohne Ausfälle
« am: Mai 15, 2008, 16:02:43 Nachmittag »
Hallo!

ich habe das Problem, dass ich 3 Analogeingänge vergleichen und Mittelwerte bilden muss. Dies geschieht derzeit so:

Vergleich IA1 und IA2, wenn Okay wird der Mittelwert AV1 berechnet, sonst wird AV1 auf 0 gesetzt
Vergleich IA1 und IA3, wenn okay wird der Mittelwert AV2 berechnet, sonst wird AV2 auf 0 gesetzt
Vergleich IA2 und IA3, wenn okay wird der Mittelwert AV3 berechnet, sonst wird AV3 auf 0 gesetzt

Die Mittelwerte AV1 - 3 werden addiert und durch die Anzahl der richtigen Vergleiche ( 1 bis 3) geteilt. Das Ergebniss gibt dann AV4. Dies funktioniert soweit auch alles.

Das Problem, welches sich jetzt stellt, ist dass wenn ich keinen gültigen Vergleich habe gern den letzten Mittelwert speichern würde.

z. B.

IA1  500
IA2  510
IA3  800

=>
AV1=505
AV2=0
AV3=0  => AV4 = (505 + 0 + 0)/1 = 505

ändert sich nun IA2 auf z.B. 600 dann soll die 505 erhalten bleiben.

Ich habe es schon mit einem Fehlersignal und einem DB probiert jedoch bekomme ich immer wieder Ausfälle d.h. Nullwerte in meinem Mittelwert AV4.

Habe das Programm dazu gemacht. Dabei werden die Analogeingänge in die Merkerworte 25 - 27 kopiert und dann verglichen. MW24 hat am Schluss der Rechnung das Ergebnis.


Vielen Dank für sämtliche Hinweise.


Stefan

Juergen.J

  • Gast
Re: Mittelwert ohne Ausfälle
« Antwort #1 am: Mai 15, 2008, 22:12:26 Nachmittag »
Hallo Stefan,
habe mir die Programmstruktur nur flüchtig angesehen ohne wirklich ins Detail zu gehen. So wie ich die Sache einschätze, solltest du nach dem Vergleich IA1-3, wenn kein Vergleich zu einem Ergebnis führt, mit einem Sprungbefehl den Rest des Programm überspringen. Somit wird keine neue Berechnung durchgeführt dessen Ergebnis 0 ist.
Ich hoffe dieser Anstoss hilft dir, zum umsetzen fehlt mir leider die Zeit.
Gruss
Jürgen

Juergen.J

  • Gast
Re: Mittelwert ohne Ausfälle
« Antwort #2 am: Mai 15, 2008, 23:48:30 Nachmittag »
Hallo Stefan,
hat mich doch mehr interessiert und habe deshalb nochmal näher hingesehen. Du hast in deiner Schaltung ein Zyklusproblem. Du führst Berechnungen über AR-Bausteine aus die du über LS-Bausteine frei gibst und Berechnungen die jeden Zyklus gemacht werden. Die LS-Bausteine die über einen Merker freigeschaltet werden, werden erst 1 Zyklus nach Merkereinschalten bearbeitet.
Als Beispiel habe ich dir ein Programm gemacht was du im Einzelzyklus in der Simulation testen sollst, um zu verstehen was ich damit meine.
Simulation anwählen
Eingang einschalten (rastend),
Simulationszyklus anwählen
Einzelzyklus anklicken 1. Zyklus wird ausgeführt usw.
Schau dir nach jedem Zyklus die Merker an und im Bausteinplan den Addierer.

Um das Problem in deinem Programm zu beseitigen musst du sozusagen das ganze syncronisieren. Die Mittelwertberechnung muss im gleichen Zyklus wie die Einzelauswertung erfolgen.
Am besten dein Programm wirklich auch in Einzelzyklen durchtesten.
Gruss
Jürgen
« Letzte Änderung: Mai 15, 2008, 23:55:41 Nachmittag von Juergen.J »

Offline RAU-UV

  • Jr. Member
  • **
  • Beiträge: 42
  • Test it!
Re: Mittelwert ohne Ausfälle
« Antwort #3 am: Mai 16, 2008, 08:32:32 Vormittag »
Danke Jürgen für deine Anregung und das Programm. Verstehe ich das Richtig, die MFD-Titan arbeitet  das Programm zyklisch von oben nach unten ab, jedoch werden die Arithmetikbausteine bei jedem Zyklus abgearbeitet.

So etwas hatte ich mir gestern auch noch gedacht, jedoch habe ich nichts gefunden wo das nachzulesen ist. Kannst du mir was nennen??

Nachtrag: Habe es gerade im Handbuch gefunden. Die Onlinehilfe ist doch nicht immer die beste Lösung  :)

Werde jetzt mal probieren das ganz Zyklisch zu machen  ;)

Gruss
Stefan
« Letzte Änderung: Mai 16, 2008, 08:36:05 Vormittag von RAU-UV »

Offline RAU-UV

  • Jr. Member
  • **
  • Beiträge: 42
  • Test it!
Re: Mittelwert ohne Ausfälle
« Antwort #4 am: Mai 16, 2008, 11:55:58 Vormittag »
Das Problem wurde gelöst  ;D ;D ;D ;D

Durch die Einführung eines Sprungs über die Berechnung und direkte Verwendung der Merker der Vergleichergebnisse ohne neue Zwischenmerker funktioniert es nun fehlerfrei.

Danke Jürgen für die Anregung.