Autor Thema: LINEAR_INT  (Gelesen 6157 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

svebo

  • Gast
LINEAR_INT
« am: 28. Juli 2008, 15:00:24 »
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

Offline peewit

  • Moderator
  • *****
  • Beiträge: 2 378
    • Profil anzeigen
Re: LINEAR_INT
« Antwort #1 am: 28. Juli 2008, 16:34:59 »
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
 
« Letzte Änderung: 28. Juli 2008, 16:42:29 von peewit »

svebo

  • Gast
Re: LINEAR_INT
« Antwort #2 am: 29. Juli 2008, 09:44:51 »
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
« Letzte Änderung: 29. Juli 2008, 09:56:00 von svebo »