-Menü

Beiträge anzeigen

Dieser Abschnitt erlaubt es Ihnen, alle Beiträge anzusehen, die von diesem Mitglied geschrieben wurden. Beachten Sie, dass Sie nur Beiträge sehen können, die in Teilen des Forums geschrieben wurden, auf die Sie aktuell Zugriff haben.

Beiträge anzeigen-Menü

Beiträge - HopeITworks

#1
Ich habe die damals von Thies direkt bekommen als ich ein Angebot über die Wetterstation angefordert habe.

Ich habe dir die PDF mal angehängt ;-)

[gelöscht durch Administrator]
#2
Hö wie kommst du denn darauf? Das ist mit 2 Beiträgen aber ein fauler Bot  ;D
#3
Finally i have bought a Thies WSC 11 Compact Weatherstation. It´s a very good Product and every Cent worth in my Opinion  :)
#4
Oh das freut mich aber jetzt sehr  ;D Ich musste mir diese Lösung leider wieder hart erarbeiten, aber dafür bleibt sie hoffentlich im Kopf :)
#5
Ich hab mir jetzt mal nen SCL Baustein dafür gebaut und es scheint zu funktionieren :) Die Werte sind plausibel.

Über Verbesserungsvorschläge würde ich mich sehr freuen :)

FUNCTION_BLOCK "Pluggit_Float_to_Real"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
   VAR_OUTPUT
      OUT : Real;
   END_VAR

   VAR_IN_OUT
      "dword" { ExternalAccessible := 'False'; ExternalVisible := 'False'; ExternalWritable := 'False'} : DWord;
   END_VAR

   VAR_TEMP
      DWord_Temp : DWord;
      idword : DWord;
   END_VAR


BEGIN
#DWord_Temp := #dword;


#idword.%B2 := #DWord_Temp.%B0;
#idword.%B3 := #DWord_Temp.%B1;
#idword.%B0 := #DWord_Temp.%B2;
#idword.%B1 := #DWord_Temp.%B3;


#OUT := DWORD_TO_REAL(#idword);
END_FUNCTION_BLOCK
#6
Ich bekomme von meiner Pluggit Lüftungsanlage mehrere Werte in Float geliefert. Es sind jeweils 2 Registeradressen die für einen Wert benutzt werden.

Modbus Adresse 40133 und 40134 in dem Fall.

Ich lege diese als DWord ab. Jetzt muss ich allerdings die Bytes schieben. Aus Byte A B C D muss C D A B werden und danach in Real gewandelt werden. Wie mache ich das am einfachsten?

Ich habe damit leider noch keinerlei Erfahrungen, daher die wahrscheinlich recht doofe Frage  ;D
#7
So endlich hätte ich mal etwas Zeit das umzubauen und zu testen aber ich hänge schon wieder fest ;-)

Kann ich die Daten von den im InterruptOB aufgerufenen Bausteinen auch in einen Instanzdatenbaustein anlegen? Irgenwie schaff ich es nicht dort mit Instanzdatenbausteinen zu arbeiten in diesem OB. Geht das vielleicht garnicht und somit nur im FB´s?
#8
Stimmt @ mattsches das ist ja der BLIND_CONTROL der zeitkritisch ist. Der bekommt ja die Werte übergeben und arbeitet das dann (schnell oder eben zu langsam  ;D) ab.

Also keine Ahnung was du mit einem Gesamt Jalousie FB meinst. Ich hab hier bei mir immer von BLIND_SHADE z.b. nen FB wo der SCL Code drin ist und in einem weiteren FB rufe ich dann z.B. diesen SCL FB für alle Jalousien im Erdgeschoss auf. Das selbe nochmal mit dem Obergeschoss. Das habe ich mit allen BLIND Bausteinen so gemacht. Also auch BLIND_NIGHT_EG und BLIND_NIGHT_OG zum Beispiel.

Also müsste ich quasi den BLIND_CONTROL_EG und den BLIND_CONTROL_OG in einen Zeiten OB packen und den z.B. alle 10ms laufen lassen, ja?



Zu deinem letzten Punkt: Da hast du natürlich Recht das eine Positionierung auf Zeit immer schlecht ist und ganz besonders in unserem Fall wenn die Winkelverstellung so schnell abläuft. Nur es gibt ja keine Alternative dazu, zumindest fällt mir keine dazu ein :-/ Diese Totzeiten würden mich wohl auch interessieren wie du die eingebaut hast. Denn das wird mich ja auch betreffen, dass die Werte mit der Zeit dann in der Ausführung der Lamellen quasi davondriften und nicht mehr stimmen.
#9
Danke für deine ausführliche Antwort @ fu_zhou  :)

Ja das meine ich eben auch, dass es nicht stimmen kann das sich die Zeit auf die Bearbeitung von BLIND_SHADE bezieht, sondern auf die Zykluszeit der CPU. Und dann hat man immer Probleme da die CPU Zykluszeit schnell mal 40ms hat. Dann muss ich den SENS Wert so hoch drehen das er erst bei hoher Abweichung überhaupt fährt, da es eben ansonsten zu deinen unkontrollieren AUF / AB Bewegungen kommt wie du schon geschrieben hast.

Nur wie kann ich das nun anpassen damit die Winkelpositionierung genauer abläuft? :-/

Ich habe mein Projekt komplett mit TIA V14 erstellt und ich kann leider die Zykluszeit durch z.B. optimierte Bausteine nicht weiter erhöhen. Das ist ein weiteres Problem vor dem ich stehe. Ich habe im Moment noch 28% Arbeitsspeicher frei. Schalte ich nun alle Bausteine auf optimierte Bausteine dann geht mir der Arbeitsspeicher der 1214C aus :( Ich habe bisher leider auch noch nicht rausgefunden, warum der Arbeitsspeicher Verbrauch von optimierten Bausteinen um so viel höher ist, als von nicht optimierten.

Die optimierten Bausteine würde mir allerdings 10ms CPU Zykluszeit sparen und wären daher natürlich schon sehr wichtig in dem Fall. Im Schnitt ist es so, dass z.B. beim Umschalten nicht optimiert auf optimiert meines BLIND_SHADE FB der den SCL Code enthält, ich sofort alleine für diesen schon 3-4% mehr Arbeitsspeicher benötige. Das macht man dann noch für die ganzen anderen Bausteine und schon ist der Arbeitsspeicher auf 100% belegt und nichts geht mehr.
#10
Hmm ich habe keine Ahnung ob das in dem Fall irgendwas bringen würde? Denn es muss ja noch der ganze Code durchlaufen werden weil die Arbeit ja BLIND_ACTUATOR ausführt schlussendlich?!
#11
Ich habe eine Frage: Hat vielleicht einer nen Tip wie ich die BLIND_SHADE Module Zykluszeitunabhängig umbauen kann? Mit den XBLIND Modulen wurde das scheinbar auch so gemacht, aber diese wurden ja leider nie offizielle released und auch nicht dokumentiert.

Ich habe nämlich das Problem das ich schon 50ms +xx Zykluszeit habe und das ist für eine genaue Lamellenverstelleung kaum brauchbar, da meine Lamellenwinkelverstellung gerade mal 1,1 Sekunden dauert. Jetzt muss ich SENS so stark erhöhen, dass die Abweichung / Tolleranzen viel zu hoch sind um den BLIND_SHADE effektiv nutzen zu können.

Daher würde ich den gerne irgendwie umbiegen damit der zykluszeitunabhängig arbeitet wie in den XBLIND Modulen :)


Vielleicht hat ja einer nen Tip für mich wo ich da ansetzen könnte :)
#12
Ich bin auf der Suche nach einer Wetterstation welche ich in meine S7 1200 einbinden will um die Beschattung zu regeln und zu schützen. Bisher bin ich bei den Elsner P03 oder P04 hängen geblieben. Weiß einer die Unterschiede der beiden?? Ich werde da auf der Homepage nicht wirklich schlau draus, wo diese Unterschiede außer in der Bauform liegen?

Oder gibt es andere brauchbare Alternativen wie diese beiden Elsner? Ich hätte wenn dann die GPS Variante genommen. Ja ich weiß.. 200â,¬ für ne GPS Uhr mehr bezahlen.. Ich bin eben Technikfan ;-D
#13
Ja das mit dem Manual_Timeout und dem Zurückfahren in die BLIND_DAY Position war so gewünscht. Ich habe auch im BLIND_NIGHT diese Abschaltung für eine Nacht entfernt bei Handeingriff. So fährt bei mir nach 2H alles wieder dahin zurück. Das fanden wir bisher für uns am sinnvollsten :-)

Stimmt das ganze kommt auch mit weniger Zeilen aus - Danke für den Tip ;-) Habe bisher nur die Grundfunktion getestet um zu sehen ob alles wie gewünscht arbeitet bevor ich versuche den Code noch etwas zu verbessern  ;D
#14
Ich habe mir, da mir das Verhalten mit MasterMode True nicht gefällt, einen sehr einfachen BLIND_DAY gebaut. Diesen hänge ich zwischen BLIND_NIGHT und BLIND_SECURITY und schon kann ich für jedes Rollo oder jede Jalousie eine Tagposition definieren, welche angefahren wird wenn eben der Nachtmodus und der BLIND_SHADE beide inaktiv sind. In den beiden Fällen schaltet sich der Baustein durchsichtig und fertig :) In allen anderen Fällen wartet der Baustein darauf, dass er in Automatikmodus fällt, und sobald S_IN = 130 ist (Automatikmodus), schaltet er die Tagposition zum BLIND_CONTROL durch.

Der MASTER_MODE im BLIND_INPUT muss dafür dann selbstverständlich auf FALSE geschalten werden.

IF ((#S_IN = 141 OR #S_IN = 151) AND #UP AND #DN) THEN
    #QU := #UP;
    #QD := #DN;
    #po := #pi;
    #ao := #ai;
    #status := #S_IN;
ELSIF #E_day AND #UP AND #DN THEN
    #QU := #UP;
    #QD := #DN;
    #po := #day_position;
    #ao := #day_angle;
    #status := 142;
ELSE
    #QU := #UP;
    #QD := #DN;
    #po := #pi;
    #ao := #ai;
    #status := #S_IN;
END_IF;


Ja, der Code ist sicherlich seeehr primitiv und ausbaufähig, aber er funktioniert bei mir bisher so wie gewünscht  ;D
#15
Hi,

ich denke mal es wird an dem Abend nicht geöffnet da die Berechnungen von CALENDAR noch nicht erfolgt sind? Oder woher nimmst du diese Daten?
Bei mir geht der Baustein nämlich auch nach CPU Neustart in der 1. Nacht bzw. am Abend des CPU Neustarts.

Morgen öffnen macht nicht der BLIND_NIGHT Baustein. Das gibt der Code nicht her. Die Doku hierzu stimmt leider nicht.

Du musst bei BLIND_INPUT den MasterMode auf True schalten. Wenn dann der Sonnenaufgang + Offset um ist, gehen die Rollo und Jalousie in die Position, in der sie waren BEVOR BLIND_NIGHT sie geschlossen hat. Ich finde dieses Verhalten auch doof und ich werde mir den Baustein daher auch umbauen um day_position, day_angle und den Öffnungszeitpunkt definieren zu können. So machst du vor Nachtstellung mal kurz ein Rollo halb auf, der BLIND_NIGHT fährt das Ding komplett zu und nach Sonnenaufgang fährt das Rollo dann nicht auf POS 255 (ganz auf) sondern wieder auf diese halbe Stellung welche du zuvor angesteuert hast. Nachvollziehbar ist das nicht so wirklich - und sinnvoll meines Erachtens auch nicht. Die Lichtverhältnisse sind ja bei Positionssetzung sicherlich ganz andere als wenn dann die Sonne aufgegangen ist.