Autor Thema: BLIND_CONTROL_S "POS" falsch, wenn TASK nicht "frei" läuft (_RMP_B Problem?)  (Gelesen 11722 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

t.arni

  • Gast
Hallo liebe OSCAT Gemeinde,

WAGO 841, FW16, Codesys 2.3.9.7
OSCAT lib 310 und 320 ausprobiert:

ich versuche verzweifelt seit 2 Tagen, eine einfache Kombination von BLIND_INPUT und BLIND_CONTROL_S in Betrieb zu nehmen. Was aber Probleme macht, ist der Ausgang POS. Der Zähler läuft nur bis ca 160 (statt 255), obwohl beide Zeiten der 2 Bausteine gleich sind (circa 33 s Laufzeit der Rollladen)
Aber heut vormittag konnte ich dasProblem eingrenzen: Ich arbeite mit Tasks, und das gefällt der Kombination überhaupt nicht. Wenn ich das Rolladenprogram "frei" laufen lasse, wird richtig gezählt: Von 0 bis 255 und wieder retour.

Nun wollt ich natürlich mehr wissen, und hab mir ein wenig die Bausteine angesehen. Was ich bisher feststellen konnte war, dass _RMP_P einfach nicht korrekt hochzählt, sobald ich zB.: einen 40ms Zyklus eingestellt habe.

Das dürfte aber doch gar nicht sein. Soweit ich den _RMP_B verstanden habe, arbeitet der Baustein ja mit den Differenzen aus der T_PLC_MS Abfrage um die STEP Größe auszurechnen. ?? Da müsste es doch egal sein, ob das Programm in dem sich die Bausteine befinden, nur alle 100ms oder 10ms aufgerufen werden?

Hat vielleicht jemand von EUCH schon so einen Effekt beobachten können? Bin zu Zeit etwas ratlos, da ich die Bausteine unbedingt verwenden möchte, aber auch nciht auf die unterschiedlichen Tasks verzichten möchte. Ich habe 3.10 und 3.20 ausprobiert , kein Unterschied

Wäre für Hilfe echt sehr dankbar
Dank Euch und LG

Thomas
 

Offline martin.k

  • Entwickler
  • *****
  • Beiträge: 179
    • Profil anzeigen
Vielen Dank für Deine Rechere und Deinen Beitrag!
Ich hatte in der Vergangenheit auch mit den Bausteinen Probleme und deren Einsatz wieder verworfen. Vielleicht kommen wir so weiter !

Also nochmal: BRAVO !

t.arni

  • Gast
Hallo Martin,

jetzt hab ich mich gerade so gefreut, dass ich eine Antwort auf mein Problem bekommen hab  ;)
Aber Lösung scheint so schnell nicht in Sicht zu sein  ???

Ich bin nun wirklich keine Programmierer, daher seh ich auch keine Hoffnung, dass wir beide das Problemchen lösen können. Ich kann nur ungefähr nachvollziehen, was der _RMP_B macht. Fehler bei den ganzen hin und her Konvertierungen zu erkennen, trau ich mir leider nicht zu.

Was mich wundert, ist, das man auch beim Stöbern und Suchen im Forum nur einen einzigen Hinweis auf _RMP_B findet. Dabei handelt es sich aber um einen Zählerüberlauf auf PC worx. Der Baustein wir doch sicher oft verwendet.

Und das niemand mit Tasks arbeitet, kann ich mir auch nur schwer vorstellen. Wenn Du auf der WAGO 841 den "Haupttask" nicht ein wenig einbremst, dann friert Dir gleich die WEBVISU ein ;-)

Naja, vielleicht erbarmt sich ja noch ein schlaues Köpfchen  :)

Ich leb mal damit, dass ich die Zeiten ein wenig kleiner einstelle, als sie wirklich sind, dann zählt POS bis 255. Die Rolladen haben ja ohnehind Endabschaltung. Ob Spannung nun 2 Sekunden länger anliegt oder nicht ist mir immer noch lieber, als die gesamte Rolladensteuerung selbst zu schreiben :)

LG Thomas

Offline peewit

  • Moderator
  • *****
  • Beiträge: 2 378
    • Profil anzeigen
ich habe es mir mal bei codesys softplc angesehen
die zeit wird aus der function Time() gebildet, dabei kommt es so alle 3 sekunden das die zeit einen sprung macht
wenn in der zeit auch deine rampe aktiv ist, so macht diese logischerweise auch den sprung mit.
warum das so ist, habe ich bislang nicht feststellen können.

du solltest aber wie in der doku beschrieben nichr mehr als 255 durchläufe zusammenbringen

wenn 255 * zykluszeit groesser als rampenzeit, dann klappt es auch nicht, da der baustein in jeden zyklus mindestens 1 zur rampe addiert

aber das grundproblem ist, das time() keine linearen zeitwerte liefert
das kann man mit trace von x=time() schön beobachten (siehe bild im anhang)
 

[gelöscht durch Administrator]

Offline erdbeerschaeler

  • Full Member
  • ***
  • Beiträge: 103
    • Profil anzeigen
Hallo Zusammen,

ich habe jetzt einiges mit den Rolladen Programmiert und es funktioniert fast alles so wie ich will außer die Automatikfunktion.
Im Handbetrieb funktionieren die Rolladen rauf und runter, aber die Automatikfunktion bei Sonnenauf und Sonnenuntergang machen nix.

Die Zeiten sind glaube ich alle im Baustein eingestellt, oder habe ich welche vergessen?

Könnte vielleicht jemand über den CFC und die Parameter schauen und sagen, was ich falsch mache ?!? Bei bedarf poste ich auch gerne einen Abzug vom Programm!

DANKE im Voraus

[gelöscht durch Administrator]

Offline Omalik

  • Full Member
  • ***
  • Beiträge: 110
  • Phantasie ist wichtiger als Wissen, denn Wissen
    • Profil anzeigen
    • Home Cinema Pro - Heimkinosteuerungen
Hallo zusammen
ich wollte nochmals betreffend _RMP_B Problem hachhaken.  Hat jemand eine Lösung bereit ?

Danke für Feedback.


T0M

  • Gast
Hallo,

ich habe das Problem, dass im Automatikbetrieb die Pos hochzählt aber die Ausgänge nach ein paar Sekunden einfach abschalten, obwohl Pos z.B. erst bei 150 ist. Vielleicht hängt das damit zusammen?

Gruß Tom

kurt

  • Gast
Hallo!

obwohl sehr unfangreich und ausführlich dokumentiert habe auch ich nach Prüfung des Quellcodes vom Einsatz der Oscat-Bausteine zur Rollladensteuerung Abstand genommen. Einige Codezeilen erscheinen mir doch sehr speicherplatzoptimiert programmiert zu sein. Die eine oder andere Stelle scheint auch noch nicht ganz fehlerfrei zu sein.

Das soll keine Kritik sein, denn auch ich versuche möglichst hilfreiche Beiträge beizusteuern (siehe "calendar_calc: Unschärfe bei Sonnenaufgang/-untergang während Zeitumstellung", doch ist das Gesamtpaktet der Rollladensteuerung so umfangreich und aufeinander abgestimmt, dass Änderungen schon sehr weitreichend wären.

Wäre mal interessant zu wissen, wie viele Leute das Rollladen-Paket erfolgreich einsetzen!

Viele Grüße...