Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[GX IEC Developer] Program "zegara astronomicznego"

zulus18 24 Oct 2017 21:47 912 7
  • #1
    zulus18
    Level 12  
    Witam
    Chciałbym zaimplementować w moim sterowniku (Mitsubishi FX2N) funkcję zegara astronomicznego. Chciałbym aby w zależności od aktualnej daty (nie koniecznie z dokładnością do jednego dnia, może być z dokładnością do tygodnia) zmieniany był czas załączenia oświetlenia zewnętrznego. Czas wyłączenia mam ustawiony na sztywno na godzinę 23:00.
    Na chwilę obecną porównuje rejestry D8013...D8015 z wpisanymi na sztywno w programie wartościami godzin, minut i sekund ale w związku z szybkim skracaniem się dnia nie jest to wygodne ani praktyczne. Nie mam możliwości zastosowania zewnętrznej zmierzchówki.
    Program mam napisany w GX IEC Developer ale może ktoś ma jakieś przykłady napisane w czymś kompatybilnym?
    [19-21.10.2021] Technology Days Zapisz się darmo
  • #3
    kemot55
    Level 31  
    Nie wiem czy to ma sens. Zobacz jak wygląda algorytm. Żeby coś sie sensownie policzyło (w sensie pojedynczych minut a nie dziesiątek minut) pewnie trzeba by użyć liczb zmiennoprzecinkowych w formacie "double".
    Nie lepiej zakupić zegar astronomiczny (a nie zmierzchówkę)? Policzy co trzeba (dobre umożliwiają wprowadzenie współrzędnych geograficznych) i wystawi sygnał (zamknie/otworzy) styki przekaźnika. Tylko to dodatkowe koszty.
    Ewentualnie jeżeli to jest dla jednego miejsca na ziemi (z pominięciem biegunów :-)), policzyć zmianę roczną (sin()) i dalej czas liczyć jako funkcję sinusa z parametrami (na zasadzie Tonoff=godzina_bieżąca+A*sin(Data_bieżąca)
    Czas wschodu i zachodu słońca zmienia się też w funkcji lat (będzie inny dla np. tej samej daty w 2020 i w 2030). Tylko zmiany są na poziomie pojedynczych sekund/rok
  • #4
    zulus18
    Level 12  
    Niestety nie mam możliwości podłączenia dodatkowej zmierzchówki lub zegara astronomicznego (brak wolnych wejść w sterowniku) dlatego chciałbym to zrealizować czysto programowo. Funkcje trygonometryczne są w GX IEC Developer ale tak jak pisze kemot55 obliczenia są dosyć skomplikowane. Nie potrzebuje nie wiadomo jakiej dokładności dlatego myślałem o takiej procedurze: mamy numer tygodnia nr 43 więc ustaw czas załączenia na 18:15, tydzień 44 - czas załączenia 18:00 itd. Jedyne wyzwanie to prawidłowo wyliczyć numer tygodnia.
  • Helpful post
    #5
    kemot55
    Level 31  
    Ale to ma być dla jednego miejsca czy przenośne? Daj współrzędne to mogę policzyć przebieg korekty względem czasu UTC dla roku i w funkcji daty.
  • #6
    zulus18
    Level 12  
    To ma być sterowanie tylko i wyłącznie stacjonarnie w jednej lokalizacji (52°10′00″N 22°16′30″E). Dokładność jaka mnie zadowala to +/- 15-20 minut.
  • #7
    zoltar_vero
    Level 12  
    Pytanie: PLC jest spięte z jakimś panelem HMI ? Może wygodniej byłoby zastosować moduł eternetowy i synchronizować czas po sieci ?
  • #8
    zulus18
    Level 12  
    Dzięki pomocy kemot55 udało się zrobić coś w rodzaju programowego zegara astronomiczngo. Zostało mi jeszcze dopieszczenie w programie momentu zmiany czasu zimowy/letni i letni/zimowy. Póki co zastosowałem uproszczenie, że czas zimowy jest w miesiącach listopad...marzec a w pozostałych miesiącach jest czas letni.