Programacion KOP AWL
Programacion KOP AWL
Programacion KOP AWL
Lenguaje KOP
Se tienen diversos segmentos y cada uno de ellos debe terminar en una asignación de un
valor a una bobina (salida) o marca (variable auxiliar), ya sea de igualdad o a través de
otras funciones, como Set y Reset. También puede terminar dando lugar a la ejecución
de instrucciones dependientes del estado lógico al final (a la derecha) del segmento.
El valor que finalmente llega a esta asignación o instrucción será 1/0 si el resultado de la
combinación lógica de las entradas y marcas desde el inicio (a la izquierda) hasta el
final (a la derecha) da como resultado un 1/0.
1
Aunque en todo momento, al hablar de consultas se refieren a entradas, también existen y son muy
empleadas las consultas (negadas o no) a salidas, marcas o direcciones de memoria, estado de
temporizadores o contadores ...
Automatización de Procesos Industriales Área de Sistemas y Automática
A modo de resumen, el valor lógico con el que se opera en función del tipo de contacto,
de su activación o no, y del tipo de consulta, será:
En este sentido, si dos entradas (o datos binarios en general) están en serie, ambas deben
corresponderse con un nivel alto para que la combinación de ambas dé lugar a '1' o
TRUE. Es una operación lógica AND (&) o Y. Es directamente asimilable a la
combinación serie de dos contactos eléctricos, donde si uno de ellos está abierto, se
impide el paso de corriente.
Si dos entradas se encuentran en paralelo, basta con que una de ellas sea cierta para que
la combinación de ambas dé lugar a '1'. Se trata de una operación lógica OR u O. Se
corresponde con la combinación paralelo de dos contactos, en los que basta con que uno
de ellos esté cerrado para que se permita el paso de corriente.
Cuando aparece una bifurcación (dos elementos en paralelo) el RLO se guarda en una
pila de manera que se pueda realizar una nueva combinación lógica entre los contactos
que se hallan en paralelo. El resultado de la combinación OR de todos estos elementos
en paralelo es un nuevo RLO que se combina con el RLO anterior (que se saca de la
pila).
c) e) f)
a) b)
d)
Lenguaje AWL
Al editar un módulo en lenguaje AWL se pide al programador que escriba cada una de
las instrucciones correspondientes a las operaciones lógicas que haya que realizar
indicando con qué parámetros se trabaja.
UN E 4.0
UN E 4.1
U(
O E 4.2
O A 8.0
)
= A 8.0
2. Marcas
Se denominan marcas a las variables auxiliares que pueden retener un determinado
resultado (no necesariamente lógico). Se reconocen por la letra M. Son asignadas de
igual forma que las salidas, y su valor también puede ser empleado de igual forma.
Un ejemplo, un tanto artificioso, del empleo de las marcas nos lo daría este otro
esquema correspondiente al mismo arranque directo de un motor.
El equivalente en AWL es
UN E 4.0
UN E 4.1
U E 4.2
S A 8.0
La salida A8.0 se activará cuando concurra que no ha disparado el térmico (el contacto
NO no se ha cerrado), que no se ha actuado sobre el pulsador de paro NO, y que se ha
actuado sobre el pulsador de marcha NO. En ese momento se activa la salida A8.0 y no
se desactivará hasta que se resetee o se le asigne el valor cero.
o bien
UN E 4.0
UN E 4.1
NOT
R A 8.0
donde se emplea la instrucción NOT que invierte el valor del anterior RLO (el negado
de un producto es la suma de los negados).
No existen funciones iguales en KOP, pero se puede conseguir la misma función que:
5. Detección de flancos
Evaluación de Flanco
Flanco Positivo Flanco Negativo
RLO
1
0 Tiempo
El estado de señal del bit RLO se compara durante cada ciclo del programa con el
estado de señal del bit RLO del ciclo anterior para determinar los cambios de estado.
Para poder ejecutar la comparación hay que almacenar el estado del bit RLO anterior en
alguna marca libre (<bit>). Si el estado de señal actual del bit RLO es distinto que el
estado anterior, tras ejecutarse esta operación el bit RLO será "1".
Puede detectar tanto flancos positivos (instrucción FP) como negativos (instrucción
FN).
Ejemplo:
U E 4.0
FP M 1.0 Aquí es donde se almacena el valor del RLO del ciclo anterior.
= A 8.0
Un tiempo de ciclo
El detector de flancos negativos FN o –(N)— sería similar, sólo que la salida sería
activada durante un tiempo de ciclo tras el flanco negativo de E4.0
Atendiendo a su tamaño, existen diversos tipos de datos con los que el STEP7 trabaja:
Todos los tipos de datos simples definen el tamaño y formato de un objeto de datos.
Los principales son:
BOOL (1 bit)
BYTE (1 byte, 8 bits)
WORD o palabra (2 bytes, 16 bits)
DWORD o doble palabra (4 bytes, 32 bits)
Por ejemplo para designar al dato booleano correspondiente a la entrada 4.0, se emplea
E 4.0. Para designar al byte de entrada 4 completo, se emplea EB 4. La palabra de
entrada 2 (EW 2) está compuesta por los bytes de entrada 2 y 3 (EB 2 y EB 3). La doble
palabra de entrada ED 0 está compuesta por EW0 y EW2 o también por EB0, EB1, EB2
y EB3. Para una salida, sería AB, AW o AD. Para una marca, MB, MW o MD.
Carga de datos
Trasferencia de datos
Descripción de la operación:
Ejemplos:
7. Temporizadores
Existe un área de memoria reservada a los temporizadores. Por cada temporizador se
reserva una palabra (16 bits). El valor de tiempo puede estar en un rango de 10 ms a
9990s (2 horas, 46 minutos y 30 segundos).
El formato general para el tipo de datos S5TIME tiene los siguientes valores límite para
el margen y la resolución:
Margen Resolución
10MS a 9S_990MS 0,01 segundos
100MS a 1M_39S_900MS 0,1 segundos
1S a 16M_39S 1 segundo
10S a 2H_46M_30S 10 segundos
Los valores no deben exceder 2H_46M_30S. Los valores con un margen o una
resolución demasiado grandes (p. ej. 2H_10MS) se redondean de tal forma que
correspondan a la tabla para el margen y la resolución.
La salida acompaña a la entrada pero hasta un tiempo máximo que es el valor que se
carga en el temporizador.
Ejemplo:
Símbolo SIMATIC
U E0.0 E0.0
T2
S_IMPULS A9.0
L S5T#45S S5T#45s
S
TW
Q
MW5 1
DUAL
SI T2 R DEZ MW7 0
E 0.0
E0.1
U E0.1
R T2 Símbolo Internacional 1
A 9.0
0
4 45
L T2 E0.0
T2
S_IMPULS A9.0 5
T MW5 S5T#45s
S
TV
Q
BI
MW5
Eje de tiempos (S)
LC T2 E0.1
R BCD MW7
T MW7
U T2
= A9.0
SV T9 S5T#85s
TW
DUAL MW9
U E0.3 R DEZ MW11
R T9 E0.3
L T9 1
T MW9 0
E 0.2
LC T9
T MW11 1
A 9.1
U T9 0
85 85 85
= A9.1
Eje de tiempos (S)
T4
E0.7 S_EVERZ A8.5
U E0.7 S Q
L S5T#35S S5T#35s TW DUAL MW0
SE T4 R DEZ MW2 E 0.5 (reseteo)
E0.5
U E0.5 1
R T4 0
L T4 E 0.7
T MW0 1
LC T4
T MW2 0
A 8.5
U T4 35 <35 35
= A8.5
Eje de tiempos (S)
Temporizador
Figura 1 de retardo a la desconexión S_AVERZ (SA)
U E 1.7 E1.7
S_AVERZ
A8.6
L S5T#55s S5T#55s
S Q
MW4
SA T5 E1.5
TW DUAL
R BCD
U E1.5 MW6
R T5 1
L T5 E
T MW4 0 0.1
LC T5
1
T MW6 A
U T5 0 4.1
7
= A8.6 7
Se puede decir que se trata de una memoria retardada el tiempo prefijado en nuestra
constante.
L S5T#55s S5T#55s
S
TW
Q
MW10
DUAL
SS T5 E1.4
R BCD
MW12
U E1.4 Eje de tiempos (S)
R T5
1
L T5 0
E 1.3
T MW10
LC T5 1
E 1.4
T MW12 0
1
U T5 0 15 15
A 4.2
= A8.7
Eje de tiempos (S)
U E0.0
L S5T#25S
SA T5
U T5
= A4.0
8. Contadores
La forma de proceder con los contadores es muy similar a la de los temporizadores. De
igual forma, existe en KOP, dos formas de emplearlos. Una con un elemento general, y
otra forma, accediendo a cada una de sus funciones.
El valor al que se inicializa el contador viene dado por el dato asociado a la entrada ZW.
El contador se inicializa a este valor y estará preparado para contar cuando se produzca
un flanco de subida en el valor lógico asociado a la entrada S.
La puesta a cero del contador se puede forzar anticipadamente con un flanco de subida
en la entrada R.
Con las salidas DUAL y DEZ se puede conocer el valor actual de la cuenta, tanto como
número entero como en código BCD.
A cada una de estas posibilidades puede accederse sin necesidad de usar el elemento
contador Zähler. Así, lo anterior sería equivalente a :
o bien
U E5.0
L C#5
S Z1
U E4.0
ZV Z1
U E4.1
ZR Z1
U Z1
= A8.2
U E5.1
R Z1
9. Saltos
En un modulo de organización, módulo de función o función, se puede alterar la
ejecución secuencial de un programa, dirigiendo el puntero que apunta a la siguiente
instrucción a ejecutar a otro punto del programa. Este punto al que se salta se llama
etiqueta y habrá de ser una palabra de como mucho 4 caracteres.
El salto puede ser incondicional (se salta siempre) o condicional (se produce el salto
sólo si el RLO es cierto).
Se quiere que si la entrada E4.1 está a '1', que asigne el valor de la entrada E4.7 a la
salida A5.1. Si la entrada E4.1 está a 0, que asigne la entrada E4.7 a la salida A5.2, y
que además resetee la salida A5.0 en
función de E4.3
U E4.1
SPB SAL1
U E4.7
= A5.2
U E4.3
R A5.0
SPA SAL2
SAL1: U E4.7
= A5.1
SAL2: // A partir de aquí ya vendría
el resto de instrucciones, p.ej.
U M0.0
= M0.0