В режиме эмуляции реальное время не работает,поменяйте значение переменных если хотите попробовать, а лучше зацепите контроллер.
все здравствуйте! подскажите как сделать привязку программы к реальному времени ПЛК. Пробовал использовать конструкции TimeAndDate, но как то не очень красиво получается, тем более что необходимо выделять интервалы времени и что бы ПЛК понимал в каком интервале сейчас находится, в зависимости от этого и выполняются алгоритмы для своих определенных интервалов, подскажите кто знает как это реализовать?
P.S. Я работаю на CFC,не получается выделить время интервалами из блоков TimeAndDate т.к. там значения разбиты по отдельности т.е. - минуты, часы, секунды; поэтому простое сравнение этих значений с константой (<,>,=) не решает проблему
Последний раз редактировалось Igor.m; 14.11.2013 в 07:35.
Еще как решает.
При автоматизации включения\выключения вент. установки сравнивал именно так.
А вообще всем рекомендую поискать в интернете статьи Игоря Петрова про работу со временем (есть в открытом доступе).
http://prolog-plc.ru/docs/TimeExperience.pdf
Время "тикает" в миллисекундах , попробуйте простое преобразование (В Оскатовских библиотеках должно быть) DWORD(интервал в миллисекундах)_to_DT . Сам так уже давно не работаю (отсчитываю время работы в нужном мне формате по секундному таймеру , но если было отключение питания и это надо фиксировать надо привязываться к DT ) .
Вообще больше внимания на библиотеки ОСКАТ , там коды открытые , хотя ПИД регуляторы там косячные (но это компенсируется бесплатностью и открытостью).
Последний раз редактировалось Sergey666; 15.11.2013 в 23:59.
Я конечно же читал статьи Петрова, и нашел там такой пример PackTime упаковка времени с последующими преобразованиями в TIME или в DT и т.д. Стал делать по примеру в котором сказано "Умножаем значение часов на число минут в часе, прибавляем число минут, умножаем на число секунд в минуте и т.д." Если вам нужно получить значение типа TOD, то необходимо ввести проверку результата на максимум (24 часа) и заменить DWORD_TO_TIME на DWORD_TO_TOD.
З.Ы. Когда проделал вышеизложенные операции и преобразовал в DT то получил фигню полную...Потом даже преобразовывал число DWORD, которое должно было получиться в формат DT, но фигня осталась фигней. Не ясно в чем касяк, ясно только что мой.
Переведите текущую дату в ДВОРД (DT_to_DWORD)и получите текущее ДТ в миллисекундах.
Есть ФБ Оскат "Сет ДТ" (по русски пишу!!!).