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

IMSpost Как заставить работать цикл G81 ?


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

Вроде в настройках поставил отображать G81, а УП всё равно выводится без цикла. Кто хорошо знает IMSpost, подскажите пожалуйста??? :helpsmilie:

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


Вроде в настройках поставил отображать G81, а УП всё равно выводится без цикла. Кто хорошо знает IMSpost, подскажите пожалуйста??? :helpsmilie:

Если внимательно почитать некоторые темы (включая этот же самый раздел) то можно разглядеть-выявить некоторых рьяных IMS-шников, ну и, естессно, написать в личку, коль не видят глас вопиющего. :)

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

Надо поглядеть какие данные входят в IMS. Из разных систем разные данные. А там уже анализировать в дебагере, что где какой параметр не срабатывает. Ну или так хотя бы наискосок глянуть.

Уж больно размыто вы описали:"У меня машина не едет, а колеса вроде на месте".

Без сапорта самому разобраться будет очень сложно, времени будет потрачено немало, особенно если опыта "общения" с такими штуками немного.

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

Надо поглядеть какие данные входят в IMS. Из разных систем разные данные. А там уже анализировать в дебагере, что где какой параметр не срабатывает. Ну или так хотя бы наискосок глянуть.

Уж больно размыто вы описали:"У меня машина не едет, а колеса вроде на месте".

Без сапорта самому разобраться будет очень сложно, времени будет потрачено немало, особенно если опыта "общения" с такими штуками немного.

В меню IMS сказано отображать цикл G81, и в function codes стоит галочка output G81,а вот что содержит дебагер относительно цикла:

0001 INIT/*

0002 *

0003 * Setup cycle globals

*==> GLOBAL.LASTCYCLE = 'OFF'

0005 GLOBAL.CYCLE_LAST_PLANE = 0.0

0006 GLOBAL.CYCLE_LAST_DEPTH = 0.0

0007 GLOBAL.CYCLE_FEED_MODE = "FPM"

0008 GLOBAL.CYCLE_FEED_VAL = 100.0

0009 GLOBAL.FEDTO = 0.0

0010 GLOBAL.RAPTO = 0.0

0011 GLOBAL.RTRCTO = 0.0

0012 GLOBAL.CYINCR = 0.1

0013 GLOBAL.CYINCRD = 0

0014 GLOBAL.CYINCRE = 0.001

0015 GLOBAL.DWELL = 0.0

0016 GLOBAL.FCYCLE = 1

0017 *

0018 * Setup tool globals

0019 GLOBAL.TOOLCNT = 0

0020 *

0021 * Setup feedrate globals

0022 GLOBAL.FEEDMODE = "FPM"

0023 *

0024 * Save modality

0025 GLOBAL.FORCE = 0

0026 *

0027 * Setup subroutine globals

0028 GLOBAL.SUBDEFINE = 0

0029 GLOBAL.SUBREPEAT = 1

0030 GLOBAL.SUBMAX = 0

0031 GLOBAL.SETUPID = 0

0032 *

0033 * Menu-generated code start (do not remove this line)

0034 GLOBAL.CUTCOM_DIR = 'RIGHT'

0035 SYSTEM.CONTROLLER_RAPID_TYPE = 0

0036 SYSTEM.CIRCLE_MAX_CHORD = 0.000000

0037 OPTIMIZE(NURBS,0)

0038 * Setup auto_retract functions definition parameters

0039 SYSTEM.AUTO_RETRACT_ANGLE = 30.000000

0040 SYSTEM.AUTO_RETRACT_SAFE = 100.0

0041 SYSTEM.AUTO_RETRACT_OUT = 10.000000

0042 SYSTEM.AUTO_RETRACT = 0

0043 SYSTEM.FORCE_WAY = ""

0044 SYSTEM.COORD_RTCP = 0

0045 GLOBAL.RAPID_BEST_SOLUTION = 0

0046 *

0047 * Setup g/m functions definition parameters

0048 SYSTEM.MAX_MCODE = 1

0049 SYSTEM.MAX_GCODE = 0

0050 *

0051 * Setup origin globals

0052 GLOBAL.ORIGIN_LOCAL = 1

0053 GLOBAL.ORIGIN[1] = 0.0

0054 GLOBAL.ORIGIN[2] = 0.0

0055 GLOBAL.ORIGIN[3] = 0.0

Вы не в курсе, в чём тут дело?

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

Это Вы линканули часть тела макроса INIT в IMSPost. Этих макросов в IMSPost много. Здесь просто идет задание значений переменным IMSа...

Сам же цикл скорее всего описывается макросами CYCLE и CYCLMOTN. Надо в них ковыряться...

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

А кто пост собирал?

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

Это Вы линканули часть тела макроса INIT в IMSPost. Этих макросов в IMSPost много. Здесь просто идет задание значений переменным IMSа...

Сам же цикл скорее всего описывается макросами CYCLE и CYCLMOTN. Надо в них ковыряться...

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

А кто пост собирал?

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

Вот почему-то не выводит то, что должно быть в конце операции. Что бы в этом поле не писал - в УП ничего из этого не попадает. Вы не вкурсе, как это исправить?

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

мм.. не совсем понятно чт оне попадает.. Что должно быть в конце операции?

Если во входящем файле есть команда END_OP/, то в этом макросе можно сделать то, что вы хотите видеть в конце каждой операции (процедуры если точнее)

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

мм.. не совсем понятно чт оне попадает.. Что должно быть в конце операции?

Если во входящем файле есть команда END_OP/, то в этом макросе можно сделать то, что вы хотите видеть в конце каждой операции (процедуры если точнее)

В конце операции хотелось бы прописать возврат в референтную точку. Вы правы, в CL файле END_OP нет, но есть END_PROCEDURE. Я прописываю G53 Z0, а в УП это почему-то не выводится. Не могу понять, в чём дело?

P.S. Нашёл макрос END_PROCEDURE и прописал там вручную OUTPUT ('G53 Z0', NEWLIN), вроде заработало. А за что отвечает END_PROCEDURE в принципе - не очень понял, там много всего содержится.

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

мм.. не совсем понятно чт оне попадает.. Что должно быть в конце операции?

Если во входящем файле есть команда END_OP/, то в этом макросе можно сделать то, что вы хотите видеть в конце каждой операции (процедуры если точнее)

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

А вы не в курсе, как сделать чтобы комменты выводились в скобках и в ковычках, например ("коммент") ? Пробовал и в макросе так писать, всё равно не выводит.

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

END_PROCEDURE/*

* Set individual procedure time and running time variables

GLOBAL.TOTAL_TIME = SYSTEM.MTIME_CUT

GLOBAL.PROC_TIME = GLOBAL.TOTAL_TIME - GLOBAL.PREV_TIME

GLOBAL.PREV_TIME = GLOBAL.PREV_TIME + GLOBAL.PROC_TIME

Здесь определяются системные переменные по времени, которые расчитываются в различных макросах.

Этими переменными можно оперировать (выводить через output итд)

* Convert cut times to minutes and seconds

A0 = INT(GLOBAL.PROC_TIME)

A1 = GLOBAL.PROC_TIME - A0

A1 = A1 * 60

GLOBAL.TEXTPROC_TIME = A0 + " MINUTES AND " + A1 + " SECONDS"

A0 = INT(GLOBAL.TOTAL_TIME )

A1 = GLOBAL.TOTAL_TIME - A0

A1 = A1 * 60

GLOBAL.TEXTTOTAL_TIME = A0 + " MINUTES AND " + A1 + " SECONDS"

Здесь идет конвертация минутного времени в секундное.

*Read ahead for first moves in the next procedure

A=CLREAD("FROM/*",1,1,0)

IF(A)

GLOBAL.FROMX_NEXTPROC = CLREADN.1

GLOBAL.FROMY_NEXTPROC = CLREADN.2

GLOBAL.FROMZ_NEXTPROC = CLREADN.3

ENDIF

Здесь задаются параметры перемещения, если в строке есть команда FROM.

*Get first GOTO info

A=CLREAD("GOTO/*",1,1,0)

IF(A)

GLOBAL.FIRSTMOVEX_NEXTPROC = CLREADN.1

GLOBAL.FIRSTMOVEY_NEXTPROC = CLREADN.2

GLOBAL.FIRSTMOVEZ_NEXTPROC = CLREADN.3

ENDIF

Здесь задаются параметры перемещения, из первой строки с командой GOTO.

*Get second GOT info

B=CLREAD("GOTO/*",2,1,0)

IF(B)

GLOBAL.SECONDMOVEX_NEXTPROC = CLREADN.1

GLOBAL.SECONDMOVEY_NEXTPROC = CLREADN.2

GLOBAL.SECONDMOVEZ_NEXTPROC = CLREADN.3

ENDIF

Здесь задаются параметры перемещения, из второй строки с командой GOTO.

*Get third GOTO info

C=CLREAD("GOTO/*",3,1,0)

IF©

GLOBAL.THIRDMOVEX_NEXTPROC = CLREADN.1

GLOBAL.THIRDMOVEY_NEXTPROC = CLREADN.2

GLOBAL.THIRDMOVEZ_NEXTPROC = CLREADN.3

ENDIF

RETURN

Здесь задаются параметры перемещения, из третей строки с командой GOTO.

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

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

То что вы дописали OUTPUT и сказали что выводить - это в принипепрально.

Правда при каждом окончании процедуры он будет вам выводить станочные координаты (G53) и выезд в точку Z0 в указанных координатах на действующем (рабочем или ускоренном) перемещении

За вывод комментариев отвечает макрос PPRINT/

Если в apt файле есть такой оператор и после него текст

PPRINT/Превед!

То в прогу будет выводиться к примеру

;ПРЕВЕД!

Да.. И еще в макросе Init должно быть присвоено значени равное единице параметру GLOBAL.COMMENT. По умолчанию там стоит равно нулю.

То есть в макро INIT надо найти строку с параметром и поставить значение 1, например

GLOBAL.COMMENT = 1

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

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

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

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

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

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

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

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

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

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

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




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