Что я еще не знал о LinuxCNC, что нам еще предстоит сделать
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Только вот как сделать это технически?
Чтобы добавить инстанс к компоненту придётся расширить выделенную ему память под его данные (переменные и пины), просто так её не раздвинуть - будут мешать области данных других компонентов. Единственный способ - создать новую область большего размера и скопировать в неё станые данные. Засада в том, что в процессе копирования кто-то может записать новые данные (у нас ведь РТ) в ту часть старой области, которая уже была скопирована - т.е. эти данные в итоге будут потеряны.
Можно конечно изменить концепцию написания компонентов (полностью переписав их все) и за счёт некоторого ухудшения их быстродействия добавить возможность дозагрузки, но опять-же как быть с именами клонов?..
IMHO гораздо проше воспользоваться помощью make, grep, sed или просто вынести загрузку всех копонентов в один обий файл.
Чтобы добавить инстанс к компоненту придётся расширить выделенную ему память под его данные (переменные и пины), просто так её не раздвинуть - будут мешать области данных других компонентов. Единственный способ - создать новую область большего размера и скопировать в неё станые данные. Засада в том, что в процессе копирования кто-то может записать новые данные (у нас ведь РТ) в ту часть старой области, которая уже была скопирована - т.е. эти данные в итоге будут потеряны.
Можно конечно изменить концепцию написания компонентов (полностью переписав их все) и за счёт некоторого ухудшения их быстродействия добавить возможность дозагрузки, но опять-же как быть с именами клонов?..
IMHO гораздо проше воспользоваться помощью make, grep, sed или просто вынести загрузку всех копонентов в один обий файл.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Ок, убедил 
ЗЫ Хотя разве память им не динамичестки выделяется из имеющейся при объявлении переменной? Разве все в памяти в одном месте хранится, а не размазано, а назад выдается указатель на начальный элемент?
ЗЫ Хотя разве память им не динамичестки выделяется из имеющейся при объявлении переменной? Разве все в памяти в одном месте хранится, а не размазано, а назад выдается указатель на начальный элемент?
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Обычно динамически, но не в случае RT, ибо процесс динамического выделения памяти занимает неопределённое количество времени и прерывать его нельзя.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
а никто не говорит о том, что во время загрузки нам нужен rt... загрузка компонентов идет до запуска rt потоков...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
И тех, которые грузятся после запуска GUI?..
P.S. в третий раз спрошу: Что с именами "инстансов" делать?..
P.S. в третий раз спрошу: Что с именами "инстансов" делать?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Вообще говоря не залезь я в Питерский мусорный бачок,
не было бы у меня компьютера менее чем с четырьмя гигами ОЗУ.
Может каждый loadrt отдельный процесс делать.
Конечно тогда увеличится перезагрузка кэша,но в сложном конфиге имхо это всеравно будет происходить часто,
да и голова у конфигописателя должна быть,а значит не будет злоупотреблять лоадрт,где оправдано разделяя,где оправдано сливая в один.
Но это будет уже потом при оптимизации,а так первоначально упростится написание шаблона.
Да и умножение числа процессов можно расмотреть еще и с позици удешевления многоядерных процессоров.
Пройдет год два и компов с одним ядром уже и не отыскать будет.
не было бы у меня компьютера менее чем с четырьмя гигами ОЗУ.
Может каждый loadrt отдельный процесс делать.
Конечно тогда увеличится перезагрузка кэша,но в сложном конфиге имхо это всеравно будет происходить часто,
да и голова у конфигописателя должна быть,а значит не будет злоупотреблять лоадрт,где оправдано разделяя,где оправдано сливая в один.
Но это будет уже потом при оптимизации,а так первоначально упростится написание шаблона.
Да и умножение числа процессов можно расмотреть еще и с позици удешевления многоядерных процессоров.
Пройдет год два и компов с одним ядром уже и не отыскать будет.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Ну теоритически их можно всех именами именовать... или это опять вопрос с подвохом?UAVpilot писал(а):P.S. в третий раз спрошу: Что с именами "инстансов" делать?..
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Ага.
Допустим сделали дозагрузку компонентов, torvn77 написал "hal-библиотеку" для подключения MPG, а Nick захотел ей воспользоваться, чтоб подключить два MPG...
Допустим сделали дозагрузку компонентов, torvn77 написал "hal-библиотеку" для подключения MPG, а Nick захотел ей воспользоваться, чтоб подключить два MPG...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Я не знаю что такое MPG,так что ответ я дам общии.
В приведенном вами случае один файл будет подключен без изменения,
а во втором файле перед подключением будут изменены названия компонентов и пинов.
И если в один прикрасный миг Николай скажет,все я запутался и ничего не понимаю,
то в корзину надо будет выбрасывать только второй файл,
а вот в если все оставить как есть то выбрасывать придется весь конфиг.
С другой стороны,если просто забить на имена то при включении
стороннего кода можно напороться на то,что автоматические имена в уже гдето использованы.
И так будет всякии раз при попытке внести сторонни для конфига код.
Я такую ситуацию считаю не удовлетворительной.
В приведенном вами случае один файл будет подключен без изменения,
а во втором файле перед подключением будут изменены названия компонентов и пинов.
И если в один прикрасный миг Николай скажет,все я запутался и ничего не понимаю,
то в корзину надо будет выбрасывать только второй файл,
а вот в если все оставить как есть то выбрасывать придется весь конфиг.
С другой стороны,если просто забить на имена то при включении
стороннего кода можно напороться на то,что автоматические имена в уже гдето использованы.
И так будет всякии раз при попытке внести сторонни для конфига код.
Я такую ситуацию считаю не удовлетворительной.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Я потому сразу и написал: нафик дозагрузку, make, grep и sed рулят.
Ибо опробовано и показало себя удобным, особенно на этапе проведения различных экспериментов т.к. позволяет автоматически поддерживать несколько паралельных конфигов в актуальном состоянии.
P.S. MPG - Manual Pulse Generator, в просторечии "штурвал", пора-бы уже и знать.
Ибо опробовано и показало себя удобным, особенно на этапе проведения различных экспериментов т.к. позволяет автоматически поддерживать несколько паралельных конфигов в актуальном состоянии.
P.S. MPG - Manual Pulse Generator, в просторечии "штурвал", пора-бы уже и знать.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Я уже слышал от гентушников нечто подобное.
И где сейчас этот гентоо?
Боюсь что будет два дистра сабайон и калькулейт.
Кардинально отличаются от гентоо одним,наличием графического инсталятора.
А в остальном сабайон будет даже и хуже.
Но он живет,а вот гентоо загибается.
И где сейчас этот гентоо?
Боюсь что будет два дистра сабайон и калькулейт.
Кардинально отличаются от гентоо одним,наличием графического инсталятора.
А в остальном сабайон будет даже и хуже.
Но он живет,а вот гентоо загибается.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Это уже какая-то другая тема?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Тема та самая,программа должна быть не только для разработчиков,но для простых пользователей тоже.
Вот что вы думаете,человек покупает станок,начинает работу,деньги за аренду текут,
а время уходит на освоение 3D софта и премудростей какую фрезу и с какими параметрами для какого материала запускать надо.
А вы ему изучай grep,sed,про make зачем то вспомнили...
Хоть бы уж тогда про | и uniq для полноты помянули помянули.
Если взять начинающего пользователя без знания step/dir и со "здоровым" станком то на освоение собственно ЧПУ должна уходить одна две недели.
Это если он САМ устанавливает на комп и настраивает.
А ведь комплект плат MESA стоит 13,5 тыр,при цене пульта в 19 тыр,при том что на освоение его может уйти вообще несколько дней.
А вы предлагаете изучать утилиты каждая из которых сама по себе сложна как миниум как упомянутый пульт.
Так вот,я конечно чертыхнусь,но на интузиазме как нибудь уж конфиги себе сделаю.
Но вот отдать другим и сказать разбирайте их на части не смогу.
В общем надо предпринимать меры к упрощению ввода LinuxCNC в эксплуатацию
Вот что вы думаете,человек покупает станок,начинает работу,деньги за аренду текут,
а время уходит на освоение 3D софта и премудростей какую фрезу и с какими параметрами для какого материала запускать надо.
А вы ему изучай grep,sed,про make зачем то вспомнили...
Хоть бы уж тогда про | и uniq для полноты помянули помянули.
Если взять начинающего пользователя без знания step/dir и со "здоровым" станком то на освоение собственно ЧПУ должна уходить одна две недели.
Это если он САМ устанавливает на комп и настраивает.
А ведь комплект плат MESA стоит 13,5 тыр,при цене пульта в 19 тыр,при том что на освоение его может уйти вообще несколько дней.
А вы предлагаете изучать утилиты каждая из которых сама по себе сложна как миниум как упомянутый пульт.
Так вот,я конечно чертыхнусь,но на интузиазме как нибудь уж конфиги себе сделаю.
Но вот отдать другим и сказать разбирайте их на части не смогу.
В общем надо предпринимать меры к упрощению ввода LinuxCNC в эксплуатацию
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
"Простые пользователи" - это кто?
Если тот, кто покупает станок и начинает работу, у кого деньги за аренду текут, то что он забыл в настройках станка и linuxcnc в частности?
Или решил, что щас сам быстренько всё настроит и запрограммирует? Тогда, будь добр, изучи инструменты настройки и программирования.
Естественно никто не заставляет изучть make, grep и sed, в принципе можно всё настроить с помощью банального текстового редактора. Да собствено и в любом деле так, например никто не заставлять изучать управление экскаватором, котлован под дом можно и банальной лопатой выкопать.

Если тот, кто покупает станок и начинает работу, у кого деньги за аренду текут, то что он забыл в настройках станка и linuxcnc в частности?
Или решил, что щас сам быстренько всё настроит и запрограммирует? Тогда, будь добр, изучи инструменты настройки и программирования.
Естественно никто не заставляет изучть make, grep и sed, в принципе можно всё настроить с помощью банального текстового редактора. Да собствено и в любом деле так, например никто не заставлять изучать управление экскаватором, котлован под дом можно и банальной лопатой выкопать.
Я ничего подобного не думаю, это вы себе нафантазировали незнамо чего.torvn77 писал(а):Вот что вы думаете,человек покупает станок,начинает работу,деньги за аренду текут,
а время уходит на освоение 3D софта и премудростей какую фрезу и с какими параметрами для какого материала запускать надо.
Причём тут вообще цены и время на освоение? И то и другое всего лишь индивидуальные особенности конкретного субъекта.torvn77 писал(а):А ведь комплект плат MESA стоит 13,5 тыр,при цене пульта в 19 тыр,при том что на освоение его может уйти вообще несколько дней.
Кому, простому пользователю? Да боже упаси! Пусть купит готовый настроенный станок и начинает работать - деньги на аренду зарабатывать.torvn77 писал(а):А вы предлагаете изучать утилиты каждая из которых сама по себе сложна как миниум как упомянутый пульт.
Чё, правда grep такой сложный?.. 
Так предпринимайте! Или оказалось, что для этого надо как минимум освоить английский язык?..torvn77 писал(а):В общем надо предпринимать меры к упрощению ввода LinuxCNC в эксплуатацию
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Для примера выдернул кусок из текущего проекта. В конфиге станка 14 осей, в корневом каталоге целевые файлы, которые автоматически генерятся из файлов в подкаталоге src.
Хотел-бы я посмотреть на того, кто будет подобное писать полностью в рукопашную...
А ещё есть такой момент: на отладочном стенде установлено только 2 сервопривода и для отлажки всех 14 осей нужно в конфиге отлаживаемые оси перенастраивать на задействованные порты 7i77 - если делать это в ручную, то пришлось-бы каждый раз править по несколько строчек в каждом и 14 файлов
А так достаточно в axis.lst поменять названия осей в первой колонке.
Хотел-бы я посмотреть на того, кто будет подобное писать полностью в рукопашную...
А ещё есть такой момент: на отладочном стенде установлено только 2 сервопривода и для отлажки всех 14 осей нужно в конфиге отлаживаемые оси перенастраивать на задействованные порты 7i77 - если делать это в ручную, то пришлось-бы каждый раз править по несколько строчек в каждом и 14 файлов
- Вложения
-
- exam.zip
- (9.35 КБ) 387 скачиваний
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Мы говорим о разных случаях,вы действительно пишите большой конфиг из подобных элементов,
и в этом случае выш метод вполне оправдан.
А я говорю про написание конфига из кучи типовых,но разных элементов.
То есть скажем отключить конфиг джойстика и подключить конфиг мачевского пульта.
То есть это будут два разных и различных в по используемым элементам файлах.
Например для кнопок и валкодера на мачевском пульте нужен элемент encoder и debounce
Для джойстика надо кучу элеметов sum2,mult2 и integ.
Можкт быть автосмена инструмента,она может быть линейной,а может быть ещё какой,и опять таки,огромное количество "кода в себе",
из которого наружу торчит несколько сигналов и досадная,не дающая его полностью в себя замкнуть необъодимость прописывть загрузку в начале файла.
В общем вы нацелены на создание небольшого количества типов тиражируемых на множество осей,
а я нацелен на написание модулей расширения функционала при одних и тех же подключённых и сконфигурированных осях.
И при этом хочу в соответсвии с концепцией обектно-ориентированного программирования максимально замыкать модуль в себя.
Ваша цель оживить один?отдельно взятый станок,моя цель перетащить на LinuxCNC пользователей NC-Studio и Мачеводов
и в этом случае выш метод вполне оправдан.
А я говорю про написание конфига из кучи типовых,но разных элементов.
То есть скажем отключить конфиг джойстика и подключить конфиг мачевского пульта.
То есть это будут два разных и различных в по используемым элементам файлах.
Например для кнопок и валкодера на мачевском пульте нужен элемент encoder и debounce
Для джойстика надо кучу элеметов sum2,mult2 и integ.
Можкт быть автосмена инструмента,она может быть линейной,а может быть ещё какой,и опять таки,огромное количество "кода в себе",
из которого наружу торчит несколько сигналов и досадная,не дающая его полностью в себя замкнуть необъодимость прописывть загрузку в начале файла.
В общем вы нацелены на создание небольшого количества типов тиражируемых на множество осей,
а я нацелен на написание модулей расширения функционала при одних и тех же подключённых и сконфигурированных осях.
И при этом хочу в соответсвии с концепцией обектно-ориентированного программирования максимально замыкать модуль в себя.
Ваша цель оживить один?отдельно взятый станок,моя цель перетащить на LinuxCNC пользователей NC-Studio и Мачеводов
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Жаль, что вы увидели в этом всего лишь много осей. Я хотел показать простой работающий механизм сборки любых конфигов из функциональных кусочков. Этот механизм уже несколько десятилетий используется при сборке/компиляции практически всех программ на всех существующих платформах, начиная от мелкой утилиты и кончая ядром Linux, самими дистрибутивами Linux, ОС Windows, всякими СУБД типа Oracle и т.п. И пока ещё никто не смог придумать чего-либо лучше.torvn77 писал(а):Мы говорим о разных случаях,вы действительно пишите большой конфиг из подобных элементов,
Но не будем отчаиваться, у вас есть шанс переломить ситуацию:
UAVpilot писал(а):Так предпринимайте! Или оказалось, что для этого надо как минимум освоить английский язык?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Ладно,что вы предлагаете,как вы видите этот перелом?UAVpilot писал(а):Но не будем отчаиваться, у вас есть шанс переломить ситуацию:UAVpilot писал(а):Так предпринимайте! Или оказалось, что для этого надо как минимум освоить английский язык?..
Мануальник к LinuxCNC я читаю и отсутствие знаний английского языка этому конечно мешает,но не сильно.
Да и со свободным временем у меня не плохо,так что лично для меня запрошенные мной улучшения не более чем вопрос удобства.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Никак, в этом плане мне всё удобно.torvn77 писал(а):Ладно,что вы предлагаете,как вы видите этот перелом?
Тогда вам сюда http://linuxcnc.org/index.php/english/community а то наш форум разработчики linuxcnc как-то неактивно посещают.torvn77 писал(а):Мануальник к LinuxCNC я читаю и отсутствие знаний английского языка этому конечно мешает,но не сильно.
Да и со свободным временем у меня не плохо,так что лично для меня запрошенные мной улучшения не более чем вопрос удобства.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
При выдаче сообщения об ошибки g-code у LinuxCNC есть противная особенность:
Если ошибка произошла в вызываемой подпрограмме,то указывается точка вызова подпрограммы,
а строка в самой подпрограмме нет,
Если ошибка произошла в вызываемой подпрограмме,то указывается точка вызова подпрограммы,
а строка в самой подпрограмме нет,
