Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 28

Тема: Спидометр из плк110[М02] и инкрементального энкодера.

  1. #1
    Пользователь
    Регистрация
    05.06.2017
    Адрес
    Егорьевск
    Сообщений
    30

    По умолчанию Спидометр из плк110[М02] и инкрементального энкодера.

    Добрый день, товарищи. Имеем плк110, энкодер на 500 (2000) импульсов на оборот. Ну и мини моторредуктор для тестирования. Обороты вала 5-15 об/мин. Частота регулируется шим регулятором.
    В общем и целом, как написать программу c подпрограммой обработки быстрых входов, я разобрался. Как увеличить точность энкодера в 4 раза - тоже. Но вот как корректно обработать подсчет импульсов - есть некоторое не понимание. Дело в том, что результат "прыгает" где-то на 1 -2%. И это меня не устраивает. Например, 2% от 200 имп - это 4 импульса вверх и вниз. Если перевести в нужные мне значения линейной скорости, которая будет отображаться на панели, то получим "прыжки" от 5,59 до 5,81, при видимой равномерности вращения. Скорость измеряю заполнением импульсами интервала времени в 1000 мсек с последующим сбросом посчитанных импульсов. Вычисления произвожу в теле основной программы, так как в подпрограмме обработки быстрых входов все зависает. Отсчет времени делал c помощью фб Blink, затем с фб Tp. Менял интервал отсчитываемого времени вверх до 10сек и вниз до 100мсек. Подключал другой энкодер с 50 имп на оборот и "убирал" из программы учетверенную точность (полагая, что дело в неравномерности вращения вала редуктора). В общем и целом, ничего не помогает. Результат мне напоминает спидометр на грузовике ЗиЛ, где стрелка все время не сильно прыгает. Но перед глазами другой пример - спидометр автомобиля Форд, где стрелка очень плавно (но без заметных задержек) поднимается с ростом скорости и держится на месте при активном автопилоте.
    Я думаю, проблем может быть 2. Первая - некорректная обработка отсчитанных импульсов. Может таймеры в основной программе считают миллисекунды чуть-чуть не точно? Может нужно было какую-то циклическую подпрограмму городить для этого?
    Вторая - банально моторредуктор крутит чуть неравномерно - пёс его знает, как там у него токи по щеткам протекают...
    Может кто реализовывал подобную хотелку получить "гладкий" спидометр?
    Вложения Вложения
    Последний раз редактировалось sanatolich; 07.10.2020 в 09:12.

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

    По умолчанию

    Надо считать время между импульсами
    Dmitriy Murashov
    SPS Software Engineer Automation Engineering RUS

  3. #3

    По умолчанию

    Я думаю у Кодесис должны быть библиотеки с функциями масштабирования меандра в некоторую "аналоговую" величину. А уж эту величину пересчитаете в скорость.

  4. #4
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,033

    По умолчанию

    sanatolich
    Проблема в том, что программно точных интервалов времени не получить.
    Можно попытать счастья с использованием встроенных часов, либо встроенного системного таймера 20мкс (Конфигурация задач>Системные события>Таймер 20мкс).

  5. #5
    Пользователь
    Регистрация
    05.06.2017
    Адрес
    Егорьевск
    Сообщений
    30

    По умолчанию

    один из вариантов вложил.

  6. #6
    Пользователь
    Регистрация
    05.06.2017
    Адрес
    Егорьевск
    Сообщений
    30

    По умолчанию

    Можно попытать счастья с использованием встроенных часов, либо встроенного системного таймера 20мкс (Конфигурация задач>Системные события>Таймер 20мкс).

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

  7. #7
    Пользователь
    Регистрация
    05.06.2017
    Адрес
    Егорьевск
    Сообщений
    30

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    sanatolich
    Проблема в том, что программно точных интервалов времени не получить.
    Можно попытать счастья с использованием встроенных часов, либо встроенного системного таймера 20мкс (Конфигурация задач>Системные события>Таймер 20мкс).
    Как тогда реализуют визуализацию инженеры форда, тойоты, и проч? Сомневаюсь, что у них там стоят супер крутые контроллеры.

  8. #8
    Пользователь
    Регистрация
    05.06.2017
    Адрес
    Егорьевск
    Сообщений
    30

    По умолчанию

    Цитата Сообщение от murdemon Посмотреть сообщение
    Надо считать время между импульсами
    Вы хотите сказать, что если скорость вращения 200 имп за 1 сек (1 имп за 5 мсек), то нужно как то посчитать количество обращений с частотой 1 раз в 20 мксек к быстым входам между импульсами?

  9. #9
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,033

    По умолчанию

    Как тогда реализуют визуализацию инженеры форда, тойоты, и проч?
    Какое отношение к визуализации имеет точность посчета импульсов?
    И, кстати, этим инженерам ничего не стоит применить специально заточенный под это дело узел. Например в виде отдельной микросхемы\процессора реального времени на плате. Кстати, в ПЛК110М02 есть такой, но штатный программный функционал весьма скудный, и поставленной задачей не справится.
    висят на одном и том же суку.
    Это да. Задающий генератор один. Однако момент снятия показаний может плавать в зависимости от толщины кода. Я играл с энкодерами на ПЛК110 и старой и новой модификации. Нормального результата добился только на М02 и только с помощью HardellaIDE.

  10. #10
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,033

    По умолчанию

    нужно как то посчитать количество обращений с частотой 1 раз в 20 мксек к быстым входам между импульсами?
    Можно считать не только количество импульсов, но и количество циклов таймера. В таймере сделать еще один счетчик - циклов. Суммарное количество зафиксированных импульсов выдавать например раз в две тысячи циклов, одновременно обнуляя счетчик циклов.
    Последний раз редактировалось Sulfur; 07.10.2020 в 11:10.

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

Похожие темы

  1. ПЛК110 (М02) подключение энкодера как счетчика
    от denkrauss в разделе ПЛК1хх [М02]
    Ответов: 2
    Последнее сообщение: 02.06.2020, 13:33
  2. Ответов: 5
    Последнее сообщение: 11.03.2019, 16:13
  3. Подключение инкрементального энкодера к ПЛК150
    от канавал в разделе Помощь Разработчикам
    Ответов: 9
    Последнее сообщение: 21.10.2016, 16:18
  4. Ответов: 10
    Последнее сообщение: 13.11.2014, 18:45
  5. Настройки энкодера в ПЛК110
    от aserr в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 01.04.2012, 23:30

Ваши права

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