Страница 16 из 39
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 21 июл 2014, 09:50
Nick
Да, есть такое.... как решить пока не знаю...
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 29 июл 2014, 00:46
torvn77
Появилась идея,в своё время T-Rex мне написал,что в про станках не только смену инструмента,но и его объмер предпочитают прятать
в один вызываемый M6 макрос.
И вот у меня появилась мысль,а что если в компонент manualtoolchange добавить пины для запуска автоматического измерения
компенсации длинны и радиуса отдельно по пину на то и другое?
Ну и входные пины для подтверждения удачности изменений.
Параметры датчика измерений задавать в ini ,а сами макросы оформить как суброутинусы запускаемые через [HALUI]MDI_COMMAND
Хотя может лучше сделать отдельные строки конфигурации.
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 29 июл 2014, 00:51
Serg
Так можно просто всё засунуть в M6 без всяких MDI_COMMAND.
Хотя я предпочитаю обмер после смены делать в самой УП с помощью постпроцессора, ибо иногда после смены инструмента нельзя ехать к датчику.
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 29 июл 2014, 09:22
Nick
интересно, а если у нас большой обрабатывающий центр, в котором в шпиндель могут вставлять как фрезу, так и токарный резец, как их одной командой обмерять?
Или банально не резец, а вставляем щуп для обмера детали?
Имхо действительно лучше отдельно обмерять инструмент.
Делаешь подпрограмму по обмерке с параметрами приблизительного диаметра и длинны и вызываешь ее когда надо. В итоге получаешь +1 строчку...
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 29 июл 2014, 12:24
torvn77
В таком центре manualtoolchange использоваться не будет.
Мне тут пришла в головы мысль,что хорошо бы добавить axis пины для задания и запуска автосмены инструмента с PyVCP GladeVCP панелей.
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 02 авг 2014, 14:05
torvn77
На вкладке preview оболочки Axis среди процего вы сделали отображение оффсетов G54-G59.3
Только вот выбор офсета для отображения сделан через команды G10 присвоения значения офсету.
Предлагаю отображать в окне не последний присвоеный офсет,а текущий активный.
Ну а чтобы не терять удобства ручного изменения офсета через кнопку "Touch Off",
сделать либо показ значения офсета в этом диалоговом окне,
либо добавить переключение отображаемого офсета как часть функции этого окна,
либо дополнительно сделать независимый диалог выбора отображаемого офсета,
Оказывается показ оффсетов G54-G59.3 не меняется только при вызове из консоли MDI,
при вызове из суброутинуса меняется как надо.(LinuxCNC 2.7)
В общем пост можно переместить в тему для багов:
Сбор багов LinuxCNC ( багтрекер bug bugtracker баг )
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 02 авг 2014, 14:34
torvn77
И ещё хорошо бы в команду хала show добавить опцию для выбора столбца,по которому будет осуществлятся сортировка.
А то не удобно,надо отсортировать по DIR,а первыми идут столбцы owner и type.
Может просто выбранный опцией столбец выводить впервую очередь.
или сделать иначе,сделать опции показа которые будут определять,какие следует выводить столбцы и в какой последовательности их рапологать.
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 03 авг 2014, 11:02
torvn77
MDI_COMMAND = G53 G0 X0 Y0 Z0 - An MDI command can be executed by using halui.mdi-command-00. Increment the number for each command listed in the [HALUI] section.
Можно сделать явную привязку вызываемой MDI комманды к пину halui ?
А то получается что если вставить команду среди написанных,то нумарация изменится и соответствие других команд пинам изменится.
Может лучше вообще сделать явное присвоение имени халуевскому пину?
Например так:
MDI_COMMAND = rapid_move_absl.in G53 G0 X0 Y0 Z0
Должен создать пин halui.rapid_move_absl.in
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 04 авг 2014, 10:10
Nick
torvn77 писал(а):И ещё хорошо бы в команду хала show добавить опцию для выбора столбца,по которому будет осуществлятся сортировка.
А то не удобно,надо отсортировать по DIR,а первыми идут столбцы owner и type.
Может просто выбранный опцией столбец выводить впервую очередь.
или сделать иначе,сделать опции показа которые будут определять,какие следует выводить столбцы и в какой последовательности их рапологать.
Для таких вещей обычно используются внешние утилиты - grep sort и прочее. Если тебе нужны пины типа dir - выводи
Не стоит перегружать простую утилиту всякими лишними сортировками.
ЗЫ также рекомендую посмотреть на watch, например:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 04 авг 2014, 10:14
Nick
torvn77 писал(а):Можно сделать явную привязку вызываемой MDI комманды к пину halui ?
А то получается что если вставить команду среди написанных,то нумарация изменится и соответствие других команд пинам изменится.
Может лучше вообще сделать явное присвоение имени халуевскому пину?
Например так:
MDI_COMMAND = rapid_move_absl.in G53 G0 X0 Y0 Z0
Должен создать пин halui.rapid_move_absl.in
Мне это тоже не очень нравится.
Но, вопервых, не надо вставлять строчки в середине! Зачем?
Есть другая проблема - когда просто копируешь конфиги...
Надо посмотреть, как это исправить в halui, НО в любом случае должна быть обратная совместимость с предыдущими версиями!
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 04 авг 2014, 11:25
torvn77
Может проще тогда ничего не исправлять а
просто сделать рядом ещё один исправленный?
Тогда можно будет и дополнительные фичи придумать,например пины,которые будут отображаться в MDI команду как переменные?или наоборот из команды в хал.
Или если MDI команда является вызовом суброутинусовой УП то ещё и добавить константы для неизменяемых праметров этой программы,
Ну примерно как то так:
Код: Выделить всё
[MDI COMMAND]
[subsection cod]
M6T[#<mdi_pin.tool_number>]
F#<probe_speed>
G38.2 Z[#<probe_sensor_z-coordinate>]
#<probe_result> = #5063
#<probe_status> = #5070
[subsection cod end]
pin in s32 mdi_pin.tool_number
pin out u32 probe_result
pin out bit probe_status
pin const u32 probe_sensor_z-coordinate [AXIS_3]MIN_LIMIT
pin const u32 probe_speed 120
[MDI COMMAND END]
Причём констану и пин можно легко превращать друг в друга простой заменой in/out на const
И может просто сделать отдельный от halui модуль?
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 05 авг 2014, 16:11
torvn77
А лучше для каждого пина сделать свою субсекцию,:
Код: Выделить всё
[subsection pin]
mane = mdi_pin.pin_name
dimension = s32,u32,bit...
type = out,in,const
threads = base-thread ;имя потока,в который следует добавить пин
autoclear ; сбрасывать пин при повторном обращений/активации через пин запуска
reset_time = 42 ;сбрасывать пин в дефолтное состояние после истечения 42 циклов потока,это надо например если надо чтобы подача сигнала была эквивалентна нажатию на кнопку
[subsection pin end]
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 05 авг 2014, 17:42
Nick
Как-то слишком сложно...
Надо посмотреть, какой стандарт многострочных данных поддерживается в этом ini, есть например такой:
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 05 авг 2014, 17:59
Serg
Подпрограммы-то чем не угодили?..
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 05 авг 2014, 18:04
Nick
Вообще, где-то писали, что несколько последовательных движений из одной команды mdi хреново работают... хотя может это касалось только старых версий.
Подпрограммы - хорошо, но так наверное больше гибкости, хотя там halui на сях написан - там жесткое ограничение на размер строки. Ну в принципе можно и через подпрограммы... Честно говоря, мне больше всего не нравится автонумерация команд в зависимости от положения в ini файле.
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 05 авг 2014, 19:28
torvn77
После перехода на Precise и подключения всего и вся как то получилось,что вместо версии 2.6 установилась версия 2.7
А сделано у меня так:
Код: Выделить всё
<vbox>
<hbox>
<button>
<halpin>"measurement_tool_length_on.out"</halpin>
<text>" ON "</text>
</button>
<button>
<halpin>"measurement_tool_length_off.out"</halpin>
<text>" OFF "</text>
</button>
</hbox>
</vbox>
Код: Выделить всё
net measurement_tool_length_on halui.mdi-command-00 <= pyvcp.measurement_tool_length_on.out
net measurement_tool_length_off halui.mdi-command-01 <= pyvcp.measurement_tool_length_off.out
net measurement_tool_radius_on halui.mdi-command-02 <= pyvcp.measurement_tool_radius_on.out
net measurement_tool_radius_off halui.mdi-command-03 <= pyvcp.measurement_tool_radius_off.out
Код: Выделить всё
HALUI = halui
[HALUI]
MDI_COMMAND = O<measurement_tool_length> call
MDI_COMMAND = G49
MDI_COMMAND = O<measurement_tool_radius> call
MDI_COMMAND = G40
MDI_COMMAND = O<material_height_measurement> call
MDI_COMMAND = G54 G10 L2 P1 Z0
#
MDI_COMMAND = G54 G10 L20 P1 X0
MDI_COMMAND = G54 G10 L20 P1 Y0
MDI_COMMAND = G54 G10 L20 P1 Z0
MDI_COMMAND = G54 G10 L20 P1 A0
Код: Выделить всё
O<measurement_tool_length> sub
#<length_sensor_position_x> = 8.0
#<length_sensor_position_y> = 35.0
#<length_sensor_position_z> = -105.0
#<_machine_min_z-axis> = -110.0
#<_machine_max_z-axis> = 0.0
#<probe_search_feed> = 360 (80~120 mm/min)
#<probe_latch_feed> = 120
(--------Строка начальной инициализации машины ------------ )
G17 G21 M9 G61.1
(--------Установка режимов ??? перемещений )
G90 G91.1
(--------Отключение оффсетов )
#<g92_offset_status> = #5210
#<selected_coordinate_system> = #5220
G40 G49 G92.2
(--Установка и переход в машинную систему координат )
G10 L2 P9 X0Y0Z0
G59.3
(------Расположение инструмента в первоначальную позицию измерения длинны )
G0 Z[#<_machine_max_z-axis>]
G0 X[#<length_sensor_position_x>] Y[#<length_sensor_position_y>]
(------- Обмер инструмента собственно )
(------- Длинна инструмента измеряется относительно смещения по Z в G54 )
F[#<probe_search_feed>]
G38.3 Z[#<length_sensor_position_z>]
G38.5 Z[#<_machine_max_z-axis>]
F[#<probe_latch_feed>]
G38.3 Z[#<length_sensor_position_z>]
#<probe_bottom> = #5063
G38.5 Z[#<_machine_max_z-axis>]
#<probe_top> = #5063
(------- Вычисление компенсации длинны инструмента )
#<tool_length_comp> = [[#<probe_bottom>+[[#<probe_top>-#<probe_bottom>]/2]]-#<length_sensor_position_z>]
(DEBUG,Null Z-Axis = #<tool_length_comp>)
(------- Подъём на самый верх )
G0 Z[#<_machine_max_z-axis>]
(------- Включение компенсации на длинну )
G43.1 Z[#<tool_length_comp>]
(----- Востановление прежней системы координат )
O102 if [ #<selected_coordinate_system> eq 1 ]
G54
(DEBUG,G54)
O102 elseif [ #<selected_coordinate_system> eq 2 ]
G55
(DEBUG,G55)
O102 elseif [ #<selected_coordinate_system> eq 3 ]
(DEBUG,G56)
G56
O102 elseif [ #<selected_coordinate_system> eq 4 ]
(DEBUG,G57)
G57
O102 elseif [ #<selected_coordinate_system> eq 5 ]
(DEBUG,G58)
G58
O102 elseif [ #<selected_coordinate_system> eq 6 ]
(DEBUG,G59)
G59
O102 elseif [ #<selected_coordinate_system> eq 7 ]
(DEBUG,G59.1)
G59.1
O102 elseif [ #<selected_coordinate_system> eq 8 ]
(DEBUG,G59.2)
G59.2
O102 elseif [ #<selected_coordinate_system> eq 9 ]
(DEBUG,Error! Preselected G59.3 !)
G54
M02
O102 else
(DEBUG,Uncnown coordinate system number)
M02
O102 endif
(Включение оффсета )
(G92.3 )
(DEBUG,Normal End)
O<measurement_tool_length> endsub
O<measurement_tool_length> call
M02
Пока в разработке,но работает стабильно
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 05 авг 2014, 19:32
torvn77
А так за образец конфигурационного файла я предлагаю взять /etc/X11/xorg.conf
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 05 авг 2014, 19:46
torvn77
Nick писал(а):Как-то слишком сложно...
Почему?
Как раз всё просто.
Главная секция описания отдельной мди команды начало [MDI COMMAND] - конец [MDI COMMAND END]
далее следует опция с именем этой команды по которой вызывается пин для её вызова
Всё что заключено между [subsection cod] и [subsection cod end] есть исполняемый Гкод
Всё что заключено между [subsection pin] и [subsection pin end] суть описание одного отдельного пина и его поведения.
Причём одна строка - один параметр.
а у вас спазу мудрить нужно,число строк считать ...
При том что по уму всё равно все эти настройки надо закладывать и делать.
Во вторых я предлагаю не переделывать перегруженный пинами halui,а оставить его как legacy и сделать отдельный компонент,
который будет заниматься только этим и при этом уметь это делать хорошо(прицип unix-way одна программа - одна выполняемая функция.)
У меня есть знакомый программист,вроде как не прочь что то покодить,
Если он накодит рабочий код:вы его примете в проект или скажете "не нужно"?
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 09 авг 2014, 18:12
torvn77
Хорошо бы в "Predefined Named Parameters" добавить переменные верхние и нижние лимиты перемещений станка.
Re: Что я еще не знал о LinuxCNC, что нам еще предстоит сдел
Добавлено: 09 авг 2014, 21:31
verser
А почему именно верхние и нижние лимиты перемещений станка, а не десятки других параметров из .ini и .hal файлов?
Подсказка-ответ
http://cnc-club.ru/forum/viewtopic.php? ... 77#p126339