Условия в HAL

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

Условия в HAL

Сообщение cdtt » 28 авг 2017, 00:35

Добрый день. Весь интернет перерыл. Прошу помощи:

Хочу сделать на PyVCP панели выбор скорости подачи из 3-х переключателей: Медленно, средне и быстро.

custompanel.xml
Код: Выделить всёРазвернуть
<radiobutton>
   <choices>["slow","medium","fast"]</choices>
   <halpin>"jog-feed"</halpin>
</radiobutton>


В HAL необходимо задать скорость движения:
setp halui.jog-speed СКОРОСТЬ

Но вот в чем проблема, в панели 3 переменные jog-feed.slow, jog-feed.medium, jog-feed.fast - тип BIT
А необходимо, чтоб при выборе:
jog-feed.slow = TRUE было halui.jog-speed 10
jog-feed.medium = TRUE было halui.jog-speed 100
jog-feed.fast = TRUE было halui.jog-speed 1000

Может есть какое то простое решение?
cdtt
Новичок
 
Сообщения: 1
Зарегистрирован: 30 июл 2017, 20:26
Репутация: 0
Настоящее имя: Михаил

Re: Условия в HAL

Сообщение UAVpilot » 28 авг 2017, 01:02

cdtt писал(а):Но вот в чем проблема, в панели 3 переменные jog-feed.slow, jog-feed.medium, jog-feed.fast - тип BIT

В HAL нет ни условий, ни переменных, это вообще не язык программирования. Это язык описания схем (логических).

cdtt писал(а):Может есть какое то простое решение?

например mux8
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16175
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3950
Медальки:
Настоящее имя: Сергей

Re: Условия в HAL

Сообщение torvn77 » 28 авг 2017, 01:55

UAVpilot писал(а):. Это язык описания схем (логических).

Нет, hal правильнее определить как язык описания потоков данных между источниками, обработчиками и приёмниками.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2258
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 199
Медальки:

Re: Условия в HAL

Сообщение torvn77 » 28 авг 2017, 02:04

cdtt писал(а):Может есть какое то простое решение?

Простого решения нет, выдери из какого userspace приложения на питоне создание пинов и подключение нужных библиотек и сделай свой вариант мультиплексора.
Так же можно на много проще с помощью halcompile написать ядерный модуль на С, но его придётся всякий раз переустанавливать при обновлении ядра во избежание глюков и паник.
В прочем linuxcnc можно запускать скриптом и делать переустановку модуля всякий раз при её запуске.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2258
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 199
Медальки:

Re: Условия в HAL

Сообщение nkp » 28 авг 2017, 08:20

torvn77 писал(а):Простого решения нет

почему сложным тебе кажется решение ,предложенное выше(mux8) ?

Код: Выделить всёРазвернуть
loadrt mux8 count=1
addf mux8.0 servo-thread

setp mux8.0.in1    10.0
setp mux8.0.in2    100.0
setp mux8.0.in4    1000.0

net sel0 mux8.0.sel0  pyvcp.jog-feed.slow
net sel1 mux8.0.sel1  pyvcp.jog-feed.medium
net sel2 mux8.0.sel2  pyvcp.jog-feed.fast

net out-mux mux8.0.out  halui.jog-speed
nkp
Мастер
 
Сообщения: 7319
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1205
Медальки:

Re: Условия в HAL

Сообщение Сергей Саныч » 28 авг 2017, 09:23

torvn77 писал(а):Простого решения нет, выдери из какого userspace приложения на питоне создание пинов и подключение нужных библиотек и сделай свой вариант мультиплексора.
Так же можно на много проще с помощью halcompile написать ядерный модуль на С, но его придётся всякий раз переустанавливать при обновлении ядра во избежание глюков и паник.
В прочем linuxcnc можно запускать скриптом и делать переустановку модуля всякий раз при её запуске.
Да, трансректальная тонзиллэктомия - операция сложная и опасная :hehehe:
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
 
Сообщения: 7834
Зарегистрирован: 30 май 2012, 14:20
Откуда: Тюмень
Репутация: 2423
Медальки:

Re: Условия в HAL

Сообщение UAVpilot » 28 авг 2017, 11:06

torvn77 писал(а):Нет, hal правильнее определить как язык описания потоков данных между источниками, обработчиками и приёмниками.

Не надо выдумывать! :)
Есть такие языки как Verilog - HAL в LinuxCNC очень упрощённый вариант такого языка.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16175
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3950
Медальки:
Настоящее имя: Сергей

Re: Условия в HAL

Сообщение torvn77 » 29 авг 2017, 03:35

nkp писал(а):
torvn77 писал(а):Простого решения нет

почему сложным тебе кажется решение ,предложенное выше(mux8) ?
Код: Выделить всёРазвернуть
net sel0 mux8.0.sel0  pyvcp.jog-feed.slow

Потому что я ошибочно думал что выпадающий список выдаёт число с номером выбранного элемента.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2258
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 199
Медальки:

Re: Условия в HAL

Сообщение torvn77 » 29 авг 2017, 04:21

UAVpilot писал(а):
torvn77 писал(а):Нет, hal правильнее определить как язык описания потоков данных между источниками, обработчиками и приёмниками.

Не надо выдумывать! :)
Есть такие языки как Verilog - HAL в LinuxCNC очень упрощённый вариант такого языка.

1) Хал не может быть языком отношений, каким к примеру является Пролог, по той причине, что в нём присутствует время.
Например в прологе двойное отрицание будет выполнятся сразу, в хале правильный результат будет приходить с задержкой.
2) продолжая сравнение с тем же прологом встаёт вопрос, как осуществить получение новых значений с пина, ведь датчик может быть замкнут или разомкнут(в Прологе вообще нового значения нет как понятия).
В Прологе скорее всего это будет какая то всё возрастающей глубины рекурсия от первоначального запроса, то есть хал должен был бы хранить все свои предыдущие состояния и забить ими всё ОЗУ.
Но хал не хранит свои состояния и не ищет ответ как рекурсию от начала, он просто передаёт данные о состоянии пина, что больше похоже не на логическое описание, а на описание связей элементов с императивным программированием.
3) Если воспринимать хал как язык логических отношений, то если я при запущенной программе что либо меняю в хал с помощью halcmd то это будет две разных программы.
Но по факту то программа остаётся той же, перезагрузки её в ОЗУ не происходит, и на этот момент программа выпадает из твоей концепции хала как языка описания логических отношений.
А вот если смотреть на хал как на язык описания потоков, то выпадения программы из концепции не происходит, с этой точки зрения либо осуществляется прокладка трубы(net), либо подкручивание краника(setp,sets)


Я не настаиваю на придуманных мной терминах источник, приёмник и обработчик, может есть другие слова,
но для меня именно эти слова лучше всего описывают то, как хал ощущается при непосредственной с ним работе.

У гуманитариев есть наблюдение:
"Смысл литературного произведения состоит из трёх вещей:
1. То, что писатель сказал
2. То что писатель хотел сказать, но не смог
3. и то, что писатель не собирался говорить, но тем не менее сказал.
Вот по п.3 хал и является языком описания потоков, хотя как я тебя понимаю он происходит от языка описания логических отношений.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2258
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 199
Медальки:

Re: Условия в HAL

Сообщение Сергей Саныч » 29 авг 2017, 10:45

Вот есть же люди, умеющие невероятно сложно объяснить простые вещи! :hehehe:
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Сергей Саныч
Мастер
 
Сообщения: 7834
Зарегистрирован: 30 май 2012, 14:20
Откуда: Тюмень
Репутация: 2423
Медальки:

Re: Условия в HAL

Сообщение UAVpilot » 29 авг 2017, 12:47

torvn77 писал(а):выпадает из твоей концепции хала как языка описания логических отношений.

Не выдумывай отсебятины, я его так не называл.
И вот это не просто так появилось, а там нет никаких потоков и краников. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16175
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3950
Медальки:
Настоящее имя: Сергей

Re: Условия в HAL

Сообщение torvn77 » 31 авг 2017, 02:05

UAVpilot писал(а):Не выдумывай отсебятины, я его так не называл.

Действительно, меня с перепугу несколько занесло, извини пожалуйста.
UAVpilot писал(а):И вот это не просто так появилось, а там нет никаких потоков и краников. :)

"Краники" образ не удачный, но вот остальное там есть.
Условия в HAL Screenshot at 2017-08-31 01-48-41.png

На самом деле оба и твоё и моё описания корректны, ты описываешь социальное значение, я описываю внутреннее и практическое содержание.
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2258
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 199
Медальки:

Re: Условия в HAL

Сообщение UAVpilot » 31 авг 2017, 02:44

Любой электронщик скажет, что на картинке схема из логических элементов и связей между ними. Возможно сантехник увидит в этом потоки... :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16175
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3950
Медальки:
Настоящее имя: Сергей

Re: Условия в HAL

Сообщение torvn77 » 31 авг 2017, 03:07

UAVpilot писал(а):Возможно сантехник увидит в этом потоки... :)

Точно сантехник?
Условия в HAL Screenshot at 2017-08-31 03-03-05.png
Аватара пользователя
torvn77
Мастер
 
Сообщения: 2258
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 199
Медальки:

Re: Условия в HAL

Сообщение UAVpilot » 31 авг 2017, 10:24

Тяжёлый случай...
Ты вот это хоть читал: http://linuxcnc.org/docs/devel/html/hal ... techniques ? :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16175
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3950
Медальки:
Настоящее имя: Сергей


Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: AlexVlg, AVK74, Bing [Bot], Birden, Denis383, Google [Bot], guges, Hamster13, Keman, Majestic-12 [Bot], nkp, rage, Shah, ua3nbw, Yandex [bot], Цанга_гайка_двапера

Поделиться

Reputation System ©'