Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 10 von 10

Thema: Auswertfunktion will einfach nicht funktionieren :(

  1. #1
    Registriert seit
    03.03.2009
    Beiträge
    6
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe Community,

    ich habe momentan ein kleines Problem
    Ich arbeite momentan an einem Projekt, inwelchem eine Prüfstandsüberwachung realisiert werden soll.

    Dazu habe ich eine Funktion benötigt, welche mir einen Eingangswert auf eine bestimmte Zeitdauer auswertet und mir den Minimal und Maximalwert ausgibt.

    Ich habe dann folgenden Programmiert:



    Wenn man sich nun die Werte bei Min. und Max. anschaut kann dabei etwas nicht stimmen.

    Es liegt an IN vom FB ein 0 Signal an und am Reset Eingang ein negiertes 0 Signal, also 1 Signal. Trotzdem gibt der Baustein mir diese komischen Werte aus.

    Könnt ihr mir eventuell sagen was ich falsch gemacht habe?

    liebe Grüße und Vielen Dank

    DunkDream
    Zitieren Zitieren Auswertfunktion will einfach nicht funktionieren :(  

  2. #2
    Registriert seit
    16.03.2007
    Beiträge
    97
    Danke
    5
    Erhielt 23 Danke für 18 Beiträge

    Standard

    Du hast Dir die Antwort doch schon selbst gegeben - es liegt ein negiertes 0-Signal am Reset Eingang an, also eine 1, sprich ein TRUE.

    Und True am Reset Eingang von STATISTICS_REAL setzt nun mal die Min- und Max-Werte auf die zulässigen Werte für REAL: 1.175494351e-38F bis 3.402823466e+38F zurück.

    Gruß SPS-Fuzzi

  3. #3
    DunkDream ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.03.2009
    Beiträge
    6
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    leider funktioniert diese Funktion nicht, was an dem Funktionsblock Statistics_Real liegt.

    Also für meinen Anwendungsfall leider gänzlich unbrauchbar.

    Könnte nun also dennoch hilfe brauchen. Weiß leider überhaupt nicht wie ich mein Vorhaben, siehe oben, realisieren kann

    Ich würde mich freuen wenn Ihr mir dabei helfen würdet.

    liebe Grüße

    DunkDream

  4. #4
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Zitat Zitat von DunkDream Beitrag anzeigen
    Wenn man sich nun die Werte bei Min. und Max. anschaut kann dabei etwas nicht stimmen.

    Es liegt an IN vom FB ein 0 Signal an und am Reset Eingang ein negiertes 0 Signal, also 1 Signal. Trotzdem gibt der Baustein mir diese komischen Werte aus.

    Könnt ihr mir eventuell sagen was ich falsch gemacht habe?
    ...
    Die Werte sind nicht komisch und sie stimmen. Wenn Du Dir den Baustein in der Bibliothek anschaust wirst Du feststellen das er im Deklarationsteil folgendes stehen hat:

    Code:
        MN: REAL:=3E+38;        (* minimum value*)
        MX: REAL:=1E-37;        (* maximum value*)
    Kurz und knapp der Baustein passt nicht zu Deiner Aufgabe. Schreib Dir einen eigenen oder schau in die OSCAT (www.oscat.de) [hier ist der Vorteil das wenn der Baustein nicht gaaanz Deinen Wünschen enstpricht kann man ihn anpassen] oder erklär mal was der Baustein genau machen soll und wir sehen weiter. Wenn es nur darum geht den maximalen und den minimalenwert festzuhalten ist das ja keine Herausforderung.
    If you open your Mind too much, your Brain will fall out.

  5. Folgender Benutzer sagt Danke zu zotos für den nützlichen Beitrag:

    DunkDream (23.03.2009)

  6. #5
    DunkDream ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.03.2009
    Beiträge
    6
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    danke dass du mir helfen möchtest.

    Wie gesagt ich bin wirklich blutiger Anfänger in CoDeSys und dies ist mein erstes großes Projekt.

    Also mein Baustein soll folgende Funktion erfüllen:

    Ich gebe einen Wert als INT-Variable ein. Dieser Wert soll für eine einstellbare Zeitdauer (in der Visualisierung mittels Slider einstellbar) ausgewertet werden und der Maximal- sowie Minimalwert in jeweils einer INT-Variable ausgegeben werden.

    Soviel zu der Theorie. Mir fehlen nun einfach die Mittel und Kenntnisse um diese Aus wertung zu realisieren

    Würde das ganze gerne in CFC schreiben, da ich den Rest meines Programmes ebenfalls in CFC geschrieben habe und es möglichst standartisiert sein sollte.

    Ich danke euch nochmal ganz herzlich für die bisherige Hilfe!

    liebe Grüße

    DunkDream

  7. #6
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Ich hab Dir mal eine Min/Max Auswertung gemalt. Und zwar für INTEGER.
    Die Timer Geschichte gehört dann an den ENABLE Eingang.
    Angehängte Grafiken Angehängte Grafiken
    If you open your Mind too much, your Brain will fall out.

  8. #7
    DunkDream ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.03.2009
    Beiträge
    6
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo zotos,

    wow, das ging aber schnell, vielen lieben Dank!

    Werde das ganze gleich programmieren und testen.

    Wenn man sich es anschaut ergibt es aber schon wirklich Sinn, viel besser als meine Statistics Funktion

    Danke für die Hilfe nochmal!!

    liebe Grüße

    DunkDream

  9. #8
    DunkDream ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.03.2009
    Beiträge
    6
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    habe leider noch ein kleines Problem mit der Auswertfunktion.

    Undzwar wird mein Min Wert nicht verändert.
    Dieser verharrt dauerhaft bei 0.

    Also mein IN Signal ist beim einschalten z.B. 50. Dann ist 50 größer als Min=0, also ist die LT Bedingung nicht erfüllt und der MIN Wert wird nicht geschrieben weil eine 0 am EN Eingang des Move Bausteins anliegt.

    Wie könnte ich das Problem wohl lösen?

    liebe Grüße

    DunkDream

  10. #9
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Den Minwert vor dem Start der Funktion mit dem größtmöglichen Maxwert vorbelegen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  11. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    DunkDream (24.03.2009)

  12. #10
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Lächeln


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Den Minwert und den Maxwert beim Start der Funktion mit dem aktuellen Wert belegen, dann stimmts auch, wenn keine neuen Werte mehr kommen, oder in einer anderen SPS Task auf den Wert zwischenzeitlich zugegriffen würde. Soweit ich weiss, ist in manchen CoDeSys Runtimes die Kommunikation zur Visu z.B. auch eine eigene Task
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren Sichere Variante  

Ähnliche Themen

  1. DI funktionieren nicht
    Von Power_Pete im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 06.01.2010, 12:22
  2. Antworten: 5
    Letzter Beitrag: 20.04.2009, 16:07
  3. Multiinstanzen funktionieren nicht!
    Von slma im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 17.07.2007, 02:09
  4. Flanken funktionieren nicht
    Von MatMer im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 20.10.2005, 23:52
  5. Applet auf CP 343-1 IT funktionieren nicht
    Von plc_tippser im Forum Hochsprachen - OPC
    Antworten: 8
    Letzter Beitrag: 23.05.2005, 09:00

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •