For most of the tools, a more detailed description can be found in the chapter HAL Tutorial
1. Halcmd
halcmd — це інструмент командного рядка для роботи з HAL. Існує досить повна сторінка довідки для посилання:../man/man1/halcmd.1.html[halcmd], яка буде встановлена, якщо ви встановили LinuxCNC з вихідного коду або пакета. Сторінка довідки містить інформацію про використання:
man halcmd
Якщо ви скомпілювали LinuxCNC для "запуску на місці", вам потрібно знайти вихідний код скрипта rip-environment, щоб зробити сторінку довідника доступною:
cd toplevel_directory_for_rip_build
. scripts/rip-environment
man halcmd
У розділі HAL Tutorial наведено низку прикладів використання halcmd, і він є гарним навчальним посібником з halcmd.
2. Півметра
halmeter is like a voltmeter for the HAL. It lets you look at a pin, signal, or parameter, and displays the current value of that item. It is pretty simple to use. Start it by typing halmeter in an X windows shell. Halmeter is a GUI application. It will pop up a small window, with two buttons labeled "Select" and "Exit". Exit is easy - it shuts down the program. Select pops up a larger window, with three tabs. One tab lists all the pins currently defined in the HAL. The next lists all the signals, and the last tab lists all the parameters. Click on a tab, then click on a pin/signal/parameter. Then click on "OK". The lists will disappear, and the small window will display the name and value of the selected item. The display is updated approximately 10 times per second. If you click "Accept" instead of "OK", the small window will display the name and value of the selected item, but the large window will remain on the screen. This is convenient if you want to look at a number of different items quickly.
Ви можете запустити кілька halmeter одночасно, якщо хочете відстежувати кілька елементів. Якщо ви хочете запустити halmeter, не займаючи вікно оболонки, введіть halmeter &, щоб запустити його у фоновому режимі. Ви також можете змусити halmeter негайно почати відображати певний елемент, додавши pin|sig|par[am] _<name>_ до командного рядка. Він відображатиме pin, signal або parameter <name> відразу після запуску — якщо такого елемента немає, він просто запуститься у звичайному режимі. І нарешті, якщо ви вказали елемент для відображення, ви можете додати -s перед pin|sig|param, щоб halmeter використовував невелике вікно. Назва елемента буде відображатися в рядку заголовка, а не під значенням, і не буде кнопок. Це корисно, коли ви хочете розмістити багато вимірювачів на невеликій площі екрана.
In the Halmeter Tutorial you will find for more information.
halmeter можна завантажити з терміналу або з AXIS. halmeter швидше відображає значення, ніж halshow. halmeter має два вікна: одне для вибору контакту, сигналу або параметра, що потрібно контролювати, а інше для відображення значення. Одночасно можна відкрити кілька ``halmeter``. Якщо ви використовуєте скрипт для відкриття декількох ``halmeter``, ви можете встановити положення кожного з них за допомогою -g X Y відносно верхнього лівого кута екрана. Наприклад:
loadusr halmeter pin hm2.0.stepgen.00.velocity-fb -g 0 500
Дивіться сторінку довідки для отримання додаткових опцій та розділ Halmeter.
3. Галшоу
halshow shows the values of chosen pins, parameters or signals of a running HAL. It further provides buttons to also modify those items. The WATCH tab provides a continuous display of selected pin, parameters, and signal items. The File menu provides buttons to save the watch items to a watch list and to load an existing watch list. The watch list items can also be loaded automatically on startup.
More detailed information can be found in the section Halshow in the tutorial chapter.
It can be started from the command line:
halshow --help
Використання:
halshow [Options] [watchfile]
Опції:
--help (this help)
--fformat format_string_for_float
--iformat format_string_for_int
Примітки:
Створіть файл спостереження в halshow за допомогою: «Файл/Зберегти список спостереження».
Для автономного використання LinuxCNC має бути запущено.
Файл спостереження, створений за допомогою пункту меню «Файл/Зберегти список спостереження», має формат одного рядка з маркерами «pin+», «param+», «sig=+», за якими йде відповідна назва виводу, параметра або сигналу. Пари маркер-назва розділяються пробілом.
pin+joint.0.pos-hard-limit pin+joint.1.pos-hard-limit sig+estop-loop
Файл спостереження, створений за допомогою пункту меню «Файл/Зберегти список спостереження (багаторядковий)», форматується окремими рядками для кожного елемента, ідентифікованого парами токен-імена, як описано вище.
pin+joint.0.pos-hard-limit
pin+joint.1.pos-hard-limit
sig+estop-loop
Під час завантаження файлу спостереження за допомогою пункту меню «Файл/Завантажити список спостереження» пари «імена токенів» можуть відображатися як один або кілька рядків. Пусті рядки та рядки, що починаються з символу #, ігноруються.
4. Галскоп
Halscope — це «осцилограф» для HAL. Він дозволяє фіксувати значення виводів, сигналів і параметрів як функцію часу. Повна інструкція з експлуатації буде розміщена тут пізніше. Наразі дивіться розділ Halscope у розділі підручника, де пояснюються основні принципи роботи.
У меню «Файл» програми halscope є кнопки для збереження конфігурації або відкриття попередньо збереженої конфігурації. Після завершення роботи програми halscope остання конфігурація зберігається у файлі з назвою autosave.halscope.
Файли конфігурації також можна вказати під час запуску halscope з командного рядка. Використання довідки з командного рядка (-h):
halscope -h
Використання:
halscope [-h] [-i infile] [-o outfile] [num_samples]
5. Пін-код SIM-карти
sim_pin — це утиліта командного рядка для відображення та оновлення будь-якої кількості записуваних виводів, параметрів або сигналів.
Використання:
sim_pin [Options] name1 [name2 ...] &
Опції:
--help (this text)
--title title_string (window title, default: sim_pin)
Примітка: LinuxCNC (або автономна програма HAL) повинна бути запущена.
Іменований елемент може вказувати на контакт, параметр або сигнал.
Елемент повинен бути доступним для запису, наприклад:
контакт: IN або I/O (і не підключений до сигналу з записуючим пристроєм)
параметр: RW
сигнал: підключений до контакту, доступного для запису.
Підтримуються елементи HAL типу bit, s32, u32, float.
Коли вказано бітовий елемент, створюється кнопка
для управління елементом одним із трьох способів, вказаних
радіо-кнопками:
toggle: перемикання значення при натисканні кнопки
pulse: імпульс елемента до 1 один раз при натисканні кнопки
hold: установка на 1 під час натискання кнопки
Режим бітової кнопки можна вказати в командному
рядку, відформатувавши ім'я елемента:
namei/mode=[toggle | pulse | hold]
Якщо режим починається з великої літери, перемикачі
для вибору інших режимів не відображаються
Для отримання повної інформації див. сторінку довідки:
man sim_pin
halcmd loadrt mux2 names=example; halcmd net sig_example example.in0
sim_pin example.sel example.in1 sig_example &
6. Моделювання зонда
simulate_probe це простий графічний інтерфейс для імітації активації штифта motion.probe-input. Використання:
simulate_probe &
7. Гістограма HAL
hal-histogram — це утиліта командного рядка для відображення гістограм для виводів HAL.
hal-histogram --help | -?
or
hal-histogram [Options] [pinname]
| Варіант | Значення | Опис |
|---|---|---|
--minvalue |
мінімальне значення |
мінімальний контейнер, за замовчуванням: 0 |
--binsize |
binsize |
розмір бінша, за замовчуванням: 100 |
--nbins |
nbins |
кількість контейнерів, за замовчуванням: 50 |
--logscale |
0/1 |
логарифмічна шкала осі Y, за замовчуванням: 1 |
--text |
примітка |
текстовий дисплей, за замовчуванням: "" |
--show |
показувати кількість невідображених nbin, за замовчуванням вимкнено |
|
--verbose |
прогрес і налагодження, за замовчуванням вимкнено |
-
LinuxCNC (або інша програма HAL) має бути запущено.
-
Якщо ім’я контакту не вказано, значення за замовчуванням:
motion-command-handler.time. -
Цей додаток можна відкрити за 5 позначок.
-
Підтримуються типи розпізнавальних елементів: float, s32, u32, bit.
-
The pin must be associated with a realtime thread.
8. Halreport
halreport — це утиліта командного рядка, яка створює звіт про підключення HAL для запущеної програми LinuxCNC (або іншої програми HAL). У звіті відображаються всі підключення сигналів і потенційні проблеми. Включена інформація:
-
Опис системи та версія ядра.
-
Сигнали та всі підключені вихідні, вхідні та контакти.
-
Component_function, thread та addf-order кожного виводу.
-
Виводи компонентів, що не працюють у реальному часі, з невпорядкованими функціями.
-
Ідентифікація невідомих функцій для необроблених компонентів.
-
Сигнали без виходу.
-
Сигнали без вхідних даних.
-
Функції без додавання.
-
Теги попередження для компонентів, позначених як застарілі/нерекомендовані в документації.
-
Справжні імена для пінів, що використовують псевдоніми.
Звіт можна згенерувати з командного рядка та спрямувати до вихідного файлу (або stdout, якщо не вказано ім’я вихідного файлу):
Використання:
halreport -h | --help (this help)
or
halreport [outfilename]
Щоб створити звіт для кожного запуску LinuxCNC, додайте halreport та назву вихідного файлу як запис [APPLICATIONS]APP до INI-файлу.
[APPLICATIONS] APP = halreport /tmp/halreport.txt
Впорядкування функцій addf може бути важливим для сервоциклів, де важлива послідовність функцій, обчислених у кожному сервоперіоді. Зазвичай порядок такий:
-
Зчитування вхідних контактів,
-
виконувати функції обробника команд руху та контролера руху,
-
виконати обчислення pid, і нарешті
-
запис вихідних контактів.
Для кожного сигналу в критичному шляху порядок addf вихідного виводу повинен бути чисельно меншим, ніж порядок addf критичних вхідних виводів, до яких він підключений.
Для звичайних сигнальних шляхів, що обробляють входи перемикачів, нереальні виводи тощо, порядок додавання часто не є критичним. Більше того, час зміни значень нереальних виводів не можна контролювати або гарантувати в інтервалах, що зазвичай використовуються для потоків HAL.
Приклад уривків файлу звіту, що показують цикл pid для stepgen hostmot2, що працює в режимі швидкості на машині trivkins з joint.0, що відповідає координаті осі X:
SIG: pos-fb-0
OUT: h.00.position-fb hm2_7i92.0.read servo-thread 001
(=hm2_7i92.0.stepgen.00.position-fb)
IN: X_pid.feedback X_pid.do-pid-calcs servo-thread 004
IN: joint.0.motor-pos-fb motion-command-handler servo-thread 002
.................... motion-controller servo-thread 003
...
SIG: pos-cmd-0
OUT: joint.0.motor-pos-cmd motion-command-handler servo-thread 002
..................... motion-controller servo-thread 003
IN: X_pid.command X_pid.do-pid-calcs servo-thread 004
...
SIG: motor-cmd-0
OUT: X_pid.output X_pid.do-pid-calcs servo-thread 004
IN: h.00.velocity-cmd hm2_7i92.0.write servo-thread 008
(=hm2_7i92.0.stepgen.00.velocity-cmd)
У наведеному вище прикладі HALFILE використовує псевдоніми halcmd для спрощення назв контактів плати FPGA hostmot2 за допомогою таких команд, як:
alias pin hm2_7i92.0.stepgen.00.position-fb h.00.position-fb
|
Note
|
Можливе виявлення сумнівних функцій компонентів для
Сумнівні функції позначаються знаком питання "?". |
|
Note
|
Виводи компонента, які неможливо пов’язати з відомою функцією різьби, повідомляють про функцію як "Невідомо". |
halreport генерує звіт про з’єднання (без типів контактів і поточних значень) для запущеної програми HAL, щоб допомогти в проектуванні та перевірці з’єднань. Це допомагає зрозуміти, звідки береться значення контакту. Використовуйте цю інформацію з такими програмами, як halshow, halmeter, halscope або командою halcmd show у терміналі.