Страница 2 из 3

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

Добавлено: 10 ноя 2015, 14:36
Сергей Саныч
UAVpilot писал(а):Вон бери триггеры (компонент flipflop) и "паяй" из них счётчики в обычном текстовом редакторе.
Первый же триггер "уничтожит" ШИМ.
Так же, как впрочем и аппаратный счетчик.

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

Добавлено: 10 ноя 2015, 14:45
eugenysg
Сергей Саныч писал(а):Можно "из кубиков" собрать. Взять "пилу" или "треугольник" с выхода siggen, подать ее на вход компаратора comp, на второй вход comp подать задающий уровень. С выхода out компаратора - на включение охлаждения.
Частота siggen будет задавать период включения, а задающий уровень - время работы.
Интересное решение, попробую.

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

Добавлено: 10 ноя 2015, 14:52
Nick
UAVpilot писал(а):Можно попробовать парочку timedelay зациклить...
А что, и правда, наверное timedelay может такое:
in <- not <- out + если надо на out добавить and2 с пином включения сож.
И устанвливаем нужные временные промежутки....
http://linuxcnc.org/docs/html/man/man9/timedelay.9.html
timedelay.N.in bit in
timedelay.N.out bit out
Follows the value of in after applying the delays on-delay and off-delay.
timedelay.N.on-delay float in (default: 0.5)
The time, in seconds, for which in must be true before out becomes true
timedelay.N.off-delay float in (default: 0.5)
The time, in seconds, for which in must be false before out becomes false
timedelay.N.elapsed float out
Current value of the internal timer

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

Добавлено: 10 ноя 2015, 15:01
raddd
UAVpilot писал(а):
raddd писал(а):и еще можно внешнюю плату со счетчиком сделать
Внешнюю плату-то зачем? Вон бери триггеры (компонент flipflop) и "паяй" из них счётчики в обычном текстовом редакторе. :)
Вот я и говорю лучше делитель сделать софтовый. А если как у меня руки к паяльнику присохшие))) я б думал чегонибудь спаять...

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

Добавлено: 10 ноя 2015, 15:12
eugenysg
eugenysg писал(а):Сергей Саныч писал(а):
Можно "из кубиков" собрать. Взять "пилу" или "треугольник" с выхода siggen, подать ее на вход компаратора comp, на второй вход comp подать задающий уровень. С выхода out компаратора - на включение охлаждения.
Частота siggen будет задавать период включения, а задающий уровень - время работы.

Интересное решение, попробую.
Видимо должно получится что то вроде:

loadrt siggen num_chan=1
loadrt comp count=1

addf siggen.0.update servo-thread
addf comp.0

setp siggen.0.frequency 0.5 // Частота
setp siggen.0.amplitude 100
setp comp.0.in0 20 // Скважность
net temp_signal1 <= siggen.0.triangle
net temp_signal1 => comp.0.in1
net signal_to_out <= comp.0.out
net signal_to_out => hw2....... mesa в общем

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

Добавлено: 10 ноя 2015, 15:28
Сергей Саныч
addf comp.0 servo-thread

Еще setp siggen.0.offset 100 (чтобы не связываться с отрицательными значениями). Выход будет от 0 до 200

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

Добавлено: 10 ноя 2015, 15:40
eugenysg
Сергей Саныч писал(а):addf comp.0 servo-thread
Недокопипастил :) Спасибо
Сергей Саныч писал(а):Еще setp siggen.0.offset 100 (чтобы не связываться с отрицательными значениями). Выход будет от 0 до 200
Понятно, но решил пусть будет так, все равно только верхушки "отсекаем".

После работы попробую.

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

Добавлено: 10 ноя 2015, 21:18
eugenysg
Итоги теста - все рботет, спасибо за помощь!

loadrt siggen num_chan=1
loadrt comp count=1
addf siggen.0.update servo-thread
addf comp.0 servo-thread

setp siggen.0.frequency 0.4
setp siggen.0.amplitude 100
setp comp.0.in0 90

net triangle0_signal <= siggen.0.triangle => comp.0.in1
net signal_to_out => hm2_5i25.0.7i77.0.0.output-05 <= comp.0.out

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

Добавлено: 11 ноя 2015, 11:03
eugenysg
Появился еще вопрос - как выполнять простейшие математические действия с сигналами? Конкретно стоит задача значение сигнала сложить/умножить/... с константой.
Из того что удалось найти:
Умножение - mult2, или для особых гурманов scale (offset мне не нужен)
Сложение - простой функции не нашел, для особых гурманов sum2 (offset мне не нужен) или тот же scale через offset
Вычитание - простой функции не нашел, понятно что можно через сложение компонентом sum2 с scale -1 сделать, но как то это не правильно
Деление - не найдено

Что я делаю не так?

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

Добавлено: 11 ноя 2015, 14:56
Сергей Саныч
Вычитание - функция offset по цепи feedback.
Деление можно сделать умножением на результат функции invert.

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

Добавлено: 11 ноя 2015, 15:10
eugenysg
Сергей Саныч писал(а):Вычитание - функция offset по цепи feedback.
Честно, не понял.
Сергей Саныч писал(а):Деление можно сделать умножением на результат функции invert.
Спасибо. Но как же все запущено. Неужели нельзя было сделать простейшую функцию деления, чтож все через одно место делать то приходится.

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

Добавлено: 11 ноя 2015, 15:34
Сергей Саныч
eugenysg писал(а):Честно, не понял.
offset.N.update-feedback (requires a floating-point thread)

Update the feedback value by subtracting the offset from the feedback
offset.N.offset float in The offset value
offset.N.in float in The input value
offset.N.out float out The output value
offset.N.fb-in float in The feedback input value
offset.N.fb-out float out The feedback output value

Есть такой компонент - offset. У него две функции - одна выдает сумму входного значения и смещения, а вторая - (offset.N.update-feedback) разность.
eugenysg писал(а):чтож все через одно место делать то приходится.
Если рассматривать hal не как язык программирования, а как средство построения схем - многое начинает выглядеть логичней, чем на первый взгляд.

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

Добавлено: 13 ноя 2015, 09:43
nkp
eugenysg писал(а):Но как же все запущено. Неужели нельзя было сделать простейшую функцию деления, чтож все через одно место делать то приходится.
недостающий компонент пишем сами...
вот исходники "стандартных"...
в "свежих" версиях емс пользуем halcompile вместо comp...
http://www.linuxcnc.org/docs/devel/html/hal/comp.html

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

Добавлено: 13 ноя 2015, 09:52
Сергей Саныч
eugenysg писал(а):Неужели нельзя было сделать простейшую функцию деления
Раз за столько лет коллективный разум так и не удосужился это сделать, то, может, и не очень-то надо было?

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

Добавлено: 16 ноя 2015, 10:48
Nick
eugenysg писал(а):Неужели нельзя было сделать простейшую функцию деления
Деления нет из-за неопределенности деления на 0.

Что делать при 1/0 или 0/0?

В большинстве случаев спасает scale.
eugenysg писал(а):Сложение - простой функции не нашел, для особых гурманов sum2 (offset мне не нужен) или тот же scale через offset
Вычитание - простой функции не нашел, понятно что можно через сложение компонентом sum2 с scale -1 сделать, но как то это не правильно
sum2 - сложение и вычитание. Зачем делать отдельный компонент? Потом понадобится что-то в коде поменять, и придется половину hal переписывать, а так просто меняем один коэффициент. Плюс не надо кучу разных компонентов грузить.

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

Добавлено: 08 фев 2018, 22:28
Taganrog
Извеняюсь за подьем некротемы :) ,но дабы не плодить...
Пытаюсь пересесть со связки ncStudio + mach3 на LinuxCNC . Прочитав тему так и не понял получилось ли сделать таймер на несколько секунд ? В маче это делатся одной строчкой в brain editor:
Скриншот 2018-02-08 22.20.00.png (2500 просмотров) <a class='original' href='./download/file.php?id=131956&mode=view' target=_blank>Загрузить оригинал (55.2 КБ)</a>
Пример его работы:
https://www.youtube.com/watch?v=yGh1BzAi454
Появился ли за эти годы какой нибудь аналогичный компонент для linuxCnc ?

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

Добавлено: 09 фев 2018, 00:52
Serg
компоненты timedelay и siggen, макс. время задержки 3×10²¹ миллиардов лет. :)

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

Добавлено: 09 фев 2018, 10:05
Taganrog
спасибо. думаю такого срока достаточно :) пошел их изучать.

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

Добавлено: 09 фев 2018, 10:19
Umnik
Taganrog писал(а):Извеняюсь за подьем некротемы :) ,но дабы не плодить...
Пытаюсь пересесть со связки ncStudio + mach3 на LinuxCNC . Прочитав тему так и не понял получилось ли сделать таймер на несколько секунд ? В маче это делатся одной строчкой в brain editor:
Скриншот 2018-02-08 22.20.00.png
Пример его работы:
https://www.youtube.com/watch?v=yGh1BzAi454
Появился ли за эти годы какой нибудь аналогичный компонент для linuxCnc ?
И
Т.е. как я понимаю, мач согласно установленных в нем настроек сам включает насос подачи СОЖ через определенное время?

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

Добавлено: 09 фев 2018, 11:30
Taganrog
да. при нажатии кнопки включения начинает циклически включать релюху на 1 сек потом пауза 4 сек и т.д. по кругу до остановки кнопкой стоп.