13 de abril de 2013

Un vistazo al entorno de programación Simotion Scout - El árbol de proyecto


En la entrada anterior dejamos nuestra CPU D435-2 DP/PN con una configuración mínima. Ahora, antes de entrar a preparar ejes y realizar la programación, voy a hacer un repaso (no muy exhaustivo) del entorno Simotion Scout.


A la derecha está el árbol de proyecto (Project navigator) donde tendremos acceso a los diferentes componentes. Desplegando la CPU D435 podemos ver en primer lugar el conector de entradas/salidas digitales X142. Haciendo doble clic sobre él podemos cambiar su direccionamiento:



y en la pestaña Canal 0-7 configuraremos el comportamiento de cada pin del conector como entrada, salida, entrada de medición o leva de salida, todo ello de manera muy visual.


La presencia de este tipo de conectores depende del modelo de CPU que tengamos.

A continuación, en el árbol de proyecto, está el Execution System. Este es un componente de vital importancia, ya que aquí configuraremos la ejecución de las diferentes partes del programa.


Está dividido en una serie de tareas (tasks) a las cuales le asignaremos programas. Por ejemplo, a la tarea de arranque StartupTask le asignaremos los programas que tengan que ejecutarse cuando la CPU pase a modo Run (similar a lo que haríamos con el módulo de programación OB100 en Step7). Análogamente existe tambíén la tarea de apagado ShutdownTask. En la tarea BackgroundTask estarían los programas que se tengan que ejecutar cíclicamente y bajo la inspección del tiempo de ciclo, que en Simotion se denomina Round Robin. La BackgroundTask tiene la misma función que el OB1 de Step7.

Las situaciones de fallo en Simotion tienen sus propias tareas bajo SystemInterruptTasks, siendo equivalentes a los OB de fallo en Step7. También tenemos la opción de programar tareas que se ejecuten periódicamente, cada cierto tiempo configurable, o incluso controladas por eventos.

Mención aparte requieren la MotionTasks, que son tareas especiales pensadas para realizar comandos de Motion Control, aunque podemos usarlas para lo que queramos. Una característica muy importante es que no están sometidas al control de tiempo de ciclo (puedes poner una espera hasta que termine un movimiento, sin miedo a que la CPU vaya a Stop). En mi modelo de CPU estoy limitado a 32 MotionTasks y para ejecutarlas, detenerlas y reiniciarlas existen comandos que deberemos programar en otras tareas.

Siguiendo por el árbol de proyecto encontramos el Address List. Si hacemos doble clic sobre él, en la parte inferior se abrirá una pestaña donde podremos ver y configurar todas las entradas y salidas que necesitemos usar en nuestro proyecto.


Configurar las entradas y salidas es muy sencillo. Si son entradas o salidas del propio Simotion la asignación es muy visual. Le damos un nombre y pulsando sobre los puntos suspensivos de la casilla Assignment aparecerá una ventana con las entradas / salidas disponibles. Seleccionamos la que nos interese y listo.


En el caso de entradas / salidas que no sean del sistema Simotion, por ejemplo, de periferia distribuida, tendremos que asignar la dirección de forma coherente con la que le hayamos asignado en la configuración hardware (seguramente una próxima entrada trate sobre esto).

Debajo de Address List está Global Device Variables, que si lo seleccionamos nos mostrará, también en la parte inferior, la lista de variables globales a todo el proyecto. Podemos crear las variables que deseemos aquí. Son de asignación dinámica sin que estén vinculadas a ninguna posición de memoria en particular.


A continuación viene una serie de carpetas donde se configurarán los ejes, encoders, y otros componentes que necesitemos integrar en nuestro proyecto, pero esto mejor lo iré desgranando en siguientes entradas.

La última de las carpetas, denominada PROGRAM, sirve para englobar todos los programas que necesitemos. Un programa en esta carpeta no tiene ningún efecto hasta que sea incluido en el Execution System. Esto es muy cómodo para tener varias versiones de un mismo programa y cambiar rápidamente entre ellos con solo intercambiarlos en su tarea correspondiente.


Los programas se agrupan en unidades (units) que deben compartir el mismo lenguaje de programación. Podemos programar en ST (texto estructurado), LAD/FBF (equivalentes al KOP/FUP de Step7) y MCC, que es una forma de programación de bloques visual y es el lenguaje en el que es recomendable programar las secuencias de Motion Control. En cada unidad y programa se pueden declarar variables de ámbito local.

Un componente que va a aparecer siempre en el árbol de proyecto es Sinamics_Integrated. Las CPU Simotion lleva internamente este componente, que será el encargado de atacar directamente los ejes de Motion Control.


Si necesitamos incluir bibliotecas para acceder a otros dispositivos, deberemos insertarlas en el apartado Libraries. Más adelante tengo pensado escribir una entrada sobre el control de un servomotor PosmoA y tendré que incluir aquí una biblioteca con las funciones de control.

Por último solo nos queda la carpeta Monitor, que sirve para hacer tablas de inspección de variables, con una funcionalidad idéntica a las tablas de variables de Step7.

Y hasta aquí este rápido repaso por el árbol de proyecto. Seguramente me dejo cosas importantes en el tintero, pero espero ir completando conceptos en las siguientes entradas sobre Simotion.

2 comentarios:

  1. Gracias por la información. Una pregunta, en diagnostico del dispositivo/ utilización del dispositivo cuando ejecuto sincronización de 2 ejes baja a niveles criticos la barra de "recuersos de cpu restantes para comunicación aciclica" ¿Es algo del Round Robin? (esto solo pasa algunas ocaciones). Saludos.

    ResponderEliminar

Por favor, no pidas copias de programas comerciales, licencias o números de serie.