EMC2 - пояснялка от "чайника"
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
EMC2 - пояснялка от "чайника"
Пару лет назад я с друзьями взялся за проектирование и изготовление фрезерного станка. Затем был второй. Затем планшетный принтер...
Так уж вышло, что спец по Линуксу "удалился" от дел. А делать-то нужно! Вот и решил я изучить систему ЛинуксCNC самостоятельно.
Примерялся несколько месяцев, читал форум, в инете "гулял". И вот настал момент делать свою конфигурацию для своего станка.
Сразу оговорюсь - я имею высшее образование - электронщик со специализацией "Проектирование ЭВМ". Вроде как не со стороны
Но читаю описания, выставленные на форуме и понимаю - на чужом языке написано! Абракадабра!
Спасибо форумчанам - помогли "вползти" в систему (хотя понимаю, что нахожусь только на пороге).
Считаю, что просто необходимо поделиться теми "открытиями", без которых понимание этой системы просто невозможно. А писать буду тем языком, на котором говорят "паяльники", а не "программисты". Может кому поможет? Буду рад!
"Сухой остаток" от темы переношу на Вики - http://cnc-club.ru/wiki/index.php/Linux ... 0%BE%D0%B2
Итак.
Так уж вышло, что спец по Линуксу "удалился" от дел. А делать-то нужно! Вот и решил я изучить систему ЛинуксCNC самостоятельно.
Примерялся несколько месяцев, читал форум, в инете "гулял". И вот настал момент делать свою конфигурацию для своего станка.
Сразу оговорюсь - я имею высшее образование - электронщик со специализацией "Проектирование ЭВМ". Вроде как не со стороны
Но читаю описания, выставленные на форуме и понимаю - на чужом языке написано! Абракадабра!
Спасибо форумчанам - помогли "вползти" в систему (хотя понимаю, что нахожусь только на пороге).
Считаю, что просто необходимо поделиться теми "открытиями", без которых понимание этой системы просто невозможно. А писать буду тем языком, на котором говорят "паяльники", а не "программисты". Может кому поможет? Буду рад!
"Сухой остаток" от темы переношу на Вики - http://cnc-club.ru/wiki/index.php/Linux ... 0%BE%D0%B2
Итак.
Последний раз редактировалось Ворон226 14 фев 2013, 21:52, всего редактировалось 2 раза.
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
НАЧАЛО. ОПИСАНИЕ EMC2 или EMC2 Integrators Manual.
Глава 1
Важные определения
Никаких проблем. Всё понятно. Идём дальше...
Часть I
Конфигурация
Глава 2
Аппаратное обеспечение (Hardware)
2.1 Latency Test
И опять всё понятно. Тест провел. Данные записал...
3. Конфигурационные файлы
И тут всё в порядке...
Дальше стал конфигурить систему, используя Stepconf. Столкнулся с проблемой, что Stepconf не дал мне возможности сконфигурировать систему такой, которая мне нужна. Испробовав несколько вариантов понял - нужно будет прописывать конфигурацию "ручками".
Вот и подошел я с INI-файлу...
Глава 1
Важные определения
Никаких проблем. Всё понятно. Идём дальше...
Часть I
Конфигурация
Глава 2
Аппаратное обеспечение (Hardware)
2.1 Latency Test
И опять всё понятно. Тест провел. Данные записал...
3. Конфигурационные файлы
И тут всё в порядке...
Дальше стал конфигурить систему, используя Stepconf. Столкнулся с проблемой, что Stepconf не дал мне возможности сконфигурировать систему такой, которая мне нужна. Испробовав несколько вариантов понял - нужно будет прописывать конфигурацию "ручками".
Вот и подошел я с INI-файлу...
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Глава 4. Файл INI
Вопросы начали появляться, но житейское правило: Не трогай того, что не понимаешь - помогло прописать бОльшую часть ini-файла. Больше того, прописал четвертую ось (она у меня должна качать гель: шаговик-насос). Даже подвигал насос. Но КАК его запустить программой? Да еще в нужное время, с нужной скоростью!
Тут без понимания HAL-файла не обойтись.
И тут началось!..
Вопросы начали появляться, но житейское правило: Не трогай того, что не понимаешь - помогло прописать бОльшую часть ini-файла. Больше того, прописал четвертую ось (она у меня должна качать гель: шаговик-насос). Даже подвигал насос. Но КАК его запустить программой? Да еще в нужное время, с нужной скоростью!
Тут без понимания HAL-файла не обойтись.
И тут началось!..
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Глава 5
EMC2 и HAL
И вот первая строка:
Motion загружается при помощи команды motmod. Родственные программы должны быть запущены до motion...
Перечитал пару раз. Непонятно. Пропустил и полез дальше. Ещё более непонятно.
Открыл HAL у себя и стал читать, взирая на реальный текст реального HAL-а... Стал понимать структуру самого файла. Но что там написано???
После двух недель стало ясно следующее:
1. Система EMC2 или LinuxCNC - это огромный набор маленьких программок, которые определенным образом сконфигурированы в систему. Потому, чтобы начать самому прописывать свою систему своего станка - необходимо понять логику этой конфигурации.
А она оказалась довольно простой. Только написана на ином языке, на языке программистов
Итак, эти маленькие программки называют КОМПОНЕНТАМИ. У каждого компонента есть своё ИМЯ.
EMC2 и HAL
И вот первая строка:
Motion загружается при помощи команды motmod. Родственные программы должны быть запущены до motion...
Перечитал пару раз. Непонятно. Пропустил и полез дальше. Ещё более непонятно.
Открыл HAL у себя и стал читать, взирая на реальный текст реального HAL-а... Стал понимать структуру самого файла. Но что там написано???
После двух недель стало ясно следующее:
1. Система EMC2 или LinuxCNC - это огромный набор маленьких программок, которые определенным образом сконфигурированы в систему. Потому, чтобы начать самому прописывать свою систему своего станка - необходимо понять логику этой конфигурации.
А она оказалась довольно простой. Только написана на ином языке, на языке программистов
Итак, эти маленькие программки называют КОМПОНЕНТАМИ. У каждого компонента есть своё ИМЯ.
- Вложения
-
- text001.png (7.56 КБ) 4966 просмотров
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
У каждого компонента есть контакты (клеммы, разъемы) входов и выходов. Их называют ПИНы. У каждого компонента пинов может быть различное количество. У каждого пина есть своё имя. Пины бывают входные и выходные. А записывать это имя пина договорились так:
(имя компонента).(имя пина)
Например:
motion.analog-out-00 , где
motion- имя компонента,
analog-out-00 - имя пина, этот пин выходной и его номер 00.
ВАЖНО!
Не стоит верить имени пина в части входной он или выходной. Есть случаи, когда в названии пина есть "in" или "out@? а на самом деле всё обстоит совсем не так. Так где же узнать входной это пин или выходной?
Вариант 1. Почитать мануал (описание) EMC2. Там это выглядит как-то так:
iocontrol.0.coolant-flood (bit, out) - как мы уже разобрались, эта запись означает, что это выходной пин coolant-flood компонента iocontrol.0
Вариант 2 (мной пока слабо используемый)
Смотреть на свойства пина можно и в емс - любой пин открываем в Halshow и смотрим.
(имя компонента).(имя пина)
Например:
motion.analog-out-00 , где
motion- имя компонента,
analog-out-00 - имя пина, этот пин выходной и его номер 00.
ВАЖНО!
Не стоит верить имени пина в части входной он или выходной. Есть случаи, когда в названии пина есть "in" или "out@? а на самом деле всё обстоит совсем не так. Так где же узнать входной это пин или выходной?
Вариант 1. Почитать мануал (описание) EMC2. Там это выглядит как-то так:
iocontrol.0.coolant-flood (bit, out) - как мы уже разобрались, эта запись означает, что это выходной пин coolant-flood компонента iocontrol.0
Вариант 2 (мной пока слабо используемый)
Смотреть на свойства пина можно и в емс - любой пин открываем в Halshow и смотрим.
Последний раз редактировалось Ворон226 09 фев 2013, 15:06, всего редактировалось 5 раз.
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Также компонент может иметь один или несколько параметров (это такие коэффициенты, которые используются при работе компонента). Тут нет проблем - такое есть в любой схеме (номиналы резисторов, например).
Компоненты могут "соединяться" между собой посредством связей (проводки между входами и выходами). Тут есть тоже свои правила:
1. Чтобы не путаться, договорились каждую связь обзывать своим именем.
В этом случае, запись "коммутации" двух компонентов будет выглядеть так:
(команда) (имя связи) (источник "сигнала") (приёмник "сигнала")
net vel <= motion.current-vel => stepgen.3.vel , что означает
создаём (команда net) связь (vel) между пином current-vel компонента motion и пином vel компонента stepgen.3 (тут 3 - это номер компонента с таким именем - ведь один компонент может использоваться одновременно несколько раз, но под разными порядковыми номерами). Стрелочки <= и => писать необязательно. С ними на начальном этапе овладения системой проще - понятно ОТКУДА и куда передается "сигнал".
Возможно эту запись сделать так:
net vel <= motion.current-vel
net vel => stepgen.3.vel
- как вам будет удобнее и понятнее.
Кстати, эти две строчки могут быть записаны в разных местах HAL-файла.
Компоненты могут "соединяться" между собой посредством связей (проводки между входами и выходами). Тут есть тоже свои правила:
1. Чтобы не путаться, договорились каждую связь обзывать своим именем.
В этом случае, запись "коммутации" двух компонентов будет выглядеть так:
(команда) (имя связи) (источник "сигнала") (приёмник "сигнала")
net vel <= motion.current-vel => stepgen.3.vel , что означает
создаём (команда net) связь (vel) между пином current-vel компонента motion и пином vel компонента stepgen.3 (тут 3 - это номер компонента с таким именем - ведь один компонент может использоваться одновременно несколько раз, но под разными порядковыми номерами). Стрелочки <= и => писать необязательно. С ними на начальном этапе овладения системой проще - понятно ОТКУДА и куда передается "сигнал".
Возможно эту запись сделать так:
net vel <= motion.current-vel
net vel => stepgen.3.vel
- как вам будет удобнее и понятнее.
Кстати, эти две строчки могут быть записаны в разных местах HAL-файла.
Последний раз редактировалось Ворон226 08 фев 2013, 22:22, всего редактировалось 1 раз.
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Есть и второе правило при записи связи:
2. К одному выходному пину можно подсоединить несколько входных пинов. Но один входной пин можно подсоединить только к одному выходному пину.
2. К одному выходному пину можно подсоединить несколько входных пинов. Но один входной пин можно подсоединить только к одному выходному пину.
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Продолжение следует. Мэтров прошу поправлять, если "чайник" в силу своей необразованности что-то упустит или переврёт
Хочешь быть счастливым? Будь им!
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Ворон226 - продолжай! Великое дело затеял
По себе сужу - осознание того, что
Изначально представлялся некий единый монстр с кучей настроек, которые делаются через ini и hal-файлы.
По себе сужу - осознание того, что
- компонентов, которые связаны по схеме, описанной hal-файлами - пришло далеко не сразу.Система EMC2 или LinuxCNC - это огромный набор маленьких программок
Изначально представлялся некий единый монстр с кучей настроек, которые делаются через ini и hal-файлы.
Чудес не бывает. Бывают фокусы.
- tooshka
- Почётный участник
- Сообщения: 1803
- Зарегистрирован: 24 окт 2012, 14:26
- Репутация: 209
- Настоящее имя: Андрей
- Откуда: Нижний Новгород
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Вот если бы вся документация была на таком доступном языке)) Мечта!! Автору низкий поклон.
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
-
- Мастер
- Сообщения: 8408
- Зарегистрирован: 02 окт 2012, 07:37
- Репутация: 3628
- Откуда: Красногорск
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Хоть и не пользую Емс , но читаю и начинаю понимать как это работает
Статья очень правильная и нужная
Статья очень правильная и нужная
-
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Здесь наверное нужно добавить, что пин может состоять из множества физических проводов, переходя на язык электроники. И их количество от выхода до входа должно быть одинаковым.Ворон226 писал(а):2. К одному выходному пину можно подсоединить несколько входных пинов. Но один входной пин можно подсоединить только к одному выходному пину.
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
(если я правильно понял)Impartial писал(а):... пин может состоять из множества физических проводов, переходя на язык электроники. И их количество от выхода до входа должно быть одинаковым.
К выходному пину можно подключать несколько связей. ВАЖНО, чтобы каждая связь была присоединена к выходу и к входу (входам).
В записи это может выглядеть так:
net vel <= motion.current-vel => stepgen.3.vel
net velin <= motion.current-vel => sum2.0.in0 , что означает
выходной пин current-vel компонента motion подключен связью vel к входному пину vel компонента stepgen.3 и связью velin к входному пину in0 компонента sum2.0
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Все разложено по полочкам
Я предложил бы автору сделать "пояснялку" в виде статьи - то есть сложить все в первый пост.
Во первых он всегда будет доступен тс для редактирования.
Во вторых - не надо читать лишнее (порой уводящее в сторону от истины) - а в шапке будет только "выжимка-концентрат".
Ну а захочет человек всю тему проштудировать - милости просим .
--------------
один момент по содержимому - в дополнение к сказанному:
их действительному назначению
лучше всегда руководствоваться описанию пина в документации
там всегда после названия пина идет его тип и далее его описание
приведу примеры:
компонент serport
пин:
serport.N.pin-1-in bit out
то есть в наименовании стоит "in" - а пин является выходом
это очень легко понять - если нарисовать блок-схему и увидеть,что при коммутации компонентов
их физические выходы в тоже время должны быть входами для программных компонентов
самый очевидный пример - паралельный порт:
нам нужно с условного пина "А" (который является физическим пином порта - то есть мы к нему реально можем подключить провод)
взять сигнал допустим с программного генератора шагов(компонент stepgen)
значит мы с выхода stepgen берем сигнал и подаем его на наш пин "А"
он должен в этом случае быть входом для сигнала - но в тоже время мы с него же и выводим сигнал "наружу" порта
и тут он уже работает как выход
ну в принципе этой каши можно было избежать:
нодо было бы просто у всех компонентов сделать обязательными и входы и выходы - даже если компонент
и ничего не делает с сигналом - тупо коммутирует вход с выходом
тогда бы все было логично и стройно
но разработчики посчитали это излишним (и правильно сделали )
а смотреть на свойства пина можно и в емс - любой пин открываем в Halshow и смотрим:
Я предложил бы автору сделать "пояснялку" в виде статьи - то есть сложить все в первый пост.
Во первых он всегда будет доступен тс для редактирования.
Во вторых - не надо читать лишнее (порой уводящее в сторону от истины) - а в шапке будет только "выжимка-концентрат".
Ну а захочет человек всю тему проштудировать - милости просим .
--------------
один момент по содержимому - в дополнение к сказанному:
нужно иметь в виду , что в некоторых случаях наличие в наименовании пина приставок "in" и "out" не соответствуютВорон226 писал(а):Пины бывают входные (in) и выходные (out).
их действительному назначению
лучше всегда руководствоваться описанию пина в документации
там всегда после названия пина идет его тип и далее его описание
приведу примеры:
компонент serport
пин:
serport.N.pin-1-in bit out
то есть в наименовании стоит "in" - а пин является выходом
это очень легко понять - если нарисовать блок-схему и увидеть,что при коммутации компонентов
их физические выходы в тоже время должны быть входами для программных компонентов
самый очевидный пример - паралельный порт:
нам нужно с условного пина "А" (который является физическим пином порта - то есть мы к нему реально можем подключить провод)
взять сигнал допустим с программного генератора шагов(компонент stepgen)
значит мы с выхода stepgen берем сигнал и подаем его на наш пин "А"
он должен в этом случае быть входом для сигнала - но в тоже время мы с него же и выводим сигнал "наружу" порта
и тут он уже работает как выход
ну в принципе этой каши можно было избежать:
нодо было бы просто у всех компонентов сделать обязательными и входы и выходы - даже если компонент
и ничего не делает с сигналом - тупо коммутирует вход с выходом
тогда бы все было логично и стройно
но разработчики посчитали это излишним (и правильно сделали )
а смотреть на свойства пина можно и в емс - любой пин открываем в Halshow и смотрим:
-
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Я о том, что физически пин "motion.current-vel" состоит из 32 линий и его бессмысленно раздирать по частям так как это целое число со знаком или с плавающей точкой.Ворон226 писал(а):К выходному пину можно подключать несколько связей. ВАЖНО, чтобы каждая связь была присоединена к выходу и к входу (входам).
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
А можно интерпретировать и как один провод, по которому передается аналоговое значение.Impartial писал(а):Я о том, что физически пин "motion.current-vel" состоит из 32 линий и его бессмысленно раздирать по частям так как это целое число со знаком или с плавающей точкой.Ворон226 писал(а):К выходному пину можно подключать несколько связей. ВАЖНО, чтобы каждая связь была присоединена к выходу и к входу (входам).
Сейчас даже не всякий программист задумывается, сколько битов в int, long, float или double.
Чудес не бывает. Бывают фокусы.
-
- Мастер
- Сообщения: 267
- Зарегистрирован: 10 апр 2011, 23:01
- Репутация: 20
- Откуда: Пенза
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Наконец-то! Хоть электронщики взялись за ДЕЛО! Ато глядишь Ф книгу, а видишь фигу.
Топикстартеру респект!
Топикстартеру респект!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
ну да - это конечно добавит понимания "чайникам" и ни в коем случае не введет их в долгий ступорImpartial писал(а):Здесь наверное нужно добавить,
-
- Мастер
- Сообщения: 516
- Зарегистрирован: 21 янв 2012, 00:23
- Репутация: 32
- Откуда: Ивано-Франковск
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Главное в описаниях для " чайников " - что-бы не "ботать по фене ", а использовать терминологию ЧПУ и программирования
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: EMC2 - пояснялка от "чайника"
Всем большое спасибо за поддержку!
Я действительно пока слабо разбираюсь в LinuxCNC, но хочу разобраться. Пишу именно с того уровня, на котором и нахожусь сейчас. Позднее, конечно, можно будет всё подчистить и сделать отдельный файлик, если в нём будет нужда.
Продолжу...
Вот приходите вы домой (вошли в систему), подошли к телевизору, нажимаете на пульте 5 канал (обращаетесь к компоненту) и... А экран-то тёмный!
Оказывается телевизор-то не включили!!!
Так же происходит и с компонентами Линукса.
В HAL-е нужно первым делом "включить" нужные компоненты - "загрузить компонент HAL реального времени"!
Так мы подошли к понятию КОМАНДЫ.
1. loadrt - загружает компонент HAL реального времени.
Например,
loadrt stepgen step_type=0,0,0,0 , что означает: загружаем (loadrt) компонет stepgen с некоторыми установками (step_type=0,0,0,0), о которых поговорим позже.
2. addf - добавляет компонент реального времени в поток. А по-русски, эта команда определяет, где будет находиться компонент: в высокоскоростном потоке (base-thread) или в низкоскоростном потоке (servo-thread).
Выглядит это как-то так:
addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread
addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
ВАЖНО!
Эти команды должны быть обязательно! Именно они определяют: какими компонентами мы собираемся пользоваться и какие требования к этим компонентам мы предъявляем по скорости.
Я действительно пока слабо разбираюсь в LinuxCNC, но хочу разобраться. Пишу именно с того уровня, на котором и нахожусь сейчас. Позднее, конечно, можно будет всё подчистить и сделать отдельный файлик, если в нём будет нужда.
Полностью согласен с тобой! Потому стараюсь сначала найти понятный образ и тут же его привязать к термину, который используется в официальных описаниях. Так сказать "мостик" от "чайника" к "профи".vmarkiv писал(а):Главное в описаниях для " чайников " - что-бы не "ботать по фене ", а использовать терминологию ЧПУ и программирования
Продолжу...
Вот приходите вы домой (вошли в систему), подошли к телевизору, нажимаете на пульте 5 канал (обращаетесь к компоненту) и... А экран-то тёмный!
Оказывается телевизор-то не включили!!!
Так же происходит и с компонентами Линукса.
В HAL-е нужно первым делом "включить" нужные компоненты - "загрузить компонент HAL реального времени"!
Так мы подошли к понятию КОМАНДЫ.
1. loadrt - загружает компонент HAL реального времени.
Например,
loadrt stepgen step_type=0,0,0,0 , что означает: загружаем (loadrt) компонет stepgen с некоторыми установками (step_type=0,0,0,0), о которых поговорим позже.
2. addf - добавляет компонент реального времени в поток. А по-русски, эта команда определяет, где будет находиться компонент: в высокоскоростном потоке (base-thread) или в низкоскоростном потоке (servo-thread).
Выглядит это как-то так:
addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread
addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
ВАЖНО!
Эти команды должны быть обязательно! Именно они определяют: какими компонентами мы собираемся пользоваться и какие требования к этим компонентам мы предъявляем по скорости.
Хочешь быть счастливым? Будь им!