1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Погрешность таймера

Ответить

Автор темы
Stasyllius_83
здесь недавно
здесь недавно
Сообщения: 41
Зарегистрирован: 08 сен 2021, 09:02
Имя: Стас
Страна: РФ
город/регион: Краснодар

Погрешность таймера

Сообщение Stasyllius_83 »

Добрый день! Стоит задача сделать подсчет времени работы установки для замены батареи по выработке определенного времени. Написал программу подсчета секунд, минут, часов. Сравнив с реальным временем выяснилось что таймер отстает от реального времени на 15 секунд за время 5 минут. Далее добавил выход таймера на 1000 мс в тренд. График показывает что выход таймера срабатывает чуть позже и накапливает погрешность. Получается что нужно подгадывать заданное время? Т.е. ставить не 1000 в PRE, а где-то 900-950. В чем причина такого явления? Хотелось бы точности, т.к. за 5000 часов реального времени установка не покажет, что истекло время наработки.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

leon78
эксперт
эксперт
Сообщения: 1031
Зарегистрирован: 25 июл 2008, 10:06
Имя: Леонид
Страна: РФ
Благодарил (а): 34 раза
Поблагодарили: 110 раз

Погрешность таймера

Сообщение leon78 »

С программой детально не разбирался, но подозреваю, что погрешность на одну секунду равна скану контроллера.
В этой среде нет системного регистра с микросекундами? На его основе можно посчитать более точно.
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.

Velt
освоился
освоился
Сообщения: 226
Зарегистрирован: 26 мар 2017, 13:05
Имя: Денис
Страна: Россия
город/регион: Самара
Благодарил (а): 13 раз
Поблагодарили: 37 раз

Погрешность таймера

Сообщение Velt »

Stasyllius_83 писал(а): 02 мар 2022, 12:56 Хотелось бы точности, т.к. за 5000 часов реального времени установка не покажет, что истекло время наработки.
Я в таких случаях считаю только часы.
Даже если каждый час будет измерен с точностью 0.01с (время цикла ПЛК), то за 5000 часов накопится максимальная погрешность 50 секунд, что довольно приемлемо в этой задаче.

А если всё же нужно максимально точно интервал времени отсчитывать, то нужно прерывания использовать.

Отправлено спустя 2 минуты 5 секунд:
А еще проще - использовать один таймер с уставкой 5000 часов. Тогда погрешность будет сопоставима с временем цикла ПЛК :ext_secret:

Автор темы
Stasyllius_83
здесь недавно
здесь недавно
Сообщения: 41
Зарегистрирован: 08 сен 2021, 09:02
Имя: Стас
Страна: РФ
город/регион: Краснодар

Погрешность таймера

Сообщение Stasyllius_83 »

Благодарю за ответы!
Аватара пользователя

Looker
эксперт
эксперт
Сообщения: 1109
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 321 раз
Поблагодарили: 218 раз

Погрешность таймера

Сообщение Looker »

Таймерами такое не делают, в руководствах есть упоминания про точность таймеров, см. в сторону команды GSV: системное время (дельту обрабатывай сам) или время между вызовами задачи, разрешение 1 микросекунда. Могу поделиться AOI см. картинку:
looker_pic.png
При желании можно задать ограничение на количество пусков в час ("ползущие" 60 минут).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Погрешность таймера

Сообщение keysansa »

Velt писал(а): 02 мар 2022, 17:29 Я в таких случаях считаю только часы.
Вы часы считаете в ~0.1с цикле контроллера?
ЗЫ. Я понимаю о чем вы, но автор говорит о том же.

Отправлено спустя 6 минут 53 секунды:
Velt писал(а): 02 мар 2022, 17:29 А если всё же нужно максимально точно интервал времени отсчитывать, то нужно прерывания использовать.
Вызывание прерывания на время часов зависит от времени цикла программы.
Представьте себе таймер в 0.1с, который вызывается из OB с циклом 1с
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.

Автор темы
Stasyllius_83
здесь недавно
здесь недавно
Сообщения: 41
Зарегистрирован: 08 сен 2021, 09:02
Имя: Стас
Страна: РФ
город/регион: Краснодар

Погрешность таймера

Сообщение Stasyllius_83 »

Looker писал(а): 03 мар 2022, 18:08 Таймерами такое не делают, в руководствах есть упоминания про точность таймеров, см. в сторону команды GSV: системное время (дельту обрабатывай сам) или время между вызовами задачи, разрешение 1 микросекунда. Могу поделиться AOI см. картинку:

looker_pic.png

При желании можно задать ограничение на количество пусков в час ("ползущие" 60 минут).
Добрый день! Этот AOI собственного производства? Буду благодарен, если поделитесь( на данный момент остановился на подсчете часов)!
Аватара пользователя

Looker
эксперт
эксперт
Сообщения: 1109
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 321 раз
Поблагодарили: 218 раз

Погрешность таймера

Сообщение Looker »

Stasyllius_83 писал(а): 09 мар 2022, 13:20 Этот AOI собственного производства? Буду благодарен, если поделитесь( на данный момент остановился на подсчете часов)!
Да. На основе таймера. Если не нужны "ползущие" 60 минут, тогда можно уменьшить занимаемую память.

Отправлено спустя 40 минут 16 секунд:
Без Source Protection размер 2.63 К.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу

Velt
освоился
освоился
Сообщения: 226
Зарегистрирован: 26 мар 2017, 13:05
Имя: Денис
Страна: Россия
город/регион: Самара
Благодарил (а): 13 раз
Поблагодарили: 37 раз

Погрешность таймера

Сообщение Velt »

keysansa писал(а): 04 мар 2022, 18:25 Вы часы считаете в ~0.1с цикле контроллера?
ЗЫ. Я понимаю о чем вы, но автор говорит о том же.
В исходном посте автор пишет
Stasyllius_83 писал(а): 02 мар 2022, 12:56 Написал программу подсчета секунд, минут, часов.
Моя идея состоит в том, что если нужно отсчитать один интервал времени 5000 часов, то не нужно отдельно считать секунды, минуты, часы, т.к. в каждом счетчике будет копиться погрешность. Лучше использовать один таймер с уставкой 5000ч.
keysansa писал(а): 04 мар 2022, 18:25 Представьте себе таймер в 0.1с, который вызывается из OB с циклом 1с
Конечно, это глупость. Прерывание оно потому и называется "прерывание", что вызывается не в цикле, а по событию. Событием может являться приход сигнала на вход, истечение заданного интервала времени и т.п.
Аватара пользователя

Looker
эксперт
эксперт
Сообщения: 1109
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 321 раз
Поблагодарили: 218 раз

Погрешность таймера

Сообщение Looker »

Velt писал(а): 10 мар 2022, 11:19Моя идея состоит в том, что если нужно отсчитать один интервал времени 5000 часов, то не нужно отдельно считать секунды, минуты, часы, т.к. в каждом счетчике будет копиться погрешность. Лучше использовать один таймер с уставкой 5000ч.
У него Logix, предел таймера 2147483647 (2^31-1), "тик" таймера 1 мс. Не попадает на 5000 часов. Иначе бы RTO - самое оно.

Отправлено спустя 36 минут 3 секунды:
Точность с таймером можно повысить: например таймер до 1000. Когда стоит бит DN, в расчетах использовать не 1000, а ACC (там всегда будет более 1000). И не забывать про порядок исполнения. В моем AOI - это не учтено, но тому AOI уже 12 лет, код открытый - дорабатывайте.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Погрешность таймера

Сообщение keysansa »

Velt писал(а): 10 мар 2022, 11:19 Прерывание оно потому и называется "прерывание", что вызывается не в цикле, а по событию.
Немного позанудствую ) Дело в том, что OB, которые работают по таймеру - тоже по прерыванию работают.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Аватара пользователя

Looker
эксперт
эксперт
Сообщения: 1109
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 321 раз
Поблагодарили: 218 раз

Погрешность таймера

Сообщение Looker »

keysansa писал(а): 10 мар 2022, 21:05Немного позанудствую ) Дело в том, что OB, которые работают по таймеру - тоже по прерыванию работают.
Не стоит занудствовать, т.е. применять идеологию Сименса к Allen Bradley.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу

Velt
освоился
освоился
Сообщения: 226
Зарегистрирован: 26 мар 2017, 13:05
Имя: Денис
Страна: Россия
город/регион: Самара
Благодарил (а): 13 раз
Поблагодарили: 37 раз

Погрешность таймера

Сообщение Velt »

Looker писал(а): 10 мар 2022, 17:02 Точность с таймером можно повысить: например таймер до 1000.
Да, я в этом ключе и думал, только забыл о максимальной уставке таймера. Действительно, сейчас проверил, 5000ч это слишком много, придётся ограничиться 1000ч.
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Погрешность таймера

Сообщение keysansa »

Looker писал(а): 11 мар 2022, 01:15 Не стоит занудствовать, т.е. применять идеологию Сименса к Allen Bradley.
А как в AB обеспечивают точность цикла OB?
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Аватара пользователя

Looker
эксперт
эксперт
Сообщения: 1109
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 321 раз
Поблагодарили: 218 раз

Погрешность таймера

Сообщение Looker »

keysansa писал(а): 11 мар 2022, 19:17А как в AB обеспечивают точность цикла OB?
Что есть OB? Про Сименс мои "освоения" закончились 30 лет назад, после Бергера про Step5. У AB только одна задача периодическая, все другие - задается время или событие. Каждой задаче выставляется приоритет. Периодическую может прервать любая.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Погрешность таймера

Сообщение keysansa »

Looker писал(а): 12 мар 2022, 00:44Что есть OB?
Задача, выполняемая по прерыванию (по времени или событию).
Looker писал(а): 12 мар 2022, 00:44 задается время или событие. Каждой задаче выставляется приоритет. Периодическую может прервать любая.
Это не прерывание?
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Аватара пользователя

Looker
эксперт
эксперт
Сообщения: 1109
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 321 раз
Поблагодарили: 218 раз

Погрешность таймера

Сообщение Looker »

keysansa писал(а): 16 мар 2022, 20:14Это не прерывание?
Прерывание, только не в стиле Сименса со своими OB*: имена вразумительные, времена вызова задаются, как и приоритеты. Внутри задачи есть программы, память не пересекается, имена тегов какие задашь. Сименсовское DB - отдыхает.
Делал задачу для интегрирования расхода, самая приоритетная, но время учитывал по команде GSV - отличия были.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Погрешность таймера

Сообщение keysansa »

Looker писал(а): 16 мар 2022, 22:20 Прерывание, только не в стиле Сименса со своими OB*
keysansa писал(а): 10 мар 2022, 21:05 Немного позанудствую ) Дело в том, что OB, которые работают по таймеру - тоже по прерыванию работают.
Как-то так было изначально...
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Аватара пользователя

Looker
эксперт
эксперт
Сообщения: 1109
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
город/регион: Донецк
Благодарил (а): 321 раз
Поблагодарили: 218 раз

Погрешность таймера

Сообщение Looker »

keysansa писал(а): 10 мар 2022, 21:05Дело в том, что OB, которые работают по таймеру - тоже по прерыванию работают.
Повторю про повышение точности:
Looker писал(а): 03 мар 2022, 18:08...или время между вызовами задачи, разрешение 1 микросекунда.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Аватара пользователя

keysansa
эксперт
эксперт
Сообщения: 2330
Зарегистрирован: 20 дек 2018, 04:45
Имя: Сергей
Страна: РБ/РФ
город/регион: РФ Сергиев Посад
Благодарил (а): 1990 раз
Поблагодарили: 176 раз

Погрешность таймера

Сообщение keysansa »

Looker писал(а): 11 мар 2022, 01:15
keysansa писал(а): 10 мар 2022, 21:05Немного позанудствую ) Дело в том, что OB, которые работают по таймеру - тоже по прерыванию работают.
Не стоит занудствовать, т.е. применять идеологию Сименса к Allen Bradley.
Вы отвечали вот на это сообщение.
Я просто позанудствовал в общем случае, в итоге выяснили, что я правильно позанудствовал и для AllenBradley. )
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
Ответить

Вернуться в «ПЛК»