Конфигурация для плазморезки с внешним блоком THC

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Edifier
Новичок
Сообщения: 20
Зарегистрирован: 14 окт 2017, 18:48
Репутация: 1
Настоящее имя: Владимир
Контактная информация:

Re: Конфигурация для плазморезки с внешним блоком THC

Сообщение Edifier »

ex71 писал(а): там не так пишется
Спасибо за код. А можно хоть краткое пояснение к строкам из него? Сейчас для меня это набор цифр и букв.
ex71
Мастер
Сообщения: 697
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: Конфигурация для плазморезки с внешним блоком THC

Сообщение ex71 »

в кратце не объяснить.. надо почитать вот это. тут основы написания конфигурации HAL.
потом вспомнить или понять булеву логику и бинарные операции. Когда 1+1=1.
к примеру 1 or 0 = 1 (или). 1 and 0=0 (и)
и на основе этого надо переписать сравнение dir с результатом сравнения motor-pos-cmd и нуля. На выходе будет либо активация порта либо нет, для движения в одну сторону.
для обратного направления можно сравнивать dir через and. Теоретически... Надо пробовать.

Либо писать компонент(модуль) на питоне или сях.
Edifier
Новичок
Сообщения: 20
Зарегистрирован: 14 окт 2017, 18:48
Репутация: 1
Настоящее имя: Владимир
Контактная информация:

Re: Конфигурация для плазморезки с внешним блоком THC

Сообщение Edifier »

ex71 писал(а): надо почитать вот это. тут основы написания конфигурации HAL.
Спасибо. Благодаря вашему примеру кода и бессонной ночи изучения основ, попытался написать свой первый код

Код: Выделить всё

loadrt and2 count=2
addf and2.0 servo-thread
addf and2.1 servo-thread
loadrt not count=1
addf not.0 servo-thread

net signal-step and2.0.in0 and2.1.in0 <= joint.2.free-tp-enable
net signal-dir and2.0.in1 not.0.in <= stepgen.2.dir
net signal-dir-invert and2.1.in1  <= not.0.out
net up-z   and2.0.out         => parport.0.pin-07-out
net down-z  and2.1.out         => parport.0.pin-08-out

Но я не уверен, что это правильный вариант построения нужной мне логики. В программе, с помощью мониторинга пинов, вроде все работает. Но не будет ли в будущем мой код конфликтовать с чем либо, или сильно грузить комп этим процессом?
ex71
Мастер
Сообщения: 697
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: Конфигурация для плазморезки с внешним блоком THC

Сообщение ex71 »

Edifier писал(а): Но не будет ли в будущем мой код конфликтовать с чем либо, или сильно грузить комп этим процессом?
нормально все будет. таких спрятанных алгоритмов много. Весь HAL это подобные связки
Надо просто тестировать на реальном железе. Там еще есть вопрос в точности подстройки оси. То есть когда lcnc все еще дает задание на движение, а привод не может сместиться на такое малое значение и будет постоянно перескакивать ЧЕРЕЗ позицию, и так его будет гонять вверх-вниз в пределах допустим миллиметра.

Что за "free planner" ?
Edifier
Новичок
Сообщения: 20
Зарегистрирован: 14 окт 2017, 18:48
Репутация: 1
Настоящее имя: Владимир
Контактная информация:

Re: Конфигурация для плазморезки с внешним блоком THC

Сообщение Edifier »

ex71 писал(а): Что за "free planner" ?
Хз.
Нашел битовый сигнал, который включается при движении оси . Для каких целей он существует, я не знаю, главное что он подает нужный мне сигнал.

upd. Полез искать что значит этот сигнал и оказалось он показывает свободное перемещение оси. При исполнении программы не активен.
Edifier
Новичок
Сообщения: 20
Зарегистрирован: 14 окт 2017, 18:48
Репутация: 1
Настоящее имя: Владимир
Контактная информация:

Re: Конфигурация для плазморезки с внешним блоком THC

Сообщение Edifier »

Сейчас задумался. Может начать думать в противоположном направлении? С THC подавать сигналы в линукс и затем управлять шаговиком. Так у меня расширяются возможности настроек оси. Но вот есть сомнения по быстродействию. Не будет ли линукс сильно задерживать сигнал при обработке? Еще и с THC скорей всего на мотор подается ШИМ, потому не уверен, что его можно подключить к входному пину контроллера.
В общем поспешил с покупкой этого THC. Не думал, что будет такой головняк
daiman444
Мастер
Сообщения: 304
Зарегистрирован: 18 май 2019, 15:24
Репутация: 31
Настоящее имя: Дмитрий
Контактная информация:

Re: Конфигурация для плазморезки с внешним блоком THC

Сообщение daiman444 »

ex71 писал(а): Мне же нужно указывать сколько секунд (или миллисекунд) подавать сигнал для THC.
Мне кажется, то что вы ищите, можно сделать гораздо проще. Как я понимаю: вам нужно сделать подпрыжку при прожиге толстого металла. Если я вас правильно понимаю, то вам нужна всего лишь добавленная в уп строчка:

Код: Выделить всё

M66 P0 L3 Q1
Эта команда задает цифровому пину 0(P0) высокий уровень, или единицу, или истину(L3) ожидая какого либо события на протяжении заданного времени в секундах(Q1). Почему то не вставляется ссылка на описание. Посмотрите документацию на linuxcnc.org в разделе М кодов.

Вы можете вставить на прямую эту команду в уп, а можете вставить ее в макрос прожига. В макросе можно будет параметры P, L и Q сделать так чтобы задавать их из gladevcp например
Американский форум: задал вопрос — получил ответ.
Израильский форум: задал вопрос — получил вопрос.
Русский форум: задал вопрос и потом долго выслушиваешь какой ты м*дак.
https://youtube.com/channel/UCv22xgeww0FIzS9n4VrT2TA
Edifier
Новичок
Сообщения: 20
Зарегистрирован: 14 окт 2017, 18:48
Репутация: 1
Настоящее имя: Владимир
Контактная информация:

Re: Конфигурация для плазморезки с внешним блоком THC

Сообщение Edifier »

daiman444 писал(а): Мне кажется, то что вы ищите, можно сделать гораздо проще. Как я понимаю: вам нужно сделать подпрыжку при прожиге толстого металла. Если я вас правильно понимаю, то вам нужна всего лишь добавленная в уп строчка:
Проблемы в подпрыжке нет. Мой THC все это умеет делать автономно без участия линукса. И подключить его к дефолтному аксику вообще не проблема. Командами М3 и М5 она нормально управляется.
Но, мне хотелось использовать QTPlasmaC, которая имеет огромное количество полезных функций. К примеру она сама рассчитывает отступ траектории на заданную толщину реза , умеет отключат THC на углах и малых радиусах, параметры врезки указываются в ней, а не в уп. Получается я загрузил единственный файл с уп в линукс и им могу порезать любую толщину металла (для этого достаточно выбрать нужную толщину из списка с заранее установленными параметрами). В обычном аксике мне придется под каждую толщину писать свою уп.
Помимо этого, там можно сразу создавать уп для простых фигур, минуя CAD и Sheetcam
Вот чтоб все это работало, мне нужно подключить мой THC так, чтобы система давала команды подьема и опускания.
daiman444
Мастер
Сообщения: 304
Зарегистрирован: 18 май 2019, 15:24
Репутация: 31
Настоящее имя: Дмитрий
Контактная информация:

Re: Конфигурация для плазморезки с внешним блоком THC

Сообщение daiman444 »

Edifier писал(а): давала
Ответ на ваши поиски я уже дал😁😁
Американский форум: задал вопрос — получил ответ.
Израильский форум: задал вопрос — получил вопрос.
Русский форум: задал вопрос и потом долго выслушиваешь какой ты м*дак.
https://youtube.com/channel/UCv22xgeww0FIzS9n4VrT2TA
Oleg_Pvk
Кандидат
Сообщения: 93
Зарегистрирован: 06 июл 2014, 16:24
Репутация: 1
Откуда: Sverdlovskay obl. Pervouralsk
Контактная информация:

Re: Конфигурация для плазморезки с внешним блоком THC

Сообщение Oleg_Pvk »

odekolon писал(а): 25 окт 2015, 01:17 Обновление!
В связи со сборкой новой плазмы со встроенной логикой THC, дошли руки поправить старую конфигурацию с внешним блоком THC
Конфигурация рабочая, проверенная (кстати старая, работала до сих пор)
Что нового:
- улучшена работа детектора граней
- добавлены кнопки команд
- внешние сигналы вверх и вниз блокируются до начала реза (больше не нужно выставлять время на внешнем блоке)
- добавлена индикация текущей высoты реза (от последнего измерения float sw)
- увеличен шрифт
- мелкие доработки
- удалены ненужные комментарии все немножко "причесано" . Не вылизано, но хотя бы причесано. :hehehe:
- все настройки паралелльных портов - в одном файле (stepper_parort.hal)

выглядит теперь так:plasma2lpt.png
инструкции в файле README
архив с новой конфигурацией:
2LPTplazma.zip
...
Апну тему. Каким поспроцессором в sheetcam вы пользуетесь?
Или если не сложно скиньте пример g-cod какой-нибудь детальки чтобы я мог подобрать\подогнать постпроцессор

П.с. Я ещё в процессе настройки этого конфига возможно появятся другие вопросы
Oleg_Pvk
Кандидат
Сообщения: 93
Зарегистрирован: 06 июл 2014, 16:24
Репутация: 1
Откуда: Sverdlovskay obl. Pervouralsk
Контактная информация:

Re: Конфигурация для плазморезки с внешним блоком THC

Сообщение Oleg_Pvk »

Пожалуйста помогите запустить конфигурацию из первого сообщения.
В HAL и INI изменил на свои значение из рабочего конфига.
И чтобы я не отправлял на 15 пин всё равно висит что он уперся в лимит
photo_2023-06-01_16-24-38.jpg (2555 просмотров) <a class='original' href='./download/file.php?id=207988&sid=99eac0976e5b94f94e6a570f0fdb5001&mode=view' target=_blank>Загрузить оригинал (169.73 КБ)</a>
Уже всяко попробовал
Oleg_Pvk
Кандидат
Сообщения: 93
Зарегистрирован: 06 июл 2014, 16:24
Репутация: 1
Откуда: Sverdlovskay obl. Pervouralsk
Контактная информация:

Re: Конфигурация для плазморезки с внешним блоком THC

Сообщение Oleg_Pvk »

Я начинаю сходить с ума... и так начну описывать и может в процессе описания найдётся решение. Есть желание запустить конфиг из первого поста с внешним блоком THC. THC CHCUFA2.0. Блог выдаёт сигналы вниз/вверх/дуга ок.
Имею ПК у которого на материнской плате есть порт с адресом 0X378 этот lpt соединён с платой коммутации PLC4x-G2 (осталась ещё от самого первого фрезера) и через этот порт настроил движение по осям и включение пилотной дуги помощью реле. Датчиков HOME нету (они есть но не подключены). Датчик проб в планах установить.
Ещё есть второй LPT вставленный в слот PCI но я пока не нашёл его адрес. Есть вторая плата коммутации BL - MACH - V1.1 D305. Лежит свободная.
Первый вопрос - имеет ли смысл заменить PL4x-G2 на BL - MACH - V1.1 D305 чтобы выводы совпадали с конфигом?
На данный момент в файле stepper_parport.hal я измени всё что касается движения осей и также поправил в plasma2lpt.ini параметры. Данные брал из рабочего конфига "мой станок"
При установке Ydir 8 ногу на порт 0x378 (LPT на материнской плате) EMC при запуске валится в ошибку.
Если закомментировать строку "net TorchOn parport.1.pin-08-out" EMC загружается. И это несмотря на то что эта строка относится к второму порту. Ок! Т.к. у меня нету (не подключены) концевиков то и реле включения висит на 14 ноге то меняю пины следующим образом:
-все пределы на второй лпт
-все сигналы от THC на первый порт
- строку "net FloatSwitch <= parport.1.pin-12-in-not" инвертирую иначе он не даёт включит станок чтобы по двигать осями

Код: Выделить всё

# датчик поверхности
# 12 pin   1 LPT
net FloatSwitch <= parport.1.pin-12-in-not

# Внешний  ЕСТОП
net ExtEStop parport.0.pin-10-in
#net ExtEStop parport.0.pin-10-in-not

#  пределы X
#net both-home-x <= parport.1.pin-12-in

#  пределы Y
#net both-home-y <= parport.1.pin-13-in

#  пределы Z
net LimitZ parport.1.pin-15-in-not

# сигналы THC
# от второго порта

# сигнал включить горелку
net TorchOn parport.0.pin-14-out
# сигнал Есть дуга
net ArcOK <= parport.0.pin-13-in-not
# внешний сигнал "опустить горелку"
net py_moveDown <= parport.0.pin-11-in-not
# внешний сигнал "поднять горелку"
net py_moveUp <= parport.0.pin-12-in-not
В итоге происходит следующее:
- можно по двигать всеми осями
- при подачи тестового сигнала от THC вниз/вверх на панельке справа загораться соответствующий зелёный марке (вврех\вниз) и как не странно горит ещё маркер "дуга"
-Но! При подаче сигнала дуга ОК горит индикатор дуги и оба маркера вверх\вниз. При снятии этого сигнала ни один из индикаторов не горит.
И я не знаю правильная ли это логика работы. Я считал что при подаче сигнала "дуга ок" от THC должен загораться только индикатор "дуга"
Едем дальше. Чтобы это проверить нужно захоумить станок но на команду хоум любой из осей станок отвечает ошибкой.
Дальше у меня нет мыслей как действовать. По этому прикреплюю папку с конфигами
configs.zip
(375.74 КБ) 100 скачиваний
Может быть уважаемые форумчани что-то подскажут.

П.с. Пару вопросов не совсем по теме:
1. Как в linux запретить выключать экран при простое? Это очень похоже на аля энергосбережение но из него станок долго выходит. Раньше он заставку показывал я сейчас не вспомню но как-то поборол этот момент. Теперь он просто выключает монитор.
2. Попробовал много способов найти адрес второго порта но не увенчалось успехом либо я чего-то не вижу а оно есть.
В терминале попробовал lspci -v и что из этого есть адрес второго порта и почему в конце только один порт видит и почему у него странный адрес типа "10**" а не "0x**" для меня неизвестно хотя завтра попробую. Может это он и есть
photo_2023-06-01_21-50-15.jpg (2546 просмотров) <a class='original' href='./download/file.php?id=207997&sid=99eac0976e5b94f94e6a570f0fdb5001&mode=view' target=_blank>Загрузить оригинал (219.05 КБ)</a>
photo_2023-06-01_21-50-17.jpg (2546 просмотров) <a class='original' href='./download/file.php?id=207996&sid=99eac0976e5b94f94e6a570f0fdb5001&mode=view' target=_blank>Загрузить оригинал (216.05 КБ)</a>
photo_2023-06-01_21-50-19.jpg (2546 просмотров) <a class='original' href='./download/file.php?id=207995&sid=99eac0976e5b94f94e6a570f0fdb5001&mode=view' target=_blank>Загрузить оригинал (208.01 КБ)</a>
photo_2023-06-01_21-50-22.jpg (2546 просмотров) <a class='original' href='./download/file.php?id=207994&sid=99eac0976e5b94f94e6a570f0fdb5001&mode=view' target=_blank>Загрузить оригинал (203.65 КБ)</a>
photo_2023-06-01_21-50-13.jpg (2546 просмотров) <a class='original' href='./download/file.php?id=207993&sid=99eac0976e5b94f94e6a570f0fdb5001&mode=view' target=_blank>Загрузить оригинал (216 КБ)</a>
ex71
Мастер
Сообщения: 697
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: Конфигурация для плазморезки с внешним блоком THC

Сообщение ex71 »

Oleg_Pvk писал(а): имеет ли смысл заменить PL4x-G2 на BL - MACH - V1.1 D305 чтобы выводы совпадали с конфигом?
а конфиг прописать не проще??
Oleg_Pvk писал(а): Чтобы это проверить нужно захоумить станок но на команду хоум любой из осей станок отвечает ошибкой.
[TRAJ]
NO_FORCE_HOMING = 1
Oleg_Pvk писал(а): И я не знаю правильная ли это логика работы.
наверное нет.
надо открывать halshow в меню сверху, и там выбрать нужные пины - мониторить их состояние в реальном времени. Для начала убедится что каждый их них загорается отдельно при замыкании соответствующего пина ЛПТ порта.
Дальше надо убедится, что при замыкании нужного пина LCNC делает заданное действие. Up/DOWN заставляют ось Z двигаться в указанном направлении.
ARC_OK это вообще не факт что используется в конфигурации.
Есть аплет для LCNC для работы с плазмой, там и интерфейс другой и кажется обработка Arc_Ok внутри.
пока Arc_Ok не горит - мы в процессе разжига дуги. И никуда ни при каких других обстоятельствах не движемся. UP/DOWN при этом тоже не должны отрабатываться. Так как Арк-ОК это когда у тебя УЖЕ плавится металл.

так же отдельно убедится, что Арк-Ок с ТНС подается когда мы зажгли рабочую дугу и готовы резать.
Ну и отдельно UP/DOWN со стороны ТНС генерятся правильно.
Вот после всего этого можно будет уже связывать все это и проверять логику работы уже LinuxCNC
web123456
Кандидат
Сообщения: 50
Зарегистрирован: 16 май 2017, 12:34
Репутация: 0
Откуда: Тимашевск
Контактная информация:

Re: Конфигурация для плазморезки с внешним блоком THC

Сообщение web123456 »

Посмотрите здесь все есть .https://forum.linuxcnc.org/plasmac
Ответить

Вернуться в «LinuxCNC»