-
Advertencia de la propiedad: Este documento contiene informacin
propiedad de Schneider Electric S.A., y ni el documento ni la
informacin que contiene pueden ser publicadas, reproducidas,
copiadas o usadas bajo ningn concepto salvo permiso escrito por un
representante vlido de la compaa. Motion Pro: Conceptos Bsicos
pgina 1/180
Doc. Nb:
LMC001
Knowledge Base
Motion Pro: Conceptos Bsicos
VERSION V6.3
Departamento: Nombre: Fecha:
Autores :
D.C.I.
Santiago Pava Amposta
28-02-2008
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 2/180
Documentacin asociada
Control de versiones Lista de cambios Rev Mes-Ao Autor
Modificaciones
1 03-09-2007 Santi Pava Primera revisin con formato estndar 2
12-09-2007 Santi Pava Aadido Captulo relativo al CNC 3 13-09-2007
Santi Pava Correccin y ampliacin del captulo CNC 4 25-09-2007 Santi
Pava Aadido captulo relativo a las tareas (se renumeran
captulos)
Correccin apartado Marcas del captulo CNC 5 03-10-2007 Santi
Pava Aadido mtodo adicional para crear eje virtual
Se crea un captulo especfico para hablar del CNC Aadido apartado
dedicado a la inicializacin de parmetros Aadido apartado dedicado a
las macros Aadido apartado uso de $valor$ en pantallas
visualizacin.
6 30-11-2007 Santi Pava Se reestructura captulo CNC Aadida
explicacin detallada bloques CNC Aadido apartado relativo al
SMC_NCDecoder Aadido captulo referente a tablas CAM Renumeracin
captulos Se traspasa lo referente a CAM y CNC de otros captulos a
los nuevos. Aadido captulo dedicado a las comunicaciones.
6.1 04-11-2007 Santi Pava Aadido en el captulo Problemas y
Errores el captulo 13.4 6.2 01-02-2008 Santi Pava Adaptacin
libreras a la versin V1940
Aadida indicacin librera necesaria en captulo 6.3.2 Revisin
Captulo tablas CAM / Tappets Aadido Captulo dedicado a la conexin
de mltiples encoders
master. 6.3 28-02-2008 Santi Pava Aadido en captulo El lenguaje
SFC o Graphet explicacin relativa a
las acciones de entrada y salida de tareas. Aadido en el captulo
Problemas y Errores el subcaptulo La tabla
CAM hace que el eje Vibre Modificados captulos tablas CAM
sustituyendo referencias a
estructuras con tipos de variables UINT por LREAL ya que son ms
precisas.
Aadida explicacin de entrada dOverride para variar velocidad
trayectoria ONLINE en captulo El SMC_Interpolator.
Intercalado subcaptulo Creando estructuras propias en el captulo
Las Levas y las Tablas CAM
Dividido captulo Las variables de usuario en dos para explicar
tanto los tipos como la volatilidad de las variables.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 3/180
INDICE DE CONTENIDOS
1.- CONFIGURACION BASICA MOTION
PRO............................................. 6 1.1.- Cambiar
idioma entorno de trabajo
.........................................................................6
1.2.- Crear un nuevo proyecto con Lexium 05
................................................................8
1.3.- Entorno de
trabajo.....................................................................................................9
1.4.- Gestin de libreras
imprescindibles.....................................................................11
1.5.- Otros ajustes (LREAL >>
REAL).............................................................................11
2.- CONFIGURACION BASICA DRIVES
.................................................... 12 2.1.-
Lexium
05.................................................................................................................12
2.2.- Lexium 15
MP...........................................................................................................13
3.- CONEXIN CON LEXIUM CONTROLLER
........................................... 16 3.1.- Conexin a
travs de
RS485...................................................................................16
3.2.- Conexin a travs de Ethernet
...............................................................................19
4.- TAREAS Y
PRIORIDADES....................................................................
26 4.1.- Tiempo de ejecucin vs Tiempo de disparo
.........................................................26 4.2.-
Prioridades de ejecucin
........................................................................................27
4.3.- Creacin de tareas y su
configuracin..................................................................28
4.4.- Estados y Tiempos ejecucin de Tareas y Grupos de
ejes.................................32
5.- PARAMETRIZACIN INICIAL DRIVE.
.................................................. 33 5.1.- Creacin
de listas de parmetros
..........................................................................33
5.2.- Edicin archivo externo XML
.................................................................................36
6.- PROGRAMACION
.................................................................................
37 6.1.- Los diferentes lenguajes de programacin
..........................................................37
6.1.1.- El lenguaje SFC o
Graphet................................................................................37
6.1.2.- El lenguaje CFC o Complex Flow Chart
..........................................................42
6.1.3.- El lenguaje ST o Structured Text
.....................................................................44
6.2.- Las variables de
usuario.........................................................................................45
6.2.1.- Los diferentes Tipos
.........................................................................................45
6.2.2.- Volatilidad de las
variables...............................................................................49
6.3.- Uso de un eje
virtual................................................................................................50
6.3.1.- Va bloque
SMC_TimeAxisFB...........................................................................50
6.3.2.- Va Dummy
Axis.................................................................................................51
6.4.- Uso de un encoder externo
....................................................................................54
6.5.- Uso de varios encoders externos
..........................................................................57
6.6.- Las
macros...............................................................................................................58
6.6.1.- Creacin de un bloque de
funciones...............................................................58
6.6.2.- Creacin de una
macro.....................................................................................60
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 4/180
7.- PRIMER PROGRAMA SIMPLE
............................................................. 64
7.1.- Creacin Programa Principal
.................................................................................64
7.2.- Declaracin del eje a controlar
..............................................................................66
7.3.- Programa habilitacin y movimiento absoluto
.....................................................70 7.4.-
Compilacin y Transmisin programa.
.................................................................75
7.5.- Resumen de conceptos y
consejos.......................................................................77
8.- EL CNC Y LA
INTERPOLACIN...........................................................
78 8.1.- Estructura de un programa
CNC.........................................................................78
8.2.- Identificadores
......................................................................................................79
8.3.- Instrucciones preparatorias
G.............................................................................80
8.4.- Funciones
M..........................................................................................................86
8.5.- Puntos H o Switch Points
....................................................................................88
8.6.- Elementos de Programacin
...............................................................................89
8.6.1.- Libreras Necesarias
....................................................................................................................89
8.6.2.- El SMC_Interpolator
.....................................................................................................................89
8.6.3.- El SMC_Trafo_Gantry2
................................................................................................................92
8.6.4.- El SMC_ControlAxisByPos
.........................................................................................................93
8.7.- Creacin de
Trayectorias.....................................................................................95
8.7.1.- Herramientas de Diseo
..............................................................................................................95
8.7.2.- Herramientas
informativas........................................................................................................100
8.7.3.- Herramientas
edicin.................................................................................................................101
8.7.4.- Herramientas importacin/exportacin
...................................................................................105
8.8.- Ejemplos de Programacin
...............................................................................107
8.8.1.- Trayectoria
Fija...........................................................................................................................107
8.8.2.- Trayectoria Variable
...................................................................................................................112
8.8.3.- Modificar un programa en ejecucin
.......................................................................................118
8.9.- La estructura SMC_GEOINFO
...........................................................................121
9.- LAS LEVAS Y LAS TABLAS
CAM.......................................................124 9.1.-
Introduccin...........................................................................................................124
9.2.- Las estructuras necesarias
..................................................................................125
9.3.- Creando estructuras
propias................................................................................127
9.4.- Levas desde entorno
grfico................................................................................128
9.5.- Levas mediante tablas
..........................................................................................132
9.6.- Ejecucin de una leva
...........................................................................................135
9.7.- Gestin de mltiples levas
...................................................................................137
9.8.- Desfasado de eje esclavo
.....................................................................................139
9.9.- Los Tappets
...........................................................................................................140
10.- PANTALLAS
VISUALIZACION...........................................................142
10.1.-
Introduccin.........................................................................................................142
10.2.- Creacin de una pgina
......................................................................................142
10.3.- Formato y uso de variables
................................................................................146
10.4.- Los
Placeholders.................................................................................................149
10.4.1.- Creacin de una pantalla secundaria
..........................................................149
10.4.2.- Uso de los placeholders
...............................................................................151
10.5.- Mostrar y ocultar
objetos....................................................................................156
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 5/180
10.6.- Modificar color de
fondo.....................................................................................156
10.7.- Modificar color de texto
......................................................................................156
10.8.- Comportamiento ante un
evento........................................................................156
10.9.- Uso de Bitmaps
...................................................................................................156
10.10.- Reutilizacin
pantallas......................................................................................156
11.- EXPORTACION / IMPORTACION PROYECTOS FORMATO ASCII..156
11.1.-
Exportacin..........................................................................................................156
11.2.-
Importacin..........................................................................................................156
12.- COMUNICACIONES
...........................................................................156
12.1.- Modbus
RS485.....................................................................................................156
12.2.- Conexin HMI por
RS485....................................................................................156
12.3.- I/O
Scanning.........................................................................................................156
13.- PROBLEMAS Y
ERRORES................................................................156
13.1.- Errores de representacin en pantallas Visualizacin
....................................156 13.2.- Prdida inexplicable
de las
comunicaciones....................................................156
13.3.- Error inexplicable tipo b404 en los
Lexium05...................................................156
13.4.- Se corta la comunicacin al transmitir un proyecto
........................................156 13.5.- La tabla CAM
hace que el eje
Vibre................................................................156
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 6/180
1.- CONFIGURACION BASICA MOTION PRO
1.1.- Cambiar idioma entorno de trabajo
Mediante un doble clic sobre el icono Motion Pro y tras el
proceso de inicializacin, aparecer el entorno de trabajo el cual
tendr un aspecto similar al mostrado por la siguiente imagen:
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 7/180
Como se puede observar el entorno de trabajo se encuentra en
ingls. Es posible cambiarla a castellano con tan slo seguir los
siguientes pasos:
1.- En men superior Project seleccionar opcin Options
2.- En el cuadro que aparecer ir directamente a la opcin
Desktop
3.- Y donde pone Language cambiarlo de English a espaol
4.- Pulsar sobre botn OK.
NOTA: A partir de este punto se utilizar el entorno traducido al
castellano en el resto del manual.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 8/180
1.2.- Crear un nuevo proyecto con Lexium 05
En el men superior se pulsa sobre Fichero y se escoge la opcin
Nuevo. Aparecer un nuevo cuadro de seleccin:
Se abren las opciones de configuracin existentes (slo hay una) y
se escoge Lexium Controller V01. Acto seguido aparecer una serie de
subopciones. Se aceptan los valores por defecto pulsando sobre el
botn Aceptar.
Mediante la ejecucin de estos pasos se autoconfigurar el entorno
de trabajo para poder trabajar con un Lexium Controller apareciendo
una ltima pantalla en la cual podr escogerse el lenguaje de
programacin con el cual se podr desarrollar la aplicacin.
Aunque es posible escoger entre seis tipos distintos de
lenguajes de programacin se recomienda, para empezar, escoger CFC
pues est basado en bloques de funcin y resulta ms sencillo.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 9/180
1.3.- Entorno de trabajo
El entorno, despus de todos estos pasos, pasar a adoptar el
siguiente aspecto:
El entorno siempre es el mismo independientemente del tipo de
lenguaje utilizado. A este entorno se le llama CODESYS. Dicho
entorno de desarrollo est dividido en varias zonas y quizs las ms
importantes sean las correspondientes al rea de Programacin, que es
donde se desarrollar el programa, y al rea de Navegacin del
Programa, que es el que permitir ir accediendo a todas las
funcionalidades del entorno CODESYS.
rea Navegador Programa
rea Programacin
rea Declaracin
Variables
rea Mensajes y
Avisos
Pestaas Seleccin
Navegador
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 10/180
Existen hasta cuatro tipos de navegadores segn se selecciones
por las pestaas de seleccin:
De izquierda a derecha puede observarse el navegador en modo
Programa: Donde aparecen todos los programas, rutinas y
subrutinas utilizadas Variables: Donde aparece un listado de las
variables utilizadas por el programa Visualizacin: Donde pueden
crearse pantallas para monitorizar y controlar el valor de
variables Recursos: Donde se tiene acceso a diferentes
funcionalidades del entorno Codesys como gestin de
libreras, configuracin de tareas de programa, acceso a diseador
de tablas CAM o CNC, etc.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 11/180
1.4.- Gestin de libreras imprescindibles
Es especialmente importante el navegador de Recursos y la
subopcin Library Manager pues segn el tipo de programa a realizar
debern aadirse unas u otras libreras. Por defecto son necesarias
una serie de libreras para la gestin de variables, puerto CAM,
lenguaje PLCOpen, etc. Las mnimas libreras imprescindibles con el
fin de controlar un eje en posicin de forma bsica son las
siguientes:
SM_PLCOpen_V1940.lib (1) SM_Can_V1940.lib (1)
LexiumCanDrive_V1940.lib (1) SM_Error_V1940.lib (1)
SM_DriveBasic_V1940.lib (1) SysLibCallBack.lib (2)
SysLibFileSubst.lib (2) SysLibTime.lib (2) LMC_Encoder_V1002.lib
(2) 3S_CanDrv.lib (2) LexiumControllerBusInterface_V1008.lib (2)
LMC_SysBasic_V2001.lib (2) Standard.lib (3)
Las libreras pueden encontrarse hasta en 3 carpetas distintas.
Utilizar el siguiente cdigo identificativo:
1.- C:\Schneider Electric\Motion Control\CoDeSys
V2.3\Targets\Schneider Electric\Shared Files\Library\Motion 2.-
C:\Schneider Electric\Motion Control\CoDeSys V2.3\Targets\Schneider
Electric\Lexium Controller V0103\Library 3.- C:\Schneider
Electric\Motion Control\CoDeSys V2.3\Library
Segn si se desea realizar operaciones ms complejas como tablas
CAM, utilidades CNC u otras debern aadirse las libreras
correspondientes. Estas son las mnimas.
1.5.- Otros ajustes (LREAL >> REAL)
Se ha presentado un problema a la hora de realizar el proceso de
compilado de bloques que incluyen en sus definiciones internas
variables del tipo LREAL y es que el entorno Codesys no es capaz de
reconocerlas. La nica forma conocida es que a la hora de compilar
lo haga tomando como REAL todas aquellas variables que son LREAL.
La forma de hacerlo es tal como muestra la siguiente imagen:
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 12/180
2.- CONFIGURACION BASICA DRIVES
2.1.- Lexium 05
Se trata de configurar un Lexium 05 para poder ser controlado
desde el puerto CANSync de la Lexium Controller. Para este cometido
se recomienda seguir los siguientes pasos:
1.- Pasar a parmetros por defecto. Este paso es importante pues
lo primero que tendremos que decirle al equipo es la forma en la
que ser controlado:
drC- drC- drC- drC- -> FCS FCS FCS FCS -> yES yES yES
yES
2.- Tras pulsar la tecla ENT el equipo mostrar la palabra
FSu-FSu-FSu-FSu- para indicarnos que es necesario una configuracin
inicial. Pulsamos de nuevo la tecla ENT y cambiamos los siguientes
parmetros:
dEVC dEVC dEVC dEVC = Cano Cano Cano Cano (Control por CanOpen)
ioPi ioPi ioPi ioPi = Ab Ab Ab Ab (No afecta a comunicaciones,
configurar segn aplicacin) CoAd CoAd CoAd CoAd = 3 3 3 3 (Nodo
CanOpen, en este ejemplo es el 3 pero depende de la aplicacin) Cobd
Cobd Cobd Cobd = 500 500 500 500 (Velocidad comunicaciones CanOpen,
en este ejemplo es 500 Kbauds) ioLt ioLt ioLt ioLt = SOU SOU SOU
SOU (No afecta a comunicaciones, configurar segn aplicacin)
SAVESAVESAVESAVE (Grabar parmetros en memoria).
3.- Apagamos y reencendemos el equipo para que los cambios
tengan validez
4.- Dado que se han pasado a parmetros de fbrica previamente no
olvidar de repetir el autotune tras volver e encender el equipo
siguiendo el siguiente proceso:
tun- tun- tun- tun- -> Strt Strt Strt Strt
5.- Tras pulsar la tecla INT el equipo empezar a realizar el
proceso de autoajuste mostrando la palabra donEdonEdonEdonE tras
finalizarlo correctamente.. El equipo ya quedar preparado para ser
controlado va CANSync desde el Motion Controller.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 13/180
2.2.- Lexium 15 MP
Se trata de configurar un Lexium 15MP para poder ser controlado
desde el puerto CANSync de la Lexium Controller. Para este cometido
se recomienda seguir los siguientes pasos:
1.- Asegurarse de pasar a parmetros por defecto mediante el uso
del software Unilink MH. Tan slo se ha de establecer comunicacin
con el Lexium 15MP y pulsar sobre el botn Cargar Parmetros Default
en la RAM/EEPROM. Tras unos instantes el equipo quedar a sus
valores de fbrica.
2.- Pulsamos el botn Configuracin bsica y nos aseguramos de que
los parmetros de Drive y Comunicacin son los adecuados. En este
caso se ha cambiado Voltaje mx. de la red a 230V, Alimentacin de
potencia a Ningn Mensaje, Direccin a 5, Baudrate del bus CAN a
500kBaud y Auto Enable a On .
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 14/180
3.- Nos aseguramos de escoger el tipo de motor adecuado
prestando atencin a la posibilidad de si tiene o no freno. El tipo
de motor debe encontrase en la lista de motores disponibles:
4.- Nos aseguramos de escoger el tipo de realimentacin de
velocidad adecuado segn el tipo de motor utilizado:
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 15/180
5.- Es necesario que la palabra de control se encuentre a su
valor por defecto. Si no lo estuviera deberemos cambiarla a mano
programando el valor 1575210 mediante el modo terminal (slo es
posible cambiar la configuracin con el equipo no habilitado):
6.- Para acabar, y aunque este proceso parece que tiene lugar
automticamente tan pronto el drive detecta trama CANSync tras ser
encendido, cambiamos el OPMODE a modo 5: Tarea movim. Ext. Y
finalmente grabamos los cambios en la EEPROM:
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 16/180
3.- CONEXIN CON LEXIUM CONTROLLER
3.1.- Conexin a travs de RS485
El primer paso para poder conectar con la Lexium Controller es a
travs del puerto Modbus mediante el mismo cable que se utiliza con
el Power Suite para la configuracin del Lexium 05. Este paso es
imprescindible aunque el objetivo final sea conectarse a travs del
puerto Ethernet puesto que inicialmente la Lexium Controller no
tiene, y de hecho no est, porque encontrarse con el puerto Ethernet
configurado para conectar a travs de l.
Una vez establecida la conexin fsica entre el puerto serie del
PC y el Lexium Controller es necesario realizar una pequea
configuracin en el entorno Motion Pro.
Puerto RS485 (Necesario Cable PowerSuite Ref. VW3A8106)
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 17/180
1.- Dirigirse al men superior y escoger la opcin En Lnea
2.- Dentro de la opcin En Lnea escoger Parmetros de comunicacin
y aparecer un cuadro de configuracin parecido al siguiente:
Este cuadro muestra todos los medios de comunicacin disponibles
para acceder desde el PC hacia la Lexium Controller. De momento,
como se puede apreciar, no existe declarado ningn medio de
comunicacin. Para crear uno se ha de pulsar sobre el botn New
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 18/180
3.- Tras pulsar sobre el botn New aparece una nueva ventana
donde podremos escoger el protocolo de comunicaciones. En este caso
el que emplearemos ser el RS232 tal cual por lo que seleccionaremos
Serial(RS232), modificaremos el nombre del protocolo a RS232 y
pulsaremos sobre el botn OK. NOTA : Escogemos un puerto RS232
aunque la LMC dispone de un puerto RS485 ya que el cable de conexin
a utilizar es en realidad un conversor RS232-RS485
4.- Tras pulsar sobre el botn OK nos aparecer el nuevo protocolo
dentro de la ventana de conexiones disponibles:
Mediante este procedimiento ya es posible intentar la conexin
desde el PC hacia la Lexium Controller. La comunicacin RS485
mediante el puerto Modbus se encuentra disponible en toda la gama
de Lexium Controller.
Nombre de la conexin. Cambiar el nombre sugerido por RS232
Protocolo a seleccionar.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 19/180
3.2.- Conexin a travs de Ethernet Si se desea un medio de
comunicacin ms rpido que mediante el puerto RS232 o bien
simplemente queremos dejar disponible el puerto RS232 para conectar
una Terminal de operador u otro elemento externo podemos emplear el
puerto de comunicaciones Ethernet.
El puerto de comunicaciones Ethernet se encuentra disponible en
toda la gama de Lexium Controller a excepcin del modelo LC10:
Para la conexin va Ethernet se ha de preparar tanto la Lexium
Controller como el propio PC pero vayamos por partes, primero se ha
de aadir el protocolo de conexin por Ethernet del mismo modo que se
hizo para el protocolo RS232 en el captulo anterior.
Puerto Ethernet NO DISPONIBLE
Puerto Ethernet DISPONIBLE
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 20/180
1.- Dirigirse al men superior y escoger la opcin En Lnea
2.- Dentro de la opcin En Lnea escoger Parmetros de comunicacin
y aparecer un cuadro de configuracin parecido al siguiente:
Esto es as porque previamente hemos tenido que configurar la
conexin RS232 para poder, ahora, despus de configurar la conexin
Ethernet variar el nmero de IP de la Lexium Controller.
Evidentemente no podemos variar va Ethernet la IP para de ese modo
conectar por puerto Ethernet porque no podemos conectar por el
puerto Ethernet hasta que cambiemos el valor de dicha IP por lo que
tendremos que hacerlo va RS232).
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 21/180
3.- Pulsaremos sobre el botn New y aparecer la ventana de
seleccin de protocolos de comunicacin donde escogeremos el Tcp/Ip
(Level 2), modificaremos el nombre del protocolo a Ethernet y
pulsaremos sobre el botn OK.
4.- Tras pulsar sobre el botn OK volveremos a la pantalla
anterior donde deberemos especificar el nmero de IP hacia la cual,
cuando utilicemos el protocolo de comunicaciones Ethernet intentar
conectarse:
Asegurarse, por tanto, que la direccin IP sea 192.160.68.202 y
que el tamao de los paquetes sea de 1400 (para mejorar la velocidad
de comunicaciones).
NOTA: Esto no configura la Lexium Controller lo nico que hace es
que el software Motion Pro buscar va Ethernet una Lexium Controller
cuyo IP sea 192.160.68.202. An falta programar la IP dentro de la
Lexium Controller para que coincida con la que se ha programado en
la configuracin del puerto Ethernet del software Motion Pro.
Nombre de la conexin. Cambiar el nombre sugerido por
Ethernet
Protocolo a seleccionar.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 22/180
5.- Ahora disponemos de dos mtodos de conectar con la Lexium
Controller: RS232 y Ethernet. Para escoger uno u otro tan slo se ha
de seleccionar en la ventana de protocolos de conexin y pulsar
sobre el botn OK. Seleccionamos el protocolo RS232.
6.- Utilizando el protocolo de comunicaciones RS232 deberemos
ponernos ONLINE con el Lexium Controller y una vez conectados nos
dirigimos hacia la ventana Explorador PLC la cual tiene un aspecto
similar al mostrado por la siguiente figura:
Zona introduccin rdenes. Zona respuestas de
rdenes ejecutadas
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 23/180
Esta pantalla hace las veces de modo Terminal y nos permite
introducir y ejecutar toda una serie de instrucciones directas de
entre las cuales se destacan las tres que utilizaremos para
configurar el puerto Ethernet:
ETHINF: Nos muestra la configuracin actual de Ethernet de la
Lexium Controller. En la imagen anterior vemos como se nos indica
que la IP no se encuentra configurada (0.0.0.0). IP: Nos permite
introducir una nueva IP para la Lexium Controller:
MASK: Nos permite introducir una mscara para la Lexium
Controller
Una vez introducida la IP y la Mscara podemos ejecutar de nuevo
la instruccin ETHINF para comprobar que dichos parmetros han sido
aceptados:
NOTA: Llegados a este punto ya tenemos el Motion Pro configurado
para buscar una Lexium Controller cuya IP sea la 192.160.68.202 y
la Lexium Controller configurada con una IP idntica por lo que ya
sera posible acceder a la Lexium Controller a travs de un cable
Ethernet cruzado estndar.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 24/180
7.- Pero an falta configurar el PC de modo que el puerto
Ethernet quede reservado para conectar con la Lexium Controller,
esto se hace del siguiente modo:
En el escritorio de Windows abrir Inicio > Configuracin >
Conexiones de Red
Clic con el botn derecho sobre el icono Conexin de rea local y
seleccionar Propiedades
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 25/180
Seleccionar Protocolo Internet (TCP/IP) y pulsar sobre botn
Propiedades
Seleccionar Usar la siguiente direccin IP e introducir como
direccin IP el valor 192.160.68.200 y como mscara 255.255.255.0
para finalizar aceptando estos valores pulsando sobre el botn
Aceptar.
NOTA: Observar como la IP del PC es 192.160.68.200 y no
192.160.68.202. La IP del PC debe ser diferente de la de la Lexium
Controller. Todos los nodos de la red deben tener el mismo
direccionamiento salvo el cuarto valor que debe cambiar nico para
cada nodo.
8.- Ahora ya podemos conectar va Ethernet con el Lexium
Controller para ello seleccionamos como protocolo de comunicaciones
el Ethernet y pulsamos sobre el botn OK.
9.- Al entrar ONLINE el Motion Pro intentar conectar va Ethernet
con la Lexium Controller.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 26/180
4.- TAREAS Y PRIORIDADES
4.1.- Tiempo de ejecucin vs Tiempo de disparo Como se ha visto
hasta el momento a la hora de estructurar una aplicacin se suele
crear un programa que contiene los diversos bloques de funciones
dedicados a mover cada uno de los posibles ejes contenidos en la
aplicacin. Este programa debe encontrarse sincronizado con el bus
sncrono o Motion Bus de modo que cada cierto tiempo fijo vaya
enviando a los diversos ejes la consigna de posicin que les
correspondera segn su marca de tiempo.
En este caso el programa, por contener todas las instrucciones
de movimiento, debera dispararse cada cierto tiempo de modo que se
enven de forma simultnea a todos los ejes de la red las diversas
consignas de posicin.
As aparecen dos conceptos muy importantes:
Tiempo de ejecucin: Es el tiempo que necesita un programa para
ejecutarse completamente y depende de la cantidad y complejidad del
cdigo contenido en l.
Tiempo de disparo: Indica cada cuanto tiempo se va a iniciar la
ejecucin de un programa dado.
En el siguiente diagrama podemos observar la diferencia entre un
concepto y otro:
Como se puede observar el ciclo de scan de un programa (tiempo
disparo) es nico y fijo y debe ser siempre mayor que el tiempo de
ejecucin del cdigo contenido en l el cual depende a su vez de su
nivel de complejidad (el cual puede variar entre disparo y
disparo).
NOTA : El tiempo de disparo debe ser obligatoriamente mayor que
el tiempo de ejecucin o de lo contrario se generar un error por
intentar ejecutar un programa cuya ejecucin an no finaliz.
Tiempo Disparo
Tiempo Ejecucin
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 27/180
4.2.- Prioridades de ejecucin En la Lexium Controller es posible
programar la ejecucin de programas con hasta 4 niveles distintos de
prioridad.
Un programa, por si mismo, salvo el programa de nombre especial
PLC_PRG, no se ejecutan por si mismos sino que deben vincularse
previamente a una tarea. Es mediante la configuracin del nivel de
prioridad de dicha tarea como es posible modificar la prioridad del
programa. Los diferentes niveles de prioridad de una tarea,
ordenados de mayor a menor son:
EVENT TASK 1 EVENT TASK 2 MOTION BUS AUXILIARY (Tareas
Cclicas)
En caso de que encontrndose ejecutando una tarea determinada se
activara una tarea de mayor prioridad la ejecucin de la primera
quedara congelada en tanto se ejecute la de mayor prioridad. Ver el
siguiente diagrama para entenderlo mejor (no aparece la tarea
Auxiliary pero sera la de menor prioridad).
Como se observa en el diagrama de tiempos existe una tarea
denominada Motion Task que se va ejecutando cclicamente cada cierto
tiempo. Si en un momento determinado se dispara una tarea de
prioridad superior, por ejemplo la Event Task 2, la tarea Motion
Task queda momentneamente congelada y se pasa a atender la tarea
Event Task2, al acabar de ejecutarse la tarea Event Task 2 se
continua ejecutando la tarea Motion Task desde el punto en que qued
congelada. Si mientras nos encontramos ejecutando la tarea Event
Task 2 aparece la orden de ejecucin de una tarea de prioridad
superior, la Event Task 1, se repite el proceso: La tarea Event
Task 2 queda congelada mientras se ejecuta la Event Task 1, al
acabar esta se prosigue la ejecucin de la Event Task 2 y slo al
finalizar dicha tarea se finaliza la ejecucin de la Motion
Task.
Event task execution time
Event TASK 2
Event TASK 1
Motion application task
Event input 1
Event input 2
Motion application cycle time+
both Event taskS execution time
Interruption EVT2 + EVT 1EVT 1 higher priority
Motion application cycle +
Interuption EVT 2
Periodic Motion Application cycle
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 28/180
4.3.- Creacin de tareas y su configuracin Siempre debera existir
un programa vinculado a una tarea sincronizada con el Motion Bus.
Este programa deber contener todas las instrucciones relacionadas
con control de los diversos ejes de la aplicacin. La creacin de
esta tarea es bastante sencilla:
Pasos para la creacin de una tarea:
1. Ir a pestaa Recursos 2. Doble clic sobre Configuracin de
Tareas 3. Clic con botn derecho sobre icono Configuracin de tareas
4. Clic sobre opcin Anexar Tarea
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 29/180
Tras ello aparecer una nueva tarea a la cual le podemos dar un
nombre cualquiera.
Observar que aunque existe una casilla para establecer el nivel
de prioridad este slo puede ser 1 esto es porque el nivel de
prioridad no se establece de forma numrica sino especificando el
tipo de prioridad:
Podemos decidir crear una tarea del tipo Cclico de modo que sea
ejecutada cada intervalo de tiempo determinado o bien crear una
tarea que sea Controlada externamente por eventos de modo que esta
se inicie bien por entradas digitales de interrupcin %IX1.0 (Event
Input 1) o %IX1.1 (Event Input 2) bien por una marca de tiempo para
la sincronizacin de varios ejes (Motion_Cycle)
NOTA : No es posible definir dos tareas controladas externamente
por eventos del mismo tipo (por ejemplo dos tareas Event Input 1)
pero es posible definir tantas tareas cclicas como queramos
pudiendo ser el intervalo de disparo de las mismas igual o distinto
entre si.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 30/180
Como la tarea por si misma no sirve para nada si no va vinculada
a un programa el siguiente paso sera vincular un programa a la
tarea en curso:
1. Pulsamos con el botn derecho sobre el icono de la tarea recin
creada. Pulsaremos sobre la opcin Anexar Llamada de programa del
cuadro que aparecer:
2. Aparecer un cuadro de dilogo donde podremos introducir el
nombre del programa, si es que lo conocemos, que queramos vincular
a la tarea el cual no debe encontrarse vinculado a otra tarea para
evitar ser llamado simultneamente desde dos tareas distintas. Si no
nos acordamos de los nombres de los programas disponibles podemos
pulsar sobre el botn punteado apareciendo con ello una lista de
programas.
3. Seleccionar el nombre del programa que deseemos vincular con
la tarea y pulsar sobre el botn Aceptar:
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 31/180
As la siguiente configuracin de tareas podra ser posible:
Una tarea denominada TareaPrincipal que es la encargada de
ejecutar el programa Principal() donde figuran todas las
instrucciones relacionadas con el control de los diversos ejes y
dos tareas cclicas la primera denominada TareaCiclica y
configurada, por ejemplo, para llamar cada segundo a los programas
Supervisin() y Calculos() y la segunda, llamada TareaMediciones,
que llamar al programa Temporizadores()cada 10mseg
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 32/180
4.4.- Estados y Tiempos ejecucin de Tareas y Grupos de ejes
Disponemos de una serie de bloques, contenidos todos ellos en la
librera SysLibIecTasks.Lib, que nos permiten obtener una serie de
informacin muy til acerca del estado del Motion Bus as como del
tiempo de ejecucin de las diversas tareas:
Mediante los dos bloques anteriores podemos determinar si un
Axis Group determinado se encuentra o no en error y en caso que as
fuera intentar resetearlo.
Los dos bloques anteriores permiten crear dos estructuras de
variables p1 y p2 que contienen informacin relativa al estado o
tiempos de ejecucin de, en este caso, la tarea que controla el
Motion Bus (Motion_Cycle) y la auxiliar o cclica disparada cada
cierto tiempo.
As:
p1.dwCount Nmero de veces que se ha ejecutado la tarea desde que
se activ p1.dwCycleTime Tiempo de ejecucin actual p1.dwCycleTimeAvg
Tiempo de ejecucin medio p1.dwCycleTimeMax Tiempo de ejecucin mximo
p1.dwCycleTimeMin Tiempo de ejecucin mnimo p1.wMode Estado actual
del LC (0=RUN, 1=STOP) p1.wStatus Estado actual de la tarea
(1=Ejecutndose, 2=Detenida (por error o no))
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 33/180
5.- Parametrizacin inicial Drive.
Existe la posibilidad de modificar el valor de una serie de
parmetros de los diferentes accionamientos de forma automtica
durante el primer ciclo de scan de la LMC. El mtodo utilizado desde
Codesys es la creacin de una lista de parmetros a modificar
indicando cual debe ser el valor de dichos parmetros. Esta lista se
enviar durante el primer ciclo de scan va Motion Bus hacia el nodo
que corresponda (cada nodo puede tener una lista diferente de
parmetros a modificar).
Este punto es especialmente til de cara a un mantenimiento ya
que es posible sustituir un equipo fcilmente si previamente se han
seguido los siguientes pasos:
1. Tras acabar la puesta en marcha obtener mediante el uso de
softwares a tal fin como PowerSuite o Unilink todos los parmetros
cuyo valor haya sido modificado de cada uno de los ejes de la
aplicacin.
2. En la seccin correspondiente de Motion Pro (se explica ms
adelante) crear una lista individual de parmetros para cada eje con
todos aquellos cuyo valor haya sido modificado.
3. Ya est, cada vez que se arranque el programa estos valores
sern enviados hacia el equipo remoto que corresponda.
5.1.- Creacin de listas de parmetros
Durante la configuracin de cada eje disponemos de una pestaa
especfica para realizar lo mencionado:
En este punto podemos hacer varias cosas, o rellenar a mano la
lista de parmetros o utilizar un fichero externo creado a tal
fin:
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 34/180
Si lo quisiramos hacer a mano nada ms fcil:
1. Hacemos clic sobre el icono de la columna Insertar.
2. En la fila que se crear se ha de indicar cual es la direccin
CAN del parmetro a modificar indicando el ndice, Subndice as como
la longitud del valor que se enviar en bytes y, por supuesto, el
valor que se desea para dicho parmetro. Por ejemplo, para modificar
el parmetro AT_Gain, sera:
3. Una vez creada toda la lista podramos guardarla en un fichero
externo de modo que nos sirva de Backup personal para, por ejemplo,
clonar mquinas. Para ello tan slo se ha de pulsar sobre el botn
Escribir en archivo. El formato de guardado es XML con codificacin
iso-8859-1.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 35/180
Si lo quisiramos cargar la lista de parmetros mediante el uso de
un archivo externo previamente creado:
1. Pulsar sobre el botn Leer de Archivo. 2. Buscamos el archivo
XML que contiene la lista de parmetros. Este archivo debe no slo
ser tipo
XML sino compatible con el formato de codificacin iso-8859-1 o
de lo contrario no se cargaran los parmetros:
3. Cuando hayamos encontrado el fichero adecuado pulsamos sobre
el botn Abrir y aparecer toda la lista de parmetros:
NOTA: Se dispone de un archivo XML con los valores por defecto
de todos los parmetros de tipo R/W del Lexium05A, pedidlo al autor
de este documento si se necesitara.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 36/180
5.2.- Edicin archivo externo XML
Como se ha comentado en el apartado anterior es posible guardar
y cargar listas de parmetros mediante el uso de ficheros externos.
No obstante se han constatado una serie de peculiaridades que hay
que tener en cuenta:
1. Aunque Excel es, aparentemente, compatible con el formato XML
parece que no lo es con el sistema de codificacin iso-8859-1 por lo
que cualquier intento de emplear Excel como editor de este tipo de
ficheros provocar que estos queden inutilizados (ni siquiera hace
falta modificar nada, el fichero quedar inutilizado con tan slo
abrirlo y guardarlo).
2. A este respecto se recomienda utilizar editores XML freeware
que sean compatibles con el sistema de codificacin iso-8859-1. En
Internet hay bastantes si se sabe buscar como por ejemplo el
XMLNotepad cuyo aspecto es el mostrado en la siguiente figura:
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 37/180
6.- PROGRAMACION
6.1.- Los diferentes lenguajes de programacin Existen hasta 7
tipos de lenguaje de programacin que el usuario puede utilizar a su
criterio. Cada uno de los cuales tiene sus ventajas y desventajas.
La norma sera que cada cual utilizara el lenguaje con el que se
sienta ms cmodo segn sus necesidades. No obstante hay tres
lenguajes que pueden destacar sobre el resto: El SFC, el CFC y el
ST.
6.1.1.- El lenguaje SFC o Graphet El primero de ellos, el SFC,
es un lenguaje de programacin ms conocido como Graphet y que
permite organizar el programa mediante un diagrama de flujo. La
siguiente imagen muestra un ejemplo de ello:
En la imagen anterior vemos la estructura bsica de un programa
realizado en SFC. Este ejemplo tiene varios elementos comunes a
cualquier tipo de programa y que son:
Tarea Init: Esta tarea se ejecuta al iniciar el programa y en
principio, salvo que se realice una llamada posterior, no vuelve a
ejecutarse.
El triangulito negro indica que hay algn programa dentro de la
tarea
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 38/180
Condiciones de entrada: Son variables tipo Bool que permiten,
cuando su valor es TRUE, que el programa pase de una tarea a
otra:
Estas variables tipo Bool deben ser tratadas en la tarea
precedente de modo que nicamente una de ellas se activara a TRUE
mientras que el resto deben permanecer a FALSE (para evitar entrar
en dos tareas simultneamente). En este caso el condicionante de
entrada Gear se encuentra a TRUE (puede observarse porque su color
es azul) y eso ha dado paso a que pueda ejecutarse el programa de
la tarea Modo_Gear (sabemos que se est ejecutando dicho programa
porque la tarea que lo contiene se encuentra resaltada en azul).
Condiciones de salida: Son variables tipo Bool que permiten, cuando
su valor es TRUE, que el programa abandone la tarea que se
encuentra ejecutando en ese momento y el programa siga fluyendo. En
caso que el valor de la variable de salida sea FALSE el programa de
la tarea activa en ese momento seguir ejecutndose cclicamente.
Saltos: Permiten, cuando se cumplan las condiciones de entrada,
que el programa salte a una tarea anterior.
En el caso de la imagen anterior cuando la condicin Parado sea
TRUE el programa se dirigir hacia la tarea Init. Una vez en la
tarea Init debera tenerse la precaucin de volver a poner a FALSE la
variable Parado ya que de lo contrario, si el valor de la variable
Parado no se resetea nunca, al volver a pasar por la zona de salto
este se producir automticamente de forma, quizs, indeseada.
Indicativo de salto
Tarea hacia la que se producir el salto
Condicionante de entrada al salto
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 39/180
Tareas paralelas: Son tareas que se ejecutan paralelamente al
flujo de programa, pueden existir tantas como queramos pero hemos
de tener en cuanta que cuantas ms creemos ms recursos se consumirn.
Su utilidad podra ser, por ejemplo, la de gestionar las alarmas del
sistema.
En la imagen anterior vemos dos tareas paralelas Monitor y
EjeVirtual que se ejecutan cclicamente tan pronto el condicionante
de entrada Inicializado sea TRUE. Para abandonar la ejecucin de
estas tareas paralelas tan slo es necesario configurar a TRUE el
condicionante de salida Parado.
Tareas Alternativas: Son como las tareas paralelas pero
nicamente puede ejecutarse una. Por ejemplo, en la siguiente
estructura vemos como an existiendo la posibilidad de ir por cuatro
caminos simultneamente el sistema toma el camino ms a la
izquierda.
Esta doble lnea indica la existencia de una o ms tareas
paralelas (en este caso hay dos)
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 40/180
Acciones de entrada: Es posible ejecutar un programa una sola
vez, cuando se entra en una tarea determinada, mediante la inclusin
de una accin de entrada. Para ello slo debemos hacer clic con el
botn derecho del ratn sobre la tarea y seleccionar la opcin Agregar
Accin de entrada:
Posteriormente el sistema preguntar que tipo de lenguaje se
desea utilizar para programar la/s acciones de entrada
deseadas:
Y tras este sencillo procedimiento la tarea (en este caso la
tarea Manual) tendr asociado un programa que se ejecutar nicamente
al entrar en la tarea.
Haciendo doble clic sobre el cuadradito con la letra E podremos
entrar a programar lo que deseemos. Aquello que se programe ser lo
primero que se ejecute tan pronto se entre en la tarea Manual.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 41/180
Acciones de Salida: Es posible ejecutar un programa una sola
vez, cuando se sale de una tarea determinada, mediante la inclusin
de una accin de salida. Para ello slo debemos hacer clic con el
botn derecho del ratn sobre la tarea y seleccionar la opcin Agregar
Accin de Salida:
Posteriormente el sistema preguntar que tipo de lenguaje se
desea utilizar para programar la/s acciones de salida deseadas:
Y tras este sencillo procedimiento la tarea (en este caso la
tarea Manual) tendr asociado un programa que se ejecutar nicamente
al salir de la tarea.
Haciendo doble clic sobre el cuadradito con la letra X podremos
entrar a programar lo que deseemos. Aquello que se programe ser lo
ltimo que se ejecute tan pronto se salga de la tarea Manual.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 42/180
6.1.2.- El lenguaje CFC o Complex Flow Chart Este lenguaje
permite programar mediante bloques de funciones vinculados entre
ellos de forma ms o menos libre. Permiten un nivel de monitorizacin
muy alto pero su punto dbil son las instrucciones de asignacin y
condicionamiento. Adems hay que prestar muchsima atencin al orden
de ejecucin de los diferentes bloques de funcin pues podra darse el
caso de que se ejecutara antes un bloque indeseado que provocara el
mal funcionamiento del programa. Hay que tener en cuenta que la
posibilidad de monitorizacin del lenguaje CFC no es la panacea ya
que en ciertos momentos los valores de las variables cambian muy
rpidamente y probablemente no seamos capaces de ver o analizar
porque el programa se comporta anmalamente (eso pasa si las
variables se encuentran cambiando constantemente o si estamos
entrando y saliendo de un bloque de forma continuada y rpida).
Una Asignacin
Indicativo del orden de ejecucin.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 43/180
Evidentemente podemos cambiar el orden de ejecucin si pulsamos
con el botn derecho del ratn sobre el entorno de programa y
seleccionamos la opcin Order. De los diferentes tipos de orden se
recomienda utilizar el Order everything according to data flow ya
que entonces se renumerarn todos los bloques segn el orden de
ejecucin real que tendr el programa y podremos valorar si nos
interesa o no. Una vez el orden sea el deseado podemos
deseleccionar la opcin Show Order para evitar que se muestre el
orden de ejecucin de los diferentes bloques (puede resultar molesto
cuando se monitoricen los diferentes estados del programa o
simplemente a nivel esttico).
Aade una nueva entrada al bloque seleccionado (til para aadir
entradas a bloques lgicos tipo AND u OR)
Permite negar una entrada o salida.
Aade una entrada de habilitacin a un bloque que no lo tenga de
forma que podemos restringir su ejecucin a menos que dicha entrada
sea TRUE.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 44/180
6.1.3.- El lenguaje ST o Structured Text Este lenguaje es el ms
completo y potente ya que permite realizar de forma estructurada
toda una serie de procesos que en el resto de lenguajes requieren
un especial cuidado o bien implican mayor complicacin.
Evidentemente es un lenguaje alejado a la habitual programacin de
un PLC y requiere de un tiempo de aprendizaje mnimo pero a cambio
pone en nuestras manos una capacidad de desarrollo mucho ms
elevado.
Las nicas recomendaciones seran que se guardara un cierto nivel
esttico (tabulando la informacin existente dentro de los
condicionantes y subrutinas que impliquen acabar con la instruccin
END_) y de ayuda incluyendo cuanto comentario haga falta para que
en futuras consultas por el que realiz el programa u otro
programador sea fcil conocer que hace cada parte del programa.
Observar como el programa ejemplo de la imagen anterior dispone de
comentarios en cada seccin de programa y como se hace uso de las
tabulaciones para incluir secciones de programa dentro de las
instrucciones IF y FOR.
Nmero de lnea, es posible aadir un breakpoint para tareas de
debbuging.
En azul instrucciones ST reconocidas.
En Verde comentarios de usuario.
En Magenta constantes reconocidas por el sistema.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 45/180
6.2.- Las variables de usuario
6.2.1.- Los diferentes Tipos Se ponen a nuestra disposicin toda
una serie de tipologas de variables, unas ms sencillas y otras ms
complejas. Es importante hacer un uso adecuado de las variables con
el fin de optimizar tanto los recursos consumidos por la aplicacin
como la propia velocidad de ejecucin de la misma. Las variables
disponibles pueden ser de tipo sencillo:
Tipo Valor mnimo Valor mximo Espacio en Memoria
Ejemplo Asignacin
BOOL FALSE TRUE 1 Variable:=TRUE;
BYTE 0 255 8 Bit Variable:=200;
WORD 0 65535 16 Bit Variable:=60000;
DWORD 0 4294967295 32 Bit Variable:=120000;
SINT -128 127 8 Bit Variable:=-100;
USINT 0 255 8 Bit Variable:=10;
INT -32768 32767 16 Bit Variable:=-30000;
UINT 0 65535 16 Bit Variable:=60000;
DINT -2147483648 2147483647 32 Bit Variable:=-2000000;
UDINT 0 4294967295 32 Bit Variable:=120000;
REAL 1.175494351e-38 3.402823466e+38 32 Bit Variable:=1.53;
LREAL 2.2250738585072014e-308 1.7976931348623158e+308 64 Bits
Variable:=-3.56;
TIME 0d0h0m0s0ms 49d17h2m47s295ms 32 Bit Variable :=
t#12h34m15s
TIME_OF_DAY 00:00:00 23:59:59.999 32 Bit Variable :=
tod#00:00:00
DATE 1970-00-00 2106-02-06. 32 Bit Variable := d#1972-03-29
DATE_AND_TIME 1970-00-00-00:00:00 2106-02-06-06:28:15 32 Bit
Variable := dt#1972-03-29-00:00:00
STRING 1 Caracter 255 Caracteres 1 Byte x Caracter Variable
:=:STRING(35):='Hola';
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 46/180
O algo ms complejas: Tipo Declaracin e Inicializacin
ARRAY Ejemplo Declaracin y Asignacin valores por defecto Matriz:
ARRAY [0..6] OF STRING := 'Stop', 'Velocidad', 'Posicin', 'Cam',
'Gear', 'Homming','Interpolator; TYPE Ejemplo Declaracin TYPE
TIPO_SEMAFORO: (Rojo, Ambar, Verde:=10);
END_TYPE
Ejemplo Uso SEMAFORO1 : SEMAFORO_TIPO; SEMAFORO1:=0; (* El valor
para de la seal del SEMAFORO1 es Rojo*) FOR i:= Rojo TO Verde DO i
:= i + 1; END_FOR;
STRUCT Ejemplo Declaracin TYPE Ejes : STRUCT Activar:BOOL;
Velocidad: REAL; VelHome:DWORD; Aceleracion: REAL; Deceleracion:
REAL; Posicion: REAL; Tiempo: TIME; END_STRUCT END_TYPE
TYPE Estructura : STRUCT Secuencia: INT; Eje: ARRAY[1..2] OF
Ejes; END_STRUCT END_TYPE
Ejemplo Asignacin valores por defecto Secuencia: ARRAY [0..20]
OF Estructura:= (Secuencia:=0, Eje:= (Activar:=TRUE,
Velocidad:=200, Aceleracion:=500, Deceleracion:=500),
(Activar:=TRUE, Velocidad:=200, Aceleracion:=500,
Deceleracion:=500)),
(Secuencia:=1, Eje:= (Activar:=TRUE, Velocidad:=200,
Aceleracion:=500, Deceleracion:=500, Tiempo:=T#1m), (Activar:=TRUE,
Velocidad:=200, Aceleracion:=500, Deceleracion:=500,
Tiempo:=T#1m)),
(Secuencia:=2, Eje:= (Activar:=TRUE, Posicion:=0,
Velocidad:=200, Aceleracion:=500, Deceleracion:=500),
(Activar:=TRUE, Posicion:=360, Velocidad:=200, Aceleracion:=500,
Deceleracion:=500)),
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 47/180
Las variables complejas del tipo TYPE y STRUCT deben ser creadas
en la pantalla Tipos de Datos. Por ejemplo, para crear una variable
del tipo TYPE ejecutaremos los siguientes pasos:
1. Pulsamos con botn derecho sobre carpeta Tipo de datos y
seleccionamos opcin Aadir Objeto:
2. Introducimos el nombre para la nueva variable.
3. Modificamos a mano, ya que no es posible indicar el tipo de
variable que queremos crear, la definicin de la estructura creada
por otra tipo TYPE de manera que incluya las etiquetas internas
deseadas (en el ejemplo que se muestra se crean tres: Rojo,
Amarillo y Verde).
4. El nuevo tipo de variable ya ha sido creado y puede ser
utilizado en el resto del programa.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 48/180
Si deseamos crear una estructura (agrupacin de varios tipos
distintos de variables en una nica variable) es ms sencillo,
simplemente ejecutar los siguientes pasos:
1. Pulsamos con botn derecho sobre carpeta Tipo de datos y
seleccionamos opcin Aadir Objeto:
2. Introducimos el nombre para la nueva variable.
3. Una vez creada la estructura definiremos las variables
internas a mano segn nuestra necesidad ya nicamente se crea el
patrn de estructura (el sistema no puede saber que deseamos
incluir).
4. El nuevo tipo de variable ya ha sido creado y puede ser
utilizado en el resto del programa.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 49/180
6.2.2.- Volatilidad de las variables Por regla general las
variables que se utilizan son del tipo voltil, es decir, cuando se
quita tensin de la Lexium Motion Controller su valor se pierde. No
obstante es posible definir hasta tres tipos de comportamiento
distinto segn se especifique a la hora de declarar la variable:
Si no se especifica que una variable debe ser de tipo RETAIN o
PERSISTENT automticamente pasa a ser voltil. Si se especifica uno o
los dos tipos indicados la variable pasa a ser remanente, es decir,
que puede guardar su valor aunque dependiendo de la combinacin
escogida se comportar de una u otra forma:
RETAIN: Mantienen su valor tras una finalizacin incontrolada as
como tambin tras un apagado y encendido normal de la LMC (RESET).
Un RESET de otro tipo (en fro u original) o el envo de un programa
harn que los valores se inicialicen.
Un ejemplo sera un contador de piezas de una instalacin de
produccin que tuviera que seguir contando en caso de fallo del
sistema elctrico.
PERSISTENT: Slo mantienen su valor en caso de enviar un nuevo
programa.
PERSISTENT RETAIN: Si se desea que las variables PERSISTENT
mantengan su valor tras un paro incontrolado de la LMC tendrn que
declararse tambin como RETAIN.
Un ejemplo de aplicacin sera un contador de horas de servicio
que tuviera que seguir contando tras un fallo del sistema
elctrico.
La siguiente tabla ayuda a entender las diferencias entre las
tres categoras de variables remanentes:
Tras Comando Online
VAR VAR RETAIN VAR PERSISTENT VAR RETAIN PERSISTENT VAR
PERSISTENT RETAIN
Reset - SI - SI Reset (en fro) - - - - Reset (original) - - - -
Cargar (=Descargar) - - SI SI Modificacin en lnea SI Si SI SI
SI=Se mantiene el valor, -=se vuelve a inicializar el valor
ATENCION: Si una variable local se declara como RETAIN en un
programa, esa variable se guarda en la zona
retain (como variable retain global). Si una variable local se
declara como RETAIN en un bloque de funciones, la instancia
completa de
ese bloque de funciones se guarda en la zona retain (todos los
datos del mdulo), aunque solo se trata de esa manera la variable
retain declarada.
Si una variable local se declara en una funcin como RETAIN, esto
no tiene ninguna consecuencia. La variable no se guarda en la zona
Retain! Si una variable local se declara como persistente en una
funcin, tampoco tiene consecuencias!
NOTA: Por defecto del actual firmware se recomienda utilizar
nicamente las variables de tipo REMAIN PERSISTENT si se desea que
la informacin se mantenga en ausencia de tensin de alimentacin en
la Lexium Motion Controller.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 50/180
6.3.- Uso de un eje virtual El uso de los ejes virtuales es una
herramienta que se suele utilizar para comprobar el funcionamiento
de partes de mquina de forma autnoma al resto de la lnea de
produccin. Por ejemplo, en una lnea de corte, podemos comprobar
como se comportar la seccin de la cizalla volante sin necesidad de
arrancar la seccin de alimentacin de material evitando as prdida de
producto y facilitando el test. Un eje virtual no es ms que un
contador que se incrementa del mismo modo que se incrementara la
posicin de un encoder real que se encontrara traccionado por el
flujo de material suministrado por una lnea de produccin simulando
as el comportamiento de esta lnea y por tanto pudiendo comprobar de
una forma cmoda de que manera se comporta la parte esclava
dependiente de dicha lnea.
6.3.1.- Va bloque SMC_TimeAxisFB Este mtodo permite una
implementacin rpida de un eje virtual mediante la creacin de una
variable del tipo Axis_Ref (que es la utilizada por un eje real).
Observar el siguiente ejemplo escrito en lenguaje CFC:
De esta rutina vemos lo siguiente:
1. Se introduce como variable de entrada la velocidad en RPM a
la que queremos se desplace el eje virtual mediante la variable
Vel_EjeVirtual.
2. Multiplicamos Vel_EjeVirtual por el periodo del eje maestro
para trabajar en las mismas unidades que este y dividimos el
resultado entre 60. As pasamos de RPM a Unidades /seg.
3. El resultado se introduce como entrada a un bloque NE de modo
que cuando la velocidad calculada sea diferente a la actual el
resultado del bloque NE sea TRUE y cuando sea igual FALSE. Con esto
se consigue que el bloque SMC_TimeAxisFB se reinicie cada vez que
cambiamos la velocidad.
4. A la vez se introduce la velocidad calculada en la entrada
fOverride del bloque SMC_TimeAxisFB. Este valor entrara en vigor
tan pronto la entrada bExecute detecte un flanco de subida.
5. Se asigna FALSE y 0 a las entradas bPeriodic y fPeriod
obligatoriamente mientras que la entrada fRampInTime afecta a la
rampa de aceleracin que se aplica para alcanzar la velocidad
deseada (en este caso se pone a 0 porque interesa que la velocidad
deseada sea aplicada inmediatamente)
6. El bloque SMC_TimeAxisFB generar una variable que podremos
utilizar como si de un eje real se tratara (podemos aadirlo, por
ejemplo, como eje master de un FB de sincronismo MC_GearIn).
7. Se toma la velocidad del eje recin creado, al que hemos
llamado EjeVirtual, mediante el FB MC_ReadActualVelocity. La
velocidad de este eje nicamente se utiliza para compararla con la
deseada y poder actual en consecuencia sobre la entrada bExecute
del bloque SMC_TimeAxisFB.
El mismo ejemplo en lenguaje ST sera:
Como se observa tampoco reviste mayor dificultad entre utilizar
un lenguaje u otro.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 51/180
6.3.2.- Va Dummy Axis Podramos decir que este es el mtodo
autntico para el uso de un eje virtual ya que el eje que es posible
crear mediante esta va tendr toda la potencia que tendra un eje
real: se configura igual, puede incorporar rampas, puede
habilitarse y deshabilitarse, etc.
Es necesario la siguiente librera para el uso de ejes
virtuales:
Dummydrive_V1940.lib
La librera puede encontrarse en la carpeta:
C:\Schneider Electric\Motion Control\CoDeSys
V2.3\Targets\Schneider Electric\Shared Files\Library\Motion
Para utilizar un Dummy Axis este se configura del mismo modo que
un eje real, es decir, desde las pantallas de configuracin de
ejes:
Los pasos seran:
1. Ir a pestaa Recursos. 2. Doble clic en opcin Configuracin del
mando. 3. Clic con el botn derecho sobre el icono Lexium Controller
V01 y aadimos un nuevo BusInterface. 4. Renombramos el nuevo
BusInterface con el nombre BusVirtual para que no entre en
conflicto con
el BusInterface que contiene el grupo de ejes reales. 5.
Configuramos el BusInterface de nombre BusVirtual para que controle
un accionamiento de tipo
Dummy.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 52/180
6. Clic con el botn derecho sobre el BusInterface de nombre
BusVirtual y aadimos un nuevo AxisGroup al que llamaremos
VirtualGroup.
7. Enlazamos el nuevo grupo de ejes denominado VirtualGroup con
la tarea TareaPrincipal ya que esta es la misma que utiliza el
grupo de ejes reales. De este modo tanto los ejes reales como el
virtual se encontrarn sincronizados con la misma base de tiempos.
El tiempo de ciclo ser igual al empleado en la configuracin del
grupo de ejes reales.
8. Clic con el botn derecho sobre el grupo de ejes de nombre
VirtualGroup y aadimos un nuevo eje al que llamaremos
EjeVirtual.
9. Configuramos el nuevo eje virtual del mismo modo que haramos
si fuera real (incluyendo el nmero de nodo que debe ser diferente
al resto de nmeros de nodo empleados).
10. Y ya est, el eje EjeVirtual se puede utilizar y se comportar
como un eje real a pesar de que no existe en realidad.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 53/180
En la siguiente seccin de programa se puede observar como se
emplea el eje virtual recin creado como maestro de una tabla CAM
(el eje real se llama Eje2):
Para la marcha y/o paro de este eje virtual o para modificar su
velocidad podemos observar la siguiente seccin de programa:
Observar como se emplean los bloques MC_Power para habilitar o
deshabilitar el eje virtual y el MC_MoveVelocity para modificar su
velocidad: igual que un eje real.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 54/180
6.4.- Uso de un encoder externo Con el fin de sincronizar el
comportamiento de los diferentes ejes controlados por el Lexium
Controller existe la posibilidad de conectar una referencia externa
la cual puede ser un encoder externo. Una vez introducido este
elemento de medida externo cada uno de los ejes puede sincronizarse
con diferentes ratios con l segn las necesidades del proyecto a
realizar.
La incorporacin de un encoder maestro es fcil:
NOTA: El encoder externo puede y debe ser alimentado desde una
fuente de alimentacin independiente la cual puede ser conectada en
bornas del Lexium Controller que se indican en la imagen anterior
(ver manual de usuario) estas bornas se encuentran internamente
unidas a los pines adecuados del conector de alta densidad SUB D15
donde se conecta el encoder y no se utilizan para nada ms.
Entrada de encoder externo.
Alimentar a la tensin con la que se desea trabajar con el
encoder.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 55/180
Respecto a como se declara un eje virtual nada ms fcil que
seguir los siguientes pasos:
Pasos a realizar
1. Dirigirse a la pantalla Recursos.
2. Doble clic sobre la opcin Configuracin del mando.
3. Clic con el botn derecho sobre el icono Lexium Controller
V01.
4. Clic sobre la opcin Anexar Subelemento del men desplegable
aparecido.
5. Clic sobre la opcin MasterEncoder del submen desplegable
aparecido.
El nuevo elemento quedar aadido a la lista de elementos del
Lexium Controller:
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 56/180
Aunque puede modificarse el nombre del encoder maestro recin
introducido no se aconseja ya que posiblemente debido a un error
del Codesys no es posible hacer referencia al nuevo encoder maestro
por dicho nombre. En su lugar, para hacer referencia al encoder
maestro se utilizar un formato fijo:
La mejor forma de ver como se utiliza este encoder maestro es
mediante un ejemplo escrito en lenguaje ST:
En este ejemplo se puede ver como mediante el uso de la variable
Secuencia[NumSeq].Eje[1].MReal es posible utilizar como encoder
maestro un encoder virtual (caso que su valor sea FALSE) o externo
(caso que sea TRUE).
Caso que el valor sea TRUE (seleccin encoder maestro externo
real) vemos como simplemente se asigna a la variable EjeVirtual1
que es del tipo AXIS_REF el valor de Encoder1.Axis la cual es una
variable reservada (de sistema, no creada por el usuario) del mismo
tipo que refleja el comportamiento del encoder maestro externo
real.
En el caso de desear que la variable EjeVirtual1 sea reflejo del
eje virtual mediante la asignacin de FALSE a la variable
Secuencia[NumSeq].Eje[1].MReal se recomienda dirigirse al captulo
anterior donde se habla de los ejes virtuales.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 57/180
6.5.- Uso de varios encoders externos Hay que tener en cuentra
que la LMC slo dispone de una entrada MasterEncoder as que a nivel
Hardware debera buscarse algn elemento rpido, quizs un conmutador
basado el rels de estado slido o similar, que permita dirigir las
seales de un encoder u otro hacia la entrada MasterEncoder de la
LMC.
Solventado este problema aparece la necesidad de poder modificar
Online los ratios de la entrada MasterEncoder ya que los diferentes
encoders externos que puedan ser utilizados en la aplicacin no
tienen porqu tener el mismo factor de escalado.
Esta operacin debe realizarse de modo que no se detenga la
produccin si bien, quizs, se produzca un error debido al retardo
del conmutador fsico, ciclo de scan, etc que el cliente debe
asumir.
Para modificar el escalado de un eje (sea un Drive o un
MasterEncoder) de forma Online existe un bloque denominado
SMC_ChangeGearingRatioEncoder y un ejemplo de su uso lo podemos
observar en la siguiente seccin de cdigo:
En el ejemplo anterior se desean utilizar dos encoders externos
del mismo nmero de pulsos, 1024, (4096 flancos) pero el primero
conectado a una rueda medidora de 100mm de desarrollo y el segundo
a una de 200mm.
La seccin de cdigo mostrada realiza las siguientes
operaciones:
1. Tenemos dos variables tipo bolean, bOrdenRatioAlto y
bOrdenRatioBajo, que utilizaremos para cargar un ratio u otro sobre
la variable iRatio la cual se lleva al bloque anteriormente
mencionado.
2. Mientras bOrdenRatioAlto y bOrdenRatioBajo permanecen a nivel
FALSE (no deseamos modificar el ratio) se va copiando la posicin
actual de la lnea, contenida en la variable Pos_Linea, sobre una
variable auxiliar llamada AuxPosLinea, en el momento de ordenar un
cambio de ratio esta copia deja de producirse.
3. Tras la modificacin del ratio el bloque
SMC_ChangeGearingRatioEncoder pone a TRUE su salida bDone y tras un
pequeo retardo configuramos la posicin actual de la lnea a la
previamente memorizada.
NOTA : El bloque SMC_ChangeGearingRatioEncoder modifica la
posicin actual de la lnea segn el escalado utilizado: Si nos
encontramos, por ejemplo, en la cota 45mm con el ratio equivalente
al permetro de 100mm tras modificar al equivalente a 200mm,
curiosamente, la posicin actual de la lnea pasa a ser 90mm. Por
esta razn, y para evitar que el cambio de ratio afecte a la posicin
actual, se aconseja la estructura de programa anterior.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 58/180
6.6.- Las macros Las macros son una herramienta que permiten
reutilizar cdigo en diferentes partes del programa de una forma
autnoma y ahorrando recursos a Motion Pro ya que al contrario de lo
que ocurre con un bloque de funciones una macro, en realidad, no es
ms que un puntero a una zona de memoria donde se encuentra el cdigo
que ejecuta. Si la macro se utiliza dos veces los recursos
empleados no son el doble ya que no se repite el cdigo involucrado
disminuyendo as la carga de programa. Tambin se suelen utilizar,
aunque ese no es su cometido principal, para organizar el programa
y ayudar en su mantenimiento del programa.
6.6.1.- Creacin de un bloque de funciones Todo empieza creando
un bloque de funciones pensado para ser usado de forma general:
1. Hacemos clic con botn derecho en carpeta Mdulos y escogemos
opcin Insertar Objeto.
2. Creamos un nuevo mdulo tipo Bloque de funciones de nombre
Sub_PowerON y tipo de lenguaje de programacin el CFC:
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 59/180
3. Podramos crear una carpeta para agrupar todos los bloques de
funciones que vayamos creando. En este caso se ha creado una
llamada Funciones y se ha arrastrado dentro el Bloque de funciones
Sub_PowerON.
4. Realizamos doble clic sobre Sub_PowerON para proceder a
editarlo. Observar como al ser un bloque de funciones son
necesarios una serie de parmetros de entrada, de salida e
internos.
5. Un programa CFC (y la definicin de variables empleadas) podra
ser, por ejemplo, el siguiente:
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 60/180
6. Tras finalizar la programacin ya disponemos de un nuevo
bloque de funciones que podremos llamar desde cualquier parte del
programa. A todos los efectos el nuevo bloque de funciones tendr el
siguiente aspecto tras ser incorporado en nuestro programa
(lenguaje CFC).
6.6.2.- Creacin de una macro Tras crear un bloque de funciones
ya podramos utilizarlo dentro de una macro. Las macros, una vez
creadas, pueden ser utilizadas cuantas veces sea preciso en
cualquier parte del programa. Para la creacin de una macro se
aconsejan seguir los siguientes pasos:
1. Creamos un bloque de funciones cualquiera sobre la superficie
de programacin. Por ejemplo un bloque AND.
2. Pulsamos con el botn derecho sobre dicho bloque y escogemos
la opcin Crear Macro.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 61/180
3. El bloque AND quedar incluido en una nueva macro cuyo nombre,
por defecto, es MACRO.
4. Ahora renombramos la Macro recin creada y le damos el nombre
de Iniciar_Ejes. Podemos ver qu contiene la macro (y editar su
contenido) con tan slo hacer clic con el botn derecho del ratn y
escoger la opcin Saltar a Macro.
NOTA: Expandir macro quiere decir Destruir Macro, es decir, todo
lo que se encuentre dentro de la Macro se extraer fuera de ella y
quedar como si fuera una seccin de cdigo normal dentro de la zona
de programacin.
5. Una vez hemos Saltado dentro de la Macro podremos ver que su
contenido es precisamente el bloque que hemos utilizado para crear
la Macro. Nos quedaremos en esta vista y modificaremos su contenido
sustituyendo el bloque AND por la siguiente seccin de cdigo:
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 62/180
Observar que la seccin de programa hace uso de dos instancias al
bloque de funciones Sub_PowerON creado anteriormente (en el
apartado anterior). Por lo dems la macro dispone de dos salidas
indicando cuando los dos ejes (Axe_X y Axe_Y) han finalizado su
bsqueda de home (Homes_Ok) y cuando ambos se encuentran listos para
ser utilizados (Drives_Ok).
Para extraer informacin de una Macro se ha utilizado una
simbologa nueva:
Que como vemos tiene un aspecto redondeado. Para aadir una
salida de macro tan slo se ha de emplear el icono correspondiente
de la barra de herramientas:
Si se necesita, como se observa en la imagen anterior, es
posible tambin aadir entradas a la Macro.
6. Una vez creada la macro podemos salir de ella para observar
su aspecto externo. Para ello slo es preciso realizar clic con el
botn derecho sobre la zona de programacin y escoger la opcin Un
nivel de Macro Atrs (porque en nuestro caso slo hemos creado un
nivel):
Crear Macro
Entrada a Macro
Salida de Macro
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 63/180
7. La Macro totalmente acabada quedara del siguiente modo:
Aunque parezca un bloque de funciones en realidad una macro es
como un puntero direccionado a una agrupacin de ellos de manera que
en realidad esta agrupacin slo existe una vez en memoria. Si se
repite la macro en 10 zonas distintas de programa no se consumen 10
veces ms recursos ya que una macro no es un conjunto de cdigo sino
un puntero a un conjunto de cdigo (a lo sumo necesitaremos los
recursos que Codesys necesite para realizar 10 llamadas a la misma
zona de memoria donde se encuentra la seccin de cdigo utilizada por
la macro).
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 64/180
7.- PRIMER PROGRAMA SIMPLE
7.1.- Creacin Programa Principal
Se supone conocimientos bsicos de Motion a nivel de movimientos
monoeje. En el presente ejemplo se realizar un simple movimiento
absoluto hacia una cota determinada, para ellos se efectuar una
bsqueda de home y posteriormente un posicionado.
Si se han seguido todos los pasos explicados durante el captulo
1 el entorno tendr definido un primer objeto vaco llamado PLC_PRG
colgando de la carpeta MODULOS dentro del NAVEGADOR DE
PROGRAMAS:
Este objeto, cuyo contenido se pude ver realizando un doble clic
sobre su nombre: PLC_PRG, se considerar el contenedor del programa
principal de la aplicacin.
Es posible cambiar su nombre, si as se desea, con tan slo situar
el cursor del ratn sobre el nombre PLC_PRG, pulsar el botn derecho
del ratn y escoger la opcin Cambiar nombre del objeto de hecho, y
para tenerlo ms claro, cambiaremos el nombre de PLC_PRG a
Principal.
Se ha de considerar este objeto, denominado ahora Principal,
como contenedor del ncleo de programa de la aplicacin. Para que
este objeto pase a considerarse como el ncleo principal de la
aplicacin primero debe ejecutarse cclicamente y para ello debe
definirse una tarea que lo vaya llamando a cada ciclo de scan del
Lexium Controller. Por tanto, el siguiente paso es crear una tarea
que vaya llamando al objeto Principal de forma cclica.
Para crear una nueva tarea seleccionamos el Navegador de
Recursos y realizamos un doble clic sobre Configuracin de
tareas
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 65/180
Se abrir a la derecha del Navegador de Recursos una nueva
ventana con un rbol cuya raz se denominar Configuracin de tareas
donde, de momento, slo existe un objeto colgando denominado Evento
del sistema. Llevamos el cursor sobre el texto Configuracin de
tareas y mediante la pulsacin del botn derecho seleccionamos la
opcin Anexar Tarea.
Aparecer un nuevo cuadro de dilogo donde daremos nombre a la
nueva tarea llamndola TareaPrincipal configurando su llamada
mediante eventos externo. El evento que llamar a la nueva tarea ser
el ciclo de scan del Lexium Controller.
Acto seguido se llevar el cursor sobre el icono de la tarea
TareaPrincipal y tras hacer clic con el botn derecho se seleccionar
la opcin Anexar Llamada de programa. El programa que se llamar ser
precisamente el programa principal creado anteriormente y que se
llam Principal.
De esta forma ya tenemos creado un objeto denominado que
contendr el programa principal de la aplicacin el cual ser llamado
cclicamente a cada ciclo de posicionado del controlador. Dentro de
este objeto, llamado Principal, es donde se deber de escribir el
programa que gobernar la aplicacin a realizar.
Abrir un listado de Programas
Disponibles
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 66/180
7.2.- Declaracin del eje a controlar
Antes de iniciar el desarrollo del programa falta por definir
cuantos ejes controlar el Lexium Controller para ellos debemos
dirigirnos al icono de Configuracin de Mando dentro del Navegador
de Recursos y hacer doble clic sobre l. Con esto aparecer una nueva
ventana a la derecha mostrando, mediante rbol desplegable, un
resumen del contenido hardware de la aplicacin, por el momento
nicamente el Lexium Controller con las entradas y salidas digitales
que lleva de serie.
De forma parecida a como se ha hecho a la hora de crear una
nueva tarea nos situaremos con el cursor sobre el icono de la raz
del rbol Lexium Controller V01 y haremos clic con el botn derecho
seleccionando Anexar Subelemento y luego BusInterface.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 67/180
De esta forma se aadir al rbol de recursos hardware un nuevo
componente denominado BusInterface y que viene a representar el
vnculo entre el controlador Lexium Controller y una posible red de
accionamientos controlados por bus CANSync. Una vez aadido el
componente BusInterface se ha de indicar que el bus ser controlado
por un Lexium Controller por lo que modificaremos la opcin
Controlador de accionamiento a Lexium Controller Motion Bus.
Ahora falta especificar que lo que cuelga de este bus de campo
es un conjunto de accionamientos (a pesar de que en el presente
ejemplo slo se controlar un nico accionamiento). Hacemos clic con
el botn derecho sobre el icono BusInterface y seleccionamos Anexar
AxisGroup con lo que aparecer una nueva ventana donde vincularemos
este grupo de ejes con la tarea que se ha creado anteriormente
TareaPrincipal, es recomendable aadir como tiempo de ciclo 4000 us
(tiempo adecuado para controlar hasta 4 ejes). Por lo dems el nmero
de nodo local (el Lexium Controller) puede dejarse a 0, la
velocidad de comunicaciones del bus CANSync a 500Kbaud (a menos que
sea estrictamente necesario no se recomienda utilizar la mxima
velocidad de comunicaciones ya que suele restringir bastante la
longitud del cable de comunicaciones as como el nmero mximo de
nodos) y el generador de pulsos de sincronismo en PLC.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 68/180
Por ltimo hay que aadir algn eje al grupo de ejes recin creado.
Para ello volvemos a realizar clic con el botn derecho sobre el
icono AxisGroup y seleccionamos Anexar Drive. Aparecer una nueva
pantalla para configurar dicho nuevo eje:
En esta pantalla se puede definir el escalado del nuevo eje, es
decir, cuantos pulsos de encoder son necesarios para desplazar el
elemento que mueve el motor una medida determinada. Como se va a
trabajar a eje libre lo que haremos ser definir cuantos pulsos son
necesarios para desplazar 360 grados de eje de motor (de esta forma
la unidad bsica de medida ser el grado).
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 69/180
Los parmetros ms importantes son los siguientes:
Drive ID: Nodo de la red CAN Tipo: Permite definir como se
comportar el eje. Si se define como rotatorio el indicador
de posicin actual se resetear cada vez que se sobrepase un valor
determinado prefijable (se trabajar con el mdulo de la posicin
actual con la prefijada mientras que si se define como lineal se
considerar el desplazamiento en pulsos sin realizar el mdulo
(situacin ms comn).
Incrementos: Nmero de pulsos generados por el encoder de motor
en una revolucin, siempre son 131072
Unidades Softmotion: Que desplazamiento efectivo realiza la
carga cuando el eje se ha desplazado el nmero de pulsos introducido
en Incrementos. Como queremos trabajar en grados se configurar a
360.
Valores Mximos: Como su nombre indica permite ajustar
velocidades y rampas de aceleracin o deceleracin mximas. Dejaremos
los valores por defecto.
Por ello la pantalla debera quedar del siguiente modo:
A: Nmero de nodo, debe corresponder con el nodo CAN del drive
que utilizaremos B: Nmero de pulsos generados durante una revolucin
de motor. No importa el motor que se emplee, el
valor siempre es de 131072 porque el Lexium Controller trabaja
internamente con una resolucin de 17 bits (2^17=131072).
C: Unidades que se desplazar la carga fsica. Como vamos a
trabajar a eje libre (sin carga) y queremos trabajar en grados se
configura a 360. Esto quiere decir que cuando el Lexium Controller
cuente 131072 pulsos de encoder se considerar a efectos de unidades
de usuario que se ha girado 360 grados. Todas las unidades de
desplazamiento sern, a partir de este momento, en grados.
Se le cambia el nombre al eje para identificarlo mejor
A
B
C
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 70/180
7.3.- Programa habilitacin y movimiento absoluto
Si se han seguido los puntos anteriores ya podemos empezar a
realizar nuestro primer programa. Para ello se intentar habilitar
el eje y llevarlo en control de posicin de un punto a otro.
Volvemos al entorno de programacin haciendo clic sobre la pestaa
del Navegador de Programas y luego un doble clic sobre el programa
Principal
Tras hacer doble clic sobre el nico programa existente Principal
aparecer el entorno de programacin de ese programa que, como se ha
definido en lenguaje CFC, tiene una apariencia similar a la
mostrada en la figura anterior. As, bajo lenguaje CFC, tenemos en
la barra superior de herramientas un conjunto de botones para la
utilizacin de bloques de funciones.
Para crear nuestro primer bloque tan slo es preciso realizar un
simple clic sobre el tercer icono empezando por la izquierda y
luego hacer un clic sobre el rea de programacin por defecto
aparecer el bloque de una puerta AND. Un camino ms rpido es pulsar
CTRL+B con el cursor situado sobre el rea de programacin.
www.infoPLC.net
-
Knowledge Base Motion Pro: Conceptos Bsicos
Motion Pro: Conceptos Bsicos pgina 71/180
Como este bloque no nos interesa hacemos clic sobre su nombre y
pulsamos la tecla F2. De este modo se abrir el navegador detallado
de bloques disponibles. Se recomienda desactivar la opcin Repr