Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

32
CPR de Badajoz Curso 2012 /2013 UD3.Lenguaje de programación LD/KOP y set de instrucciones. José María Delgado Casado Profesor Técnico FP Instalaciones Electrotécnicas IES JAVIER GARCÍA TÉLLEZ (Cáceres)

description

Unidad 3 del Curso de Autómatas Programables en las Instalaciones Térmicas. Curso 2012/2013. CPR de Badajoz.

Transcript of Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

Page 1: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

CPR de BadajozCurso 2012 /2013

UD3.Lenguaje de programación LD/KOPy set de instrucciones.José María Delgado CasadoProfesor Técnico FP Instalaciones Electrotécnicas IES JAVIER GARCÍA TÉLLEZ (Cáceres)

Page 2: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

Curso Autómatas Programables IES San Roque (BADAJOZ)José María Delgado Casado

Como se ha visto anteriormente, la nemotecnia básica en lenguaje LD / KOP permite una traducción “casi” directa entre lógica de relés y diagrama de contactos.

UD3. Lenguaje de programación y set de instrucciones.1.Introducción al lenguaje LD /KOP.

La estructura de un programa en lenguaje KOP se basa en la disposición ordenada y consecutiva de barras de contactos (denominadas segmentos o Networks), de acuerdo a unas reglas específicas, y conectadas todas ellas a una barra de red suministradora de señal en la parque izquierda.

La lectura del programa en lenguaje KOP se realiza de forma completa en cada ciclo de scan del PLC, volcando los resultados al proceso de imagen de las salidas, y actuando de forma consecuente con las áreas de memoria correspondientes.

BARRA DE RED

Network 1 ó SEGMENTO 1

Network 2 ó SEGMENTO 2

Network 3 ó SEGMENTO 3

Page 3: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

Curso Autómatas Programables IES San Roque (BADAJOZ)

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

Los contactos son la base de programación en lenguaje KOP. Son elementos tipo bit que pueden adoptar los valores 1 ó 0. Se representan como abiertos o cerrados, y su uso es idéntico al que se hace de los contactos de relés en esquemas cableados. Pueden estar asociados a diversas áreas de memoria (E/S físicas, temporizadores, contadores, marcas y variables, etc.).

La dirección de memoria asociada al contacto será una dirección tipo bit de acuerdo a la estructura de direccionamiento directo anteriormente vista.

2.1. Contactos.

Las bobinas reciben este nombre por analogía con los sistemas cableados. Son el resultado lógico de una combinación de elementos anteriores en el segmento, que si se cumplen, harán llegar señal desde la barra de red hasta la bobina, activando ésta mientas la señal se mantenga, y operando sobre el área de memoria correspondiente.

2.2. Bobinas

Las bobinas son los últimos elementos en cada barra de red, no pudiendo estar en posición intermedia (excepto en S7-1200).

Page 4: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

Curso Autómatas Programables IES San Roque (BADAJOZ)

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

La activación de salidas (áreas de memoria) asociada a bobinas sólo se mantiene durante el tiempo que dure la señal activadora. Es posible no obstante producir un cambio permanente en el área de memoria con sólo un flanco positivo de señal (cambio de 0 a 1 en la alimentación de la bobina) mediante la función SET.

2.3. Funciones SET / RESET.

Una vez hecho un SET de una salida (área de memoria), sólo se podrá desactivar haciendo un correspondiente RESET, ya que aunque no le llegue alimentación a la función SET, la salida sobre la que actuó continuará activada en tanto no se realice su correspondiente RESET.

En el caso del S7-1200 existen las funciones S_BF y R_BF, que, de forma análoga a como se realiza como MicroWIN, permiten poner a SET o a RESET un bloque de bits indicando su dirección inicial y su tamaño.

Page 5: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

Curso Autómatas Programables IES San Roque (BADAJOZ)

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

Los temporizadores son áreas de memoria que generan eventos cuando alcanzan un valor de tiempo preestablecido (PT o Preset Value). Su comportamiento es muy similar a los empleados en los circuitos cableados.

A pesar de que su funcionamiento es similar, las funciones de temporización son distintas en los dispositivos S7-200 y S7-1200. No obstante, ambos tienen una entrada de activación (IN) y un tiempo preestablecido (PT). Mientras la señal de activación llegue a la puerta de entrada (IN), el temporizador empezará a contar desde 0 hasta su valor preestablecido (PT). En ese momento, siempre y cuando se mantenga la señal de activación, los contactos dependientes del temporizador conmutarán, y se mantendrán en ese estado mientras el temporizador siga alimentado.

2.4. Temporizadores.

TEMPORIZADOR S7-200 TEMPORIZADOR S7-1200

Tanto en el S7-200 como en el S7-1200 existen varios tipos de temporizadores:

1) Temporizadores al trabajo (TON): Los temporizadores TON (Timer ON Delay o retardo al conectar) retardan la conmutación de sus contactos dependientes el tiempo establecido en PT. Al cambiar de 0 a 1 la entrada de habilitación (IN) el temporizador empieza a contar. Si se mantiene la señal en IN hasta el PT, los contactos dependientes del temporizador conmutarán.

2) Temporizadores al reposo (TOF): Los temporizadores TON (Timer OFf delay o retardo al desconectar) retardan la conmutación de sus contactos dependientes el tiempo establecido en PT una vez la señal de habilitación cambia de 1 a 0. Al cambiar de 0 a 1 la entrada de habilitación (IN), los contactos dependientes del temporizador conmutan de forma automática, sin iniciarse la temporización. Cuando la entrada IN cambia de 1 a 0, los contactos se mantienen en su posición conmutada, iniciándose el contaje, y volverán a su posición al llegar a PT.

3) Temporizadores retentivos (TONR): Por definición, los temporizadores (a no ser que en propiedades de sistema se definan de otro modo) son no- retentivos ante una falta de alimentación. Es posible emplear temporizadores retentivos empleando para ello los tipos TONR.

Page 6: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

Curso Autómatas Programables IES San Roque (BADAJOZ)

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.4. Temporizadores.

En el siguiente ejemplo del S7-200 puede observarse el funcionamiento de un temporizador al trabajo:

!

Page 7: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

Curso Autómatas Programables IES San Roque (BADAJOZ)

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.4.1. Temporizadores en el S7-200.

El S7-200 dispone de 256 temporizadores (T0 a T255), con la particularidad de que la base de tiempos de los mismos no es uniforme. De esta forma, existen diversas bases de contaje que están relacionadas con el número de temporizador:

!

Dado que únicamente dispone de 2 temporizadores con base 1ms (TON y TOF), estos deberán emplearse para aquellas tareas cuyo tiempo de contaje sea crítico y necesite por tanto estar ajustado al ms. Si la criticidad de la tarea o el tiempo de contaje es menos relevante, se emplearán temporizadores de base 10ms o 100ms.

MicroWIN detecta automáticamente el número de temporizador especificado, reflejando la base de tiempos en el mismo. Si el tiempo especificado en PT excede del tiempo máximo de contaje del temporizador, el precompilador de programa dará un error.

Es fundamental tener en cuenta que cada temporizador ocupa en el área de memoria una palabra (1W = 2 bytes), y la consulta del mismo en tabla de estado nos devolverá el tiempo instantáneo de contaje.

Page 8: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

Curso Autómatas Programables IES San Roque (BADAJOZ)

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.4.2. Temporizadores en el S7-1200.

A diferencia del S7-200, en el S7-1200 todos los temporizadores tienen base de tiempo de 1ms, por lo que el valor de tiempo puede introducirse directamente independientemente del número de temporizador.

Los temporizadores en el S7-1200 tienen varias entradas / salidas de función:

IN - Entrada de habilitación. Su uso y funcionalidad es igual que en el S7-200.PT - Preset Value del temporizador. La diferencia con el S7-200 radica en la base de tiempos constante de 1ms.Q - Salida de habilitación: salida que se activa una vez transcurrido el tiempo PT.ET - Valor de tiempo actual.

Los temporizadores en el S7-1200 tienen además la particularidad de necesitar un bloque de datos (DB) asociado al temporizador (o global), que se declara como una estructura específica del tipo IEC_Timer. En dicha estructura de 16 bits (1W = 2 bytes) se almacenan los datos del temporizador, y entre ellos el valor de contaje (ET). Los valores de los bloque de datos pueden consultarse posteriormente en los Bloques de Sistemas del Árbol del Proyecto.

Page 9: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

Curso Autómatas Programables IES San Roque (BADAJOZ)

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.4.2. Temporizadores en el S7-1200.

Dado que en los temporizadores del S7-1200 existe salida de habilitación, es posible condensar en un sólo Network instrucciones que en el caso del S7-200 requerían al menos 2. En el siguiente ejemplo pueden verse las diderencias de uso.

Page 10: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

Curso Autómatas Programables IES San Roque (BADAJOZ)

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.5. Contadores.

Los contadores son áreas de memoria que generan eventos cuando alcanzan un determinado número de sucesos. Su uso es necesario en funciones que tengan como finalidad o medio el contaje de sucesos. Tanto en el S7-200 como en el S7-1200 existen diversos tipos de contadores:

1) Contadores incrementales (CTU): Los contadores incrementales (CounTer Up) cuentan un suceso hacia adelante cuando se produce un flanco positivo en la entrada de contaje hacia adelante (CU). Si el valor actual del temporizador es igual o mayor al valor de preselección PV, se activa el bit de contaje dependiente. El contador se inicializa cuando se activa la entrada de desactivación (R) o cuando se resetee el área de memoria (o DB) correspondiente.

S7-200 S7-1200

2) Contadores decrementales (CTD): Los contadores incrementales (CounTer Down) cuentan un suceso hacia atrás desde PV cuando se produce un flanco positivo en la entrada de contaje hacia atrás (CD). Si el valor actual del temporizador es igual a 0 se activa el bit de contaje dependiente. El contador desactiva el bit de contaje y carga el valor actual con el valor de preselección (PV) cuando se activa la entrada de carga LD.

S7-200 S7-1200

Page 11: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

Curso Autómatas Programables IES San Roque (BADAJOZ)

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.5. Contadores.

3) Contadores incrementales / decrementales (CTUD): La operación Incrementar/decrementar contador (CTUD) empieza a contar adelante cuando se produce un flanco positivo en la entrada de contaje adelante (CU), y empieza a contar atrás cuando se produce un flanco positivo en la entrada de contaje atrás (CD). El valor actual del contador conserva el contaje actual. El valor de preselección PV se compara con el valor actual cada vez que se ejecuta la operación de contaje. Al llegar a 0 los bits dependientes del contador conmutarán.

S7-200 S7-1200

Al igual que ocurre con los temporizadores, los contadores en el caso del S7-1200 llevan asociados necesariamente un bloque de datos (DB) de instancia o globales donde poner almacenar los datos necesarios del contador, con una estructura del tipo IEC_Counter.

De igual forma, no existe un número límite de contadores, sino que su número estará limitado por la memoria del dispositivo PLC, ya que es posible crear tantos DBs asociados como permite la memoria de dispositivo.

Page 12: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

Curso Autómatas Programables IES San Roque (BADAJOZ)

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.5. Contadores.

En el siguiente ejemplo del S7-1200 puede observarse el funcionamiento de un contador incremental y su diagrama asociado:

Page 13: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

Curso Autómatas Programables IES San Roque (BADAJOZ)

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.6. Operaciones lógicas con lenguaje de contactos.

Las operaciones lógicas con lenguaje de contactos que pueden realizarse con autómatas programables son muy diversas. No obstante, existen una serie de operaciones lógicas básicas en las que el procesado de información del autómata programable basa su funcionamiento, que son las siguientes:

1) Operación AND: Tiene su correspondencia con el circuito eléctrico combinacional de contactos en serie. El resultado de operación sólo llega a la bobina como activación cuando los operandos de los contactos abiertos se encuentran a 1 y los de los contactos cerrados a 0.

2) Operación OR: Tiene su correspondencia con el circuito eléctrico combinacional de contactos en paralelo. El resultado de operación llega a la bobina como activación cuando al menos uno de los operandos de los contactos abiertos se encuentran a 1 o los de los contactos cerrados a 0.

3) Operación NOT: La operación NOT invierte el valor de la operación lógica previa (RLO previo de la operación o conjunto de operaciones anteriores).

Page 14: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.6. Operaciones lógicas con lenguaje de contactos.

4) Agrupaciones de contactos: Las operaciones OR, AND y NOT pueden agruparse entre sí, dando lugar a bloques de contactos que pueden descomponerse en las operaciones elementales.

Agrupación AND de ORs Agrupación OR de ANDs

Existen no obstante una serie de agrupaciones no lícitas:

- NO se permite crear ramas que puedan causar un flujo inverso de la “corriente”.

X

- NO se permite crear ramas que puedan causar cortocircuito, y en el caso del S7-200, no se permiten más de dos inicios de rama dentro del mismo network.

XCurso Autómatas Programables IES San Roque (BADAJOZ)

Page 15: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.7. Operaciones con flancos.

Las operaciones de flancos (flanco positivo y flanco negativo), permiten la activación de contactos únicamente durante un ciclo de scan, cuando las entradas a las que van asociadas cambian de “on” a “off” y viceversa.

En el caso del S7-200 se denominan “detectar flanco positivo” y “detectar flanco negativo”, mientras que en el S7-1200 pasan a nombrarse como “Consultar flanco de señal ascendente de un operando” y “Consultar flanco de señal descendente de un operando” respectivamente.

El contacto flanco positivo (P) permite que la corriente circule durante un ciclo de scan cada vez que se produce un cambio de OFF a ON.

El contacto flanco negativo (N), en cambio, permite que la corriente circule durante un ciclo de scan cada vez que se produce un cambio de ON a OFF.

El S7-1200 añade operaciones de flancos no soportadas por el S7-200, como son:

- Activar operando con señal de flanco ascendente: Pone el operando indicado a 1 cuando se registra un cambio lógico de 0 a 1.

- Activar operando con señal de flanco descendente: Pone el operando indicado a 1 cuando se registra un cambio lógico de 1 a 0.

- Consultar flanco de señal ascendente del RLO: La instrucción "Consultar flanco de señal ascendente del RLO" permite consultar un cambio del estado lógico del resultado lógico de "0" a "1".

- Consultar flanco de señal descendente del RLO: La instrucción "Consultar flanco de señal descendente del RLO" permite consultar un cambio del estado lógico del resultado lógico de "1" a "0".

Curso Autómatas Programables IES San Roque (BADAJOZ)

Page 16: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.7. Operaciones con flancos.

En el siguiente ejemplo puede verse el uso y empleo de la detección de flancos positivos (P) y negativos (N):

Los flancos son por tanto especialmente útiles en el procesado de señales de corta duración o bien en el caso de posible intromisión de señales en una misma activación, permitiendo discernir la acción a realizar en función de las condiciones.

Curso Autómatas Programables IES San Roque (BADAJOZ)

Page 17: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.8. Operaciones de memoria y uso de marcas.

Una función de memoria es aquella que genera un evento y lo mantiene aunque cese la acción inicial que lo originó. El almacenamiento de operaciones en memoria no es una función específica del PLC, sino que, al igual que en la lógica cableada, puede conseguirse de diversas formas: mediante realimentaciones por contacto, haciendo uso de marcas internas o empleando biestables (como las funciones SET y RESET anteriormente introducidas).

En la lógica cableada es muy común el uso de la realimentación por contacto. De este modo, puede almacenarse un estado previo para su uso posterior. En un arranque con pulsadores de marcha y paro, el pulsador de marcha es el que origina el evento que alimenta la bobina, el contacto en paralelo el que la realimenta y el pulsador de parada el que la desactiva. Si transcribimos ese circuito a lógica de contactos, el programa será similar al de la siguiente figura:

En el caso anterior se emplea un contacto abierto de la salida Q0.0 para mantener la alimentación en la misma aunque la condición de activación que lo originó (cambio de 0 a 1 de I0.0) haya cesado.

Curso Autómatas Programables IES San Roque (BADAJOZ)

Page 18: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.8. Operaciones de memoria y uso de marcas.

El área de marcas del PLC (denominadas marcas internas, relés internos o bits internos), tiene un comportamiento similar al de los relés auxiliares en la lógica cableada. De esta forma, es posible almacenar estados intermedios de memoria (al igual que hacen los relés auxiliares) para usarlos a conveniencia en la activación / desactivación de salidas físicas, activación / desactivación de marcas, temporizadores o contadores, o bien para la llamada a funciones.

Figura 1.75. Realimentación por contactos.

El empleo de marcas internas, también denominadas memorias o bits internos, tiene un comportamiento similar al de los relés auxiliares en la lógica cableada. De esta forma, es posible almacenar estados intermedios de memoria (al igual que hacen los relés auxiliares) para usarlos a conveniencia en la activación / desactivación de salidas físicas, activación / desactivación de marcas, temporizadores o contadores, o bien para la llamada a funciones.

Figura 1.76. Empleo de marcas internas.

7.1.8. Órdenes de comparación.

Las operaciones de comparación se utilizan para comparar dos valores. Las posibilidades son:

IN1 = IN2!IN1 >= IN2!IN1 <= IN2 IN1 > IN2!IN1 < IN2!IN1 <> IN2

Estas comparaciones pueden realizarse con todos los tipos de datos que podemos encontrar en un S7-200. Los tipos de datos más corrientes en representación (que ocuparán determinados bits, bytes, palabras y dobles palabras como elementos de almacenamiento de información que ya hemos visto), son los siguientes:

TEMA 1. Sistemas automatizados basados en Autómatas Programables 50 IESGarcía Téllez

(Cáceres)CIDA – 2º CFGS SISTEMAS ELÉCTRICOS Y AUTOMATIZADOSAutor: José María Delgado Casado

Curso 2012/2013

IESGarcía Téllez

(Cáceres)

En el ejemplo anterior puede verse cómo se alimenta una salida física a través de un relé interno (marca interna), con el que se actúe de forma similar a como se hacía en el ejemplo anterior sobre la propia salida.

El área de marcas (M) tiene un tamaño específico dependiendo del PLC.

S7-200

S7-1200

Curso Autómatas Programables IES San Roque (BADAJOZ)

Page 19: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.9. Marcas especiales.

Las marcas especiales (SM en el S7-200) permiten intercambiar datos entre la CPU y el programa. Estas marcas (muchas de sólo lectura) se pueden utilizar para seleccionar y controlar algunas funciones especiales de la CPU S7-200. Por ejemplo, hay una marca que se activa sólo en el primer ciclo, marcas que se activan y se desactivan en determinados intervalos, o bien marcas que muestran el estado de las operaciones matemáticas y de otras operaciones.

El área SM puede ser accesible en diversos formatos, pero normalmente se lee en formato BIT o formato BYTE. En la tabla resumen de la figura puede verse el tamaño del área de memoria que abarca el área SM.

Algunos bytes y bits del área SM son de especial uso y relevancia:

Manual del sistema de automatización S7-200l

506

SMB0: Bits de estadoComo muestra la tabla D-1, SMB0 contiene ocho bits de estado que la CPU S7--200 actualiza alfinal de cada ciclo.

Tabla D-1 Byte de marcas SMB0 (SM0.0 a SM0.7)

Bits SM Descripción (sólo lectura)SM0.0 Este bit siempre está activado.

SM0.1 Este bit se activa en el primer ciclo. Se utiliza p. ej. para llamar una subrutina de inicialización.

SM0.2 Este bit se activa durante un ciclo si se pierden los datos remanentes. Se puede utilizar comomarca de error o como mecanismo para llamar a una secuencia especial de arranque.

SM0.3 Este bit se activa durante un ciclo cuando se pasa a modo RUN tras conectarse laalimentación. Se puede utilizar durante el tiempo de calentamiento de la instalación antes delfuncionamiento normal.

SM0.4 Este bit ofrece un reloj que está activado durante 30 segundos y desactivado durante 30segundos, siendo el tiempo de ciclo de 1 minuto. Ofrece un retardo fácil de utilizar o un reloj de1 minuto.

SM0.5 Este bit ofrece un reloj que está activado durante 0,5 segundos y desactivado durante 0,5segundos, siendo el tiempo de ciclo de 1 segundo. Ofrece un retardo fácil de utilizar o un relojde 1 segundo.

SM0.6 Este bit es un reloj que está activado en un ciclo y desactivado en el ciclo siguiente. Se puedeutilizar como entrada de contaje de ciclos.

SM0.7 Este bit indica la posición del selector de modos de operación (OFF = TERM; ON = RUN). Si elbit se utiliza para habilitar el modo Freeport cuando el selector esté en posición RUN, se podráhabilitar la comunicación normal con la programadora cambiando el selector a TERM.

SMB1: Bits de estadoComo muestra la tabla D-2, SMB1 contiene varios indicadores de los posibles errores.Estos bits son activados y desactivados por ciertas operaciones durante el tiempo de ejecución.

Tabla D-2 Byte de marcas SMB1 (SM1.0 a SM1.7)Bits SM Descripción (sólo lectura)

SM1.0 Este bit se activa al ejecutarse ciertas operaciones si el resultado lógico es cero.SM1.1 Este bit se activa al ejecutarse ciertas operaciones si se produce un desbordamiento o si se

detecta un valor numérico no válido.

SM1.2 Este bit se activa si el resultado de una operación aritmética es negativo.

SM1.3 Este bit se activa si se intenta dividir por cero.SM1.4 Este bit se activa si la operación Registrar valor en tabla intenta sobrepasar el límite de llenado

de la tabla.

SM1.5 Este bit se activa si las operaciones FIFO o LIFO intentan leer de una tabla vacía.SM1.6 Este bit se activa si se intenta convertir un valor no BCD en un valor binario.

SM1.7 Este bit se activa si un valor ASCII no se puede convertir en un valor hexadecimal válido.

SMB0

Curso Autómatas Programables IES San Roque (BADAJOZ)

Page 20: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.9. Marcas especiales.

SMB1

Manual del sistema de automatización S7-200l

506

SMB0: Bits de estadoComo muestra la tabla D-1, SMB0 contiene ocho bits de estado que la CPU S7--200 actualiza alfinal de cada ciclo.

Tabla D-1 Byte de marcas SMB0 (SM0.0 a SM0.7)

Bits SM Descripción (sólo lectura)SM0.0 Este bit siempre está activado.

SM0.1 Este bit se activa en el primer ciclo. Se utiliza p. ej. para llamar una subrutina de inicialización.

SM0.2 Este bit se activa durante un ciclo si se pierden los datos remanentes. Se puede utilizar comomarca de error o como mecanismo para llamar a una secuencia especial de arranque.

SM0.3 Este bit se activa durante un ciclo cuando se pasa a modo RUN tras conectarse laalimentación. Se puede utilizar durante el tiempo de calentamiento de la instalación antes delfuncionamiento normal.

SM0.4 Este bit ofrece un reloj que está activado durante 30 segundos y desactivado durante 30segundos, siendo el tiempo de ciclo de 1 minuto. Ofrece un retardo fácil de utilizar o un reloj de1 minuto.

SM0.5 Este bit ofrece un reloj que está activado durante 0,5 segundos y desactivado durante 0,5segundos, siendo el tiempo de ciclo de 1 segundo. Ofrece un retardo fácil de utilizar o un relojde 1 segundo.

SM0.6 Este bit es un reloj que está activado en un ciclo y desactivado en el ciclo siguiente. Se puedeutilizar como entrada de contaje de ciclos.

SM0.7 Este bit indica la posición del selector de modos de operación (OFF = TERM; ON = RUN). Si elbit se utiliza para habilitar el modo Freeport cuando el selector esté en posición RUN, se podráhabilitar la comunicación normal con la programadora cambiando el selector a TERM.

SMB1: Bits de estadoComo muestra la tabla D-2, SMB1 contiene varios indicadores de los posibles errores.Estos bits son activados y desactivados por ciertas operaciones durante el tiempo de ejecución.

Tabla D-2 Byte de marcas SMB1 (SM1.0 a SM1.7)Bits SM Descripción (sólo lectura)

SM1.0 Este bit se activa al ejecutarse ciertas operaciones si el resultado lógico es cero.SM1.1 Este bit se activa al ejecutarse ciertas operaciones si se produce un desbordamiento o si se

detecta un valor numérico no válido.

SM1.2 Este bit se activa si el resultado de una operación aritmética es negativo.

SM1.3 Este bit se activa si se intenta dividir por cero.SM1.4 Este bit se activa si la operación Registrar valor en tabla intenta sobrepasar el límite de llenado

de la tabla.

SM1.5 Este bit se activa si las operaciones FIFO o LIFO intentan leer de una tabla vacía.SM1.6 Este bit se activa si se intenta convertir un valor no BCD en un valor binario.

SM1.7 Este bit se activa si un valor ASCII no se puede convertir en un valor hexadecimal válido.

Manual del sistema de automatización S7-200l

510

SMW22 a SMW26: Tiempos de cicloComo muestra la tabla D-9, las marcas especiales SMW22, SMW24, y SMW26 informan sobre eltiempo de ciclo. Permiten leer el último tiempo de ciclo, así como los tiempos de ciclo mínimo ymáximo.

Tabla D-9 Palabras de marcas SMW22 a SMW26Palabra demarcas

Descripción (sólo lectura)

SMW22 Tiempo del último ciclo en milisegundos.

SMW24 Tiempo de ciclo mínimo en milisegundos desde que inició el modo RUN.

SMW26 Tiempo de ciclo máximo en milisegundos desde que inició el modo RUN.

SMB28 y SMB29: Potenciómetros analógicosComo muestra la tabla D-10, SMB28 almacena el valor digital que representa la posición delpotenciómetro analógico 0. SMB29 almacena el valor digital que representa la posición delpotenciómetro analógico 1.

Tabla D-10 Bytes de marcas SMB28 y SMB29Byte SM Descripción (sólo lectura)

SMB28 Este byte almacena el valor leído del potenciómetro analógico 0. El valor se actualiza unavez por ciclo en STOP/RUN.

SMB29 Este byte almacena el valor leído del potenciómetro analógico 1. El valor se actualiza unavez por ciclo en STOP/RUN.

SMB30 y SMB130: Registros de control del modo FreeportSMB30 y SMB130 controlan la comunicación Freeport en los puertos 0 y 1, respectivamente.SMB30 y SMB130 son marcas de lectura y escritura. Como muestra la tabla D-11, estos bytesconfiguran la comunicación Freeport en los respectivos puertos y permiten seleccionar si se debeasistir el modo Freeport o el protocolo de sistema.

Tabla D-11 Bytes de marcas SMB30Puerto 0 Puerto 1 Descripción

Formato deSMB30

Formato deSMB130

Byte de control del modo Freeport

p p d b b b m m

LSB0

MSB7

SM30.0 ySM30.1

SM130.0 ySM130.1

mm: Selección de protocolo 00 =Protocolo de interfaz punto a punto(PPI/modo esclavo)01 =Protocolo Freeport10 =PPI/modo maestro11 =Reservado (cambia al ajuste estándar

PPI/modo esclavo)Nota: Si se selecciona el código mm = 10 (maestro PPI), el S7--200 pasará aser una estación maestra en la red, permitiendo que se ejecuten lasoperaciones NETR y NETW. Los bits 2 a 7 se ignoran en el modo PPI.

SM30.2 aSM30.4

SM130.2 aSM130.4

bbb: Velocidades de transferencia Freeport000 =38.400 bit/s 100 =2.400 bit/s001 =19.200 bit/s 101 =1.200 bit/s010 =9.600 bit/s 110 =115.200 bit/s011 =4.800 bit/s 111 =57.600 bit/s

SM30.5 SM130.5 d: Bits de datos por carácter 0 =8 bits por carácter1 =7 bits por carácter

SM30.6 ySM30.7

SM130.6 ySM130.7

pp: Selección de paridad 00 =sin paridad 10 =sin paridad01 =paridad par 11 =paridad impar

SMB28SMB29

Curso Autómatas Programables IES San Roque (BADAJOZ)

Page 21: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.9. Marcas especiales.

En el S7-200 no existe el área de marcas especiales. Éstas se han distribuido en múltiples localizaciones, de forma que no hay necesidad específica de disponer de un área concreta de selección y control de áreas especiales. No obstante existen determinadas “marcas de sistema” y “marcas de ciclo” que pueden definirse en las propiedades de la CPU y que actúan de forma similar a las áreas SM del S7-200:

En las propiedades del PLC, en “Marcas de sistema y de ciclo” pueden habilitarse áreas M que posibilitan disponer de bit de primer ciclo (aunque se pueda implementar mediante el OB100), bit de siempre ON o siempre OFF y bits de frecuencias de reloj específicas.

Es importante tener en cuanta que al configurar áreas M con este uso, ya no estarán disponibles como áreas de marcas para relés internos en el uso del PLC.

Curso Autómatas Programables IES San Roque (BADAJOZ)

Page 22: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.2. Elementos básicos de programación en LD / KOP.

José María Delgado Casado

2.9.1. Marcas especiales: potenciómetros analógicos (S7-200).

El S7-200 viene con uno o dos potenciómetros analógicos (dependiendo de CPU) cuyo valor en formato byte es accesible en el área de marcas especiales, en los bytes SMB28 y SMB29.

El valor de los potenciómetros puede ser empleado para ajustes externos sin necesidad de tener que realizar modificaciones en el programa de usuarios (ajuste de valores de contaje, tiempos de arranque de máquinas, tiempos de proceso o soldadura, modificación de medidas memorizadas en el autómata, etc.).

Dado que los potenciómetros figuran en memoria en formato byte (tienen una resolución de 8 bits o 256 valores), a la hora de realizar ajustes de tiempo es necesario hacerlos pasar por un acumulador para poder realizar los movimientos de datos.

En el ejemplo puede observarse el proceso (aunque se emplean órdenes aún no vistas).

Curso Autómatas Programables IES San Roque (BADAJOZ)

Page 23: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.3. Otras instrucciones de programación en LD / KOP.

José María Delgado Casado

3.1. Comparaciones.

Los bits de comparación permiten comparar áreas de memoria del PLC, activándose o desactivándose si se cumplen las condiciones de comparación. Existen varias comparaciones posibles que pueden realizarse:

La forma de realizar la comparación entre áreas de memoria difiere sustancialmente entre el S7-200 y el S7-1200. Mientras que en el primero, siempre que se realiza una comparación, es necesario especificar el formato de la misma, resultando de esta forma comparaciones en formato byte, entero, doble entero y real, en el caso del S7-1200 se simplifica la operación, implementando una sola función de comparación en la que será necesario escoger el tipo de dato a comparar entre los implementados por el S7-1200.

Figura 1.78. Tipos de comparaciones.

Figura 1.77. Ejemplo de comparación.

7.1.9. Marcas especiales.

El área de marcas especiales es un área de sólo lectura, presente en la mayoría de los autómatas de campo bajo diferentes nombres en mapa de memoria, que almacenan datos de funcionamiento del autómata programable, funciones preconfiguradas, bits de estado, etc.

En el caso del S7-200, este área recibe el nombre de SM, y cuenta con un área de memoria específicamente reservada para ciertas operaciones del autómata y que es accesible en modo lectura por el usuario.

! El área SM puede ser accesible en diversos formatos, pero normalmente se lee en formato BIT o formato BYTE. En la tabla resumen de la figura puede verse el tamaño del área de memoria que abarca el área SM.

! Algunos de los bits más relevantes de cara a la programación son los contenidos en SMB0 y SMB1:

TEMA 1. Sistemas automatizados basados en Autómatas Programables 52 IESGarcía Téllez

(Cáceres)CIDA – 2º CFGS SISTEMAS ELÉCTRICOS Y AUTOMATIZADOSAutor: José María Delgado Casado

Curso 2012/2013

IESGarcía Téllez

(Cáceres)

Comparaciones posibles en S7-200Comparaciones posibles en S7-1200

Curso Autómatas Programables IES San Roque (BADAJOZ)

Page 24: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.3. Otras instrucciones de programación en LD / KOP.

José María Delgado Casado

3.1. Comparaciones.

El tipo de dato a comparar es fundamental, ya que obliga a escoger uno u otro bit de comparación de entre las posibilidades que ofrece la CPU.

En el siguiente ejemplo para un S7-200 puede verse cómo se compara, en formato Byte, el valor de un potenciómetro (SMB28) con valores fijos (50 y 150) y se activan o desactivan salidas en función del resultado lógico de la comparación:

En el caso del S7-1200, dado que los potenciómetros no están implementados en el PLC, puede compararse una entrada analógica en formato entero:

Curso Autómatas Programables IES San Roque (BADAJOZ)

Page 25: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.3. Otras instrucciones de programación en LD / KOP.

José María Delgado Casado

3.2. Órdenes de movimiento.

Las órdenes de movimiento o transferencia posibilitan el movimiento de datos entre diferentes áreas de memoria. Es importante tener en cuenta que, aunque se denominen órdenes de movimiento, los datos originales continuarán en el área de memoria de origen.

Curso Autómatas Programables IES San Roque (BADAJOZ)

Las órdenes de movimiento son esenciales para el trabajo de memoria del autómata programable, ya que el procesado de datos obliga en numerosas ocasiones a mover / depositar datos en posiciones de memoria en las que originalmente no estaban.

Estos comandos de transferencia difieren, al igual que ocurría con las comparaciones, entre el S7-200 y el S7-1200. Mientras que en el primero es necesario especificar el formato de los datos a mover, en el segundo puede emplearse un formato genérico.

Las órdenes de movimiento exigen que el formato de datos a la entrada y a la salida (área origen y área destino) sean el mismo: byte, palabra o doble palabra.

En el caso del S7-1200, las órdenes de movimiento (obviando las de tipo tabla) se han sustituido por una única orden (MOVE) en la que además no es necesario la concordancia del tipo de datos, sino que los datos se truncan o llenan valores nulos a necesidad, con la ventaja adicional de poder copiar el área de origen en múltiples localizaciones de destino.

Page 26: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.3. Otras instrucciones de programación en LD / KOP.

José María Delgado Casado

3.2. Órdenes de movimiento.

En los siguientes ejemplos se muestran algunos casos prácticos de empleo de órdenes de movimiento:

Curso Autómatas Programables IES San Roque (BADAJOZ)

Movimiento de valor de un temporizador a un área de memoria en formato W

Movimiento del valor de PI a un área de memoria en formato REAL

Page 27: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.3. Otras instrucciones de programación en LD / KOP.

José María Delgado Casado

3.3. Bloques de organización de programa (S7-200)

Como se ha comentado anteriormente, el S7-200 ejecuta de forma cíclica un bloque de programa, denominado PRINCIPAL. En él va estructurado el programa de usuario. Es posible, no obstante, estructurar el programa de usuario en bloques o subrutinas que se ejecutarán ante una llamada desde el principal.

Curso Autómatas Programables IES San Roque (BADAJOZ)

Las subrutinas son trozo de código de programa que se utilizan para estructurar o dividir el programa en bloques más pequeños, más fáciles de gestionar. Son elementos opcionales del programa (su uso no es ni mucho menos obligado, como ya has podido comprobar hasta este punto), adecuándose para funciones que se deban ejecutar repetidamente.

Así, en vez de tener que escribir la lógica de la función en cada posición del programa principal donde se deba ejecutar esa función, basta con escribirla sólo una vez en una subrutina y llamar a la subrutina desde el programa principal cada vez que sea necesario. Las subrutinas tienen varias ventajas:

- La utilización de subrutinas permite reducir el tamaño total del programa.

- La utilización de subrutinas acorta el tiempo de ciclo, puesto que el código se ha extraído del programa principal. El S7-200 evalúa el código del programa principal en cada ciclo, sin importar si el código se ejecuta o no. Sin embargo, el S7-200 evalúa el código en la subrutina sólo si se llama a ésta. En cambio, no lo evalúa en los ciclos en los queno se llame a la subrutina.

- La utilización de subrutinas crea códigos portátiles. Es posible aislar el código de una función en una subrutina y copiar ésta a otros programas sin necesidad de efectuar cambios o con sólo pocas modificaciones.

- Facilita las tareas de comprobación, eliminación de errores y mantenimiento del programa.

- La CPU también se puede utilizar más eficientemente, invocando el bloque sólo cuando se necesite, en vez de ejecutar todos los bloques en cada ciclo.

- Permite el paso de parámetros desde el programa principal, así como devolver resultados desde la misma al principal.

Page 28: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.3. Otras instrucciones de programación en LD / KOP.

José María Delgado Casado

3.3. Bloques de organización de programa (S7-200)

Es posible insertar hasta 256 subrutinas en el programa de usuario, bien desde el menú edición -> insertar o bien desde la pestaña de subrutinas en la ventana de edición.

Curso Autómatas Programables IES San Roque (BADAJOZ)

Figura 2.23. Insertar Subrutina desde menú Edición.

- O bien insertar la subrutina desde la pestaña inferior de PRINCIPAL, con botón derecho de ratón > Insertar > Subrutina.

Figura 2.24. Insertar Subrutina pestañas.

! Es posible llamar a una subrutina con parámetros (similar a la llamada a funciones con parámetros de entrada / salida de la programación estructurada). Los parámetros se definen en la tabla de variables locales de la subrutina. Estos parámetros deben tener un nombre simbólico (de 23 caracteres como máximo), un tipo de variable y un tipo de datos. Se pueden transferir 16 parámetros a o desde una subrutina.

! El campo “Tipo de variable” en la tabla de variables locales define si la variable se transfiere a la subrutina (IN), a y desde la subrutina (IN_OUT) o desde la subrutina (OUT).

TEMA 1. Sistemas automatizados basados en Autómatas Programables 14 IESGarcía Téllez

(Cáceres)CIDA – 2º CFGS SISTEMAS ELÉCTRICOS Y AUTOMATIZADOSAutor: José María Delgado Casado

Curso 2012/2013

IESGarcía Téllez

(Cáceres)

Figura 2.23. Insertar Subrutina desde menú Edición.

- O bien insertar la subrutina desde la pestaña inferior de PRINCIPAL, con botón derecho de ratón > Insertar > Subrutina.

Figura 2.24. Insertar Subrutina pestañas.

! Es posible llamar a una subrutina con parámetros (similar a la llamada a funciones con parámetros de entrada / salida de la programación estructurada). Los parámetros se definen en la tabla de variables locales de la subrutina. Estos parámetros deben tener un nombre simbólico (de 23 caracteres como máximo), un tipo de variable y un tipo de datos. Se pueden transferir 16 parámetros a o desde una subrutina.

! El campo “Tipo de variable” en la tabla de variables locales define si la variable se transfiere a la subrutina (IN), a y desde la subrutina (IN_OUT) o desde la subrutina (OUT).

TEMA 1. Sistemas automatizados basados en Autómatas Programables 14 IESGarcía Téllez

(Cáceres)CIDA – 2º CFGS SISTEMAS ELÉCTRICOS Y AUTOMATIZADOSAutor: José María Delgado Casado

Curso 2012/2013

IESGarcía Téllez

(Cáceres)

Para la llamada a la subrutina se emplea la orden de llamamiento a subrutina precedida de las condiciones de activación definidas. Sólo podrán llamarse subrutinas que hayan sido previamente creadas.

Una vez llamada, el control del programa pasará a la subrutina, que lo devolverá al principal una vez finalizada o al encontrarse funciones especiales de retorno condicionado (RET).

Page 29: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.3. Otras instrucciones de programación en LD / KOP.

José María Delgado Casado

3.3. Bloques de organización de programa (S7-1200)

En el S7-200, la organización de programa sólo podía realizarse mediante subrutinas, rutinas de interrupción, marcas especiales y órdenes de control de programa (saltos, fines condicionados, etc.).

Curso Autómatas Programables IES San Roque (BADAJOZ)

En el S7-1200 se ha implementado la lógica organizativa de modelos superiores de PLCs como los S7-300 y los S7-400, de forma que existen diferentes bloques de programa, que pueden ser de varios tipos:

Imagen: Siemens

- Bloques de organización (OB): definen la estructura del programa. Existen OBs predefinidos (como el OB1, que es el principal o MAIN, el OB100, que es el de arranque, el OB200, de alarmas cíclicas, etc.) y otros que pueden ser definidos por el usuario.

- Funciones (FC) y bloques de función (FB): Contienen el código de programa correspondiente tareas específicas o combinaciones de parámetros. Cada FC o FB provee parámetros de entrada y salida para compartir datos con el bloque invocante. Un FB utiliza también un bloque de datos asociado (denominado DB instancia) para conservar el estado de valores durante la ejecución que pueden utilizar otros bloques del programa.

- Bloques de datos (DB): almacenan datos que pueden ser utilizados por los bloques del programa.

Page 30: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

UD3. Lenguaje de programación y set de instrucciones.3. Otras instrucciones de programación en LD / KOP.

José María Delgado Casado

3.3. Bloques de organización de programa (S7-200 y S7-1200)

Como puede observarse, la estructura de programa cambia sustancialmente entre el S7-200 y el S7-1200.

En el primero existe un único bloque principal (MAIN) desde el que se realizan llamadas a subrutinas e interrupciones. A su vez, desde cada una de estas pueden realizarse llamadas a nuevas subrutinas e interrupciones, debiendo posteriormente devolver el control al bloque principal.

Curso Autómatas Programables IES San Roque (BADAJOZ)

En el caso del S7-1200, el OB1 o principal toma el control del programa tras la rutina de arranque (OB100) y puede intercambiar datos con bloques de datos globales (accesibles desde cualquier elemento de programa), y realizar llamadas a funciones (FC) o bloques de función (FB). Estos últimos además podrán intercambiar datos con bloques de datos de instancia (accesibles únicamente desde esa FB).

Page 31: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

CPR de BadajozCurso 2012 /2013

Curso Autómatas Programables IES San Roque (BADAJOZ)José María Delgado Casado

José María Delgado Casado

@JM_Delgado

[email protected]

www.elec2.es

http://www.youtube.com/jmardelc

http://www.slideshare.net/Jmardelc

http://pinterest.com/jmardelc/

Podéis encontrarme en:

http://magnetic.tumblr.com/

José María Delgado Casado

Page 32: Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos

CPR de BadajozCurso 2012 /2013

Curso Autómatas Programables IES San Roque (BADAJOZ)José María Delgado Casado

Todo el material contenido y generado en este documento, excepto aquellas imágenes que pudieran tener licencia copyright y que se han empleado con fines educativos, están licenciados bajo Creative Commons CC BY-NC-SA 3.0 ES.