Вопрос. процедура CurTimeEx в режиме эмуляции не работает?
Вопрос. процедура CurTimeEx в режиме эмуляции не работает?
нет. только на живом плк
это как бы... засада. могу ли я надеяться, что если выложу код, знающие люди просмотрят его правильность? а то все отдали заказчику, а нужно переделать...
и еще, есть ли способ в режиме эмуляции получить время из ос?
спасибо. завтра еще вопросы созреют ))
А вот у меня уже созрел вопросец:
Функциональный блок CurTime как и CurTimeEX выдаёт переменную SystemTime типа SysTime64, которая содержит в двух двойных словах системное время в микросекундах(при этом нижний регистр ulLow вмещает в себя около 80минут). Работа с 64 разрядными данными в КоДеСисе ,видимо, не предусмотрено (есть какой то LWORD, но никакие операции преобразования с ним не работают), поэтому чтобы перевести SystemTime скажем в минуты мне приходится делать так:
Отсюда вопрос: может существует более изящный метод работы с этими данными?Код:VAR fb_time:CurTime; t_time:SysTime64; dw_time:DWORD; rrr:REAL; END_VAR fb_time(SystemTime:=t_time); rrr:=16#100000000; dw_time:=t_time.ulHigh*REAL_TO_DWORD(rrr/60000000) + t_time.ulLow/60000000;(*конвертируем в минуты*)
Последний раз редактировалось Crusash; 20.11.2009 в 10:44.
есть еще время в мс.
и вообще, какова задача? нузны ли там наносекунды?
Да нет, не нужны, просто интересно - если функция есть - значит её нужно както использовать)))
Кстати ещё вопрос: есть ли разница по скорости работы функции RTC из стандартной библиотеки и функциями из библиотеки SysLibTime?
в настоящее время функция Rtc исключена из стандарта мэк, так как есть определенные проблемы в ходе выполнения функции(к примеру остановка при отключении питания плк). аппаратными часами пользоваться гораздо надежнее. аппаратные часы идут не зависимо от от цикла плк.
вы только обращаетесь к определенному регистру и считываете его значение и затем делаете в программе необходимые вам преобразования.
подробно данный вопрос описан в книге и. в. петрова "программируемые контроллеры"
спасибо за совет, интересная книжица...
наконец то я хоть гдето увидел хорошее методическое пособие по Sfc языку...
Вообще суть в том чтобы не парится при расчётах времени(перевод дат со временем - во время),
а иметь конкретное время, скажем в минутах, от начала работы ПЛК, благо в два двойных слова (64 bit) в миллисекундах влезает более пятисот тысяч лет, что вполне достаточно для любых задач)))