Stützpunkt Kurve

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo paula23,
wenn Du mir die 20 Wertepaare übermittelst, leite ich Dir ein entsprechendes Polynom her. Das ist dann eine Formel, welche Dir zu jedem X-Wert denn entsprechenden Y-Wert liefert.

Gruß Frank
 
Mit einer Sprungleiste geht es

Du kannst eine Sprungleiste benutzen. Ich mache das normalerweise so:

Dieses Beispiel ist als Quellcode programmiert und dient einer Sicherheitskurve für eine Servoachse. Ausserhalb der Kurve könnte es zu einer Kollision kommen. Die Achse 3 kann schwenken und in abhängigkeit davon wir Achse 6 in Ihrer Maximalbewegung eingeschränkt.


FUNCTION FC_A36Max: VOID

AUTHOR: JP
FAMILY: plant1
NAME: A36Max
VERSION: 1.2
//KNOW_HOW_PROTECT

VAR_TEMP
Istwert :Int;
END_VAR

BEGIN
NETWORK
TITLE = Maximale Position Achse 3+6 ermitteln
// Die Achse 3 gibt den Istwert vor.
L DB_TestSend.Ist.A3_Pos;
L DB_Konfig.A36.Tab.Delta_A3; //in diesem Fall ein neuer Wert alle 2 Grad
/D;
T #Istwert;

// Die Achse kann positiv und negativ fahren, deshalb die Umrechnung des #Istwert
L 0;
L #Istwert;
<=I;
SPB Jump;

L #Istwert;
L -1;
*D;
// Die Sprungleiste springt auf den #Istwert. Also die Achse steht auf 30 Grad / 2 also springt sie nach C15
Jump: SPL CNO;
SPA C00;
SPA C01;
SPA C02;
SPA C03;
SPA C04;
SPA C05;
SPA C06;
SPA C07;
SPA C08;
SPA C09;
SPA C10;
SPA C11;
SPA C12;
SPA C13;
SPA C14;
SPA C15;
SPA C16;
SPA C17;
SPA C18;
SPA C19;
SPA C20;
SPA C21;
SPA C22;
SPA C23;
SPA C24;
SPA C25;
SPA C26;
SPA C27;
SPA C28;
SPA C29;
CNO: SPA C29;
C00: L DB_Konfig.A36.Tab.Max_A6[0] ;
SPA END;
C01: L DB_Konfig.A36.Tab.Max_A6[1] ;
SPA END;
C02: L DB_Konfig.A36.Tab.Max_A6[2] ;
SPA END;
C03: L DB_Konfig.A36.Tab.Max_A6[3] ;
SPA END;
C04: L DB_Konfig.A36.Tab.Max_A6[4] ;
SPA END;
C05: L DB_Konfig.A36.Tab.Max_A6[5] ;
SPA END;
C06: L DB_Konfig.A36.Tab.Max_A6[6] ;
SPA END;
C07: L DB_Konfig.A36.Tab.Max_A6[7] ;
SPA END;
C08: L DB_Konfig.A36.Tab.Max_A6[8] ;
SPA END;
C09: L DB_Konfig.A36.Tab.Max_A6[9] ;
SPA END;
C10: L DB_Konfig.A36.Tab.Max_A6[10] ;
SPA END;
C11: L DB_Konfig.A36.Tab.Max_A6[11] ;
SPA END;
C12: L DB_Konfig.A36.Tab.Max_A6[12] ;
SPA END;
C13: L DB_Konfig.A36.Tab.Max_A6[13] ;
SPA END;
C14: L DB_Konfig.A36.Tab.Max_A6[14] ;
SPA END;
C15: L DB_Konfig.A36.Tab.Max_A6[15] ; // Lade einen hinterlegten Wert
SPA END;
C16: L DB_Konfig.A36.Tab.Max_A6[16] ;
SPA END;
C17: L DB_Konfig.A36.Tab.Max_A6[17] ;
SPA END;
C18: L DB_Konfig.A36.Tab.Max_A6[18] ;
SPA END;
C19: L DB_Konfig.A36.Tab.Max_A6[19] ;
SPA END;
C20: L DB_Konfig.A36.Tab.Max_A6[20] ;
SPA END;
C21: L DB_Konfig.A36.Tab.Max_A6[21] ;
SPA END;
C22: L DB_Konfig.A36.Tab.Max_A6[22] ;
SPA END;
C23: L DB_Konfig.A36.Tab.Max_A6[23] ;
SPA END;
C24: L DB_Konfig.A36.Tab.Max_A6[24] ;
SPA END;
C25: L DB_Konfig.A36.Tab.Max_A6[25] ;
SPA END;
C26: L DB_Konfig.A36.Tab.Max_A6[26] ;
SPA END;
C27: L DB_Konfig.A36.Tab.Max_A6[27] ;
SPA END;
C28: L DB_Konfig.A36.Tab.Max_A6[28] ;
SPA END;
C29: L DB_Konfig.A36.Tab.Max_A6[29] ;
END: T DB_Konfig.A6.Max // Und gebe den Wert aus
BE;
END_FUNCTION
// Und schon hast Du einen frei einstellbaren Stützpunkt.

Bei Fragen kann ich Dir den kompletten Code gerne schicken.

Gruß Grisuh
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Für einen Streckbieger habe ich mal eine ähnliche Aufgabenstellung mit der Interpolation eines Beziersplines gelöst.
Der erstellte auf der Basis von 4 Wertepaaren einen Spline, der alle vorgegebenen Punkte miteinander verbunden hat.
Du findest die Grundlagen bei Google, wenn du nach "Interpolation nach Newton" suchst.
Ist zwar hohe Mathematik, lässt sich aber mit einer SPS noch einigermaßen gut umsetzen.
 
Ich würde die Variante von knarf vorziehen. Die Wertepaare in Excel eingeben, eine Diagramm daraus machen und die Formel für die Kurve anzeigen lassen. Man kann dann auch austesten, welchen Grad an Polynom man nutzen will, also ab wann es hinreichend genau ist. Ich hab das vor Jahren mal hier im Forum beschrieben, inkl. einer Beispiel-Exceldatei.

PS: Suche mal im Forum nach "Polynom", da ist auch einiges zu finden.
 
Zuletzt bearbeitet:
Ich würde die Variante von knarf vorziehen. Die Wertepaare in Excel eingeben, eine Diagramm daraus machen und die Formel für die Kurve anzeigen lassen. Man kann dann auch austesten, welchen Grad an Polynom man nutzen will, also ab wann es hinreichend genau ist.

Für die Berechnung einer Trendlinie in Excel siehe die folgenden Programmbeispiele:

http://www.sps-forum.de/showthread.php?t=10337

http://www.sps-forum.de/showthread.php?t=27419

Gruß Kai
 
Zurück
Oben