Страница 2 из 3
Re: Плазморез со смарт-вентиляцией
Добавлено: 03 дек 2014, 03:50
mycnc
UAVpilot писал(а):
Т.е. в позиции X0Y0 сигналы появятся на двух выходах (один для X и один для Y). Как по ним включить одну угловую секцию? Городить отдельную логику на реле или ещё на чём?
Обычное матричное включение. На каждую секцию приходит два сигнала. Включается она , когда присутствуют оба. Вроде никакую логику городить не надо.
При этом выходов используется не (6*2=12), а (6+2=8).
Но я понимаю, что вам ваше решение нравится больше, я спорить не буду.
UAVpilot писал(а):
mycnc писал(а):Кстати, в LinuxCNC, если остановить выполнение в середине кадра круговой интерполяции, можно продолжить с этой точки (середины кадра), нажав "start" ?
Для плазменной резки очень актуально.
В данной реализации (средствами конфигурирования) сделано так, что если дуга погаснет в любом месте, то станок автоматом выполнит поиск металла, поджиг дуги и продолжит с прерванного места.
Очень интересно. Можно подробнее?
Дуга погасла в середине фланца диаметром 1 метр. Сработал датчик дуги и машина остановилась (на середине кадра). Резак отвели вручную к оператору, он поменял расходники. Дальше нажал кнопку "возврат" - резак уехал в точку, где оборвалась дуга. Нажал "пуск" - сработала система начального позиционирования (IHC - Initial Height Control), поджиг дуги и машина поехала дальше резать с середины кадра.
Это имееется ввиду? Просто не понял, что такое
"автоматом выполнит поиск металла" ?
И все-таки - сможет LinuxCNC стартовать с середины кадра круговой интерполяции? (Если да, то очень интересна реализация. Насколько я знаю, раньше этого не было).
UAVpilot писал(а):
Если остановить кнопкой пауза, то дорежет текущий кадр и остановится. Продолжить можно будет либо со след. кадра, либо с любого другого, причем поиск металла и поджиг дуги произойдёт автоматически, если дуга в этот момент гореть не будет.
Для моих заказчиков такое не подойдет. Если пошло непрорезание, двойная дуга или еще какая фигня, то останавливать надо сразу, а не ждать, когда дорежет текущий кадр. И стартовать потом надо прямо с этой точки.
Re: Плазморез со смарт-вентиляцией
Добавлено: 03 дек 2014, 07:41
ukr-sasha
mycnc писал(а):Если остановить кнопкой пауза, то дорежет текущий кадр и остановится.
Речь о паузе - кадр должен дорезаться.
mycnc писал(а):Если пошло непрорезание, двойная дуга или еще какая фигня, то останавливать надо сразу, а не ждать, когда дорежет текущий кадр.
А это уже аварийный стоп.
Re: Плазморез со смарт-вентиляцией
Добавлено: 03 дек 2014, 08:19
Serg
mycnc писал(а):На каждую секцию приходит два сигнала.
Но секция управляется одним сигналом. Есть напряжение - открыто, нет напряжения - закрыто.
mycnc писал(а):Включается она , когда присутствуют оба. Вроде никакую логику городить не надо.
А это разве не логика?
mycnc писал(а):Это имееется ввиду? Просто не понял, что такое "автоматом выполнит поиск металла" ?
И все-таки - сможет LinuxCNC стартовать с середины кадра круговой интерполяции? (Если да, то очень интересна реализация. Насколько я знаю, раньше этого не было).
Тут такой задачи не стоит, расходники меняются не в середине кадра, а заранее.
Но реализовать такую возможность не проблема. Сейчас, если дуга гаснет, то поиск металла и поджиг происходит автоматически без участия планировщика траектории (он об этом даже не догадывается), никто не мешает перед очередой попыткой поджига дуги (например если не удалось её поджечь раз за 5) съездить на замену исходников, даже программу не придётся останавливать.
Или даже можно проще - отказаться от G2/G3, для плазмы наличие круговой интерполяции не принципиально.
Считаю на этом можно закончить сравнение LinuxCNC и mycnc в рамках этой темы, тем более, что выбор софта тут уже сделан в пользу LinuxCNC, хотя-бы потому, чтоб не зависеть от единственного человека.
Если очень хочется продолжить, то предлагаю в рамках вот этой темы:
Многосевой станок лазерной резки листа и профиля #1 
Re: Плазморез со смарт-вентиляцией
Добавлено: 03 дек 2014, 09:36
mycnc
UAVpilot писал(а):mycnc писал(а):На каждую секцию приходит два сигнала.
Но секция управляется одним сигналом. Есть напряжение - открыто, нет напряжения - закрыто.
Обычно напряжение на исполнительное устройство (клапан, мотор) подается по двум проводам.
Но если у вас уже нагорожена логическая схема, то конечно будет по-другому
UAVpilot писал(а):
mycnc писал(а):
И все-таки - сможет LinuxCNC стартовать с середины кадра круговой интерполяции? (Если да, то очень интересна реализация. Насколько я знаю, раньше этого не было).
Тут такой задачи не стоит, расходники меняются не в середине кадра, а заранее.
Но реализовать такую возможность не проблема. Сейчас, если дуга гаснет, то поиск металла и поджиг происходит автоматически без участия планировщика траектории (он об этом даже не догадывается), никто не мешает перед очередой попыткой поджига дуги (например если не удалось её поджечь раз за 5) съездить на замену исходников, даже программу не придётся останавливать.
Или даже можно проще - отказаться от G2/G3, для плазмы наличие круговой интерполяции не принципиально.
Считаю на этом можно закончить сравнение LinuxCNC и mycnc в рамках этой темы, тем более, что выбор софта тут уже сделан в пользу LinuxCNC, хотя-бы потому, чтоб не зависеть от единственного человека.
Если очень хочется продолжить, то предлагаю в рамках вот этой темы:
Многосевой станок лазерной резки листа и профиля #1 
У вас очень непритязательные заказчики, вам сильно повезло.
Отказаться от круговой интерполяции в ЧПУ для плазменной резки и называть остановку в середине кадра аварией - это сильно!
Re: Плазморез со смарт-вентиляцией
Добавлено: 03 дек 2014, 12:15
Serg
mycnc писал(а):UAVpilot писал(а):
Но секция управляется одним сигналом. Есть напряжение - открыто, нет напряжения - закрыто.
Обычно напряжение на исполнительное устройство (клапан, мотор) подается по двум проводам.
Но если у вас уже нагорожена логическая схема, то конечно будет по-другому
какой всётаки неугомонный товарищ...
Расслабтесь уже, ваш ET5 тупо по количеству требуемых выходов не проходит. И по надёжности саппорта.
Re: Плазморез со смарт-вентиляцией
Добавлено: 03 дек 2014, 12:32
nkp
mycnc писал(а):И все-таки - сможет LinuxCNC стартовать с середины кадра круговой интерполяции? (Если да, то очень интересна реализация. Насколько я знаю, раньше этого не было).
"стартовать" наверно не сможет ("по настоящему")...
но и прерывать интерпретатор в подобной ситуации наверно незачем...
я про
jog-while-paused от Michael Haberler
Re: Плазморез со смарт-вентиляцией
Добавлено: 03 дек 2014, 12:42
Serg
nkp писал(а):я про jog-while-paused от Michael Haberler
Тут идея похожая, только иначе сделана.
Re: Плазморез со смарт-вентиляцией
Добавлено: 05 дек 2014, 04:39
mycnc
nkp писал(а):mycnc писал(а):И все-таки - сможет LinuxCNC стартовать с середины кадра круговой интерполяции? (Если да, то очень интересна реализация. Насколько я знаю, раньше этого не было).
"стартовать" наверно не сможет ("по настоящему")...
но и прерывать интерпретатор в подобной ситуации наверно незачем...
я про
jog-while-paused от Michael Haberler
Большое спасибо, было очень интересно посмотреть.
UAVpilot писал(а):
какой всётаки неугомонный товарищ...
Расслабтесь уже, ваш ET5 тупо по количеству требуемых выходов не проходит. И по надёжности саппорта.
Почему вы так нервничаете?
Продажа в России моих контроллеров для плазменной резки не приветствуется моими коллегами. Поэтому я даже не собирался вам их предлагать. А вот обсудить технические особенности систем применительно к приложению всегда интересно. Особенно с высококлассными специалистами по LinuxCNC. Разумеется, я пересекаюсь с этой системой при общении с другими заказчиками и знать о ней больше мне очень интересно. Жаль, что у вас это вызывает такой негатив.
Re: Плазморез со смарт-вентиляцией
Добавлено: 28 дек 2014, 04:19
Serg
Первая проба:
Первый "коммерческий" заказ (сталь 8мм):
http://youtu.be/nXR_MZ4l4ic
(вернее третий, но первые два совсем простенькие были)
Re: Плазморез со смарт-вентиляцией
Добавлено: 28 дек 2014, 04:45
sergey27rus
Сергей воду/вытяжку планируешь делать или так и будет на воздухе резать.
Re: Плазморез со смарт-вентиляцией
Добавлено: 28 дек 2014, 10:20
Serg
Воды не будет. Вытяжка есть - сосёт вниз. Но в ролике её не заметно т.к. и метал толстый и вентилятору надо мощи добавить - теоретическое предположение, что для одной секции хватит половины мощности оказалось не верным, надо больше. Тут уже не стали перенастраивать, решили пусть так дорежет.
Уже очень домой хотелось.

Re: Плазморез со смарт-вентиляцией
Добавлено: 28 дек 2014, 11:19
aftaev
UAVpilot, если бы конфиги выложил было бы вообще класс

Re: Плазморез со смарт-вентиляцией
Добавлено: 28 дек 2014, 15:34
Serg
Конфиги сначала нужно отладить и "причесать".
Да и кому интересно к каким контактам у нас подключены какие датчики?.. Или тебе интересно как сигнал от концевика передается компоненту axis?.. Помоему это все сами могут изобразить.
Я лучше буду рассказывать отдельно по узлам/частям, по которым пришлось разрабатывать какие-то решения, отличные от обычных.
Re: Плазморез со смарт-вентиляцией
Добавлено: 28 дек 2014, 15:45
aftaev
Запустить у себя на компе, скрины посмотреть. Там что то про ТНС видно на скринах

Re: Плазморез со смарт-вентиляцией
Добавлено: 28 дек 2014, 16:13
Serg
На этом станке на оси Х стоят два сервопривода по 1кВт (все приводы модели Panasonic Minas-A5), соотв. для организации подчинённой оси применена кинематика gantrykins. При использовании кинематик, отличных от обычной (trivkins) в axis приходится переключаться между режимами осей и координат: станок можно хомить только в режиме осей, когда каждая управляется отдельно, а работать со станком нужно в режиме координат, чтоб зависимые оси перемещались синхронно. Axis в этом плане сделан несколько неудобно и эти режимы приходится переключать оператору, а он запросто может это забыть и тогда при попытке сдвинуть портал поедет только одна его половина и всё может закончится очень плохо.
Вобщем нужен какой-то механизм, позволяющий переключать режимы axis из вне, точнее и HAL. Очевидный способ - добавить в axisui специальные HAL-пины для этого. Подобных решений существует вагон и маленькая тележка, но все они требуют изменения оригинального кода axis. Лично я считаю (не по "религиозным" мотивам, а лишь из желания не создавать на ровном месте лишних проблем по дальнейшему сопровождению), что править исходники можно только тогда, когда не существует других вариантов. Данный случай - не исключение.
Весь дополнительный код размещён в отдельном файле, аналог которого многие знают под именем ~/.axisrc Я его обозвал аналогом потому, что ~/.axisrc будет загружаться при запусле любой конфигурации, а мне этого не надо. В axis и на этот случай предусмотрен соотв. механизм: в ini в секции DISPLAY можно указать вот такой параметр:
который в данном случае заставит axis загрузить вместо ~/.axisrc указанный файл (axisrc из каталога с ini-файлом).
Ну и закуску содержимое ./axisrc: добавляются пины axisui.user.mode.teleop, axisui.user.mode.joint и axisui.user.mdi-disable, полагаю по их названию понятно что они делают.
пример использования:
Код: Выделить всё
net machine-homed-pulse => axisui.user.mode.teleop
net machine-unhomed => axisui.user.mdi-disable
Re: Плазморез со смарт-вентиляцией
Добавлено: 29 дек 2014, 13:16
Serg
aftaev писал(а):Запустить у себя на компе, скрины посмотреть. Там что то про ТНС видно на скринах

Это можно посмотреть и без конфигов и без плат Mesa, без которых эти конфиги не запустятся:

Re: Плазморез со смарт-вентиляцией
Добавлено: 29 дек 2014, 15:57
aftaev
UAVpilot, справа панельку ты делал?
Re: Плазморез со смарт-вентиляцией
Добавлено: 29 дек 2014, 16:25
Serg
Да, но за основу взял где-то давно стыренную.
На досуге хочу попробовать gmocappy прикрутить.
Re: Плазморез со смарт-вентиляцией
Добавлено: 29 дек 2014, 16:35
aftaev
Re: Плазморез со смарт-вентиляцией
Добавлено: 16 янв 2015, 20:17
Serg
Этот станок выявил ещё одну проблему LinuxCNC:
Портал здесь большой, приводится в движение двумя сервами (по 1кВт), естественно, что в нём имеются некоторые внутренние напряжения, в том числе и от изменения окружающей температуры. Эти напряжения всё время пытаются изогнуть портал самым замысловатым образом, от чего он в свободном состоянии стремится встать немного косо (неперендикулярно оси X).
При выполнении поиска начал эта "косость" естественно выправляется, добавляя внутренних напряжений порталу. Всё работает хорошо, пока сервы находятся в режиме удержания заданной позиции.
Но стоит выключить станок по F2 или случись нажать E-Stop, как сервы "ослабляют хватку" и портал занимает своё любимое косое положение.
Если теперь попытаться включить станок находясь в "world mode" или включить в "joint mode" и попытаться переключиться в "world mode" произойдёт следуюющее: Т.к. axis.N отслеживает позицию сдвоенной оси по сигналу feedback только одной из осей, то при включении кинематика gantrykins на входе получит в качестве "задания" текущую позицию этой оси и честно выполнит свою работу, а именно установит в качестве заданию такую-же позиции и для второй оси (помним, что она уехала при выключении). В результате, всего за один сервоцикл заданная позиция сервы изменится на несколько милиметров, PID, узрев различие между заданной позицией и фактической честно попытается сравнять их во всю "дурь" сервопривода, не взирая на ограничения скорости в INI. В результате получим резкий скачёк половины портала с феерическим грохотом и прочими спецэффектами.
В принципе этого можно избежать, если оператор прежде чем включить станок убедится что переключился в "joint mode", а сразу после включения выполнит хоминг. Но где вы видели оператора, который не ошибается?.. Изначально я попытался решить это способом, описанным чуть выше, но оказалось, что нужно "по каждому чиху" делать UnHomed осям и заставлять оператора идти правильным путём пытаясь не дать ему ошибиться. Как говориться - решение через задницу...
В последствии было применено другое решение: на HAL создан несложный автомат, который отслеживает момент включения станка с "захомленными" осями - если при этом обнаруживается разница в позициях моторов, то задание от axis.N к pid.N подается не напрямую, а через компонент limit3 до тех пор, пока позиции осей не сравняются. Натурные испытания показали, что это простое и надёжное решение.
Прилагаю кусок HAL-конфига этого решения (это не готовый конфиг, а всего-лишь выдержки из него!):
Код: Выделить всё
net x1-pos-cmdl => pid.x1.command
net x1-vel-fb => pid.x1.feedback-deriv
net x1-pos-fb => pid.x1.feedback
net x1-pos-cmd axis.0.motor-pos-cmd
net x1-enable axis.0.amp-enable-out
net x1-pos-cmd => limit3.x1.in
net x1-pos-cmdl <= limit3.x1.out comp.xalign.in0
net align.off => limit3.x1.load
setp limit3.x1.maxv [AXIS_0]ALIGN_VELOCITY
setp limit3.x1.maxa [AXIS_0]ALIGN_ACCELERATION
net x1-pos-fb => axis.0.motor-pos-fb
net x2-pos-cmdl => pid.x2.command
net x2-vel-fb => pid.x2.feedback-deriv
net x2-pos-fb => pid.x2.feedback
net x2-pos-cmd axis.3.motor-pos-cmd
net x2-pos-cmd => limit3.x2.in
net x2-pos-cmdl <= limit3.x2.out comp.xalign.in1
net align.off => limit3.x2.load
setp limit3.x2.maxv [AXIS_3]ALIGN_VELOCITY
setp limit3.x2.maxa [AXIS_3]ALIGN_ACCELERATION
net x2-pos-fb => axis.3.motor-pos-fb
# align x
setp comp.xalign.hyst 0.1
setp lut5.align.function 0x40
net align.equalx comp.xalign.equal => lut5.align.in-0
net is-teleop halui.mode.is-teleop => lut5.align.in-1 not.teleop.in
net machine-is-off => lut5.align.in-2
net align.set lut5.align.out => flipflop.align.reset
net is-teleop-not not.teleop.out => flipflop.align.set
net machine-is-on => flipflop.align.data
net align.equalx => flipflop.align.clk
net align.off <= flipflop.align.out