Страница 344 из 506 ПерваяПервая ... 244294334342343344345346354394444 ... ПоследняяПоследняя
Показано с 3,431 по 3,440 из 5053

Тема: ПР200

  1. #3431

    По умолчанию

    Добрый день.
    Пользуемся такими датчиками метки - http://www.sensor-com.ru/catalog/tag
    Датчики не обучаемые, поэтому надо правильно подобрать цвета излучения датчика и метки\фона. Других замечаний к ним нет, работают без нареканий.
    Для ПР200 нужны с PNP выходом; и надо учитывать частоту поступления сигнала с датчика в ПР200.

  2. #3432
    Пользователь Аватар для and909
    Регистрация
    25.10.2013
    Адрес
    Пермь
    Сообщений
    589

    По умолчанию

    IMHO лучший датчик контрастной метки - лазерный SICK. Используем модель KT3L.

  3. #3433

    По умолчанию

    Цитата Сообщение от energvk Посмотреть сообщение
    Всё, сообразил, спасибо)) Проверю - отпишусь
    Всё работает. Спасибо за помощь))

  4. #3434

    По умолчанию

    Цитата Сообщение от Сергей0308 Посмотреть сообщение
    Да, это в первую очередь, но всё равно не то показывает:

    Восход-Закат_2.PNG

    Восход-Закат.PNG

    Может чё с годом накосячил, а может действительно макрос показывает время восхода-захода Солнца, как на нём написано?
    Вот проект, на всякий случай!
    http://www.owen.ru/forum/showthread....l=1#post278339

    Если сделать "правильный" макрос
    Захват-2.png Захват-3.png

    то и считать время восхода/заката он будет верно.

    Сравните расчетные значения
    Захват-1.png

    со справочными - это Ваша картинка на 14-05-2018 г.
    Захват-4.png
    Последний раз редактировалось Мимоход; 11.10.2018 в 12:14.

  5. #3435

    По умолчанию

    Цитата Сообщение от Мимоход Посмотреть сообщение
    Если сделать "правильный" макрос
    Захват-2.png Захват-3.png

    то и считать время восхода/заката он будет верно.

    Сравните расчетные значения
    Захват-1.png

    со справочными - это Ваша картинка на 14-05-2018 г.
    Захват-4.png
    Не нашел, где начало обсуждаемой темы, но интересно, как себя ведет алгоритм не в симуляции, а непосредственно в приборе.
    С уважением, Ревака Юрий.
    Инженер группы технической поддержки компании "ОВЕН"
    e-mail: yu.revaka@owen.ru

    Шаблон описания ошибки ПР или OL http://ftp-ow.owen.ru/softupdate/OWE...s/Shablon.docx
    Видео уроки по ПР200 и OWEN Logic http://edu.owen.ru/series/pr200_rev/
    Другие видеоролики по тематике ПР https://www.youtube.com/channel/UCj4...H5H3d_t6iDlQOQ

  6. #3436

    По умолчанию

    Цитата Сообщение от Ревака Юрий Посмотреть сообщение
    Не нашел, где начало обсуждаемой темы, но интересно, как себя ведет алгоритм не в симуляции, а непосредственно в приборе.
    Еще лучше чем в симуляции.
    Начало здесь http://www.owen.ru/forum/showthread....l=1#post278333

    и возражения Сергея по макросу здесь http://www.owen.ru/forum/showthread....l=1#post278339

    ЗЫ
    Макрос сделан по мотивам OSCAT
    Код:
    FUNCTION_BLOCK SUN_TIME_My
    VAR_INPUT
    	LATITUDE : REAL;				(* Широта географического положения  *)
    	LONGITUDE : REAL;				(* Долгота географического положения  *)
    	UTC : DATE;						(*	мировое время	*)
    	H : REAL := -0.83333333333;	(* Высота над горизонтом для восхода солнца *)
    END_VAR
    VAR_OUTPUT
    	MIDDAY : TOD;				(*	Астрономический полдень по Гринвичу *)
    	SUN_RISE : TOD;				(*	Восход солнца на текущий день по Гринвичу *)
    	SUN_SET : TOD;				(*	Заход олнца на текущий день по Гринвичу *)
    	SUN_DECLINATION : REAL;		(*	Склонение солнца над горизонтом в полдень в градусах	*)
    END_VAR
    VAR
    	dk: REAL;						(* Склонение солнца над горизонтом в полдень *)
    	delta: TIME;					(* Дельта от полудня для восхода и захода солнца  *)
    	b: REAL;
    	RAD_H: REAL;
    	T: REAL;
    	OFFSET: REAL;
    END_VAR
    VAR CONSTANT
    	PI2: REAL := 6.28318530717958647692528676655900576;
    END_VAR
    
    B := latitude * 0.0174532925199433;
    
    T := UINT_TO_REAL(DAY_OF_YEAR(utc));
    OFFSET := -0.1752 * SIN(0.033430 * T + 0.5474) - 0.1340 * SIN(0.018234 * T - 0.1939);
    MIDDAY := DWORD_TO_TOD(REAL_TO_DWORD((12.0 - OFFSET - longitude * 0.0666666666666) * 3600000));
    DK := 0.40954 * SIN(0.0172 * (T - 79.35));
    
    sun_declination := MODR(57.29577951308232 * DK, 360.0);
    IF sun_declination > 180.0 THEN sun_declination := sun_declination - 360.0; END_IF;
    sun_declination := 90.0 - LATITUDE + sun_declination;
    
    RAD_H:= MODR(0.0174532925199433 * H, PI2);
    delta := DWORD_TO_TIME(REAL_TO_DWORD((ACOS((SIN(RAD_H) - SIN(B) * SIN(DK)) / (COS(B) * COS(DK))) * 3.819718632) * 3600000));
    sun_rise := MIDDAY - delta;
    sun_set := MIDDAY + delta;
    Это переработаный ФБ с минимальным использованием других функций библиотеки OSCAT
    Последний раз редактировалось Мимоход; 11.10.2018 в 12:49.

  7. #3437

    По умолчанию

    Интересный макрос получился для вычисления ARCCOS(x)
    Захват-5.png

    Если сравнивать с макросом, в котором используется разложение в ряд


    то для значений X > 0,57 в плоть до 1 точность по этой формуле существенно выше

    Чем я и воспользовался
    Захват-6.png

    А ниже - классический способ вычисления с помощью рядов.
    Здесь "традиционный" ARCSIN разложен в ряд, а ARCCOS вычисляется через pi/2 - ARCSIN
    Захват-7.png
    Последний раз редактировалось Мимоход; 11.10.2018 в 13:57.

  8. #3438

    По умолчанию

    Во вложении сам макрос SUN_TIME.tpl
    И пример в 12 версии OL

    На выходе макроса время в двух форматах
    - аналог TIME_OF_DAY (сокр. TOD) содержит время суток, начиная с 0 часов (с точностью до миллисекунд)
    - и в секундах начиная с 0 часов

    Причем время рассчитано по Гринвичу. По этому для практического применения нужно использовать смещение, соответствующее часовому поясу Вашего места.
    Назначение входа H см. комментарий внутри макроса.

    Попутно были сделаны вспомогательные макросы, часть из них может быть использована не зависимо от Sun_Time

    Может Юрий включит данный макрос в базу, если посчитает мой труд достойным для этого.

    UPD
    Сделал новую версия макроса SUN_TIME_v2.tpl
    - Время на выходах толоько в сек
    - Используются новые версии вспомогательных макросов
    fMOD(v2) (остаток от деления для float)
    Захват-3.png

    FLOOR2(v2) (возвращает наибольшее ЦЕЛОЕ число, которое не больше, чем ВЕЩЕСТВЕННОЕ(float) X)
    Захват-1.png

    TO_FL(v2) (Конвертация целого со знаком в FLOAT)
    Захват-2.png

    Результат для Москвы на 10.01.2019
    Захват-4.png

    С сайта https://planetcalc.ru/300/
    Захват-5.png

    UPD2
    Обновил версию макроса до SUN_TIME_v3.tpl

    Изменения связанны с потенциальной ошибкой в макросе FLOOR2(v2)
    Тк преобразование TO_INT для отрицательных FLOAT дает 0, то и функция FLOOR2 будет работать не правильно для отрицательного аргумента.
    Захват-5.png
    Скорей всего, что для данного применения макроса FLOOR2 отрицательных значений у аргумента не будет, но не хочется его в таком виде оставлять.

    Новая редакция
    FLOOR2(v3)
    Захват-1.png
    Макрос FLOOR2 используется в макросе fMOD, по этому fMOD получил новую редакцию
    Захват-3.png

    Вложения - архив с макросом и тестовый пример обновил.
    Вложения Вложения
    Последний раз редактировалось Мимоход; 27.06.2019 в 14:33.

  9. #3439
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,583

    По умолчанию

    з.ы. а никто не делал макрос времени в формате double ????
    C# DateTime и перевод в double - DateTime.ToOADate() и обратно соответственно DateTime.FromOADate

  10. #3440

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    з.ы. а никто не делал макрос времени в формате double ????
    C# DateTime и перевод в double - DateTime.ToOADate() и обратно соответственно DateTime.FromOADate
    Посмотрите тут http://www.owen.ru/forum/showthread....l=1#post219991

    Набор макросов http://www.owen.ru/forum/showthread....l=1#post219992

    Может поможет?

Страница 344 из 506 ПерваяПервая ... 244294334342343344345346354394444 ... ПоследняяПоследняя

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •