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

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


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

Доброго времени суток! FANUC 18i

Ситуация такова:

Вот пример программы 

#1=0

#2=1

#3=0.1

WHILE[#2NE10] DO1

#2=#2+#3

END1 

M30

В этом случае программа работает до бесконечности.

А если в #3=0.5 то в программе выполняется условие.

так вот,в чем прикол?

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


Доброго времени суток! FANUC 18i

Ситуация такова:

Вот пример программы 

#1=0

#2=1

#3=0.1

WHILE[#2NE10] DO1

#2=#2+#3

END1 

M30

В этом случае программа работает до бесконечности.

А если в #3=0.5 то в программе выполняется условие.

так вот,в чем прикол?

При прибавлении накапливается небольшая погрешность, и результат в #2 не равен ровно 10, программа проскакивает это значение и работает бесконечно. Рекомендуется заменить "NE" на "LE".

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

Здравствуйте коллеги. Прошу помощи. Хочу сделать программу в которой бы использовался цикл сверления со стружкодроблением, и доходя до 1/3 глубины сверло выходило бы из отверстия. Вот текст того что я сделал:

N1 G28 U0
N1 T202 
N2 #600=59.5/3 (glubina otverstiya/3)
N3 G50 S2000 
N4 G67 S1800 M3 
N5 G0 Z3.
N6 X-0.5 M8
N7 WHILE [#600LT60 ]DO1 
N8 G74 R1. 
N9 G74 Z- [#600]Q7000 F.04 
IF [#600GT55 ]GOTO200
N11 G1 Z1. F1.(vikhod is otverstiya)
N12 G4 X2. 
N13 G1 Z- [#600+1.5]F1. (podhod k novoy glubine)
N14 #600=#600+19.883 (19.883 = 1/3 glubiny otverstiya)
N15 END1
N200 G0 Z100 
G28 U0

M01 

 

Писал прямо на стойке (fanuc 0i-tc) при отработке возникает ошибка "122 четырехкратный модальный вызов макроса" Подскажите что не так? 

Что странно, делал подобное но только не со сверлением а с отрезкой с фасками с обеих сторон так всё работало. Три колечка отрезались и никаких проблем.

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

Здравствуйте коллеги. Прошу помощи. Хочу сделать программу в которой бы использовался цикл сверления со стружкодроблением, и доходя до 1/3 глубины сверло выходило бы из отверстия. Вот текст того что я сделал:

N1 G28 U0......

Здравствуйте!

Непонятна строка -

 

...N4 G67 S1800 M3....

может надо - ....N4 G97 S1800 M3....?

 

далее в строке -

 

....N13 G1 Z- [#600+1.5]F1. (podhod k novoy glubine)

произойдет врезание на глубину 1,5 на достаточно большой подаче (F1.0)

что может привести к поломке инструмента.

Возможно нужно так:

....N13 G1 Z[- #600+1.5]F1. (podhod k novoy glubine)?

 

Лучше будет вам в режиме покадровой обработки выполнить прогу и указать конкретно при выполнении какой строки возникает ошибка.

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

Благодарю за подсказку. G97 это конечно серьезная опечатка. Даже стыдно что не заметил сам. А по поводу строки N13 G1 Z- [#600+1.5]F1. (podhod k novoy glubine) изначально она имела вид N13 G1 Z- [#600-1.5]F1. Это я вчера изменил, когда пересматривал программу перед тем как выставить ее сюда . Даже не знаю чем руководствовался.  В общем взгляд со стороны мне здорово помог. 

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

Может кому пригодится, цикл периодического сверления с небольшим отходом до одной глубины, дальше с полным выходом.

Fanuc oi-mc

 

макропрограмма

O0900;
N1 #3=#5003;
N2 #4=#6;
N3 G99 G73 R#18 Q#17 Z#4 F#9;
N4 G80;
N5 WHILE [#4 GT #26] DO 1;
N6 G0 Z[#4+[#17*2]]
N7 #4=#4-#17
N8 IF [#4 LT #26] THEN #4=#26
N9 G1 Z#4 F#9
N10 G0 Z#18
N11 END 1
N12 G0 Z#3
M99;

 

пример

O0600(TEST);
G21;
G0 G17 G40 G49 G80 G90;
G54 G0 Y0 X0;
G0 Z50;
G66 P900 R5 Q1 K-15 Z-23 F50;
X0 Y0
Y100;
X100 Y0;
Y100;
G67;
G91 G28 Z0;
M30;
%;

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

Здравствуйте коллеги. Прошу помощи. Хочу сделать программу в которой бы использовался цикл сверления со стружкодроблением, и доходя до 1/3 глубины сверло выходило бы из отверстия. Вот текст того что я сделал:

 

Возможно я ошибаюсь, но похоже ошибка возникает при отработке строки: IF[#600GT55]GOTO200. При выполнении этого условия происходит выход из цикла WHILE и не отрабатывается команда END1 (цикл начат и не закончен).

Изменено пользователем KorD
Ссылка на сообщение
Поделиться на других сайтах

Еще одна идея: в тексте ошибки сказано - "четырехкратный модальный вызов макроса".

А команда G74 не является ли модальной, и не надо ли ее отменять так же как цикл G83 отменяется командой G80 - отмена постоянного цикла сверления?

Ссылка на сообщение
Поделиться на других сайтах
Возможно я ошибаюсь, но похоже ошибка возникает при отработке строки: IF[#600GT55]GOTO200. При выполнении этого условия происходит выход из цикла WHILE и не отрабатывается команда END1 (цикл начат и не закончен).

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

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

В общем сегодня я исправил ошибки в программе и проверил ее на станке. Ошибка о которой я писал появлялась именно в кадре где я сделал опечатку. Только исправил и всё заработало.  Отменять цикл  сверления не обязательно. И действительно можно верить документации управление может выноситься за пределы цикла. Благодарю всех за помощь и советы. Сам бы заметил еще не скоро. А так взгляд со стороны сразу всё решил.

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

Доброго дня всем, в общем имею простую обработку и простой цикл, хочу с помощью параметров облегчить себе работу

%
O0000(1)

N110 #1=240. (diam zagotovki)
N115 #2=20.   (radius skrugleniya)
N120 #3=#1+66.016
N125 #4=#1+58.945
N130 #5=#1+5.
N135 #6=#1-#2*2-6.
N140 #7=#1-#2*2
N145 #8=#2+3.
 
N150(lrough)
N155 G99 G90 G54
N160 G00 G28 U0. W0.
N165 M42
N170 T0100 M6 ( DSSNL 3232P 19 - R24 4225 )
N175 G50 S150
N180 G96 S22 M03
N185 G00 X450. Z20. T0101
N190 G00 X#3 Z4.735
N195 G42 G01 X#4 Z0. F.25 M08
N200 X-6. M48
N205 G40 X1.071 Z4.735
N210 G00 Z20.  M09
N215 M49
N220 G00 G28 U0. W0. M05
N225 G97
N230 M0
 
N235 (lcan_rough)
N240 G99 G90 G54
N245 M42
N250 T0200 M6 ( DCLNR 3232 P19 - R24 4225 )
N255 G50 S150
N260 G96 S22 M03
N265 G00 X450. Z20. T0202
N270 G00 X#5 Z2.5
N275 G71 U3.5 R.2
N280 G71 P285 Q310 U1.2 W.6 F.25
N285 G00 X#6
N290 G41 G01 Z0.
N295 X#7
N300 G03 X#1 Z[-#2] R#2
N305 G01 Z[-#8]
N310 G40 X#5
N315 G00 Z2.5
N320 G00 Z20. M09
M49
N325 G00 G28 U0. W0. M05
N330 G97
N335 M0
 
N340 (lcan_finish)
N345 G99 G90 G54
N350 M42
N355 T0200 M6 ( DCLNR 3232 P19 - R24 4225 )
N360 G50 S300
N365 G96 S24 M03
N370 G00 X450. Z20. T0202
N375 G00 X245. Z2.5
N380 G70 P285 Q310 F0.25
N385 G00 Z2.5
N390 G00 Z20. M09
N395 M49
N400 G00 G28 U0. W0. M05  
N410 G97
N620 M30
%

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


 

Здравствуйте!

Непонятна строка -

 

...N4 G67 S1800 M3....

может надо - ....N4 G97 S1800 M3....?

 

далее в строке -

 

....N13 G1 Z- [#600+1.5]F1. (podhod k novoy glubine)

произойдет врезание на глубину 1,5 на достаточно большой подаче (F1.0)

что может привести к поломке инструмента.

Возможно нужно так:

....N13 G1 Z[- #600+1.5]F1. (podhod k novoy glubine)?

 

Лучше будет вам в режиме покадровой обработки выполнить прогу и указать конкретно при выполнении какой строки возникает ошибка.

 

Я так понял что Вы не плохо разбираетесь, не могли бы подсказать решение проблемы описанной выше

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

А вы посмотрели, правильно ли посчитаны переменные #6 и #7 на станке? Если нет, то квадратных скобок можно добавить.

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

А вы посмотрели, правильно ли посчитаны переменные #6 и #7 на станке? Если нет, то квадратных скобок можно добавить.

А как можно отследить правильность подсчета ? в пошаговом режиме ?

Ссылка на сообщение
Поделиться на других сайтах
N270 G00 X#5 Z2.5

N275 G71 U3.5 R.2

N280 G71 P285 Q310 U1.2 W.6 F.25

N285 G00 X#6

N290 G41 G01 Z0.

N295 X#7

N300 G03 X#1 Z[-#2] R#2

N305 G01 Z[-#8]

N310 G40 X#5

Думаю, что ошибка возникает из-за включения  функции коррекции на радиус (Вы уверены что G41 а не G42?) внутри цикла продольной обработки G71.

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

 

N270 G00 X#5 Z2.5

N275 G71 U3.5 R.2

N280 G71 P285 Q310 U1.2 W.6 F.25

N285 G00 X#6

N290 G41 G01 Z0.

N295 X#7

N300 G03 X#1 Z[-#2] R#2

N305 G01 Z[-#8]

N310 G40 X#5

Думаю, что ошибка возникает из-за включения  функции коррекции на радиус (Вы уверены что G41 а не G42?) внутри цикла продольной обработки G71.

 

G41 точно это проверенно а относительно G65/66 не совсем понял

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

По-моему ошибка возникает из-за использования локальных переменных (номера от 1 до 33), а они могут использоваться только внутри программы (макропрограммы), и их значения не могут быть переданы в цикл обработки.

Попробуйте использовать переменные с номерами от 100 до 149 или от 500 до 531. То есть #101, #102 ... #108 или #501, #502 ... #508. Разница только в том, что значения переменных с номерами от 500 будут сохраняться и после отключения станка.

 

По поводу отслеживания расчетов. Значения переменных во время работы программы можно посмотреть в окне macro: жмем off/set два раза, жмем подъэкранную "вправо" до появления кнопки macro. В окне macro клавишами page up / down ищем свои переменные.

 

И еще, были упомянуты команды G65 и G66. Это немного из другой области. Это вызов макропрограммы (макроса) с передачей переменных. Например G65 P1000 A0. B0. X0. и т.д. То есть вызывается программа с номером 1000 и ей передаются определенные значения переменных, номера переменных соответствуют буквам. Более подробно можно посмотреть в руководстве по программированию, раздел макропрограмма пользователя.

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

Ошибка возникает из за того что я пытаюсь использовать переменную в цикле.. пришлось переделать с разбивкой на проходы, конечно программа больше, но тоже не плохо получилась

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

 

Ограничений на использование переменных в циклах нет.

Ссылка на сообщение
Поделиться на других сайтах
  • SHARit закрепил это тему

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

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

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

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

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

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

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

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

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

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



  • Сообщения

    • Snake 60
      Скорее всего исправляли в конкретной сборке, для конкретных тел. Насколько я помню, надо в самом эскизе профиля заполнить свойство Description
    • Snake 60
      Делаете дырку в свае - вставляете в нее трубу и 2 человеко-силы крутят сваю ) Дёшево и сердито и не нужен никакой планетарный редуктор ))
    • gudstartup
      вы всегда ищите свой путь или будете делать то что вам советуют? с самого начала прежде чем приступать к экспериментам вам нужно было вынуть носитель и сделать образ. diskcopy делает копию гибкого диска на другой а вам надо сделать образ жесткого диска или карты памяти. делайте как советует @Viktor2004 иначе еще чего нибудь сломаете или вам станок не нужен и вы его приобрели для экспериментов ? вот а печатной машинке из прошлого нельзя а вот на синумерике можно - удивительные вещи в настоящем происходят!! на 100 % уверен что там не модуль а либо писимиси ай либо жд @mircomax81 хотите работать в дос почитайте помощь по командам 
    • PuKoLLleT
      Доброго дня всем. Поделитесь опытом,раньше такое не доводилось делать. На торце фланца нужно сделать  восемь отверстий ф17H7 на токарно-фрезерном станке с осью Y ,имеется ManualGuide.В моем понимании нужно просверлить,а затем торцевой фрезой расточить нужный диаметр.Получится такой фокус,или надо разверткой доводить нужный размер?  Стойка Fanuc 0i-Tf.
    • Snake 60
      Всё верно, я даже русификатор делал для него (ушло на это где-то около года). Хороший софт был, я всех знакомых на него подсадил в свое время :) У меня даже где-то образ на виртуалке лежит с SW2014+MechSoft, Жаль, что автодеск его поглотил, а не DS :( А по сути вопроса, проектировал двухступенчатый планетарный редуктор в свое время. Что было нужно: Справочник по планетаркам (автора не помню, если надо поищу), из софта MathCAD + GearTeq (софтина идет вместе с GearTrax, только рассчитывает и моделирует несколько зацеплений согласно выбранной схеме, в том числе планетарки) Ой и ошибаетесь. Звездочки - не равно зубчатые колеса в планетарке) Мы намучились с малой точностью изготовления на эл.эрозии, а Вы лазером ))) Был собран опытный образец редуктора с незакаленными деталями, чисто проверить геометрию, отладить сборку. Так потом начальство этот редуктор сказало испытать в бою, как я не противился)) Помер за пару дней интенсивных нагрузок ))) Материал, термообработка и точности изготовления решают )
    • Snake 60
      @Тихоход  Ещё один вариант - изучать программирование и писать свою программу/макрос. Вот пример конфигуратора двери: https://www.youtube.com/watch?v=wv4HryWQBSk
    • mircomax81
      Посредством Diskcopy можно сделать адекватную копию на флоппи диск?
    • Andrey_kzn
      Да, ведь советовали автору вытащить жёсткий диск и сделать образ. Неужели самому не интересно, как устроен этот старый промкомпьютер? Там может стоять как жёсткий диск, так и CF-карта, или же Disc-on-chip или Disc-on-module.  Как-то очень давно, на подобном промышленном оборудовании (большая печатная машина) я не смог перенести  ПО с родной CF - карты на другую, такого же размера но другой фирмы. Была также станочная оболочка под досом.  Образ я делал Нортон гостом, развернул его на другую CF-карту без проблем. Машина загрузилась нормально и работала ровно 2 дня, на неродной CF-карте,  потом зависла, и отказалась загружаться. Пришлось вызывать сервисника. От него мы узнали, что нельзя просто так взять и заменить карту  - носитель системного ПО, на другую. А полезли мы туда, так как руководство захотело печатать отчёты по работе машины. В станочном ПО такая функция была. Вот только принтер надо было купить у фирмы - производителя этой самой машины. В попытках заставить работать другой принтер мы редактировали файл  AUTOEXEС.BAT, на предмет загрузки драйвера принтера, ничего не получилось, зато перестали открываться некоторые страницы станочного ПО.  Образ у нас был давно снят, и мы развернули его на другую карту памяти. Родную карту я трогать не стал (как чувствовал, что нельзя ). Сервисник восстановил ПО с архивной дискеты на родную карту памяти, и всё заработало. Дискеты с архивами ПО шли вместе с документацией к машине.  Там были дискеты с Досом, станочной оболочкой, параметрами приводов, программой ПЛК. Он же и предупредил нас о предельно аккуратном обращении с родной картой памяти, и посоветовал немедленно сделать образы с архивных дискет, что мы сразу и проделали.. Вот такой сюрприз от машины эпохи Дос.
    • Борман
    • gudstartup
      а ведь все работало...
×
×
  • Создать...