Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 25

Тема: Как работать с аппаратными часами ПЛК-100?

  1. #11

    По умолчанию

    Вопрос. процедура CurTimeEx в режиме эмуляции не работает?

  2. #12
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,269

    По умолчанию

    нет. только на живом плк

  3. #13

    По умолчанию

    это как бы... засада. могу ли я надеяться, что если выложу код, знающие люди просмотрят его правильность? а то все отдали заказчику, а нужно переделать...
    и еще, есть ли способ в режиме эмуляции получить время из ос?

  4. #14

    По умолчанию

    спасибо. завтра еще вопросы созреют ))

  5. #15

    По умолчанию

    Цитата Сообщение от acidburst Посмотреть сообщение
    спасибо. завтра еще вопросы созреют ))
    А вот у меня уже созрел вопросец:
    Функциональный блок 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.

  6. #16

    По умолчанию

    есть еще время в мс.
    и вообще, какова задача? нузны ли там наносекунды?

  7. #17

    По умолчанию

    Да нет, не нужны, просто интересно - если функция есть - значит её нужно както использовать)))
    Кстати ещё вопрос: есть ли разница по скорости работы функции RTC из стандартной библиотеки и функциями из библиотеки SysLibTime?

  8. #18
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    в настоящее время функция Rtc исключена из стандарта мэк, так как есть определенные проблемы в ходе выполнения функции(к примеру остановка при отключении питания плк). аппаратными часами пользоваться гораздо надежнее. аппаратные часы идут не зависимо от от цикла плк.
    вы только обращаетесь к определенному регистру и считываете его значение и затем делаете в программе необходимые вам преобразования.
    подробно данный вопрос описан в книге и. в. петрова "программируемые контроллеры"

  9. #19

    По умолчанию

    спасибо за совет, интересная книжица...
    наконец то я хоть гдето увидел хорошее методическое пособие по Sfc языку...

  10. #20

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    есть еще время в мс.
    и вообще, какова задача? нузны ли там наносекунды?
    Вообще суть в том чтобы не парится при расчётах времени(перевод дат со временем - во время),
    а иметь конкретное время, скажем в минутах, от начала работы ПЛК, благо в два двойных слова (64 bit) в миллисекундах влезает более пятисот тысяч лет, что вполне достаточно для любых задач)))

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Ваши права

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