1. Posiciones de la memoria RAM
BYTE BIT
FORMATO BYTE M 0.3 FORMATO PALABRA
(WORD)
7 0
MB0 0 X
MW0
MB1 1
MD0 MW1
MB2 2 X
MD1 MW2
MB3 3
MW3
MB4 4
. .
. .
. .
FORMATO DOBLE 125 M 2.3
PALABRA
(DOUBLE WORD)
Identificaciones de elementos y bloques y sintaxis de las constantes
Elementos y bloques Constantes
T Temporizador Versión breve Versión extensa
DB Bloque de datos global B# Byte#
DI Bloque de datos de instancia C# Counter#
FC Función W# Word#
FB Bloque de función DW# Dword#
OB Bloque de organización D# Date#
Z/C Contador (En función de la T# Time#
abreviatura Nemotecnia)
SDB Bloque de datos del sistema TOD# Time_of_day#
SFC Función del sistema S5T# S5Time#
SFB Bloque de función del sistema DT# Date_and_time#
P# Pointer#
2. Areas de memoria y sus funciones
Nombre Función del área Acceso a través de Abre
del área unidades de longitud viat.
Imagen Al arrancar el programa, el sistema operativo Entrada E
proceso lee las entradas del proceso almacenando los Byte de entrada EB
de valores en este área Palabra de entrada EW
entradas Palabra doble de entrada ED
(E)
Imagen Durante el ciclo, el programa calcula los Salida A
proceso valores de salida y los deposita en este área. Byte de salida AB
de Al final del ciclo, el sistema operativo lee en Palabra de salida AW
salidas este área los valores de salida calculados y Palabra doble de salida AD
(A) los transfiere a las salidas del proceso
Marcas Area que permite almacenar resultados Marcas M
(M) intermedios calculados en el programa Byte de salida MB
Palabra de salida MW
Palabra doble de salida MD
E/S: Este área permite al programa el acceso Byte de entrada de la periferia PEB
entradas directo a los módulos de E/S (es decir, Palabra de entrada de la perif. PEW
externas entradas y salidas de la periferia) Palabra doble de entrada de PED
la periferia
E/S: Byte de entrada de la periferia PAB
Salidas Palabra de entrada de la perif. PAW
externas Palabra doble de entrada de PAD
la periferia
Tempori Elementos funcionales del lenguaje de T
zadores program. KOP. Area que permite almacenar
(T) células de temporización. En este área, el
reloj accede a estas células para ser
actualizado, decrementando el valor de
temporización. En las células de temporiz. se
accede con operaciones de temporización
Conta Elementos funcionales del lenguaje de Z
dores program. KOP. Area de almacenamiento de
(C) contadores. Area de acceso con operaciones
de conteo
Bloques Area que contiene datos a los que se puede DBX
de datos acceder desde cualquier bloque. Si se desea DBB
(D) tener abiertos dos bloques al mismo tiempo, DBW
uno puede abrirse con la instrucción ”AUF DBD
DB” y otro con la instrucción “AUF DI”. La
notación de los operandos determina a que
bloque de datos se accede.
Aunque la instrucción “AUF DI” pueda
utilizarse para abrir cualquier bloque de datos, DIX
su utilización principal consiste en abrir DIB
bloques de datos de instancia asociados a DIW
bloques de función FB´s y a bloques de DID
función de sistema SFB´s
Datos Area que contiene datos temporales de L
locales bloque lógico (DB, FB, o FC). Estos, también LB
(L) denominados datos locales dinámic., sirven LW
de memoria intermedia. Cuando se cierra el LD
bloque lógico, se pierden estos datos. Los
datos están depositados en la pila de datos
locales (pila L)
3. Tipos de direccionamiento
En el programa STEP7, pueden identificarse las variables mediante dos tipos de
direccionamiento de variables:
Direccionamiento absoluto (direccionamiento directo)
La variable con la que se trabaja, es referenciada mediante una posición de memoria,
denominada dirección absoluta, en la que está depositado el operando.
En el direccionamiento directo el operando contiene la dirección de memoria del valor con el
que la operación deberá operar. El operando se puede direccionar de forma absoluta o
simbólica. Ejemplos:
Entrada E 12.1; palabra de marcas MW 25; bloque de datos DB 3.
Con la dirección A 4.0 se indica el bit 0 del byte 4 de la imagen de proceso de las salidas.
A 4.0
Identificador direccionamiento
de operando de bit
direccionamiento
de byte
Direccionamiento simbólico (direccionamiento indirecto)
A la variable con la que se trabaja, le es asignado un símbolo o referencia con el que poder
distinguirla mas fácilmente durante la programación o visualización del programa.
Ejemplo:
Símbolo Direccionamiento
MOTOR_ON A 0.1
ACTIV_IMAN A 0.0
FINAL_CARRERA E 0.5
4. Selección del lenguaje de programación
Lenguaje de Destinatarios Caso de Entrada Entrada orientada Bloque auto-
programación aplicación incremental a fuente documentable de
la CPU
Lista de Usuarios que Programas Sí Sí Sí
instrucciones desean optimizados
AWL programar a en tiempo de
nivel e maquina ejecución y
uso de
memoria
Esquema de Usuarios Programación Sí No Sí
contactos KOP familiarizados de controles
con esquemas combinaciona
eléctricos les
Los lenguajes de programación sirven para crear programas de usuario, para cuyo fin ofrecen
determinadas reservas lingüísticas en forma de instrucciones gráficas o de texto. El usuario
introduce dichas instrucciones utilizando un editor, y estas instrucciones se compilan en un
programa de usuario ejecutable.
El programa SIMATIC S7 ofrece los lenguajes de programación por lista de instrucciones
(AWL), diagrama de funciones (FUP) y esquema de contactos (KOP) para programar bloques.
Desde el editor de programación KOP, AWL, FUP, una
vez cargado un proyecto, puede ser cambiado el
lenguaje de programación a través del comando menú
“Ver”, donde pueden verse los tipos tres tipos de
lenguajes KOP, AWL, FUP. El cambio de lenguaje de
programación puede ser realizado en cualquier
momento. Sólo es posible cambiar de AWL a
KOP/FUP si las instrucciones AWL asumen toda la
asignación de parámetros de los correspondientes
elementos KOP/FUP y respetan el orden. A los
parámetros no usados en AWL se les asigna ”NOP 0”.
Lista de instrucciones (AWL)
La lista de instrucciones (AWL) es un lenguaje de programación textual orientado a la máquina.
El lenguaje AWL es el lenguaje ensamblador de STEP 7. Si un programa ha sido programado
en lenguaje AWL, cada instrucción corresponderá a cada uno de los pasos que dará la CPU
para ejecutarlo.
Ejemplo:
U(
O E 0.0
U E 0.1)
= A 2.0
Esquema de contactos (KOP)
El esquema de contactos es un lenguaje de programación gráfico mediante diagrama de
contactos y diagrama de funciones. El esquema de contactos es uno de los lenguajes de
programación de STEP 7. Esta representación está normalizada según la norma DIN 19239. La
representación del esquema de contactos corresponde a la de un esquema de circuitos. Al
contrario que en la lista de instrucciones (AWL), en KOP solamente se puede representar una
cantidad limitada de operaciones.
5. Componentes del editor KOP
Tabla correspondiente a las operaciones del lenguaje KOP por orden alfabético en la que se
muestra el nombre de la función y la abreviatura SIMATIC correspondiente.
6.
7.
8. Instrucciones de bit
---I I--- Contacto normalmente abierto
Parámetro Tipo de datos Area de memoria Descripción
<Operando> BOOL E, A, M, L, D, T, Z Bit consultado
Como se trabaja en lógica binaria, cuando el contacto esta abierto significa que esta
desactivado “0”, es decir, circula flujo, por lo tanto el RLO es “ 0 ”.
---I/I--- Contacto normalmente cerrado
Parámetro Tipo de datos Area de memoria Descripción
<Operando> BOOL E, A, M, L, D, T, Z Bit consultado
Como se trabaja en lógica binaria, cuando el contacto esta cerrado significa que esta activado
“1”, es decir, circula flujo, por lo tanto el RLO es “ 1 ”.
---( ) Bobina de rele, salida
Parámetro Tipo de datos Area de memoria Descripción
<Operando> BOOL E, A, M, L, D Bit asignado
Si del resultado de la operación lógica de contactos y funciones se obtiene un “ 1 ” en la salida,
la bobina de relé se activa, si el resultado es un “ 0 ”, no se activa.
---(S) Activar salida
Parámetro Tipo de datos Area de memoria Descripción
<Operando> BOOL E, A, M, L, D, T, Z Bit activado
Si del resultado de la operación lógica de contactos y funciones se obtiene un “ 1 ” en la salida,
la bobina de relé se activa “SET” permanentemente hasta que sea desactivada mediante un
“RESET. Si el resultado es un “ 0 ”, no se activa.
---(R) Desactivar salida
Parámetro Tipo de datos Area de memoria Descripción
<Operando> BOOL E, A, M, L, D, T, Z Bit desactivado
Si del resultado de la operación lógica de contactos y funciones se obtiene un “ 1 ” en la salida,
la bobina de relé se desactiva “RESET”. Si el resultado es un “ 0 ”, no se desactiva. Para
desactivar una salida, previamente ha tenido que ser activada.
Básculas RS / SR
Parámetro Tipo de datos Area de memoria Descripción
<Operando> BOOL E, A, M, L, D Bit activado o desactivado
S BOOL E, A, M, L, D Activación habilitada
R BOOL E, A, M, L, D Desactivacion habilitada
Q BOOL E, A, M, L, D Estado de señal del operando
RS (Activación de flip-flop de desactivación)
Si la entrada R recibe el estado 1 y la entrada S el estado 0, la bascula
desactiva su salida. Si la entrada R recibe el estado 0 y la entrada S el
estado 1, la bascula activa su salida. Cuando en ambas entradas
recibe el estado 1, primero desactiva y seguidamente activa.
9. SR (Desactivacion de flip-flop de activación)
Si la entrada R recibe el estado 1 y la entrada S el estado 0, la bascula
desactiva su salida. Si la entrada R recibe el estado 0 y la entrada S el
estado 1, la bascula activa su salida. Cuando en ambas entradas
recibe el estado 1, primero activa y seguidamente desactiva.
Evaluación de flancos
---(P)--- Detectar flanco de subida (0⇒1)
Parámetro Tipo de datos Area de memoria Descripción
<Operando> BOOL A, M, D Marca de flancos que almacena el
estado de señal anterior del RLO
Detección de cambio de estado del operando de “0” a “1”. El estado de señal actual del RLO es
comparado con el estado de señal del operando (marca de flancos). Si el estado de señal del
operando es “0” y el RLO antes de la operación es “1”, el RLO después de la operación es “1”,
en todos los otros casos “0”.
---(N)--- Detectar flanco de bajada (1⇒0)
Parámetro Tipo de datos Area de memoria Descripción
<Operando> BOOL A, M, D Marca de flancos que almacena el
estado de señal anterior del RLO
Detección de cambio de estado del operando de “1” a “0”. El estado de señal actual del RLO es
comparado con el estado de señal del operando (marca de flancos). Si el estado de señal del
operando es “1” y el RLO antes de la operación es “0”, el RLO después de la operación es “0”,
en todos los otros casos “1”.
Detectar flanco de señal ( 0⇒1 )
Parámetro Tipo de datos Area de memoria Descripción
<Operando1> BOOL E, A, M, L, D Señal consultada
<Operando2> BOOL A, M, D Marca de flancos M_BIT, almacena el
estado de señal anterior del Operando1
Q BOOL E, A, M, L, D Detección del cambio de señal
Compara el estado de la señal del operando 1 con la del estado
anterior almacenada en el operando 2. Si el estado anterior del
RLO era “0”, ahora es “1” (Detección de un flanco de subida).
Después de esta operación la salida Q será “1”, y en los
restantes casos “0”.
Detectar flanco de señal ( 1⇒0 )
Parámetro Tipo de datos Area de memoria Descripción
<Operando1> BOOL E, A, M, L, D Señal consultada
<Operando2> BOOL A, M, D Marca de flancos M_BIT, almacena el
estado de señal anterior del Operando1
Q BOOL E, A, M, L, D Detección del cambio de señal
Compara el estado de la señal del operando 1 con la del estado
anterior almacenada en el operando 2. Si el estado anterior del
RLO era “1”, ahora es “0” (Detección de un flanco de bajada).
Después de esta operación la salida Q será “0”, y en los
restantes casos “1”.
10. ---(SAVE) Cargar resultado lógico
Almacena el resultado lógico RLO en el bit RB de la palabra de estado.
ismos pero de signo opuesto.
11. Temporizadores de retardo
Tablas de características correspondientes a los temporizadores nombrados en los siguientes
apartados:
Parámetro Tipo de Area de Descripción
SIMATIC datos memoria
Nº de T TIMER T Numero de identificación del temporizador, el área
depende de la CPU utilizada
S BOOL E, A, M, L, D Entrada de arranque.
TV S5TIME E, A, M, L, D Valor del temporizador preseleccionado.
R BOOL E, A, M, L, D Entrada de desactivación.
BI WORD E, A, M, L, D Valor del temporizador actual, codificado en binario.
BCD WORD E, A, M, L, D Valor del temporizador actual, codificado en BCD.
Q BOOL E, A, M, L, D Estado del temporizador.
Margen Resolución
De 10MS a 9S_990MS 0,01 segundos
De 100MS a 1M_39S_900MS 0,1 segundos
De 1S a 16M_39S 1 segundo
De 10S a 2H_46M_30S 10 segundos
S5TIME#4S = 4 segundos
s5t#2h_15m = 2 horas y 15 minutos
S5T#1H_12M_18S = 1 hora, 12 minutos y 18 segundos
Los valores no deben exceder de 2H_46M_30S. Los valores que son demasiado grandes para
un margen o una resolución se redondean de manera que correspondan a los valores límite
para ese margen y esa resolución (p. ej. 2H_10MS).
Temporizadores de retardo
S_EVERTZ (Temporizador con retardo a la conexión)
Al activarse su entrada “SET”, empieza a contar el tiempo programado, tras el cual activa la
salida “Q”. Al recibir un pulso en la entrada “SET”, empieza a contar el tiempo programado sin
activar la salida ”Q” desconectándose el conteo instantáneamente que cesa el pulso en el
“SET”. La entrada “RESET” predomina sobre la entrada “SET”, por lo tanto al recibir un pulso
en la entrada “RESET” mientras el temporizador esta contando o activado, la salida ”Q” queda
desactivada ”0”.
S_SEVERTZ (Temporizador con retardo a la conexión con memoria)
Al activarse su entrada “SET”, empieza a contar el tiempo programado, tras el cual activa la
salida “Q”. Al recibir un pulso en la entrada “SET”, empieza a contar el tiempo programado sin
activar la salida ”Q” desconectándose el conteo instantáneamente que cesa el pulso en el
“SET”, memorizando el tiempo transcurrido, que sumado al tiempo posterior de un siguiente
“SET”, llegara al tiempo establecido activando la salida “Q”. La entrada “RESET” predomina
12. sobre la entrada “SET”, por lo tanto al recibir un pulso en la entrada “RESET” mientras el
temporizador esta contando o activado, la salida ”Q” queda desactivada ”0” además de borrar
la memoria del temporizador.
S_AVERTZ (Temporizador con retardo a la desconexión)
Al cambiar su entrada “SET” de “1” a “0”, empieza a contar el tiempo programado, tras el cual
desactiva la salida “Q”. Al recibir un pulso en la entrada “SET”, empieza a contar el tiempo
programado sin desactivar la salida ”Q” desconectándose el conteo instantáneamente que
recibe el flanco de bajada de un nuevo pulso en el “SET”. La entrada “RESET” predomina
sobre la entrada “SET”, por lo tanto al recibir un pulso en la entrada “RESET” mientras el
temporizador esta contando o activado, la salida ”Q” queda desactivada ”0”.
Temporizadores de impulso
S_IMPULS (Arrancar temporizador con impulso)
Al activarse su entrada “SET”, activa instantáneamente la salida “Q”, empezando a contar el
tiempo programado tras el cual desactiva la salida “Q”. La desactivación de la entrada “SET”
durante el funcionamiento del temporizador interrumpe el estado activo de “Q” desactivando la
salida y desconectándose el conteo. La entrada “RESET” predomina sobre la entrada “SET”,
por lo tanto al recibir un pulso en la entrada “RESET” mientras el temporizador esta
funcionando, la salida ”Q” queda desactivada ”0”.
S_VIMP (Arrancar temporizador con impulso prolongado)
Al activarse su entrada “SET”, activa instantáneamente la salida “Q”, empezando a contar el
tiempo programado tras el cual desactiva la salida “Q”. La desactivación de la entrada “SET”
durante el funcionamiento del temporizador no interrumpe el estado activo de “Q”, si no que el
temporizador continua el conteo y manteniendo activa la salida “Q” hasta que termina el tiempo
establecido. En el supuesto caso que mientras el temporizador estuviese funcionando,
recibiese un nuevo pulso en la entrada “SET” tras un pulso anterior en la misma entrada, la
salida “Q” se mantendría activa reactivándose el conteo, por lo tanto, manteniéndose por mas
13. tiempo el funcionamiento del temporizador y la salida “Q”. La entrada “RESET” predomina
sobre la entrada “SET”, por lo tanto al recibir un pulso en la entrada “RESET” mientras el
temporizador esta funcionando, la salida ”Q” y el tiempo de conteo quedan desactivados ”0”.
Instrucciones de bit para temporizadores
---(SI) Arrancar temporizador con impulso
Basado en el mismo funcionamiento que el S_IMPULS, la
activación de la entrada E 0.0 de "0" a "1" (flanco creciente
en el RLO), el temporizador T5 arranca. El temporizador
continúa en marcha con el valor de temporización indicado
de 2 s mientras E 0.0 sea "1". Si el estado de señal en E 0.0
cambia de "1" a "0" antes de transcurrir el tiempo, el
temporizador se para. La salida A 4.0 es "1" mientras el
temporizador está en marcha. Si el estado de señal en la
entrada E 0.1 cambia de "0" a "1", el temporizador T5 se
pone a 0, es decir, se para y el valor de temporización
restante se pone a "0".
---(SV) Arrancar temporizador con impulso
Basado en el mismo funcionamiento que el S_VIMP, la
activación de la entrada E 0.0 de "0" a "1" (flanco creciente
en el RLO), el temporizador T5 arranca. El temporizador
continúa en marcha con el valor de temporización indicado
sin ser afectado por un flanco negativo en el RLO. Si el
estado de señal en E 0.0 cambia de "0" a "1" antes de
transcurrir el tiempo, el temporizador se vuelve a arrancar. La
salida A 4.0 es "1" mientras el temporizador está en marcha.
Si el estado de señal en la entrada E 0.1 cambia de "0" a "1",
el temporizador T5 se pone a 0, es decir que se para y que el
valor de temporización restante se pone a "0".
---(SE) Arrancar temporizador con retardo a la conexión
Basado en el mismo funcionamiento que el S_EVERZ, la
activación de la entrada E 0.0 de "0" a "1" (flanco creciente
en el RLO), el temporizador T5 arranca. Si transcurre el
tiempo y el estado de señal en E 0.0 sigue siendo "1", la
salida A 4.0 es "1". Si el estado de señal en la entrada E 0.0
cambia de "1" a "0", el temporizador cambia a la marcha en
vacío y A 4.0 es "0". Si el estado de señal en la entrada E 0.1
cambia de "0" a "1", el temporizador T5 se pone a 0, es decir,
se para y el valor de temporización restante se pone a "0".
14. ---(SS) Arrancar temporizador con retardo a la conexión con memoria
Basado en el mismo funcionamiento que el S_SEVERZ, la
activación de la entrada E 0.0 de "0" a "1" (flanco creciente
en el RLO), el temporizador T5 arranca. Si el estado de señal
en la entrada E 0.0 cambia de "0" a "1" antes de transcurrir el
tiempo, el temporizador se vuelve a arrancar. La salida A 4.0
es "1" si ha transcurrido el tiempo. Si el estado de señal en la
entrada E 0.1 es "1", el temporizador T5 se pone a 0, es
decir, se para y el valor de temporización restante se pone a
"0".
---(SA) Arrancar temporizador con retardo a la desconexión
Basado en el mismo funcionamiento que el S_AVERZ, la
activación de la entrada E 0.0 de "1" a "0", el temporizador
arranca.
A 4.0 es "1" si E 0.0 es "1" o si el temporizador está en
marcha. Si el estado de señal en la entrada E 0.1 cambia de
"0" a "1", el temporizador T5 se pone a 0, es decir que se
para y que el valor de temporización restante se pone a "0".
15. Contadores
Tabla correspondiente al símbolo SIMATIC de los temporizadores anteriormente explicados.
Parámetro Tipo de Area de Descripción
SIMATIC datos memoria
N de Z COUNTER Z Numero de identificación del contador, el área
depende la CPU utilizada.
ZV BOOL E, A, M, L, D Entrada de conteo adelante.
ZR BOOL E, A, M, L, D Entrada de conteo atrás.
S BOOL E, A, M, L, D Entrada para preseleccionar el contador.
ZW WORD E, A, M, L, D Valor para preseleccionar el contador.
R BOOL E, A, M, L, D Entrada de puesta a 0.
DUAL WORD E, A, M, L, D Valor actual del contador, numero binario.
DEZ WORD E, A, M, L, D Valor actual del contador, numero BCD.
Q BOOL E, A, M, L, D Estado del contador.
Parámetro SIMATIC Tipo de Area de Descripción
datos memoria
<C-Nr.> COUNTER Z Numero del contador
preseleccionado.
<Valor preseleccionado> WORD E, A, M, L, D Valor para la preselección BCD (0-
999).
Valor para preseleccionar el contador en forma de C#<valor> en el margen comprendido entre
0 y 999.
ZAEHLER (incrementar/decrementar)
La cantidad desde la que el contador comienza a contar es seleccionada en la entrada ZW al
activar S mediante un flanco ascendente. La entrada ZV incrementa en 1 por cada pulso que
recibe el valor preseleccionado. La entrada ZR decrementa en 1 por cada pulso que recibe el
valor preseleccionado. Si hay un flanco ascendente en la entrada R, el contador se pone a cero
y el valor de contaje es 0. El máximo y mínimo valor admisible por el contadores "999" y “0”, ya
que deja de incrementar y decrementar. Al producirse un flanco ascendente en ambas entradas
de contaje, el valor de contaje no varía. El estado de señal de la salida Q será "1" si el valor de
contaje es mayor que cero, y será "0" si el valor de contaje es igual a cero.
Al cambiar la entrada E 0.2 de "0" a "1", el contador toma el valor de preselección de MW10. Si
el estado de señal en E 0.0 cambia de "0" a "1", el valor del contador Z10 incrementa en "1", a
menos que el valor de Z10 fuera "999". Si E 0.1 cambia de "0" a "1", Z10 decrementa en "1", a
no ser que el valor de Z10 fuera cero. La salida A 4.0 será "1" si el valor de Z10 no es cero.
16. Z_VORN (incrementar contador)
La cantidad desde la que el contador comienza a contar es seleccionada en la entrada ZW al
activar S mediante un flanco ascendente. La entrada ZV incrementa en 1 por cada pulso que
recibe al valor preseleccionado. Si hay un flanco ascendente en la entrada R, el contador se
pone a cero y el valor de contaje es 0. en la entrada R el contador se pone a 0, y entonces el
valor de contaje es cero. El máximo valor admisible por el contadores "999", a partir de aquí, el
contador deja de incrementar.
Al cambiar la entrada E 0.2 de "0" a "1", el contador toma el valor predeterminado para MW10.
Si el estado de señal en E 0.0 cambia de "0" a "1", el valor del contador Z10 se incrementa en
"1", a menos que el valor de Z10 fuera "999". La salida A 4.0 será "1" siempre que el valor de
Z10 no sea cero.
Z_RUECK (decrementar contador)
La cantidad desde la que el contador comienza a contar es seleccionada en la entrada ZW al
activar S mediante un flanco ascendente. La entrada ZR decrementa en 1 por cada pulso que
recibe al valor preseleccionado. Si hay un flanco ascendente en la entrada R, el contador se
pone a cero y el valor de contaje es 0. en la entrada R el contador se pone a 0, y entonces el
valor de contaje es cero. El mínimo valor admisible por el contadores "0", a partir de aquí, el
contador deja de decrementar.
Al cambiar la entrada E 0.2 de "0" a "1", el contador toma el valor de preselección de MW10. Si
el estado de señal en E 0.0 cambia de "0" a "1", el valor del contador Z10 decrementa en "1", a
menos que el valor de Z10 fuera "0". La salida A 4.0 será "1" siempre que el valor de Z10 no
sea cero.
Instrucciones de bit para contadores
---(SZ) Poner el contador en el valor inicial
Se ejecuta solamente en caso de que haya un flanco ascendente en el RLO. En este caso se
transmite el valor predeterminado al contador indicado.
17. El valor ”100” quedará preseleccionado para el contador Z5 si en la entrada E 0.0 se produce
un flanco ascendente (cambio de "0" a "1"). El valor del contador Z5 no se altera en caso de
que no se produzca ningún flanco ascendente.
---(ZV) Contar adelante
Incrementa en "1" el valor del contador si hay un flanco ascendente en el RLO. El valor máximo
a partir del cual no se puede incrementar mas es "999".
Al cambiar E 0.0 de "0" a "1" (flanco ascendente en el
RLO), se carga el valor predeterminado de "100" en el
contador Z10. Si el estado de señal de E 0.1 cambia de
"0" a "1" (flanco ascendente en el RLO), se aumenta en
"1" el valor de contaje del contador Z10. Si el estado de
señal de E 0.2 es 1, el contador se pone a "0". A partir
de “999” el contador deja de incrementar.
---(ZR) Contar atrás
Decrementa en "1" el valor del contador si hay un flanco ascendente en el RLO. El valor
mínimo a partir del cual no se puede decrementar mas es “0”.
Al cambiar E 0.0 de "0" a "1" (flanco ascendente en el
RLO), se carga el valor predeterminado de "100" en el
contador Z10.
Si el estado de señal de E 0.1 cambia de "0" a "1"
(flanco ascendente en el RLO), se decrementa en "1".
A partir de “0”, el contador deja de decrementar.
18. Operaciones de conversión
BCD_I Convertir BCD a entero de 16 bits
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN WORD E, A, M, L, D Numero BCD
OUT INT E, A, M, L, D Valor entero(16 bits) de un numero BCD
Lee el contenido de la entrada IN como un numero decimal codificado
en binario de 3 dígitos (+/- 999), convertiendolo en un valor entero de
16 bits. La salida OUT contiene el resultado en forma de entero. La
salida ENO siempre tiene el mismo estado de señal que la entrada EN.
BCD_DI Convertir BCD a entero de 32 bits
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN DWORD E, A, M, L, D Numero BCD
OUT INT E, A, M, L, D Valor entero(32 bits) de un numero BCD
Lee el contenido de la entrada IN como un numero decimal codificado
en binario de 7 dígitos (+/- 9999999), convertiendolo en un valor entero
de 32 bits. La salida OUT contiene el resultado en forma de entero. La
salida ENO siempre tiene el mismo estado de señal que la entrada EN.
I_BCD Convertir entero de 16 bits a BCD
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN INT E, A, M, L, D Entero 16 bits
OUT WORD E, A, M, L, D Valor BCD de entero de16 bits
Lee el contenido de la entrada IN como un valor entero de 16 bits,
convertiendolo en un numero de 3 dígitos en forma decimal codificado
en binario (+/- 999). La salida OUT contiene el resultado. En caso de
desbordamiento ENO = 0.
DI_BCD Convertir entero de 32 bits A BCD
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN DINT E, A, M, L, D Entero 32 bits
OUT DWORD E, A, M, L, D Valor BCD de entero de 32 bits
Lee el contenido de la entrada IN como un valor entero de 32 bits,
convertiendolo en un numero de 7 dígitos en forma decimal codificado
en binario (+/- 9999999). La salida OUT contiene el resultado. En caso
de desbordamiento ENO = 0.
19. TRUNC Truncar entero
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN REAL E, A, M, L, D Numero real a convertir
OUT DINT E, A, M, L, D Parte entera del valor d´IN
Lee el contenido de la entrada IN como un valor real, convertiendolo
en un entero de 32 bits. El resultado es la parte entera del numero real
que extrae la salida OUT. En caso de desbordamiento ENO = 0.
ROUND Redondear entero
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN REAL E, A, M, L, D Valor a redondear
OUT DINT E, A, M, L, D IN, redondear al próximo entero
Lee el contenido de la entrada IN como numero real, convertiendolo en
un entero de 32 bits. El resultado es el numero entero mas próximo
(redondeo). Si el numero real se encuentra en el centro de dos
enteros, el numero par es devuelto. El resultado se deposita en la
salida OUT. En caso de desbordamiento ENO = 0.
DI_R Convertir entero en 32 bits a real
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN DINT E, A, M, L, D Entero 32 bits
OUT REAL E, A, M, L, D Numero real
Lee el contenido de la entrada IN como valor entero de 32 bits,
convertiendolo en numero real. El resultado se deposita en la salida
OUT. La salida ENO siempre tiene el mismo estado de señal que la
entrada EN.
I_DI Convertir entero de 16 bits a entero de 32 bits
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN INT E, A, M, L, D Valor entero 16 bits a convertir
OUT DINT E, A, M, L, D Resultado entero 32 bits
Lee el contenido de la entrada IN como valor entero de 16 bits,
convertiendolo en entero de 32 bits. El resultado se deposita en la
salida OUT. La salida ENO siempre tiene el mismo estado de señal
que la entrada EN.
20. CEIL Redondear numero real a entero superior
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN REAL E, A, M, L, D Numero real a convertir
OUT INT E, A, M, L, D Entero de 32 bits inferior que es mas
grande que el numero real
Lee el contenido de la entrada IN como numero real, convertiendolo en
entero de 32 bits. El resultado es el entero inferior que es mas grande
que el numero real (redondear). En caso de desbordamiento ENO = 0.
FLOOR Redondear numero real a entero inferior
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN REAL E, A, M, L, D Numero real a convertir
OUT DINT E, A, M, L, D Entero de 32 bits superior menor que el
numero real
Lee el contenido de la entrada IN como numero real, convertiendolo en
entero de 32 bits. El resultado se deposita en MD12. La salida A 0.0
ES “1” si se produce un desbordamiento o si no se procesa la
instrucción E 0.0 = 0.
INV_I Complemento a 1 de un entero de 16 bits
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN INT E, A, M, L, D Valor entero 16 bits
OUT INT E, A, M, L, D Complemento a 1 de un entero de 16
bits d´IN
Lee el contenido de la entrada IN combinando el patrón hexadecimal
W#16#FFFF mediante O-EXCLUSIVA. Esta operación invierte el
estado de cada bit. La salida ENO siempre tiene el mismo estado de
señal que la entrada EN.
INV_DI Complemento a 1 de un entero de 32 bits
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN DINT E, A, M, L, D Valor entero de 32 bits de entrada
OUT DINT E, A, M, L, D Complemento a 1 de entero de 32 bits
d´IN
Lee el contenido de la entrada IN combinando el patrón hexadecimal
W#16#FFFF mediante O-EXCLUSIVA. Esta operación invierte el
estado de cada bit. La salida ENO siempre tiene el mismo estado de
señal que la entrada EN.
21. NEG_I Complemento a 2 de un entero de 16 bits
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN INT E, A, M, L, D Valor entero de 16 bits de entrada
OUT INT E, A, M, L, D Complemento a 2 de entero de 16 bits
d´IN
Lee el contenido de la entrada IN ejecutando la operación
Complemento a 2. La operación invierte el signo (Ej: De un valor
positivo a uno negativo). La salida ENO siempre tiene el mismo estado
de señal que la entrada EN, a excepción de que si el estado de señal
de ENO es 1, se produce un desbordamiento, el estado de señal de
ENO es 0.
NEG_DI Complemento a 2 de un entero de 32 bits
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN DINT E, A, M, L, D Valor entero de 32 bits de entrada
OUT DINT E, A, M, L, D Complemento a 2 de entero de 32 bits
d´IN
Lee el contenido de la entrada IN ejecutando la operación
Complemento a 2. La operación invierte el signo (Ej: De un valor
positivo a uno negativo). La salida ENO siempre tiene el mismo estado
de señal que la entrada EN, a excepción de que si el estado de señal
de ENO es 1, se produce un desbordamiento, el estado de señal de
ENO es 0.
NEG_R Invertir el signo de un numero real
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN REAL E, A, M, L, D Valor de entrada: Numero real
OUT REAL E, A, M, L, D Numero real IN con signo negado
Lee el contenido de la entrada IN invertiendo el signo. Esta operación
equivale a una multiplicación por (-1). La operación invierte el signo
(Ej: de un valor positivo a uno negativo). La salida ENO siempre tiene
el mismo estado de señal que la entrada EN, a excepción de que si el
estado de señal de ENO es 1, se produce un desbordamiento, el
estado de señal de ENO es 0.
22. Operaciones de comparación (>, <, ==, <>, <=, >=)
Las operaciones de comparación sirven para comparar los siguientes pares de valores
numéricos:
- Dos enteros (16 bits)
- Dos enteros dobles (32 bits)
- Dos números reales (de coma flotante, 32 bits)
Los valores numéricos se cargan en los ACU's 1 y 2. Las operaciones de comparación
comparan el valor del ACU2 con el valor depositado en el ACU1.
El resultado de la comparación es un dígito binario. Un 1 significa que el resultado de la
comparación es verdadero, mientras que un 0 significa que el resultado de la comparación es
falso. Este resultado se encuentra almacenado en el bit de resultado lógico (RLO). Este
resultado puede emplearse para su posterior procesamiento.
Parámetro Carácter de relación Descripción
xx >, <, = =, <>, <=, >= Tipo de comparación
xx= Tipo de comparación: > Mayor
< Menor
== Igual
<> Diferente
>= Mayor o igual
<= Menor o igual
CMP_D >= xx Comparar enteros (32 bits) (>, <, ==, <>, <=, >=)
Parámetro Tipo de datos Area de memoria Descripción
Entrada de cuadro BOOL E, A, M, L, D Entrada de habilitación
Salida de cuadro BOOL E, A, M, L, D Salida de habilitación
IN1 DINT E, A, M, L, D Primer valor a comparar
IN2 DINT E, A, M, L, D Segundo valor a comparar
Las entradas IN1 y IN2 son comparadas mediante al criterio de comparación que se haya
seleccionado.
Símbolo
SIMATIC
La salida A 4.0 se activa si E0.0 Y E0.1 tienen el estado de señal 1 Y si MD0 >= MD4 Y si E0.2
tiene el estado de señal 1.
CMP_I >= xx Comparar enteros (16 bits) (>, <, ==, <>, <=, >=)
Parámetro Tipo de datos Area de memoria Descripción
Entrada de cuadro BOOL E, A, M, L, D Entrada de habilitación
Salida de cuadro BOOL E, A, M, L, D Salida de habilitación
IN1 INT E, A, M, L, D Primer valor a comparar
IN2 INT E, A, M, L, D Segundo valor a comparar
Las entradas IN1 y IN2 son comparadas mediante al criterio de comparación que se haya
seleccionado.
23. Símbolo
SIMATIC
La salida A 4.0 se activa si E0.0 Y E0.1 son 1 Y si MW0 >= MW2.
CMP_R >= xx Comparar números reales (>, <, ==, <>, <=, >=)
Parámetro Tipo de datos Area de memoria Descripción
Entrada de cuadro BOOL E, A, M, L, D Entrada de habilitación
Salida de cuadro BOOL E, A, M, L, D Salida de habilitación
IN1 REAL E, A, M, L, D Primer valor a comparar
IN2 REAL E, A, M, L, D Segundo valor a comparar
Las entradas IN1 y IN2 son comparadas mediante al criterio de comparación que se haya
seleccionado.
Símbolo
SIMATIC
La salida A4.0 se activa si E0.0 Y E0.1 son 1 Y si MD0 >= MD4 Y si E0.2 es 1.
Operación de transferencia (MOVE)
Parámetro Tipo de datos Area de Descripción
memoria
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN Todos los tipos de datos de 8, 16 E, A, M, L, D, Valor de la fuente
i 32 bits de longitud T, Z
O E, A, M, L, D Dirección de destino
Al activar la entrada EN se copia el valor asignado en la entrada IN, en la dirección que indica
la salida O. ENO tiene el mismo estado de señal que la entrada EN. Como muestra la tabla, la
operación MOVE solo puede copiar objetos con extensión byte, word o double word.
La dependencia del MCR solamente se activa si el cuadro MOVE se coloca dentro de un área
de MCR activa. En área MCR los datos direccionados se copian tal como se ha descrito arriba,
siempre que el MCR esté conectado y haya corriente en la entrada de habilitación, el bit
direccionado se pone a "1" (se activa) ó a "0" (se desactiva), tal como se ha descrito más
arriba. Si el MCR está desconectado y se ejecuta una operación MOVE, en la dirección
indicada por OUT se escribirá siempre el valor "0", independientemente de cuál sea el estado
actual de IN.
24. Acumuladores (ACU1 y ACU2)
El acumulador 1 (ACU 1) y el acumulador 2 (ACU 2) son dos registros universales de 32 bits
que se emplean para procesar bytes, palabras y palabras dobles. En estos acumuladores se
pueden cargar constantes o valores depositados en la memoria como operandos y ejecutar
operaciones lógicas con ellos. También es posible transferir el resultado en ACU 1 a una
dirección (un módulo de datos, una salida, etc.).
Cada acumulador puede descomponerse en dos palabras de 16 bits (palabra baja y alta). La
palabra baja contiene los bits de menor peso y la alta los de mayor peso lógico.
Todas las posibles operaciones que pueden realizarse son:
Cargar: que siempre actúa sobre ACU 1 y guarda el antiguo contenido en ACU 2 (perdiéndose
el valor antiguo de ACU 2). La carga de una palabra actúa sobre la palabra baja del ACU 1.
Transferir: copia el contenido de ACU 1 en una dirección de memoria, sin perder el valor de
los acumuladores.
Intercambiar el contenido de los acumuladores: mediante la instrucción TAK.
Realizar una operación entre los acumuladores, almacenando el resultado en ACU 1 sin
variar ACU 2. Las operaciones pueden ser de comparación, de lógica digital y de aritmética.
Definición de bytes y palabras en un registro de 32 bits (por ejemplo en el ACU 1):
25. Funciones de salto
---( JMP)--- Operacion de salto incondicional (absoluto)
Interrumpen el desarrollo normal del programa, haciendo que el mismo salte a una meta
determinada. La meta define el punto en que deberá continuar el programa. El salto se efectúa
independientemente de condiciones.
---( JMP) Saltar si la señal es 1
Funciona como un salto absoluto cuando no hay otro elemento KOP entre el conductor
izquierdo y la operación.
El salto es siempre ejecutado. Las operaciones
que se encuentren entre la operación de salto y
la meta no se ejecutan.
---( JMP) Salto en el bloque si el RLO es 1
Funciona como un salto condicional cuando el RLO de la combinación lógica anterior es "1".
Si un salto condicional no se ejecuta, el RLO cambia a "1" después de la operación de salto.
Si la entrada E 0.0 es 0 se ejecuta el salto a la
meta CAS1. Al llevarse a cabo el salto, en la
salida A 4.0 no se ejecuta la operación ”Poner
salida a “0”, aunque E 0.3 sea 1.
---( JMPN) (Saltar si la señal es 0)
Funciona como un salto condicional cuando el RLO de la combinación lógica anterior es "0". Si
un salto condicional no se lleva a cabo, el RLO cambia a "1" después de la operación de salto.
26. Si la entrada E 0.0 es 0, se ejecuta el salto a la
meta CAS1. Al ejecutarse el salto, en la salida
A 4.0 no se lleva a cabo la operación ”Poner
salida a 0”, aunque la entrada E 0.3 sea 1.
LAVEL Meta
Cada salto ---( JMP ) tiene que tener una meta (LABEL). Una meta se
compone de 4 caracteres como máximo. El primer carácter debe ser
siempre una letra, no importando si el resto son números o letras. La
meta se especifica normalmente en el operando de la instrucción de
salto, y seguida de dos puntos frente a la línea que posee la meta (ver
ejemplos).
Si E 0.0 = 1 se ejecuta el salto a la meta
CAS1. Al llevarse a cabo el salto, en la salida
A 4.0 no se ejecuta la operación ”Poner salida
a 0”, aunque E 0.3 sea 1.
27. Funciones matemáticas fundamentales (Aritmética de coma fija)
ADD_I Suma de números enteros (16 bits)
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN1 INT E, A, M, L, D Primer valor de la suma
IN2 INT E, A, M, L, D Segundo valor de la suma
OUT INT E, A, M, L, D Resultado de la suma
Realiza la suma de números enteros de las entradas IN1 e IN2 cuando
la entrada de habilitación EN esta en “1”. El resultado puede
consultarse en la salida OUT. En el caso que hubiese desbordamiento
o desbordamiento negativo por salir el resultado del rango valido de
números enteros (16 bits), el bit OV y el bit OS, serian = “1”, y la salida
ENO = “0”, por lo tanto, las siguientes operaciones a esta, combinadas
a través de ENO, no serán ejecutadas.
ADD_DI Suma de números enteros (32 bits)
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN1 DINT E, A, M, L, D Primer valor de la suma
IN2 DINT E, A, M, L, D Segundo valor de la suma
OUT DINT E, A, M, L, D Resultado de la suma
Realiza la suma de números enteros de las entradas IN1 e IN2 cuando
la entrada de habilitación EN esta en “1”. El resultado puede
consultarse en la salida OUT. En el caso que hubiese desbordamiento
o desbordamiento negativo por salir el resultado del rango valido de
números enteros (32 bits), el bit OV y el bit OS, serian = “1”, y la salida
ENO = “0”, por lo tanto, las siguientes operaciones a esta, combinadas
a través de ENO, no serán ejecutadas.
SUB_I Resta de números enteros (16 bits)
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN1 INT E, A, M, L, D Primer valor de la resta
IN2 INT E, A, M, L, D Segundo valor de la resta
OUT INT E, A, M, L, D Resultado de la resta
Realiza la resta de números enteros de las entradas IN1 e IN2 cuando
la entrada de habilitación EN esta en 1. El resultado puede consultarse
en la salida OUT. En el caso que hubiese desbordamiento o
desbordamiento negativo por salir el resultado del rango valido de
números enteros (16 bits), el bit OV y el bit OS, serian = “1”, y la salida
ENO = “0”, por lo tanto, las siguientes operaciones a esta, combinadas
a través de ENO, no serán ejecutadas.
28. SUB_DI Resta de números enteros (32 bits)
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN1 DINT E, A, M, L, D Primer valor de la resta
IN2 DINT E, A, M, L, D Segundo valor de la resta
OUT DINT E, A, M, L, D Resultado de la resta
Realiza la resta de números enteros de las entradas IN1 e IN2 cuando
la entrada de habilitación EN esta en 1. El resultado puede consultarse
en la salida OUT. En el caso que hubiese desbordamiento o
desbordamiento negativo por salir el resultado del rango valido de
números enteros (32 bits), el bit OV y el bit OS, serian = “1”, y la salida
ENO = “0”, por lo tanto, las siguientes operaciones a esta, combinadas
a través de ENO, no serán ejecutadas.
MUL_I Producto de números enteros (16 bits)
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN1 INT E, A, M, L, D Primer valor del producto
IN2 INT E, A, M, L, D Segundo valor del producto
OUT INT E, A, M, L, D Resultado del producto
Realiza el producto de números enteros de las entradas IN1 e IN2
cuando la entrada de habilitación EN esta en “1”. El resultado puede
consultarse en la salida OUT. En el caso que hubiese desbordamiento
o desbordamiento negativo por salir el resultado del rango valido de
números enteros (16 bits), el bit OV y el bit OS, serian = “1”, y la salida
ENO = “0”, por lo tanto, las siguientes operaciones a esta, combinadas
a través de ENO, no serán ejecutadas.
MUL_DI Producto de números enteros (32 bits)
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN1 DINT E, A, M, L, D Primer valor del producto
IN2 DINT E, A, M, L, D Segundo valor del producto
OUT DINT E, A, M, L, D Resultado del producto
Realiza el producto de números enteros de las entradas IN1 e IN2
cuando la entrada de habilitación EN esta en “1”. El resultado puede
consultarse en la salida OUT. En el caso que hubiese desbordamiento
o desbordamiento negativo por salir el resultado del rango valido de
números enteros (32 bits), el bit OV y el bit OS, serian = “1”, y la salida
ENO = “0”, por lo tanto, las siguientes operaciones a esta, combinadas
a través de ENO, no serán ejecutadas.
29. DIV_I División de números enteros (16 bits)
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN1 INT E, A, M, L, D Primer valor de la división
IN2 INT E, A, M, L, D Segundo valor de la división
OUT INT E, A, M, L, D Resultado de la división
Realiza la división de números enteros de las entradas IN1 e IN2
cuando la entrada de habilitación EN esta en “1”. El resultado puede
consultarse en la salida OUT. En el caso que hubiese desbordamiento
o desbordamiento negativo por salir el resultado del rango valido de
números enteros (16 bits), el bit OV y el bit OS, serian = “1”, y la salida
ENO = “0”, por lo tanto, las siguientes operaciones a esta, combinadas
a través de ENO, no serán ejecutadas.
DIV_I División de números enteros (32 bits)
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN1 DINT E, A, M, L, D Primer valor de la división
IN2 DINT E, A, M, L, D Segundo valor de la división
OUT DINT E, A, M, L, D Resultado de la división
Realiza la división de números enteros de las entradas IN1 e IN2
cuando la entrada de habilitación EN esta en “1”. El resultado puede
consultarse en la salida OUT. En el caso que hubiese desbordamiento
o desbordamiento negativo por salir el resultado del rango valido de
números enteros (32 bits), el bit OV y el bit OS, serian = “1”, y la salida
ENO = “0”, por lo tanto, las siguientes operaciones a esta, combinadas
a través de ENO, no serán ejecutadas.
MOD_DI Obtener resta de división de enteros (32 bits)
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN1 DINT E, A, M, L, D Dividendo
IN2 DINT E, A, M, L, D Divisor
OUT DINT E, A, M, L, D Resta de la división
Realiza la división de números enteros de las entradas IN1 e IN2
cuando la entrada de habilitación EN esta en “1”. La resta de la división
puede consultarse en la salida OUT. En el caso que hubiese
desbordamiento o desbordamiento negativo por salir el resultado del
rango valido de números enteros (32 bits), el bit OV y el bit OS, serian
= “1”, y la salida ENO = “0”, por lo tanto, las siguientes operaciones a
esta, combinadas a través de ENO, no serán ejecutadas.
30. Bits de resultado (>, <, >=, <=, = =, <> 0)
Estas operaciones son utilizadas para determinar la relación entre el resultado obtenido de una
función aritmética y “0” mediante la comparación.
Comparación con cero Negación de la comparación
>0---I I--- >0---I/I---
<0---I I--- <0---I/I---
>=0---I I--- >=0---I/I---
<=0---I I--- <=0---I/I---
==0---I I--- ==0---I/I---
<>0---I I--- <>0---I/I---
Comparación con cero Descripción detallada
>0 Más grande que cero
<0 Menor que cero
>=0 Más grande o igual que cero
M Menor o igual que cero
==0 Igual que cero
<>0 Diferente que cero
31. Funciones matemáticas fundamentales (Aritmética de coma flotante)
ADD_R Suma de números reales
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN1 REAL E, A, M, L, D Primer valor de la suma
IN2 REAL E, A, M, L, D Segundo valor de la suma
OUT REAL E, A, M, L, D Resultado de la suma
Realiza la suma de números reales de las entradas IN1 e IN2 cuando
la entrada de habilitación EN esta en “1”. El resultado puede
consultarse en la salida OUT. En el caso que hubiese desbordamiento
o desbordamiento negativo por salir el resultado del rango valido de
números reales, el bit OV y el bit OS, serian = “1”, y la salida ENO =
“0”, por lo tanto, las siguientes operaciones a esta, combinadas a
través de ENO, no serán ejecutadas.
SUB_R Resta de números reales
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN1 REAL E, A, M, L, D Primer valor de la resta
IN2 REAL E, A, M, L, D Segundo valor de la resta
OUT REAL E, A, M, L, D Resultado de la resta
Realiza la resta de números reales de las entradas IN1 e IN2 cuando
la entrada de habilitación EN esta en 1. El resultado puede consultarse
en la salida OUT. En el caso que hubiese desbordamiento o
desbordamiento negativo por salir el resultado del rango valido de
números reales, el bit OV y el bit OS, serian = “1”, y la salida ENO =
“0”, por lo tanto, las siguientes operaciones a esta, combinadas a
través de ENO, no serán ejecutadas.
MUL_R Producto de números reales
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN1 REAL E, A, M, L, D Primer valor del producto
IN2 REAL E, A, M, L, D Segundo valor del producto
OUT REAL E, A, M, L, D Resultado del producto
Realiza el producto de números reales de las entradas IN1 e IN2
cuando la entrada de habilitación EN esta en “1”. El resultado puede
consultarse en la salida OUT. En el caso que hubiese desbordamiento
o desbordamiento negativo por salir el resultado del rango valido de
números reales, el bit OV y el bit OS, serian = “1”, y la salida ENO =
“0”, por lo tanto, las siguientes operaciones a esta, combinadas a
través de ENO, no serán ejecutadas.
32. DIV_R División de números reales
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN1 REAL E, A, M, L, D Primer valor de la división
IN2 REAL E, A, M, L, D Segundo valor de la división
OUT REAL E, A, M, L, D Resultado de la división
Realiza la división de números reales de las entradas IN1 e IN2
cuando la entrada de habilitación EN esta en “1”. El resultado puede
consultarse en la salida OUT. En el caso que hubiese desbordamiento
o desbordamiento negativo por salir el resultado del rango valido de
números reales, el bit OV y el bit OS, serian = “1”, y la salida ENO =
“0”, por lo tanto, las siguientes operaciones a esta, combinadas a
través de ENO, no serán ejecutadas.
ABS Valor absoluto de un número real
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN REAL E, A, M, L, D Numero real
OUT REAL E, A, M, L, D Valor absoluto del numero real
Realiza el valor absoluto del numero real introducido por la entrada IN,
cuando la entrada de habilitación EN esta en “1”. En la salida OUT se
obtiene el valor absoluto. Si la salida ENO es = “1”, se realiza la
conversión.
33. Funciones matemáticas avanzadas (Aritmética de coma flotante)
SIN Calculo del seno
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN REAL E, A, M, L, D Valor de entrada: Numero real
OUT REAL E, A, M, L, D Valor de salida: seno del numero real
Realiza el calculo de seno del numero real introducido por la entrada
IN cuando en la entrada de habilitación EN hay un “1”. El numero real
representa un ángulo en radianes. Si la salida ENO es = “1”, se realiza
la conversión.
ASIN Calculo del arcoseno
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN REAL E, A, M, L, D Valor de entrada: Numero real
OUT REAL E, A, M, L, D Valor de salida: arcoseno del numero
real
Realiza el calculo del arcoseno del numero real introducido por la
entrada IN cuando en la entrada de habilitación EN hay un “1” y el
valor introducido en la entrada tiene un rango de –1<= Valor de
entrada <=1. El numero real representa un ángulo en radianes. Si la
salida ENO es = “1”, se realiza la conversión. El valor de salida tiene
un rango de -π/2<= Valor de salida <=+π/2.
COS Calculo del coseno
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN REAL E, A, M, L, D Valor de entrada: Numero real
OUT REAL E, A, M, L, D Valor de salida: coseno del numero
real
Realiza el calculo de coseno del numero real introducido por la entrada
IN cuando en la entrada de habilitación EN hay un “1”. El numero real
representa un ángulo en radianes. Si la salida ENO es = “1”, se realiza
la conversión.
ACOS Calculo del arcocoseno
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN REAL E, A, M, L, D Valor de entrada: Numero real
OUT REAL E, A, M, L, D Valor de salida: arcocoseno del
numero real
34. Realiza el calculo del arcocoseno del numero real introducido por la
entrada IN cuando en la entrada de habilitación EN hay un “1” y el
valor introducido en la entrada tiene un rango de –1<= Valor de
entrada <=1. El numero real representa un ángulo en radianes. Si la
salida ENO es = “1”, se realiza la conversión. El valor de salida tiene
un rango de 0<= Valor de salida <=+π.
TAN Calculo de la tangente
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN REAL E, A, M, L, D Valor de entrada: Numero real
OUT REAL E, A, M, L, D Valor de salida: tangente del numero
real
Realiza el calculo de la tangente del numero real introducido por la
entrada IN cuando en la entrada de habilitación EN hay un “1”. El
numero real representa un ángulo en radianes. Si la salida ENO es =
“1”, se realiza la conversión.
ATAN Calculo de la arcotangente
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN REAL E, A, M, L, D Valor de entrada: Numero real
OUT REAL E, A, M, L, D Valor de salida: tangente del numero
real
Realiza el calculo de la arcotangente del numero real introducido por la
entrada IN cuando en la entrada de habilitación EN hay un “1”. El
numero real representa un ángulo en radianes. Si la salida ENO es =
“1”, se realiza la conversión. El valor de salida tiene un rango de -π/2<=
Valor de salida <=+π/2.
EXP Calculo el exponente
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN REAL E, A, M, L, D Valor de entrada: Numero real
OUT REAL E, A, M, L, D Valor de salida: exponente del numero
real
Realiza el calculo del exponente del numero real con la base e
(=2.71828), introducido por la entrada IN cuando en la entrada de
habilitación EN hay un “1”. El numero real representa un ángulo en
radianes. Si la salida ENO es = “1”, se realiza la conversión.
35. LN Calculo del logaritmo natural
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN REAL E, A, M, L, D Valor de entrada: Numero real
OUT REAL E, A, M, L, D Valor de salida: logaritmo natural del
numero real
Realiza el calculo del logaritmo natural del numero real introducido por
la entrada IN cuando en la entrada de habilitación EN hay un “1”. El
numero real representa un ángulo en radianes. Si la salida ENO es =
“1”, se realiza la conversión.
SQR Calculo del cuadrado
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN REAL E, A, M, L, D Valor de entrada: Numero real
OUT REAL E, A, M, L, D Valor de salida: cuadrado del numero
real
Realiza el calculo del cuadrado del numero real introducido por la
entrada IN cuando en la entrada de habilitación EN hay un “1”. El
numero real representa un ángulo en radianes. Si la salida ENO es =
“1”, se realiza la conversión.
SQRT Calculo de la raíz cuadrada
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN REAL E, A, M, L, D Valor de entrada: Numero real
OUT REAL E, A, M, L, D Valor de salida: raíz cuadrada del
numero real
Realiza el calculo de la raíz cuadrada del numero real introducido por
la entrada IN cuando en la entrada de habilitación EN hay un “1”. El
numero real representa un ángulo en radianes. Si la salida ENO es =
“1”, se realiza la conversión.
36. Funciones de desplazamiento y rotación
SHL_W Desplazar 16 bits a la izquierda
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN WORD E, A, M, L, D Valor a desplazar
N WORD E, A, M, L, D Numero de posiciones
OUT WORD E, A, M, L, D Resultado de la operación de
desplazamiento
Cuando en la entrada de habilitación EN hay un “1”,se activa esta
función desplazando a la izquierda bit a bit, los bits del 0 al 15 que se
hallen en la entrada IN. La entrada N indica el numero de posiciones
de bit que se mueven en el desplazamiento a la izquierda. Si en la
entrada N se introduce un numero mayor que 16, en la salida OUT hay
un “0”. Desde la derecha se van ocupando en “0”, las posiciones de bit
que van siendo desplazadas. Si en la salida EN se obtiene un “1”, la
salida ENO indica el estado de señal del último bit desplazado.
SHR_W Desplazar 16 bits a la derecha
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN WORD E, A, M, L, D Valor a desplazar
N WORD E, A, M, L, D Numero de posiciones
OUT WORD E, A, M, L, D Resultado de la operación de
desplazamiento
Cuando en la entrada de habilitación EN hay un “1”,se activa esta
función desplazando a la derecha bit a bit, los bits del 0 al 15 que se
hallen en la entrada IN. La entrada N indica el numero de posiciones
de bit que se mueven en el desplazamiento a la derecha. Si en la
entrada N se introduce un numero mayor que 16, en la salida OUT hay
un “0”. Desde la izquierda se van ocupando en “0”, las posiciones de
bit que van siendo desplazadas. Si en la salida EN se obtiene un “1”, la
salida ENO indica el estado de señal del último bit desplazado.
SHL_DW Desplazar 32 bits a la izquierda
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN WORD E, A, M, L, D Valor a desplazar
N DWORD E, A, M, L, D Numero de posiciones
OUT WORD E, A, M, L, D Resultado de la operación de
desplazamiento
Cuando en la entrada de habilitación EN hay un “1”,se activa esta
función desplazando a la izquierda bit a bit, los bits del 0 al 31 que se
hallen en la entrada IN. La entrada N indica el numero de posiciones
de bit que se mueven en el desplazamiento a la izquierda. Si en la
entrada N se introduce un numero mayor que 32, en la salida OUT hay
un “0”. Desde la derecha se van ocupando en “0”, las posiciones de bit
que van siendo desplazadas. Si en la salida EN se obtiene un “1”, la
salida ENO indica el estado de señal del último bit desplazado.
37. SHR_DW Desplazar 32 bits a la derecha
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN WORD E, A, M, L, D Valor a desplazar
N DWORD E, A, M, L, D Numero de posiciones
OUT WORD E, A, M, L, D Resultado de la operación de
desplazamiento
Cuando en la entrada de habilitación EN hay un “1”,se activa esta
función desplazando a la derecha bit a bit, los bits del 0 al 31 que se
hallen en la entrada IN. La entrada N indica el numero de posiciones
de bit que se mueven en el desplazamiento a la derecha. Si en la
entrada N se introduce un numero mayor que 32, en la salida OUT hay
un “0”. Desde la izquierda se van ocupando en “0”, las posiciones de
bit que van siendo desplazadas. Si en la salida EN se obtiene un “1”, la
salida ENO indica el estado de señal del último bit desplazado.
SHR_I Desplazar entero de 16 bits a la derecha
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN INT E, A, M, L, D Valor a desplazar
N WORD E, A, M, L, D Numero de posiciones
OUT INT E, A, M, L, D Resultado de la operación de
desplazamiento
Cuando en la entrada de habilitación EN hay un “1”,se activa esta
función desplazando a la derecha bit a bit, los bits del 0 al 15 que se
hallen en la entrada IN. La entrada N indica el numero de posiciones
de bit que se mueven en el desplazamiento a la derecha. Si en la
entrada N se introduce un numero mayor que 16, en la salida OUT hay
un “0”. Desde la izquierda se van ocupando en “0”, las posiciones de
bit que van siendo desplazadas en caso de ser un valor entero positivo
y en “1” si el valor entero es negativo. Si en la salida EN se obtiene un
“1”, la salida ENO indica el estado de señal del último bit desplazado.
SHR_DI Desplazar entero de 32 bits a la derecha
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN DINT E, A, M, L, D Valor a desplazar
N WORD E, A, M, L, D Numero de posiciones
OUT DINT E, A, M, L, D Resultado de la operación de
desplazamiento
Cuando en la entrada de habilitación EN hay un “1”,se activa esta
función desplazando a la derecha bit a bit, los bits del 0 al 31 que se
hallen en la entrada IN. La entrada N indica el numero de posiciones
de bit que se mueven en el desplazamiento a la derecha. Si en la
entrada N se introduce un numero mayor que 32, en la salida OUT hay
un “0”. Desde la izquierda se van ocupando en “0”, las posiciones de
bit que van siendo desplazadas en caso de ser un valor entero positivo
y en “1” si el valor entero es negativo. Si en la salida EN se obtiene un
“1”, la salida ENO indica el estado de señal del último bit desplazado.
38. ROL_DW Rotar 32 bits a la izquierda
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN DWORD E, A, M, L, D Valor a rotar
N WORD E, A, M, L, D Numero de posiciones (bits) a rotar
OUT DWORD E, A, M, L, D Resultado de la operación de rotación
Cuando en la entrada de habilitación EN hay un “1”,se activa esta
función rotando bit a bit, el contenido completo de la entrada IN a la
izquierda los bits del 0 al 31. La entrada N indica el numero de
posiciones de bit que se rotan a la izquierda. Si en la entrada N se
introduce un numero mayor que 32, la palabra doble IN es rotada en
((N-1) modulo 32)+1 posiciones. Las posiciones de bit que se arrastran
desde la derecha, son ocupadas por el estado de señal de los bits
rotados a la izquierda. La palabra doble que se obtiene como resultado
de la operación de rotación, puede verse en la salida OUT. ENO indica
el estado del ultimo bit rotado, si en la entrada EN hay un “1”, esto
significa que las operaciones combinadas a la salida ENO, no serán
ejecutadas si el último bit desplazado tiene como estado “0”
ROR_DW Rotar 32 bits a la derecha
Parámetro Tipo de datos Area de memoria Descripción
EN BOOL E, A, M, L, D Entrada de habilitación
ENO BOOL E, A, M, L, D Salida de habilitación
IN DWORD E, A, M, L, D Valor a desplazar
N WORD E, A, M, L, D Numero de posiciones (bits) a rotar
OUT DWORD E, A, M, L, D Resultado de la operación de rotación
Cuando en la entrada de habilitación EN hay un “1”,se activa esta
función rotando bit a bit, el contenido completo de la entrada IN a la
derecha los bits del 0 al 31. La entrada N indica el numero de
posiciones de bit que se rotan a la derecha. Si en la entrada N se
introduce un numero mayor que 32, la palabra doble IN es rotada en
((N-1) modulo 32)+1 posiciones. Las posiciones de bit que se arrastran
desde la izquierda, son ocupadas por el estado de señal de los bits
rotados a la derecha. La palabra doble que se obtiene como resultado
de la operación de rotación, puede verse en la salida OUT. ENO indica
el estado del ultimo bit rotado, si en la entrada EN hay un “1”, esto
significa que las operaciones combinadas a la salida ENO, no serán
ejecutadas si el último bit desplazado tiene como estado “0”
39. Sistemas de protección de control
Relé de control
Relé físico que corta el suministro de corriente en entradas y salidas del autómata
programable, manteniendo la alimentación de la CPU y así poder revisar el estado del
programa o controlar los errores, etc.
L1
L2
L3
N
Transformador
separador
Pulsador de
emergencia
Pulsador de
paro
Fuente de
Pulsador de
alimentacion
marcha 24 Vcc
para E/S
Master Control Relay (MCR)
Empleado para inhibir el funcionamiento de una determinada parte del programa en casos de
emergencia o puestas en marcha del sistema sin que ello afecte a la alimentación de la CPU
(secuencia de instrucciones que escribe un cero en lugar del valor calculado, o bien no
modifican el valor de memoria existente).
---(MCRA) Inicio de un Master Control Relay
Activa un Master Control Relay. Una vez efectuada esta operación se pueden programar las
áreas MCR utilizando las operaciones ---(MCR<) y ---(MCR>).
MCRA activa el MCR. Los circuitos entre
las operaciones MCR< y MCR> (salidas
A 4.0, A 4.1) se ejecutan de forma que
E 0.0 = 1 (MCR está ON): la salida A 4.0 se
pone a "1" si la entrada E 0.3 está en el
estado "1", y no cambia si la entrada E 0.3
está en el estado "0". A la salida A 4.1 se le
asigna el estado de la entrada E 0.4.
E 0.0 = 0 (MCR está OFF): la salida A 4.0
no varía, independientemente del estado
de E 0.3; la salida A 4.1 es "0",
independientemente de cuál sea el estado
de E 0.4. En el circuito siguiente, la
operación ---(MCRD) desactiva el MCR.
Esto significa que ya no se pueden
programar áreas MCR con las dos
operaciones ---(MCR<) y ---(MCR>).
40. ---(MCRD) Final de un Master Control Relay
Desactiva un MCR. Después de esta operación no se pueden programar áreas MCR.
MCRA activa el MCR. Los circuitos entre
las operaciones MCR< y MCR> (salidas
A 4.0, A 4.1) se ejecutan de forma que
E 0.0 = 1 (MCR está ON): la salida A 4.0
se pone a "1" si la entrada E 0.3 está en
el estado "1"; A 4.0 no se modifica si la
entrada E 0.3 está en el estado "0". A la
salida A 4.1 se le asigna el estado de la
entrada E 0.4.
E 0.0 = 0 (MCR está OFF): la salida A 4.0
no varía, independientemente del estado
de E 0.3, y la salida A 4.1 es "0",
independientemente del estado de E 0.4
En el circuito siguiente, la operación ---
(MCRD) desactiva el MCR. Esto significa
que ya no se pueden programar áreas
MCR con la pareja de operaciones
---(MCR<) y ---(MCR>).
---(MCR<) Conectar un Master Control Relay
Almacena el RLO en la pila MCR y abre un área MCR. La pila de paréntesis MCR es una pila
LIFO (last in, first out) que da cabida, como máximo, a 8 registros (8 niveles). Si la pila ya está
llena, la operación ---(MCR<) provoca un error de la pila MCR (MCRF). Los siguientes
elementos dependen del MCR y varían según cuál sea el estado de señal del RLO que se
almacena en la pila MCR mientras está abierta un área MCR: