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

Ergebnis 1 bis 5 von 5

Thema: S7-200, nichtlineare Funktionsabbildung

  1. #1
    Registriert seit
    30.07.2007
    Beiträge
    118
    Danke
    14
    Erhielt 6 Danke für 6 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Forumsgemeinde,
    ich könnte mal eine Idee oder einen Funktionsbaustein für die Abbildung einer nichtlinearen Funktion mit der S7-200 brauchen. Leider fehlt mir der richtige Ansatz für eine brauchbare Lösung. Die Suche hier war auch nicht ergiebig.
    Problem: Ich möchte aus einer analogen Eingangsgröße eine analoge Ausgangsgröße bilden. "Dazwischen" soll sich eine Kurve mit z.B. 10 Stützpunkten befinden anhand dieser die Ausgangsgröße berechnet/interpoliert wird. Diese 10 Wertepaare für die Kurve müßten als Eingabewerte hinterlegt werden. Für andere Steuerungen gibt es dafür fertige Funktionsbausteine, aber leider nicht "sichtbar" wie das gemacht ist.
    Hat jemand eine Idee oder womöglich einen fertigen F-Baustein ?
    Dank und Gruß,
    Jörg
    Zitieren Zitieren S7-200, nichtlineare Funktionsabbildung  

  2. #2
    Registriert seit
    29.01.2007
    Ort
    Sandkrug
    Beiträge
    147
    Danke
    7
    Erhielt 36 Danke für 25 Beiträge

    Standard

    Hallo Jörg,
    Fertige Bausteine gibt es für solche Aufgaben nicht. Es gibt aber mehrere Möglichkeiten der Lösung:
    Eine Lösung wäre folgende:
    - du erstellst dir in Excel deine Kurve und lässt dir von Excel die zugehörige Funktionsgleichung berechnen. Diese Formel müsste dann mit den Mitteln der S2-200 programmiert werden.
    MfG
    eNDe
    Zitieren Zitieren S7-200 Nichtlineare Funktion  

  3. #3
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von Jörg_24 Beitrag anzeigen
    Hallo Forumsgemeinde,
    ich könnte mal eine Idee oder einen Funktionsbaustein für die Abbildung einer nichtlinearen Funktion mit der S7-200 brauchen. Leider fehlt mir der richtige Ansatz für eine brauchbare Lösung. Die Suche hier war auch nicht ergiebig.
    Problem: Ich möchte aus einer analogen Eingangsgröße eine analoge Ausgangsgröße bilden. "Dazwischen" soll sich eine Kurve mit z.B. 10 Stützpunkten befinden anhand dieser die Ausgangsgröße berechnet/interpoliert wird. Diese 10 Wertepaare für die Kurve müßten als Eingabewerte hinterlegt werden. Für andere Steuerungen gibt es dafür fertige Funktionsbausteine, aber leider nicht "sichtbar" wie das gemacht ist.
    Hat jemand eine Idee oder womöglich einen fertigen F-Baustein ?
    Dank und Gruß,
    Jörg
    Nichtlinear oder nicht analytisch?
    Eine nichtlineare analytische Funktion läßt sich berechnen, z.B. sin(x). Das können die neueren 200er CPUs auch.
    Wenn die Funktion nur als Stützstellen vorliegt, bietet sich eine Tabelle an. Dazu suchst du dir einen Bereich, typisch im V-Memory. Ist der Abstand der Werte in X-Richtung gleich, legst du nur die Y-Werte ab, sonst Paare von X und Y.
    Dein Programm muß nun zum realen X-Wert den nächst kleineren Wert suchen(x[n]). Dann ist n die Position inder Tabelle und x[n+1] der nächst größere Wert. Nun nimmst du den y-Wert der zum kleineren gehört: y[n]. Dazu addierst du prozentual soviel von der Differenz der Y-Werte, wie x[n+1] größer ist als x[n]. Die Formel lautet also: y=y[n]+ (y[n+1]-y[n])/(x[n+1]-x[n]).
    Der y-Wert folgt dann einer Linie, die entsteht, wenn die Stützstellen durch Geradenabschnitte verbunden würden. Von Abschnitt zu Abschnitt ändert sich die Steigung sprunghaft. Wo das unerwünscht ist, gibt es aufwendigere Verfahren, z.B. Spline-Interpolation, die das vermeiden.

  4. Folgender Benutzer sagt Danke zu Zottel für den nützlichen Beitrag:

    Jörg_24 (05.05.2008)

  5. #4
    Registriert seit
    24.12.2005
    Beiträge
    127
    Danke
    1
    Erhielt 9 Danke für 9 Beiträge

    Standard

    Die Formel lautet also: y=y[n]+ (y[n+1]-y[n])/(x[n+1]-x[n]).
    Glaube ich nicht ganz.

    Mein Vorschlag:

    y = y[n] + (y[n+1]-y[n])/(x[n+1]-x[n]) * dx = y[n] + m * dx

    mit dx = x - x[n]
    Wo nichts ist,
    da kann nichts sein.
    Zitieren Zitieren +  

  6. #5
    Registriert seit
    24.12.2005
    Beiträge
    127
    Danke
    1
    Erhielt 9 Danke für 9 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Prinzipiell könnte man sich noch überlegen, die Stützpunkte y[n] und die dazugehörigen Steigungen m[n] = (y[n+1]-y[n])/(x[n+1]-x[n]) in einem DB abzulegen. Dann wird die Berechnung der interpolierten Werte ganz einfach:

    y = y[n] + m[n] * (x - x[n])
    Wo nichts ist,
    da kann nichts sein.
    Zitieren Zitieren +  

  7. Folgender Benutzer sagt Danke zu arcis für den nützlichen Beitrag:

    Jörg_24 (05.05.2008)

Ähnliche Themen

  1. Baustein für nichtlineare Kurve
    Von williwuff im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 21.09.2011, 19:39

Lesezeichen

Berechtigungen

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