-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 - Mc_Franky

#1
Der Baustein macht bei der Initialisierung Probleme. Und zwar wird bei ungünstiger Situation der Baustein nicht mehr aufgerufen. Ich habe bei mir im Quellcode bei der Initialisierung folgendes mit eingefügt:

IF NOT init THEN
    init := TRUE;
    heat_start := set_Date(year:=1972,month:=month_of_date(heat_period_start),day:=day_of_month(heat_period_start));
    heat_stop := set_Date(year:=1972,month:=month_of_date(heat_period_stop),day:=day_of_month(heat_period_stop));
    cool_start := set_Date(year:=1972,month:=month_of_date(cool_period_start),day:=day_of_month(cool_period_start));
    cool_stop := set_Date(year:=1972,month:=month_of_date(cool_period_stop),day:=day_of_month(cool_period_stop));
    last_run := DINT_TO_TIME(DWORD_TO_DINT(T_PLC_MS())) - cycle_time;
END_IF;

Damit wird beim ersten Aufruf der Baustein einmal durchlaufen und der Last_run richtig initialisiert.

Vielleicht kann das in den Quellcode mit übernommen werden.
#2
Ich habe mir mal einen Heizkreis aufgebaut. Dabei ist mir aufgefallen, das der FC341 nicht korrekt arbeitet. Im Mode=0 soll er Durchschnittswert aller 3 Temperaturen ermittelt werden. Es wird aber nur der Default-Wert ausgegeben. Habe mir dann den FC341 mal angeschaut und einen Fehler festgestellt:

Sprungmarke I012
I012: CLR   
      U     L      0.0      hier müsste U L 2.4 stehen!
      NOT   
      T     LD     6
      SPB   A7d7
      T     LD     6
      SPA   A7d8

Vielleicht könnte sich das mal jemand ansehen...