Tema 19. Inmunología y el sistema inmunitario 2024
Unidad 3 - Autómatas Programables en las Instalaciones Térmicas y de Fluidos
1. 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)
2. UD3. Lenguaje de programación y set de instrucciones.
1.Introducción al lenguaje LD /KOP.
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.
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.
Network 1 ó SEGMENTO 1
BARRA DE RED
Network 2 ó SEGMENTO 2
Network 3 ó SEGMENTO 3
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
3. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
2.1. Contactos.
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.2. Bobinas
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.
Las bobinas son los últimos elementos en cada barra de red, no pudiendo estar en posición intermedia (excepto en S7-1200).
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
4. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
2.3. Funciones SET / RESET.
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.
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.
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
5. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
2.4. Temporizadores.
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.
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.
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
6. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
2.4. Temporizadores.
En el siguiente ejemplo del S7-200 puede observarse el funcionamiento de un temporizador al trabajo:
!
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
7. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
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.
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
8. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
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.
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
9. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
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.
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
10. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
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
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
11. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
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.
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
12. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
2.5. Contadores.
En el siguiente ejemplo del S7-1200 puede observarse el funcionamiento de un contador incremental y su diagrama asociado:
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
13. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
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).
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
14. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
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.
Curso Autómatas Programables
X
IES San Roque (BADAJOZ)
José María Delgado Casado
15. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
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)
José María Delgado Casado
16. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
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)
José María Delgado Casado
17. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
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)
José María Delgado Casado
18. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
Figura 1.75. Realimentación por contactos.
2.8. Operaciones de memoria y uso de marcas.
El empleo de marcas internas, también denominadas memorias o bits internos, tiene un comportamiento similar al
El área de marcas del PLC (denominadasauxiliares en la lógica cableada. De estaoforma,internos),almacenar estados intermedios de memoria de los relés auxiliares en la lógica
de los relés marcas internas, relés internos bits es posible tiene un comportamiento similar al (al
cableada. De esta forma, es posible almacenar relés auxiliares) para usarlos a conveniencia en la activación / desactivación de salidas físicas, usarlos a conveniencia en la
igual que hacen los estados intermedios de memoria (al igual que hacen los relés auxiliares) para
activación / desactivación de salidas físicas, activación marcas, temporizadoresmarcas, temporizadores o contadores, o bien para la llamada a funciones.
activación / desactivación de / desactivación de o contadores, o bien para la llamada a funciones.
Figura 1.76. Empleo de marcas internas.
En el ejemplo anterior puede verse 7.1.8. Órdenes de comparación. física a través de un relé interno (marca interna), con el que se actúe de forma similar a como
cómo se alimenta una salida
se hacía en el ejemplo anterior sobre la propia salida.
Las operaciones de comparación se utilizan para comparar dos valores. Las posibilidades son:
El área de marcas (M) tiene un tamaño específico dependiendo del PLC.
IN1 = IN2!
IN1 >= IN2!
IN1 <= IN2
S7-200 IN1 > IN2!
IN1 < IN2!
IN1 <> IN2
S7-1200 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:
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
19. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
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.
Manual del sistema de automatización S7-200l
SMB0: Bits de estado
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
Como muestra la tabla D-1, SMB0 contiene ocho bits de estado que la CPU S7--200 actualiza al
el tamaño del área de memoria que abarca el área SM.
final de cada ciclo.
Algunos bytes y bits del área SM son de especial uso y relevancia:
Tabla D-1 Byte de marcas SMB0 (SM0.0 a SM0.7)
SMB0 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 como
marca 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 la
alimentación. Se puede utilizar durante el tiempo de calentamiento de la instalación antes del
funcionamiento normal.
SM0.4 Este bit ofrece un reloj que está activado durante 30 segundos y desactivado durante 30
segundos, siendo el tiempo de ciclo de 1 minuto. Ofrece un retardo fácil de utilizar o un reloj de
1 minuto.
SM0.5 Este bit ofrece un reloj que está activado durante 0,5 segundos y desactivado durante 0,5
segundos, siendo el tiempo de ciclo de 1 segundo. Ofrece un retardo fácil de utilizar o un reloj
de 1 segundo.
SM0.6 Este bit es un reloj que está activado en un ciclo y desactivado en el ciclo siguiente. Se puede
utilizar 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 el
bit se utiliza para habilitar el modo Freeport cuando el selector esté en posición RUN, se podrá
Curso Autómatas Programables habilitar la comunicación normal con la programadora cambiando el selector a TERM.
IES San Roque (BADAJOZ)
José María Delgado Casado
20. Manual del sistema de automatización S7-200l
UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
SMB1: Bits de estado
SMW22 amuestra la tablaTiempos de ciclo indicadores de los posibles errores.
Como SMW26: D-2, SMB1 contiene varios
2.9. Marcas especiales. Estos bits son activados y desactivados por ciertas operaciones durante el tiempo de ejecución.
Como muestra la tabla D-9, las marcas especiales SMW22, SMW24, y SMW26 informan sobre el
tiempo de ciclo. Permiten leer el último tiempo de ciclo, así como los tiempos de ciclo mínimo y
Tabla D-2
máximo. Byte de marcas SMB1 (SM1.0 a SM1.7)
SMB1 Bits SM Descripción (sólo lectura)
Tabla D-9
SM1.0 Palabras se activa alSMW22 a SMW26 operaciones si el resultado lógico es cero.
Este bit de marcas ejecutarse ciertas
Palabra de Descripción (sólo lectura)
SM1.1 Este bit se activa al ejecutarse ciertas operaciones si se produce un desbordamiento o si se
marcas
detecta un valor numérico no válido.
SMW22 Tiempo del último ciclo en milisegundos.
SM1.2 Este bit se activa si el resultado de una operación aritmética es negativo.
SMW24 Tiempo de ciclo mínimo en milisegundos desde que inició el modo RUN.
SM1.3 Este bit se activa si se intenta dividir por cero.
SMW26 Tiempo de ciclo máximo en milisegundos desde que inició el modo RUN.
SM1.4 Este bit se activa si la operación Registrar valor en tabla intenta sobrepasar el límite de llenado
de la tabla.
SMB28 y SMB29: Potenciómetros analógicos de una tabla vacía.
SM1.5 Este bit se activa si las operaciones FIFO o LIFO intentan leer
SM1.6 Este bit se activa si se intenta convertir un valor no BCD en un valor binario.
Como muestra la tabla D-10, SMB28 almacena el valor digital que representa la posición del
potenciómetro analógico 0. SMB29 almacena el valor digital queen un valor hexadecimal válido.
SM1.7 Este bit se activa si un valor ASCII no se puede convertir
representa la posición del
potenciómetro analógico 1.
Tabla D-10 Bytes de marcas SMB28 y SMB29
SMB28 Byte SM Descripción (sólo lectura)
SMB29
SMB28 Este byte almacena el valor leído del potenciómetro analógico 0. El valor se actualiza una
vez por ciclo en STOP/RUN.
SMB29 Este byte almacena el valor leído del potenciómetro analógico 1. El valor se actualiza una
vez por ciclo en STOP/RUN.
SMB30 y SMB130: Registros de control del modo Freeport
506 SMB30 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 bytes
configuran la comunicación Freeport en los respectivos puertos y permiten seleccionar si se debe
asistir el modo Freeport o el protocolo de sistema.
Tabla D-11 Bytes de marcas SMB30
Puerto 0 Puerto 1 Descripción
Formato de Formato de Byte de control del modo Freeport
Curso Autómatas Programables
SMB30 SMB130 MSB LSB
IES San Roque (BADAJOZ) 7 0
José María Delgado Casado p p d b b b m m
21. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
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)
José María Delgado Casado
22. UD3. Lenguaje de programación y set de instrucciones.
2. Elementos básicos de programación en LD / KOP.
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)
José María Delgado Casado
23. UD3. Lenguaje de programación y set de instrucciones.
3. Otras instrucciones de programación en LD / KOP.
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:
Sistemas 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
automatizados basados en Autómatas Programables 52
IES
realiza una comparación, es necesario especificar el formato de la misma, resultando de esta forma comparaciones en formato byte, entero, doble entero y
SISTEMAS ELÉCTRICOS Y AUTOMATIZADOS Curso García Téllez
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
(Cáceres)
a Delgado Casado 2012/2013
comparar entre los implementados por el S7-1200.
Comparaciones posibles en S7-1200
Figura 1.78. Tipos de comparaciones.
Comparaciones posibles en S7-200
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
24. UD3. Lenguaje de programación y set de instrucciones.
3. Otras instrucciones de programación en LD / KOP.
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)
José María Delgado Casado
25. UD3. Lenguaje de programación y set de instrucciones.
3. Otras instrucciones de programación en LD / KOP.
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.
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.
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
26. UD3. Lenguaje de programación y set de instrucciones.
3. Otras instrucciones de programación en LD / KOP.
3.2. Órdenes de movimiento.
En los siguientes ejemplos se muestran algunos casos prácticos de empleo de órdenes de movimiento:
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
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
27. UD3. Lenguaje de programación y set de instrucciones.
3. Otras instrucciones de programación en LD / KOP.
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.
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.
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
28. UD3. Lenguaje de programación y set de instrucciones.
3. Otras instrucciones de programación en LD / KOP. Figura 2.23. Insertar Subrutina desde menú Edición.
3.3. Bloques de organización de programa (S7-200)
- O bien
TEMA 1. Sistemas automatizados basados en Autómatas Programables insertar la subrutina desde la pestaña inferior de PRINCIPAL, con botón derecho de ratón > Ins
14
IES
CIDA – 2º CFGSposible insertar hasta 256 subrutinas en el programa de usuario, bien desde García Téllez
Es SISTEMAS ELÉCTRICOS Y AUTOMATIZADOS Subrutina.
Curso
el menú edición -> insertar o bien desde la pestaña de subrutinas en la
Autor: José ventana de edición.
María Delgado Casado 2012/2013 (Cáceres)
Figura 2.23. Insertar Subrutina desde menú Edición.
Figura 2.24. Insertar Subrutina pestañas.
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
O biensubrutinas subrutina desde la previamente creadas.
insertar la que hayan sido pestaña inferior de PRINCIPAL, con botón derecho de ratón > Insertar >
! Es posible llamar a una subrutina con parámetros (similar a la llamada a funciones con paráme
Subrutina.
entrada / salida de la programación estructurada). Los parámetros se definen en la tabla de variables locale
subrutina. Estos parámetros deben tener un nombre simbólico (de 23 caracteres como máximo), un tipo de varia
tipo de datos. Se pueden transferir 16 parámetros a o desde una subrutina.
Una vez llamada, el control del programa pasará a la subrutina, que lo devolverá al principal tablavez finalizada o al encontrarse funciones especiales de a la s
! El campo “Tipo de variable” en la una de variables locales define si la variable se transfiere
retorno condicionado (RET). (IN), a y desde la subrutina (IN_OUT) o desde la subrutina (OUT).
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
29. UD3. Lenguaje de programación y set de instrucciones.
3. Otras instrucciones de programación en LD / KOP.
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.).
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:
- 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.
Imagen: Siemens
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
30. UD3. Lenguaje de programación y set de instrucciones.
3. Otras instrucciones de programación en LD / KOP.
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.
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).
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
31. CPR de Badajoz
Curso 2012 /2013
Podéis encontrarme en:
@JM_Delgado
José María Delgado Casado
jmdelgado@elec2.es
www.elec2.es
http://www.youtube.com/jmardelc
http://www.slideshare.net/Jmardelc
http://pinterest.com/jmardelc/
http://magnetic.tumblr.com/
José María Delgado Casado
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado
32. CPR de Badajoz
Curso 2012 /2013
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.
Curso Autómatas Programables
IES San Roque (BADAJOZ)
José María Delgado Casado