Хоть бы в свойствах входов-выходов комментарии заполнили.
Хоть бы в свойствах входов-выходов комментарии заполнили.
С уважением, Ревака Юрий.
Инженер группы технической поддержки компании "ОВЕН"
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
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Начал разбираться с макросом для подготовки описания, возникли некоторые вопросы. Задам их здесь, чтобы потенциальные пользователи тоже могли найти ответы:
-макрос на который есть ссылка в первом сообщении не имеет блоков, как у Вас на картинке, это такой-же макрос только компактно представленный или там были изменения, мои вопросы будут относится именно к макросу внутренних макросов
-вход время работы в часах, внутри идет умножение на 1800000, что значит это число, время работы можно задавать кратно 30 минутам? Я так понял этим временем мы задаем время через которое включается другой насос и так по кругу пока есть вход вкл/выкл?
-в летнем режиме все остается так-же только снимается единица и при смене насоса он работает 10 сек и все, затем отсчитывается время переключается на другой насос и опять работает 10 сек?
Последний раз редактировалось Ревака Юрий; 06.09.2016 в 17:25.
С уважением, Ревака Юрий.
Инженер группы технической поддержки компании "ОВЕН"
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
В начале макрос, который упаковывает стандартные дата_время в UNIX формат ( в кодесис это формат DATA_AND_TIME).
Захват-1.png
На выходе собственно упакованное DT и на двух дополнительных выходах - младший и старший WORD этого самого DT.
Выход DT можно использовать в самом ПР, например расчитывать интервалы для событий реального времени, например для вкл/выкл по расписанию. Ведь DT можно складывать, вычитать и сравнивать между собой, т.к. любое DT это всего лишь число секунд с 0 часов 1 января 1970г.
К выходам Lo_wDT и Hi_wDT нужно подключать две сетевые переменные с последовательными адресами, тогда панель или скада или ПЛК смогут прочитать DT как переменную DWORD.
Захват-F.png
ВНИМАНИЕ.
Т.к. в ПР не поддерживается работа со знаковыми целыми числами, макрос будет корректно работать только с даты "эры Unix" - с 0 часов 1 января 1970г. Зато не будет проблемы 2038г, когда 19 января 2038 многие системы сойдут сума и время у них потечет вспять. У нас, в макросе, эра Unix закончится 5 февраля 2106г.
Теперь макросы, которые позволяют использовать в программах это самое Unix-время.
Захват-6.png
Захват-7.png
ЗЫ.
Пришлось пост разбить на части. Больше 8 картинок прикрепить нельзя![]()
Последний раз редактировалось petera; 11.09.2016 в 21:34.
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
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
petera, вот гду вы раньше были??!
Выкладываю аналогичные макросы (не зря же делал) упаковки/распаковки времени в формате Unix.
Основные макросы:
1. DT_TO_DW - упаковка времени в формат Unix с разбивкой на два регистра (для отправки по сети).
2. DW_TO_DT - распаковка времени из формата Unix. Если на вход dwDT блока подается значение, то расчёт идет по нему, иначе расчёт идет по входам highDT и lowDT (используется в случае прихода данных по сети).
macros.zip
Пример использования макросов, приведенных в предыдущем посте.
Захват-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
Так не проще разбить, чисто механически, переменную пополам, если 16 старших бит сами отсекаются:
Разбивка-склейка.PNG
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.