# Oscat Blind_Shade_S öffnet die Rolladen nicht wieder



## Joker666 (10 August 2022)

Hallo, 
ich habe eine Wago PFC200, die auch meine Rolläden Steuert mit der Oscat Bibliothek. Das Programm funktionierte so wie es sollte mit der Beschattung, der Rolladen fuhr bis zu einer festegelegten Position zu und dann auch wieder hoch.

Nun habe ich die Uhrzeit in der Steuerung angepaßt, also es waren ein paar Minuten differenz. Seid dem wird die Beschattung nicht mehr aufgehoben, also die Beschattung startet wie immer, nur wenn der Sonnenstand aus dem Vertikalen Winkel, bzw, die Helligkeit niedrig genug ist, wird die Beschattung nicht mehr hoch gefahren. Selbst dann nicht, wenn ich die Beschattung deaktiviere, da sollte der Rolladen sofort wieder in die Ursprungsposition fahren, passiert aber auch nicht.

Das schließen der Rolladen und am nähsten morgen wieder öffnen, über die Tastereingänge, bzw einen Dämmerungsschalter auf die Eingänge klappt nachwie vor ohne Probleme.

Ich hab auch keine Ahnung, wodran das liegen kann, bzw was meinen Uhrzeit einstellen da ausgelöst hat, ich habe das nun 3 Tage beobachtet, da ich dachte, vielleicht an dem Tag, wo ich die änderung vorgenommen habe, das es da nur nicht geht und sich nächsten Tag wieder ganz normal verhält, dem ist aber leider nicht so.

Vielleicht kann mir einer einen Tipp geben, wo mein Problem liegen könnte. Vielen Dank


----------



## Blockmove (11 August 2022)

Es gibt ja den Sourcecode für die Bausteine.
Du kannst also den Fehler online suchen.


----------



## peliphan (8 September 2022)

Hallo Joker666, 
wollte mal fragen ob Du weitergekommen bist. 
habe ein ähnliches Problem und bin aktuell auch auf der Suche.
habe nur Kleinigkeiten angepasst aber gleiches Phänomen.

Den Source der Bausteine zu debuggen... das kann sicherlich nicht jeder.. ist zwar ein netter Ansatz von Blackmove aber für mich nicht ganz so einfach

dake & GRuß
Peli


----------



## KLM (8 September 2022)

Klingt nach einem internen Timer, der durch die nachträglich Zeitveränderung hängt. Welche Bibliothek wird verwendet (basic oder building)? Welche Version der Bibliothek bzw. des Bausteins wird eingesetzt? Wie heißt der Baustein?
Der bessere Zugang wäre aber sicherlich das Forum von Oscat selbst (http://www.oscat.de/community/). Der WAGO Support, der hier mitliest, wird sicherlich keine fremden Bibliotheken debuggen sondern eher auf die WAGO Bibliothek für Gebäude-Grundfunktionen verweisen. Für CODESYS 2 wäre das WagoBuilding_01 (https://www.wago.com/at/d/10726) und für CODESYS 3 und e!COCKPIT die WagoAppBuilding.

Edit: Im Thementitel steht zumindest der Name des FB "Blind_Shade_S".


----------



## Blockmove (8 September 2022)

Das oscat-Forum ist sicher nicht verkehrt.
Ausserdem gibt es da auch einige Bugfixe zu den Blind-Bausteinen.
Ich hatte die Blindbausteine auch ne ganze Weile im Einsatz. Aber irgendwie sind wir nie Freunde geworden


----------



## hucki (8 September 2022)

Blockmove schrieb:


> Ich hatte die Blindbausteine auch ne ganze Weile im Einsatz. Aber irgendwie sind wir nie Freunde geworden


Hast Dich wohl *schwarz* mit geärgert:


peliphan schrieb:


> ... netter Ansatz von *Black*move




Sorry für den OT, aber den konnte ich mir einfach nicht entgehen lassen!


----------



## peliphan (8 September 2022)

@Blockmove sorry für die Umbenennung.. war keine böse Absicht


----------



## Joker666 (10 September 2022)

peliphan schrieb:


> Hallo Joker666,
> wollte mal fragen ob Du weitergekommen bist.
> habe ein ähnliches Problem und bin aktuell auch auf der Suche.
> habe nur Kleinigkeiten angepasst aber gleiches Phänomen.
> ...



Ich habe mein Problem gelöst bekommen. Bei mir lag es am Input Baustein, der stand nicht auf Master Mode True und dadurch wurde dann die vorherige Position der Rolladen nach beenden der Beschattung nicht wieder weitergeben und so blieben die Rolläden auf der Position stehen. 

Das hatte also nichts mit meiner ursprünglichen Vermutung der Uhrzeit zu tun. Wobei die richtige Uhrzeit auch wichtig ist, weil der Baustein dadurch den Sonnenstand berechnet.


----------



## peliphan (11 September 2022)

Hi, 
@Joker666 der Master Mode sitzt bei mir schon richtig. nach deaktivierungder Beschattung fahren die Raffstores wieder in die Ursprungsposition zurück. ==> wie erwartet.

@Blockmove Im Oscat Forum habe ich die Frage auch platziert, da ist aber relativ wenig los, ehrlihc gesagt sind die Beiträge eher Selbstgespräche  
link zu Oscat Forumsbeitrag

Tatsächlich würde ich gerne mal "unter die Haube" schauen, bin glaube ich sogar in der Lage Code zu lesen und zu verstehen... wenn ich den weg dorthin finde... daran scheitert es grade. 

ein "Problemfall ist grade aktiv" 


ich glaube mein "Problem" ist der komische Wert bei angel, 1.#QNAN scheint mir ein ungültig berechneter Wert zu sein.
Aber wie komme ich jetzt in den Genuss hier einen DeepDive in den Oscat Baustein zu machen? 
Doppelklicke ich auf den Baustein bringt mich zu den Libs und zu den Definitionen, aber ich sehe leider keinen Weg zu den Sources... 




Evtl. hast Du (oder wer anderes) ja einen kleinen Tip für mich.. 

Danke & Gruß
Peli


----------



## Heinileini (11 September 2022)

1.#QNAN bedeutet, dass ein REAL-Wert einen unzulässigen Inhalt hat.
Aus Deinem Post erschliesst sich mir nicht, als was bzw. wo 'angle' bei dem Baustein BLIND_SHADE auftaucht. 
Das muss a wohl eine AusgangsVariable sein? 
Oder wird dort eine Eingangs-Variable bzw. -Konstante auf Zulässigkeit geprüft?


----------



## KLM (11 September 2022)

Ich bin nicht sicher, ob das bei CODESYS 2 schon geht, aber Du könntest einen Breakpoint auf den FB setzen und dann mit F8 hineinspringen. Wenn Du da eine Fehlermeldung bekommst, musst Du die Bibliothek (*.lib) mit CODESYS öffnen, den FB exportieren, in Dein Projekt importieren und entweder umbenennen oder den FB in der Bibliothek vom übersetzen ausschließen. (Weil CODESYS 2 noch nicht richtig mit Namensräumen umgehen kann.)


----------



## KLM (11 September 2022)

Die Variable angle ist eine interne Variable des FB. Solange Du den Code nicht kennst, muss 1.QNAN nicht zwingend bedeuten, dass hier Deine Fehlerquelle liegt oder dass das  grundsätzlich ein Problem ist.


----------



## peliphan (13 September 2022)

@KLM das mit dem Debuggen ist mir leider nicht möglich, stelle mich entweder doof an oder (was ich glaube) geht das mit meiner Version nicht
ich glaube auch dass es sich rein um eine interne Variable handelt. 
es wäre interessant zu wissen was diesen QNAN auslöst, warum ich da so hinterher bin? 
- es ist der einzige Anhaltspunkt den ich habe.
- es sind bei mir 5 Raffstores in 3 unterschiedliche Richtungen, bei den 3 wo ich diese Probleme habe steht im Problemfall immer dieses QNAN.
die 2 Raffstores welche problemlos laufen zeigen Richtung Sonnenaufgang  hier wird nach der Beschattung sauber wieder die Ursprungspostition angefahren (komplett hoch) 
wie gesagt das Problem habe ich erst nachdem ich ein wenig feinjustiert habe mit den Werten
- spacing
- width


wieder einmal ein klassischer Fall von "never touch a running system" :-(


----------



## KLM (13 September 2022)

Ich sag doch, ich bin nicht sicher, ob das direkt aus der Bibliothek geht. Dafür arbeite ich heute zu selten mit der alten CODESYS 2. Aber was auf jeden Fall geht, egal welche CODESYS 2.3 Version Du einsetzt, ist, wenn:
1. Oscar Bibliothek mit CODESYS öffnen
2. FB exportieren
3. Dein Projekt öffnen
4. FB importieren
5. FB in der angezogenen Bibliothek in Deinem Projekt vom Übersetzen ausschließen - Kucks Du Projekt > Optionen > Übersetzungsoptionen > Objekte ausschließen > FB auswählen > Checkbox unten setzen
6. Download/Verbinden
7. Breakpoint setzen (entweder direkt im FB oder im Projekt und dann mit F8 in den FB springen)


----------



## peliphan (15 September 2022)

KLM schrieb:


> Ich sag doch, ich bin nicht sicher, ob das direkt aus der Bibliothek geht. Dafür arbeite ich heute zu selten mit der alten CODESYS 2. Aber was auf jeden Fall geht, egal welche CODESYS 2.3 Version Du einsetzt, ist, wenn:
> 1. Oscar Bibliothek mit CODESYS öffnen
> 2. FB exportieren
> 3. Dein Projekt öffnen
> ...


@KLM danke habe echt mal was gelernt. Wusste nicht dass ich so in die Libs reinschauen kann.
habe mir den Blind Shade einmal angesehen bzw. diesen extrahiert.
werde damit mal ein wenig rumspielen. 
Problem ist dass ich das nicht ganz so einfach testen kann da ich zum besagten Zeitpunkt meistens nicht zu hause bin.
Aber evtl. lässt es ja am Wochenende mal die Zeit zu. 

vielen Dank bis hierhin.

Peli


----------



## KLM (15 September 2022)

Geht allerdings nur bei quellcodeoffenen Bibliotheken. Die Bibliotheken von OEMs sind meist passwortgeschützt.

Du könntest Dir auch ein kleines Testprojekt erstellen. In der Simulation müsste das gleiche Verhalten auftreten. Die Uhrzeit liest Du dann nicht aus dem Controller sondern nimmst einfach eine Variable vom Typ DT. Passenden Initialwert vergeben und dann entweder zur Laufzeit forcen oder zyklisch hochlaufen lassen. Damit kann die Zeit auch schneller laufen, als real.
Tipp: Ein DT ist im Speicher 32 Bit groß und jeder ganzzahlige Wert repräsentiert eine Sekunde seit 1.1.1970. Du kannst also ein DWORD hochzählen und mit DWORD_TO_DT() erhälst Du, was der FB benötigt.


----------



## peliphan (18 September 2022)

StatusUpdate:

--> mein Problem ist gelöst. 
wir? 
ich habe die Blind_shade Funktionalität aus der LIG excluded und den Baustein händisch in mein Projekt kopiert. 
Damit es keine Kollision im Namensraum gibt habe ich den Baustein umbenannt in blind_shade_x.
Zeil war es dass ich das debuggen kann, bzw. dass ich unter die Haube schauen kann um zu verstehen was falsch läuft. 

was soll ich sagen, ohne eine weiter Änderung bin ich nun da wo ich sein wollte. 

Fazit irgend etwas war wohl "vertruwelt" ich denke irgend ein Timer oder eine Variabel war "krumm"

Das Thema ist für mich so erst einmal gelöst. 
Danke für eure Unterstützung vor allem an @KLM 

Peli


----------

