Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 42

Тема: Свой таймер

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

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

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Причем здесь сутки, месяцы нужно рассматривать
    есть еще фишечка накопленный результат хранить в реале, это увеличит продолжительность подсчета
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #3

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    есть еще фишечка накопленный результат хранить в реале, это увеличит продолжительность подсчета
    а на фишечку в #18 и не глянули)

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

    По умолчанию

    Цитата Сообщение от spectrum48k Посмотреть сообщение
    а на фишечку в #18 и не глянули)
    А покурочил-ли то навставляв real'ов ? В смысле в исходном усе было на целых числах ?
    Чего накурочили сами то поняли ?
    Последний раз редактировалось Валенок; 27.08.2015 в 17:41.

  5. #5
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    В теме уже 35 сообщений, хотя просмотров моего примера только 2. Забавно.
    Сделал на основании своего таймера небольшой блок статистики.
    ФБ TimeStatistic позволяет измерять последнее, среднее, минимальное и максимальное время между двумя точками программы.
    Для того чтобы это сделать в первой точке нужно вызвать:
    TimeStatistic.FirstPoint();
    во второй вызвать
    TimeStatistic.SecondPoint();
    В прикрепленном примере измеряется время скана при этом следует обратить внимание, что сначала вызвается SecondPoint, а затем FirstPoint.

    Преимущества данного блока перед блоком статистики, который встроен в конфигуратор ПЛК ОВЕН, в том что он измеряет не только время последнего скана, но также минимально, максимальное и среднее. К тому же в многозадачной системе можно измерять времена скана для каждой задачи.
    Вложения Вложения
    • Тип файла: pro Timer.pro (35.7 Кб, Просмотров: 26)

  6. #6
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,846

    По умолчанию

    Цитата Сообщение от SKV Посмотреть сообщение
    В теме уже 35 сообщений, хотя просмотров моего примера только 2. Забавно.
    Сделал на основании своего таймера небольшой блок статистики.
    ФБ TimeStatistic позволяет измерять последнее, среднее, минимальное и максимальное время между двумя точками программы.
    Для того чтобы это сделать в первой точке нужно вызвать:
    TimeStatistic.FirstPoint();
    во второй вызвать
    TimeStatistic.SecondPoint();
    В прикрепленном примере измеряется время скана при этом следует обратить внимание, что сначала вызвается SecondPoint, а затем FirstPoint.

    Преимущества данного блока перед блоком статистики, который встроен в конфигуратор ПЛК ОВЕН, в том что он измеряет не только время последнего скана, но также минимально, максимальное и среднее. К тому же в многозадачной системе можно измерять времена скана для каждой задачи.
    Измерить время цикла можно и без навороченных таймеров
    Код:
    (*Время цикла*)
    t1:=TIME();
    tCycle:= t1 - tmp;    (*Время цикла*)
    tmp:= t1;
    (*КОНЕЦ ВЫЧИСЛЕНИЯ ВРЕМЕНИ ЦИКЛА*)
    (*
    Здесь строки
    прогграммы
    *)
    tProg:=TIME()-t1;    (*Время выполнения программы*)
    Последняя строка вычисляет время выполнения программы.
    Для вычисления ср, мин, макс. значения можно просто использовать ФБ "STATISTICS_INT" на вход ему подать "Cycle time in 100 mks" из модуля статистики.
    И не будет "Преимущества данного блока перед блоком статистики, который встроен в конфигуратор ПЛК ОВЕН, в том что он измеряет не только время последнего скана, но также минимально, максимальное и среднее".
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #7
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Измерить время цикла можно и без навороченных таймеров
    Код:
    (*Время цикла*)
    t1:=TIME();
    tCycle:= t1 - tmp;    (*Время цикла*)
    tmp:= t1;
    (*КОНЕЦ ВЫЧИСЛЕНИЯ ВРЕМЕНИ ЦИКЛА*)
    (*
    Здесь строки
    прогграммы
    *)
    tProg:=TIME()-t1;    (*Время выполнения программы*)
    Последняя строка вычисляет время выполнения программы.
    Для вычисления ср, мин, макс. значения можно просто использовать ФБ "STATISTICS_INT" на вход ему подать "Cycle time in 100 mks" из модуля статистики.
    И не будет "Преимущества данного блока перед блоком статистики, который встроен в конфигуратор ПЛК ОВЕН, в том что он измеряет не только время последнего скана, но также минимально, максимальное и среднее".
    Petera, разумеется можно реализовать функции ФБ Timer и TimeStatistic, так как Вы предлагаете.
    Я всего лишь оформил подобную логику в ФБ, который можно использовать.
    Потому что если Вам нужно это сделать один раз, то подойдет и так как предлагаете Вы. Если же у Вас задача во многих местах набрать статистику, то Ваш способ становится уже неудобным.
    Так, например, свой блок статистики я хочу использовать при написании опроса модулей через библиотеку Modbus.lib.
    Каждый раз писать предложенный Вами код или просто вставитить 2 вызова TimeStatistic. Мне кажется, мой вариант проще.

    Плюс еще. Для меня не ясно что будет показывать стандартный блок статистики в случае многозадачности. В случае использования блока TimeStatistic - все ясно.
    Последний раз редактировалось Спорягин Кирилл; 28.08.2015 в 11:20.

  8. #8
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Егор, а что такое "десктопная однократность"?
    https://ru.wikipedia.org/wiki/Событи...ограммирование

    Действия в 61131-3 не параметризуются (имеют пустую сигнатуру), а потому находясь в бесконечном цикле не могут напрямую включаться в выражения реакции и, следовательно, вызываться в безусловном режиме (вызывать можно, но в этом не будет практического смысла). Отсюда однократность — вам приходится выбирать момент, чтобы совершить действие один раз, и потом вновь ждать события. Можно, конечно, вызывать действие в течение длительного времени по какому-то условию, но само слово «действие» намекает, что в этом случае вы используете фичу не по назначению. Я считаю, что действия должны быть результатом обработки прерывания. А искусственные прерывания самому себе создавать лишний раз не стоит.

  9. #9
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    https://ru.wikipedia.org/wiki/Событи...ограммирование

    Действия в 61131-3 не параметризуются (имеют пустую сигнатуру), а потому находясь в бесконечном цикле не могут напрямую включаться в выражения реакции и, следовательно, вызываться в безусловном режиме (вызывать можно, но в этом не будет практического смысла). Отсюда однократность — вам приходится выбирать момент, чтобы совершить действие один раз, и потом вновь ждать события. Можно, конечно, вызывать действие в течение длительного времени по какому-то условию, но само слово «действие» намекает, что в этом случае вы используете фичу не по назначению. Я считаю, что действия должны быть результатом обработки прерывания. А искусственные прерывания самому себе создавать лишний раз не стоит.
    Егор, спасибо. Доходчиво.

  10. #10

    По умолчанию

    всего лишь подбиваю уйти от трещетки и работать с накоплением времени а не импульсов )

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

Похожие темы

  1. Как оценить свой труд?
    от a_gricaj в разделе Master SCADA 3
    Ответов: 30
    Последнее сообщение: 12.07.2015, 13:20
  2. Ответов: 2
    Последнее сообщение: 18.03.2015, 16:04
  3. Таймер
    от Deoxes в разделе СПК1хх
    Ответов: 8
    Последнее сообщение: 16.07.2014, 12:19
  4. Таймер(ы)
    от AntoNechayuk в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 23.08.2011, 20:39

Ваши права

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