180
Advertencia de la propiedad: Este documento contiene información propiedad de Schneider Electric S.A., y ni el documento ni la información que contiene pueden ser publicadas, reproducidas, copiadas o usadas bajo ningún concepto salvo permiso escrito por un representante válido de la compañía. Motion Pro: Conceptos Básicos página 1/180 Doc. Nb: LMC001 Knowledge Base Motion Pro: Conceptos Básicos VERSION V6.3 Departamento: Nombre: Fecha: Autores : D.C.I. Santiago Pavía Amposta 28-02-2008 www.infoPLC.net

Infoplc Net Manuales Bsicos Lexium Controller Motion Pro Conceptos Bsicos v63

Embed Size (px)

DESCRIPTION

l

Citation preview

  • 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