Jump to content

Встроенные циклы Shop Turn для Sinumeric 840D SL


Recommended Posts

В Shop Turn есть встроенные циклы 
Фрагмент УП с одним из циклов:
...
;USTUP D16O RPOHODNOY 80GR
F_ROUGH("PROHOD","",1,0.22,3,150,2,0,52225,1,265,90,0,90,159.7,90,-26,90,159.7,90,-26,90,0,0.5,0,0,2,0.5,0.1,1,90,90,0,0,0);*RO*
G0 Z5
X300
M1
...

Стоит задача научиться симулировать этот цикл F_ROUGH (и другие) сторонним симулятором, т.е. вне станка.
Можно ли скачать со станка текст программы этого цикла, чтобы понять его работу?

Link to post
Share on other sites


UnPinned posts
gudstartup
1 час назад, UAV сказал:

Можно ли скачать со станка текст программы этого цикла, чтобы понять его работу?

Кроме того чтобы скачать нужно еще и суметь декомпилировать как на heidenhain или Fanuc никто не выкладывает текст циклов в открытом виде.

Link to post
Share on other sites
Vladislav-dobrynin
2 часа назад, UAV сказал:

Стоит задача научиться симулировать этот цикл F_ROUGH (и другие) сторонним симулятором, т.е. вне станка.

 

В SinuTrain пробовали?

Link to post
Share on other sites
andref
18 часов назад, UAV сказал:

Можно ли скачать со станка текст программы этого цикла, чтобы понять его работу?

На Sinumerik 810d c ShopTurn файл F_ROUGH находится в стандартных циклах и его можно извлечь и посмотреть. Посмотрите NC архив на 840dsl и извлеките файл  из каталога CST.DIR.

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

FROUGH.png

 

Link to post
Share on other sites
mannul
Скрытый текст

PROC F_ROUGH(STRING[32] _T,STRING[32] _TF,INT _DD,REAL _F,INT _FAA,REAL _S,INT _SA,INT _TMOD,INT _BA,INT _L,REAL __X0,INT _X0A,REAL _Z0,INT _Z0A,REAL __X1,INT _X1A,REAL _Z1,INT _Z1A,REAL __XM,INT _XMA,REAL _ZM,INT _ZMA,INT _XZA,REAL _RF1,REAL _RF2,REAL _RF3,REAL _D,REAL _UX,REAL _UZ,INT _NR,REAL _A1,REAL _A2,REAL _BETA,INT _BETAA,REAL _GAMA) SBLOF DISPLOF
;VERSION: 04.05.57.00 ;DATE: 2014-03-13
;CHANGE : 04.05.51.00 ;DATE: 2013-08-21
;ShopTurn: Roughing edge cycle
DEF AXIS _XX,_ZZ,_YY
DEF INT _VARI,_PM,_AI,_LP,_I,_XPM,_ZPM,_LF[8],_P29,_TYP,_SL,_MAN,_LAGE,_AMODE[8],_DMODE,_RFNR
DEF INT _LT[8]=set(0,1,2,3,3,1,2,0)
DEF INT _SLT[2,10]=set(0,1,2,3,4,5,6,7,8,9,0,2,1,4,3,7,6,5,8,9)
DEF INT _SLX[2,10]=set(0,1,2,3,4,5,6,7,8,9,0,4,3,2,1,5,8,7,6,9)
DEF REAL _F2,_FAK1,_FAK2,_X,_Z,_XS,_ZS,_SC,_OF,_Y,_X0,_X1,_XM
IF(_E_S_LINE)AND(_E_S_LINE<>$P_LINENO[0]) GOTOF _RETS
IF($P_GG[13]<3)
_FAK1=1
IF($MN_SCALING_SYSTEM_IS_METRIC)
IF($P_GG[13]==1)
_FAK1=1/$MN_SCALING_VALUE_INCH
ENDIF
ELSE
IF($P_GG[13]==2)
_FAK1=$MN_SCALING_VALUE_INCH
ENDIF
ENDIF
ELSE
_FAK1=1
ENDIF
_FAK2=1
IF($MN_SCALING_SYSTEM_IS_METRIC)
IF($P_GG[13]==1)OR($P_GG[13]==3)
_FAK2=1/$MN_SCALING_VALUE_INCH
ENDIF
ELSE
IF($P_GG[13]==2)OR($P_GG[13]==4)
_FAK2=$MN_SCALING_VALUE_INCH
ENDIF
ENDIF
_X0=__X0 _X1=__X1 _XM=__XM
IF(_BA B_AND 'H8000' == 'H8000')
IF(_X0A==90)
_X0=_X0/2
ENDIF
IF(_X1A==90)
_X1=_X1/2
ENDIF
IF(_XMA==90)
_XM=_XM/2
ENDIF
ENDIF
IF(_F_BAR_START==0)
GOTOF _RET
ENDIF
_MAN=(_TMOD DIV 10)MOD 10
IF(_BA B_AND 'B010000000')
IF(_BA B_AND 'B100000000')
_MAN=2
ELSE
_MAN=1
ENDIF
ENDIF
IF(_MAN)
F_SP_INI(0)
ENDIF
_P29=$P_GG[29]
DIAMCYCOF
IF(_BA B_AND 'B11' == 'B01')
_VARI=10
ELSE
IF(_BA B_AND 'B11' == 'B10')
_VARI=20
ELSE
GOTOF _FEHL1
ENDIF
ENDIF
IF(_L<0)OR(_L>7) GOTOF _FEHL6
IF(_L<4)
_VARI=_VARI+1
ELSE
_VARI=_VARI+2
ENDIF
_LAGE=_LT[_L]
IF(_BA B_AND 'B00001000')
_VARI=_VARI+1000
ENDIF
_RFNR=1
_AMODE[5]=0
IF(_BA B_AND 'H600'=='H000')
IF(_RF1<0)
_RF1=ABS(_RF1) _AMODE[5]=10000
ENDIF
ELSE
IF(_BA B_AND 'H600'=='H400')
IF(_RF1<0) GOTOF _FEHL7
_AMODE[5]=10000
ELSE
IF(_RF1<0) GOTOF _FEHL8
ENDIF
ENDIF
_RFNR=2
_AMODE[6]=0
IF(_BA B_AND 'H1800'=='H0000')
IF(_RF2<0)
_RF2=ABS(_RF2) _AMODE[6]=100000
ENDIF
ELSE
IF(_BA B_AND 'H1800'=='H1000')
IF(_RF2<0) GOTOF _FEHL7
_AMODE[6]=100000
ELSE
IF(_RF1<0) GOTOF _FEHL8
ENDIF
ENDIF
_RFNR=3
_AMODE[7]=0
IF(_BA B_AND 'H6000'=='H0000')
IF(_RF3<0)
_RF3=ABS(_RF3) _AMODE[7]=1000000
ENDIF
ELSE
IF(_BA B_AND 'H6000'=='H4000')
IF(_RF3<0) GOTOF _FEHL7
_AMODE[7]=1000000
ELSE
IF(_RF3<0) GOTOF _FEHL8
ENDIF
ENDIF
N10 G40 G90
F_SP_TRA(2040)
IF(NOT((_FAA==1)OR(_FAA==3))) GOTOF _FEHL4
IF(_MAN)
_F_RELEAS=0
_VARI=_VARI+10000
IF(_MAN==2)
_F_MASPI=2
ELSE
_F_MASPI=0
ENDIF
_F_INIT=1
IF(_F_AX_EXISTS[6])AND($MCS_FUNCTION_MASK_TECH B_AND 'H01')
N23 F_TFS(_T,,_DD,,,,,_F_MASPI+1,8)
N24 F_SP_BC(104,_BETA,_GAMA)
N29 F_TFS(_T,,_DD,_F,_FAA,_S,_SA,_F_MASPI+1,7)
ELSE
N31 F_TFS(_T,,_DD,_F,_FAA,_S,_SA,_F_MASPI+1,8)
ENDIF
ELSE
IF(_F_AX_EXISTS[6])AND($MCS_FUNCTION_MASK_TECH B_AND 'H01')
N25 F_TFS(_T,_TF,_DD,,,,,1,0)
N26 F_SP_BC(4,_BETA,_GAMA)
N27 F_TFS(_T,_TF,_DD,_F,_FAA,_S,_SA,1,7)
ELSE
N28 F_TFS(_T,_TF,_DD,_F,_FAA,_S,_SA,1,0)
ENDIF
ENDIF
IF($P_TOOLNO==0) GOTOF _FEHL0
IF($P_TOOL==0) GOTOF _FEHL2
_TYP=$P_AD[1]
IF(_TYP<500)OR(_TYP>599) GOTOF _FEHL3
_XX=$P_AXN2 _ZZ=$P_AXN1
IF(_MAN==0)
F_SP_RPT(0,_L)
ENDIF
_X=$P_EP[_XX]*_FAK1 _Z=$P_EP[_ZZ]*_FAK1
IF(_MAN)
IF(_F_Y_AXIS==1)
_YY=$P_AXN3
_Y=$P_EP[_YY]*_FAK1
ENDIF
ENDIF
IF(SUBSTR($P_PROG[0],3,11)=="MA_JOG_STEP")OR(SUBSTR($P_PROG[1],3,11)=="MA_JOG_STEP")
_F_INIT=1
_SC=$SCS_MAJOG_SAFETY_CLEARANCE*_FAK1
ELSE
_SC=_E_SC*_FAK2
ENDIF
_I=_L
_PM=1-(_I MOD 2)*2
_I=_I DIV 2
_AI=1-(_I MOD 2)*2
_LP=1-(_I DIV 2)
IF($P_TOOLNO>0)
_SL=$P_AD[2]
IF(NOT(($MC_TOOL_PARAMETER_DEF_MASK B_AND 'H00200000')AND($P_CUTMOD)))
_SL=_SLT[$P_ACTFRAME[_ZZ,MI],_SL]
_SL=_SLX[$P_ACTFRAME[_XX,MI],_SL]
ENDIF
IF(_SL>0)
_LF[0]=4 _LF[1]=3 _LF[2]=1 _LF[3]=2
_LF[4]=2 _LF[5]=3 _LF[6]=1 _LF[7]=4
IF(_LF[_L]<>_SL) GOTOF _FEHL5
ENDIF
ENDIF
_XPM=-_AI _ZPM=_PM
IF(_LP) GOTOF _MI
_XPM=_PM _ZPM=-_AI
_MI:
IF(_X0A<>90)
_X0=_X0+_X
ENDIF
IF(_Z0A<>90)
_Z0=_Z0+_Z
ENDIF
IF(_X1A<>90)
_X1=_X0+ABS(_X1)*_XPM
ENDIF
IF(_Z1A<>90)
_Z1=_Z0+ABS(_Z1)*_ZPM
ENDIF
IF(_XMA<>90)
_XM=_X0+ABS(_XM)*_XPM
ENDIF
IF(_ZMA<>90)
_ZM=_Z0+ABS(_ZM)*_ZPM
ENDIF
_AMODE[0]=0+_AMODE[5]+_AMODE[6]+_AMODE[7]
_SC=ABS(_SC)
IF(_AI==1)
IF($SCS_TURN_ROUGH_O_RELEASE_DIST==-1)
_OF=_SC
ELSE
_OF=ABS($SCS_TURN_ROUGH_O_RELEASE_DIST)*_FAK1
ENDIF
ELSE
IF($SCS_TURN_ROUGH_I_RELEASE_DIST==-1)
_OF=_SC
ELSE
_OF=ABS($SCS_TURN_ROUGH_I_RELEASE_DIST)*_FAK1
ENDIF
ENDIF
IF(_OF>_SC)
_OF=_SC
ELSE
_SC=_OF
ENDIF
IF(_LP)
_XS=_X0+_OF*_AI _ZS=_Z0-_OF*_PM
ELSE
_ZS=_Z0+_OF*_AI _XS=_X0-_OF*_PM
ENDIF
IF(_MAN)
SBLON
IF(_F_Y_AXIS==0)
N35 G0 G90 AX[_XX]=_XS AX[_ZZ]=_ZS
ELSE
N36 G0 G90 AX[_XX]=_XS AX[_ZZ]=_ZS AX[_YY]=0
ENDIF
SBLOF
ELSE
IF(_F_RELEAS==0)
IF(_AI==-1)
N40 F_SP_RP(3,_XS,_ZS)
ENDIF
N45 F_SP_RP(0,_XS,_ZS,0)
SBLON
IF(_LP==1)
N50 G0 G90 AX[_XX]=_F_RP_ACT*_FAK2 AX[_ZZ]=_ZS
ELSE
N51 G0 G90 AX[_XX]=_XS AX[_ZZ]=_F_RP_ACT*_FAK2
ENDIF
SBLOF
ELSE
N54 F_SP_RP(0,,,0)
SBLON
N55 G0 G90 AX[_XX]=_XS AX[_ZZ]=_ZS
SBLOF
ENDIF
ENDIF
F_SP_TRA(1040)
IF(NOT(($P_SEARCH)OR($AC_SERUPRO)))OR($P_SIM)
N100 CYCLE951(_X0*2,_Z0,_X1*2,_Z1,_XM*2,_ZM,_LAGE,_D,_UX,_UZ,_VARI,_RF1,_RF2,_RF3,_SC,_F,_NR,0,_AMODE[0])
ENDIF
SBLON
IF(_MAN==0)
IF(_LP==1)
N110 G0 G90 AX[_XX]=_X0+_SC*_AI
ELSE
IF(_L==5)OR(_L==6)
N115 G0 G90 AX[_ZZ]=_Z0-_SC*_PM
ELSE
N120 G0 G90 AX[_ZZ]=_Z0+_SC*_PM
ENDIF
ENDIF
IF(_AI==-1)
F_SP_RP(4,$P_EP[_XX]*_FAK1,$P_EP[_ZZ]*_FAK1)
ENDIF
ELSE
IF(_F_Y_AXIS==1)
N180 G90 G0 AX[_XX]=_X AX[_ZZ]=_Z AX[_YY]=_Y
ELSE
N185 G90 G0 AX[_XX]=_X AX[_ZZ]=_Z
ENDIF
ENDIF
SBLOF
G[29]=_P29
_RET:
_F_BAR_START=-1
_E_S_LINE=0
_RETS:
_F_RELEAS=0
SBLON
RET
_FEHL0: STOPRE
N995100 SETAL(61009)
RET
_FEHL1: STOPRE
N995101 SETAL(61002)
RET
_FEHL2: STOPRE
N995102 SETAL(61000)
RET
_FEHL3: STOPRE
N995103 SETAL(61212)
RET
_FEHL4: STOPRE
N995104 SETAL(61240)
RET
_FEHL5: STOPRE
N995105 SETAL(61608)
RET
_FEHL6: STOPRE
N995106 SETAL(61532)
RET
_FEHL7: STOPRE
N995107 SETAL(61022,"(FS"<<_RFNR<<")  ")
RET
_FEHL8: STOPRE
N995108 SETAL(61022,"(R"<<_RFNR<<")  ")
RET

 

Link to post
Share on other sites
gudstartup
3 часа назад, UAV сказал:

Спасибо, огромное! Буду пробовать разобраться.

Интересно как вы будете определять все циклы которые в свою очередь он использует Ваш симулятор поймет такое параметрическое программирование (этот толи бейсик то ли паскаль от сименса не каждый прожует)

 

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

CYCLE951(_X0*2,_Z0,_X1*2,_Z1,_XM*2,_ZM,_LAGE,_D,_UX,_UZ,_VARI,_RF1,_RF2,_RF3,_SC,_F,_NR,0,_AMODE[0])

 

Link to post
Share on other sites
Vladislav-dobrynin
7 минут назад, gudstartup сказал:

этот толи бейсик то ли паскаль от сименса не каждый прожует

 

Это стандартный язык стойки Sinumerik. Модуль симуляции в NX его полностью поддерживает как и расширенные возможности языков остальных стоек ЧПУ. Только что за симулятором пользуется автор - неизвестно.  Я бы использовал симулятор стойки SinuTrain как писал ранее 

Link to post
Share on other sites
gudstartup
25 минут назад, Vladislav-dobrynin сказал:

Модуль симуляции в NX его полностью поддерживает как и расширенные возможности языков остальных стоек ЧПУ.

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.




  • Сообщения

    • Viktor2004
      даже если у кого и есть. Откуда он возьмет параметры привода? Их никто списком или на файлике не поставляет со станком.
    • ev121
      За песнями и плясками - на концерт Льва Лещенко
    • andromed
      Ответ тот же самый, что и когда я пытался менять кодировку построчно "unknown encoding"  Как я говорил ранее по команде получить кодировку в ответ только три кодировки и в них нет cp1251. Может дело в версии NX (тестирую в 10ке) или существует какая то возможность подгрузить системные кодировки, во всех примерах в сети по команде encoding names вылетает целый абзац кодировок.    Вопрос решен! Практически сам себе и ответил.  Действительно в NX10  только 3 кодировки,  начиная с 12шки  есть все нужные кодировки.  Но и тут важно место где разместить команду по смене кодировки.  Поставил сразу после  открытия/создания файла и все получилось. set ofile [open $arhiv_file_name w] fconfigure $ofile -encoding cp1251
    • Krusnik
      Судя по скриншоту  у вас в файле 7КЕ.1004.1000_СБ.SLASM есть свойство Weight. Значение этого свойства 0 (ноль). PDM зачитывает это свойство и записывает в переменную Weight а потом эту переменную отображает в проводнике. Переменную, не свойство файла.   А вот свойства Типоразмер в файле 7КЕ.1004.1000_СБ.SLASM нет, или есть, но пустое. Поэтому и переменная пустая и столбец в проводнике пустой.   И привыкайте всё регистрировать. Переменные обновляются при регистрации файла. А у вас на скриншоте всё разрегистрировано.
    • Anatoly55
      Просмотрел бегло Базовый и Продвинутый курсы. Теперь основательно с конспектом изучаю пока только 3-ий урок Базового курса.  Да, сделано профессионально. Есть чему поучиться. 
    • oleg96i
      станок HAAS TL1 всем привет подскажите , при рассточке вн. диаметра резцом близким диаметру начального отверстия, после первого прохода отводит слижком низко, по проге не должно опускаться ниже 20мм, он опускается до 18, на новом хаасе такого нет. может параметр какой надо включить!? симка показывает норм. то есть первый проход идет на D20.6 , дойдя до нужной Z опускается не до 20, а до 18.   N4 (RASTOCHNOY)  G54  T404  G00 X40. Z20.  M08  G96 S1000 M03 (!!!)  G01 X20. Z2. F1.  G71 P300 Q310 D0.5 W0.05 U-0.4 F0.2  N300 G00 X23. Z2.  G01 Z0.  G01 X22. Z-0.5 F0.1  Z-55.  N310 X20.  G70 P300 Q310  G00 Z20. M09 
    • andromed
      Ответ тот же самый, что и когда я пытался менять кодировку построчно "unknown encoding"  Как я говорил ранее по команде получить кодировку в ответ только три кодировки и в них нет cp1251. Может дело в версии NX (тестирую в 10ке) или существует какая то возможность подгрузить системные кодировки, во всех примерах в сети по команде encoding names вылетает целый абзац кодировок. 
    • Ан-162
      Принципиальная электрическая конечно. Мне отремонтировать ее нужно. По поводу, какой конкретно станок, сейчас не скажу. Буду у станка, напишу. Плату снял, она точно неисправна (сжигает предохран, при установке на ее место второй исправной, сменив предохранитель - она работает) От станка схема платы не зависит, а зависит от модели платы. На ней написано LPS-03E, буква Е заклеяна бумажкой с буквой F и номером 616.421.4 То-бишь плата LPS-03F 616.421.4
    • wafa61
      Всем привет. Неужели ни у кого нет станков с приводом РГ  на 8 позиций Мицубиси MR-4J-40A. Станок JCL-42T с ЧПУ  0I-TF. Нужны параметры на данный привод. Пожалуйста, откликнитесь.
    • Sturmann
      Это имена. Имена файлов. В обозначении конечно есть имя файла, но обозначение не состоит только из имени файла.  Про таск известно давно. Не пользуюсь по причине : он только сохраняет чертежи в другой формат а мне нужно немного больше. Сортировка по участкам (иногда один лист чертежа должен идти на несколько участков) и проверка чертежа.  К сожалению не всегда новое значит лучшее. Уверен в 20 версии появились новые инструменты но в моей работе они не нужны. Или там сборки стали открываться на 10 сек быстрее но для этого нужен новый i9. Ради 10 секунд покупать новый комп чето не хочется.  Я избрал другой метод - написание программ. И вот теперь да - разница существенная. То что приходилось делать 5 часов теперь делается (без моего участия) за 20 минут. 
×
×
  • Create New...