Глобальные переменные
-
- Новичок
- Сообщения: 11
- Зарегистрирован: 28 июл 2023, 17:50
- Репутация: 0
- Настоящее имя: Александр
- Контактная информация:
Глобальные переменные
Доброго времени суток. Уважаемы форумчане, не могу для себя окончательно прояснить, каким образом я могу создать глобальную переменную, которую можно использовать на запись/чтение в .NGC файле, и притянуть ее ещё в pyvcp, как булевые так и с плавающей точкой. Прошу помочь.
Re: Глобальные переменные
Вопрос поставлен с размахом и неопределнностью. Запись-чтение какими средствами-способами? Булевы - это масштабно, https://wikiless.tiekoetter.com/wiki/%D ... 8F?lang=ru
Глобальная, это, видимо та, которая "видна" в подпрограммах. Это начинающиеся подчеркивания, например #<lok> - локальная, #<_glob> - глобальная. Русские буковки понимает тоже. За большее не скажу, не пробовал.
Глобальная, это, видимо та, которая "видна" в подпрограммах. Это начинающиеся подчеркивания, например #<lok> - локальная, #<_glob> - глобальная. Русские буковки понимает тоже. За большее не скажу, не пробовал.
-
- Новичок
- Сообщения: 11
- Зарегистрирован: 28 июл 2023, 17:50
- Репутация: 0
- Настоящее имя: Александр
- Контактная информация:
Re: Глобальные переменные
Если конкретнее: на определенном этапе исполнения программы (написана в .ngc), необходимо ее прервать, ввести коррекцию по оси Z (коррекцию определяем визуально, накидывая ее с РГИ до определенного момента), и перезапустить занова с поправленными координатами (стартовые координаты + получившаяся коррекция). При этом желательно отображение величины получившейся коррекции на панели (a321 писал(а): ↑15 мар 2024, 23:21 Вопрос поставлен с размахом и неопределнностью. Запись-чтение какими средствами-способами? Булевы - это масштабно, https://wikiless.tiekoetter.com/wiki/%D ... 8F?lang=ru
Глобальная, это, видимо та, которая "видна" в подпрограммах. Это начинающиеся подчеркивания, например #<lok> - локальная, #<_glob> - глобальная. Русские буковки понимает тоже. За большее не скажу, не пробовал.
Pyvcp, или другая).
- hmnijp
- Мастер
- Сообщения: 1726
- Зарегистрирован: 20 авг 2017, 15:02
- Репутация: 532
- Настоящее имя: Константин
- Откуда: Ульяновск
- Контактная информация:
Re: Глобальные переменные
Из G-кода нельзя напрямую писать в Hal пины. Только через M67 (устанавливает значение на пине motion.analog-out который соединяется уже с каким либо пином). Читать из gcoda можно как <_hal> или <_ini>.
Есть два пути:Aleks3085 писал(а): ↑ Если конкретнее: на определенном этапе исполнения программы (написана в .ngc), необходимо ее прервать, ввести коррекцию по оси Z (коррекцию определяем визуально, накидывая ее с РГИ до определенного момента), и перезапустить занова с поправленными координатами (стартовые координаты + получившаяся коррекция). При этом желательно отображение величины получившейся коррекции на панели (
Pyvcp, или другая).
1) Либо вы пользуетесь классической компенсацией на длину инструмента G43 - Останавливаете программу(стоп, не пауза). Меняете значение длины в таблице кодом G10L1P0Z... ( pyvcp.length-input это значение которое добавляете к табличной из панели pyvcp)
Код: Выделить всё
G10 L1 P#<_hal[iocontrol.0.tool-number]> Z[#<_hal[halui.tool.length_offset.z]> + #<_hal[pyvcp.length-input]> ]
2) Либо вы пользуетесь external-offsets https://linuxcnc.org/docs/html/motion/e ... fsets.html
С этим можно в реальном времени без остановки добавлять-убавлять смещение по любой оси просто подавая на пин axis.L.eoffset-...(scale*count) значение с любого источника, например с той же панели pyvcp, или хоть с генератора синусоидального сигнала. в примерах есть конфигурации готовые (sim - axis - external offsets). Сейчас так обычно THC на плазмах - лазерах подключают.
-
- Новичок
- Сообщения: 11
- Зарегистрирован: 28 июл 2023, 17:50
- Репутация: 0
- Настоящее имя: Александр
- Контактная информация:
Re: Глобальные переменные
Спасибо. Решил использовать вариант с Еоффсетами, уже подтянул конфигурацию из сим, надо теперь разобраться как ещё сбросить в ноль автоматически этот офсет из программы перед ее завершением или сразу по завершении.hmnijp писал(а): ↑16 мар 2024, 16:08Из G-кода нельзя напрямую писать в Hal пины. Только через M67 (устанавливает значение на пине motion.analog-out который соединяется уже с каким либо пином). Читать из gcoda можно как <_hal> или <_ini>.
Есть два пути:Aleks3085 писал(а): ↑ Если конкретнее: на определенном этапе исполнения программы (написана в .ngc), необходимо ее прервать, ввести коррекцию по оси Z (коррекцию определяем визуально, накидывая ее с РГИ до определенного момента), и перезапустить занова с поправленными координатами (стартовые координаты + получившаяся коррекция). При этом желательно отображение величины получившейся коррекции на панели (
Pyvcp, или другая).
1) Либо вы пользуетесь классической компенсацией на длину инструмента G43 - Останавливаете программу(стоп, не пауза). Меняете значение длины в таблице кодом G10L1P0Z... ( pyvcp.length-input это значение которое добавляете к табличной из панели pyvcp)И потом перезапускаете выполнение программы (со строки например) чтобы планер перерисовал траекторию с новым значением компенсации.Код: Выделить всё
G10 L1 P#<_hal[iocontrol.0.tool-number]> Z[#<_hal[halui.tool.length_offset.z]> + #<_hal[pyvcp.length-input]> ]
photo_2024-01-12_06-17-22.jpg
2) Либо вы пользуетесь external-offsets https://linuxcnc.org/docs/html/motion/e ... fsets.html
С этим можно в реальном времени без остановки добавлять-убавлять смещение по любой оси просто подавая на пин axis.L.eoffset-...(scale*count) значение с любого источника, например с той же панели pyvcp, или хоть с генератора синусоидального сигнала. в примерах есть конфигурации готовые (sim - axis - external offsets). Сейчас так обычно THC на плазмах - лазерах подключают.
- hmnijp
- Мастер
- Сообщения: 1726
- Зарегистрирован: 20 авг 2017, 15:02
- Репутация: 532
- Настоящее имя: Константин
- Откуда: Ульяновск
- Контактная информация:
Re: Глобальные переменные
Написать простенький M-код и вызывать его в конце (ремап M2/M30 сделать нельзя)
который будет устанавливать пин - axis.L.eoffset-clear = true что будет сбрасывать офсет. в мануале написано что надо именно сбрасывать счетчик, а не выключать eoffsets, тк в этом случае смещение сохранится.
то есть с командой:
halcmd setp axis.z.eoffset-clear true
Там примеры:
https://linuxcnc.org/docs/2.9/html/gcod ... :m100-m199
-
- Новичок
- Сообщения: 35
- Зарегистрирован: 27 фев 2016, 17:03
- Репутация: 7
- Настоящее имя: Сергей
- Контактная информация:
Re: Глобальные переменные
С русскими буквами не всегда гладко, глянул уточнить размер и не мог понять понял что пилю.
Исполнилось правильно, - 23, 29 и 32 строки не отображались из-за кириллицы в комментариях, linuxcnc 2.7.15
Код: Выделить всё
...
#<lenght> = 8.0 (8мм)
#<_global_down_num> = 8
#<_global_down_step> = [[#<_global_up_work> + #<lenght>] / #<_global_down_num>]
#<_global_diametr> = 205 (D = 206мм)
o<my_drill> call [0] [0]
#<_global_down_num> = 1
#<_global_down_step> = [[#<_global_up_work> + #<lenght>] / #<_global_down_num>]
#<_global_diametr> = 201 (D = 206мм)
o<my_drill> call [0] [0]
M2
#
Re: Глобальные переменные
каждодневная практика -
o<крепеж> sub ([1- Х][2- У][3 - угол][4- Ширина])
G0 Z[#<_bz>]
G92.2
o<крепеж_instr1> if [#<_N> eq 1 or #<_N> eq 0] (фреза 3 крепеж изнанка)
o<крепеж> sub ([1- Х][2- У][3 - угол][4- Ширина])
G0 Z[#<_bz>]
G92.2
o<крепеж_instr1> if [#<_N> eq 1 or #<_N> eq 0] (фреза 3 крепеж изнанка)
- xenon-alien
- Почётный участник
- Сообщения: 4510
- Зарегистрирован: 01 янв 2013, 13:13
- Репутация: 921
- Настоящее имя: Daniel
- Откуда: Закарпатская обл. Украина
- Контактная информация:
Re: Глобальные переменные
Что бы не плодить темы, то спрошу здесь.
Для ручной смены инструмента можно указать положения. Но так как стол подвижной, то ось У можно не двигать.
Есть ли какая-то глобальная переменная текущего положения, которую можно прописать в *,ини файле?
TOOL_CHANGE_POSITION = 510 #<_yyy.yyyy> 0 (x y z координаты)
Для ручной смены инструмента можно указать положения. Но так как стол подвижной, то ось У можно не двигать.
Есть ли какая-то глобальная переменная текущего положения, которую можно прописать в *,ини файле?
TOOL_CHANGE_POSITION = 510 #<_yyy.yyyy> 0 (x y z координаты)
-
- Новичок
- Сообщения: 35
- Зарегистрирован: 27 фев 2016, 17:03
- Репутация: 7
- Настоящее имя: Сергей
- Контактная информация:
Re: Глобальные переменные
В качестве догадки, на основе темы [WIKI] Работа с центроискателем в LinuxCNCxenon-alien писал(а): ↑23 мар 2024, 20:59 Что бы не плодить темы, то спрошу здесь.
Для ручной смены инструмента можно указать положения. Но так как стол подвижной, то ось У можно не двигать.
Есть ли какая-то глобальная переменная текущего положения, которую можно прописать в *,ини файле?
TOOL_CHANGE_POSITION = 510 #<_yyy.yyyy> 0 (x y z координаты)
В ini файле
Код: Выделить всё
[TOOLSENSOR]
# Absolute coordinates of the toolsetter pad
X = 10
Y = 10
Код: Выделить всё
G53 G1 X[#<_ini[TOOLSENSOR]X>] Y[#<_ini[TOOLSENSOR]Y>]
Код: Выделить всё
G53 G1 X[#<_ini[TOOLSENSOR]X>]
- xenon-alien
- Почётный участник
- Сообщения: 4510
- Зарегистрирован: 01 янв 2013, 13:13
- Репутация: 921
- Настоящее имя: Daniel
- Откуда: Закарпатская обл. Украина
- Контактная информация:
Re: Глобальные переменные
Меня интересовал самый примитивный способ без ремапа.
То что вы предложили - это ремап М кода.
И речи не было про центро-искатель от vers, а обычная ручная смена в АТС шпинделе с компенсацией по таблице инструмента.
- hmnijp
- Мастер
- Сообщения: 1726
- Зарегистрирован: 20 авг 2017, 15:02
- Репутация: 532
- Настоящее имя: Константин
- Откуда: Ульяновск
- Контактная информация:
Re: Глобальные переменные
Вообще по задумке для смены инcтрумента кроме TOOL_CHANGE_POSITION предполагается использовать точку G30...xenon-alien писал(а): ↑ Есть ли какая-то глобальная переменная
и есть связанный с этим параметр
[EMCIO]TOOL_CHANGE_AT_G30 = 1 - The machine is moved to reference point defined by parameters 5181-5186 for G30 if the value is 1. For more information see G-code Parameters and G-code G30-G30.1.
Нет, он имел в виду - в ини создать свой раздел и параметр, и ссылаться на него в коде. никто не запрещает делать их сколько угодно:xenon-alien писал(а): ↑ То что вы предложили - это ремап М кода.
#<_ini[MYVARIABLES]X>
Но есть минус - он обновляется только с перезапуском.
- xenon-alien
- Почётный участник
- Сообщения: 4510
- Зарегистрирован: 01 янв 2013, 13:13
- Репутация: 921
- Настоящее имя: Daniel
- Откуда: Закарпатская обл. Украина
- Контактная информация:
Re: Глобальные переменные
А для чего мне создавать собственные переменные, если есть глобальная переменная текущей координаты стола?
Просто я не в курсе под каким именем (ещё не добрался).
И переспросил, будет ли оно так работать с ини файла. Для того и есть
Для удобства и простоты.
На офф. форуме чувак материл этот
Ибо оно ехало, не так как он хотел и ему тоже предложили ремап.
-
- Мастер
- Сообщения: 1749
- Зарегистрирован: 28 авг 2018, 17:13
- Репутация: 296
- Настоящее имя: Алексей
- Контактная информация:
Re: Глобальные переменные
найти ее нетрудно (numbered parameters linuxcnc), но очень сомнительно что она будет перевычисляться после первичной загрузки...xenon-alien писал(а): ↑ Просто я не в курсе под каким именем (ещё не добрался).
проще наверное постпроцессор покривить чтобы вставлял g53g0z0 перед сменой инструмента, а в ini файле вообще ничего не указывать.
- xenon-alien
- Почётный участник
- Сообщения: 4510
- Зарегистрирован: 01 янв 2013, 13:13
- Репутация: 921
- Настоящее имя: Daniel
- Откуда: Закарпатская обл. Украина
- Контактная информация:
Re: Глобальные переменные
Вообще-то для этого есть раздел [EMCIO] Section
в ini файле.
А этим хотел указать позицию смены, только без изменения по оси У. (что бы стол туда-сюда не гонять лишний раз)TOOL_CHANGE_QUILL_UP = 1 - The Z axis will be moved to machine zero prior to the tool change when the value is 1. This is the same as issuing a G0 G53 Z0.
Вот я и понадеялся, что можно обойтись без ремапа, но что-то подсказывает, что нет...TOOL_CHANGE_POSITION = 0 0 2 - Specifies the XYZ location to move to when performing a tool change if three digits are used. Specifies the XYZABC location when 6 digits are used. Specifies the XYZABCUVW location when 9 digits are used. Tool Changes can be combined. For example if you combine the quill up with change position you can move the Z first then the X and Y.