You are on page 1of 954

Prefcio

Programao flexvel de NC 1
Gerenciamento de arquivos e
programas 2
reas de proteo 3
SINUMERIK 4
Comandos especiais de curso
Transformaes de
SINUMERIK 840D sl / 828D coordenadas (FRAMES) 5
Preparao do trabalho Transformaes 6
Corretores de ferramentas 7
Manual de programao Comportamento de percurso 8
Acoplamentos de eixo 9
Aes sncronas de
movimentos 10
Oscilao 11
Estampagem e puncionamento 12
Retificao 13
Outras funes 14
Programas de desbaste
prprios 15
Vlidopara
Programao externa de ciclos 16
Comando
SINUMERIK840Dsl/840DEsl
SINUMERIK828D Tabelas 17
Software Verso Apndice A
SoftwareCNC 4.4

09/2011
6FC5398-2BP40-2KA0
Informaes jurdicas- Conceito de aviso

Informaes jurdicas
Conceito de aviso
Este manual contm instrues que devem ser observadas para sua prpria segurana e tambm para evitar danos
materiais. As instrues que servem para sua prpria segurana so sinalizadas por um smbolo de alerta, as
instrues que se referem apenas danos materiais no so acompanhadas deste smbolo de alerta. Dependendo
do nvel de perigo, as advertncias so apresentadas como segue, em ordem decrescente de gravidade.

PERIGO
significa que haver caso de morte ou leses graves, caso as medidas de segurana correspondentes no forem
tomadas.

AVISO
significa que haver caso de morte ou leses graves, caso as medidas de segurana correspondentes no forem
tomadas.

CUIDADO
acompanhado do smbolo de alerta, indica um perigo iminente que pode resultar em leses leves, caso as medidas
de segurana correspondentes no forem tomadas.
CUIDADO
no acompanhado do smbolo de alerta, significa que podem ocorrer danos materiais, caso as medidas de
segurana correspondentes no forem tomadas.
ATENO
significa que pode ocorrer um resultado ou um estado indesejados, caso a instruo correspondente no for
observada.
Ao aparecerem vrios nveis de perigo, sempre ser utilizada a advertncia de nvel mais alto de gravidade.
Quando apresentada uma advertncia acompanhada de um smbolo de alerta relativamente a danos pessoais,
esta mesma tambm pode vir adicionada de uma advertncia relativa a danos materiais.
Pessoal qualificado
O produto/sistema, ao qual esta documentao se refere, s pode ser manuseado por pessoal qualificado para a
respectiva definio de tarefas e respeitando a documentao correspondente a esta definio de tarefas, em
especial as indicaes de segurana e avisos apresentados. Graas sua formao e experincia, o pessoal
qualificado capaz de reconhecer os riscos do manuseamento destes produtos/sistemas e de evitar possveis
perigos.
Utilizao dos produtos Siemens em conformidade com as especificaes
Tenha ateno ao seguinte:

AVISO
Os produtos da Siemens s podem ser utilizados para as aplicaes especificadas no catlogo e na respetiva
documentao tcnica. Se forem utilizados produtos e componentes de outros fornecedores, estes tm de ser
recomendados ou autorizados pela Siemens. Para garantir um funcionamento em segurana e correto dos
produtos essencial proceder corretamente ao transporte, armazenamento, posicionamento, instalao,
montagem, colocao em funcionamento, operao e manuteno. Devem-se respeitar as condies ambiente
autorizadas e observar as indicaes nas respetivas documentaes.
Marcas
Todas denominaes marcadas pelo smbolo de propriedade autoral so marcas registradas da SiemensAG.
As demais denominaes nesta publicao podem ser marcas em que os direitos de proprietrio podem ser
violados, quando usadas em prprio benefcio, por terceiros.
Excluso de responsabilidade
Ns revisamos o contedo desta documentao quanto a sua coerncia com o hardware e o software descritos.
Mesmo assim ainda podem existir diferenas e ns no podemos garantir a total conformidade. As informaes
contidas neste documento so revisadas regularmente e as correes necessrias estaro presentes na prxima
edio.

Siemens AG N. de encomenda de documento:6FC5398-2BP40-2KA0 Copyright SiemensAG2011.


Industry Sector 01.2011 Sujeito a modificaes sem
Postfach 48 48 aviso prvio
90026 NRNBERG
ALEMANHA
Prefcio

Documentao SINUMERIK
A documentao SINUMERIK dividida nas seguintes categorias:
Documentao geral
Documentao do usurio
Documentao do fabricante e de servio

Mais informaes
No Link http://www.siemens.com/motioncontrol/docu esto disponveis informaes sobre os
seguintes temas:
Encomenda de documentao / Viso geral das publicaes
Outros links para o download de documentos
Uso da documentao online (localizao e pesquisa de manuais e informaes)
Pedimos que encaminhe suas questes (reclamaes, correes) sobre a documentao
tcnica atravs de um Fax ou E-Mail para o seguinte endereo:
docu.motioncontrol@siemens.com

My Documentation Manager (MDM)


No seguinte link esto disponveis informaes que servem para compor individualmente
uma documentao de mquina especfica de OEM baseada no material publicado da
Siemens:
www.siemens.com/mdm

Training
As informaes sobre a oferta de treinamento esto disponveis sob:
www.siemens.com/sitrain
SITRAIN - o treinamento desenvolvido pela Siemens para produtos, sistemas e solues
de automao
www.siemens.com/sinutrain
SinuTrain - software de treinamento para SINUMERIK

FAQs
As Perguntas Mais Frequentes esto disponveis para consulta nas pginas do
Service&Support som o item Suporte ao Produto. http://support.automation.siemens.com

Preparao do trabalho
Manual de programao 09/2011, 6FC5398-2BP40-2KA0 3
Prefcio

SINUMERIK
As informaes sobre o SINUMERIK esto disponveis no seguinte link:
www.siemens.com/sinumerik

Grupo destino
Esta publicao dirigida a:
Programadores
Projetistas

Aplicao
O manual de programao possibilita a criao de progamas e interface de software para
editar, testar e para corrigir erros.

Escopo padro
Este manual de programao descreve as funcionalidades de escopo padro. As
complementaes e alteraes realizadas pelo fabricante da mquina so documentadas
pelo fabricante da mquina.
No comando podem existir outras funes que no foram explicadas nesta documentao.
Isso, no entanto, no implica nenhuma obrigao destas funes serem fornecidas com um
novo controle ou em caso de servio.
Da mesma forma, devido grande variedade de itens, esta documentao no compreende
todas as informaes detalhadas de todos os tipos de produto, e tambm no podem ser
considerados todos os casos possveis de instalao, operao e manuteno.

Suporte tcnico
Os nmeros de telefone para consultas tcnicas de cada pas esto disponveis na Internet
sob http://www.siemens.com/automation/service&support

Preparao do trabalho
4 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Prefcio

Informaes sobre estrutura e contedo

Manual de programao "Fundamentos" e "Preparao de trabalho"


A descrio da programao de NC dividida em 2 manuais:
1. Fundamentos
O manual de programao bsico voltado para o operador de mquinas com
conhecimentos especficos em fresamento, furao e torneamento. Exemplos simples de
programao so usados para explicar as instrues, que tambm so definidas pela DIN
66025.
2. Preparao do trabalho
O manual de programao "Preparao de trabalho" oferece ao tcnico, conhecimentos
sobre todas as possibilidades de programao. O Comando SINUMERIK permite que
com uma linguagem de programao especial sejam feitos complexos programas de
pea (por exemplo, superfcies de formas livres, sincronismo de canais, ...) e facilita a
programao de operaes de alta complexidade.

Disponibilidade dos elementos da linguagem de NC descritos


Todos o elementos de linguagem de NC descritos no seguinte manual so disponveis para
SINUMERIK 840Dsl. A disponibilidade com relao ao SINUMERIK828D est indicada na
tabela "Instrues Disponibilidade no SINUMERIK 828D [Pgina 886]".

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 5
Prefcio

Preparao do trabalho
6 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
ndice remissivo

Prefcio........................................................................................................................................................3
1 Programao flexvel de NC .....................................................................................................................17
1.1 Variveis.................................................................................................................................... 17
1.1.1 Informaes gerais sobre variveis ........................................................................................... 17
1.1.2 Variveis de sistema ................................................................................................................. 18
1.1.3 Variveis de usurio pr-definidas: Parmetros de clculo (R) ................................................ 21
1.1.4 Variveis de usurio pr-definidas: Variveis de ligao .......................................................... 23
1.1.5 Definio de variveis de usurio (DEF) ................................................................................... 25
1.1.6 Redefinio de variveis de sistema, variveis de usurio e comandos de linguagem NC
(REDEF) .................................................................................................................................... 31
1.1.7 Atributo: Valor de inicializao .................................................................................................. 34
1.1.8 Atributo: Valores de limite (LLI, ULI) .......................................................................................... 37
1.1.9 Atributo: Unidade fsica (PHU) .................................................................................................. 39
1.1.10 Atributo: Direitos de acesso (APR, APW, APRP, APWP, APRB, APWB) ................................. 41
1.1.11 Viso geral dos atributos definveis e redefinveis .................................................................... 46
1.1.12 Definio e inicializao de variveis de campo (DEF, SET, REP) .......................................... 47
1.1.13 Definio e inicializao de variveis de campo (DEF, SET, REP): Outras informaes ......... 52
1.1.14 Tipos de dados .......................................................................................................................... 55
1.2 Programao indireta ................................................................................................................ 56
1.2.1 Programao indireta de endereos ......................................................................................... 56
1.2.2 Programao indireta de cdigos G .......................................................................................... 59
1.2.3 Programao indireta de atributos de posio (GP) ................................................................. 60
1.2.4 Programao indireta de linhas de programa de pea (EXECSTRING) ................................... 63
1.3 Funes de clculo.................................................................................................................... 64
1.4 Operadores de comparao e operadores lgicos ................................................................... 66
1.5 Correo da preciso em erros de comparao (TRUNC) ....................................................... 68
1.6 Mnimo, mximo e rea de variveis (MINVAL, MAXVAL, BOUND) ........................................ 70
1.7 Prioridade das operaes.......................................................................................................... 72
1.8 Possveis converses de tipo .................................................................................................... 73
1.9 Operaes de String.................................................................................................................. 74
1.9.1 Converso de tipos para STRING (AXSTRING) ....................................................................... 75
1.9.2 Converso de tipos de STRING (NUMBER, ISNUMBER, AXNAME) ....................................... 76
1.9.3 Encadeamento de Strings (<<) .................................................................................................. 77
1.9.4 Mudana para letras minsculas / letras maisculas (TOLOWER, TOUPPER) ....................... 78
1.9.5 Definir o tamanho de uma Strings (STRLEN) ........................................................................... 79
1.9.6 Localizar caractere/String na String (INDEX, RINDEX, MINDEX, MATCH) .............................. 80
1.9.7 Seleo de uma String parcial (SUBSTR) ................................................................................. 81
1.9.8 Seleo de um caractere individual (STRINGVAR, STRINGFELD) ......................................... 82
1.9.9 Formatao de String (SPRINT) ............................................................................................... 83
1.10 Saltos e ramificaes de programa ........................................................................................... 92
1.10.1 Salto de retorno ao incio do programa (GOTOS) ..................................................................... 92
1.10.2 Saltos de programa at marcadores de salto (GOTOB, GOTOF, GOTO, GOTOC) ................. 93

Preparao do trabalho
Manual de programao 09/2011, 6FC5398-2BP40-2KA0 7
ndice remissivo

1.10.3 Bifurcao do programa (CASE ... OF ... DEFAULT ...) ............................................................ 96


1.11 Repetio de partes do programa (REPEAT, REPEATB, ENDLABEL, P) ............................... 98
1.12 Estruturas de controle.............................................................................................................. 105
1.12.1 Loop de programa com alternativa (IF, ELSE, ENDIF) ........................................................... 106
1.12.2 Loop de programa infinito (LOOP, ENDLOOP) ....................................................................... 108
1.12.3 Loop contador (FOR ... TO ..., ENDFOR) ................................................................................ 109
1.12.4 Loop de programa com condio no incio do loop (WHILE, ENDWHILE) ............................. 111
1.12.5 Loop de programa com condio no fim do loop (REPEAT, UNTIL) ...................................... 112
1.12.6 Exemplo de programa com estruturas de controle aninhadas ................................................ 113
1.13 Coordenao de programa (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)..... 114
1.14 Rotina de interrupo (ASUP) ................................................................................................. 119
1.14.1 Funcionamento de uma rotina de interrupo ......................................................................... 119
1.14.2 Criar rotina de interrupo ....................................................................................................... 120
1.14.3 Atribuio e partida de rotinas de interrupo (SETINT, PRIO, BLSYNC) .............................. 121
1.14.4 Desativar / ativar a atribuio de uma rotina de interrupo (DISABLE, ENABLE) ................ 123
1.14.5 Deletar a atribuio de uma rotina de interrupo (CLRINT) .................................................. 124
1.14.6 Retrao rpida do contorno (SETINT LIFTFAST, ALF) ......................................................... 125
1.14.7 Sentido de deslocamento na retrao rpida do contorno ...................................................... 127
1.14.8 Execuo de movimentos com rotinas de interrupo ............................................................ 130
1.15 Troca de eixos, troca de fusos (RELEASE, GET, GETD) ....................................................... 131
1.16 Transferir eixo de outro canal (AXTOCHAN)........................................................................... 136
1.17 Ativar dados de mquina (NEWCONF) ................................................................................... 138
1.18 Gravar arquivo (WRITE) .......................................................................................................... 139
1.19 Deletar arquivo (DELETE) ....................................................................................................... 145
1.20 Ler linhas no arquivo (READ) .................................................................................................. 147
1.21 Controle de presena de um arquivo (ISFILE) ........................................................................ 151
1.22 Leitura das informaes de arquivo (FILEDATE, FILETIME, FILESIZE, FILESTAT,
FILEINFO) ............................................................................................................................... 153
1.23 Clculo de checksum atravs de um campo (CHECKSUM) ................................................... 159
1.24 Arredondamento (ROUNDUP) ................................................................................................ 161
1.25 Tcnica de subrotinas.............................................................................................................. 162
1.25.1 Informaes gerais .................................................................................................................. 162
1.25.1.1 Subrotina ................................................................................................................................. 162
1.25.1.2 Nomes de subrotina ................................................................................................................. 163
1.25.1.3 Aninhamento de subrotinas ..................................................................................................... 164
1.25.1.4 Caminho de localizao ........................................................................................................... 165
1.25.1.5 Parmetros formais e parmetros atuais ................................................................................. 166
1.25.1.6 Transferncia de parmetros ................................................................................................... 167
1.25.2 Definio de uma subrotina ..................................................................................................... 169
1.25.2.1 Subrotina sem transferncia de parmetros ............................................................................ 169
1.25.2.2 Subrotina com transferncia de parmetros Call-by-Value (PROC) ....................................... 170
1.25.2.3 Subrotina com transferncia de parmetros Call-by-Reference (PROC, VAR) ...................... 171
1.25.2.4 Salvar funes G modais (SAVE) ............................................................................................ 173
1.25.2.5 Supresso de processamento bloco a bloco (SBLOF, SBLON) ............................................. 174
1.25.2.6 Supresso da atual exibio de bloco (DISPLOF, DISPLON, ACTBLOCNO) ........................ 180

Preparao do trabalho
8 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
ndice remissivo

1.25.2.7 Identificar subrotinas com preparao (PREPRO) .................................................................. 183


1.25.2.8 Salto de retorno para a subrotina M17 .................................................................................... 184
1.25.2.9 Salto de retorno para subrotina RET ....................................................................................... 185
1.25.2.10Salto de retorno parametrizvel da subrotina (RET ...) ........................................................... 186
1.25.3 Chamada de uma subrotina .................................................................................................... 193
1.25.3.1 Chamada de subrotina sem transferncia de parmetros ...................................................... 193
1.25.3.2 Chamada de subrotina com transferncia de parmetros (EXTERN) .................................... 195
1.25.3.3 Nmero de repeties de programa (P) .................................................................................. 197
1.25.3.4 Chamada modal de subrotina (MCALL) .................................................................................. 199
1.25.3.5 Chamada de subrotinas indireta (CALL) ................................................................................. 201
1.25.3.6 Chamada de subrotina indireta com indicao da parte de programa que deve ser
executada (CALL BLOCK ... TO ...) ........................................................................................ 202
1.25.3.7 Chamada indireta de um programa programado em linguagem ISO (ISOCALL) ................... 203
1.25.3.8 Chamada de subrotina com indicao de caminho e parmetros (PCALL) ............................ 205
1.25.3.9 Ampliar o caminho de localizao na chamada de subrotinas (CALLPATH) .......................... 206
1.25.3.10Executar subrotina externa (EXTCALL) .................................................................................. 208
1.25.4 Ciclos ....................................................................................................................................... 212
1.25.4.1 Parametrizao de ciclos de usurio ....................................................................................... 212
1.26 Tcnica de macros (DEFINE ... AS)........................................................................................ 216
2 Gerenciamento de arquivos e programas ...............................................................................................219
2.1 Memria de programa ............................................................................................................. 219
2.2 Memria de trabalho (CHANDATA, COMPLETE, INITIAL) .................................................... 224
2.3 Instruo de estruturao no editor Step (SEFORM).............................................................. 227
3 reas de proteo ...................................................................................................................................229
3.1 Definio das reas de proteo (CPROTDEF, NPROTDEF)................................................ 229
3.2 Ativar/desativar reas de proteo (CPROT, NPROT) ........................................................... 233
3.3 Verificao quanto violao da rea de proteo, limite da rea de trabalho e limites
de software (CALCPOSI) ........................................................................................................ 237
4 Comandos especiais de curso ................................................................................................................245
4.1 Aproximar posies codificadas (CAC, CIC, CDC, CACP, CACN) ......................................... 245
4.2 Interpolao de Spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN,
EAUTO, ENAT, ETAN, PW, SD, PL)....................................................................................... 246
4.3 Agrupamento de Spline (SPLINEPATH) ................................................................................. 257
4.4 Compresso de blocos NC (COMPON, COMPCURV, COMPCAD, COMPOF) ..................... 259
4.5 Interpolao de polinmios (POLY, POLYPATH, PO, PL)...................................................... 262
4.6 Referncia ajustvel do percurso (SPATH, UPATH) .............................................................. 268
4.7 Medio com apalpador comutvel (MEAS, MEAW) .............................................................. 271
4.8 Funo de medio ampliada (MEASA, MEAWA, MEAC) (opcional)..................................... 274
4.9 Funes especiais para o usurio OEM (OMA1 ... OMA5, OEMIPO1, OEMIPO2,
G810 ... G829)......................................................................................................................... 283
4.10 Reduo de avano com desacelerao nos cantos (FENDNORM, G62, G621) .................. 284

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 9
ndice remissivo

4.11 Critrios programveis para fim de movimentos (FINEA, COARSEA, IPOENDA,


IPOBRKA, ADISPOSA) ........................................................................................................... 285
4.12 Bloco programvel de parmetros servo (SCPARA)............................................................... 288
5 Transformaes de coordenadas (FRAMES) .........................................................................................289
5.1 Transformao de coordenadas atravs de varivel Frame ................................................... 289
5.1.1 Varivel Frame pr-definida ($P_BFRAME, $P_IFRAME, $P_PFRAME, $P_ACTFRAME) ... 291
5.2 Atribuir valores para variveis Frame / Frame......................................................................... 297
5.2.1 Atribuir valores diretos (valor de eixo, ngulo, escala) ............................................................ 297
5.2.2 Ler e alterar componentes de Frame (TR, FI, RT, SC, MI) ..................................................... 300
5.2.3 Referncias de Frames completos .......................................................................................... 301
5.2.4 Definio de novos Frames (DEF FRAME) ............................................................................. 303
5.3 Deslocamento aproximado e deslocamento fino (CFINE, CTRANS)...................................... 304
5.4 Deslocamento externo de ponto zero...................................................................................... 306
5.5 Deslocamento Preset (PRESETON) ....................................................................................... 307
5.6 Clculo de Frame a partir de 3 pontos de medio no espao (MEAFRAME) ....................... 309
5.7 Frames globais da NCU .......................................................................................................... 313
5.7.1 Frames especficos de canal ($P_CHBFR, $P_UBFR) ........................................................... 314
5.7.2 Frames ativos no canal ............................................................................................................ 315
6 Transformaes ......................................................................................................................................321
6.1 Programao geral de tipos de transformao........................................................................ 321
6.1.1 Movimentos de orientao nas transformaes ...................................................................... 324
6.1.2 Vista geral da transformao de orientao TRAORI ............................................................. 327
6.2 Transformao de trs, quatro e cinco eixos (TRAORI).......................................................... 329
6.2.1 Relaes gerais do cabeote de ferramenta cardnico .......................................................... 329
6.2.2 Transformao de trs, quatro e cinco eixos (TRAORI) .......................................................... 332
6.2.3 Variantes da programao da orientao e posio bsica (ORIRESET) .............................. 334
6.2.4 Programao da orientao da ferramenta (A..., B..., C..., LEAD, TILT) ................................ 335
6.2.5 Fresamento de topo (fresamento 3D A4, B4, C4, A5, B5, C5) ................................................ 342
6.2.6 Relao dos eixos de orientao (ORIWKS, ORIMKS) .......................................................... 344
6.2.7 Programao dos eixos de orientao (ORIAXES, ORIVECT, ORIEULER, ORIRPY,
ORIRPY2, ORIVIRT1, ORIVIRT2) ........................................................................................... 346
6.2.8 Programao da orientao ao longo de uma superfcie perifrica cnica (ORIPLANE,
ORICONCW, ORICONCCW, ORICONTO, ORICONIO) ......................................................... 348
6.2.9 Especificao de orientao de dois pontos de contato (ORICURVE, PO[XH]=, PO[YH]=,
PO[ZH]=) ................................................................................................................................. 352
6.3 Polinmios de orientao (PO[ngulo], PO[coordenadas]) ..................................................... 354
6.4 Rotaes da orientao da ferramenta (ORIROTA, ORIROTR, ORIROTT, ORIROTC,
THETA).................................................................................................................................... 356
6.5 Orientaes relativas trajetria ............................................................................................. 359
6.5.1 Tipos de orientao relativos trajetria ................................................................................. 359
6.5.2 Rotao da orientao da ferramenta relativa trajetria (ORIPATH, ORIPATHS,
ngulo de rotao) ................................................................................................................... 361
6.5.3 Interpolao relativa trajetria da rotao da ferramenta (ORIROTC, THETA) ................... 362
6.5.4 Suavizao do decurso de orientao (ORIPATHS A8=, B8=, C8=) ...................................... 365

Preparao do trabalho
10 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
ndice remissivo

6.6 Compresso da orientao (COMPON, COMPCURV, COMPCAD) ...................................... 366


6.7 Suavizao do decurso de orientao (ORISON, ORISOF) ................................................... 369
6.8 Transformao cinemtica ...................................................................................................... 371
6.8.1 Fresamento em peas torneadas (TRANSMIT) ...................................................................... 371
6.8.2 Transformao de superfcie cilndrica (TRACYL) .................................................................. 375
6.8.3 Eixo inclinado (TRAANG) ........................................................................................................ 384
6.8.4 Programar eixo inclinado (G05, G07) ...................................................................................... 387
6.9 Deslocamento PTP cartesiano ................................................................................................ 389
6.9.1 PTP com TRANSMIT .............................................................................................................. 394
6.10 Condies gerais na seleo de uma transformao ............................................................. 398
6.11 Desselecionar a transformao (TRAFOOF) .......................................................................... 399
6.12 Transformaes encadeadas (TRACON, TRAFOOF) ............................................................ 400
7 Corretores de ferramentas ......................................................................................................................403
7.1 Memria de correes............................................................................................................. 403
7.2 Corretores aditivos .................................................................................................................. 406
7.2.1 Ativar correes aditivas (DL) ................................................................................................. 406
7.2.2 Definir valores de desgaste e de ajuste ($TC_SCPxy[t,d], $TC_ECPxy[t,d]) .......................... 408
7.2.3 Deletar correes aditivas (DELDL) ........................................................................................ 409
7.3 Tratamentos especiais de corretor de ferramenta................................................................... 410
7.3.1 Espelhar comprimentos de ferramentas .................................................................................. 412
7.3.2 Avaliao de sinais de desgaste ............................................................................................. 413
7.3.3 Sistema de coordenadas da usinagem ativa (TOWSTD, TOWMCS, TOWWCS, TOWBCS,
TOWTCS, TOWKCS) .............................................................................................................. 414
7.3.4 Comprimento de ferramenta e mudana de planos ................................................................ 417
7.4 Correo de ferramenta Online (PUTFTOCF, FCTDEF, PUTFTOC, FTOCON, FTOCOF) ... 418
7.5 Ativao da correo de ferramenta 3D (CUT3DC..., CUT3DF...).......................................... 423
7.5.1 Ativao das correes de ferramentas 3D (CUT3DC, CUT3DF, CUT3DFS,
CUT3DFF, ISD) ....................................................................................................................... 423
7.5.2 Correes de ferramenta 3D: Fresamento perifrico, fresamento de topo ............................. 425
7.5.3 Correes de ferramenta 3D: Formas e dados de ferramenta para fresamento de topo ....... 427
7.5.4 Correes de ferramenta 3D: Correo na trajetria, curvatura de trajetria,
profundidade de imerso (CUT3DC, ISD) ............................................................................... 428
7.5.5 Correes de ferramenta 3D: Cantos internos/externos e procedimento de ponto
de interseco (G450/G451) ................................................................................................... 431
7.5.6 Correes de ferramenta 3D: Fresamento perifrico 3D com superfcies de limitao .......... 433
7.5.7 Correes de ferramenta 3D: Considerao de uma superfcie de limitao (CUT3DCC,
CUT3DCCD) ............................................................................................................................ 434
7.6 Orientao da ferramenta (ORIC, ORID, OSOF, OSC, OSS, OSSE, ORIS, OSD, OST)....... 438
7.7 Seleo livre de nmero D, nmero de gume ......................................................................... 444
7.7.1 Atribuio livre de nmeros D, nmero de corte (endereo CE) ............................................. 444
7.7.2 Atribuio livre de nmeros D: Verificar nmeros D (CHKDNO) ............................................. 445
7.7.3 Atribuio livre de nmeros D: Renomear nmeros D (GETDNO, SETDNO) ........................ 446
7.7.4 Atribuio livre de nmeros D: Determinar o nmero T para o nmero D especificado
(GETACTTD) ........................................................................................................................... 447
7.7.5 Atribuio livre de nmeros D: Invalidar nmeros D (DZERO) ............................................... 447

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 11
ndice remissivo

7.8 Cinemtica do porta-ferramenta .............................................................................................. 448


7.9 Correo de comprimento de ferramenta para porta-ferramentas orientveis
(TCARR, TCOABS, TCOFR, TCOFRX, TCOFRY, TCOFRZ)................................................. 454
7.10 Correo Online de comprimento de ferramenta (TOFFON, TOFFOF).................................. 457
7.11 Modificao dos dados de corte para ferramentas orientveis (CUTMOD) ............................ 460
8 Comportamento de percurso ..................................................................................................................467
8.1 Controle tangencial (TANG, TANGON, TANGOF, TLIFT, TANGDEL) ................................... 467
8.2 Caracterstica de avano (FNORM, FLIN, FCUB, FPO) ......................................................... 474
8.3 Execuo do programa com memria de pr-processamento (STOPFIFO, STARTFIFO,
FIFOCTRL, STOPRE) ............................................................................................................. 479
8.4 Segmentos de programa interrompidos condicionalmente (DELAYFSTON, DELAYFSTOF) 482
8.5 Evitar posio de programa para SERUPRO (IPTRLOCK, IPTRUNLOCK) ........................... 487
8.6 Reaproximao no contorno (REPOSA, REPOSL, REPOSQ, REPOSQA, REPOSH,
REPOSHA, DISR, DISPR, RMI, RMB, RME, RMN)................................................................ 490
8.7 Controle na conduo do movimento ...................................................................................... 499
8.7.1 Correo percentual de solavancos (JERKLIM) ...................................................................... 499
8.7.2 Correo percentual da velocidade (VELOLIM) ...................................................................... 500
8.7.3 Exemplo de programa para JERKLIM e VELOLIM ................................................................. 503
8.8 Tolerncia de contorno/orientao programvel (CTOL, OTOL, ATOL) ................................. 504
8.9 Tolerncia em movimentos G0 (STOLF)................................................................................. 508
9 Acoplamentos de eixo .............................................................................................................................511
9.1 Movimento acoplado (TRAILON, TRAILOF) ........................................................................... 511
9.2 Tabelas de curvas (CTAB) ...................................................................................................... 515
9.2.1 Definio de tabelas de curvas (CTABDEF, CATBEND) ........................................................ 516
9.2.2 Controle de presena de uma tabela de curvas (CTABEXISTS) ............................................ 522
9.2.3 Eliminao de tabelas de curvas (CTABDEL) ......................................................................... 523
9.2.4 Bloqueio de tabelas de curvas contra eliminao e sobregravao
(CTABLOCK, CTABUNLOCK) ................................................................................................ 524
9.2.5 Tabelas de curvas: Determinao de propriedades de tabela (CTABID, CTABISLOCK,
CTABMEMTYP, CTABPERIOD) ............................................................................................. 526
9.2.6 Leitura dos valores da tabela de curvas (CTABTSV, CTABTEV, CTABTSP, CTABTEP,
CTABSSV, CTABSEV, CTAB, CTABINV, CTABTMIN, CTABTMAX) ..................................... 528
9.2.7 Tabelas de curvas: Controle do aproveitamento de recursos (CTABNO, CTABNOMEM,
CTABFNO, CTABSEGID, CTABSEG, CTABFSEG, CTABMSEG, CTABPOLID, CTABPOL,
CTABFPOL, CTABMPOL) ....................................................................................................... 533
9.3 Acoplamento axial de valor mestre (LEADON, LEADOF) ....................................................... 535
9.4 Caixa de transmisso eletrnica (EG) ..................................................................................... 541
9.4.1 Definir caixa de transmisso eletrnica (EGDEF) ................................................................... 541
9.4.2 Ativar caixa de transmisso eletrnica (EGON, EGONSYN, EGONSYNE) ............................ 543
9.4.3 Desativar transmisso eletrnica (EGOFS, EGOFC) .............................................................. 546
9.4.4 Deletar a definio de uma caixa de transmisso eletrnica (EGDEL) ................................... 547
9.4.5 Avano por rotao (G95) / caixa de transmisso eletrnica (FPR) ....................................... 547
9.5 Fuso sincronizado.................................................................................................................... 548

Preparao do trabalho
12 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
ndice remissivo

9.5.1 Fuso sincronizado: Programao (COUPDEF, COUPDEL, COUPON, COUPONC,


COUPOF, COUPOFS, COUPRES, WAITC) ........................................................................... 549
9.6 Grupo mestre/escravo (MASLDEF, MASLDEL, MASLON, MASLOF, MASLOFS)................. 560
10 Aes sncronas de movimentos ............................................................................................................565
10.1 Fundamentos........................................................................................................................... 565
10.1.1 rea de validade e seqncia de usinagem (ID, IDS) ............................................................. 567
10.1.2 Controle cclico da condio (WHEN, WHENEVER, FROM, EVERY) .................................... 569
10.1.3 Aes (DO) .............................................................................................................................. 571
10.2 Operadores para condies e aes....................................................................................... 572
10.3 Variveis de processamento principal para aes sncronas ................................................. 574
10.3.1 Variveis de sistema ............................................................................................................... 574
10.3.2 Converso de tipo implcita ..................................................................................................... 576
10.3.3 Variveis GUD ......................................................................................................................... 577
10.3.4 Identificadores de eixo default (NO_AXIS) .............................................................................. 579
10.3.5 Marcador de ao sincronizada ($AC_MARKER[n]) ............................................................... 580
10.3.6 Parmetro de ao sincronizada ($AC_PARAM[n]) ................................................................ 581
10.3.7 Parmetros de clculo ($R[n]) ................................................................................................. 581
10.3.8 Ler e gravar dados de mquina NC e dados de ajuste NC ..................................................... 582
10.3.9 Varivel de temporizador ($AC_TIMER[n]) ............................................................................. 584
10.3.10 Variveis FIFO ($AC_FIFO1[n] ... $AC_FIFO10[n]) ................................................................ 585
10.3.11 Informao sobre os tipos de bloco no interpolador ($AC_BLOCKTYPE,
$AC_BLOCKTYPEINFO, $AC_SPLITBLOCK) ....................................................................... 587
10.4 Aes em aes sncronas ..................................................................................................... 590
10.4.1 Vista geral das possveis aes em aes sincronizadas ....................................................... 590
10.4.2 Emisso de funes auxiliares ................................................................................................ 592
10.4.3 Definir bloqueio de leitura (RDISABLE) ................................................................................... 593
10.4.4 Cancelar a parada de pr-processamento (STOPREOF) ....................................................... 594
10.4.5 Anular curso restante (DELDTG) ............................................................................................ 595
10.4.6 Definio de polinmio (FCTDEF) ........................................................................................... 597
10.4.7 Funo sincronizada (SYNFCT) .............................................................................................. 600
10.4.8 Controle de distncia com correo limitada ($AA_OFF_MODE) ........................................... 603
10.4.9 Correo Online da ferramenta (FTOC) .................................................................................. 606
10.4.10 Correo Online de comprimento de ferramenta ($AA_TOFF) ............................................... 609
10.4.11 Movimentos de posicionamento .............................................................................................. 611
10.4.12 Posicionar eixo (POS) ............................................................................................................. 612
10.4.13 Posio na rea de referncia especificada (POSRANGE) .................................................... 614
10.4.14 Iniciar/parar eixo (MOV) .......................................................................................................... 615
10.4.15 Troca de eixos (RELEASE, GET) ............................................................................................ 616
10.4.16 Avano por eixo (FA) ............................................................................................................... 620
10.4.17 Chave fim de curso de SW ...................................................................................................... 620
10.4.18 Coordenao de eixo .............................................................................................................. 621
10.4.19 Definir valor real (PRESETON) ............................................................................................... 622
10.4.20 Retomada da liberao para rotao de contentor de eixos (AXCTSWEC) ........................... 623
10.4.21 Movimentos de fuso ................................................................................................................ 626
10.4.22 Movimento acoplado (TRAILON, TRAILOF) ........................................................................... 627
10.4.23 Acoplamento de valor mestre (LEADON, LEADOF) ............................................................... 628
10.4.24 Medio (MEAWA, MEAC) ...................................................................................................... 631
10.4.25 Inicializao de variveis de campo (SET, REP) .................................................................... 632
10.4.26 Definir/deletar marcadores de espera (SETM, CLEARM) ....................................................... 633

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 13
ndice remissivo

10.4.27 Reaes erros (SETAL) ........................................................................................................ 634


10.4.28 Deslocar at o encosto fixo (FXS, FXST, FXSW, FOCON, FOCOF) ...................................... 635
10.4.29 Definio do ngulo de tangente de percurso em aes sincronizadas ................................. 638
10.4.30 Determinao do atual Override .............................................................................................. 639
10.4.31 Avaliao do tempo usado das aes sincronizadas .............................................................. 640
10.5 Ciclos tecnolgicos .................................................................................................................. 642
10.5.1 Varivel de contexto ($P_TECCYCLE) ................................................................................... 645
10.5.2 Parmetro Call-by-Value ......................................................................................................... 646
10.5.3 Inicializao de parmetros Default ......................................................................................... 646
10.5.4 Controle da execuo de ciclos de tecnologia (ICYCOF, ICYCON) ....................................... 647
10.5.5 Concatenao de ciclos de tecnologia .................................................................................... 648
10.5.6 Ciclos de tecnologia em aes sincronizadas por blocos ....................................................... 648
10.5.7 Estruturas de controle (IF) ....................................................................................................... 649
10.5.8 Instrues de salto (GOTO, GOTOF, GOTOB) ....................................................................... 649
10.5.9 Bloquear, liberar, resetar (LOCK, UNLOCK, RESET) ............................................................. 650
10.6 Cancelar ao sincronizada (CANCEL) .................................................................................. 652
10.7 Comportamento de comando em determinados estados operacionais .................................. 653
11 Oscilao ................................................................................................................................................657
11.1 Oscilao assncrona (OS, OSP1, OSP2, OST1, OST2, OSCTRL, OSNSC, OSE, OSB) ..... 657
11.2 Oscilao controlada atravs de aes sncronas (OSCILL) .................................................. 663
12 Estampagem e puncionamento ..............................................................................................................671
12.1 Ativao, desativao.............................................................................................................. 671
12.1.1 Estampagem e puncionamento ativado ou desativado (SPOF, SON, PON, SONS,
PONS, PDELAYON, PDELAYOF, PUNCHACC) .................................................................... 671
12.2 Preparao automtica do curso............................................................................................. 676
12.2.1 Segmentao de curso para eixos de percurso ...................................................................... 679
12.2.2 Segmentao de curso para eixos individuais ........................................................................ 681
13 Retificao ..............................................................................................................................................683
13.1 Monitorao de ferramenta especfica de retificao no programa de pea (TMON, TMOF). 683
14 Outras funes ........................................................................................................................................685
14.1 Funes de eixo (AXNAME, AX, SPI, AXTOSPI, ISAXIS, AXSTRING, MODAXVAL)............ 685
14.2 Eixos geomtricos comutveis (GEOAX) ................................................................................ 688
14.3 Contentor de eixos (AXCTSWE, AXCTSWED, AXCTSWEC)................................................. 693
14.4 Espera pela posio de eixo vlida (WAITENC) ..................................................................... 699
14.5 Controlar o escopo disponvel de linguagem NC (STRINGIS) ................................................ 701
14.6 Chamada de funo ISVAR e leitura do ndice Array de dados de mquina .......................... 705
14.7 Adaptao de curvas caractersticas de compensao (QECLRNON, QECLRNOF)............. 707
14.8 Chamada interativa a partir do programa de pea (MMC) ...................................................... 709
14.9 Tempo de processamento do programa / contador de peas ................................................. 710
14.9.1 Tempo de processamento do programa / contador de peas (resumo) .................................. 710
14.9.2 Tempo de processamento do programa .................................................................................. 711
14.9.3 Contador de peas .................................................................................................................. 715

Preparao do trabalho
14 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
ndice remissivo

14.10 Sada para um dispositivo ou arquivo externo (EXTOPEN, WRITE, EXTCLOSE) ................. 716
14.11 Alarmes (SETAL)..................................................................................................................... 726
14.12 Parada e retrocesso ampliados e independentes de acionamento (ESR).............................. 728
14.12.1 Configurao da parada independente de acionamento (ESRS) ........................................... 728
14.12.2 Configurao do retrocesso independente de acionamento (ESRR) ...................................... 729
15 Programas de desbaste prprios ............................................................................................................731
15.1 Funes de apoio para o desbaste ......................................................................................... 731
15.2 Criar tabela de contorno (CONTPRON) .................................................................................. 732
15.3 Criar tabela de contorno codificada (CONTDCON)................................................................. 738
15.4 Determinar a interseco entre dois elementos de contorno (INTERSEC). ........................... 742
15.5 Executar por blocos os elementos de contorno de uma tabela (EXECTAB) .......................... 744
15.6 Calcular dados de crculos (CALCDAT) .................................................................................. 745
15.7 Desativar a preparao de contorno (EXECUTE)................................................................... 747
16 Programao externa de ciclos ..............................................................................................................749
16.1 Ciclos tecnolgicos.................................................................................................................. 749
16.1.1 Introduo ................................................................................................................................ 749
16.1.2 Furao, centragem - CYCLE81 ............................................................................................. 751
16.1.3 Furao, escareamento plano - CYCLE82 .............................................................................. 752
16.1.4 Alargamento - CYCLE85 ......................................................................................................... 753
16.1.5 Furao profunda - CYCLE83 ................................................................................................. 754
16.1.6 Mandrilamento - CYCLE86 ...................................................................................................... 756
16.1.7 Rosqueamento com macho sem mandril de compensao - CYCLE84 ................................ 757
16.1.8 Rosqueamento com macho com mandril de compensao - CYCLE840 .............................. 760
16.1.9 Fresamento de furo roscado - CYCLE78 ................................................................................ 762
16.1.10 Qualquer posio - CYCLE802 ............................................................................................... 764
16.1.11 Fileira de furos - HOLES1 ....................................................................................................... 766
16.1.12 Grade ou Quadro - CYCLE801 ............................................................................................... 767
16.1.13 Crculo de furos - HOLES2 ...................................................................................................... 768
16.1.14 Fresamento de facear - CYCLE61 .......................................................................................... 769
16.1.15 Fresamento de bolso retangular - POCKET3 ........................................................................ 771
16.1.16 Fresamento de bolso circular - POCKET4 ............................................................................ 774
16.1.17 Fresamento de salincia retangular - CYCLE76 ..................................................................... 776
16.1.18 Fresamento de salincia circular - CYCLE77 .......................................................................... 778
16.1.19 Poliedro - CYCLE79 ................................................................................................................ 780
16.1.20 Ranhura longitudinal - SLOT1 ................................................................................................. 782
16.1.21 Ranhura circular - SLOT2 ........................................................................................................ 785
16.1.22 Fresamento de ranhura aberta - CYCLE899 ........................................................................... 787
16.1.23 Oblongo - LONGHOLE ............................................................................................................ 789
16.1.24 Fresamento de roscas - CYCLE70 .......................................................................................... 791
16.1.25 Ciclo de gravao - CYCLE60 ................................................................................................. 793
16.1.26 Chamada de contorno - CYCLE62 .......................................................................................... 796
16.1.27 Fresamento de percurso - CYCLE72 ...................................................................................... 797
16.1.28 Pr-furao de bolso de contorno - CYCLE64 ...................................................................... 800
16.1.29 Fresamento de bolso de contorno - CYCLE63 ...................................................................... 802
16.1.30 Desbaste - CYCLE951 ............................................................................................................ 804
16.1.31 Canal - CYCLE930 .................................................................................................................. 807

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 15
ndice remissivo

16.1.32 Formas de alvio - CYCLE940 ................................................................................................. 810


16.1.33 Torneamento de roscas - CYCLE99 ........................................................................................ 813
16.1.34 Sequncia de roscas - CYCLE98 ............................................................................................ 816
16.1.35 Separao - CYCLE92 ............................................................................................................ 819
16.1.36 Usinagem de canal de contorno - CYCLE952 ......................................................................... 821
16.1.37 Rotao - CYCLE800 .............................................................................................................. 825
16.1.38 High Speed Settings - CYCLE832 ........................................................................................... 828
16.1.39 Usinagem de alta velocidade (HSC) - CYCLE_HSC ............................................................... 829
17 Tabelas ...................................................................................................................................................831
17.1 Instrues ................................................................................................................................ 831
17.2 Instrues Disponibilidade no SINUMERIK 828D ................................................................... 886
17.3 Atual idioma na HMI ................................................................................................................ 908
A Apndice .................................................................................................................................................909
A.1 Lista de abreviaes................................................................................................................ 909
A.2 Vista Geral da documentao ................................................................................................. 914
Glossrio ..................................................................................................................................................917

Preparao do trabalho
16 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC 1
1.1 Variveis

1.1.1 Informaes gerais sobre variveis


Atravs do uso de variveis, principalmente junto com funes de clculo e estruturas de
controle, os programas de pea e os ciclos podem ser compostos de modo extremamente
flexvel. Para isso o sistema disponibiliza trs diferentes tipos de variveis:
Variveis de sistema
As variveis de sistema so variveis definidas no sistema e disponibilizadas ao usurio,
e possuem um significado fixo. Elas tambm so lidas e gravadas pelo software do
sistema. Exemplo: Dados de mquina
O significado de uma varivel de sistema amplamente definido de modo fixo pelo
sistema atravs das propriedades. Porm, apenas uma pequena parte das propriedades
permite ser adaptada pelo usurio atravs de uma redefinio. Veja "Redefinio de
variveis de sistema, variveis de usurio e comandos de linguagem NC (REDEF)
[Pgina 31]"
Variveis de usurio
As variveis de usurio so variveis, cujo significado no conhecido pelo sistema e
nem pode ser avaliado pelo sistema. O significado definido exclusivamente pelo
usurio.
As variveis de usurio esto divididas em:
- Variveis de usurio pr-definidas
As variveis de usurio pr-definidas so variveis j definidas no sistema, cuja
grandeza ainda precisa ser parametrizada pelo usurio atravs de dados de mquina
especficos. As propriedades destas variveis podem ser amplamente adaptadas pelo
usurio. Veja "Redefinio de variveis de sistema, variveis de usurio e comandos
de linguagem NC (REDEF) [Pgina 31]".
- Variveis definidas pelo usurio
As variveis definidas pelo usurio so variveis que so definidas exclusivamente
pelo usurio e somente so criadas pelo sistema durante o processamento. Sua
grandeza, tipo de dado, visibilidade e todas demais propriedades so definidas
exclusivamente pelo usurio.
Veja "Definio de variveis de usurio (DEF) [Pgina 25]"

Preparao do trabalho
Manual de programao 09/2011, 6FC5398-2BP40-2KA0 17
Programao flexvel de NC
1.1 Variveis

Ver tambm
Variveis de sistema Variveis de sistema [Pgina 18]
Variveis de usurio pr-definidas: Parmetros de clculo (R) Variveis de usurio pr-
definidas: Parmetros de clculo (R) [Pgina 21]
Variveis de usurio pr-definidas: Variveis de ligao Variveis de usurio pr-definidas:
Variveis de ligao [Pgina 23]
Atributo: Valor de inicializao Atributo: Valor de inicializao [Pgina 34]
Atributo: Valores de limite (LLI, ULI) Atributo: Valores de limite (LLI, ULI) [Pgina 37]
Atributo: Unidade fsica (PHU) Atributo: Unidade fsica (PHU) [Pgina 39]
Atributo: Direitos de acesso (APR, APW, APRP, APWP, APRB, APWB) Atributo: Direitos de
acesso (APR, APW, APRP, APWP, APRB, APWB) [Pgina 41]
Viso geral dos atributos definveis e redefinveis Viso geral dos atributos definveis e
redefinveis [Pgina 46]
Definio e inicializao de variveis de campo (DEF, SET, REP) Definio e inicializao de
variveis de campo (DEF, SET, REP) [Pgina 47]
Tipos de dados Tipos de dados [Pgina 55]

1.1.2 Variveis de sistema


As variveis de sistema so variveis pr-definidas no sistema, que nos programas de pea
e nos ciclos oferecem o acesso atual parametrizao do comando, assim como aos
estados da mquina, do comando e do processo.

Variveis de pr-processamento
As variveis de pr-processamento so denominadas como variveis de sistema, que no
contexto do pr-processamento, ou seja, no momento da interpretao do bloco do
programa de pea onde est programada a varivel de sistema, podem ser lidas e gravadas.
As variveis de pr-processamento no disparam nenhuma parada de pr-processamento.

Variveis de processamento principal


As variveis de processamento principal so denominadas como variveis de sistema, que
no contexto do processamento principal, ou seja, no momento da execuo do bloco do
programa de pea onde est programada a varivel de sistema, podem ser lidas e gravadas.
As variveis de processamento principal so:
Variveis de sistema, que podem ser programadas em aes sncronas (leitura/gravao)
Variveis de sistema, que podem ser programadas no programa de pea e que disparam
a parada de pr-processamento (leitura/gravao)
Variveis de sistema, que podem ser programadas no programa de pea e que
determinam o valor no pr-processamento, mas a gravao somente ocorre no
processamento principal (Sincronizado com o processamento principal: apenas gravao)

Preparao do trabalho
18 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

Sistemtica de prefixos
Para uma identificao especial das variveis de sistema normalmente se coloca um prefixo
no nome, que composto pelo caractere $, seguido de uma ou duas letras e um sublinhado:

$ + 1letra Significado: Tipo de dados


Variveis de sistema, que so lidas / gravadas no pr-processamento
$M Dados de mquina 1)
$S Dados de ajuste, reas de proteo 1)
$T Dados de gerenciamento de ferramentas
$P Valores programados
$C Variveis de ciclo dos ciclos envoltrios ISO
$O Dados opcionais
R Parmetro R (parmetro de clculo) 2)
Variveis de sistema, que so lidas / gravadas no processamento principal
$$M Dados de mquina 1)
$$S Dados de ajuste 1)
$A Atuais dados de processamento principal
$V Dados do servo
$R Parmetro R (parmetro de clculo) 2)
1) Para o uso de dados de mquina e dados de ajuste em programa de pea / ciclo como variveis de
pr-processamento escreve-se o prefixo com um caractere $. Para o uso em aes sncronas como
uma varivel de processamento principal o prefixo escrito com dois caracteres $.
2) Para o uso de um parmetro R no programa de pea / ciclo como uma varivel de pr-

processamento no escrito nenhum prefixo, p.ex. R10. Para o uso em uma ao sncrona como uma
varivel de processamento principal o prefixo escrito com um caractere $, p.ex. $R10.

2letra Significado: Visibilidade


N Varivel global do NCK (NCK)
C Varivel especfica de canal (Channel)
A Varivel especfica de eixo (Axis)

Condies gerais

Excees na sistemtica de prefixos


As seguintes variveis de sistema diferem da sistema de prefixos mencionada acima:
$TC_...: A 2letra C neste caso no uma varivel especfica de canal, mas varivel de
sistema especfica de porta-ferramenta (TC = Tool Carrier)
$P_ ...: Variveis de sistema especficas de canal

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 19
Programao flexvel de NC
1.1 Variveis

Emprego de dados de mquina e dados de ajuste em aes sncronas


No emprego de dados de mquina e dados de ajuste em aes sncronas possvel
determinar atravs do prefixo se os dados de mquina ou de ajuste so lidos e gravados de
maneira sncrona no pr-processamento ou no processamento principal.
Se o dado permanece inalterado durante o processamento, a leitura pode ser sincronizada
com o pr-processamento. Para isso o prefixo do dado de mquina ou do dado de ajuste
escrito com um caractere $:

Cdigo de programa
ID=1 WHENEVER G710 $AA_IM[z] < $SA_OSCILL_REVERSE_POS2[Z]6 DO $AA_OVR[X]=0

Se o dado variar durante o processamento, a leitura / gravao deve ser sincronizada com o
processamento principal. Para isso o prefixo do dado de mquina ou do dado de ajuste
escrito com dois caracteres $:

Cdigo de programa
ID=1 WHENEVER $AA_IM[z] < $$SA_OSCILL_REVERSE_POS2[Z]6 DO $AA_OVR[X]=0

Indicao
Gravao de dados de mquina
Na gravao de um dado de mquina ou de ajuste deve-se prestar ateno para que o nvel
de acesso ativo durante a execuo do programa de pea / ciclo permita o acesso de
gravao e que o efeito do dado seja "IMMEDIATE".

Literatura
Uma listagem das propriedades de todas as variveis de sistema est disponvel no(a):
Manual de listas de Variveis de sistema

Ver tambm
Informaes gerais sobre variveis Informaes gerais sobre variveis [Pgina 17]

Preparao do trabalho
20 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

1.1.3 Variveis de usurio pr-definidas: Parmetros de clculo (R)

Funo
Os parmetros de clculo ou parmetros R so variveis de usurio pr-definidas com a
identificao R, definida como campo do tipo de dado REAL. Por motivos histricos em
parmetros R permitido usar tanto a forma escrita com ndice de campo, p.ex. R[10],
como a forma escrita sem o ndice de campo , p.ex. R10.
Para o uso em aes sncronas deve ser colocada a letra $ na frente, p.ex. $R10.

Sintaxe
Para uso como varivel de pr-processamento:
R<n>
R[<expresso>]
Para uso como varivel de processamento principal:
$R<n>
$R[<expresso>]

Significado

R: Identificador para uso como varivel de pr-processamento, p.ex. em


programa de pea
$R: Identificador para uso como varivel de processamento principal, p.ex.
em aes sncronas
Tipo: REAL
Faixa de Para forma escrita no exponencial:
valores: (0.000 0001 ... 9999 9999)
Nota:
So permitidas no mximo 8casas decimais
Para forma escrita exponencial:
(1*10-300 ... 1*10+300)
Nota:
Forma escrita: <mantissa>EX<exponente> p.ex.
8.2EX-3
So permitidos at 10 caracteres, inclusive o sinal
precedente e o ponto decimal.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 21
Programao flexvel de NC
1.1 Variveis

<n>: Nmero do parmetro R


Tipo: INT
Faixa de 0 - MAX_INDEX
valores: Nota
O MAX_INDEX resulta do nmero parametrizado de
parmetros R:
MAX_INDEX = (MD28050 $MN_MM_NUM_R_PARAM) - 1
<expresso>: ndice de campo
Como ndice de campo pode ser especificada uma expresso qualquer,
enquanto o resultado da expresso permitir sua converso para o tipo de
dado INT (INT, REAL, BOOL, CHAR)

Exemplo
Atribuies em parmetros R e uso de parmetros R em funes matemticas:

Cdigo de programa Comentrio


R0=3.5678 ; Atribuio no pr-processamento
R[1]=-37.3 ; Atribuio no pr-processamento
R3=-7 ; Atribuio no pr-processamento
$R4=-0.1EX-5 ; Atribuio no processamento principal: R4 = -0.1 *
10^-5
$R[6]=1.874EX8 ; Atribuio no processamento principal: R6 = 1.874 *
10^8
R7=SIN(25.3) ; Atribuio no pr-processamento

R[R2]=R10 ; Endereamento indireto atravs de parmetro R


R[(R1+R2)*R3]=5 ; Endereamento indireto atravs de expresso
matemtica

X=(R1+R2) ; Desloca o eixo X at a posio resultante da soma de


R1 e R2
Z=SQRT(R1*R1+R2*R2) ; Desloca o eixo Z at a posio da raiz quadrada de
(R1^2 + R2^2)

Ver tambm
Informaes gerais sobre variveis Informaes gerais sobre variveis [Pgina 17]

Preparao do trabalho
22 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

1.1.4 Variveis de usurio pr-definidas: Variveis de ligao

Funo
Atravs das variveis de ligao durante a funo "NCU-Link" podem ser trocados dados
cclicos entre NCUs, que esto ligadas uma a outra atravs de uma rede. Aqui elas permitem
o acesso especfico de formato de dado memria de variveis de ligao. A memria de
variveis de ligao definida de acordo com a instalao, tanto pelo tamanho como pela
estrutura de dados do usurio / fabricante da mquina.
Variveis de ligao so variveis de usurio globais de sistema, que podem ser lidas e
gravadas em programas de pea e em ciclos mediante uma comunicao de ligao (Link)
configurada de todas NCUs do grupo de ligao. Em contrapartida s variveis de usurio
globais (GUD) as variveis de ligao tambm podem ser utilizadas em aes sncronas.
Para instalaes sem NCU-Link ativo, as variveis de ligao locais do comando podem ser
utilizadas paralelamente s variveis de usurio globais (GUD) como variveis de usurio
globais extras.

Sintaxe
$A_DLB[<ndice>]
$A_DLW[<ndice>]
$A_DLD[<ndice>]
$A_DLR[<ndice>]

Significado

$A_DLB: Varivel de ligao para formato de dado BYTE (1 Byte)


Tipo de dado: UINT
Faixa de 0 ... 255
valores:
$A_DLW: Varivel de ligao para formato de dado WORD (2 Bytes)
Tipo de dado: INT
Faixa de -32768 ... 32767
valores:
$A_DLD: Varivel de ligao para formato de dado DWORD (4 Bytes)
Tipo de dado: INT
Faixa de -2147483648 ... 2147483647
valores:
$A_DLR: Varivel de ligao para formato de dado REAL (8 Bytes)
Tipo de dado: REAL
Faixa de (2,2*10-308 1,8*10+308)
valores:

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 23
Programao flexvel de NC
1.1 Variveis

<ndice>: ndice de endereo em Byte, calculado do incio da memria de variveis


de ligao
Tipo de dado: INT
Faixa de 0 - MAX_INDEX
valores: Nota
O MAX_INDEX resulta do tamanho parametrizado da
memria de variveis de ligao: MAX_INDEX =
(MD18700 $MN_MM_SIZEOF_LINKVAR_DATA) - 1
Somente podem ser programados ndices, de modo
que os Bytes endereados na memria de variveis de
ligao estejam dentro de um limite de formato de
dados
ndice = n * Bytes, com n = 0, 1, 2, ...
$A_DLB[i]: i = 0, 1, 2, ...
$A_DLW[i]: i = 0, 2, 4, ...
$A_DLD[i]: i = 0, 4, 8, ...
$A_DLR[i]: i = 0, 8, 16, ...

Exemplo
No sistema de automao esto disponveis 2 NCUs (NCU1 e NCU2). Na NCU1 est
conectado o eixo de mquina AX2, que deve ser deslocado como eixo de lincado da NCU2.
A NCU1 grava ciclicamente o valor real de corrente ($VA_CURR) do eixo AX2 na memria
de variveis de ligao. A NCU2 l ciclicamente o valor real de corrente transmitido pela
comunicao de ligao (Link) e mostra o alarme 61000 no caso de ser ultrapassado o valor
limite.
A estrutura de dados na memria de variveis de ligao est representada na figura a
seguir. O valor real de corrente transferido atravs do valor REAL.

0HPULDGHYDULYHLVGHOLJDR
0'01B00B6,=(2)B/,1.9$5B'$7$ 

QGLFH  %<7(  %<7(  :25' ':25' 

 ':25'  ':25' 

 5($/

Preparao do trabalho
24 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

NCU1
A NCU1 em uma ao sncrona esttica, durante o ciclo IPO, grava ciclicamente o valor real
de corrente do eixo AX2 na memria de variveis de ligao atravs da varivel de ligao
$A_DLR[ 16 ].

Cdigo de programa
N111 IDS=1 WHENEVER TRUE DO $A_DLR[16]=$VA_CURR[AX2]

NCU2
A NCU2 em uma ao sincronizada esttica, durante o ciclo IPO, l ciclicamente o valor real
de corrente do eixo AX2 a partir da memria de variveis de ligao atravs da varivel de
ligao $A_DLR[ 16 ]. Se o valor real de corrente for maior que 23.0 A, ser exibido o alarme
61000.

Cdigo de programa
N222 IDS=1 WHEN $A_DLR[16] > 23.0 DO SETAL(61000)

Ver tambm
Informaes gerais sobre variveis Informaes gerais sobre variveis [Pgina 17]

1.1.5 Definio de variveis de usurio (DEF)

Funo
Com o comando DEF podemos definir nossas prprias variveis e preencher as mesmas
com valores. Para diferenciar das variveis de sistema estas so denominadas de variveis
definidas pelo usurio ou de variveis de usurio (User Data).
De acordo com a rea de validade, ou seja, a rea em que a varivel visvel, existem as
seguintes categorias de variveis de usurio:
Variveis de usurio locais (LUD)
As variveis de usurio locais (LUD) so variveis que esto definidas em um programa
de pea, que no o programa principal no momento da execuo. Elas so criadas com
a chamada do programa de pea e canceladas com o fim do programa de pea ou com
NC-Reset. A LUD somente pode ser acessada no contexto do programa de pea em que
foi definida.
Variveis de usurio globais de programa (PUD)
As variveis de usurio globais de programa (PUD) so variveis que so definidas em
um programa de pea utilizado como programa principal. Elas so criadas com o incio do
programa de pea e canceladas no fim do programa ou com NC-Reset. Os dados PUD
podem ser acessados no programa principal e em todas subrotinas.
Variveis de usurio globais (GUD)
As variveis de usurio globais (GUD) so variveis globais de NC ou de canal, que esto
definidas em um mdulo de dados (SGUD, MGUD, UGUD, GUD4 ... GUD9) e que
tambm so preservadas alm do PowerOn. A GUD pode ser acessada em todos os
programas de pea.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 25
Programao flexvel de NC
1.1 Variveis

As variveis de usurio devem ser definidas antes de serem utilizadas (leitura/gravao).


Aqui devem ser observadas as seguintes regras:
As GUD devem ser definidas em um arquivo de definies, p.ex. _N_DEF_DIR/
_M_SGUD_DEF.
A PUD e a LUD devem ser definidas na parte de definies de um programa de pea.
A definio de dados deve ser realizada em um bloco prprio.
Por definio de dados somente pode ser utilizado um tipo de dado.
Por definio de dados podem ser definidas vrias variveis do mesmo tipo de dado.

Sintaxe
DEF <rea> <tipo> <parada_pr_processamento> <momento_inicializao>
<unidade_fsica> <valores_limite> <direitos_acesso>
<nome>[<valor_1>,<valor_2>,<valor_3>]=<valor_inicializao>

Significado

DEF: Comando para definio de variveis de usurio GUD, PUD, LUD


<rea>: rea de validade, apenas relevante para GUD:
NCK: Variveis de usurio globais de NC
CHAN: Variveis de usurio globais de canal
<tipo>: Tipo de dado:
INT: Valor inteiro com sinal
REAL: Nmero real (LONG REAL conforme
IEEE)
BOOL: Valor lgico TRUE (1) / FALSE (0)
CHAR: Caracteres ASCII
STRING Sequncia de caracteres de tamanho
[<comprimento_mx>]: definido
AXIS: Identificador de eixo/fuso
FRAME: Especificaes geomtricas para uma
transformao de coordenadas
esttica
veja "Tipos de dados [Pgina 55]"
<parada_pr_ Parada de pr-processamento, apenas relevante para GUD
processamento>: (opcional)
SYNR: Parada de pr-processamento na leitura
SYNW: Parada de pr-processamento na gravao
SYNRW: Parada de pr-processamento na leitura e
gravao

Preparao do trabalho
26 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

<momento_ Momento em que a varivel deve ser reinicializada (opcional)


inicializao>: INIPO: PowerOn
INIRE: Fim do programa principal, NC-Reset ou
PowerOn
INICF: NewConfig ou fim do programa principal, NC-
Reset ou PowerOn
PRLOC: Fim do programa principal, NC-Reset aps
alterao local ou PowerOn
veja "Atributo: Valor de inicializao [Pgina 34]"
<unidade_ Unidade fsica (opcional)
fsica>: PHU <unidade>:
veja "Atributo: Unidade fsica (PHU) [Pgina 39]"
<valores_ Valor limite inferior e superior (opcional)
limite>: LLI <valor_limite>: Valor limite inferior (lower limit)
ULI <valor_limite>: Valor limite superior (upper limit)
veja "Atributo: Valores de limite (LLI, ULI) [Pgina 37]"
<direitos_ Direitos de acesso para leitura / gravao da GUD atravs de
acesso>: programa de pea ou BTSS (opcional)
APRP <nvel_proteo>: Leitura: Programa de pea
APWP <nvel_proteo>: Gravao: Programa de pea
APRB <nvel_proteo>: Leitura: BTSS
APWB <nvel_proteo>: Gravao: BTSS
Nvel de Faixa de valores: 0 ... 7
proteo
veja "Atributo: Direitos de acesso (APR, APW, APRP, APWP, APRB,
APWB) [Pgina 41]"
<nome>: Nome das variveis
Nota
Mximo 31caracteres
Os primeiros dois caracteres devem ser uma letra e/ou um
sublinhado.
O caractere "$" est reservado para variveis de sistema e no
pode ser utilizado.
[<valor_1>, Indicao dos tamanhos de campo para variveis de campo de 1 at
<valor_2>, 3 dimenses (opcional)
<valor_3>]:
<valor_ Valor de inicializao (opcional)
inicializao>: veja "Atributo: Valor de inicializao [Pgina 34]"
Para inicializao de variveis de campo:
veja "Definio e inicializao de variveis de campo (DEF, SET,
REP) [Pgina 47]"

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 27
Programao flexvel de NC
1.1 Variveis

Exemplos
Exemplo 1: Definies de variveis de usurio no mdulo de dados para fabricante da
mquina

Cdigo de programa
%_N_MGUD_DEF ; Mdulo GUD: Fabricante da mquina
$PATH=/_N_DEF_DIR
DEF CHAN REAL PHU 24 LLI 0 ULI 10 CORRENTE_1, CORRENTE_2
; Descrio
; Definio de duas GUDs: CORRENTE_1, CORRENTE_2
; rea de validade: Amplo canal
; Tipo de dado: REAL
; Parada de pr-processamento: no programada => valor Default = sem parada de pr-processamento
; Unidade fsica: 24 = [A]
; Valores limite: Low = 0.0, High = 10.0
; Direitos de acesso: no programado => valor Default = 7 = posio do seletor com chave 0
; Valor de inicializao: no programado => valor Default = 0.0

DEF NCK REAL PHU 13 LLI 10 APWP 3 APRP 3 APWB 0 APRB 2 TEMPO_1=12, TEMPO_2=45
; Descrio
; Definio de duas GUDs: TEMPO_1, TEMPO_2
; rea de validade: Amplo NCK
; Tipo de dado: REAL
; Parada de pr-processamento: no programada => valor Default = sem parada de pr-processamento
; Unidade fsica: 13 = [s]
; Valores limite: Low = 10.0, High = no programado => limite superior da faixa de definio
; Direitos de acesso:
; Programa de pea: Gravao/leitura = 3 = usurio final
; BTSS: Gravao = 0 = Siemens, leitura = 3 = usurio final
; Valor de inicializao: TEMPO_1 = 12.0, TEMPO_2 = 45.0

DEF NCK APWP 3 APRP 3 APWB 0 APRB 3 STRING[5] GUD5_NOME = "COUNTER"


; Descrio
; Definio de uma GUD: GUD5_NOME
; rea de validade: Amplo NCK
; Tipo de dado: STRING, mx. 5 caracteres
; Parada de pr-processamento: no programada => valor Default = sem parada de pr-processamento
; Unidade fsica: no programada => valor Default = 0 = nenhuma unidade fsica
; Valores limite: no programado => limites de faixa de definio: Low = 0, High = 255
; Direitos de acesso:
; Programa de pea: Gravao/leitura = 3 = usurio final
; BTSS: Gravao = 0 = Siemens, leitura = 3 = usurio final
; Valor de inicializao: "COUNTER"
M30

Preparao do trabalho
28 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

Exemplo 2: Variveis de usurio globais de programa e locais (PUD / LUD)

Cdigo de programa Comentrio


PROC MAIN ; Programa principal
DEF INT VAR1 ; Definio PUD
...
SUB2 ; Chamada de subrotina
...
M30

Cdigo de programa Comentrio


PROC SUB2 ; Subrotina SUB2
DEF INT VAR2 ; LUD-DEFINITION
...
IF (VAR1==1) ; Leitura da PUD
VAR1=VAR1+1 ; Leitura e gravao da PUD
VAR2=1 ; Gravao da LUD
ENDIF
SUB3 ; Chamada de subrotina
...
M17

Cdigo de programa Comentrio


PROC SUB3 ; Subrotina SUB3
...
IF (VAR1==1) ; Leitura da PUD
VAR1=VAR1+1 ; Leitura e gravao da PUD
VAR2=1 ; Erro: LUD no reconhecida pela SUB2
ENDIF
...
M17

Exemplo 3: Definio e uso de variveis de usurio do tipo de dado AXIS

Cdigo de programa Comentrio


DEF AXIS ABSCISSA ; 1 eixo geomtrico
DEF AXIS SPINDLE ; Fuso
...
IF ISAXIS(1)==FALSE GOTOF CONTINUA
ABSCISSA = $P_AXN1
CONTINUA:
...
SPINDLE=(S1) 1 fuso
OVRA[SPINDLE]=80 ; Override de fuso = 80%
SPINDLE=(S3) 3 fuso

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 29
Programao flexvel de NC
1.1 Variveis

Condies gerais
Variveis de usurio globais (GUD)
Durante a definio de variveis de usurio globais (GUD) devem ser observados os
seguintes dados de mquina:

N Identificador: $MN_ Significado


11140 GUD_AREA_ SAVE_TAB Segurana adicional para mdulos GUD
18118 1) MM_NUM_GUD_MODULES Nmero de arquivos GUD no sistema de arquivos
ativo
18120 1) MM_NUM_GUD_NAMES_NCK Nmero de nomes de GUDs globais

18130 1) MM_NUM_GUD_NAMES_CHAN Nmero de nomes de GUDs especficas de canal

18140 1) MM_NUM_GUD_NAMES_AXIS Nmero de nomes de GUDs especficas de eixo

18150 1) MM_GUD_VALUES_MEM Capacidade de memria para valores GUD globais

18660 1) MM_NUM_SYNACT_GUD_REAL Nmero de GUDs configurveis de tipo de dado


REAL
18661 1) MM_NUM_SYNACT_GUD_INT Nmero de GUDs configurveis de tipo de dado INT

18662 1) MM_NUM_SYNACT_GUD_BOOL Nmero de GUDs configurveis de tipo de dado


BOOL
18663 1) MM_NUM_SYNACT_GUD_AXIS Nmero de GUDs configurveis de tipo de dado
AXIS
18664 1) MM_NUM_SYNACT_GUD_CHAR Nmero de GUDs configurveis de tipo de dado
CHAR
18665 1) MM_NUM_SYNACT_GUD_STRING Nmero de GUDs configurveis de tipo de dado
STRING

1)
O MD no SINUMERIK 828D somente pode ser lido!
Variveis de usurio globais de programa (PUD)

ATENO
Visibilidade de variveis de usurio locais de programa (PUD)
As variveis de usurio locais de programa (PUD) definidas no programa principal somente
estaro visveis nas subrotinas se o seguinte dado de mquina estiver definido:
MD11120$MN_LUD_EXTENDED_SCOPE = 1
Com MD11120 = 0 as variveis de usurio locais de programa definidas no programa
principal estaro visveis somente no programa principal.

Preparao do trabalho
30 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

Utilizao por outros canais de uma varivel de usurio global de NCK do tipo de dado AXIS
Uma varivel de usurio global de NCK do tipo de dado AXIS, que foi inicializada com um
identificador de eixo pela definio no mdulo de dados, somente pode ser utilizada em
diferentes canais do NC se o eixo tiver o mesmo nmero de eixo de canal nestes canais.
Se este no for o caso, a varivel deve ser carregada no incio do programa de pea ou,
como mostra o prximo exemplo, deve ser utilizada a funo AXNAME(...) (veja "").

Cdigo de programa Comentrio


DEF NCK STRING[5] EIXO="X" ; Definio em mdulo de dados

N100 AX[AXNAME(EIXO)]=111 G00 ; Utilizao em programa de pea

Ver tambm
Informaes gerais sobre variveis Informaes gerais sobre variveis [Pgina 17]

1.1.6 Redefinio de variveis de sistema, variveis de usurio e comandos de


linguagem NC (REDEF)

Funo
Com o comando REDEF podem ser alterados os atributos das variveis de sistema, variveis
de usurio e comandos de linguagem NC. A condio bsica para uma redefinio que ela
seja executada a tempo aps a definio correspondente.
Em uma redefinio no podem ser alterados vrios atributos simultaneamente. Para cada
atributo que deve ser alterado deve ser programada uma instruo REDEF prpria.
Se forem programadas vrias alteraes concorrentes de atributos, ento a ltima que
sempre estar ativa.
Atributos redefinveis
Veja "Viso geral dos atributos definveis e redefinveis [Pgina 46]"
Variveis de usurio locais (PUD / LUD)
Para variveis de usurio locais (PUD / LUD) no pode ser realizada nenhuma redefinio.

Sintaxe
REDEF <nome> <parada_pr_processamento>
REDEF <nome> <unidade_fsica>
REDEF <nome> <valores_limite>
REDEF <nome> <direitos_acesso>
REDEF <nome> <momento_inicializao>
REDEF <nome> <momento_inicializao> <valor_inicializao>

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 31
Programao flexvel de NC
1.1 Variveis

Significado

REDEF: Comando para redefinio de um determinado atributo de variveis


de sistema, variveis de usurio e comandos de linguagem NC
<nome>: Nome de uma varivel ou de um comando de linguagem NC que j
foi definido
<parada_pr_ Parada de pr-processamento
processamento>: SYNR: Parada de pr-processamento na leitura
SYNW: Parada de pr-processamento na gravao
SYNRW: Parada de pr-processamento na leitura e
gravao
<unidade_ Unidade fsica
fsica>: PHU <unidade>:
veja "Atributo: Unidade fsica (PHU) [Pgina 39]"
Nota
No redefinvel para:
Variveis de sistema
Dados de usurio globais (GUD)
Tipos de dados: BOOL, AXIS, STRING, FRAME
<valores_ Valor limite inferior e/ou superior
limite>: LLI <valor_limite>: Valor limite inferior (lower limit)
ULI <valor_limite>: Valor limite superior (upper limit)
veja "Atributo: Valores de limite (LLI, ULI) [Pgina 37]"
Nota
No redefinvel para:
Variveis de sistema
Dados de usurio globais (GUD)
Tipos de dados: BOOL, AXIS, STRING, FRAME
<direitos_ Direitos de acesso para leitura / gravao atravs de programa de
acesso>: pea ou BTSS
APX Execuo: Elemento de linguagem NC
<nvel_proteo>:
APRP Leitura: Programa de pea
<nvel_proteo>:
APWP Gravao: Programa de pea
<nvel_proteo>:
APRB Leitura: BTSS
<nvel_proteo>:
APWB Gravao: BTSS
<nvel_proteo>:
Nvel de proteo Faixa de valores: 0 ... 7
veja "Atributo: Direitos de acesso (APR, APW, APRP, APWP, APRB,
APWB) [Pgina 41]"

Preparao do trabalho
32 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

<momento_ Momento em que a varivel deve ser reinicializada


inicializao>: INIPO: PowerOn
INIRE: Fim do programa principal, NC-Reset ou PowerOn
INICF: NewConfig ou fim do programa principal, NC-Reset
ou PowerOn
PRLOC: Fim do programa principal, NC-Reset aps
alterao local ou PowerOn
veja "Atributo: Valor de inicializao [Pgina 34]"
<valor_ Valor de inicializao
inicializao>: Com a redefinio do valor de inicializao sempre deve ser
especificado junto um momento de inicializao (veja
<momento_inicializao>).
veja "Atributo: Valor de inicializao [Pgina 34]"
Para inicializao de variveis de campo:
veja "Definio e inicializao de variveis de campo (DEF, SET,
REP) [Pgina 47]"
Nota
No redefinvel para:
Variveis de sistema, exceto dados de ajuste

Exemplo
Redefinies da varivel de sistema $TC_DPC1 no mdulo de dados para fabricante da
mquina

Cdigo de programa
%_N_MGUD_DEF ; Mdulo GUD: Fabricante da mquina
$PATH=/_N_DEF_DIR
REDEF $TC_DPC1 APWB 2 APWP 3
REDEF $TC_DPC1 PHU 21
REDEF $TC_DPC1 LLI 0 ULI 200
REDEF $TC_DPC1 INIPO (100, 101, 102, 103)
; Descrio
; Direito de acesso para gravao: BTSS = nvel de proteo 2, programa de pea = nvel de proteo 3
; Nota
; Com a utilizao de arquivos ACCESS a redefinio dos direitos de acesso do
; _N_MGUD_DEF deve ser passada para o _N_MACCESS_DEF
; Unidade fsica = [ % ]
; Valores limite: inferior = 0, superior = 200
; A varivel de campo inicializada com o PowerOn com os quatro valores
M30

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 33
Programao flexvel de NC
1.1 Variveis

Condies gerais
Granularidade
Uma redefinio sempre estar relacionada varivel inteira, identificada de forma nica
atravs de seu nome. No possvel, por exemplo, em variveis de campo atribuir diferentes
valores de atributo para elementos de campo individuais.

Ver tambm
Informaes gerais sobre variveis Informaes gerais sobre variveis [Pgina 17]

1.1.7 Atributo: Valor de inicializao

Definio (DEF) de variveis de usurio


Com a definio pode ser definido um valor de inicializao para as seguintes variveis de
usurio:
Variveis de usurio globais (GUD)
Variveis de usurio globais de programa (PUD)
Variveis de usurio locais (LUD)

Redefinio (REDEF) de variveis de sistema e de usurio


Com a redefinio pode ser definido um valor de inicializao para as seguintes variveis:
Dados de sistema
- Dados de ajuste
Dados de usurio
- Parmetros R
- Varivel de ao sncrona ($AC_MARKER, $AC_PARAM, $AC_TIMER)
- GUD de ao sncrona (SYG_xy[ ], com x=R, I, B, A, C, S e y=S, M, U, 4, ..., 9)
- Parmetros EPS
- Dados de ferramenta OEM
- Dados de magazine OEM
- Variveis de usurio globais (GUD)

Preparao do trabalho
34 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

Momento de reinicializao
Com a redefinio pode ser especificado o momento em que a varivel reinicializada, isto
, passa-se novamente para o valor de inicializao:
INIPO (Power On)
A varivel reinicializada com PowerOn.
INIRE (Reset)
A varivel reinicializada com NC-Reset, BAG-Reset, fim de programa de pea (M02 /
M30) ou PowerOn.
INICF (NewConfig)
A varivel reinicializada com a solicitao de NewConf atravs da HMI, comando de
programa de pea NEWCONFIG ou NC-Reset, BAG-Reset, fim de programa de pea (M02
/ M30) ou PowerOn.
PRLOC (alterao local de programa)
A varivel somente reinicializada com NC-Reset, BAG-Reset ou fim de programa (M02 /
M30), se ela for alterada no contexto do atual programa de pea.
O atributo PRLOC somente pode ser utilizado no contexto com dados de ajuste
programveis (veja a tabela a seguir).
Tabelas 1-1 Dados de ajuste programveis

Nmero Identificador Comando G 1)


42000 $SC_THREAD_START_ANGLE SF
42010 $SC_THREAD_RAMP_DISP DITS / DITE
42400 $SA_PUNCH_DWELLTIME PDELAYON
42800 $SA_SPIND_ASSIGN_TAB SETMS
43210 $SA_SPIND_MIN_VELO_G25 G25
43220 $SA_SPIND_MAX_VELO_G26 G26
43230 $SA_SPIND_MAX_VELO_LIMS LIMS
43300 $SA_ASSIGN_FEED_PER_REV_SOURCE FPRAON
43420 $SA_WORKAREA_LIMIT_PLUS G26
43430 $SA_WORKAREA_LIMIT_MINUS G25
43510 $SA_FIXED_STOP_TORQUE FXST
43520 $SA_FIXED_STOP_WINDOW FXSW
43700 $SA_OSCILL_REVERSE_POS1 OSP1
43710 $SA_OSCILL_REVERSE_POS2 OSP2
43720 $SA_OSCILL_DWELL_TIME1 OST1
43730 $SA_OSCILL_DWELL_TIME2 OST2
43740 $SA_OSCILL_VELO FA
43750 $SA_OSCILL_NUM_SPARK_CYCLES OSNSC
43760 $SA_OSCILL_END_POS OSE
43770 $SA_OSCILL_CTRL_MASK OSCTRL

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 35
Programao flexvel de NC
1.1 Variveis

Tabelas 1-1 Dados de ajuste programveis

Nmero Identificador Comando G 1)


43780 $SA_OSCILL_IS_ACTIVE OS
43790 $SA_OSCILL_START_POS OSB
1) com este comando G acionado o dado de ajuste

Condies gerais
Valor de inicializao: Variveis de usurio globais (GUD)
Para variveis de usurio globais (GUD) com a rea de validade NCK somente pode ser
definido o INIPO (Power On) como momento de inicializao.
Para variveis de usurio globais (GUD) com a rea de validade CHAN, alm do INIPO
(Power On) tambm o INIRE (Reset) ou o INICF (NewConfig) pode ser definido como
momento de inicializao.
Para variveis de usurio globais (GUD) com a rea de validade CHAN e momento de
inicializao INIRE (Reset) ou INICF (NewConfig), com NC-Reset, BAG-Reset e
NewConfig somente sero reinicializadas nos canais as variveis, nas quais foram
disparados os eventos mencionados.
Valor de inicializao: Tipo de dado FRAME
Para variveis do tipo de dado FRAME no pode ser especificado nenhum valor de
inicializao. As variveis do tipo de dado FRAME sempre so inicializadas de modo implcito
com o Frame Default.
Valor de inicializao: Tipo de dado CHAR
Para variveis do tipo de dado CHAR ao invs do cdigo ASCII (0...255), tambm pode ser
programado o respectivo caractere ASCII entre aspas, p.ex. "A"
Valor de inicializao: Tipo de dado STRING
Para variveis do tipo de dado STRING devem ser colocadas aspas na sequncia de
caracteres, p.ex.: ...= "MAQUINA_1"
Valor de inicializao: Tipo de dado AXIS
Para variveis do tipo de dado AXIS com a forma escrita de endereos ampliada o
identificador de eixo deve ser colocado entre parnteses, p.ex.: ...=(X3)
Valor de inicializao: Varivel de sistema
Para variveis de sistema no pode ser definido nenhum valor de inicializao especfico de
usurio atravs de redefinio. Os valores de inicializao das variveis de sistema so
estabelecidas pelo sistema. Entretanto, atravs da redefinio pode ser alterado o momento
(INIRE, INICF) em que a varivel reinicializada.

Preparao do trabalho
36 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

Valor de inicializao implcito: Tipo de dado AXIS


Para variveis do tipo de dado AXIS so utilizados os seguintes valores de inicializao
implcitos:
Dados de sistema: "primeiro eixo geomtrico"
GUD de ao sncrona (Denominao: SYG_A*), PUD, LUD:
Identificador de eixo do dado de mquina: MD20082
$MC_AXCONF_CHANAX_DEFAULT_NAME
Valor de inicializao implcito: Dados de ferramenta e de magazine
Para dados de ferramenta e de magazine podem ser definidos valores de inicializao
atravs do seguinte dado de mquina: MD17520 $MN_TOOL_DEFAULT_DATA_MASK

ATENO
Sincronizao
A sincronizao de eventos que disparam uma reinicializao de uma varivel global com a
leitura desta varivel em outro ponto, de responsabilidade exclusiva do usurio / fabricante
da mquina.

Ver tambm
Informaes gerais sobre variveis Informaes gerais sobre variveis [Pgina 17]

1.1.8 Atributo: Valores de limite (LLI, ULI)


Um valor limite superior e inferior da faixa de definio somente pode ser especificado para
os seguintes tipos de dados:
INT
REAL
CHAR

Definio (DEF) de variveis de usurio: Valores limite e valores de inicializao implcitos


Se na definio de uma varivel de usurio de um dos tipos de dados mencionados acima
no for definido nenhum valor de inicializao explcito, a varivel passada para o valor de
inicializao implcito do tipo de dado:
INT: 0
REAL: 0.0
CHAR: 0

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 37
Programao flexvel de NC
1.1 Variveis

Se o valor de inicializao implcito estiver fora da faixa de definio definida pelos valores
limite programados, a varivel inicializada com o valor de limite que estiver mais prximo
do valor de inicializao implcito:
Valor de inicializao implcito < valor limite inferior (LLI)
Valor de inicializao = valor limite inferior
Valor de inicializao implcito < valor limite superior (ULI)
Valor de inicializao = valor limite superior
Exemplos:

Cdigo de programa Comentrio


DEF REAL GUD1 ; Valor limite inferior = limite da faixa de definio
; Valor limite superior = limite da faixa de definio
; nenhum valor de inicializao programado
; => valor de inicializao implcito = 0.0
DEF REAL LLI 5.0 GUD2 ; Valor limite inferior = 5.0
; Valor limite superior = limite da faixa de definio
; => valor de inicializao = 5.0
DEF REAL ULI 5 GUD3 ; Valor limite inferior = limite da faixa de definio
; Valor limite superior = -5.0
; => valor de inicializao = -5.0

Redefinio (REDEF) de variveis de usurio: Valores limite e atuais valores reais


Se com a redefinio dos valores limite uma das variveis de usurio for alterada de modo
que o atual valor real esteja fora da nova faixa de definio, ento ser emitido um alarme e
os valores limite no sero assumidos.

Indicao
Redefinio (REDEF) de variveis de usurio
Na redefinio dos valores limite de uma varivel de usurio deve-se observar para uma
modificao consistente dos seguintes valores:
Valores limite
Valor real
Valor de inicializao na redefinio e na reinicializao automtica em funo do INIPO,
INIRE ou INICF

Ver tambm
Informaes gerais sobre variveis Informaes gerais sobre variveis [Pgina 17]

Preparao do trabalho
38 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

1.1.9 Atributo: Unidade fsica (PHU)


Uma unidade fsica somente pode ser especificada para variveis dos seguintes tipos de
dados:
INT
REAL

Unidades fsicas programveis (PHU)


A especificao da unidade fsica dada como nmero vrgula fixa: PHU <unidade>
Podem ser programadas as seguintes unidades fsicas:

<unidade> Significado Unidade fsica


0 Nenhuma unidade fsica -
1 Posio linear ou angular 1)2) [ mm ], [ pol. ], [ graus ]
2 Posio linear 2) [ mm ], [ pol. ]
3 Posio angular [ graus ]
4 Velocidade linear ou angular 1)2) [ mm/min ], [ pol./min ], [ rpm ]
5 Velocidade linear 2) [mm/min]
6 Velocidade angular [ rpm ]
7 Acelerao linear ou angular 1)2)
[ m/s2 ], [ pol./s2 ], [ rot./s2 ]
8 Acelerao linear 2) [ m/s2 ], [ pol./s2 ]
9 Acelerao angular [ rot./s2 ]
10 Solavanco linear ou angular 1)2) [ m/s3 ], [ pol./s3 ], [ rot./s3 ]
11 Solavanco linear 2) [ m/s3 ], [ pol./s3 ]
12 Solavanco angular [ rot./s3 ]
13 Tempo [s]
14 Amplificao do circuito do controlador de posio [ 16.667/s ]
15 Avano por rotao 2) [ mm/rot. ], [ pol./rot. ]
16 Compensao de temperatura 1)2) [ mm ], [ pol. ]
18 Fora [N]
19 Massa [ kg ]
20 Momento de inrcia 3)
[ kgm2 ]
21 Por cento [%]
22 Frequncia [ Hz ]
23 Tenso [V]
24 Corrente [A]
25 Temperatura [ C ]
26 ngulo [ graus ]
27 KV [ 1000/min ]
28 Posio linear ou angular 3) [ mm ], [ pol. ], [ graus ]

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 39
Programao flexvel de NC
1.1 Variveis

<unidade> Significado Unidade fsica


29 Velocidade de corte 2) [ m/min ], [ feet/min ]
30 Velocidade perifrica 2) [ m/s], [ feet/s ]
31 Resistncia [ Ohm ]
32 Indutncia [ mH ]
33 Torque 3) [ Nm ]
34 Constante de torque 3) [ Nm/A ]
35 Amplificao do controlador de corrente [ V/A ]
36 Amplificao do controlador de rotao 3) [ Nm/(rad*s) ]
37 Nmero de rotaes [ rpm ]
42 Potncia [ kW ]
43 Corrente, pequena [ A ]
46 Torque, pequeno 3) [ Nm ]
48 Por milha -
49 - [ Hz/s ]
65 Fluxo (vazo) [ l/min ]
66 Presso [ bar ]
67 Volume 3)
[ cm3 ]
68 Amplificao de percurso 3) [ mm/(V*min) ]
69 Amplificao de percurso do controlador de fora [ N/V ]
155 Passo de rosca 3) [ mm/rot. ], [ pol./rot. ]
156 Variao de passo de rosca 3) [ mm/rot. / rot. ], [ pol./rot. / rot.]
1) A unidade fsica depende do tipo de eixo: Eixo linear ou eixo rotativo
2) Comutao do sistema de medidas
G70/G71(polegadas/mtrico)
Aps uma comutao do sistema bsico $MN_SCALING_SYSTEM_IS_METRIC) com G70/G71, nos
acessos de gravao e leitura das variveis de sistema e de usurio referentes aos comprimentos
(distncias) no ocorre nenhuma converso dos valores (valor real, valor nominal e valores de limite)
G700/G710(polegadas/mtrico)
Aps uma comutao do sistema bsico (MD10240 $MN_SCALING_SYSTEM_IS_METRIC), nos
acessos de gravao e leitura das variveis de sistema e de usurio referentes aos comprimentos
(distncias) ocorre uma converso dos valores (valor real, valor nominal e valores de limite)
3) A varivel no convertida automaticamente para o atual sistema de medidas do NC (polegadas/
mtrico). A converso de responsabilidade exclusiva do usurio / fabricante da mquina.

Indicao
Excesso de nveis atravs da converso de formato
O formato interno de armazenamento para todas variveis de usurio (GUD / PUD / LUD)
com unidades fsicas de distncia mtrico. Um uso excessivo deste tipo de variveis no
processamento principal do NCK, por exemplo em aes sncronas, pode, no caso de uma
mudana do sistema de medidas, provocar o estouro do tempo (timeout) de processamento
do nvel do interpolador, alarme 4240.

Preparao do trabalho
40 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

ATENO
Compatibilidade de unidades
Ao serem utilizadas variveis (atribuio, comparao, clculos, etc.) no realizado
nenhum controle de compatibilidade das unidades envolvidas. Uma eventual necessidade
de converso de responsabilidade exclusiva do usurio / fabricante da mquina.

Ver tambm
Informaes gerais sobre variveis Informaes gerais sobre variveis [Pgina 17]

1.1.10 Atributo: Direitos de acesso (APR, APW, APRP, APWP, APRB, APWB)
Os direitos de acesso correspondem aos seguintes nveis de proteo que devem ser
informados na programao:

Direito de acesso Nvel de proteo


Senha do sistema 0
Senha do fabricante da mquina 1
Senha da Assistncia Tcnica 2
Senha do usurio final 3
Seletor com chave na posio 3 4
Seletor com chave na posio 2 5
Seletor com chave na posio 1 6
Seletor com chave na posio 0 7

Definio (DEF) de variveis de usurio


Os direitos de acesso (APR... / APW...) podem ser definidos para as seguintes variveis:
Dados de usurio globais (GUD)

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 41
Programao flexvel de NC
1.1 Variveis

Redefinio (REDEF) de variveis de sistema e de usurio


Os direitos de acesso (APR... / APW...) podem ser redefinidos para as seguintes variveis:
Dados de sistema
- Dados de mquina
- Dados de ajuste
- FRAME
- Dados de processo
- Compensao de erro de passo de fuso (EEC)
- Compensao cruzada (CEC)
- Compensao de erro de quadrante (QEC)
- Dados de magazine
- Dados de ferramenta
- reas de proteo
- Porta-ferramenta orientvel
- Cadeias cinemticas
- reas de proteo 3D
- Limite da rea de trabalho
- Dados de ferramenta ISO
Dados de usurio
- Parmetros R
- Varivel de ao sncrona ($AC_MARKER, $AC_PARAM, $AC_TIMER)
- GUD de ao sncrona (SYG_xy[ ], com x=R, I, B, A, C, S e y=S, M, U, 4, ..., 9)
- Parmetros EPS
- Dados de ferramenta OEM
- Dados de magazine OEM
- Variveis de usurio globais (GUD)

Indicao
Na redefinio o direito de acesso pode ser atribudo livremente a uma varivel entre
o nvel de proteo mais baixo 7 e o prprio nvel de proteo, por exemplo 1
(fabricante da mquina).

Preparao do trabalho
42 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

Redefinio (REDEF) de comandos de linguagem NC


O direito de acesso e de execuo (APX) pode ser redefinido para os seguintes comandos de
linguagem NC:
Funes G / Condies de curso
Literatura:
/PG/ Manual de programao Fundamentos; Captulo: Funes G / Condies de curso
Funes pr-definidas
Literatura:
/PG/ Manual de programao Fundamentos; Captulo: Funes pr-definidas
Chamadas de subrotina pr-definidas
Literatura:
/PG/ Manual de programao Fundamentos; Captulo: Chamadas de subrotina pr-
definidas
Instruo DO para aes sncronas
Identificador de programa de ciclos
O ciclo deve ser armazenado em um diretrio de ciclos e conter uma instruo PROC.

Direitos de acesso relacionados aos programas de pea e ciclos (APRP, APWP)


Os diferentes direitos de acesso possuem os seguintes efeitos para o acesso em um
programa de pea ou ciclo:
APRP 0 / APWP 0
- a senha de sistema deve ser informada para execuo do programa de pea
- o ciclo deve estar armazenado no diretrio _N_CST_DIR (sistema)
- para o diretrio _N_CST_DIR o direito de execuo deve ser ajustado para sistema no
MD11160 $MN_ACCESS_EXEC_CST
APRP 1 / APWP 1 ou APRP 2 / APWP 2
- a senha de fabricante de mquina ou de assistncia tcnica deve ser informada para
execuo do programa de pea
- o ciclo deve estar armazenado no diretrio _N_CMA_DIR (fabricante da mquina) ou
_N_CST_DIR
- para os diretrios _N_CMA_DIR e _N_CST_DIR os direitos de execuo devem estar
ajustados pelo menos para fabricante de mquina nos dados de mquina MD11161
$MN_ACCESS_EXEC_CMA e MD11160 $MN_ACCESS_EXEC_CST,
respectivamente

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 43
Programao flexvel de NC
1.1 Variveis

APRP 3 / APWP 3
- a senha de usurio final deve ser informada para execuo do programa de pea
- o ciclo deve estar armazenado no diretrio _N_CUS_DIR (usurio), _N_CMA_DIR ou
_N_CST_DIR
- para os diretrios _N_CUS_DIR, _N_CMA_DIR e _N_CST_DIR os direitos de
execuo devem estar ajustados pelo menos para usurio final nos dados de mquina
MD11162 $MN_ACCESS_EXEC_CUS, MD11161 $MN_ACCESS_EXEC_CMA e
MD11160 $MN_ACCESS_EXEC_CST, respectivamente
APRP 4...7 / APWP 4...7
- para execuo do programa de pea o seletor com chave deve estar ajustado na
posio 3 ... 0
- o ciclo deve estar armazenado no diretrio _N_CUS_DIR, _N_CMA_DIR ou
_N_CST_DIR
- para os diretrios _N_CUS_DIR, _N_CMA_DIR e _N_CST_DIR os direitos de
execuo devem estar ajustados pelo menos de acordo com a posio do seletor com
chave nos dados de mquina MD11162 $MN_ACCESS_EXEC_CUS, MD11161
$MN_ACCESS_EXEC_CMA e MD11160 $MN_ACCESS_EXEC_CST,
respectivamente

Direitos de acesso relacionados ao BTSS (APRB, APWB)


Os direitos de acesso (APRB, APWB) restringem de modo uniforme o acesso s variveis de
sistema e de usurio atravs do BTSS para todos componentes do sistema (HMI, PLC,
processadores externos, servios EPS, etc.).

Indicao
Direitos de acesso locais da HMI
Para alteraes dos direitos de acesso aos dados de sistema deve-se atentar para que
estas sejam realizadas de modo consistente em relao aos direitos de acesso definidos
atravs dos mecanismos da HMI.

Atributos de acesso APR / APW


Por motivos de incompatibilidade os atributos APR e APW so refletidos implicitamente nos
atributos APRP / APRB e APWP / APWB:
APR x APRP x APRB x
APW y APWP y APWB y

Preparao do trabalho
44 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

Ajuste dos direitos de acesso atravs de arquivos ACCESS


No caso de utilizao de arquivos ACCESS para atribuio de direitos de acesso, as
redefinies de direitos de acesso para dados de sistema, dados de usurio e comandos de
linguagem NC somente podero ser programadas nestes arquivos ACCESS. Uma exceo
so os dados de usurio globais (GUD). Para estes, se necessria, a redefinio dos direitos
de acesso ainda pode ser programada nos respectivos arquivos de definio.
Para uma plena proteo de acesso os dados de mquina devem ser adaptados de modo
consistente nos respectivos diretrios para os direitos de execuo e para a proteo de
acesso.
Adota-se o seguinte procedimento bsico:
Criao dos arquivos de definio necessrios:
- _N_DEF_DIR/_N_SACCESS_DEF
- _N_DEF_DIR/_N_MACCESS_DEF
- _N_DEF_DIR/_N_UACCESS_DEF
Parametrizao do direito de gravao para os arquivos de definio no valor necessrio
para a redefinio:
- MD11170 $MN_ACCESS_WRITE_SACCESS
- MD11171 $MN_ACCESS_WRITE_MACCESS
- MD11172 $MN_ACCESS_WRITE_UACCESS
Para acessar os elementos de ciclos protegidos deve ser realizada a adaptao dos
direitos de execuo e de gravao dos diretrios de ciclos _N_CST_DIR, _N_CMA_DIR e
_N_CST_DIR:
Direitos de execuo
- MD11160 $MN_ACCESS_EXEC_CST
- MD11161 $MN_ACCESS_EXEC_CMA
- MD11162 $MN_ACCESS_EXEC_CUS
Direitos de gravao
- MD11165 $MN_ACCESS_WRITE_CST
- MD11166 $MN_ACCESS_WRITE_CMA
- MD11167 MN_ACCESS_WRITE_CUS
O direito de execuo deve ser passado pelo menos para o mesmo nvel de proteo
como o nvel de proteo mais alto do elemento utilizado.
O direito de gravao deve ser passado pelo menos para o mesmo nvel de proteo
como o direito de execuo.
Os direitos de gravao dos diretrios de ciclos locais da HMI devem ser passados para o
mesmo nvel de proteo como o dos diretrios de ciclos locais do NC.
Literatura
/BAD/ Manual de operao HMI-Advanced,
Captulo: rea de operao Servios > Gerenciar dados > Alterar propriedades

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 45
Programao flexvel de NC
1.1 Variveis

Chamadas de subrotinas em arquivos ACCESS


Para uma expanso da estruturao da proteo de acesso nos arquivos ACCESS tambm
podem ser chamadas subrotinas (extenso SPF ou MPF). Neste caso as subrotinas herdam
os direitos de execuo do arquivo ACCESS chamado.

Indicao
Nos arquivos ACCESS somente podem ser redefinidos os direitos de acesso. Todos demais
atributos ainda devem programados e redefinidos nos respectivos arquivos de definio.

Ver tambm
Informaes gerais sobre variveis Informaes gerais sobre variveis [Pgina 17]

1.1.11 Viso geral dos atributos definveis e redefinveis


As seguintes tabelas mostram quais atributos podem ser definidos (DEF) e/ou redefinidos
(REDEF) em quais tipos de dados.

Dados do sistema

Direitos de
Tipo de dados Valor inic. Valores limite Unidade fsica
acesso
Dados de mquina --- --- --- REDEF
Dados de ajuste REDEF --- --- REDEF
Dados de FRAME --- --- --- REDEF
Dados de processo --- --- --- REDEF
Comp. de erro de passo de fuso (EEC) --- --- --- REDEF
Compensao cruzada (CEC) --- --- --- REDEF
Compensao de erro de quadrante (QEC) --- --- --- REDEF
Dados de magazine --- --- --- REDEF
Dados de ferramenta --- --- --- REDEF
reas de proteo --- --- --- REDEF
Porta-ferramenta orientvel --- --- --- REDEF
Cadeias cinemticas --- --- --- REDEF
reas de proteo 3D --- --- --- REDEF
Limite de rea de trabalho --- --- --- REDEF
Dados de ferramenta ISO --- --- --- REDEF

Preparao do trabalho
46 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

Dados de usurio

Direitos de
Tipo de dados Valor inic. Valores limite Unidade fsica
acesso
Parmetros R REDEF REDEF REDEF REDEF
Varivel de ao sncrona ($AC_...) REDEF REDEF REDEF REDEF
GUD de ao sncrona (SYG_...) REDEF REDEF REDEF REDEF
Parmetros EPS REDEF REDEF REDEF REDEF
Dados de ferramenta OEM REDEF REDEF REDEF REDEF
Dados de magazine OEM REDEF REDEF REDEF REDEF
Variveis de usurio globais (GUD) DEF / REDEF DEF DEF DEF / REDEF
Variveis de usurios locais (PUD / LUD) DEF DEF DEF ---

Ver tambm
Informaes gerais sobre variveis Informaes gerais sobre variveis [Pgina 17]

1.1.12 Definio e inicializao de variveis de campo (DEF, SET, REP)

Funo
Uma varivel de usurio pode ser definida como campo (Array) de 1 at 3 dimenses:
1 dimenso: DEF <tipo de dado> <nome da varivel>[<n>]
2 dimenses: DEF <tipo de dado> <nome da varivel>[<n>,<m>]
3 dimenses: DEF <tipo de dado> <nome da varivel>[<n>,<m>,<o>]

Indicao
As variveis de usurio do tipo de dados STRING podem ser definidas no mximo como
campo de 2 dimenses.

Tipos de dados
As variveis de usurio podem ser definidas como campos para os seguintes tipos de dados:
BOOL, CHAR, INT, REAL, STRING, AXIS, FRAME
Atribuio de valores nos elementos de campo
As atribuies de valores nos elementos de campo podem ser realizadas nas seguintes
ocasies:
Para a definio de campo (valores de inicializao)
Durante a execuo do programa

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 47
Programao flexvel de NC
1.1 Variveis

Aqui a atribuio de valores pode ser realizada atravs de:


Especificao explcita de um elemento de campo
Especificao explcita de um elemento de campo como elemento de partida e
especificao de uma lista de valores (SET)
Especificao explcita de um elemento de campo como elemento de partida e
especificao de um valor e a freqncia de sua repetio (REP)

Indicao
As variveis de usurio do tipo de dados FRAME no podem ser atribudas com valores
de inicializao.

Sintaxe (DEF)
DEF <tipo de dado> <nome da varivel>[<n>,<m>,<o>]
DEF STRING[<tamanho de String>] <nome de varivel>[<n>,<m>]

Sintaxe (DEF...=SET...)
Utilizao de uma lista de valores:
Para a definio:
DEF <tipo de dado> <nome de varivel>[<n>,<m>,<o>] =
SET(<valor1>,<valor2>,...)
Equivalente com:
DEF <tipo de dado> <nome de varivel>[<n>,<m>,<o>] =
(<valor1>,<valor2>,...)

Indicao
A especificao do SET opcional para a inicializao atravs de uma lista de valores .

Para uma atribuio de valores:


<nome da varivel>[<n>,<m>,<o>]=SET(<VALOR1>,<valor2>,...)

Preparao do trabalho
48 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

Sintaxe (DEF...=REP...)
Utilizao de um valor com repetio
Para a definio:
DEF <tipo de dado> <nome da varivel>[<n>,<m>,<o>]=REP(<valor>)

DEF <tipo de dado> <nome de varivel>[<n>,<m>,<o>] =


REP(<valor>,<nmero_elementos_de_campo>)

Para uma atribuio de valores:


<nome da varivel>[<n>,<m>,<o>]=REP(<valor>)
<nome da
varivel>[<n>,<m>,<o>]=REP(<valor>,<nmero_de_elmentos_de_campo>)

Significado

DEF: Comando para definio de variveis


<tipo de dado>: Tipo de dados das variveis
Faixa de valores:
Para variveis de sistema:
BOOL, CHAR, INT, REAL, STRING, AXIS
Para variveis GUD ou LUD:
BOOL, CHAR, INT, REAL, STRING, AXIS, FRAME
<tamanho de String>: Nmero mximo de caracteres para o tipo de dado STRING
<nome de varivel>: Nome de varivel
[<n>,<m>,<o>]: Tamanhos de campo e ndices de campo
<n>: Tamanho e ndice de campo para 1 dimenso
Tipo: INT (tambm AXIS em variveis de sistema)
Faixa de valores: Tamanho de campo mx.: 65535
ndice de campo: 0 n 65534
<m>: Tamanho e ndice de campo para 2 dimenso
Tipo: INT (tambm AXIS em variveis de sistema)
Faixa de valores: Tamanho de campo mx.: 65535
ndice de campo: 0 m 65534
<o>: Tamanho e ndice de campo para 3 dimenso
Tipo: INT (tambm AXIS em variveis de sistema)
Faixa de valores: Tamanho de campo mx.: 65535
ndice de campo: 0 o 65534
SET: Atribuio de valores atravs da lista de valores indicada
(<valor1>, Lista de valores
<valor2>,...):

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 49
Programao flexvel de NC
1.1 Variveis

REP: Atribuio de valores atravs do <valor> indicado


<valor>: Valor com que os elementos de campo devem ser escritos
na inicializao com REP.
<nmero_de_elementos_ Nmero de elementos de campo que devem ser
de_campo>: preenchidos com o <valor> indicado. Para os elementos
de campo restantes a aplicao depende do momento:
Inicializao na definio de campo:
Os elementos de campo restantes so preenchidos
com zero
Atribuio durante a execuo do programa:
Os atuais valores dos elementos de campo
permanecem inalterados.
Se o parmetro no estiver programado, todos elementos de
campo so preenchidos com o <valor>.
Se o parmetro for igual a zero, a aplicao depende do
momento:
Inicializao na definio de campo:
Todos elementos so ocupados previamente com zero
Atribuio durante a execuo do programa:
Os atuais valores dos elementos de campo
permanecem inalterados.

ndice de campo
A ordem implcita dos elementos de campo, por exemplo no caso de uma atribuio de
valores atravs de SET ou REP, realizada atravs da iterao do ndice de campo da
direita para a esquerda.
Exemplo: Inicializao de um campo de 3 dimenses com 24 elementos de campo:

DEF INT CAMPO[2,3,4] = REP(1,24)


CAMPO[0,0,0] = 1 1 Elemento de campo
CAMPO[0,0,1] = 1 2 Elemento de campo
CAMPO[0,0,2] = 1 3 Elemento de campo
CAMPO[0,0,3] = 1 4 Elemento de campo
...
CAMPO[0,1,0] = 1 5 Elemento de campo
CAMPO[0,1,1] = 1 6 Elemento de campo
...
CAMPO[0,2,3] = 1 12 Elemento de campo
CAMPO[1,0,0] = 1 13 Elemento de campo
CAMPO[1,0,1] = 1 14 Elemento de campo
...
CAMPO[1,2,3] = 1 24 Elemento de campo

Preparao do trabalho
50 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

de acordo com:

FOR n=0 TO 1
FOR m=0 TO 2
FOR o=0 TO 3
CAMPO[n,m,o] = 1
ENDFOR
ENDFOR
ENDFOR

Exemplo: Inicializao de campos de variveis completos


Veja a atual ocupao na figura.

Cdigo de programa
N10 DEF REAL CAMPO1[10,3]=SET(0,0,0,10,11,12,20,20,20,30,30,30,40,40,40,)
N20 CAMPO1[0,0]=REP(100)
N30 CAMPO1[5,0]=REP(-100)
N40 CAMPO1[0,0]=SET(0,1,2,-10,-11,-12,-20,-20,-20,-30, , , ,-40,-40,-50,-60,-70)
N50 CAMPO1[8,1]=SET(8.1,8.2,9.0,9.1,9.2)

QGLFHGHFDPSR 

1 ,QLFLDOL]DRQD 11,QLFLDOL]DRFRP 11 ,QLFLDOL]DRFRP


 GHILQLR YDORULGQWLFR GLIHUHQWHVYDORUHV

        
         
         
         
         
         
         
         
         
         
         
2VHOHPHQWRVGHFDPSR>@ 2VHOHPHQWRVGHFDPSR>@
DW>@IRUDPLQLFLDOL]DGRV DW>@IRUDPLQLFLDOL]DGRV
FRPRYDORUSDGUR   FRPRYDORUSDGUR  2V
HOHPHQWRVGHFDPSR>@DW

>@QRIRUDPDOWHUDGRV

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 51
Programao flexvel de NC
1.1 Variveis

Ver tambm
Definio e inicializao de variveis de campo (DEF, SET, REP): Outras informaes
Definio e inicializao de variveis de campo (DEF, SET, REP): Outras informaes
[Pgina 52]
Informaes gerais sobre variveis Informaes gerais sobre variveis [Pgina 17]

1.1.13 Definio e inicializao de variveis de campo (DEF, SET, REP): Outras


informaes

Outras informaes (SET)


Inicializao na definio
Iniciando-se pelo 1 elemento de campo, so inicializados tantos elementos de campo
com os valores da lista de valores como foram programados elementos na lista de
valores.
Os elementos de campo sem valores indicados de modo explcito na lista de peas
(brechas na lista de valores) so preenchidos com 0.
Para variveis do tipo de dado AXIS no so permitidas brechas na lista de valores.
Se a lista de valores contm mais valores como do que elementos de campo definidos,
aparecer um alarme.
Atribuio de valores na execuo do programa
Para a atribuio de valores na execuo do programa so aplicadas as regras descritas
acima para a definio. Alm disso existem as seguintes possibilidades:
Como elementos na lista de valores tambm permitido o uso de expresses.
A atribuio de valores inicia com o ndice de campo programado. Dessa forma os
campos parciais so ocupados de modo controlado.
Exemplo:

Cdigo de programa Comentrio


DEF INT CAMPO[5,5] ; Definio de campos
CAMPO[0,0]=SET(1,2,3,4,5) ; Atribuio de valores nos primeiros 5
elementos de campo [0,0] - [0,4]
CAMPO[0,0]=SET(1,2, , ,5) ; Atribuio de valores com brecha nos
primeiros 5 elementos de campo [0,0] -
[0,4], elementos de campo [0,2] e [0,3] = 0
CAMPO[2,3]=SET(VARIAVEL,4*5.6) ; Atribuio de valores com varivel e
expresso a partir do ndice de campo
[2,3]:
[2,3] = VARIAVEL
[2,4] = 4 * 5.6 = 22.4

Preparao do trabalho
52 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

Outras informaes (REP)


Inicializao na definio
Todos os elementos ou a quantidade opcional indicada de elementos de campo iniciada
com o valor (constante) indicado.
As variveis do tipo de dado FRAME no podem ser inicializadas.
Exemplo:

Cdigo de programa Comentrio


DEF REAL varName[10]=REP(3.5,4) ; Definio de campo e inicializao de
elementos de campo [0] at [3] com o valor
3,5

Atribuio de valores na execuo do programa


Para a atribuio de valores na execuo do programa so aplicadas as regras descritas
acima para a definio. Alm disso existem as seguintes possibilidades:
Como elementos na lista de valores tambm permitido o uso de expresses.
A atribuio de valores inicia com o ndice de campo programado. Dessa forma os
campos parciais so ocupados de modo controlado.
Exemplos:

Cdigo de programa Comentrio


DEF REAL varName[10] ; Definio de campos
varName[5]=REP(4.5,3) ; Elementos de campo [5] at [7] = 4,5

R10=REP(2.4,3) ; Parmetros R10 at R12 = 2,4

DEF FRAME FRM[10] ; Definio de campos


FRM[5]=REP(CTRANS(X,5)) ; Elementos de campo [5] at [9] =
CTRANS(X,5)

Outras informaes (geral)


Atribuio de valores em dados de mquina axiais
Em princpio os dados de mquina axiais possuem um ndice de campo do tipo de dado
AXIS. Este ndice de campo ignorado e no processado para atribuio de valores em um
dado de mquina axial atravs do SET ou REP.
Exemplo: Atribuio de valores no dado de mquina MD36200 $MA_AX_VELO_LIMIT

$MA_AX_VELO_LIMIT[1,AX1]=SET(1.1, 2.2, 3.3)


Corresponde:
$MA_AX_VELO_LIMIT[1,AX1]=1.1
$MA_AX_VELO_LIMIT[2,AX1]=2.2
$MA_AX_VELO_LIMIT[3,AX1]=3.3

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 53
Programao flexvel de NC
1.1 Variveis

ATENO
Atribuio de valores em dados de mquina axiais
O ndice de campo do tipo de dado AXIS ignorado e no processado para atribuies de
valores em dados de mquina axiais atravs de SET ou REP.

Necessidade de memria

Tipo de dado Necessidade de memria por elemento


BOOL 1 Byte
CHAR 1 Byte
INT 4 Bytes
REAL 8 Bytes
STRING (tamanho de String + 1) Bytes
FRAME 400 Bytes, em funo do nmero de eixos
AXIS 4 Bytes

Ver tambm
Definio e inicializao de variveis de campo (DEF, SET, REP) Definio e inicializao de
variveis de campo (DEF, SET, REP) [Pgina 47]

Preparao do trabalho
54 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.1 Variveis

1.1.14 Tipos de dados


No NC esto disponveis os seguintes tipos de dados:

Tipo de dado Significado Faixa de valores


INT Valor inteiro com sinal -2147483648 ... +2147483647
REAL Nmero real (LONG REAL conforme IEEE) ( 2,2*10-308 1,8*10+308)
BOOL Valor lgico TRUE (1) e FALSE (0) 1, 0
CHAR Caracteres ASCII Cdigo ASCII 0 ... 255
STRING Sequncia de caracteres de tamanho definido mximo 200 caracteres (sem caractere especial)
AXIS Identificador de eixo/fuso Identificador de canal
FRAME Indicaes geomtricas para uma transformao ---
esttica de coordenadas (deslocamento, rotao,
escalonamento, espelhamento)

Mudanas de tipo de dado implcitas


As seguintes mudanas de tipo de dado so possveis e so realizadas de forma implcita
nas atribuies e transferncias de parmetros:

de / para REAL INT BOOL


REAL x o &
INT x x &
BOOL x x x
x: Possvel sem restries
o: Possvel perda de dados ao exceder a faixa de valores Alarme;
Arredondamento: Valor aps a vrgula 0,5 arredonda para cima, valor aps a vrgula < 0,5
arredonda para baixo
&: Valor 0 TRUE, valor == 0 FALSE

Ver tambm
Informaes gerais sobre variveis Informaes gerais sobre variveis [Pgina 17]

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 55
Programao flexvel de NC
1.2 Programao indireta

1.2 Programao indireta

1.2.1 Programao indireta de endereos

Funo
Na programao indireta de endereos o endereo ampliado (ndice) substitudo por uma
varivel de tipo adequado.

Indicao
A programao indireta de endereos no possvel com:
N (nmero de bloco)
L (subrotina)
Endereos ajustveis
(p.ex. no permitido X[1] no lugar de X1)

Sintaxe
<ENDEREO>[<ndice>]

Significado

<ENDEREO>[...]: Endereo fixo com extenso (ndice)


<ndice>: Varivel, p. ex. para nmero de fuso, eixo, ...

Exemplos
Exemplo 1: Programao indireta de um nmero de fuso
Programao direta:

Cdigo de programa Comentrio


S1=300 ; Rotao de 300 rpm para o fuso de nmero 1.

Programao indireta:

Cdigo de programa Comentrio


DEF INT SPINU=1 ; Definio das variveis do tipo INT e atribuio de
valores.
S[SPINU]=300 ; Rotao de 300 rpm para o fuso cujo nmero est armazenado
na varivel SPINU (no exemplo temos o fuso de nmero 1).

Preparao do trabalho
56 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.2 Programao indireta

Exemplo 2: Programao indireta de um eixo


Programao direta:

Cdigo de programa Comentrio


FA[U]=300 ; Avano 300 para o eixo "U".

Programao indireta:

Cdigo de programa Comentrio


DEF AXIS AXVAR2=U ; Definio de uma varivel do tipo AXIS e atribuio de
valores.
FA[AXVAR2]=300 ; Avano 300 para o eixo cujo nome de endereo est
armazenado na varivel de nome AXVAR2.

Exemplo 3: Programao indireta de um eixo


Programao direta:

Programao Comentrio
$AA_MM[X] ; Ler o valor de medio do apalpador de medio (MCS) do
eixo "X".

Programao indireta:

Cdigo de programa Comentrio


DEF AXIS AXVAR3=X ; Definio de uma varivel do tipo AXIS e atribuio de
valores.
$AA_MM[AXVAR3] ; Ler o valor de medio do apalpador de medio (MCS) do
eixo cujo nome est armazenado na varivel AXVAR3.

Exemplo 4: Programao indireta de um eixo


Programao direta:

Cdigo de programa
X1=100 X2=200

Programao indireta:

Cdigo de programa Comentrio


DEF AXIS AXVAR1 AXVAR2 ; Definio de duas variveis do tipo AXIS.
AXVAR1=(X1) AXVAR2=(X2) ; Atribuio dos nomes de eixo.
AX[AXVAR1]=100 AX[AXVAR2]=200 ; Deslocamento dos eixos cujos nomes de
endereo esto armazenados nas variveis de
nome AXVAR1 e AXVAR2.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 57
Programao flexvel de NC
1.2 Programao indireta

Exemplo 5: Programao indireta de um eixo


Programao direta:

Cdigo de programa
G2 X100 I20

Programao indireta:

Cdigo de programa Comentrio


DEF AXIS AXVAR1=X ; Definio de uma varivel do tipo AXIS e
atribuio de valores.
G2 X100 IP[AXVAR1]=20 ; Programao indireta da indicao do centro para
o eixo cujo nome de endereo est armazenado na
varivel de nome AXVAR1.

Exemplo 6: Programao indireta de elementos de campo


Programao direta:

Cdigo de programa Comentrio


DEF INT CAMPO1[4,5] ; Definio do campo 1.

Programao indireta:

Cdigo de programa Comentrio


DEFINE DIM1 AS 4 ; Em dimenses de campo os tamanhos de campo devem
ser especificados como valores fixos.
DEFINE DIM2 AS 5
DEF INT CAMPO[DIM1,DIM2]
CAMPO[DIM1-1,DIM2-1]=5

Exemplo 7: Chamada indireta de subrotina

Cdigo de programa Comentrio


CALL "L" << R10 ; Chamada do programa cujo nmero est no R10
(encadeamento de string).

Preparao do trabalho
58 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.2 Programao indireta

1.2.2 Programao indireta de cdigos G

Funo
A programao indireta de cdigos G possibilita uma programao efetiva de ciclos.

Sintaxe
G[<grupo>]=<nmero>

Significado

G[...]: Comando G com extenso (ndice)


<grupo>: Parmetro de ndice: Grupo de funes G
Tipo: INT
<nmero>: Varivel para o nmero de cdigo G
Tipo: INT ou REAL

Indicao
Geralmente somente podem ser programados de forma indireta os cdigos G que no so
determinantes na sintaxe.
Dos cdigos G que so determinantes na sintaxe, apenas so possveis aqueles do grupo 1
de funes G.
Os cdigos G determinantes de sintaxe dos grupos 2. 3 e 4 de funes G no so
aplicveis.

Indicao
Na programao indireta de cdigos G no permitida nenhuma funo aritmtica. Um
clculo necessrio do nmero de cdigo G devem ser realizado em uma linha prpria do
programa de pea, ainda antes da programao indireta do cdigo G.

Exemplos
Exemplo 1: Deslocamento de ponto zero ajustvel (grupo de funes G 8)

Cdigo de programa Comentrio


N1010 DEF INT INT_VAR
N1020 INT_VAR=2
...
N1090 G[8]=INT_VAR G1 X0 Y0 ; G54
N1100 INT_VAR=INT_VAR+1 ; Clculo de cdigo G
N1110 G[8]=INT_VAR G1 X0 Y0 ; G55

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 59
Programao flexvel de NC
1.2 Programao indireta

Exemplo 2: Seleo de plano (grupo de funes G 6)

Cdigo de programa Comentrio


N2010 R10=$P_GG[6] ; Ler a funo G ativa do grupo de funes
G 6
...
N2090 G[6]=R10

Literatura
Para informaes sobre os grupos de funo G, veja:
Manual de programao Fundamentos; Captulo "Grupos de funes G"

1.2.3 Programao indireta de atributos de posio (GP)

Funo
Os atributos de posio, como a programao incremental ou absoluta da posio do eixo,
podem ser programados indiretamente como variveis em conjunto com a palavra-chave GP.

Aplicao
A programao indireta de atributos de posio tem aplicao nos ciclos de substituio,
tendo a seguinte vantagem sobre a programao de atributos de posio como palavra-
chave (p.ex. IC, AC, ...):
Atravs da programao indireta como variveis no ser necessria nenhuma instruo
CASE que se bifurca atravs de todos possveis atributos de posio.

Sintaxe
<COMANDO_POSICIONAMENTO>[<eixo/fuso>]=
GP(<posio>,<atributo de posio)
<eixo/fuso>=GP(<posio>,<atributo de posio>)

Preparao do trabalho
60 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.2 Programao indireta

Significado

<COMANDO_POSICIONAMENTO>[]: Os seguintes comandos de posicionamento podem


ser programados juntos com a palavra-chave GP:
POS, POSA,SPOS, SPOSA
Alm disso tambm possvel:
todos identificadores de eixo/fuso disponveis no
canal:
<eixo/fuso>
identificador varivel de eixo/fuso AX
<eixo/fuso>: Eixo/fuso que deve ser posicionado
GP(): Palavra-chave para posicionamento
<posio>: Parmetro 1
Posio de eixo/fuso como constante ou varivel
<atributo de posio>: Parmetro 2
Atributo de posio (p.ex. modo de aproximao da
posio) como varivel (p.ex.
$P_SUB_SPOSMODE) ou como palavra-chave (IC,
AC, ...)

Os valores retornados das variveis possuem o seguinte significado:

Valor Significado Permitido para:


0 Nenhuma alterao do atributo de posio
1 AC POS, POSA,SPOS, SPOSA,AX, endereo de eixo
2 IC POS, POSA,SPOS, SPOSA,AX, endereo de eixo
3 DC POS, POSA,SPOS, SPOSA,AX, endereo de eixo
4 ACP POS, POSA,SPOS, SPOSA,AX, endereo de eixo
5 ACN POS, POSA,SPOS, SPOSA,AX, endereo de eixo
6 OC -
7 PC -
8 DAC POS, POSA,AX, endereo de eixo
9 DIC POS, POSA,AX, endereo de eixo
10 RAC POS, POSA,AX, endereo de eixo
11 RIC POS, POSA,AX, endereo de eixo
12 CAC POS, POSA
13 CIC POS, POSA
14 CDC POS, POSA
15 CACP POS, POSA
16 CACN POS, POSA

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 61
Programao flexvel de NC
1.2 Programao indireta

Exemplo
Em um acoplamento ativo de fusos sincronizados entre o fuso mestre S1 e o fuso escravo
S2, atravs do comando SPOS no programa principal realizada a chamada do seguinte
ciclo de substituio para posicionamento dos fusos.
O posicionamento realizado atravs da instruo no N2230:
SPOS[1]=GP($P_SUB_SPOSIT,$P_SUB_SPOSMODE)
SPOS[2]=GP($P_SUB_SPOSIT,$P_SUB_SPOSMODE)
A posio a ser aproximada lida da varivel de sistema $P_SUB_SPOSIT, o modo de
aproximao da posio da varivel de sistema $P_SUB_SPOSMODE.

Cdigo de programa Comentrio


N1000 PROC LANG_SUB DISPLOF SBLOF
...
N2100 IF($P_SUB_AXFCT==2)
N2110 ; Substituio do comando SPOS / SPOSA / M19 no
acoplamento de fusos sincronizados
N2185 DELAYFSTON ; Incio da rea stop-delay
N2190 COUPOF(S2,S1) ; Desativar o acoplamento de fusos sincronizados
N2200 ; Posicionar fuso mestre e fuso escravo
N2210 IF($P_SUB_SPOS==TRUE) OR ($P_SUB_SPOSA==TRUE)
N2220 ; Posicionar fuso com SPOS:
N2230 SPOS[1]=GP($P_SUB_SPOSIT,$P_SUB_SPOSMODE)
SPOS[2]=GP($P_SUB_SPOSIT,$P_SUB_SPOSMODE)
N2250 ELSE
N2260 ; Posicionar fuso com M19:
N2270 M1=19 M2=19 ; Posicionar fuso mestre e fuso escravo
N2280 ENDIF
N2285 DELAYFSTOF ; Fim da rea stop-delay
N2290 COUPON(S2,S1) ; Ativar acoplamento de fusos sincronizados
N2410 ELSE
N2420 ; Consulta quanto a outras substituies
...
N3300 ENDIF
...
N9999 RET

Condies gerais
A programao indireta de atributos de posio no possvel em aes sincronizadas.

Literatura
Manual de funes bsicas; BAG, Canal, Operao do programa, Comportamento Reset
(K1),
Captulo: Substituio de funes NC atravs de subrotinas

Preparao do trabalho
62 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.2 Programao indireta

1.2.4 Programao indireta de linhas de programa de pea (EXECSTRING)

Funo
Com o comando de programa de pea EXECSTRING possvel executar uma varivel de
String, que foi gerada anteriormente, como uma linha do programa de pea.

Sintaxe
EXECSTRING programado em uma linha de programa de pea prpria:
EXECSTRING(<varivel String>)

Significado

EXECSTRING: Comando para execuo de uma varivel de String como linha


de programa de pea
<varivel String>: Varivel do tipo STRING que contm a prpria linha de
programa de pea que deve ser executada

Indicao
Com o EXECSTRING podem ser descartadas todas as construes de programa de pea
que foram programadas em uma parte de um programa de pea. Excludas disso esto as
instrues PROC e DEF, bem como o uso frequente em arquivos INI e DEF.

Exemplo
Cdigo de programa Comentrio
N100 DEF STRING[100] BLOCO ; Definio das variveis de String para
gravar as linhas de programa de pea
que devem ser executadas.
N110 DEF STRING[10] MFCT1="M7"
...
N200 EXECSTRING(MFCT1 << "M4711") ; Execuo da linha de programa de pea
"M7 M4711".
...
N300 R10=1
N310 BLOCO="M3"
N320 IF(R10)
N330 BLOCO = BLOCO << MFCT1
N340 ENDIF
N350 EXECSTRING(BLOCO) ; Execuo da linha de programa de pea
"M3 M7"

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 63
Programao flexvel de NC
1.3 Funes de clculo

1.3 Funes de clculo

Funo
As funes de clculo so aplicadas com prioridade sobre os parmetros R e as variveis
(ou constantes e funes) do tipo REAL. Tambm so permitidos os tipos INT e CHAR.

Operador/Funo de clculo Significado


+ Adio
- Subtrao
* Multiplicao
/ Diviso
Ateno:
(tipo INT)/(tipo INT)=(tipo REAL); exemplo: 3/4 = 0.75
DIV Diviso, para tipo de varivel INT e REAL
Ateno:
(tipo INT)DIV(tipo INT)=(tipo INT); exemplo: 3 DIV 4 = 0
MOD A diviso Modulo (apenas para tipo INT) retorna o resto de
uma diviso INT
Exemplo: 3 MOD 4 = 3
: Operador de concatenao (para variveis FRAME)
Sin() Seno
COS() Coseno
TAN() Tangente
ASIN() Arco seno
ACOS() Arco coseno
ATAN2(,) Arco tangente2
SQRT() Raiz quadrada
ABS() Valor
POT() 2. Potncia (quadrada)
TRUNC() Parte inteira
Preciso em comandos de comparao ajustvel com
TRUNC (veja "Correo da preciso em erros de
comparao (TRUNC) [Pgina 68]")
ROUND() Arredondamento para um nmero inteiro
LN() Logaritmo natural
EXP() Funo exponencial
MINVAL() menor valor de duas variveis
(veja "Mnimo, mximo e rea de variveis (MINVAL,
MAXVAL, BOUND) [Pgina 70]" )
MAXVAL() Maior valor de duas variveis
(veja "Mnimo, mximo e rea de variveis (MINVAL,
MAXVAL, BOUND) [Pgina 70]" )

Preparao do trabalho
64 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.3 Funes de clculo

BOUND() Valor de varivel que est na faixa de valores definida


(veja "Mnimo, mximo e rea de variveis (MINVAL,
MAXVAL, BOUND) [Pgina 70]" )
CTRANS() Deslocamento
CROT() Rotao
CSCALE() Alterao de escala
CMIRROR() Espelhamento

Programao
Nas funes de clculo se aplica a forma escrita usual de matemtica. As prioridades na
execuo so definidas atravs de parnteses. Para as funes trigonomtricas e suas
funes inversas se aplica a indicao em graus (ngulo reto = 90).

Exemplos
Exemplo 1: ATAN2

A funo de clculo ATAN2 calcula o


ngulo do vetor formado por dois
5 $7$1  vetores posicionados
perpendicularmente.


O resultado est na rea de quatro


rYHWRU

QJXOR  quadrantes (-180 < 0 < +180).


r
rYHWRU  A base para a referncia angular
sempre o 2valor no sentido positivo.
5 $7$1 

QJXOR r
rYHWRU

 rYHWRU

Exemplo 2: Inicializao de campos de variveis completos

Cdigo de programa Comentrio


R1=R1+1 ; Novo R1 = antigo R1 +1
R1=R2+R3 R4=R5-R6 R7=R8*R9
R10=R11/R12 R13=SIN(25.3)
R14=R1*R2+R3 ; O clculo com pontos tem prioridade sobre o
clculo com traos.
R14=(R1+R2)*R3 ; Parnteses/colchetes so calculados primeiro.
R15=SQRT(POT(R1)+POT(R2)) ; Parnteses internos so ativados primeiro:
R15 = raiz quadrada de (R1+R2)
RESFRAME=FRAME1:FRAME2 ; Com o operador de concatenao os Frames so
FRAME3=CTRANS():CROT() ligados a um Frame resultante ou atribudos
aos valores de componente de Frame.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 65
Programao flexvel de NC
1.4 Operadores de comparao e operadores lgicos

1.4 Operadores de comparao e operadores lgicos

Funo
Operaes de comparao podem ser usadas, por exemplo, para formulao de uma
condio de salto. Tambm podem ser comparadas expresses complexas.
As operaes de comparao so aplicveis para variveis do tipo CHAR, INT, REAL e
BOOL. No tipo CHAR comparado o valor do cdigo.
Nos tipos STRING, AXIS e FRAME so possveis: == e <>, que tambm podem ser aplicados
em operaes do tipo STRING em aes sincronizadas.
O resultado das operaes comparadas sempre ser do tipo BOOL.
Operadores lgicos servem para ligao de valores lgicos.
As operaes lgicas somente podem ser aplicadas em variveis do tipo BOOL. Atravs da
converso interna de tipos elas tambm podem ser aplicadas nos tipos de dados CHAR,
INT e REAL.
Nas operaes lgicas (booleanas) aplica-se os tipos de dados BOOL, CHAR,INT e REAL:
0 corresponde a: FALSE
diferente de 0 corresponde a: TRUE
Operadores lgicos por Bits
Com as variveis do tipo CHAR e INT tambm podem ser empregados operadores lgicos
por Bits. Eventualmente realizada uma converso automtica de tipos.

Programao

Operador de comparao Significado


== igual
<> diferente
> maior
< menor
>= maior ou igual
<= menor ou igual

Operador lgico Significado


AND E
OR OU
NOT Negao
XOR OU exclusivo

Preparao do trabalho
66 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.4 Operadores de comparao e operadores lgicos

Operador lgico por Bits Significado


B_AND E bit a bit
B_OR OU bit a bit
B_NOT Negao bit a bit
B_XOR OU exclusivo bit a bit

Indicao
Em expresses aritmticas se pode definir a ordem de execuo atravs de parnteses, e
com isso, fugir das regras convencionais de prioridade.

Indicao
Entre operandos e operadores BOOLEANOS devem ser escritos espaos.

Indicao
O operador B_NOT refere-se apenas a um operando. Este se encontra aps o operador.

Exemplos
Exemplo 1: Operadores de comparao
IF R10>=100 GOTOF DESTINO
ou
R11=R10>=100
IF R11 GOTOF DESTINO
O resultado da comparao R10>=100 primeiro armazenado temporariamente no R11.

Exemplo 2: Operadores lgicos


IF (R10<50) AND ($AA_IM[X]>=17.5) GOTOF DESTINO
ou
IF NOT R10 GOTOB PARTIDA
NOT refere-se apenas a um operando.

Exemplo 3: Operadores lgicos por Bits


IF $MC_RESET_MODE_MASK B_AND 'B10000' GOTOF ACT_PLANE

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 67
Programao flexvel de NC
1.5 Correo da preciso em erros de comparao (TRUNC)

1.5 Correo da preciso em erros de comparao (TRUNC)

Funo
O comando TRUNC corta o operando multiplicado por um fator de preciso.
Preciso ajustvel em comandos de comparao
Os dados de programa de pea do tipo REAL so representados internamente em formato
IEEE com 64 Bits. Devido a esta forma de representao as casas decimais podem ser
imprecisas, o que pode gerar resultados inesperados se compararmos aos valores
calculados.
Igualdade relativa
Para que a preciso ressaltada atravs da forma de representao no falsifique o fluxo do
programa, ento com os comandos de comparao no realizado o controle sobre a
igualdade absoluta, e sim sobre a igualdade relativa.

Sintaxe
Correo da preciso em erros de comparao
TRUNC (R1*1000)

Significado

TRUNC: Corte das casas decimais

Igualdade relativa considerada de 10-12 com


Igualdade: (==)
Desigualdade: (<>)
Maior-Igual: (>=)
Menor-Igual: (<=)
Maior/Menor: (><) com igualdade absoluta
Maior: (>)
Menor: (<)
Compatibilidade
Por motivos de compatibilidade o controle sobre a igualdade relativa pode ser desativada no
caso do (>) e (<) atravs da definio do dado de mquina MD10280 $MN_
PROG_FUNCTION_MASK Bit0 = 1.

Indicao
As comparaes com dados do tipo REAL so condenados com uma certa impreciso
devido aos motivos j conhecidos. No caso de desvios no aceitveis deve-se desviar para
o clculo INTEGER, onde os operandos so multiplicados por um fator de preciso e depois
cortados com TRUNC.

Preparao do trabalho
68 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.5 Correo da preciso em erros de comparao (TRUNC)

Aes sincronizadas
O comportamento descrito dos comandos de comparao tambm se aplica nas aes
sincronizadas.

Exemplos
Exemplo 1: Consideraes de preciso

Cdigo de programa Comentrio


N40 R1=61.01 R2=61.02 R3=0.01 ; Atribuio dos valores iniciais
N41 IF ABS(R2-R1) > R3 GOTOF ERRO ; O salto seria executado at ento
N42 M30 ; Fim do programa
N43 ERRO: SETAL(66000) ;
R1=61.01 R2=61.02 R3=0.01 ; Atribuio dos valores iniciais
R11=TRUNC(R1*1000) R12=TRUNC(R2*1000) ; Correo da preciso
R13=TRUNC(R3*1000)
IF ABS(R12-R11) > R13 GOTOF ERRO ; O salto no ser mais executado
M30 ; Fim do programa
ERRO: SETAL(66000) ;

Exemplo 2: Formao e avaliao do quociente dos dois operandos

Cdigo de programa Comentrio


R1=61.01 R2=61.02 R3=0.01 ; Atribuio dos valores iniciais
IF ABS((R2-R1)/R3)-1) > 10EX-5 GOTOF ERRO ; O salto no ser executado
M30 ; Fim do programa
ERRO: SETAL(66000) ;

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 69
Programao flexvel de NC
1.6 Mnimo, mximo e rea de variveis (MINVAL, MAXVAL, BOUND)

1.6 Mnimo, mximo e rea de variveis (MINVAL, MAXVAL, BOUND)

Funo
Com os comandos MINVAL e MAXVAL os valores de duas variveis podem ser comparados
entre si. Como resultado retornado o menor valor (com MINVAL) ou o maior valor (com
MAXVAL).
Com o comando BOUND pode ser realizado o controle se o valor de uma varivel de controle
est dentro da faixa de valores definida.

Sintaxe
<menor valor>=MINVAL(<varivel1>,<varivel2>)
<maior valor>=MAXVAL(<varivel1>,<varivel2>)
<valor retornado>=<BOUND>(<mnimo>,<mximo>,<varivel de controle>)

Significado

MINVAL: Determina o menor valor de duas variveis (<varivel1>,


<varivel2>)
<menor valor>: Varivel de resultado para o comando MINVAL
passado para o menor valor de varivel.
MAXVAL: Determina o maior valor de duas variveis (<varivel1>,
<varivel2>)
<maior valor>: Varivel de resultado para o comando MAXVAL
passado para o maior valor de varivel.
BOUND: Controla se a varivel (<varivel de controle>) est dentro
de uma faixa de valores definida.
<mnimo>: Varivel que definida com o valor mnimo da faixa de valores
<mximo>: Varivel que definida com o valor mximo da faixa de valores
<valor de Varivel de resultado para o comando BOUND
retorno>: Quando o valor da varivel de controle estiver dentro da faixa de
valores definida, ento a varivel de resultado passada para o
valor da varivel de controle.
Quando o valor da varivel de controle for maior que o valor
mximo, ento a varivel de resultado passada para o valor
mximo da faixa de definio.
Quando o valor da varivel de controle for menor que o valor
mnimo, ento a varivel de resultado passada para o valor
mnimo da faixa de definio.

Indicao
MINVAL, MAXVAL e BOUND tambm podem ser programadas em aes sncronas.

Preparao do trabalho
70 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.6 Mnimo, mximo e rea de variveis (MINVAL, MAXVAL, BOUND)

Indicao
Comportamento na igualdade
Em caso de igualdade, com MINVAL/MAXVAL fornecido este mesmo valor. Com BOUND
retornado o valor da varivel a ser controlada.

Exemplo
Cdigo de programa Comentrio
DEF REAL rVar1=10.5, rVar2=33.7, rVar3, rVar4, rVar5, rValMin, rValMax, rRetVar
rValMin=MINVAL(rVar1,rVar2) ; rValMin passado para o valor 10.5.
rValMax=MAXVAL(rVar1,rVar2) ; rValMax passado para o valor 33.7.
rVar3=19.7
rRetVar=BOUND(rVar1,rVar2,rVar3) ; rVar3 est dentro dos limites, rRetVar passado para
19.7.
rVar3=1.8
rRetVar=BOUND(rVar1,rVar2,rVar3) ; rVar3 est abaixo do limite mnimo, rRetVar passado
para 10.5.

rVar3=45.2
rRetVar=BOUND(rVar1,rVar2,rVar3) ; rVar3 est acima do limite mximo, rRetVar passado
para 33.7.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 71
Programao flexvel de NC
1.7 Prioridade das operaes

1.7 Prioridade das operaes

Funo
Cada operador ordenado por um nvel de prioridade. Na avaliao de uma expresso
sempre so aplicados primeiro os operadores de nvel de prioridade mais alto. No caso de
operadores de mesma propriedade, a avaliao realizada da esquerda para direita.
Em expresses aritmticas se pode definir a ordem de execuo atravs de parnteses, e
com isso, fugir das regras convencionais de prioridade.

Seqncia dos operadores


Do nvel de prioridade mais alto at o mais baixo

1. NOT, B_NOT Negao, negao por Bits


2. *, /, DIV, MOD Multiplicao, diviso
3. +, Adio, subtrao
4. B_AND E bit a bit
5. B_XOR OU exclusivo bit a bit
6. B_OR OU bit a bit
7. AND E
8. XOR OU exclusivo
9. OR OU
10. << Encadeamento de Strings, tipo de resultado STRING
11. ==, <>, >, <, >=, <= Operadores de comparao

Indicao
O operador de encadeamento ":" para Frames no podem surgir com outros operadores em
uma expresso. Por isso que uma categorizao de prioridades para este operador no se
faz necessria.

Exemplo de instruo If
If (otto==10) and (anna==20) gotof end

Preparao do trabalho
72 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.8 Possveis converses de tipo

1.8 Possveis converses de tipo

Funo
Converso de tipos na atribuio
O valor numrico constante, a varivel ou a expresso, que se atribui a uma varivel, deve
ser compatvel com o tipo desta varivel. Se esta condio for preenchida, ento o tipo ser
convertido automaticamente durante a atribuio.

Possveis converses de tipos

para REAL INT BOOL CHAR STRING AXIS FRAME


de
REAL sim sim* sim1) sim*
INT sim sim sim1) sim2)
BOOL sim sim sim sim sim
CHAR sim sim sim 1) sim sim
STRING sim4) sim3) sim
AXIS sim
FRAME sim
Explanaes

* Na converso de tipos de REAL para INT um valor fracionado >= 0.5 arredondado
para cima, e em caso contrrio, arredondado para baixo (veja a funo ROUND).
1) O valor <> 0 corresponde TRUE, o valor == 0 corresponde FALSE
2) Se o valor estiver na faixa de nmeros admissveis
3) Se apenas 1 caractere
4) Tamanho de String 0 = >FALSE, caso contrrio TRUE

Indicao
Se durante a converso um valor for maior que a faixa de destino, ser emitida uma
mensagem de erro.
Se aparecerem tipos mistos em uma expresso, ento ser realiza automaticamente uma
adaptao de tipos. As converses de tipos tambm so possveis em aes sincronizadas;
veja o captulo "Aes sincronizadas de movimentos, converso implcita de tipos".

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 73
Programao flexvel de NC
1.9 Operaes de String

1.9 Operaes de String

Operaes de String
Alm das operaes clssicas "Atribuio" e "Comparao" tambm so possveis as
seguintes operaes de String:
Converso de tipos para STRING (AXSTRING) [Pgina 75]
Converso de tipos de STRING (NUMBER, ISNUMBER, AXNAME) [Pgina 76]
Encadeamento de Strings (<<) [Pgina 77]
Mudana para letras minsculas / letras maisculas (TOLOWER, TOUPPER) [Pgina 78]
Definir o tamanho de uma Strings (STRLEN) [Pgina 79]
Localizar caractere/String na String (INDEX, RINDEX, MINDEX, MATCH) [Pgina 80]
Seleo de uma String parcial (SUBSTR) [Pgina 81]
Seleo de um caractere individual (STRINGVAR, STRINGFELD) [Pgina 82]
Formatao de String (SPRINT) [Pgina 83]

Significado especial do caractere 0


O caractere 0 interpretado internamente como identificao final de uma String. Se um
caractere substitudo pelo caractere 0, ento a String ser encurtada com isso.
Exemplo:

Cdigo de programa Comentrio


DEF STRING[20] STRG="Eixo . est parado"
STRG[6]="X"
MSG(STRG) ; Retorna a mensagem "Eixo X est
parado".
STRG[6]=0
MSG(STRG) ; Retorna a mensagem "Eixo".

Preparao do trabalho
74 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.9 Operaes de String

1.9.1 Converso de tipos para STRING (AXSTRING)

Funo
Atravs da funo "Converso de tipos para STRING" se pode utilizar variveis de diferentes
tipos como parte integrante de uma mensagem (MSG).
Ocorre na utilizao do operador << implicitamente para os tipos de dados INT, REAL,
CHAR e BOOL (veja "Encadeamento de Strings (<<) [Pgina 77]").
Um valor INT convertido na forma normal e legvel. Para valores REAL so indicadas at
10 casas decimais.
Com o comando AXSTRING se pode converter variveis do tipo AXIS para o tipo STRING.

Sintaxe
<STRING_ERG> = << <ocup._tipo>
<STRING_ERG> = AXSTRING(<identificador de eixo>)

Significado

<STRING_ERG>: Varivel para o resultado da converso de tipos


Tipo: STRING
<ocup._tipo>: Tipos de variveis INT, REAL, CHAR, STRING e
BOOL
AXSTRING: O comando AXSTRING retorna o identificador de eixo
indicado como String.
<identificador de eixo>: Varivel para identificador de eixo
Tipo: AXIS

Indicao
As variveis FRAME no podem ser convertidas.

Exemplos
Exemplo 1:
MSG("Posio:"<<$AA_IM[X])

Exemplo 2: AXSTRING

Cdigo de programa Comentrio


DEF STRING[32] STRING_ERG
STRING_ERG=AXSTRING(X) ; STRING_ERG == "X"

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 75
Programao flexvel de NC
1.9 Operaes de String

1.9.2 Converso de tipos de STRING (NUMBER, ISNUMBER, AXNAME)

Funo
Com o comando NUMBER se converte de STRING para REAL. A capacidade de converso
pode ser verificada atravs do comando ISNUMBER.
Com o comando AXNAME se converte uma String no tipo de dado AXIS.

Sintaxe
<REAL_ERG>=NUMBER("<String>")
<BOOL_ERG>=ISNUMBER("<String>")
<AXIS_ERG>=AXNAME("<String>")

Significado

NUMBER: O comando NUMBER retorna o nmero representado atravs da


<String> como valor REAL.
<String>: Varivel a ser convertida do tipo STRING
<REAL_ERG>: Varivel para o resultado da converso de tipos com NUMBER
Tipo: REAL
ISNUMBER: Com o comando ISNUMBER pode ser verificado se a <String> pode
ser convertida em um nmero vlido.
<BOOL_ERG>: Varivel para o resultado da consulta com ISNUMBER
Tipo: BOOL
Valor: TRUE ISNUMBER retorna o valor TRUE se a
<String> apresenta um nmero REAL vlido
conforme as regras da linguagem.
FALSE Se ISNUMBER retornar o valor FALSE, ento na
chamada do NUMBER emitido o alarme com a
mesma <String>.
AXNAME: O comando AXNAME converte a <String> especificada em um
identificador de eixo.
Nota:
Se a <String> no pode ser associada a nenhum identificador de eixo
configurado, ento ser emitido um alarme.
<AXIS_ERG>: Varivel para o resultado da converso de tipos com AXNAME
Tipo: AXIS

Preparao do trabalho
76 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.9 Operaes de String

Exemplo
Cdigo de programa Comentrio
DEF BOOL BOOL_ERG
DEF REAL REAL_ERG
DEF AXIS AXIS_ERG
BOOL_ERG=ISNUMBER("1234.9876Ex-7") ; BOOL_ERG == TRUE
BOOL_ERG=ISNUMBER("1234XYZ") ; BOOL_ERG == FALSE
REAL_ERG=NUMBER("1234.9876Ex-7") ; REAL_ERG == 1234.9876Ex-7
AXIS_ERG=AXNAME("X") ; AXIS_ERG == X

1.9.3 Encadeamento de Strings (<<)

Funo
A funo "Encadeamento de Strings" oferece a capacidade de compor uma String a partir de
partes individuais.
O encadeamento realizado atravs do operador "<<". Este operador tem como tipo de
destino STRING para todas combinaes dos tipos bsicos CHAR, BOOL, INT, REAL e
STRING. Uma eventual converso que for necessria ser realizada conforme as regras
existentes.

Sintaxe
<ocup._tipo> << <ocup._tipo>

Significado

<ocup._tipo>: Varivel do tipo CHAR, BOOL, INT, REAL ou STRING


<< : Operador para o encadeamento de variveis (<ocup._tipo) para uma
seqncia de caracteres composta (tipo STRING).
Este operador tambm est disponvel como uma variante "unria".
Dessa forma possvel executar uma converso explcita de tipos
para STRING (no para FRAME e AXIS):
<< <ocup._tipo>
Por exemplo, se pode compor uma mensagem destas ou um comando a partir de listas de
texto e inserir parmetros (algo como um nome de mdulo):
MSG(STRG_TAB[LOAD_IDX]<<NOME_MODULO)

CUIDADO
Os resultados intermedirios no encadeamento de Strings no podem exceder o tamanho
mximo de String.

Indicao
Os tipos FRAME e AXIS no podem ser utilizados juntos com o operador "<<".

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 77
Programao flexvel de NC
1.9 Operaes de String

Exemplos
Exemplo 1: Encadeamento de Strings

Cdigo de programa Comentrio


DEF INT IDX=2
DEF REAL VALUE=9.654
DEF STRING[20] STRG="NDICE:2"
IF STRG=="ndice:"<<IDX GOTOF NO_MSG
MSG("ndice:"<<IDX<<"/valor:"<<VALUE) ; Exibio:
"ndice:2/valor:9.654"
NO_MSG:

Exemplo 2: Converso explcita de tipos com <<

Cdigo de programa Comentrio


DEF REAL VALUE=3.5
<<VALUE ; A varivel especificada de tipo REAL convertida para o
tipo STRING.

1.9.4 Mudana para letras minsculas / letras maisculas (TOLOWER, TOUPPER)

Funo
A funo "Mudana para letras minsculas / maisculas" permite a mudana de todas as
letras de uma seqncia de caracteres para uma representao uniforme.

Sintaxe
<STRING_ERG>=TOUPPER("<String>")
<STRING_ERG>=TOLOWER("<String>")

Significado

TOUPPER: Com o comando TOUPPER todas as letras de uma seqncia de


caracteres muda para letras maisculas.
TOLOWER: Com o comando TOLOWER todas as letras de uma seqncia de
caracteres muda para letras minsculas.
<String>: Seqncia de caracteres que deve ser convertida
Tipo: STRING
<STRING_ERG>: Varivel para o resultado da converso
Tipo: STRING

Preparao do trabalho
78 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.9 Operaes de String

Exemplo
Visto que tambm possvel mostrar as especificaes de usurio na interface de operao,
a representao uniforme se obtm atravs de letras minsculas ou maisculas:

Cdigo de programa
DEF STRING [29] STRG
...
IF "LEARN.CNC"==TOUPPER(STRG) GOTOF LOAD_LEARN

1.9.5 Definir o tamanho de uma Strings (STRLEN)

Funo
Com o comando STRLEN possvel definir o tamanho de uma seqncia de caracteres.

Sintaxe
<INT_ERG>=STRLEN("<STRING>")

Significado

STRLEN: Com o comando STRLEN se define o tamanho da seqncia de


caracteres especificada.
retornado o nmero de caracteres que so contados desde o incio da
seqncia de caracteres e que no so caracteres 0.
<String>: Seqncia de caracteres cujo tamanho deve ser determinado
Tipo: STRING
<INT_ERG>: Varivel para o resultado da definio
Tipo: INT

Exemplo
A funo junto com o acesso dos caracteres individuais permite determinar o fim de uma
seqncia de caracteres:

Cdigo de programa
IF (STRLEN(NOME_MODULO)>10) GOTOF ERRO

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 79
Programao flexvel de NC
1.9 Operaes de String

1.9.6 Localizar caractere/String na String (INDEX, RINDEX, MINDEX, MATCH)

Funo
Esta funcionalidade permite localizar um nico caractere ou uma String dentro de outra
String. Os resultados de funo indicam em qual posio da String foi encontrado o caractere
/ a String dentro da String analisada.

Sintaxe
INT_ERG=INDEX(STRING,CHAR) ; Tipo de resultado: INT
INT_ERG=RINDEX(STRING,CHAR) ; Tipo de resultado: INT
INT_ERG=MINDEX(STRING,STRING) ; Tipo de resultado: INT
INT_ERG=MATCH(STRING,STRING) ; Tipo de resultado: INT
Semntica
Funes de busca: Elas retornam a posio na String (primeiro parmetro) onde a
localizao teve xito. Se o caractere ou a String no puder ser localizado, ento se retorna o
valor -1. Neste caso o primeiro caractere possui a posio 0.

Significado

INDEX: Busca (do comeo) o caractere especificado como segundo parmetro no


primeiro parmetro.
RINDEX: Busca (do fim) o caractere especificado como segundo parmetro no
primeiro parmetro.
MINDEX: Corresponde funo INDEX, com exceo de que se transmite uma lista de
caracteres (como String) de onde o ndice do primeiro caractere encontrado
retornado.
MATCH: Busca uma String dentro de uma String.
Dessa forma as Strings podem ser desmembradas conforme determinados critrios, algo
como posies com espao vazio ou sinais separadores de caminhos / atalhos ("/").

Exemplo
Desmembramento de uma entrada em nomes de caminho e de mdulo

Cdigo de programa Comentrio


DEF INT PFADIDX, PROGIDX
DEF STRING[26] ESPECIFICACAO
DEF INT LISTIDX
ESPECIFICACAO = "/_N_MPF_DIR/_N_EXECUTE_MPF"
LISTIDX = MINDEX (ESPECIFICACAO, "M,N,O,P") + 1 ; Como valor no LISTIDX se retorna o 3;
pois o "N" o primeiro caractere no
parmetro ESPECIFICACAO da lista de
seleo partindo-se do incio.

Preparao do trabalho
80 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.9 Operaes de String

Cdigo de programa Comentrio


PFADIDX = INDEX (ESPECIFICACAO, "/") +1 ; Com isso se aplica: PFADIDX = 1
PROGIDX = RINDEX (ESPECIFICACAO, "/") +1 ; Com isso se aplica: PROGIDX = 12
Com a ajuda da funo SUBSTR inserida
na prxima seco se pode desmembrar
a varivel ESPECIFICACAO nos
componentes ;"caminho";e "mdulo":
VARIABLE = SUBSTR (ESPECIFICACAO, PFADIDX, PROGIDX-PFADIDX-1) ; Retorna "_N_MPF_DIR"
VARIABLE = SUBSTR (ESPECIFICACAO, PROGIDX) ; Retorna "_N_EXECUTE_MPF"

1.9.7 Seleo de uma String parcial (SUBSTR)

Funo
Esta funcionalidade permite localizar uma String parcial de dentro de uma String. Para isso
se especifica o ndice do primeiro caractere e o tamanho desejado. Se no for especificada a
informao do tamanho, espera-se a String restante.

Sintaxe
STRING_ERG = SUBSTR (STRING,INT) ; Tipo de resultado: INT
STRING_ERG = SUBSTR(STRING,INT, INT) ; Tipo de resultado: INT
Semntica
No primeiro caso retornada a String parcial desde a posio definida pelo segundo
parmetro at o fim da String.
No segundo caso a String resultante limitada no tamanho mximo dado pelo terceiro
parmetro.
Se a posio inicial estiver aps o fim da String, ser retornada a String vazia (" ").
Se a posio inicial ou o tamanho for negativo, ser emitido um alarme.

Exemplo
Cdigo de programa Comentrio
DEF STRING[29] ERG
ERG = SUBSTR ("CONFIRMACAO:10 a 99", 10, 2) ; Com isso se aplica: ERG ==
"10"

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 81
Programao flexvel de NC
1.9 Operaes de String

1.9.8 Seleo de um caractere individual (STRINGVAR, STRINGFELD)

Funo
Esta funcionalidade permite a seleo de caracteres individuais de uma String. Isto afeta
tanto o acesso de leitura como o acesso de gravao.

Sintaxe
CHAR_ERG = STRINGVAR [IDX] ; Tipo de resultado: CHAR
CHAR_ERG = STRINGFELD [IDX_FELD, IDX_CHAR] ; Tipo de resultado: CHAR
Semntica
Se realiza a leitura/gravao do caractere dentro da String que estiver na posio
especificada. Se a indicao de posio for negativa ou ento maior que a String, ser
emitido um alarme.
Exemplo de mensagens:
Emprego de um identificador de eixo em uma String composta previamente.

Cdigo de programa Comentrio


DEF STRING [50] MENSAGEM = "O eixo n alcanou a posio"
MENSAGEM [6] = "X"
MSG (MENSAGEM) ; Retorna a mensagem "O eixo X
alcanou a posio"

Parmetro
O acesso a caracteres individuais somente possvel em variveis definidas pelo usurio
(dados LUD, GUD e PUD).
Alm disso, esse tipo de acesso possvel apenas em uma chamada de subrotina para
parmetros do tipo "Call-By-Value".

Exemplos
Exemplo 1: Acesso de caracteres individuais em um dado de sistema, dado de mquina,

Cdigo de programa Comentrio


DEF STRING [50] STRG
DEF CHAR CONFIRMACAO

STRG = $P_MMCA
CONFIRMACAO = STRG [0] ; Avaliao do componente de
confirmao

Preparao do trabalho
82 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.9 Operaes de String

Exemplo 2: Acesso de caractere individual com parmetro Call-By-Reference

Cdigo de programa Comentrio


DEF STRING [50] STRG
DEF CHAR CHR1
EXTERN UP_CALL (VAR CHAR1) ; Parmetro Call-By-Reference!

CHR1 = STRG [5]
UP_CALL (CHR1) ; Call-By-Reference
STRG [5] = CHR1

1.9.9 Formatao de String (SPRINT)

Funo
Com a funo pr-definida SPRINT as sequncias de caracteres podem ser formatadas e,
por exemplo, preparadas para emisso e envio at os dispositivos externos (veja tambm em
"Sada para um dispositivo ou arquivo externo (EXTOPEN, WRITE, EXTCLOSE) [Pgina
716]").

Sintaxe
"<resultado_string>"=SPRINT("<formato_string>",<valor_1>,<valor_2>,.
.., <valor_n>)

Significado

SPRINT: Identificador para uma funo pr-definida


que retorna um valor do tipo STRING.
"<formato_string>": Sequncia de caracteres que contm partes
fixas e variveis. As partes variveis so
definidas atravs do caractere de controle
de formatos % e uma descrio de formato
subsequente.
<valor_1>,<valor_2>,,<valor_n>: Valor na forma de uma constante ou
varivel do NC, que inserido na posio
onde est o n caractere de controle de
formato %, de acordo com a descrio de
formato dada no <formato_string>.
"<resultado_string>": Sequncia de caracteres formatada
(mximo de 400 Bytes)

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 83
Programao flexvel de NC
1.9 Operaes de String

Descries de formato disponveis

%B: Transformao para a String "TRUE", se o valor a ser transformado:


for diferente de 0.
no for uma String vazia (no caso de valores string).
Transformao para a String "FALSE", se o valor a ser transformado:
for igual a 0.
for uma String vazia.
Exemplo:
N10 DEF BOOL BOOL_VAR=1
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF BOOL_VAR:%B", BOOL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF BOOL_VAR:TRUE".
%C: Transformao em um caractere ASCII.
Exemplo:
N10 DEF CHAR CHAR_VAR="X"
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF CHAR_VAR:%C",CHAR_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF CHAR_VAR:X".
%D: Transformao em uma String com um valor inteiro (INTEGER).
Exemplo:
N10 DEF INT INT_VAR=123
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF INT_VAR:%D",INT_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF INT_VAR:123".
%<m>D: Transformao em uma String com um valor inteiro (INTEGER). A String possui
uma extenso mnima de <m> caracteres. As casas ausentes so preenchidas
esquerda por caracteres vazios.
Exemplo:
N10 DEF INT INT_VAR=-123
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF INT_VAR:%6D",INT_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF INT_VAR:xx-123" (onde o "x" equivale a um caractere vazio no
exemplo dado).
%F: Transformao em uma String com um nmero decimal com 6 casas decimais. Se
necessrio as casas decimais sero arredondadas ou preenchidas com 0 (zero).
Exemplo:
N10 DEF REAL REAL_VAR=-1.2341234EX+03
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF REAL_VAR:%F",REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF REAL_VAR: -1234.123400".

Preparao do trabalho
84 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.9 Operaes de String

%<m>F: Transformao em uma String com um nmero decimal com 6 casas decimais e
com uma extenso total de pelo menos <m> caracteres. Se necessrio as casas
decimais sero arredondadas ou preenchidas com 0 (zero). Os caracteres
ausentes na extenso total <m> so preenchidos esquerda por caracteres
vazios.
Exemplo:
N10 DEF REAL REAL_VAR=-1.23412345678EX+03
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF REAL_VAR:%15F",REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF REAL_VAR: xxx-1234.123457" (onde o "x" equivale a um caractere
vazio no exemplo dado).
%.<n>F: Transformao em uma String com um nmero decimal com <n> casas decimais.
Se necessrio as casas decimais sero arredondadas ou preenchidas com 0
(zero).
Exemplo:
N10 DEF REAL REAL_VAR=-1.2345678EX+03
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF REAL_VAR:%.3F",REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF REAL_VAR: -1234.568".
%<m>.<n>F: Transformao em uma String com um nmero decimal com <n> casas decimais e
com uma extenso total de pelo menos <m> caracteres. Se necessrio as casas
decimais sero arredondadas ou preenchidas com 0 (zero). Os caracteres
ausentes na extenso total <m> so preenchidos esquerda por caracteres
vazios.
Exemplo:
N10 DEF REAL REAL_VAR=-1.2341234567890EX+03
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF REAL_VAR:%10.2F",REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF REAL_VAR:xx-1234.12" (onde o "x" equivale a um caractere vazio
no exemplo dado).
%E: Transformao em uma String com um nmero decimal em representao
exponencial. A mantissa armazenada de maneira normalizada com um dgito
antes da vrgula e 6 casas decimais. Se necessrio as casas decimais sero
arredondadas ou preenchidas com 0 (zero). A exponente iniciada com a palavra-
chave "EX". Depois seguido por um sinal ("+" ou "-") e um nmero de dois ou trs
dgitos.
Exemplo:
N10 DEF REAL REAL_VAR=-1234.567890
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF REAL_VAR:%E",REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF REAL_VAR:-1.234568EX+03".

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 85
Programao flexvel de NC
1.9 Operaes de String

%<m>E: Transformao em uma String com um nmero decimal em representao


exponencial e com uma extenso total de pelo menos <m> caracteres. Os
caracteres ausentes so preenchidos esquerda por caracteres vazios. A
mantissa armazenada de maneira normalizada com um dgito antes da vrgula e
6 casas decimais. Se necessrio as casas decimais sero arredondadas ou
preenchidas com 0 (zero). A exponente iniciada com a palavra-chave "EX".
Depois seguido por um sinal ("+" ou "-") e um nmero de dois ou trs dgitos.
Exemplo:
N10 DEF REAL REAL_VAR=-1234.5
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF REAL_VAR:%20E",REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF REAL_VAR:xxxxxx-1.234500EX+03" (onde o "x" equivale a um
caractere vazio no exemplo dado)
%.<n>E: Transformao em uma String com um nmero decimal em representao
exponencial. A mantissa armazenada de maneira normalizada com um dgito
antes da vrgula e <n> casas decimais. Se necessrio as casas decimais sero
arredondadas ou preenchidas com 0 (zero). A exponente iniciada com a palavra-
chave "EX". Depois seguido por um sinal ("+" ou "-") e um nmero de dois ou trs
dgitos.
Exemplo:
N10 DEF REAL REAL_VAR=-1234.5678
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF REAL_VAR:%.2E",REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF REAL_VAR:-1.23EX+03".
%<m>.<n>E: Transformao em uma String com um nmero decimal em representao
exponencial e com uma extenso total de pelo menos <m> caracteres. Os
caracteres ausentes so preenchidos esquerda por caracteres vazios. A
mantissa armazenada de maneira normalizada com um dgito antes da vrgula e
<n> casas decimais. Se necessrio as casas decimais sero arredondadas ou
preenchidas com 0 (zero). A exponente iniciada com a palavra-chave "EX".
Depois seguido por um sinal ("+" ou "-") e um nmero de dois ou trs dgitos.
Exemplo:
N10 DEF REAL REAL_VAR=-1234.5678
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF REAL_VAR:%12.2E", REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF REAL_VAR:xx-1.23EX+03" (onde o "x" equivale a um caractere
vazio no exemplo dado).

Preparao do trabalho
86 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.9 Operaes de String

%G: Transformao em uma String com um nmero decimal de acordo com a faixa de
valores em representao decimal ou exponencial: em termos de quantia, se o
valor apresentado for menor que 1.0EX-04 ou maior ou igual a 1.0EX+06, ser
adotada a representao exponencial, caso contrrio a representao decimal. No
mximo so exbidos seis dgitos significantes, e com eventual arredondamento.
Exemplo com representao decimal:
N10 DEF REAL REAL_VAR=1.234567890123456EX-04
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF REAL_VAR:%G",REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF REAL_VAR: 0.000123457".
Exemplo com representao exponencial:
N10 DEF REAL REAL_VAR=1.234567890123456EX+06
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF REAL_VAR:%G",REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF REAL_VAR:1.23457EX+06".
%<m>G: Transformao em uma String com um nmero decimal de acordo com a faixa de
valores em representao decimal ou exponencial (como %G). A String possui uma
extenso total de pelo menos <m> caracteres. Os caracteres ausentes so
preenchidos esquerda por caracteres vazios.
Exemplo com representao decimal:
N10 DEF REAL REAL_VAR=1.234567890123456EX-04
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF REAL_VAR:%15G",REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF REAL_VAR:xxxx0.000123457" (onde o "x" equivale a um caractere
vazio no exemplo dado).
Exemplo com representao exponencial:
N10 DEF REAL REAL_VAR=1.234567890123456EX+06
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF REAL_VAR:%15G",REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF REAL_VAR:xxx1.23457EX+06" (onde o "x" equivale a um
caractere vazio no exemplo dado).
%.<n>G: Transformao em uma String com um nmero decimal de acordo com a faixa de
valores em representao decimal ou exponencial. No mximo so exibidos <n>
dgitos significantes, e com eventual arredondamento. Em termos de quantia, se o
valor apresentado for menor que 1.0EX-04 ou maior ou igual a 1.0EX(+<n>), ser
adotada a representao exponencial, caso contrrio a representao decimal.
Exemplo com representao decimal:
N10 DEF REAL REAL_VAR=1.234567890123456EX-04
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF REAL_VAR:%.3G",REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF REAL_VAR: 0.000123".
Exemplo com representao exponencial:
N10 DEF REAL REAL_VAR=1.234567890123456EX+03
N20 DEF STRING[80] RESULT
N30 RESULT = SPRINT("CONTENT OF REAL_VAR:%.3G",REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF REAL_VAR:1.23EX+03".

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 87
Programao flexvel de NC
1.9 Operaes de String

%<m>.<n>G: Transformao em uma String com um nmero decimal de acordo com a faixa de
valores em representao decimal ou exponencial (como %.<n>G). A String possui
uma extenso total de pelo menos <m> caracteres. Os caracteres ausentes so
preenchidos esquerda por caracteres vazios.
Exemplo com representao decimal:
N10 DEF REAL REAL_VAR=1.234567890123456EX-04
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF REAL_VAR:%12.4G",REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF REAL_VAR:xxx0.0001235" (onde o "x" equivale a um caractere
vazio no exemplo dado).
Exemplo com representao exponencial:
N10 DEF REAL REAL_VAR=1.234567890123456EX+04
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF REAL_VAR:%12.4G",REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF REAL_VAR:xx1.235EX+06" (onde o "x" equivale a um caractere
vazio no exemplo dado).
%.<n>P: Transformao de um valor REAL em um valor INTEGER que considera <n> casas
decimais. O valor INTEGER retornado como valor binrio de 32 Bit. Se o valor a
ser transformado no permite ser representado com 32 Bit, o processamento ser
cancelado com um alarme.
Visto que uma sequncia de Bytes gerada com a instruo de formato %.<n>P
tambm pode conter zeros binrios, ento a String total gerada no corresponder
mais s convenes do tipo de dados STRING do NC. Por isso que ele no poder
ser gravado em uma varivel do tipo STRING, nem ser processado com os
comandos de String da linguagem NC. A nica utilizao possvel a transferncia
de parmetros para o comando WRITE com o envio para um dispositivo externo
compatvel (veja o exemplo a seguir).
Assim que o <formato_string> portar uma descrio de formato do tipo %P, a String
inteira, com exceo do nmero binrio gerado com %.<n>P, ser emitida de
acordo com o dado MD10750 $MN_SPRINT_FORMAT_P_CODE em cdigo de
caracteres ASCII, ISO (DIN6024) ou EIA (RS244). Se for programado um caractere
que no permite ser convertido, o processamento ser cancelado com alarme.
Exemplo:
N10 DEF REAL REAL_VAR=123.45
N20 DEF INT ERROR
N30 DEF STRING[20] EXT_DEVICE="/ext/dev/1"
...
N100 EXTOPEN(ERROR,EXT_DEVICE)
N110 IF ERROR <> 0
... ; Tratamento de erros
N200 WRITE(ERROR,EXT_DEVICE,SPRINT("INTEGER BINARY
CODED:%.3P",REAL_VAR)
N210 IF ERROR <> 0
; Tratamento de erros
Resultado: A String "INTEGER BINARY CODED: 'H0001E23A'" transferida para
o dispositivo de destino /ext/dev/1. O valor hexadecimal 0x0001E23A corresponde
ao valor decimal 123450.

Preparao do trabalho
88 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.9 Operaes de String

%<m>.<n>P: Transformao de um valor REAL de acordo com o ajuste realizado no dado de


mquina MD10751$MN_SPRINT_FORMAT_P_DECIMAL em uma String com:
um nmero inteiro de <m> + <n> dgitos ou
um nmero decimal com no mximo <m> dgitos antes da vrgula e exatamente
<n> casas decimais.
Como na descrio de formato %.<n>P, a String inteira armazenada no cdigo de
caracteres definido pelo dado MD10750 $MN_SPRINT_FORMAT_P_CODE.
Transformao com o MD10751 = 0:
O valor REAL transformado em uma String com um nmero inteiro de <m> + <n>
dgitos. As casas decimais sero arredondadas em <n> dgitos ou preenchidas
com 0 (zero) conforme necessidade. As casas decimais ausentes so preenchidas
por caracteres vazios. O sinal de menos posicionado na extrema esquerda, no
lugar do sinal de mais colocado um caractere vazio.
Exemplo:
N10 DEF REAL REAL_VAR=-123.45
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("PUNCHED TAPE FORMAT:%5.3P",REAL_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"PUNCHED TAPE FORMAT:-xx123450" (onde o "x" equivale a um caractere vazio
no exemplo dado).
Transformao com o MD10751 = 1:
O valor REAL transformado em uma String com um nmero decimal com no
mximo <m> dgitos antes da vrgula e exatamente <n> casas decimais. Se
necessrio, os dgitos antes da vrgula sero truncados e as casas decimais
arredondadas ou preenchidas com 0 (zero). Se <n> for igual a 0, tambm ser
descartado o ponto decimal.
Exemplo:
N10 DEF REAL REAL_VAR1=-123.45
N20 DEF REAL REAL_VAR2=123.45
N30 DEF STRING[80] RESULT
N40 RESULT=SPRINT("PUNCHED TAPE FORMAT:%5.3P VAR2:%2.0P",
REAL_VAR1,REAL_VAR2)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"PUNCHED TAPE FORMAT:-123.450 VAR2:23".
%S: Insero de uma String.
Exemplo:
N10 DEF STRING[16] STRING_VAR="ABCDEFG"
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF STRING_VAR:%S",STRING_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF STRING_VAR:ABCDEFG".
%<m>S: Insero de uma String com pelo menos <m> caracteres. Os dgitos ausentes so
preenchidos por caracteres vazios.
Exemplo:
N10 DEF STRING[16] STRING_VAR="ABCDEFG"
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF STRING_VAR:%10S",STRING_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF STRING_VAR:xxxABCDEFG" (onde o "x" equivale a um caractere
vazio no exemplo dado).

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 89
Programao flexvel de NC
1.9 Operaes de String

%.<n>S: Insero de <n> caracteres de uma String (iniciando-se pelo primeiro caractere).
Exemplo:
N10 DEF STRING[16] STRING_VAR="ABCDEFG"
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF STRING_VAR:%.3S",STRING_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF STRING_VAR:ABC".
%<m>.<n>S: Insero de <n> caracteres de uma String (iniciando-se pelo primeiro caractere). A
extenso total da String gerada possui pelo menos <m> caracteres. Os dgitos
ausentes so preenchidos por caracteres vazios.
Exemplo:
N10 DEF STRING[16] STRING_VAR="ABCDEFG"
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("CONTENT OF STRING_VAR:%10.5S", STRING_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"CONTENT OF STRING_VAR:xxxxxABCDE" (onde o "x" equivale a um caractere
vazio no exemplo dado).
%X: Transformao de um valor INTEGER em uma String com representao
hexadecimal.
Exemplo:
N10 DEF INT INT_VAR='HA5B8
N20 DEF STRING[80] RESULT
N30 RESULT=SPRINT("INTEGER HEXADECIMAL:%X",INT_VAR)
Resultado: A varivel de String RESULT gravada com a sequncia de caracteres
"INTEGER HEXADECIMAL:A5B8".

Indicao
A propriedade da linguagem NC, relacionada ao fato de no haver diferenciao entre letras
maisculas e letras minsculas nos identificadores e palavras-chave, tambm aplicada
nas descries de formato. Por isso que eles podem ser programados sem diferena
funcional tanto com letras minsculas como letras maisculas.

Preparao do trabalho
90 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.9 Operaes de String

Possibilidades de combinao
A seguinte tabela oferece informaes sobre quais tipos de dados NC podem ser
combinados com qual descrio de formato. So aplicadas as regras para transformao
implcita de tipos de dados (veja em "Tipos de dados [Pgina 55]").

Tipos de dados NC
BOOL CHAR INT REAL STRING AXIS FRAME

%B + + + + + - -
%C - + - - + - -
%D + + + + - - -
%F - - + + - - -
%E - - + + - - -
%G - - + + - - -
%S - + - - + - -
%X + + + - - - -
%P - - + + - - -

Indicao
A tabela mostra que os tipos de dados AXIS e FRAME do NC no podem ser utilizados
diretamente na funo SPRINT. Porm, tambm possvel:
transformar o tipo de dado AXIS com a funo AXSTRING em uma String, que ento
pode ser processada com o SPRINT.
ler os valores individuais do tipo de dado FRAME atravs do acesso de componente do
Frame. Dessa forma recebemos um dado do tipo REAL, que pode ser processado com o
SPRINT.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 91
Programao flexvel de NC
1.10 Saltos e ramificaes de programa

1.10 Saltos e ramificaes de programa

1.10.1 Salto de retorno ao incio do programa (GOTOS)

Funo
Com o comando GOTOS possvel saltar retornando ao incio de um programa principal ou
de uma subrotina para repetio do programa.
Atravs de dados de mquina se pode ajustar para que em cada salto de retorno ao incio do
programa:
o tempo de execuo do programa passe novamente para "0" (seja zerado).
a contagem de peas seja incrementada com o valor "1".

Sintaxe
GOTOS

Significado

GOTOS: Instruo de salto com destino de salto no incio do programa.


A execuo controlada atravs do sinal de interface NC/PLC:
DB21, ... DBX384.0 (controle da bifurcao do programa)
Valor: Significado:
0 Nenhum salto de retorno ao incio do programa. A execuo do
programa continuada com o prximo bloco de programa de pea
aps o GOTOS.
1 Salto de retorno ao incio do programa. Se repete o programa de
pea.

Condies gerais
GOTOS inicia internamente um STOPRE (parada de pr-processamento).
Em um programa de pea com definies de dados (variveis LUD) com o GOTOS se
realiza o salto para o primeiro bloco de programa aps a parte das definies, isto, as
definies no so executadas novamente. Por isso que as variveis definidas preservam
o valor obtido no bloco do GOTOS e no so resetadas nos valores padro programados
na parte das definies.
O comando GOTOS no est disponvel em aes sincronizadas e em ciclos tecnolgicos.

Preparao do trabalho
92 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.10 Saltos e ramificaes de programa

Exemplo
Cdigo de programa Comentrio
N10 ... ; Incio do programa.
...
N90 GOTOS ; Salto at o incio do programa.
...

1.10.2 Saltos de programa at marcadores de salto (GOTOB, GOTOF, GOTO, GOTOC)

Funo
Em um programa podem ser colocados marcadores de salto (Labels) de onde se pode saltar
para outros pontos dentro do mesmo programa atravs dos comandos GOTOF, GOTOB, GOTO
e GOTOC. A execuo do programa continuada com a instruo que seguir imediatamente
aps o marcador de salto. Com isso as bifurcaes so realizveis dentro do programa.
Alm dos marcadores de salto tambm possvel o uso de nmeros de bloco principal e
secundrio como destinos de salto.
Se estiver formulada a condio de salto (IF ...) antes da instruo de salto, ento o salto
de programa somente ser realizado quando a condio de salto for preenchida.

Sintaxe
GOTOB <destino de salto>
IF <condio de salto> = TRUE GOTOB <destino de salto>
GOTOF <destino de salto>
IF <condio de salto> = TRUE GOTOF <destino de salto>
GOTO <destino de salto>
IF <condio de salto> = TRUE GOTO <destino de salto>
GOTOC <destino de salto>
IF <condio de salto> = TRUE GOTOC <destino de salto>

Significado

GOTOB: Instruo de salto com destino de salto em direo ao incio do


programa.
GOTOF: Instruo de salto com destino de salto em direo ao fim do
programa.
GOTO: Instruo de salto com localizao do destino de salto. A localizao
realizada primeiro em direo ao fim do programa, depois em direo
ao incio do programa.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 93
Programao flexvel de NC
1.10 Saltos e ramificaes de programa

GOTOC: Efeito como o GOTO, mas com a diferena que o alarme 14080
"Destino de salto no encontrado" omitido.
Isto significa que a execuo do programa no interrompida em um
caso de localizao de destino de salto sem resultado, mas atravs do
comando GOTOC se prossegue com a execuo da prxima linha do
programa.
<destino de Parmetro do destino de salto
salto>: As possveis indicaes so:
<marcador de salto>: O destino de salto o marcador de salto
colocado no programa com nome definido pelo
usurio: <marcador de salto>:
<nmero de bloco>: O destino de salto um nmero de bloco
principal ou secundrio (p.ex.: 200, N300)
Varivel do tipo Destino de salto varivel. A varivel serve para
STRING: um marcador de salto ou um nmero de bloco.
IF: Palavra-chave para formulao da condio de salto.
A condio de salto permite todas operaes de comparao e
operaes lgicas (resultado: TRUE ou FALSE). O salto de programa
executado quando o resultado desta operao for TRUE.

Indicao
Marcadores de salto (Labels)
Os marcadores de salto sempre esto no incio de um bloco. Se um nmero de programa
estiver presente, o marcador de salto est imediatamente aps o nmero do bloco.
Para a atribuio de nomes de marcadores de salto so aplicadas as seguintes regras:
Nmero de caracteres:
pelo menos 2
no mximo 32
Os caracteres permitidos so:
Letras
Nmeros
Sublinhados
Os primeiros dois caracteres devem ser letras ou sublinhados.
Aps o nome do marcador de salto segue um duplo ponto (":").

Condies gerais
O destino de salto somente pode ser um bloco com marcador de salto ou nmero de
bloco que est dentro do programa.
Uma instruo de salto sem condio de salto deve ser programada em um bloco
separado. Esta restrio no se aplica em instrues de salto com condio de salto. Aqui
podem ser formuladas vrias instrues de salto em um mesmo bloco.
Nos programas com instrues de salto sem condies de salto no obrigatrio que o
fim de programa M2/M30 esteja no fim do programa.

Preparao do trabalho
94 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.10 Saltos e ramificaes de programa

Exemplos
Exemplo 1: Saltos para marcadores de salto

Cdigo de programa Comentrio


N10
N20 GOTOF Label_1 ; Salto em direo ao fim do programa at o marcador
de salto "Label_1".
N30
N40 Label_0: R1=R2+R3 ; Marcador de salto "Label_0" definido.
N50
N60 Label_1: ; Marcador de salto "Label_1" definido.
N70
N80 GOTOB Label_0 ; Salto em direo ao incio do programa at o
marcador de salto "Label_0".
N90

Exemplo 2: Salto indireto at o nmero do bloco

Cdigo de programa Comentrio


N5 R10=100
N10 GOTOF "N"<<R10 ; Salto at o bloco cujo nmero de bloco est no
R10.
...
N90 ...
N100 ... ; Destino de salto
N110 ...
...

Exemplo 3: Salto at o destino de salto varivel

Cdigo de programa Comentrio


DEF STRING[20] DESTINO
DESTINO = "Marcador2"
GOTOF DESTINO ; Salto em direo ao fim do programa at o destino
de salto varivel DESTINO.
Marcador1: T="Broca1"
...
Marcador2: T="Broca2" ; Destino de salto
...

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 95
Programao flexvel de NC
1.10 Saltos e ramificaes de programa

Exemplo 4: Salto com condio de salto

Cdigo de programa Comentrio


N40 R1=30 R2=60 R3=10 R4=11 R5=50 R6=20 ; Atribuio dos valores iniciais.
N41 LA1: G0 X=R2*COS(R1)+R5 Y=R2*SIN(R1)+R6 ; Marcador de salto LA1 definido.
N42 R1=R1+R3 R4=R4-1
N43 IF R4>0 GOTOB LA1 ; Quando a condio de salto
estiver preenchida, ento ocorre
o salto em direo ao incio do
programa at o marcador de salto
LA1.
N44 M30 ; Fim do programa

1.10.3 Bifurcao do programa (CASE ... OF ... DEFAULT ...)

Funo
A funo CASE oferece a opo de controlar o atual valor (tipo: INT) de uma varivel ou uma
funo de clculo e, em funo do resultado, saltar para diferentes pontos no programa.

Sintaxe
CASE(<expresso>) OF <constante_1> GOTOF <destino_salto_1>
<constante_2> GOTOF <destino_salto_2> ... DEFAULT GOTOF
<destino_salto_n>

Significado

CASE: Instruo de salto


<expresso>: Varivel ou funo de clculo
OF: Palavra-chave para formulao das bifurcaes condicionais de
programa
<constante_1>: Primeiro valor constante especificado para a varivel ou funo
de clculo
Tipo: INT
<constante_2>: Segundo valor constante especificado para a varivel ou funo
de clculo
Tipo: INT
DEFAULT: Para os casos em que a varivel ou a funo de clculo no
aceitar nenhum dos valores constantes especificados, se pode
definir um destino de salto com a instruo DEFAULT.
Nota:
Se a instruo DEFAULT no for programada, ento nestes
casos o bloco seguinte da instruo CASE passar a ser o
destino de salto.

Preparao do trabalho
96 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.10 Saltos e ramificaes de programa

GOTOF: Instruo de salto com destino de salto em direo ao fim do


programa.
Ao invs do GOTOF tambm podem ser programados todos os
demais comandos GOTO (veja o assunto "Saltos de programa
at os marcadores de salto").
<destino_salto_1>: A bifurcao vai para este destino de salto se o valor da varivel
ou da funo de clculo corresponder primeira constante
especificada.
O destino de salto pode ser especificado da seguinte forma:
<marcador de O destino de salto o marcador de salto
salto>: colocado no programa com nome definido
pelo usurio: <marcador de salto>:
<nmero de O destino de salto um nmero de bloco
bloco>: principal ou secundrio (p.ex.: 200, N300)
Varivel do tipo Destino de salto varivel. A varivel serve
STRING: para um marcador de salto ou um nmero de
bloco.
<destino_salto_2>: A bifurcao vai para este destino de salto se o valor da varivel
ou da funo de clculo corresponder segunda constante
especificada.
<destino_salto_n>: A bifurcao vai para este destino de salto se o valor da varivel
no corresponder a nenhum dos valores constantes
especificados.

Exemplo
Cdigo de programa
...
N20 DEF INT VAR1 VAR2 VAR3
N30 CASE(VAR1+VAR2-VAR3) OF 7 GOTOF Label_1 9 GOTOF Label_2 DEFAULT GOTOF Label_3
N40 Label_1: G0 X1 Y1
N50 Label_2: G0 X2 Y2
N60 Label_3: G0 X3 Y3
...

A instruo CASE do N30 define as seguintes possibilidades de bifurcao de programa:


1. Se o valor da funo de clculo VAR1+VAR2-VAR3=7, ento se salta at o bloco com a
definio de marcador de salto "Label_1" ( N40).
2. Se o valor da funo de clculo VAR1+VAR2-VAR3=9, ento se salta at o bloco com a
definio de marcador de salto "Label_2" ( N50).
3. Se o valor da funo de clculo VAR1+VAR2-VAR3 no for 7 nem 9, ento se salta at o
bloco com a definio de marcador de salto "Label_3" ( N60).

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 97
Programao flexvel de NC
1.11 Repetio de partes do programa (REPEAT, REPEATB, ENDLABEL, P)

1.11 Repetio de partes do programa (REPEAT, REPEATB, ENDLABEL,


P)

Funo
A funo de repetio de partes do programa possibilita a repetio de partes do programa j
escritas dentro do programa em qualquer tipo de ordem ou formao.
As linhas e reas de programa que devem ser repetidas precisam ser marcadas com
marcadores de salto (Labels).

Indicao
Marcadores de salto (Labels)
Os marcadores de salto sempre esto no incio de um bloco. Se um nmero de programa
estiver presente, o marcador de salto est imediatamente aps o nmero do bloco.
Para a atribuio de nomes de marcadores de salto so aplicadas as seguintes regras:
Nmero de caracteres:
pelo menos 2
no mximo 32
Os caracteres permitidos so:
Letras
Nmeros
Sublinhados
Os primeiros dois caracteres devem ser letras ou sublinhados.
Aps o nome do marcador de salto segue um duplo ponto (":").

Sintaxe
1. Repetio de linhas de programa individuais:

<marcador de salto>: ...


...
REPEATB <marcador de salto> P=<n>
...

2. Repetio de rea de programa entre marcador de salto e a instruo REPEAT:

<marcador de salto>: ...


...
REPEAT <marcador de salto> P=<n>
...

Preparao do trabalho
98 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.11 Repetio de partes do programa (REPEAT, REPEATB, ENDLABEL, P)

3. Repetio de rea entre dois marcadores de salto:

<marcador de salto inicial>: ...


...
<marcador de salto final>: ...
...
REPEAT <marcador de salto inicial> <marcador de salto final> P=<n>
...

Indicao
No possvel colocar a instruo REPEAT com os dois marcadores de salto entre
colchetes/parnteses. Se o <marcador de salto inicial> for encontrado antes da
instruo REPEAT e o <marcador de salto final> no for alcanado antes da
instruo REPEAT, ento executada a repetio entre o <marcador de salto
inicial> e a instruo REPEAT.

4. Repetio entre o marcador de salto e o ENDLABEL:

<marcador de salto>: ...


...
ENDLABEL: ...
...
REPEAT <marcador de salto> P=<n>
...

Indicao
No possvel colocar a instruo REPEAT com o <marcador de salto> e o ENDLABEL
entre colchetes/parnteses. Se o <marcador de salto> for encontrado antes da
instruo REPEAT e o ENDLABEL no for alcanado antes da instruo REPEAT, ento
executada a repetio entre o <marcador de salto> e a instruo REPEAT.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 99
Programao flexvel de NC
1.11 Repetio de partes do programa (REPEAT, REPEATB, ENDLABEL, P)

Significado

REPEATB: Comando para repetio de uma linha de programa


REPEAT: Comando para repetio de uma rea de programa
<marcador de O <marcador de salto> identifica:
salto>: a linha de programa que deve ser repetida (com REPEATB)
ou
o incio da rea de programa que deve ser repetida (com
REPEAT)
A linha de programa marcada com o <marcador de salto> pode
estar antes ou depois da instruo REPEAT/REPEATB. A localizao
realizada primeiramente em direo ao incio do programa. Se o
marcador de salto no for encontrado nesta direo, ento a
localizao ser realizada em direo ao fim do programa.
Exceo:
Se a rea de programa entre o marcador de salto e a instruo
REPEAT deve ser repetida (veja item 2. em Sintaxe), ento a linha de
programa marcada com o <marcador de salto> deve estar
antes da instruo REPEAT, pois neste caso a localizao somente
realizada em direo ao incio do programa.
Se a linha com o <marcador de salto> contm outras
instrues, ento estas sero executadas em toda repetio.
ENDLABEL: Palavra-chave que marca o fim de uma rea de programa que deve
ser repetida
Se a linha com o ENDLABEL contm outras instrues, ento estas
sero executadas em toda repetio.
O ENDLABEL pode ser utilizado vrias vezes no programa.
P: Endereo para especificao da quantidade de repeties
<n>: Quantidade de repeties da parte do programa
Tipo: INT
A parte do programa a ser repetida repetida <n> vezes. Aps a
ltima repetio, o programa continuado com a linha seguinte
linha da instruo REPEAT/REPEATB.
Nota:
Se nenhum P=<n> for especificado, ento a parte do programa a ser
repetida ser repetida apenas uma vez.

Preparao do trabalho
100 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.11 Repetio de partes do programa (REPEAT, REPEATB, ENDLABEL, P)

Exemplos
Exemplo 1: Repetio de linha de programa individual

Cdigo de programa Comentrio


N10 POSITION1: X10 Y20
N20 POSITION2: CYCLE(0,,9,8) ; Ciclo de posio
N30 ...
N40 REPEATB POSITION1 P=5 ; Execute cinco vezes o BLOCO N10.
N50 REPEATB POSITION2 ; Execute uma vez o bloco N20.
N60 ...
N70 M30

Exemplo 2: Repetio de rea de programa entre marcador de salto e a instruo REPEAT

Cdigo de programa Comentrio


N5 R10=15
N10 Begin: R10=R10+1 ; Largura
N20 Z=10-R10
N30 G1 X=R10 F200
N40 Y=R10
N50 X=-R10
N60 Y=-R10
N70 Z=10+R10
N80 REPEAT BEGIN P=4 ; Execute quatro vezes a rea do N10 ao N70.
N90 Z10
N100 M30

Exemplo 3: Repetio da rea entre dois marcadores de salto

Cdigo de programa Comentrio


N5 R10=15
N10 Begin: R10=R10+1 ; Largura
N20 Z=10-R10
N30 G1 X=R10 F200
N40 Y=R10
N50 X=-R10
N60 Y=-R10
N70 END: Z=10
N80 Z10
N90 CYCLE(10,20,30)
N100 REPEAT BEGIN END P=3 ; Execute trs vezes a rea do N10 ao N70.
N110 Z10
N120 M30

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 101
Programao flexvel de NC
1.11 Repetio de partes do programa (REPEAT, REPEATB, ENDLABEL, P)

Exemplo 4: Repetio entre o marcador de salto e o ENDLABEL

Cdigo de programa Comentrio


N10 G1 F300 Z-10
N20 BEGIN1:
N30 X10
N40 Y10
N50 BEGIN2:
N60 X20
N70 Y30
N80 ENDLABEL: Z10
N90 X0 Y0 Z0
N100 Z-10
N110 BEGIN3: X20
N120 Y30
N130 REPEAT BEGIN3 P=3 ; Execute trs vezes a rea do N110 ao N120.
N140 REPEAT BEGIN2 P=2 ; Execute duas vezes a rea do N50 ao N80.
N150 M100
N160 REPEAT BEGIN1 P=2 ; Execute duas vezes a rea do N20 ao N80.
N170 Z10
N180 X0 Y0
N190 M30

Exemplo 5: Execuo de operao de fresamento, posio de furao com diferentes


tecnologias

Cdigo de programa Comentrio


N10 BROCACENTRAGEM() ; Carregar a broca de centragem.
N20 POS_1: ; Posies de furao 1
N30 X1 Y1
N40 X2
N50 Y2
N60 X3 Y3
N70 ENDLABEL:
N80 POS_2: ; Posies de furao 2
N90 X10 Y5
N100 X9 Y-5
N110 X3 Y3
N120 ENDLABEL:
N130 BROCA() ; Carregar a broca e ciclo de furao.
N140 ROSCA(6) ; Carregar o macho M6 e ciclo de rosqueamento.
N150 REPEAT POS_1 ; Repita uma vez o segmento de programa a partir do POS_1
at o ENDLABEL.
N160 BROCA() ; Carregar a broca e ciclo de furao.
N170 ROSCA(8) ; Carregar o macho M8 e ciclo de rosqueamento.

Preparao do trabalho
102 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.11 Repetio de partes do programa (REPEAT, REPEATB, ENDLABEL, P)

Cdigo de programa Comentrio


N180 REPEAT POS_2 ; Repita uma vez o segmento de programa a partir do POS_2
at o ENDLABEL.
N190 M30

Outras informaes
A repetio de partes do programa pode ser chamada de forma aninhada. Cada chamada
ocupa um nvel de subrotina.
Se durante a usinagem for programada uma repetio de uma parte do programa M17 ou
um RET, ento a repetio da parte do programa ser cancelada. O programa
continuado no bloco aps a linha do REPEAT.
Na atual exibio do programa se indica a repetio da parte do programa como um nvel
prprio de subrotina.
Se durante a execuo da parte do programa for ativada uma interrupo de nvel, ento
a execuo do programa continua aps a chamada da execuo da parte do programa.
Exemplo:

Cdigo de programa Comentrio


N5 R10=15
N10 BEGIN: R10=R10+1 ; Largura
N20 Z=10-R10
N30 G1 X=R10 F200
N40 Y=R10 ; Interrupo de nvel
N50 X=-R10
N60 Y=-R10
N70 END: Z10
N80 Z10
N90 CYCLE(10,20,30)
N100 REPEAT BEGIN END P=3
N120 Z10 ; Continuar com a execuo do programa.
N130 M30

possvel combinar estruturas de controle e repeties de partes de programa.


Entretanto, no deve haver nenhuma sobreposio. Uma repetio de partes de
programa deve estar situada em uma bifurcao de estrutura de controle ou uma
estrutura de controle deve estar situada em uma repetio de partes de programa.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 103
Programao flexvel de NC
1.11 Repetio de partes do programa (REPEAT, REPEATB, ENDLABEL, P)

Se for realizada a mistura de saltos e repeties de partes de programa, os blocos so


executados de forma seqencial pura. Por exemplo, se um salto for realizado a partir de
uma repetio de uma parte do programa, ento a execuo ser realizada at ser
encontrado o fim programado desta parte do programa.
Exemplo:

Cdigo de programa
N10 G1 F300 Z-10
N20 BEGIN1:
N30 X=10
N40 Y=10
N50 GOTOF BEGIN2
N60 ENDLABEL:
N70 BEGIN2:
N80 X20
N90 Y30
N100 ENDLABEL: Z10
N110 X0 Y0 Z0
N120 Z-10
N130 REPEAT BEGIN1 P=2
N140 Z10
N150 X0 Y0
N160 M30

Indicao
A instruo REPEAT deve estar situada aps os blocos de deslocamento.

Preparao do trabalho
104 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.12 Estruturas de controle

1.12 Estruturas de controle

Funo
Como padro, o comando numrico executa os blocos NC na seqncia programada.
Esta seqncia pode ser variada mediante programao de blocos de programa alternativos
e loop's de programa. A programao destas estruturas de controle realizada com os
elementos de estruturas de controle (palavras-chave) IF...ELSE, LOOP, FOR, WHILE e
REPEAT.

CUIDADO

As estruturas de controle somente so possveis dentro da parte de instruo de um


programa. As definies no cabealho no podem ser executadas de forma condicional ou
de forma repetida.
Da mesma forma, as palavras-chave para estruturas de controle no podem ser
sobrepostas com macros. No realizado nenhum controle na definio de macros.

Efeito
As estruturas de controle so aplicadas localmente no programa.

Nvel de aninhamento
Dentro de cada nvel de subrotina possvel alcanar um nvel de aninhamento de at 16
estruturas de controle.

3URJUDPDSULQFLSDO 6XEURWLQD

352&68%352*
/223 5(3($7
)25
:+,/( )25
,) :+,/(

(1',) (1':+,/(
:+,/( :+,/(
(1':+,/(
68%352* (1')25
(1':+,/( (1')25
(1':+,/( 817,/
(1'/223

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 105
Programao flexvel de NC
1.12 Estruturas de controle

Relao do tempo de execuo


Com o modo de interpretao padro ativado, mediante uso de saltos de programa, se pode
alcanar uma execuo mais rpida do que com estruturas de controle.
Nos ciclos pr-compilados no existe nenhuma diferena entre saltos de programa e
estruturas de controle.

Condies gerais
Os blocos com elementos de estrutura de controle no podem ser omitidos.
Os marcadores de salto (Labels) no so permitidos em blocos com elementos de
estrutura de controle.
As estruturas de controle so executadas de modo interpretativo. Ao identificar o fim de
um loop, sob considerao das estruturas de controle encontradas, ser realizada uma
busca pelo incio do loop. Por isso que no modo de interpretao no se controla
completamente a estrutura de bloco de um programa.
Sempre se recomenda evitar o uso misto de estruturas de controle e saltos de programa.
No pr-processamento de ciclos pode ser realizado o controle quanto ao aninhamento
correto de estruturas de controle.

1.12.1 Loop de programa com alternativa (IF, ELSE, ENDIF)

Funo
Uma construo com IF e ELSE utilizada quando o loop de programa deve conter um
bloco de programa alternativo: Se a condio IF estiver preenchida, ento se executa o
bloco de programa aps o IF. Se a condio IFno estiver preenchida, ento se executa o
bloco de programa aps o ELSE.

Indicao
Se nenhuma alternativa for necessria, ento tambm se pode programar um loop IF sem a
instruo ELSE e o bloco de programa aps o ELSE.

Sintaxe
IF <condio>
...
ELSE
...
ENDIF

Preparao do trabalho
106 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.12 Estruturas de controle

Significado

IF: Inicia o loop IF.


ELSE: Inicia o bloco de programa alternativo.
ENDIF: Marca o fim do loop IF e realiza o salto de retorno ao incio do loop.
<condio>: Condio que decida qual bloco de programa deve ser executado.

Exemplo
Subrotina de troca de ferramentas

Cdigo de programa Comentrio


PROC L6 ; Rotina de troca de ferramentas
N500 DEF INT TNR_ATUAL ; Varivel para nmero T ativo
N510 DEF INT TNR_PRESELECAO ; Varivel para nmero T pr-
selecionado
; Determinar a ferramenta atual
N520 STOPRE
N530 IF $P_ISTEST ; No modo de teste de programa se ...
N540 TNR_ATUAL = $P_TOOLNO ; ... realiza a leitura da "atual"
ferramenta a partir do contexto do
programa.
N550 ELSE ; Caso contrrio se ...
N560 TNR_ATUAL = $TC_MPP6[9998,1] ; ... l a ferramenta do fuso.
N570 ENDIF
N580 GETSELT(TNR_PRESELECAO) ; Leitura do nmero T da ferramenta
pr-selecionada no fuso.
N590 IF TNR_ATUAL <> TNR_PRESELECAO ; Se a ferramenta pr-selecionada
ainda no for a ferramenta atual,
ento se deve ...
N600 G0 G40 G60 G90 SUPA X450 Y300 Z300 D0 ; ... Aproximar ponto de troca de
ferramentas ...
N610 M206 ; ... e executar a troca de
ferramenta.
N620 ENDIF
N630 M17

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 107
Programao flexvel de NC
1.12 Estruturas de controle

1.12.2 Loop de programa infinito (LOOP, ENDLOOP)

Funo
O loop infinito se aplica em programas de processamento infinito. No fim do loop sempre se
executa novamente o salto de retorno ao incio do loop.

Sintaxe
LOOP
...
ENDLOOP

Significado

LOOP: Inicia o loop infinito.


ENDLOOP: Marca o fim do loop e realiza o salto de retorno ao incio do loop.

Exemplo
Cdigo de programa
...
LOOP
MSG("nenhum corte de ferramenta ativo")
M0
STOPRE
ENDLOOP
...

Preparao do trabalho
108 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.12 Estruturas de controle

1.12.3 Loop contador (FOR ... TO ..., ENDFOR)

Funo
O loop contador se utiliza quando uma execuo de trabalho deve ser repetida com um
nmero fixo de execues.

Sintaxe
FOR <varivel> = <valor inicial> TO <valor final>
...
ENDFOR

Significado

FOR: Inicia o loop contador.


ENDFOR: Marca o fim do loop e realiza o salto de retorno ao incio do loop,
enquanto o valor final da contagem no for alcanado.
<varivel>: Varivel de contagem que incrementada do valor inicial ao valor final
pelo valor "1" em cada execuo realizada.
Tipo INT ou REAL
Nota:
Por exemplo, o tipo REAL adotado quando so
programados parmetros R para um loop contador. Se a
varivel de contagem for do tipo REAL, seu valor ser
arredondado para um valor de nmero inteiro.
<valor Valor inicial da contagem
inicial>: Condio: O valor inicial deve ser menor que o valor final.
<valor final>: Valor final da contagem

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 109
Programao flexvel de NC
1.12 Estruturas de controle

Exemplos
Exemplo 1: Varivel INTEGER ou parmetro R como varivel de contagem
Varivel INTEGER como varivel de contagem:

Cdigo de programa Comentrio


DEF INT iVARIABLE1
R10=R12-R20*R1 R11=6
FOR iVARIABLE1= R10 TO R11 ; Varivel de contagem = varivel INTEGER
R20=R21*R22+R33
ENDFOR
M30

Parmetro R como varivel de contagem:

Cdigo de programa Comentrio


R11=6
FOR R10=R12-R20*R1 TO R11 ; Varivel de contagem = parmetro R (varivel
Real)
R20=R21*R22+R33
ENDFOR
M30

Exemplo 2: Produo de uma quantidade fixa de peas

Cdigo de programa Comentrio


DEF INT QTDEPECAS ; Define a varivel do tipo INT com o nome
"QTDEPECAS".
FOR QTDEPECAS = 0 TO 100 ; Inicia o loop contador. A varivel "QTDEPECAS"
incrementada do valor inicial "0" at o valor
final "100".
G01
ENDFOR ; Fim do loop contador.
M30

Preparao do trabalho
110 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.12 Estruturas de controle

1.12.4 Loop de programa com condio no incio do loop (WHILE, ENDWHILE)

Funo
Em um loop WHILE a condio est situada no incio do loop. O loop WHILE ser executado
enquanto a condio estiver preenchida.

Sintaxe
WHILE <condio>
...
ENDWHILE

Significado

WHILE: Inicia o loop de programa.


ENDWHILE: Marca o fim do loop e realiza o salto de retorno ao incio do loop.
<condio>: Condio que deve ser preenchida para que o loop WHILE seja
executado.

Exemplo
Cdigo de programa Comentrio
...
WHILE $AA_IW[EIXOFURACAO] > -10 ; Chamada do loop WHILE sob a seguinte
condio: o atual valor nominal WCS do
eixo de furao deve ser maior que -10.
G1 G91 F250 AX[EIXOFURACAO] = -1
ENDWHILE
...

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 111
Programao flexvel de NC
1.12 Estruturas de controle

1.12.5 Loop de programa com condio no fim do loop (REPEAT, UNTIL)

Funo
Em um loop REPEAT a condio est situada no fim do loop. O loop REPEAT executado
uma vez e ser repetido enquanto a condio for preenchida.

Sintaxe
REPEAT
...
UNTIL <condio>

Significado

REPEAT: Inicia o loop de programa.


UNTIL: Marca o fim do loop e realiza o salto de retorno ao incio do loop.
<condio>: Condio que deve ser preenchida para que o loop REPEAT no seja
mais executado.

Exemplo
Cdigo de programa Comentrio
...
REPEAT ; Chamada do loop REPEAT.
...
UNTIL ... ; Controle para saber se a condio est preenchida.
...

Preparao do trabalho
112 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.12 Estruturas de controle

1.12.6 Exemplo de programa com estruturas de controle aninhadas


Cdigo de programa Comentrio
LOOP
IF NOT $P_SEARCH ; sem localizao de blocos
G01 G90 X0 Z10 F1000
WHILE $AA_IM[X] <= 100
G1 G91 X10 F500 ; Modelo de furao
ZF100
Z5
ENDWHILE
Z10
ELSE
MSG("Na localizao no se executa a furao")
ENDIF
$A_OUT[1] = 1 ; prxima placa de furao
G4 F2
ENDLOOP
M30

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 113
Programao flexvel de NC
1.13 Coordenao de programa (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)

1.13 Coordenao de programa (INIT, START, WAITM, WAITMC, WAITE,


SETM, CLEARM)

Funo
Canais
Um canal pode executar seu prprio programa, independentemente dos outros canais. Com
isso o programa pode controlar os eixos e fusos temporariamente atribudos.
Na colocao em funcionamento podem ser ajustados dois ou mais canais para o comando.
Coordenao de programa
Se forem utilizados vrios canais para a usinagem de uma pea, ento pode ser necessria
uma sincronizao dos processos de execuo do programa.
Para essa coordenao do programa existem instrues (comandos) especiais. Cada uma
est armazenada em um bloco.

Indicao
A coordenao de programa tambm possvel em um canal prprio.

Instrues para a coordenao do programa


Especificao com indicao absoluta de caminho

Neste caso o caminho absoluto formado a


partir das seguintes regras:
INIT (n,"/_HUGO_DIR/_N_nome_MPF" ) - atual Directory/_N_nome_MPF
ou "atual diretrio" especifica o diretrio
selecionado da pea ou o diretrio padro /
_N_MPF_DIR.
INIT (n,"/_N_MPF_DIR/_N_nome_MPF" ) - Seleo de um determinado programa para
execuo em um determinado canal:
n: Nmero do canal, valor conforme
- configurao do comando
Nome de programa completo
Exemplo: at o SW3:
INIT(2,"/_N_WCS_DIR/ Entre um comando init (sem sincronizao) e
_DRESSAGEM_MPF") um NC-Start precisa existir pelo menos um
G01F0.1 bloco executvel.
START Para chamadas de subrotinas se deve
adicionar o "_SPF" ao caminho.
INIT (2,"/_N_WCS_DIR/
_N_INFERIOR_1_SPF")

Preparao do trabalho
114 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.13 Coordenao de programa (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)

Especificao com a indicao relativa de caminho

No caminho relativo se aplicam as mesmas


Exemplo: regras das chamadas de subrotinas.
INIT(2,"DRESSAGEM")
INIT(3,"INFERIOR_1_SPF") Nas chamadas de subrotinas se devem
adicionar o "_SPF" aos nomes de programa.

Parmetro
Para a troca de dados entre os programas se pode utilizar as variveis disponveis em todos
canais (variveis globais especficas NCK). Caso contrrio a criao do programa feita
separadamente para cada canal.

INIT(n, indicao do caminho, modo de Instruo para execuo em um canal. Seleo


confirmao) de um determinado programa com indicao
absoluta ou relativa do caminho.
START (n, n) Inicializao dos programas selecionados nos
outros canais.
n,n: Enumerao dos nmeros de canal: Valor
conforme a configurao do comando
WAITM (marcador n, n, n, ...) Colocao do marcador "Marcador n" em um
canal prprio. Finalizar o bloco anterior
com parada exata. Espera pelo marcador com o
mesmo "Marcador n" nos canais especificados
"n" (o canal prprio no precisa ser
especificado). O marcador no deletado
aps a sincronizao.

Simultaneamente podem ser colocados no mx.


10 marcadores por canal.
WAITMC (marcador n, n, n, Colocao do marcador "Marcador n" em um
canal prprio. A parada exata somente
iniciada se os outros canais ainda no
alcanaram o marcador. Espera pelo marcador
com o mesmo "Marcador n" nos canais
especificados "n" (o canal prprio no
precisa ser especificado). Assim que o
marcador "Marcador n" for alcanado nos
canais especificados, o processamento
continua sem finalizar a parada exata.
WAITE (n, n, ...) Espera pelo fim do programa dos canais
especificados (no especificar o canal
prprio). Exemplo: Programao de um tempo
de espera aps o comando Start.

N30 START(2)
N31 G4 F0.01
N40 WAITE(2)
SETM (marcador n, marcador n, Colocao do marcador "Marcador n" em canal
prprio, sem influncia do atual
processamento. SETM() permanece vlido aps
o RESET e NC-START.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 115
Programao flexvel de NC
1.13 Coordenao de programa (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)

CLEARM (marcador n, marcador n, Apaga o marcador "Marcador n" em canal


prprio, sem influncia do atual
processamento. Todos marcadores no canal
podem ser apagados com CLEARM(). CLEARM (0)
apaga o marcador "0". CLEARM() permanece
vlido aps o RESET e NC-START.
n Respectivo nmero de canal ou nome de canal

Indicao
Todos comandos mencionados acima precisam estar em blocos prprios.
O nmero de marcadores depende da CPU que estiver instalada.

Nmeros de canal
Para os canais a serem coordenados podem ser especificados at 10 canais como nmero
de canal (valor Integer).
Nomes de canal
Os nomes de canal devem ser convertidos em nmeros atravs de variveis (veja o captulo
"Variveis e parmetros de clculo") ou, ao invs de nmeros de canal, tambm podem ser
programados os nomes de canal definidos atravs do $MC_CHAN_NAME (identificador ou
palavra-chave). Os nomes definidos devem corresponder s convenes de linguagem NC
(isto , os primeiros dois caracteres devem compostos por letras ou um sublinhado).

CUIDADO

A atribuio dos nmeros deve ser protegida contra alteraes inadvertidas.


Os nomes no podem ter outro significado no NC como o de palavra-chave, comando de
linguagem, nome de eixo, etc.

SETM() e CLEARM()
SETM()e CLEARM() tambm pode ser programados a partir de uma ao sincronizada. Veja
o captulo "Definir / deletar marcadores de espera: SETM CLEARM"

Exemplo
Canal com nome "MAQUINA" deve conter o nmero de canal 1,
Canal com nome "CARREGADOR" deve conter o nmero de canal 2:
DEF INT MAQUINA=1, CARREGADOR=2
As variveis contm o mesmo nome que os canais.
Com isso a instruo START :
START(MAQUINA)

Preparao do trabalho
116 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.13 Coordenao de programa (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)

Exemplo de coordenao de programa


Canal 1:
_N_MPF100_MPF

Cdigo de programa Comentrio


N10 INIT(2,"MPF200")

N11 START(2) ; Processamento no canal 2


...

N80 WAITM(1,1,2) ; Espera pelo marcador WAIT 1 no canal 1 e


no canal 2 um outro processamento no canal 1
...

N180 WAITM(2,1,2) ; Espera pelo marcador WAIT 2 no canal 1 e


no canal 2 um outro processamento no canal 1
...

N200 WAITE(2) ; Espera pelo fim do programa do canal 2


N201 M30 ; Fim do programa do canal 1, fim total
...

Canal 2:
_N_MPF200_MPF

Cdigo de programa Comentrio


;$PATH=/_N_MPF_DIR

; Processamento no canal 2

N70 WAITM(1,1,2) ; Espera pelo marcador WAIT 1 no canal 1 e no canal 2 um outro


processamento no canal 1
...

N270 WAITM(2,1,2) ; Espera pelo marcador WAIT 2 no canal 1 e no canal 2 um outro


processamento no canal 2
...

N400 M30 ; Fim do programa do canal 2

1 1
:$,70  :$,70 

&DQDO
1
03) 1       
HVSHUDU 0

&DQDO 1
1 1        
 HVSHUDU HVSHUDU 0

1 1 1


67$57 
:$,70  :$,70  :$,7( 

,QFLR 67$57  0 0 )LPGR


WHPSR

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 117
Programao flexvel de NC
1.13 Coordenao de programa (INIT, START, WAITM, WAITMC, WAITE, SETM, CLEARM)

Exemplo: Programa a partir da pea


Cdigo de programa

N10 INIT(2,"/_N_WCS_DIR/_N_EIXO1_WPD/_N_DESBASTE1_MPF")

Exemplo: Comando INIT com indicao relativa do caminho


No canal 1 est selecionado o programa /_N_MPF_DIR/_N_MAIN_MPF

Cdigo de programa Comentrio


N10 INIT(2,"MYPROG") ; Selecionar programa /_N_MPF_DIR/_N_MYPROG_MPF no
canal 2

Exemplo: Nome de canal e nmero de canal com varivel Integer


$MC_CHAN_NAME[0]= "CHAN_X" ;Nome do 1 canal
$MC_CHAN_NAME[1]= "CHAN_Y" ;Nome do 2 canal

Cdigo de programa Comentrio


START(1, 2) ; Executar a partida no 1 e 2 canal

Anlogo programao com os identificadores de canal:

Cdigo de programa Comentrio


START(CHAN_X, CHAN_Y) ; Executar a partida no 1 e 2 canal
; Os identificadores Canal_X e Canal_Y representam
internamente o nmero de canal 1 e 2 em funo do dado
de mquina $MC_CHAN_NAME. De acordo com isso eles tambm
executam uma partida no 1 e 2 canal

Programao com varivel Integer:

Cdigo de programa Comentrio


DEF INT chanNo1, chanNo2) ; Definir nmero de canal
chanNo1=CHAN_X chanNo2=CHAN_Y

START(chanNo1, chanNo2)

Preparao do trabalho
118 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.14 Rotina de interrupo (ASUP)

1.14 Rotina de interrupo (ASUP)

1.14.1 Funcionamento de uma rotina de interrupo

Indicao
Os termos "Subrotina assncrona (ASUP)" e "Rotina de interrupo" que aparecem
alternadamente na seguinte descrio significam a mesma funcionalidade.

Funo
O funcionamento de uma rotina de interrupo deve ser explanada com base em um
exemplo tpico:

5RWLQDGHLQWHUUXSR
$IDVWDPHQWRGR
FRQWRUQR
7URFDGH
IHUUDPHQWDV
1RYRVYDORUHV
GHFRUUHR
5HDSUR[LPDR

3URJUDPD
SULQFLSDO

A ferramenta quebra durante a usinagem. Com isso se dispara um sinal que pra o processo
de usinagem em andamento e ao mesmo tempo iniciada uma subrotina chamada de
rotina de interrupo. Nesta subrotina esto contidas as instrues que devero ser
executadas para este caso.
Uma vez terminada a execuo da subrotina (e com isso restabelecida a operabilidade), em
funo do comando REPOS, o comando retorna para o programa principal e continua com a
usinagem a partir do ponto de interrupo (veja "Reaproximao no contorno (REPOSA,
REPOSL, REPOSQ, REPOSQA, REPOSH, REPOSHA, DISR, DISPR, RMI, RMB, RME,
RMN) [Pgina 490]").

CUIDADO

Se na subrotina for programado nenhum comando REPOS, ento se executa o


posicionamento no ponto final do bloco que segue o bloco interrompido.

Literatura
Manual de funes bsicas; BAG, Canal, Operao do programa, Comportamento Reset
(K1), Captulo: "Subrotinas assncronas (ASUPs), Rotinas de interrupo"

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 119
Programao flexvel de NC
1.14 Rotina de interrupo (ASUP)

1.14.2 Criar rotina de interrupo

Criar rotina de interrupo como subrotina


Durante a definio, a rotina de interrupo identificada como se fosse uma subrotina.
Exemplo:

Cdigo de programa Comentrio


PROC RETRAC_Z ; Nome de programa "RETRAC_Z"
N10 ... ; Em seguida seguem os blocos NC.
...
N50 M17 ; No final se coloca o fim do programa e o retorno ao
programa principal.

Salvar funes G modais (SAVE)


Na definio, a rotina de interrupo pode ser identificada com SAVE.
O atributo SAVE faz com que as funes G modais sejam salvas antes da chamada da rotina
de interrupo e novamente ativadas no fim da subrotina de interrupo (veja "Salvar
funes G modais (SAVE) [Pgina 173]").
Com isso possvel continuar a usinagem do ponto de interrupo depois da rotina de
interrupo ser concluda.
Exemplo:

Cdigo de programa
PROC RETRAC_Z SAVE
N10 ...
...
N50 M17

Atribuir outras rotinas de interrupo (SETINT)


Dentro da rotina de interrupo se pode programar instrues SETINT (veja Atribuio e
partida de rotinas de interrupo (SETINT, PRIO, BLSYNC) [Pgina 121]) e com isso podem
ser ativadas outras rotinas de interrupo. A inicializao s ocorre com a entrada.

Literatura
Para mais informaes sobre a criao de subrotinas, veja o captulo "Tcnica de subrotinas,
tcnica de macros".

Preparao do trabalho
120 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.14 Rotina de interrupo (ASUP)

1.14.3 Atribuio e partida de rotinas de interrupo (SETINT, PRIO, BLSYNC)

Funo
O comando possui sinais (entrada 18) que desencadeiam uma interrupo do programa
em andamento e que podem iniciar uma rotina de interrupo correspondente.
A atribuio de qual entrada pertence a qual programa realizada no programa de pea
atravs do comando SETINT.
Se no programa de pea existirem vrias instrues SETINT e com isso mais sinais sendo
disparados, ento se deve atribuir valores de prioridade s rotinas de interrupo, que
definem a seqncia durante a execuo: PRIO=<valor>
Se ocorrerem novos sinais durante a execuo da interrupo, as rotinas de maior prioridade
cancelaro a atual rotina de interrupo.

Sintaxe
SETINT(<n>) PRIO=<valor> <NOME>
SETINT(<n>) PRIO=<valor> <NAME> BLSYNC
SETINT(<n>) PRIO=<valor> <NAME> LIFTFAST

Significado

SETINT(<n>): Comando: Atribuir a entrada <n> de uma rotina de interrupo. A rotina


de interrupo atribuda iniciada assim que a entrada <n> for ativada.
Nota:
Se uma nova rotina for atribuda em uma entrada j ocupada, a
atribuio anterior ser desativada automaticamente.
<n>: Parmetro: Nmero da entrada
Tipo: INT
Faixa de 1 ... 8
valores:
PRIO= : Comando: Definio da prioridade
<valor>: Valor de prioridade
Tipo: INT
Faixa de 1 ... 128
valores: A prioridade 1 corresponde ao mais alto nvel de
prioridade.
<NOME>: Nome da subrotina (rotina de interrupo) que deve ser executada.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 121
Programao flexvel de NC
1.14 Rotina de interrupo (ASUP)

BLSYNC: Quando a instruo SETINT programada junto com o BLSYNC, ento


com o disparo do sinal de interrupo ainda se executa o bloco de
programa em andamento e, apenas depois disso que a rotina de
interrupo iniciada.
LIFTFAST: Quando a instruo SETINT programada junto com o LIFTFAST,
ento com o disparo do sinal de interrupo realizada uma "Retrao
rpida da ferramenta do contorno" ainda antes da partida da rotina de
interrupo (veja " Retrao rpida do contorno (SETINT LIFTFAST,
ALF) [Pgina 125]").

Exemplos
Exemplo 1: Atribuir rotinas de interrupo e definir prioridade

Cdigo de programa Comentrio


...
N20 SETINT(3) PRIO=1 RETRAC_Z ; Se a entrada 3 for ativada, ento deve ser
iniciada a rotina de interrupo "RETRAC_Z".
N30 SETINT(2) PRIO=2 RETRAC_X ; Se a entrada 2 for ativada, ento deve ser
iniciada a rotina de interrupo "RETRAC_X".
...

As rotinas de interrupo so executadas uma a uma na seqncia dos valores de


prioridade, se as entradas forem disponibilizadas simultaneamente. primeiro "RETRAC_Z",
depois "RETRAC_X".

Exemplo 2: Nova atribuio de rotinas de interrupo

Cdigo de programa Comentrio


...
N20 SETINT(3) PRIO=2 RETRAC_Z ; Se a entrada 3 for ativada, ento deve ser
iniciada a rotina de interrupo "RETRAC_Z".

N120 SETINT(3) PRIO=1 RETRAC_X ; Se atribui uma nova rotina de interrupo
entrada 3: ao invs de "RETRAC_Z" se deve
iniciar "RETRAC_X", se for ativada a entrada
3.

Preparao do trabalho
122 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.14 Rotina de interrupo (ASUP)

1.14.4 Desativar / ativar a atribuio de uma rotina de interrupo (DISABLE, ENABLE)

Funo
Uma instruo SETINT desativada com DISABLE e novamente ativada com ENABLE sem
perder a associao Entrada Rotina de interrupo.

Sintaxe
DISABLE(<n>)
ENABLE(<n>)

Significado

DISABLE(<n>): Comando: Desativao da associao da rotina de interrupo com a


entrada <n>
ENABLE(<n>): Comando: Reativao da associao da rotina de interrupo com a
entrada <n>
<n>: Parmetro: Nmero da entrada
Tipo: INT
Faixa de valores: 1 ... 8

Exemplo
Cdigo de programa Comentrio
...
N20 SETINT(3) PRIO=1 RETRAC_Z ; Se a entrada 3 for ativada, ento deve ser
iniciada a rotina de interrupo "RETRAC_Z".
...
N90 DISABLE(3) ; A instruo SETINT do N20 desativada.
...
N130 ENABLE(3) ; A instruo SETINT do N20 novamente
ativada.
...

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 123
Programao flexvel de NC
1.14 Rotina de interrupo (ASUP)

1.14.5 Deletar a atribuio de uma rotina de interrupo (CLRINT)

Funo
Uma associao Entrada Rotina de interrupo definida com SETINT pode ser desfeita
com CLRINT.

Sintaxe
CLRINT(<n>)

Significado

CLRINT(<n>): Comando: Deletao da associao da rotina de interrupo com a


entrada <n>
<n>: Parmetro: Nmero da entrada
Tipo: INT
Faixa de valores: 1 ... 8

Exemplo
Cdigo de programa Comentrio
...
N20 SETINT(3) PRIO=2 RETRAC_Z ;
...
N50 CLRINT(3) ; A associao entre a entrada "3" e a rotina
de interrupo "RETRAC_Z" foi deletada.
...

Preparao do trabalho
124 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.14 Rotina de interrupo (ASUP)

1.14.6 Retrao rpida do contorno (SETINT LIFTFAST, ALF)

Funo
Atravs de uma instruo SETINT com LIFTFAST se realiza o afastamento da ferramenta
mediante retrao rpida assim que a entrada for ativada.

A execuo restante depende se a instruo SETINT, alm da LIFTFAST, tambm contiver


uma rotina de interrupo:

Com rotina de A rotina de interrupo executada aps a retrao rpida.


interrupo:
Sem rotina de A usinagem parada com alarme aps a retrao rpida.
interrupo:

Sintaxe
SETINT(<n>) PRIO=1 LIFTFAST
SETINT(<n>) PRIO=1 <NAME> LIFTFAST

Significado

SETINT(<n>): Comando: Atribuir a entrada <n> de uma rotina de interrupo. A rotina


de interrupo atribuda iniciada assim que a entrada <n> for ativada.
<n>: Parmetro: Nmero da entrada
Tipo: INT
Faixa de 1 ... 8
valores:
PRIO= : Definio da prioridade

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 125
Programao flexvel de NC
1.14 Rotina de interrupo (ASUP)

<valor>: Valor de prioridade


Faixa de 1 ... 128
valores:
A prioridade 1 corresponde ao mais alto nvel de prioridade.
<NOME>: Nome da subrotina (rotina de interrupo) que deve ser executada.
LIFTFAST: Comando: Retrao rpida do contorno
ALF= : Comando: Sentido de deslocamento programvel (no bloco de
deslocamento)
Para conhecer as opes de programao com ALF, veja o assunto
"Sentido de deslocamento na retrao rpida do contorno [Pgina
127]".

Condies gerais
Comportamento com Frame ativo com espelhamento
Na determinao do sentido de retrao verificado se um Frame est ativo com
espelhamento. Neste caso a direita e a esquerda so invertidas para o sentido de retrao
em funo do sentido de tangente. Os componentes de sentido no sentido da ferramenta no
so espelhados. Este comportamento ativado atravs do ajuste de dado de mquina:
MD21202 $MC_LIFTFAST_WITH_MIRROR = TRUE

Exemplo
Uma ferramenta cancelada deve ser substituda automaticamente por uma ferramenta
gmea. A usinagem continuada com a nova ferramenta.
Programa principal:

Programa principal Comentrio


N10 SETINT(1) PRIO=1 TROCA_F LIFTFAST ; Quando a entrada 1 ativada, a
ferramenta imediatamente
afastada do contorno com retrao
rpida (cdigo n 7 para correo
do raio da ferramenta G41). Em
seguida executada a rotina de
interrupo "TROCA_F".
N20 G0 Z100 G17 T1 ALF=7 D1
N30 G0 X-5 Y-22 Z2 M3 S300
N40 Z-7
N50 G41 G1 X16 Y16 F200
N60 Y35
N70 X53 Y65
N90 X71.5 Y16
N100 X16
N110 G40 G0 Z100 M30

Preparao do trabalho
126 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.14 Rotina de interrupo (ASUP)

Subrotina:

Subrotina Comentrio
PROC TROCA_F SAVE ; Subrotina com armazenamento do atual
estado operacional
N10 G0 Z100 M5 ; Posio de troca de ferramentas,
parada do fuso
N20 T11 M6 D1 G41 ; Trocar ferramentas
N30 REPOSL RMB M3 ; Reaproximao do contorno e salto de
retorno para o programa principal (se
programa em um bloco prprio)

1.14.7 Sentido de deslocamento na retrao rpida do contorno

Movimento de retrocesso
O plano do movimento de retrocesso definida atravs do seguinte cdigo G:
LFTXT
O plano do movimento de retrocesso determinado a partir da tangente da trajetria e do
sentido da ferramenta (ajuste padro).
LFWP
O plano do movimento de retrocesso o plano de trabalho ativo que se seleciona com o
cdigo G17, G18 ou G19. O sentido do movimento de retrocesso no depende da
tangente da trajetria. Com isso pode-se programar uma retrao rpida paralela ao eixo.
LFPOS
Retrocesso do eixo identificado com POLFMASK / POLFMLIN na posio de eixo absoluta
programada com POLF.
O ALF no tem nenhuma influncia sobre o sentido de retrao para vrios eixos assim
como para vrios eixos de contexto linear.
Literatura:
Manual de programao Fundamentos; captulo: "Retrocesso rpido para rosqueamento"

Sentido de deslocamento programvel (ALF=...)


No plano do movimento de retrocesso o sentido programado com ALF, em discretos
passos de 45 graus.
Os possveis sentidos de deslocamento esto armazenados no comando numrico atravs
de cdigos especiais e eles podem ser chamados atravs deste nmero.
Exemplo:

Cdigo de programa
N10 SETINT(2) PRIO=1 RETRAC_Z LIFTFAST
ALF=7

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 127
Programao flexvel de NC
1.14 Rotina de interrupo (ASUP)

Com o G41 (sentido de usinagem esquerda do contorno) ativado, a ferramenta se afasta


perpendicularmente do contorno.

* $/) 

Plano de referncia para a descrio dos sentidos de deslocamento com LFTXT


No ponto de aplicao da ferramenta no contorno programado fixado um plano que serve
de referncia para a especificao do movimento de retrao com o respectivo cdigo.
O plano de referncia fixado a partir de um eixo longitudinal da ferramenta (sentido de
penetrao) e um vetor que est posicionado perpendicularmente a esse eixo e para o ponto
de aplicao da ferramenta no contorno.

7DQJHQWH
7DQJHQWH
3RQWRGH
DWXDR

7DQJHQWH
7DQJHQWH
3RQWRGH
DWXDR

Preparao do trabalho
128 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.14 Rotina de interrupo (ASUP)

Cdigos com sentidos de deslocamento com LFTXT


Os nmeros de cdigo com os sentidos de deslocamento a partir do plano de referncia
esto indicados na figura a seguir.

SHQHWUDR
9LVWDQR
 VHQWLGRGH

(L[RGH

 GHVORFDPHQWR

r
 

r





  
9LVWDGHSODQWD
*

 
*
6HQWLGRGHGHVORFDPHQWR

  

Para ALF=1 se define o retrocesso no sentido da ferramenta.


Com ALF=0 se desativa a funo de "Retrao rpida".

CUIDADO

Com a correo do raio da ferramenta ativada:


os cdigos 2, 3, 4 com G41
os cdigos 6, 7, 8 com G42
no devem ser utilizados, pois nestes casos a ferramenta poderia colidir com a pea
enquanto se dirige at o contorno.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 129
Programao flexvel de NC
1.14 Rotina de interrupo (ASUP)

Cdigos com sentidos de deslocamento com LFWP


Com LFWP o sentido do plano de trabalho atribudo como segue:
G17: Plano X/Y
ALF=1: Retrocesso no sentido X
ALF=3: Retrocesso no sentido Y
G18: Plano Z/X
ALF=1: Retrocesso no sentido Z
ALF=3: Retrocesso no sentido X
G19: Plano Y/Z
ALF=1: Retrocesso no sentido Y
ALF=3: Retrocesso no sentido Z

1.14.8 Execuo de movimentos com rotinas de interrupo

Rotina de interrupo sem LIFTFAST


Os movimentos dos eixos so desacelerados na trajetria at pararem. Em seguida
iniciada a rotina de interrupo.
A posio de parada armazenada (memorizada) como posio de interrupo e ser
novamente aproximada com REPOS com RMI no final da rotina de interrupo.

Rotina de interrupo com LIFTFAST


Os movimentos dos eixos so freados na trajetria. Ao mesmo tempo se executa o
movimento LIFTFAST como movimento sobreposto. A rotina de interrupo iniciada
quando for parado o movimento de percurso e o movimento LIFTFAST.
Como posio de interrupo memorizada a posio no contorno onde foi iniciado o
movimento LIFTFAST, onde o percurso tambm foi abandonado.
Com LIFTFAST e ALF=0 a rotina de interrupo se comporta de modo idntico como a
rotina de interrupo sem LIFTFAST.

Indicao
O valor com que os eixos geomtricos se afastam do contorno na retrao rpida, pode ser
ajustado atravs de um dado de mquina.

Preparao do trabalho
130 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.15 Troca de eixos, troca de fusos (RELEASE, GET, GETD)

1.15 Troca de eixos, troca de fusos (RELEASE, GET, GETD)

Funo
Um ou vrios eixos ou fusos sempre podem interpolados em apenas um canal. Se um eixo
precisa alternar entre dois canais diferentes (p.ex. trocador de paletes), ento se deve
liberar primeiro o atual canal e depois passado para o outro canal. O eixo trocado entre os
canais.
Ampliao da troca de eixos
Um eixo/fuso pode ser trocado com parada de pr-processamento e aa sincronizada entre o
pr-processamento e o processamento principal, ou tambm, alternativamente sem a parada
de pr-processamento. Alm disso, uma troca de eixos tambm possvel atravs de
Rotao de contentor de eixo AXCTSWE ou AXCTWED mediante GET/GETD implcito.
Frame com rotao, se atravs disso este eixo estiver ligado com outro eixo.
Aes sincronizadas; veja em aes sincronizadas de movimentos, "Troca de eixos
RELEASE, GET".
Fabricante da mquina
Observe as instrues do fabricante da mquina. Atravs de dados de mquina
configurveis, um eixo deve ser definido de forma clara em todos os canais para a troca de
eixos, e o comportamento de troca de eixos tambm podem ser ajustado de forma
modificvel atravs de dados de mquina.

Sintaxe
RELEASE(nome de eixo, nome de eixo, ...) ou RELEASE(S1)
GET(nome de eixo, nome de eixo, ...) ou GET(S2)
GETD(nome de eixo, nome de eixo, ...) ou GETD(S3)
Com GETD (GET Directly) um eixo buscado diretamente de outro canal. Isto significa que
para este GETD no necessrio programar um RELEASE adequado em outro canal. Isto
tambm significa que agora se deve estabelecer outra comunicao de canais (p. ex.
marcadores Wait).

Significado

RELEASE (nome de eixo, nome de eixo, Habilitao do eixo (n)


):
GET (nome de eixo, nome de eixo, ): Aceitao do eixo(n)
GETD (nome de eixo, nome de eixo, ): Aceitao direta do eixo(n)
Nome de eixo: Atribuio de eixos no sistema: AX1,
AX2, ou especificao dos nomes
de eixo da mquina
RELEASE(S1) : Liberao dos fusos S1, S2,
GET(S2) : Aceitao dos fusos S1, S2,
GETD(S3) : Aceitao direta dos fusos S1, S2,

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 131
Programao flexvel de NC
1.15 Troca de eixos, troca de fusos (RELEASE, GET, GETD)

Solicitao GET sem parada de pr-processamento


Se, aps uma solicitao GET sem parada de pr-processamento, o eixo for novamente
habilitado com RELEASE(eixo) ou WAITP(eixo), ento um GET seguinte conduzir para
um GET com parada de pr-processamento.

CUIDADO

Um eixo aceito com GET permanece atribudo neste canal, mesmo aps uma tecla ou
programa RESET.
Com uma inicializao do programa a atribuio dos eixos ou fusos trocados dever ocorrer
via programa, caso o eixo no seja necessrio em seu canal bsico.
Com POWER ON ele ser atribudo ao canal definido nos dados da mquina.

Exemplos
Exemplo 1: Troca entre dois canais
Para o processamento no canal 1 so utilizados de 6 eixos os seguintes eixos: 1., 2., 3. e 4
eixo.
Os 5 e 6 eixos so utilizados no canal 2 para a troca de peas de trabalho.
O eixo 2 deve ser trocado entre dois canais e depois do POWERON ser associado ao canal
1.
Programa "MAIN" no canal 1:

Cdigo de programa Comentrio


INIT (2,"TROCA2") ; Selecionar o programa TROCA2 no canal 2.
N START (2) ; Iniciar o programa no canal 2.
N GET (AX2) ; Aceitar eixo AX2.
...
N RELEASE (AX2) ; Liberar eixo AX2.
N WAITM (1,1,2) ; Espera pelo marcador WAIT no canal 1 e 2 para
sincronizao em ambos canais.
... ; Continuao do processo aps a troca de eixos.
N M30

Programa "TROCA2" no canal 2:

Programao Comentrio
N RELEASE(AX2)
N160 WAITM(1,1,2) ; Espera pelo marcador WAIT no canal 1 e 2 para
sincronizao em ambos canais.
N150 GET(AX2) ; Aceitar eixo AX2.
... ; Continuao do processo aps a troca de eixos.
N M30

Preparao do trabalho
132 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.15 Troca de eixos, troca de fusos (RELEASE, GET, GETD)

Exemplo 2: Troca de eixos sem sincronizao


Se o eixo no precisa ser sincronizado, no criada nenhuma parada de pr-processamento
pelo GET.

Programao Comentrio
N01 G0 X0
N02 RELEASE(AX5)
N03 G64 X10
N04 X20
N05 GET(AX5) ; Se nenhuma sincronizao for necessria, este no
um bloco executvel.
N06 G01 F5000 ; Nenhum bloco executvel.
N07 X20 ; Nenhum bloco executvel, pois a posio X igual no
N04.
N08 X30 ; Primeiro bloco executvel aps N05.
...

Exemplo 3: Ativao de uma troca de eixos sem parada de pr-processamento


Requisito: A troca de eixos sem parada de pr-processamento deve ser configurada atravs
de um dado de mquina.

Programao Comentrio
N010 M4 S100
N011 G4 F2
N020 M5
N021 SPOS=0
N022 POS[B]=1
N023 WAITP(B) ; O eixo B passa a ser eixo neutro.
N030 X1 F10
N031 X100 F500
N032 X200
N040 M3 S500 ; O eixo no dispara nenhuma parada de pr-
processamento/REORG.
N041 G4 F2
N050 M5
N099 M30

Se o fuso ou eixo B for deslocado imediatamente aps o bloco N023 como eixo PLC p.ex.
desloca 180graus e depois retorna at 1grau, ento este eixo novamente passa a ser um
eixo neutro e no dispara nenhuma parada de pr-processamento no bloco N40.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 133
Programao flexvel de NC
1.15 Troca de eixos, troca de fusos (RELEASE, GET, GETD)

Requisitos
Condies para a troca de eixos
O eixo dever estar definido em dados da mquina para todos canais por ele utilizados.
Atravs do dado de mquina especfico de eixo dever estar definido qual canal o eixo
deve ser atribudo aps POWER ON.

Descrio
Liberar eixo: RELEASE
Na liberao do eixo deve-se observar:
1. O eixo no pode participar de nenhuma transformao.
2. Nos acoplamentos de eixo (comando tangencial) todos eixos envolvidos precisam ser
liberados.
3. Um eixo de posicionamento concorrente no pode ser trocado neste estado.
4. Em um eixo mestre Gantry tambm ocorre a troca para todos eixos escravos.
5. Em acoplamentos de eixo (movimento acoplado, acoplamento de valor mestre,
transmisso eletrnica) somente pode ser liberado o eixo mestre do grupo.
Aceitar eixo: GET
Com este comando executada a troca de eixos propriamente dita. A responsabilidade para
o eixo est totalmente no canal onde foi programado o comando.
Efeitos do GET:
Troca de eixos com sincronizao:
Um eixo sempre precisa ser sincronizado quando ele estava atribudo em um outro canal ou
no PLC, e se antes do GET ocorreu uma sincronizao pelo "WAITP", G74 ou se foi anulado
o curso restante.
Ocorre uma parada de pr-processamento (como no SOPRE)
O processamento permanece interrompido at que a troca seja completamente
executada.

"GET" automtico
Se a princpio um eixo est disponvel no canal, mas nesse momento no como "Eixo de
canal", o GET executado automaticamente. Se o eixo ou os eixos j esto sincronizados,
no criada nenhuma parada de pr-processamento.

Preparao do trabalho
134 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.15 Troca de eixos, troca de fusos (RELEASE, GET, GETD)

Ajustar o comportamento de eixos de forma modificvel


O momento de entrega dos eixos pode ser ajustado atravs de um dado de mquina da
seguinte forma:
A troca automtica de eixos entre dois canais tambm executada se o eixo tiver sido
colocado em estado neutro (transferncia convencional) com WAITP
Na solicitao de uma rotao de contentor de eixos todos os eixos do contentor que
estiverem atribudos ao canal executado sero chamados no canal atravs do GET ou
GETD implcito. Uma troca de eixos seguinte somente ser permitida aps a concluso
da rotao do contentor de eixos.
Aps um bloco intermedirio colocado no processamento principal se controla se uma
reorganizao ou no necessria. Uma reorganizao somente se faz necessria
quando os estados dos eixos deste bloco no coincidirem com os atuais estados dos
eixos.
Ao invs de um bloco GET com parada de pr-processamento e ao sincronizada entre
o pr-processamento e o processamento principal, tambm pode ser realizada uma troca
de eixos sem o pr-processamento. Ento apenas se gera um bloco intermedirio com a
solicitao GET. No processamento principal, durante a execuo deste bloco, se
controla se os estados do eixo no bloco esto de acordo com os estados atuais de eixo.
Para mais informaes sobre a funcionalidade de uma troca de eixos ou de fusos, veja o
/FB2/ Manual de funes ampliadas; BAGs, Canais, Troca de eixos (K5).

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 135
Programao flexvel de NC
1.16 Transferir eixo de outro canal (AXTOCHAN)

1.16 Transferir eixo de outro canal (AXTOCHAN)

Funo
Com o comando de linguagem AXTOCHAN se pode solicitar um eixo que ser transferido para
outro canal. O eixo pode ser transferido ao canal correspondente tanto do programa de pea
NC como de uma ao sincronizada.

Sintaxe
AXTOCHAN(nome de eixo,nmero de canal[,nome de eixo,nmero de
canal[,...]])

Significado

AXTOCHAN: Solicitar eixo para um determinado canal


Nome de eixo: Atribuio de eixos no sistema: X, Y, ou especificao do nome de
eixo de mquina envolvido. O canal a ser executado no precisa ser o
prprio canal e ele tambm no precisa ser o canal que atualmente
detm o direito de interpolao do eixo
Nmero de Nmero do canal que deve ser atribudo ao eixo
canal:

Indicao
Eixo de posicionamento concorrente e eixo controlado exclusivamente por PLC
Um eixo PLC no pode mudar de canal como eixo de posicionamento concorrente. Um eixo
controlado exclusivamente pelo PLC no pode ser atribudo ao programa NC.
Literatura
Manual de funes ampliadas; Eixos de posicionamento (P2)

Exemplo
AXTOCHAN no programa NC
Os eixos X e Y so conhecidos no 1 canal e no 2 canal. Atualmente o canal 1 detm o
direito de interpolao e no canal 1 se inicia o seguinte programa:

Cdigo de programa Comentrio


N110 AXTOCHAN(Y,2) ; Transferir o eixo Y para o 2 canal.
N111 M0
N120 AXTOCHAN(Y,1) ; Busca novamente o eixo B (neutro).
N121 M0
N130 AXTOCHAN(Y,2,X,2) ; Transferir o eixo Y e o eixo X para o 2 canal
(eixos neutros).
N131 M0
N140 AXTOCHAN(Y,2) ; Transferir o eixo Y para o 2 canal (programa NC).
N141 M0

Preparao do trabalho
136 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.16 Transferir eixo de outro canal (AXTOCHAN)

Outras informaes
AXTOCHAN no programa NC
Neste caso, apenas com uma solicitao do eixo para o programa NC em canal prprio
que se executa um GET e com isso tambm se espera pela real alterao de estados. Se o
eixo for solicitado para outro canal ou se ele deve ser um eixo neutro no prprio canal, ento
apenas ser cancelada a solicitao.
AXTOCHAN a partir de uma ao sincronizada
Se um eixo for solicitado para o prprio canal, ento o AXTOCHAN de uma ao sincronizada
forma o GET a partir de uma ao sincronizada. Neste caso o eixo passa a ser o eixo neutro
na primeira solicitao do prprio canal. Na segunda solicitao o eixo do programa NC
atribudo de forma anloga solicitao GET no programa NC. Para solicitao GET a partir
de uma ao sincronizada, veja o captulo "Aes sincronizadas de movimentos".

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 137
Programao flexvel de NC
1.17 Ativar dados de mquina (NEWCONF)

1.17 Ativar dados de mquina (NEWCONF)

Funo
Com o comando NEWCONF so ativados todos os dados de mquina de nvel de atividade
"NEW_CONFIG". A funo tambm pode ser ativada na interface de operao HMI atravs
da softkey "Ativar MD".
Com a execuo da funo "NEWCONF" executada uma parada de pr-processamento
implcita, isto , se interrompe o movimento de percurso.

Sintaxe
NEWCONF

Significado

NEWCONF: Comando para tornar ativos todos os dados de mquina do nvel de ativao
"NEW_CONFIG"

Executar o NEWCONF a partir de um programa de pea entre vrios canais


Se dados de mquina de eixos forem alterados a partir do programa de pea e, sem seguida,
ativados com NEWCONF, ento o NEWCONF ativa apenas os dados de mquina que realizam
alteraes para o canal do programa de pea.

Indicao
Para permitir que todas alteraes sejam ativadas, se deve executar o comando NEWCONF
em todo canal onde atualmente so calculados os eixos ou funes alterados que foram
afetados pelos dados de mquina.
Com NEWCONF no se ativa nenhum dado de mquina de eixos.
Para eixos controlados por PLC deve ser executado um RESET de eixo.

Exemplo
Fresamento: Execuo da posio de furao com diferentes tecnologias

Cdigo de programa Comentrio


N10 $MA_CONTOUR_TOL[AX]=1.0 ; Modificar dados de mquina.
N20 NEWCONF ; Ativar dados de mquina.
...

Preparao do trabalho
138 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.18 Gravar arquivo (WRITE)

1.18 Gravar arquivo (WRITE)

Funo
Com o comando WRITE possvel que blocos e dados de um programa NC sejam gravados
no final de um arquivo indicado no sistema passivo de arquivos (arquivo de protocolo). Isto
tambm pode ser feito com o programa que estiver em execuo naquele momento.

Indicao
Um arquivo que deve ser gravado com o comando WRITE ser criado, caso ele ainda no
exista no NC.
O local de armazenamento a memria NC esttica. Para o SINUMERIK840Dsl o carto
CompactFlashCard. Em comparao ao SINUMERIK840D o tempo de processamento do
comando WRITE aumenta em aprox. 75ms.
Se j existir um arquivo de mesmo nome no disco rgido, ele ser substitudo pelo novo
assim que o arquivo for fechado (no NC). Soluo (HMI Advanced): Modifique o nome no
NC com a sotkey "Propriedades" na rea de operao "Servios".

Alm disso, com o comando WRITE tambm possvel gravar dados de um programa NC
em um dispositivo externo ou em um arquivo externo (veja tambm em "Sada para um
dispositivo ou arquivo externo (EXTOPEN, WRITE, EXTCLOSE) [Pgina 716]").

Pr-requisito
O atual nvel de proteo ajustado deve ser igual ou mais alto do que o direito READ do
arquivo. Se este no for o caso, o acesso ser negado com mensagem de erro (valor
retornado das variveis com erro =13).

Sintaxe
DEF INT <erro>
...
WRITE(<erro>,"<nome de arquivo>"/"<dispositivo externo>","<bloco/dados>")

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 139
Programao flexvel de NC
1.18 Gravar arquivo (WRITE)

Significado

WRITE: Comando para adicionar um bloco ou dados no fim do arquivo indicado


<erro>: Parmetro 1: Varivel para o retorno do valor do erro
Tip. INT
Valor: 0 nenhum erro
1 Caminho no permitido
2 Caminho no encontrado
3 Arquivo no encontrado
4 Tipo de arquivo incorreto
10 Arquivo est cheio
11 Arquivo est sendo usado
12 Nenhum recurso livre
13 Sem direito de acesso
14 dispositivo externo no reservado nem aberto
15 Erro durante a gravao no dispositivo externo
16 programado caminho externo invlido

Preparao do trabalho
140 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.18 Gravar arquivo (WRITE)

<nome do Parmetro 2: Nome do arquivo no sistema passivo de arquivos onde o


arquivo>: bloco especificado ou os dados especificados devem ser adicionados
Tipo: STRING
Ao indicar o nome do arquivo devem ser observados os seguintes itens:
O nome de arquivo indicado no pode conter espaos vazios ou
caracteres de controle (caracteres de cdigo ASCII 32), caso
contrrio o comando WRITE ser cancelado com o identificador de
erro 1 "Caminho no permitido".
O nome do arquivo pode ser especificado com indicao do
caminho e extenso de arquivo:
Indicaes de caminho
As indicaes de caminho devem ser absolutas, isto , elas
comeam com "/".
Sem a indicao do caminho o arquivo ser armazenado no atual
diretrio (=diretrio do programa selecionado).
Extenso de arquivo
Se o nome de arquivo no possui nenhum identificador de
domnio ("_N_"), ele ser complementado de acordo.
Se no nome de arquivo o quarto ltimo caractere for um
sublinhado "_", ento os trs caracteres seguintes sero
interpretados como extenso de arquivo. Para utilizar o mesmo
nome de arquivo em todos comandos de arquivo, por exemplo,
atravs de uma varivel do tipo STRING, somente podem ser
utilizadas as extenses de arquivo _SPF e _MPF.
Se nenhuma extenso "_MPF" ou "_SPF" for especificada,
complementado automaticamente com _MPF.
O nome do arquivo no pode ter mais de 32 bytes, a extenso da
indicao do caminho no pode ter mais de 128 bytes.
Exemplo:
"PROTFILE"
"_N_PROTFILE"
"_N_PROTFILE_MPF"
"/_N_MPF_DIR_/_N_PROTFILE_MPF/"
<dispositivo Se dados devem ser transferidos para um dispositivo ou arquivo
externo>: externo, ento, ao invs do nome de arquivo deve ser informado o
identificador simblico para o dispositivo ou arquivo a ser aberto.
Tipo: STRING
Para mais informaes, veja em "Sada para um dispositivo ou arquivo
externo (EXTOPEN, WRITE, EXTCLOSE) [Pgina 716]".
Nota:
O identificador deve ser idntico ao identificador especificado no
comando EXTOPEN.
<bloco/ Bloco ou dados que devem ser adicionados no arquivo indicado.
dados>: Tipo: STRING

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 141
Programao flexvel de NC
1.18 Gravar arquivo (WRITE)

Indicao
Durante a gravao no sistema passivo de arquivos do NCK o comando WRITE insere de
maneira implcita um caractere "LF" (LINE FEED = quebra de linha) no final da String de
sada.
Este procedimento no aplicado para a transferncia para um dispositivo ou arquivo
externo. Se for necessrio emitir um "LF", isto dever ser informado de maneira implcita na
String de sada.
Para isso veja o exemplo 3: LF implcito/explcito!

Condies gerais
Tamanho de arquivo mximo ( Fabricante da mquina!)
O tamanho de arquivo mximo possvel para arquivos de protocolo no sistema passivo de
arquivos configurado com o dado de mquina:
MD11420 $MN_LEN_PROTOCOL_FILE
O tamanho de arquivo mximo vale para todos os arquivos que foram criados no sistema
passivo de arquivos com o comando WRITE. No caso de ser excedido, aparece uma
mensagem de erro e o bloco ou os dados no sero armazenados. Enquanto houver
espao de memria, ainda se pode criar um novo arquivo.

Exemplos

Exemplo 1: Comando WRITE no sistema passivo de arquivos sem indicao absoluta do


caminho

Cdigo de programa Comentrio


N10 DEF INT ERROR ; Definio das variveis
de erro.
N20 WRITE(ERROR,"PROT","PROTOCOLO DE 7.2.97") ; Grava o texto do
"PROTOCOLO DE 7.2.97" no
arquivo _N_PROT_MPF.
N30 IF ERROR ; Avaliao de erro.
N40 MSG ("Erro no comando WRITE:" <<ERROR)
N50 M0
N60 ENDIF
...

Exemplo 2: Comando WRITE no sistema passivo de arquivos com indicao absoluta do


caminho

Cdigo de programa
...
WRITE(ERROR,"/_N_WCS_DIR/_N_PROT_WPD/_N_PROT_MPF","PROTOCOLO DE 7.2.97")
...

Preparao do trabalho
142 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.18 Gravar arquivo (WRITE)

Exemplo 3: "LF" implcito/explcito


a, gravao no sistema passivo de arquivos com "LF" gerada de maneira implcita

Cdigo de programa
...
N110 DEF INT ERROR
N120 WRITE(ERROR,"/_N_MPF_DIR/_N_MYPROTFILE_MPF","MY_STRING")
N130 WRITE(ERROR,"/_N_MPF_DIR/_N_MYPROTFILE_MPF","MY_STRING")
N140 M30

Resultado da emisso:
MY_STRING
MY_STRING

b, gravao em arquivo externo sem "LF" gerada de maneira implcita

Cdigo de programa
...
N200 DEF STRING[30] DEV_1
N210 DEF INT ERROR
N220 DEV_1="LOCAL_DRIVE/myprotfile.mpf"
N230 EXTOPEN(ERROR,DEV_1)
N240 WRITE(ERROR,DEV_1,"MY_STRING")
N250 WRITE(ERROR,DEV_1,"MY_STRING")
N260 EXTCLOSE(ERROR,DEV_1)
N270 M30

Resultado da emisso:
MY_STRINGMY_STRING

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 143
Programao flexvel de NC
1.18 Gravar arquivo (WRITE)

c, gravao em arquivo externo com "LF" programada de maneira explcita


Para conseguir o mesmo resultado como em a, deve-se programar o seguinte:

Cdigo de programa
...
N200 DEF STRING[30] DEV_1
N210 DEF INT ERROR
N220 DEV_1="LOCAL_DRIVE/myprotfile.mpf"
N230 EXTOPEN(ERROR,DEV_1)
N240 WRITE(ERROR,DEV_1,"MY_STRING'H0A'")
N250 WRITE(ERROR,DEV_1,"MY_STRING'H0A'")
N260 EXTCLOSE(ERROR,DEV_1)
N270 M30

Resultado da emisso:
MY_STRING
MY_STRING

Ver tambm
Sada para um dispositivo ou arquivo externo (EXTOPEN, WRITE, EXTCLOSE) Sada para
um dispositivo ou arquivo externo (EXTOPEN, WRITE, EXTCLOSE) [Pgina 716]

Preparao do trabalho
144 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.19 Deletar arquivo (DELETE)

1.19 Deletar arquivo (DELETE)

Funo
Com o comando DELETE se pode deletar todos os arquivos, independente deles serem
criados ou no com o comando WRITE. Mesmo os arquivos atribudos com um nvel de
acesso mais alto podem ser deletados com DELETE.

Sintaxe
DEF INT <erro>
DELETE(<erro>,"<nome de arquivo>")

Significado

DELETE: Comando para deletar o arquivo indicado


<erro>: Varivel para o retorno do valor do erro
Tipo. INT
Valor: 0 nenhum erro
1 Caminho no permitido
2 Caminho no encontrado
3 Arquivo no encontrado
4 Tipo de arquivo incorreto
11 Arquivo est sendo usado
12 Nenhum resource livre
20 Outros erros

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 145
Programao flexvel de NC
1.19 Deletar arquivo (DELETE)

<nome do Nome do arquivo que deve ser deletado


arquivo>: Tipo: STRING
Ao indicar o nome do arquivo devem ser observados os seguintes
itens:
O nome de arquivo indicado no pode conter espaos vazios ou
caracteres de controle (caracteres de cdigo ASCII 32), caso
contrrio o comando DELETE ser cancelado com o identificador de
erro 1 "Caminho no permitido".
O nome do arquivo pode ser especificado com indicao do
caminho e extenso de arquivo:
Indicaes de caminho
As indicaes de caminho devem ser absolutas, isto , elas
comeam com "/".
Sem a indicao do caminho o arquivo ser procurado no atual
diretrio (=diretrio do programa selecionado).
Extenso de arquivo
Se o nome de arquivo no possui nenhum identificador de
domnio ("_N_"), ele ser complementado de acordo.
Se no nome de arquivo o quarto ltimo caractere for um
sublinhado "_", ento os trs caracteres seguintes sero
interpretados como extenso de arquivo. Para utilizar o mesmo
nome de arquivo em todos comandos de arquivo, por exemplo,
atravs de uma varivel do tipo STRING, somente podem ser
utilizadas as extenses de arquivo _SPF e _MPF.
Se nenhuma extenso "_MPF" ou "_SPF" for especificada,
complementado automaticamente com _MPF.
O nome do arquivo no pode ter mais de 32 bytes, o tamanho da
indicao do caminho no pode ter mais de 128 bytes.
Exemplo:
"PROTFILE"
"_N_PROTFILE"
"_N_PROTFILE_MPF"
"/_N_MPF_DIR_/_N_PROTFILE_MPF/"

Exemplo
Cdigo de programa Comentrio
N10 DEF INT ERROR ; Definio das variveis de
erro.
N15 STOPRE ; Parada de pr-processamento.
N20 DELETE(ERROR,"/_N_SPF_DIR/_N_TEST1_SPF") ; Deleta o arquivo TEST1 no
diretrio de subrotinas.
N30 IF ERROR ; Avaliao de erro.
N40 MSG ("Erro no comando DELETE:" <<ERROR)
N50 M0
N60 ENDIF

Preparao do trabalho
146 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.20 Ler linhas no arquivo (READ)

1.20 Ler linhas no arquivo (READ)

Funo
O comando READ l uma ou mais linhas no arquivo especificado e armazena as informaes
lidas em um campo de tipo STRING. Cada linha lida ocupa um elemento deste campo.

Indicao
O arquivo precisa estar na memria de usurio esttica do NCK (sistema de arquivos
passivo).

Pr-requisito
O atual nvel de proteo ajustado deve ser igual ou mais alto do que o direito READ do
arquivo. Se este no for o caso, o acesso ser negado com mensagem de erro (valor
retornado das variveis com erro =13).

Sintaxe
DEF INT <erro>
DEF STRING[<tamanho de String>] <resultado>[<n>,<m>]
READ(<erro>,"<nome de arquivo>",<linha inicial>,<nmero de
linhas>,<resultado>)

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 147
Programao flexvel de NC
1.20 Ler linhas no arquivo (READ)

Significado

READ: Comando para leitura de linhas do arquivo especificado e para


armazenamento destas linhas em um campo de varivel.
<erro>: Varivel para o retorno do valor de erro (parmetro Call-By-
Reference)
Tipo. INT
Valor: 0 nenhum erro
1 Caminho no permitido
2 Caminho no encontrado
3 Arquivo no encontrado
4 Tipo de arquivo incorreto
13 Direito de acesso insuficiente
21 Linha no existente (parmetro <linha
inicial> ou <nmero de linhas> maior que
o nmero de linhas no arquivo indicado).
22 O tamanho de campo das variveis de resultado
(<resultado>) muito pequeno.
23 rea de linhas muito grande (o parmetro
<nmero de linhas> deve ser configurado de
modo que seja permitida a leitura em toda
extenso at o fim do arquivo).

Preparao do trabalho
148 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.20 Ler linhas no arquivo (READ)

<nome do Nome do arquivo que deve ser lido (parmetro Call-By-Value)


arquivo>: Tipo: STRING
Ao indicar o nome do arquivo devem ser observados os seguintes
itens:
O nome de arquivo indicado no pode conter espaos vazios ou
caracteres de controle (caracteres de cdigo ASCII 32), caso
contrrio o comando READ ser cancelado com o identificador de
erro 1 "Caminho no permitido".
O nome do arquivo pode ser especificado com indicao do
caminho e extenso de arquivo:
Indicaes de caminho
As indicaes de caminho devem ser absolutas, isto , elas
comeam com "/".
Sem a indicao do caminho o arquivo ser procurado no
atual diretrio (=diretrio do programa selecionado).
Extenso de arquivo
Se o nome de arquivo no possui nenhum identificador de
domnio ("_N_"), ele ser complementado de acordo.
Se no nome de arquivo o quarto ltimo caractere for um
sublinhado "_", ento os trs caracteres seguintes sero
interpretados como extenso de arquivo. Para utilizar o
mesmo nome de arquivo em todos comandos de arquivo, por
exemplo, atravs de uma varivel do tipo STRING, somente
podem ser utilizadas as extenses de arquivo _SPF e _MPF.
Se nenhuma extenso "_MPF" ou "_SPF" for especificada,
complementado automaticamente com _MPF.
O nome do arquivo no pode ter mais de 32 bytes, o tamanho da
indicao do caminho no pode ter mais de 128 bytes.
Exemplo:
"PROTFILE"
"_N_PROTFILE"
"_N_PROTFILE_MPF"
"/_N_MPF_DIR_/_N_PROTFILE_MPF/"
<linha Linha inicial da rea do arquivo que deve ser lida (parmetro Call-
inicial>: By-Value)
Tipo: INT
Valor: 0 Antes do fim do arquivo realizada a leitura
do nmero de linhas especificado com o
parmetro <nmero de linhas>.
1n Nmero da primeira linha a ser lida.
<nmero de Nmero de linhas que devem ser lidas (parmetro Call-By-Value)
linhas>: Tipo: INT

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 149
Programao flexvel de NC
1.20 Ler linhas no arquivo (READ)

<resultado>: Varivel de resultado (parmetro Call-By-Reference)


Campo de varivel onde o texto lido armazenado.
Tipo: STRING (tamanho mx.: 255)
Se no parmetro <nmero de linhas> forem especificadas
menos linhas que o tamanho do campo [<n>,<m>] das variveis
de resultado, ento os elementos de campo restantes no sero
alterados.
A terminao de uma linha com o caractere de controle "LF" (Line
Feed) ou "CR LF" (Carriage Return Libe Feed) no armazenada
na varivel de resultado.
As linhas lidas sero truncadas se a linha for maior que o tamanho
de String definido. No se emite nenhuma mensagem de erro.

Indicao
Arquivos binrios no podem ser lidos. retornado o erro "tipo de arquivo incorreto" (valor
de retorno da varivel de erro =4). No se pode ler os seguintes tipos de arquivo: _BIN,
_EXE, _OBJ, _LIB, _BOT, _TRC, _ACC, _CYC, _NCK.

Exemplo
Cdigo de programa Comentrio
N10 DEF INT ERROR ; Definio das variveis de erro.
N20 DEF STRING[255] RESULT[5] ; Definio das variveis de
resultado.
N30 READ(ERROR,"/_N_CST_DIR/_N_TESTFILE_MPF",1,5,RESULT) ; Nome de arquivo com
identificadores de domnio e de
arquivo e indicao do caminho.
N40 IF ERROR <>0 ; Avaliao de erro.
N50 MSG("ERRO"<<ERROR<<"COM COMANDO READ")
N60 M0
N70 ENDIF
...

Preparao do trabalho
150 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.21 Controle de presena de um arquivo (ISFILE)

1.21 Controle de presena de um arquivo (ISFILE)

Funo
Com o comando ISFILE verificada a existncia de um arquivo na memria de usurio
esttica do NCK (sistema passivo de arquivos).

Sintaxe
<resultado>=ISFILE("<nome de arquivo>")

Significado

ISFILE: Comando para controle se o arquivo indicado est presente no sistema


passivo de arquivos.
<nome do Nome do arquivo cuja presena deve ser controlada no sistema passivo
arquivo>: de arquivos.
Tipo: STRING
Ao indicar o nome do arquivo devem ser observados os seguintes itens:
O nome de arquivo indicado no pode conter espaos vazios ou
caracteres de controle (caractere com cdigo ASCII 32).
O nome do arquivo pode ser especificado com indicao do caminho e
extenso de arquivo:
Indicaes de caminho
As indicaes de caminho devem ser absolutas, isto , elas
comeam com "/".
Sem a indicao do caminho o arquivo ser procurado no atual
diretrio (=diretrio do programa selecionado).
Extenso de arquivo
Se o nome de arquivo no possui nenhum identificador de domnio
("_N_"), ele ser complementado de acordo.
Se no nome de arquivo o quarto ltimo caractere for um sublinhado
"_", ento os trs caracteres seguintes sero interpretados como
extenso de arquivo. Para utilizar o mesmo nome de arquivo em
todos comandos de arquivo, por exemplo, atravs de uma varivel
do tipo STRING, somente podem ser utilizadas as extenses de
arquivo _SPF e _MPF.
Se nenhuma extenso "_MPF" ou "_SPF" for especificada,
complementado automaticamente com _MPF.
O nome do arquivo no pode ter mais de 32 bytes, o tamanho da
indicao do caminho no pode ter mais de 128 bytes.
Exemplo:
"PROTFILE"
"_N_PROTFILE"
"_N_PROTFILE_MPF"
"/_N_MPF_DIR_/_N_PROTFILE_MPF/"

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 151
Programao flexvel de NC
1.21 Controle de presena de um arquivo (ISFILE)

<resultado>: Varivel de resultado para receber o resultado do controle


Tipo. BOOL
Valor: TRUE Arquivo presente
FALSE Arquivo no presente

Exemplo
Cdigo de programa Comentrio
N10 DEF BOOL RESULT ; Definio das variveis de resultado.
N20 RESULT=ISFILE("TESTFILE")
N30 IF(RESULT==FALSE)
N40 MSG("ARQUIVO INEXISTENTE")
N50 M0
N60 ENDIF
...

ou:

Cdigo de programa Comentrio


N10 DEF BOOL RESULT ; Definio das variveis de resultado.
N20 RESULT=ISFILE("TESTFILE")
N30 IF(NOT ISFILE("TESTFILE"))
N40 MSG("ARQUIVO INEXISTENTE")
N50 M0
N60 ENDIF
...

Preparao do trabalho
152 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.22 Leitura das informaes de arquivo (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO)

1.22 Leitura das informaes de arquivo (FILEDATE, FILETIME, FILESIZE,


FILESTAT, FILEINFO)

Funo
Atravs dos comandos FILEDATE, FILETIME, FILESIZE, FILESTAT e FILEINFO
possvel ler (extrair) determinadas informaes de arquivo como data/horrio do ltimo
acesso de gravao, atual tamanho de arquivo, estado de arquivo ou a soma destas
informaes.

Indicao
O arquivo precisa estar na memria de usurio esttica do NCK (sistema de arquivos
passivo).

Pr-requisito
O atual nvel de proteo ajustado deve ser igual ou mais alto do que o direito Show do
diretrio de um nvel acima. Se este no for o caso, o acesso ser negado com mensagem
de erro (valor retornado das variveis com erro =13).

Sintaxe
DEF INT <erro>
DEF STRING[<tamanho de String>] <resultado>
FILE....(<erro>,"<nome de arquivo>",<resultado>)

Significado

FILEDATE: O comando FILEDATE retorna a data do ltimo acesso de gravao


no arquivo indicado.
FILETIME: O comando FILETIME retorna o horrio do ltimo acesso de
gravao no arquivo indicado.
FILESIZE: O comando FILESIZE retorna o atual tamanho do arquivo indicado.
FILESTAT: O comando FILESTAT retorna o estado de direitos de leitura,
gravao e execuo do arquivo indicado.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 153
Programao flexvel de NC
1.22 Leitura das informaes de arquivo (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO)

FILEINFO: O comando FILEINFO retorna a soma das informaes de arquivo


do arquivo indicado, que podem ser lidas (retornadas) atravs do
FILEDATE, FILETIME, FILESIZE e FILESTAT.
<erro>: Varivel para o retorno do valor de erro (parmetro Call-By-
Reference)
Tip. INT
Valor: 0 nenhum erro
1 Caminho no permitido
2 Caminho no encontrado
3 Arquivo no encontrado
4 Tipo de arquivo incorreto
13 Direito de acesso insuficiente
22 O tamanho de String das variveis de resultado
(<resultado>) muito pequeno.

Preparao do trabalho
154 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.22 Leitura das informaes de arquivo (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO)

FILEINFO: O comando FILEINFO retorna a soma das informaes de arquivo


do arquivo indicado, que podem ser lidas (retornadas) atravs do
FILEDATE, FILETIME, FILESIZE e FILESTAT.
<erro>: Varivel para o retorno do valor de erro (parmetro Call-By-
Reference)
Tip. INT
Valor: 0 nenhum erro
1 Caminho no permitido
2 Caminho no encontrado
3 Arquivo no encontrado
4 Tipo de arquivo incorreto
13 Direito de acesso insuficiente
22 O tamanho de String das variveis de resultado
(<resultado>) muito pequeno.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 155
Programao flexvel de NC
1.22 Leitura das informaes de arquivo (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO)

FILEINFO: O comando FILEINFO retorna a soma das informaes de arquivo


do arquivo indicado, que podem ser lidas (retornadas) atravs do
FILEDATE, FILETIME, FILESIZE e FILESTAT.
<erro>: Varivel para o retorno do valor de erro (parmetro Call-By-
Reference)
Tip. INT
Valor: 0 nenhum erro
1 Caminho no permitido
2 Caminho no encontrado
3 Arquivo no encontrado
4 Tipo de arquivo incorreto
13 Direito de acesso insuficiente
22 O tamanho de String das variveis de resultado
(<resultado>) muito pequeno.

Preparao do trabalho
156 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.22 Leitura das informaes de arquivo (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO)

<nome do Nome do arquivo de onde devem ser lidas (extradas) as informaes


arquivo>: de arquivo.
Tipo: STRING
Ao indicar o nome do arquivo devem ser observados os seguintes
itens:
O nome de arquivo indicado no pode conter espaos vazios ou
caracteres de controle (caracteres de cdigo ASCII 32), caso
contrrio o comando FILE... ser cancelado com o identificador
de erro 1 "Caminho no permitido".
O nome do arquivo pode ser especificado com indicao do
caminho e extenso de arquivo:
Indicaes de caminho
As indicaes de caminho devem ser absolutas, isto , elas
comeam com "/".
Sem a indicao do caminho o arquivo ser procurado no atual
diretrio (=diretrio do programa selecionado).
Extenso de arquivo
Se o nome de arquivo no possui nenhum identificador de
domnio ("_N_"), ele ser complementado de acordo.
Se no nome de arquivo o quarto ltimo caractere for um
sublinhado "_", ento os trs caracteres seguintes sero
interpretados como extenso de arquivo. Para utilizar o mesmo
nome de arquivo em todos comandos de arquivo, por exemplo,
atravs de uma varivel do tipo STRING, somente podem ser
utilizadas as extenses de arquivo _SPF e _MPF.
Se nenhuma extenso "_MPF" ou "_SPF" for especificada,
complementado automaticamente com _MPF.
O nome do arquivo no pode ter mais de 32 bytes, o tamanho da
indicao do caminho no pode ter mais de 128 bytes.
Exemplo:
"PROTFILE"
"_N_PROTFILE"
"_N_PROTFILE_MPF"
"/_N_MPF_DIR_/_N_PROTFILE_MPF/"

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 157
Programao flexvel de NC
1.22 Leitura das informaes de arquivo (FILEDATE, FILETIME, FILESIZE, FILESTAT, FILEINFO)

<resultado>: Varivel de resultado (parmetro Call-By-Reference)


Varivel onde a informao de arquivo solicitada armazenada.
Tipo: STRING para: FILEDATE
Formato: "dd.mm.yy"
O tamanho da String deve ser 8.
FILETIME
Formato: " hh:mm.ss "
O tamanho da String deve ser 8.
FILESTAT
Formato: "rwxsd"
(r:read, w:write, x:execute,
s:show, d:delete)
O tamanho da String deve ser 5.
FILEINFO
Formato: "rwxsd nnnnnnnn
dd.mm.yy hh:mm:ss"
O tamanho da String deve ser 32.
INT para: FILESIZE
O tamanho de arquivo retornado
em Bytes.

Exemplo
Cdigo de programa Comentrio
N10 DEF INT ERROR ; Definio das variveis de
erro.
N20 STRING[32] RESULT ; Definio das variveis de
resultado.
N30 FILEINFO(ERROR,"/_N_MPF_DIR/_N_TESTFILE_MPF",RESULT) ; Nome de arquivo com
identificadores de domnio e de
arquivo e indicao do caminho.
N40 IF ERROR <>0 ; Avaliao de erro
N50 MSG("ERRO"<<ERROR<<"COM COMANDO FILEINFO")
N60 M0
N70 ENDIF
...

Por exemplo, o exemplo poderia retornar o seguinte resultado na varivel RESULT:


"77777 12345678 26.05.00 13:51:30"

Preparao do trabalho
158 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.23 Clculo de checksum atravs de um campo (CHECKSUM)

1.23 Clculo de checksum atravs de um campo (CHECKSUM)

Funo
Com o comando CHECKSUM a somatria de controle (checksum) pode ser calculada atravs
de um campo. Atravs da comparao destes checksums com o resultado de um clculo de
checksum anterior pode-se verificar se os dados do campo sofreram uma alterao.

Aplicao
Verificao se o contorno de entrada sofreu alterao durante o desbaste.

Sintaxe
DEF INT <erro>
DEF STRING[<tamanho de String>] <checksums>
DEF ... <campo>[<n>,<m>,<o>]
<erro>=CHECKSUM(<checksums>,"<campo>"[,<coluna inicial>,<coluna
final>])

Significado

CHECKSUM: Comando para calcular os checksums atravs de um campo


<erro>: Varivel para o retorno do valor do erro
Tipo. INT
Valor: 0 nenhum erro
1 Smbolo no encontrado
2 Nenhum campo
3 ndice 1 muito grande
4 ndice 2 muito grande
5 Tipo invlido de dado
10 Checksum excedido
<checksums>: Varivel de resultado para receber o resultado do clculo de
checksum (parmetro Call-By-Reference)
Tipo: STRING
Tamanho de String 16
necessrio: O checksum apresentado como
uma seqncia de caracteres de 16
nmeros hexadecimais. Mas no se
especifica nenhum caractere de
formato.
Exemplo: "A6FC3404E534047C"

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 159
Programao flexvel de NC
1.23 Clculo de checksum atravs de um campo (CHECKSUM)

<campo>: Nome do campo atravs do qual formado o checksum


(parmetro Call-By-Value)
Tipo: STRING
Tamanho de String 32
mx.:
Os campos permitidos so campos de 1 at 3 dimenses dos
tipos:
BOOL, CHAR, INT, REAL, STRING
Nota:
Os campos de dados de mquina no so permitidos.
<coluna inicial>: Nmero da coluna inicial do campo destinado para o clculo do
checksum (parmetro opcional)
<coluna final>: Nmero da coluna final do campo destinado para o clculo do
checksum (parmetro opcional)

Indicao
Os parmetros <coluna inicial> e <coluna final> so opcionais. Se no for
especificado nenhum ndice de coluna, ento o checksum ser formado sobre o campo
inteiro.
O resultado do checksum sempre nico. Em caso de alterao de um elemento de campo,
tambm resultar outra String de resultado.

Exemplo
Cdigo de programa Comentrio
N10 DEF INT ERROR ; Definio das variveis de
erro.
N20 DEF STRING[16] MY_CHECKSUM ; Definio das variveis de
resultado.
N30 DEF INT MY_VAR[4,4] ; Definio de campos.
N40 MY_VAR=...
N50 ERROR=CHECKSUM(MY_CHECKSUM,"MY_VAR",0,2)
...

Por exemplo, o exemplo poderia retornar o seguinte resultado na varivel MY_CHECKSUM:


"A6FC3404E534047C"

Preparao do trabalho
160 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.24 Arredondamento (ROUNDUP)

1.24 Arredondamento (ROUNDUP)

Funo
Com a funo "ROUNDUP" se pode arredondar os valores de entrada de tipo REAL
(nmeros fracionados com ponto decimal) para o prximo nmero inteiro maior.

Sintaxe
ROUNDUP(<valor>)

Significado

ROUNDUP: Comando para arredondar um valor de entrada


<valor>: Valor de entrada de tipo REAL

Indicao
Valores de entrada de tipo INTEGER (um nmero inteiro) so retornados sem alterao.

Exemplos
Exemplo 1: Diversos valores de entrada e seus resultados de arredondamento

Exemplo Resultado de arredondamento


ROUNDUP(3.1) 4.0
ROUNDUP(3.6) 4.0
ROUNDUP(-3.1) -3.0
ROUNDUP(-3.6) -3.0
ROUNDUP(3.0) 3.0
ROUNDUP(3) 3.0

Exemplo 2: ROUNDUP no programa NC

Cdigo de programa
N10 X=ROUNDUP(3.5) Y=ROUNDUP(R2+2)
N15 R2=ROUNDUP($AA_IM[Y])
N20 WHEN X=100 DO Y=ROUNDUP($AA_IM[X])
...

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 161
Programao flexvel de NC
1.25 Tcnica de subrotinas

1.25 Tcnica de subrotinas

1.25.1 Informaes gerais

1.25.1.1 Subrotina

Funo
A denominao "subrotina" uma herana do tempo em que se dividia os programas de
peas em programas principais e subrotinas. No caso, os programas principais eram os
programas de pea que eram selecionados no comando para execuo e depois era dada a
partida dos mesmos. As subrotinas eram os programas de pea que eram chamados a partir
do programa principal.
Esta diviso no existe mais na atual linguagem NC do SINUMERIK. Cada programa de
pea pode, em princpio, ser selecionado e iniciado como programa principal, ou ento ser
chamado como subrotina a partir de outro programa de pea.
Com isso, nos demais procedimentos, uma subrotina denominada como um programa de
pea que pode ser chamado a partir de outro programa de pea.

3URJUDPDSULQFLSDO

6XEURWLQD

Preparao do trabalho
162 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Aplicao
Como em todas as linguagens de programao de nvel mais alto, na linguagem NC as
subrotinas tambm so aplicadas para armazenar (comportar) programas fechados e
independentes, que utilizam partes de programa mltiplas vezes.
As subrotinas oferecem as seguintes vantagens:
Melhoram a clareza e leitura dos programas
Melhoram a qualidade atravs do reaproveitamento de partes de programa j testados
Oferecem a opo para aquisio de bibliotecas especficas de usinagem
Economizam espao na memria

1.25.1.2 Nomes de subrotina

Regras para denominao


Para a atribuio de nomes de subrotinas devem ser observadas as seguintes regras:
Os dois primeiros caracteres devem ser letras (A-Z, a - z).
Os caracteres seguintes podem ser utilizados em qualquer combinao de letras,
nmeros (0-9) e sublinhados ("_").
permitido o uso de at 31 caracteres.

Indicao
Na linguagem NC do SINUMERIK no feita nenhuma distino entre letras maisculas
e letras minsculas.

Ampliaes do nome do programa


O nome de programa atribudo na criao do programa ampliado internamente no
comando com um prefixo e um sufixo:
Prefixo: _N_
Sufixo:
- Programas principais: _MPF
- Subrotinas: _SPF

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 163
Programao flexvel de NC
1.25 Tcnica de subrotinas

Utilizao do nome de programa


Para a utilizao do nome de programa, por exemplo em uma chamada de subrotina, so
possveis todas as combinaes de prefixo, nome de programa e sufixo.
Exemplo:
A subrotina com o nome de programa "SUB_PROG" pode ser iniciada atravs das seguintes
chamadas:
1. SUB_PROG
2. _N_SUB_PROG
3. SUB_PROG_SPF
4. _N_SUB_PROG_SPF

Indicao
Igualdade de nome de programas principais e subrotinas
Programas principais (.MPF) e subrotinas (.SPF) que existirem com o mesmo nome de
programa, devem receber o sufixo correspondente quando os nomes de programas forem
utilizados no programa de pea, para identificar de forma clara cada programa.

1.25.1.3 Aninhamento de subrotinas


Um programa principal pode chamar subrotinas, que por sua vez podem chamar outras
subrotinas. Dessa forma as execues dos programas esto agrupadas uma dentro da
outra. Por isso que cada programa processado em um nvel de programa prprio.

Nvel de agrupamento
Atualmente a linguagem NC coloca 16 nveis de programa disposio. O programa
principal sempre processado no nvel de programa mais alto, o nvel 0. Uma subrotina
sempre processada no prximo nvel de programa mais baixo a partir da chamada. Assim o
nvel de programa 1 o primeiro nvel de subrotina.
Diviso dos nveis de programa:
Nvel de programa 0: Nvel de programa principal
Nvel de programa 1-15: Nvel de subrotina 1-15

1YHLVGHSURJUDPDP[

3URJU
SULQF 6XE
URWLQD 6XE
URWLQD
... 6XE
... URWLQD

Preparao do trabalho
164 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Rotinas de interrupo (ASUP)


Se uma subrotina chamada durante uma rotina de interrupo, esta no ser processada
no atual nvel de programa (n) ativo no canal, mas no prximo nvel de programa mais baixo
(n+1). Para que isto tambm seja possvel no nvel de programa mais baixo, esto
disponveis 2 nveis de programa extras (16 e 17) quando relacionados com rotinas de
interrupo.
Se forem necessrios mais que 2 nveis de programa, isto deve ser considerado de modo
explcito na estruturao do programa de pea executado no canal. Isto significa que
somente pode ser utilizado um nmero de nveis de programa que ainda proporcione a
quantidade de nveis de programa suficiente para a execuo da interrupo.
Por exemplo, se a execuo da interrupo precisar de 4 nveis de programa, o programa de
pea deve ser estruturado de modo que ele ocupe no mximo at o nvel de programa 13.
Quando ocorre uma interrupo, estes 4 nveis de programa (14 at 17) necessrios estaro
disponveis.

Ciclos da Siemens
Os ciclos da Siemens requerem 3 nveis de programa. Por isso que a chamada de um ciclo
da Siemens deve ocorrer no mximo at:
Na execuo do programa de pea: Nvel de programa 12
Na rotina de interrupo: Nvel de programa 14

1.25.1.4 Caminho de localizao


Na chamada de uma subrotina sem indicao do caminho o comando procura na seguinte
ordem de diretrios indicada:

Seqncia Diretrio Descrio


1. Atual diretrio Diretrio do programa de chamada
2. /_N_SPF_DIR / Diretrio de subrotinas global
3. /_N_CUS_DIR / Ciclos do usurio
4. /_N_CMA_DIR / Ciclos do fabricante
5. /_N_CST_DIR / Ciclos padronizados

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 165
Programao flexvel de NC
1.25 Tcnica de subrotinas

1.25.1.5 Parmetros formais e parmetros atuais


Os parmetros formais e parmetros atuais esto relacionados com a definio e a chamada
de subrotinas com transferncia de parmetros.

Parmetro formal
Durante a definio de uma subrotina os parmetros que devem ser transferidos subrotina,
os chamados parmetros formais, devem ser definidos com tipo e nome de parmetro.
Com isso os parmetros formais definem a interface da subrotina.
Exemplo:

Cdigo de programa Comentrio


PROC CONTORNO (REAL X, REAL Y) ; Parmetro formal: X e Y ambos do tipo REAL
N20 X1=X Y1=Y ; Deslocamento do eixo X1 at a posio X e do
eixo Y1 at a posio Y
...
N100 RET

Parmetro atual
Durante a chamada de uma subrotina devem ser transferidos subrotina valores absolutos
ou variveis, chamados de parmetros atuais.
Com isso os parmetros atuais alimentam os valores atuais durante a chamada da interface
da subrotina.
Exemplo:

Cdigo de programa Comentrio


N10 DEF REAL LARGURA ; Definio de variveis
N20 LARGURA=20.0 ; Atribuio de variveis
N30 CONTORNO(5.5, LARGURA) ; Chamada de subrotina com parmetros atuais:
5.5 e LARGURA
...
N100 M30

Preparao do trabalho
166 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

1.25.1.6 Transferncia de parmetros

Definio de uma subrotina com transferncia de parmetros


A definio de uma subrotina com transferncia de parmetros realizada com a palavra-
chave PROC e uma listagem completa de todos os parmetros esperados pela subrotina.

Transferncia incompleta de parmetros


Na chamada da subrotina nem sempre precisam ser transferidos de modo explcito todos os
parmetros definidos na interface da subrotina. Quando um parmetro desconsiderado,
para este parmetro transferido o valor padro "0".
Entretanto, para uma identificao nica da ordem dos parmetros sempre devem ser
indicadas as vrgulas como caracteres de separao dos parmetros. Uma exceo o
ltimo parmetro. Se este no for considerado na chamada, tambm pode ser descartada a
ltima vrgula.
Exemplo:
Subrotina:

Cdigo de programa Comentrio


PROC SUB_PROG (REAL X, REAL Y, REAL Z) ; Parmetro formal: X, Y e Z
...
N100 RET

Programa principal:

Cdigo de programa Comentrio


PROC MAIN_PROG
...
N30 SUB_PROG(1.0,2.0,3.0) ; Chamada de subrotina com transferncia de
parmetros completa:
X=1.0, Y=2.0, Z=3.0

N100 M30

Exemplos para a chamada de subrotina no N30 com transferncia de parmetros


incompleta:

N30 SUB_PROG( ,2.0,3.0) ; X=0.0, Y=2.0, Z=3.0


N30 SUB_PROG(1.0, ,3.0) ; X=1.0, Y=0.0, Z=3.0
N30 SUB_PROG(1.0,2.0) ; X=1.0, Y=2.0, Z=0.0
N30 SUB_PROG( , ,3.0) ; X=0.0, Y=0.0, Z=3.0
N30 SUB_PROG( , , ) ; X=0.0, Y=0.0, Z=0.0

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 167
Programao flexvel de NC
1.25 Tcnica de subrotinas

CUIDADO
Transferncia de parmetros Call-by-Reference
Os parmetros que so transferidos atravs de Call-by-Reference, no podem ser
desconsiderados na chamada de subrotina.

CUIDADO
Tipo de dados AXIS
Os parmetros do tipo de dados AXIS no podem ser desconsiderados na chamada de
subrotina.

Verificao dos parmetros de transferncia


Atravs da varivel de sistema $P_SUBPAR [n] mit n=1,2,... pode ser verificado na
subrotina se um parmetro foi transferido de modo explcito ou se ele foi desconsiderado. O
ndice n refere-se ordem dos parmetros formais. O ndice n=1 refere-se ao 1parmetro
formal, o ndice n=2 ao 2parmetro formal, e assim por diante.
O seguinte segmento de programa mostra no exemplo do 1parmetro formal, como que
uma verificao pode ser realizada:

Programao Comentrio
PROC SUB_PROG (REAL X, REAL Y, REAL Z) ; Parmetro formal: X, Y e Z
N20 IF $P_SUBPAR[1]==TRUE ; Verificao do 1 parmetro formal X.
... ; Estas aes so executadas quando o
parmetro formal X foi transferido
explicitamente.
N40 ELSE
... ; Estas aes so executadas quando o
parmetro formal X no foi
transferido.
N60 ENDIF
... ; Aes gerais
N100 RET

Preparao do trabalho
168 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

1.25.2 Definio de uma subrotina

1.25.2.1 Subrotina sem transferncia de parmetros

Funo
Para a definio de subrotinas sem transferncia de parmetros pode ser descartada a linha
de definio no incio do programa.

Sintaxe
[PROC <nome de programa>]
...

Significado

PROC: Instruo de definio no incio de um programa


<nome de programa>: Nome do programa

Exemplo
Exemplo 1: Subrotina com instruo PROC

Cdigo de programa Comentrio


PROC SUB_PROG ; Linha de definio
N10 G01 G90 G64 F1000
N20 X10 Y20
...
N100 RET ; Salto de retorno da subrotina

Exemplo 2: Subrotina sem instruo PROC

Cdigo de programa Comentrio


N10 G01 G90 G64 F1000
N20 X10 Y20
...
N100 RET ; Salto de retorno da subrotina

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 169
Programao flexvel de NC
1.25 Tcnica de subrotinas

1.25.2.2 Subrotina com transferncia de parmetros Call-by-Value (PROC)

Funo
A definio de uma subrotina com transferncia de parmetros Call-By-Value realizada
com a palavra-chave PROC seguida de nomes de programa e uma listagem completa de
todos os parmetros esperados pela subrotina, com indicao de tipo e nome. A instruo de
definio deve estar na primeira linha do programa.
A transferncia de parmetros Call-by-Value no tem nenhuma reao sobre o programa de
chamada. O programa de chamada transfere subrotina apenas os valores dos parmetros
atuais.

3URJUDPDSULQFLSDO

$WULEXLRGH
YDORUHV
&2035,0(172 
6XEURWLQD
/$5*85$ 
&2035,0(172/$5*85$

1RYDDWULEXLR
GHYDORUHV
&2035,0(172 
/$5*85$ 
9DORUHVQRYRV
YOLGRV

9DORUHVDQWLJRV
YOLGRV

Indicao
Podem ser transferidos no mximo 127 parmetros.

Sintaxe
PROC <nome de programa> (<tipo de parmetro> <nome de parmetro>,
...)

Significado

PROC: Instruo de definio no incio de um programa


<nome de programa>: Nome do programa
<tipo de parmetro>: Tipo de dados do parmetro (p.ex. REAL, INT, BOOL)
<nome de parmetro>: Nome do parmetro

ATENO
O nome de programa informado aps a palavra-chave PROC deve coincidir com o nome de
programa dado na interface de operao.

Preparao do trabalho
170 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Exemplo
Definio de uma subrotina com 2 parmetros do tipo REAL:

Cdigo de programa Comentrio


PROC SUB_PROG (REAL COMPRIMENTO, REAL LARGURA) ; Parmetro 1: Tipo: REAL, nome:
COMPRIMENTO
Parmetro 2: Tipo: REAL, nome:
LARGURA
...
N100 RET ; Salto de retorno da subrotina

1.25.2.3 Subrotina com transferncia de parmetros Call-by-Reference (PROC, VAR)

Funo
A definio de uma subrotina com transferncia de parmetros Call-By-Reference
realizada com a palavra-chave PROC seguida de nomes de programa e uma listagem
completa de todos os parmetros esperados pela subrotina, com indicao VARde tipo e
nome. A instruo de definio deve estar na primeira linha do programa.
Na transferncia de parmetros Call-By-Reference tambm podem ser transferidas
referncias para os campos.
A transferncia de parmetros Call-by-Reference tem reaes sobre o programa de
chamada. O programa de chamada transfere subrotina uma referncia sobre o parmetro
atual, permitindo assim subrotina um acesso direto varivel correspondente.

3URJUDPDSULQFLSDO

$WULEXLRGH
YDORUHV
&2035,0(172 
/$5*85$  6XEURWLQD
&2035,0(172/$5*85$

1RYDDWULEXLR
GHYDORUHV
&2035,0(172 
/$5*85$ 
9DORUHVQRYRV
YOLGRV

9DORUHVQRYRV
&2035,0(172/$5*85$
YOLGRV

Indicao
Podem ser transferidos no mximo 127 parmetros.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 171
Programao flexvel de NC
1.25 Tcnica de subrotinas

Indicao
Uma transferncia de parmetros Call-by-Reference somente necessria se a varivel de
transferncia for definida no programa de chamada (LUD). As variveis globais de canal ou
as variveis globais do NC no precisam ser transferidas, pois estas podem ser acessadas
diretamente pela subrotina.

Sintaxe
PROC <nome de programa> (VAR <tipo de parmetro> <npme de parmetro>,
...)
PROC <nome de programa> (VAR <tipo de campo> <nome de campo>
[<m>,<n>,<o>], ...)

Significado

PROC: Instruo de definio no incio de um programa


VAR: Palavra-chave para a transferncia de parmetros por
referncia
<nome de programa>: Nome do programa
<tipo de parmetro>: Tipo de dados do parmetro (p.ex. REAL, INT, BOOL)
<nome de parmetro>: Nome do parmetro
<tipo de campo>: Tipo de dados dos elementos de campo (p.ex. REAL, INT,
BOOL)
<nome de campo>: Nome do campo
[<m>,<n>,<o>]: Tamanho de campo
Atualmente, no mximo so possveis campos de 3
dimenses:
<m>: Tamanho de campo para 1 dimenso
<n>: Tamanho de campo para 2 dimenso
<o>: Tamanho de campo para 3 dimenso

ATENO
O nome de programa informado aps a palavra-chave PROC deve coincidir com o nome de
programa dado na interface de operao.

Indicao
Com campos de tamanho indefinido como parmetros formais se pode processar subrotinas
de campos de tamanho varivel. Para isso no se especifica, por exemplo, o tamanho da 1
dimenso no momento da definio de um campo de duas dimenses como parmetro
formal. Porm, a vrgula precisa ser escrita.
Exemplo: PROC <nome de programa> (VAR REAL CAMPO[ ,5])

Preparao do trabalho
172 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Exemplo
Definio de uma subrotina com 2 parmetros como referncia ao tipo REAL:

Cdigo de programa Comentrio


PROC SUB_PROG(VAR REAL COMPRIMENTO, VAR REAL LARGURA) ; Parmetro 1: Referncia ao tipo: REAL,
nome: COMPRIMENTO
Parmetro 2: Referncia ao tipo: REAL,
nome: LARGURA
...
N100 RET

1.25.2.4 Salvar funes G modais (SAVE)

Funo
O atributo SAVE faz com que todas funes G modais ativas antes da chamada da subrotina
sejam salvas e novamente ativadas aps o fim da subrotina.

CUIDADO
Interrupo do modo de controle da trajetria
Se com o modo de controle da trajetria ativo uma subrotina for chamada com o atributo
SAVE, o modo de controle da trajetria interrompido no fim da subrotina (salto de retorno).

Sintaxe
PROC <nome da subrotina> SAVE

Significado

SAVE: Salvamento das funes G antes da chamada da subrotina e seu


restabelecimento aps o fim da subrotina

Exemplo
Na subrotina CONTORNO atua a funo G modal G91 (dimenso incremental). No programa
principal atua a funo G modal G90 (dimenso absoluta). Atravs da definio de subrotina
com o SAVE o G90 torna-se novamente ativo no programa principal aps o fim da subrotina.
Definio de subrotina:

Cdigo de programa Comentrio


PROC CONTORNO (REAL VALOR1) SAVE ; Definio de subrotina com parmetro SAVE
N10 G91 ... ; Funo G modal G91: Dimenso incremental
N100 M17 ; Fim de subrotina

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 173
Programao flexvel de NC
1.25 Tcnica de subrotinas

Programa principal:

Cdigo de programa Comentrio


N10 G0 X... Y... G90 ; Funo G modal G90: Dimenso absoluta
N20 ...

...

N50 CONTORNO (12.4) ; Chamada de subrotina


N60 X... Y... ; Funo G modal G90 reativada atravs do SAVE

Condies gerais
Frames
A relao dos Frames em relao s subrotinas com o atributo SAVE depende do tipo do
Frame e pode ser ajustada atravs de dados de mquina.

Literatura
Manual de funes bsicas, eixos, sistemas de coordenadas, Frames (K2),
captulo: "Salto de retorno de subrotinas com SAVE"

1.25.2.5 Supresso de processamento bloco a bloco (SBLOF, SBLON)

Funo
Supresso de bloco a bloco para o programa inteiro
Os programas identificados com SBLOF so executados inteiros, mesmo com o
processamento bloco a bloco ativo, ou seja, o processamento bloco a bloco suprimido em
todo o programa.
SBLOF est na linha PROC e vale at o fim ou cancelamento da subrotina. Com o comando
de salto de retorno se decide se a parada deve ser feita no fim da subrotina ou no:

Salto de retorno com M17: Parada no fim da subrotina


Salto de retorno com RET: Nenhuma parada no fim da subrotina
Supresso de bloco a bloco dentro do programa
O SBLOF deve constar isolado em um bloco. A partir deste bloco se desativa o bloco a bloco
at:
o prximo SBLON ou
ou
o fim do nvel ativo da subrotina

Preparao do trabalho
174 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Sintaxe
Supresso de bloco a bloco para o programa inteiro:
PROC ... SBLOF
Supresso de bloco a bloco dentro do programa:

SBLOF
...
SBLON

Significado

PROC: Primeira instruo de um programa


SBLOF: Comando para desativao do processamento bloco a bloco
O SBLOF pode estar em um bloco PROC ou isolado em um bloco.
SBLON: Comando para ativar o processamento bloco a bloco
O SBLON deve estar em um bloco prprio.

Condies gerais
Supresso de bloco a bloco e exibio de bloco
A atual exibio de bloco pode ser ocultada em ciclos/subrotinas com DISPLOF. Se o
DISPLOF for programado junto com o SBLOF, ento ser exibida a chamada do ciclo/
subrotina na parada do bloco a bloco durante o ciclo/subrotina.
Supresso de bloco a bloco na ASUP de sistema na ASUP de usurio
Se a parada de bloco a bloco na ASUP de sistema ou de usurio for suprimida atravs
das configuraes no dado de mquina MD10702$MN_IGNORE_SINGLEBLOCK_MASK
(Bit0=1 e Bit1=1), ento a parada de bloco a bloco pode ser ativada novamente atravs
da programao do SBLON na ASUP.
Se a parada de bloco a bloco for suprimida na ASUP de usurio atravs da configurao
no dado de mquina MD20117$MC_IGNORE_SINGLEBLOCK_ASUP, ento a parada
de bloco a bloco no pode ser ativada novamente atravs da programao de SBLON na
ASUP.
Particularidades da supresso de bloco a bloco nos diversos tipos de processamento
bloco a bloco
Com o processamento bloco a bloco SBL2 (parada aps cada bloco de programa de
pea) ativo no se executa a parada no bloco do SBLON se no
MD10702$MN_IGNORE_SINGLEBLOCK_MASK (evitar parada de bloco a bloco) o
Bit12 estiver ajustado em "1".
Com o processamento bloco a bloco SBL3 (parada aps cada bloco de programa de pea
e tambm no ciclo) se suprimir o comando SBLOF.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 175
Programao flexvel de NC
1.25 Tcnica de subrotinas

Exemplos
Exemplo 1: Supresso de bloco a bloco dentro de um programa

Cdigo de programa Comentrio


N10 G1 X100 F1000
N20 SBLOF ; Desativar bloco a bloco
N30 Y20
N40 M100
N50 R10=90
N60 SBLON ; Ativar novamente bloco a bloco
N70 M110
N80 ...

A rea entre N20 e N60 processada como um passo em modo bloco a bloco.

Exemplo 2: O ciclo deve atuar como um comando para o usurio


Programa principal:

Cdigo de programa
N10 G1 X10 G90 F200
N20 X-4 Y6
N30 CYCLE1
N40 G1 X0
N50 M30

Ciclo CYCLE1:

Cdigo de programa Comentrio


N100 PROC CYCLE1 DISPLOF SBLOF ;Suprimir bloco a bloco
N110 R10=3*SIN(R20)+5
N120 IF (R11 <= 0)
N130 SETAL(61000)
N140 ENDIF
N150 G1 G91 Z=R10 F=R11
N160 M17

O ciclo CYCLE1 executado com processamento bloco a bloco ativo, isto , deve-se
pressionar uma vez a tecla Start para execuo do CYCLE1.

Preparao do trabalho
176 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Exemplo 3:
Uma ASUP iniciada pelo PLC para a ativao do deslocamento modificado do ponto zero e
para correes da ferramenta no dever estar visvel.

Cdigo de programa
N100 PROC NV SBLOF DISPLOF
N110 CASE $P_UIFRNUM OF 0 GOTOF _G500
1 GOTOF _G54
2 GOTOF _G55
3 GOTOF _G56
4 GOTOF _G57
DEFAULT GOTOF END
N120 _G54: G54 D=$P_TOOL T=$P_TOOLNO
N130 RET
N140 _G54: G55 D=$P_TOOL T=$P_TOOLNO
N150 RET
N160 _G56: G56 D=$P_TOOL T=$P_TOOLNO
N170 RET
N180 _G57: G57 D=$P_TOOL T=$P_TOOLNO
N190 RET
N200 END: D=$P_TOOL T=$P_TOOLNO
N210 RET

Exemplo 4: Com MD10702 Bit 12 = 1 so se executa a parada


Situao inicial:
O processamento bloco a bloco est ativo.
MD10702$MN_IGNORE_SINGLEBLOCK_MASK Bit12=1
Programa principal:

Cdigo de programa Comentrio


N10 G0 X0 ; Parar nesta linha do programa de pea.
N20 X10 ; Parar nesta linha do programa de pea.
N30 CYCLE ; Bloco de deslocamento gerado pelo ciclo.
N50 G90 X20 ; Parar nesta linha do programa de pea.
M30

Ciclo CYCLE:

Cdigo de programa Comentrio


PROC CYCLE SBLOF ; Suprimir parada do bloco a bloco
N100 R0 = 1
N110 SBLON ; Por causa do MD10702 Bit12=1 no se executa a parada
nesta linha do programa de pea.
N120 X1 ; Se executa a parada nesta linha do programa de pea.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 177
Programao flexvel de NC
1.25 Tcnica de subrotinas

Cdigo de programa Comentrio


N140 SBLOF
N150 R0 = 2
RET

Exemplo 5: Supresso de bloco a bloco com aninhamento de programas


Situao inicial:
O processamento bloco a bloco est ativo.
Aninhamento de programas:

Cdigo de programa Comentrio


N10 X0 F1000 ; Neste bloco se executa a parada.
N20 UP1(0)
PROC UP1(INT _NR) SBLOF ; Suprimir parada do bloco a bloco.
N100 X10
N110 UP2(0)
PROC UP2(INT _NR)
N200 X20
N210 SBLON ; Ativar parada do bloco a bloco.
N220 X22 ; Neste bloco se executa a parada.
N230 UP3(0)
PROC UP3(INT _NR)
N300 SBLOF ; Suprimir parada do bloco a bloco.
N305 X30
N310 SBLON ; Ativar parada do bloco a bloco.
N320 X32 ; Neste bloco se executa a parada.
N330 SBLOF ; Suprimir parada do bloco a bloco.
N340 X34
N350 M17 ; SBLOF est ativo.
N240 X24 ; Neste bloco se executa a parada. SBLON
est ativo.
N250 M17 ; Neste bloco se executa a parada. SBLON
est ativo.
N120 X12
N130 M17 ; Neste bloco de salto de retorno se
executa a parada. O SBLOF da instruo
PROC est ativo.
N30 X0 ; Neste bloco se executa a parada.
N40 M30 ; Neste bloco se executa a parada.

Preparao do trabalho
178 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Outras informaes
Bloqueio de bloco a bloco para subrotinas assncronas
Para executar uma ASUP em um passo no modo bloco a bloco, na ASUP deve ser
programada uma instruo PROC com SBLOF. Isto tambm se aplica para a funo "ASUP
editvel de sistema" (MD11610 $MN_ASUP_EDITABLE).
Exemplo para uma ASUP editvel de sistema:

Cdigo de programa Comentrio


N10 PROC ASUP1 SBLOF DISPLOF
N20 IF $AC_ASUP=='H200'
N30 RET ; Sem REPOS na mudana de modo de operao.
N40 ELSE
N50 REPOSA ; REPOS nos demais casos.
N60 ENDIF

Controles de programa em bloco a bloco


No processamento bloco a bloco o usurio pode executar o programa de pea bloco a bloco.
Existem os seguintes tipos de ajuste:
SBL1: Bloco a bloco IPO com parada aps cada bloco de funo da mquina.
SBL2: Bloco a bloco com parada aps cada bloco.
SBL3: Parada no ciclo (com a seleo do SBL3 se suprime o comando SBLOF).
Supresso de bloco a bloco com aninhamento de programas
Se em uma subrotina foi programado SBLOF na instruo PROC, ento a parada feita com
M17 no salto de retorno da subrotina. Com isso evita-se que seja executado o prximo bloco
do programa de chamada. Se em uma subrotina com SBLOF for ativada uma supresso de
bloco a bloco sem SBLOF na instruo PROC, ento a parada somente ser realizada aps o
prximo bloco de funo da mquina do programa chamado. Se isto no for desejado, ento
na subrotina se deve programar novamente o SBLON, ainda antes do retorno (M17). A parada
no ser realizada no caso de um salto de retorno com RET para um programa de nvel
superior.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 179
Programao flexvel de NC
1.25 Tcnica de subrotinas

1.25.2.6 Supresso da atual exibio de bloco (DISPLOF, DISPLON, ACTBLOCNO)

Funo
Como padro, na exibio de bloco se exibe o atual bloco de programa. A exibio do atual
bloco pode ser ocultada nos ciclos e nas subrotinas com o comando DISPLOF. Ao invs do
atual bloco se exibe a chamada do ciclo ou da subrotina. Com o comando DISPLON cancela-
se novamente a supresso da exibio de bloco.
O DISPLOF e o DISPLON programado na linha de programa com a instruo PROC e tem
efeito sobre toda a subrotina e de forma implcita para todas as subrotinas chamadas por
esta subrotina, que no tiverem o comando DISPLON ou DISPLOF. Este comportamente
tambm vlido para ASUPs.

Sintaxe
PROC DISPLOF
PROC DISPLOF ACTBLOCNO
PROC DISPLON

Significado

DISPLOF: Comando para ocultar a atual exibio de bloco.


Posicionam No fim da linha de programa com a instruo PROC
ento:
Efeito: At o salto de retorno da subrotina ou fim de programa.
Nota:
Se mais subrotinas forem chamadas a partir da subrotina com o
comando DISPLOF, ento nesta tambm se oculta a atual exibio de
bloco, isto se nesta no for programado explicitamente o DISPLON.
DISPLON: Comando para cancelar a supresso da atual exibio de bloco
Posicionam No fim da linha de programa com a instruo PROC
ento:
Efeito: At o salto de retorno da subrotina ou fim de programa.
Nota:
Se mais subrotinas forem chamadas a partir da subrotina com o
comando DISPLON, ento nesta tambm se exibe o atual bloco de
programa, isto se neste no for programado explicitamente o DISPLOF.
ACTBLOCNO: O DISPLOF junto com o atributo ACTBLOCNO faz com que, em caso de
um alarme, seja retornado o nmero do atual bloco em que ocorreu o
alarme. Isto tambm se aplica se em um nvel de programa mais baixo
apenas estiver programado o DISPLOF.
Em contrapartida, com DISPLOF sem ACTBLOCNO, o nmero do bloco
da chamada do ciclo ou da subrotina no exibido no ltimo nvel de
programa marcado com DISPLOF.

Preparao do trabalho
180 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Exemplos
Exemplo 1: Ocultar a atual exibio de bloco no ciclo

Cdigo de programa Comentrio


PROC CYCLE(AXIS TOMOV, REAL POSITION) SAVE DISPLOF ; Ocultar atual exibio de bloco. O
invs disso, deve ser exibida a
chamada do ciclo, p. ex.:
CYCLE(X,100.0)
DEF REAL DIFF ; Contedo do ciclo
G01 ...
...
RET ; Salto de retorno da subrotina. Na
exibio de bloco se exibe o bloco
seguinte chamada do ciclo.

Exemplo 2: Exibio de bloco na emisso de alarme


Subrotina SUBPROG1 (com ACTBLOCNO):

Cdigo de programa Comentrio


PROC SUBPROG1 DISPLOF ACTBLOCNO
N8000 R10 = R33 + R44
...
N9040 R10 = 66 X100 ; Disparar alarme 12080
...
N10000 M17

Subrotina SUBPROG2 (sem ACTBLOCNO):

Cdigo de programa Comentrio


PROC SUBPROG2 DISPLOF
N5000 R10 = R33 + R44
...
N6040 R10 = 66 X100 ; Disparar alarme 12080
...
N7000 M17

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 181
Programao flexvel de NC
1.25 Tcnica de subrotinas

Programa principal:

Cdigo de programa Comentrio


N1000 G0 X0 Y0 Z0
N1010 ...
...
N2050 SUBPROG1 ; Emisso de alarme = "12080 Canal K1 Bloco N9040 Erro
de sintaxe no texto R10="
N2060 ...
N2350 SUBPROG2 ; Emisso de alarme = "12080 Canal K1 Bloco N2350 Erro
de sintaxe no texto R10="
...
N3000 M30

Exemplo 3: Cancelamento da supresso da atual exibio de bloco


Subrotina SUB1 com supresso:

Cdigo de programa Comentrio


PROC SUB1 DISPLOF ; Suprime a atual exibio de bloco na subrotina SUB1.
Ao invs disso, o bloco deve ser exibido com a
chamada da SUB1.
...
N300 SUB2 ; Chama a subrotina SUB2.
...
N500 M17

Subrotina SUB1 sem supresso:

Cdigo de programa Comentrio


PROC SUB2 DISPLON ; Cancela a supresso da atual exibio de bloco na
subrotina SUB2.
...
N200 M17 ; Salto de retorno para a subrotina SUB1. Na SUB1
novamente sumprimida a atual exibio de bloco.

Preparao do trabalho
182 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Exemplo 4: Comportamento de exibio em diferentes combinaes do DISPLON/DISPLOF

1YHOGRSURJUDPD

         

+3
VHP 83
352& 83
352& 83
',63/2) VHP 83
352&
352& 352& $683
',63/21 83
',63/2) 352& 83
352&
',63/2) 352& 83
',63/2) 83
',63/21 VHP
352& 352&
',63/2)






+33URJUDPDSULQFLSDO

836XEURWLQD
$6836XEURWLQDDVVQFURQD URWLQDGHLQWHUUXSR

Na atual exibio de bloco so mostradas as linhas de programa de pea do nvel de programa 0.


Na atual exibio de bloco so mostradas as linhas de programa de pea do nvel de programa 3.
Na atual exibio de bloco so mostradas as linhas de programa de pea do nvel de programa 3.
Na atual exibio de bloco so mostradas as linhas de programa de pea do nvel de programa 7/8.

1.25.2.7 Identificar subrotinas com preparao (PREPRO)

Funo
Com a palavra-chave PREPRO todos os arquivos podem ser identificados no fim da linha da
instruo PROC durante a inicializao.

Indicao
Este tipo de preparao de programa depende do ajuste do dado de mquina
correspondente. Observar as informaes do fabricante da mquina.
Literatura:
Manual de funes especiais; Pr-processamento (V2)

Sintaxe
PROC PREPRO

Significado

PREPRO: Palavra-chave para identificao de todos arquivos preparados na


inicializao, os programas NC armazenados nos diretrios dos ciclos

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 183
Programao flexvel de NC
1.25 Tcnica de subrotinas

Carregar subrotinas com preparao e chamada de subrotina


Tanto as subrotinas preparadas com parmetros na inicializao como na chamada de
subrotina os diretrios dos ciclos so tratados na mesma ordem:
1. _N_CUS_DIR ciclos de usurio
2. _N_CMA_DIR ciclos do fabricante
3. _N_CST_DIR ciclos padro
No caso de programas NC de mesmo nome e diferente formao, ativa-se a primeira
instruo PROC encontrada e a outra instruo PROC ser saltada sem mensagem de alarme.

1.25.2.8 Salto de retorno para a subrotina M17

Funo
No fim de uma subrotina existe um comando de salto de retorno M17 (ou o comando de fim
de programa de pea M30). Ele executa o salto de retorno para o programa de chamada no
bloco de programa de pea aps a chamada da subrotina.

Indicao
O M17 e o M30 so tratados com o mesmo valor na linguagem NC.

Sintaxe
PROC <nome de programa>
...
M17/M30

Condies gerais
Efeito do salto de retorno para subrotina no modo de controle da trajetria
Se o M17 (ou o M30) estiver sozinho no bloco de programa de pea, ento um modo de
controle da trajetria que estiver ativo no canal ser interrompido.
Para evitar que o modo de controle da trajetria seja interrompido, o M17 (ou o M30) deve ser
escrito no ltimo bloco de deslocamento. Adicionalmente, o seguinte dado de mquina deve
ser ajustado para "0":
MD20800 $MC_SPF_END_TO_VDI = 0 (sem sada de M30/M17 para a interface NC/PLC)

Preparao do trabalho
184 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Exemplo
1. Subrotina com M17 em um bloco prprio

Cdigo de programa Comentrio


N10 G64 F2000 G91 X10 Y10
N20 X10 Z10
N30 M17 ; Salto de retorno com interrupo do modo de
controle da trajetria.

2. Subrotina com M17 no ltimo bloco de deslocamento

Cdigo de programa Comentrio


N10 G64 F2000 G91 X10 Y10
N20 X10 Z10 M17 ; Salto de retorno sem interrupo do modo de
controle da trajetria.

1.25.2.9 Salto de retorno para subrotina RET

Funo
Como substituto para o comando de salto de retorno M17 tambm pode ser utilizado o
comando RET. O RET deve ser programado em um bloco de programa de pea prprio.
Como o M17 o RET executa o salto de retorno para o programa de chamada no bloco de
programa de pea aps a chamada da subrotina.

Indicao
Atravs da programao de parmetros possvel alterar o comportamento do salto de
retorno do RET (veja "Salto de retorno parametrizvel da subrotina (RET ...) [Pgina 186]").

Aplicao
A instruo RET deve ser utilizada quando um modo de controle da trajetria G64
(G641...G645) no deve ser interrompido atravs do salto de retorno.

Pr-requisito
O comando RET somente pode ser utilizado em subrotinas que no foram definidas com o
atributo SAVE.

Sintaxe
PROC <nome de programa>
...
RET

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 185
Programao flexvel de NC
1.25 Tcnica de subrotinas

Exemplo
Programa principal:

Cdigo de programa Comentrio


PROC MAIN_PROGRAM ; Incio do programa
...

N50 SUB_PROG ; Chamada de subrotina: SUB_PROG


N60 ...

...

N100 M30 ; Fim do programa

Subrotina:

Cdigo de programa Comentrio


PROC SUB_PROG

...

N100 RET ; O salto de retorno realizado no bloco N60 no programa


principal.

1.25.2.10 Salto de retorno parametrizvel da subrotina (RET ...)

Funo
Geralmente, a partir de uma subrotina com prprio fim de subrotina RET ou M17 se salta
retornando ao programa de onde foi realizada a chamada da subrotina, e a usinagem
continuada com a linha aps a chamada da subrotina.
Tambm existem casos de aplicaes onde a execuo do programa deve continuar em
outro ponto, p.ex.:
Continuao da execuo do programa aps a chamada do ciclo de desbaste em modo
de dialeto ISO (aps a descrio do contorno).
Salto de retorno ao programa principal a partir de qualquer nvel da subrotina (tambm
aps a ASUP) para tratamento de erros.
Salto de retorno atravs de vrios nveis de programa para aplicaes especiais em ciclos
de compilao e em modo de dialeto ISO.
Em tais casos o comando RET programado junto com os "Parmetros de salto de retorno".

Sintaxe
RET("<bloco de destino>")
RET("<bloco de destino>",<bloco aps bloco de destino>)
RET("<bloco de destino>",<bloco aps bloco de
destino>,<nmero de nveis de salto de retorno>)
RET("<bloco de destino>", ,<nmero de nveis de salto de retorno>)

Preparao do trabalho
186 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

RET("<bloco de destino>",<bloco aps bloco de


destino>,<nmero de nveis de salto de retorno>),
<salto de retorno ao incio do programa>)
RET( , ,<nmero de nveis de salto de retorno>,?<salto de
retorno ao incio do programa>)

Significado

RET: Fim de subrotina (utilizao ao invs do M17)


<bloco de destino>: Parmetro de salto de retorno 1
Nomeia como destino de salto o bloco em que se deve
continuar a execuo do programa.
Se o parmetro de salto de retorno 3 no for programado,
ento o destino do salto se encontra no programa de
onde a atual subrotina foi chamada.
As possveis indicaes so:
"<nmero de Nmero do bloco de destino
bloco>"
"<marcador de Marcador de salto que deve ser
salto>" colocado no bloco de destino.
"<seqncia de Seqncia de caracteres que deve
caracteres>" ser conhecida no programa (p. ex.
nome do programa ou nome da
varivel).
Para a programao da seqncia
de caracteres no bloco de destino
so aplicadas as seguintes regras:
Espao vazio no fim (em
contrapartida ao marcador de
salto, que identificado com um
":" no final).
Antes da seqncia de
caracteres somente pode ser
colocado um nmero de bloco e/
ou um marcador de salto,
nenhum comando de programa.
<bloco aps bloco de Parmetro de salto de retorno 2
destino>: Refere-se ao parmetro de salto de retorno1.
Tipo: INT
Valor: 0 O salto de retorno realizado no bloco
que foi especificado com o parmetro de
salto de retorno 1.
>0 O salto de retorno realizado no bloco
seguinte do bloco que foi especificado
com o parmetro de salto de retorno 1.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 187
Programao flexvel de NC
1.25 Tcnica de subrotinas

<nmero de Parmetro de salto de retorno 3


nveis de saltos de Nomeia o nmero de nveis que devero ser saltados de
retorno>: volta para alcanar o nvel de programa em que a
execuo do programa dever ser continuada.
Tipo: INT
Valor: 1 O programa continuado "no atual nvel
do programa - 1" (como RET sem
parmetros).
2 O programa continuado no "atual nvel
do programa - 2", isto , realizado o
salto de um nvel.
3 O programa continuado no "atual nvel
do programa - 3", isto , realizado o
salto de dois nveis.
...
Faixa de
valores: 1 ... 15
<salto de retorno ao Parmetro de salto de retorno 4
incio do programa>: Tipo: BOOL
Valor: 1 Se o salto de retorno for realizado ao
programa principal e ali estiver ativo um
modo de dialeto ISO, realizada a
bifurcao para o incio do programa.

Indicao
Em um salto de retorno da subrotina com uma seqncia de caracteres, como indicao
para a localizao de destino sempre se busca por um marcador de salto no programa de
chamada.
Se um destino de salto deve ser definido claramente atravs de uma seqncia de
caracteres, a seqncia de caracteres no pode coincidir com o nome de um marcador de
salto, pois o salto de retorno da subrotina sempre ser executado para o marcador de salto
e no para a seqncia de caracteres (veja o exemplo 2).

Condies gerais
Para o salto de retorno atravs de vrios nveis de programa so avaliadas as instrues
SAVE dos diversos nveis de programa.
Se em um retorno atravs de vrios nveis de programa uma subrotina modal estiver ativa, e,
se em uma das subrotinas saltadas foi programado o comando de desseleo MCALL para a
subrotina modal, ento a subrotina modal ainda permanece ativa.

CUIDADO

O programador deve prestar ateno para que no salto de retorno atravs de vrios nveis
de programa a continuao seja realizada com os ajustes modais corretos. Isto obtido, por
exemplo, com a programao de um bloco principal correspondente.

Preparao do trabalho
188 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Exemplos
Exemplo 1: Continuao no programa principal aps a execuo da ASUP

Programao Comentrio
N10010 CALL "UP1" ; Nvel de programa 0 (programa
principal)
N11000 PROC UP1 ; Nvel de programa 1
N11010 CALL "UP2"
N12000 PROC UP2 ; Nvel de programa 2
...
N19000 PROC ASUP ; Nvel de programa 3 (execuo da ASUP)
...
N19100 RET("N10900", ,$P_STACK) ; Salto de retorno da subrotina
N10900 ; Continuao no programa principal.
N10910 MCALL ; Desativa a subrotina modal.
N10920 G0 G60 G40 M5 ; Corrige outros ajustes modais.

Exemplo 2: Seqncia de caracteres (<String>) como indicao para a localizao do bloco


de destino
Programa principal:

Cdigo de programa Comentrio


PROC MAIN_PROGRAM
N1000 DEF INT iVar1=1, iVar2=4
N1010 ...
N1200 subProg1 ; Chamada da subrotina "subProg1"
N1210 M2 S1000 X10 F1000
N1220 ......
N1400 subProg2 ; Chamada da subrotina "subProg2"
N1410 M3 S500 Y20
N1420 ..
N1500 lab1: iVar1=R10*44
N1510 F500 X5
N1520 ...
N1550 subprog1: G1 X30 ; Aqui o "subProg1" est definido como
marcador de salto.
N1560 ...
N1600 subProg3 Chamada da subrotina "subProg3"
N1610 ...
N1900 M30

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 189
Programao flexvel de NC
1.25 Tcnica de subrotinas

Subrotina subProg1:

Cdigo de programa Comentrio


PROC subProg1
N2000 R10=R20+100
N2010 ...
N2200 RET("subProg2") ; Salto de retorno ao programa principal no bloco
N1400

Subrotina subProg2:

Cdigo de programa Comentrio


PROC subProg2
N2000 R10=R20+100
N2010 ...
N2200 RET("iVar1") ; Salto de retorno ao programa principal no bloco
N1500

Subrotina subProg3:

Cdigo de programa Comentrio


PROC subProg3
N2000 R10=R20+100
N2010 ...
N2200 RET("subProg1") ; Salto de retorno ao programa principal no bloco
N1550

Preparao do trabalho
190 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Outras informaes
As figuras a seguir devem simplificar a visualizao dos diferentes efeitos dos parmetros de
salto de retorno 1 a 3.

1. Parmetro de salto de retorno 1 = "N200", parmetro de salto de retorno 2=0


3URJUDPDSULQFLSDO 


6XEURWLQD

168%
1* 


352&68%

 1
 



15(7 1 

 
1


Aps o comando RET realizada a continuao da execuo do programa com o bloco N200
no programa principal.

2. Parmetro de salto de retorno 1 = "N200", parmetro de salto de retorno 2=1

3URJUDPDSULQFLSDO

 6XEURWLQD

168%
1* 


352&68%

 1




15(7  

1
1 
1


Aps o comando RET realizada a continuao da execuo do programa com o bloco


(N210) que segue o bloco N200 no programa principal.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 191
Programao flexvel de NC
1.25 Tcnica de subrotinas

3. Parmetro de salto de retorno 1 = "N220", parmetro de salto de retorno 3=2

P[QYHLVGHSURJUDPD

3URJU
SULQF

6XE
URWLQD

6XE
URWLQD

6XE
URWLQD

5(7 1


1
 6DOWRGHUHWRUQR

6DOWRGHUHWRUQR

Aps o comando RET se realiza o salto retornando dois nveis e a execuo do programa
realizada com o bloco N220.

Preparao do trabalho
192 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

1.25.3 Chamada de uma subrotina

1.25.3.1 Chamada de subrotina sem transferncia de parmetros

Funo
A chamada de uma subrotina realizada com o endereo L e o nmero de subrotina ou
atravs da indicao do nome do programa.
Um programa principal tambm pode ser chamado como se fosse uma subrotina. Neste caso
o fim de programa M2 ou M30 definido no programa principal avaliado como M17 (fim de
programa com retorno para o programa de chamada).

Indicao
Da mesma forma uma subrotina pode ser iniciada como se fosse um programa principal.
Estratgia de localizao do comando numrico:
Existe *_MPF?
Existe *_SPF?
Disto resulta: Se o nome da subrotina a ser chamada for idntico ao nome do programa
principal, ento o programa principal de chamada chamado novamente, Este feito, que
normalmente no desejado, deve ser evitado atravs de escolha clara de nomes atravs
de subrotinas e programas principais.

Indicao
As subrotinas que no requerem nenhuma transferncia de parmetros, tambm podem ser
chamadas a partir de um arquivo de inicializao.

Sintaxe
L<nmero>/<nome de programa>

Indicao
A chamada de uma subrotina sempre deve ser programada em um bloco NC prprio.

Significado

L: Endereo para a chamada da subrotina


<nmero>: Nmero da subrotina
Tipo: INT
Valor: Mximo de 7 casas decimais
Ateno:
Os zeros esquerda tm significado na definio
de nomes ( L123, L0123 e L00123 so trs
subrotinas diferentes).
<nome de programa>: Nome da subrotina (ou programa principal)

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 193
Programao flexvel de NC
1.25 Tcnica de subrotinas

Exemplos
Exemplo 1: Chamada de uma subrotina sem transferncia de parmetros

3URJUDPDSULQFLSDO

1/
RX 6XEURWLQD
1 6DOLHQFLDB

Exemplo 2: Chamada de um programa principal como subrotina

3URJUDPDSULQFLSDO

103) 2XWUR
RX SURJUDPDSULQFLSDO
1:(//(

1



10

Preparao do trabalho
194 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

1.25.3.2 Chamada de subrotina com transferncia de parmetros (EXTERN)

Funo
Na chamada da subrotina com transferncia de parmetros podem ser transferidas variveis
ou valores de forma direta (no para parmetros VAR).
Subrotinas com transferncia de parmetros devem ser identificadas no programa principal
com EXTERN antes da chamada (p. ex. no incio do programa). Aqui se especificam o nome
da subrotina e os tipos das variveis na seqncia da transferncia.

CUIDADO

Tanto os tipos de variveis como a ordem da transferncia devem coincidir com as


definies declaradas sob PROC na subrotina. Os nomes de parmetros podem ser
diferentes no programa principal e na subrotina.

Sintaxe
EXTERN <no do programa>(<Tipo_Par1>,<Tipo_Par2>,<Tipo_Par3>)
...
<nome do programa>(<Valor_Par1>,<Valor_Par2>,<Valor_Par3>)

CUIDADO

A chamada da subrotina sempre deve ser programada em um bloco NC prprio.

Significado

<nome de programa>: Nome da subrotina


EXTERN: Palavra-chave para a identificao
de uma subrotina com transferncia
de parmetros
Nota:
O EXTERN somente deve ser
especificado se a subrotina estiver
no diretrio de peas ou no diretrio
de subrotinas global. Os ciclos no
precisam ser declarados como
EXTERN.
<Tipo_Par1>,<Tipo_Par2>,<Tipo_Par3>: Tipos de variveis dos parmetros
de transferncia na seqncia da
transferncia
<Valor_Par1>,<Valor_Par2>,<Valor_Par3>: Valores de variveis dos parmetros
de transferncia

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 195
Programao flexvel de NC
1.25 Tcnica de subrotinas

Exemplos
Exemplo 1: Chamada de subrotina com identificao prvia

Cdigo de programa Comentrio


N10 EXTERN QUADRO(REAL,REAL,REAL) ; Indicao da subrotina.
...
N40 QUADRO(15.3,20.2,5) ; Chamada da subrotina com
transferncia de parmetros.

3URJUDPDSULQFLSDO

1(;7(51
48$'52 5($/5($/5($/


148$'52 

Preparao do trabalho
196 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Exemplo 2: Chamada de subrotina sem identificao

Cdigo de programa Comentrio


N10 DEF REAL COMPRIMENTO, LARGURA,
PROFUNDIDADE
N20
N30 COMPRIMENTO=15.3 LARGURA=20.2
PROFUNDIDADE=5
N40 ; ou: N40 QUADRO(15.3,20.2,5)
QUADRO(COMPRIMENTO,LARGURA,PROFUNDIDADE)

3URJUDPDSULQFLSDO

1&2035, /$5*85$ 352)81' 


148$'52 &2035,/$5*85$7,()(
RX
148$'52 

1.25.3.3 Nmero de repeties de programa (P)

Funo
Se uma subrotina for executada vrias vezes em sucesso, ento se pode programar o
nmero desejado de repeties do programa no endereo P do bloco com a chamada da
subrotina.

CUIDADO

Chamada de subrotina com repetio de programa e transferncia de parmetros


Os parmetros somente so transferidos na chamada do programa ou primeiro
processamento. Para as demais repeties os parmetros permanecem inalterados. Se
houver a necessidade de alterar os parmetros durante as repeties de programa, ento se
deve definir os ajustes correspondentes na subrotina.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 197
Programao flexvel de NC
1.25 Tcnica de subrotinas

Sintaxe
<nome de programa> P<valor>

Significado

<nome de Chamada de subrotina


programa>:
P: Endereo para programao de repeties de programa
<valor>: Nmero de repeties de programa
Tipo: INT
Faixa de valores: 1 9999
(sem sinal)

Exemplo
Cdigo de programa Comentrio
...
N40 QUADRO P3 ; A subrotina QUADRO deve ser executada trs vezes
consecutivas.
...

3URJUDPDSULQFLSDO

6XEURWLQD
148$'523

  

Preparao do trabalho
198 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

1.25.3.4 Chamada modal de subrotina (MCALL)

Funo
Na chamada modal de subrotina com MCALL a subrotina automaticamente chamada e
executada aps cada bloco com movimento de percurso. Com isso a chamada de subrotinas
permite ser automatizada, sendo que ela deve ser executada em diferentes posies da
pea (por exemplo para produo de modelos de furao).
A desativao da funo realizada com MCALL sem chamada de subrotina ou atravs da
programao de uma nova chamada modal de subrotina para uma nova subrotina.

CUIDADO

Em uma execuo de programa somente uma chamada MCALL pode estar ativa ao mesmo
tempo. Os parmetros so transferidos apenas uma vez com a chamada MCALL.
Mesmo sem a programao de um movimento, a subrotina modal chamada nas seguintes
situaes:
Na programao dos endereos S e F quando G0 ou G1 estiver ativo.
Se G0/G1 foi programado sozinho no bloco ou com outros cdigos G.

Sintaxe
MCALL <nome de programa>

Significado

MCALL: Comando para a chamada de subrotina modal


<nome de Nome da subrotina
programa>:

Exemplos
Exemplo 1:

Cdigo de programa Comentrio


N10 G0 X0 Y0
N20 MCALL L70 ; Chamada de subrotina modal.
N30 X10 Y10 ; A posio programada aproximada e depois executada a
subrotina L70.
N40 X50 Y50 ; A posio programada aproximada e depois executada a
subrotina L70.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 199
Programao flexvel de NC
1.25 Tcnica de subrotinas

3URJUDPDSULQFLSDO

1*;<
10&$/// 6XEURWLQD /
1;<

1;<

Exemplo 2:

Cdigo de programa
N10 G0 X0 Y0
N20 MCALL L70
N30 L80

Neste exemplo os blocos NC subseqentes com eixos de percurso programados esto na


subrotina L80. L70 chamada pela L80.

Preparao do trabalho
200 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

1.25.3.5 Chamada de subrotinas indireta (CALL)

Funo
Em funo das condies dadas se pode chamar diferentes subrotinas em uma posio.
Para isso se armazena o nome da subrotina em uma varivel de tipo STRING. A chamada
da subrotina realizada com CALL e o nome da varivel.

CUIDADO

A chamada indireta de subrotinas somente possvel para subrotinas sem transferncia de


parmetros. Para a chamada direta de uma subrotina armazene o nome em uma constante
de STRING.

Sintaxe
CALL <nome do programa>

Significado

CALL: Comando para a chamada de subrotina indireta


<nome de programa>: Nome da subrotina (varivel ou constante)
Tipo: STRING

Exemplo
Chamada direta com constante de STRING:

Cdigo de programa Comentrio



CALL "/_N_WCS_DIR/_N_SUBPROG_WPD/_N_PECA1_SPF" ; Chamada direta da subrotina PECA1
com o CALL.

Chamada indireta atravs de varivel:

Cdigo de programa Comentrio



DEF STRING[100] PROGNAME ; Definio de varivel.
PROGNAME="/_N_WCS_DIR/_N_SUBPROG_WPD/_N_PECA1_SPF" ; Associao da subrotina PECA1
varivel PROGNAME.
CALL PROGNAME ; Chamada indireta da subrotina
PECA1 atravs do CALL e da
varivel PROGNAME.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 201
Programao flexvel de NC
1.25 Tcnica de subrotinas

1.25.3.6 Chamada de subrotina indireta com indicao da parte de programa que deve ser
executada (CALL BLOCK ... TO ...)

Funo
Com CALL e a combinao de palavras-chave BLOCK ... TO se chama uma subrotina de
forma indireta e se executa a parte do programa demarcada entre o marcador inicial e o
marcador final.

Sintaxe
CALL <nome do programa> BLOCK <marcador inicial> TO <marcador final>
CALL BLOCK <marcador inicial> TO <marcador final>

Significado

CALL: Comando para a chamada de subrotina indireta


<nome de programa>: Nome da subrotina (varivel ou constante) que contm a parte
do programa a ser executada (Indicaoopcional).
Tipo: STRING
Nota:
Se no for programado nenhum <nome de programa>, ser
executada a parte do programa demarcada entre o
<marcador inicial> e o <marcador final> no atual
programa.
BLOCK ... TO ... : Combinao de palavras-chave para execuo indireta de
partes de programa
<marcador inicial>: Varivel que faz referncia ao incio da parte do programa a
ser executada.
Tipo: STRING
<marcador final>: Varivel que faz referncia ao fim da parte do programa a ser
executada.
Tipo: STRING

Exemplo
Programa principal:

Cdigo de programa Comentrio


...
DEF STRING[20] STARTLABEL, ENDLABEL ; Definio de variveis para
o marcador inicial e
marcador final.
STARTLABEL="LABEL_1"
ENDLABEL="LABEL_2"
...

Preparao do trabalho
202 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Cdigo de programa Comentrio


CALL "CONTORNO_1" BLOCK STARTLABEL TO ENDLABEL ; Chamada de subrotina
indireta e marcao da parte
de programa que deve ser
executada.
...

Subrotina:

Cdigo de programa Comentrio


PROC CONTORNO_1 ...
LABEL_1 ; Marcador inicial: Incio da execuo da parte do
programa
N1000 G1 ...
...
LABEL_2 ; Marcador final: Fim da execuo da parte do programa
...

1.25.3.7 Chamada indireta de um programa programado em linguagem ISO (ISOCALL)

Funo
Com a chamada indireta de programas ISOCALL se pode chamar um programa criado em
linguagem ISO. Neste caso se ativa o modo ISO ajustado nos dados da mquina. No fim do
programa se ativa novamente o modo de execuo original. Se nos dados da mquina no
foi ajustado nenhum modo ISO, a chamada da subrotina ser realizada em modo Siemens.
Para mais informaes sobre o modo ISO, veja no(a):
Literatura:
Descrio do funcionamento de dialetos ISO

Sintaxe
ISOCALL <nome do programa>

Significado

ISOCALL: Palavra-chave para chamada indireta de subrotina que ativada


com o modo ISO ajustado nos dados da mquina
<nome de Nome de um programa programado em linguagem ISO (varivel
programa>: ou constante de tipo STRING)

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 203
Programao flexvel de NC
1.25 Tcnica de subrotinas

Exemplo: Contorno com programao de ciclos chamado a partir do modo ISO


Cdigo de programa Comentrio
0122_SPF ; Descrio de contorno em modo ISO
N1010 G1 X10 Z20
N1020 X30 R5
N1030 Z50 C10
N1040 X50
N1050 M99
N0010 DEF STRING[5] PROGNAME = "0122" ; Programa de peas Siemens
(ciclo)
...
N2000 R11 = $AA_IW[X]
N2010 ISOCALL PROGNAME
N2020 R10 = R10+1 ; Executar programa 0122.spf em modo
ISO
...
N2400 M30

Preparao do trabalho
204 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

1.25.3.8 Chamada de subrotina com indicao de caminho e parmetros (PCALL)

Funo
Com PCALL se pode chamar subrotinas com indicao absoluta do caminho e transferncia
de parmetros.

Sintaxe
PCALL <caminho/nome do programa>(<parmetro 1>,,<parmetro n>)

Significado

PCALL: Palavra-chave para chamada de subrotinas com


indicao absoluta do caminho.
<caminho/nome de Caminho absoluto iniciado com "/" e nome da subrotina
programa>: incluso.
Se no foi especificado nenhum caminho absoluto, o
PCALL age como uma chamada padro de subrotina com
identificadores de programa.
O identificador de programa especificado sem prefixo
_N_ e sem extenso.
Se for necessrio programar o nome do programa com
prefixo e extenso, ento ele deve ser explicitamente
declarado com o comando EXTERN com prefixo e
extenso.
<parmetro 1>, ...: Parmetro atual de acordo com a instruo PROC da
subrotina.

Exemplo
Cdigo de programa
PCALL/_N_WCS_DIR/_N_EIXO_WPD/EIXO(parmetro1,parmetro2,)

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 205
Programao flexvel de NC
1.25 Tcnica de subrotinas

1.25.3.9 Ampliar o caminho de localizao na chamada de subrotinas (CALLPATH)

Funo
Com o comando CALLPATH se pode ampliar o caminho de localizao da chamada de
subrotinas.
Dessa forma tambm podem ser chamadas subrotinas de um diretrio de peas de trabalho
no selecionado, sem precisar especificar o caminho completo da subrotina.
A ampliao do caminho de localizao realizada antes da entrada para ciclos de usurio
(_N_CUS_DIR).
Atravs dos seguintes eventos se desfaz a seleo do caminho de localizao:
CALLPATH com espaos vazios
CALLPATH sem parmetros
Fim do programa de pea
Reset

Sintaxe
CALLPATH("<nome do caminho>")

Significado

CALLPATH: Palavra-chave para a ampliao programvel do caminho de


localizao.
Se programa em uma linha prpria do programa de pea.
<nome de Constante ou varivel de tipo STRING. Contm a indicao absoluta do
caminho>: caminho de um diretrio que deve ampliar o caminho de localizao. A
indicao do caminho iniciada com "/". O caminho deve ser
especificado completo com prefixo e sufixo. O tamanho mximo do
caminho de 128 Bytes.
Se o <nome do caminho> contm um espao vazio ou se o CALLPATH
for chamado sem parmetros, a instruo do caminho de localizao
ser resetada novamente.

Preparao do trabalho
206 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Exemplo
Cdigo de programa
CALLPATH("/_N_WCS_DIR/_N_MYWPD_WPD")

Com isso se configura o seguinte caminho de localizao (a posio 5. nova):


1. Atual diretrio/identificador de subrotina
2. Atual diretrio/identificador de subrotina_SPF
3. Atual diretrio/identificador de subrotina_MPF
4. /_N_SPF_DIR/identificador de subrotina_SPF
5. /_N_WCS_DIR/_N_MYWPD/ identificador de subrotina_SPF
6. /N_CUS_DIR/_N_MYWPD/identificador de subrotina_SPF
7. /_N_CMA_DIR/identificador de subrotina_SPF
8. /_N_CST_DIR/identificador de subrotina_SPF

Condies gerais
O CALLPATH verifica se os caminhos programados realmente existem. Em caso de erro,
a execuo do programa de peas ser cancelada com o alarme de bloco de correo
14009.
O CALLPATH tambm pode ser programado em arquivos INI. Ele atua durante o perodo
de execuo do arquivo INI (arquivo INI WPD ou programa de inicializao para dados de
NC ativos, p. ex. Frames no 1canal _N_CH1_UFR_INI). Em seguida o caminho de
localizao resetado novamente.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 207
Programao flexvel de NC
1.25 Tcnica de subrotinas

1.25.3.10 Executar subrotina externa (EXTCALL)

Funo
Com o comando EXTCALL possvel recarregar um programa de pea a partir de uma
memria externa (unidade local, unidade de rede, unidade USB) e executar o mesmo como
uma subrotina.
O caminho para o diretrio externo de programas pode ser pr-configurado com o dado de
ajuste:
SD42700 $SC_EXT_PROG_PATH
Junto com o caminho ou com o identificador de programa indicado na chamada EXTCALL
formado o caminho geral do programa chamado.

Indicao
Destino de salto
Em programas externos que contm instrues de salto (GOTOF, GOTOB, CASE, FOR, LOOP,
WHILE, REPEAT, IF, ELSE, ENDIF, etc.) os destinos de salto tm que estar presentes na
memria recarregvel O tamanho da memria recarregvel configurado atravs do:
MD18360 MM_EXT_PROG_BUFFER_SIZE
Parmetro
Na chamada de um programa externo estes no podero transferir nenhum parmetro.

Sintaxe
EXTCALL("<caminho/><nome do programa>")

Significado

EXTCALL: Comando para chamada de uma subrotina externa


"<caminho/><nome de Constante/varivel de tipo STRING
programa>": <caminho/>: Indicao de caminho absoluta
ou relativa (opcional)
<nome de O nome do programa
programa>: especificado sem o prefixo
"_N_".
A extenso de arquivo ("MPF",
"SPF") pode ser adicionada em
nomes de programa com o
caractere "_" ou "." (opcional).
Exemplo:
"EIXO"
ou
"EIXO_SPF" e "EIXO.SPF"

Preparao do trabalho
208 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Indicao
Indicao de caminho: Abreviaes
Na indicao do caminho podem ser utilizadas as seguintes abreviaes:
LOCAL_DRIVE: para unidade local
CF_CARD: para carto CompactFlash
USB: para entrada de USB frontal
CF_CARD: e LOCAL_DRIVE: podem ser utilizados como alternativa.

Indicao
Execuo externa atravs da unidade USB
Se os programas de pea devem ser transferidos de uma unidade externa USB atravs da
interface USB, ento somente dever ser utilizada a interface de nome "TCU_1" atravs do
X203.

ATENO
Execuo externa atravs de USB-FlashDrive (na conexo USB frontal)
Uma execuo direta a partir de um USBFlashDrive inserido na entrada USBFront no
recomendada, pois pode ocorrer uma perda de conexo com o USBFlashDrive durante a
execuo do programa de pea por causa de falhas de contato, ejeo acidental,
interrupo por choques ou retirada proposital, o que resulta na parada imediata do
processamento. A ferramenta e/ou a pea de trabalho podem ser danificadas com isso.

Exemplo
Execuo a partir de unidade local
Programa principal:

Cdigo de programa
N010 PROC MAIN
N020 ...
N030 EXTCALL ("DESBASTE")
N040 ...
N050 M30

Subrotina externa:

Cdigo de programa
N010 PROC DESBASTE
N020 G1 F1000
N030 X= ... Y= ... Z= ...
N040 ...
...
...
N999999 M17

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 209
Programao flexvel de NC
1.25 Tcnica de subrotinas

O programa principal "MAIN.MPF" encontra-se na memria NC e selecionado para


execuo:
A subrotina "DESBASTE.SPF" que deve ser recarregada, e consequentemente o
"DESBASTE.MPF", encontra-se na unidade local no diretrio de peas "/user/sinumerik/data/
prog/WKS.DIR/WST1.WPD".
O caminho para a subrotina est pr-configurado no SD42700:
SD42700 $SC_EXT_PROG_PATH = "LOCAL_DRIVE:WKS.DIR/WST1.WPD"

Indicao
Sem a indicao do caminho no SD42700 a instruo EXTCALL deste exemplo deve ser
programada como segue:
EXTCALL("LOCAL_DRIVE:WKS.DIR/WST1.WPD/DESBASTE")

Outras informaes
Chamada EXTCALL com indicao absoluta do caminho
Se a subrotina estiver disponvel no caminho especificado, ento ela ser executada aps a
chamada EXTCALL. E ela no estiver disponvel, ento a execuo do programa ser
cancelada.
Chamada EXTCALL com indicao relativa do caminho / sem indicao de caminho
Em uma chamada EXTCALL com indicao relativa do caminho ou sem a indicao do
caminho realizada uma localizao nas memrias disponveis de programas de acordo
com o seguinte modelo:
Se no SD42700$SC_EXT_PROG_PATH houver um caminho pr-configurado, ento a
localizao ocorre primeiro neste caminho segundo a indicao na chamada EXTCALL
(nome do programa e eventualmente um caminho relativo). O caminho absoluto resulta
da sequncia de caracteres dada pelo(a):
- caminho pr-configurado no SD42700
- caractere "/" como caractere de separao
- o caminho ou identificador de subrotina especificado com EXTCALL
Se a subrotina chamada no foi encontrada no caminho pr-configurado, ser executada
a localizao nos diretrios da memria de usurio conforme a indicao na chamada
EXTCALL.
A localizao encerrada assim que a subrotina for encontrada pela primeira vez. Se a
localizao no encontrar nenhum resultado, ento o programa ser cancelado.

Preparao do trabalho
210 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Memria temporria configurvel (memria FIFO)


Para a execuo de um programa no modo "Executar externamente" (programa principal ou
subrotina) necessria uma memria temporria no NCK. O tamanho da memria de
recarregamento pr-configurada com 30 kByte e somente pode ser alterada pelo fabricante
da mquina, como outros dados de mquina relevantes memria.
Para os programas (principais ou subrotinas) que so processados simultaneamente no
modo "Executar externamente", deve-se configurar uma memria de recarregamento para
cada um.
RESET, POWER ON
Com RESET e POWER ON as chamadas externas de subrotinas so canceladas e a
memria temporria apagada.
Uma subrotina selecionada para modo "Executar externamente" permanece selecionada
alm do RESET / fim do programa para o modo "Executar externamente". A seleo se
perde com um POWER ON.

Literatura
Para mais informaes sobre "Execuo externa", veja:
Manual de funes bsicas; BAG, Canal, Operao do programa, Comportamento Reset
(K1)

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 211
Programao flexvel de NC
1.25 Tcnica de subrotinas

1.25.4 Ciclos

1.25.4.1 Parametrizao de ciclos de usurio

Funo
Com os arquivos cov.com e uc.com possvel parametrizar seus prprios ciclos:

cov.com Viso geral dos ciclos


uc.com Descrio da chamada de ciclo
O arquivo cov.com fornecido com os ciclos padronizados e pode ser ampliado de acordo. O
arquivo uc.com deve ser criado pelo prprio usurio.
Ambos arquivos devem ser armazenados no sistema passivo de arquivos no diretrio "Ciclos
do usurio" e no programa deve ser feita a indicao do caminho correspondente:
;$PATH=/_N_CUS_DIR

Adaptao do arquivo cov.com (viso geral sobre os ciclos)


O arquivo cov.com fornecido junto com os ciclos padronizados possui a seguinte estrutura:

%_N_COV_COM Nome de arquivo


;$PATH=/_N_CST_DIR Indicao de caminho
;Vxxx 11.12.95 Sca Viso geral dos ciclos Linha de comentrio
C1(CYCLE81) furao, centragem Chamada para o 1 ciclo
C2(CYCLE82) furao, escareamento plano Chamada para o 2 ciclo
...
C24(CYCLE98) sequncias de roscas Chamada para o ltimo ciclo
M17 Fim do arquivo

Para cada novo ciclo adicionado se deve adicionar uma linha com a seguinte sintaxe:
C<nmero> (<nome do ciclo>) <comentrio>
com:

<nmero>: nmero inteiro qualquer, que ainda no tenha sido utilizado no


arquivo
<nome do ciclo>: Nome de programa do ciclo a ser incluso
<comentrio>: Texto de comentrio para o ciclo (opcional)
Exemplo:
C25 (MEU_CICLO_1) ciclo de usurio_1
C26 (CICLO ESPECIAL)

Preparao do trabalho
212 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Descrio de ciclo feita pelo usurio no arquivo uc.com

Linha de cabealho por ciclo:


Como no arquivo cov.com e precedido de "//"
//C <nmero> (<nome do ciclo>) <comentrio>
Exemplo:
//C25 (MEU_CICLO_1) ciclo do usurio_

Linha de descrio por parmetro:


(<identificador do tipo de arquivo> / <valor mnimo> <valor mximo> /
<valor predefinido> / <comentrio>)
com:

<identificador do R: para Real


tipo de arquivo>:
I: para Integer
C: para caractere (1 caractere)
S: para String
<valor mnimo> Definio da faixa de valores (pode ser omitido)
<valor mximo>: Limites do valor a ser especificado, os quais devero ser
considerados na especificao. Os valores fora desta faixa no
podero ser especificados.
Podem ser especificados valores de contagem, os quais
permitem ser selecionados com a tecla de alternncia (toggle).
Estes sero contados comeando com "*", sendo que os demais
valores no sero permitidos.
Exemplo:
(I/*123456/1/tipo de processamento)
Para os tipos String e Character no existem limites.
<valor pr- Valor que vem pr-definido na tela correspondente com a
definido>: chamada do ciclo (pode ser omitido)
O valor pr-definido pode ser modificado mediante operao.
<comentrio>: Texto de comentrio (com no mximo 50 caracteres) que
exibido na tela de chamada do ciclo antes do campo de entrada
do parmetro.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 213
Programao flexvel de NC
1.25 Tcnica de subrotinas

Exemplo
Para os seguintes dois ciclos se deve criar uma nova parametrizao de ciclo:

PROC MEU_CICLO_1 (REAL PAR1, INT PAR2, CHAR PAR3, STRING[10] PAR4)
O ciclo possui os seguintes parmetros de transferncia:
PAR1: ; valor real na faixa de -1000.001 <= PAR2 <= 123.456, pr-
definio com 100
PAR2: ; valor inteiro positivo entre 0 <= PAR3 <= 999999, pr-
definio com 0
PAR3: ; 1 caractere ASCII
PAR4: ; String de extenso 10 para um nome de subrotina
...
M17

PROC CICLOESPECIAL (REAL VALOR1, INT VALOR2)


O ciclo possui os seguintes parmetros de transferncia:
VALOR1: ; valor Real sem restrio de faixa de valores e pr-definio
VALOR2: ; valor inteiro sem restrio de faixa de valores e pr-
definio
...
M17

Arquivo uc.com associado:

%_N_UC_COM
;$PATH=/_N_CUS_DIR
//C25(MEU_CICLO_1) ciclo de usurio_1
(R/-1000.001 123.456 / 100 /Parmetro_2 do ciclo)
(I/0 999999 / 1 / valor inteiro)
(C//"A" / parmetro de caractere)
(S///nome da subrotina)
//C26(CICLO ESPECIAL)
(R///extenso total)
(I/*123456/3/tipo de processamento)
M17

Preparao do trabalho
214 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.25 Tcnica de subrotinas

Tela de exibio do ciclo MEU_CICLO_1

3DUPHWURGRFLFOR 

9DORUGHQPHURLQWHLUR 

3DUPHWURGHFDUDFWHUH

6XEURWLQDV

Tela de exibio do ciclo CICLOESPECIAL

&RPSULPHQWRWRWDO 

7LSRGHXVLQDJHP 

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 215
Programao flexvel de NC
1.26 Tcnica de macros (DEFINE ... AS)

1.26 Tcnica de macros (DEFINE ... AS)

CUIDADO

Com a tcnica de macros se pode alterar consideravelmente a linguagem de programao


do comando! Por isso aplique esta tcnica de macros com extremo cuidado!

Funo
Como macro definimos o agrupamento de instrues individuais como uma instruo geral
de nome prprio. As funes G, M e H ou as subrotinas L tambm podem ser aplicadas
como macros. Na chamada da macro na execuo do programa os comandos programados
no nome da macro so executados seqencialmente.

Aplicao
Seqncias de instrues que se repetem, so programadas apenas uma vez em forma de
macro em um mdulo de macro (arquivo de macro) separado ou uma vez no incio do
programa. A macro pode ser chamada e executada em qualquer programa principal ou
subrotina.

Ativao
Para utilizar as macros de um arquivo de macro no programa NC se deve carregar o arquivo
de macro no NC.

Sintaxe
Definio de macro:
DEFINE <nome de macro> AS <instruo 1> <instruo 2> ...
Chamada no programa NC:
<nome de macro>

Significado

DEFINE ... AS : Combinao de palavras-chave para definio de uma macro


<nome de macro>: Nome da macro
Como nomes de macros somente so permitidos identificadores.
Com o nome da macro se chama a macro a partir do programa
NC.
<instruo>: Instruo de programao que deve estar contida na macro.

Preparao do trabalho
216 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Programao flexvel de NC
1.26 Tcnica de macros (DEFINE ... AS)

Regras para definio de macros


Na macro se pode definir qualquer identificador, funes G, M e H e nomes de programas
L.
As macros tambm podem ser definidas no programa NC.
As macros de funo G somente podem ser definidas globalmente no comando em
mdulos de macro.
As funes H e L so programveis com 2 dgitos.
As funes M e G podem ser programadas com 3 dgitos.

CUIDADO

Palavras-chave e nomes reservados no podem ser redefinidos com macros.

Condies gerais
No possvel fazer um aninhamento de macros.

Exemplos
Exemplo 1: Definio de macro no incio do programa

Cdigo de programa Comentrio


DEFINE LINHA AS G1 G94 F300 ; Definio de macro
...
...
N70 LINHA X10 Y20 ; Chamada de macro
...

Exemplo 2: Definies de macro em um arquivo de macro

Cdigo de programa Comentrio


DEFINE M6 AS L6 ; Para a troca de ferramentas se chama uma subrotina
que assume a transferncia de dados necessria. Na
subrotina executada a funo M de troca de
ferramentas propriamente dita (p. ex. M106).
DEFINE G81 AS DRILL(81) ; Simulao da funo G DIN.
DEFINE G33 AS M333 G333 ; Para a usinagem de roscas se solicita a
sincronizao com o PLC. A funo G33 original foi
renomeada para G333 pelo MD, a programao
permanece a mesma para o usurio.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 217
Programao flexvel de NC
1.26 Tcnica de macros (DEFINE ... AS)

Exemplo 3: Arquivo de macro externo


Aps o carregamento do arquivo de macro externo no comando, o arquivo de macro deve
ser carregado no NC. Somente ento se pode utilizar as macros no programa NC.

Cdigo de programa Comentrio


%_N_UMAC_DEF
;$PATH=/_N_DEF_DIR ; Macros especficas de usurio
DEFINE PI AS 3.14
DEFINE TC1 AS M3 S1000
DEFINE M13 AS M3 M7 ; Fuso gira direita, lquido refrigerante ligado
DEFINE M14 AS M4 M7 ; Fuso gira esquerda, lquido refrigerante ligado
DEFINE M15 AS M5 M9 ; Fuso parado, lquido refrigerante desligado
DEFINE M6 AS L6 ; Chamada do programa de troca de ferramentas
DEFINE G80 AS MCALL ; Desseleo do ciclo de furao
M30

Preparao do trabalho
218 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Gerenciamento de arquivos e programas 2
2.1 Memria de programa

Funo
Na memria de programas so armazenados arquivos e programas (p. ex. programas
principais e subrotinas, definies de macro) de forma permanente ( Sistema passivo de
arquivos).
Literatura:
Manual de funes ampliadas; Configurao de memria (S7)
Tambm existe uma quantidade de tipos de arquivos que pode ser armazenada
temporariamente e, em caso de necessidade (p. ex. para a usinagem de uma determinada
pea), estes arquivos so transferidos para a memria de trabalho (p. ex. para
inicializaes).

0HPULDGHSURJUDPD

B1B'()B',5 B1B&67B',5 B1B&0$B',5 B1B&86B',5 B1B63)B',5 B1B03)B',5 B1B:.6B',5 B1B&20B',5

B1B60$&B'() B1B/B63) B1B*/2%B63) B1B03)B03)


B1B00$&B'() B1BB63) B1BB63) B1B029B03)
B1B80$&B'() B1BB03)
B1B6*8'B'() B1B
B1B0*8'B'()
B1B8*8'B'()
B1B*8'B'()

B1B*8'B'()

B1B32&.(7B63) B1B:(//(B:3' B1B03)B:3' 


B1BB63)

B1B:(//(B03) B1B03)B03)
B1B3$57B03) B1B/B63)
B1B3$57B63) B1BB
B1B3$57B63)
B1B:(//(B,1,
B1B:(//(B6($
B1B3$57B,1,
B1B3$57B8)5
1RPHVSUHWRVGLVSRQYHLVFRPRIL[RV
B1B3$57B&20
1RPHVFLQ]DVHVSHFLILFDGRVSHORXVXULR B1B:(//(

Preparao do trabalho
Manual de programao 09/2011, 6FC5398-2BP40-2KA0 219
Gerenciamento de arquivos e programas
2.1 Memria de programa

Diretrios padro
Como padro esto disponveis os seguintes diretrios:

Diretrio Contedo
_N_DEF_DIR Mdulos de dados e mdulos de macros
_N_CST_DIR Ciclos padronizados
_N_CMA_DIR Ciclos de fabricante
_N_CUS_DIR Ciclos de usurio
_N_WCS_DIR Peas de trabalho
_N_SPF_DIR Subrotinas globais
_N_MPF_DIR Programas principais
_N_COM_DIR Comentrios

Tipos de arquivo
Na memria de programa podem ser inseridos os seguintes tipos de arquivos:

Tipo de arquivo Descrio


nome_MPF Programa principal
nome_SPF Subrotina
nome_TEA Dados de mquina
nome_SEA Dados de ajuste
nome_TOA Correes de ferramentas
nome_UFR Deslocamentos de ponto zero/Frame
nome_INI Arquivo de inicializao
nome_GUD Dados de usurio globais
nome_RPA Parmetros R
nome_COM Comentrio
nome_DEF Definies de dados de usurio globais e macros

Diretrio principal das peas de trabalho (_N_WCS_DIR)


O diretrio principal das peas de trabalho est configurado com a denominao
_N_WCS_DIR na memria de programa. O diretrio principal das peas de trabalho contm
todos os diretrios correspondentes de todas peas de trabalho que foram programadas.

Preparao do trabalho
220 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Gerenciamento de arquivos e programas
2.1 Memria de programa

Diretrios de pea de trabalho ( ..._WPD)


Para uma manipulao flexvel dos dados e programas, determinados dados e programas
podem ser agrupados ou armazenados em diferentes diretrios de pea de trabalho.
Um diretrio de pea de trabalho contm todos arquivos necessrios para a usinagem de
uma pea de trabalho. Estes podem ser programas principais, subrotinas, quaisquer
programas de inicializao e arquivos de comentrios.
Aps a seleo do programa, os programas de inicializao so executados uma vez no
primeiro Start do programa de pea (de acordo com o dado de mquina
MD11280$MN_WPD_INI_MODE).
Exemplo:
O diretrio de pea de trabalho _N_EIXO_WPD, que foi criado para a pea EIXO, contm os
seguintes arquivos:

Arquivo Descrio
_N_EIXO_MPF Programa principal
_N_PART2_MPF Programa principal
_N_PART1_SPF Subrotina
_N_PART2_SPF Subrotina
_N_EIXO_INI Programa geral de inicializao dos dados para a pea de trabalho
_N_EIXO_SEA Programa de inicializao dos dados de ajuste
_N_PART2_INI Programa geral de inicializao dos dados para o programa Part 2
_N_PART2_UFR Programa de inicializao dos dados de Frame para o programa Part 2
_N_WELLE_COM Arquivo de comentrios

Criar diretrios de pea de trabalho em um PC externo


O procedimento descrito a seguir executado em uma estao externa de dados. Para o
gerenciamento de arquivos e programas (do PC para o comando) realizado diretamente no
comando existem informaes contidas em seu manual de operao.

Criar diretrios de pea de trabalho com indicao de caminho ($PATH=)


Na segunda linha de um arquivo o caminho de destino indicado com $PATH= O arquivo
ento armazenado no caminho especificado.
Exemplo:

Cdigo de programa
%_N_EIXO_MPF
;$PATH=/_N_WCS_DIR/_N_EIXO_WPD
N10 G0 X Z
...
M2

O arquivo _N_EIXO_MPF armazenado no diretrio /_N_WCS_DIR/_N_EIXO_WPD.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 221
Gerenciamento de arquivos e programas
2.1 Memria de programa

Criar diretrio de pea de trabalho sem indicao de caminho


Se faltar a indicao do caminho, ento os arquivos de extenso _SPF so armazenados no
diretrio /_NSPF_DIR, arquivos de extenso _INI na memria de trabalho e todos demais
arquivos no diretrio /_NMPF_DIR.
Exemplo:

Cdigo de programa
%_N_EIXO_SPF
...
M17

O arquivo _N_EIXO_SPF armazenado no diretrio /_N_SPF_DIR.

Selecionar pea de trabalho para usinagem


Um diretrio de pea de trabalho pode ser selecionado para a execuo em um canal. Se
neste diretrio encontra-se um programa principal de mesmo nome ou apenas um nico
programa principal (MPF), ento este ser automaticamente selecionado para execuo.
Literatura:
/BAD/ Manual de operao HMI Advanced; Captulo "Jobliste" assim como "Selecionar
programa para execuo"

Caminhos de localizao na chamada de subrotinas


Se o caminho de chamada no for especificado explicitamente no programa de pea para
chamada de uma subrotina (ou tambm arquivo de inicializao), ento o programa
chamado ser procurado em um caminho fixo.

Chamada de subrotina com indicao absoluta de caminho


Exemplo:

Cdigo de programa
...
CALL"/_N_CST_DIR/_N_CYCLE1_SPF"
...

Chamada de subrotina sem indicao absoluta de caminho


Normalmente os programas so chamados sem indicao do caminho.
Exemplo:

Cdigo de programa
...
CYCLE1
...

Preparao do trabalho
222 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Gerenciamento de arquivos e programas
2.1 Memria de programa

Os diretrios so pesquisados para localizao do programa chamado na seguinte


seqncia:

N Diretrio Descrio
1 atual diretrio / nome Diretrio principal de peas de trabalho ou
diretrio padro _N_MPF_DIR
2 atual diretrio / nome_SPF
3 atual diretrio / nome_MPF
4 /_N_SPF_DIR / nome_SPF Subrotinas globais
5 /_N_CUS_DIR / nome_SPF Ciclos do usurio
6 /_N_CMA_DIR / nome_SPF Ciclos do fabricante
7 /_N_CST_DIR / nome_SPF Ciclos padronizados

Programar caminhos de localizao na chamada da subrotina (CALLPATH)


O caminho de localizao para chamada de subrotinas pode ser ampliado com o comando
de programa de peas CALLPATH.
Exemplo:

Cdigo de programa
CALLPATH("/_N_WCS_DIR/_N_MYWPD_WPD")
...

O caminho de localizao armazenado antes da posio 5 (ciclo do usurio) conforme


programao.
Para mais informaes sobre caminhos de localizao programveis na chamada de
subrotinas com CALLPATH, veja o captulo "Ampliar o caminho de localizao em chamadas
de subrotina com CALLPATH".

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 223
Gerenciamento de arquivos e programas
2.2 Memria de trabalho (CHANDATA, COMPLETE, INITIAL)

2.2 Memria de trabalho (CHANDATA, COMPLETE, INITIAL)

Funo
A memria de trabalho contm os atuais dados de sistema do usurio, com os quais se
opera o comando (sistema de arquivos ativo), p. ex.:
Dados de mquina ativos
Dados de corretores de ferramentas
Deslocamentos de ponto zero
...

Programas de inicializao
Aqui trata-se de programas com os quais os dados da memria de trabalho so inicializados.
Para isso podem ser utilizados os seguintes tipos de arquivos:

Tipo de arquivo Descrio


nome_TEA Dados de mquina
nome_SEA Dados de ajuste
nome_TOA Correes de ferramentas
nome_UFR Deslocamentos de ponto zero/Frame
nome_INI Arquivo de inicializao
nome_GUD Dados de usurio globais
nome_RPA Parmetros R
Informaes sobre todos tipos de dados esto disponveis no manual de operao da
interface de operao.

reas de dados
Os dados podem ser organizados em diferentes reas onde sero aplicados. Por exemplo,
um comando pode dispor de vrios canais ou, como de costume, dispor de vrios eixos.
Existe:

Identificao reas de dados


NCK Dados especficos do NCK
CH<n> Dados especficos de canal (<n> indica o nmero do canal)
AX<n> Dados especficos de eixo (<n> especifica o nmero do eixo da mquina)
TO Dados de ferramenta
COMPLETE Todos dados

Preparao do trabalho
224 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Gerenciamento de arquivos e programas
2.2 Memria de trabalho (CHANDATA, COMPLETE, INITIAL)

Criar programa de inicializao em um PC externo


Com o auxlio do identificador da rea de dados e do tipo de arquivo podem ser
determinadas reas que sero consideradas como uma unidade durante a gravao de
segurana dos dados:

_N_AX5_TEA_INI Dados da mquina para 5 eixos


_N_CH2_UFR_INI Frames do canal 2
_N_COMPLETE_TEA_INI Todos dados de mquina
Aps a colocao em funcionamento do comando existe um bloco de dados na memria de
trabalho que assegura o funcionamento correto do comando.

Procedimento com comandos de vrios canais (CHANDATA)


O CHANDATA(<nmero do canal>) para vrios canais somente permitido no arquivo
_N_INITIAL_INI. Este o arquivo de colocao em funcionamento com o qual so
inicializados todos dados do comando.

Cdigo de programa Comentrio


%_N_INITIAL_INI
CHANDATA(1)
; Atribuio de eixo de mquina do canal 1:
$MC_AXCONF_MACHAX_USED[0]=1
$MC_AXCONF_MACHAX_USED[1]=2
$MC_AXCONF_MACHAX_USED[2]=3
CHANDATA(2)
; Atribuio de eixo de mquina do canal 2:
$MC_AXCONF_MACHAX_USED[0]=4
$MC_AXCONF_MACHAX_USED[1]=5
CHANDATA(1)
; Dados de mquina de eixo:
; Janela de parada exata aproximada:
$MA_STOP_LIMIT_COARSE[AX1]=0.2 ; Eixo 1
$MA_STOP_LIMIT_COARSE[AX2]=0.2 ; Eixo 2
; Janela de parada exata fina:
$MA_STOP_LIMIT_FINE[AX1]=0.01 ; Eixo 1
$MA_STOP_LIMIT_FINE[AX1]=0.01 ; Eixo 2

CUIDADO

Instruo CHANDATA
No programa de pea a instruo CHANDATA somente pode ser definida para o canal onde o
programa NC ser executado; isto , o comando pode ser utilizado para proteger programas
NC para que no sejam executados acidentalmente em outro canal.
A execuo do programa ser cancelada em caso de erro.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 225
Gerenciamento de arquivos e programas
2.2 Memria de trabalho (CHANDATA, COMPLETE, INITIAL)

Indicao
Os arquivos INI em listas de tarefas no contm nenhuma instruo CHANDATA.

Salvar programas de inicializao (COMPLETE, INITIAL)


Os arquivos da memria de trabalho podem ser salvos em um PC externo e deste
recarregados.
Os arquivos so salvos com COMPLETE.
Com INITIAL se gera um arquivo INI (_N_INITIAL_INI) que se estende em todas as
reas.

Carregar programas de inicializao

ATENO
Quando se carrega o arquivo de nome "INITIAL_INI", todos dados que no so alimentados
com o arquivo sero inicializados com dados padro. Disso esto excludos apenas os
dados de mquina. Os dados de ajuste, dados de ferramenta, NPV, valores GUD, ...
tambm so alimentados com dados padro (normalmente o "ZERO").

Por exemplo, o arquivo COMPLETE_TEA_INI apropriado para o carregamento de dados


individuais de mquina. Deste arquivo o comando apenas espera os dados de mquina.
Dessa forma as demais reas de dados permanecem inalteradas neste caso.

Carregar programas de inicializao


Os programas INI tambm podem ser selecionados e executados como programas de
peas, isto se utilizarem apenas os dados de um canal. Assim tambm possvel inicializar
dados controlados pelo programa.

Preparao do trabalho
226 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Gerenciamento de arquivos e programas
2.3 Instruo de estruturao no editor Step (SEFORM)

2.3 Instruo de estruturao no editor Step (SEFORM)

Funo
A instruo de estruturao SEFORM avaliada no editor Step (suporte de programao
baseado em editor), para ento gerar a vista do passo para HMIAdvanced. A vista do passo
serve para facilitar a leitura da subrotina NC.

Sintaxe
SEFORM(<nome de seco>,<nvel>,<Icon>)

Significado

SEFORM() Chamada de funo da instruo de estruturao com os


parmetros <nome de seco>, <nvel> e <Icon>
<nome de seco> Identificador do passo de trabalho
Tipo: STRING
<nvel> ndice para o nvel principal ou subnvel
Tipo: INT
Valor: 0 Nvel principal
1, ..., <n> Subnvel 1, ... , Subnvel <n>
<Icon> Nome do cone que deve ser exibido nesta seco.
Tipo: STRING

Indicao
As instrues SEFORM so criadas no editor Step.
A seqncia de caracteres transferida com o parmetro <nome de seco> armazenada
de forma anloga instruo MSG, de forma sincronizada com o processamento principal,
na varivel BTSS. A informao permanece at a prxima instruo SEFORM ser sobrescrita.
O contedo apagado com Reset e o fim do programa de peas.
Os parmetros <nvel> e <Icon> so controlados durante a execuo do programa de
pea, mas no so processados.

Literatura
Para mais informaes sobre o suporte de programao baseado em editor, veja no(a):
Manual de operao HMIAdvanced

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 227
Gerenciamento de arquivos e programas
2.3 Instruo de estruturao no editor Step (SEFORM)

Preparao do trabalho
228 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
reas de proteo 3
3.1 Definio das reas de proteo (CPROTDEF, NPROTDEF)

Funo
Com a ajuda das reas de proteo se pode proteger vrios elementos da mquina, o
equipamento assim como a pea de trabalho de eventuais movimentos incorretos.
reas de proteo relativas ferramenta:
Para componentes que pertencem ferramenta (p. ex. ferramenta, porta-ferramenta).
reas de proteo relativas pea de trabalho:
Para componentes que pertencem pea de trabalho (p. ex. componentes da pea de
trabalho, mesa de fixao, garras de fixao, mandril do fuso, contraponta).

UHDGHSURWHRUHODWLYD < UHDGHSURWHR


IHUUDPHQWD UHODWLYD
IHUUDPHQWD

%

=
;

UHDGHSURWHRUHODWLYD
SHDGHWUDEDOKR

Sintaxe
DEF INT NOT_USED
G17/G18/G19
CPROTDEF/NPROTDEF(<n>,<t>,<applim>,<applus>,<appminus>)
G0/G1/... X/Y/Z...
...
EXECUTE (NOT_USED)

Preparao do trabalho
Manual de programao 09/2011, 6FC5398-2BP40-2KA0 229
reas de proteo
3.1 Definio das reas de proteo (CPROTDEF, NPROTDEF)

Significado

DEF INT NOT_USED: Varivel local, definir como tipo de dado INTEGER
(consulte o cap. "Aes sncronas de movimentos [Pgina
565]")
G17/G18/G19: O plano desejado selecionado antes de CPROTDEF ou
NPROTDEF com G17/G18/G19 e no pode ser modificado
antes de EXECUTE. No permitida uma programao da
terceira coordenada entre CPROTDEF ou NPROTDEF e
EXECUTE.
CPROTDEF: Definir reas de proteo especficas de canal (s para NCU
572/573)
NPROTDEF: Definir reas de proteo especficas da mquina
G0/G1/... X/Y/Z... O contorno das reas de proteo especificado com no
... : mximo 11 movimentos de percurso dentro do plano
selecionado. Neste caso o primeiro movimento de percurso
o movimento no contorno. Aqui como rea de proteo vale a
rea esquerda do contorno.
Nota:
Os movimentos de percurso entre CPROTDEF ou NPROTDEF
e EXECUTE no so executados, pois eles definem a rea de
proteo.
EXECUTE: Finalizao da definio
<n>: Nmero da rea de proteo definida
<t>: Tipo da rea de proteo
TRUE: rea de proteo em funo da ferramenta
FALSE: rea de proteo em funo da pea de
trabalho
<applim>: Tipo de limitao na 3 dimenso
0: Sem limitao
1: Limitao no sentido positivo
2: Limitao no sentido negativo
3: Limitao nos sentidos positivo e negativo
<applus>: Valor da limitao no sentido positivo da 3 dimenso
<appminus>: Valor da limitao no sentido negativo da 3 dimenso
NOT_USED: A varivel de erro no tem efeito nas reas de proteo com
EXECUTE

Preparao do trabalho
230 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
reas de proteo
3.1 Definio das reas de proteo (CPROTDEF, NPROTDEF)

Condies gerais
Durante a definio das reas de proteo:
nenhuma correo de raio de fresa ou de raio de corte pode estar ativa,
nenhuma transformao pode estar ativa.
nenhum Frame pode estar ativo.
Tambm no podem ser programadas a aproximao do ponto de referncia (G74),
aproximao do ponto fixo (G75), parada de localizao de blocos ou o fim de programa.

Outras informaes
Definio de reas de proteo
Para definio de reas de proteo existem:
CPROTDEF para reas de proteo especficas de canal
NPROTDEF para reas de proteo especficas da mquina
Descrio do contorno da rea de proteo
Encerramento da definio com EXECUTE
Pode-se deslocar o ponto de referncia da rea de proteo de modo relativo quando a rea
de proteo est ativada no programa de pea NC.
Ponto de referncia da descrio do contorno
As reas de proteo relativas pea de trabalho so definidas no sistema de coordenadas
bsico.
As reas de proteo relativas ferramenta so especificadas em funo do ponto de
referncia do porta-ferramentas F.
Elementos de contorno permitidos
Para a descrio do contorno da rea de proteo so permitidos:
G0, G1 para elementos de contorno retos
G2 para segmentos circulares no sentido horrio (apenas para rea de proteo relativa
pea de trabalho)
G3 para segmentos circulares no sentido anti-horrio

Indicao
Se for descrita uma circunferncia inteira para a rea de proteo, ento ela deve ser
dividida em duas semicircunferncias. A ordem G2, G3 ou G3, G2 no permitida. Aqui
deve ser inserido um curto bloco G1.
O ltimo ponto da descrio do contorno deve coincidir com o primeiro ponto.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 231
reas de proteo
3.1 Definio das reas de proteo (CPROTDEF, NPROTDEF)

reas de proteo externas


As reas de proteo externas (possvel apenas em reas de proteo relativas pea de
trabalho) devem ser definidas no sentido horrio.
reas de proteo simtricas na rotao
Para reas de proteo simtricas na rotao (p.ex. mandril do fuso) deve ser descrito o
contorno inteiro (no apenas at o centro da rotao!).
reas de proteo relativas ferramenta
reas de proteo relativas ferramenta sempre devem ser convexas. Se for desejada uma
rea de proteo cncava, esta deve ser distribuda em vrias reas de proteo convexas.

UHDVGHSURWHRFRQYH[DV

UHDVGHSURWHRFQFDYDV QRSHUPLWLGR

Preparao do trabalho
232 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
reas de proteo
3.2 Ativar/desativar reas de proteo (CPROT, NPROT)

3.2 Ativar/desativar reas de proteo (CPROT, NPROT)

Funo
Ativao ou pr-ativao das reas de proteo definidas anteriormente para monitorao de
coliso ou desativao das reas de proteo.
O nmero mximo de reas de proteo ativas simultaneamente em um canal definida no
dado da mquina.
Se nenhuma rea de proteo relativa ferramenta estiver ativa, ento o percurso da
ferramenta verificado para a rea de proteo relativa pea de trabalho.

Indicao
Se nenhuma rea de proteo relativa pea de trabalho estiver ativa, ento no haver
nenhuma monitorao da rea de proteo.

Sintaxe
CPROT(<n>,<state>,<xMov>,<yMov>,<zMov>)
NPROT(<n>,<state>,<xMov>,<yMov>,<zMov>)

Significado

CPROT: Chamada da rea de proteo especfica de canal


(apenas para NCU 572/573)
NPROT: Chamada da rea de proteo especfica da mquina
<n>: Nmero da rea de proteo
<state>: Indicao do estado
0: Desativao da rea de proteo
1: Pr-ativao da rea de proteo
2: Ativao da rea de proteo
3: Pr-ativao da rea de proteo com parada
condicional
<xMov>,<yMov>,<zMov>: Deslocamento da rea de proteo j definida nos eixos
geomtricos

Condies gerais
Monitorao da rea de proteo com correo do raio da ferramenta ativada
Com a correo do raio da ferramenta ativada somente possvel uma monitorao da rea
de proteo que funcione, se o plano da correo do raio da ferramenta for idntico ao plano
das definies da rea de proteo.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 233
reas de proteo
3.2 Ativar/desativar reas de proteo (CPROT, NPROT)

Exemplo
Para uma fresadora deve ser monitorada uma possvel coliso da fresa com o apalpador de
medio. A posio do apalpador de medio deve ser especificado por um deslocamento
para a ativao. Para isso so definidas as seguintes reas de proteo:
Uma rea de proteo especfica da mquina e uma relativa pea de trabalho para o
suporte do apalpador de medio (n-SB1) e para o prprio apalpador de medio (n-
SB2).
Uma rea de proteo especfica de canal e uma relativa ferramenta para o porta-fresa
(c-SB1), a haste da fresa (c-SB2) e para a prpria fresa (c-SB3).
A orientao de todas reas de proteo est no sentido Z.
A posio do ponto de referncia do apalpador de medio para a ativao deve estar em
X=-120, Y=60 e Z=80.


3RQWRGHUHIHUQFLDSDUD
DUHDGHSURWHRGR
DSDOSDGRUGHPHGLR
Q6%
Q6% &6% 






&6%
=



&6%



<

Cdigo de programa Comentrio


DEF INT PROTECAOB ; Definio de uma varivel auxiliar
Definio das reas de proteo do G17 ; Ajuste da orientao
NPROTDEF(1,FALSE,3,10,10)G01 X0 Y10 ; rea de proteo nSB1
X40
Y10
X0
Y10
EXECUTE(PROTECAOB)
NPROTDEF(2,FALSE,3,5,5) ; rea de proteo nSB2
G01 X40 Y5
X70
Y5
X40
Y5
EXECUTE(PROTECAOB)

Preparao do trabalho
234 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
reas de proteo
3.2 Ativar/desativar reas de proteo (CPROT, NPROT)

Cdigo de programa Comentrio


CPROTDEF(1,TRUE,3,0,100) ; rea de proteo cSB1
G01 X20 Y20
X20
Y20
X20
Y20
EXECUTE(PROTECAOB)
CPROTDEF(2,TRUE,3,100,150) ; rea de proteo cSB2
G01 X0 Y10
G03 X0 Y10 J10
X0 Y10 J10
EXECUTE(PROTECAOB)
CPROTDEF(3,TRUE,3,150,170) ; rea de proteo cSB3
G01 X0 Y27,5
G03 X0 Y27,5 J27,5
X0 Y27,5 J27,5
EXECUTE(PROTECAOB)
Ativao das reas de proteo:
NPROT(1,2,120,60,80) ; Ativao da rea de proteo nSB1 com
deslocamento
NPROT(2,2,120,60,80) ; Ativao da rea de proteo nSB2 com
deslocamento
CPROT(1,2,0,0,0) ; Ativao da rea de proteo cSB1 com
deslocamento
CPROT(2,2,0,0,0) ; Ativao da rea de proteo cSB2 com
deslocamento
CPROT(3,2,0,0,0) ; Ativao da rea de proteo cSB3 com
deslocamento

Outras informaes
Estado de ativao (<state>)
<state>=2
Normalmente uma rea de proteo ativada no programa de pea com estado =2.
O estado sempre especfico de canal, mesmo nas reas de proteo especficas da
mquina.
<state>=1
Se atravs do programa de usurio PLC estiver previsto que uma rea de proteo pode
ser ativada pelo programa de usurio PLC, ento ser realizada a pr-ativao
necessria com o estado = 1.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 235
reas de proteo
3.2 Ativar/desativar reas de proteo (CPROT, NPROT)

<state>=3
Na pr-ativao com parada condicional nem sempre ocorre a parada antes de uma rea
de proteo violada, pr-ativada. A parada somente ocorre se a rea de proteo for
ativada antes. Isto possibilita uma usinagem sem interrupes, quando as reas de
proteo somente so ativadas em casos especiais. Aqui se deve observar que, em
funo da rampa de frenagem, um movimento pode invadir a rea de proteo, caso a
rea de proteo tiver sido ativada imediatamente antes da execuo.
A pr-ativao com parada condicional ocorre atravs do estado =3.
<state>=0
A desativao e com isso a desabilitao das reas de proteo realizada atravs do
estado = 0. Neste caso no necessrio nenhum deslocamento.

Deslocamento de reas de proteo na (pr-)ativao


O deslocamento pode ser realizado em 1, 2 ou 3 dimenses. A indicao do deslocamento
est em funo:
do ponto zero da mquina para reas de proteo especficas de pea de trabalho.
do ponto de referncia do porta-ferramenta F para reas de proteo especficas de
ferramenta.
Estado aps a inicializao
As reas de proteo j podem ser ativadas aps a inicializao e subsequente aproximao
do ponto de referncia. Deve-se definir a varivel de sistema $SN_PA_ACTIV_IMMED[<n>]
ou $SC_PA_ACTIV_IMMED[<n>] como TRUE. Elas sempre so ativadas com o estado = 2 e
no possuem deslocamento.
Ativao mltipla de reas de proteo
Uma rea de proteo tambm pode ser ativada simultaneamente em vrios canais (p. ex.
cabeote em duas unidades de avano dispostas de forma oposta). A monitorao das reas
de proteo somente ser realizada quando todos eixos geomtricos estiverem
referenciados.
Aqui vale:
A rea de proteo no pode ser ativada simultaneamente de forma mltipla com
diferentes deslocamentos em um canal.
reas de proteo relativas mquina devem ter a mesma orientao em ambos canais.

Preparao do trabalho
236 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
reas de proteo
3.3 Verificao quanto violao da rea de proteo, limite da rea de trabalho e limites de software

3.3 Verificao quanto violao da rea de proteo, limite da rea de


trabalho e limites de software (CALCPOSI)

Funo
A funo CALCPOSI serve para verificar se os eixos geomtricos podem percorrer um curso
a partir de um ponto de partida especificado sem violar limites de eixo (limites de software),
limitaes da rea de trabalho ou reas de proteo.
Para o caso em que o curso especificado no pode ser percorrido, ser retornado o valor
mximo admissvel.
A funo CALCPOSI uma subrotina pr-definida. Ela precisa permanecer sozinha em um
bloco.

Sintaxe
Estado=CALCPOSI(_STARTPOS, _MOVDIST, _DLIMIT, _MAXDIST, _BASE_SYS,
_TESTLIM)

Significado
Estado 0: Funo o. k.,
o percurso especificado pode ser executado totalmente.
: No _DLIMIT existe pelo menos um componente negativo
: Ocorreu um erro em um clculo de transformao
Se o curso especificado no pode ser percorrido
completamente, retornado um valor decimal positivo:
Posio da unidade (tipo do limite violado):
1: Os limites de software restringem o percurso.
2: O limite da rea de trabalho restringe o percurso.
3: As reas de proteo restringem o percurso.
Se forem violados vrios limites simultaneamente (p. ex.
limites de software e reas de proteo), na posio da
unidade ser mencionado o limite que causa a maior
restrio do percurso especificado.
Posio da dezena
10:
O valor inicial viola o limite
20:
A reta especificada viola o limite. Este valor tambm
retornado quando o prprio ponto final no viola nenhum
limite, mas durante o percurso do ponto inicial at o ponto
final ocorre uma violao do valor limite (p. ex. sair de uma
rea de proteo, limites de software curvados no WCS com
transformaes no lineares, p. ex. Transmit).

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 237
reas de proteo
3.3 Verificao quanto violao da rea de proteo, limite da rea de trabalho e limites de software

Posio da centena
100:
O valor limite positivo foi violado (apenas se a posio da
unidade for 1 ou 2, isto , para limites de software e limite da
rea de trabalho).
100:
Uma rea de proteo NCK foi violada (apenas se a posio
da unidade for 3).
200:
O valor limite negativo foi violado (apenas se a posio da
unidade for 1 ou 2, isto , para limites de software e limite da
rea de trabalho).
200:
Uma rea de proteo especfica de canal foi violada (apenas
se a posio da unidade for 3).
Posio da milhar
1000:
Fator com o qual multiplicado o nmero do eixo que viola o
limite (apenas se a posio da unidade for 1 ou 2, isto , para
limites de software e limite da rea de trabalho).
A contagem dos eixos comea com 1 e refere-se, no caso
dos limites de software (posio da unidade = 1) violados aos
eixos da mquina e, no caso do limite da rea de trabalho
violada (posio da unidade = 2) aos eixos geomtricos.
1000:
Fator com o qual multiplicado o nmero da rea de
proteo violada (apenas se a posio da unidade for 3).
Se vrias reas de proteo foram violadas, indicada nas
posies da centena e da milhar a rea de proteo que tem
a maior restrio para o percurso especificado.
_STARTPOS Valor inicial para abscissa [0], ordenada [1] e terceira
coordenada [2] no (WCS)
_MOVEDIST Definio de curso incremental para abscissa [0], ordenada
[1] e terceira coordenada [2]
_DLIMIT [0] - [2]: Distncias mnimas atribudas para os eixos
geomtricos.
[3]: Distncia mnima atribuda para um eixo linear de
mquina em uma transformao no linear, se nenhum eixo
geomtrico foi atribudo como nico.
[4]: Distncia mnima atribuda para um eixo rotativo de
mquina em uma transformao no linear, se nenhum eixo
geomtrico foi atribudo como nico. Apenas para
transformaes especiais onde devem ser monitorados os
limites de software.

Preparao do trabalho
238 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
reas de proteo
3.3 Verificao quanto violao da rea de proteo, limite da rea de trabalho e limites de software

_MAXDIST Campo [0] - [2] para valor de retorno. Curso incremental em


todos trs eixos geomtricos, sem que a distncia mnima
especificada no seja alcanada por um limite de eixo nos
eixos envolvidos.
Se o percurso no est limitado, ento o contedo deste
parmetro de retorno igual ao do _MOVDIST.
_BASE_SYS FALSE ou parmetro no especificado:
Para a avaliao das especificaes de posio e
comprimento feita a avaliao do cdigo G do grupo 13
(G70, G71, G700, G710; polegadas/mtrico). Com o G70
ativo e se o sistema bsico for mtrico (ou G71 ativo e o
sistema bsico for em polegadas), as variveis de sistema
relativas ao WCS, $AA_IW[X] e $AA_MW[X]), so enviadas
para o sistema bsico e, se necessrio, devero ser
convertidas para serem utilizadas na funo CALCPOSI.
TRUE:
Para a avaliao das especificaes de posio e
comprimento, sempre utilizado o sistema bsico do
comando, independente do valor ativo do cdigo G do grupo
13.
_TESTLIM Limitaes para verificao (cdigo binrio):
1: Monitorar limites de software
2: Monitorar limites da rea de trabalho
3: Monitorar reas de proteo ativadas
4: Monitorar reas de proteo pr-ativadas
Combinaes pela adio dos valores. Padro: 15; verificar
todas.

Exemplo
No exemplo (figura) esto indicados os limites de software e limites da rea de trabalho no
plano X-Y. Adicionalmente foram definidas trs reas de proteo, as duas reas especficas
de canal C2 e C4 assim como a rea especfica NCK, a N3. C2 uma rea de proteo
circular, ativa, relativa ferramenta, com 2 mm de raio. C4 uma rea de proteo
quadrada, pr-ativada, relativa pea de trabalho, com 10 mm de laterais e a N3 uma rea
de proteo retangular, ativa, com 10 mm e 15 mm de laterais. No seguinte programa NC
so definidas primeiramente as reas de proteo e as limitaes da rea de trabalho como

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 239
reas de proteo
3.3 Verificao quanto violao da rea de proteo, limite da rea de trabalho e limites de software

no esboo, depois chamada a funo CALCPOSI com diversas parametrizaes. Os


resultados de cada chamada do CALCPOSI esto resumidos na tabela no fim do exemplo.

<
/LPLWHVGHVRIWZDUH

& SUDWLYR

11

1

1



1

&
  

/LPLWHGHUHDGHWUDEDOKR

Cdigo de programa Comentrio


N10 def real _STARTPOS[3]

N20 def real _MOVDIST[3]

N30 def real _DLIMIT[5]

N40 def real _MAXDIST[3]

N50 def int _SB

N60 def int _STATUS


N70 cprotdef(2, true, 0) ; rea de proteo relativa
ferramenta
N80 g17 g1 xy0

N90 g3 i2 x2

N100 ix

N110 execute(_SB)

Preparao do trabalho
240 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
reas de proteo
3.3 Verificao quanto violao da rea de proteo, limite da rea de trabalho e limites de software

Cdigo de programa Comentrio


N120 cprotdef(4, false, 0) ; rea de proteo relativa pea
de trabalho
N130 g17 g1 x0 y15

N140 x10

N150 y25

N160 x0

N170 y15

N180 execute(_SB)
N190 nprotdef(3, false, 0) ; rea de proteo relativa
mquina
N200 g17 g1 x10 y5

N210 x25

N220 y15

N230 x10

N240 y5
N250 execute(_SB)
N260 cprot(2,2,0, 0, 0) ; ; ativar ou pr-ativar reas de
proteo
N270 cprot(4,1,0, 0, 0)

N280 nprot(3,2,0, 0, 0)
N290 g25 XX=YY= ; Definir limites da rea de
trabalho
N300 g26 xx= 20 yy= 21

N310 _STARTPOS[0] = 0.

N320 _STARTPOS[1] = 0.

N330 _STARTPOS[2] = 0.
N340 _MOVDIST[0] = 35.
N350 _MOVDIST[1] = 20.

N360 _MOVDIST[2] = 0.
N370 _DLIMIT[0] = 0.

N380 _DLIMIT[1] = 0.

N390 _DLIMIT[2] = 0.
N400 _DLIMIT[3] = 0.

N410 _DLIMIT[4] = 0.
;Diversas chamadas de funes ; Outro ponto de partida

N420 _STATUS = calcposi(_STARTPOS,_MOVDIST,


_DLIMIT, _MAXDIST)

N430 _STATUS = calcposi(_STARTPOS,_MOVDIST,


_DLIMIT, _MAXDIST,,3)

N440 _STATUS = calcposi(_STARTPOS,_MOVDIST,


_DLIMIT, _MAXDIST,,1)
N450 _STARTPOS[0] = 5. ; Outro destino

N460 _STARTPOS[1] = 17.

N470 _STARTPOS[2] = 0.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 241
reas de proteo
3.3 Verificao quanto violao da rea de proteo, limite da rea de trabalho e limites de software

Cdigo de programa Comentrio


N480 _MOVDIST[0] = 0.

N490 _MOVDIST[1] =.

N500 _MOVDIST[2] = 0.
;Diversas chamadas de funes

N510 _STATUS = calcposi(_STARTPOS,_MOVDIST,


_DLIMIT, _MAXDIST,,14)

N520 _STATUS = calcposi(_STARTPOS,_MOVDIST,


_DLIMIT, _MAXDIST,, 6)
N530 _DLIMIT[1] = 2.
N540 _STATUS = calcposi(_STARTPOS,_MOVDIST,
_DLIMIT, _MAXDIST,, 6)

N550 _STARTPOS[0] = 27.

N560 _STARTPOS[1] = 17.1

N570 _STARTPOS[2] = 0.
N580 _MOVDIST[0] =.

N590 _MOVDIST[1] = 0.

N600 _MOVDIST[2] = 0.
N610 _DLIMIT[3] = 2.

N620 _STATUS = calcposi(_STARTPOS,_MOVDIST,


_DLIMIT, _MAXDIST,, 12)
N630 _STARTPOS[0] = 0.

N640 _STARTPOS[1] = 0.
N650 _STARTPOS[2] = 0.

N660 _MOVDIST[0] = 0.

N670 _MOVDIST[1] = 30.


N680 _MOVDIST[2] = 0.

N690 trans x10

N700 arot z45


N710 _STATUS = calcposi(_STARTPOS,_MOVDIST,
_DLIMIT, _MAXDIST)

N720 M30

Preparao do trabalho
242 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
reas de proteo
3.3 Verificao quanto violao da rea de proteo, limite da rea de trabalho e limites de software

Resultados das verificaes no exemplo:

Bloco n _STATUS _MAXDIST _MAXDIST Observaes


N... [0] (= X) [1] (= Y)
420 3123 8.040 4.594 rea de proteo SB N3 violada.
430 1122 20.000 11.429 No violada nenhuma monitorao da
rea de proteo e limite de rea de
trabalho.
440 1121 30.000 17.143 Apenas a monitorao dos limites de
software est ativa.
510 4213 0.000 0.000 Ponto de partida viola a rea de
proteo C4
520 0000 0.000 .000 rea de proteo C4 pr-ativada no
monitorada. Curso especificado pode
ser percorrido completamente.
540 2222 0.000 .000 O percurso restrito pelo limite da rea
de trabalho devido o _DLIMIT[1]=2.
620 4223 .000 0.000 A distncia para C4 de 4 mm ao total
devido o C2 e _DLIMIT[3]. A distncia
C2 N3 de 0.1 mm no limita o percurso.
710 1221 0.000 21.213 Frame ativo com translao e rotao. O
percurso permitido em _MOVDIST
vlido no sistema de coordenadas
(WCS) movido e girado.

Casos especiais e outros detalhes


Todos os dados de curso sempre so especificados em raio, mesmo para um eixo
transversal com cdigo G "DIAMON" ativo. Se o curso no pode ser percorrido
completamente pelo eixo envolvido, no valor de retorno _MAXDIST os cursos dos outros
eixos tambm so reduzidos proporcionalmente, de modo que o ponto final resultante esteja
na trajetria especificada.
permitido que no sejam definidos limites de software e limites da rea de trabalho ou
reas de proteo para um ou vrios dos eixos envolvidos. Todos limites somente sero
monitorados se os eixos envolvidos estiverem referenciados. Qualquer eixo rotativo
envolvido somente ser monitorado se no for um eixo Modulo.
A monitorao dos limites de software e dos limites de rea de trabalho realizada como no
percurso normal, em funo dos ajustes ativos (sinais de interface para seleo do limite de
software 1 ou 2, cdigo G WALIMON / WALIMOF, dados de ajuste para ativao individual
dos limites da rea de trabalho e para definir se a monitorao dos limites da rea de
trabalho deve considerar o raio da ferramenta ativa ou no).

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 243
reas de proteo
3.3 Verificao quanto violao da rea de proteo, limite da rea de trabalho e limites de software

Em determinadas transformaes cinemticas (p. ex. TRANSMIT) a posio dos eixos da


mquina no pode ser definida como nica a partir das posies do sistema de coordenadas
da pea de trabalho (WCS). Em um percurso normal a condio inequvoca normalmente
resulta do histrico e da condio de que um movimento contnuo em WCS deve
corresponder a um movimento contnuo dos eixos da mquina. Por isso que nestes casos,
na monitorao dos limites de software com o auxlio da funo CALCPOSI, se chama a
atual posio da mquina para desfazer a ambigidade. Eventualmente se deve programar
um STOPRE antes do CALCPOSI, para que a funo possa ser atribuda com posies
vlidas dos eixos da mquina.
No se pode assegurar que nas reas de proteo sempre seja mantida a mesma distncia
especificada no _DLIMIT[3] durante um movimento no percurso indicado. Dessa forma, em
caso de prolongamento do ponto final retornado no _MOVDIST no pode ocorrer nenhuma
violao de rea de proteo nesta distncia. Porm, a linha reta pode percorrer seu
percurso bem prxima a uma rea de proteo.

Indicao
Mais detalhes sobre limites de campos de trabalho esto disponveis no
/PG/ Manual de programao Fundamentos,
e sobre os limites de software, no
/FB1/ Manual de funes bsicas; Monitoraes de eixos, reas de proteo (A3).

Preparao do trabalho
244 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso 4
4.1 Aproximar posies codificadas (CAC, CIC, CDC, CACP, CACN)

Funo
Atravs dos seguintes comandos podemos deslocar eixos lineares e rotativos atravs de
nmeros de posio que esto registrados como posies fixas de eixo em tabelas de dados
da mquina. Este tipo de programao denominado de "Aproximao de posies
codificadas".

Sintaxe
CAC(<n>)
CIC(<n>)
CACP(<n>)
CACN(<n>)

Significado

CAC(<n>) Aproximar posio codificada de nmero de posio n


CIC(<n>) Aproximar a posio codificada, partindo-se do atual nmero de posio, n
locais de posio para frente (+n) ou para trs (n)
CDC(<n>) Aproximar posio codificada de nmero de posio n pelo percurso mais
curto
(apenas para eixos rotativos)
CACP(<n>) Aproximar posio codificada de nmero de posio n em sentido positivo
(apenas para eixos rotativos)
CACN(<n>) Aproximar posio codificada de nmero de posio n em sentido negativo
(apenas para eixos rotativos)
<n> Nmero de posio dentro da tabela de dados da mquina
Faixa de valores: 0, 1, (nmero mx. de locais na tabela - 1)

Exemplo: Aproximao de posies codificadas de um eixo de posicionamento


Cdigo de programao Comentrio
N10 FA[B]=300 ; Avano para eixo de posicionamento B
N20 POS[B]=CAC(10) ; Aproximar a posio codificada de nmero de posio 10
N30 POS[B]=CIC(-4) ; Aproximar a posio codificada do "atual nmero de
posio" - 4

Literatura
Manual de funes ampliadas; Eixos de indexao (T1)
Manual de funes para aes sincronizadas

Preparao do trabalho
Manual de programao 09/2011, 6FC5398-2BP40-2KA0 245
Comandos especiais de curso
4.2 Interpolao de Spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW,

4.2 Interpolao de Spline (ASPLINE, BSPLINE, CSPLINE, BAUTO,


BNAT, BTAN, EAUTO, ENAT, ETAN, PW, SD, PL)

Funo
Muitos contornos curvados nas peas de trabalho no podem ser descritos analiticamente
com preciso. Por isso que os contornos desse tipo so aproximados atravs de um nmero
limitado de pontos de interpolao, como no caso da digitalizao de superfcies. Para gerar
a superfcie digitalizada de uma pea de trabalho os pontos de interpolao devem ser
ligados em uma descrio de contorno. Isso permite a interpolao de Spline.
Uma Spline define uma curva formada por polinmios de 2 e 3 grau. As propriedades nos
pontos de interpolao de uma Splines podem ser definidas em funo do tipo de Spline
utilizado.

3
3

3 3

3
3

3DW3FRRUGHQDGDVHVSHFLILFDGDV

No SINUMERIK solution line esto disponveis os seguintes tipos de Spline:


A-Spline
B-Spline
C-Spline

Preparao do trabalho
246 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.2 Interpolao de Spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW,

Sintaxe
Geral:
ASPLINE X... Y... Z... A... B... C...
BSPLINE X... Y... Z... A... B... C...
CSPLINE X... Y... Z... A... B... C...
Na B-Spline tambm se programa:
PW=<n>
SD=2
PL=<valor>
Na A-Spline e C-Spline tambm se programa:
BAUTO / BNAT / BTAN
EAUTO / ENAT / ETAN

Significado

Tipo de interpolao de Spline:


ASPLINE Comando para ativar a interpolao de A-Spline
BSPLINE Comando para ativar a interpolao de B-Spline
CSPLINE Comando para ativar a interpolao de C-Spline
Os comandos ASPLINE, BSPLINE e CSPLINE so ativados modalmente e
pertencem ao grupo dos comandos de curso.

Pontos de interpolao e pontos de controle:


X... Y... Posies em coordenadas cartesianas
Z...
A... B...
C...

Peso de ponto (apenas para B-Spline):


PW Com o comando PW possvel ser programado um chamado "Peso de
ponto" para cada ponto de interpolao.
<n> "Peso de ponto"
Faixa de valores: 0 n 3
Incremento: 0.0001
Efeito: n>1 A curva guiada de forma mais
acentuada pelo ponto de controle.
n<1 A curva guiada de forma menos
acentuada pelo ponto de controle

Grau Spline (apenas para B-Spline):


SD Como padro usado um polinmio de 3 grau. Atravs da programao do
SD=2, mas tambm pode ser utilizado um polinmio de 2grau.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 247
Comandos especiais de curso
4.2 Interpolao de Spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW,

Distncia dos ns (apenas para B-Spline):


PL As distncias entre os ns so calculadas internamente de forma adequada.
O comando tambm pode processar as distncias indicadas dos ns, que
so indicadas como distncia parmetro-intervalo com o comando PL.
<valor> Comprimento de intervalo do parmetro
Faixa de valores: como dimenso de curso

Comportamento de transio no incio da curva Spline (apenas para A-Spline ou C-Spline):


BAUTO Nenhuma especificao para comportamento de transio. O incio resulta
da posio do primeiro ponto.
BNAT Curvatura zero
BTAN Transio tangencial para o bloco anterior (ajuste inicial)

Comportamento de transio no fim da curva Spline (apenas para A-Spline ou C-Spline):


EAUTO Nenhuma especificao para comportamento de transio. O fim resulta da
posio do ltimo ponto.
ENAT Curvatura zero
ETAN Transio tangencial para o bloco anterior (ajuste inicial)

%$872
($872

6HPSUGHILQLR

%1$7
(1$7

&XUYDWXUD]HUR

7UDQVLR
WDQJHQFLDO

%7$1 (7$1

Indicao
O comportamento de transio programvel no exerce nenhuma influncia sobre a B-
Spline. A B-Spline sempre tangencial ao polgono de controle no ponto de partida e ponto
final.

Condies gerais
A correo do raio da ferramenta aplicvel.
A monitorao de colises realizada na projeo sobre o plano.

Preparao do trabalho
248 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.2 Interpolao de Spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW,

Exemplos
Exemplo 1: B-Spline

Cdigo de programa 1 (todos os pesos 1)


N10 G1 X0 Y0 F300 G64
N20 BSPLINE
N30 X10 Y20
N40 X20 Y40
N50 X30 Y30
N60 X40 Y45
N70 X50 Y0

Cdigo de programa 2 (diferentes pesos)


N10 G1 X0 Y0 F300 G64
N20 BSPLINE
N30 X10 Y20 PW=2
N40 X20 Y40
N50 X30 Y30 PW=0.5
N60 X40 Y45
N70 X50 Y0

Cdigo de programa 3 (polgono de controle) Comentrio


N10 G1 X0 Y0 F300 G64
N20 ; no aplicado
N30 X10 Y20
N40 X20 Y40
N50 X30 Y30
N60 X40 Y45
N70 X50 Y0

<

3ROJRQRGHFRQWUROH
7RGRVSHVRV
 'LIHUHQWHVSHVRV








;

     

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 249
Comandos especiais de curso
4.2 Interpolao de Spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW,

Exemplo 2: C-Spline, no incio e no fim da curvatura zero

Cdigo de programa
N10 G1 X0 Y0 F300
N15 X10
N20 BNAT ENAT
N30 CSPLINE X20 Y10
N40 X30
N50 X40 Y5
N60 X50 Y15
N70 X55 Y7
N80 X60 Y20
N90 X65 Y20
N100 X70 Y0
N110 X80 Y10
N120 X90 Y0
N130 M30

<










;

        

Preparao do trabalho
250 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.2 Interpolao de Spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW,

Exemplo 3: Interpolao de Spline (A-Spline) e transformao de coordenadas (ROT)


Programa principal:

Cdigo de programa Comentrio


N10 G00 X20 Y18 F300 G64 ; Aproximar o ponto de partida.
N20 ASPLINE ; Ativar o tipo de interpolao A-Spline.
N30 CONTORNO ; Primeira chamada da subrotina.
N40 ROT Z-45 ; Transformao de coordenadas: Rotao do WCS em -45 em
torno do eixo Z.
N50 G00 X20 Y18 ; Aproximar o ponto de partida do contorno.
N60 CONTORNO ; Segunda chamada da subrotina.
N70 M30 ; Fim do programa

Subrotina "Contorno" (contm as coordenadas dos pontos de interpolao):

Cdigo de programa
N10 X20 Y18
N20 X10 Y21
N30 X6 Y31
N40 X18 Y31
N50 X13 Y43
N60 X22 Y42
N70 X16 Y58
N80 X33 Y51
N90 M1

Na figura a seguir, alm da curva Spline, resultante do exemplo de programa (ASPLINE),


tambm esto contidas as curvas Spline que resultariam da ativao de uma interpolao B-
Spline ou C-Spline (BSPLINE, CSPLINE):

$63/,1(
%63/,1(
< &63/,1(

13ULPHLUDFKDPDGDGHVXEURWLQD




1 6HJXQGDFKDPDGD
GHVXEURWLQD






      ;

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 251
Comandos especiais de curso
4.2 Interpolao de Spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW,

Outras informaes
Vantagens da interpolao de Spline
Atravs do uso da interpolao de Spline so obtidas as vantagens mencionadas a seguir,
em contrapartida ao uso de blocos de retas G01:
Reduo do nmero de blocos de programa de pea necessrios para descrio do
contorno
Trajetria suave de curvas e de melhor aspecto esttico nas transies entre os blocos de
programa de pea

Propriedades e aplicao dos diversos tipos de Spline

Tipo de Spline Propriedades e aplicao

A-Spline

$6SOLQH $NLPD6SOLQH

3 3
3
3
3

3

3

3DW3FRRUGHQDGDVHVSHFLILFDGDV

Propriedades:
Percorre exatamente pelos pontos de interpolao especificados.
A trajetria da curva tangencial, mas nem sempre curvada.
Quase no gera nenhuma ondulao indesejada.
A rea de influncia de alteraes de pontos de interpolao local, isto , a
alterao de um ponto de interpolao somente tem efeito at 6 pontos de
interpolao vizinhos.

Aplicao:
A A-Spline principalmente indicada para interpolao de trajetrias de curvas
com grandes variaes de inclinao (p. ex. trajetrias de curvas em forma de
escada).

Preparao do trabalho
252 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.2 Interpolao de Spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW,

Tipo de Spline Propriedades e aplicao

B-Spline

%6SOLQH

3ROJRQRGHFRQWUROH 3 3
3
3
3

3

3

3DW3FRRUGHQDGDVHVSHFLILFDGDV

Propriedades:
No percorre pelos pontos de interpolao especificados, mas apenas na
proximidade dos mesmos. As curvas so direcionadas pelos pontos de
interpolao. Tambm se pode controlar a trajetria de curvas atravs da
avaliao de peso dos pontos de interpolao com um fator.
A trajetria de curvas tangencial e sempre curvada.
No gera nenhuma ondulao indesejada.
A rea de influncia de alteraes de pontos de interpolao local, isto , a
alterao de um ponto de interpolao somente tem efeito at 6 pontos de
interpolao vizinhos.

Aplicao:
A princpio o B-Spline indicado como interface para sistemas CAD.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 253
Comandos especiais de curso
4.2 Interpolao de Spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW,

Tipo de Spline Propriedades e aplicao

C-Spline

&6SOLQH 6SOLQHFELFD

3
3 3
3

3

3

3

3DW3FRRUGHQDGDVHVSHFLILFDGDV

Propriedades:
Percorre exatamente pelos pontos de interpolao especificados.
A trajetria de curvas tangencial e sempre curvada.
Gera ondulaes indesejadas com freqncia, principalmente em pontos
com grandes variaes de inclinao.
A rea de influncia das variaes de pontos de interpolao global, isto ,
a variao de um ponto de interpolao atua pela trajetria inteira da curva.

Aplicao:
O C-Spline pode ser bem empregado se os pontos de interpolao estiverem
em uma curva analtica conhecida (crculo, parbola, hiprbole)

Preparao do trabalho
254 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.2 Interpolao de Spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW,

Comparao dos trs tipos de Spline usando os mesmos pontos de interpolao

3
3
3
3
3

3

3

$6SOLQH
%6SOLQH
&6SOLQH

Nmero mnimo de blocos de Spline


Os cdigos G ASPLINE, BSPLINE e CSPLINE ligam os pontos de fim de bloco com Splines.
Para isso, antecipadamente, deve ser calculada simultaneamente uma srie de blocos
(pontos finais). O tamanho padro do buffer para os clculos de 10 blocos. Nem toda
informao de bloco um ponto final de Spline. Entretanto, o comando requer de 10 blocos
uma determinada quantidade de blocos de ponto final Spline:

Tipo de
Nmero mnimo de blocos de Spline
Spline
A-Spline: De cada 10 blocos, no mnimo 4 devem ser blocos Spline.
Os blocos de comentrio e clculos de parmetros no so considerados neste caso.
B-Spline: De cada 10 blocos, no mnimo 6 devem ser blocos Spline.
Os blocos de comentrio e clculos de parmetros no so considerados neste caso.
C-Spline: A quantidade mnima requerida em blocos Spline resulta da seguinte somatria:
Valor do MD20160 $MC_CUBIC_SPLINE_BLOCKS + 1
No MD20160 se especifica a quantidade de pontos atravs dos quais calculado o
segmento de Spline. O ajuste padro 8. Por isso que, em caso padro, de cada 10
blocos pelo menos 9 devem ser blocos Spline.

Indicao
Se o valor ficar abaixo do tolervel ser emitido um alarme, e o mesmo ocorre se um eixo
envolvido com a Spline for programado como eixo de posicionamento.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 255
Comandos especiais de curso
4.2 Interpolao de Spline (ASPLINE, BSPLINE, CSPLINE, BAUTO, BNAT, BTAN, EAUTO, ENAT, ETAN, PW,

Agrupamento de blocos Spline curtos


Na interpolao de Spline podem existir blocos Spline curtos, que causam uma reduo
desnecessria da velocidade de percurso. Com a funo "Agrupamento de blocos Spline
curtos" estes blocos podem ser agrupados de modo que o tamanho resultante dos blocos
seja suficiente e que no resulte em uma reduo da velocidade de percurso.
A funo ativada atravs do dado de mquina especfico de canal:
MD20488 $MC_SPLINE_MODE (ajuste da interpolao de Spline)
Literatura:
Manual de funes bsicas; Modo de controle da trajetria, Parada exata, LookAhead (B1),
Captulo: Agrupamento de blocos Spline curtos

Preparao do trabalho
256 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.3 Agrupamento de Spline (SPLINEPATH)

4.3 Agrupamento de Spline (SPLINEPATH)

Funo
Os eixos que so interpolados no agrupamento de Spline so selecionados com o comando
SPLINEPATH. A interpolao de Splines possvel at com oito eixos.

Indicao
Se o SPLINEPATH no for programado de forma explcita, ento so deslocados os
primeiros trs eixos do canal do agrupamento de Spline.

Sintaxe
A definio do agrupamento de Spline realizado em um bloco especial:
SPLINEPATH(n,X,Y,Z,)

Significado

SPLINEPATH Comando para definio de um agrupamento de Spline


n =1 (valor fixo)
X,Y,Z, Identificador dos eixos de trajetria interpolados no agrupamento de
Spline

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 257
Comandos especiais de curso
4.3 Agrupamento de Spline (SPLINEPATH)

Exemplo: Agrupamento de Spline com trs eixos de percurso


Cdigo de programa Comentrio
N10 G1 X10 Y20 Z30 A40 B50 F350
N11 SPLINEPATH(1,X,Y,Z) ; Agrupamento de Spline
N13 CSPLINE BAUTO EAUTO X20 Y30 Z40 A50 B60 ; C-Spline
N14 X30 Y40 Z50 A60 B70 ; Pontos de apoio

N100 G1 X Y ; Desseleo da interpolao
de Spline

=
63/,1(3$7+ ;<=

<

Preparao do trabalho
258 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.4 Compresso de blocos NC (COMPON, COMPCURV, COMPCAD, COMPOF)

4.4 Compresso de blocos NC (COMPON, COMPCURV, COMPCAD,


COMPOF)

Funo
Sistemas CAD e CAM normalmente fornecem blocos lineares que mantm a preciso
parametrizada. Em contornos complexos isso resulta em uma elevada quantidade de dados
e eventuais segmentos curtos de percurso. Estes segmentos curtos de percurso limitam a
velocidade de processamento.
Atravs da aplicao de uma funo de compressor se realiza uma aproximao do contorno
especificado por blocos lineares atravs de blocos de polinmios. Com isso resultam as
seguintes vantagens:
Reduo do nmero necessrio de blocos de programa de pea para descrio do
contorno da pea
Transies constantes de blocos
Elevao das velocidades de percurso mximas
Esto disponveis as seguintes funes de compressor:
COMPON
As transies de blocos somente so constantes na velocidade enquanto a acelerao
dos eixos envolvidos permitir a realizao de saltos nas transies de blocos.
COMPCURV
As transies de blocos so constantes na acelerao. Com isso se assegura uma
distribuio suave da velocidade e tambm da acelerao de todos eixos nas transies
dos blocos.
COMPCAD
Compresso intensiva em tempo de processamento e em espao de memria que
otimiza a qualidade superficial e a velocidade. O COMPCAD somente deve ser utilizado
se as medidas do programa CAD/CAM no garantirem a melhora de superfcie.
A funo de compressor encerrada com COMPOF.

Sintaxe
COMPON
COMPCURV
COMPCAD
COMPOF

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 259
Comandos especiais de curso
4.4 Compresso de blocos NC (COMPON, COMPCURV, COMPCAD, COMPOF)

Significado

COMPON: Comando para ativao da funo de compressor COMPON.


Efeito: modal
COMPCURV: Comando para ativao da funo de compressor COMPCURV.
Efeito: modal
COMPCAD: Comando para ativao da funo de compressor COMPCAD.
Efeito: modal
COMPOF: Comando para desativar a funo de compressor atualmente ativa.

Indicao
Para uma melhoria adicional da qualidade superficial pode ser usada a funo de
suavizao G642 e a limitao de solavancos SOFT. Estes comandos devem ser escritos no
incio do programa.

Condies gerais
Geralmente a compresso de blocos NC executada apenas em blocos lineares (G1).
Somente so comprimidos os blocos que apresentarem uma sintaxe simples:
N... G1X... Y... Z... F... ; Comentrio
Todos demais blocos so processados sem serem alterados (sem compresso).
Os blocos de movimento com endereos ampliados como C=100 ou A=AC(100) tambm
so comprimidos.
Os valores de posio no precisam ser programados diretamente, eles tambm podem
ser especificados indiretamente atravs de instrues de parmetros, p.ex.
X=R1*(R2+R3).
Se o opcional "Transformao de orientao" estiver disponvel, tambm podem ser
comprimidos os blocos NC onde a orientao de ferramenta (e eventualmente a rotao
da ferramenta) estiver programada atravs de vetores (veja "Compresso da orientao
(COMPON, COMPCURV, COMPCAD) [Pgina 366]").
O processo de compresso cancelado por qualquer outra instruo NC, como p. ex. a
emisso de uma funo auxiliar.

Preparao do trabalho
260 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.4 Compresso de blocos NC (COMPON, COMPCURV, COMPCAD, COMPOF)

Exemplos
Exemplo 1: COMPON

Cdigo de programa Comentrio


N10 COMPON ; Funo de compressor COMPON ativada.
N11 G1 X0.37 Y2.9 F600 ; G1 antes do ponto final e avano.
N12 X16.87 Y.698
N13 X16.865 Y.72
N14 X16.91 Y.799

N1037 COMPOF ; Funo de compressor desativada.

Exemplo 2: COMPCAD

Cdigo de programa Comentrio


G00 X30 Y6 Z40
G1 F10000 G642 ; Funo de suavizao G642 ativada.
SOFT ; Limitao de solavancos SOFT ativada.
COMPCAD ; Funo de compressor COMPCAD ativada.
STOPFIFO
N24050 Z32.499
N24051 X41.365 Z32.500
N24052 X43.115 Z32.497
N24053 X43.365 Z32.477
N24054 X43.556 Z32.449
N24055 X43.818 Z32.387
N24056 X44.076 Z32.300

COMPOF ; Funo de compressor desativada.
G00 Z50
M30

Literatura
Manual de funes bsicas; Modo de controle da trajetria, Parada exata, LookAhead (B1),
Captulo: "Compresso de blocos NC"

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 261
Comandos especiais de curso
4.5 Interpolao de polinmios (POLY, POLYPATH, PO, PL)

4.5 Interpolao de polinmios (POLY, POLYPATH, PO, PL)

Funo
Na verdade trata-se de uma interpolao de polinmios (POLY) e no de um tipo de
interpolao de Splines. Em primeira linha ela age como interface para a programao de
curvas Spline criadas externamente. Aqui os segmentos Spline podem ser programados
diretamente.
Este tipo de interpolao alivia o NC dos clculos dos coeficientes de polinmio. Ela pode
perfeitamente ser aplicada se os coeficientes so diretamente fornecidos de um sistema
CAD ou ps-processador.

Sintaxe
Polinmio de 3 grau:
POLY PO[X]=(xe,a2,a3) PO[Y]=(ye,b2,b3) PO[Z]=(ze,c2,c3) PL=n
Polinmio de 5grau e nova sintaxe de polinmio:
POLY X=PO(xe,a2,a3,a4,a5) Y=PO(ye,b2,b3,b4,b5) Z=PO(ze,c2,c3,c4,c5)
PL=n
POLYPATH("AXES","VECT")

Indicao
A soma dos coeficientes de polinmio e eixos programados em um bloco NC no pode
exceder o nmero mximo permitido de eixos por bloco.

Significado

POLY : Ativao da interpolao de polinmios com um bloco


com POLY.
POLYPATH : A interpolao de polinmios pode ser selecionada
para os dois grupos de eixos, AXIS ou VECT
PO[identificador de eixo/ Pontos finais e coeficientes de polinmio
varivel] :
X, Y, Z : Identificador de eixo
xe, ye, ze : Especificao da posio final do respectivo eixo;
faixa de valores como dimenso de curso

Preparao do trabalho
262 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.5 Interpolao de polinmios (POLY, POLYPATH, PO, PL)

a2, a3, a4, a5 : Os coeficientes a2, a3, a4, e a5 so escritos com seu
respectivo valor; faixa de valores como na dimenso
de curso. O ltimo coeficiente em cada caso pode ser
omitido se o valor for zero.
PL : Comprimento do intervalo de parmetro no qual est
definido o polinmio (faixa de definio da funo
f(p)).
O intervalo sempre inicia em 0, p pode aceitar valores
de 0 at PL.
Faixa de valores terica para PL:
0,0001 99 999,9999
Nota:
O valor PL vale para o bloco em que ele se encontra.
Se no foi programado PL, ento PL=1.

Ativao e desativao da interpolao de polinmios


A interpolao de polinmios ativada no programa de pea atravs do comando G POLY.
O comando G POLY pertence ao 1grupo G, junto com o G0, G1, G2, G3, ASPLINE, BSPLINE
e CSPLINE.
Os eixos que foram programados apenas com nomes e ponto final (p. ex. X10) so
deslocados linearmente. Se todos os eixos de um bloco NC foram programados desta forma,
o comando se comporta como no caso do G1.
De modo implcito a interpolao de polinmios novamente desativada atravs da
programao de outro comando do 1grupo G (p.ex. G0, G1).

Coeficiente de polinmio
Os valores PO (PO[]=) e ...=PO(...) especifica todos os coeficientes de polinmio
para um eixo. Dependendo do grau do polinmio mais valores so especificados separados
por vrgula. Dentro de um bloco so possveis diferentes graus de polinmio para diferentes
eixos.

Subrotina POLYPATH
Com POLYPATH(...) possvel liberar a interpolao de polinmios de modo seletivo para
determinados grupos de eixos.

Apenas os eixos de percurso e eixos adicionais: POLYPATH("AXES")


Somente eixos de orientao: POLYPATH ("VECT")
(no processo com transformao de orientao)
Os eixos que no forem liberados so deslocados linearmente.
Como padro a interpolao de polinmios liberada para os dois grupos de eixos.
Atravs da programao sem indicar o parmetro POLYPATH( ) desativa-se a interpolao
de polinmios para todos os eixos.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 263
Comandos especiais de curso
4.5 Interpolao de polinmios (POLY, POLYPATH, PO, PL)

Exemplo
Cdigo de programa Comentrio
N10 G1 X Y Z F600

N11 POLY PO[X]=(1,2.5,0.7) PO[Y]=(0.3,1,3.2) PL=1.5 ; Interpolao de polinmios ativada


N12 PO[X]=(0,2.5,1.7) PO[Y]=(2.3,1.7) PL=3

...

N20 M8 H126

N25 X70 PO[Y]=(9.3,1,7.67) PL=5 ; especificaes mistas para os eixos


N27 PO[X]=(10,2.5) PO[Y]=(2.3) ; nenhum PL programado; ento PL=1
N30 G1 X Y Z. ; Interpolao de polinmios desativada

Exemplo: Nova sintaxe de polinmio

Sintaxe de polinmio ainda aplicada Nova sintaxe de polinmio


PO[identificador de eixo]=(.. , ..) Identificador de eixo=PO(.. , ..)
PO[PHI]=(.. , ..) PHI=PO(.. , ..)
PO[PSI]=(.. , ..) PSI=PO(.. , ..)
PO[THT]=(.. , ..) THT=PO(.. , ..)
PO[]=(.. , ..) PO(.. , ..)
PO[varivel]=IC(.. , ..) varivel=PO IC(.. , ..)

Exemplo: Curva no plano X/Y


Programao

Cdigo de programa

N9 X0 Y0 G90 F100

N10 POLY PO[Y]=(2) PO[X]=(4,0.25) PL=4

Preparao do trabalho
264 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.5 Interpolao de polinmios (POLY, POLYPATH, PO, PL)

Trajetria das curvas X(p) e Y(p)

<

 3RQWRILQDO

S
;
 3RQWRILQDO


([HPSOR
 1;<*
132/<32><@
  32>;@
 3/ 

     3/ S

Trajetria da curva no plano XY

<

5HVXOWDGRQRSODQR;<



 3/



     ;

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 265
Comandos especiais de curso
4.5 Interpolao de polinmios (POLY, POLYPATH, PO, PL)

Descrio
A equao geral da funo de polinmio :

f(p)= a0 + a1p + a2p2 +. . . + anpn


com: an: coeficientes constantes
p: Parmetros
No comando numrico podem ser programados no mx. polinmios de 5grau:

f(p)= a0 + a1p + a2p2 + a3p3 + a4p4 + a5p5

Ao atribuir os coeficientes com valores concretos, podem ser criadas as mais diferentes
formas de curvas, como retas, parbolas e funes exponenciais.
Uma reta gerada atravs de a2 = a3 = a4 = a5 = 0:

f(p) = a0 + a1p

Ainda se aplica:

a0: Posio de eixo no fim do bloco precedente


p = PL

a1 = (xE - a0 - a2*p2 - a3*p3) / p

possvel programar polinmios sem que a interpolao de polinmios seja ativada atravs
do comando G POLY. Porm, neste caso os polinmios programados no sero interpolados,
apenas os pontos finais programados dos eixos sero aproximados linearmente (G1).
Somente depois de uma ativao explcita da interpolao de polinmios no programa de
pea (POLY) que os polinmios programados sero executados como tais.

Particularidade: Polinmio de denominador


Para eixos geomtricos tambm se pode programar um polinmio de denominador comum
sem especificar um nome de eixo com PO[]=(), isto , se interpola o movimento dos eixos
geomtricos quociente de dois polinmios.
Com isso possvel representar de forma exata segmentos cnicos (circunferncia, elipse,
parbola, hiprbole).
Exemplo:

Cdigo de programa Comentrio


POLY G90 X10 Y0 F100 ; Eixos geomtricos movimentam-se
linearmente at a posio X10 Y0.
PO[X]=(0,10) PO[Y]=(10) PO[]=(2,1) ; Eixos geomtricos movimentam-se em
quadrante at X0 Y10.

Preparao do trabalho
266 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.5 Interpolao de polinmios (POLY, POLYPATH, PO, PL)

O coeficiente constante (a0) do polinmio de denominador sempre adotado com 1. O ponto


final programado independe do G90/G91.
A partir dos valores programados o X(p) e U(p) so calculados como:

X(p)=(10 - 10 * p2)/(1 + p2)


Y(p)=20 * p/(1 + p2)
com 0 p 1

Com base na programao dos pontos iniciais, pontos finais, coeficiente a2 e PL=1 temos os
seguintes resultados intermedirios:

Numerador 10 + 0 * p - 10 * p2
(X)=
Numerador 0 + 20 * p + 0 * p2
(Y)=
Denominador 1 + p2
=

<



emitido um alarme se for programado um polinmio de denominador com zeros dentro do


intervalo [0,PL]. O polinmio de denominador no tem nenhum efeito sobre o movimento
de eixos adicionais.

Indicao
Uma correo do raio de compensao pode ser ativada com G41 e G42 em conjunto com a
interpolao de polinmios, depois ser aplicada para interpolao linear ou circular.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 267
Comandos especiais de curso
4.6 Referncia ajustvel do percurso (SPATH, UPATH)

4.6 Referncia ajustvel do percurso (SPATH, UPATH)

Funo
Durante a interpolao o usurio pode fazer duas diferentes relaes entre os eixos
FGROUP determinantes de velocidade e os demais eixos de percurso: Por ltimo, devem ser
conduzidos ou sincronizados com o percurso S ou sincronizados com o parmetro de curva
U dos eixos FGROUP.
Ambos os tipos de interpolao de percurso so usados em diferentes aplicaes e podem
ser comutados entre eles atravs dos dois comandos de linguagem ativados modalmente no
45grupo de cdigos G, o SPATH e o UPATH.

Sintaxe
SPATH
UPATH

Significado

SPATH: A referncia de percurso para eixos FGROUP o comprimento do arco


UPATH: A referncia de percurso para eixos FGROUP o parmetro de curva

Indicao
UPATH e SPATH tambm determinam a relao do polinmio de palavra F (FPOLY, FCUB,
FLIN) com o movimento de percurso.

Condies gerais
A referncia de percurso ajustada no tem significado:
na interpolao linear e circular
em blocos de rosca
quando todos os eixos de percurso esto contidos no FGROUP.

Exemplos
Exemplo 1:
No exemplo a seguir em um quadrado com 20 mm de lado se realiza a suavizao com
G643. Os desvios mximos do contorno exato so definidos para cada eixo atravs do dado
de mquina especfico de eixo MD33100$MA_COMPRESS_POS_TOL[<n>].

Preparao do trabalho
268 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.6 Referncia ajustvel do percurso (SPATH, UPATH)

Cdigo de programa Comentrio


N10 G1 X Y Z F500
N20 G643 ; Suavizao interna de bloco com G643
N30 XO Y0
N40 X20 Y0 ; Comprimento de canto (mm) para os eixos
N50 X20 Y20
N60 X0 Y20
N70 X0 Y0
N100 M30

Exemplo 2:
O exemplo a seguir ilustra a diferena entre os dois tipos de controle de movimento. Nas
duas vezes o pr-ajuste FGROUP(X,Y,Z) est ativo.

63$7+ 83$7+
$ $ ; ; $ $ ; 6457 ;
 

 ;  ;

'LIHUHQWHVUHODHVJHRPWULFDVHQWUHRVHL[RV
FRP63$7+H83$7+

Cdigo de programa
N10 G1 X0 A0 F1000 SPATH
N20 POLY PO[X]=(10,10) A10

Ou seja:

Cdigo de programa
N10 G1 X0 F1000 UPATH
N20 POLY PO[X]=(10,10) A10

No bloco N20 o curso S dos eixos FGROUP depende do quadrado do parmetro de curva U.
Por isso que ao longo do curso de X resultam diferentes posies do eixo sincronizado A,
dependendo de quem estiver ativo, SPATH ou UPATH.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 269
Comandos especiais de curso
4.6 Referncia ajustvel do percurso (SPATH, UPATH)

Outras informaes
Durante a interpolao de polinmios - e aqui entendemos a interpolao de polinmios no
seu sentido direto (POLY), todos os tipos de interpolao Spline (ASPLINE, BSPLINE,
CSPLINE) e interpolao linear com funo de compressor (COMPON, COMPCURV) - as
posies de todos os eixos de percurso i so determinadas atravs de polinmios pi(U).
Neste caso, o parmetro de curva U se move de 0 at 1 dentro de um bloco NC, sendo,
portanto, normalizado.
Atravs do comando de linguagem FGROUP, dentro dos eixos de trajetria, podem ser
selecionados os eixos que devem relacionar-se com o avano programado. Porm, uma
interpolao com velocidade constante no curso S destes eixos normalmente significa uma
modificao no constante do parmetros de curva U durante a interpolao de polinmios.
Comportamento de comando com Reset e dados de mquina e dados de opcionais
Aps o Reset o cdigo G (45grupo de cdigos G) determinado pelo MD20150
$MC_GCODE_RESET_VALUES[44] est ativo. Para permanecer compatvel com
instalaes existentes, SPATH ajustado como valor padro.
O valor de ajuste bsico para o tipo de suavizao definido com o
MD20150$MC_GCODE_RESET_VALUES[9] (10 grupo de cdigos G).
O dado de mquina especfico de eixo MD33100 $MA_COMPRESS_POS_TOL[<n>] no
possui um significado maior: ele contm as tolerncias para a funo de compresso e para
a suavizao com o G642.

Preparao do trabalho
270 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.7 Medio com apalpador comutvel (MEAS, MEAW)

4.7 Medio com apalpador comutvel (MEAS, MEAW)

Funo
Com a funo "Medio com apalpador comutvel" as posies reais na pea de trabalho
so aproximadas e na borda de contato do apalpador de medio realizada a medio das
posies para todos os eixos programados no bloco de medio e depois realizada a
gravao dos valores para cada eixo na clula de memria correspondente.

Programao de blocos de medio


Para a programao da funo esto disponveis os seguintes dois comandos:
MEAS
Com o comando MEAS cancelado o curso restante entre a posio real e a posio
nominal.
MEAW
O comando MEAW empregado em tarefas de medio onde a posio programada deve
ser aproximada em todas as ocasies.
O MEAS e o MEAW esto ativos por blocos e so programados juntos com instrues de
movimento. Os avanos e tipos de interpolao (G0, G1, ...), assim como o nmero de eixos,
devem ser adaptados ao respectivo problema de medio.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 271
Comandos especiais de curso
4.7 Medio com apalpador comutvel (MEAS, MEAW)

Leitura dos resultados de medio


Os resultados de medio para os eixos analisados com apalpador de medio esto
disposio nas seguintes variveis:
$AA_MM[<eixo>]
Resultados de medio no sistema de coordenadas da mquina
$AA_MW[<eixo>]
Resultados de medio no sistema de coordenadas da pea de trabalho
No se gera nenhuma parada de pr-processamento durante a leitura destas variveis.

Indicao
Com STOPRE deve ser programada uma parada de pr-processamento na posio
adequada do programa NC. Caso contrrio podem ser lidos valores incorretos.

Sintaxe
MEAS=<TE> G... X... Y... Z...
MEAW=<TE> G... X... Y... Z...

Significado

MEAS Comando: Medio com anulao do curso restante


Efeito: por blocos
MEAW Comando: Medio sem anulao do curso restante
Efeito: por blocos
<TE> Evento de disparo para partida da medio
Tipo: INT
Faixa de -2, -1, 1, 2
valores: Nota:
Existem no mximo 2 apalpadores de medio (dependendo
do nvel de expanso).
Significado:
(+)1 Flancos crescentes do apalpador de medio 1 (na entrada de
medio 1)
-1 Flancos decrescentes do apalpador de medio 1 (na entrada de
medio 1)
(+)2 Flancos crescentes do apalpador de medio 2 (na entrada de
medio 2)
-2 Flancos decrescentes do apalpador de medio 2 (na entrada de
medio 2)
Nota:
Existem no mximo 2 apalpadores de medio (dependendo do nvel de
expanso).
G... Tipo de interpolao, p.ex. G0, G1, G2 ou G3
X... Y... Ponto final em coordenadas cartesianas
Z...

Preparao do trabalho
272 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.7 Medio com apalpador comutvel (MEAS, MEAW)

Exemplo
Cdigo de programa Comentrio
N10 MEAS=1 G1 F1000 X100 Y730 Z40 ; Bloco de medio com apalpador de
medio da primeira entrada de medio
e interpolao de retas. A parada de
pr-processamento gerada
automaticamente.
...

Outras informaes
Estado do pedido de medio
Se no programa for necessria uma avaliao para saber se o apalpador de medio
realmente est ativo, ento se pode consultar a varivel de estado $AC_MEA[n] (n= nmero
do apalpador):

Valor Significado
0 Tarefa de medio no preenchida
1 Tarefa de medio concluda com sucesso (o apalpador de medio foi acionado)

Indicao
Quando o apalpador de medio for defletido, no programa, a varivel passa para 1. Na
partida de um bloco de medio a varivel automaticamente passada para o estado inicial
do apalpador.

Coleta de valores de medio


So coletadas as posies de todos eixos de percurso e de posicionamento do bloco
(nmero mximo de eixos est em funo da configurao do comando). Com o MEAS o
movimento desacelerado controladamente depois de ser ativado o apalpador de medio.

Indicao
Se em um bloco de medio foi programado um eixo geomtrico, ento so armazenados
os valores de medio dos atuais eixos geomtricos.
Se em um bloco de medio foi programado um eixo envolvido em uma transformao,
ento so armazenados os valores de medio de todos eixos envolvidos com esta
transformao.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 273
Comandos especiais de curso
4.8 Funo de medio ampliada (MEASA, MEAWA, MEAC) (opcional)

4.8 Funo de medio ampliada (MEASA, MEAWA, MEAC) (opcional)

Funo
Na medio por eixos podem ser usados vrios apalpadores de medio e vrios sistemas
de medio.
Com o comando MEASA ou MEAWA so coletados at quatro valores de medio para o eixo
programado em cada medio e estes so armazenados em variveis de sistema conforme
o evento de disparo.
Pedidos contnuos de medio podem ser realizados com o comando MEAC. Neste caso os
resultados das medies so armazenados em variveis FIFO. Tambm para MEAC so
possveis at quatro valores por medio.

Leitura dos resultados de medio


Os resultados de medio esto disponveis nas seguintes variveis:
$AA_MM1...4[<eixo>]
Resultados de medio no sistema de coordenadas da mquina
$AA_MW1...4[<eixo>]
Resultados de medio no sistema de coordenadas da pea de trabalho

Sintaxe
MEASA[<eixo>]=(<modo>,<TE1>,...,<TE4>)
MEAWA[<eixo>]=(<modo>,<TE1>,...,<TE4>)
MEAC[<eixo>]=(<modo>,<memria de medio>,<TE1>,...,<TE4>)

Preparao do trabalho
274 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.8 Funo de medio ampliada (MEASA, MEAWA, MEAC) (opcional)

Indicao
MEASA e MEAWA esto ativos por blocos e podem ser programados juntos em um bloco. Se
MEASA/MEAWA for programado junto com MEAS/MEAW em um bloco, ser gerada uma
mensagem de erro.

Significado

MEASA Comando: Medio por eixo com anulao do curso restante


Efeito: por blocos
MEAWA Comando: Medio por eixo sem anulao do curso restante
Efeito: por blocos
MEAC Comando: Medio contnua por eixo sem anulao do curso restante
Efeito: por blocos
<eixo> Nome do eixo de canal utilizado na medio
<modo> Nmero de dois dgitos para especificao do modo de operao (modo
de medio e sistema de medio)
Modo de medio (casa da unidade):
0 Cancelar pedido de medio.
1 At 4 eventos de disparo diferentes ativados
simultaneamente.
2 At 4 eventos de disparo ativados sucessivamente.
3 At 4 eventos de disparo ativados consecutivamente, mas
sem monitorao do evento de disparo 1 no START (os
alarmes 21700/21703 so suprimidos).
Nota:
Este modo no possvel com o MEAC.
Sistema de medio (casa da dezena):
0 (ou sem indicao) sistema de medio ativo
1 Sistema de medio 1
2 Sistema de medio 2
3 ambos sistemas de medio
<TE> Evento de disparo para partida da medio
Tipo: INT
Faixa de valores: -2, -1, 1, 2
Significado:
(+)1 Flancos crescentes do apalpador de medio 1
-1 Flancos decrescentes do apalpador de medio 1
(+)2 Flancos crescentes do apalpador de medio 2
-2 Flancos decrescentes do apalpador de medio 2
<memria de Nmero do FIFO (memria de circulao)
medio>

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 275
Comandos especiais de curso
4.8 Funo de medio ampliada (MEASA, MEAWA, MEAC) (opcional)

Exemplos
Exemplo 1: Medio por eixo com anulao de curso restante em modo 1 (avaliao em
ordem de tempo)
a) com 1 sistema de medio

Cdigo de programa Comentrio


...
N100 MEASA[X]=(1,1,-1) G01 X100 F100 ; Medio no modo 1 com sistema de
medio ativo. Esperar pelo sinal
de medio com flanco crescente/
decrescente do apalpador de
medio 1 no percurso at X=100.
N110 STOPRE ; Parada de pr-processamento
N120 IF $AC_MEA[1]==FALSE GOTOF FIM ; Controlar sucesso da medio.
N130 R10=$AA_MM1[X] ; Armazenar valor de medio
correspondente ao primeiro evento
de disparo (flanco crescente)
programado.
N140 R11=$AA_MM2[X] ; Armazenar valor de medio
correspondente ao segundo evento
de disparo (flanco decrescente)
programado.
N150 FIM:

b) com 2 sistemas de medio

Cdigo de programa Comentrio


...
N200 MEASA[X]=(31,1,-1) G01 X100 F100 ; Medio no modo 1 com ambos
sistemas de medio. Esperar pelo
sinal de medio com flanco
crescente/decrescente do apalpador
de medio 1 no percurso at
X=100.
N210 STOPRE ; Parada de pr-processamento
N220 IF $AC_MEA[1]==FALSE GOTOF FIM ; Controlar sucesso da medio.
N230 R10=$AA_MM1[X] ; Salvar o valor de medio do
sistema de medio 1 com flanco
crescente.
N240 R11=$AA_MM2[X] ; Salvar o valor de medio do
sistema de medio 2 com flanco
crescente.
N250 R12=$AA_MM3[X] ; Salvar o valor de medio do
sistema de medio 1 com flanco de
medio decrescente.
N260 R13=$AA_MM4[X] ; Salvar o valor de medio do
sistema de medio 2 com flanco de
medio decrescente.
N270 FIM:

Preparao do trabalho
276 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.8 Funo de medio ampliada (MEASA, MEAWA, MEAC) (opcional)

Exemplo 2: Medio por eixo com anulao de curso restante em modo 2 (avaliao em
ordem de programao)

Cdigo de programa Comentrio


...
N100 MEASA[X]=(2,1,-1,2,-2) G01 X100 F100 ; Medio no modo 2 com sistema de medio ativo.
Esperar pelo sinal de medio na ordem dos
flancos crescentes do apalpador de medio 1,
flancos decrescentes do apalpador de medio 1,
flancos crescentes do apalpador de medio 2,
flancos decrescentes do apalpador de medio 2
no percurso at X=100.
N110 STOPRE ; Parada de pr-processamento
N120 IF $AC_MEA[1]==FALSE GOTOF APALPADOR2 ; Controlar sucesso da medio com o apalpador de
medio 1.
N130 R10=$AA_MM1[X] ; Armazenar valor de medio correspondente ao
primeiro evento de disparo (flanco crescente do
apalpador 1) programado.
N140 R11=$AA_MM2[X] ; Armazenar valor de medio correspondente ao
segundo evento de disparo (flanco crescente do
apalpador 1) programado.
N150 APALPADOR2:
N160 IF $AC_MEA[2]==FALSE GOTOF FIM ; Controlar sucesso da medio com o apalpador de
medio 2.
N170 R12=$AA_MM3[X] ; Armazenar valor de medio correspondente ao
terceiro evento de disparo (flanco crescente do
apalpador 2) programado.
N180 R13=$AA_MM4[X] ; Armazenar valor de medio correspondente ao
quarto evento de disparo (flanco crescente do
apalpador 2) programado.
N190 FIM:

Exemplo 3: Medio contnua por eixo em modo 1 (avaliao em ordem de tempo)


a) Medio de at 100 valores medio

Cdigo de programa Comentrio


...
N110 DEF REAL VALOR_MEDICAO[100]
N120 DEF INT loop=0
N130 MEAC[X]=(1,1,-1) G01 X1000 F100 ; Medio no modo 1 com sistema de medio ativo,
salvamento dos valores de medio sob $AC_FIFO1,
espera pelo sinal de medio com flancos
decrescentes do apalpador de medio 1 no percurso
at X=1000.
N135 STOPRE
N140 MEAC[X]=(0) ; Cancelar a medio aps alcanar a posio do eixo.
N150 R1=$AC_FIFO1[4] ; Armazenar nmero de valores de medio acumulados no
parmetro R1.
N160 FOR loop=0 TO R1-1
N170 VALOR_MEDICAO[loop]=$AC_FIFO1[0] ; Ler e armazenar valores de medio do $AC_FIFO1.
N180 ENDFOR

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 277
Comandos especiais de curso
4.8 Funo de medio ampliada (MEASA, MEAWA, MEAC) (opcional)

b) Medio com cancelamento de curso restante aps 10 valores de medio

Cdigo de programa Comentrio


...
N10 WHEN $AC_FIFO1[4]>=10 DO MEAC[x]=(0) DELDTG(x) ; Anula o curso
restante.
N20 MEAC[x]=(1,1,1,-1) G01 X100 F500
N30 MEAC[X]=(0)
N40 R1=$AC_FIFO1[4] ; Nmero de valores de
medio.
...

Outras informaes
Pedido de medio
A programao de uma tarefa de medio pode ser realizada no programa de pea ou a
partir de uma ao sncrona (veja o captulo "Aes sncronas de movimentos"). Apenas um
pedido de medio pode estar ativo ao mesmo tempo para cada eixo.

Indicao
O avano deve ser adaptado ao respectivo problema de medio.
Para MEASA e MEAWA os resultados corretos somente podem ser garantidos com avanos,
nos quais no ocorre mais do que um mesmo evento de disparo e no mais do que 4
eventos diferentes de disparo em cada ciclo de controle de posio.
Na medio contnua com MEAC a relao entre o ciclo de interpolao e o ciclo de controle
de posio no pode ser maior que 8 : 1.

Evento de disparo
Um evento de disparo formado a partir do nmero do apalpador e o critrio de ativao
(flanco crescente ou decrescente) do sinal de medio.
Para cada medio podem ser processados at 4 eventos de disparo do apalpador de
medio solicitado, portanto, at dois apalpadores de medio com dois flancos de medio
cada. A seqncia do processamento assim como o nmero mximo de eventos de disparo
depende do modo selecionado.

Indicao
Para modo de medio 1 aplica-se: Um mesmo evento de disparo somente pode ser
programado uma vez em uma tarefa de medio!

Preparao do trabalho
278 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.8 Funo de medio ampliada (MEASA, MEAWA, MEAC) (opcional)

Modo de operao
Com o primeiro dgito (casa da dezena) do modo de operao selecionado o sistema de
medio desejado. Se houver apenas um sistema de medio, mas houver um segundo
programado, se aplica automaticamente o existente.
Com o segundo dgito (casa da unidade) selecionado o modo de medio desejado. Com
isso o processo de medio adaptado s possibilidades do respectivo comando:
Modo 1
A avaliao dos eventos de disparo realizada na seqncia cronolgica da ocorrncia.
Neste modo apenas um evento de disparo pode ser programado para mdulos de seis
eixos, e no caso de haverem mais eventos de disparo especificados, passa-se
automaticamente para o modo 2 (sem mensagem).
Modo 2
A avaliao dos eventos de disparo realizada na seqncia programada.
Modo 3
A avaliao dos eventos de disparo realizada na ordem programada, mas sem
monitorao do evento de disparo 1 no START.

Indicao
No emprego de 2 sistemas de medio apenas se pode programar dois eventos de
disparo.

Medio com e sem anulao de curso restante


Para a programao do MEASA a anulao de curso restante apenas ser executada aps a
coleta dos valores de medio solicitados.
Para pedidos especiais de medio, onde para cada caso deve ser aproximada a posio
programada, se aplica a funo MEAWA.

9

7( 7( 7( 7( W

&XUVR
UHVWDQWH

&XUVRSURJUDPDGR

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 279
Comandos especiais de curso
4.8 Funo de medio ampliada (MEASA, MEAWA, MEAC) (opcional)

Indicao
O MEASA no pode ser programado em aes sncronas. Como alternativa se pode
programar o MEAWA mais a anulao de curso restante como ao sncrona.
Se o pedido de medio for iniciado com MEAWA a partir de aes sncronas, os valores de
medio somente estaro disponveis no sistema de coordenadas da mquina.

Resultados de medio para MEASA, MEAWA


Os resultados de medio esto disponveis nas seguintes variveis de sistema:
No sistema de coordenadas da mquina:

$AA_MM1[<eixo>] Valor de medio do sistema de medio programado com


evento de disparo 1
... ...
$AA_MM4[<eixo>] Valor de medio do sistema de medio programado com
evento de disparo 4
No sistema de coordenadas da pea de trabalho:

$AA_WM1[<eixo>] Valor de medio do sistema de medio programado com


evento de disparo 1
... ...
$AA_WM4[<eixo>] Valor de medio do sistema de medio programado com
evento de disparo 4

Indicao
No se gera nenhuma parada de pr-processamento durante a leitura destas variveis.
Com STOPRE deve ser programada uma parada de pr-processamento na posio
adequada. Caso contrrio so lidos valores incorretos.

Eixos geomtricos / Transformaes


Se a medio axial deve ser iniciada para um eixo geomtrico, deve ser programada
explicitamente o mesmo pedido para os demais eixos geomtricos. O mesmo vale para os
eixos envolvidos em uma transformao.
Exemplo:
N10 MEASA[Z]=(1,1) MEASA[Y]=(1,1) MEASA[X]=(1,1) G0 Z100
ou
N10 MEASA[Z]=(1,1) POS[Z]=100

Preparao do trabalho
280 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.8 Funo de medio ampliada (MEASA, MEAWA, MEAC) (opcional)

Pedido de medio com 2 sistemas de medio


Se um pedido de medio for executado com dois sistemas de medio, ento se coleta os
dois possveis eventos de disparo de ambos sistemas de medio do respectivo eixo. Com
isso se especifica a atribuio das variveis reservadas:

$AA_MM1[<eixo>] ou $AA_MW1[<eixo>] Valor de medio do sistema


de medio no evento de
disparo 1
$AA_MM2[<eixo>] ou $AA_MW2[<eixo>] Valor de medio do sistema
de medio no evento de
disparo 2
$AA_MM3[<eixo>] ou $AA_MW3[<eixo>] Valor de medio do sistema
de medio 1 no evento de
disparo 2
$AA_MM4[<eixo>] ou $AA_MW4[<eixo>] Valor de medio do sistema
de medio 2 no evento de
disparo 2
Estado do apalpador de medio
O estado de medio est disponvel nas seguintes variveis de sistema:
$A_PROBE[<n>]
<n>=apalpador de medio

Valor Significado
1 Apalpador de medio defletido
0 Apalpador de medio no defletido
Estado do pedido de medio no MEASA, MEAWA
Quando uma avaliao for necessria, ento no programa pode ser consultado o estado do
pedido de medio atravs do $AC_MEA[<n>], com <n> = nmero do apalpador de medio.
Assim que todos os eventos de disparo do apalpador de medio <n> programados em um
bloco forem executados, esta varivel retorna o valor1. Caso contrrio, retorna-se o valor 0.

Indicao
O $AC_MEA no ser mais atualizado se a medio for iniciada a partir de aes sncronas.
Neste caso devem ser consultados novos sinais de estado PLC DB31,DBX62.3 ou a
varivel de mesmo valor $AA_MEAACT[<eixo>].
Significado:
$AA_MEAACT==1: Medio ativa
$AA_MEAACT==0: Medio no ativa

Medio contnua (MEAC)


Os valores de medio esto disponveis no MEAC no sistema de coordenadas da mquina e
so armazenados na memria FIFO[n] (memria de circulao) especificada. Se forem
configurados dois apalpadores para realizar a medio, os valores de medio do segundo
apalpador so armazenados separadamente na memria FIFO[n] especialmente
configurada (atravs de MD).

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 281
Comandos especiais de curso
4.8 Funo de medio ampliada (MEASA, MEAWA, MEAC) (opcional)

A memria FIFO uma memria de circulao na qual os valores medidos so escritos em


variveis $AC_FIFO de acordo com o princpio de circulao, veja o captulo "Aes
sncronas de movimentos".

Indicao
O contedo FIFO somente pode ser lido uma vez da memria de circulao. Para a
aplicao mltipla dos dados de medio, estes devero ser armazenados temporariamente
nos dados do usurio.
Se o nmero de valores de medio exceder o nmero mximo definido no dado da
mquina para a memria FIFO, ento a medio encerrada automaticamente.
A medio contnua (sem fim) pode ser realizada atravs da leitura cclica dos valores de
medio. Neste caso a leitura de dados deve ser realizada na mesma freqncia da entrada
dos novos valores de medio.

Programaes detectadas com erro


As seguintes programaes com erro so detectadas e exibidas com um erro:
MEASA/MEAWA programado junto com MEAS/MEAW em um bloco
Exemplo:
N01 MEAS=1 MEASA[X]=(1,1) G01 F100 POS[X]=100
MEASA/MEAWA com nmero de parmetros <2 ou >5
Exemplo:
N01 MEAWA[X]=(1) G01 F100 POS[X]=100
MEASA/MEAWA com evento de disparo diferente de 1/ -1/ 2/ -2
Exemplo:
N01 MEASA[B]=(1,1,3) B100
MEASA/MEAWA em modo errado
Exemplo:
N01 MEAWA[B]=(4,1) B100
MEASA/MEAWA com evento de disparo programado duas vezes
Exemplo:
N01 MEASA[B]=(1,1,-1,2,-1) B100
MEASA/MEAWA e faltando eixo geomtrico (GEO)
Exemplo:
N01 MEASA[X]=(1,1) MEASA[Y]=(1,1) G01 X50 Y50 Z50 F100 ;Eixos GEO
X/Y/Z
Pedido de medio inconsistente com eixos geomtricos
Exemplo:
N01 MEASA[X]=(1,1) MEASA[Y]=(1,1) MEASA[Z]=(1,1,2) G01 X50 Y50 Z50
F100

Preparao do trabalho
282 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.9 Funes especiais para o usurio OEM (OMA1 ... OMA5, OEMIPO1, OEMIPO2, G810 ... G829)

4.9 Funes especiais para o usurio OEM (OMA1 ... OMA5, OEMIPO1,
OEMIPO2, G810 ... G829)

Endereos OEM
O significado dos endereos OEM definida pelo usurio OEM. A funcionalidade
incorporada atravs de ciclos de compilao. Foram reservados 5 endereos OEM (OMA1
...OMA5). O identificador de endereo pode ser ajustado. Endereos OEM so permitidos em
cada bloco.

Chamadas de funo G reservadas


Para o usurio OEM foram reservadas as seguintes chamadas de funo G:
OEMIPO1, OEMIPO2 (do grupo de funes G 1)
G810 ... G819 (grupo de funes G 31)
G820 ... G829 (grupo de funes G 32)
A funcionalidade incorporada atravs de ciclos de compilao.

Funes e subrotinas
Alm disso, os usurios OEM tambm podem criar funes e subrotinas pr-definidas com
transferncia de parmetros.

Indicao
Simulao de pea de trabalho
At o SW 4.4 no h nenhum suporte, e a partir do SW 4.4 apenas ciclos de compilao
(CC) selecionados recebem suporte na simulao de pea de trabalho.
Por isso que os comandos de linguagem em programas de pea com ciclos de compilao
no suportados (OMA1 ...OMA5, OEMIPO1/2, G810 ...G829, prprios procedimentos e
funes) resultam em mensagens de alarme e o cancelamento da simulao, sem haver
tratamento individual.
Soluo: Tratar individualmente os elementos de linguagem ausentes e especficos de ciclo
de compilao (CC) no programa de pea (consulta $P_SIM).
Exemplo:
N1 G01 X200 F500
IF (1==$P_SIM)
N5 X300 ;para simulao CC no ativa
ELSE
N5 X300 OMA1=10
ENDIF

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 283
Comandos especiais de curso
4.10 Reduo de avano com desacelerao nos cantos (FENDNORM, G62, G621)

4.10 Reduo de avano com desacelerao nos cantos (FENDNORM,


G62, G621)

Funo
Na desacelerao automtica nos cantos o avano breve e gradativamente reduzido antes
de alcanar o respectivo canto. Alm disso se pode parametrizar a dimenso do
comportamento de ferramenta relevante usinagem atravs de dados de ajuste. So eles:
Incio e fim da reduo do avano
Override com o qual o avano reduzido
Deteco do canto relevante
Como cantos relevantes consideramos os cantos cujo ngulo interno menor do que o canto
projetado atravs do dado de ajuste.
A funo do override automtico de cantos desativada com o valor padro FENDNORM.
Literatura:
/FBFA/ Descrio do funcionamento dos dialetos ISO

Sintaxe
FENDNORM
G62 G41
G621

Significado
FENDNORM Desacelerao automtica de cantos desativada
G62 Desacelerao nos cantos internos com correo de raio da ferramenta ativada
G621 Desacelerao em todos cantos com correo de raio da ferramenta ativada

G62 apenas tem efeito nos cantos internos com


correo de raio de ferramenta ativada G41, G42 e
modo de controle da trajetria ativado G64, G641
O respectivo canto aproximado com avano reduzido, resultante de:
F * (override para reduo do avano) * override de avano
A reduo de avano mxima possvel alcanada exatamente quando a ferramenta
realizar a mudana de sentido no respectivo canto, com referncia ao centro do percurso.
G621 age de forma semelhante ao G62 em cada canto dos eixos definidos por FGROUP.

Preparao do trabalho
284 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.11 Critrios programveis para fim de movimentos (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)

4.11 Critrios programveis para fim de movimentos (FINEA, COARSEA,


IPOENDA, IPOBRKA, ADISPOSA)

Funo
Semelhante ao critrio de mudana de blocos na interpolao de percurso (G601, G602 e
G603), com a interpolao de eixos individuais, o critrio de fim de movimento pode ser
programado em um programa de peas ou aes sncronas para eixos de comando e PLC.
Dependendo de qual critrio de fim de movimento for programado, os blocos do programa de
pea e os blocos de ciclo de tecnologia com movimentos individuais de eixo requerem
tempos diferentes para serem concludos. O mesmo se aplica para o PLC atravs do FC15/
16/ 18.

Sintaxe
FINEA[<eixo>]
COARSEA[<eixo>]
IPOENDA[<eixo>]
IPOBRKA(<eixo>[,<momento>])
ADISPOSA(<eixo>[,<modo>,<tamanho de janela>])

Significado

FINEA: Critrio de fim de movimento: "Parada exata fina"


Efeito: modal
COARSEA: Critrio de fim de movimento: "Parada exata aproximada"
Efeito: modal
IPOENDA: Critrio de fim de movimento: "Parada de interpolador"
Efeito: modal
IPOBRKA: Critrio de mudana de blocos: Rampa de frenagem
Efeito: modal
ADISPOSA: Janela de tolerncia para critrio de fim de movimento
Efeito: modal
<eixo>: Nome de eixo de canal (X, Y, ....)
<momento>: Momento da mudana de blocos relacionado rampa de
frenagem em %:
100% = Incio da rampa de frenagem
0% = Fim da rampa de frenagem, de mesmo significado
como o IPOENDA
Tipo: REAL

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 285
Comandos especiais de curso
4.11 Critrios programveis para fim de movimentos (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)

<modo>: Referncia da janela de tolerncia


Faixa de 0 Janela de tolerncia no ativa
valores: 1 Janela de tolerncia em relao
posio nominal
2 Janela de tolerncia em relao
posio real
Tipo: INT
<tamanho de janela>: Tamanho da janela de tolerncia
Tipo: REAL

Exemplos

Exemplo 1: Critrio de fim de movimento: "Parada de interpolador"

Cdigo de programa
; Desloca o eixo de posicionamento X at 100, com velocidade de 200 m/min e acelerao de 90%,
; Critrio de fim de movimento: Parada de interpolador
N110 G01 POS[X]=100 FA[X]=200 ACC[X]=90 IPOENDA[X]

; Ao sncrona:
; SEMPRE QUE: Estiver definida a entrada 1
; ENTO: o eixo de posicionamento X at 50, com velocidade de 200 m/min e acelerao de 140%,
; Critrio de fim de movimento: Parada de interpolador
N120 EVERY $A_IN[1] DO POS[X]=50 FA[X]=200 ACC[X]=140 IPOENDA[X]

Exemplo 2: Critrio de mudana de blocos: "Rampa de frenagem"

Cdigo de programa Comentrio


; Ajuste padro ativo
N40 POS[X]=100 ; Movimento de posicionamento de X at a posio 100
; Critrio de mudana de blocos: Parada exata fina
N20 IPOBRKA(X,100) ; Critrio de mudana de blocos: "Rampa de frenagem",
; 100% = Incio da rampa de frenagem
N30 POS[X]=200 ; A mudana de blocos ocorre assim que o eixo X comea a desacelerar
N40 POS[X]=250 ; O eixo X no freia mais na posio 200, e sim est em movimento
; at a posio 250.
; Assim que o eixo comea a ser frenado que ocorre a mudana de blocos
N50 POS[X]=0 ; O eixo X freia e desloca-se retornando at a posio 0
; A mudana de blocos ocorre na posio 0 e com "Parada exata fina"
N60 X10 F100 ; O eixo X desloca-se como eixo de percurso at a posio 10

Preparao do trabalho
286 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Comandos especiais de curso
4.11 Critrios programveis para fim de movimentos (FINEA, COARSEA, IPOENDA, IPOBRKA, ADISPOSA)

Outras informaes

Varivel de sistema para critrio de fim de movimento


O critrio de fim de movimento em ao pode ser interpretado atravs da varivel de sistema
$AA_MOTEND.
Literatura: /LIS2sl/ Manual de listas, Livro 2

Critrio de mudana de blocos: "Rampa de frenagem" (IPOBRKA)


Se na ativao do critrio de mudana de blocos "Rampa de frenagem" para o momento
opcional de mudana de blocos for programado um valor, este estar ativo no prximo
movimento de posicionamento e ser gravado no dado de ajuste de modo sincronizado com
o processamento principal. Se no for especificado nenhum valor para o momento da
mudana de blocos, ento o atual valor contido no dado de ajuste entrar em ao.
SD43600 $SA_IPOBRAKE_BLOCK_EXCHANGE
Com a prxima programao de um critrio de fim de movimento em eixos (FINEA, COARSEA
, IPOENDA) desativado o IPOBRKA do eixo correspondente.

Critrio adicional para mudana de blocos: "Janela de tolerncia" (ADISPOSA)


Com o ADISPOSA possvel definir uma janela de tolerncia em torno do ponto final do bloco
(opcionalmente posio real ou nominal) como um critrio de mudana de blocos. Para a
mudana de blocos necessrio que as duas condies sejam preenchidas:
Critrio de mudana de blocos: "Rampa de frenagem"
Critrio de mudana de blocos: "Janela de tolerncia"

Literatura
Para mais informaes sobre o critrio de mudana de blocos dos eixos de posicionamento
veja:
Manual de funes ampliadas; Eixos de posicionamento (P2)
Manual de programao Fundamentos; captulo "Controle de avano"

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 287
Comandos especiais de curso
4.12 Bloco programvel de parmetros servo (SCPARA)

4.12 Bloco programvel de parmetros servo (SCPARA)

Funo
Com SCPARA o bloco de parmetros (composto por MDs) pode ser programado no programa
de pea e em aes sincronizadas (antes possvel apenas atravs do PLC).
DB3n DBB9 Bit3
Para evitar qualquer conflito entre o PLC e o NCK, se define mais um Bit na interfacePLC
NCK:
DB3n DBB9 Bit3 "Especificao de bloco de parmetros bloqueada pelo SCPARA".
Com uma especificao de bloco de parmetros bloqueada para SCPARA no emitida
nenhuma mensagem de erro, caso esta ainda venha a ser programada.

Sintaxe
SCPARA[<eixo>]=<valor>

Significado

SCPARA Definir bloco de parmetros


<eixo> Nome de eixo de canal (X, Y, ...)
<valor> bloco de parmetros desejado (1<= valor <=6)

Indicao
O atual bloco de parmetros pode ser consultado na varivel de sistema
$AA_SCPAR[<eixo>].
Com G33, G331 ou G332 se seleciona o bloco de parmetro mais adequado do comando.
Se o bloco de parmetro servo deve ser mudado tanto em um programa de pea ou em uma
ao sincronizada como no PLC, ento se deve ampliar o programa PLC de usurio.

Literatura:
/FB1/ Manual de funes bsicas; Avanos (V1),
Captulo "Controle de avano".

Exemplo
Cdigo de programa Comentrio
...
N110 SCPARA[X]= 3 ; O 3 bloco de parmetros selecionado para o eixo X.
...

Preparao do trabalho
288 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes de coordenadas (FRAMES) 5
5.1 Transformao de coordenadas atravs de varivel Frame

Funo
Alm das opes de programao descritas no Manual de programao "Fundamentos"
tambm podemos definir sistemas de coordenadas com variveis Frame pr-definidas.

Esto definidos os seguintes sistemas de coordenadas:


MCS: Sistema de coordenadas da mquina
BCS: Sistema de coordenadas bsico
BNS: Sistema de coordenadas do ponto zero bsico
ENS: Sistema ajustvel de coordenadas do ponto zero
WCS: Sistema de coordenadas da pea
O que uma varivel Frame pr-definida?
Variveis Frame pr-definidas so palavras-chave definidas na linguagem do comando com
efeito correspondente, e que podem ser processadas no programa NC.
Possveis variveis Frame:
Frame bsico (deslocamento bsico)
Frames ajustveis
Frame programvel

Preparao do trabalho
Manual de programao 09/2011, 6FC5398-2BP40-2KA0 289
Transformaes de coordenadas (FRAMES)
5.1 Transformao de coordenadas atravs de varivel Frame

Ler atribuies de valores e valores reais


Relao varivel Frame / Frame
Uma transformao de coordenadas pode ser ativada em uma varivel Frame atravs da
atribuio de valor de um Frame.
Exemplo: $P_PFRAME=CTRANS(X,10)
Varivel Frame:
$P_PFRAME significa: atual Frame programvel.
Frame:
CTRANS(X,10) significa: deslocamento de ponto zero programvel do eixo X em 10 mm.

<%&6 <%16 <


(16 <:&6

; :&6
3B3)5$0(

; (16
3B,)5$0(3B8,)5>@
; %16
3B%)5$0(3B8%)5

; %&6

Leitura de valores reais


Os atuais valores reais do sistema de coordenadas podem ser lidos no programa de pea
atravs de variveis pr-definidas:
$AA_IM[eixo]: Leitura do valor real em MCS
$AA_IB[eixo]: Leitura do valor real em BCS
$AA_IBN[eixo:] Leitura do valor real em BNS
$AA_IEN[eixo]: Leitura do valor real em ENS
$AA_IW[eixo]: Leitura do valor real em WCS

Preparao do trabalho
290 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes de coordenadas (FRAMES)
5.1 Transformao de coordenadas atravs de varivel Frame

5.1.1 Varivel Frame pr-definida ($P_BFRAME, $P_IFRAME, $P_PFRAME,


$P_ACTFRAME)

$P_BFRAME
Atual varivel Frame bsica que estabelece a relao entre o sistema de coordenadas
bsico (BCS) e o sistema bsico do ponto zero (BNS).
Se o Frame bsico descrito pelo $P_UBFR deve ser ativado imediatamente no programa, ou
se deve
programar um G500, G54...G599 ou
descrever um $P_BFRAME com $P_UBFR.

=%&6 =%16

; %16
3B%)5$0(3B8%)5

; %&6

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 291
Transformaes de coordenadas (FRAMES)
5.1 Transformao de coordenadas atravs de varivel Frame

$P_IFRAME
Atual varivel ajustvel que estabelece a relao entre o sistema bsico do ponto zero (BNS)
e o sistema ajustvel do ponto zero (ENS).
$P_IFRAME corresponde ao $P_UIFR[$P_IFRNUM]
$P_IFRAME depois da programao de p. ex. G54 contm a translao, rotao, escala e
espelhamento definido por G54.

= (16

= %16
<
(16
<%16

;
(16

; %16

Preparao do trabalho
292 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes de coordenadas (FRAMES)
5.1 Transformao de coordenadas atravs de varivel Frame

$P_PFRAME
Atual varivel programvel que estabelece a relao entre o sistema ajustvel do ponto zero
(ENS) e o sistema de coordenadas da pea de trabalho (WCS).
$P_PFRAME contm o Frame resultante, que
resulta da programao do TRANS/ATRANS, ROT/AROT, SCALE/ASCALE, MIRROR/
AMIRROR e
a partir da atribuio do CTRANS, CROT, CMIRROR, CSCALE no FRAME programvel

= :&6
= (16

= %16
<
(16
< %16
<
:&6

; :&6

; (16

; %16

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 293
Transformaes de coordenadas (FRAMES)
5.1 Transformao de coordenadas atravs de varivel Frame

$P_ACTFRAME
Atual Frame total resultante, que resulta atravs do encadeamento
da atual varivel Frame bsica $P_BFRAME,
da atual varivel Frame ajustvel $P_IFRAME com Frames de sistema e
da atual varivel Frame programvel $P_PFRAME com Frames de sistema
. Para Frames de sistema, veja o captulo "Frames ativos no canal"
$P_ACTFRAME descreve o atual ponto zero vlido da pea de trabalho.

= :&6
=
= %&6 (16
= %16
<(16
< %16
<:&6

; :&6

; (16

; %16

; %&6

Se $P_BFRAME, $P_IFRAME ou $P_PFRAME forem modificadas, o $P_ACTFRAME ser


recalculado.
$P_ACTFRAME corresponde ao $P_BFRAME:$P_IFRAME:$P_PFRAME

Preparao do trabalho
294 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes de coordenadas (FRAMES)
5.1 Transformao de coordenadas atravs de varivel Frame

(QWUDGDDWUDYVGRSURJUDPDSH[ (QWUDGDDWUDYVGRSURJUDPDSH[
3B8%)5 &75$16 ; 3B8,)5>Q@ &75$16 ;

(QWUDGDDWUDYV (QWUDGDDWUDYV
GD+0,00& GD,00&

3B8%)5 3B8,)5>Q@

DWLYDGRDWUDYVGR
***

3B$&7)5$0( 3B%)5$0( 3B,)5$0( 3B3)5$0(

(QWUDGDDWUDYVGRSURJUDPDSH[ (QWUDGDDWUDYVGRSURJUDPDSH[
3B%)5$0( &75$16 ; 3B3)5$0( &75$16 ;
RX75$16;
(QWUDGDDWUDYVGRSURJUDPDSH[
3B,)5$0( &75$16 ;

O Frame bsico e o Frame ajustvel tem efeito aps Reset, se o MD 20110


RESET_MODE_MASK estiver ajustado da seguinte forma:
Bit0=1, Bit14=1 -->atua o $P_UBFR (Frame bsico)
Bit0=1, Bit5=1 -->atua o $P_UIFR[$P_UIFRNUM] (Frame ajustvel)

Frames ajustveis pr-definidos $P_UBFR


Com $P_UBFR se programa o Frame bsico, mas ele no est simultaneamente ativo no
programa de pea. O Frame bsico escrito com $P_UBFR processado quando
se ativa o Reset e os Bits 0 e 14 do MD RESET_MODE_MASK estiverem definidos,
e foram executadas as instrues G500, G54...G599.

Frames ajustveis pr-definidos $P_UIFR[n]


Atravs da varivel Frame pr-definida $P_UIFR[n] os deslocamentos ajustveis do ponto
zero G54 at G599 podem ser lidos e gravados a partir do programa de pea.
Na estrutura estas variveis representam um campo de uma dimenso de tipo FRAME com
o nome $P_UIFR[n].

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 295
Transformaes de coordenadas (FRAMES)
5.1 Transformao de coordenadas atravs de varivel Frame

Atribuio com os comandos G


Como padro temos pr-definidos 5 Frames ajustveis $P_UIFR[0]... $P_UIFR[4] e 5
comandos G de mesmo significado G500 e G54 at G57, sendo que no endereo dos
mesmos so armazenados os valores.
$P_IFRAME=$P_UIFR[0] corresponde ao G500
$P_IFRAME=$P_UIFR[1] corresponde ao G54
$P_IFRAME=$P_UIFR[2] corresponde ao G55
$P_IFRAME=$P_UIFR[3] corresponde ao G56
$P_IFRAME=$P_UIFR[4] corresponde ao G57
O nmero de Frames pode ser alterado atravs do dado de mquina:
$P_IFRAME=$P_UIFR[5] corresponde ao G505
... ... ...
$P_IFRAME=$P_UIFR[99] corresponde ao G599

Indicao
Com isso se pode criar ao todo 100 sistemas de coordenadas, que podem ser chamados
para diversos dispositivos ao longo do programa.

CUIDADO

A programao das variveis Frame e de Frames requer um bloco NC prprio no programa


NC. Exceo: Programao de um Frame ajustvel com G54, G55, ...

Preparao do trabalho
296 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes de coordenadas (FRAMES)
5.2 Atribuir valores para variveis Frame / Frame

5.2 Atribuir valores para variveis Frame / Frame

5.2.1 Atribuir valores diretos (valor de eixo, ngulo, escala)

Funo
No programa NC podemos atribuir valores diretamente em Frames ou em variveis Frame.

Sintaxe
$P_PFRAME=CTRANS (X, valor de eixo, Y, valor de eixo, Z, valor de
eixo, )
$P_PFRAME=CROT (X, ngulo, Y, ngulo, Z, ngulo, )
$P_UIFR[..]=CROT (X, ngulo, Y, ngulo, Z, ngulo, )
$P_PFRAME=CSCALE (X, escala, Y, escala, Z, escala, )
$P_PFRAME=CMIRROR (X, Y, Z)
A programao do $P_BFRAME feita da mesma forma como no $P_PFRAME.

Significado
CTRANS Deslocamento nos eixos especificados
CROT Rotao em torno dos eixos especificados
CSCALE Alterao de escala nos eixos especificados
CMIRROR Mudana de sentido dos eixos especificados
X Y Z Valor de deslocamento no sentido do eixo geomtrico
especificado
Valor de eixo Atribuir o valor de eixo do deslocamento
ngulo Atribuir o ngulo de rotao em torno dos eixos indicados
Escala Alterar escala

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 297
Transformaes de coordenadas (FRAMES)
5.2 Atribuir valores para variveis Frame / Frame

Exemplo
Com a atribuio de valores no atual Frame programado se ativam as funes de translao,
rotao e espelhamento.

= 

<


<
<

;
= ;

<
 &75$16
 &527
 &0,5525
;

N10 $P_PFRAME=CTRANS(X,10,Y,20,Z,5):CROT(Z,45):CMIRROR(Y)

Definir outros valores prvios para os componentes Frame-Rot.


Definir valores prvios com CROT para todos os trs componentes do UIFR

Cdigo de programa Comentrio


$P_UIFR[5]=CROT (X, 0, Y, 0, Z, 0)
N100 $P_UIFR[5, y, rt]=0

N100 $P_UIFR[5, x, rt]=0

N100 $P_UIFR[5, z, rt]=0

Preparao do trabalho
298 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes de coordenadas (FRAMES)
5.2 Atribuir valores para variveis Frame / Frame

Descrio
Podemos programar vrias diretrizes de clculo consecutivamente.
Exemplo:
$P_PFRAME=CTRANS(...):CROT(...):CSCALE...
Observe que os comandos devem estar ligados entre si com o operador de concatenao, o
duplo ponto (...):(...). Com isso os comandos so primeiramente ligados entre si e depois
executados uma a um na seqncia programada.

/(
&$
&6

&527
$16
&75

Indicao
Os valores programados com os comandos mencionados so atribudos aos Frames e
armazenados.
Os valores somente sero ativados se eles forem atribudos ao Frame de uma varivel
Frame $P_BFRAME ou $P_PFRAME ativa.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 299
Transformaes de coordenadas (FRAMES)
5.2 Atribuir valores para variveis Frame / Frame

5.2.2 Ler e alterar componentes de Frame (TR, FI, RT, SC, MI)

Funo
Temos a possibilidade de acessar determinados dados de um Frame como um determinado
valor de deslocamento ou ngulo de rotao. Estes valores podem ser modificados ou
atribudos em outra varivel.

Sintaxe

R10=$P_UIFR[$P_UIFNUM,X,RT] O ngulo de rotao RT em torno do eixo X do


atual deslocamento ajustvel do ponto zero
$P_UIFRNUM deve ser atribudo na varivel R10.
R12=$P_UIFR[25,Z,TR] O valor do deslocamento TR em Z do bloco de
dados do Frame n 25 ajustado deve ser atribudo
na varivel R12.
R15=$P_PFRAME[Y,TR] O valor do deslocamento TR em Y do atual
Frame programvel deve ser atribudo na varivel
R15.
$P_PFRAME[X,TR]=25 O valor do deslocamento TR em X do atual
Frame programvel deve ser modificado. X25
vlido de imediato.

Significado
$P_UIFRNUM Com estas variveis se estabelece automaticamente a relao
do atual deslocamento ajustvel de ponto zero vlido.
P_UIFR[n,,] Com a especificao do nmero de Frame n se pode acessar o
Frame ajustvel n n.
Indicao dos componentes que devem ser lidos ou
modificados:
TR TR Translation
FI FI Translation Fine
RT RT Rotation
SC Alterao de escala SC Scale
MI Espelhamento MI
X Y Z Tambm (veja exemplos) especificado o eixo X, Y e Z
correspondente.

Faixa de valores para rotao RT

Rotao em torno do 1 eixo geomtrico: -180 at +180


Rotao em torno do 2 eixo geomtrico: -90 at +90
Rotao em torno do 3 eixo geomtrico: -180 at +180

Preparao do trabalho
300 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes de coordenadas (FRAMES)
5.2 Atribuir valores para variveis Frame / Frame

Descrio
Chamar Frame
Com a indicao das variveis $P_UIFRNUM pode-se acessar diretamente o atual
deslocamento de ponto zero
(o $P_UIFRNUM contm o nmero do atual Frame definido) ajustado com $P_UIFR ou G54,
G55, ...
Todos demais Frames ajustveis $P_UIFR que estiverem armazenados sero chamados
com a indicao do no respectivo nmero $P_UIFR[n].
Para as variveis Frame pr-definidas e os Frames de definio prpria especifique o nome,
p. ex. $P_IFRAME.
Chamar dados
Entre os colchetes constam o nome do eixo e o componente de Frame do valor que se
deseja acessar ou modificar, p. ex. [X, RT] ou [Z, MI].

5.2.3 Referncias de Frames completos

Funo
No programa NC pode ser atribudo um Frame completo outro Frame ou Frames podem
ser encadeados entre si.
Por exemplo, o encadeamento de Frames indicado para descrio de vrias peas de
trabalho, que esto dispostas sobre um palete e devem ser usinadas em um processo de
usinagem.

=
<

*

Para a descrio das tarefas dos paletes, por exemplo, os componentes de Frame poderiam
conter apenas determinados valores parciais, atravs do encadeamento dos componentes
podem ser gerados vrios pontos zero da pea de trabalho.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 301
Transformaes de coordenadas (FRAMES)
5.2 Atribuir valores para variveis Frame / Frame

Sintaxe
Atribuir Frames

DEF FRAME AJUSTE1 Ao atual Frame programvel so


AJUSTE1=CTRANS(X,10) atribudos os valores do Frame
$P_PFRAME=AJUSTE1 AJUSTE1 de definio prpria.

DEF FRAME AJUSTE4 O atual Frame programvel


AJUSTE4=$P_PFRAME armazenado na memria intermediria
$P_PFRAME=AJUSTE4 e pode, se necessrio, ser
restaurado.

Encadeamento de Frames
Os Frames so encadeados entre si na seqncia programada, os componentes de Frame
(deslocamentos, rotaes, etc.) so executados aditivamente em sucesso.

$P_IFRAME=$P_UIFR[15]:$P_UIFR[16] Por exemplo, o $P_UIFR[15] contm


dados para deslocamentos de ponto
zero. Em seguida so processados
aditivamente os dados do
$P_UIFR[16], como por exemplo os
$P_UIFR[3]=$P_UIFR[4]:$P_UIFR[5] dados das rotaes.
O Frame ajustvel 3 gerado com o
encadeamento dos Frames ajustveis
4 e 5.

Indicao
Observe que os Frames precisam ser ligados entre si atravs do operador de
encadeamento, o duplo ponto :.

Preparao do trabalho
302 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes de coordenadas (FRAMES)
5.2 Atribuir valores para variveis Frame / Frame

5.2.4 Definio de novos Frames (DEF FRAME)

Funo
Alm dos Frames pr-definidos e ajustveis descritos anteriormente, ainda existe a opo de
se criar novos Frames. Neste caso tratam-se de variveis de tipo FRAME que so definidas
com qualquer nome.
Com as funes CTRANS, CROT, CSCALE e CMIRROR podemos atribuir nossos Frames
com valores no programa NC.

Sintaxe
DEF FRAME PALETE1
PALETE1=CTRANS():CROT()

Significado
DEF FRAME Criar novos Frames.
PALETE1 Nome do novo Frame
=CTRANS(...): Atribuir valores s possveis funes
CROT(...)...

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 303
Transformaes de coordenadas (FRAMES)
5.3 Deslocamento aproximado e deslocamento fino (CFINE, CTRANS)

5.3 Deslocamento aproximado e deslocamento fino (CFINE, CTRANS)

Funo
Deslocamento fino
Com o comando CFINE (X, ..., Y, ...) pode ser programado um deslocamento fino
do Frame bsico e todos Frames ajustveis.
Um deslocamento fino somente pode ser realizado se o MD18600
$MN_MM_FRAME_FINE_TRANS=1.
Deslocamento aproximado
Com CTRANS(...) se define o deslocamento aproximado.

(VFDOD
(VSHOKDPHQWR

5RWDR
'HVORFDPHQWRILQR

'HVORFDPHQWRDSUR[LPDGR

(VWUXWXUDGH)UDPHFRPGHVORFDPHQWRILQR

Os deslocamentos aproximado e fino so adicionados ao deslocamento total.

Sintaxe

$P_UBFR=CTRANS(x, 10) : CFINE(x, 0.1) ;encadeamento do deslocamento,


: CROT(x, 45) ;deslocamento fino e rotao
$P_UIFR[1]=CFINE(x, 0.5 y, 1.0, z, ;o Frame inteiro sobrescrito com
0.1) ;inclusive o deslocamento
;aproximado
O acesso aos componentes individuais do deslocamento fino realizado pela especificao
de componente FI (Translation Fine).

Preparao do trabalho
304 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes de coordenadas (FRAMES)
5.3 Deslocamento aproximado e deslocamento fino (CFINE, CTRANS)

DEF REAL FINEX ;definio da varivel FINEX


FINEX=$P_UIFR[$P_UIFNUM, x, FI] ;leitura do deslocamento fino
;atravs da varivel FINEX
FINEX=$P_UIFR[3, x, FI]$P ;leitura do deslocamento fino
;do eixo X no 3 Frame
;atravs da varivel FINEX

Significado
CFINE(x, valor, y, valor, Deslocamento fino para vrios eixos. Deslocamento aditivo
z, valor )
(Translation).
CTRANS(x, valor, y, valor, Deslocamento aproximado para vrios eixos. Deslocamento
z, valor )
absoluto (Translation).
x y z Deslocamento de ponto zero dos eixos (mx. 8)
Valor Parte da translao

Fabricante da mquina
Com o MD18600 $MN_ MM_FRAME_FINE_TRANS se pode configurar o deslocamento fino
nas seguintes variantes:
0:
O deslocamento fino no pode ser especificado nem programado. G58 e G59 no so
possveis.
1:
O deslocamento fino pode ser especificado e programado para Frames ajustveis, Frames
bsicos, Frames programveis, G58 e G59.

Descrio
Um deslocamento fino modificado pela operao HMI somente ativado aps a ativao do
Frame correspondente, isto , a ativao realizada atravs do G500, G54...G599. Um
deslocamento fino ativado de um Frame permanece ativado enquanto o Frame tambm
estiver ativado.
Nenhum componente de deslocamento contm o Frame programvel. Se para o Frame
programvel for atribudo um Frame com deslocamento fino, ento seu deslocamento total
formado a partir da soma dos deslocamentos fino e aproximado. Na leitura do Frame
programvel o deslocamento fino sempre zero.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 305
Transformaes de coordenadas (FRAMES)
5.4 Deslocamento externo de ponto zero

5.4 Deslocamento externo de ponto zero

Funo
Dessa forma temos mais uma opo disponvel, a de deslocar o ponto zero entre o sistema
de coordenadas bsico e o da pea de trabalho.
Com o deslocamento externo de ponto zero somente se pode programar deslocamentos
lineares.

<0&6 <0&6 <%&6 <%16 <(16

; (16
**

; %16
)UDPHEVLFR
'HVORFDPHQWRH[WHUQR
GHSRQWR]HUR
'HVORFDPHQWR'5)
; %&6
7UDQVIRUPDRFLQHPWLFD
; 0&6
'HVORFDPHQWRGH3UHVHW

Programao
A programao dos valores de deslocamento $AA_ETRANS realizada atravs da
especificao das variveis de sistema especficas de eixo.
Atribuir valor de deslocamento
$AA_ETRANS[eixo]=RI
RI a varivel de clculo de tipo REAL que contm o novo valor.
O deslocamento externo normalmente no especificado no programa de pea, mas
definido pelo PLC.

Indicao
O valor escrito no programa de pea ativado se na interface VDI
(interface NCU-PLC) estiver definido o respectivo sinal.

Preparao do trabalho
306 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes de coordenadas (FRAMES)
5.5 Deslocamento Preset (PRESETON)

5.5 Deslocamento Preset (PRESETON)

Funo
Para aplicaes especiais pode ser necessrio, atribuir um novo valor a um eixo de mquina
j referenciado com PRESETON. Isto corresponde um deslocamento de ponto zero no
sistema de coordenadas da mquina.

CUIDADO

Aps PRESETON o eixo de mquina est no estado "No referenciado". Portanto


recomendado, que a funo seja utilizada apenas para eixos de mquina sem
referenciamento obrigatrio. Para restaurar o sistema de coordenadas de mquina original
os eixos de mquina devem ser novamente referenciados, por exemplo com G74
(deslocamento para ponto de referncia).
Literatura: Manual de programao - Fundamentos, Comandos suplementares,
Aproximao do ponto de referncia (G74)

<0&6 <0&6

7UDQVIRUPDRFLQHPWLFD

; 0&6
'HVORFDPHQWRGH3UHVHW

Sintaxe
PRESETON(<eixo>, <valor>, ...)

Significado
PRESETON Definir valor real
<eixo> Identificador de eixo de mquina
<valor> Novo valor atual do eixo de mquina no sistema de
coordenadas de mquina

Indicao
A definio do valor real com aes sncronas somente dever ser realizado com a palavra-
chave WHEN oder EVERY .

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 307
Transformaes de coordenadas (FRAMES)
5.5 Deslocamento Preset (PRESETON)

Exemplo
Eixo geomtrico: A, correspondente ao eixo de mquina: X1

Cdigo de programa Comentrio


N10 G0 A100 ; Eixo A vai para posio 100
N20 PRESETON(X1,50) ; O eixo de mquina X1 na posio 100 passa a ter valor
50 => nova indicao de valor:
- Eixo X1, MCS: 50
- Eixo A, WCS: 50
N30 A100 ; Eixo A movimenta 50mm para posio 100

Preparao do trabalho
308 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes de coordenadas (FRAMES)
5.6 Clculo de Frame a partir de 3 pontos de medio no espao (MEAFRAME)

5.6 Clculo de Frame a partir de 3 pontos de medio no espao


(MEAFRAME)

Funo
MEAFRAME uma ampliao da linguagem 840D para dar suporte aos ciclos de medio.
A funo MEAFRAME calcula o Frame a partir de trs pontos ideais e dos pontos medidos
correspondentes.
Se uma pea de trabalho posicionada para a usinagem, sua posio relativa ao sistema de
coordenadas cartesiano da mquina normalmente est deslocada e tambm girada em
relao sua posio ideal. Para a usinagem ou medio exata, torna-se necessrio ou um
ajuste fsico dispendioso ou ento a modificao dos movimentos no programa de pea.
Um Frame pode ser definido atravs do apalpamento de trs pontos no espao, cujas
posies ideais so conhecidas. O apalpamento realizado com um sensor de contato ou
ptico, que entra especialmente em contato com os furos de preciso ou esferas de medio
da placa de suporte.

Sintaxe
MEAFRAME IDEAL_POINT,MEAS_POINT,FIT_QUALITY)

Significado
MEAFRAME Clculo de Frame a partir de 3 pontos de medio no espao
IDEAL_POINT campo real dimensional que contm as trs coordenadas dos
pontos ideais
MEAS_POINT campo real dimensional que contm as trs coordenadas dos
pontos medidos
FIT_QUALITY Varivel com que se retornam as seguintes informaes:
Real, Os pontos ideais esto prximos de uma reta: O
-1: Frame no pde ser calculado. A varivel Frame
retornada contm um Frame neutro.
Os pontos medidos esto prximos de uma reta:
-2: O Frame no pde ser calculado. A varivel
Frame retornada contm um Frame neutro.
O clculo da matriz de rotao falhou por outro
-4: motivo
Soma das distores (distncias entre os
valor pontos) que so necessrias para a transformar
positivo: o tringulo medido em um tringulo ideal e
congruente.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 309
Transformaes de coordenadas (FRAMES)
5.6 Clculo de Frame a partir de 3 pontos de medio no espao (MEAFRAME)

Indicao
Qualidade da medio
Para que as coordenadas medidas sejam atribudas s coordenadas ideais com uma
rotao/translao combinada, o tringulo formado pelos pontos de medio dever ser
congruente com o tringulo ideal. Isto se alcana com um algoritmo de compensao que
minimiza a somatria do quadrado dos desvios que reformam o tringulo medido para o
tringulo ideal.
A distoro efetiva necessria dos pontos de medio pode servir de indicador para a
qualidade da medio e por isso especificada como varivel adicional do MEAFRAME.

Indicao
O Frame gerado pelo MEAFRAME pode ser transformado em outro Frame do encadeamento
de Frames atravs da funo ADDFRAME.
Veja o exemplo: Encadeamento de Frames "Encadeamento com ADDFRAME".
Para mais informaes sobre os parmetros do ADDFRAME(FRAME, STRING), veja
/FB1/ Manual de funes bsicas; Eixos, Sistemas de coordenadas, Frames (K2), Captulo
"Encadeamento de FRAMEs".

Exemplo
Cdigo de programa Comentrio
; Programa de pea 1
DEF FRAME CORR_FRAME

Definio de pontos de medio

Programao Comentrio
DEF REAL IDEAL_POINT[3,3] = SET(10.0,0.0,0.0,
0.0,10.0,0.0, 0.0,0.0,10.0)
DEF REAL MEAS_POINT[3,3] = SET ; para teste
(10.1,0.2,-0.2, -0.2,10.2,0.1, -0.2,0.2,9.8)

DEF REAL FIT_QUALITY = 0


DEF REAL ROT_FRAME_LIMIT = 5 ; permite no mx. 5 graus de rotao da posio
da pea
DEF REAL FIT_QUALITY_LIMIT = 3 ; permite no mx. 3 mm de deslocamento entre o
tringulo ideal e o tringulo medido
DEF REAL SHOW_MCS_POS1[3]
DEF REAL SHOW_MCS_POS2[3]
DEF REAL SHOW_MCS_POS3[3]

Cdigo de programa Comentrio


N100 G01 G90 F5000
N110 X0 Y0 Z0

Preparao do trabalho
310 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes de coordenadas (FRAMES)
5.6 Clculo de Frame a partir de 3 pontos de medio no espao (MEAFRAME)

Cdigo de programa Comentrio


N200 CORR_FRAME=MEAFRAME(IDEAL_POINT,MEAS
_POINT,FIT_QUALITY)

N230 IF FIT_QUALITY < 0


SETAL(65000)
GOTOF NO_FRAME
ENDIF
N240 IF FIT_QUALITY > FIT_QUALITY_LIMIT
SETAL(65010)
GOTOF NO_FRAME
ENDIF
N250 IF CORR_FRAME[X,RT] > ROT_FRAME_LIMIT ; Limitao do 1 ngulo RPY
SETAL(65020)
GOTOF NO_FRAME
ENDIF
N260 IF CORR_FRAME[Y,RT] > ROT_FRAME_LIMIT ; Limitao do 2 ngulo RPY
SETAL(65021)
GOTOF NO_FRAME
ENDIF
N270 IF CORR_FRAME[Z,RT] > ROT_FRAME_LIMIT ; Limitao do 3 ngulo RPY
SETAL(65022)
GOTOF NO_FRAME
ENDIF
N300 $P_IFRAME=CORR_FRAME ; Ativar Frame de apalpamento com um
Frame de definio
; Verificar Frame com o posicionamento
dos eixos geomtricos nos pontos
ideais
N400 X=IDEAL_POINT[0,0] Y=IDEAL_POINT[0,1]
Z=IDEAL_POINT[0,2]
N410 SHOW_MCS_POS1[0]=$AA_IM[X]
N420 SHOW_MCS_POS1[1]=$AA_IM[Y]
N430 SHOW_MCS_POS1[2]=$AA_IM[Z]
N500 X=IDEAL_POINT[1,0] Y=IDEAL_POINT[1,1]
Z=IDEAL_POINT[1,2]
N510 SHOW_MCS_POS2[0]=$AA_IM[X]
N520 SHOW_MCS_POS2[1]=$AA_IM[Y]
N530 SHOW_MCS_POS2[2]=$AA_IM[Z]
N600 X=IDEAL_POINT[2,0] Y=IDEAL_POINT[2,1]
Z=IDEAL_POINT[2,2]
N610 SHOW_MCS_POS3[0]=$AA_IM[X]
N620 SHOW_MCS_POS3[1]=$AA_IM[Y]
N630 SHOW_MCS_POS3[2]=$AA_IM[Z]
N700 G500 ; Desativar Frame de definio, definido
com Frame zero (sem valor
especificado).
No_FRAME ; Desativar Frame de definio, definido
com Frame zero (sem valor
especificado)
M0
M30

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 311
Transformaes de coordenadas (FRAMES)
5.6 Clculo de Frame a partir de 3 pontos de medio no espao (MEAFRAME)

Exemplo de encadeamento de Frames


Encadeamento de MEAFRAME para correes
A funo MEAFRAME( ) fornece um Frame de correo. Se este Frame de correo for
encadeado com o Frame ajustvel $P_UIFR[1] que estava ativo na chamada da funo,
p. ex. G54, ento obtemos um Frame ajustvel para outras converses para movimentos ou
usinagem.
Encadeamento com ADDFRAME
Se este Frame de correo deve atuar em outra posio do encadeamento de Frames, ou se
antes do Frame ajustvel ainda existem outros Frames ativos, ento se pode utilizar a funo
ADDFRAME( ) para concatenar um dos Frames bsicos de canal ou um Frame de sistema.
Neste caso, no Frame no podem estar ativos:
Espelhamento com MIRROR
Escala com SCALE
Os parmetros de entrada para valores nominais e reais so as coordenadas da pea de
trabalho. No sistema bsico do comando estas coordenadas sempre so especificadas como
medidas
mtricas ou em polegadas (G71/G70) e como
relativas ao raio (DIAMOF)
.

Preparao do trabalho
312 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes de coordenadas (FRAMES)
5.7 Frames globais da NCU

5.7 Frames globais da NCU

Funo
Para cada NCU os Frames globais da NCU ocorre apenas uma vez em todos canais. Os
Frames globais da NCU podem ser gravados e lidos a partir de todos canais. A ativao dos
Frames globais da NCU realizada no respectivo canal.
Atravs dos Frames globais os eixos de canal e eixos da mquina podem ter escala alterada
e serem espelhados com os deslocamentos.
Relaes geomtricas e encadeamento de Frames
Para Frames globais no existe nenhuma relao geomtrica entre os eixos. Por isso que
no pode ser executada nenhuma rotao e nenhuma programao de identificadores de
eixos geomtricos.
As rotaes no podem ser aplicadas em Frames globais. A programao de uma
rotao negada com o alarme: "18310 canal %1 bloco %2 Frame: Rotao no
permitida".
A realizao do encadeamento de Frames globais e Frames especficos de canal
possvel. O Frame resultante contm todos componentes de Frame, inclusive as rotaes
de todos eixos. A atribuio de um Frame com componentes de rotao em um Frame
global negada com o alarme "Frame: Rotao no permitida".

Frames bsicos globais da NCU


Frames bsicos globais da NCU $P_NCBFR[n]
Podem ser configurados at 8 Frames bsicos globais da NCU:
Ao mesmo tempo podem existir Frames bsicos especficos de canal.
Frames globais podem ser gravados e lidos a partir de todos canais de uma NCU. O usurio
deve providenciar uma coordenao de canais ao gravar Frames globais. Por exemplo, isso
pode ser realizado por marcadores Wait (WAITMC).
Fabricante da mquina
O nmero de Frames bsicos globais configurado atravs de dados de mquina, veja
/FB1/ Manual de funes bsicas; Eixos, Sistemas de coordenadas, Frames (K2).
Frames ajustveis globais da NCU $P_UIFR[n]
Todos os Frames ajustveis G500, G54...G599 podem ser configurados como globais da
NCU ou especficos de canal.
Fabricante da mquina
Todos os Frames ajustveis podem ser reconfigurados em Frames globais com o auxlio de
um dado de mquina $MN_MM_NUM_GLOBAL_USER_FRAMES.
Como identificador de eixo nos comandos de programao de Frames podem ser utilizados
identificadores especficos de canal e identificadores de eixo de mquina. A programao
dos identificadores de eixos geomtricos negada com um alarme.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 313
Transformaes de coordenadas (FRAMES)
5.7 Frames globais da NCU

5.7.1 Frames especficos de canal ($P_CHBFR, $P_UBFR)

Funo
Frames ajustveis ou Frames bsicos podem,
atravs do programa de pea e
atravs do BTSS
serem gravados e lidos pela interface de operao como HMI Advanced e pelo PLC.
O deslocamento fino tambm possvel nos Frames globais. A supresso do Frames globais
realizada da mesma forma como dos Frames especficos de canal, atravs do G53, G153,
SUPA e G500.
Fabricante da mquina
Atravs do MD28081 MM_NUM_BASE_FRAMES se pode configurar o nmero de Frames
bsicos no canal. A configurao padro est definida de modo que exista pelo menos um
Frame bsico por canal. No mximo so possveis 8 Frames bsicos. Alm dos 8 Frames
bsicos no canal ainda podem existir 8 Frames bsicos globais da NCU.

Frames especficos de canal


$P_CHBFR[n]
Atravs da varivel de sistema $P_CHBFR[n] se pode ler e gravar os Frames bsicos. Ao se
gravar um Frame bsico, o Frame bsico total encadeado no ativado, a ativao somente
ocorre com a execuo de uma instruo G500, G54...G599. A varivel serve
especialmente como memria de gravaes no Frame bsico da HMI ou PLC. Estas
variveis Frame so salvas atravs do backup de dados.
Primeiro Frame bsico no canal
Uma gravao na varivel pr-definida $P_UBFR no ativa simultaneamente o Frame bsico
com o ndice de campo 0, a ativao somente realizada com a execuo de uma instruo
G500, G54...G599. A varivel tambm pode ser gravada e lida no programa.
$P_UBFR
$P_UBFR idntico ao $P_CHBFR[0]. Como padro sempre existe um Frame bsico no
canal, de modo que a varivel de sistema seja compatvel com verses anteriores. Se no
existir um Frame bsico especfico de canal, durante a gravao ou leitura ser emitido o
alarme "Frame: Instruo invlida".

Preparao do trabalho
314 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes de coordenadas (FRAMES)
5.7 Frames globais da NCU

5.7.2 Frames ativos no canal

Funo
Os Frames ativos no canal so especificados pelo programa de pea atravs das respectivas
variveis de sistema destes Frames. Aqui tambm pertencem os Frames de sistema. Atravs
destas variveis de sistema pode-se ler e gravar o atual Frame de sistema no programa de
pea.

Atuais Frames ativos no canal


Vista geral

Atuais Frames de sistema para:


$P_PARTFRAME TCARR e PAROT
$P_SETFRAME Definir valor real e contato de referncia
$P_EXTFRAME Deslocamento externo de ponto zero
$P_NCBFRAME[n] Atuais Frames bsicos globais da NCU
$P_CHBFRAME[n] Atuais Frames bsicos de canal
$P_BFRAME Atual 1 Frame bsico no canal
$P_ACTBFRAME Frame bsico total
$P_CHBFRMASK e $P_NCBFRMASK Frame bsico total
$P_IFRAME Atual Frame ajustvel
Atuais Frames de sistema para:
$P_TOOLFRAME TOROT e TOFRAME
$P_WPFRAME Pontos de referncia de pea
$P_TRAFRAME Transformaes
$P_PFRAME Atual Frame programvel
Atual Frame de sistema para:
$P_CYCFRAME Ciclos
P_ACTFRAME Atual Frame total
Encadeamento de FRAMEs O atual Frame formado pelo Frame bsico total

$P_NCBFRAME[n] Atuais Frames bsicos globais da NCU


Atravs da varivel de sistema $P_NCBFRAME[n] podem ser lidos e gravados os atuais
elementos de campo de Frames bsicos globais. O Frame bsico total resultante
processado pelo processo de gravao no canal.
O Frame alterado somente estar ativo no canal em que o Frame foi programado. Se o
Frame deve ser alterado em todos canais de uma NCU, ento $P_NCBFR[n] e
$P_NCBFRAME[n] devem ser gravados simultaneamente. Os outros canais ainda devem
ativar o Frame, por exemplo com G54. Ao gravar um Frame bsico, ser recalculado o
Frame bsico total.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 315
Transformaes de coordenadas (FRAMES)
5.7 Frames globais da NCU

$P_CHBFRAME[n] Atuais Frames bsicos de canal


Atravs da varivel de sistema $P_CHBFRAME[n] podem ser lidos e gravados os atuais
elementos de campo de Frame bsico de canal. O Frame bsico total resultante
processado pelo processo de gravao no canal. Ao gravar um Frame bsico, ser
recalculado o Frame bsico total.
$P_BFRAME Atual 1 Frame bsico no canal
Atravs da varivel Frame pr-definida $P_BFRAME o atual Frame bsico com o ndice de
campo 0 vlido no canal, poder ser lido e gravado no programa de pea. O Frame bsico
gravado imediatamente processado.
$P_BFRAME idntico ao $P_CHBFRAME[0]. Como padro a varivel de sistema sempre
tem um valor vlido. Se no existir um Frame bsico especfico de canal, durante a gravao
ou leitura ser emitido o alarme "Frame: Instruo invlida".
$P_ACTBFRAME Frame bsico total
A varivel $P_ACTBFRAME determina o Frame bsico total encadeado. A varivel somente
pode ser lida.
$P_ACTFRAME corresponde ao
$P_NCBFRAME[0] : ... : $P_NCBFRAME[n] : $P_CHBFRAME[0] : ... :
$P_CHBFRAME[n].

< %&6 < < %16

3B$&7%)5$0(

%16
; %16

3B&+%)5$0(>Q@QFRQILJXUYHODWUDYVGH0&B00B180B%$6(B)5$0(6

3B&+%)5$0(>@ 3B%)5$0(

3B1&%)5$0(>Q@QFRQILJXUYHODWUDYVGH01B00B180B*/2%$/B%$6(B)5$0(6
;

3B1&%)5$0(>@
;
%&6 %16 6LVWHPDGHSRQWR]HUR
%&6
%&6 6LVWHPDGHFRRUGHQDGDVEVLFR
3$&7%)5$0( 3B1&%)5$0(>@3B1&%)5$0(>Q@3B&+%)5$0(>@3B&+%)5$0(>Q@

Preparao do trabalho
316 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes de coordenadas (FRAMES)
5.7 Frames globais da NCU

$P_CHBFRMASK e $P_NCBFRMASK Frame bsico total


Atravs das variveis de sistema $P_CHBFRMASK e $P_NCBFRMASK o usurio pode escolher
quais Frames bsicos ele quer adicionar ao clculo do Frame bsico "total". As variveis
somente podem ser programadas uma vez no programa e lidas atravs do BTSS. O valor
das variveis interpretado como mscara de Bit e indica qual elemento de campo do Frame
bsico de $P_ACTFRAME entra no clculo.
Com o $P_CHBFRMASK se pode especificar quais Frames bsicos especficos de canal, e
com $P_NCBFRMASKquais Frames bsicos globais da NCU sero processados.
Com a programao das variveis recalculado o Frame bsico total e o Frame total. Aps
Reset e no ajuste bsico o valor de
$P_CHBFRMASK = $MC_CHBFRAME_RESET_MASK e
$P_NCBFRMASK = $MC_CHBFRAME_RESET_MASK.
p. ex.
$P_NCBFRMASK = 'H81' ;$P_NCBFRAME[0] : $P_NCBFRAME[7]
$P_CHBFRMASK = 'H11' ;$P_CHBFRAME[0] : $P_CHBFRAME[4]
$P_IFRAME Atual Frame ajustvel
Atravs da varivel Frame pr-definida $P_IFRAME, o atual Frame ajustvel, o que estiver
vlido no canal, pode ser lido e gravado no programa de pea. O Frame ajustvel que est
gravado imediatamente processado.
No caso dos Frames ajustveis globais da NCU, o Frame alterado apenas atua no canal em
que foi programado. Se o Frame de todos canais de uma NCU deve ser alterado, ento o
$P_UIFR[n] e o $P_IFRAME devem ser gravados simultaneamente. Os outros canais ainda
devem ativar o Frame correspondente, por exemplo com G54.
$P_PFRAME Atual Frame programvel
O $P_PFRAME o Frame programvel resultante da programao do TRANS/ATRANS,
G58/G59, ROT/AROT, SCALE/ASCALE, MIRROR/AMIRROR e da atribuio do CTRANS,
CROT, CMIRROR, CSCALE no FRAME programvel.
Atual varivel Frame programvel que forma a relao entre o ajustvel
Sistema de ponto zero (ENS) e o
Sistema de coordenadas da pea (WCS)
.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 317
Transformaes de coordenadas (FRAMES)
5.7 Frames globais da NCU

P_ACTFRAME Atual Frame total


O atual Frame total $P_ACTFRAME resultante agora resulta como encadeamento de todos
Frames bsicos, do atual Frame ajustvel e do Frame programvel. O atual Frame sempre
ser atualizado quando um componente do Frame for alterado.
$P_ACTFRAME corresponde ao
$P_PARTFRAME : $P_SETFRAME : $P_EXTFRAME : $P_ACTBFRAME : $P_IFRAME :
$P_TOOLFRAME : $P_WPFRAME : $P_TRAFRAME : $P_PFRAME : $P_CYCFRAME

)UDPHVGHJHUHQFLDPHQWRGHGDGRV (QWUDGDDWUDYVGRSURJUDPDSH[ (QWUDGDDWUDYVGRSURJUDPDSH[


3B&+%)5 &75$16 = 3B1&%)5 &75$16 ; 3B8,)5>Q@ &75$16 ;

3B75$)5 (QWUDGDDWUDYV (QWUDGDDWUDYV


)UDPHVGHVLVWHPD GD+0,
HVSHFILFRVGHFDQDO 3B&<&)5 GD+0,
3B:3)5
3B722/)5
3B3$57)5
3B&+%)5>Q@ 3B1&%)5>Q@
3B(;7)5

3B6(7)5 )UDPHVEVLFRV1&8 )UDPHVJOREDLV 3B8,)5>Q@


HVSHFILFRVGHFDQDO  GD1&8

DWLYDGRDWUDYVGH DWLYDGRDWUDYVGH
*** ***

)UDPHWRWDO
(QWUDGDDWUDYVGRSURJUDPDSH[
)UDPHWRWDODWLYR 3B1&%)5$0(>@ &75$16 ;

3B$&7)5$0( 3B3$57)5$0(  6(7)5$0(  3B(;7)5$0(  3B$&7%)5$0(  3B,)5$0( 

3B722/)5$0(  3B:3)5$0( 
 3B75$)5$0(  3B3)5$0(  3B&<&)5$0(

(QWUDGDDWUDYVGRSURJUDPDSH[ (QWUDGDDWUDYVGRSURJUDPDSH[
3B3)5$0( &75$16 ; 3B,)5$0( &75$16 ;
RX75$16;

Preparao do trabalho
318 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes de coordenadas (FRAMES)
5.7 Frames globais da NCU

Encadeamento de Frames
O atual Frame formado a partir do Frame bsico total, do Frame ajustvel, do Frame de
sistema e do Frame programvel conforme o atual Frame total acima mencionado.

(QFDGHDPHQWRGH)UDPHV

:&6
)UDPHSDUDFLFORV)UDPH
SURJUDPYHOWUDQVIRUPDHV
(16
)UDPHGHVLVWHPDSDUD7252 72)5$0( SHDV

**)UDPHDMXVWYHO
HVSHFGHFDQDORXJOREDOGD1&8
%16
&DPSRFRQFDWHQDGRGH)UDPHVEVLFRV
HVSHFGHFDQDOHRXJOREDOGD1&8

)UDPHVGHVLVWHPDFRQFDWHQDGRVSDUD3$527GHILQLRGHYDORUHVUHDLV
FRQWDWRGHUHIGHVORFH[WGHSRQWR]HUR

'HVORFDPHQWRFRPPDQLYHODHOHWUQLFD '5) PRYLPHQWRVREUHSRVWR


>GHVORFDPHQWRH[WHUQRGHSRQWR]HUR@
%&6

7UDQVIRUPDRFLQHPWLFD
0&6

'HVORFDPHQWRGHSRQWRGHUHIHUQFLD

0&6 6LVWHPDGHFRRUGHQDGDVGDPTXLQD %&6 6LVWHPDGHFRRUGHQDGDVEVLFR :&6 6LVWHPDGHFRRUGHQDGDVGDSHD


%16 6LVWHPDGHSRQWR]HUR (16 6LVWHPDGHSRQWR]HURDMXVWYHO

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 319
Transformaes de coordenadas (FRAMES)
5.7 Frames globais da NCU

Preparao do trabalho
320 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes 6
6.1 Programao geral de tipos de transformao

Funo geral
Para adaptao do comando em diversas cinemticas de mquina existe a possibilidade de
se programar a seleo dos tipos de transformaes com parmetros adequados. Atravs
destes parmetros pode ser acordado para a transformao selecionada tanto a orientao
da ferramenta no espao como os movimentos da orientao dos eixos rotativos.
Em transformaes de trs, quatro e cinco eixos, as indicaes de posio programadas
sempre esto relacionadas ponta da ferramenta que acompanhada de forma ortogonal
superfcie de usinagem disponvel no espao. As coordenadas cartesianas so convertidas
do sistema de coordenadas bsico para o sistema de coordenadas da mquina e esto
relacionadas aos eixos geomtricos. Elas descrevem o ponto de trabalho. Os eixos rotativos
virtuais descrevem as orientaes da ferramenta no espao e so programadas com
TRAORI.
Na transformao cinemtica as posies podem ser programadas no sistema de
coordenadas cartesiano. O comando numrico transforma os movimentos de deslocamento
do sistema de coordenadas cartesiano programados com TRANSMIT, TRACYL e TRAANG
em movimentos de deslocamento dos eixos reais da mquina.

Programao
Transformaes de trs, quatro e cinco eixos TRAORI
A transformao de orientao acordada ativada com o comando TRAORI e com os trs
possveis parmetros para nmero de transformao, vetor de orientao e Offset de eixo
rotativo.
TRAORI(nmero de transformao, vetor de orientao, Offsets de eixo
rotativo)
Transformaes cinemticas
s transformaes cinemticas pertencem as transformaes acordadas
TRANSMIT(nmero de transformao)
TRACYL(dimetro de trabalho, nmero de transformao)
TRAANG(ngulo do eixo inclinado, nmero de transformao)
Desativar a transformao ativa
Com TRAFOOF se desativa a transformao que estiver ativa no momento.

Preparao do trabalho
Manual de programao 09/2011, 6FC5398-2BP40-2KA0 321
Transformaes
6.1 Programao geral de tipos de transformao

Transformao de orientao
Transformaes de trs, quatro e cinco eixos TRAORI
Para uma usinagem otimizada de superfcies de formas espaciais na rea de trabalho da
mquina, as mquinas-ferramenta requerem eixos adicionais aos trs eixos lineares X, Y e
Z. Os eixos adicionais descrevem a orientao no espao e a seguir sero chamados de
eixos de orientao. Eles esto disponveis como eixos de rotao em quatro tipos de
mquina de diferentes cinemticas.
1. Cabeote orientvel de dois eixos, p. ex. cabeote de ferramentas cardnico com um eixo
rotativo paralelo um eixo linear e com mesa fixa de ferramenta.
2. Mesa giratria de dois eixos, p. ex. cabeote orientvel fixo com mesa giratria de
ferramenta e dois eixos.
3. Cabeote orientvel de um eixo e mesa giratria de um eixo, p. ex. um cabeote giratrio
com ferramenta rotativa com mesa giratria de ferramenta em torno de um eixo.
4. Cabeote orientvel de dois eixos e mesa giratria de um eixo, p. ex. uma mesa giratria
de ferramenta em torno de um eixo e um cabeote giratrio com ferramenta rotativa em
torno de si mesmo.
As transformaes de 3 e 4 eixos so formas especiais da transformao de 5 eixos e so
programadas de forma anloga s transformaes de 5 eixos.
A "transformao genrica de 3, 4, 5, 6 eixos", com suas funes, cobre os eixos rotativos
dispostos perpendicularmente e as transformaes para o cabeote de fresar cardnico, e
pode ser ativada com TRAORI para qualquer outra transformao de orientao, assim
como para estes quatro tipos de mquina. Na transformao genrica de 5 e 6 eixos, a
orientao da ferramenta possui mais um terceiro grau de liberdade, onde a ferramenta pode
ser girada em torno de seu prprio eixo em qualquer direo dentro do espao.
Literatura: /FB3/ Manual de funes especiais; Transformaes de 3 a 5 eixos (F2)

Posio bsica da orientao da ferramenta independente da cinemtica


ORIRESET
Se uma transformao de orientao estiver ativa com TRAORI, ento com ORIRESET se
pode especificar as posies bsicas de at 3 eixos de orientao com os parmetros
opcionais A, B e C. A associao da seqncia dos parmetros programados com os eixos
rotativos realizada de acordo com a seqncia dos eixos de orientao definida atravs da
transformao. A programao do ORIRESET(A, B, C) faz com que os eixos de orientao
se desloquem de modo linear e sincronizado de sua posio momentnea at a posio
bsica especificada.

Preparao do trabalho
322 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes
6.1 Programao geral de tipos de transformao

Transformaes cinemticas
TRANSMIT e TRACYL
No caso das operaes de fresamento em tornos, para a transformao acordada se pode
1. programar uma usinagem frontal na fixao rotativa com TRANSMIT ou
2. uma usinagem de um nmero qualquer de ranhuras em corpos cilndricos com TRACYL
.
TRAANG
Por exemplo, se o eixo de penetrao da tecnologia de retificao tambm deve penetrar de
modo inclinado, ento se pode programar um ngulo parametrizvel com TRAANG para a
transformao acordada.
Deslocamento PTP cartesiano
O "Deslocamento PTP cartesiano" tambm pertence s transformaes cinemticas, onde
se pode programar at 8 diferentes posies articuladas STAT= . As posies so
programadas no sistema de coordenadas cartesiano, onde o movimento da mquina
realizado em coordenadas da mquina.
Literatura:
/FB2/ Manual de funes ampliadas; Transformao cinemtica (M1)

Transformaes encadeadas
Sempre podem ser ativadas duas transformaes sucessivamente. Na segunda
transformao encadeada desse modo se assumem as partes de movimentos dos eixos da
primeira transformao.
Como primeira transformao so possveis:
Transformao de orientao TRAORI
Transformao polar TRANSMIT
Transformao cilndrica TRACYL
Transformao de eixo inclinado TRAANG
A segunda transformao deve ser de eixo inclinado TRAANG

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 323
Transformaes
6.1 Programao geral de tipos de transformao

6.1.1 Movimentos de orientao nas transformaes

Movimentos de deslocamento e movimentos de orientao


Os movimentos de deslocamentos das orientaes programveis dependem primeiramente
do tipo de mquina. Na transformao de trs, quatro e cinco eixos com TRAORI so os
eixos rotativos ou os eixos lineares orientveis que descrevem os movimentos de orientao
da ferramenta.
As alteraes nas posies dos eixos rotativos que participam na transformao da
orientao geram movimentos de compensao nos demais eixos da mquina. A posio da
ponta da ferramenta permanece inalterada com isso.
Os movimentos de orientao da ferramenta podem ser programados atravs dos
identificadores de eixo rotativo A, B, C dos eixos virtuais, e dependendo da aplicao,
atravs da indicao de ngulos eulerianos e ngulos RPY ou atravs de vetores de direo
e vetores normais de superfcie, vetores normalizados para o eixo de rotao de um cone ou
para orientao intermediria em uma superfcie perifrica cnica.
Na transformao cinemtica com TRANSMIT, TRACYL e TRAANG o comando numrico
transforma os movimentos de deslocamento programados do sistema de coordenadas
cartesiano em movimentos de deslocamento dos eixos reais da mquina.

Cinemtica da mquina na transformao de trs, quatro e cinco eixos TRAORI


Se pode girar a ferramenta ou a mesa de ferramenta mediante at dois eixos rotativos. Uma
combinao de um cabeote orientvel de um eixo e a mesa giratria tambm possvel.

&DEHRWH &DEHRWHRULHQWYHO &DEHRWH


= RULHQWYHO JLUDGRHPWRUQR RULHQWYHOIL[R
JLUDGRHPWRUQR GRHL[R<
GRHL[R;H= %
&
<

0HVDGHIHUUD 0HVDGHIHUUDPHQWD
$ PHQWDJLUDGDHP JLUDGDHPWRUQR
;
WRUQRGRHL[R= GRHL[R;H=
= =
& &
<

0HVDGHIHUUDPHQWDIL[D
$
;
)HUUDPHQWDJLUDGD )HUUDPHQWDJLUDGD 3HDJLUDGD
SHDJLUDGD

7LSRGHPTXLQDFRP 7LSRGHPTXLQDFRP 7LSRGHPTXLQDFRP


DVHTQFLDGHHL[R&$ DVHTQFLDGHHL[R%& DVHTQFLDGHHL[R$&

Esquema 6-1

Preparao do trabalho
324 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes
6.1 Programao geral de tipos de transformao

Tipo de mquina Programao da orientao


Transformao de trs eixos Programao da orientao de ferramenta apenas no plano
para tipos de mquina 1 e 2 que estiver perpendicular ao eixo rotativo. Existem
dois eixos translatrios (eixos lineares) e
um eixo rotatrio (eixo rotativo).
Transformao de quatro Programao da orientao de ferramenta apenas no plano
eixos para tipos de mquina que estiver perpendicular ao eixo rotativo. Existem
1e2 trs eixos translatrios (eixos lineares) e
um eixo rotatrio (eixo rotativo).
Transformao de cinco Programao da transformao de orientao. Cinemtica
eixos para tipo de mquina 3 com
Cabeote orientvel de um trs eixos lineares e dois eixos rotativos ortogonais.
eixo e mesa giratria de um Os eixos rotativos so paralelos dois dos trs eixos
eixo lineares. O primeiro eixo rotativo movimentado por dois
eixos lineares cartesianos. Ele gira o terceiro eixo linear
com a ferramenta. O segundo eixo rotativo gira a pea de
trabalho.
Transformaes genricas de 5 e 6 eixos

Tipo de mquina Programao da transformao de orientao


Transformao genrica Programao da transformao de orientao. Cinemtica
de cinco e seis eixos para com
tipo de mquina 4 trs eixos lineares e trs eixos rotativos ortogonais.
Cabeote orientvel de Os eixos rotativos so paralelos dois dos trs eixos lineares.
dois eixos com ferramenta O primeiro eixo rotativo movimentado por dois eixos lineares
rotativa em torno de si cartesianos. Ele gira o terceiro eixo linear com a ferramenta. O
mesma e mesa giratria segundo eixo rotativo gira a pea de trabalho. A orientao
de um eixo bsica da ferramenta pode ser programada atravs de um giro
adicional em torno de si mesma com o ngulo de giro THETA.
Na chamada da "Transformao genrica de trs, quatro e cinco eixos" tambm se pode
passar a orientao bsica da ferramenta. No se pode aplicar mais as restries
relacionadas s direes dos eixos rotativos. Se os eixos rotativos no estiverem
exatamente perpendiculares entre si ou se os eixos rotativos existentes no estiverem
exatamente paralelos com os eixos lineares, a "Transformao genrica de cinco e seis
eixos" pode oferecer melhores resultados de orientao da ferramenta.

Transformaes cinemticas TRANSMIT, TRACYL e TRAANG


Para operaes de fresamento em tornos ou para um eixo que avana inclinado na operao
de retificao se aplicam as seguintes disposies de eixo (em funo da transformao em
casos padro):

TRANSMIT Ativao da transformao polar


usinagem frontal na um eixo rotativo
fixao rotativa um eixo de penetrao perpendicular ao eixo de rotao
um eixo longitudinal paralelo ao eixo de rotao

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 325
Transformaes
6.1 Programao geral de tipos de transformao

TRACYL Ativao da transformao de superfcie cilndrica


Usinagem de qualquer um eixo rotativo
ranhura que percorre no um eixo de penetrao perpendicular ao eixo de rotao
corpo cilndrico um eixo longitudinal paralelo ao eixo de rotao

TRAANG Ativao da transformao de eixos inclinados


Usinagem com eixo de um eixo rotativo
penetrao inclinado um eixo de penetrao com ngulo parametrizvel
um eixo longitudinal paralelo ao eixo de rotao

Deslocamento PTP cartesiano


O movimento da mquina realizado em coordenadas da mquina e se programa com:

TRAORI Ativao da transformao


Deslocamento ponto a Aproximao da posio em sistema de coordenadas
ponto PTP cartesiano (MCS)
CP Movimento de percurso dos eixos cartesianos em (BCS)
STAT A posio das articulaes est em funo da transformao
TU O ngulo com que os eixos percorrem o curso mais curto

Deslocamento PTP na transformao de 5 e 6 eixos


O movimento da mquina realizado em coordenadas da mquina e a orientao da
ferramenta podem tanto ser programada com posies de eixo rotativo como com vetores
eulerianos e vetores RPY independentes de cinemtica ou com vetores de direo.
Desse modo possvel realizar a interpolao de eixos rotativos, interpolao de vetores
com interpolao de grande circunferncia ou interpolao do vetor de orientao sobre uma
superfcie perifrica cnica.

Exemplo de transformao de trs a cinco eixos em um cabeote de fresar cardnico


A mquina-ferramenta possui pelo 5 eixos, destes
Trs eixos translatrios para movimentos em linhas retas, que movimentam o ponto de
trabalho em qualquer posio na rea de trabalho.
Dois eixos orientveis rotativos que esto posicionados conforme um ngulo projetvel
(frequentemente 45 graus) permitem a realizao da orientao da ferramenta no espao,
restrita na posio de 45 graus sobre uma meia esfera.

Preparao do trabalho
326 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes
6.1 Programao geral de tipos de transformao

6.1.2 Vista geral da transformao de orientao TRAORI

Possveis tipos de programao em conjunto com o TRAORI

Tipo de mquina Programao com transformao TRAORI ativa


Tipos de mquina 1, 2 ou 3 A seqncia de eixos de orientao e o sentido de orientao da
Cabeote orientvel de dois ferramenta podem ser projetados
eixos ou mesa giratria de relacionados mquina atravs de dados de mquina
dois eixos ou uma e em funo da cinemtica da mquina ou projetados
combinao de cabeote relacionados ferramenta com orientao programvel
orientvel de um eixo e mesa e independente da cinemtica da mquina
giratria de um eixo. Os sentidos de giro dos eixos de orientao no sistema de referncia
so programados com:
- Sistema de referncia ORIMKS = Sistema de coordenadas da
mquina
- Sistema de referncia ORIWKS = Sistema de coordenadas da pea
O ajuste bsico ORIWKS.
Programao dos eixos de orientao com:
A, B, C direto das posies de eixo da mquina
A2, B2, C2 programao de ngulos de eixos virtuais com
- ORIEULER atravs de ngulo euleriano (Standard)
- ORIRPY atravs de ngulo RPY
- ORIVIRT1 atravs de eixos de orientao virtuais de 1 definio
- ORIVIRT2 atravs de eixos de orientao virtuais de 2 definio
com diferena no tipo de interpolao:
Interpolao linear
- ORIAXES de eixos de orientao dos eixos da mquina
Interpolao de grande circunferncia (interpolao do vetor de
orientao)
- ORIVECT de eixos de orientao
Programao dos eixos de orientao atravs da indicao
A3, B3, C3 dos componentes de vetor (normal de sentido/superfcie)
Programao da orientao de ferramenta resultante
A4, B4, C4 do vetor normal de superfcie no incio do bloco
A5, B5, C5 do vetor de normal de superfcie no fim do bloco
ngulo de avano LEAD para orientao da ferramenta
ngulo lateral TILT para orientao de ferramenta

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 327
Transformaes
6.1 Programao geral de tipos de transformao

Tipo de mquina Programao com transformao TRAORI ativa


Interpolao do vetor de orientao sobre uma superfcie perifrica
cnica
Alteraes de orientao sobre uma superfcie perifrica cnica
qualquer no espao
atravs da interpolao:
- ORIPLANE no plano (interpolao de grande circunferncia)
- ORICONCW sobre uma superfcie perifrica cnica em sentido
horrio
- ORICONCCW sobre uma superfcie perifrica cnica em sentido
anti-horrio
Vetores de direo A6, B6, C6 (eixo de rotao do cone)
- Interpolao OICONIO sobre uma superfcie perifrica cnica com:
Vetores intermedirios A7, B7, C7 (orientao inicial e final) ou
- ORICONTO sobre uma superfcie perifrica cnica de transio
tangencial
Alteraes de orientao relacionadas uma trajetria com
- Especificao ORICURVE do movimento de dois pontos de contato
atravs de
Polinmios de orientao de at 5 grau PO[XH]=(xe, x2, x3, x4, x5)
Polinmios de orientao de at 5 grau PO[YH]=(ye, y2, y3, y4, y5)
Polinmio de orientao de at 5 grau PO[ZH]=(ze, z2, z3, z4, z5)
- A suavizao do decurso de orientao ORIPATHS com
fase de reorientao A8, B8, C8 da ferramenta corresponde ao():
Direo e distncia de curso da ferramenta no movimento de
retrao
Tipos de mquina 1 e 3 Programao das rotaes da orientao da ferramenta com
ngulo de avano LEAD relativo ao vetor normal de superfcie
PO[PHI] Programao de um polinmio de at 5 grau
TILT ngulo lateral da rotao em torno da tangente da trajetria
(sentido Z)
Os demais tipos de mquina PO[PSI] Programao de um polinmio de 5 grau
com giro adicional da THETA ngulo de rotao (rotao em torno da direo da
ferramenta em torno de si ferramenta em Z)
mesma requerem um 3 eixo THETA= Valor a ser alcanado no final do bloco
rotativo THETA=AC(...) Comutar por blocos para dimenses absolutas
THETA=IC(...) Comutar por blocos para dimenses incrementais
THETA=e Interpolar ngulo programado G90/G91
Transformao de orientao PO[THT]=(..) Programao de um polinmio de 5 grau
como na transformao Programao do vetor de rotao
genrica de 6 eixos. - ORIROTA Rotao absoluta
Rotaes do vetor de - ORIROTR Vetor de rotao relativo
orientao. - ORIROTT Vetor de rotao tangencial
Orientao relativa Alteraes de orientao relativas trajetria com
trajetria para alteraes de - Orientao de ferramenta ORIPATH relativa trajetria
orientao relativas - ORIPATHS adicionalmente em uma dobra no decurso da
trajetria ou rotao do vetor orientao
de rotao tangencial Programao do vetor de rotao
trajetria - Vetor de rotao tangencial ORIROTC, rotao com a tangente da
trajetria

Preparao do trabalho
328 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes
6.2 Transformao de trs, quatro e cinco eixos (TRAORI)

6.2 Transformao de trs, quatro e cinco eixos (TRAORI)

6.2.1 Relaes gerais do cabeote de ferramenta cardnico

Funo
Para obter as condies ideais de corte na usinagem de superfcies curvadas, se deve
permitir a variao do ngulo de ataque da ferramenta.

(L[RGDIHUUDPHQWD

Esquema 6-2
Com qual forma construtiva de mquina isso obtido, est armazenado nos dados do eixo.

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 329
Transformaes
6.2 Transformao de trs, quatro e cinco eixos (TRAORI)

Transformao de 5 eixos
Cabeote de ferramenta cardnico
Aqui esto definidos trs eixos lineares (X, Y, Z) e dois eixos de orientao (C, A) do ngulo
de ataque e ponto de trabalho da ferramenta. Um dos dois eixos de orientao est definido
como eixo inclinado, aqui no exemplo A', como na maioria dos casos, na disposio de 45.


$
= <
&

;
&DEHRWHGHIHUUDPHQWDFDUGQLFRYDULDQWH

Nos exemplos aqui apresentados temos as disposies no exemplo da cinemtica de


mquina CA com o cabeote de ferramenta cardnico!
Fabricante da mquina
A seqncia dos eixos de orientao e o sentido de orientao da ferramenta pode ser
ajustado em funo da cinemtica da mquina atravs dos dados de mquina.


$

&

&DEHRWHGHIHUUDPHQWDFDUGQLFRYDULDQWH

Neste exemplo o A' encontra-se a um ngulo em relao ao eixo X

Preparao do trabalho
330 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes
6.2 Transformao de trs, quatro e cinco eixos (TRAORI)

Normalmente so aplicadas as seguintes possveis relaes:

A' encontra-se a um ngulo em relao ao Eixo X


B' encontra-se a um ngulo em relao ao Eixo Y
C' encontra-se a um ngulo em relao ao Eixo Z
O ngulo pode ser configurado na faixa de 0 at +89 atravs de dados de mquina.
Com eixo linear giratrio
Aqui trata-se de uma disposio com pea de trabalho em movimento e ferramenta em
movimento. A cinemtica formada a partir de trs eixos lineares (X, Y, Z) e dois eixos de
rotao dispostos ortogonalmente. Por exemplo, o primeiro eixo rotativo movimentado por
uma unidade de avano cruzada com dois eixos lineares, a ferramenta est paralela ao
terceiro eixo linear. O segundo eixo de rotao gira a pea de trabalho. O terceiro eixo linear
(eixo que gira) est no plano da unidade de avano cruzada.

% <

A seqncia dos eixos rotativos e o sentido de orientao da ferramenta pode ser ajustado
em funo da cinemtica da mquina atravs dos dados de mquina.
So aplicadas as seguintes possveis relaes:

Eixos: Seqncias de eixos:


1. Eixo rotativo AABBCC
2. Eixo rotativo BCACAB
Eixo linear girado ZYZXYX
Para mais explicaes sobre a configurao de seqncias de eixos para o sentido de
orientao da ferramenta, veja
Literatura: /FB3/ Manual de funes especiais; Transformaes de 3 a 5 eixos (F2), Captulo
Cabeote de fresar cardnico, "Parametrizao".

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 331
Transformaes
6.2 Transformao de trs, quatro e cinco eixos (TRAORI)

6.2.2 Transformao de trs, quatro e cinco eixos (TRAORI)

Funo
O usurio pode configurar dois ou trs eixos translatrios e um eixo rotatrio. As
transformaes partem do princpio de que o eixo rotatrio esteja em posio ortogonal ao
plano de orientao.
A orientao da ferramenta somente possvel no plano que estiver perpendicular ao eixo
rotatrio. A transformao d suporte aos tipos de mquina com ferramenta articulada e
pea de trabalho mvel.
A projeo e programao de transformaes de trs e quatro eixos realizada de forma
anloga s transformaes de cinco eixos.
Literatura:
Manual de funes especiais; Transformaes mltiplas (F2)

Sintaxe
TRAORI(<n>)
TRAORI(<n>,<X>,<Y>,<Z>,<A>,<B>)
TRAFOOF

Significado

TRAORI: Ativa a primeira transformao de orientao especificada


TRAORI(<n>): Ativa a transformao de orientao especificada com n
<n>: Nmero da transformao
Valor: 1 ou 2
Exemplo:
TRAORI(1) ativa a transformao de orientao 1
<X>,<Y>,<Z>: Componente do vetor de orientao em que a ferramenta aponta.
<A>,<B>: Offset programvel para os eixos rotativos
TRAFOOF: Desativao da transformao

Preparao do trabalho
332 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes
6.2 Transformao de trs, quatro e cinco eixos (TRAORI)

Orientao da ferramenta
Em funo do sentido de orientao selecionado da ferramenta, no programa NC o plano de
trabalho ativo (G17, G18, G19) deve ser ajustado de modo que a correo do comprimento
da ferramenta atue no sentido da orientao da ferramenta.

Indicao
Aps a ativao da transformao as posies (Z, Y, Z) sempre esto relativas ponta da
ferramenta. Alterao das posies dos eixos rotativos envolvidos na transformao que
gera os tais movimentos de compensao dos demais eixos da mquina, de modo que a
posio da ponta da ferramenta permanea inalterada.

A transformao da orientao sempre est alinhada da ponta da ferramenta para a fixao


da ferramenta.
Offset para eixos de orientao
Na ativao da transformao da orientao se pode programar diretamente um
deslocamento adicional para eixos de orientao.
Os parmetros podem ser omitidos se na programao for mantida a sequncia correta.
Exemplo:
TRAORI(, , , ,A,B) ; se apenas um nico Offset deve ser especificado
Como alternativa programao direta, o Offset adicional para eixos de orientao tambm
pode ser transferido automaticamente do atual deslocamento do ponto zero ativo. A
transferncia configurada atravs de dados de mquina.

Exemplos
TRAORI(1,0,0,1) ; A orientao bsica da ferramenta aponta para o sentido Z

TRAORI(1,0,1,0) ; A orientao bsica da ferramenta aponta para o sentido Z

TRAORI(1,0,1,1) ; A orientao bsica da ferramenta aponta para o sentido Y/


Z (corresponde a posio -45)

Preparao do trabalho
Manual de programao, 09/2011, 6FC5398-2BP40-2KA0 333
Transformaes
6.2 Transformao de trs, quatro e cinco eixos (TRAORI)

6.2.3 Variantes da programao da orientao e posio bsica (ORIRESET)

Programao de orientao da orientao de ferramenta com TRAORI


Em conjunto com uma transformao de orientao programvel TRAORI, alm dos eixos
lineares X, Y e Z, tambm se pode programar posies de eixo atravs dos indicadores de
eixo rotativo A.., B..., C... ou eixos virtuais com ngulos ou componentes de vetor. Para eixos
de orientao e eixos de mquina so possveis diversos tipos de interpolao.
Independentemente de quais polinmios de orientao PO[ngulo] e polinmios de eixo
PO[eixo] esto ativos no momento, se pode programar diversos tipos diferentes de polinmio
como G1, G2, G3, CIP ou POLY.
A alterao da orientao da ferramenta tambm pode ser programada atravs de vetores
de orientao. Neste caso, a orientao final de cada bloco pode ser realizada atravs de
programao direta do vetor ou atravs da programao das posies de eixo rotativo.

Indicao
Variantes da programao de orientao em transformaes de trs a cinco eixos
Na transformao de trs a cinco eixos as variantes
1. A, B, C Indicao direta das posies de eixo da mquina
2. A2, B2, C2 Programao de ngulo de eixos virtuais atravs de ngulos eulerianos ou
RPY
3. A3 ,B3, C3 Indicao de componentes de vetor
4. LEAD, TILT Indicao do ngulo de avano e do ngulo lateral sobre a trajetria e
superfcie
5. A4, B4, C4 e A5, B5, C5 Vetor normal de superfcie no incio do bloco e no fim do bloco
6. A6, B6, C6 e A7, B7, C7 Interpolao do vetor de orientao sobre uma superfcie
perifrica cnica
7. A8, B8, C8 Reorientao da ferramenta, sentido e distncia de curso do movimento de
retrao
se excluem uma s outras.
Valores programados de forma misturada tambm so eliminados com mensagens de
alarme.

Posio bsica da orientao da ferramenta ORIRESET


Atravs da programao do ORIRESET(A, B, C) os eixos de orientao so deslocados de
forma linear e sincronizada de sua posio momentnea at a posio bsica especificada.
Se no for programada nenhuma posio bsica para um eixo, ento ser utilizada a posio
definida no dado de mquina correspondente $MC_TRAFO5_ROT_AX_OFFSET_1/2. Neste
caso no sero considerados eventuais Frames ativos dos eixos rotativos.

Indicao

Somente quando uma transformao de orientao estiver ativa com TRAORI(...) que se
pode programar uma posio bsica da orientao da ferramenta com ORIRESET(...),
independente de cinemtica e sem alarme 14101.

Preparao do trabalho
334 Manual de programao, 09/2011, 6FC5398-2BP40-2KA0
Transformaes
6.2 Transformao de trs, quatro e cinco eixos (TRAORI)

Exemplos
1. Exemplo para cinemtica de mquina CA (nomes de eixos de canal C, A)
ORIRESET(90, 45) ;C em 90 graus, A em 45 graus
ORIRESET(, 30) ;C em $MC_TRAFO5_ROT_AX_OFFSET_1/2[0], A em 30 graus
ORIRESET( ) ;C em $MC_TRAFO5_ROT_AX_OFFSET_1/2[0],
;A em $MC_TRAFO5_ROT_AX_OFFSET_1/2[1]

2. Exemplo para cinemtica de mquina CAC (nomes de eixos de canal C, A, B)


ORIRESET(90, 45, 90) ;C em 90 graus, A em 45 graus, B em 90 graus
ORIRESET( ) ;C em $MC_TRAFO5_ROT_AX_OFFSET_1/2[0],
;A em $MC_TRAFO5_ROT_AX_OFFSET_1/2[1],

;B em $MC_TRAFO5_ROT_AX_OFFSET_1/2[2]

Programao das rotaes LEAD, TILT e THETA


As rotaes da orientao da ferramenta so programadas na transformao de trs a cinco
eixos como ngulo de avano LEAD e o ngulo lateral TILT.
Em uma transformao com terceiro eixo rotativo so permitidas programaes adicionais
com C2 (rotaes do vetor de orientao) tanto na orientao com componentes de vetor
como com