Условия в 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
1. Робот не может ответить отказом на предложение человека выпить или своим бездействием допустить, чтобы человек напился один.
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 14797
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 3594
Медальки:
Настоящее имя: Сергей

Re: Условия в HAL

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

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

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

Re: Условия в HAL

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

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

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

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
Мастер
 
Сообщения: 7066
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1113
Медальки:

Re: Условия в HAL

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

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

Re: Условия в HAL

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

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

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

Re: Условия в HAL

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

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

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

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

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
Мастер
 
Сообщения: 2215
Зарегистрирован: 02 июн 2012, 22:12
Откуда: Санкт-Петербург
Репутация: 182
Медальки:

Re: Условия в HAL

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

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

Re: Условия в HAL

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

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

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

Re: Условия в HAL

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

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

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

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

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

Re: Условия в HAL

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

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

Re: Условия в HAL

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

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

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

Re: Условия в HAL

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

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


Вернуться в LinuxCNC

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

Зарегистрированные пользователи: Alex lamaka, alex998, amikhailov, Antony, artclonic, Bing [Bot], Chili, Cvazist, Dimka_almighty, DrDWoo, fara8018, foto-boss, frezeryga, Google [Bot], Ifish, jo_key, key, Lafayette, Leonid Vs, leprud, Lunatic, Majestic-12 [Bot], McNikolson, MGG, michael-yurov, nik1, NKS, nva-tuning, Рамиль, peratron, Quark, Rion, Rom327, savo, scroober, SeReGa Sh, Smlua, sorter, SVP, toxakorzh, tsurika, Uda4LIVEc, verser, viael, wenji, Yahoo [Bot], Yandex [bot], Yarrr, ЧПУ-шник, шпиндель

Поделиться

Reputation System ©'