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

Тема: ПЛК110-60.К-М (М02) и высокочастотный таймер - быстрый выход. Срабатывает вачдог.

  1. #1

    По умолчанию ПЛК110-60.К-М (М02) и высокочастотный таймер - быстрый выход. Срабатывает вачдог.

    Здравствуйте. Простая задача - покрутить шаговый двигатель. Надо три сигнала - разрешение (ENA), Направление (DIR) - медленные сигналы, обычные выхода справятся и тактовый (PUL), быстрый, порядка 5 кГц (а лучше больше). Знаю, что быстрые входа/выхода у ПЛК110 имеются, решил использовать связку высокочастотный таймер (прерывание) плюс непосредственная запись в быстрые выхода. Скорость моторчика меняю изменяя период вызова таймера (с шагом 20 мкс, разумеется, хотя это довольно дискретно), далее инициализирую таймер. В обработке прерывания от таймера тупо инвертирую сигнал на первом быстром выходе, таким образом и получаю искомый меандр. В самой программе реализовал что-то вроде плавного разгона (меняю период вызова таймера от предустановленного максимума до минимума. Делаю это через заданный интервал времени, для начала выбрал 100 мс). Так вот, если я начинаю более шустро, чем каждые 100 мс, понижать период таймера, ПЛК зависает, перезагружается. Такое иногда случается и на 100 мс. Аналогично с подключенным драйвером шагового двигателя и без него (было подозрение на помехи от движка. Нет.). Моторчик, кстати, раскручивается (но хотелось бы темп ускорить). В debug.txt появляется в итоге запись:
    2022. 1.24 14:23:19 # 0 KERNEL LOADED
    2022. 1.24 14:23:19 # 17 E PLC was reset by watchdog!
    2022. 1.24 14:23:20 # 2 PLC STOPED
    2022. 1.24 14:23:20 # 3 M
    Last run module Id =834271162
    2022. 1.24 14:23:20 # 3 M Last post module Id =-1430524739
    2022. 1.24 14:23:20 # 3 M local_status =10020915
    2022. 1.24 14:23:20 # 3 M local data #1 =baef29e7
    2022. 1.24 14:23:20 # 3 M local data #2 =f8017def
    2022. 1.24 14:23:20 # 3 M local data #3 =6ecf71cf
    2022. 1.24 14:23:20 # 3 M local data #4 =f3edd1e9
    Из чего можно сделать вывод, что ПЛК повис и был перезагружен. От чего такое может быть? Видимо, это происходит, если инициализируешь высокочастотный таймер чаще, чем раз в 100 мс (но это не точно). И что делать с этим?
    Тестовый проект во вложении.
    Вложения Вложения
    Последний раз редактировалось Рашид; 25.01.2022 в 10:41.

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

    По умолчанию

    Во вложении архив, в котором файлы специальной программы управления ШД для Овен 110М2.
    Делаете полный заводской сброс своего ПЛК, файлы PRU0.prg и PRU1.prg просто копируете в корень файловой системы ПЛК, третий файдл экспортируете в проект. Будет добавлено несколько POU для управления сопроцессора быстрых входов\выходов ПЛК.
    И не нужно будет использовать всякие таймеры.

  3. #3
    Пользователь Аватар для A.Simonov
    Регистрация
    11.07.2017
    Адрес
    Москва
    Сообщений
    623

    По умолчанию

    Цитата Сообщение от Рашид Посмотреть сообщение
    Здравствуйте. Простая задача - покрутить шаговый двигатель. Надо три сигнала - разрешение (ENA), Направление (DIR) - медленные сигналы, обычные выхода справятся и тактовый (PUL), быстрый, порядка 5 кГц (а лучше больше). Знаю, что быстрые входа/выхода у ПЛК110 имеются, решил использовать связку высокочастотный таймер (прерывание) плюс непосредственная запись в быстрые выхода. Скорость моторчика меняю изменяя период вызова таймера (с шагом 20 мкс, разумеется, хотя это довольно дискретно), далее инициализирую таймер. В обработке прерывания от таймера тупо инвертирую сигнал на первом быстром выходе, таким образом и получаю искомый меандр. В самой программе реализовал что-то вроде плавного разгона (меняю период вызова таймера от предустановленного максимума до минимума. Делаю это через заданный интервал времени, для начала выбрал 100 мс). Так вот, если я начинаю более шустро, чем каждые 100 мс, понижать период таймера, ПЛК зависает, перезагружается. Такое иногда случается и на 100 мс. Аналогично с подключенным драйвером шагового двигателя и без него (было подозрение на помехи от движка. Нет.). Моторчик, кстати, раскручивается (но хотелось бы темп ускорить). В debug.txt появляется в итоге запись:
    2022. 1.24 14:23:19 # 0 KERNEL LOADED
    2022. 1.24 14:23:19 # 17 E PLC was reset by watchdog!
    2022. 1.24 14:23:20 # 2 PLC STOPED
    2022. 1.24 14:23:20 # 3 M
    Last run module Id =834271162
    2022. 1.24 14:23:20 # 3 M Last post module Id =-1430524739
    2022. 1.24 14:23:20 # 3 M local_status =10020915
    2022. 1.24 14:23:20 # 3 M local data #1 =baef29e7
    2022. 1.24 14:23:20 # 3 M local data #2 =f8017def
    2022. 1.24 14:23:20 # 3 M local data #3 =6ecf71cf
    2022. 1.24 14:23:20 # 3 M local data #4 =f3edd1e9
    Из чего можно сделать вывод, что ПЛК повис и был перезагружен. От чего такое может быть? Видимо, это происходит, если инициализируешь высокочастотный таймер чаще, чем раз в 100 мс (но это не точно). И что делать с этим?
    Тестовый проект во вложении.
    Добрый день.

    В ветке конфигурации, зайдите в настройки ПЛК и попробуйте там увеличить минимальное время цикла с 1мс до 10мс, скажем, и посмотреть на результат.

    Александр Андреевич Симонов
    Инженер по продуктам «ПЛК, модули и OwenCloud»

    Не работаю в ОВЕН с 01.07.22
    По всем вопросам обращайтесь на почту: support@owen.ru

  4. #4

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    Во вложении архив, в котором файлы специальной программы управления ШД для Овен 110М2.
    Делаете полный заводской сброс своего ПЛК, файлы PRU0.prg и PRU1.prg просто копируете в корень файловой системы ПЛК, третий файдл экспортируете в проект. Будет добавлено несколько POU для управления сопроцессора быстрых входов\выходов ПЛК.
    И не нужно будет использовать всякие таймеры.
    Попробую, спасибо. Но что не так с прерываниями по таймеру, тоже хотелось бы узнать. Мало ли, приспичит под быстрые процессы использовать.
    Последний раз редактировалось Рашид; 25.01.2022 в 11:45.

  5. #5

    По умолчанию

    Цитата Сообщение от A.Simonov Посмотреть сообщение
    Добрый день.

    В ветке конфигурации, зайдите в настройки ПЛК и попробуйте там увеличить минимальное время цикла с 1мс до 10мс, скажем, и посмотреть на результат.
    Увеличил. Так же ребутнулся ПЛК после нескольких прогонов инициализаций таймера (с интервалом в 100 мс).

  6. #6

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    Во вложении архив, в котором файлы специальной программы управления ШД для Овен 110М2.
    Делаете полный заводской сброс своего ПЛК, файлы PRU0.prg и PRU1.prg просто копируете в корень файловой системы ПЛК, третий файдл экспортируете в проект. Будет добавлено несколько POU для управления сопроцессора быстрых входов\выходов ПЛК.
    И не нужно будет использовать всякие таймеры.
    .... а есть какой-нибудь мануал к этому или что-нибудь, чтобы разобраться с содержимым? Скопировал, установил, но пока не разобрался, что к чему.

  7. #7

    По умолчанию

    вы переинициализируете таймер прерывания без его остановки - надо выполнить ClearIRQ перед новым SetIRQ

  8. #8

    По умолчанию

    Цитата Сообщение от Трофимов Артем Посмотреть сообщение
    вы переинициализируете таймер прерывания без его остановки - надо выполнить ClearIRQ перед новым SetIRQ
    Да, действительно, если выполнить ClearIRQ() перед SetIRQ(TIRQ), то никаких зависаний не наблюдается. Спасибо.

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

    По умолчанию

    Рашид
    а есть какой-нибудь мануал к этому или что-нибудь, чтобы разобраться с содержимым?
    Программа написана в среде HardellaIDE местными умельцами. Как такового мануала нет, надо читать про возможности среды, там объяснен принцип работы сопроцессора быстрых входов-выходов. В общих чертах - в начале цикла основной POU вызываем программу чтения из PRU, выполняем свою программу, в конце цикла основной POU вызываем программу записи в PRU. Программа в PRU выполняется независимо от основной программы на собственном физическом сопроцессоре, причем не использует даже основной процессор.
    --
    А в вашем способе есть один ключевой недостаток - отсутствие времени разгона\торможения ШД. Это может привести к выходу из строя драйвера ШД при останове.

  10. #10

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    Рашид

    Программа написана в среде HardellaIDE местными умельцами. Как такового мануала нет, надо читать про возможности среды, там объяснен принцип работы сопроцессора быстрых входов-выходов. В общих чертах - в начале цикла основной POU вызываем программу чтения из PRU, выполняем свою программу, в конце цикла основной POU вызываем программу записи в PRU. Программа в PRU выполняется независимо от основной программы на собственном физическом сопроцессоре, причем не использует даже основной процессор.
    --
    А в вашем способе есть один ключевой недостаток - отсутствие времени разгона\торможения ШД. Это может привести к выходу из строя драйвера ШД при останове.
    Понял, буду изучать. Но по поводу недостатка, я как раз и пытался его обойти, реализовав разгон (что нужен разгон стало ясно в самом начале, когда я попытался шустро прокрутить ШД, кроме визга и писка ничего не вышло). В этой тестовой программе не пытаюсь сразу на всю катушку крутить ШД, а формирую меандр с нарастающей частотой частотой от 1 кГц до 5 кГц (с шагом 38 Гц). В итоге мотор довольно плавно раскручивается, без срывов, работает весьма шустро. Но остановку плавную пока не делал, это да, сейчас просто мотор колом встаёт.

Похожие темы

  1. Ответов: 2
    Последнее сообщение: 10.12.2020, 11:41
  2. Быстрый счетчик на ПЛК110. Не видит быстрый вход.
    от Валерий Бурик в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 18.04.2019, 21:29
  3. Ответов: 9
    Последнее сообщение: 16.12.2016, 21:53
  4. ТРМ-501 - не срабатывает таймер.
    от Kolt в разделе Эксплуатация
    Ответов: 3
    Последнее сообщение: 18.08.2014, 11:21
  5. ПЛК110 и быстрый таймер... непонятно
    от Дмитрий Артюховский в разделе ПЛК1хх
    Ответов: 12
    Последнее сообщение: 31.05.2011, 20:10

Ваши права

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