Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1 OBJETIVO
El objetivo de esta práctica es la familiarización del alumno con el uso de una
herramienta profesional para la programación como es la ofrecida por la casa SIEMENS
para las familias S7-300 y S7-400. Más concretamente, el laboratorio cuenta con
autómatas S7-313C y la herramienta de programación es la versión 5.3 de Simatic
Manager. Los autómatas están conectados cada uno con un computador a través del bus
específico de Siemens denominado MPI. A su vez, cada autómata lleva asociado una
unidad CP-435 que permite la comunicación mediante el bus de campo industrial
PROFIBUS-DP.
1
Práctica 3
Automatización Industrial (Curso 2010)
interrumpiendo la ejecución del bloque principal OB1. Pertenece a la categoría
de alarmas cíclicas y puede usarse para programar un estado de emergencia.
• Funciones: Estos bloques tienen como identificador las letras FC<Número> y
sirven para descomponer el programa en elementos funcionales o tecnológicos,
facilitando la depuración y el mantenimiento. Equivalen a los bloques PB de
STEP 5. Las funciones pueden ser almacenadas y reutilizadas como librerías. El
Simatic Manager lleva incorporado un gran número de funciones ya
programadas y que están a disposición del programador en el catálogo de
librerías.
• Bloques de Función: Permiten encapsular elementos más complejos referidos al
automatismo a controlar, teniendo como identificador FB<Numero>. A
diferencia de los bloques FC, pueden programarse con un juego de instrucciones
ampliado y tienen que estar asociados obligatoriamente a un bloque de datos
(DB<Número>). Si se emplea un bloque FC para encapsular el código relativo
al funcionamiento de un elemento complejo del sistema (por ejemplo una
bomba), el bloque de datos asociado almacenaría valores acerca de las
propiedades físicas de la bomba (potencia etc.) evitando así tener que inicializar
estos parámetros en el arranque completo OB100.
• Bloques de datos: No cambian en cuanto a su identificador respecto a STEP 5
(DB<Número>) pero pueden estar asociados a bloques FB. En cada momento
no puede haber activo más que un bloque de datos global y un bloque de datos
asociado a bloque de función (denominado bloque de datos de instancia).
• Funciones del sistema: Corresponden a funciones que ya vienen programadas
en la memoria ROM para cada modelo de autómata. La sintaxis de uso es
SFC<Número>.
AF 8 B# 28 L B#16#AF
Binario 16 2# 26 L 2#0010101…
2
Práctica 3
Automatización Industrial (Curso 2010)
Nótese que las constantes de tiempo para los temporizadores ya no es necesario
introducirlas como en STEP 5 (KT X.Y). STEP 7 dispone de un tipo S5TIME (creado
para ser compatible con STEP 5) que permite ahora escribir directamente el tiempo en
horas, minutos y segundos ajustándose la mejor base de tiempos automáticamente. En
STEP 5, la sintaxis KT X.Y determina un valor de temporización X para una base de
tiempos Y. En STEP 7 la sintaxis equivalente es S5T#hHmMsS. Así por ejemplo,
S5T#5s (STEP 7) equivale a KT 500.0 en STEP 5). En el caso de la carga de
contadores, STEP 7 emplea la notación C# para una constante numérica en BCD,
mientras que en STEP 5 era KZ.
A destacar también que el tipo base LONG es ahora de 32 bits y que no debe
confundirse con la instrucción clásica de carga L, pues el formato de la constante
numérica debe ir acompañado del símbolo # (por ejemplo L L#1000, copia el número
1000 en el registro acumulador ACU-1 rellenando los bits sobrantes hasta 32 con
ceros).
Finalmente, todos los formatos de datos básicos sin signo (B, W, DW) necesitan que la
constante numérica sea escrita en formato hexadecimal (16#). Por ejemplo el número 32
decimal como constante de tamaño doble palabra se escribe DW#16#20.
3
Práctica 3
Automatización Industrial (Curso 2010)
Mflanco A1.0
Mflanco A1.0
Expresión P A1.0 = Expresión ↑
E1.0 A1.0
Expresión A1.0 = Expresión ⋅ ( E1.0 ↑)
POS
Mflanco
E1.0 A1.0
Expresión A1.0 = Expresión ⋅ ( E1.0 ↓)
NEG
Mflanco
A1.0
M10.0 A1.0 = Expresión
Expresión # NOT M 10.0 = Expresión
4
Práctica 3
Automatización Industrial (Curso 2010)
• Como utilizar adecuadamente la ventana de edición de bloques: añadir
segmentos, comentarios, usar la ventana de depuración, usar la información que
proporciona el Simatic Manager acerca del programa desarrollado etc.
Para facilitar esta labor se propone el siguiente ejercicio donde se crea un proyecto paso
por paso.
1) Tras abrir el Simatic Manager aparece por defecto la ventana del asistente para la
creación de proyectos (cabe la posibilidad de se haya deshabilitado esta opción y
aparezca directamente el ventana principal tal y como quedo en su anterior uso. Si este
es el caso vaya al menú Archivo-> ‘Nuevo Proyecto’ y aparecerá la ventana del
asistente).
2) En la ventana del asistente pulse Preliminar. Esto mostrará la configuración HW y
SW prevista para el nuevo proyecto (ver Figura 1).
5
Práctica 3
Automatización Industrial (Curso 2010)
No hay que confundir el título de un bloque con el nombre simbólico asociado a dicho
bloque. Para ver la diferencia Guarde los cambios en la ventana de edición (Archivo-
>Guardar o CTRL+S) y examine el bloque OB1 desde la ventana principal (Pulse con
6
Práctica 3
Automatización Industrial (Curso 2010)
el botón derecho sobre el bloque y elija Propiedades del Objeto (o simplemente ALT +
ENTER)). El nombre simbólico es ‘Cycle Excecution’, no existe comentario del
símbolo y el título y comentario del bloque que se ha escrito desde el editor aparecen en
el caja de texto Comentario.
7
Práctica 3
Automatización Industrial (Curso 2010)
Presione ENTER para aceptar la primera opción. De esta forma no es necesario recordar
el nombre completo sino solamente alguna/s de las letras iniciales. Por ello es muy
interesante empezar la implementación con las entradas, salidas y marcas de etapa ya
definidas como símbolos y usar la utilidad de completar a la hora de teclear los
identificadores.
12) Borre el segmento añadido seleccionando el cajetín donde aparece el texto
“Segm. 2” en la cabecera del segmento y pulse Suprimir en el teclado. Guarde los
cambios y cierre la ventana de edición.
13) Abra ahora el simulador mediante el menú Herramientas->Simular módulos.
14) Transfiera el código al simulador. Para ello seleccione todos los bloques que
aparecen en la parte derecha de la ventana principal (bloques OB100 y OB1) y elija
Sistema Destino->Cargar (o el atajo CTRL+L). Es muy importante que la aplicación de
simulación esté abierta. Si el autómata no está conectado y el simulador no está en
ejecución, el entorno dará un error de excepción al intentar la transferencia.
15) Una ventana de simulación vacía tiene el aspecto siguiente:
8
Práctica 3
Automatización Industrial (Curso 2010)
18) Cierre el simulador y abra nuevamente la ventana de edición del bloque OB1. El
Simatic posee una función de ayuda contextual adicional muy poderosa pulsando la
tecla F1. Compruebe la herramienta seleccionando cualquier instrucción (o pulsando
sobre la línea con el ratón) y posteriormente seleccionando F1.
18) Cierre la pantalla de ayuda. Desde la ventana de edición seleccione Herramientas-
>Datos de referencia->Mostrar y pulse Aceptar. Aparecerá otra poderosa herramienta
que ofrece el entorno para la depuración y mantenimiento del código la ventana de
Referencias del proyecto actual (ver Figura 8).
9
Práctica 3
Automatización Industrial (Curso 2010)
Compruebe el alumno a través de las opciones del menú Ver como se despliega una
gran cantidad de información relativa al proyecto actual (variables definidas y
ocupación de la memoria, símbolos definidos y no utilizados, estructura del programa,
identificadores sin símbolo).
4 Herramienta de depuración
10
Práctica 3
Automatización Industrial (Curso 2010)
• BE / BEA: Finalización del bloque y retorno al punto de llamada en el bloque
invocante. El editor coloca automáticamente una instrucción BE (ahora no
visible en el bloque de edición) al final de cada bloque (en el editor S5Win dicha
instrucción aparecía explícitamente en el código durante la programación). La
instrucción BEA es la versión equivalente de BE para uso del programador.
• BEB: Finalización condicionada del bloque. Si el RLO vale 1 en el momento de
la ejecución de la instrucción, el sistema retorna al punto de llamada del bloque
invocante y continua con la siguiente instrucción.
Ejercicio Práctico
Para practicar con el entorno Simatic Manager se propone el control del sistema
siguiente analizado en clase de teoría en profundidad:
El sistema debe contar con un pulsador P_ON disparado por flanco para arrancar la
cuenta y un pulsador de RESET para reiniciar el proceso en cualquier momento. Hasta
que no se pulse RESET no se considerará el ciclo terminado, con lo que la palabra AW
125 seguirá conteniendo el resultado del último ensayo hasta entonces.
11
Práctica 3
Automatización Industrial (Curso 2010)
0/0 1/0
1/0 0/0
NADA 1 10
0/0
1/1
2 Estructura de Bloques
De acuerdo con lo visto en las prácticas anteriores, se recuerda al alumno que la
programación estructurada es un principio básico para implementar la programación de
los automatismos de mando. Una buena descomposición del código en bloques relativos
a partes claramente diferenciadas del sistema a controlar es fundamental para:
• Permitir la depuración y seguimiento del código
• Permitir el uso de técnicas estándar de programación así como la reutilización de
repositorios de bloques ya existentes en la forma de librerías de bloques.
3 Detalles de implementación
El bloque OB1 hace llamadas incondicionales al resto de bloques excepto al generador
de la señal de tiempo de validación que se arranca tras pulsar P_ON estando el sistema
en reposo.
CALL "Flancos"
CALL "Secuencial"
CALL "Actuadores"
U "P_ON (flanco) y Reposo"
CC "Temp. de Validacion"
….
12
Práctica 3
Automatización Industrial (Curso 2010)
El bloque de validación de datos (FC4) puede ser una señal periódica S1 como la que
aparece en la figura a continuación:
S1
3 3 3
La cuenta del número de caracteres leídos la llevará un contador descendente que sea
arrancará con el valor inicial que se encuentra en el bloque de datos global DB1 y se
decrementará con el flanco de bajada de la señal de control S1. De esta manera se puede
usar el valor lógico “falso” del contador como condición de ‘lectura de todos los
caracteres’.
El bloque de datos global DB1 una vez definidos los dos valores (número de bits a leer
y tiempo de validación) debería tener un aspecto como el de la figura:
13
Práctica 3
Automatización Industrial (Curso 2010)
b. Documentación: Será imprescindible emplear una tabla de símbolos
apropiada y utilizar abundantes comentarios (obligatorio para todos los
programas a realizar durante el curso.
c. Simulación en el ordenador, terminado el programa, así como manejo de
las técnicas básicas de depuración que ofrece la herramienta. El profesor
deberá comprobar el correcto funcionamiento del programa.
Posteriormente se realizará una demostración sobre el autómata, siendo
el alumno el que se encargue de ir introduciendo manualmente los bits a
reconocer.
14