'Inteligenty' dom ze sterownikiem PLC

 Language:
Szukanie zaawansowane  

Aktualności:

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

Autor Wątek: Aktualny czas w sterowniku  (Przeczytany 5339 razy)

rafkar

  • Newbie
  • *
  • Wiadomości: 6
    • Zobacz profil
Aktualny czas w sterowniku
« dnia: Grudzień 06, 2013, 12:47:51 pm »

Witam mam taki problem . Potrzebuję odczyać jaki jest aktualny czas w sterowniku chodzi data oraz godzina . Próbowałem korzystać z funkcji TIME() ale wyniki są jakieś dziwne DT#1970-02-08-18:13:25 . Dodam ze w sterowniku jest ustawiony prawidłowy czas . Z góry dzięki za pomoc.
Zapisane

admin

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 304
    • Zobacz profil
Odp: Aktualny czas w sterowniku
« Odpowiedź #1 dnia: Grudzień 06, 2013, 06:19:38 pm »

Cześć,

czas z zegara trzeba odczytywać funkcją SysRtcGetTime z biblioteki SysLibRtc.lib.  W praktyce wygląda to tak:

CURRENT_TIME:=SysRtcGetTime(TRUE);

A w szczegółach proponuję:

1. W Resrouces, Global Variables zdefiniować zmienną globalną:

VAR_GLOBAL
   CURRENT_TIME            :DATE_AND_TIME;
END_VAR

2. Utworzyć oddzielny proces np. ReadCLock(); W Resources, Task Configuration utworzyć dodatkowy Task typu cyclic uruchamiany co T#1s0ms i wywołać w tym tasku program ReadClock();

3.  W programie ReadClock() zamieścić 1 linię:
CURRENT_TIME:=SysRtcGetTime(TRUE);

W efekcie w całej strukturze programu będzie dostępna zmienna CURRENT_TIME typu DATE_AND_TIME, odświeżana co 1sek.

Pozdrawiam,
Zapisane

mordorr

  • Full Member
  • ***
  • Wiadomości: 156
    • Zobacz profil
Odp: Aktualny czas w sterowniku
« Odpowiedź #2 dnia: Styczeń 23, 2015, 12:22:31 am »

Wątek antyczny, ale może komuś się przyda, albo ktoś wyprowadzi mnie z błędu.

SysRtcGetTime ma jedną wadę jak dla mnie - nie wiem jak przerobić DT na DayOfWeek (1 - poniedzialek, 2 - wtorek....)

więc odczyt czasu zrobiłem ciut inaczej:
Biblioteka SysLibTime - i funkcja CurrTimeEx
produktem wyjsciowym jest tablica w której czas jest już ładnie "rozsplitowany" i mozna go wykorzystać np w FbTimeSwitch z Building_Common.lib (nie potrzebuję scheduler_03.lib)



Zapisane

hexal

  • Newbie
  • *
  • Wiadomości: 9
    • Zobacz profil
Odp: Aktualny czas w sterowniku
« Odpowiedź #3 dnia: Luty 18, 2016, 02:16:16 am »

witam,
może to trochę zawiłe ale działa (841): DAY_OF_WEEK(SDT_TO_DATE(DT_TO_SDT(CURRENT_TIME))) mi w bWEEK_DAY z FbTimeSwitch;
tj podaje jako 1 - poniedziałek, 2 - wtorek itd.

Ja zrobiłem sito czasowe do uruchamiania oświetlenia przez czujkę na schodach z wykorzystaniem TIMECHECK:

czy_noc : BOOL;

czy_noc:=TIMECHECK(SDT_TO_TOD(DT_TO_SDT(CURRENT_TIME)), TOD#19:00:00, TOD#6:30:00); (*aktualna godzina, poczatek nocy, koniec nocy*)

po dodaniu do zmiennych:
zegar_astronomiczny :SUN_TIME;

i w programie:
zegar_astronomiczny(
LATITUDE:=51,
LONGITUDE:=22,
UTC:=SDT_TO_DATE(DT_TO_SDT(CURRENT_TIME)));

zmieniłem
czy_noc:=TIMECHECK(SDT_TO_TOD(DT_TO_SDT(CURRENT_TIME)), zegar_astronomiczny.SUN_SET, zegar_astronomiczny.SUN_RISE);

w planach optymalizacja żeby tylko raz albo dwa dla fasonu przeliczał wschód i zachód słońca żeby się sterownik nie męczył ;)

pozdrawiam,
piotrek
Zapisane

Gradek

  • Newbie
  • *
  • Wiadomości: 29
    • Zobacz profil
Odp: Aktualny czas w sterowniku
« Odpowiedź #4 dnia: Czerwiec 17, 2021, 11:32:40 pm »

Moje pytanie dotyczy tego samego tematu, więc się tutaj przykleję...czy PLC Wago 750-880 jest w stanie sam zmieniać czas letni na zimowy i z powrotem? W ustawieniach przez webserver można ręcznie zmienić czas, datę, strefę czasową i jest też checkbox od DST (daylight saving time = czas letni). Chciałbym aby PLC dawał prawidłową godzinę. Aktualnie w Codesys korzystam z funkcji DST z Oscata, ale może jest prostszy sposób.
Zapisane

nadol

  • Newbie
  • *
  • Wiadomości: 1
    • Zobacz profil
Odp: Aktualny czas w sterowniku
« Odpowiedź #5 dnia: Lipiec 29, 2021, 09:59:34 am »

Cześć,
Możliwe jest wykorzystanie biblioteki "WagoLibDaylightSaving". Jeżeli dobrze pamiętam firmware w wersji 14 umożliwia ustawienie tych opcji z poziomu webserwera bez konieczności stosowania biblioteki.
Zapisane