S7-200, nichtlineare Funktionsabbildung

Jörg_24

Level-2
Beiträge
124
Reaktionspunkte
6
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.:confused: 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
 
S7-200 Nichtlineare Funktion

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
 
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.:confused: 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.
 
+

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])
 
Zurück
Oben