'Inteligenty' dom ze sterownikiem PLC

 Language:
Szukanie zaawansowane  

Aktualności:

Powrót do strony głównej: www.edom-plc.pl

Autor Wątek: Problem z CALENDAR z biblioteki Oscat  (Przeczytany 2315 razy)

schuey

  • Jr. Member
  • **
  • Wiadomości: 54
    • Zobacz profil
Problem z CALENDAR z biblioteki Oscat
« dnia: Sierpnia 12, 2020, 07:32:33 pm »

Witajcie,

W tutorialach jest mowa o stosowaniu zmiennej Calendar do sterowania zachodami / wschodami słońca. Dodałem zmienną typu CALENDAR z moimi współrzędnymi i offsetem +2h na strefę czasową od UTC:

VAR
Calendar : CALENDAR:=(LATITUDE:=53.0, LONGITUDE:=14.0, OFFSET:=120);
END_VAR

a następnie w bloku programu inicjuję czas UTC:

Calendar.Utc := SysRtcGetTime(TRUE);

Gdy próbuję użyć tej zmiennej w BLIND_NIGHT ( będącym poprawiona wersją wg inego posta na forum ), to atrybuty SUN_SET oraz SUN_RISE, oraz LDT są wszystkie błędne. Zachody wschody pokazują 0:00 a lokalny czas LDT to unixowy rok 1970-01-01.

Blind_Night(
        ...
DTIN := Calendar.LDT,
SUNSET := Calendar.SUN_SET,
SUNRISE := Calendar.SUN_RISE
);

Co robię źle, w moim rozumieniu zmienna Calendar powinna automatycznie obliczyć mi LDT, SUN_SET i SUN_RISE wg podanego położenia geograficznego i strefy czasowej?

Pozdrawiam!
Zapisane

admin

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 313
    • Zobacz profil
Odp: Problem z CALENDAR z biblioteki Oscat
« Odpowiedź #1 dnia: Sierpnia 12, 2020, 09:18:50 pm »

Cześć,

takie testowe pytanie - pracujesz na programie wgranym na sterownik, czy w trybie symulacji?
Zapisane

schuey

  • Jr. Member
  • **
  • Wiadomości: 54
    • Zobacz profil
Odp: Problem z CALENDAR z biblioteki Oscat
« Odpowiedź #2 dnia: Sierpnia 13, 2020, 12:02:22 am »

Cześć

Sprawdzam w trybie symulacji, ale do ćwiczeń przeniosłem cały "zegar" do bloku funkcyjnego od kontrolowania rolety. Gdzieś na forum mignęła mi informacja, że przy symulacji nie działają programy spoza PLC_PRG
Zapisane

admin

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 313
    • Zobacz profil
Odp: Problem z CALENDAR z biblioteki Oscat
« Odpowiedź #3 dnia: Sierpnia 17, 2020, 08:37:15 am »

Cześć,

a

Calendar.Utc := SysRtcGetTime(TRUE);

w ogóle działa w trybie symulacji?
Zapisane

schuey

  • Jr. Member
  • **
  • Wiadomości: 54
    • Zobacz profil
Odp: Problem z CALENDAR z biblioteki Oscat
« Odpowiedź #4 dnia: Sierpnia 19, 2020, 01:53:54 pm »

OK, w moim kodzie najprawdopodobniej brakowało wywołania funkcji:

Calendar_Updater(XCAL:=Calendar, HOLIDAYS:=Holidays);
Po dodaniu tego wyskakują mi błędy kompilacji w bibliotece Oscat, np. w pliku CONSTANTS_MATH

FACTS : ARRAY[0..12] OF DINT := 1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600;
przyczepia się "COOO6: ';' expected instead of ','

Czy w którejś wersji zmieniły się sposoby deklaracji tablic? Zakładam, że taki błąd pojawiałby się także w waszych programach.
Zapisane

schuey

  • Jr. Member
  • **
  • Wiadomości: 54
    • Zobacz profil
Odp: Problem z CALENDAR z biblioteki Oscat
« Odpowiedź #5 dnia: Sierpnia 19, 2020, 04:55:01 pm »

Cześć,

a

Calendar.Utc := SysRtcGetTime(TRUE);

w ogóle działa w trybie symulacji?

Tak, działa OK jak sobie wskoczę w podgląd READ_CLOCK to wyraźnie zmienna UTC "cyka" co sekundę.
Zapisane