G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Sintra
- ressurect_83
- Кандидат
- Сообщения: 61
- Зарегистрирован: 13 июл 2013, 15:40
- Репутация: 2
- Откуда: Украина, Киев
- Контактная информация:
G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Sintra
Ссылка на станок - http://www.sintraitalia.it/en/rotoPlasma_50.10.1.html
Скрин CAM Encodecut Все железо управлялось из HMI TOP7 Elco под Debian'ом, софт грузился из папки SoftPLC. Все было хорошо, до того дня когда HMI загрузил систему, а вот SoftPLC загружаться отказался наотрез. Посмотрев логи было выяснено, что файл образа поврежден. Так как опыт общения с производителем станка был печален (http://www.cnc-club.ru/forum/viewtopic.php?f=3&t=3508), решили не долго думая купить контроллер и под Mach3 все это железо запустить. После не долгих в принципе манипуляций железо заработало. Взяли базу старых заготовленных еще под SoftPLC g-кодов и немного подправив их дали пуск. Все было хорошо, резало оно как надо, пока не дошли до папки с порезкой труб на заготовки колен. Оказалось, что когда торцует трубу, точка входа по X и точка выхода совпадают и все хорошо, но когда резали кривую точка входа по X например 854.5, а точка выхода 853... Рез выходит не соединен, изделие испорчено. В чем беда, почему CAM Encodecut выдает заведомо ошибочные координаты прохождения не понимаю. Прилагаю коды старые, которые резались нормально под SofPLC, и измененные мною, под Mach3.
(рис. объяснения прилагаю, нарисовано чуть ли не от руки) Вот пример кода который выдает это чудо на порезку колена под SoftPLC:
@START
F10000
M139 314
M140
G00X885.6Y0
M146
G01X885.6Y314.2
M147
G00Y314
G71Y
G00X774.9Y0
M146
G01X775.9Y2.4
G01X776.9Y4.9
G01X778Y7.4
G01X779Y9.8
G01X779.9Y12.3
G01X780.9Y14.7
G01X781.9Y17.2
G01X782.8Y19.6
G01X783.8Y22.1
/---Все что было по средине удалил для экономии места. ---/
G01X763.4Y284.7
G01X764.3Y287.2
G01X765.2Y289.6
G01X766.1Y292.1
G01X767Y294.5
G01X767.9Y297
G01X768.9Y299.4
G01X769.9Y301.9
G01X770.9Y304.3
G01X771.9Y306.8
G01X772.9Y309.2
G01X773.9Y311.7
G01X774.9Y314.2
M147
G00Y314
G71Y
G00X664.2Y0
M146
G01X664.2Y314.2
M147
G00Y314
G71Y
G00X553.5Y0
M146
G01X554.5Y2.4
G01X555.5Y4.9
G01X556.6Y7.4
G01X557.6Y9.8
G01X558.5Y12.3
G01X559.5Y14.7
G01X560.5Y17.2
G01X561.4Y19.6
G01X562.4Y22.1
G01X563.3Y24.5
/---Все что было по средине удалил для экономии места. ---/
G01X542.9Y287.2
G01X543.8Y289.6
G01X544.7Y292.1
G01X545.6Y294.5
G01X546.5Y297
G01X547.5Y299.4
G01X548.5Y301.9
G01X549.5Y304.3
G01X550.5Y306.8
G01X551.5Y309.2
G01X552.5Y311.7
G01X553.5Y314.2
M147
G00Y314
G71Y
G00X442.8Y0
M146
G01X442.8Y314.2
M147
Я заменил M146 на M3, M147 на M5, @START на G21, M140 убрал, так как не понял зачем он, а M139 314 понимаю зачем, но не знаю чем заменить под Mach3(314 это развертка по Y данной заготовки - труба 100 диаметра) и тоже убрал. Так же не понятно зачем перед резом ставится вот такой код - G71Y.
Изменить в ручную точки входа не вариант, поменять софт CAM тоже как бы не вариант, если нет чего то, настолько же удобного. Прошу помочь с данной проблемой.
Скрин CAM Encodecut Все железо управлялось из HMI TOP7 Elco под Debian'ом, софт грузился из папки SoftPLC. Все было хорошо, до того дня когда HMI загрузил систему, а вот SoftPLC загружаться отказался наотрез. Посмотрев логи было выяснено, что файл образа поврежден. Так как опыт общения с производителем станка был печален (http://www.cnc-club.ru/forum/viewtopic.php?f=3&t=3508), решили не долго думая купить контроллер и под Mach3 все это железо запустить. После не долгих в принципе манипуляций железо заработало. Взяли базу старых заготовленных еще под SoftPLC g-кодов и немного подправив их дали пуск. Все было хорошо, резало оно как надо, пока не дошли до папки с порезкой труб на заготовки колен. Оказалось, что когда торцует трубу, точка входа по X и точка выхода совпадают и все хорошо, но когда резали кривую точка входа по X например 854.5, а точка выхода 853... Рез выходит не соединен, изделие испорчено. В чем беда, почему CAM Encodecut выдает заведомо ошибочные координаты прохождения не понимаю. Прилагаю коды старые, которые резались нормально под SofPLC, и измененные мною, под Mach3.
(рис. объяснения прилагаю, нарисовано чуть ли не от руки) Вот пример кода который выдает это чудо на порезку колена под SoftPLC:
@START
F10000
M139 314
M140
G00X885.6Y0
M146
G01X885.6Y314.2
M147
G00Y314
G71Y
G00X774.9Y0
M146
G01X775.9Y2.4
G01X776.9Y4.9
G01X778Y7.4
G01X779Y9.8
G01X779.9Y12.3
G01X780.9Y14.7
G01X781.9Y17.2
G01X782.8Y19.6
G01X783.8Y22.1
/---Все что было по средине удалил для экономии места. ---/
G01X763.4Y284.7
G01X764.3Y287.2
G01X765.2Y289.6
G01X766.1Y292.1
G01X767Y294.5
G01X767.9Y297
G01X768.9Y299.4
G01X769.9Y301.9
G01X770.9Y304.3
G01X771.9Y306.8
G01X772.9Y309.2
G01X773.9Y311.7
G01X774.9Y314.2
M147
G00Y314
G71Y
G00X664.2Y0
M146
G01X664.2Y314.2
M147
G00Y314
G71Y
G00X553.5Y0
M146
G01X554.5Y2.4
G01X555.5Y4.9
G01X556.6Y7.4
G01X557.6Y9.8
G01X558.5Y12.3
G01X559.5Y14.7
G01X560.5Y17.2
G01X561.4Y19.6
G01X562.4Y22.1
G01X563.3Y24.5
/---Все что было по средине удалил для экономии места. ---/
G01X542.9Y287.2
G01X543.8Y289.6
G01X544.7Y292.1
G01X545.6Y294.5
G01X546.5Y297
G01X547.5Y299.4
G01X548.5Y301.9
G01X549.5Y304.3
G01X550.5Y306.8
G01X551.5Y309.2
G01X552.5Y311.7
G01X553.5Y314.2
M147
G00Y314
G71Y
G00X442.8Y0
M146
G01X442.8Y314.2
M147
Я заменил M146 на M3, M147 на M5, @START на G21, M140 убрал, так как не понял зачем он, а M139 314 понимаю зачем, но не знаю чем заменить под Mach3(314 это развертка по Y данной заготовки - труба 100 диаметра) и тоже убрал. Так же не понятно зачем перед резом ставится вот такой код - G71Y.
Изменить в ручную точки входа не вариант, поменять софт CAM тоже как бы не вариант, если нет чего то, настолько же удобного. Прошу помочь с данной проблемой.
Создайте систему, которой сможет пользоваться дурак, и только дурак захочет ею пользоваться.
Машина должна работать, человек - думать. Принцип IBM.
Машина должна работать, человек - думать. Принцип IBM.
- FLUKE
- Мастер
- Сообщения: 843
- Зарегистрирован: 11 мар 2013, 21:18
- Репутация: 187
- Настоящее имя: Сергей
- Откуда: Смоленск
- Контактная информация:
Re: G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Si
Приветствую. Прочитал проблему два раза, но не понял.
G00X553.5Y0 - приехали
M146 - дали дугу
G01X554.5Y2.4 - поехали с дугой к этой точке
...
G01X553.5Y314.2 - приехали с дугой к этой точке
M147 - гасим дугу
Начали с X553.5, закончили X553.5
----------------------
Пробовали в оригинальной проге рисовать? Там должен быть итальянский и английский языки.
----------------------
У меня в недрах где то была версия 10_12_11_03
G00X553.5Y0 - приехали
M146 - дали дугу
G01X554.5Y2.4 - поехали с дугой к этой точке
...
G01X553.5Y314.2 - приехали с дугой к этой точке
M147 - гасим дугу
Начали с X553.5, закончили X553.5
----------------------
Пробовали в оригинальной проге рисовать? Там должен быть итальянский и английский языки.
----------------------
У меня в недрах где то была версия 10_12_11_03
Фото бы глянуть.ressurect_83 писал(а):Рез выходит не соединен, изделие испорчено.
- ressurect_83
- Кандидат
- Сообщения: 61
- Зарегистрирован: 13 июл 2013, 15:40
- Репутация: 2
- Откуда: Украина, Киев
- Контактная информация:
Re: G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Si
Проблема решена методом тыка подбирая переменную Steps per unit по оси Y. Точки входа и выхода совпали. Не сразу правда. Feedrate оптимальный оказался 10к. В общем переделка станка 3D Plasma Rotoplasma 50.10.1 под обычный LPT контроллер и Mach3 успешна. Если вдруг кого заинтересует, пишите. Появился новый вопрос. В Encodecut есть файл настроек, encodecut.ini. Там все эти переменные G-кодов есть, но малейшее изменение файла тут же укладывает запуск проги. Она ругается на некоректный файл настроек. Есть ли возможность изменить настройки в этом файле так, что бы она не ругалась на изменения. Там в конце переменная есть - checksum = 27740. Подозреваю затык в этом.
Вот настройки из файла.
[CONFIGURAIONE COMANDI]
intestazione1:@START
nomefile:
intestazione2:F10000
cdiametro:M139 diametro
intestazione3:M140
testa giu:M146
testa su:M147
azzeraY:G71Y
fine file:M142;M143;G99
checksum=27740
Если есть идеи, может кто подскажет что.
Вот настройки из файла.
[CONFIGURAIONE COMANDI]
intestazione1:@START
nomefile:
intestazione2:F10000
cdiametro:M139 diametro
intestazione3:M140
testa giu:M146
testa su:M147
azzeraY:G71Y
fine file:M142;M143;G99
checksum=27740
Если есть идеи, может кто подскажет что.
Создайте систему, которой сможет пользоваться дурак, и только дурак захочет ею пользоваться.
Машина должна работать, человек - думать. Принцип IBM.
Машина должна работать, человек - думать. Принцип IBM.
- Predator
- Мастер
- Сообщения: 9583
- Зарегистрирован: 18 июл 2013, 18:26
- Репутация: 2531
- Контактная информация:
Re: G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Si
А зачем методом тыка? Вот Расчёт значения Steps per для Mach3 #1.ressurect_83 писал(а):Проблема решена методом тыка подбирая переменную Steps per
- ressurect_83
- Кандидат
- Сообщения: 61
- Зарегистрирован: 13 июл 2013, 15:40
- Репутация: 2
- Откуда: Украина, Киев
- Контактная информация:
Re: G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Si
Использовался встроенный в Мач авто настройка... Она вот нас и подвела под монастырь.
Создайте систему, которой сможет пользоваться дурак, и только дурак захочет ею пользоваться.
Машина должна работать, человек - думать. Принцип IBM.
Машина должна работать, человек - думать. Принцип IBM.
- ressurect_83
- Кандидат
- Сообщения: 61
- Зарегистрирован: 13 июл 2013, 15:40
- Репутация: 2
- Откуда: Украина, Киев
- Контактная информация:
Re: G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Si
А еще есть такая проблема, что мы не можем вскрыть и посчитать зубья или вообще посмотреть как устроен привод по оси Y.
Создайте систему, которой сможет пользоваться дурак, и только дурак захочет ею пользоваться.
Машина должна работать, человек - думать. Принцип IBM.
Машина должна работать, человек - думать. Принцип IBM.
- Predator
- Мастер
- Сообщения: 9583
- Зарегистрирован: 18 июл 2013, 18:26
- Репутация: 2531
- Контактная информация:
Re: G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Si
Интересно, в чем причина?ressurect_83 писал(а):мы не можем вскрыть и посчитать зубья или вообще посмотреть как устроен привод по оси Y
- FLUKE
- Мастер
- Сообщения: 843
- Зарегистрирован: 11 мар 2013, 21:18
- Репутация: 187
- Настоящее имя: Сергей
- Откуда: Смоленск
- Контактная информация:
Re: G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Si
Тоже в своё время обратил на него внимание. При запуске Encodecut считает его чек-сумму, видимо для того, чтобы не могли использовать его на других станках, или могли, но с гемороем.ressurect_83 писал(а):Если есть идеи, может кто подскажет что.
Перерыл кучу прог для подсчёта чек-суммы, ни одна не выдала нужный результат. Пробовал с помощью ollydbg найти место где считается эта чек-сумма, но мозгов не хватило.
- ressurect_83
- Кандидат
- Сообщения: 61
- Зарегистрирован: 13 июл 2013, 15:40
- Репутация: 2
- Откуда: Украина, Киев
- Контактная информация:
Re: G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Si
Там большую часть станка надо разобрать, что бы посмотреть.Predator писал(а):Интересно, в чем причина?ressurect_83 писал(а):мы не можем вскрыть и посчитать зубья или вообще посмотреть как устроен привод по оси Y
Создайте систему, которой сможет пользоваться дурак, и только дурак захочет ею пользоваться.
Машина должна работать, человек - думать. Принцип IBM.
Машина должна работать, человек - думать. Принцип IBM.
- ressurect_83
- Кандидат
- Сообщения: 61
- Зарегистрирован: 13 июл 2013, 15:40
- Репутация: 2
- Откуда: Украина, Киев
- Контактная информация:
Re: G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Si
Я тоже пытался, но никакого результата по чек сумме не получилось. SofIce еще вроде есть. Надо попробовать поймать этот момент. Авось выйдет. Я правда пошел другим путем. Все файлы что падают как результат работы переганяю через find and replace прогой под мои реалии. А результат складывается на флешку. А уже с флешкой они идут к станку и работают.FLUKE писал(а):Тоже в своё время обратил на него внимание. При запуске Encodecut считает его чек-сумму, видимо для того, чтобы не могли использовать его на других станках, или могли, но с гемороем.ressurect_83 писал(а):Если есть идеи, может кто подскажет что.
Перерыл кучу прог для подсчёта чек-суммы, ни одна не выдала нужный результат. Пробовал с помощью ollydbg найти место где считается эта чек-сумма, но мозгов не хватило.
Создайте систему, которой сможет пользоваться дурак, и только дурак захочет ею пользоваться.
Машина должна работать, человек - думать. Принцип IBM.
Машина должна работать, человек - думать. Принцип IBM.
- ressurect_83
- Кандидат
- Сообщения: 61
- Зарегистрирован: 13 июл 2013, 15:40
- Репутация: 2
- Откуда: Украина, Киев
- Контактная информация:
Re: G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Si
Так. Проблема вернулась... Как только поменяли диаметр, настройки по Y шагов за мм были выставлены на 180 диаметр, а когда поставили 130, оказалось что теперь шаговику для прохождения развертки нужно шагать меньше и он начал зарезать, ставишь больше диаметр чем 180, идет нехватка шагов, он не дошагивает. Переставлять под каждый диаметр переменную Steps per unit не вариант. Есть ли возможность вводить G кодом переменную развертки и автоматом выставлять Steps per unit в зависимости от развертки по X?
Создайте систему, которой сможет пользоваться дурак, и только дурак захочет ею пользоваться.
Машина должна работать, человек - думать. Принцип IBM.
Машина должна работать, человек - думать. Принцип IBM.
- ressurect_83
- Кандидат
- Сообщения: 61
- Зарегистрирован: 13 июл 2013, 15:40
- Репутация: 2
- Откуда: Украина, Киев
- Контактная информация:
Re: G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Si
Вот исходный код, который выдавал Encodecut.
@START - начало программы
F10000 - Фидрейт
M139 314 - и вот ввод переменной развертки трубы.
M140 - не известно что это...
G00X885.6Y0 - выход на точку начала
M146 - поджиг горелки
G01X885.6Y314.2 - проход
M147 - выключение горелки
G00Y314 - выход на точку
G71Y - не знаю что это значит.
G00X774.9Y0 - выход на точку начала
M146 - поджиг горелки.
Из этого можно сделать вывод, что с помощью М139 314 вводится перемення для расчета Step per unit под этот конкретный диаметр - 100-ая труба. Может кто то что то знает, как это реализовать под Mach3?
@START - начало программы
F10000 - Фидрейт
M139 314 - и вот ввод переменной развертки трубы.
M140 - не известно что это...
G00X885.6Y0 - выход на точку начала
M146 - поджиг горелки
G01X885.6Y314.2 - проход
M147 - выключение горелки
G00Y314 - выход на точку
G71Y - не знаю что это значит.
G00X774.9Y0 - выход на точку начала
M146 - поджиг горелки.
Из этого можно сделать вывод, что с помощью М139 314 вводится перемення для расчета Step per unit под этот конкретный диаметр - 100-ая труба. Может кто то что то знает, как это реализовать под Mach3?
Создайте систему, которой сможет пользоваться дурак, и только дурак захочет ею пользоваться.
Машина должна работать, человек - думать. Принцип IBM.
Машина должна работать, человек - думать. Принцип IBM.
- FLUKE
- Мастер
- Сообщения: 843
- Зарегистрирован: 11 мар 2013, 21:18
- Репутация: 187
- Настоящее имя: Сергей
- Откуда: Смоленск
- Контактная информация:
Re: G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Si
Не знаток Mach3.
http://www.machsupport.com/Mach3Wiki/in ... e=OEM_DROs
Вот, вроде, все окна над которыми можно издеваться. Там не нашёл Steps per unit X.
Думаю, правильнее было бы использовать ось как ось вращения и задавать координаты в градусах. Но, вы привязаны к КАМ и не можете даже постпроцессор у неё подредактировать.
Скорее всего, самый простой способ, в вашем случае, это ручками вбивать под каждый диаметр свои значения Steps per unit. Это не долго, перезапускать мач не нужно. Поставил трубу, вбил Steps per unit, загрузил g-code.
Оптимизируйте рез, сначала все резы на одном диаметре, потом на другом.
Может знатоки mach3 что предложат. Может это на линуксснс это возможно.
http://www.machsupport.com/Mach3Wiki/in ... e=OEM_DROs
Вот, вроде, все окна над которыми можно издеваться. Там не нашёл Steps per unit X.
Думаю, правильнее было бы использовать ось как ось вращения и задавать координаты в градусах. Но, вы привязаны к КАМ и не можете даже постпроцессор у неё подредактировать.
Скорее всего, самый простой способ, в вашем случае, это ручками вбивать под каждый диаметр свои значения Steps per unit. Это не долго, перезапускать мач не нужно. Поставил трубу, вбил Steps per unit, загрузил g-code.
Оптимизируйте рез, сначала все резы на одном диаметре, потом на другом.
Может знатоки mach3 что предложат. Может это на линуксснс это возможно.
- ressurect_83
- Кандидат
- Сообщения: 61
- Зарегистрирован: 13 июл 2013, 15:40
- Репутация: 2
- Откуда: Украина, Киев
- Контактная информация:
Re: G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Si
В общем все получилось. Был написан макрос, всунут в M139. Он берет переменную, например 150 труба, умножает на число Пи получив таким образом развертку, а потом 72000 (за столько шагов делает полный оборот вал) делим на развертку и получаем нужное нам Step by unit, макрос присваивает это значение в Маче.
Создайте систему, которой сможет пользоваться дурак, и только дурак захочет ею пользоваться.
Машина должна работать, человек - думать. Принцип IBM.
Машина должна работать, человек - думать. Принцип IBM.
- FLUKE
- Мастер
- Сообщения: 843
- Зарегистрирован: 11 мар 2013, 21:18
- Репутация: 187
- Настоящее имя: Сергей
- Откуда: Смоленск
- Контактная информация:
Re: G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Si
А какая функция присваевает Step by unit?
- ressurect_83
- Кандидат
- Сообщения: 61
- Зарегистрирован: 13 июл 2013, 15:40
- Репутация: 2
- Откуда: Украина, Киев
- Контактная информация:
Re: G-codes из Encodecut под 3D Plasma Rotoplasma 50.10.1 Si
Diameter = Param1() * 3.14159265358 'расчет развертки данной заготовки
StepsbyAxisYTurn = 72000 ' сколько шагов за оборот вала по Y делает шаговик
NewStepby = StepsbyAxisYTurn / Diameter ' расчет нового значения для присваивания.
Call SetParam("StepsPerAxisY", NewStepby) ' присваиваем значение.
Это все в кратце. Работает оно у нас через запрос перед каждым порезом, что за диаметр сейчас стоит в зажимах.
StepsbyAxisYTurn = 72000 ' сколько шагов за оборот вала по Y делает шаговик
NewStepby = StepsbyAxisYTurn / Diameter ' расчет нового значения для присваивания.
Call SetParam("StepsPerAxisY", NewStepby) ' присваиваем значение.
Это все в кратце. Работает оно у нас через запрос перед каждым порезом, что за диаметр сейчас стоит в зажимах.
Создайте систему, которой сможет пользоваться дурак, и только дурак захочет ею пользоваться.
Машина должна работать, человек - думать. Принцип IBM.
Машина должна работать, человек - думать. Принцип IBM.