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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: 2-dimensionales Kennfeld

  1. #1
    Registriert seit
    29.07.2008
    Ort
    Stuttgart
    Beiträge
    232
    Danke
    64
    Erhielt 25 Danke für 25 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo an alle,

    ich möchte gern aus einem 2-dimensionalem Kennfeld (z.B. 10 Spalten, 10 Zeilen) einen Wert berechnen lassen. D.h., ich müsste bei Zwischenwerten jeweils über die x-Achse und über die y-Achse zwischen den Werten interpolieren.

    Als x-Achse habe ich z.B. eine Motordrehzahl und als y-Achse nen Pedalwert. Abhängig von beiden Größen muss nun ein Mindestdruck anstehen. Dafür habe ich ne S7 315-2DP/PN. Die Kennfeldeingabe erfolgt über ein MP277.

    Gibt es für sowas schon Lösungsansätze oder Vorlagen, die ich verwenden oder ausbauen kann?

    Danke schonmal.
    Zitieren Zitieren 2-dimensionales Kennfeld  

  2. #2
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Lösungsansatz:

    ____30% 40%
    60% 5,5 5,7
    70% 5,8 6,1

    Dies ist der Ausschnitt der zu betrachten ist wenn x zB 35% ist und y zB 62%.

    Dann rechnest Du für
    Yu= (35%-30%)*(5,7-5,5)+5,5
    Yo= (35%-30%)*(6,1-5,8 )+5,8

    und nun

    p= (62%-60%)*(Yo-Yu)+Yu

    % heisst Hundertstel.

    Sollte so klappen....

  3. Folgender Benutzer sagt Danke zu borromeus für den nützlichen Beitrag:

    Günni1977 (03.12.2010)

  4. #3
    Avatar von Günni1977
    Günni1977 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.07.2008
    Ort
    Stuttgart
    Beiträge
    232
    Danke
    64
    Erhielt 25 Danke für 25 Beiträge

    Standard

    Ok, danke.
    Aber ich müsste dazu noch sagen, dass mein Problem ist, das ganze zu organisieren in einem oder mehreren DBs z.B. und dann die 8 Werte, die ich ja brauche, entsprechend "rauszufiltern". Bin nicht wirklich fit in SCL oder indirekter Adressierung.

    Und weil ich noch keine Idee habe, wie ich die Werte, die ich zum Interpolieren brauche, überhaupt herausfiltere, weiß ich auch nicht, wie ich meine Daten am besten organisieren soll, sodass alles weitere dann möglichst einfach wird...

  5. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo,
    anscheinend hat Borromeus verstanden, was du vorhast - ich noch nicht ...
    Willst du feststellen, ob eine (aufgezeichnete) Kurve (oder eine aktuelle Werterfassung) einen vordefinierten Bereich korrekt durchläuft ?

    Gruß
    Larry

  6. #5
    Avatar von Günni1977
    Günni1977 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.07.2008
    Ort
    Stuttgart
    Beiträge
    232
    Danke
    64
    Erhielt 25 Danke für 25 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hallo,
    anscheinend hat Borromeus verstanden, was du vorhast - ich noch nicht ...
    Willst du feststellen, ob eine (aufgezeichnete) Kurve (oder eine aktuelle Werterfassung) einen vordefinierten Bereich korrekt durchläuft ?

    Gruß
    Larry
    Nein. Ich hab ne Tabelle mit den Achsen "Drehzahl" und "Pedalwert" z.B. als 10x10-Feld.
    Also gibt es zu jedem Paar Drehzahl/Pedalwert einen Eintrag in der Tabelle. Dieser stellt einen Mindest-Druck dar. Nun fortlaufend anhand einer Ist-Drehzahl und eines Ist-Pedalwertes der entsprechende Ist-Mindest-Druck ermittelt werden.
    D.h. ist muss ständig mein Feld durchsuchen, wo bin ich, interpolieren über beide Achsen und meinen Mindest-Druck zur Grenzwertüberwachung aus dem Feld ermitteln.

  7. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    ... das heißt, du hast insgesamt 100 Werte wo du kontrollieren willst/mußt, ob du dich bei einem "in der Nähe befindest" bzw. welches der nächste Wert ist ...?

    Das wäre dann auf jeden Fall ein Ding für SCL ... ich denke, das in AWL lösen zu wollen würde zumindestens sehr unübersichtich und schwer nachvollziehbar werden ...

    Gruß
    Larry

  8. #7
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Glaube nicht, dass das so tragisch ist
    die o.a. Formel rechnet das ohnehin aus....

    Wie kommt man zu den Werten?

    Wenn der DB so aufgebaut ist:

    DBD0:X0Y0 ...Wert für X=0%, Y=0%
    DBD4:X10Y0...Wert für X=10%, Y=0%
    DBD8:X20Y0...Wert für X=20%, Y=0%
    .
    .
    DBD36:X100Y0...Wert für X=100%, Y=0%
    DBD40:X0Y10...
    .
    usw
    der Wert 5,5 aus dem obigen Beispiel wäre an Doppelwortadresse:
    (ABRUNDEN (x-Wert / 10) + 10x(ABRUNDEN (y-Wert / 10))) x 4 (4byte= 1 Doppelwort)
    der Wert 5,7 aus obigen Beispiel
    (ABRUNDEN (x-Wert / 10)+1 + 10x(ABRUNDEN (y-Wert / 10))) x 4 (4byte= 1 Doppelwort)
    der Wert 5,8 aus obigen Beispiel
    (ABRUNDEN (x-Wert / 10) + 10x(ABRUNDEN (y-Wert / 10))+1) x 4 (4byte= 1 Doppelwort)
    der Wert 6,1 aus obigen Beispiel
    (ABRUNDEN (x-Wert / 10)+1 + 10x(ABRUNDEN (y-Wert / 10))+1) x 4 (4byte= 1 Doppelwort)

    Kann sein, dass da noch ein kleiner Fehler ist, aber vom Prinzip kann man die Werte so aufspüren und einfach ausrechnen.
    Aber klar, in 5min ist es nicht erledigt, aber in ein paar wenigen Stunden glaub ich schon.


    Edit: ich habe jetzt allerdings angenommen, dass die Werte in 10% Schritten vorliegen... wenn das nicht so ist ist es natürlich umfangreicher weil die Berechnung nicht klappt.
    Geändert von borromeus (03.12.2010 um 10:15 Uhr)

  9. Folgender Benutzer sagt Danke zu borromeus für den nützlichen Beitrag:

    Günni1977 (03.12.2010)

  10. #8
    Avatar von Günni1977
    Günni1977 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.07.2008
    Ort
    Stuttgart
    Beiträge
    232
    Danke
    64
    Erhielt 25 Danke für 25 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    ... das heißt, du hast insgesamt 100 Werte wo du kontrollieren willst/mußt, ob du dich bei einem "in der Nähe befindest" bzw. welches der nächste Wert ist ...?

    Das wäre dann auf jeden Fall ein Ding für SCL ... ich denke, das in AWL lösen zu wollen würde zumindestens sehr unübersichtich und schwer nachvollziehbar werden ...

    Gruß
    Larry
    Ja, so ähnlich. Wenn ich aber zwischen den Werten bin, muss ich dann auch noch interpolieren.
    Also mit dem Beispiel ähnlich wie von borromeus:

    ____10% 20%
    50% 4,2 4,8
    60% 5,2 6,2

    bei x=15 und y=55 kommt halt meine ich 5,1 raus. Also muss ich erstmal wissen, wo ich bin? (x-Achse zw. 10% und 20%; y-Achse zw. 50% und 60%)
    Dann muss ich meine 4 Werte entsprechend den Achsen ermitteln (4,2 4,8 5,2 6,2). Und am Ende noch mit Formeln wie von borromeus meinen Wert berechnen.

  11. #9
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Zitat Zitat von Günni1977 Beitrag anzeigen
    Dann muss ich meine 4 Werte entsprechend den Achsen ermitteln (4,2 4,8 5,2 6,2). Und am Ende noch mit Formeln wie von borromeus meinen Wert berechnen.
    Guck mal oben!

  12. #10
    Avatar von Günni1977
    Günni1977 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.07.2008
    Ort
    Stuttgart
    Beiträge
    232
    Danke
    64
    Erhielt 25 Danke für 25 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von borromeus Beitrag anzeigen
    Edit: ich habe jetzt allerdings angenommen, dass die Werte in 10% Schritten vorliegen... wenn das nicht so ist ist es natürlich umfangreicher weil die Berechnung nicht klappt.
    Die Werte werden wohl nicht in festen Schritten vorliegen, sondern sind flexible.
    Es werden vielleicht mehrere Kennfelder für verschieden Größen...

    Na mal schaun. Im Moment ist noch nix festes geplant, es interessiert mich grad nur, welcher Aufwand dahinter stecken wird. Und wieder einiges zu lernen gibt's da für mich sicher auch...

Ähnliche Themen

  1. 2 dimensionales Array
    Von Airpower im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 31.01.2010, 10:19
  2. Warum kann S7 nur 6-dimensionales Feld (Array)?
    Von bischkul im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 26.10.2009, 21:14
  3. Übergabe variables 2-dimensionales Array of INT als VAR_IN_OUT
    Von grosser_marco im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 09.09.2009, 08:47
  4. Antworten: 21
    Letzter Beitrag: 21.06.2008, 16:54

Lesezeichen

Berechtigungen

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