Импульсная подача СОЖ/воздуха.

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
eugenysg
Опытный
Сообщения: 119
Зарегистрирован: 18 ноя 2013, 13:23
Репутация: 25
Контактная информация:

Импульсная подача СОЖ/воздуха.

Сообщение eugenysg »

Коллеги, приветствую!
Интересуют методы реализации импульсной подачи СОЖ/воздуха средствами LCNC. Скорее всего данную задачу уже решали, но к сожалению я не смог найти соответствующую тему. Подскажите пожалуйста.
По сути есть желание получить ШИМ на клапанах (с крайне низкой частотой) при M07 и M08. Частоту и скважность хочется иметь возможность изменять, оптимально через ползунки на панели :)
Клапаны подключены через промежуточные реле к 7i77.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение Nick »

Делаешь pwmgen, настраиваешь на нем частоту, и подключаешь к релле.

http://linuxcnc.org/docs/html/man/man9/pwmgen.9.html

Какая именно частота нужна?
Какие пины?
eugenysg
Опытный
Сообщения: 119
Зарегистрирован: 18 ноя 2013, 13:23
Репутация: 25
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение eugenysg »

Частота менее 1 гц. Пины точно не помню, посмотреть сейчас нет возможности. Какие то из output пинов 7i77 (TB7-8 pin17-24), как понимаю не принципиально.
Пример бы конфига какой, пусть и сильно отвлеченный. Пошел курить мануал.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение Nick »

Ну суть в чем добавляешь в custom.hal:

Код: Выделить всё

loadrt pwmgen

addf pwmgen.update servo-thread
addf pwmgen.make-pulses servo-thread

net [сигнал сож] => pwmgen.0.enable
net [сигнал ползунка] => pwmgen.0.value
net [на вывод] <= pwmgen.0.pwm

setp pwmgen.0.pwm-freq [частота Гц]
ну и остальный параметры scale, offset и прочее...

eugenysg
Опытный
Сообщения: 119
Зарегистрирован: 18 ноя 2013, 13:23
Репутация: 25
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение eugenysg »

Спасибо!
eugenysg
Опытный
Сообщения: 119
Зарегистрирован: 18 ноя 2013, 13:23
Репутация: 25
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение eugenysg »

Вчера нашлось немного времени. Попробовал. Кусок castom.hal c моим творчеством приведен на кривом рисунке ниже :)
PWM.jpg (3467 просмотров) <a class='original' href='./download/file.php?id=63208&mode=view' target=_blank>Загрузить оригинал (810.79 КБ)</a>
Собственно в чем проблема - pwmgen.X.value работает, скважность изменяется, а вот с частотой заданной pwmgen.X.pwm-freq какие-то чудеса - на картинке видно что указана частота 0.001Гц, при этом реальная выходная частота около 1 Гц. Если изменить pwmgen.X.pwm-freq на 0.1 (да, на 2 порядка) реальная выходная частота все равно около 1 Гц. Что то явно делаю не так.

Кроме того был реально удивлен активностью пина и реального выхода при machine off/estop. Запускаю LCNC и релюшка уже щелкает. Понятно что конфиг глубоко тестовый и не заведен на внутренние сиглалы lcnc сож , но предполагал что при machine off/estop активность физических выходов не допустима.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение Serg »

eugenysg писал(а):предполагал что при machine off/estop активность физических выходов не допустима.
Вообще никак не связано.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
eugenysg
Опытный
Сообщения: 119
Зарегистрирован: 18 ноя 2013, 13:23
Репутация: 25
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение eugenysg »

UAVpilot писал(а):Вообще никак не связано.
Понятно. А по поводу pwmgen мысли есть?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение Serg »

Пока нет, нужно время найти чтоб попробовать...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение Сергей Саныч »

eugenysg писал(а):А по поводу pwmgen мысли есть?
Функция pwmgen.make-pulses не использует вычисления с плавающей запятой.
Следовательно, есть ограничения, связанные с диапазоном целых 32-битных чисел - для знаковых -2147483648..+2147483647. Всякие времЕнные величины (периоды, длительности) внутри LCNC в основном представлены в наносекундах. Получается, что с генерацией периодов больше чем 2147483647 / 1000000000 ~= 2,1 сек. будут затруднения.

PS: В тексте pwmgen прямо сказано
/* min freq is 0.5 Hz (2 billion nsec period) */
Последний раз редактировалось Сергей Саныч 10 ноя 2015, 13:49, всего редактировалось 1 раз.
Чудес не бывает. Бывают фокусы.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение aftaev »

UAPilot, как то делал смазку по кол-ву смены направлений оси. Так же сделать, только вместо смазки СОЖ пшикать.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение Nick »

А pdm - это же частотно импульсная модуляция? Она не спасет?

Ну или как вариант можно попробовать на других компонентах.
А там реально частота будет около 1Гц, или там будет раз в 15-20 секунд включить на 1-2 секунды?
eugenysg
Опытный
Сообщения: 119
Зарегистрирован: 18 ноя 2013, 13:23
Репутация: 25
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение eugenysg »

Nick писал(а):А там реально частота будет около 1Гц, или там будет раз в 15-20 секунд включить на 1-2 секунды?
Хотелось бы раз в 3-4 секунды включить подачу на 0,2-0,5 секунды.
eugenysg
Опытный
Сообщения: 119
Зарегистрирован: 18 ноя 2013, 13:23
Репутация: 25
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение eugenysg »

Сергей Саныч писал(а):/* min freq is 0.5 Hz (2 billion nsec period) */
Нашел то о чем вы упоминаете, стало понятно что все что меньше 0,5 будет принудительно приравнено к 0,5.
if ( *(pwmgen->pwm_freq) < 0.5 ) { *(pwmgen->pwm_freq) = 0.5; /* min freq is 0.5 Hz (2 billion nsec period) */

https://github.com/jepler/linuxcnc-mirr ... s/pwmgen.c
Последний раз редактировалось eugenysg 10 ноя 2015, 14:25, всего редактировалось 1 раз.
Аватара пользователя
raddd
Почётный участник
Почётный участник
Сообщения: 1564
Зарегистрирован: 10 фев 2015, 08:50
Репутация: 540
Настоящее имя: Alexey Rodionov
Откуда: Беларусь Минский р-н
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение raddd »

Так может счетчика добавить в качестве делителя частоты?
||||||||||||
||||||||||||
eugenysg
Опытный
Сообщения: 119
Зарегистрирован: 18 ноя 2013, 13:23
Репутация: 25
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение eugenysg »

raddd писал(а):Так может счетчика добавить в качестве делителя частоты?
Технически каким образом это реализуемо?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение Serg »

eugenysg писал(а):Хотелось бы раз в 3-4 секунды включить подачу на 0,2-0,5 секунды.
Можно попробовать парочку timedelay зациклить...
eugenysg писал(а):Технически каким образом это реализуемо?
компонентом encoder.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
raddd
Почётный участник
Почётный участник
Сообщения: 1564
Зарегистрирован: 10 фев 2015, 08:50
Репутация: 540
Настоящее имя: Alexey Rodionov
Откуда: Беларусь Минский р-н
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение raddd »

Насколько я знаю в линукс можно логические элементы подключать. и еще можно внешнюю плату со счетчиком сделать. Скажем каждых 32 импульса от pwmgen появляется 1. После нее таймер на нужное время впрыска.
||||||||||||
||||||||||||
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение Сергей Саныч »

Nick писал(а):А там реально частота будет около 1Гц
Да, не менее 0,5 Гц.
Можно "из кубиков" собрать. Взять "пилу" или "треугольник" с выхода siggen, подать ее на вход компаратора comp, на второй вход comp подать задающий уровень. С выхода out компаратора - на включение охлаждения.
Частота siggen будет задавать период включения, а задающий уровень - время работы.
Последний раз редактировалось Сергей Саныч 10 ноя 2015, 14:34, всего редактировалось 1 раз.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Импульсная подача СОЖ/воздуха.

Сообщение Serg »

raddd писал(а):и еще можно внешнюю плату со счетчиком сделать
Внешнюю плату-то зачем? Вон бери триггеры (компонент flipflop) и "паяй" из них счётчики в обычном текстовом редакторе. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

Вернуться в «LinuxCNC»