LINEAR_INT

Begonnen von svebo, 28. Juli 2008, 15:00:24

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 2 Gäste betrachten dieses Thema.

svebo

Hallo,

ich möchte gern mit dem Baustein LINEAR_INT eine einfache Lookup-Table wie in Simulink realisieren. Nur leider kommt immer bei Benutzung des Funktionsblockes die Meldung "Division durch 0! SPS gestoppt!". Da ich mich erst seit kurzem mit dieser SPS und der Bibliothek beschäftige, habe ich bis jetz keine Idee, warum bei der linearen Interpolation im Divisor eine 0 entstehen könnte.

Ich benutze PC WorX 5.10.22 und einen Phoenix Contact ILC 350 PN Controller.

Thx im voraus

peewit

#1
bei den baustein kannst du bis zu max 20 koordinatenwerte angeben
die genaue anzahl ist mittels parameter PTS : INT (Anzahl der Wertepaare) einstellbar

der fehlermeldung nach, hast du koordinaten mit den wert 0 in verwendung

üeberprüfe ob für die vorhandene anzahl an koordinaten auch die richtige anzahl uebergeben wird

der division/0 error kann hier entstehen (wenn nullwerte eingetragen sind wird durch diese dividiert !)
LINEAR_INT := ((XY[i][1] - XY[i2][1]) * X - XY[i][1] * XY[i2][0] + XY[i2][1] * XY[i][0]) / (XY[i][0] - XY[i2][0]);

solltest du den fehler trotzdem nicht entdecken, dann poste bitte dein aktuelles projekt, und ich werde mir dein problem ansehen !

mfg peewit

svebo

#2
Hallo,

hab nochmals alles überprüft, vor allem das was Du mir gesagt hast. Hab dann entdeckt, dass das Array nur lokal deklariert war in einer POE. Global funktioniert alles einwandfrei. Ich danke trotzdem. Die Bibliothek erleichtert das Arbeiten mit FBs ungemein.

svebo