Страница 34 из 57 ПерваяПервая ... 24323334353644 ... ПоследняяПоследняя
Показано с 331 по 340 из 688

Тема: Программирование ПЛК110 [М02] для задач реального времени

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,150

    По умолчанию

    Вы попробуйте менять направление вращения случайным и независимым генератором (ГСЧ) , чтобы он попадал в разные моменты и не был синхронизован в выполнением основной программы .Кроме того ,хороший алгоритм должен исходить из того что могут быть высокочастотные помехи ,которые сравнимы по длительности с фронтами и которые сглаживать фильтром нельзя ,что бы не потерять основные импульсы с энкодера при больших скоростях .
    электронщик до мозга костей и не только

  2. #2

    По умолчанию

    В общем, если у кого-нибудь есть энкодер -- прошу протестировать программу энкодера.
    Теоретически, программа должна успешно ловить импульсы вплоть до 1 мкс (~1 МГц)

    Казалось бы, зачем нужна ещё одна программа обработки энкодера, если в прошивке ПЛК и так энкодер уже обрабатывается?
    Отвечаю: когда PRUграммирование станет доступно для всех, то модуль энкодера уже будет в базовой поставке.
    Последний раз редактировалось Владимир Ситников; 07.10.2016 в 23:22.

  3. #3

    По умолчанию

    Попробовал "облагородить" обмен данными между PRU и основной программой -- столкнулся с тем, что мне не хватает задач.

    Ещё есть кандидаты на PRU программы?
    Надо кому-нибудь что-нибудь на тему "быстрого управления"?

    Поясню, что мне не нравится в моём текущем подходе.
    Вот фрагмент программы, которая следит за энкодером и выключает двигатель как только энкодер отсчитает нужное количество импульсов:

    Снимок экрана 2016-10-08 в 22.33.42.png

    Несложно заметить, что обмен данными сделан ассемблерными командами.
    Код:
    ASM 
      SBCO (* записываем переменную в память *) cutter.state, 3 (* тут всегда 3 *), 60 (* это адрес куда писать *) , 1  (* 1 байт *)
      SBCO cutter.offset, 3, 64, 4 
      SBCO abz.zeroDetected, 3, 68, 1 
      SBCO abz.position, 3, 72, 2 
      SBCO abz.counter, 3, 76, 2 
    END_ASM
    На КДС стороне эти данные принимаются по соответствующим адресам
    Код:
    VAR
      TMP: DWORD;
    END_VAR
    
    PRU_FB_GetParameter(pru_num:=0, index:=15 (* == 60/4 == cutter.state *), value:=ADR(TMP));
    PRU_FB_GetParameter(pru_num:=0, index:=16 (* == 64/4 == cutter.offset *), value:=ADR(OFFSET));
    Нормально?
    Готовы так PRUграммировать?

    Мне не нравится, что приходится следить за адресами и соответствием PRU кода и КДС кода.
    Хочется чего-то автоматического, чтобы адреса выбирались сами собой, и чтобы КДС обёртка генерировалась одновременно с PRUграммой.
    Мне-то подобная работа с памятью ещё более-менее, но, думаю, для обывателя это сложновато.

    Моя проблема в том, что пары имеющихся у меня программ маловато, чтобы "обобщить опыт"

    Думаю пока в таком направлении: в "основной" PRUграмме отмечаем спец флагом те блоки/переменные, которые нужно передавать между КДС и PRU.

    Например, так:
    Снимок экрана 2016-10-08 в 23.37.29.png

    Ключевое слово @Export указывает имя ФБ на КДС стороне и перечень переменных, которые нужно передавать из/в КДС.
    В примере выше, Hardella создаст не только PRUграмму, но и КДС блоки PRU_ABZ_ENC/PRU_FAST_INPUTS, входы-выходы которых будут обмениваться с PRU.


    Как придумается адекватный подход, можно будет запускать PRUграммирование в массы.

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

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Попробовал "облагородить" обмен данными между PRU и основной программой -- столкнулся с тем, что мне не хватает задач.

    Ещё есть кандидаты на PRU программы?
    Надо кому-нибудь что-нибудь на тему "быстрого управления"?
    Да, я жду плк110 М02, задача стоит в управлении ШД с ускорением и замедлением и обратная связь от энкодера.
    Я так понимаю PRU мне как раз должна помочь в этом?
    В прошлом году задача решена была на плк160 + драйвер onitex, управление по rs485 (modbus), теперь хочу исключить onitex.
    На плк siemens (очень старом и очень давно) эти задачи решались 'мышкой' и работают по сей день, овен не очень хочет видимо делать просто и доступно.

  5. #5

    По умолчанию

    Цитата Сообщение от Scream Посмотреть сообщение
    Да, я жду плк110 М02, задача стоит в управлении ШД с ускорением и замедлением и обратная связь от энкодера.
    Я так понимаю PRU мне как раз должна помочь в этом?
    Да, верно. Можно задачу по-подробнее?


    Цитата Сообщение от Scream Посмотреть сообщение
    В прошлом году задача решена была на плк160 + драйвер onitex, управление по rs485 (modbus), теперь хочу исключить onitex.
    Вот смотрите: у вас и так и сяк ОВЕН ПЛК. Какой смысл "париться" ОВЕНу по вопросу PRU, если от этого всё равно не зависит ничего?

  6. #6
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,492

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Да, верно. Можно задачу по-подробнее?
    У нас фасовочный аппарат, объёмное дозирование. Пневмоцилиндр тягает поршень (в котором продукт) и упирается в ограничитель, который и двигает ШД.
    Позиция энкодера 0 ~ 3 кг продукта
    Позиция энкодера 850 ~ 1.5 кг продукта и т.д.
    Мне скорость не так важна как точность, так как цена одного оборота = 3 грамма продукта, ошибся на несколько оборотов = брак
    Ускорение и замедление делал как раз для точности.
    Машина выдаёт продукт, затем тара попадает на весы и если вес нужно подкорректировать, то ПЛК крутит в нужную сторону ШД на рассчитанное кол-во импульсов, таким образом получаем аппарат розлива с автоматической корректировкой веса.

  7. #7

    По умолчанию

    Цитата Сообщение от Scream Посмотреть сообщение
    Машина выдаёт продукт, затем тара попадает на весы и если вес нужно подкорректировать, то ПЛК крутит
    Ясно. Буду делать @Export. Вроде, и для вашего случая подходит.

  8. #8

    По умолчанию

    А как решен вопрос с утилизацией быстрых дискретных входов в программе PRU для управления ШД, которые в самом ФБ не используются ?

    Мне видится такие возможности их использования:
    1) подключение двух энкодеров (фазы А, В без нулевой метки);
    2) подключение одного энкодера (фазы А, В и нулевая метка) + один свободный вход для других нужд;
    3) 4 быстрых входа для других нужд.

    Во всех случаях надо предусмотреть фильтрацию входов.

  9. #9

    По умолчанию

    Цитата Сообщение от Newcomer Посмотреть сообщение
    А как решен вопрос с утилизацией быстрых дискретных входов в программе PRU для управления ШД, которые в самом ФБ не используются ?

    Мне видится такие возможности их использования:
    1) подключение двух энкодеров (фазы А, В без нулевой метки);
    Снимок экрана 2016-10-09 в 13.57.00.png

    Цитата Сообщение от Newcomer Посмотреть сообщение
    2) подключение одного энкодера (фазы А, В и нулевая метка) + один свободный вход для других нужд;
    Снимок экрана 2016-10-09 в 13.54.36.png

    Цитата Сообщение от Newcomer Посмотреть сообщение
    3) 4 быстрых входа для других нужд.
    Снимок экрана 2016-10-09 в 13.55.26.png

    Цитата Сообщение от Newcomer Посмотреть сообщение
    Во всех случаях надо предусмотреть фильтрацию входов.
    Фильтрация, это, наверное, либо параметр ФБ PRU_INPUTS, либо ещё один блок.

  10. #10

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Снимок экрана 2016-10-09 в 13.57.00.png


    Снимок экрана 2016-10-09 в 13.54.36.png


    Снимок экрана 2016-10-09 в 13.55.26.png


    Фильтрация, это, наверное, либо параметр ФБ PRU_INPUTS, либо ещё один блок.
    Фантастика. Все решается быстро и просто. Hardella IDE рулит. А.Приходько и В.Филоненко, а вы что скажите ? Может вам объединить свои усилия с В.Ситниковым ? От этого выиграют все и это главное о чем надо думать.
    Последний раз редактировалось Newcomer; 09.10.2016 в 15:36.

Страница 34 из 57 ПерваяПервая ... 24323334353644 ... ПоследняяПоследняя

Похожие темы

  1. Ответов: 38
    Последнее сообщение: 24.01.2022, 11:56
  2. Ответов: 10
    Последнее сообщение: 11.06.2021, 14:55
  3. часы реального времени
    от vetaly в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 28.08.2015, 16:21
  4. Таймер реального времени УТ1-РiС
    от ser10 в разделе Трёп (Курилка)
    Ответов: 0
    Последнее сообщение: 16.09.2010, 11:24

Ваши права

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