You are on page 1of 10

Prctica 4

Automatizacin Industrial (10/11)

Control de un escalera mecnica


1 Objetivo
El objetivo de esta prctica es doble: Por un lado se pretende completar la formacin del
alumno en lo relativo a la programacin estructurada y por otro lado ahondar en el
manejo de la herramienta profesional de programacin Simatic Manager ofrecida por la
casa SIEMENS para las familias de autmatas S7-300, S7-400 y M7. Para ello se
utilizar como sistema a automatizar una escalera mecnica dotada de 2 tramos en
sentido ascendente.

2 Bloques con parmetros


El empleo de parmetros en la definicin de los bloques de programacin es una
estrategia que facilita la encapsulacin y reutilizacin de cdigo as como su posterior
depuracin y mantenimiento. Un parmetro en un bloque es muy similar a un parmetro
de una funcin en un lenguaje de alto nivel, y sirve para el intercambio de informacin
con el bloque invocante. Por ello, adems del tipo de dato que se pasa (por valor en el
caso general) hay que configurar tambin la relacin que van a mantener el bloque
invocante y el invocado a travs de cada parmetro (de manera similar a como se hara
en una arquitectura distribuida). Esta relacin o interfaz del bloque parametrizado
invocado respecto del invocante permite definir los siguientes tipos de parmetros:
Tipo IN: Valor de entrada pasado por el bloque invocante y consumido por el
bloque invocado.
Tipo OUT: Dato generado por el bloque invocado y consumido por el
invocante.
Tipo IN-OUT: Dato pasado por el bloque invocante para que sea modificado
por el bloque invocado.
Tipo STAT: Equivalente al tipo IN pero solo para bloques FB.
Tipo TEMP: Dato temporal (similar a una variable automtica en C) de
consumo interno por el bloque parametrizado.
Adems de estos tipos generales, el entorno de desarrollo permite definir un tipo de dato
por defecto de tipo RETURN como valor de retorno del bloque, normalmente asociado
con el correcto funcionamiento del mismo.

Ejercicio Prctico I
Para la asimilacin de los conceptos anteriores se propone el siguiente caso prctico:
1) Abra un proyecto nuevo con el Simatic Manager y cree la funcin FC1 (que ser
invocada desde el bloque de organizacin principal OB1).
2) Abra la ventana de edicin del bloque FC1 (haciendo doble-click sobre su icono
en la parte de la derecha de la ventana principal) y preste atencin a la parte superior de
la zona de escritura donde aparecen dos subventanas con la informacin actual relativa a
la interfaz del bloque (ver Figura 1).

1
Prctica 4
Automatizacin Industrial (10/11)

Figura 1. Parte de la ventana de edicin de un bloque relativa al interfaz

3) A continuacin defina un parmetro de entrada de tipo BOOL para el bloque FC1.


Para ello seleccin el icono IN en la parte izquierda de la subventana que aparece en la
Figura 1 y actualice los valores en la parte de derecha con Param_Entrada como
nombre, BOOL como tipo (ntese que es posible seleccionar cualquiera de los tipos de
datos predefinidos existiendo incluso un tipo genrico configurable por el programador)
y Valor de lectura desde bloque invocante como comentario. Observe como al
finalizar esta operacin se habilita una nueva lnea para definir un segundo parmetro de
tipo IN.
4) Repita el proceso para definir un parmetro esta vez de tipo OUT con nombre
Param_Salida, mismo tipo BOOL y comentario Valor hacia bloque invocante.
5) Ahora escriba el cdigo en el bloque FC1 que asocia el valor de entrada IN con el
parmetro de salida OUT. La sintaxis del identificador de un parmetro incluye el
smbolo #. Sin embargo no es necesario escribir dicho smbolo si utiliza la funcin de
relleno automtico de caracteres que proporciona el Simatic Manager. As, basta con
escribir U Param_E y pulsar CTRL+J en la ventana de edicin para que el entorno
complete la instruccin automticamente (U #Param_Entrada). Escriba las siguientes
instrucciones:

U #Param_Entrada
= #Param Salida
6) Guarde el bloque (atajo CTRL+S) y cierre la ventana de edicin. Edite ahora el
bloque de organizacin principal OB1 y llame al bloque parametrizado FC1. Para ello
escriba la siguiente instruccin en ensamblador:
CALL FC1
Aparecer en pantalla los dos parmetros definidos previamente que ahora deben recibir
un identificador del mismo tipo correspondiente a una zona de memoria de usuario
(direccionada con M, A, E etc.). El color rojo en el editor indica la necesidad de realizar
la asociacin. Asigne al parmetro de entrada la variable E 124.0 y al de salida la
variable A 124.0. Si todo se ha realizado correctamente aparecer la ventana de edicin
de OB1 como sigue:

2
Prctica 4
Automatizacin Industrial (10/11)

Figura 2. Invocacin al bloque parametrizado FC1 desde OB1

7) Guarde los datos de OB1 y cierre la ventana de edicin.


8) Ahora ejecute el programa recin creado en el simulador. Para ello arranque
primero el simulador desde la ventana principal y despus transfiera los bloques OB1 y
FC1 al simulador seleccionndolos previamente y pulsando Sistema destino->Cargar
(atajo CTRL+L). Ejecute el cdigo y compruebe en el simulador que el bloque
parametrizado asigna a la salida A 124.0 (ver Figura 3) el valor de la entrada E 124.0.

Figura 3. Ventana de simulacin

Observe que este resultado se podra tambin haber obtenido escribiendo directamente
la relacin combinacional entre variables en el bloque OB1. Como se ha explicado con
anterioridad, la ventaja de usar parmetros en bloques es la que otorgan las funciones en
un lenguaje de alto nivel. El bloque FC1 as definido establece una relacin entre
entradas-salidas para cualquier valor de las mismas. FC1 podra ser igualmente
llamado para realizar una asociacin entre otras dos variables cualesquiera mientras que,
si no se dispusiera de dicho bloque, habra que reescribir cada vez el cdigo de la
funcin.

Ejercicio Prctico 2
Para completar la exposicin acerca de las ventajas del uso de bloques se describe un
ejemplo sencillo con bloques de funcin (FB) en combinacin con bloques de datos de
instancia. Supongamos que tenemos una luminaria (Salida A 124.0) que hay que
encender al apretar un pulsador (Entrada E 124.0). Dependiendo del modo (E 124.6, E
124.7) la luminaria se encender con un retardo de 2 o 4 segundos.
La forma ms adecuada de programar este sistema, haciendo uso de las funcionalidades
de STEP 7 es la siguiente:
1) Cree un proyecto nuevo y defina los bloques OB1 y FB1.
2) En la ventana de edicin de FB1 modifique el interfaz aadiendo los parmetros
de entrada (IN) tiempo (tipo STIME) e interruptor (tipo BOOL) y aada el cdigo de
disparo de la luz tal y como aparece en la figura:

3
Prctica 4
Automatizacin Industrial (10/11)

Figura 4. Parmetros de interfaz y cdigo para el control de una luminaria con retardo a la conexin

3) Guarde el bloque, cierre la ventana de edicin de FB1 y cree un nuevo bloque de


datos DB1 como bloque de instancia asociado a FB1. Para ello en la ventana de
creacin del bloque elija en lugar de la opcin DB global que aparece por defecto, la
opcin DB de instancia y seleccione posteriormente el bloque FB1 (la Figura 5 ilustra
el momento de la seleccin. Cuando todo est correcto pulse Aceptar.

Figura 5. Creacin de un bloque de datos de instancia DB1 asociado a un bloque FB1.

4) El bloque de datos de instancia creado almacena el valor de los parmetros tras la


primera ejecucin. Por tanto no es necesario dar valores explcitos a los parmetros en
la invocacin. Edite ahora el bloque de datos recin creado haciendo doble-click sobre
el icono en la ventana principal. Se abrir una ventana de edicin donde se muestra los
parmetros definidos en el interfaz de FB1. En la fila que aparece en cada parmetro el
valor inicial no se puede modificar y se define desde el bloque FB1 en el momento de la
creacin del parmetro. El valor actual es el valor en el momento de la invocacin, es
decir, el que se rellenar en la llamada desde el bloque OB1 al FB1. Cambie el valor
actual del temporizador a 2 segundos (2S). Guarde el bloque.
5) Abra el editor del bloque OB1 y realice la invocacin al bloque FB1 mediante la
instruccin
CALL FB1, DB1

Observe el alumno que en la llamada a un bloque FB es obligatoria la asociacin con un


bloque de datos DB. Tras pulsar la tecla ENTER la ventana de edicin de OB1 queda de
la siguiente manera (en modo AWL del editor):

4
Prctica 4
Automatizacin Industrial (10/11)

Figura 6. Llamada al bloque FB1 parametrizado.

A diferencia del ejercicio anterior, la instruccin CALL est completa (no aparecen los
parmetros en rojo) y compila. Si no se rellenan los parmetros, al ejecutarse el bloque
FB1 tomar como buenos los valores actuales del bloque de datos asociado (que por
defecto coinciden con los iniciales). En este caso, como se ha modificado el valor del
temporizador, se tomar el valor actual de 2 segundos como vlido. Complete el
parmetro interruptor con la variable E 124.0. Guarde los datos.
6) La primera invocacin al bloque FB1 hace las veces del primer modo de
funcionamiento de la luminaria (retardo de dos segundos). Para crear la segunda es
necesario una nueva invocacin y modificar ligeramente el bloque OB1. Cambie el
cdigo del bloque para que sea exactamente el de la figura siguiente:

Figura 7. Bloque principal que gestiona dos modos de funcionamiento de una luminara

Observe como al escribir la instruccin


luz2: CALL FB1, DB2
no existe ningn bloque de datos DB2 todava definido. Pulse Aceptar cuando el
sistema le pregunte por la creacin de dicho bloque. Para editarlo, no es necesario ir a la
ventana principal. Basta con pulsar con el botn derecho del ratn sobre el texto DB2
que acabamos de escribir y en el men contextual que aparece elegir Bloque llamado-
>Abrir (ver Figura 8). Cambie el valor actual del parmetro tiempo en el nuevo bloque
por 4 segundos (4S), guarde los cambios y cierre la ventana del bloque datos.

5
Prctica 4
Automatizacin Industrial (10/11)
Figura 8. Apertura de un bloque de datos desde la ventana de edicin del
bloque de funcin al que est asociado

7) Ejecute el cdigo en el simulador. Observe como, si se modifica el modo de


funcionamiento (E 124.6 y E 124.7 a nivel alto), la luminaria tarda en encenderse
tiempos distintos al pulsar el interruptor E 124.0.

Figura 9. Simulacin del control de una luminaria.

Ejercicio prctico 3
Se pretende emplear un autmata de la familia Siemens S7-300 para controlar dos
tramos de escaleras mecnicas que aparecen en la Figura 10. Ambos tramos de escaleras
estn accionados por los motores 1 y 2 respectivamente. El panel de mando consta de
un pulsador de conexin (ON), un pulsador de desconexin (OFF) y un interruptor de
emergencia (EMER).

El ciclo de funcionamiento normal es el siguiente:

El primer tramo de la escalera slo empieza a funcionar cuando se activa el sensor


ptico 1 (SE1), correspondiendo con la llegada de un usuario. Anlogamente, el
segundo tramo slo se activa tras la deteccin de presencia en el sensor ptico 2 (SE2).
Cada tramo se parar cuando hayan transcurrido al menos 50 segundos sin activarse
su sensor correspondiente (lo que implica que en el diseo del sistema se ha previsto
una duracin de la subida de una persona en cada tramo sensiblemente menor a ese
tiempo).

Al pulsar ON se baja la barrera de entrada que da acceso a la escalera y, tras detectarse


el fin de carrera (SB2), se realiza una espera de seguridad de 5 segundos. Al
finalizar dicha espera la escalera queda en situacin normal de funcionamiento. La
parada de ciclo (interruptor OFF, por nivel) tiene las siguientes carctersticas:
La barrera sube nada mas detectar la parada
Los dos tramos de escaleras funcionan normalmente hasta la siguiente parada
temporizada, con lo que los usuarios presentes en la escalera en ese momento
pueden alcanzar la plataforma superior. Posteriormente el sistema pasa al
reposo.

6
Prctica 4
Automatizacin Industrial (10/11)
La activacin del interruptor de emergencia (EMER) detiene toda accin. Resuelta
emergencia por parte del operario, el desenclavamiento del interruptor de emergencia
provoca la subida de la barrera y la vuelta al reposo.

Panel de mando

ON OFF EMER SE2

SB1 SE1 Motor 2

Seal luminaria
SB2
Motor 1
BARRERA L_TIME

Figura 10. Sistema constituido por dos tramos de escaleras mecnicas

CARACTERSTICAS ADICIONALES

1- Para detectar posibles errores de funcionamiento de los motores de las escaleras


y/o comportamientos sospechosos por parte de los usuarios, el autmata
activar un dispositivo luminoso L_TIME si transcurridos 40 segundos tras
la activacin del sensor SE1 no se ha activado el sensor SE2.

Dado que este hecho puede ser debido a un comportamiento incorrecto por parte de
algn usuario, la luz sirve como aviso al operario, pero el automatismo continuar con
su comportamiento normal. Sin embargo, el autmata almacenar esta circunstancia en
un bit de error (e.g. M 200.0) perteneciente al byte MB 200 que codifica 8 posibles
errores de tipo general.

2- Al pulsarse el interruptor de emergencia, la seal luminaria L_TIME se apagar.

1 Estructura de bloques
Para realizar la prctica con xito ser necesario realizar al menos la siguiente
estructuracin del cdigo:
Bloque de arranque general OB100
Bloque de ciclo principal OB1
Bloques relativo a los tramos de escaleras FC1 y FC2 (Tramos 1 y 2): Cada
uno de los bloques debe parametrizarse de la siguiente manera:

7
Prctica 4
Automatizacin Industrial (10/11)
o Parmetros IN: El sensor relativo a cada tramo (SE1 para FC1 y SE2
para FC2) y el tiempo que tarda cada tramo en desactivarse (en este caso
son 50 segundos para cada tramo) y el pulsador de OFF.
o Parmetros OUT: El actuador del motor del tramo de escalera (FC1-
motor 1 y FC2-motor 2).
Bloque relativo a la emergencia FC3
Byte de error MB 200

La invocacin de los bloques FC1 y FC2 debe producirse tras la espera de seguridad de
5 segundos una vez bajada la barrera, y debe condicionarse a ello. La figura 11 muestra
en la parte superior la declaracin de parmetros del bloque FC1 y en la parte inferior
una posible invocacin. En dicha invocacin se asocian las variables que representan la
informacin pasada y recibida desde el bloque con los parmetros del mismo. As por
ejemplo, la variable salida A1.0 en la figura es el actuador del motor mientras que
A_Motor es el parmetro que representa dicha informacin dentro del bloque. El
mismo tipo de razonamiento puede hacerse para el resto de parmetros.
Por otro lado, la instruccin SPBN _001 es un salto condicionado dentro del bloque a la
etiqueta _001 siempre que el valor del RLO en ese momento sea 0. En el ejemplo se
ejecutar la llamada a FC1 siempre que EtapaFuncMotor1 sea verdadero y se
invocar a FC1 en caso contrario. Ntese que es necesario el empleo de la instruccin
CALL para la invocacin del bloque ya que ste tiene parmetros. La invocacin
condicionada CC solo puede emplearse en bloques sin parmetros.

Como estrategia general de programacin, cada bit a nivel alto de cualquier byte de
error indica que se ha producido un mal funcionamiento de algn elemento del sistema.
Ms concretamente, la lectura de los bits de error durante una parada de emergencia
ofrecen un mapa del comportamiento del sistema (esto es, errores que se han acumulado
durante la ejecucin del ciclo principal) y ayudan a identificar las partes del sistema en
mal funcionamiento. Para facilitar la depuracin y el mantenimiento del cdigo, es muy
importante que la activacin de los bits de error se produzca en el/los bloque/s relativo/s
a la parte del cdigo relativa al subsistema al que hacen referencia.
En el caso que nos ocupa, solo existe un bit de error relativo al mal funcionamiento (o
mal uso por parte de los usuarios) del tramo 1 de la escalera. Se asume por diseo que
tras la reanudacin se ha corregido la anomala maunalmente y, por tanto, se debe poner
a nivel bajo dicho bit.

8
Prctica 4
Automatizacin Industrial (10/11)

Figura 11. Ejemplo de definicin de parmetros e invocacin del bloque FC1 que controla el
movimiento del primer tramo de escalera.

2 Modelado Grafcet
Para un correcto modelado de este sistema es muy importante que el alumno considere
cada tramo de la escalera como una entidad distinta, ambos tramos funcionando en
paralelo. Es sta la verdadera estructura de control subyacente y no debe prestarse
atencin al hecho de que un usuario no puede alcanzar el tramo segundo de la escalera
sin pasar por el primero, lo que constituye una relacin coyuntural pero irrelevante
desde el punto de vista de control. La realidad es que cada tramo tiene su sensor y el
control de cada tramo depende exclusivamente de esa informacin.

Especial cuidado debe prestarse al modelado de la finalizacin del ciclo (mando OFF).
Obsrvese que el ciclo no termina directamente tras la activacin del pulsador, sino que
todos los usuarios presentes en las escaleras mecnicas en ese momento deben poder
alcanzar la plataforma superior antes de que se paren definitivamente los motores. Esto
implica que, una vez activado OFF, las escaleras deben continuar su comportamiento
normal hasta que ambos motores estn parados como consecuencia de su ciclo normal
de trabajo.

Ambas consideraciones no son evidentes en un anlisis superficial del sistema y solo un


anlisis ms profundo permite entender las relaciones relevantes existentes entre los
elementos a controlar y los eventos que provocan las acciones de control. Este anlisis
es imprescindible ya en la fase de modelado pues el modelo Grafcet debe capturar estas
relaciones en la medida de lo posible.

3 Normas para la realizacin de la prctica


Esta prctica se realizar en el laboratorio dispuesto a tal efecto situado en la primera
planta. Para la realizacin de la misma ser necesario:

1) Modelado GRAFCET de primer y segundo nivel del ciclo principal.


2) Implementacin para la familia SIEMENS S7-300. Para ello ser de obligatorio
cumplimiento:
a. Estructuracin del cdigo: de acuerdo con lo expuesto en el apartado 1.

9
Prctica 4
Automatizacin Industrial (10/11)
b. Documentacin: Ser imprescindible emplear una tabla de smbolos
apropiada y utilizar abundantes comentarios (obligatorio para todos los
programas a realizar durante el curso.
c. Simulacin en el ordenador en el momento de la entrega de la versin
definitiva, supervisada por el profesor de prcticas.
d. Ejecucin en el autmata: El alumno, mediante el interruptor
correspondiente, har el efecto de llegada de personas a los tramos de las
escaleras.

La versin definitiva del cdigo, junto con el GRAFCET, se entregarn al comienzo de


la quinta y ltima prctica.

10

You might also like