Autor Thema: BLIND_CONTROL_S  (Gelesen 7542 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline pelmic

  • Newbie
  • *
  • Beiträge: 14
    • Profil anzeigen
BLIND_CONTROL_S
« am: 13. September 2010, 11:13:37 »
Hallo,

ich setze eine Phoenix SPS ein (PC Worx + ETH150) und steuere damit meine Rolladen. Daher habe ich einige Bausteine der BLIND_ Reihe verwendet. So weit funktioniert auch alles, nur die Positionierung der Rolladen klappt so gar nicht. Wenn die Rolladen oben sind, sollte die Position (wenn ich das richtig verstehe) auf 255 sein; unten auf 0. Nach Initialisierung ist der Wert auch für oben 255. Wenn die Rolladen dann aber unten sind, dann steht der Wert leider nicht auf 0. Mir scheint das, als wenn die Skalierung von 0 - 255 nicht funktioniert. Ich sehe im Debug, dass der Counter mehrmals überläuft. Die eingestellten Laufzeiten der Rolladen sind aber korrekt.
Evtl. kann mir jemand weiterhelfen?

Danke!!!

Offline peewit

  • Moderator
  • *****
  • Beiträge: 2 378
    • Profil anzeigen
Re:BLIND_CONTROL_S
« Antwort #1 am: 13. September 2010, 14:53:52 »
hallo

habe mal den code von blind_control_s und den intern verwendeten sub-bausteinen mit den codesys-referenzbausteinen verglichen
dabei habe ich festgestellt das der intern verwendete baustein "_RMP_B" in einer nicht aktuellen version in der bibliothek enthalten ist.
ob dies auch die ursache für dein beschriebenes probleme ist, wird sich bei deinen erneuten test zeigen

öffne die oscat-base bibliothek ganz normal als projekt und wähle im menü "Datei den eintrag Import" aus
dann wählst du "erweiterter IEC xxx Import" usw.. und importiert die neue baustein version in die bibliothek durch überschreiben der alten version
(compilieren danach nicht vergessen)

gruesse peewit

(Anhang wieder entfernt !)
« Letzte Änderung: 14. September 2010, 10:36:23 von peewit »

Offline pelmic

  • Newbie
  • *
  • Beiträge: 14
    • Profil anzeigen
Re:BLIND_CONTROL_S
« Antwort #2 am: 13. September 2010, 18:26:10 »
Hallo peewit,

vielen Dank für Deinen schnelle Antwort. Habe das alles gemacht, jedoch leider keinen Erfolg erzielen können. Die Pos Variable zählt wie sie will und läuft mehrmals über. Irgendwas scheint da nicht zu stimmen. Könnte es was mit der Art der Task zu tun haben? Ich bin leider nicht so fortgeschritten im SPS programmieren...

Ich habe mal meinen FB angehangen, vielleicht hilft der ja...

Grüße,

Michael

[gelöscht durch Administrator]

Offline peewit

  • Moderator
  • *****
  • Beiträge: 2 378
    • Profil anzeigen
Re:BLIND_CONTROL_S
« Antwort #3 am: 14. September 2010, 10:21:09 »
hallo pelmic

habe den _rmp_b baustein mal praktisch getestet

die fehlerhafte rampe ergibt sich durch eine inkompatibilität der verschiedenen iec plattformen !

bei der BYTE_TO_INT kommt es bei pcworx zu eine eher unlogischer konvertierung
das höchste bit des bytes wird als vorzeichen interpretiert,  was unsinn ist, somit läuft die rampe ab den wert 127 über und fängt wieder bei 0 an

diese eigenwillige interpretation ist auch bei WORD_TO_DINT vorhanden , somit habe ich auch den _rmp_w nochmals angepasst

(das abweichende verhalten ist mir ansich seit jahren bekannt, leider passieren halt auch mir immer wieder fehler)


schau mal ob du nun damit besser zurechtkommst

_rmp_b und _rmp_w baustein wieder wie schon anfangs erklärt, in die bibliothek einbinden

gruesse peewit


[gelöscht durch Administrator]
« Letzte Änderung: 14. September 2010, 10:37:03 von peewit »

Offline pelmic

  • Newbie
  • *
  • Beiträge: 14
    • Profil anzeigen
Re:BLIND_CONTROL_S
« Antwort #4 am: 17. September 2010, 08:18:32 »
Hallo peewit,

danke für Deine schnelle und vor allem professionelle Hilfe! Es sieht so aus, als ob das Problem gelöst ist. Ich konnte leider noch nicht alles testen.

Gruß,

pelmic