Você está na página 1de 103

PÁGINA INTENCIONADAMENTE EN BLANCO

TNC 640

REGISTRO DE REVISIONES
Causa Revision Fecha
Creación del documento 0 04/03/13

Rev.0 Página 3
TNC 640

PÁGINA INTENCIONADAMENTE EN BLANCO

Página 4 Rev.0
TNC 640

Índice de contenido
1.CAMBIO DE SOFTWARE:.........................................................................................................9
2.DYNAMIC EFFICIENCY INCLUYE OPCIÓN 145...........................................................................9
3.DYNAMIC PRECISION..............................................................................................................9
4.PARÁMETROS.........................................................................................................................9
4.1.SYSTEM:.....................................................................................................................................11
4.2.Axes...........................................................................................................................................11
4.3.Channel......................................................................................................................................12
4.4.KeySynonym..............................................................................................................................12
4.5.Ubicación de los ficheros de configuración de los parámetros.................................................12
4.6.Estructura de ficheros de parámetros CFG...............................................................................12
4.7.KeySynonym..............................................................................................................................14
4.8.Lista de parámetros...................................................................................................................18
4.9.COMANDOS SQL........................................................................................................................20
4.10.Funciones M............................................................................................................................21
4.11.SUBFICHEROS DE PARAMETROS.............................................................................................33
4.12.Introducir un nuevo eje en el sistema.....................................................................................36
4.13.Distintos ParameterSet para un mismo eje.............................................................................45
4.14.Rangos ....................................................................................................................................45
5.PYTHON...............................................................................................................................47
6.CAMBIADOR DE HERRAMIENTAS..........................................................................................55
7.PROYECTO BASIC..................................................................................................................59
8.APIMARKER.DEF...................................................................................................................62
9.ESTRUCTURA DE PROGRAMA BASIC DE PLC:.........................................................................66
9.1.OPCIONES EN EL OEM.MCG......................................................................................................70
10.MACROS PARA CAMBIAR DE MODO TURN A MODO MILL Y VICEVERSA.............................74
10.1.MODETURN.............................................................................................................................78
10.2.MODEMILL...............................................................................................................................84
11.CALIBRADO DEL DESEQUILIBRIO.........................................................................................88
12.DUDAS DE PARÁMETROS....................................................................................................88
13.FUNCIONES NC...................................................................................................................88
14.MACROS DE NC..................................................................................................................90
15.KINEMATIK.........................................................................................................................91
15.1.Kinemática para tornear (pasar a donde está explicado antes)..............................................94

Rev.0 Página 5
TNC 640

16.AJUSTE DE EJES...................................................................................................................95

Página 6 Rev.0
TNC 640

PÁGINA INTENCIONADAMENTE EN BLANCO

Rev.0 Página 7
TNC 640

1. CAMBIO DE SOFTWARE:
Ir a la carpeta PLC:\PROTO\PLC y coger el fichero ApiMarker.def. Meterlo en el proyecto de plc y
compilarlo con este nuevo ApiMarker.def, lo demás pueden haber aparecido o desaparecido
algunas variables de interconexión y dar fallo.

2. DYNAMIC EFFICIENCY INCLUYE OPCIÓN 145


ACC: Active chatter control, comentar, es una opción de software, frecuencia de chatter menor
de 100Hz, no requiere acelerómetros

AFC: Adaptive feed control

Trocoidal: ciclo 275

3. DYNAMIC PRECISION
CTC (Cross Talk Compensation): se pone un KGM en el centro de gravedad y se ve las
diferencias en posicionamiento en la regla, aplicada donde están los motores y en el KGM.

Así se pueden corregir deformaciones de la estructura debido a las aceleraciones.

AVD (active vibrations damping): permite reducir vibraciones como se se redujera el jerk por 3.

PAC (position adaptive control):distintos Kv para distintas posiciones de eje

LAC (load adaptive control): cálculo automático de los MP2600

MAC (motion adaptive control): modifica parámetros dependiendo de la velocidad, error y


aceleración, par de pretensado, mayor aceleración en desplazamientos en rápido.

4. PARÁMETROS
-Ubicación de los parámetros CONFIG FILE LIST.

Rev.0 Página 9
TNC 640

Con el TNCRemo se ven así:

En el control aparecen 4 grupos:

Cada uno de estos grupos contiene a más de un subfichero. Los parámetros del eje X están en un
subfichero CFG pero luego en el TNC aparecen agrupados siempre de la misma manera. El TNC
busca en todos los ficheros indicados en el CONFIG FILE LIST para luego sacarlo en pantalla
siempre con esta estructura. No hay que poner el mismo parámetro en más de un fichero CFG.

Página 10 Rev.0
TNC 640

4.1. SYSTEM:
Afectan a todo el sistema y solo aparecen una vez, por ejemplo el parámetro de aceleración
puede estar repetido varias veces. Pues estos no.

4.2. AXES
Objetos de parámetros aplicados a ejes: son parámetros que se van a repetir por eje. Parámetros
específicos de bit.

Si queremos ver, por ejemplo, el Kv de todos los ejes podemos pulsar la softkey TABLE.

Colocarse sobre el parámetro y pulsar:

Para más información sobre el parámetro ponerse encima y pulsar:

Rev.0 Página 11
TNC 640

4.3. CHANNEL
Objetos de parámetros aplicados a canales, hay dos canales, uno de ejecución y otro de
simulación. Normalmente serán los mismos.

4.4. KEYSYNONYM
lo veremos más adelante. Sirve para Subficheros de parámetros.

4.5. UBICACIÓN DE LOS FICHEROS DE CONFIGURACIÓN DE LOS PARÁMETROS


HDH recomienda:

4.6. ESTRUCTURA DE FICHEROS DE PARÁMETROS CFG.

HDH no recomienda editar ficheros CFG a mano.

Página 12 Rev.0
TNC 640

Abriendo directamente el fichero CFG con un editor de texto:

Lo mismo en el control numérico:

Rev.0 Página 13
TNC 640

Para diseño del parámetros en oficina se utiliza el ConfigDesign, con el que vemos la estructura
como se ve en el control numérico.

4.7. KEYSYNONYM
Queremos crear un subficehro de parámetros para el set de parámetros del eje X.

Ir debajo a KeySynonym y dar a INSERT.

Le damos el nombre del fichero de parámetros al que lo queremos vincular.

Página 14 Rev.0
TNC 640

Guardar

Reiniciar la estación.

Ya aparece el subfichero vinculado a PX.

Rev.0 Página 15
TNC 640

Por ahora PX_2 es una copia idéntica del fichero PX.

Vamos a cambiar solo los límites, vamos a desvincular, para que puedan tener valor distinto a los
de PX.

Volver a dar INSERT y nos pregunta en qué set de parámetros lo queremos meter.

KeySynonym no hace una copia, solo hace un acceso directo o un puntero a la carpeta orogonal.

Al hacer un INSERT en CFGPositionLimit..., sí que crea ese parámetro, todos los demás son
puntero a PX y estos son nuevos.

Desaparece el vínculo, la flecha esa ya no está.

Página 16 Rev.0
TNC 640

Podemos meter ahora cualquier valor.

Ahora se va a los parámetros físicos del eje X e insertamos los juegos de parámetrso.

Pulsamos INSERT e incluimos el set de parámetros.

Luego se podrá seleccinoar entre estos subficheros de parámetros por NC o por PLC.

Rev.0 Página 17
TNC 640

Guardar y reiniciar.

No es necesario todo esto, se puede escribir un subfichero de parámetros que solo contenga
estos parámetros que queremos cambiar y lanzar este subfichero por NC o por PLC.

Preguntar a Oier cómo se hace en Soraluce.

4.8. LISTA DE PARÁMETROS.

En principio como Premium, si hay problemas en el mecanizado hay que desactivar para probar,
pero en principio no debe empeorar.

Página 18 Rev.0
TNC 640

Estos dos siempre a valor FALSE.

Filtros de posición nominal.

En los parámetros de eje se pueden incluir filtros de posición nominal específicos de eje, pero no
se recomienda.

Pulsar INSERT para elegir los ejes que queremos que se quieren mover con el volante.

Rev.0 Página 19
TNC 640

Display axis.

Mostrar solo si el eje está definido en la kinemática.

4.9. COMANDOS SQL


Son para leer o escribir datos de una base de datos, por ejemplo una tabla (TOOL.T, etc.)

Lanzar MACROS

Definimos las macros que se lanzan con cada uno de estos eventos.

Página 20 Rev.0
TNC 640

Temporizadores

Se deben definir en el PLC y en parámetros.

Algunos temporizadores están definidos como array, un index para cada eje por ejemplo.

Algunos arrancan y paran con variables de PLC.

Los que no tienen esa definición se arrancan por medio de módulos de PLC.

4.10.FUNCIONES M
Se definen en parámetros:

Cada una deja parametrizar los siguientes valores.

Rev.0 Página 21
TNC 640

Página 22 Rev.0
TNC 640

En modo tabla:

M de MACRO

Rev.0 Página 23
TNC 640

Además la M13.H que se lanza porque hemos definido que es una macro.

Página 24 Rev.0
TNC 640

Hay hasta 399 funciones M.

Códigos S

AL programar una S se tratan todas estas variables.

EN modo torno no tiene sentido programar una S o una velocidad de corte. Asignando esta
variable a este parámetro se indica el modo en que que se va a trabajar.

Diferentes juegos de parámetros dependiendo de modo estrella-triángulo y dos gamas en cada


uno de los casos:

Se podrían añadir más juegos de parámetros para más gamas solo haciendo copy pega y
cambiando los subíndices.

Rev.0 Página 25
TNC 640

STROBE TOOL CALL

Se define cómo van a ser los strobes para cada secuencia.

Página 26 Rev.0
TNC 640

Marcas de interconexión, NC / PLC

Rev.0 Página 27
TNC 640

Se pueden definir todas las que queramos.

Cambio de cabezales

Kinematicas

iTNC530

KINELIST.TAB: diferentes líneas

Ejemplo cinemática

CMO

TRANS X

TRANS Y

MACHAXIS B

TNC640

Página 28 Rev.0
TNC 640

Definición de los subficheros

Rev.0 Página 29
TNC 640

Definición de las transformaciones

Definiciones de los ejes de giro libre

Se puede definir un eje W, paralelo al Z.

Objetos

Lo mismo

Página 30 Rev.0
TNC 640

Un poco complicado para definir en qué ejes quedan los vértices de los grupos

EJES

Definición de los ejes de máquina

Physicall axis

Para desactivar un eje se puede decir que no hay consigna y ponerlo en modo Test.

Rev.0 Página 31
TNC 640

Para cada eje se puede tener distintos juegos de parámetros:

CONFIGDESIGN

Se pueden cargar los parámetros de una máquina al ConfigDesign y también se puede exportar
de la versión de software actual los que da HDH.

También se pueden sacar los de un fichero de servicio .ZIP.

Se pueden comparar ficheros con los que hay en el control.

Página 32 Rev.0
TNC 640

4.11.SUBFICHEROS DE PARAMETROS
Se pueden cambiar todos los que no suponen un RESET del CNC. En el subfichero solo aparecen
aquellos que cambian.

Los subficheros se pueden editar también con CONFIGDESIGN.

En el control o el la estación se puede cargar un fichero y ver que está bien.

AL cambiar algún fichero relevante se pone a 1 una variable.

Por PLC con el módulo 9430, con SUBMIT y con strobe de M, S, T o G.

EN el control se pueden visualizar los parámetros del fichero principal, o los cargados en
memoria.

Rev.0 Página 33
TNC 640

Temporary data: no se escriben en el fichero, son temporales.

Lectura de parámetros por NC:


CFGREAD: puede leer valores numéricos, booleanos, strings.

Ejemplo:

La descripción del parámetro empieza en KEY_NAME:

Página 34 Rev.0
TNC 640

Ejemplo:

Cambio de parámetros por PLC:

Módulos 9430, 9433, 9436, 9438


– Use Module 9430 to overwrite the numerical value of a machine parameter temporarily.
– Use Module 9431 to read the numerical value of a machine parameter from the run-time
memory.
– Use Module 9432 to overwrite any string in the machine configuration temporarily.
– Use Module 9433 to read any string from the run-time memory.
– Use Module 9436 to save the numerical value of a machine parameter permanently.
– Use Module 9438 to save any string in the machine configuration permanently.

* Use the Modules 9436 and 9438 very carefully and perform intensive tests on the PLC program.
Changes made using these modules might affect the machine configuration to such an extent
that the TNC 640 cannot be started properly anymore.

Rev.0 Página 35
TNC 640

4.12.INTRODUCIR UN NUEVO EJE EN EL SISTEMA


Entrar a parámetros

1. Definir en qué fichero se va a guardar. En CfgConfigDtatFiles/DataFiles añadimos un nuevo


fichero.

Previamente hacer una copia de uno de los ficheros, luego se inserta en CfgConfigDataFiles.

2. Reiniciar el CNC e ir de nuevo a parámetros.

3. Crear un nuevo parameter set, o hacer una copia de uno que ya existe y sea parecido.

Página 36 Rev.0
TNC 640

Luego hay que insertar este parameter set.

Rev.0 Página 37
TNC 640

Completar todos los MP del nuevo ParameterSet.

4. Crear un PhysyicalAxis y asignar a ese eje físico el parameter set que se ha creado.

Página 38 Rev.0
TNC 640

En PartList asignar el ParameterSet que se ha creado.

5. Configurar Axes/ProgAxis siguiendo los dos pasos siguientes:

Hacer una copia:

Rev.0 Página 39
TNC 640

Insertar:

Página 40 Rev.0
TNC 640

Primero hacer una copia de un eje.

6. Ir a System/DisplaySettings/CfgDisplayData/AxisDisplay y decir que se debe visualizar el eje y el


orden.

7. Ir a System/DisplaySettings/CfgPos/DisplayPace y dar la resoulción del eje.

8. Ir a System/CfgAxes/AxisList e insertar el eje en los ejes de la máquina.

9. Introducir el eje en la cinemática, para eso primero:

Asignar el eje al canal en el que queremos que esté activo, normalmente los dos.

Rev.0 Página 41
TNC 640

Página 42 Rev.0
TNC 640

Si se trata de un eje esclavo lo normal es hacer un KeySynonym para el ParameterSet y dejar solo
los parámetros que cambian.

Rev.0 Página 43
TNC 640

4.13.DISTINTOS PARAMETER SET PARA UN MISMO EJE


Diferentes casos: Eje C, Distintos pesos en la mesa, conmutación estrella-triángulo...

Para cambiar de un parameter set a otro: por PLC módulos 9434 (Select parameter set) y 9435
(Status of the parameter set of an axis).

Primero abrir el lazo de posición y corriente y velocidad. You can switch the drive controller off
via your PLC program using PP_AxDriveOnRequest and PP_AxPosControlRequest and reactivate
it after the parameter set has been switched.

No se pueden cambiar los que produzcan RESET del control.

Para conmutar los parameter set tiene que haber una M que haga SYNC_CALC, porque aparte de
parar el LookAhead tiene que volver a recalcular la geometría después de acabar.

4.14.RANGOS
- System/ CfgWorkingRange

Cada WorkingRange lleva asociado una cinemática, su parameter set etc. En todos los working
range que se hagan tienen que estar todos los parámetros que cambiamos.

En las partes de ejes incluimos los parameter set de todos los ejes involucrados. Se recomienda
poner en cada WorkingRange todos los ejes de la máquina o, por lo menos, definir en todos ellos
los ejes que se activan/desactivan en uno.

Página 44 Rev.0
TNC 640

Podemos hacer que al encender la máquina por defecto se arranque con un working range.
Luego ya consultar entradas o lo que sea que diga qué ejes están activos y luego lanzar el working
range que corresponde.

En Channel Setting podemos dar esta configuración por defecto.

Máquinas con dos mesas y penduleo, mesa como eje de PLC.

Selección de Working range, solo se puede hacer por NC.

Pasos que ejecuta esta FN 17:

- El CNC va a poner a 0 la marca que de PLC que se activa cada rango.

- Activa / desactiva ejes

- Activa la kinemática

- Activa tabla preset o tabla de palpadores

Rev.0 Página 45
TNC 640

- Pone la marca PLC del nuevo rango a “1”

6.7.3. Ejemplo penduleo con dos mesas

Parámetros de usuario
Los parametros de usuario se guardan en ficheros .xml. Para modificar estos parámetros hay que
cambiar directamente desde el fichero, y volver a transmitirlo.

Se puede abrir desde Notepad C++ o Ultraedit para ver mejor el contenido.

Hay diferentes parametros de usuario y se puede acceder a ellos desde MOD → User
parameters, o MOD → 123

Ejemplo: poner el parámetro de selección de idioma en parámetros de usuario

5. PYTHON
Heidenhain tiene clases definidas para hacer las máscaras.

Clases: patrones, incluyen funciones, que dentro de las clases se llaman métodos.

Objetos: se crean a partir de clases y engloban los métodos y las variables

Las funciones dentro de las clases siempre tienen como entrada la variable self, es como si no
estuviera.Se usa para acceder luego a las variables reales con self.

Las clases son patrones, los objetos se crean a partir del patrón o la clase. Cada función dentro de
la clase son métodos. Los objetos almacenan los métodos además de las variables de cada una.

self indica que name no es una variable local sino que es una variable que se pasa como
parámetro al objeto

class className:

def createName(self,name):#self indica que name no es una variable local sine que es una
variable que se pasa como parámetrso al objeto

self.name=name

def displayName(self):

Página 46 Rev.0
TNC 640

return self.name

def saying(self):

print "Hello %s" % self.name

#exampleObject1 = className()

#exampleObject2 = className()

#exampleObject1.createName("Diego")

#exampleObject2.createName("Hola")

#print str(exampleObject1.displayName())

#print str(exampleObject2.displayName())

Si se llama a esta clase desde otro fichero:

import texto

import time

exampleObject1 = texto.className()

exampleObject2 = texto.className()

exampleObject1.createName("Diego")

exampleObject2.createName("Hola")

print str(exampleObject1.displayName())

Rev.0 Página 47
TNC 640

print str(exampleObject2.displayName())

exampleObject1.saying()

Heidenhain tiene programas .PY con librerías y funciones para que se puedan utilizar.

Página 48 Rev.0
TNC 640

En el OEM.MFG hay que definir que tenemos las máscaras de Python.

Las máscaras de Python empiezan con Pymask.py. Es donde se cargan todas las máscaras de la
carpeta MASK.

Hay algunas variables que se importarán o no en función de las opciones de configuración que
definiremos en OEM.mcg. PLC_SYMBOLS_DEF.PY hace la unión entre Pymasks.py y el OEM.mcg.

Rev.0 Página 49
TNC 640

- GLOBAL_SYMBOL = '\\PLC\\program\\symbol\\global\\'

- PLC_3D_HEAD_ACTIVE = 'KG_3D_head_active'

- PLC_DIA_TCOMP1_ACTIVE = 'KG_temp_comp_1_active'

Las variables a la derecha se definen en system.def, y adjunto a ellos se encontrará la opción de


configuración.

PYMASKS.PY se lanza desde el módulo PYTHON.SRC por un módulo de PLC nada más arranca el
control numérico.
LBL Masks
;----------------------------

#if Cfg_Python_Masks = "active"


LN ML_PY_masks_initialized
AN PN_error_254_python_masks
O ML_py_masks_set_reset
A MG_machine_parameter_are_read
IFT
RPLY BL_identifier_PY_masks
== K+0
IFT
SUBM Python_masks_submit
= BL_identifier_PY_masks
== K+0
S PN_error_0099_submit_spawn_queue_full
ENDI
ENDI

Página 50 Rev.0
TNC 640

EM

;----------------------------
LBL Python_masks_submit

PS S"PY_MASKS"
CM 9297
PLW
== KL_PY_process_active
IFF
PS KL_mode_asynchronous
PS KL_memory_py_masks
PS KS_PY_masks_path
PS S"PY_MASKS"
PS S""
CM 9295
PL DL_error_PY_masks
PL DL_exit_PY_masks

M_display_module_error(KG_error_module_9295)

LN ML_PY_masks_initialized
S ML_PY_masks_initialized
ELSE
PS KL_terminate_python_process
PS S"PY_MASKS"
CM 9296
PL DL_exit_PY_masks

M_display_module_error(KG_error_module_9296)
ENDI

L MG_marker_one
R ML_py_masks_set_reset
#endif
EM

Luego en PYMASKS.PY quedan suscritas al estado de una marca.


def _on_softkey_back(plcValueDict, event=None):
jh.Put({(GLOBAL_SYMBOL + PLC_MASK_SOFTKEY_BACK) : False})
jh.Put({(GLOBAL_SYMBOL + PLC_DIA_AXES_SHOW) : False})
jh.Put({(GLOBAL_SYMBOL + PLC_3D_HEAD_SHOW) : False})
jh.Put({(GLOBAL_SYMBOL + PLC_DOC_M_SHOW) : False})
jh.Put({(GLOBAL_SYMBOL + PLC_STAT_PLC_SHOW) : False})
jh.Put({(GLOBAL_SYMBOL + PLC_STAT_STROBE_SHOW) : False})
jh.Put({(GLOBAL_SYMBOL + PLC_STAT_GEN_SHOW) : False})
jh.Put({(GLOBAL_SYMBOL + PLC_DIA_TC_SHOW) : False})
jh.Put({(GLOBAL_SYMBOL + PLC_DIA_MAG_SHOW) : False})
jh.Put({(GLOBAL_SYMBOL + PLC_DIA_TCOMP_SHOW) : False})
jh.Put({(GLOBAL_SYMBOL + PLC_STAT_FS_SHOW) : False})
jh.Put({(GLOBAL_SYMBOL + TC_HELP_SHOW) : False})
jh.Put({(GLOBAL_SYMBOL + PC_HELP_SHOW) : False})

Rev.0 Página 51
TNC 640

jh.Subscribe( ident=GLOBAL_SYMBOL + PLC_MASK_SOFTKEY_BACK, notify=_on_softkey_back,


notifyInit=False, downTime=0.2, onChange=True )

# run the jh.Main loop, to keep the script alive


jh.Main()

HOW TO CREATE A NEW MASK DESCRIPTION?


- Create a new file with the extension .py in the sub folder MASKS.
- In the PyMaks.py import the new file by name like: import MASKS.Mask_Example (without extension ).
- Copy the header from line 1 to line 49 (# CREATE THE WINDOW WITH ALL WIDGETS).
- Define all pygtk or plcgtk widgets in the new file.
- For pygtk objects look at www.pygtk.org.
- For plcgtk object look at the sub folder COMMON file plcgtk.py.
This file includes simple classes for your masks like:
- embeddedWindow
- plcCheckButton
- plcEntry
- plcLabel
- plcLevelBar
- plcImage
- info
- ...
- Pack the new widgets in the embeddedWindow like: myWindow.pack_start(<new pygtk or plcgtk widget>)
- Or attach the widgets to specific cell of a plcgtk.table like: myTable.attachToCell(<new pygtk or plcgtk widget>,
col=1,row=1)
and pack the table in the window like: myWindow.pack_start(myTable)
- For complex masks you can import special widgets like:
- media player for video streaming:
from COMMON.mPlayer import *
mPlayerWebCam = MPlayer(shellFile='PLC:\\Python\\SHELL\\startCamera.sh')
- firefox web browser:
from COMMON.webBrowser import *
browserWebCam = WebBrowser(url='www.heidenhain.de', width=600, height=400)
- For multilanguage masks import from the sub folder COMMON the file get_text.py
from COMMON.get_text import *
bindTextDomain(path = 'LANGUAGE', domain = 'myTextDomain')
# use the txt() function to translate a token defined in the PLCtext (Python-Text) like:
myWindow = embeddedWindow(title = txt('MACHINE'))

Máscara cargador de herramientas:

Utiliza textos que están definidos en el PLCTEXT

Página 52 Rev.0
TNC 640

Rev.0 Página 53
TNC 640

En pantalla se ve:

Página 54 Rev.0
TNC 640

6. CAMBIADOR DE HERRAMIENTAS
Tabla de herramientas y puestos: TNC:\TABLE\ TOOL.T y TOOL_P.TCH

En la tabla de htas. 0.0 significa hta. en cabezal y 1.1 o 1.16 significan htas 1 o 16 del primer
almacén. El control sabe cuántos puestos tiene el almacén en función de las líneas que definas en
la tabla de puestos. Para modificarlo, en PLC:\proto\table\prototype.tch, y en la tabla de TNC
cuando hagas RESET TABLE se actualizará automáticamente.

Tabla de herramientas de torneado: TOOLTURN.TRN

Pedir información para Balluff.

Para llamar a macro con TOOLCALL:

Equivalente a TC=PLC:\OEMCY1....en iTNC530.

Diferentes secuencias de cambio dependiendo del tipo del almacén.

Se configuran en parámetros:

Rev.0 Página 55
TNC 640

* T0 → cabezal sin hta. Tint → hta de almacén. Text → Hta manual. TintS → hta almacén especial
TextS → Hta manual especial. TintF → hta almacén con puesto fijo

Las combinaciones en las secuencias son:

Cada una de las secuencias tiene una palabra clave asignada en el parámetro. Las palabras clave
indican el comportamiento en cada caso.

Página 56 Rev.0
TNC 640

T0: herramienta vieja

T1: herramienta nueva

Ejemplo:

SequTintTint: herramienta de almacén seguida de herramienta de almacén. Tiene definida la


secuencia T1_TNC, lo que quiere decir que descarga la herramienta y nos da los datos de la tabla
de puestos de la nueva. Esto es solo para un almacén Random, deja la herramienta vieja en el
puesto de la nueva.

SequTintTintF: herramienta de almacén seguida de herramienta de almacén con puesto fijo.


Tiene definida secuencia T0T1_TNC.

Ejemplos manual técnico: (Mirar)

Almacén M1V o M3

Hay un parámetro donde se puede configurar en qué marcas se va dar información de los
strobes, equivalente a las marcas M4520, etc.

Rev.0 Página 57
TNC 640

Las variables para los strobes se definen en los parámetros:

El número de puestos no se define en parámetros, lo define el número de filas de la tabla de


puestos.

Página 58 Rev.0
TNC 640

Habrá que leer en una variable de PLC los números de puestos de la tabla inicialmente para
comparar con el valor actual, por si el operario la cambia.

ToolDef tiene dos funciones: preparar la hta. (coger) o definir R y L. Se elige qué opción se quiere
en

7. PROYECTO BASIC

Definir la máquina OEM.MCG

Para máquinas sencillas con esto y la configuración de entradas sencillas vale con esto.

Hay varios OEM.MCG, el que nos vale a nosotros es OEM.MCG

Dependiendo del Working Station que se define se envía un OEM.MCG al control, pero en el CNC
siempre lleva el nombre OEM.MCG. Mejor siempre trabajar con el TNC640OEM, lo del
programmiing station es solo para un arranque inicial de la estación de programación. Nosotros
mejor utilizar el OEM.CFG también para la estación.

Seleccionar Working Station: TNC 640 OEM

Configurar el OEM.MCG

Generar entradas salidas con el IOConfig para generar el GLB_IO_CONFIG.DEF.

Rev.0 Página 59
TNC 640

Hay un fichero que contiene todos los nemónicos de entradas salidas que se utilizan en el PLC
Basic. GLB_IO_CONFIG.LIB.

En el MAIN_PGM.SRC se seleccionan los dos. Los que no están definidos en el


GLB_IO_CONFIG.DEF los asocia a marcas en el GLB_IO_CONFIG.LIB. En este hay que poner ; a
todos los que ya están definidos en el GLB_IO_CONFIG.DEF.

En el OEM.MCG al final hay que definir las cinemáticas. Al hacer esto se generan los parámetros
más o menos que van a ser acordes a esta configuración.

Luego abrir como se indica aquí:

Página 60 Rev.0
TNC 640

Aquí están definidos los ficheros originales que ha creado HDH. Según las rules que se han
definido se crean el en CONFIGDesign los parámetros para la máquina que hemos configurado.

También se puede hacer esto:

Si la versión de software del CNC es diferente podemos rellenar los que nos vaya pidiendo o
podemos generar un service file en el CNC y compararlos con estos para ver si hay alguno nuevo,
etc.

Rev.0 Página 61
TNC 640

Todo esto se explica aquí.

8. APIMARKER.DEF
No se trabaja con operandos sino que con nemónicos. Las variables o nemónicos de definen en
APIMARKER.DEF. Este fichero está en PLC:\PROTO\PLC. Al actualizar el software hay que coger
este fichero, sobreescribirlo y volver a compilar el proyecto. Este fichero se puede sacar de la
máquina o del SETUP.ZIP de la versión de software, en TNC640_ADD_PLC.ZIP\PLC\PROTO. Si el
cliente cambia la versión de software puede haber problemas, por lo que conviene que se
compile el PLC con el nuevo APIMARKER.DEF.

Tiene formato de estructura, dividido en cuatro grupos. Para leer variables de cada grupo dentro
de la estructura:

Página 62 Rev.0
TNC 640

Ejemplo: comprobar si el eje X está en movimiento:

ApiAxis[X].NN_AxInMotion

X: índice de eje definido en el AXIS_LIST.

Ejemplo: leer el código de la tecla pulsada

ApiGen.NP_GenKeyCode

Rev.0 Página 63
TNC 640

Equivalente a módulo 9161

PS K%00000001
CM 9161

Ahora es: → S ApiAxis[0].PP_axDriveOnRequest (se trata como una marca, todo eso es una
marca)

* EJEMPLO PARA ACTIVAR UN EJE

Página 64 Rev.0
TNC 640

Todo esto se hace en el PLC con un CASE Axes[BL_axis_index].BG_step_axes. Todos los ejes no
lo hacen igual (algunos tienen freno, etc.). En estos casos, hay que configurar en OEM.mcg en el
apartado axis configuration el tipo de eje.

El índice del eje se define en:

Rev.0 Página 65
TNC 640

Se define en OEM.MCG.

Por ahora el PLC standar está preparado para controlar como máximo 10 ejes.

Se ha cambiado en el PLC de Soraluce, pero luego ha habido que adaptar todos los
tempoirzadores etc que se utilizan para ejes y ampliarlos.

Normalmente se accede a las variables de ejes así:

Se inicializa a 0 y se suma hasta el número máximo de ejes.

Página 66 Rev.0
TNC 640

9. ESTRUCTURA DE PROGRAMA BASIC DE PLC:


• MAIN_PGM.SRC; llama a todos los demás .SRC

• OEM.MCG: Configuración

• En el GLB_IO_CONFIG.LIB aparecen todos los nemónicos que se usan en el PLC (da igual que
se usen o no). En el caso de Soraluce, creo que se hace en Sora_IO_aux.DEF

• Con el IOCONFIG se crea el GLB_IO_CONFIG.DEF. (asignar los nemónicos de


GLB_IO_CONFIG.lib a entradas y salidas)

• En GLB_IO_CONFIG.LIB hay que poner “;” a las definiciones que ya están en el


GLB_IO_CONFIG.DEF. En nuestro caso Sora_IO_aux.DEF

Rev.0 Página 67
TNC 640

Definiciones

GLB_MB.DEF: nemónicos globales (los remanentes con “/r” al principio)

GLB_PLCCFG.DEF: nemónicos definidos en los parámetros

Página 68 Rev.0
TNC 640

Ejes:

en el .DEF

En el CONFIGDesign:

Rev.0 Página 69
TNC 640

INTERN.DEF

Las variables globales que se tienen que definir según las opciones de configuración del
OEM.MCG.

SYSTEM.DEF

Decodifica el OEM.MCG

OEM.CFG

SYSTEM.DEF

En los ficheros .SRC se utilizan estas que están definidas en el SYSTEM.DEF.

Se recomienda añadir cosas al PLC Basic de la siguiente manera:

OEM.MCG

Página 70 Rev.0
TNC 640

En los ficheros .SRC:

Así tenemos identificadas las modificaciones que se han hecho para poder migrar más fácil
cuando salga una nueva versión del Basic.

9.1. OPCIONES EN EL OEM.MCG


(Todas las opciones del OEM.mcg están explicadas en el fichero “docu-basic-nck-v05-00-
mill_en.pdf”, en el apartado 3.3.)

- Cfg332Tuning → Ver ciclo 332, no sé si se pone en Soraluce.

- Circuitos de refrigeración de la herramienta:

Definir cuantos circuitos y cada cabezal qué circuitos.

Ojo! Este último en hexadecimal.

Ejemplo: Los dos cabezales tienen los dos circuitos.

Ver documentación del Basic.

- Opción de comunicar dos CNCs por Python Ver documentación del Basic.

- Opción Spindle clamping, ver si se ha usado en el cabezal H200T.

- Opción de mantener el lazo de corriente activo al tener el eje bloqueado, para que´sirve??

- CFG_additional_axis

Ejes adicionales, como mesas que pueden estar conectadas o no.

No nos vale para activar desactivar mesas porque hay que apagar y encender la máquina.

- CFG_3D_HEAD

Rev.0 Página 71
TNC 640

Soporta dos ejes en modo de operación como eje C.

Se definen los ejes como ejes Hirth.

Se aplica la limitación de par durante el bloqueo? Ver en el PLC de Soraluce.

- CFG_S_IN_AXIS_MODE

Esta opción es para el spindle como eje C.

Tener en cuenta que hay que contar como un eje más para el SIK, sino hay que deshabilitar.

Configuración de ejes para nuestro caso

Ver sistema de paletizado en el standar del PLC basic para la máquina RT PIPE.

Control de ejes

En el CASE utiliza una estructura de datos.


Axes[BL_axis_index].BG_step_axes

Si queremos ver el de cada eje en el Watchlist tenemos que poner:

Axes[0].BG_Step_Axes

Página 72 Rev.0
TNC 640

Rev.0 Página 73
TNC 640

Definición de estructuras para control de ejes:

en LB_MB.DEF:

Y muchos más

Luego para acceder a cada variable por ejemplo:

Axes[BL_axis_index].MG_active

Página 74 Rev.0
TNC 640

10.MACROS PARA CAMBIAR DE MODO TURN A MODO MILL Y


VICEVERSA.

En parámetros se define la macro para hacer el cambio:

Para acceder a la macro en MDI o edición o ejecución:

Rev.0 Página 75
TNC 640

Página 76 Rev.0
TNC 640

Rev.0 Página 77
TNC 640

Modo torno:

Se tornea siempre en el plano XZ. Para conseguir tornear con el eje carnero dentro para ganar
rigidez, lo que se hace es girar el plano de XZ a YZ. Para esto se tiene el ciclo 800.

Modo fresa:

Contenido de las macros para cambio:

Página 78 Rev.0
TNC 640

10.1.MODETURN

BEGIN PGM MODETURN MM


;---------------------------------------------------------------------------------
;Read CfgOEMInt
;---------------------------------------------------------------------------------
DECLARE STRING QS2 = "CfgOemInt"
DECLARE STRING QS3 = "value"
DECLARE STRING QS1 = "NP_DG_index_C_Ax_WPS"
Q1801 = CFGREAD( KEY_QS1 TAG_QS2 ATR_QS3 IDX0)
DECLARE STRING QS1 = "NP_DG_ParSets_WPS"
Q1803 = CFGREAD( KEY_QS1 TAG_QS2 ATR_QS3 IDX0)
DECLARE STRING QS1 = "NP_DG_index_ax_TS"
Q1804 = CFGREAD( KEY_QS1 TAG_QS2 ATR_QS3 IDX0)
DECLARE STRING QS1 = "NP_DG_Kin_Turn_Sxx"
Q1810 = CFGREAD( KEY_QS1 TAG_QS2 ATR_QS3 IDX1)
;---------------------------------------------------------------------------------
M129 ;RESET M128: Maintaining the position of the tool tip when
positioning with tilted axes
M145 ;RESET M144: Compensating the machine’s kinematic
configuration for ACTUAL/NOMINAL positions at end of block
M5 ;Switch off spindles (only for block scan)
FN 29: PLC =+99995 / +Q1804 / +0 / +1 ;Switch off tool spindle (during block scan)
FN 29: PLC =+99995 / +Q1801 / +0 / +0 ;Open control loop
FN 17: SYSWRITE ID 290 NR1 =+Q1810 ;Activate Kinematic
M25 ;Activate brake S1
CYCL DEF 9.0 VERWEILZEIT
CYCL DEF 9.1 V.ZEIT1
FN 29: PLC =+99992 / +Q1801 / +Q1803 ;Select Parameter Set
M136 ;Feed rate F in millimeters per spindle revolution
M340
END PGM MODETURN MM

Lectura de parámetros:

Rev.0 Página 79
TNC 640

M129

M145

M5

Luego hay unas funciones 29:

FN 29:

• FN 29: PLC =+99995 / +Q1804 / +0 / +1 ;

Desactiva el S1. (Q1804 índice de S1)

Página 80 Rev.0
TNC 640

Rev.0 Página 81
TNC 640

• FN 29: PLC =+99995 / +Q1801 / +0 / +0 ;Open control loop

Activa el S2

• FN 17: SYSWRITE ID 290 NR1 =+Q1810 ;Activate Kinematic

Activa la kinemática que se utiliza para tornear, la 1, que es:

• FN 29: PLC =+99992 / +Q1801 / +Q1803 ;Select Parameter Set

Selecciona un juego de parámetros para S2.

Página 82 Rev.0
TNC 640

Rev.0 Página 83
TNC 640

• M136 ;Feed rate F in millimeters per spindle revolution

Pasa el avance a mm/rev

• M340

Activar el segundo cabezal.


BEGIN PGM M340 MM
;-------------------------------------------------
;0 = ModeMill / 1 = ModeTurn
;-------------------------------------------------
FN 18: SYSREAD QL0 = ID992 NR20
;-------------------------------------------------
;Read CfgOEMInt
;-------------------------------------------------
DECLARE STRING QS2 = "CfgOemInt"
DECLARE STRING QS3 = "value"
DECLARE STRING QS1 = "NP_DG_Kin_Mill_Sxx"
Q1811 = CFGREAD( KEY_QS1 TAG_QS2 ATR_QS3 IDX1)
DECLARE STRING QS1 = "NP_DG_Kin_Turn_Sxx"
Q1812= CFGREAD( KEY_QS1 TAG_QS2 ATR_QS3 IDX1)
;-------------------------------------------------
FN 9: IF QL0 EQU +1 GOTO LBL "TURN"
FN 9: IF QL0 EQU +11 GOTO LBL "TURN"
;-------------------------------------------------
;Mode Mill active
;-------------------------------------------------
FN 9: IF +Q1811 EQU -1 GOTO LBL "END"
FN 17: SYSWRITE ID 290 NR1 =+Q1811
M340
FN 9: IF +0 EQU +0 GOTO LBL "END"
;-------------------------------------------------
;Mode Turn active
;-------------------------------------------------
LBL "TURN"
FN 9: IF +Q1812 EQU -1 GOTO LBL "END"
FN 17: SYSWRITE ID 290 NR1 =+Q1812
M340
;-------------------------------------------------
;End
;-------------------------------------------------
LBL "END"
END PGM M340 MM

Página 84 Rev.0
TNC 640

10.2.MODEMILL

Lee los parámetros:

NP_DG_index_C_Ax_WPS

NP_DG_Index_Ax_TS

NP_DG_Kin_Mill_Sxx

• M305

Para el giro de S2

• FN 29: PLC =+99995 / +Q1801 / +0 / +1 ;Switch off wp spindle (during block scan)

Q1801: MP_Axis_list, +0 desactivar, +1 spindle 1

Desactiva el S2.

• FN 29: PLC =+99995 / +Q1804 / +0 / +1 ;Switch off tool spindle (during block scan)

Q1804:

Rev.0 Página 85
TNC 640

• FN 17: SYSWRITE ID 290 NR1 =+Q1810 ;Activate Kinematic

Activa la kinemática para modo fresa

• FN 29: PLC =+99992 / +Q1801 / +Q1802 ;Select Parameter Set

• FN 29: PLC =+99995 / +Q1801 / +1 / +0 ;Close control loop

• M137 ;RESET M136: Feed rate F in millimeters per spindle revolution

• M40 ;Select S1

Página 86 Rev.0
TNC 640

KINEMATICAS

Desaparece el MachAxis C.

Rev.0 Página 87
TNC 640

Estos giros se hacen para poder usar el ciclo 800.

Al programar el ciclo 800 mete un giro de -90 grados en el primero y de +90º en el segundo, para
poder cambiar el plano de trabajo de XZ a YZ.

En el PLC también funciona con estructuras para el caso de los cabezales:

Mfunct_spindle[BL_spindle_index].NP_MG_Mxx_stop

BL_Spindle_index puede ser 0 o 1.

11.CALIBRADO DEL DESEQUILIBRIO


Solo vale si el spindle S2 está montado sobre un eje W.

El desequilibrio se mide con un ciclo y las mediciones se guardan en unos ficheros.

Con esto se ve donde hay que poner el peso para equilibrar o donde mover la pieza para
equilibrar. Luego por prueba y error se puede utilizar este ciclo hasta conseguir que esté lo mejor
equilibrada posible.

Página 88 Rev.0
TNC 640

12.DUDAS DE PARÁMETROS
Plato de tornear: se define en AxisList solo como S2. En cambio en Physycal axes sí se definen los
dos, S2 y C. En Physycal axis en S2 en Part list aparecen los part list de los dos. En Axis List
aparecen todos, excepto el eje C del plato que también es S2. Un segundo cabezal también se
define en Axes list como S3.

13.FUNCIONES NC
DATA READ

DATA READ QS8 = “TABLE\TOOL\T\2NAME”

TOOL es el Token que tenemos definido en parámetros:

Ejemplo:

Esto es lo que lee.

Escribir y leer datos de PLC se puede hacer de varias maneras:

READ FROM PLC KEY

WRITE TO PLC KEY Para visualizarlo → (Enter the MOD code number 555343)

FN 17: SYSWRITE

FN 18: SYSREAD

Para acceder a tablas, HDH recomienda hacerlo con comandos SQL

Aún así, se puede hacer con DATA READ y DATA WRITE:


DATA READ QS8 = QS1 where QS1 = "TABLE\TOOL\T\2\NAME“

Lectura / escritura de parámetros:

Se puede hacer con las siguientes órdenes:

Rev.0 Página 89
TNC 640

DECLARE STRING QS2 = "CfgOemInt"


DECLARE STRING QS3 = "value"
DECLARE STRING QS1 = "NP_DG_index_C_Ax_WPS"
Q1801 = CFGREAD( KEY_QS1 TAG_QS2 ATR_QS3 IDX0)
DECLARE STRING QS1 = "NP_DG_ParSets_C_Ax_WPS"
Q1802 = CFGREAD( KEY_QS1 TAG_QS2 ATR_QS3 IDX0)
DECLARE STRING QS1 = "NP_DG_index_ax_TS"
Q1804 = CFGREAD( KEY_QS1 TAG_QS2 ATR_QS3 IDX0)
DECLARE STRING QS1 = "NP_DG_Kin_Mill_Sxx"
Q1810 = CFGREAD( KEY_QS1 TAG_QS2 ATR_QS3 IDX0)

14.MACROS DE NC

Si se quiere lanzar alguna otra macro que no sea ninguna de estas hay dos módulos de PLC:

9291: se puede lanzar cuando hay un programa en ejecución

9427: no puede haber un programa en ejecución

Las que están en la partición SYS son de HDH y no se pueden modificar.

En el TNC640 si se quiere lanzar un TOOLCALL en X o Y, hay que hacer una cinemática para cada
caso. Tratar siempre que se trabaje con TOOL CALL Z y si se trabaja en otro plano de trabajo
utilizar el plano inclinado.

Página 90 Rev.0
TNC 640

La cinemática para TOOL CALL en X o Y añade a la cinemática en eje X lo siguiente:

X: Giro en A de -90º + giro en C de -90º. Convierte el eje X en Z.

Y: Giro en B de +90º + giro en C de +90º. Convierte el eje Y en Z.

La FN 17 ID 290 para seleccionar la cinemática es remanente si se define en parámetros que se


arranque con la última, igual que los WORKING RANGE.

15.KINEMATIK
• KinComposModel:

Todas las cinemáticas

Cada cinemática por qué subcinemáticas se compone

• KinSimpleModel:

Cada subcinemática por qué objetos está compuesta, se dan los nombres de los objetos en orden
sin decir qué es cada una.

AB_HEAD...: normalmente TRANS

AX_A...: normalmente eje máquina

CMO_...:objetos como cubos y cilindros

• KinSimpleTrans:

De cada uno de los objetos que están definidos en KinSimpleModel aquí se definen las
transformadas.

Rev.0 Página 91
TNC 640

Dir:

Value:

• KinSimleAxis:

De cada uno de los obejtos que están definidos en KinSimpleModel se definen aquellos que son
ejes de giro libre o los de movimiento lineal, los MachAxis.

Dir:

• AxisRef:

Aquí se pueden definir todos los ejes de la máquina.

• KinAnchor:

Define la base, por ejemplo, si los ejes Y/Z se mueven juntos y la mesa es de movimiento
independiente se indica aquí la base.

• CFGCMO:

Define los objetos antes definidos en las subcinemáticas, en el KinComposModel.

Podemos tener definidos todos los objetos de nuestras máquinas, aunque luego no se utilicen en
las cinemáticas de las máquina.

Aquí se definen los nombres de los pequeños cilindros y cubos que componen el objeto, como se
hace en KinSimpleModel.

También se le dice con qué objetos no colisiona este objeto.

Para definir los objetos se llevan los ejes a ref y se empiezan a pintar desde ese punto.

Página 92 Rev.0
TNC 640

• CMOCylinder

Define de los objetos que se han definido en CFGCMO los que son cilindros.

Se define la dirección, el centro, el radio y la altura.

• CMOCuboid

Define de los objetos que se han definido en CFGCMO los que son cubos.

Se define el vértice y las dimensiones en las tres direcciones.

Rev.0 Página 93
TNC 640

• CMOPlane

Define de los objetos que se han definido en CFGCMO los que son planos.

Se define el eje y la cota sobre el que está el plano.

Al cargar las kinemáticas de la estación en el kinematicDesign nos da un error que dice que le eje
U no está definido en parámetros pero sí en las cinemáticas. Podemos quitar el eje U de la
definición de las cinemáticas para que no de error.

Las transformadas que están definidas dentro de un CMO se utilizan solo para ir moviendo la
posición de los vértices de los cubos y los centros de los cilindros pero no se utilizan para el
cálculo de la geometría.

Como no tiene cinemáticas para los portaherramientas se puede tener una tabla con las
dimensiones de todos os portas, tener tres TRANS definidos para compensar esas dimensiones e
ir escribiendo esas dimensiones dependiendo del portaherramientas que está instalado. Esto se
hace con la instrucción:

READ KINEMATICS ;desde NC

WRITE KINEMATICS

Module 9097 ;desde PLC

Module 9098

15.1.KINEMÁTICA PARA TORNEAR (PASAR A DONDE ESTÁ EXPLICADO ANTES)


Tornear por convenio siempre se hace en el plano XZ. Pero en una máquina multifunción, para
ganar rigidez lo normal es tornear con el carnero dentro y la cuchilla en el eje Y, por lo tanto en el
plano YZ. Para poder hacer que ese plano sea XZ, que es el plano en el que se tornea siempre, se
usa el ciclo 800, que hace este cambio.

En la kinemática de tornear se definen estos dos elementos.

Página 94 Rev.0
TNC 640

Cuando se ejecuta el ciclo 800 poniendo un 90 en el primer parámetro, lo que se hace es


convertir el plano YZ, que es en el que realmente torneamos, a XZ. El ciclo 800 sobreescribe los
dos giros antes indicados 90 y -90.

16.AJUSTE DE EJES
Diagrama de bloques

Se parte de un programa que ordena unas posiciones

El CNC filtra esas posiciones y genera unas nuevas posiciones mediante los filtros de posición
nominal. Esto lo hace el interpolador, que está en la MC, genera las trayectorias.

Jerk (ChannelSetting/CfgLaPath) y (ParameterSets/LaAxis)

Aceleración (ParameterSets/CfgFeedLimits)

Feed (ParameterSets/CfgFeedLimits)

Interpolador Tolerancia (ParameterSets/CfgControllerTol)

Filtro de posición (System/CfgFilter/DefaultPosition/shape)

Frecuencia Filtro (System/CfgFilter/DefaultPosition/frequency)

Rev.0 Página 95
TNC 640

El CNC pasa las órdenes con estas nuevas posiciones al lazo de posición.

Además de la posición se le dan unos tiempos para alcanzar esas posiciones.

Página 96 Rev.0
TNC 640

Esto se le pasa al lazo de velocidad como una consigna de velocidad.

El lazo de posición le pasa la orden al lazo de corriente, que es el que genera la consigna de
corriente para el motor.

Es un sistema de control en cascada y siempre se ajuste de abajo hacia arriba, es decir, corriente,
velocidad, posición e interpolador.

Los tres lazos, el de posición, velocidad y el de corriente están en la CC.

Los tres lazos son en bucle cerrado, con retroalimentación, para corregir la consigna.

El el lazo de velocidad entra sumando en Feedforward, para poder ajustar las fricciones de
antemano, sin esperar a medir el error e ir ajustando la consigna. Se sabe la fricción que va a
haber para sumar una fuerza para vencer la fricción.

Aquí también se suman las compensación de las fricciones.

Rev.0 Página 97
TNC 640

Programas para que el acabado sea lo mejor posible.

Variación del ángulo en la trayectoria se debe hacer de forma constante.

Página 98 Rev.0
TNC 640

La variación en Vz debe ser constante, el Vz va cambiando de punto en punto pero para que todo
vaya bien la variación en Vz debe ser lo más constante posible.

Si metemos los siguientes puntos en verde la variación de Vz cambia de sentido, por lo que se
deja una marca.

El eje Z tiene que invertir, por lo que deja una marca.

Rev.0 Página 99
TNC 640

Interpolador:

Esquinas

t1: Vx=0

Vz=10

t2: Vx=10

Vz=0

Al cambiar la velocidad en la inversión la aceleración tiene un pico, porque se hace en un tiempo


muy pequeño que tiende a 0 y la aceleración es DeltaV/DeltaT

esto se traduce en un golpe de par del motor y la máquina vibra y deja marcas en la pieza, la
mecánica no lo aguanta.

Si la máquina tiene la frecuencia de resonancia baja puede aguantar más las esquinas. A
frecuencia alta la máquina es más rígida y peor se comporta en las esquinas.???? Mirar.

Más masa menor frecuencia de resonancia, más rígida mayor frecuencia de resonancia.

El interpolador con el ciclo 32 define un redondeo en las esquinas para no tener cambios de
velocidad bruscos.

Ciclo 32:

Trabajo; tolerancia 0,02

Rápido:0,1

Filtro sencillo para acabado, frecuencia de resonancia más baja contornos más redondeados.

HSCI para precisión.

Página 100 Rev.0


TNC 640

- Jerk

Sin limitación de jerk la aceleración cambia lo más rápido posible, esto se traduce en par y la
mecánica sufre. La limitación de jerk consigue suavizar los cambios de aceleración.

- Ganancia proporcional (LP, LV, LC)

V=(R-M) x Kp

Cuando el error es grande lo corrige rápido pero cuando el error se va reduciendo la respuesta
no alcanza la consigna, tenemos un error estacionario.

- Ganancia integral (LV, LC)

V=(R-M) x Kp + (la integral en el tiempo de (R-M) x Ki)

Pensar en válvula que se va abriendo para llenar un tanque.

- Diagramas de Bode

Pensar en portero que sigue a un balón que se mueve encima suyo en movimiento horizontal.
Entrada: movimiento del balón, Salida: movimiento del portero.

Cuando aumenta la frecuencia de la señal de entrada la señal de salida baja, tiene amplitud
menor y además va desfasada.

- Diagrama de amplitud:

El cociente S/E cuando la frecuencia es pequeña es 1, pero a medida que aumenta la


frecuencia el cociente va disminuyendo.

El ancho de banda del sistema es aquella banda de frecuencia en la que el ratio


disminuye a 0,7 (-3dB). Dentro de su ancho de banda la respuesta del sistema es
relativamente buena (entre 1 y 0,7).

- Diagrama de desfase:

Si se dibuja el desfase en función de la frecuencia, el desfase también va aumentando


con la frecuencia.

Para ver la dinámica se mide el ancho de banda en lazo cerrado.

La estabilidad del sistema que se mide en lazo abierto:

Margen de ganacia<= -10dB (LA)

Margen de fase >=60º (LA)

A la frecuencia en la que el desfase es de 180º la salida debe estar muy amortiguada, es decir,
si trasladamos esta frecuencia al diagrama de amplitud. Para que la máquina no vibre la

Rev.0 Página 101


TNC 640

diferencia entre la señal de entrada y salida debe ser >=10dB. (la respuesta en lazo abierto y
cerrado en esta frecuencia ya es casi la misma).

El punto en el que la respuesta en amplitud en LA cruza los 0 dB, a esa frecuencia en el


diagrama de desfase debe ser >=60º.

AJUSTE

* Lazo de velocidad:

- Ancho de banda: 290Hz (Se coge el punto donde la señal baja de -3dB en el diagrama de
amplitud, en lazo cerrado (azul) Lo que se mide es la RAPIDEZ). En el lazo abierto (rojo) se mide la
ESTABILIDAD

- Margen de ganancia: En el diagrama de fase se mide la frecuencia cuando el desfase sea 180º.
En ese punto tiene que haber -10 dB, y de ese punto en adelante tiene que ser menor que -10
dB.

- Margen de fase: Hay que conseguir el mayor ancho de banda posible con un margen de
ganancia de <=-10dB y un margen de fase >=60º.

Se va variando las ganancias hasta que en el diagrama de amplitud la señal en lazo abierto cruce
0.

* Lazo de posición:

Página 102 Rev.0


TNC 640

Comprobar siempre en el diagrama de Bode que el ajuste que se ha hecho es correcto según
estos criterios.

En este caso el desfase es 180 a 78Hz, más o menos, pero esto no es lo normal. Vamos a
pensar que la frecuencia de resonancia es 18Hz. Aquí la respuesta en amplitud está en -15dB, lo
suficientemente amortiguada.

Rev.0 Página 103


TNC 640

En el TNCOpt se puede hacer este ensayo una vez ajustadas las máquinas. Es un chequeo de
que se ha ajustado correctamente.

Página 104 Rev.0

Você também pode gostar