Все языки программирования ведут отсчет от 1970.01.01 в миллисекундах, это число в 4 байта не помещается, но если разделить на 1000, получаются секунды а так же возможность разместить это число в целочисленную переменную для Лоджика
Легко считать от начала до периода до текущего значения времени и конца периода в простом целочисленном формате, чем вычислять сколько прошло дней, месяцев, лет, часов, минут используя на каждый вид свою переменную.
Я бы продолжил дальше для расчета восхода и захода, но мне требуется решение синуса, косинуса, натурального логарифма и обход деления не ноль, хотя бы вот в таком кодеКод:IF divi = 0.0 THEN MODR := 0.0; ELSE MODR := in - DINT_TO_REAL(FLOOR2(in / divi)) * divi; END_IF;
Так пойдет делить на ноль?Макрос синуса есть ,из него получаем косинус ....возведение в любую степень есть .Инвертор можно убрать ,а поменять входа на FSEL,однако
Последний раз редактировалось rovki; 09.04.2013 в 17:58.
электронщик до мозга костей и не только
радианы преобразуйте в градусы и на макрос синуса ,если точность устроит ,иначе нужно переделать слегка макрос синуса(Упростить).
Последний раз редактировалось rovki; 09.04.2013 в 20:11.
электронщик до мозга костей и не только
вы шутите .
sin^2 alpha + cos^2 alpha = 1
корень кв. есть в ПР
остальное тут http://www.mobilab.ru/articles/99/
есть проще вариант расчета времени ,ни так как считают астрономы ,может правда точность не та ,но 10-15мин на освещение за глаза.График изменения времени восхода можно представить в виде синуса ,,пол периода -год....А вот дальше нужна смекалка ,как все это привязать к местности и времени .
Последний раз редактировалось rovki; 09.04.2013 в 21:46.
электронщик до мозга костей и не только
синус в том самом макросе именно так и считается - берутся первые 5 слагаемых ряда (если не изменяет память)
получается достаточно точно (если не считать момента описанного ниже)основная погрешность в этом макросе кроется в неточном вводе константы Пи.
я тут свой синус стряпал, и сравнивал - если не править константу ошибка идёт в 4-5 знаке, а если исправить то точность на грани возможностей ПР - 8й знак после запятой.
PS если вам нужно считать в радианах, надо просто вырезать из макроса перевод из градусы в радианы.
(во вложении исправленный макрос, с максимально точным Пи и вещественными градусами, на входе)
Последний раз редактировалось AI!; 09.04.2013 в 22:16.
начинающий профессионал
Последний раз редактировалось rovki; 09.04.2013 в 22:30.
электронщик до мозга костей и не только