Показано с 1 по 7 из 7

Тема: Циклическое время

  1. #1

    По умолчанию Циклическое время

    В описании библиотеки PID_Regulators сказано, что при использовании сторонних измерителей циклическое время надо вычислять самостоятельно. Для этог надо завести переменную PV_TIME типа WORD, в которую прибавлять время, равное периоду вызова POU (в 1/100 с). При переполнении (> 65535) переменную обнулять.

    Кто-нибудь пробовал реализовать эту процедуру? Поделитесь пожалуйста опытом.

  2. #2

    По умолчанию

    x:WORD;
    tmr:TON;

    tmr(in:=not tmr.q,pt:=t#100ms);

    if tmr.q then
    x:=x+100;
    end_if

  3. #3

    По умолчанию

    Спасибо. Но мне кажется, что в примере переменная х будет увеличиваться каждый раз на 1 с, а не на 100 мс.

  4. #4

    По умолчанию

    Это как же на 1 сек. Где в коде 1 секунда?

  5. #5

    По умолчанию

    Переменная х хранит время в единицах, равных 1/100 секунды. Если добавить 100 единиц, то ... Кроме того будет ли х корректно обнуляться при переполнении?

  6. #6

    По умолчанию

    1) Да, нужно x:=x+10 - ошибся
    2) Обнулять не надо - для переменной типа word перенос при переполненнии будет выполнен корректно

  7. #7

    По умолчанию

    Спасибо. Вроде работает.
    Вопрос такой. Будет ли циклическое время правильным, если ПЛК не смог прочитать очередные измерения. В это случае он вроде-бы использует предыдущие прочитанные.

Ваши права

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