Перейти к публикации

Программирование с переменными


Рекомендованные сообщения

Всем доброго времени суток!

Вот программа:

%
O0001
G17 G21 G40
G80 G90 G94
G54
T1 M6
G0 X0 Y0
G43 Z100 H1
M3 S2500
M8


G0X-55.5 Y40

 

#4=0(Z START)
#8=-0.643 (Z FINISH)
#5=0.16 (Z SHAG)

 

WHILE [#4GT#8] DO1


#3=1.59(X SHAG)
#1=-55.5(X START)
#2=55.5(X FINISH)


WHILE [#1LT#2] DO2
X#1 Y30.5
G1Z#4
Y-30.5
G0Z2
Y30.5
#1=#1+#3
END2
#4=#4-#5
END1


M09
M05
Z100
X0Y0
M30
%

 

В данном виде программа работает, но если перенести переменные, указанные после DO1, к остальным переменным в начало, то программа не выполняется. По Z делает только один проход не доходя до финиша. Вопрос, почему?

Ссылка на сообщение
Поделиться на других сайтах


7 часов назад, 1123sss сказал:

В данном виде программа работает, но если перенести переменные, указанные после DO1, к остальным переменным в начало, то программа не выполняется. По Z делает только один проход не доходя до финиша. Вопрос, почему?

Потому что в цикле DO2 переменная #1 изменяется (#1=#1+#3), а в начале цикла DO1 ей должно присваиваться начальное значение (X START).

Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, Александр1979 сказал:

Потому что в цикле DO2 переменная #1 изменяется (#1=#1+#3), а в начале цикла DO1 ей должно присваиваться начальное значение (X START).

Благодарю за ответ! А есть вариант как-то заморочиться и убрать все переменные наверх и чтобы программа работала?

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, 1123sss сказал:

Благодарю за ответ! А есть вариант как-то заморочиться и убрать все переменные наверх и чтобы программа работала?

Получилось самому допереть. В таком виде работает:

#4=0(Z START)
#8=-0.643 (Z FINISH)
#5=0.16 (Z SHAG)

#2=55.5(X FINISH)
#3=1.59(X SHAG)
#1=-55.5(X START)

#7=#1+#7

WHILE [#4GT#8] DO1

WHILE [#1LT#2] DO2
X#1 Y30.5
G1Z#4
Y-30.5
G0Z2
Y30.5
#1=#1+#3
END2
#1=#7
#4=#4-#5
END1

Ссылка на сообщение
Поделиться на других сайтах

Добрый день. Прошу помощи... Станок на первом входе в коррекцию (пометил красным) выдаёт ошибку 119 Illegal argument. Фанук фрезер. Начинает идти по Y и затыкается с ошибкой.

Цитата

%
O0000

T28M06(FREZA DISK.D80H8)
#100=0 (X ZAHOD)
#101=0 (Y ZAHOD)
G00G90G54X[0+[#100]]Y[0+[#101]]B0W0
G43H28Z20M08
S320M03 
#102=-142.7 (KOORDINATA Z NACHALA SKRUGLENIYA)
#103=9.5 (RADIUS)
#104=5 (SHAG PO Z NE TROGAT' BEZ PROVERKI)
#105=140 (D NACHALA SKRUGLENIYA)
#106=0 (NACHAL'NII UGOL FREZEROVKI)
#107=90 (NACHAL'NII UGOL SFERI)
#108=2 (SHAG UGLA)
G01Z[#102]F1000.
#109=#105/2 (R NACHALA SKRUGLENIYA)
G1G41Y[#109+#101]D28F100 (RABOCHAYA PODACHA)
G3 J-[#109]
WHILE [#110 GE 0] DO1
#110=SIN[#107]*[#103] (VICHISLENIE Z)
#111=[#109]+SQRT[[#103]*[#103]-[#110]*[#110]] (VICHISLENIE SFERI)
G1G41X[-SIN[#106]*[#111]+[#100]] Y[COS[#106]*[#111]+[#101]] Z[[#110]+[#102]-[#103]] D28 (KORREKTOR)
#106=[#106]+[#108]
#107=90-[#106]*[#104/360]
END1
G1G41Y[#111+#101]D28
G3 X[-#111+#100] Y[0+#101] R[#111]
G3 X[0+#100] Y[-#111+#101] R[#111]
G3 X[#111+#100] Y[0+#101] R[#111]
G3 X[0+#100] Y[#111+#101] R[#111]
G90G00G40X[0+#100]Y[0+#101]

#102=-193.7 (KOORDINATA Z NACHALA SKRUGLENIYA)
#103=9.5 (RADIUS)
#104=5 (SHAG PO Z NE TROGAT' BEZ PROVERKI)
#105=140 (D NACHALA SKRUGLENIYA)
#106=0 (NACHAL'NII UGOL FREZEROVKI)
#107=90 (NACHAL'NII UGOL SFERI)
#108=2 (SHAG UGLA)
#110=SIN[#107]*[#103] (VICHISLENIE Z)
G01Z[-[#110]+[#102]-[#103]]F1000.
#109=#105/2 (R NACHALA SKRUGLENIYA)
G1G41Y[#109+#101]D28F100 (RABOCHAYA PODACHA)
G3 J-[#109]
WHILE [#110 GE 0] DO1
#110=SIN[#107]*[#103] (VICHISLENIE Z)
#111=[#109]+SQRT[[#103]*[#103]-[#110]*[#110]] (VICHISLENIE SFERI)
G1G41X[-SIN[#106]*[#111]+[#100]] Y[COS[#106]*[#111]+[#101]] Z[-[#110]+[#102]-[#103]] D28 (KORREKTOR)
#106=[#106]+[#108]
#107=90-[#106]*[#104/360]
END1
G1G41Y[#111+#101]D28
G3 X[-#111+#100] Y[0+#101] R[#111]
G3 X[0+#100] Y[-#111+#101] R[#111]
G3 X[#111+#100] Y[0+#101] R[#111]
G3 X[0+#100] Y[#111+#101] R[#111]
G0G40X[0+#100]Y[0+#101]
M05
G28G91Z0 
M00
M30
%
 

 

Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, valentinych75 сказал:

END1
G0G40X[0+#100]Y[0+#101]
G1G41Y[#111+#101]

 

попробуйте добавить строку отхода

G41 же модальный лучше больше чем меньше.:biggrin:

Теперь уже в понедельник попробуем.

Думаю если была бы проблема в G40. Он и ошибку выдал бы в строчке с G40.

И ошибка была бы про недостаточную компенсацию инструмента.

В том и прикол что писал для непрерывной спирали и подбора торцев, не возвращаясь в центр отверстия.

Пробовал переприсваивать значения аргументов с #20-#33, с #1 Ну и сейчас с #100. Ничего не дало.

Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, autodrey сказал:

для непрерывной спирали

тогда кадр с G1 попробуйте убрать

 

#107=90-[#106]*[#104/360]
END1

G3 X[-#111+#100] Y[0+#101] R[#111]
G3 X[0+#100] Y[-#111+#101] R[#111]

Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, valentinych75 сказал:

тогда кадр с G1 попробуйте убрать

Вы мне предлагаете редактировать код после выполнения цикла.

А он у меня не может отработать строчку ещё до входа в цикл.

G1G41Y[#109+#101]D28F100 (RABOCHAYA PODACHA)

Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, autodrey сказал:

А он у меня не может отработать строчку ещё до входа в цикл.

бывает такое

2 часа назад, autodrey сказал:

119 Illegal argument

по этому я и написал 

 

1 час назад, valentinych75 сказал:

G41 не лишку в программе ?

 

8 минут назад, autodrey сказал:

Вы мне предлагаете редактировать код после выполнения цикла.

там тоже ошибка будет

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, valentinych75 сказал:

бывает такое

Не разу не сталкивался. На сколько я знаю станок код построчно считывает и он в строчке с G41 не в курсе через сколько кадров ему подкинут G40.

 

2 часа назад, valentinych75 сказал:

там тоже ошибка будет

Что бы увидеть надо победить сначала вход в первую коррекцию к Y70.

 

2 часа назад, valentinych75 сказал:

ещё #110 перед WHILE обозначить нужно.

Согласен, но при переносе его перед WHILE, CIMCO перестает отрисовывать УП. На всякий случай можно продублировать, отрисовка не меняется.

 

12 минут назад, Ander сказал:

Вы 2 раза подходите к одной и той же точке по G41. Сделайте #106 > 0

Убрал все лишние G41, симуляция не поменялась. #106 не вижу проблемы...

Хотя был случай что фреза не могла как бы "подойти" к короткому отрезку, и станок выдавал ошибку толи 029 толи 033.

 

Вообщем вот что получилось. Спасибо за советы. В ПН буду пробовать запускать.

Скрытый текст

T28M06(FREZA DISK.D80H8)
#100=0 (X ZAHOD)
#101=0 (Y ZAHOD)
G00G90G54X[0+[#100]]Y[0+[#101]]B0W0
G43H28Z20M08
S320M03 
#102=-142.7 (KOORDINATA Z NACHALA SKRUGLENIYA)
#103=9.5 (RADIUS)
#104=5 (SHAG PO Z NE TROGAT' BEZ PROVERKI)
#105=140 (D NACHALA SKRUGLENIYA)
#106=0.5 (NACHAL'NII UGOL FREZEROVKI)
#107=90 (NACHAL'NII UGOL SFERI)
#108=2 (SHAG UGLA)
#109=#105/2 (R NACHALA SKRUGLENIYA)
#110=SIN[#107]*[#103] (VICHISLENIE Z)
G01Z[#102]F1000.
G1G41Y[#109+#101]D28F100 (KORRECTOR-PODACHA)
G3 J-[#109]
WHILE [#110 GE 0] DO1
#110=SIN[#107]*[#103]
#111=[#109]+SQRT[[#103]*[#103]-[#110]*[#110]] (VICHISLENIE SFERI)
G1X[-SIN[#106]*[#111]+[#100]] Y[COS[#106]*[#111]+[#101]] Z[[#110]+[#102]-[#103]]
#106=[#106]+[#108]
#107=90-[#106]*[#104/360]
END1
G3 X[-#111+#100] Y[0+#101] R[#111]
G3 X[0+#100] Y[-#111+#101] R[#111]
G3 X[#111+#100] Y[0+#101] R[#111]
G3 X[0+#100] Y[#111+#101] R[#111]
G00G40X[0+#100]Y[0+#101]

#102=-193.7 (KOORDINATA Z NACHALA SKRUGLENIYA)
#103=9.5 (RADIUS)
#104=5 (SHAG PO Z NE TROGAT' BEZ PROVERKI)
#105=140 (D NACHALA SKRUGLENIYA)
#106=0.5 (NACHAL'NII UGOL FREZEROVKI)
#107=90 (NACHAL'NII UGOL SFERI)
#108=2 (SHAG UGLA)
#109=#105/2 (R NACHALA SKRUGLENIYA)
#110=SIN[#107]*[#103] (VICHISLENIE Z)
G01Z[-[#110]+[#102]-[#103]]F1000.
G1G41Y[#109+#101]D28F100 (KORRECTOR-PODACHA)
G3 J-[#109]
WHILE [#110 GE 0] DO1
#110=SIN[#107]*[#103]
#111=[#109]+SQRT[[#103]*[#103]-[#110]*[#110]] (VICHISLENIE SFERI)
G1X[-SIN[#106]*[#111]+[#100]] Y[COS[#106]*[#111]+[#101]] Z[-[#110]+[#102]-[#103]]
#106=[#106]+[#108]
#107=90-[#106]*[#104/360]
END1
G3 X[-#111+#100] Y[0+#101] R[#111]
G3 X[0+#100] Y[-#111+#101] R[#111]
G3 X[#111+#100] Y[0+#101] R[#111]
G3 X[0+#100] Y[#111+#101] R[#111]
G0G40X[0+#100]Y[0+#101]
M05
G28G91Z0 
M00

 

Ссылка на сообщение
Поделиться на других сайтах

Подскажите пожалуйста , переменная start -chip (кнопки старта программы) .Суть в том что к станку подключили робота а он может передавать на стойку только Переменые к примеру #3901 . А нужно чтоб он запускал выполнение программы.

Ссылка на сообщение
Поделиться на других сайтах
41 минуту назад, Hиkolaй сказал:

переменная start -chip (кнопки старта программы)

Если такая переменная нужна, ее надо предварительно создать на станке.

Например #1100 а в ладдере прописать что бы сигнал F54.0 включал кнопку START

Ссылка на сообщение
Поделиться на других сайтах
11.08.2023 в 20:39, autodrey сказал:

Вообщем вот что получилось. Спасибо за советы. В ПН буду пробовать запускать.

Доброго времени суток.

Вообщем запустил программу без макроса, таким видом:

Скрытый текст

T28M06(FREZA DISK.D80H8)
#100=0 (X ZAHOD)
#101=0 (Y ZAHOD)
G00G90G55X[0+[#100]]Y[0+[#101]]B0W0
G43H28Z20M08
S320M03 
#102=-142.7 (KOORDINATA Z NACHALA SKRUGLENIYA)
#105=140 (D NACHALA SKRUGLENIYA)
#109=#105/2 (R NACHALA SKRUGLENIYA)
G01Z[#102]F1000.
G1G41Y[#109+#101]D28F100 (KORRECTOR-PODACHA)
G3 J-[#109]
G0G40X[0+#100]Y[0+#101]
M05
G28G91Z0 
M00

Злополучную строчку с входом в корректор прошел без проблем, отработал программу и был таков.

А при запуске всего макроса опять выдал ошибку на первом входе в корректор... Люди добрые!!! Что делать?

Скрытый текст

T28M06(FREZA DISK.D80H8)
#100=0 (X ZAHOD)
#101=0 (Y ZAHOD)
G00G90G55X[0+[#100]]Y[0+[#101]]B0W0
G43H28Z20M08
S320M03 
#102=-142.7 (KOORDINATA Z NACHALA SKRUGLENIYA)
#103=9.5 (RADIUS)
#104=5 (SHAG PO Z NE TROGAT' BEZ PROVERKI)
#105=140 (D NACHALA SKRUGLENIYA)
#106=0.5 (NACHAL'NII UGOL FREZEROVKI)
#107=90 (NACHAL'NII UGOL SFERI)
#108=2 (SHAG UGLA)
#109=#105/2 (R NACHALA SKRUGLENIYA)
#110=SIN[#107]*[#103] (VICHISLENIE Z)
G01Z[#102]F1000.
G1G41Y[#109+#101]D28F100 (KORRECTOR-PODACHA)
G3 J-[#109]
WHILE [#110 GE 0] DO1
#110=SIN[#107]*[#103]
#111=[#109]+SQRT[[#103]*[#103]-[#110]*[#110]] (VICHISLENIE SFERI)
G1X[-SIN[#106]*[#111]+[#100]] Y[COS[#106]*[#111]+[#101]] Z[[#110]+[#102]-[#103]]
#106=[#106]+[#108]
#107=90-[#106]*[#104/360]
END1
G3 X[-#111+#100] Y[0+#101] R[#111]
G3 X[0+#100] Y[-#111+#101] R[#111]
G3 X[#111+#100] Y[0+#101] R[#111]
G3 X[0+#100] Y[#111+#101] R[#111]
G00G40X[0+#100]Y[0+#101]

#102=-193.7 (KOORDINATA Z NACHALA SKRUGLENIYA)
#103=9.5 (RADIUS)
#104=5 (SHAG PO Z NE TROGAT' BEZ PROVERKI)
#105=140 (D NACHALA SKRUGLENIYA)
#106=0.5 (NACHAL'NII UGOL FREZEROVKI)
#107=90 (NACHAL'NII UGOL SFERI)
#108=2 (SHAG UGLA)
#109=#105/2 (R NACHALA SKRUGLENIYA)
#110=SIN[#107]*[#103] (VICHISLENIE Z)
G01Z[-[#110]+[#102]-[#103]]F1000.
G1G41Y[#109+#101]D28F100 (KORRECTOR-PODACHA)
G3 J-[#109]
WHILE [#110 GE 0] DO1
#110=SIN[#107]*[#103]
#111=[#109]+SQRT[[#103]*[#103]-[#110]*[#110]] (VICHISLENIE SFERI)
G1X[-SIN[#106]*[#111]+[#100]] Y[COS[#106]*[#111]+[#101]] Z[-[#110]+[#102]-[#103]]
#106=[#106]+[#108]
#107=90-[#106]*[#104/360]
END1
G3 X[-#111+#100] Y[0+#101] R[#111]
G3 X[0+#100] Y[-#111+#101] R[#111]
G3 X[#111+#100] Y[0+#101] R[#111]
G3 X[0+#100] Y[#111+#101] R[#111]
G0G40X[0+#100]Y[0+#101]
M05
G28G91Z0 
M00

 

Ссылка на сообщение
Поделиться на других сайтах

#108 менял на 10, далее окружности получится слишком угловатыми.

#106 это просто заход в нужную четверть окружности.

Попробовал убрать все коррекции на инструмент, сделал без коррекций с выходом в 0 между заверками и циклами.

Доходит до while и затыкается с ошибкой 119

Так же убрал все приращения по X и Y

Скрытый текст

T28M06(FREZA DISK.D80H8)
#105=50 (R FREZI)
G00G90G55X0Y0B0W0
G43H28Z20M08
S320M03 
#102=-142.7 (KOORDINATA Z NACHALA SKRUGLENIYA)
#103=9.5 (RADIUS)
#104=5 (SHAG PO Z NE TROGAT' BEZ PROVERKI)
#106=0 (NACHAL'NII UGOL FREZEROVKI)
#107=90 (NACHAL'NII UGOL SFERI)
#108=10 (SHAG UGLA)
#109=70 (R NACHALA SKRUGLENIYA)
#110=SIN[#107]*[#103] (VICHISLENIE Z)
#112=[#109-#105] (KOORDINATA)
G01Z[#102]F1000.
G1Y[#112]F100 (KORRECTOR-PODACHA)
G3 J-[#112]
G0X0Y0
WHILE [#110 GE 0] DO1
#110=SIN[#107]*[#103]
#111=[#112]+SQRT[[#103]*[#103]-[#110]*[#110]] (VICHISLENIE SFERI)
G1X[-SIN[#106]*[#111]] Y[COS[#106]*[#111]] Z[[#110]+[#102]-[#103]]
#106=[#106]+[#108]
#107=90-[#106]*[#104/360]
END1
G3 X[-#111] Y0 R[#111]
G3 X0 Y[-#111] R[#111]
G3 X[#111] Y0 R[#111]
G3 X0 Y[#111] R[#111]
G0X0Y0

#102=-193.7 (KOORDINATA Z NACHALA SKRUGLENIYA)
#103=9.5 (RADIUS)
#104=5 (SHAG PO Z NE TROGAT' BEZ PROVERKI)
#106=0 (NACHAL'NII UGOL FREZEROVKI)
#107=90 (NACHAL'NII UGOL SFERI)
#108=10 (SHAG UGLA)
#109=70 (R NACHALA SKRUGLENIYA)
#110=SIN[#107]*[#103] (VICHISLENIE Z)
G01Z[-[#110]+[#102]-[#103]]F1000.
G1Y[#112]F100 (KORRECTOR-PODACHA)
G3 J-[#112]
G0X0Y0
WHILE [#110 GE 0] DO1
#110=SIN[#107]*[#103]
#111=[#112]+SQRT[[#103]*[#103]-[#110]*[#110]] (VICHISLENIE SFERI)
G1X[-SIN[#106]*[#111]] Y[COS[#106]*[#111]] Z[-[#110]+[#102]-[#103]]
#106=[#106]+[#108]
#107=90-[#106]*[#104/360]
END1
G3 X[-#111] Y0 R[#111]
G3 X0 Y[-#111] R[#111]
G3 X[#111] Y0 R[#111]
G3 X0 Y[#111] R[#111]
G0X0Y0
M05
G28G91Z0 
M00

 

Ссылка на сообщение
Поделиться на других сайтах
8 минут назад, autodrey сказал:

Доходит до while и затыкается с ошибкой 119

0119

ЗНАЧЕНИЕ АРГУМЕНТА ВНЕ ДИАПАЗОНА

Значение аргумента функции пользовательской макрокоманды находится вне диапазона.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...