You are on page 1of 48

SIMATIC S7

PROGRAMACIÓN

Automatización de Procesos 3º Ingeniería Técnica en Informática, Esp. Sistemas

1. Cargar programas en la CPU y en la PG/PC 2. E/S integradas y adicionales 3. Lenguajes de programación 4. Programar en KOP 5. Tipos de programación 7. Tipos de módulos
4.1. Contactos 4.2. Bobinas 4.3. Cuadros 4.4. Segmentos 4.5. Marcas de memoria 4.6. Registros 4.7. Temporizadores y Contadores

6. Elementos básicos de un programa de control
7.1. Organizacióm 7.2. Datos 7.3. Código 7.4. Funciones 7.5. Funciones especiales 7.6. Funciones del sistema

1. Cargar programas en la CPU y en la PG/PC 

El programa comprende tres elementos: el programa de usuario, el bloque de datos (opcional) y la configuración de la CPU (opcional). Cargando el programa en la CPU se almacenan dichos elementos en la memoria RAM (de la CPU). La CPU también copia automáticamente el programa de usuario, el bloque de datos (DB1) y la configuración de la CPU en la EEPROM no volátil para que se almacenen allí.
1. Cargar programas en la CPU y en la PG/PC  

1. Cargar programas en la CPU y en la PG/PC

Cargar programas en la CPU y en la PG/PC .1.

es posible cargar programas o configurar la CPU. Será posible cambiarlo utilizando el software de programación (STEP 7-Micro/WIN).  Si el selector se pone en RUN.  Si el selector se pone en TERM (terminal). 1. Para poder cargar un programa en la memoria de la CPU es preciso cambiar a modo STOP. El diodo luminoso (LED) en la parte frontal de la CPU indica el modo de operación actual.  RUN: La CPU ejecuta el programa. Cuando está en modo STOP. Cuando está en modo RUN. no cambiará el modo de operación de la CPU.Ajustar el modo de operación de la CPU La CPU S7-200 tiene dos modos de operación:  STOP: La CPU no ejecuta el programa. SELECTOR  Si el selector se pone en STOP. no es posible cargar programas ni configurar la CPU. se detendrá la ejecución del programa. Cargar programas en la CPU y en la PG/PC . se iniciará la ejecución del programa.

los cambios de los valores de las E/S se efectúan en la imagen del proceso. Mientras la CPU está en modo STOP. Estando la CPU en modo STOP. la CPU se encuentra en un estado semiactivo. el usuario puede cargar el programa en la CPU y en la PG/el PC. con excepción de la función "Forzar" que tiene prioridad sobre los cambios de los valores de E/S en la imagen del proceso. así como borrar la memoria. pero las entradas se actualizan.Ciclo en modo STOP En modo STOP. 1. El programa de usuario no se ejecuta. Cargar programas en la CPU y en la PG/PC .

ejecuta el programa. ejecuta tareas auxiliares internas y gestiona las condiciones de interrupción.Ciclo en modo RUN (I) En modo RUN. Cargar programas en la CPU y en la PG/PC . procesa las peticiones de comunicación. escribe en las salidas. la CPU lee las entradas. Estas acciones (con excepción de las interrupciones de usuario) se gestionan conforme a su prioridad en el orden en que van ocurriendo 1. actualiza los módulos inteligentes.

a menos que se hayan forzado. Dichos valores se escriben luego en la imagen del proceso de las entradas. se ponen a 0 en la imagen del proceso cada vez que se actualicen las entradas. pero que se encuentren en el mismo byte que otras entradas físicas. 1.Ciclo en modo RUN (II) Al principio de cada ciclo se leen los valores actuales de los bits de entrada. Cargar programas en la CPU y en la PG/PC . Los bits de entrada que no tengan una entrada física correspondiente.

sensores e interruptores).2. motores u otros aparatos del proceso. Las entradas vigilan las señales de los dispositivos de campo (p.ej. mientras que las salidas supervisan las bombas. formando una cadena de E/S.  Se dispone de entradas y salidas digitales integradas (en la CPU). así como de E/S adicionales tanto digitales como analógicas (en los módulos de ampliación). E/S integradas y adicionales . 2.  Las entradas y salidas integradas de la unidad central (CPU) tienen direcciones fijas. E/S integradas y adicionales  El sistema se controla mediante entradas y salidas (E/S).  Para añadir a la CPU entradas y salidas adicionales. se pueden conectar módulos de ampliación a la derecha de la CPU.

los bits no utilizados en los bytes reservados se ponen a cero cada vez que se actualizan las entradas. 2. los bits no utilizados en los bytes reservados pueden servir de marcas internas (M).  En cuanto a los módulos de entradas. E/S integradas y adicionales . con respecto al anterior módulo de entradas o de salidas del mismo tipo. por lo que no pueden servir de marcas internas. Las direcciones de las E/S de cada módulo vienen determinadas por el tipo de E/S y la posición del módulo en la cadena.  Por lo que respecta a los módulos de salidas.

E/S integradas y adicionales .2.

3. Esquema de contactos (KOP): se representa gráficamente con símbolos eléctricos. y no pueden escindirse en instrucciones parciales. FUP. Lenguajes de programación . Lenguajes de programación Para toda la familia de autómatas Simatic S7 se emplean los siguientes lenguajes de programación: Lista de instrucciones (AWL). Suelen ocupar una línea de programa (dos en algunas instrucciones). Las instrucciones son las órdenes lógicas elementales que el sistema debe obedecer. KOP es traducido a AWL por Step7.3. Bloques de funciones Internamente el autómata solo trabaja con lista de instrucciones.

El símbolo que se encuentra dentro de la caja indica su función (p. & --> operación AND). 3. El Esquema de Funciones Lógicas utiliza ³cajas´ para cada función. Lenguajes de programación .0 E 0.Las CPUs S7-200 (y STEP 7-Micro/WIN) poseen los siguientes lenguajes de programación: KOP E 0.1 FUP AWL A 0.1 A0.0 E 0.1 A 0.0 AND LD A = E 0.e. La lista de instrucciones (AWL) comprende un juego de operaciones nemotécnicas que representan las funciones de la CPU.0 E 0.0 El esquema de contactos (KOP) es un lenguaje de programación gráfico con componentes similares a los elementos de un esquema de circuitos.0 E 0.

Lenguajes de programación .Selección del lenguaje de programación 3.

Programar en KOP 4.4. Programar en KOP .

se crean y se disponen componentes gráficos que conforman un segmento de operaciones lógicas. Para crear programas se dispone de los siguientes elementos: ‡ Contactos: Representan un interruptor por el que la corriente puede circular. Al programar con KOP. un temporizador.El esquema de contactos (KOP) es un lenguaje de programación gráfico con componentes similares a los elementos de un esquema de circuitos. un contador o una operación aritmética) que se ejecuta cuando la corriente llega al cuadro. Programar en KOP . 4. ‡ Bobinas: Representan un relé o una salida excitada por la corriente. ‡ Cuadros: Representan una función (por ejemplo.

cuando su valor lógico es "1"). cuando su valor lógico es "0"). la corriente circula por un contacto normalmente cerrado o negado (NOT) sólo cuando dicho contacto está abierto (es decir. Programar en KOP .4.1.  De forma similar. Contactos (I)  La corriente circula por un contacto normalmente abierto sólo cuando el contacto está cerrado (es decir. 4.

1.4. Contactos (II)    El contacto normalmente abierto se cierra (ON) si el bit es igual a 1 El contacto normalmente cerrado se cierra (ON) si el bit es igual a 0. Programar en KOP . Ejemplo: 4.

Programar en KOP .  4.4. Bobinas (I) Cuando se ejecuta la operación Asignar. el bit de salida se activa en la imagen del proceso.2.

Programar en KOP .4. Bobinas (II)  Ejemplo: 4.2.

4.3. Cuadros 4. Programar en KOP .

Segmentos  Un segmento comprende dichos elementos.4. representando un circuito completo. La corriente circula desde la barra de alimentación izquierda (representada en el editor KOP mediante una línea vertical en el lado izquierdo de la ventana) a través de los contactos cerrados para excitar las bobinas o los cuadros. 4.4. Programar en KOP  .

4. Para ello disponemos de 256 marcas de memoria de 1 byte. Programar en KOP  .5.) puede que nos aparezca la necesidad de almacenar el resultado lógico que tengamos en un determinado momento.7 Byte de marcas MB 0 a 255 Palabra de marcas MW 0 a 254 Palabra doble de marcas MD 0 a 252 4.0 a 255. es decir un total de 2048 marcas de 1 bit. Marcas de memoria  Cuando realicemos nuestro programa y operemos a nivel de bit en operaciones lógicas (and. etc. or. que podemos direccionar como: Marcas M 0.

7) contiene ocho bits de estado que proporcionan informaciones sobre el programa de usuario. Dichos bits permiten llamar diversas funciones del programa. Por ejemplo. SM0.1 está activado (puesto a 1) sólo en el primer ciclo.SM0.0 . Con esa marca especial es posible llamar una subrutina de inicialización.Marcas de memoria de solo lectura  El byte de marcas SMB0 (SM0. Programar en KOP .   4.

2 SM0.3 SM0. luego 0.Marcas de memoria de solo lectura Marcas especiales SM0. luego 30 segundos a µ1¶) Reloj de 1 segundo (cambia: 0.5 SM0. Programar en KOP . µ1¶ RUN) 4. después se pone a µ0¶) Reloj de 60 segundos (cambia: 30 segundos a µ0¶. µ1¶ = datos perdidos) Marca de conexión (se pone a µ1¶ en el primer ciclo tras la conexión.6 SM0.4 SM0.5 segundos a µ1¶) Reloj de ciclo (µ1¶ lógico en ciclos alternos) Posición del selector de modos de operación (µ0¶ TERM.5 segundos a 0¶.sólo vale para el primer ciclo (µ0¶ = datos presentes.0 SM0. después se pone a µ0¶) Datos remanentes perdidos .7 Descripción Marca Funcionamiento continuo (puesta a µ1¶) Marca de primer ciclo (puesta a µ1¶ en el primer ciclo.1 SM0.

Programar en KOP .Marcas de memoria de solo lectura           Estado del programa Estado de las operaciones Búfer de recepción de caracteres en modo Freeport Error de paridad en modo Freeport Desbordamiento de la cola de espera (interrupciones) Bits de estado de E/S Identificador (ID) de la CPU (SMB 6.0) Registro de errores e ID de los módulos de ampliación Palabras de estado del tiempo de ciclo Valores de los potenciómetros analógicos 4.

Marcas de memoria de lectura/escritura          Interface 0 para comunicación Freeport Interface 1 para comunicación Freeport Escribir en EEPROM Intervalos de interrupciones temporizadas Bytes de programación de los contadores rápidos Bytes de programación de la salida de impulsos Interface 0 .recepción de mensajes Estado del protocolo estándar DP 4. Programar en KOP .recepción de mensajes Interface 1 .

Programar en KOP .6.4. Registros  Todas las CPU Simatic S7 disponen de una serie de registros que se emplean durante la ejecución del programa de usuario.  Los más importantes: Acumuladores (ACU1 y ACU2) Palabra de estado Registros 1 y 2 de direcciones Pila de paréntesis 4.

Acumuladores (ACU1 y ACU2) (I)  El acumulador 1 (ACU 1) y el acumulador 2 (ACU 2) son dos registros universales de 32 bits que se emplean para procesar bytes. Programar en KOP  . palabras y palabras dobles. También es posible transferir el resultado en ACU 1 a una dirección (un módulo de datos. En estos acumuladores se pueden cargar constantes o valores depositados en la memoria como operandos y ejecutar operaciones lógicas con ellos. La palabra baja contiene los bits de menor peso y la alta los de mayor peso lógico. 4. una salida. Cada acumulador puede descomponerse en dos palabras de 16 bits (palabra baja y alta). etc.).

Acumuladores (ACU1 y ACU2) (II) Todas las posibles operaciones que pueden realizarse son: Cargar: que siempre actúa sobre ACU 1 y guarda el antiguo contenido en ACU 2 (perdiéndose el valor antiguo de ACU 2). Programar en KOP . Las operaciones pueden ser de comparación. almacenando el resultado en ACU 1 sin variar ACU 2. de lógica digital y de aritmética. La carga de una palabra actúa sobre la palabra baja del ACU 1. 4. Intercambiar el contenido de los acumuladores: mediante la instrucción TAK. Transferir: copia el contenido de ACU 1 en una dirección de memoria. Realizar una operación entre los acumuladores. sin perder el valor de los acumuladores.

BIT 3 (OR): se requiere para el proceso Y delante de O. En este estado la consulta se almacena directamente en RLO. estando reservados el uso de los 7 últimos. Solo sirve en el test de programa.Palabra de estado (I) Es un registro de 16 bits que contiene algunos bits a los que puede accederse en el operando de operaciones lógicas de bits y de palabras. etc. Este bit indica que una operación Y ha dado valor 1. Aquí se realizan las operaciones a nivel de bit (como AND. A continuación pasaremos a describir cada bit:  BIT 0 (ER): 0 indica que la siguiente línea se ejecuta como nueva consulta (inhibida). BIT 2 (STA): bit de estado. 4. en las restantes operaciones es 0.). BIT 1 (RLO): resultado lógico. OR. Programar en KOP    . Solo nos serán de utilidad los 9 primeros bits.

Se activa junto con OV e indica que previamente se ha producido un error.resultado de una operación digital.resultado de una operación aritmética. . Permite interpretar el resultado de una operación de palabras como resultado binario e integrarlo en la cadena de combinaciones lógicas binarias. Dan información sobre los resultados o bits siguientes: . una operación de llamada a módulo. BIT 5 (OS): bit de desbordamiento memorizado. . o porque se ha alcanzado el fin del módulo. Programar en KOP .Palabra de estado (II)  BIT 4 (OV): bit de desbordamiento. BITS 6 (A0) y 7 (A1): códigos de condición. Se activa (1) por una operación aritmética o de comparación de coma flotante tras producirse un error (desbordamiento. .     4. Solo puede cambiar a cero con la instrucción SPS. BIT 8 (RB): resultado binario. o relación incorrecta). operación no admisible.bits desplazados por una instrucción de desplazamiento o rotación.resultado de una comparación.

4. además del código de función que especifica que instrucción lógica ha abierto el paréntesis. Pila de paréntesis  Aquí se almacenan los bits RB. Programar en KOP . Tiene un tamaño de 8 bytes. Se emplean como punteros en operaciones que utilizan un direccionamiento indirecto de registros.Registros 1 y 2 de direcciones  Son dos registros de 32 bits cada uno. RLO y OR.

Temporizadores y Contadores Temporizadores (T) En el Simatic S7 vamos a disponer de una serie de temporizadores que nos van a permitir realizar una serie de acciones:     Realizar tiempos de espera.4. Programar en KOP . Para la utilización de los temporizadores vamos a disponer de una serie de instrucciones que nos permitirán emplear los temporizadores de distintas formas para adecuarnos a nuestras necesidades Vamos a disponer de 256 temporizadores. direccionaremos como: T0 a T255 los cuales 4. Generar impulsos. Medir tiempos de proceso. Supervisar acciones durante un tiempo determinado (tiempo de vigilancia).7.

Programar en KOP . tanto hacia adelante como hacia atrás.Contadores (C)  Al igual que los temporizadores vamos a disponer de una serie de contadores que nos permitirán efectuar contajes. Disponemos de 256 contadores. los cuales podemos direccionar como: C0 a C255  4.

Tipos de programación  Programación Lineal  Programación organizada en secciones  Programación Estructurada 5. Tipos de programación .5.

Estructura del Programa Programación Lineal Programación organizada en secciones Programación Estructurada Recip. Tipos de programación . A OB 1 OB 1 Recip. 5. Se escriben funciones reutilizables en Bloques separados. B MezcKOPor Salida OB 1 Bomba Salida Todas las instrucciones se encuentran en un solo Bloque (normalmente el Bloque de Organización OB 1) Las instrucciones de las funciones individuales se encuentran en Bloques separados. El OB1 se encarga de llamar a esos Bloques uno tras otro. El OB1 (u otros Bloques) llaman a esos Bloques y les pasan los correspondientes datos.

6. 6. Rutinas de interrupción: Una rutina de interrupción comprende un juego opcional de operaciones depositado en un bloque por separado que se ejecuta sólo cuando ocurre el correspondiente evento de interrupción. Las operaciones del programa principal se ejecutan de forma secuencial en cada ciclo de la CPU. Subrutinas: Una subrutina comprende un juego opcional de operaciones depositado en un bloque por separado que se ejecuta sólo cuando se llama desde el programa principal. Elementos básicos de un programa de control   . Elementos básicos de un programa de control El programa de control de una CPU S7-200 comprende los siguientes tipos de unidades de organización del programa (UOP):  Programa principal: En el programa principal (denominado OB1) se depositan las operaciones que controlan la aplicación.

puesto que el código se ha retirado del programa principal (donde se evalúa en cada ciclo.Subrutinas Las subrutinas se adecuan para funciones que se deban ejecutar varias veces.    Beneficios: Se reduce la longitud total del programa. Basta con escribirla sólo una vez y llamar a la subrutina desde el programa principal cada vez que se necesite. El tiempo de ciclo también se acorta. así se ejecute o no). Las subrutinas se pueden transportar fácilmente. por lo que no se evalúa durante los ciclos en los que no se llame a la misma. 6. permitiendo aislar una función y copiarla a otros programas sin necesidad de efectuar cambios o con sólo pocas modificaciones. Elementos básicos de un programa de control . La subrutina se puede invocar de forma condicional.

sino que el sistema operativo de la CPU las llama cuando ocurre el correspondiente evento de interrupción. Elementos básicos de un programa de control .Rutinas de interrupción  Las rutinas de interrupción se pueden programar para gestionar eventos de interrupción predefinidos.  6. No son invocadas por el programa principal.

Tipos de bloques de programa Sistema Operativo Ciclo Scan Proceso Tiempo SBR0 OB1 SBR1 SBR4 SBR3 Comunicación SBR2 OB = Bloque de Organización SBR = Subrutina INT = Rutina de Interrupción 0 .63 0 . Elementos básicos de un programa de control .127 Máximo 8 niveles de anidamiento 6.

permitiendo una programación estructurada y un acceso ordenado a los datos. El número de módulos va a depender del tipo de CPU empleada. disponiendo en general de los siguientes: Módulos Módulos Módulos Módulos Módulos Módulos de organización (OB) de código (FC) de funciones (FB) de datos (DB) de funciones especiales (SFB) de funciones del sistema (SFC) 7.7. Tipos de módulos  El Simatic S7 dispone de una serie de módulos que dividen la memoria de programa y la de datos en secciones. Tipos de módulos  .

Módulos de organización (OB) (están accesibles o no según el tipo de CPU):  OB para ejecución del programa ARRANQUE (llamada controlada por evento por parte del sistema operativo)  OB para ejecución cíclica del programa (OB1)(llamada cíclica por el sistema operativo)  OB para ejecución del programa controlado por tiempo (llamada controlada por tiempo por parte del sistema operativo)  OB para ejecución del programa controlado por alarma (de proceso) (llamada controlada por evento por parte del sistema operativo)  OB con funciones similares a los módulos funcionales integrados (llamada por parte del programa de usuario). 7.1.7. Módulos de organización (OB) Constituyen la forma de comunicación entre el sistema operativo de la CPU y el programa de usuario. Tipos de módulos .

7. A los datos contenidos en un módulo de datos es posible acceder de forma absoluta o simbólica. Pueden asignarse varios módulos de datos de instancia a un módulo de función.2. Los módulos de datos pueden ser de dos tipos:  Módulos de datos globales: se pueden utilizar por cualquier módulo del programa. En total podemos manejar hasta 127 módulos de datos. Existen módulos de datos globales y de instancia. Tipos de módulos .  Módulos de datos de instancia: se asignan a un determinado módulo de función y solo pueden manejarse desde dicho módulo. Módulos de datos (DB) Son áreas de memoria destinadas a contener datos del programa de usuario.7. Los datos complejos o compuestos pueden depositarse en forma de estructura.

A estos módulos se pueden acceder desde otro módulo FC o desde un módulo OB. 7.3.7. Módulos de código (FC) Son módulos en los que podemos incluir parte del programa de usuario con lo que obtenemos un programa mucho más estructurado. En total podemos manejar hasta 128 módulos de código. Tipos de módulos .

7. Posee una zona de memoria asignada para guardar variables (módulo de datos de instancia). Módulos de funciones (FB) Son módulos de programa especiales. En total podemos manejar hasta 128 módulos de funciones. Aquí se introducen las partes de programa que aparecen con frecuencia o poseen gran complejidad. 7. Lo que se hace es enviar parámetros al FB y guardar algunos de los datos locales en el módulo de datos de instancia.4. Tipos de módulos .

medida de frecuencia. 7.7. 7.. los cuales están preparados para realizar acciones complejas como regulación PID (lazo cerrado).5.. Tipos de módulos . Módulos de funciones especiales (SFB) Se tratan de módulos ya programados. etc. Módulos de funciones del sistema (SFC) Son funciones integradas en el sistema operativo de la CPU y que se pueden llamar en caso de necesidad desde el programa de usuario.6.