Страница 101 из 135 ПерваяПервая ... 519199100101102103111 ... ПоследняяПоследняя
Показано с 1,001 по 1,010 из 1349

Тема: Hardella IDE

  1. #1001

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Либо оставлять синхронизацию в ПЛК, но тогда нужно, чтобы PRU программа заканчивала генерацию не более чем за 14-15мс, чтобы у ПЛК был шанс обработать и перезапустить.
    Я про это то же ранее писал.

  2. #1002

    По умолчанию

    Цитата Сообщение от Newcomer Посмотреть сообщение
    Я про это то же ранее писал.
    А потом окажется новая проблема: "ой, генерация завершилась за 14мс, что делать".

  3. #1003

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    А потом окажется новая проблема: "ой, генерация завершилась за 14мс, что делать".
    Это не проблема. Главное что бы генерация завершилась не позднее 16,7 мс. Уменьшать минимальное значение интервала (14...15 мс) то же не хорошо, т.к. это ведет к увеличению расчетного значения accel_ramp, что может привести к пропуску импульсов ШД.
    Последний раз редактировалось Newcomer; 09.07.2017 в 18:48.

  4. #1004

    По умолчанию

    Владимир, задаю заведомо большее чем над accel_ramp и получаю совсем плохой результат. Пачка импульсов генерируется много дольше расчетного времени. Т.е. ФБ steper не верно интерпретирует accel_ramp, который ему задается.
    Последний раз редактировалось Newcomer; 10.07.2017 в 13:38.

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

    По умолчанию

    Приподниму малость тему.

    Моя разработка модуля PRU-энкодера с детектором машинного нуля уже успешно работает около трех месяцев в режиме 24\7.
    После модернизации оборудования, при наладке, выявился интересный глюк. Установка имеет несколько электромагнитных клапанов, которые управляются с ПЛК через промежуточные реле. Напряжение питания их соленоидов 230VAC. При размыкании (отпускании) реле одного из соленоидов происходил сброс показаний энкодера в ноль. Флаг машинного нуля при этом не сбрасывался, как не наблюдалось сбоев и в ПЛЦ_ПРГ. Проблему мы конечно решили методом изменения и экранировки разводки, но как говорится, "осадочек остался". Я понимаю, что это вопрос к производителю ПЛК, однако я не могу понять почему сбрасывался один регистр ПРУ, но не сбрасывался другой.
    --------------
    Другой вопрос.
    Есть задумка модернизации еще одной установки, но там нужен ПРУ-модуль почти как для ШД.
    Установка содержит три не очень навороченных сервопривода с возможностью управления от Step\Dir.
    Задача заключается в том, что бы на привод №1 выдать образцовую частоту вращения F, на привод №2выдать F +- дельта, где дельта= 3% с максимально плавной регулировкой, на привод №3 выдать F+5% с ограничением момента (это функционал привода).
    Частота импульсов примерно 30-50кГц. Т.е. например на привод №1 отправляем 32500Гц, на привод №2 - 32614Гц, на привод №3 - 32894Гц. Направление менять не требуется, ибо вращение идет всегда только в одну сторону. Рассматриваю так же просто передачу уставки скорости по Модбасу, но там только в Гц, и думаю будет грубовато.
    Собственно вопросы:
    1). В процессе работы есть оперативная необходимость изменения частоты любого из приводов без останова генератора, т. к. останов недопустим. Получится ли сделать три таких независимых генератора импульсов?
    2). Генераторы должны работать бесконечно.
    Последний раз редактировалось Sulfur; 05.10.2017 в 08:57.

  6. #1006

    По умолчанию

    А катушки ЭМ клапанов RC-цепочками зашунтированы ?

    По второй задаче особых проблем не вижу. Но интересно что скажет отец основатель Hardella IDE В.Ситников.
    Последний раз редактировалось Newcomer; 05.10.2017 в 10:48.

  7. #1007

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    Приподниму малость тему.

    Моя разработка модуля PRU-энкодера с детектором машинного нуля уже успешно работает около трех месяцев в режиме 24\7.
    Это хорошо

    Цитата Сообщение от Sulfur Посмотреть сообщение
    Частота импульсов примерно 30-50кГц. Т.е. например на привод №1 отправляем 32500Гц, на привод №2 - 32614Гц, на привод №3 - 32894Гц. Направление менять не требуется, ибо вращение идет всегда только в одну сторону. Рассматриваю так же просто передачу уставки скорости по Модбасу, но там только в Гц, и думаю будет грубовато.
    Т.е. установка уже может принимать уставку частоты по modbus с точностью до Гц, и вы всё равно хотите заменить?
    Почему же тогда?

    Вообще говоря, 32500Гц это 30769.2нс, а 32501 это 30768.3нс.
    Если у вас установка может не только принимать "с точностью до Гц", но ещё и реально выставлять частоту с точностью до Гц, то зачем же её "модернизировать"?

    Цитата Сообщение от Sulfur Посмотреть сообщение
    Собственно вопросы:
    1). В процессе работы есть оперативная необходимость изменения частоты любого из приводов без останова генератора, т. к. останов недопустим. Получится ли сделать три таких независимых генератора импульсов?
    Там, говорите, серво?
    Т.е. им можно выдавать приближенную частоту, а они подстроятся?
    3 генератора сделать можно. И подстройку частоты тоже можно сделать.

    Вопрос в точности, которая нужна.
    Например, если поставить цикл PRU в 1мкс, то грубо говоря, генерируемые импульсы будут кратны 1мкс.
    Импульс в 32мкс (16 единиц, 16 нулей) это 31'250Гц.
    Импульс в 33мкс (17 единиц, 16 нулей) это 30'303Гц.
    Импульс в 34мкс (17 единиц, 17 нулей) это 29'412Гц.

    В итоге, при уставке в 30'000Гц PRU будет чередовать 33мкс и 34мкс импульсы примерно так: 33 34 33 ... Тут так получается, что 33+34+33=100мкс, а 3 импульса за 100мкс это как раз 30кГц=3/100мкс.

    Вряд ли, конечно, вам будет это мешать, но вдруг.
    Вы это понимаете, и вас устраивает?


    Цитата Сообщение от Sulfur Посмотреть сообщение
    2). Генераторы должны работать бесконечно.
    Это, конечно, можно.

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

    По умолчанию

    Т.е. установка уже может принимать уставку частоты по modbus с точностью до Гц, и вы всё равно хотите заменить?
    Почему же тогда?
    Уставка задается в Гц с точностью 0.01Гц в диапазоне 1.50...50.00 Гц. С имеющимися двигателями дискретность уставки получается примерно 0.3 об\мин. Вероятно хватит, но на всякий случай буду прорабатывать вариант с Степ\Дир. В данный момент используется аналоговое управление высокоточным многообортным переменным резистором (10 оборотов), для получения нужного результата оператору иногда приходится вращать ручку буквально на несколько градусов.
    Вообще говоря, 32500Гц это 30769.2нс, а 32501 это 30768.3нс.
    Приведенные мною цифры весьма условные, чисто для понимания задачи.
    Там, говорите, серво?
    Т.е. им можно выдавать приближенную частоту, а они подстроятся?
    3 генератора сделать можно. И подстройку частоты тоже можно сделать.
    Стоят асинхронные двигатели с установленными резольверами. В приводе резольверный сигнал преобразуется в "энкодерный" 1024имп\об. Для задачи частоты требуется подавать внешний сигнал по формуле 4х, т.е. чтобы вал двигателя повернулся на 1 оборот нужно выдать 4096 импульсов. Обычная скорость вращения - 300-600 об\мин. Да, привод подстраивает частоту, т.к. она немного плавает от внешних механических возмущений (люфты, неравномерность нагрузки и т.п.)
    По факту получается, что нужно иметь генератор в диапазоне 20..50кГц с возможностью оперативного изменения частоты с дискретностью 1 Гц. Например для частоты 40000 Гц обороты двигателя будут равны 585,94 об\мин, для 40001 Гц это составит 585,95 об\мин. Грубо - 1Гц равен 0.01 об\мин. В принципе это очень высокая точность, даже излишняя. Думаю дискретности задающей частоты в 5 Гц будет достаточно. Это в 6 раз точнее, чем через Модбас.
    Завтра понаблюдаю за реальными цифрами на пока еще живой установке)).
    Вопрос в точности, которая нужна.
    Импульс в 32мкс (16 единиц, 16 нулей) это 31'250Гц.
    Импульс в 33мкс (17 единиц, 16 нулей) это 30'303Гц.
    Импульс в 34мкс (17 единиц, 17 нулей) это 29'412Гц.
    32мкс = 457,76 об\мин
    33мкс = 443,89 об\мин
    34мкс = 430,84 об\мин.
    Это очень грубая дискретность.
    Можно ли в ПРУ ставить время цикла меньше, чем 1 мкс?
    Последний раз редактировалось Sulfur; 05.10.2017 в 17:15.

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

    По умолчанию

    Цитата Сообщение от Newcomer Посмотреть сообщение
    А катушки ЭМ клапанов RC-цепочками зашунтированы ?
    Не уверен что во всех (5 шт) есть помехоподавляющие цепи. Уже закуплены аналогичные катушки, но с напряжением 24VDC и помехоподавляющими приспособами. Поменять пока не получается, т. к. поскольку всё работает, меня не подпускают к машине ))).

  10. #1010

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    32мкс = 457,76 об\мин
    33мкс = 443,89 об\мин
    34мкс = 430,84 об\мин.
    Это очень грубая дискретность.
    Вы правильно поняли?

    Вы тут оперируете словом "количество оборотов в минуту", а я говорю о том, что 33-34 мкс импульсы будут быстро-быстро меняться так, что "в среднем" (скажем, среднее за несколько секунд) окажется 33.333333.

    Ну или пример для ваших "443,89 об\мин 430,84 об\мин"

    Допустим, уставка 437.00 об\мин.
    PRU может генерировать такие импульсы: 33 34 34 33 34 33 34 33 34 33 34 33 34 33 34 33 34 33 34 33 34 33 34 33 34...
    Это 25 импульсов за 838мкс или 33.52мкс/импульс или 437.006 Гц в среднем за эту "секунду".

    За это время (25 имп) вал провернётся на 1.83 градуса.

    Вам точно такой точности не хватит?

    Текущий ШД-блок именно так делает. Он размазывает импульсы и в среднем получается указанная частота.

    Цитата Сообщение от Sulfur Посмотреть сообщение
    Можно ли в ПРУ ставить время цикла меньше, чем 1 мкс?
    Надо, конечно, смотреть PRU статистику. Может, и можно ставить меньше 1мкс, но сильно меньше не получится.
    Ну, поставим 0.5мкс, но это всё равно не будет чем-то кардинально более точным.

    Сделать "безцикловый режим", наверное, можно, но непросто. 1мкс это 1000нс, или 200 команд PRU процессора.
    Я с самого начала говорил, что "точность в 1 Гц на частоте 30кГц" это то же самое, что и "точность в 1нс".
    А PRU ядро на одну команду тратит 5нс. Как вы собираетесь делать точность в 1нс при этом?

    Начнём с того, что (пишу по памяти):
    1) Нужно сделать какой-то обмен между PRU и PLC_PRG. Он может занять, например, 100-200нс. Конечно, зависит от количества обменных переменных и т.п.
    2) "Цикл ожидания времени" на PRU сам по себе занимает ~50нс
    3) Ну и самое коварное: вы же хотите 3 генератора одновременно. Может так оказаться, что "нужно сгенерировать импульс через 50нс для 1-го, потом через 1нс импульс для 2-го и ещё через 2нс импульс для третьего генератора". Если "подождать 50нс до генерации 1-го импульса PRU ещё может", то после этого не так то и просто будет "за 1 нс сгенерировать второй импульс".

    Либо вариант "2 ПЛК", "по 2 PRU ядра в каждом", "на каждом PRU ядре свой генератор". Но это, по-моему, дичь какая-то.

Страница 101 из 135 ПерваяПервая ... 519199100101102103111 ... ПоследняяПоследняя

Ваши права

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