Страница 4 из 69 ПерваяПервая ... 234561454 ... ПоследняяПоследняя
Показано с 31 по 40 из 771

Тема: Обсуждение макросов для OWEN Logic

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,108

    По умолчанию Набор макросов для работы с временем UNIX. Продолжение.

    1. ExtrD_T. Извлекает из DT дату и время суток, как отдельные части, что позволят использовать их по отдельности.
    Захват-10.png
    Этот макрос используется в
    DT_to_UTC

    2. Собственно из TIME можно получит только Час, Мин и Сек времени суток. Чем и будет заниматься макрос ExtrTime
    Захват-11.png
    Этот макрос используется в
    DT_to_UTC


    3. DayOfYear. Определяет по Дате номер дня в году.
    Захват-12.png
    Этот макрос используется в
    ExtrMonth
    ExtrDay
    DT_to_UTC

    4. LeapYear. Макрос для определение високосного года
    Захват-13.png
    Этот макрос используется в
    ExtrMonth
    ExtrDay
    DT_to_UTC

    5. ExtrYear. Извлекает Год из упакованной Даты.
    Захват-14.png
    Этот макрос используется в
    DT_to_UTC

    6. ExtrMonth. Извлекает из упакованной Даты номер месяца.
    Захват-15.png
    Этот макрос используется в
    ExtrDay

    7. D_of_W. Возвращает день недели. Пн - 1, .. Вс - 7 из упакованной даты.
    Захват-16.png
    Этот макрос используется в
    DT_to_UTC

    8. ExtrDay. Извлекает номер дня месяца из упакованной Даты. А также определяет признак четного дня месяца, может кто захочет расписание врачей сделать.
    Захват-17.png
    Последний раз редактировалось petera; 11.09.2016 в 22:00.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  2. #2

    По умолчанию Макросы для упаковки/распаковки времени

    petera, вот гду вы раньше были??!

    Выкладываю аналогичные макросы (не зря же делал) упаковки/распаковки времени в формате Unix.
    Основные макросы:
    1. DT_TO_DW - упаковка времени в формат Unix с разбивкой на два регистра (для отправки по сети).
    2. DW_TO_DT - распаковка времени из формата Unix. Если на вход dwDT блока подается значение, то расчёт идет по нему, иначе расчёт идет по входам highDT и lowDT (используется в случае прихода данных по сети).

    macros.zip

  3. #3
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,108

    По умолчанию

    Цитата Сообщение от energvk Посмотреть сообщение
    petera, вот гду вы раньше были??!

    Выкладываю аналогичные макросы (не зря же делал) упаковки/распаковки времени в формате Unix.
    Основные макросы:
    1. DT_TO_DW - упаковка времени в формат Unix с разбивкой на два регистра (для отправки по сети).
    2. DW_TO_DT - распаковка времени из формата Unix. Если на вход dwDT блока подается значение, то расчёт идет по нему, иначе расчёт идет по входам highDT и lowDT (используется в случае прихода данных по сети).

    macros.zip
    Да я и не думал их делать, Вы же видите, что я в темах про ПР всего лишь редкий гость.
    Не надо было меня раззадоривать http://www.owen.ru/forum/showthread....l=1#post219827. Потому, что получилось как у Ильфа и Петрова
    Васюкинские шахматисты внимали Остапу с сыновней любовью. Остапа понесло. Он почувствовал прилив новых сил и шахматных идей...


    ЗЫ.
    Если на вход dwDT блока подается значение, то расчёт идет по нему, иначе расчёт идет по входам highDT и lowDT (используется в случае прихода данных по сети)
    Однако значение DT=0 с точки зрения формата Unix не является критерием того, что ничего не приходит на вход, т.к. DT=0 нормальное значение и соответствует стандартному 1970-00-00-00:00:00.
    DT может быть и отрицательным. DT=-2147483648 соответствует 13 декабря 1901 года, 20:45:52. Просто в лоджике нет отрицательных целых чисел.
    Последний раз редактировалось petera; 12.09.2016 в 06:23.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  4. #4
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,108

    По умолчанию Набор макросов для работы с временем UNIX. Окончание.

    Пример использования макросов, приведенных в предыдущем посте.
    Захват-8.png Захват-9.png

    А теперь макрос DT_to_UTC обратного преобразования из времени Unix в стандартное время.
    Захват-5.png

    Чтобы не плодить вложенные макросы, DayOfYear и LeapYear вынес из других наружу.
    Пример с этим макросом
    Захват-4.png

    Захват-18.png

    Захват-19.png
    Значение DT может поступать и через сетевые переменные, в примере этого делать не стал, как "склеить" из двух сетевых переменных одну 32 битную, надеюсь понятно.
    Вложения Вложения
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  5. #5
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    9,434

    По умолчанию

    Так не проще разбить, чисто механически, переменную пополам, если 16 старших бит сами отсекаются:

    Разбивка-склейка.PNG
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  6. #6
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,574

    По умолчанию

    а чего там раззадоривать, в оскат есть все функции, остается только их в лоджик перевести
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  7. #7
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,108

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    а чего там раззадоривать, в оскат есть все функции, остается только их в лоджик перевести
    Так это же я над собой иронизирую, в смысле "И тут Остапа понесло"
    Да сами алгоритмы не мои, как я думаю они появились задолго и до ОСКАТ. А вот алгоритм макроса ExtrDay у меня совсем не такой как в ОСКАТ, похоже я его сам сочинил.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  8. #8

    По умолчанию

    Однако значение DT=0 с точки зрения формата Unix не является критерием того, что ничего не приходит на вход, т.к. DT=0 нормальное значение и соответствует стандартному 1970-00-00-00:00:00.
    DT может быть и отрицательным. DT=-2147483648 соответствует 13 декабря 1901 года, 20:45:52. Просто в лоджике нет отрицательных целых чисел.
    Да, я не спорю. Я к тому, что если вход не подключен, то расчёт идет по highDT и lowDT.

    а чего там раззадоривать, в оскат есть все функции, остается только их в лоджик перевести
    Разумеется. Но чтобы их перевести нужно было время. Ну и как выяснилось, есть ньюансы различий cds и лоджика, которые petera учёл.

  9. #9

    По умолчанию

    По поводу использования макросов перевода времени, не забываем учитывать, что формат года в ПР имеет усеченный формат, и в случае использования системных переменных на вход макроса а не сетевых, как в примерах, результат в реальном устройстве будет отличаться от того что в симуляции OL. Данное несоответствие устранено, и выйдет я думаю с обновлением.
    С уважением, Ревака Юрий.
    Инженер группы технической поддержки компании "ОВЕН"
    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

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

    По умолчанию

    Цитата Сообщение от energvk Посмотреть сообщение
    Разумеется. Но чтобы их перевести нужно было время. Ну и как выяснилось, есть ньюансы различий cds и лоджика, которые petera учёл.
    да вот с помощью такого перевода я и выкладывал здесь макросы расчета восхода и заката солнца,а там кроме времени еще и долгота с широтой присутствуют
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Страница 4 из 69 ПерваяПервая ... 234561454 ... ПоследняяПоследняя

Похожие темы

  1. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Среда программирования OWEN Logic
    Ответов: 404
    Последнее сообщение: 25.08.2020, 15:17
  2. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Программируемые реле
    Ответов: 401
    Последнее сообщение: 28.07.2016, 19:46
  3. ПО OWEN Logic !!!
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 3
    Последнее сообщение: 11.10.2011, 15:33
  4. OWEN Logic 1.2.0.14b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 40
    Последнее сообщение: 21.02.2011, 14:16
  5. OWEN Logic 1.1.0.11b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 58
    Последнее сообщение: 12.10.2010, 20:55

Ваши права

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