You are on page 1of 24

e A P TU L o

Sistema STEP7
de programación
de autómatas
programables

~ Su ma r i o B
2.1. Introducción
2.2. Característic as generales de STEP7
2.2. 1. T ipos de dat os
2.2.2. Unida des de orga nizació n del program a
2.2.3. Variabl es
2.3. Len guaje de lista de instruccione s (AWL ) de STEP7
2.3. 1. Co nce ptos ge nera les
2.3.2 . Identificación de variables
2.3.3. Instru ccion es
2.3.4 . Instrucciones qu e op eran co n variables lóg icas
2.3.5. Instru cciones qu e opera n co n co mbinacio nes bin arias
2.3.6. Instru ccion es de tempori zaci ón
2.3.7. Instru ccion es de co ntaj e
2.3.8. Instruc cion es de co ntro l de l prog ra ma
2.4. Len guaj e de esquema de contactos (KOP) de STEP7
2.4. 1. Co ncep tos ge nera les
2.4 .2. Identi ficación de variables
2.4 .3. Operac iones co n co ntac tos
2.4.4. Operac iones co n co ntac tos y bloqu es
2.5. Lenguaje de diagrama de funcion es (FU P) de STEP7
2.5. 1. Co nce ptos ge nera les
2.5.2. Identificación de variabl es
2.5.3. Funciones lógicas
2.5.4. O perac iones de mem or ización
2.5.5. Ope racio nes co n flanc os
2.5.6. O perac iones de tempori zación
2.5.7. Operac iones de co ntaje
2.6. Lenguaje de dia grama funcion al de secuencias (S7-GR APH) de STEP7
Bibliografía

© ITES-Paraninfo 95
AUTÓMATAS PROGRAMABLES. ENTORNO Y APLICACIONES

2.1. INTRODUCCiÓN
La program aci ón de un autó mata programable o PLC (Pro grammable Lo g i c Con tro l l er )
co nsiste e n el establec imiento de una secue nc ia ord enada de instrucc io nes qu e resu elv en una
determinada tarea de control. Dicha sec ue ncia es tablece la rela ción e ntre las dist inta s variables
lógica s y constituye el program a del autómata pro gramabl e.
En e l Capítulo 1 se demuestra qu e a cada aut ómata pro gramable le corresponde un determi -
nado len guaj e máquina de acu erdo co n su estru ctura físic a (hard wa re). Igu alm ent e se demuestra
en dich o ca pítulo qu e es posible pro gramar un autómata pro gramable mediante e l es tablec imien-
to dir ecto de una se cu encia de instru cciones en len guaje máquina. Pero es indudable qu e es te
len guaj e es tá bastante alejado del ut ilizado por el técnico esp eci ali zado para es pec ificar el fun -
cio na miento de un sistema de control. Por ello, los fabri cantes de aut ómatas pro gramabl es han
de sarrollado, para sus eq uipos, di verso s len guaj es de pro gramaci ón que co ns tituyen un sistema
de pro gramación. El desarrollo de dichos len guaj es ha sido reali zado por cad a fabricant e de for-
ma indep endi ent e y, aunque tod os ellos tienen una base común , so n diferent es de un fabri cant e a
otro y se denominan len guajes propietarios.
La ex istencia de múltiples sistemas de pro gramac ión propi etarios difer ent es e incompatibl es
entre sí, propició e l desa rrollo de un sistema de pro gram ación normali zad o por parte de la Co-
mi sión Electrotécnica Internacional (l EC ). En la actualidad coex isten el siste ma de programa-
ción normalizado y los propietarios. Por ello, a continuació n se describe uno de los siste mas de
pro gramaci ón propi et arios co n may or implantación indu strial , qu e es el STEP7 de Si em en s. En
el Ca pítulo 3 se describe el siste ma de pro gramaci ón normali zad o lEC 1131- 3 [UN E 97].

2.2. CARACTERíSTICAS GENERALES DE STEP7

El sistema de programación ST EP7 es tá formado por do s tip os de len guajes de pro gramaci ón
diferent es:

- Lenguaj es literales
Las instru cciones de es te tipo de len guajes es tán formadas por let ras, núm ero s y sím bolos es pe-
ciales . So n len guaj es de este tipo:
• El len guaje de lista de instru cciones qu e en ST EP7 se denomina ST L (de l inglé s S ta te -
men t Lis t) o AWL (de l alem án " Anweisungsli ste " ) qu e sig nifica n preci sament e " Lista
de Instrucci on es ". Es el len guaj e ensamblador de ST EP7 [BERG 98 ].
• El len guaj e de texto estructurado qu e en ST EP7 se den omina SCL (de l inglés S t r u c -
t ured Cont r o l Langua g e) . Es un len guaj e de alto nivel similar al Pascal qu e cumple la
norma lE C 11 31 -3. Se utili za para la pro gram ación de tarea s compl eja s e n la s qu e es ne-
ces ario reali za r un proc esami ent o de gran cantidad de datos.

Le nguajes gráficos
Son len guaj es en los qu e las instrucci on es se representan mediante figuras geo mé tricas. So n len -
guajes ele es te tipo:
• El len gu aje de esquema de contactos qu e en STEP7 se den omina LAD (de l inglés La d d e r
Di a g r am) o KOP (abreviatura del alemán " Ko ntakts plan " ).

96 © ITES-Paraninfo
SISTEMA STEP7 DE PROGRAMACiÓN DE AUTÓMATAS PROGRAMABLE S

• El lenguaje de diagrama de fun ci ones que en STEP7 se denomina FBD (del inglés Func-
t ion Block Di a gram) o FUP (abreviatura del alemán " Funktions Plan" ).
• El Diagrama fun cional de sec uencias [S e q u e n t i a l Fun cti on Chart SfC) ] que en
STE P7 se denomina S7-GRAPH, cuyo principal antecedente es el lenguaje GRAFCET
(Grafo ele control etapa-transición) desarrollado por la Asociación Francesa para la Ciber-
nética Económica y Técnica (AFCET).
• El Diagrama de transici án de estados S7-H iG raph y el lenguaje de conexión de bloqu es
CFC similar al diagrama de funciones, en el que cada bloque es a su vez un programa.
Todos estos lenguajes facilitan la labor de programación del usuario y la elección de uno u
otro depende ele su experiencia y conocimientos (en Electrónica Digital, Informática, realización
de sistemas de control con relés, etc.), de la forma en que se especifica el problema de control a
resolver y de la complej idad e1el mismo.
En este capítulo se analizan en primer lugar los principales lenguajes de programación defi-
nidos en STE P7 para los autómatas programables S7-300 y S7-400 de Siemens. Dichos lengua-
jes se utilizan, a través de un conj unto de ejemplos, para formar al lector en el diseño de siste-
mas secuenciales de control basados en un autómata programabl e. En el Capítulo 4 se describen
diversos métodos de diseño de sistemas secuenciales de control que utilizan los e1iferentes len-
guajes del sistema de programación STEP7.
Aunque los distintos lenguajes del sistema STEP7 presentan diferencias notables entre ellos,
existe un conj unto de elementos comunes a toelos que es conveniente conocer previamente. A
continuació n se analizan los más importantes. Para una referencia completa, consúltense los ma-
nuales suministrados por el fabricante (SIEM 04].

2.2.1. Tipos de datos

Los elatos constituyen la información básica con la que se realizan operac iones. En STEP7 se
definen los tipos de datos que se indican en la Tabla 2. 1.

2.2.2. Unidades de organ ización del programa


Como se indica en el Capítulo 1, un autómata program able se utiliza para controlar una máquina
o un proceso determinado. Para ello es necesario conocer las especificaciones concretas y, a partir
ele ellas, realizar un proyecto o aplicación que da como resultado un conj unto de tareas que una
vez programadas en el autómata programable hacen que se comporte ele la manera prevista.
En las aplicaciones sencillas, como las descritas en el Apartado 1.3.2.4 del Capítulo 1, el
proyecto se realiza mediante una única tarea que se encarga de la ejec ución cíclica e1e l progra-
ma. Cuando la aplicación es compleja, es preciso programar varias tareas que se encarguen de la
ejec ución de una o más unidades de organización del programa, denominadas " E laques" , que
son instrucciones o conjuntos de instrucciones relacionadas entre sí que proporcionan una deter-
minada funcionalidad. Se consigue, así, una división del programa en partes fácilmente com-
prensibles y una mayor facilidad para su puesta en marcha.
En STE P7 existen tres tipos de unidades de organización e1el programa, que son los bloques
de organización, las funciones y los bloques funcionales. A continuación se analiza cada uno de
ellos.

© ITES-Paraninfo 97
AUTÓMATAS PROGRAMABLES. ENTORNO Y APLICACIONES

Tabla 2.1. Prin cip al es tip os de dat os del siste ma de pro gr am aci ón STEP7.

Denominación Bits Ejemplo Descripción

BOOL 1 FALSE o TRUE Vari abl e binaria o lógi ca (B o o l e a n)


INT 16 - 32768 .. 32767 Núm ero ente ro co n sig no ( I n t eg e r)
31 31
DINT 32 _2 •• +2 - 1 Número ente ro do ble con sig no
REAL 32 0.4560 Núm ero real
BYTE 8 O.. 255 Conjunto de 8 bits
WORD 16 O.. 65535 Conjunto de 16 bits
DWORD 32 0 .. 23 2 - 1 Conjunto de 32 bits (Do u b l e Word )
TIME 32 T# 5d4h2m 38s3.5m s Duración
DATE 16 D#2002-01-01 Fecha
TIME _OF_DAY 32 TOD# 15:35:08.36 Hora del día
S5TIME 16 S5T #2h2m38s Du ración
DATE-AN D_TIM E 64 DT# 2002-01-01-15:35:08.36 Fech a y ho ra
CHAR 8 'A' Carácte r
STRING 'AUTOMATA' Cadena de cara ct eres

Bloques de organización

En las ap licaciones de los autó matas progr am ables, hay determ inad as tareas qu e deben se r eje-
cutadas peri ódi cam en te o cua ndo se producen determinados sucesos. Para faci litar al usu ario la
tarea de desarro llo del program a, STEP7 pone a su disposición un co nj unto de bloques que se
ejecu tan en las circ unsta ncia s ci tadas. Dich os bloqu es rec ibe n el nombre de bloques de organi-
zación porque contribuye n a la estruct uración del program a de co ntro l, tal co mo se ind ica en e l
Capítulo 4 . Entre los bloqu es de organi zac ión más util izados ca be cita r e l bloque O B l que se
ejec uta cíclicame nte y el bloqu e O B l 00 qu e se ejecuta al pasar e l autó ma ta program abl e de la
situació n de paro ( st op) a la de ejecució n (run) .

Funciones

Las funciones , denomin ad as FC (abrev iatura de F un c t i on) , son uni dad es de org anizació n del
program a qu e tien en co mo obje tivo:

• Agrupar las instrucciones qu e se tien en que ejec utar varias veces a lo largo del progr ama.
• Subd ividir el program a en partes fác ilme nte co mprensi bles.

Su invocación se reali za en los len gu ajes literale s de STEP7 mediant e una ope rac ió n es pecí-
fica de llam ada. Una fun ción es una un idad de organizació n del pro gram a qu e pu ed e ac tua r de
do s formas distintas:

98 © ITES-Paraninfo
SISTEMA STEP7 DE PROGRAMACiÓN DE AUTÓMATAS PROGRAMABLES

Prop or ci o nan do un resultad o e n fo rma de parám e tro qu e pued e se r utilizado fuer a de la


propi a fun c ión e n e l resto del progr am a.
Co mo un a e ntida d ind epe nd iente qu e faci lita la división del prog ram a e n partes fác il-
men te co m pre ns ibles.
Pa ra q ue e l usu ario no tcn ga qu e di señ ar sus propi as fu nciones para rea lizar las tarea s más
habituales, STE P7 incorpor a un amplio co nj unto de o pe rac io nes (Tab la 2.2), que co ns tituye n
func io nes pred efinidas. So n ejem plo de o pe rac io nes, A O O (s uma), A BS (cá lcu lo del va lo r abso-
lut o), S IN (se no), C OS (cose no), e tc. El nom bre de alg unas o pe rac io nes d ifier e de un lenguaje a
otro, ta l com o se ind ica en la T abla 2.2. La for ma de utilizar las OPC /'{/ciO IlC.I' y las [uncio nes se
desc ribe e n ca da un o de los le ngu ajes e n los ap art ados correspondie ntes.
En a lg una s o pe rac io nes de las mostradas e n la T abl a 2.2 es necesar io indi car e l tam añ o del
o pera ndo, qu e pued e ser I (e ntero) , O (e ntero dobl e) o R (rea l).

Bloques funcionales

U n bloque func io na l, den ominado FB (acró nimo de Fun c t i on Bl o c k), re prese nta un a lgoritmo
q ue pued e se r utiliza do e n nu me rosos s iste mas de co ntro l y co nst ituye una uni dad de orga niza -
c ió n de l pro g ra ma q ue, a l se r ejecutada, pro porci o na un a o más var iab les de salida. S u co mpo r-
tam ien to se puede a prox ima r medi ant e e l co nce pto de "caja neg ra " ( B l a ck Box) q ue func io-
na de un a fo rm a pe rfectamente de finida . Se carac teriza po r poseer varia bles de es tado inte rn o
qu e pu ed en a lmace na r res ulta dos par ci a les . Po r e llo s ie m pre tien e asoc ia do un bloq ue de da tos
(O B) .
Los bl oques func io na les pu ed en real izar una fu nc ió n " clás ica", co mo por eje m p lo un
bies ta b le, o una funció n definida por e l usua rio , co mo por eje m plo un bu c le de co ntro l de
tempe rat ura .

2.2.3. Variab les

Las va riables co ns tituye n la inform aci ón de los termin ales de e ntrada/salida de un a utó ma ta pro -
g ra mable o la co nte nida e n un a posici ón de su mem oria inte rna .
Las va riables pued en es ta r pred efinidas por e l fabri cant e o, e n ca so co ntrar io, se r definid as
(D eclare) por e l pro g ra mado r. Las variabl es predefinid as es tá n es ta blec idas e n el len gu aj e y e l
pro gr am ad or pued e utili zarl as e n c ua lq uier punto del pr ogr am a. Un a variable defin ida por e l
program ador pued e se r accesible desd e c ua lq uier punto del progra ma o sola me nte dent ro de la
uni dad de o rgan izaci ó n e n la que se define. En el primer ca so es g lobal y e n e l segu ndo ca so es
local.

2.3. LENGUAJE DE LISTA DE INSTRUCCIONES (AW L) DE STEP7

2.3.1. Concept os generales

El len gu aj e de lista de instru cci on es (A W L) de STE P7 co ns is te e n un conj unto de có digos si m-


bóli cos, ca da un o de los c ua les co rres po nde a un a o más o pe rac io nes o instru cc ion es e n le ngu aj e
máqu ina.

© ITES-Paraninfo 99
AUTÓMATAS PROGRAMABLES. ENTORNO Y APLICACIONES

Tabla 2.2. Ope racion es incorporadas en STEP7.

al Operaciones numéricas de un operando

ABS Valor absoluto


SOR Elevar al cuadrado
SORT Raíz cuadrada
LN Logaritmo natural
EXP Exponencial natural
SIN Seno de un ángulo en radianes
COS Coseno de un ángulo en radianes
TAN Tangente de un ángulo en radian es
ASIN Arcoseno de un ángulo
ACOS Arcocoseno de un áng ulo
ATAN Arcotangente de un ángulo

b) Operaciones aritméticas (de dos o más operandos)

Lenguaje FUP Lenguaje AWL


ADD_I +1 Suma números enteros
MULI *1 Multiplicar números ente ros
Aritméticas (de dos operandos)
SUB_I - 1 Resta números enteros
DIV_I /1 Divide números enteros
MOD Calcula el resto de división (Módulo)
ADD_D +D Suma enteros dobles
ADD _R +R Suma números reale s

el Desplazamiento y rotación

Lenguaje FUP Lenguaje AWL


SHL SL Desplaza hacia la izquierda
SHR SR Desplaza hacia la derecha
ROR RR Rota hacia la derecha
ROL RL Rota hacia la izquierda

dI Comparación

> Mayor
>= Mayor o igual
-- Igual
< Menor
<= Menor o igual
<> Desigual

100 © ITES-Paraninfo
SISTEMA STEP7 DE PROGRAMACiÓN DE AUTÓMATAS PROGRAMABLES

Por ser la programación mediante códigos simbólicos la que más se aproxima al lenguaje
máquina, está especial mente indicada para usuarios familiarizados con la electrónica digital y
con la informática. Por otra parte, este lenguaje fue el único utilizable con las unidades de pro-
gramación sencillas, que solamente visualizaban una o varias líneas de programa simultánea-
mente.
En sucesivos apartados se analiza la forma de represe ntar las variables y las instrucciones
más usuales del lenguaje AWL de lista de instrucciones de STE P7 que en el Capítulo 4 se utili-
za para diseñar diversos sistemas de control. AWL facilita todos los elementos que se necesitan
para crear un programa de control completo. Contiene un juego de instrucciones formado por
más de 130 instrucciones básicas, así como una gama completa de operandos y su correspon-
diente direccionamiento. Lo mismo se puede decir de la concepción de las funciones y de los
bloques de función, que se utilizan para estructurar los programas de modo claro y fácil de com-
prender.
Para defin ir los nombres de las variables y las distintas instrucciones del sistema STEP7 se
pueden utilizar los códigos simbólicos procedentes de la denominación inglesa de las instruccio-
nes (denominada por Siemens " Internacional") o de la alemana (denominada "S IMATIC").
Las instrucciones que ejec utan las operaciones lógicas básicas de STEP7 no difieren significati-
vamente de las establecidas por la norma lEC l 13 l-3 (descritas en el Capítulo 3) cuando se uti-
liza la denominación internacional y simplemente existen diferencias sintácticas elementales
al utilizar la denominación alemana (que es la que se utiliza en el resto del capítulo). En la
Tabla 2.3 se pueden observar la diferencias.

2.3.2. Identificación de variables

Tal como se indica en el Apartado 2.2.3, según la forma en que se identifican, las variables
pueden ser predefinidas y no predefinidas. En función del tipo de variable, la identificación se
realiza tal como se indica a continuación:

- Variables predefinidas
Son variables definidas en el lenguaje. En STE P7 están predefinid as:
• Variables de entrada E 11.111 . El térm ino E (del alemán "Engang") representa una varia-
ble lógica de entrada y tiene asociado un número 11 que corresponde a la situación del
módulo de entradas y otro número 111 que corresponde a la situación de la variable lógica
dentro del módulo.
• Variables de salida exte rnas A 11 .111 . El término A (del alemán "Augang") representa
una variable lógica de salida y lleva asociados dos números 11 y 111 que tienen la misma
correspondencia que en el caso de las entradas.
• Variables de salida internas M 11.//1. El término M (Ma rca) representa una variable lógi-
ca interna (elemento de memoria) y 11 Y 111 tienen la misma correspondencia que en el caso
de las entradas y salidas.
Las variables predefi nidas pueden ser lógicas (bits) (X en los bits de los bloques de datos
OB), octetos (B) [B ytes (8 bits)], palabras de 16 bits (W) ( Words) y dobles palabras de 32 bits
(OW) (Doubl e Wor ds ), que constituyen datos del siste ma de programación STEP7 (Tabla 2. 1).
En la Tabla 2.4 se resumen los tipos de variables predefinidas de STEP7.

© ITES-Paraninfo 101
AUTÓM ATAS PROGRAMABLES. ENTORNO Y APLICA CIONES

Tabla 2.3. Denom inació n norma lizada lEC, STEP7 ing lesa y STEP7 alem ana,
de las operacion es con va riab les lógi cas.

Normalizada STEP7 inglesa STEP7 alemana


lEC 1131-3 (Int ernacional) (SIM ATIC)

Variables predefi nidas

Entradas I,I X, IB,IW 1, lB, IW, ID E, EB, EW, ED


Salid as Q, QX , QB, QW, QD Q, QB, QW , QD A, A B, AW, AD
Marcas M , M X, M B, MW, MD M, MB , MW, MD M, MB , MW, M D

Operaciones lógicas básicas

Carga inicia l LD AuO U uO


y A ND A U
NO-Y AN DN AN UN
O OR O O
NO-O ORN ON ON
O-exclusiva X OR X X
NO-a-exclusiva XORN XN XN

Operacion es con paréntesis

y A ND( A( U(
NO-Y AN DN { AN{ UN{
O OR{ O{ O{
NO-O ORN{ ON{ ON{
O-exclusiva XOR{ X{ X{
NO-a-exc lus iva XORN{ X N{ XN{
Cerra r par éntesis ) ) )

Term in ar un a cadena lóg ica

Asignar ST = =
Desactivar R R R
Acti var S S S

Op eraciones con flan cos

Flanco nega t ivo LDF, ORF, A NDF FN FN


Flanco pos iti vo LDR, ORR, AN DR FP FP

Para faci litar la la bor del pro gram ad or, se pued e ut ilizar un a tabla de sí m bo los qu e a ca da
variable predefinida le asi gn a un nombre qu e la ide ntifica. Por ejemplo , a la va ria ble A 1.3 se le
pu ed e as ig nar e l nombre M ot or3 .

- Variables no predefinida s

Son va riables a las qu e el program ad or asig na un nombre y un tipo me dia nte una definición
(Declarati on) . E n los diver sos ejemplos de sistemas ele co ntro l secue ncia l qu e se diseñ an e n
e l Ca pí tulo 4 se inc luyen ejemplos de defin ici ón de es te tipo de va ria bles .

102 © ITES -Paraninfo


SISTEMA STEP7 DE PROGRAMACiÓN DE AUTÓMATA S PROGRAMABLES

Tabla 2.4. Variabl es predefinidas del lengu aje de lista de in stru cciones de STEP7.

Entradas Desde EO.O hasta E65535.7


Salidas Desde AO.O hasta A65535 .7
Ma rcas Desde MO.O hasta M65535.7
Temporizadores Desde TO hasta T6553 5
Contadores Desde ZO hasta Z65535

2.3.3. Inst rucciones


Un pro grama en el len guaje de lista de instru cciones (AWL) de STEP7 está co mpues to por una
sec ue ncia de instru cciones. Ca da instru cción está formad a por tres partes o cam po s:
• El ca mpo de " Ope rador" que indica el tipo de op eración que rea liza.
• El campo opcio nal, denominado " M od ificador", qu e influye, de algun a form a, e n el re-
sultado de la operación .
• El ca mpo de " Operando" que es pec ifica la variable o va riables con las que se eje cuta la
operac ió n.
En la Tabl a 2.5 se rep resenta un ejempl o de pro grama en lista de instru cciones. Ade más de
ten er los ca m pos indicad os anter ior me nte, las instru cciones pued en ir precedi das de una etiqueta
ide ntificadora , seg uida del ca rác ter " dos puntos " (:) , que se utiliza en co mbinació n co n las ins-
trucci one s de sa lto que se es tudia n en e l Ap artado 2.3 .8. 1. Ade más , para docum entar el progra-
ma se puede incluir en la instru cc ión un come ntario qu e acl are la acció n ej ecut ada por e lla .
Dicho co me nta rio deb e ir pre ced ido por el cará ct er " /1".

Tabla 2.5. Ejempl o de programa en el lengu aje de list a de in stru cciones de STEP7.

~.;.Et"rque t a, 1 Operador
-: y Modificattor I "ld I
O peran o Comentario

INI CI O: U El . 1 / / PULSADOR DE ARRANQUE


UN M5.1 / / S I N INHIBICIÓN
A2.2 / / ACT I VAR VENT ILADOR

Los pro gr am as en el lengu aje AW L de STE P7 se d iseñan medi ant e la herrami enta de edi-
ci ón de Sieme ns den ominada " Editor KOP / AWL/ FUP" . En la Figura 2. 1 se mu estra, co mo
ejemplo. un program a editado con la citada herrami ent a.
Según las acci ones que ej ec uta n, las instru cci ones se pued en dividi r en cuatro grandes cla-
ses :
• Instru cc iones que operan co n vari abl es bin arias inde pe nd ientes tambi én den omin ad as va-
riabl es lógicas (bits) .
• Instruccione s que operan con co mbinac iones binari as [octetos (Byte s), palabras ( Wor d s)
de 16 bit s o dobl es palabras (D oubl e Wo rds ) de 32 bit s] .
• Instru cciones de temporización y co ntaje.
• Instru cciones de co ntrol qu e permiten modifi car la secuenc ia de ejecució n de las instru c-
ci ones del programa.

© ITES-Paraninfo 103
AUTÓM ATAS PROGRAMABLES. ENTORNO Y APLICACIONES

A continuac ió n se an aliza cada una de e llas .


~:;;: KOP/Al'IlIF lIP . [OB1 .- Ejemplo_STEP7_ AWLISIMATIC 300(1)IC P1I314(1)] EJ@JI~i
o 6.lchivo ~d¡c¡ó n Inserta r 2.iste ma de destino l est 'l.er t:!erramient as Veo.tana Ay~d3 - O' X

D I ¡¿; I '~H ~ I ~
=' JJ , I ~I ....
~ (','lilW l 3 ~ ~ m~ E:J jl l Hlnl, 1IL., I J If.¡ I ~ :
- ..:J ~
1"
I ,
~

061 : Pr o gr ama p r í.nc pa L í Se e j e cu t.a c c .ircene n ce .


í

~~~ Nuevo segment o I ~TE P 7 I n t r odu cc i ón y e je t ci ci os pr ácticos par a explicar l os t undaaentos


+ '.!;H Bloques FB del l en gu a.j e de progr81ll8.c i ón AlJL ( l is ta de instrucci ones)
+ : Qi Bloques Fe r . . ... .. ....
'iJ:j Bloques 5F6 ~.e_~ : _ ..1) : Ope rac ión l ógi ca y
!J:I Bloques 5FC
I,La "L 81ilpara verde" (A 4 . O) s e activa c ua n do e l " pul s a do r 1" (E 0. 1) Y el
rv1ult¡instélncias
"pul s ador 2" (E 0 . 2) es t án s i mul t áne81Jiente e n n i vel " 1"
+ l ibrerías (e s t ad o d e s eñal "1 " = 24 V) .

U E 0. 1
U E 0. 2
= A 4 .0

Se !Jlll. 2 : Oper a c i ón l ógi c a O


I,La "L 81ilpar a r oj a" (A 4.1 ) s e a ctiva c ua n do el " pu lsador 3 " (E 0 . 3 ) o e l
" p u .íaado r 4" (E 0 .4 ) están en m. ve I "1 " (es t ado de s eñ a l "1" = 2 4 V) .

O E 0. 3
ti O E 0. 4
-
I = A 4. 1

jv:
~ Elementos d. . IE :: Eslruclura
<1 I 1>I

~I
.:J
,
II I~ I Lt l ~U\ ~lor A
i 2: Info /\ - 3: Helerencies
-
clllzad~~
- -
- -
JI ~J~fOl mac ió n
--
operendo 11 5: Forzado JI 6: Diagnóslico _ 1
- -

Pulse FI para obtener ayuda . e 'offline 'Abs < 5 .2 IN5 I


Figura 2.1. Ejem pl o de p rog ra ma en el leng uaj e d e li sta de in st ru cci o nes AWL desarr o llado m edia nt e
el ed it or KOP/AWl/FUP d e Sieme ns.

2.3.4. In st r ucci o nes que operan con v ariables lógicas

2.3.4.1. Introd ucción


Las instrucciones q ue operan co n variables lógicas espec ifica n un so lo operando en la propi a
instrucción . Po r ello, dad o q ue la ma yoría de las operac io nes precisan dos operandos, e l otro
es tá memorizado en un biestab le interno (transparente para el program ador ) que se de nomina
RLO (ac ró nimo de Re sult a f L a g i c Operati an) . El resultado de la ope rac ión tamb ién se
almace na en dicho biestab le.
Para explicar de form a se ncilla el papel que j uega el biestab le RLO en la ejecuc ión de
las difere ntes ins trucciones, se uti liza un len guaj e simbó lico de tran sferencia de inform ació n
entre registros qu e suele denominarse RTL (ac ró nimo de Regist er Transfer L angu age)
[HILL 73] [BR EU 75] . Por ejemp lo, la ex pres ión RLO +- E5. J indica qu e el valor lógico de la
variable de entrada E5 . l se introduce e n el biestab le RLO .
Las instruccion es que operan co n varia bles lógicas pueden ser de tres tipos:
• Instr uccio nes de se lecc ió n, ele entrada y salida o de operac ión.

104 © ITES-Paraninfo
SISTEMA STEP7 DE PROGRA MACiÓN DE AUTÓMATAS PROGRAMABLES

• Inst rucciones de mem or ización .


• Inst rucci ones que ope ran co n tlancos.
En la T abla 2.6 se indican es tas instrucc io nes y a co ntinuac ió n se ana liza cada una de ellas.

Tab la 2.6. Inst ruccione s qu e ope ran con va riabl es lógicas de l lengu aje
de lista de instru cciones de STEP7.

Operador Modificador Operando


Descripción

U uO N Variab le lógica (Bo o l e a n) Sele cciona la prim era variable


= N Variab le lógica Actúa sobre una variab le de salida
S Variab le lógica Pone una variable a "1"
T Variable lógica Pone una variab le a "O"
U N, ( Variable lóg ica y lógica
O N, ( Variable lóg ica O lógica
X N, ( Variable lógica O exclusiva
) Evalúa la operación apl azada
NOT RLO Invierte el conteni do del RLO
CLR RLO Pone a cero el RLO
SET RLO Pone a uno el RLO
FP Variable lógica Flanco pos itivo o de sub ida
FN Variable lóg ica Flanco negativo o de bajad a

2.3.4.2. Inst ruccio nes de selección, de entrada y salida o de operación

Estas instrucc iones reali zan alguna de las acc io nes siguie ntes :

• Seleccion an una determin ad a var iab le para utili zarl a co mo opera ndo o co mo objeto de una
acci ón de lectura de un a entrada .
• Re alizan una acci ó n de ac tivació n o de desact ivac ión de un a sa lida.
• Realizan un a determinada op eración co n un a variable lóg ica.
• Inicial izan el RLO.
Las instrucci on es de se lecc ión, de e ntrada y salida o de operac ió n se pued en di vidir en do s
tipos difer ent es qu e se caracte rizan por utilizar o no los paréntesis y se analiza n a continuació n.

Instrucciones sin par éntesis

Las instrucciones lóg icas básicas qu e se describen en es te apartado realizan las operac iones lógi-
cas y (U en STEP7 ), O (O en STEP7 ), O-Exclusi va (X en STEP7 ) y sus respectivas inversa s
NO- y (UN) , NO-O (O N) Y NO -O-excl usiv a (X N) . Medi ante es tas instrucciones se co nsultan y
combinan los niveles lógicos de los op era ndo s que las acom pañan, y se o btiene co mo res ultado
un a var iable lógica de valor I (activada) o O (des ac tivada) , qu e , co mo se ind ica en el apartado
anterior, se almacena en el biesta ble RL O.

© ITES-Paraninfo 105
AUTÓMATAS PROGRAMABLES. ENTORNO Y APLICAC IONES

Como operandos básicos se pueden utilizar las variables predefinidas indicadas en la Ta-
bla 2.4, en la que se indican también sus números máximos. Alguno s tipos de autómatas progra-
mab les de la familia S7-300 j400 no admiten un número tan elevado.
En el Apartado 1.3.2 .2 se pone de manifiesto que , para seleccionar la primera variable que
forma parte de una secuencia de instrucciones, el lengu aje de lista de instruccio nes puede es tar
dotado de instrucciones de carga o carecer de ellas. El le nguaj e STEP7 de Siemens pertenece a
este segundo grupo y, por ello, uti liza para llevar a cabo dicha carga las instrucciones U jUN
(Y lógicajY lógica invertida) u OjON (O lógicaj O lógica invertida).
Las instrucciones de selección, de entrada y sa lida o de operación con variables lógicas que
define STEP7 son las siguientes:

UlUN (Y lógica)

Cada una de estas dos instrucciones tiene dos funciones :


• Seleccionar una variable, es decir, introducir en el RLO la primera variable que forma
parte de una función lógica, de forma directa o inversa, respectivamente. Para que este
comportamiento se produzca debe ir colocada al principio del programa o a continuación
de de terminadas ins trucciones, como por ejemplo las de asignación ( =), puesta a cero (R)
o puesta a uno (S) de una variable, sa lto, etc ., que se anal izan más adelante. A es ta forma
de actuar de las instrucciones U y UN se la suele denominar "Primera consulta" . Por
ejemplo, cuando la ins trucción U E 1.0 está colocada en la posición que se acaba de indi -
car, selecciona la variable lógica de entrada predefinida E 1.0 Y la introduce en el RLO .
• Realizar la operació n lógica Y o su inversa respectivamente entre una variable lógica o
combinación de variables lógicas y la variable especificada en la ins trucción . Por ejemplo,
la secuenc ia de ins trucciones indicada en la columna izqu ierda (A WL) de la Tabla 2.7 da
como resu ltado la funció n E 1.0 · E 1.1 . M 1.7 · A2.3. Para que el lector comprenda fáci l-
mente el resu ltado anterior, en la citada tab la se incluyen dos co lumnas que describen el
comportamiento de cada instrucción mediante un leng uaje RTL y mediante un tex to expli-
cativo.

Tabla 2.7. Secuencia de instrucciones que muestra la uti lización de la operación lóg ica Y.
-, ~RiT(':t
..f-W L
, -,' --'
hl ' ! , .D'rscripción d~1 comportamiento
•t o

UN E1.0 RLO <-E 1,O Selecciona la variabl e de entrada E1.0 invertida


y transfiere su va lor lógi co al RLO
U E1.1 RLO <- RLO· E1.1 Realiza la operación lógica y entre el co ntenido
del RLO y la variab le lógica E1.1, y almacena
el resultado en el RLO
U M1 .7 RLO <- RLO· M1.7 Realiza la operación lógi ca y entre el contenido
de l RLO y la variab le lógica M1. 7, y almacena
el resu ltado en el RLO
U A2.3 RLO <- RLO . A2.3 Realiza la operació n lógica y entre el co nte nido
de l RLO y la variable ló gi ca A2 .3, y almacena
el resu ltado en el RLO. El va lor fina l de l RLO
es igu al a E1.0·E1 .1· M1 .7·A2.3

106 © ITES-Paraninfo
SISTEMA STEP7 DE PROGRAMACiÓN DE AUTÓMATAS PROGRAMABLES

OjON (O lógica )

Cada una de estas dos instrucciones tiene dos funciones:


• Seleccionar la primera variable de una expresión lógica. Para ello introduce su valor, de
forma directa o inversa respectivamente, en el RLO. Para que este comportamiento se pro-
duzca, debe ir co locada al principio del programa o a continuación de determinadas ins-
trucciones, como por eje mplo las de asignación (=), puesta a cero (R) o puesta a uno (S)
de una variable, salto, etc., que se analizan más adelante. A esta forma de actuar de las
instrucciones O y ON se la suele denorninar también " Primera consulta" . Por ejemplo,
cuando la instrucción O A 1.0 está colocada en la posición que se acaba de indicar, selec-
ciona la variable lógica de salida predefinida A 1.0 Y la introduce en el RLO.
• Realizar la operación lógica O o su inversa respectivamente entre una variable lógica o combi-
nación de variables lógicas y la variable especificada en la instrucción. Por ejemplo, la secuen-
cia de instrucciones de la Tabla 2.8 da como resultado la función AS.l + E3. 1 + M7.1 .
En dicha tabla se incluyen dos columnas que describen el comportamiento de cada ins-
trucción en un lenguaje RTL y mediante un texto explicativo.
Tabla 2.8. Secu encia de instruccion es que eje cuta la op eraci ón lógica O.

AWL RTL Descripción del comportamiento

O A5 .1 RLO <- A5.0 Selecciona la v ariable de salida ext ern a A5 .0


y tra nsf iere su valo r lógico al RLO
O E3.1 RLO <- RLO· E3.1 Real iza la op erac ión lóg ica O ent re el co ntenido
de l RLO y E3.1, Y almacena el res u ltad o en
el RLO
O M7 .1 RLO <- RLO· M7.1 Realiza la opera ción lóg ica O ent re el con tenido
del RLO y M7 .1, Y almacen a el resul tado en
el RLO

La instrucción O a continuación de una U realiza la operación lógica O de una variable lógi-


ca con la operación lógica y de las anteriores. Por eje mplo, la secuencia de instrucciones de la
Tabla 2.9 realiza la función EO. S . EO.3 + A 1.5.

Tab la 2.9. Secu en ci a de instrucciones que ejecuta la operación lóg ica O a continu ación de la Y.

U EO.5
U EO.3
O A1.5

De forma similar, la instrucción U a continuación de una instrucción O realiza la operación


lógica y de una variable lógica con la operación lógica O de las instrucciones anteriores. Por
ejemplo, la secuencia de instrucciones de la Tabla 2. 10 realiza la función (EO.S + EO. 3) · A 1.5.

Tab la 2.10 . Secuenci a de instruc ciones qu e ejec uta la ope raci ón lógica y a contin uación de la O.

U EO.5
O EO.3
U A1 .5

© ITES-Paraninfo 107
AUTÓMATAS PROGRAMABLES. ENTORNO Y APLICACIONES

= (Asignación )

Las instrucciones anteriores realizan una determinad a co mbinación lógica pero no actúa n so bre
ninguna variable de salida. Esta instrucc ión actúa sobre la variable lógica de salida (externa o
interna) espec ificada en ella. Por eje mplo, la secuencia:

U E I.O
A2.0

selecc iona en primer lugar la variable de entrada E 1.0 Y transfiere su valor lógico al RLO . A
continuación, la ejecució n de la instrucción = A2.0 hace que el valor almace nado en el biesta-
ble RLO se introduzca en la variable de salida A2.0.
Para asignar el valor inverso del conten ido del RLO a una varia ble de salida, se puede utili-
zar la secuencia a) o la b) indicadas en la Tabl a 2. 11.
En la Tabla 2. 1Ia, la instru cción UN E 1.0 se leccio na el inverso del valor lógico de la varia-
ble de entrada E 1.0 Y lo transfiere al RLO , y la instrucción = A2.0 transfiere el co ntenido del
RLO a la variable de sa lida A2.0. En la Tabla 2. 11b, la instrucción U E 1.0 selecc iona la variab le
de entrada E 1.0 Y transfiere su valor lógico al RLO. Mediante la instrucción NOT se invierte el
co ntenido del RLO y, a continuación, la instrucc ión de asignación = A2.0 hace que el valor
almacenado en el biestable RLO se introduzca en la variable de salida A2.0. La utilización de la
instrucció n NOT permit e invertir el resultado de una secuencia de ope raciones lógicas.

Ta b la 2.11. Secuenc ia de ins tru ccion es qu e asig na n el valor inverso del co ntenido
del RLO a un a varia ble de salid a.

~ U
NOT
E1.a

r.". al b)
A 2.a

Cua lquier secuencia de instruccio nes puede ir seguida de la instrucción de asignac ión. Por
eje mplo, si a continuación de la secue ncia de instrucciones de la Tabla 2.8 se co loca la instru c-
ción = AO. I, se asig na a la variable de salida AO. I el valor de la función AS. I + E3. l + M7. 1,
tal co mo se indica en la Ta bla 2. 12.

Tab la 2.12. Secu en cia de instruccion es qu e asign a la fu nción


lógi ca A5 .1 + E3.1 + M7 .1 a la v ar iabl e Aa.1 .
AWL RH Descripción del comportamiento
O A5.1 RLO <- A5 .1 Sel eccion a la v ari abl e de sali da ext ern a A5.1
O E3.1· RLO <- + E3.1
RLO O lógica ent re A5 .1 y E3.1
O M7.1 RLO <- RLO + M7 .1 O lógica de M7 .1 con el resu lta do de la oper ación
lógica O ant erior
= Aa .1 Aa .1 <- RLO Asi gna a la salida exte rna Aa .1 el resultad o anter io r

Es conveniente resaltar que el contenido del RLO no se modifica al ejecu tarse la instrucción
de asignación ( = ). Esto permit e asignar el resultado de una co mbinació n lógica a varias salidas.

108 © ITES-Paraninfo
SISTEMA STEP7 DE PROGRAMAC iÓN DE AUTÓMATAS PROGRAMAB LES

Para ello. simplemente se colocan las correspondientes instru cciones de asignación una a con -
tinuación de la otra . Por eje mplo. la Tabla 2. 13 muestra un programa que as igna a las varia -
bles de salida AG.O y A7.0 el resu ltado de la operación lóg ica O entre las variables de entrada
E I. I y E9.2.

Tab la 2.13 . Programa q ue asigna a vari as variabl es lógi cas de salida el va lor
de una única operación lóg ica.

O E1.1
O E9.2
A6 .0
A7 .0

Tambi én es necesario indicar que la instrucci ón de asignació n da por finalizada una expre-
sión lógica. Por ello. la primera instrucción U/UN o O/ON situada a conti nuación de ella inicia
una nueva expresión lógica y constituye una instrucción de selección (primera consulta). Un
ejemp lo de ello lo constitu ye la lista de instrucciones de la Tabla 2. 14, que realiza las ecuacio-
nes A4.0 = E 1.0 . ETT y AO.O = A 2.S + EO.3 + MO.7.

Tab la 2.14. Programa en el que U E 1.0 Y U A 2.5 son inst ruccio nes
de selecció n (pri m era consu lta ).

U E1.0 Selecciona la variabl e de entrada E1.0 y transfiere su va lor lógi co al RLO


UN E1.1 Realiza la operac ión lógica y entre el co nte nido de l RLO y el inverso de
la variabl e E1.1, y memoriza el resultado en el RLO
=A 4.0 Asigna a la salida A4 .0 el v al or lóg ico contenido en el RLO. Deb ido a que
es una instrucció n de asignación, la siguiente instrucción de tipo U,
O, etc. , es una instrucción de selección (prim era co nsu lta )
U A2 .5 Selecciona la vari abl e de salida A2 .5 y transfiere su va lor al RLO.
O EO.3 Realiza la operac ión ló gi ca O entre el co ntenido del RLO y la variab le lóg ica
EO.3, y almace na el resu ltado en el RLO
ON M7.0 Realiza la operación ló gica O entre el contenid o del RLO y el inverso de
la var iab le lógica M7.0 y almacena el resultado en el RLO
AO.O Asigna a la sal ida extern a AO.O el resu ltado ante rior

X (O-exclusiva, " e Xc l usi v e OR")

Realiza la operaci ón lógica O-exclus iva entre una variab le lógica o combinaci ón de variab les
lógicas y la variable especificada en la instrucción . Por ejemplo, la secuencia de instruccion es
de la Tab la 2. 1S da como resultado la ecuación A 1.1 = (EO.O· EO. I) E8 A 1.3.

Tab la 2.15. Secuencia de instrucc iones q ue eje cut a la opera ción lógi ca O-exclus iva .

UN EO .O Selecciona la variab le de entrad a EO.O invert ida


U EO.1 y lógica entre EO.O y EO.1
X A1.3 O-exc lu siva de A 1.3 con el producto lógico EO.O · EO. 1
A1.1 Asigna a la salida externa A 1.1 el resu ltado anterior

© ITES-Paraninfo 109
AUTÓMATAS PROGRAMABLES. ENTORNO Y APLICA CIONES

XN (O-e xclusiva invertida)

Realiza la operación lógica O-exclusiva entre una variable o combinación de variables y la in-
versa de la variable especificada en la instrucción. El lector puede analizar la secuencia de ins-
trucciones de la Tabla 2. 16 y deducir que realiza la ecuación M l A = (A 1.6· EO.3) E8 E9.2.

Tabla 2.16 . Secu encia de in strucciones que ejecut a la operación lógica O-exclusiva invertid a.

U A1 .6
UN EO.3
XN E9.2
M1.4

Instrucciones con paréntesis

En algunas aplicaciones es necesario realizar una operación lógica O o Y entre dos expresiones
complejas. Un eje mplo es la ecuación lógica:

AS.I = [(E7.1 + E9.2) . AS.3] + (M3.1. E6.0 + A6. 1)

Para ello, el lenguaje de lista de instrucciones de STE P7 permite utilizar los paréntesis. El
paréntesis abierto "(" detrás de una operación lógica indica que la misma debe realizarse entre
la secuencia de instrucciones que la precede y la comprendida entre ella y el paréntesis cerrado
" )". Esto es equivalente a decir que el modificador paréntesis abierto " (" indica que la evalua-
ción del operador se aplaza hasta llegar a un operador paréntesis cerrado " )" . A continuación se
describe la utilización de los paréntesis con las diferentes operaciones lógicas.

O(
Realiza la operación lógica O entre la secuencia de instrucciones que la precede y la compren-
dida entre ella y el paréntesis cerrado ")" . Por eje mplo, la secuencia de instrucciones de la
Tabla 2.17 da como resultad o la ecuación:

AS. l = [(E7.1 + E9.2) ·AS.3] + (M3. I ·E6.0 + A6. 1)

Tabla 2.17. Program a que realiza la operación lógica O entre dos secuenc ias de instrucciones.

U E7.1 Selecciona la va riable de entrada E7.1 }


O E9.2 O lógica entre E7.1 y E.9.2 Primera expresión
UN A5.3 y lógica entre A5.3 y (E7.1 + E9.2)
O( Inicia una nueva expresión
U M3.1 Selecciona la variable M3.1 }
U E6.0 Y lógica entre M3.1 y E. 6.0 Segunda exp resión
ON A6.1 O lógica entre A6.1 y M3 .1 . E6.0
) O lógica entre las dos exp resion es
A8.1 Asigna el resultado anterior a la salida externa A8.1

110 © ITES-Paraninfo
SISTEMA STEP7 DE PROGRAMACiÓN DE AUTÓMATA S PROGRAMAB LES

En es te eje mplo, la sec ue ncia de instrucci o nes siguie nte :

O(
U M3. 1
U E6. 0
ON A6. 1
)

equivale a RLO ~ RLO + (M3. 1 . E6.0 + A6. 1).


Es co nven iente resalta r q ue la instrucció n U M3.1 q ue es tá a co ntinuació n de la instrucc ió n
0 (, real iza la se lecc ió n (pri mera co nsulta) de la variable M3 . 1 den tro de l parént esis.

ON(

Realiza la ope rac ión lógica O entre la sec ue ncia de instru cciones que la preced e y la inversa de
la sec ue ncia de ins trucc io nes co mp rendida e ntre e lla y el pa ré ntes is cerrado . Por ejemp lo, la
sec ue ncia de ins trucc io nes de la Tabla 2. 18 da co mo res ultado la ec uació n:

A8 . 1 = [(E7. 1 + E9.2) . AS.3] + (M3 . 1 . E6 .0 + A6 . 1)

Tabla 2.18. Prog ram a que realiza la op erac ió n " ON(" ent re d os secu en cias de inst ruccio nes.

U E7.1 Sel eccio na la v ariab le de entra da E7' 1 }


O E9.2 O lóg ica entre E7.1 y E.9.2 Prim er a ex p res ió n
UN A5 .3 y lóg ica entre A5 .3 y (E7.1 + E9.2)
ON( Inici a una segu nd a ex p resió n
U M3 .1 Seleccio na M 3.1 }
U E6.0 Y lóg ica ent re M 3.1 y E.6.0 Segunda ex pres ió n
O A6 .1 O lógica ent re A6 .1 y M3 .1 . E6.0
) O lógi ca entre la prim era ex pre sió n y el in v erso d e la segu nda
A8 .1 As ig na el resu lt ado ante rio r a la salida exte rna A 8.1

V(
Realiza la operac ión lógica y entre dos sec uenc ias de instrucc io nes . Co mo eje mplo , la sec ue n-
cia de instru cciones de la Ta bla 2. 19 rea liza la ec uac ió n:

A4 . 1 = E 1.0 · (E2. 0 + A4 .0)

Tab la 2.19. Pro gram a q ue reali za la o pe rac ió n ló g ica y ent re dos sec ue nc ias de inst rucc iones .

UN E1.0
U(
U E2.0
ON M.O
)
A 4.1

© ITES-Paraninfo 111
AUTÓMATAS PROGRAMABLES. ENTORNO Y APLICACIONES

UNe

Realiza la operaci ón lóg ica y e ntre la secue nc ia de instruccio nes que la pr ec ed e y la inver sa de
la sec ue nc ia de instrucciones comprendida e ntre ella y e l parént esi s ce rrado . Por ejemp lo, la
secuencia de instrucciones de la Tabla 2.2 0 da co mo resu ltado la fu nci ó n:

A8 . l = [(E7. l + E9.2)· A S.3] · (M3 . 1 . E6 .0 + A6 . 1)

Tab la 2.20. Pro g ram a que rea liza la opera ción lóg ica y entre una secu enc ia
de instru cciones y el in verso de otra.

U E7.1 Selecciona la variab le de entrada E7.1.


O E9.2 O lógica entre E7.1 y E9.2
UN A5.3 Y ló gi ca ent re A5.3 y (E7.1 + E9.2)
UN ( Ini ci a una segunda expresión
U M3.1 Sele cciona M 3.1
U E6.0 y lógica entre M 3.1 y E6.0
O A 6.1 O lógica entre A6 .1 y M 3.1 . E6.0
) O lógica entre la primera expresión y el inve rso de la segunda
AB.1 Asigna el resultado anterior a la salida externa AB.1

X(

Realiza la ope rac ió n lógica O-exclus iva e ntre do s sec ue nc ias de instruccio nes. Por ej e mp lo, la
sec ue nc ia de instru cciones de la T abla 2 .2 1 da co mo resultado la funció n:

A8. 1 = [(E7.1 + E9 .2) . AS.3] EB (M3 . 1 . E6.0 + A6 . 1)

Tab la 2.21. Program a q ue rea liza la operación lógica O-ex clusiva entre dos secuenc ias
de instrucciones.

U E7.1
O E9.2
UN A5 .3
X(
U M 3.1
U E6.0
O A6.1
)
AB.1

XN(

Rea liza la ope rac ió n lóg ica O-exclu s iva e ntre la sec ue nc ia de instrucciones qu e la precede y la
inv er sa de la secue ncia de instruccion es comprendida e ntre ella y el parént esis cerrado ") ".

112 © ITES-Paraninfo
SISTEMA STEP7 DE PROGRAMA CiÓN DE AUTÓMATAS PROGRAMABLES

Es co nve niente indi ca r q ue para rea lizar las instruccion es co n parént esis, el autó ma ta progr a-
mabl e de be poseer co mo mín im o dos biestables internos RLO. En un o de ellos se alm acena e l
resultado de la sec ue nc ia de operac iones qu e preced e al par éntesis y en el otro (que a veces se
den omina " me moria (bina ria) de paréntesis" ) el resultad o de la sec ue nc ia de instrucciones en-
ce rrada entre pa rént esis. El pa réntes is ce rra do " )" hace qu e se real ice la correspond iente opera-
ción lógi ca entre e l contenido de am bos biestabl es.

Co mo eje m plo adi cion al de utili zación de las instruccion es co n par éntesis, en la Tabla 2.22
se mu estra un progr am a qu e reali za la ecu aci ón :

A4.0 = MI 0.1 . (EO.O + M 10.0) . (EO.2 + MI 0.3)

Del aná lisis de la T abla 2.22 se desprende qu e ca da instrucción con paré ntes is abier to " ("
pro voca qu e la instrucció n situada a co ntinuac ió n rea lice la selecc ió n de un a va riable. En dicha
tabla se utilizan dos biestabl es RLO , qu e se de no mina n RLO l y RL02 para ac larar la form a en
qu e el programa los util iza.

Tabla 2.22. Ejemplo d e prim era co nsu lt a en inst ruccio nes con paréntesi s.

u M10 .1 Sel eccio na la variable M10 .1 y almacen a su valor lógico en el RL01


U( Esta ins trucción combinada con la in st ru cción " l" situ ada m ás adel ante
hace que se realice la operación lógi ca y entre el co nten ido del RL01
y el resultado de la eje cución de la secuencia de in stru cciones situadas
entre ambas
O EO.O Selecciona (primera consult a) la variabl e EO.O y almacen a su valor lógico en
elRL02
O M10.0 O lógica ent re el contenido del RL0 2 y la m arca M 10.0. El resul tado se
memoriza en el RL02
y lógico entre el contenido del RL01 y el RL02, y memorización del
resultado en el RLOl
U( Esta in stru cción combin ad a con la instrucci ón "l" sit uada m ás adelante hace
que se reali ce la operación lógica y entre el conte ni do del RLOl yel
resultado de la ejec uc ión de la secuenc ia de in struccio nes situadas
entre ambas
O EO.2 Seleccion a (prime ra con sulta) la variable EO.2 y alma cena su valor en el
RL02
O M 10.3 O lógica ent re el contenido del RL02 y la m arca M10.3. El resultado
se memoriza en el RL02
y lógica entr e el contenido del RL01 y el RL02 y memorización del
resultado en el RL01
A 4.0 Asigna el valor del RL01 a la salid a A4.0

Par a reali zar op er aci on es co mplej as , es posibl e abrir un nuevo paré ntes is sin haber cerrado
el anterior , utili zand o el mism o mecani sm o ex puesto en la T abl a 2.22 . Dado qu e ca da paré ntes is
abierto (s in ce rrar el anterior) precisa un nuevo RL O, STEP7 es ta blece un nivel máxim o de siete
parént esis abiert os si multá nea me nte.

© ITES-Paraninfo 113
AUTÓMATAS PROGRAMABLES. ENTORNO Y APLICACIONES

2.3 .4.3. Inst ruccio nes de memorización

Son instru ccion es qu e pon en a " 1" o " O" una variable lógic a. Ex iste un tip o de inst rucc ion es
de mem ori zación qu e actúa sobre el RLO y ot ro qu e actúa so bre un a va riable cu alqui era. A
continuació n se analiza cada uno de ellos.

Instrucciones de memorlzación que actúan sobre el RLü

Par a pon er incondi ci onalmente a uno o a cero el biestable RLO se pu ed en util izar, resp ectiva-
mente, las instruccion es de pu esta a un o SET y puesta a cero CLR (abrev iatura de Clear) . La
instru cción NOT inviert e el es tado del RLO y la instru cción SA VE lo mem or iza en una mem oria
int erna RB , tran sparente al usuari o (o éanse las instru ccion es de salto) .

Instrucciones de memorización que actúan sobre una var ia ble lógica

Son instru ccion es qu e ac túan so bre el es tado de un a variable lógica en fun ción del valo r lóg ico
de la expresión es tablec ida por las instrucciones que la prec ed en . Dicho valo r qu eda mem or iza-
do en la vari abl e aunq ue la condi ción lógi ca qu e lo provoque cambie de valor. La instru cci ón de
activaci ón S (Set) pon e a uno la variable asociada si el valor de la citada ex pres ió n es un uno y
no la modifica si es un ce ro . La instru cción de borrado o desactivaci ón R (Re s e t) pone a ce ro la
va riable asociada si el valo r de la ex pres ión lógi ca qu e la preced e es un un o y la deja inalterad a
en caso co ntrario.

Es tas instrucci on es dan por fin ali zada una ex pres ión lógica y, por ello, la primer a instru c-
ció n U/UN o O/ON situada a co ntinuació n de ellas inici a una nu eva ex pres ió n lógica y co ns ti-
tuye una instrucción de se lecc ió n (prime ra con sulta ).

La Figura 2.2a mu est ra un programa qu e utili za las instrucciones S y R para e mular un bies-
tab le R-S [MANO 98 ] cuyas variables de ent rada so n EO.O (S) y EO.l (R) y la de salida M2.0.
La Figura 2.2b indica gráficame nte qu e M2 .0 se pon e a uno cuando EO.O (se ñal de acti vaci ón )
se pon e a uno, y permanece en dicho es tado (a unque EO.O vuel va a ce ro) ha sta qu e EO. I (se ña l
de de sactivación ) se pon e a uno .

U EO.O EO.O
S M2.0
U EO.1 EO.1
R M2.0
M2.0 --.J
a) b)

Figura 2.2. Emul aci ón de un bi estab le R-S: al Secuen ci a de inst rucc io nes ; bl Cron ogram a.

El orde n en qu e se pro graman las instruccio nes S y R es tablece la prioridad de la acti vaci ón
sobre el borrado o vice ve rsa , e n e l caso de qu e se acti ven simultá neame nte. S i la última de las
do s es R, el biestabl e es de desa cti vaci ón prioritaria, y si la últim a es S, de activaci ón prioritaria.

114 © ITES-Paraninfo
SISTEMA STEP7 DE PROGRAMACiÓN DE AUTÓ MATAS PROGRAMABLE S

2.3.4.4. Instrucciones que operan con flancos


El lenguaje AWL de STEP7 tiene dos instrucciones que operan con llancas (cambios de nivel),
que son FP para los flancos de subida o positivos y FN para los flancos de bajada o negativos.
Ambas instrucciones utilizan una marca auxiliar (denominada marca ele flanco), elegida por
el usuario, para almacenar el valor lógico ele una variable o de una expresión en el ciclo de
programa anterior. Es conveniente resaltar que elicha marca no puede ser utilizada para almace-
nar ninguna otra variable a lo largo del programa porque dejaría de almacenar el valor, en el
ciclo de programa anterior, de la variable o expresió n lógica cuyo flanco se quiere detectar.
En la Tabla 2.23 se representa un programa que realiza la expresión lógica A 1.6 = E1.0 i . E 1.3.
Este programa utiliza la variable MSO. I como marca auxiliar para detectar un flanco de subida
de la variable E 1.0 Y la variable MI 00. 1 para memorizarlo. Esta última variable se denomina
marca de impulso porque sólo permanece en nivel " I", en el caso ele que se haya producido el
flanco, durante un ciclo de programa. La marca de impulso permite comprobar si se ha produci-
do o no el llanca, en cualquier parte del programa.

Tabla 2.23. Ejempl o de utili zación de la in stru cci ón FP par a detec tar el fl an co
de sub ida de un a vari abl e lógi ca.

U E1 .0
FP M50.1
M100.1
U M100 .1
U E1.3
A1.6

La expresión lógica A 1.6 = E 1.0 i . E 1.3 se puede realizar también mediante el programa de
la Tab la 2.24. En dicha tabla la instrucción FP MSO.I almacena el resultado de la detección del
llanca de subida de la variable E J.ü en el RLO y a continuación la instrucción U E J.3 realiza
una operació n lógica y entre el contenido elel RLO y la variable E l .3, y memoriza el resultado
en el RLO. En este caso no se utiliza una marca ele impulso y por ello no se puede comprobar si
se ha producido o no el flanco, en cualquier parte elel programa.

Tabla 2.24. Ejempl o de util izaci ón de la in stru cci ón FP para detecta r el fl anco
de sub ida de un a vari abl e lógica.

U E1.0
FP M 50.1
U E1.3
A1.6

Para detectar el flanco de subida, la instrucción FP realiza el producto lógico del valor de la
variable o ele la expresión que la precede (almacenado en el RLO) con el inverso del valor alma-
cenado en la marca auxiliar y lleva a cabo las dos acciones siguientes:
Transfiere el resultado obtenido al RLO. Por ello, en el RLO queda un " 1" lógico si se
ha producido un llanca ele subida.
Transfiere el contenido del RLO a la marca auxiliar para permitir la detección ele un
flanco en un próximo ciclo ele ejec ución elel programa.

© ITES-Paraninfo 115
AUTÓMATA S PROGRAMABLES . ENTORNO Y APLICACIONES

El contenido del RLO se puede transferir a cualquier variable lógica para utilizarlo en una
expresión lógica.
En la Figura 2.3a se muestra el algoritmo ejec utado por las tres primeras instrucciones del
programa de la Tabla 2.23, que detecta un flanco de subida de la entrada E 1.0. La Figura 2.3b
muestra el cro nograma de las variables utilizadas en dicha detección, en el cual t; es el tiem po
de ciclo del autómata programable, igual a la suma del ciclo de entrada-salida y del ciclo de
proceso descritos en el Apartado 1.3.2.3.

E1.0

M50 .1

M100 .1
--Q-------------
a) b)

Figura 2.3. al Al gori tm o qu e detec ta un f lanco de subida de E1.10; bl Cron ogram a d e las va riab les utili zadas.

De forma similar, la instrucción FN realiza el producto lógico del inverso del RLO (que
con tiene el valor de la variable o de la expresió n que la precede) con el valor almacenado en la
marca auxiliar y transfiere el resultado al RLO. Por ello, en el RLO queda un " 1" lógico si se ha
producido un flanco de bajada. A continuación transfiere el contenido del RLO a la marca auxi-
liar para permiti r la detección de un flanco en un próximo ciclo de ejecución de program a. El
contenido del RLO se puede transferir a cualquier variable para utilizarlo en una expresión lógica.
En la Figura 2.4 se muestra el algoritmo y el cro nograma de las variables utilizadas para
detectar un flanco de bajada en la entrada E 1.0.

E1.0 ---,~

M50.0 - - - - - '

M100 .0 n _
w
a) b)

Figura 2.4. al Alg oritm o q ue det ecta un fl anco de bajad a de E1.0; b) Cro no grama de las variab les utili zad as.

En la Tabla 2.25 se representa el programa adecuado para realizar la expres ión lógica
A 1.6 = E 1.0 i . E 1.3 + E 1.1 ! . E 1.2, en la que se combina un flanco de sL;bida con un flanco de
bajada.

116 © ITES-Paraninfo
SISTEMA STEP7 DE PROGRAMACiÓN DE AUTÓMATAS PROGRAMA BLES

Tabla 2.25. Ejempl o de utili zaci ón de in stru ccion es qu e ope ran co n fl ancos.

U E1.0
FP M50.1 M50 .1 es una marca de fl anco de subida
M100.1 M100 .1 es una m arca de impulso (indica el posible flanco de subida de E1.0)
U E1.1
FN M50.0 M50.0 es una m ar ca de f lanco de baj ada
M100.0 M100 .0 es un a m arca de impulso (indica el po sible fl anco de bajad a de E1.1)
O(
U M100.1 Selecci on a la m arca M 100. 1 qu e v al e uno si se ha produ cid o un flanc o
de subida en E1.0
U E1.3 y lógica ent re M 100.1 Y E1.3
)
O(
U M100.0 Selecciona la marca M100.0 que vale uno si se ha producido un flan co
de subida en E1.1
UN E1.2 y lógica entre M100.0 y E1.2
)
A 1.6 Asigna el valor del RLO a la salida A 1.6

A continuación se realiza un ejemplo práctico de utilización de las instrucciones de flanco


[BER G 87].

Detector de entrada o salida de personas


Diséñese un programa que utilice dos fotocélulas A y B para detectar la entrada o salida de
personas del recinto de la Figura 2.5 para su posterior co ntaje. Cuando una persona entra o sale
del recinto, primero intercepta el haz de una de las fotocélula s y, a continuación, por estar muy
próximas una de la otra, intercepta los dos haces.

LJ . .

r(j"2)l
________1'A' 'B' 1.-- - - - - - -
Figura 2.5. Recinto y co locació n de las cé lu las de d et ecci ón de l Ejem pl o 2.1.

Solución
En la Figura 2.6 se representan las secuencias de evolución posibles de las variables A y B. En
ella se observa que una forma de realizar el contaje es diseñar un programa que incremente en
una unidad el número de personas que se encuentran en el recinto si es " 1" la expresión lógica
A . B i y que lo decremente si es " 1" A . B 1. Otra forma alternativa es incrementar con Al· B Y
decrementar con A i . B.

© ITES-Paraninfo 117
AUTÓMATAS PROGRAMABLES. ENTORNO Y APLICACIONES

y
Entrad a
incompleta

Figura 2.6. Esqu ema d e detecci ón pa ra el Ejempl o 2.1.

En la Tabla 2.26 se muestra el programa que detecta los tlancos de B (entrada E 1.1 ) cuando
A (entrada E I.O) está en nivel " 1" .

Tabla 2.26. Programa del Ejemplo 2.1.

U E1.1 Entrada B
FP M50.1 M50.1 es una marca de flanco de subida
M100.1 M100.1 es una marca de impulso (indica el posible flanco de subida de E1.1)
U E1.1 Entrada B
FN M50 .0 M50.0 es una marca de flanco de bajada
M100.0 M100.0 es una marca de impulso (indica el posible flanco de bajada de E1.1)
u E1.0 Entrada A
U M100.1 y lógica entre A y la marca M 100.1 (esta marca vale uno si se ha producido
un flanco de subida de B)
M1 .1 Asigna el valor del RLO a la marca M1.1 que indica que se debe incrementar
el contador de personas
U E1.0 Entrada A
U M100.0 y lógica entre A y la m arca M 100.0 (esta marca vale uno si se ha produ cido
un flanco de bajada de B)
Ml.0 A signa el valor del RLO a la marca Ml .0 que indica que se debe dec rem entar
el contador de personas

2.3.5. Inst rucciones que operan con combinaciones binarias

2.3.5 .1. Introducción

Las instrucciones que operan con combina ciones binarias utilizan uno o dos operandos. de los
cuales sólo uno, como máximo, está especificado de forma explícita en la propia instrucción.
Dado que algunas instrucciones precisan dos operandos, el autómata programabl e dispon e de
varios registros internos que reciben el nombre de acumuladores y son utilizados de forma im-
plícita por algunas instrucciones, lo cual los hace transparentes para el usuario. Cada acumula-
dor (ACU en STEP7) tiene un tamaño de 32 bits aunque en algunas circunstancias puede traba-
jar sólo con 8 o 16 bits. Si el resultado de una operación es de tipo lógico , su valor se almacena
en el biestable RLO y si, por el contrario. el resultado de una operación es una combinación
binaria, su valor se almace na en alguno de los acumul adores mencionados (nor malmente el
ACUI ).

118 © ITES-Paraninfo