UD70 UD70: Guía Del Usuario
UD70 UD70: Guía Del Usuario
UD70 UD70: Guía Del Usuario
UD70
Módulo de opciones grande y
software para Unidrive
Referencia: 0460-0069
Número de publicación: 2
Información de seguridad
El personal encargado del montaje y la supervisión de la instalación eléctrica o del
mantenimiento de un accionamiento y sus unidades opcionales externas debe contar la
capacitación y la experiencia adecuadas en la realización de estas tareas.–Asimismo, se le
ofrecerá la posibilidad de estudiar esta Guía del usuario y, si fuese necesario, podrá analizar
su contenido antes de comenzar a trabajar.
Las tensiones presentes en el accionamiento y las unidades opcionales externas pueden
causar una descarga eléctrica grave que podría resultar mortal.–La función Stop (parada)
del accionamiento no elimina las tensiones peligrosas de los terminales del accionamiento
ni de la unidad opcional externa, por lo que será preciso desconectar la alimentación de la
red antes de realizar las tareas de mantenimiento.
Respete las instrucciones de instalación y consulte con el proveedor del equipo en caso de
duda.–El propietario o usuario del equipo es responsable de garantizar una correcta
instalación del accionamiento y la unidad opcional externa, así como del cumplimiento de
los requisitos de operación y mantenimiento establecidos en Health and Safety at Work
Act en el Reino Unido y otras leyes, normativas y códigos vigentes en el Reino Unido o el
país de aplicación.
El software del accionamiento puede incorporar una función de arranque automático
opcional.–A fin de impedir que el personal que trabaja en el motor o en las proximidades
de éste, y de los equipos que acciona, pueda sufrir lesiones y evitar posibles daños en el
equipo, deberán tomarse todas las precauciones necesarias cuando el accionamiento vaya
a funcionar en este modo.
Para garantizar la seguridad del personal, no se debe confiar excesivamente en los
controles Stop (parada) y Start (marcha) del accionamiento.–Si pudiera existir algún
peligro derivado de la inesperada puesta en marcha del accionamiento, sería necesario
instalar un enclavamiento para evitar un arranque involuntario del motor.
Información general
El fabricante no acepta responsabilidad alguna por las consecuencias que puedan derivarse
de un ajuste o una instalación inadecuados, negligentes o incorrectos de los parámetros
operativos opcionales del equipo, o de la inadecuación del accionamiento de velocidad
variable al motor.
El contenido de esta Guía del usuario se considera correcto en el momento de la impresión.
–En aras del compromiso por una política de continuo desarrollo y mejora, el fabricante se
reserva el derecho de modificar las especificaciones o prestaciones de este producto, así
como el contenido de esta Guía del usuario, sin previo aviso.
Reservados todos los derechos. –Ninguna parte de esta Guía del usuario puede
reproducirse o transmitirse de ninguna forma ni por ningún medio, ya sea eléctrico o
mecánico, incluidos los sistemas de fotocopia, grabación, almacenamiento o recuperación
de la información, sin la autorización por escrito del editor.
2 Instalación 2-1
2.1 Procedimiento de instalación 2-1
2.2 Configuración del sistema 2-2
7 Referencia 7-1
7.1 Tareas 7-1
7.2 Instrucciones y funciones 7-5
8 Funciones 8-1
8.1 Parámetros PLC 8-1
8.2 Introducción 8-2
8.3 Líneas del codificador 8-3
8.4 Posición 8-4
8.5 Activación del controlador de posición 8-5
8.6 Valores predeterminados y de reinicio 8-6
8.7 Descripción de los parámetros 8-7
8.8 Diagramas lógicos 8-21
8.9 Bloqueo digital 8-26
8.10 Función de leva 8-28
8.11 Cambio de referencia 8-31
8.12 Unidad de temporización/contador 8-33
8.13 Puertos de E/S digitales 8-36
8.14 Almacenamiento en la memoria no volátil 8-37
8.15 Utilización del puerto RS232 para las comunicaciones
de accionamiento a accionamiento 8-38
9 Diagnósticos 9-1
9.1 Errores en tiempo de ejecución 9-1
9.2 Códigos de desconexión en tiempo de ejecución 9-2
9.3 Mensajes de error del compilador 9-3
9.4 Gestión avanzada de errores 9-5
10 Parámetros 10-1
10.1 Parámetros de configuración del UD70 10-1
10.2 Parámetros virtuales 10-4
10.3 Modos del puerto RS485 10-11
10.4 Parámetros de uso general 10-12
1 Introducción
En un accionamiento de velocidad variable como el Unidrive, un
microprocesador propio que opera en tiempo real realiza las funciones de
sincronización que resultan necesarias para el buen funcionamiento de los
dispositivos motorizados. Esto limita las prestaciones del microprocesador
durante la realización de otras tareas y, a su vez, reduce la capacidad de
adaptación del accionamiento.
El uso de un segundo procesador para ejecutar el software específico de las
aplicaciones permite aumentar al máximo la capacidad de adaptación del
accionamiento. Este microprocesador adicional es el UD70 , que facilita la
adaptación del accionamiento a las aplicaciones mediante la programación
del software en el UD70.
1.1 Descripción
El UD70 es un microprocesador compacto que se ha integrado en un módulo
de opciones grande para facilitar la instalación en accionamientos Unidrive
de cualquier tamaño.
Si se utiliza junto con el juego de herramientas DPL, el UD70 ofrece al
programador las opciones de escritura de software o de uso de software
anteriormente escrito a fin de aumentar la capacidad de adaptación del
Unidrive.
UD70
Issue code: 70ne2 Introducción 1-1
UD70 conectado a un equipo host mediante un enlace serie
1.2 Memoria
El programa UD70 compilado y el programa origen creado por el usuario se
almacenan en la memoria EEPROM no volátil de la tarjeta UD70. Este tipo de
memoria permite cargar los programas mediante el puerto serie.
Esto permite actualizar las versiones de los programas existentes con las más
recientes sin necesidad de eliminar circuitos integrados ni utilizar equipos de
programación especializados.
El sistema de archivo del UD70 impide almacenar varios programas en el UD70
simultáneamente.
El programa compilado puede almacenarse junto con el código de origen DPL
para que el ingeniero del sitio pueda leer el programa almacenado en el UD70
aunque no esté ubicado en el equipo host. (Esta opción puede desactivarse cuando
no sea necesaria.)
UD70
1-2 Introducción Issue code: 70ne2
1.4 Datos técnicos del UD70
Procesador RISC Intel 960 a 32 bits
96 kb para el almacenamiento del programa por el usuario
8 kb de RAM para el usuario
Reloj de 16 MHz
Puerto RS232 para la programación (IBM AT compatible)
Puerto RS485 con aislamiento óptico para las comunicaciones serie
permanentes
UD70
Issue code: 70ne2 Introducción 1-3
UD70
1-4 Introducción Issue code: 70ne2
2 Instalación
Las tensiones presentes en el accionamiento pueden causar
una descarga eléctrica grave que podría resultar mortal. La
función Stop (parada) del accionamiento no elimina las
Advertencia tensiones peligrosas del accionamiento ni de los mecanismos
que acciona.
LA alimentación de CA del accionamiento tendrá que
desconectarse al menos 15 minutos antes de extraer los
paneles o de realizar cualquier tarea de mantenimiento.
UD70
Issue code: 70ne2 Instalación 2-1
2.2 Configuración del sistema
Conexiones del equipo host
5 Haga clic en
UD70
2-2 Instalación Issue code: 70ne2
Windows 95
1 Inserte el disco 1 del juego de herramientas DPL en la unidad A: del
equipo host.
4 Haga clic en
UD70
Issue code: 70ne2 Instalación 2-3
Si el cuadro de diálogo no aparece y todos los botones de la barra de
herramientas inferior de la ventana están atenuados (inactivos), la
comunicación con el UD70 no ha podido establecerse. Compruebe que
está utilizando el cable de conexión y el puerto COM correctos.
Nota
Los archivos del sistema se encuentran en el directorio
MD29GUI\BIN\SYS.
UD70
2-4 Instalación Issue code: 70ne2
7 Seleccione la ruta de acceso que corresponde a los archivos del sistema
necesarios y haga doble clic en el archivo .SYS especificado en la tabla
siguiente:
Accionamiento Archivo
UD70 UD70OS.SYS
UD70 con Interbus S o IBSPROFI.SYS
Profibus DP
UD70 con ModBus Plus MBPLUS.SYS
UD70 con CTNet UD70NET.SYS
UD70
Issue code: 70ne2 Instalación 2-5
UD70
2-6 Instalación Issue code: 70ne2
3 Procedimientos iniciales
3.1 Introducción
En este capítulo se describen los elementos principales de la programación
DPL, además de los procedimientos para crear, compilar y ejecutar un
programa de ejemplo utilizando el juego de herramientas DPL .
A continuación se ofrece un ejemplo de un programa DPL reducido, seguido
de explicaciones sobre las instrucciones del programa.
En esta Guía del usuario y en los programas DPL, los números de parámetro se
indican mediante el símbolo # (por ejemplo, el parámetro 1.21 aparece como
#1.21).
UD70
Issue code: 70ne2 Procedimientos iniciales 3-1
Start
#1.21 = 0
No
UD70
3-2 Procedimientos iniciales Issue code: 70ne2
Explicación del programa de ejemplo
$TITLE Sawtooth
En la primer línea de un programa debe aparecer el nombre de éste,
$TITLE. El nombre debe constar de un máximo de 64 caracteres.
$VERSION 1.1.1
La segunda línea corresponde al número de versión, $VERSION. Este
número puede estar compuesto de ocho caracteres como máximo y el
formato recomendado es $VERSION 1.0.0.
Las actualizaciones pueden identificarse fácilmente, ya que el último
número aumenta, por ejemplo 1.0.1.
1.0.1 En el caso de modificaciones
mayores, se indica mediante 2.0.0,
2.0.0 3.00,
3.00 etc.
$DRIVE Unidrive
En la tercera línea se muestra el nombre del accionamiento, $DRIVE, lo
que permite indicar al compilador el accionamiento que está instalado.
(Dado que el juego de herramientas DPL puede utilizarse con el UD70 y
el MD29, el nombre del accionamiento debe indicarse.)
$AUTHOR Nombre
$COMPANY Empresa
Las líneas cuarta y quinta sirven para definir el creador del programa y el
nombre de la empresa.
Nota
El programa no se compilará si no incluye estas líneas.
UD70
Issue code: 70ne2 Procedimientos iniciales 3-3
#1.21=0
El uso de una almohadilla (#
#) proporciona acceso a los parámetros del
accionamiento, en este caso el parámetro 1.21 (menú 1, parámetro 21).
Éste es un parámetro de referencia de velocidad prefijada del Unidrive
y se encuentra ajustado en cero.
DO WHILE #1.21<1000
DO WHILE es un enunciado repetitivo. En este ejemplo, da
instrucciones al programa para que repita el bloque de códigos
siguiente mientras el valor del parámetro 1.21 sea inferior a 1000.
#1.21=#1.21+1
En esta línea se añade el valor 1 al parámetro 1.21. Cada vez que se
ejecuta este comando, se añade 1 al valor del parámetro.
LOOP
LOOP es la expresión final de la instrucción DO WHILE LOOP indica al
programa que debe retroceder a la línea DO WHILE para comprobar
que la instrucción DO WHILE continúa siendo verdadera. Cuando el
valor de #1.21 = 1000,DO
1000 DO WHILE #1.21 < 1000 se transforma en falso.
Las instrucciones entre DO WHILE y LOOP dejan de repetirse y el
programa pasa a la línea siguiente después del comando LOOP.
LOOP
GOTO Top:
GOTO es una instrucción de control del flujo. En este caso indica al
programa que debe retroceder a la etiqueta Top:,
Top lo que permite que el
programa se ejecute de forma continua.
Nota
Para especificar el nombre de la etiqueta deben utilizarse
dos puntos [:].
} Llave de cierre
Las instrucciones que aparecen entre llaves pertenecen a la tarea
definida. Las llaves de cierre se utilizan junto con las de apertura, y en
este ejemplo operan en combinación con la tarea BACKGROUND.
UD70
3-4 Procedimientos iniciales Issue code: 70ne2
3.3 Creación de un archivo DPL con el
juego de herramientas DPL
En esta sección se muestra la forma de escribir, compilar y descargar el
programa DPL de ejemplo para utilizarlo con el Unidrive.
Creación de un archivo
UD70
Issue code: 70ne2 Procedimientos iniciales 3-5
4 Seleccione el directorio Projects en la lista Folders: y escriba
SAWTOOTH.DPL en el cuadro de texto File name:.
name
UD70
3-6 Procedimientos iniciales Issue code: 70ne2
2 Si necesita transferir el archivo DPL origen al UD70, verifique que la
casilla de verificación Embed DPL Source Code se encuentra activada.
De esta forma, el programa DPL podrá leerse en el PC en fechas
posteriores (si la copia del PC se pierde, por ejemplo).
Si no necesita transferir el archivo DPL origen, asegúrese de desactivar
la casilla de verificación. Cuando el cuadro de diálogo Compile...
Compile
aparezca a continuación, la casilla de verificación mantendrá el último
ajuste.
(Las demás opciones de este cuadro de diálogo se describen en la
sección Compilación y ejecución de programas del Capítulo 5, Juego de
herramientas DPL.)
3 Haga clic en
4 El cuadro Compilation se muestra durante unos segundos y no es
necesario consultar su contenido.
5 El programa se ha compilado y está listo para transferirlo al UD70.
Si en lugar de esto aparece una ventana Build errors con una serie de
errores, corrija los errores de escritura del programa y repita el
proceso de compilación. (Los mensajes de error se describen en el
Capítulo 9, Diagnósticos.)
UD70
Issue code: 70ne2 Procedimientos iniciales 3-7
Conexión con el UD70
Para descargar el archivo compilado no es necesario establecer la
comunicación entre el equipo host y el UD70.
Utilice el siguiente procedimiento:
Nota
Si todos los botones de la barra de herramientas inferior
aparecen atenuados, indica que no se ha podido establecer
la comunicación con el UD70. Verifique que ha conectado al
alimentación de CA al accionamiento y que el cable de
comunicaciones serie está correctamente insertado.
UD70
3-8 Procedimientos iniciales Issue code: 70ne2
Nota
La memoria del UD70 sólo tiene capacidad para un
programa compilado ( como el archivo .BIN). El programa
existente en el UD70 se reemplazará al descargar otro.
UD70
Issue code: 70ne2 Procedimientos iniciales 3-9
UD70
3-10 Procedimientos iniciales Issue code: 70ne2
4 Programación DPL
En este capítulo se describen las siguientes partes de un programa DPL:
• Encabezados de programa
• Comentarios
• Variables
• Parámetros
• Tareas
• Subrutinas definidas por el usuario
• Instrucciones
Esta explicación se completa con una sección dedicada a la optimización de
los programas DPL.
Título de programa
Sintaxis $TITLE título de programa
Versión de programa
Sintaxis $VERSION número de versión
UD70
Issue code: 70ne2 Programación DPL 4-1
Nombre de accionamiento
Sintaxis $DRIVE nombre de accionamiento
Dado que el juego de herramientas DPL puede utilizarse con distintos tipos
de accionamientos, es preciso especificar el tipo de accionamiento en el
encabezado $DRIVE.
Este encabezado permite asegurarse de que el programa se compilará
correctamente para el módulo de opciones y el accionamiento utilizados.
Nota
Si se especifica un accionamiento distinto, es posible que el
programa no se compile o que ocurra un error en tiempo
de ejecución 53 al transferir el programa al UD70.
Nombre de creador
Sintaxis $AUTHOR nombre
Nombre de empresa
Sintaxis $COMPANY empresa
4.2 Comentarios
Los comentarios tiene un fin meramente informativo y explicativo, y
funcionan igual que los comandos REM porque no afectan al programa.
Los comentarios comienzan con una barra invertida doble [//] o un punto y
coma [;] y pueden incluirse en la línea de comentarios o al final de las líneas
de instrucciones. El comentario termina al final de la línea.
Ejemplo //Esta línea contiene un comentario que termina con la línea.
//Si el comentario continúa en la línea siguiente, debe utilizarse
//una barra invertida doble al comienzo de la línea siguiente.
UD70
4-2 Programación DPL Issue code: 70ne2
4.3 Variables
Variables básicas
Los dos tipos de variables básicas que existen son los siguientes:
• Variable entera (INT)
• Variable de coma flotante (FLOAT)
Variables Estas variables se identifican por el símbolo % que aparece detrás del
enteras nombre de la variable y se representan internamente mediante un número
de 32 bits complemento de dos. Esto proporciona un rango decimal de
2147483647.
Variables Estas variables no incluyen ningún símbolo y son números IEEE de doble
de coma precisión (64 bits) que proporcionan un rango de aproximadamente 1,7976
308
flotante x 10 .
Convenciones de denominación
El primer carácter de una variable debe ser una letra. Los demás caracteres
pueden ser letras, números y el símbolo de subrayado (_), en cualquier
orden.
En los nombres de variable se distingue entre mayúsculas y minúsculas (por
ejemplo, el nombre velocidad% es distinto de VELOCIDAD%).
UD70
Issue code: 70ne2 Programación DPL 4-3
Matrices
Las matrices son conjuntos de variables del mismo tipo (entera o de coma
flotante) que se han agrupado bajo el mismo nombre. Sólo es posible
utilizar matrices unidimensionales.
Cada elemento (componente individual) de una matriz es en realidad una
variable independiente. Para que el programa pueda acceder a un elemento,
es preciso especificar el nombre de la matriz y colocar el número de
elemento entre corchetes [ ] detrás del nombre de la matriz.
Los dos tipos básicos de matriz son los siguientes:
UD70
4-4 Programación DPL Issue code: 70ne2
Ejemplo CONST c_matriz% {
100, 1500, 500, 0, -400, -1000
-400, -100, 0
}
De esta forma se define una matriz denominada c_matriz%[]
c matriz%[] que contiene
nueve elementos. El valor de cada elemento puede separarse mediante una
coma o un salto de línea.
4.4 Parámetros
Existen dos tipos de parámetros:
• Parámetros del accionamiento
• Parámetros virtuales
(Consulte el Capítulo 10, Parámetros.)
Los parámetros se indican mediante el símbolo # (almohadilla) y puede
accederse a ellos utilizando un formato x,y;
x,y donde x representa el menú e y
indica el parámetro del menú.
Por ejemplo, al parámetro p7.05 se accede introduciendo #07.05 y a p18.01,
p18.01
introduciendo #18.01.
#18.01 Es posible omitir los ceros iniciales del parámetro;
#7.5 es igual que #07.05,
#07.05 por ejemplo.
También es posible acceder a los parámetros de forma indirecta mediante
una variable entera que indique el número de parámetro. Consulte la
sección Apuntadores de parámetro más adelante en este capítulo.
4.5 Operadores
Los operadores realizan operaciones matemáticas o lógicas con los valores.
En la programación DPL pueden utilizarse los siguientes operadores.
Nota
Algunos operadores sólo funcionan con variables o valores
enteros.
UD70
Issue code: 70ne2 Programación DPL 4-5
Operadores para variables enteras solamente
| OR lógico A B Y
0 0 0
0 1 1
1 0 1
1 1 1 Ejemplo 5 | 14 = 15
XOR lógico A B Y
0 0 0
0 1 1
1 0 1
1 1 0 Ejemplo 5 & 14 = 11
Inversión de valor de El operador !Value Bit invert invierte el bit menos significativo y
bit convierte los demás bits en ceros.
Ejemplo 100100
0 (binario) se convierte en 0000011 (binario)
UD70
4-6 Programación DPL Issue code: 70ne2
4.6 Tareas y programación en tiempo real
La programación en tiempo real se ejecuta utilizando un reloj como
referencia para que el usuario pueda determinar el tiempo real en que se
ejecutaron las instrucciones, no sólo el orden de ejecución. Para programar
en tiempo real, es preciso mantener una estructura (o filosofía) de tareas.
Los programas UD70 contienen secciones denominadas tareas. Cada tarea
activa una prioridad que se va a asignar a una subrutina. Estas tareas definen
siete niveles de prioridad, por el siguiente orden:
• Tarea INITIAL
• Tarea BACKGROUND
• Tarea CLOCK
• Tarea ENCODER
• Tarea SPEED
• Tarea EVENT
• Tarea ERROR
En el programa, cada tarea se identifica mediante un nombre y su contenido
debe incluirse entre llaves { }.
Ejemplo CLOCK{
instrucciones
}
Tarea INITIAL
En el programa DPL, la tarea INITIAL suele utilizarse para inicializar las variables
de programa y los parámetros del accionamiento. Esta tarea sólo se ejecuta
cuando se reinicia el UD70 o se conecta la alimentación de CA.
Mientras se está ejecutando, la tarea Initial tiene prioridad absoluta sobre las
demás tareas e impide que se ejecuten. Esto es significativo cuando las
tareas CLOCK, EVENT o ENCODER van a manipular datos que contienen valore
iniciales.
Ejemplo INITIAL{
// Éste es la única ubicación en la que se puede inicializar sin problemas el
'temporizador'
temporizador% = 0
}
CLOCK{
//Esta tarea se ajusta en 5 ms
//El valor del temporizador debe inicializarse antes de ejecutar CLOCK
temporizador% = temporizador% + 1
IF temporizador% > 200 THEN
//200, intervalos 5 ms = 1 segundo
PRINT "1 segundo transcurrido"
temporizador% = 0
ENDIF
}
UD70
Issue code: 70ne2 Programación DPL 4-7
Tarea BACKGROUND
La tarea BACKGROUND se utiliza con funciones y comandos que no precisan
control basado en el tiempo ni en el codificador. Esta tarea se utiliza en las
siguientes operaciones:
• Registro de datos
• Comprobación de entradas digitales
• Configuración de estado de salida
La tarea BACKGROUND se ejecuta una vez terminada la tarea Initial. Se
recomienda ejecutar la mayor parte del programa en la tarea background.
Nota
La tarea BACKGROUND no se repite automáticamente.
Ejemplo BACKGROUND{
RAMP:
#1.21 = 0
DO WHILE #1.21<1000
#1.21 = #1.21+1
LOOP
GOTO RAMP:
}
UD70
4-8 Programación DPL Issue code: 70ne2
Tarea BACKGROUND interrumpida por tarea CLOCK
Periodo de sincronización
de tarea CLOCK
Tarea
INITIAL
Tarea
CLOCK
Tarea
BACKGROUND
Tarea
INITIAL
Tarea
ENCODER
Tarea
CLOCK
Tarea
BACKGROUND
Periodo de
sincronización
de tarea
CLOCK
UD70
Issue code: 70ne2 Programación DPL 4-9
Interpretación del diagrama
Tarea BACKGROUND interrumpida por la tarea CLOCK
1 La tarea BACKGROUND espera mientras la tarea CLOCK se ejecuta y se
interrumpe cuando se inicia la siguiente tarea CLOCK.
2 La tarea BACKGROUND continúa ejecutándose hasta que la tarea CLOCK
vuelve a interrumpirla.
3 La tarea BACKGROUND concluye.
Tarea BACKGROUND interrumpida por las tareas ENCODER
y CLOCK
4 ENCODER y CLOCK se inician.
5 La tarea CLOCK se ejecuta hasta que es interrumpida por la siguiente
tarea ENCODER. La tarea CLOCK se completa una vez terminada la
tarea ENCODER.
6 La tarea CLOCK concluye, y todavía queda tiempo suficiente para que la
tarea BACKGROUND se ejecute hasta que la siguiente tarea ENCODER la
interrumpa.
7 Dado que la tarea ENCODER concluye antes de que se inicie el siguiente
periodo de CLOCK, la tarea BACKGROUND se ejecuta durante ese
intervalo hasta que la interrumpe la siguiente tarea CLOCK.
BACKGROUND{
Loop:
CALL RAMP:
GOTO Loop:
}
RAMP: {
#1.21=0
DO WHILE #1.21<1000
#1.21=#1.21+1
LOOP
}
UD70
4-10 Programación DPL Issue code: 70ne2
Nota importante
Es preciso evitar que el inicio de dos tareas en tiempo real
distintas inicien una subrutina definida por el usuario (esta
situación se denomina reentrada).
Por ejemplo, las tareas BACKGROUND y Clock pueden iniciar
una subrutina. Si la tarea BACKGROUND inicia la subrutina y
la tarea CLOCK interrumpe la tarea BACKGROUND mientras la
subrutina se está ejecutando, los valores de la variable que
se está procesando podrían cambiar. Esto puede deberse a
que la tarea CLOCK también ejecutará la subrutina
aplicando otros valores.
Tarea CLOCK
La tarea CLOCK sirve para controlar el accionamiento, y los comandos
enviados a éste, basándose en el tiempo (por ejemplo, rampa de aceleración
o deceleración controlada).
La prioridad de esta tarea es secundaria y sólo puede activarse una vez que la
tarea BACKGROUND se ha interrumpido.
Aunque la tarea se ejecuta en una base de tiempos constante, la selección de
la base de tiempos que se va a utilizar depende del valor del parámetro de
configuración del accionamiento (consulte también los parámetros de
configuración del UD70 en el Capítulo 10, Parámetros), que puede ajustarse
en un rango 5 ms - 200 ms.
Ejemplo En este ejemplo se genera una onda senoidal.
CLOCK{
#1.21 = SIN (rad)*1000
rad =rad+0.01
IF rad > 6.283185 THEN ; 6.283185 = 2 * pi
rad = 0
ENDIF
}
UD70
Issue code: 70ne2 Programación DPL 4-11
Tarea ENCODER
La tarea ENCODER se utiliza principalmente para controlar la actividad de un
codificador.
Ejemplo ENCODER{
nuevo_pos_princip% = #90.1
nuevo_pos_sec% = #90.3
pos_princip_cambio% = nuevo_pos_princip% - anterior_pos_princip%
pos_secun_cambio% = nuevo_pos_secun% - anterior_pos_secun%
EPOS = EPOS + pos_princip_cambio% - pos_secun_cambio%
anterior_pos_princip% = nuevo_pos_princip%
anterior_pos_secun% = nuevo_pos_secun%
}
Tarea SPEED
La tarea SPEED está sincronizada con el bucle de control de velocidad del
Unidrive, por lo que la periodicidad con la que se ejecuta depende de la
frecuencia de conmutación seleccionada.
UD70
4-12 Programación DPL Issue code: 70ne2
Tarea EVENT
La tarea EVENT se ejecuta cuando ocurre un evento específico. La unidad de
temporización/contador determina el origen del evento.
Mientras el programa se está ejecutando la tarea EVENT tiene prioridad
máxima, por lo que las demás tareas se interrumpen ante una tarea EVENT.
Para obtener más información, consulte la sección dedicada a la unidad de
temporización/contador en el Capítulo 8, Funciones.
Tarea ERROR
La tarea ERROR sólo se ejecuta cuando ocurre un error en tiempo de
ejecución en el programa DPL. Si el juego de herramientas DPL se encuentra
conectado al UD70 cuando se produce el error, el número del error aparece
en pantalla.
Los errores en tiempo de ejecución pueden producirse en varias situaciones.
Por ejemplo:
Intento de escritura en un parámetro de sólo lectura
Ejecución por exceso de una tarea en tiempo real
Aunque los errores suelen deberse a errores de programación, a veces se
generan a causa de influencias externas. Por ejemplo, si los datos
procedentes de la caja de E/S se pierden a causa de la ruptura del cable,
puede aparecer un error que indica la interrupción de comunicaciones serie.
En estos caso, el UD70 suele suspender todas las tareas, e incluso puede
desconectar el accionamiento.
Para evitar que esto ocurra, puede utilizar la tarea ERROR. Ante un error, se
aplica la secuencia siguiente:
1 Todas las tareas se suspenden.
2 El accionamiento se desconecta (si la desconexión está activada).
Consulte los parámetros de activación de la desconexión en los
parámetros de configuración del UD70 del Capítulo 10, Parámetros.
3 El número del error aparece en el parámetro #88.01 del UD70.
4 La tarea ERROR se ejecuta. Las instrucciones contenidas en la tarea
ERROR pueden determinar la causa del error en tiempo de ejecución y
realizar acciones adecuadas, como detener el accionamiento de forma
controlada.
Para obtener más información, consulte Control de errores avanzado en el
Capítulo 9, Diagnósticos.
Tarea NOTES
Seudotarea que omite el compilador. El creador del programa utiliza la tarea
NOTES para facilitar la compresión del programa al usuario del
accionamiento.
Ejemplo NOTES{
Puede incluir su documentación aquí.
}
UD70
Issue code: 70ne2 Programación DPL 4-13
4.7 Instrucciones y funciones
En esta sección se describen los distintos tipos de instrucciones que se
utilizan en la programación DPL.
Instrucciones condicionales
Las instrucciones condicionales realizan una operación en función de una
serie de condiciones (por ejemplo, IF).
Condición
Verdadero Falso
(sí) (no)
Procedimiento 1 Procedimiento 2
Instrucciones repetitivas
Las instrucciones de este tipo repiten un bloque de instrucciones hasta que
se produce una condición específica.
Ejemplo DO WHILE
LOOP
Procedimiento 1
Condición
Falso Verdadero
(no) (sí)
UD70
4-14 Programación DPL Issue code: 70ne2
Instrucciones de control de flujo
Estas instrucciones son responsable de que el programa pase directamente a
una instrucción especificada o que está por determinarse (por ejemplo,
GOTO).
Funciones matemáticas
Las funciones matemáticas aplican una operación matemática a una
expresión para obtener un valor (por ejemplo, SIN).
Instrucciones ANSI
Estas instrucciones hacen posible que el programa DPL pueda comunicarse a
través de un puerto RS485 con otros accionamientos y tarjetas UD70
mediante el protocolo ANSI. Consulte el Capítulo 6, Comunicaciones serie.
UD70
Issue code: 70ne2 Programación DPL 4-15
4.8 Optimización de programas
A fin de ejecutar los programas de forma correcta, se ofrecen algunas
recomendaciones.
Variables enteras
Utilice variables enteras, en lugar de variables de coma flotante, siempre que
sea posible. Las operaciones con variables de coma flotantes son 20 veces
más lentas que los procesos de las variables enteras. (Consulte la
instrucción INT en el Capítulo 7, Referencia.)
UD70
4-16 Programación DPL Issue code: 70ne2
División por enteros
El uso de la división por enteros puede afectar negativamente a la exactitud
del resultado, como se muestra en la expresión:
Si #1.21 es igual que 5
Entonces:
a = 4.5 * (#1.21 /4)
= 4.5 * (5 /4)
= 4.5 * 1
= 4.5
El compilador DPL emplea una división por enteros, convierte el resultado en
un valor de coma flotante y utiliza un múltiplo de éste.
A fin de mantener la precisión, uno de los enunciados puede convertirse en
una variable de coma flotante, como sigue:
a = 4.5 * (#1.21 / FLOAT(4) )
= 4.5 * (5 / FLOAT(4) )
= 4.5 * 1.25
= 5.625
Consulte la instrucción FLOAT en el Capítulo 7, Referencia.
Instrucción PRINT
La instrucción PRINT no debe utilizarse en exceso. (Consulte la instrucción
PRINT en el Capítulo 7, Referencia). Es preferible utilizar la ventana Watch
del juego de herramientas DPL para controlar las variables (consulte el
Capítulo 5, Juego de herramientas DPL).
Utilice la instrucción PRINT solamente en la tarea BACKGROUND. Si la
instrucción PRINT se incluye en las tareas SPEED, CLOCK o ENCODER, es
posible que no disponga de tiempo suficiente para ejecutarse y que no se
imprima el texto enviado a la cola de impresión.
Tarea BACKGROUND
Ejecute la mayor parte posible del programa en la tarea BACKGROUND, en
lugar de enSPEED, CLOCK, ENCODER u otras tareas en tiempo real. Debido a
que las tareas en tiempo real se ejecutan en función de una base de tiempos
fija, el proceso debe realizarse durante este tiempo. Sin embargo, la tarea
BACKGROUND no impone este tipo de restricciones.
UD70
Issue code: 70ne2 Programación DPL 4-17
Instrucción #INT
La instrucción #INT permite modificar un parámetro que requiere variables
de coma flotante para que acepte variables enteras. Esto permite aumentar
la velocidad de la operación de forma significativa.
Ejemplo #4.08 = 14.5
// ajuste #4.08 en 14.5 en Unidrive
//igual que
#INT2.00 = 145
// También se permite la lectura:
valor% = #INT4.08
Nota
Si el parámetro contiene una coma decimal, ésta se ignora.
(Por ejemplo, si 0.1 es la unidad utilizada en el parámetro
#4.08 del Unidrive, el valor 2.3 debe escribirse como 23.)
Nota
No es posible incluir comentarios al final de una línea
$DEFINE.
UD70
4-18 Programación DPL Issue code: 70ne2
Un alias consta de las dos partes siguientes:
BACKGROUND{
top:
IF SPEED < MAX_SPEED THEN
SPEED_DEMAND = SPEED_DEMAND + 1
ENDIF
GOTO top:
}
UD70
Issue code: 70ne2 Programación DPL 4-19
UD70
4-20 Programación DPL Issue code: 70ne2
5 Juego de herramientas DPL
En este capítulo se describen el funcionamiento del juego de herramientas
DPL, el proceso de compilación de programas y las utilidades de depuración.
Nota
En el UD70 no pueden almacenarse varios programas
simultáneamente.
UD70
Issue code: 70ne2 Juego de herramientas DPL 5-1
5.2 Administración de archivos
Los principios utilizados en la administración de archivos del juego de
herramientas DPL son similares a los de las aplicaciones Windows. Además
de los procedimientos habituales, existen otros específicos de este juego de
herramientas que se explican a continuación.
Menú File
El menú File es el siguiente:
Creación
de un En el menú File, seleccione New o haga clic en para que se cree una
archivo página en blanco en la que pueda empezar a trabajar.
nuevo
Apertura Los dos métodos que pueden utilizarse para abrir un archivo son los
de un siguientes:
archivo
existente
UD70
5-2 Juego de herramientas DPL Issue code: 70ne2
Nueva Almacenamiento de un archivo
apertura
del último
archivo
guardado
En el menú
File, En el menú File,
File seleccione Save As...
As o haga clic en
seleccione
Reload.
Para que resulte posible compilarlos, los archivos DPL deben guardarse con
un nombre de archivo que tenga la extensión .DPL.
Incorpora La opción Add to permite incorporar archivos en un menú para que facilitar
ción de un el acceso. Al seleccionar esta opción, aparece la lista siguiente.
nombre de
archivo en
un menú
En esta lista se incluyen dos de los elementos de menú principales del juego
de herramientas: Favourite y Cue Cards.
Cards Al seleccionar uno de estos
menús, los archivos añadidos aparecen en otro menú desplegable, desde
donde pueden seleccionarse inmediatamente.
Las opciones son las siguientes:
Add to favourite
El archivo abierto se añade al menú Favourite.
Add to Cue Cards
El archivo abierto se añade a Cue cards en el menú Help.
UD70
Issue code: 70ne2 Juego de herramientas DPL 5-3
File Viewer
UD70
5-4 Juego de herramientas DPL Issue code: 70ne2
Procedi- 1 Seleccione el archivo y resalte el texto que desee copiar.
miento
para 2 Haga clic en (Copy
Copy).
copiar y
3 Coloque el cursor en la posición en la que desee situar el texto
pegar
seleccionado.
texto
4 Abra el menú Edit y seleccione Paste en el menú desplegable.
UD70
Issue code: 70ne2 Juego de herramientas DPL 5-5
5.3 Modificación de un programa
Menú Edit
El menú Edit contiene lo siguiente:
Corte de Seleccione Cut Line para eliminar las líneas de instrucciones resaltadas.
una línea
Búsqueda Para reemplazar caracteres y palabras, seleccione Find/Replace.
Find/Replace Se abrirá el
y cuadro de diálogo Find.
sustitución
de texto
UD70
5-6 Juego de herramientas DPL Issue code: 70ne2
La opción Find/Replace se utiliza de la misma manera que en los
procesadores de texto de Windows.
Anexo de Para copiar líneas de File Viewer en el programa que se está creando y
líneas de mantener un orden específico, realice lo siguiente:
instruccione 1 Seleccione por orden las líneas mostradas en File Viewer que desee
copiar en el programa nuevo.
Marcadores
Los marcadores resultan útiles durante la negociación de programas largos.
El creador del programa puede insertar marcadores en las posiciones de
referencia que se utilicen con frecuencia. Un solo programa puede incluir
una serie de marcadores.
Búsqueda
de un 1 Haga clic en (Next
Next BookMark).
BookMark
marcador 2 El cursor se desplaza hasta el marcador que se ha insertado. Al hacer
clic en Next BookMark otra vez, el cursor resalta el siguiente
marcador. Los marcadores se resaltan en el orden en el que se han
insertado.
UD70
Issue code: 70ne2 Juego de herramientas DPL 5-7
5.4 Aplicación de estilos
El menú Style contiene lo siguiente:
Styles
Permite modificar la presentación de la pantalla del juego de herramientas
DPL. Con los 48 colores de fondo y de texto que existen pueden realizarse
más de 2000 combinaciones de colores.
Font incluye una amplia lista de fuentes de texto, incluidas las fuentes
TrueType.
Auto-indent
Permite introducir un tabulador para los comandos DO WHILE...LOOP y
IF...ENDIF. Al presionar la tecla Intro al final de la línea, el sangrado se aplica
automáticamente a la línea siguiente. Para eliminar el sangrado, presione la
tecla de retroceso.
Con este método de sangrado, las faltas de concordancia en la
programación pueden detectarse fácilmente, ya que permite asegurarse de
que un enunciado IF finaliza con otro ENDIF y DO termina con LOOP
(consulte el Capítulo 7, Referencia).
UD70
5-8 Juego de herramientas DPL Issue code: 70ne2
5.5 Compilación y ejecución de
un programa
Barra de herramientas de Task Manager
El administrador de tareas (Task Manager) del juego de herramientas DPL
contiene potentes herramientas de compilación y depuración que permiten
al programador comprobar el programa de forma exhaustiva. Mientras unas
herramientas de depuración son automáticas y detectan errores de
programación, otras facilitan al programador la comprobación de la lógica
del programa línea a línea.
Compilación de un programa
1 Guarde el programa que ha escrito como un archivo .DPL.
UD70
Issue code: 70ne2 Juego de herramientas DPL 5-9
Opciones de depuración
En las opciones de depuración se incluyen varias funciones que permiten
cancelar la selección del programa DPL. Consulte la descripción de estas
opciones a continuación en Control y depuración del programa.
Si se detectan errores al compilar el archivo, se abre una ventana Build Errors
con los errores del programa. Conforme se resalta cada uno de los errores
en Build Errors,
Errors también se indica la línea correspondiente del programa.
Nota
Las herramientas de depuración del compilador resaltan
los fallos del programa que se atribuyen a errores de
programación, en lugar de indicar problemas debidos a la
lógica del programa. Si un programa parece que no
funciona después de compilarlo y transferirlo al UD70 , es
probable que presente problemas de lógica.
UD70
5-10 Juego de herramientas DPL Issue code: 70ne2
Errores y advertencias
Un error indica que el compilador no ha podido interpretar una línea o un
comando del programa DPL. Esto suele ocurrir si un comando presenta
errores ortográficos, si se utiliza incorrectamente, etc.
Una advertencia indica que el compilador ha interpretado los comandos,
pero el código no funciona de la forma prevista. La advertencia más
frecuente es Possible loss of accuracy in assignment (posible pérdida de
precisión en la asignación) y suele aparecer cuando se asigna un valor de
coma flotante a variables o parámetros enteros.
El Capítulo 9, Diagnósticos, incluye una lista detallada de los errores y
advertencias.
5.6 Transferencia de un
programa
Los programas sólo pueden transferirse cuando no contienen errores.
errores El
programa DPL puede ejecutarse después de transferir el archivo de
programa al UD70.
Tarea BACKGROUND
Tarea CLOCK
Tarea ENCODER
Tarea SPEED
Esto permite detener la tarea seleccionada. (No es posible aplicar este
proceso a la tarea EVENT.)
2 Al hacer clic en el botón correspondiente de Task Manager varias
veces, el punto de ejecución avanzará hasta la línea siguiente.
UD70
5-12 Juego de herramientas DPL Issue code: 70ne2
Puntos de interrupción
Un punto de interrupción es una línea de una tarea en la que la tarea
interrumpe la ejecución del programa y pasa al modo paso a paso (single-
stepping).
Los puntos de interrupción son útiles para comprobar el momento en el que
un programa se encuentra en una parte concreta de un código, o para
verificar el estado de las variables DPL en un punto determinado.
Inserción 1 Coloque el cursor en la línea en la que se desee insertar el punto de
de un interrupción.
punto de
interrupción 2 Haga clic en (Set
Set breakpoint)
breakpoint para activar el punto de
interrupción. Cuando el programa llega a la línea definida durante la
ejecución, la tarea se detiene y se inicia el modo paso a paso.
Nota
Un punto de interrupción sólo puede corresponder a un
momento determinado de una tarea. En las subrutinas no
se permite el uso de puntos de interrupción ni de
operaciones paso a paso.
Búsqueda de
puntos de 1 Haga clic en (Next
Next breakpoint).
breakpoint El cursor se desplaza hasta el
interrupción punto de interrupción siguiente del programa DPL.
en tareas
independientes
UD70
Issue code: 70ne2 Juego de herramientas DPL 5-13
Ejemplo de presentación en la ventana Watch
UD70
5-14 Juego de herramientas DPL Issue code: 70ne2
Para controlar un parámetro o una variable, utilice el siguiente
procedimiento:
1 Haga clic en el botón de la barra de herramientas que corresponda al
método de visualización deseado.
2 Seleccione el parámetro o la variable que desee visualizar mediante uno
de los métodos siguientes:
• En el cuadro de texto de parámetro de la izquierda, escriba el
nombre del parámetro o la variable que desee visualizar.
Utilización La parte inferior de la ventana Watch permite al usuario realizar una lectura
de la instantánea de un parámetro o una variable, así como escribir en cualquier
sección parámetro o variable.
inferior de
la ventana
Watch
Lectura de un parámetro o una variable
1 Escriba el nombre del parámetro o la variable (ejemplo, #1.21).
#1.21
2 Presione la tecla Intro. El valor se muestra a la derecha del nombre del
parámetro o la variable.
UD70
Issue code: 70ne2 Juego de herramientas DPL 5-15
Para insertar automáticamente un parámetro o una variable de la parte
inferior de la ventana en la superior, presione las teclas Mayús e Intro
después de escribir el nombre.
Nota
Si el programa se modifica, será preciso guardarlo,
compilarlo y transferirlo de nuevo al UD70.
(Source
Source code)
code
Nota importante
Es más seguro transferir el programa *.DPL desde el UD70
que recuperar el código de origen del equipo host, a menos
que haya verificado que el programa instalado en el host
es el que necesita.
UD70
5-16 Juego de herramientas DPL Issue code: 70ne2
Información del sistema
Proporciona información sobre el programa del UD70 al usuario, como el
nombre de programa, la fecha de compilación, el número de versión del
sistema operativo UD70, etc.
UD70
Issue code: 70ne2 Juego de herramientas DPL 5-17
La ventana Log
En la ventana Log puede mostrarse la siguiente información:
• Mensajes del sistema (ejemplo, el inicio y parada de un programa)
• Valores de la ventana Watch (útil para el registro de datos)
• Resultado de la instrucción DPL PRINT (consulte la instrucción PRINT
en el Capítulo 7, Referencia).
Estas funciones se activan y desactivan en el menú Action.
UD70
5-18 Juego de herramientas DPL Issue code: 70ne2
6 Comunicaciones serie
6.1 Introducción
El enlace de comunicaciones serie permite utilizar una o varias tarjetas UD70
en sistemas controlados por una unidad host, como un PLC o un PC. En las
comunicaciones serie se utiliza el enlace RS485 estándar.
El UD70 también puede funcionar como host en un sistema y controlar los
accionamiento, los módulos UD70, las tarjetasMD29 u otros dispositivos
instalados que tengan una interfaz adecuada.
El controlador de host puede funcionar con un máximo de treinta y dos
dispositivos EIA RS485 mediante el uso de repetidores de línea. Cada
transmisor y receptor de los dispositivos de Control Techniques carga dos
unidades en la línea. Por consiguiente, estos dispositivos cargan cuatros
unidades en la línea en el modo de dos hilos. Esto significa que no es posible
conectar más de siete de estos dispositivos en un solo grupo, lo que supone
una carga máxima de cuatro unidades en el repetidor de línea. Cuando se
utiliza el modo de cuatro hilos, pueden conectarse un máximo de 15
dispositivos.
Sin embargo, el uso de repetidores de línea hace posible el funcionamiento
con un máximo de 81 dispositivos de Control Techniques. En este caso, los
dispositivos se organizan en 9 grupos de 9 dispositivos, como máximo.
Además, es posible aplicar comandos a uno o varios grupos específicos sin
que esto afecte a otros dispositivos o grupos de dispositivos.
Grupo 1
Controlador
de host
Grupo 2
UD70
Issue code: 70ne2 Comunicaciones serie 6-1
Aunque es posible realizar una conexión RS232 con el puerto
RS485, no es recomendable debido a que sus características
son inferiores (eliminación de ruidos, longitud máxima del
Precaución cable limitada, etc). RS232 no equivale a RS485 de dos hilos.
Conexión a tierra
Se recomienda conectar el cable de comunicaciones de datos a una toma de
tierra sin interferencias a través de un circuito de baja inductancia.
UD70
6-2 Comunicaciones serie Issue code: 70ne2
Terminación del cable
Si utiliza un sistema RS485 multiterminal, conecte una resistencia de 120
entre las dos línea de recepción de la última unidad de la cadena (es decir, la
unidad más alejada del host). Verifique que la resistencia no se encuentra
instalada en las demás unidades del sistema. Si se conectan resistencias
terminales en unidades distintas de la última, puede producirse una pérdida
excesiva de señal.
Equipo host
Equipo host
UD70
Issue code: 70ne2 Comunicaciones serie 6-3
6.3 Comunicaciones ANSI
Utilización del protocolo secundario ANSI
estándar
Protocolo estándar integrado que define la estructura de los mensajes
utilizada para leer y escribir parámetros en el UD70 es el protocolo ANSI
x3.28-2.5-A4. Este protocolo se describe en esta sección.
El usuario también puede crear un protocolo propio e introducirlo en un
programa DPL mediante el uso de comandos de puerto de nivel inferior,
como GETCHAR y PUTCHAR (consulte el Capítulo 7, Referencia).
El protocolo secundario ANSI se activa cuando el parámetro de
configuración del modo RS485se configura en 1 (4 hilos) (ajuste
predeterminado) o 5 (2 hilos). Para obtener información detallada sobre
otros modos de comunicación, consulte los modos de comunicaciones serie
más adelante en este capítulo.
0 LSB MSB 1
Esta trama se conoce como trama de 10 bits, ya que son 10 los bits que se
transmiten en total. El formato es el siguiente:
1 bit de inicio, 7 bits de datos, par/impar/sin paridad, 1 bit de
parada.
lsb se refiere al bit menos significativo (el bit 0)
msb se refiere al bit más significativo (bit 6)
El receptor utiliza el bit de paridad para comprobar la integridad de los
datos que ha recibido
UD70
6-4 Comunicaciones serie Issue code: 70ne2
El conjunto de caracteres que se utiliza recibe el nombre de conjunto ASCII
de bajo nivel. Este conjunto está formado por 128 caracteres con
numeración decimal del 0 al 127. Los primeros 32 caracteres del conjunto
ASCII (hex. 00 a 1F) sirven para representar códigos especiales; es decir,
códigos de control que tienen un significado especial (por ejemplo, el inicio
de texto se denomina STX y su código ASCII es 02.)
En un PC o terminal, el carácter STX puede transmitirse presionando Ctrl+B.
Ctrl+B
Si el UD70 se encuentra en el modo ANSI estándar, interpreta que el carácter
STX va seguido de un comando.
Mediante el código de control EOT (fin de transmisión) se envía un aviso de
recepción de un mensaje nuevo a todas las tarjetas UD70 y accionamientos
del bus RS485. Este código suele enviarse al inicio de un mensaje para que
todos los dispositivos se ajusten en Ready to receive message (listo para
recibir el mensaje).
Caracteres de control
Los comandos y peticiones se envían en paquetes de mensajes. Cada
mensaje se inicia con un carácter de control especial, y puede contener más
caracteres de este tipo. A continuación se proporciona una lista de todos
los caracteres de control que pueden utilizarse al enviar y recibir un mensaje:
Velocidad en baudios
El usuario puede seleccionar una velocidad en baudios en el rango 300 -
38400. El valor predeterminado es 4800. Consulte los parámetros de
configuración.
UD70
Issue code: 70ne2 Comunicaciones serie 6-5
Dirección
Es preciso asignar una identificación o dirección única a cada unidad de un
bus de comunicaciones ANSI para que sólo la unidad UD70 de destino
responda. La dirección está compuesta de dos partes:
• La dirección de grupo, que es el primer dígito.
• La dirección de la unidad, que es el segundo dígito.
Ambas direcciones tienen un rango de 1 a 9 y no se permite una dirección de
grupo o de unidad con valor 0 (las direcciones 01, 10, 20, etc. no son
válidas). Esto se debe a la posibilidad de agrupar tarjetas UD70 y algunos
accionamientos (máximo de 9 unidades por grupo), y a que un mensaje
puede enviarse a través del bus de comunicaciones ANSI a todas las unidades
del grupo. Para remitir un mensaje a un grupo en particular, se utiliza la
dirección cero (0) como dirección de la unidad. Por ejemplo, para dirigirse a
todas las unidades del grupo 6, la dirección completa que se utilizará será 60.
Además, se incluye una función adicional que permite enviar un mensaje
simultáneamente a todas las unidades de todos los grupos utilizando la
dirección 00. Esta dirección se puede utilizar para enviar un comando de
inicio (Start) a un grupo de accionamientos que se han acoplado
mecánicamente para accionar una línea transportadora. Así, todos los
accionamientos comenzarán a funcionar a la vez.
Nota
Es importante tener en cuenta que las tarjetas UD70 no
reconocen el comando cuando se utiliza la dirección de
grupo. (Si varias tarjetas intentan responder al mismo
tiempo, el bus de comunicaciones serie puede presentar
datos no significativos.)
Identificación de parámetros
Todos los parámetros están identificados por cuatro dígitos que
representan el número del menú y del parámetro, sin la coma decimal.
Ejemplo Para enviar un mensaje al menú 4, parámetro 8, escriba 0408 (es
preciso incluir el cero inicial)
Para enviar un mensaje al menú 18, parámetro 11, escriba 1811.
1811
UD70
6-6 Comunicaciones serie Issue code: 70ne2
Campo de datos
Los datos que se van a enviar o solicitar ocupan los caracteres situados
inmediatamente detrás del número de parámetro. En la estructura de un
mensaje, la longitud mínima del campo de datos es de dos caracteres.
Los datos se expresan normalmente en forma de valor numérico decimal.
También es posible utilizar el formato hexadecimal, para lo que es preciso
especificar el primer carácter del campo de datos como una X.
El primer carácter del campo de datos (D1) sólo puede ser uno de los
siguientes:
Espacio (32 dec.)
+
-
X (para hex.) - hex. se utiliza normalmente para acceder a los datos de la
caja de E/S.
Lectura de parámetros
Para leer un parámetro, se envía el siguiente mensaje:
EOT GA GA UA UA M1 M2 P1 P2 ENQ
donde:
GA = Dirección de grupo
UA = Dirección de unidad
M1 M2 = Número de menú
P1 P2 = Número de parámetro
Nota
En este mensaje no se envía ningún carácter BCC.
UD70
Issue code: 70ne2 Comunicaciones serie 6-7
Si el UD70 descifra el mensaje, utiliza la siguiente estructura en la respuesta:
STX 1 1 2 2 0 1 2 1 ENQ
La unidad contesta lo siguiente:
STX 0 1 2 1 - 4 7 . 6 ETX 7
Nota
Cuando el UD70 responde a un comando, la longitud del
campo de datos de la respuesta puede variar en función
del tipo de accionamiento y del parámetro que se visualiza.
UD70
6-8 Comunicaciones serie Issue code: 70ne2
Nueva lectura de datos
Una vez que un mensaje de lectura se recibe y se descifra (es decir, los datos
devueltos son válidos), puede enviarse un solo carácter de código de control
para interrogar de nuevo al parámetro, al parámetro siguiente o al anterior.
Los códigos de control son los siguientes:
Escritura en parámetros
Para escribir datos en un parámetro (accionamiento o virtual), debe
utilizarse la siguiente estructura de mensaje:
UD70
Issue code: 70ne2 Comunicaciones serie 6-9
El UD70 utilizará un solo carácter de control en la respuesta, como se indica:
Código de Significado
control
ACK Confirmación de recepción: el mensaje se ha descifrado y aplicado.
NAK Mensaje no válido: tamaño de datos demasiado grande o fuera de rango, parámetro
no válido, parámetro de sólo lectura o BCC incorrecto.
Reescritura de datos
Después de que se haya enviado un mensaje de escritura que incluya el
campo de dirección y de que la recepción se haya confirmado mediante
<ACK> o <NAK>, los siguientes mensajes de escritura que se envíen a ese UD70
podrán utilizar una estructura de mensaje de reescritura en la que no será
necesario volver a transmitir la dirección. La estructura de reescritura es la
siguiente:
A B Resultado
0 0 0
0 1 1
1 0 1
1 1 0
Por ejemplo, el comando serie que se utiliza para ajustar Velocidad prefijada 1 en
-34,5 Hz en un Unidrive:
UD70
6-10 Comunicaciones serie Issue code: 70ne2
El mensaje será el siguiente:
El valor final será el BCC,, si su valor decimal equivalente es mayor que 31 (los
caracteres ASCII entre 00 y 31 se utilizan como códigos de control).
Cuando el resultado final de XOR es un valor decimal menor que 32, se suma
32. En este ejemplo, 0011 0000 es el valor decimal 48. Al ser mayor que 31,
se acepta como valor final de BCC. El valor decimal 48 es el carácter 0 y el
mensaje completo es el siguiente:
mess$ = CHR$(4)+"1122"+CHR$(2)+"0125"+"-34.5"+CHR$(3)
bcc% = 0
FOR n% = 7 a LEN(mess$)'empieza en el carácter siguiente a 'chr$(2).
bcc% = bcc% XOR ASC(MID$(mess$, n%, 1))
NEXT
IF bcc% < 32 THEN bcc% = bcc% + 32
mess$ = mess$ + CHR$(bcc%)
PRINT mess$
En DPL, las funciones ANSIREAD y ANSIWRITE calculan automáticamente el BCC.
UD70
Issue code: 70ne2 Comunicaciones serie 6-11
6.4 Modos de comunicaciones serie
UD70
6-12 Comunicaciones serie Issue code: 70ne2
Modo 6 Modo de usuario
Este modo desactiva todos los protocolos internos y permite que el usuario
utilice el puerto RS485 directamente desde un programa DPL. Por lo
general, este modo se utiliza con los comandos DPL del protocolo ANSI
principal (ANSIREAD, ANSIWRITE, etc.). Los protocolos definidos por el
usuario también pueden aplicarse en DPL con comandos PUTCHAR y
GETCHAR de nivel inferior. La trama de datos de las comunicaciones se
organiza de la siguiente manera:
1 bit de inicio, 7 bits de datos, paridad EVEN (par), 1 bit de parada, 10
bits en total
UD70
Issue code: 70ne2 Comunicaciones serie 6-13
Modo 12 Reservado
Modo 13 Modbus - RTU (sólo modo secundario)
Modo 14 Modbus - ASCII (sólo modo secundario)
Los modos secundarios Modbus RTU y ASCII permiten utilizar las
funciones Read Multiple Registers, Preset Single Registers y Preset
Multiple Registers.
Este modo limita a 20 el número de registros consecutivos, y el rango de
dirección de nodo entre 11 y 99.
Para obtener información sobre el protocolo Modbus, póngase en
contacto con el Centro de accionamientos local.
Nota
En los modos 2, 3 y 4, la comprobación de la integridad de
los datos es mínima.
Origen Destino
Escala Escala
±16000 #xx.xx
UD70
6-14 Comunicaciones serie Issue code: 70ne2
Utilización del modo 11
Cuando se utilizan otros modos, el inicio de la transmisión y recepción de
datos puede demorarse 8 ms como máximo. En el modo 11, los datos se
desvían a la memoria FIFO del software, que permite reducir las demoras del
sistema. El parámetro #17.07 sirve para programar la velocidad en baudios.
UD70
Issue code: 70ne2 Comunicaciones serie 6-15
6.6 Ejemplo de instrucciones ANSI
En el fragmento de programa siguiente se ofrece un ejemplo de lectura de
una referencia de velocidad desde un Unidrive, y de escritura de ésta
referencia en un accionamiento CD.
Ambos accionamientos están conectados al bus RS485. La dirección del
Unidrive es 11 y la del accionamiento CD es 12.
Para que este programa funcione, el modo RS485 debe configurarse en 6.
BACKGROUND{
top:
// enviar comando de lectura para leer parámetro #1.21
resultado% = ANSIREAD(11, "0121")
IF resultado% = 0 THEN
PRINT "No se pudo enviar el mensaje"
GOTO top:
ENDIF
CALL obtener_respuesta: // obtener respuesta de comando de lectura
IF respuesta% <= -65536 THEN // ¿respuesta válida?
PRINT "Error de lectura de datos desde Unidrive"
GOTO top:
ENDIF
// enviar comando de escritura a CD utilizando 1 espacio decimal
resultado% = ANSIWRITE(12,"SP", respuesta%, 1)
IF resultado% = 0 THEN
PRINT "No se pudo enviar el mensaje"
GOTO top:
ENDIF
CALL obtener_respuesta: // ¿admitir escritura?
IF respuesta% <> -65540 THEN // -65540 es ACK
PRINT "Error al enviar el mensaje a CD"
ENDIF
GOTO top:
}
obtener_respuesta: { // subrutina para espera de respuesta
expirado% = 0 // reiniciar temporizador
DO
// -65536 si no se ha recibido respuesta
respuesta% = ANSIREPLY
LOOP WHILE respuesta% = -65536 AND expirado% < 50
// bucle sólo si se ha recibido respuesta o
// ha expirado el tiempo.
// si la tarea reloj se ajusta en 5 ms, el tiempo expirará en
250ms
}
CLOCK {
expirado% = expirado% + 1 // incrementar variable de tiempo de
expiración
}
UD70
6-16 Comunicaciones serie Issue code: 70ne2
Nota
Consulte otros ejemplos de comandos ANSI en el archivo de
ayuda del juego de herramientas DPL.
UD70
Issue code: 70ne2 Comunicaciones serie 6-17
UD70
6-18 Comunicaciones serie Issue code: 70ne2
7 Referencia
7.1 Tareas
Consulte también la sección Tareas y programación en tiempo real en el
Capítulo 4, Programación DPL.
Tarea INITIAL
Normalmente, la tarea INITIAL sirve para inicializar las variables del programa y
los parámetros del accionamiento.
La tarea INITIAL permite arrancar el programa DPL y sólo se ejecuta cuando el
UD70 se pone a cero o al conectar la alimentación de CA al accionamiento.
La tarea INITIAL se considera especial porque es imposible ejecutar otras
tareas mientras se está utilizando. Esto es importante en el caso de que
otras tareas en tiempo real manipulen datos con valores iniciales.
Tarea BACKGROUND
La tarea BACKGROUND se utiliza con funciones y comandos que no precisan
de control basado en el tiempo ni en el codificador, y resulta útil en los casos
siguientes:
• Registro de datos
• Comprobación de entradas digitales
• Configuración de estado de salida
La tarea BACKGROUND se ejecuta una vez terminada la tarea Initial. Se
recomienda ejecutar la mayor parte del programa en la tarea BACKGROUND.
Nota
La tarea BACKGROUND no se repite automáticamente.
Ejemplo BACKGROUND{
RAMP:
#1.21 = 0
DO WHILE #1.21 < 1000
#1.21 = #1.21+1
LOOP
GOTO RAMP:
}
UD70
Issue code: 70ne2 Referencia 7-1
Tarea CLOCK
La tarea CLOCK permite ejercer un control de tiempo crítico sobre el
accionamiento y los comandos enviados al accionamiento (por ejemplo,
rampa de aceleración y deceleración controlada).
La tarea CLOCK se ejecuta en una base de tiempos fija y no mantiene la
sincronía con el accionamiento. La base de tiempos que se utiliza depende
del parámetro de configuración (consulte los parámetros de configuración
en el Capítulo 10, Parámetros), que puede ajustarse en un rango de entre 5 y
200ms.
Ejemplo En este ejemplo se genera una onda senoidal.
CLOCK{
#1.21 = SIN (rad)*1000
rad = rad+0.01
IF rad>6.283185 THEN
rad = 0
ENDIF
}
Tarea SPEED
En el Unidrive, la tarea SPEED está sincronizada con el bucle de control de
velocidad, por lo que la periodicidad con que se ejecuta esta tarea depende
de la frecuencia de conmutación PWM.
UD70
7-2 Referencia Issue code: 70ne2
Tarea ENCODER
La función típica de la tarea ENCODER consiste en controlar la actividad de
un codificador.
En el Unidrive, la tarea ENCODER está sincronizada con el bucle de control de
velocidad y se ejecuta cada cuatro ciclos de la tarea SPEED. La periodicidad
con que se ejecuta esta tarea depende de la frecuencia de conmutación
PWM.
Ejemplo ENCODER{
principal% = #90.2
secundario% = #90.4
EPOS = EPOS + principal% - secundario%
}
Tarea EVENT
La tarea EVENT es una tarea especial que se ejecuta cuando ocurre un evento
específico. La unidad de temporización/contador determina el origen del
evento.
Para obtener más información, consulte la sección Unidad de
temporización/contador en el Capítulo 8, Funciones.
Tarea ERROR
La tarea ERROR se ejecuta cuando ocurre un error en tiempo de ejecución en
un programa DPL.
Para obtener más información, consulte la sección Gestión avanzada de
errores en el Capítulo 9, Diagnósticos.
UD70
Issue code: 70ne2 Referencia 7-3
Tarea definida por el usuario
Este tipo de tareas son subrutinas que escribe el usuario y que se utilizan
junto con la instrucción CALL (consulte la instrucción CALL más adelante en
esta sección).
No existen restricciones en cuanto a la asignación de nombre a las tareas
definidas por el usuario, ni a su inserción en cualquier parte del programa.
Ejemplo El nombre de esta tarea es RAMP:.
BACKGROUND{
Loop:
CALL RAMP:
GOTO Loop:
}
RAMP: {
#1.21=0
DO WHILE #1.21<1500
#1.12=#1.21+1
LOOP
}
Tarea NOTES
Sección CONST
La sección CONST sirve para definir datos de matrices constantes y no es una
tarea. Consulte la sección Variables en el Capítulo 4, Programación DPL.
UD70
7-4 Referencia Issue code: 70ne2
7.2 Instrucciones y funciones
Las instrucciones y funciones siguientes pueden contener varias formas de
sintaxis. En estos casos, la primera forma de sintaxis se aplicará a variables
enteras y la segunda a variables de coma flotante. (Consulte el Capítulo 4,
Programación DPL).
ABS
Sintaxis resultado% = ABS (expresión%)
resultado = ABS (expresión)
ANSIREAD
Sintaxis resultado% = ANSIREAD (dirección accionamiento%, "nemónico")
Función del puerto RS485 de 4 hilos con la que siempre se obtiene un valor
entero.
Esta función transmite una petición de lectura de parámetro a una unidad o
un accionamiento remoto a través del puerto ANSI RS485.
La dirección del accionamiento es una expresión entera, cuyo valor suele
estar comprendido entre 01 y 99.
El nemónico es una cadena que contiene el número de parámetro. El
formato y la longitud de la cadena dependen del accionamiento remoto.
Si la petición de lectura se ha enviado correctamente, se obtiene el valor 1.
Si el mensaje no ha podido enviarse, se obtiene el valor 0 (por ejemplo, si la
transmisión ya está realizándose).
Nota
La instrucción ANSIREAD no espera una respuesta del
accionamiento remoto.
UD70
Issue code: 70ne2 Referencia 7-5
ANSIREPLY
Sintaxis resultado% = ANSIREPLY
Función del puerto RS485 de 4 hilos que se utiliza junto con las funciones
ANSIREAD y ANSIWRITE. Esta función suele utilizarse para obtener los datos
que devuelve un accionamiento inmediatamente después de emitir los
comandos ANSIREAD o ANSIWRITE.
Se obtiene la siguiente información:
–65536 Todavía no se ha recibido ninguna respuesta
–65537 Se ha recibido respuesta, pero contiene una suma de
comprobación de bloque errónea
–65538 EOT recibido (por ejemplo, el parámetro no existe)
–65539 NAK recibido
–65540 ACK recibido
Cualquier otro valor corresponderá al nemónico introducido en ANSIREAD.
Consulte también Ejemplo de comandos ANSI en el Capítulo 6,
Comunicaciones serie.
ANSIWRITE
Sintaxis resultado% = ANSIWRITE(dirección accionamiento%, "nemónico",valor%,
atributo%)
Función del puerto RS485 de cuatro hilos que sirve para transmitir una
petición de escritura de parámetro a un accionamiento remoto a través del
puerto ANSI RS485.
La dirección del accionamiento es una expresión entera, cuyo valor suele
estar comprendido entre 01 y 99. El nemónico es una cadena que contiene
el número de parámetro. El formato y la longitud de la cadena dependen del
accionamiento remoto. El valor debe ser una expresión numérica entera.
A continuación se proporcionan los argumentos de atributo que se han
especificado:
0 Sin decimales
1 Un decimal
2 Dos decimales
3 Tres decimales
128 Escritura hex en CT para la caja de E/S
(seis caracteres prefijados mediante X)
129 Escritura hex en accionamiento CD
(cuatro caracteres prefijados mediante >)
130 Escritura hex en unidad de CD
(dos caracteres prefijados mediante >)
Si la petición de escritura se ha enviado correctamente, se obtiene el valor 1.
Si el mensaje no ha podido enviarse, se obtiene el valor 0 (por ejemplo, la
transmisión ya está realizándose).
Nota
Esta instrucción no espera una respuesta de un
accionamiento remoto.
UD70
7-6 Referencia Issue code: 70ne2
Ejemplo resultado% = ANSIWRITE(13,"0211", 150, 1) \\ ajustar #2.11 en 15.0 en
accionamiento remoto 13
Consulte también Ejemplo de comandos ANSI en el Capítulo 6,
Comunicaciones serie.
ARCTAN
Sintaxis resultado = ARCTAN (expresión)
Ejemplo x = ARCTAN(0.8)
Se obtiene el valor 0,674740942 radianes.
Consulte también la instrucción TAN.
AVERAGE
Sintaxis resultado% = AVERAGE (expresión entrada%, número de muestras%)
Velocidad
Tiempo
Ejemplo CLOCK{
entrada% = #1.21
#1.22 = AVERAGE (entrada%, 4)
}
Consulte también la instrucción FILTER.
UD70
Issue code: 70ne2 Referencia 7-7
BCD2BIN
Sintaxis ent% = BCD2BIN (expresión entera%)
9 5 4
1 0 0 1 0 1 0 1 0 1 0 0
Ejemplo r% = BCD2BIN(#82.46)
BIN2BCD
Sintaxis ent% = BIN2BCD (expresión entera%)
BCD2SEG
Sintaxis ent% = BCD2SEG (expresión entera%)
Esta función convierte los decimales con codificación binaria en códigos LED
de 7 segmentos y permite operar con datos digitales enviados a la caja de
E/S. Los datos enviados consisten en señales de impulso para un máximo de
tres dígitos visualizados en 7 segmentos, como sigue:
Número de bit 7 6 5 4 3 2 1 0
Segmento - g f e d c b a
UD70
7-8 Referencia Issue code: 70ne2
CALL
Sintaxis CALL programa-etiqueta:
Nota
No es posible aplicar el proceso paso a paso en una tarea
definida por el usuario.
En el nombre de la subrutina se distingue entre mayúscula
y minúscula.
COS
Sintaxis resultado = COS(expresión)
CRC16
Sintaxis CRC% = CRC16 (carácter%, CRC%)
Esta función sirve para calcular un valor CRC (prueba de redundancia cíclica,
normalmente utilizada en los protocolos de comunicaciones serie) de 16 bits.
UD70
Issue code: 70ne2 Referencia 7-9
DELAY
Sintaxis DELAY (expresión entera%)
DIM
Sintaxis DIM variable% [número_de_elementos%]
DIM variable [número_de_elementos%]
La instrucción DIM se utiliza para especificar una matriz formada por una serie
de variables del mismo tipo (enteros o coma flotante). Aunque la
instrucción no genera ningún código, indica al compilador que debe reservar
espacio para una matriz dinámica.
Antes de utilizar una matriz, es preciso especificarla. Aunque se recomienda
especificar la matriz en la tarea INITIAL , también puede definirse en la tarea
en la que se va a utilizar.
Ejemplo INITIAL{
DIM mimatriz%[100] //identifica un entero demominado
//[mimatriz] que incluye 100 elementos.
mimatriz%[0] = 10 //ajustar el primer elemento en 10 al inicializar
mimatriz%[1] = 20 //ajustar el segundo elemento en 20 al inicializar
mimatriz%[99] = 50 //inicializar el último elemento
índice% = 1
}
CLOCK{
mimatriz%[índice%] = #3.02 //obtener realimentación de velocidad
índice% = índice + 1 //incrementar contador de índice
IF índice% = 100 THEN
índice% = 0
ENDIF
}
UD70
7-10 Referencia Issue code: 70ne2
DO WHILE
Sintaxis 1 DO WHILE Expresión condicional
Instrucción
LOOP
Sintaxis 2 DO
Instrucción
LOOP WHILE Expresión condicional
Sintaxis 3 DO WHILE Expresión condicional LOOP
Instrucción en bucle o iterativa que hace que un bloque de instrucciones se
repita hasta que una expresión determinada se convierta en falsa.
La sintaxis 1 permite evaluar la expresión condicional en primer lugar. Si el
resultado es verdadero, las instrucciones se ejecutan y el programa continúa
funcionado en bucle hasta que la expresión condicional se convierte en falsa.
La sintaxis 2 permite ejecutar las instrucciones en primer lugar y evaluar la
expresión condicional. Esto permite asegurarse de que las instrucciones del
bucle se van a ejecutar al menos una vez.
La sintaxis 3 es idéntica a la sintaxis 1, con la diferencia de que el bucle no
incluye instrucciones de ejecución.
Ejemplo 1 DO WHILE #1.21 < 1000
#1.21 = #1.21 + 1
LOOP
Ejemplo 2 DO
a = a + 0.001
LOOP WHILE a < 6
Ejemplo 3 DO WHILE #3.02 > 10 LOOP
EXIT
Sintaxis EXIT
Instrucción de control de flujo que proporciona un método rápido de
terminación de la tarea actual.
Ejemplo CLOCK{
IF #18.22 = 1 THEN EXIT
...
(Si el valor de #18.22 es 1, el resto de la tarea CLOCK se cancela.)
EXP
Sintaxis resultado = EXP (expresión)
expresión
Mediante esta función matemática se obtiene la función exponencial (e ).
Ejemplo X = EXP(4.5)
Se obtiene el valor 90,0171313.
Consulte también la instrucción LN.
UD70
Issue code: 70ne2 Referencia 7-11
FILTER
Sintaxis result% = FILTER (input_expression%, time_constant %)
result = FILTER (input expression, time_constant%)
Con una base de tiempos de reloj de 5 ms, la constante de tiempo del filtro
real será 4 x 5 ms = 20 ms.
Si se aplica un cambio gradual de 0 a 1000 al parámetro #1.21, la salida del
filtro será la mostrada en el diagrama siguiente.
Entrada
Salida
UD70
7-12 Referencia Issue code: 70ne2
FLOAT
Sintaxis resultado = FLOAT (expresión entera%
GETCHAR
Sintaxis resultado% = GETCHAR
Función del puerto RS485 que permite visualizar un carácter desde el puerto
de comunicaciones RS485.
Si no se reciben caracteres en la memoria intermedia, el valor que se obtiene
es -1; de lo contrario, el valor que se obtiene es el código ASCII del carácter
leído.
Consulte también la instrucción PUTCHAR.
GETKEY
Sintaxis resultado% = GETKEY
UD70
Issue code: 70ne2 Referencia 7-13
GOTO
Sintaxis GOTO etiqueta:
IF
Sintaxis 1 IF expresión condicional THEN
Instrucción
ENDIF
Sintaxis 2 IF expresión condicional THEN
Instrucción si la condición es verdadera
ELSE
Instrucción si la condición es falsa
ENDIF
Sintaxis 3 IF expresión condicional 1 THEN
Instrucciones si verdadero, ir a ENDIF
ELSEIF expresión condicional 2 THEN
Instrucciones si verdadero, ir a ENDIF
ELSEIF expresión condicional 3 THEN...
Instrucciones si verdadero, ir a ENDIF
ELSE
Instrucción
ENDIF
Sintaxis 4 IF expresión condicional THEN Instrucción
Las instrucciones condicionales IF, THEN, ELSE, ELSEIF y ENDIF realizan una
operación hasta que se cumple la condición especificada.
UD70
7-14 Referencia Issue code: 70ne2
Ejemplo 1 IF #1.21 = 25 THEN
PRINT "25Hz"
ENDIF
Ejemplo 2 IF a >= b AND (c%>- 1 OR z%>1) THEN
a=b
ELSE
z = z+3
ENDIF
Ejemplo 3 IF A% = 1 THEN
#1.11 = 0
ELSEIF a% = 2 OR a% = 3 THEN
#1.11 = 1
ELSEIF a% > 4 THEN
#18.21 = 1
ELSE
#18.21 = 0
ENDIF
Nota
En el caso de las sintaxis 1 a 3, la instrucción IF siempre debe
incluir ENDIF al final de la serie de instrucciones
condicionales.
UD70
Issue code: 70ne2 Referencia 7-15
INT
Sintaxis 1 result % = INT (expresión de coma flotante)
Esta función convierte una variable de coma flotante en una variable entera
(consulte la instrucción FLOAT ) y redondea el resultado al siguiente número
entero.
Ejemplo a = 14.234
res% = INT(a) / 2 //convierte 'a' en un entero y lo divide
//entre 2
Resultado = 7
Nota
Si el valor entero de la expresión de coma flotante
contiene más de 31 bits (214783647), el UD70 se
desconectará:Error 50: Maths Error (error matemático).
LIMIT
Sintaxis 1 resultado% = LIMIT (expresión%, límite_valor_expresión%)
resultado = LIMIT (expresión, límite_valor_expresión)
Esta función matemática limita el valor que se devuelve a los parámetros del
accionamiento y evita que se escriban valores fuera de rango en los
parámetros. Esta función se aplica a los valores positivos y negativos de la
expresión.
Salida
Límite
Entrada
Límite
MAX
Sintaxis resultado% = MAX (expresión_A%, expresión_B%)
resultado = MAX (expresión_A, expresión_B)
MIN
Sintaxis resultado% = MIN (expresión_A%, expresión_B%)
resultado = MIN (expresión_A, expresión_B)
UD70
Issue code: 70ne2 Referencia 7-17
PRINT
Sintaxis PRINT lista de expresiones separadas mediante ",".
\b Retroceso 8
\p Avance de línea 9
\t Tabulador 10
Continuación de la tabla...
Carácter Función Carácter ASCII
\f Avance de página 12
\r Retorno de carro 13
\v Tabulación vertical 11
\\ Barra invertida simple 92
\NNN (N es un número octal)
UD70
7-18 Referencia Issue code: 70ne2
Nota
No utilice en exceso la instrucción PRINT. Para controlar las
variables es preferible utilizar la ventana Watch del juego
de herramientas.
La instrucción PRINT funciona ne los modos de terminal
normal y de terminal elemental. En el modo de terminal
normal, es preciso utilizar el juego de herramientas DPL
para controlar el resultado de la impresión.
El puerto RS485 se ha configurado en 19200 baudios, 8 bits
de datos, 1 bit de parda, sin paridad.
PUTCHAR
Sintaxis resultado% = PUTCHAR (carácter%)
PUTKEY
Sintaxis resultado% = PUTKEY (carácter%)
REINIT
Sintaxis REINIT
UD70
Issue code: 70ne2 Referencia 7-19
NOTE
REINIT no lee el parámetro #17.12, Activación de bucle de
posición. Para activar o desactivar el bucle de posición
mientras el accionamiento está funcionando, utilice
_Q20%.31 (consulte el Capítulo 8).
SIN
SGN
Sintaxis resultado% = SGN (expresión%)
resultado = SGN (expresión)
SQR
Sintaxis resultado = SQR (expresión)
Esta función matemática permite hallar la raíz cuadrada de una expresión.
Ejemplo PRINT SQR (25), SQR (16)
TAN
Sintaxis resultado = TAN (expresión)
Esta función matemática permite hallar la tangente de un ángulo expresada
en radianes.
Consulte las instrucciones COS y SIN.
Ejemplo resultado = TAN (3.1416)
UD70
7-20 Referencia Issue code: 70ne2
TIME
Sintaxis resultado% = TIME
La instrucción TIME permite saber el número de milisegundos que han
transcurrido desde la última vez que se conectó la alimentación de CA o se
reinició el UD70.
Ejemplo t% = TIME
WDOG
Sintaxis WDOG
La instrucción WDOG permite actualizar el controlador de secuencia del
programa DPL.
El controlador de secuencia se activa mediante el ajuste del parámetro de
configuración adecuado en el valor 1, seguido del envío de una instrucción
WDOG. Cuando está activada, la instrucción WDOG debe ejecutarse cada
200 ms. Si una instrucción WDOG no se ejecuta en 200 ms, el accionamiento
sufre una desconexión del tipo Prc2.
Prc2
La instrucción WDOG sólo puede utilizarse en las tareas INITIAL y
BACKGROUND. El sistema operativo del UD70 actualiza automáticamente
cada controlador de secuencia de las tareas en tiempo real.
Consulte un ejemplo en la ayuda en línea.
Notas
Si cualquiera de estas tareas se procesa paso a paso, el
controlador de secuencia se desconectará.
Cuando esto ocurre, el accionamiento presenta una
desconexión en Prc2. Como la desconexión del controlador
es una función del accionamiento, el programa DPL
continúa ejecutándose.
Esta función no se encuentra disponible en accionamientos
vectoriales.
UD70
Issue code: 70ne2 Referencia 7-21
UD70
7-22 Referencia Issue code: 70ne2
8 Funciones
En este capítulo se describen las siguientes funciones del UD70:
• Controlador de posición de un solo eje
• Unidad de temporización/contador
• Puertos de E/S digitales
• Almacenamiento en memoria no volátil
_Px% x = 0 a 99 #70.xx
(entero de 32 bits con signo de polaridad)
_Qx% x = 0 a 99 #71.xx
(entero de 32 bits con signo de polaridad)
_Rx% x = 0 a 99 #72.xx
(entero de 32 bits con signo de polaridad)
_Sx% x = 0 a 99 #73.xx
(entero de 32 bits con signo de polaridad)
UD70
Issue code: 70ne2 Funciones 8-1
8.2 Introducción
El sistema operativo del UD70 incorpora un controlador de posición
avanzado y un generador de perfil. Los bloques de función se han diseñado
para proporcionar control de posición y generación de perfil a partir de lo
siguiente:
• Referencia de posición
• Referencia de velocidad
• Cuadro de leva diferencial
• Bloqueo digital (si se utiliza un codificador auxiliar)
Las funciones principales del software de control de posición son las siguientes:
• Control de posición secundaria mediante el uso de rampas lineales o
S para el perfil de velocidad.
• Control de velocidad secundaria mediante el uso de rampas lineales o
S para el perfil de velocidad.
• Cambio lento entre control de posición y velocidad.
• Bloqueo digital fijo o condicionado con coeficiente secundario de 8 y
precisión de 8 decimales.
• Cuadro de leva diferencial que proporciona un control automático
de la posición secundaria, respecto de la posición principal.
• Cambio lento al control de posición o velocidad a partir del control
de leva o del bloqueo digital.
• Fuente de realimentación de bucle de posición a elegir entre las
entradas del codificador de realimentación (principal) y auxiliar
(referencia).
• Bucle de control PID de tres designaciones (D puede configurarse
como designación predictiva o derivada) con introducción
automática del resultado en la referencia de velocidad de acceso
rápido (#91.02).
Para utilizar el bucle de control de posición es imprescindible que el
accionamiento también esté configurado correctamente. El accionamiento
debe utilizar #1.21 como origen de la referencia de velocidad (#1.14 = 3, #1.15
= 1) y la referencia bipolar debe estar activada (#1.10 = 1). Sin embargo, las
rampas de velocidad deben estar desactivadas (#2.02 = 0), ya que los
bloques de generación de perfil incluyen generación de rampas. Para
obtener un rendimiento óptimo, las ganancias del bucle de velocidad del
Unidrive (#3.10, #3.11, #3.12) deben ajustarse con precisión; de lo contrario,
puede producirse cierta inestabilidad.
Para que el Unidrive aplique velocidades de deceleración rápidas, el
accionamiento necesitará una resistencia de frenado. El modo de rampa del
Unidrive (#2.04) debe configurarse en rampas rápidas, en lugar de en las
rampas controladas convencionales.
En los registros _Q20% y _Q32%, la selección entre los distintos bloques se
controla mediante el uso de bits individuales. Es posible remitirse a estos bits
por separado o acceder a ellos como si se tratase de una palabra completa.
ejemplo
_Q20% = 2 ; ajustar bit 1 de _Q20% en 1 y los demás bits en 0
_Q20%.1 = 1 ; ajustar bit 1 de _Q20% en 1 sin modificar los demás bits
UD70
8-2 Funciones Issue code: 70ne2
8.3 Líneas del codificador
Todos los parámetros de posición, velocidad y aceleración del controlador
de posición emplean las unidades de las "líneas del codificador". En el
diagrama siguiente se muestra la forma de determinar el número de líneas de
codificador para un codificador concreto.
1 Impulso de codificador
UD70
Issue code: 70ne2 Funciones 8-3
8.4 Posición
Los valores de posición son posiciones absolutas obtenidas a partir de la
posición de encendido. La posición se mide en líneas del codificador, donde
el número de líneas por revolución = 4 * impulsos del codificador por
revolución (ppr). Con un resólver, los impulsos del codificador simulados
por revolución dependen de la velocidad máxima del accionamiento (#1.06).
Velocidad
La cadencia o velocidad máxima se especifica para todo el sistema y puede
convertirse a velocidad del motor equivalente, N, en rpm.
Para realizar la conversión entre la velocidad especificada (N) y las líneas del
codificador por seg, utilice las ecuaciones siguientes:
N * encoder ppr * 4
lines per sec ond =
60
lines per sec ond * 60
N=
encoder ppr * 4
Aceleración
Siempre se especifica la velocidad máxima de aceleración o deceleración de
los ejes de una máquina determinada. El tiempo mínimo (tmin) necesario para
pasar de cero a N rpm puede calcularse, y este valor puede convertirse a
variaciones de rpm del motor equivalentes.
Para realizar la conversión entre los valores especificados (tmin y N) y las líneas
2
del codificador por seg , utilice las siguientes ecuaciones:
N * encoder ppr * 4
lines per second =
2
t min * 60
N * encoder ppr * 4
t min = 2
lines per second * 60
Cuando utilice rampas S, calcule la velocidad de las rampas como si se tratara
de una rampa lineal normal. Aunque la rampa S para ese ajuste se demore el
mismo tiempo que otra lineal, la velocidad de aceleración máxima
aumentará. (Consulte _Q13%).
NOTA: las unidades asignadas a las rampas del Unidrive no se aplican en
estos cálculos, ya que las rampas internas deberían estar desactivadas. El
controlador de posición genera y controla todas las rampas del perfil.
UD70
8-4 Funciones Issue code: 70ne2
8.5 Activación del controlador de posición
Para activar el controlador de posición es preciso configurar #17.12.
0 Desactivado
1 Sincronización con tarea ENCODER
5, 52 ms (frecuencia de conmutación de 3, 6 o 12 kHz)
7,36 ms (frecuencia de conmutación de 4,5 o 9 kHz)
2 Sincronización con tarea SPEED
1,38 ms (frecuencia de conmutación de 3, 6 o 12 kHz)
1,84 ms (frecuencia de conmutación de 4,5 o 9 kHz)
Ejemplo de cálculos
El bucle de posición hará que el motor funcione a una velocidad máxima de
2700 rpm, con un margen de maniobra de 300 rpm para la recuperación de
posición. El dispositivo de realimentación del motor será un codificador que
funciona a 1024 impulsos por revolución, y el tiempo de aceleración lineal
mínimo que necesitará el eje de la máquina para pasar de cero a 2700 rpm
será 0,6 segundos.
Velocidad máxima, _Q14%
2700 * 1024 * 4
Lines per second = = 184320
60
Velocidad de bloqueo digital, _Q15%
3000 * 1024 * 4
Lines per second = = 204800
60
Velocidad de aceleración _Q12%
2 2700 * 1024 * 4
Lines per second = = 307200
0.6 * 60
El ajuste de los parámetros de velocidad y aceleración del bucle de posición debe
ser el siguiente:
_Q14% = 184320 velocidad máxima con perfil de posición.
_Q15% = 204800 velocidad máxima de bloqueo digital.
Proporciona un margen de maniobra de 300
rpm para recuperar la pérdida de posición
durante la aceleración.
_Q12% = 307200 velocidad de aceleración.
_Q13% = _Q12% ajusta las velocidades de aceleración y
deceleración en el mismo valor.
UD70
Issue code: 70ne2 Funciones 8-5
8.6 Valores predeterminados y de reinicio
Los valores predeterminados que se incluyen en la lista son los que se
asignarán a ciertos parámetros cuando el valor obtenido al reiniciar el
controlador de posición no sea válido. "-----" indica que el parámetro no
dispone de un valor predeterminado.
El controlador de posición puede reiniciarse de las 3 formas siguientes:
UD70 HARD RESET (reinicialización por hardware)
UD70 SOFT RESET (reinicialización por software)
POSITION LOOP RESET (reinicialización por bucle de posición)
Al realizar un HARD RESET,
RESET el UD70 se pone completamente a cero. Esto
ocurre en los siguientes casos:
• #17.19 se ajusta en 1.
• Se conecta la alimentación del Unidrive.
El sistema recuperará los valores del registro Q que se han almacenado en la
memoria EEPROM, y todas las rutinas iniciales del archivo del sistema y el
programa DPL se ejecutarán. (NOTA: #17.19 almacenará los valores _Q
actuales y los volverá a leer inmediatamente sin que se produzcan cambios.)
Aunque los valores del registro Q almacenados no se leen al realizar un SOFT
RESET,
RESET la tarea INITIAL de DPL se ejecuta. Esto ocurre en los casos
siguientes:
• #MM.00 se ajusta en 1070 y se presiona el botón RESET.
• El accionamiento vuelve a funcionar después de una desconexión.
Esto también causa el reinicio del controlador de posición.
El ajuste del bit de reinicio del bucle de posición (_Q32%.17) en 1 activa
POSITION LOOP RESET.RESET Esto no afecta a las tareas DPL del UD70, pero
causa el reinicio del controlador de posición.
En las descripciones de los parámetros, el campo RESET indica si el valor que
se ha asignado a un parámetro al reinicializar por hardware (H), por software
(S) y por bucle de posición (P).
UD70
8-6 Funciones Issue code: 70ne2
8.7 Descripción de los parámetros
_Q0% Demanda de velocidad final
Unidades Líneas del codificador por segundo
31 31
Rango -2 a 2
Valor -----
predeterminado
Reinicio H = CAL S = CAL P = CAL
UD70
Issue code: 70ne2 Funciones 8-7
_Q3% Referencia de velocidad interna
Unidades Líneas del codificador por segundo
31 31
Rango -2 a 2
Valor 0
predeterminado
Reinicio H=0 S=0 P=0
UD70
8-8 Funciones Issue code: 70ne2
_Q6% Ganancia integral
Unidades 0,1% por segundo
31
Rango 0a2
Valor 0
predeterminado
Reinicio H = S/V S = N/A P = N/A
_Q6% define la ganancia integral del bucle PID. Con un error constante de 1
cálculo y una ganancia de 1000, el resultado de la designación I será 1 después
de 1 segundo.
UD70
Issue code: 70ne2 Funciones 8-9
_Q9% Referencia de bucle PID
Unidades Líneas del codificador
31
Rango -231 a 2
Valor -----
predeterminado
Reinicio H = S/V S = N/A P=0
UD70
8-10 Funciones Issue code: 70ne2
_Q12% Velocidad máxima de aceleración
2
Unidades Líneas del codificador por segundo
31
Rango 1a2
Valor 20480
predeterminado
Reinicio H = S/V S = N/A P = N/A
UD70
Issue code: 70ne2 Funciones 8-11
_Q15% Velocidad máxima de bloqueo digital
Unidades Líneas del codificador por segundo
31 31
Rango -2 a 2
Valor 20480
predeterminado
Reinicio H = S/V S = N/A P = N/A
UD70
8-12 Funciones Issue code: 70ne2
_Q18% Valor absoluto registrado de codificador auxiliar
Unidades Líneas del codificador
31 31
Rango -2 a 2
Valor -----
predeterminado
Reinicio H = S/V S = N/A P = N/A
UD70
Issue code: 70ne2 Funciones 8-13
_Q20%.31 _Q20%.31 ofrece una forma de activar y desactivar el bucle de
posición mientras el accionamiento está funcionando. #17.12 debe
programarse y almacenarse para configurar el bucle de posición; sin
embargo, el comando REINIT no vuelve a leer el parámetro #17.12.
NOTA: al ajustar_Q20%.31 en 1, todos los parámetros de posición se
restablecen a cero, excepto _Q8%,_Q0% y #91.02. Esto significa que
#91.02 mantendrá el último valor de referencia de velocidad que se ha
calculado y que el accionamiento continuará funcionando a la misma
velocidad. El programa DPL debería verificar que _Q0% y #91.02 se
restablecen a cero después de ajustar _Q20%.31.
0 Activar bucle de posición
1 Desactivar bucle de posición
UD70
8-14 Funciones Issue code: 70ne2
_Q24% Realimentación de velocidad de codificador auxiliar
Unidades Líneas del codificador por segundo
31 31
Rango -2 a 2
Valor CAL
predeterminado
Reinicio H = CAL S = CAL P = CAL
UD70
8-16 Funciones Issue code: 70ne2
_Q32%.8 Selecciona rampas S para el perfil de referencia de posición. El perfil
de aceleración será senoidal. Cuando se seleccionan rampas S, las
velocidades de aceleración y deceleración se definen en _Q13%. Al
seleccionar las referencias de bloqueo digital o de cuadro de leva,
_Q32%.8 se restablecerá a fin de desactivar las rampas S.
NOTA: la referencia de desfase de posición (_Q26%) no podrá
utilizarse durante el funcionamiento en el modo de control de
posición si hay rampas S seleccionadas.
0 Rampas lineales
1 Rampas S
_Q32%.12 Selecciona la referencia de posición del cuadro de leva cuando se
visualiza el impulso de marcado auxiliar mediante el ajuste de
_Q32%.4 en 1. _Q32%.12 se restablece después de ajustar _Q32%.4.
El cuadro de leva sólo puede utilizarse si la función CAM se ha
inicializado correctamente.
0 Nada
1 Activar cuadro de leva con impulso de marcado auxiliar
_Q32%.14 Selecciona la posición de salida de bloqueo digital cuando se visualiza
el impulso de marcado auxiliar mediante el ajuste de _Q32%.2 en 1
para visualizar el impulso de marcado auxiliar. _Q32%.14 se
restablece después de ajustar _Q32%.2. La entrada del codificar
auxiliar también se registra para aplicar un bloqueo fijo (consulte
_Q32%.27).
0 Nada
1 Activar bloqueo digital con impulso de marcado auxiliar
_Q32%.17 Proporciona un método rápido y sencillo para restablecer todos los
parámetros de posición de sólo lectura. Esto no afecta a los
parámetros de configuración ni a los valores de posición del
codificador registrados. _Q32%.17 se restablece después de
restablecer todos los valores. Este parámetro no debe ajustarse
mientras el accionamiento está funcionando, ya que puede provocar
una parada brusca sin rampas y la consiguiente pérdida de la
información de posición.
0 Nada
1 Restablecer todos los parámetros de posición
_Q32%.19 Selecciona las rampas S para la referencia de velocidad _Q3%.
Aunque la rampa S se demore el mismo tiempo que otra lineal, la
velocidad de aceleración máxima aumentará. (Consulte _Q13%).
_Q12% no se utiliza si hay rampas S seleccionadas.
NOTA: las rampas S no se encuentran disponibles durante la
aceleración a velocidad de línea en el modo de control de bloqueo
digital.
0 Rampas lineales
1 Rampas S
UD70
Issue code: 70ne2 Funciones 8-17
_Q32%.20 Selecciona rampas S para el desfase de referencia de velocidad, _Q27%.
Aunque la rampa S se demore el mismo tiempo que otra lineal, la
velocidad de aceleración máxima aumentará. (Consulte _Q13%).
_Q12% no se utiliza si hay rampas S seleccionadas.
0 Rampas lineales
1 Rampas S
_Q32%.27 Permite elegir entre los modos de bloqueo digital fijo y condicionado.
En el modo de bloqueo fijo, la pérdida de posición debida a la aceleración
se recupera mediante la ejecución a una velocidad mayor (_Q15%) que
la de referencia. Una vez recuperada la posición, el eje mantiene el
bloqueo de posición y velocidad. En el modo de bloqueo condicionado,
la pérdida de posición debida a la aceleración no se recupera y el eje
secundario funciona con el bloqueo de velocidad solamente.
0 Bloqueo digital fijo
1 Bloqueo digital condicionado
_Q32%.28 Las rampas pueden aplicarse a la referencia secundaria para impedir el
uso de velocidades de aceleración y deceleración demasiado altas,
especialmente cuando el bloqueo digital está activado. Si no se
seleccionan rampas, la referencia del codificador auxiliar simplemente
se multiplica por el coeficiente (_Q11%).
0 Activar rampas
1 Desactivar rampas
_Q32%.29 Desactiva la escritura automática de la posición de retorno (_ Q40%)
en _Q2% al cambiar del control de bloqueo digital al control de
posición (_Q32%.2 de 1 a 0). Cuando está desactivada, _Q2% se
actualiza después de cancelar la selección del bloqueo digital, lo que
permite parar lentamente sin sobreimpulso.
0 Activar posición inicial automática
1 Desactivar posición inicial automática
_Q32%.30 Ofrece una función de disyuntor de seguridad que impide que el eje
rebase un punto determinado mientras se utiliza la referencia de
posición_Q2%. Si _Q32%.30 se ha ajustado y la velocidad es positiva
(dirección de avance), _Q2%, _Q4% y _Q9% se verán obligados a
adaptarse a la posición de realimentación actual (_Q8%), lo que
provoca una parada inmediata sin rampas.
NOTA: esta función sólo funciona durante la ejecución.
0 Nada
1 Disyuntor de seguridad activo
_Q32%.31 Ofrece una función de disyuntor de seguridad que impide que el eje
rebase un punto determinado mientras se utiliza la referencia de
posición _Q2%. Si _Q32%.31 se ha ajustado y la velocidad es negativa
(dirección de retroceso), _Q2%, _Q4% y _Q9% se verán obligados a
adaptarse a la posición de realimentación actual (_Q8%), lo que
provoca una parada inmediata sin rampas.
NOTA: esta función sólo funciona durante la ejecución en control de
posición y siempre que la fuente de realimentación es _Q8%.
0 Nada
1 Disyuntor de seguridad activo
UD70
8-18 Funciones Issue code: 70ne2
_Q34% Índice de leva
Unidades
Rango 0 a número de puntos de leva
Valor -----
predeterminado
Reinicio H = S/V S = N/A P=0
_Q34% muestra el índice del cuadro de leva actual. Éste indica la sección del
perfil de leva que está procesándose en ese momento.
_Q35% Posición de partida principal de cuadro de leva
Unidades Líneas del codificador
31 31
Rango 2 a2
Valor -----
predeterminado
Reinicio H = S/V S = N/A P=0
_Q35% registra la posición principal _Q1% en el momento de la activación
del cuadro de leva. Este valor se sobrescribe cada vez que el cuadro de leva
se reinicia. El valor se utiliza continuamente mientras el cuadro de leva está
activado y no debe sobrescribirlo el usuario.
_Q36% Posición de partida principal de cuadro de leva
Unidades Líneas del codificador
31 31
Rango -2 a 2
Valor -----
predeterminado
Reinicio H = S/V S = N/A P=0
_Q36% registra la referencia de posición secundaria _Q4% en el momento
de la activación del cuadro de leva. Este valor se sobrescribe cada vez que el
cuadro de leva se reinicia. El valor se utiliza continuamente mientras el
cuadro de leva está activado y no debe sobrescribirlo el usuario.
UD70
Issue code: 70ne2 Funciones 8-19
_Q40% Posición de retorno
Unidades Líneas del codificador
31 31
Rango -2 a 2
Valor -----
predeterminado
Reinicio H = S/V S = N/A P = N/A
UD70
8-20 Funciones Issue code: 70ne2
8.8
_Q32%.19
UD70
_Q12% Accel. _Q34%
_Q13% Decel. 0
_Q3%
_Q13% Accel/Decel
_Q32%.8
1
_Q12% Accel. 1
1 _Q4%
_Q13% Decel. 0
_Q14% 0
0
Diagramas lógicos
0
1 _Q32%.4
0 1
_Q31%.10
_Q32%.12
_Q32%.14
Funciones
8-21
8-22
_Q32%.20
_Q12% Accel.
_Q13% Decel. 0
_Q27%
1
∫
_Q20%.1
_Q13% Accel/Decel
Funciones
+
+ 1
_Q4%
+ _Q9%
Desfase de posición secundaria
_Q32%.8 0
_Q12% Accel.
_Q13% Decel. 0
_Q14%
_Q26%
1
_Q13% Accel/Decel
<> _Q31%.11
UD70
Issue code: 70ne2
UD70
_Q31%.12
_Q12% Accel. +
∫ +
_Q13% Decel.
_Q32%.27
1
_Q15%
_Q12% Accel.
0
_Q13% Decel.
<> _Q31%.9
Funciones
8-23
8-24
_Q20%.0 _Q20%.2 0
0 #91.02
d 0 1
_Q7%
dt
1 Filter
1 _Q20%.6
x
_Q5%
1500#3.21
+ +
_Q9% + _Q10% + _Q0%
Funciones
- +
_Q6%
_Q16%
_Q20%.7
1 0
≥ _Q31%.1
_Q37%
_Q1%
E
Fuente de realimentación y blucle PID
E _Q8%
UD70
Issue code: 70ne2
UD70
d
_Q24% _Q20%.4
_Q20%.5
0
0
_Q21%
0
1 0
1 _Q17%
E _Q8% 1
1
d
Entradas de codificador e impulsos de marcado
_Q25% _Q20%.3
dt
Funciones
8-25
El impulso de inmovilización sólo se encuentra disponible en la segunda
generación de los módulos de segundo codificador que se han instalado en
los accionamientos Unidrive con software V3.00.00, y versiones posteriores.
Para activar este impulso, es preciso realizar el ajuste #16.10 = 1. (Consulte la
guía del usuario de Unidrive.)
Velocidad
_Q15%
Velocidad
secundaria
Tiempo
_Q31%.12
UD70
8-26 Funciones Issue code: 70ne2
Bloqueo digital condicionado
El bloqueo condicionado es un bloqueo de velocidad entre la referencia
principal y el eje secundario y se selecciona mediante el ajuste _Q32%.27 = 1.
Cuando el bloque digital está activado (_Q32%.2 = 1), el eje secundario
acelera a la velocidad principal, multiplicada por el coeficiente, _Q11%,
utilizando rampas lineales. (NOTA: si se seleccionan rampas S mientras el
bloqueo digital está activado, el eje acelerará a la velocidad principal
utilizando rampas S.) Los errores de posición generados durante la
aceleración se ignoran.
_Q31%.12 se ajusta después de aplicar el bloqueo de velocidad. El bloqueo
de posición permite mantener fija la velocidad del eje secundario en la
referencia principal.
Velocidad
Velocidad
secundaria
Tiempo
_Q31%.12
UD70
Issue code: 70ne2 Funciones 8-27
8.10 Función de leva
La función de leva ofrece un método para conseguir que un eje secundario
siga el movimiento continuo de un codificador principal. El perfil de leva
puede dividirse en dos secciones, en las que se conocen las posiciones de
partida y destino de los ejes principal y secundario. Para crear el cuadro de
leva, defina el cambio de posición de los ejes, respecto de la posición de
partida, en cada sección para los codificadores principal y secundario. El
"punto de referencia" es la posición que ocupa el eje secundario en el
momento en el que se activa la función de leva. El software utiliza la
interpolación lineal para desplazar la leva por cada sección conforme cambia
la posición principal.
En las secciones siguientes se describe detalladamente la forma de crear un
cuadro de leva utilizando el ejemplo de perfil de leva siguiente. El perfil de
velocidad necesario para generar el perfil de posición también se indica a
continuación.
Posición secundaria
(*1000 lines)
20
15
10
5 Posición
principal
10 20 30 40 50 60 70 80 (*1000)
-5
-10
-15
-20
1 2 3 4 5 6
Velocidad
secundaria
(*1000 lines/sec)
30
20
10 Posición
principal
10 20 30 40 50 60 70 80 (*1000)
-10
-20
-30
UD70
8-28 Funciones Issue code: 70ne2
Definición del cuadro de leva
Para poder utilizar la función de leva, es necesario inicializar el cuadro
adecuado. El mejor momento para realizar esta operación es el inicio del
programa, en la tarea INITIAL.
setup% = CAMINIT (master%, slave%, tablesize%,
reserved1%, reserved2%)
donde:
setup% = 0 inicialización incorrecta
= 1 inicialización correcta
master% = nombre de matriz principal
slave% = nombre de matriz secundaria
tablesize% = número de puntos de leva definidos. Aunque
una matriz pueden contener más puntos, ambas
deben tener este tamaño, como mínimo, para
que se inicialicen correctamente.
reserved1% = 0 este argumento se reserva para un uso
posterior, y debe ajustarse en 0.
reserved2% = 0 este argumento se reserva para un uso
posterior, y debe ajustarse en 0.
Las matrices master% y slave% pueden ser matrices constantes o variables y
pertenecer a tipos diferentes. El número máximo de elementos que puede
contener una sola matriz es 500. Las matrices constantes se definen al
compilar el programa y no pueden modificarse posteriormente a menos que
se vuelva a compilar el programa. Los programas DPL se almacenan en la
memoria de programas de 96 K, por lo que la única restricción consiste en
que el programa compilado no debe ocupar más de 96 K.
Las matrices dinámicas utilizan la memoria RAM de 8 K, por lo que el número
total de elementos que puede contener una matriz es bastante menor. La
ventaja que ofrecen estas matrices es que el programa DPL puede modificar
los valores mientras se utiliza la función de leva. Sin embargo, la
modificación de los elementos debe concluir antes de _Q34% se aplique en
3 elementos.
En el perfil de leva del ejemplo incluido a continuación, los nombres de
matriz serán "master%" y "slave%". El perfil de leva puede dividirse en 6
secciones independientes, por lo que se utilizarán 6 elementos de matriz
para volver a crear el perfil.
UD70
Issue code: 70ne2 Funciones 8-29
Creación del cuadro de leva
Las posiciones de leva al principio y al final de cada sección pueden
determinarse a partir del perfil.
En las dos últimas columnas se obtienen los valores necesarios para cada
matriz. Las matrices pueden definirse de la siguiente forma:
CONST master%{
20000,5000,10000,15000,20000,10000
}
CONST slave%{
5000, 15000,0,-30000,0,10000
}
UD70
8-30 Funciones Issue code: 70ne2
Utilización del impulso de marcado para activar
el cuadro de leva
El cuadro de leva puede activarse utilizando la entrada del impulso de
marcado del codificador auxiliar, mediante el ajuste _Q32%.12 = 1. Al
producirse el impulso, _Q32%.4 se ajusta en 1, _Q32%.12 se restablece a 0 y
los puntos definidos por la función CAM se utilizan para calcular la referencia
de posición necesaria.
UD70
Issue code: 70ne2 Funciones 8-31
Alternancia del control de bloqueo digital
Desde el momento en que se activa el bloqueo digital (_Q32%.2 = 1), el
controlador de posición fija el eje secundario en la referencia principal. Si el
bloqueo es fijo (_Q32%.27 = 0), el eje secundario recupera la posición
perdida durante la aceleración. Mientras el bloqueo digital está activado, los
valores internos de referencia de velocidad postrampa, referencia de
posición y posición de parada se actualizan continuamente.
Al pasar del modo de bloqueo digital al de control de velocidad, se dispone
de una referencia de velocidad postrampa. La referencia interna aplicará en
rampa hasta alcanzar el valor de referencia de velocidad _Q3%, lo que
garantiza un funcionamiento uniforme durante el cambio de referencia. En
este caso, las rampas S deben estar desactivadas (_Q32%.19 = 0).
Si el bloqueo digital cambia al modo de control de posición, la posición de
retorno (_Q40%) se introduce en _Q2%, lo que proporciona una referencia
de posición inicial al eje. Mediante el uso de _Q12% y _Q13%, la referencia
de posición postrampa empieza a aplicarse hasta que se alcanza la referencia
de posición principal. Si es preciso invertir la dirección del eje, tendrá que
utilizar rampas. No obstante, las rampas S tendrán que estar desactivadas
(_Q32%.8 = 0).
Bloqueo digital
Con el bloqueo digital no es posible utilizar las rampas S para controlar la
posición; por lo tanto, _Q32%.8 se restablece siempre a cero. Al iniciar el
bloqueo digital mediante el uso del impulso de marcado auxiliar, _Q32%.2 se
ajusta en 1 y _Q32%.14 se restablece a 0 después de detectar la entrada del
impulso.
UD70
8-32 Funciones Issue code: 70ne2
Cuadro de leva
Con el cuadro de leva no es posible utilizar las rampas S para controlar la
posición; por lo tanto, _Q32%.8 siempre se restablece a 0. Al iniciar el
cuadro de leva mediante el uso del impulso de marcado auxiliar, _Q32%.4 se
ajusta en 1 y _Q32%.12 se restablece a 0 después de detectar el impulso. Si
el cuadro de leva no se inicializa correctamente, no será posible ajustar
_Q32%.4.
Reinicio
Cuando se solicita el reinicio del generador de perfil mediante el uso de
_Q32%.17, los registros se ponen a cero. Después de borrar los registros
_Q32%.17 se restablece a 0.
C Temporizador
TE
4MHz EN
500kHz
& Contador progresivo/ Evento
& regresivo de 16 bits TI
DIGIN 0
u/d
Control
Recarga
D
M[0.2]
1
DIGIN 1
UD70
Issue code: 70ne2 Funciones 8-33
• La unidad de temporización/contador puede cronometrarse
mediante una transición 1 a 0 en la entrada 0 DIGIN. La frecuencia de
entrada máxima es de 1 MHz.
La unidad de temporización/contador se controla utilizando los parámetros
virtuales del menú 85, según se indica:
Parámetro Función
Bit Notas
UD70
8-34 Funciones Issue code: 70ne2
Bit Notas
Bit Notas
UD70
Issue code: 70ne2 Funciones 8-35
Temporizador El valor actual del contador/temporizador puede visualizarse e
#85.03 introducirse siempre que se desee. Sin embargo, este parámetro no
debe leerse con el modo 2 seleccionado (ni siquiera en la ventana
Watch);
Watch en su lugar, será preciso utilizar #85.05 para leer el valor del
contador/temporizador.
Éste es un temporizador de 16 bits con un rango de entre 0 y 65535.
Clavija Descripción
1 RS485 aislado 0 V
2 RS485 /TX
3 RS485 /RX
4 DIGIN0 (entrada digital TTL 0)
5 DIGIN1 (entrada digital TTL 1)
6 RS485 TX
7 RS485 RX
8 Salida digital TTL
9 Accionamiento de 0 V
UD70
8-36 Funciones Issue code: 70ne2
La salida digital TTL también puede controlarse directamente desde un
programa DPL. Los parámetros virtuales incluidos a continuación
proporcionan acceso a las entradas y salidas de TTL:
Parámetro Función
Las entradas presentan el valor 0 con una lógica elevada (5 V o sin conectar),
y 1 con una lógica inferior (0 V).
Cuando se escribe el valor 0, la salida presenta una lógica elevada (5 V).
8.14 Almacenamiento en la
memoria no volátil
El UD70 incluye una función que permite almacenar las regiones P y Q del
equipo de registro PLC en la memoria no volátil del UD70. Para iniciar el
proceso de almacenamiento, puede ajustar el parámetro #17.19 en 1.
UD70
Issue code: 70ne2 Funciones 8-37
8.15 Utilización del puerto RS232 para
las comunicaciones de
accionamiento a accionamiento
La tarjeta MD29 y el módulo UD70 disponen de un modo en el que es posible
establecer un enlace entre el puerto RS232 y otra tarjeta MD29 u otro módulo
UD70, así como transmitir variables de 32 bits entre éstos.
El puerto RS232 podrá emplearse en las comunicaciones de accionamiento a
accionamiento siempre que otro dispositivo esté utilizando el puerto RS485
(por ejemplo, una interfaz de usuario (MMI)). El protocolo empleado se sirve
de la prueba de redundancia cíclica (CRC) para garantizar la integridad de los
datos.
Conexiones
Las conexiones con los conectores RS232 que se requieren son las siguientes:
UD70
8-38 Funciones Issue code: 70ne2
Parámetros de intercambio de datos
Los datos que se quieran transmitir tendrán que incluirse en los parámetros
internos especiales _R98% y _R99%. Los datos procedentes de la unidad
remota también se incluirán en los parámetros _S98% y _S99%.
UD70
Issue code: 70ne2 Funciones 8-39
UD70
8-40 Funciones Issue code: 70ne2
9 Diagnósticos
En este capítulo se describe lo siguiente:
• Errores en tiempo de ejecución y códigos de desconexión
• Errores y advertencias del compilador
• Gestión avanzada de errores
UD70
Issue code: 70ne2 Diagnostics 9-1
9.2 Códigos de desconexión en
tiempo de ejecución
Cuando el accionamiento se desconecta, la pantalla muestra el código tr
seguido de un número de dos dígitos (por ejemplo, tr 41). El número del
error puede determinarse en una tarea ERROR mediante la lectura del
parámetro virtual #88.01.
UD70
9-2 Diagnostics Issue code: 70ne2
9.3 Mensajes de error del
compilador
En estas secciones se incluye una lista con todos los errores que pueden
generarse alcom pilarun program a D PL.
ERROR: Argument x must be an integer
(El argumento x debe ser un entero)
Elargum ento se ha introducido com o un núm ero de com a flotante en lugar
de un entero.
Ejemplo ANSIW RITE (11,"SP",50,3.1)
donde:
11= Argum ento 1
SP = Argum ento 2
50 = Argum ento 3
3.1= Argum ento 4
Elargum ento 4 debe serun entero.
ERROR: Array must be dimensioned
(Es preciso ajustar el tamaño de la matriz)
Antes de que sea posible hacerreferencia a una m atriz en un enunciado DIM,
es preciso definirla.Esto perm ite asignarun tam año a la m atriz antes de que
sea necesario (consulte la instrucción D IM en elC apítulo 7,Referencia).
ERROR: CALL can call only in-built functions or user tasks
(CALL sólo funciona en funciones incorporadas o en tareas
de usuario)
La instrucción CALL sólo sirve para llam ara una aplicación estándaro una
tarea definida porelusuario (la instrucción CALL no perm ite llam ara una
etiqueta,porejem plo).(C onsulte la instrucción C ALL en elC apítulo 7,
Referencia).
ERROR: DELAY can be used only in the INITIAL and BACKGROUND (DELAY
sólo puede utilizarse en las tareas INITIAL y BACKGROUND)
Porsu condición,las tareas ENCODER y CLOCK no adm iten la instrucción
DELAY.Un program a D PL sólo puede interrum pirse m ientras se ejecuta en las
tareas INITIAL o BACKGROUND (consulte la instrucción D ELAY en elC apítulo 7,
Referencia).
ERROR: DIM must have an integer number of elements
(DIM debe contener un número de elementos entero)
Para definireltam año de una m atriz debe utilizarse un núm ero entero.
ERROR: Empty Tasks are not permitted - remove the Task and
recompile (No se admiten tareas sin contenido. Elimine la
tarea y vuelva a compilar)
Se ha definido una tarea que no incluye instrucciones entre llaves.Elim ine la
tarea y las llaves.
UD70
Issue code: 70ne2 Diagnostics 9-3
ERROR: Expression is already a float - remove FLOATinstruction
(la expresión ya es de coma flotante. Borre la instrucción
FLOAT)
Se ha asignado una instrucción FLOAT a una expresión definida com o variable
de com a flotante.Borre la instrucción FLOAT.
ERROR: Expression is already an Integer variable - remove INT
instruction (La expresión ya es una variable entera. Borre
la instrucción INT)
Se ha asignado una instrucción INT a una expresión definida com o variable
entera.Borre la instrucción INT.
ERROR: Expression too complex - break into parts (Expresión
demasiado compleja. Descompóngala en segmentos)
ERROR: Invalid Drive type (Tipo de accionamiento no válido)
ERROR: Label duplicated (Etiqueta duplicada)
Se ha introducido una etiqueta con elm ism o nom bre varias veces.
C om pruebe siestá duplicada en otras tareas.
ERROR: Label is in another task (La etiqueta está incluida en otra
tarea)
La instrucción GOTO está incluida en una tarea distinta de la tarea en la que se
ha definido la etiqueta.La etiqueta y la instrucción GOTO deben estar
incluidas en la m ism a tarea.
ERROR: Label not found (Etiqueta no encontrada)
No se ha definido una etiqueta.D efínala.
ERROR: Operators only allowed on integer arguments (Los
operadores sólo pueden utilizarse en argumentos de
número entero)
ERROR: Maximum bit-field size is 32 (El tamaño máximo del campo
de bits es 32)
Se ha utilizado eloperadorde inversión delcam po de bits y elcam po
especificado contiene m ás de 32 bits.Vuelva a especificareltam año del
cam po.
ERROR: Syntax error (Error de sintaxis)
ERROR: Variable has not been initialized (La variable no se ha
inicializado)
Es preciso asignarun valoriniciala las variables antes de que sea posible
utilizarlas com o argum ento.Esta operación suele realizarse en la tarea
INITIAL.Recuerde que en los nom bres de variable se distingue entre
m ayúscula y m inúscula.
UD70
9-4 Diagnostics Issue code: 70ne2
ERROR: Variable is not an array (La variable no es una matriz)
Mensajes de advertencia
ADVERTENCIA: Title will be truncated to 64 characters
(El título se truncará en el carácter 64)
ADVERTENCIA: Version will be truncated to 8 characters
(La versión se truncará en el carácter 8)
ADVERTENCIA: Possible loss of accuracy in assignment
(Posible pérdida de precisión en la asignación)
Esta advertencia indica que se ha asignado un núm ero de com a flotante a un
parám etro entero.Porejem plo:
#1.14 = 3.142
D ado que sólo es posible utilizarvariables enteras para configurar#1.14,#1.14
será = 3.0
UD70
Issue code: 70ne2 Diagnostics 9-5
Sielparám etro de activación de la desconexión generalen tiem po de
ejecución (#17.14)no se ajusta en 1,elaccionam iento no se desconecta
autom áticam ente.C uando se requiere una desconexión delaccionam iento,
elcódigo de errordebe escribirse en elparám etro de código de
desconexión adecuado (según se indica en los códigos de desconexión del
principio de este capítulo).
Para restablecerelUD70 y reiniciarelprogram a D PL,ajuste elparám etro
#88.01en 1070.
C uando ocurra un erroren tiem po de ejecución,todas las tareas D PL dejarán
de ejecutarse.
C onsulte un ejem plo de la tarea ERROR en la ayuda en línea.
UD70
9-6 Diagnostics Issue code: 70ne2
10 Parámetros
10.1 Parámetros de configuración del UD70
Los parámetros de configuración sólo se aplican después de reiniciar el UD70.
El dispositivo se reinicia en los casos siguiente:
Conexión de la alimentación de CA al accionamiento
Ejecución de una instrucción REINIT en un programa DPL
Selección de Reset Target en el menú Run del juego de herramientas DPL
Escritura del valor 1070 en el parámetro #88.01
La tabla siguiente incluye todos los parámetros de configuración del UD70.
UD70
Issue code: 70ne2 Parámetros 10-1
Función Parámetro Valor Valor máx Predeter
mín minado
Factor de escala RS485 #17.10 0.000 4.000 1.000
Define el factor de escala utilizado en las comunicaciones serie de modo 3.
Configuración de #17.12 0 2 0
controlador de posición
Define el periodo de tiempo de reloj, expresado en milisegundos, durante el cual se va a
ejecutar la tarea CLOCK de un programa DPL. El comando REINIT no lee este
parámetro.
Activación de #17.14 0 1 0
desconexión general en
tiempo de ejecución
Si #17.14 se ajusta en 1, cualquier desconexión en tiempo de ejecución causará la
desconexión del accionamiento, a excepción de las desconexiones del puerto RS485
(consulte #17.15). Si #17.14 se ajusta en 0, el accionamiento sólo se desconectará a
causa de una desconexión en tiempo de ejecución grave.
UD70
10-2 Parámetros Issue code: 70ne2
Función Parámetro Valor Valor máx Predeter
mín minado
Desconexión por fallo del #17.16 0 1 0
enlace de la caja de E/S
(modo 10)
Si #17.16 se ajusta en 1 y el parámetro #17.14 Desconexión general está activado, el
accionamiento se desconecta al producirse un fallo del enlace de comunicación entre el
UD70 y la caja de E/S en las comunicaciones de modo 10.
UD70
Issue code: 70ne2 Parámetros 10-3
10.2 Parámetros virtuales
Parámetros especiales que no forman parte del conjunto de parámetros
estándar del accionamiento. Sólo existen en el UD70 y se utilizan para lo
siguiente:
• Acceder a valores que no aparecen como parámetros estándar del
accionamiento (ejemplo, los contadores del codificador)
• Acceder a los parámetros del accionamiento a mayor velocidad
• Acceder a los parámetros del accionamiento aplicando una
resolución mayor
• Acceder a los parámetros del UD70 , como los parámetros de control
de la unidad de temporización/contador, los datos de la caja de E/S, etc
Para acceder a los parámetros virtuales puede utilizarse un programa DPL o
las comunicaciones serie. Los menús virtuales se describen en el orden
siguiente:
90, 91, 70 ~ 73, 85, 86, 88, 80
Menú 90
Parámetros generales
Los códigos de frecuencia de actualización L2 y L3 se describen al final de
esta tabla. La frecuencia de actualización no se indica en los casos en los que
no es aplicable.
Parámetro Descripción
UD70
10-4 Parámetros Issue code: 70ne2
Palabra de control
Bit Controles...
UD70
Issue code: 70ne2 Parámetros 10-5
Palabra de estado
Bit Parámetro
b15 No se utiliza
b14 #10.15
b13 #10.14
b12 #10.13
b11 #10.12
b10 #10.11
b9 #10.10
b8 #10.09
b7 #10.08
b6 #10.07
b5 #10.06
b4 #10.05
b3 #10.04
b2 #10.03
b1 #10.02
b0 #10.01
UD70
10-6 Parámetros Issue code: 70ne2
Menú 91
Parámetros virtuales específicos del
accionamiento
Parámetros de acceso rápido
Los códigos de frecuencia de actualización L2 y L3 se describen al final de
esta tabla. La frecuencia de actualización no se indica en los casos en los que
no es aplicable.
Parámetro Descripción
UD70
Issue code: 70ne2 Parámetros 10-7
Parámetro Descripción
Frecuencias de actualización
Menús 70 a 73
Estos menús están relacionados con el equipo de registro PLC, según se
indica:
#70.xx _Px%
#71.xx _Qx%
#72.xx _Rx%
#73.xx _Sx%
UD70
10-8 Parámetros Issue code: 70ne2
Menú 85
Parámetros del temporizador/contador
Consulte la sección Unidad de temporización/contador en el Capítulo 8,
Funciones.
Parámetro Función
Menú 86
Parámetros de E/S digitales
Para obtener información sobre la conexión, consulte la sección dedica a los
puertos de E/S digitales en el Capítulo 8, Funciones.
Parámetro Función
UD70
Issue code: 70ne2 Parámetros 10-9
Menú 88
Parámetros de estado
Parámetro Función
Menú 80
Parámetros de la caja de E/S
N° Menú 80 ENT Menú 81 SAL Menú 82 ENT Menú 83 SAL Menú 84
parámetro analógica analógica digital digital Control
Nota
Los parámetros incluidos en los menús 81 y 83 son sólo de
escritura. No es posible visualizarlos mediante el enlace de
comunicaciones serie.
UD70
10-10 Parámetros Issue code: 70ne2
10.3 Modos del puerto RS485
Estos modos se configuran mediante el uso del parámetro Modo RS485.
Para obtener información detallada sobre los parámetros de origen, destino
y escala, consulte los parámetros de configuración delUD70 al principio de
este capítulo.
Modo Descripción
UD70
Issue code: 70ne2 Parámetros 10-11
10.4 Parámetros de uso general
El Unidrive incluye parámetros de uso general que se utilizan con los
programas del UD70.
Aunque los parámetros del tipo RO pueden modificarse mediante el UD70, no
es posible utilizar el teclado del accionamiento para realizar los cambios. RW
indica que el parámetro puede modificarse mediante el teclado.
Nota
Los parámetros del menú 20 se almacenan en la memoria
no volátil del UD70, en lugar del accionamiento. Para
almacenar estos parámetros, ajuste #17.19 en 1. Si #17.20
está ajustado en 1, los parámetros también se almacenan al
desconectar la alimentación.
UD70
10-12 Parámetros Issue code: 70ne2