Escolar Documentos
Profissional Documentos
Cultura Documentos
ST-PROG2
PROGRAMACIN DE PLCs CON SIMATIC STEP7
NIVEL AVANZADO
OPERACIONES DE SALTO
BLOQUES DE ORGANIZACIN
8.1 RELACIN GENERAL DE BLOQUES
ST PROG2 Nro #
s
8.2 PRINCIPALES OBs
9
ST PROG2 Nro #
ii
s
INTRODUCCIN AL LENGUAJE DE PROGRAMACIN
STEP 7
Operando
Con quien realizamos la
operacin?
002: U
0.1
Parmetro
Diferencia operandos con el
mismo identificador
Identificador
Qu tipo de operando es?
Direccin
Indica la posicin relativa de una
instruccin dentro de un mdulo
ST PROG2 Nro #
s
Esquema de funciones (FUP)
Es un lenguaje de programacin grfico que utiliza los cuadros de
lgebra booleana para representar la lgica. En FUP se utilizan
smbolos normalizados para representar las operaciones. El smbolo
dentro del rectngulo indica la operacin realizada.
Esquema de contactos (KOP)
Este tipo de representacin tambin es conocida como Diagrama
Escalera o Ladder, las instrucciones son representadas con
smbolos elctricos. KOP permite observar fcilmente el sentido de
la circulacin de la corriente a travs de contactos, elementos
complejos y bobinas.
La Fig 1-1 muestra un ejemplo de estas dos ltimas representaciones.
Opcionalmente para programar los sistemas de automatizacin
SIMATIC S7-300/400 se dispone de los siguientes lenguajes suministrables
opcionalmente:
SCL para S7
Es un lenguaje textual de alto nivel conforme a la norma DIN EN 611313. Contiene estructuras similares a las de los lenguajes de
programacin Pascal y C. Por lo tanto, S7 SCL, es adecuado sobre
todo para los usuarios ya acostumbrados a trabajar con lenguajes
de alto nivel. S7 SCL se puede emplear para programar funciones
frecuentes o muy complejas.
GRAPH para S7
Es un lenguaje de programacin que permite describir controles
secuenciales (programacin de cadenas secuenciales) A tal efecto,
el proceso se divide en etapas. Estas ltimas contienen sobre todo
acciones para controlar las salidas. El paso de una etapa a otra se
controla mediante condiciones de transicin.
HI GRAPH para S7
Es un lenguaje de programacin que permite describir cmodamente los
procesos asincrnicos y no secuenciales en forma de grafos de
estado. A tal efecto, la instalacin se divide en unidades funcionales
que pueden adoptar diversos estados. Las unidades funcionales se
pueden sincronizar mediante el intercambio de mensajes.
CFC para S7 y M7
Es un lenguaje de programacin para interconectar grficamente las
funciones existentes. Estas ltimas abarcan una amplia gama que
incluye desde combinaciones lgicas sencillas hasta regulaciones y
controles complejos. Se dispone de un gran nmero de funciones en
forma de bloques contenidos en una librera. La programacin se
ST PROG2 Nro #
s
lleva a cabo copiando lo bloques en un plano y contactndose entre
s mediante lneas
FUP
Esquema de Funciones
KOP
Esquema de Contactos
E 1.0
E 1.1
E 1.0
E 1.1
E 1.3
E 1.4
E 1.2
A 4.0
&
E 1.2
E 1.3
&
E 1.4
1
A4.0
AWL
AWL
FUP
KOP
ST PROG2 Nro #
s
1.2 OPERANDOS
La tabla 1-1 muestra los operandos disponibles en STEP 7:
OPERANDO
TIPO
FUNCIN
Interfases del proceso al PLC
Interfases del PLC al proceso
Memoria para resultados binarios
intermedios
Memoria para resultado digitales
intermedios
Memorias para la realizacin de
temporizaciones
Memorias para la realizacin de
contadores
Interfase del proceso al PLC
Valor numrico fijo
Valor numrico fijo
Valor numrico fijo
Valor numrico fijo
E
A
M
Entradas
Salidas
Marcas
Datos
Temporizadores
Contadores
P
B#
D#
L#
P#
Periferia
Constante, 2 4 bytes
Constante de fecha IEC
Constante entera (32 bits)
Constante puntero
S5T#
T#
TOD#
C#
2#
16#
OB,FC, FB, DB
el
s
El programa de usuario es la suma de todas las instrucciones y
declaraciones para procesar las seales que controlarn la mquina o proceso.
Este programa es estructurado y est subdividido en varias secciones llamadas
bloques.
Los Bloques de organizacin forman la interfase entre el programa de
usuario y el programa del sistema. Este llama a estos bloques cuando ocurre
cierto evento. Tambin estn disponibles bloques de funciones estndar
para aplicaciones generales. A pesar de que estos bloques son parte del
programa del sistema, pueden ser llamados por el programa de usuario.
La Fig. 1-3 resume lo explicado anteriormente
Integrado en la CPU
Funciones
especiales
integradas
Bloque de
Funciones
estndar
Programa
Del
Sistema
Programa
De
Usuario
Bloques de
organizacin
En mdulo de memoria usuario
Programacin lineal.
Programacin estructurada.
ST PROG2 Nro #
s
1.4.1
Programacin lineal
Programacin estructurada
BLOQUES DE
PROCESAMIIENTO
FB
FC
OB
FB BLOQUE DE FUNCIONES
FC FUNCIONES
OB BLOQUE DE ORGANIZACIN
PROGRAMA
DE
APLICACIN
DB
DB BLOQUE DE DATOS
BLOQUES DE
ALMACENAMIENTO
ST PROG2 Nro #
s
Mdulos de Organizacin (OB)
Encargados de gestionar el programa de mando.
Funciones (FC)
Son mdulos de programa sin memoria. Incluyen el programa de
usuario dividido segn aspectos funcionales o tecnolgicos.
Mdulos de Funcin (FB)
Son mdulos de programa con memoria. En ellos se programan partes
del programa; como por ejemplo: valores de consigna, constantes,
temporizaciones, textos, ......
Usando llamadas es posible abandonar un mdulo y saltar a otro. Esto
permite anidar hasta 32 niveles en mdulos de programa, funcionales y de
paso. Si el anidado supera los 32 niveles el PLC pasa a STOP generando el
siguiente mensaje de error: "Desbordamiento en pila de mdulos STUEB".
1.4.3
Estructura de un mdulo
Cada mdulo se compone de:
Encabezamiento con los datos relativos a tipo, nmero y longitud del
mdulo.
Cuerpo, incluye el programa STEP 7 o los datos.
1.4.4
ST PROG2 Nro #
s
La Fig. 1-4 muestra la forma de construir un programa de mando
estructurado. Adems pone de relieve la importancia de los mdulos de
organizacin.
1.4.5
Funciones (FC)
OB1
FC1
FC11
FB2
FC200
Programa de mando
ST PROG2 Nro #
s
FC ELECCION DE FORMA DE OPERACION
FC 45 TAREA
PRINCIPAL
FC 10 OPERACION
MANUAL
FC OPERACION AUTOMATICA
ST PROG2 Nro #
s
FB1
FC 3 "MULTIPLICAR"
FB4
FC 80 "REGULACION"
FB3
FB11
1.4.7
ST PROG2 Nro # 10
OB1
FC1
DB255
DB4
DB0
DW0
DW1
DW2
DW3
DW4
FC17
TDW255
DW255
ST PROG2 Nro # 11
FC 20
DB
Vlido
DB
vlido
FC7
DB 10
AUF DB 10
DB10
CALL FC 20
AUF DB 11
DB10
DB 11
ST PROG2 Nro # 12
s
PROCESAMIENTO DE VALORES ANALGICOS
ST PROG2 Nro # 13
ST PROG2 Nro # 14
ST PROG2 Nro # 15
ST PROG2 Nro # 16
ST PROG2 Nro # 17
ST PROG2 Nro # 18
s
Termopares con unin fra interna
El esquema muestra el mdulo analgico SM331 con conexin de
termopares a travs de cable de compensacin y unin fra interna.
ST PROG2 Nro # 19
s
se representan como cifra de coma fija en forma de complemento de 2. De ello
resulta la correspondencia siguiente:
ST PROG2 Nro # 21
ST PROG2 Nro # 22
ST PROG2 Nro # 23
ST PROG2 Nro # 24
ST PROG2 Nro # 25
s
sobre la carpeta .Equipo SIMATIC 300. y inicie en la derecha la configuracin
del hardware haciendo doble click en la carpeta Hardware.
ST PROG2 Nro # 26
ST PROG2 Nro # 27
ST PROG2 Nro # 28
Tipo de medicin
TM2H y TM4H representan transductores de intensidad a 2 y 4 hilos
respectivamente
--- significa que los canales estn desactivados. Si desactiva canales el
resto se procesa de forma ms rpida.
Adaptadores de margen de medida
Se muestra la posicin necesaria de los adaptadores de margen de
medida.
Frecuencia perturbadora
La frecuencia de la red alterna de alimentacin puede tener efecto
negativo sobre los valores medidos, particularmente en caso de mrgenes de
tensin pequeos y si se usan termopares. Con este parmetro se define la
frecuencia de red existente en su sistema.
Este parmetro tiene tambin efecto sobre la resolucin, el tiempo de
integracin y el tiempo base de ejecucin del grupo de canales.
Resolucin (precisin)
El valor analgico se memoriza en una palabra de 16 bits.
ST PROG2 Nro # 29
s
Tiempo de integracin
El mdulo requiere un cierto tiempo para medir la seal analgica. Este
tiempo se denomina tiempo de integracin. Cuanto mayor sea la precisin
requerida ms tardar el mdulo en medir la seal.
Tiempo de ejecucin base
Adems del tiempo de integracin, el mdulo requiere un determinado
tiempo para su digitalizacin.
Alarma de proceso
Slo los canales 0 y 2 estn en condiciones de activar alarma de
proceso. Las alarmas de proceso pueden utilizarse para activar una alarma
cuando la seal analgica supera por exceso o por defecto determinados
lmites ajustados.
2.3 TARJETAS DE SALIDA ANALGICA
Las tarjetas de salida analgica se encargan de transformar en
tensiones o corrientes los valores digitales procesados en la CPU. Existen
diversas tarjetas con separacin galvnica que cubren determinados mrgenes
de tensiones e intensidades.
2.3.1 Tipos de tarjetas de salida
En los mdulos de salidas analgicas con separacin galvnica, el punto
de referencia del circuito de medicin MANA no est unido galvnicamente al
borne M de la CPU.
Los mdulos de entradas analgicas con separacin galvnica slo se
utilizarn cuando pueda aparecer una diferencia de potencial UISO entre el
punto de referencia del circuito de medicin MANA y el borne M de la CPU.
Conectando un cable equipotencial entre el borne MANA y el borne M de la
CPU, se garantiza que UISO no rebase el valor admisible.
En el caso de mdulos de salidas analgicas sin separacin galvnica
es preciso crear un enlace entre el punto de referencia del circuito analgico
MANA y el borne M de la CPU.
ST PROG2 Nro # 30
s
Para ello, unir el borne MANA al borne M de la CPU. Una diferencia de
potencial entre MANA y el borne M de la CPU puede ser el origen de una
falsificacin de la seal analgica.
2.3.2 Conexin de cargas a una salida de tensin
La conexin de cargas a una salida de tensin es en principio realizable
en conexin a 4 hilos y a 2 hilos. Sin embargo, estos dos tipos de conexin no
son posibles en cada mdulo de salidas analgicas.
Conexin a 4 hilos de cargas en un mdulo con separacin
galvnica
Este tipo de conexin permite obtener una alta precisin en la carga. A
tal efecto, los conductores de sensor S y S+ deben conectarse directamente a
la carga. Esto permite medir y regular la tensin directamente en la carga.
Las perturbaciones o cadas de tensin pueden provocar diferencias de
potencial entre el conductor de sensor S y el circuito de referencia analgica
MANA. Dicha diferencia de potencial no deber rebasar un valor admisible, ya
que ello repercutira en la precisin de la seal analgica.
ST PROG2 Nro # 31
ST PROG2 Nro # 32
los mrgenes
de salida
ST PROG2 Nro # 33
ST PROG2 Nro # 34
s
2.4 PROGRAMACIN DE MDULOS ANALGICOS
Se prevn los bloques FC 105 SCALE (graduar valores) y FC 106
UNSCALE (degraduar valores) para introducir y editar valores analgicos en
STEP 7. Estos bloques FC aparecen en la biblioteca estndar de STEP 7, en
el subdirectorio TI-S7-Converting Blocks (descrito en la ayuda online STEP 7
para los FC).
Estos mdulos funcionales ejecutan conversiones entre el margen
nominal de una tarjeta analgica y un margen normalizado, que el usuario
puede especificar. El margen nominal es el valor estandarizado, es decir si
hablamos de corriente: 0 ... 20mA 4 ... 20mA; voltaje: 0 ... +10V 10 ...
+10V; termopar: 0 ... +50mV 50 ... +50mV; termoresistencias: 0 ... 266C.
El margen normalizado es el valor escalado y dado por usuario.
2.4.1 Leer y normalizar un valor analgico FC 105
2.4.1.1
s
2.4.1.2
Ejemplo
s
(activada). En este ejemplo, el valor entero 22 se convierte en un valor REAL
escalar entre 0.0 y 100.0, y ste se escribe en la salida OUT. El valor de
entrada es BIPOLAR, tal como lo indica el estado de seal de la entrada E2.0.
Si la funcin se ejecuta sin errores, los estados de seal de la salida de
habilitacin (ENO) y de la salida A 4.0 se ponen a 1 (activadas), y el valor de
respuesta toma el valor W#16#0000.
s
BIPOLAR: Se supone que el valor entero de salida debe estar entre
-27648 y 27648, por lo tanto,
K1 = -27648.0 y K2 = +27648.0
UNIPOLAR: Se supone que el valor entero de salida debe estar entre
0 y 27648, por lo tanto,
K1 = 0.0 y K2 = +27648.0
Si el valor real de entrada queda fuera del rango comprendido entre los
lmites inferior y superior de su tipo (BIPOLAR o UNIPOLAR), la salida (OUT)
se fija al valor lmite ms cercano (a LO_LIM o a HI_LIM), y se devuelve un
error.
2.4.2.2
s
2.4.2.3
Si el valor real de entrada queda fuera del rango comprendido entre los
lmites inferior y superior de su tipo (BIPOLAR o UNIPOLAR), la salida (OUT)
se une al valor lmite ms cercano (a LO_LIM o a HI_LIM), y se devuelve un
error. El estado de seal de la salida de habilitacin (ENO) se pone a 0, y el
valor de respuesta (RET_VAL) toma el valor W#16#0008.
2.4.2.4
Ejemplo
ST PROG2 Nro # 40
ST PROG2 Nro # 41
s
OPERACIONES LGICAS CON PALABRAS
3.1 DESCRIPCIN
Las operaciones lgicas con palabras comparan bit a bit pares de
palabras (16 bits) y palabras dobles (32 bits) segn la lgica de boole. Las
operaciones lgicas con bits permiten ejecutar las ms diversas funciones.
Si el resultado en la salida OUT es diferente de 0, el bit A1 de la palabra
de estado se pone a "1".
Si el resultado en la salida OUT es igual a 0, el bit A1 de la palabra de
estado se pone a "0".
Se dispone de las siguientes operaciones lgicas con palabras:
Palabra de estado
Es un registro de la memoria de la CPU que contiene 16 bits que
pueden direccionarse en el operando de las operaciones lgicas con bits y con
palabras. Solo nos sern de utilidad los 9 primeros bits, estando reservados el
uso de los 7 ltimos. A continuacin pasaremos a describir cada bit:
3.2 WAND_W
3.2.1 Smbolo
3.2.2 Descripcin
WAND_W (Y lgica con palabras) se activa cuando la entrada de
habilitacin (EN) tiene el estado de seal "1". Esta operacin combina
entonces los dos valores de palabra de IN1 y IN2 bit a bit realizando una Y
lgica. Los valores se interpretan como puras configuraciones binarias. El
resultado queda depositado en la salida OUT. La salida de habilitacin ENO
tiene el mismo estado de seal que EN.
ST PROG2 Nro # 43
s
3.2.3 Palabra de estado
3.2.4 Ejemplo
3.3.1 Smbolo
ST PROG2 Nro # 44
s
3.3.2 Descripcin
WOR_W (O lgica con palabras) se activa cuando la entrada de
habilitacin (EN) tiene el estado de seal "1". Esta operacin combina los dos
valores de las palabras IN1 y IN2 bit a bit realizando una O lgica. Los valores
se interpretan como puras configuraciones binarias. El resultado queda
depositado en la salida OUT. La salida de habiliatacin ENO tiene el mismo
estado de seal que EN.
3.3.3 Palabra de estado
3.3.4 Ejemplo
3.4.1 Smbolo
ST PROG2 Nro # 45
3.4.2 Descripcin
WXOR_W (O exclusiva con palabras) se activa cuando la entrada de
habilitacin (EN) tiene el estado de seal "1". Esta operacin lgica combina
los dos valores de las palabra IN1 y IN2 bit a bit realizando una O exclusiva.
Los valores se interpretan como puras configuraciones binarias. El resultado
queda depositado en la salida OUT. La salida de habiliatacin ENO tiene el
mismo estado de seal que EN.
3.4.3 Ejemplo
3.5.1 Smbolo
ST PROG2 Nro # 46
3.5.2 Descripcin
WAND_DW (Y lgica con dobles palabras) se activa cuando la entrada
de habilitacin (EN) tiene el estado de seal "1". Esta operacin combina los
dos valores de las dobles palabras IN1 y IN2 bit a bit realizando una Y lgica.
Los valores se interpretan como puras configuraciones binarias. El resultado
queda depositado en la salida OUT. La salida de habilitacin ENO tiene el
mismo estado de seal que EN.
3.5.3 Palabra de estado
3.5.4 Ejemplo
ST PROG2 Nro # 47
s
3.6.1 Smbolo
3.6.2 Descripcin
WOR_DW (O lgica con dobles palabras) se activa cuando la entrada
de habilitacin (EN) tiene el estado de seal "1". Esta operacin combina los
dos valores de las dobles palabras IN1 y IN2 bit a bit realizando una O lgica.
Los valores se interpretan como puras configuraciones binarias. El resultado
queda depositado en la salida OUT. La salida de habiliatacin ENO tiene el
mismo estado de seal que EN.
3.6.3 Palabra de estado
3.6.4 Ejemplo
ST PROG2 Nro # 48
3.7.1 Smbolo
3.7.2 Descripcin
WXOR_DW (O exclusiva con dobles palabras) se activa cuando la
entrada de habilitacin (EN) tiene el estado de seal "1". Esta operacin lgica
combina los dos valores de las dobles palabras IN1 y IN2 bit a bit realizando
una O exclusiva. Los valores se interpretan como puras configuraciones
binarias. El resultado queda depositado en la salida OUT. La salida de
habilitacin ENO tiene el mismo estado de seal que EN.
3.7.3 Palabra de estado
ST PROG2 Nro # 49
s
3.7.4 Ejemplo
ST PROG2 Nro # 50
s
OPERACIONES ARITMTICAS CON ENTEROS
4.1 DESCRIPCIN
Las operaciones aritmticas con enteros sirven para ejecutar las
siguientes operaciones aritmticas con dos enteros (16 y 32 bits):
A1 y A0
OV
OS
ST PROG2 Nro # 51
4.3 ADD_I
SUMAR ENTEROS
4.3.1 Smbolo
ST PROG2 Nro # 52
4.3.2 Descripcin
ADD_I (Sumar enteros) suma las entradas IN1 y IN2 si el estado de
seal en la entrada de habilitacin (EN) es "1". La salida OUT proporciona el
resultado. Si el resultado es un valor fuera del margen vlido para enteros (de
16 bits), los bits OV y OS son 1 y ENO es 0, de forma que otras operaciones
que siguen a esta operacin aritmtica, combinadas a travs de ENO
(ejecucin en cascada), no se ejecutan.
4.3.3 Palabra de estado
4.3.4 Ejemplo
ST PROG2 Nro # 53
s
4.4 SUB_I
RESTAR ENTEROS
4.4.1 Smbolo
4.4.2 Descripcin
SUB_I (Restar enteros) resta el valor de IN2 del valor de IN1 si el estado
de seal en la entrada de habilitacin (EN) es "1". La salida OUT proporciona
el resultado. Si el resultado es un valor fuera del margen vlido para enteros
(de 16 bits), los bits OV y OS son "0" y ENO es "0", de forma que otras
operaciones que siguen a esta operacin aritmtica, combinadas a travs de
ENO (ejecucin en cascada), no se ejecutan.
4.4.3 Palabra de estado
4.4.4 Ejemplo
El cuadro SUB_I se activa si E 0.0 es 1. El resultado de la sustraccin MW0 MW2 se deposita en MW10. Si el resultado es un valor fuera del margen vlido
para enteros (de 16 bits) o si el estado de seal de E 0.0 es 0, la salida A 4.0
se pone a 1.
ST PROG2 Nro # 54
s
4.5 MUL_I
MULTIPLICAR ENTEROS
4.5.1 Smbolo
4.5.2 Descripcin
MUL_I (Multiplicar enteros) multiplica los valores de las entradas IN1 y
IN2 si el estado de seal en la entrada de habilitacin (EN) es "1". La salida
OUT proporciona el resultado. Si el resultado es un valor fuera del margen
vlido para enteros (de 16 bits), los bits OV y OS son "1" y ENO es "0", de
forma que otras operaciones que siguen a esta operacin aritmtica,
combinadas a travs de ENO (ejecucin en cascada), no se ejecutan.
4.5.3 Palabra de estado
4.5.4 Ejemplo
s
4.6 DIV_I
DIVIDIR ENTEROS
4.6.1 Smbolo
4.6.2 Descripcin
DIV_I (Dividir enteros) divide el valor de IN1 entre el valor de IN2 si el
estado de seal en la entrada de habilitacin (EN) es "1". La salida OUT
proporciona el resultado. Si el resultado es un valor fuera del margen vlido
para enteros, los bits OV y OS son "1" y ENO es "0", de forma que otras
operaciones que siguen a esta operacin aritmtica, combinadas a travs de
ENO (ejecucin en cascada), no se ejecutan.
4.6.3 Palabra de estado
4.6.4 Ejemplo
s
4.7 ADD_DI
4.7.1 Smbolo
4.7.2 Descripcin
ADD_DI (Sumar enteros dobles) suma las entradas IN1 y IN2 si el
estado de seal en la salida de habilitacin es "1". La salida OUT proporciona
el resultado. Si el resultado es un valor fuera del margen vlido para enteros
dobles, los bits OV y OS son 1 y ENO es 0, de forma que otras operaciones
que siguen a esta operacin aritmtica, combinadas a travs de ENO
(ejecucin en cascada), no se ejecutan.
4.7.3 Palabra de estado
4.7.4 Ejemplo
ST PROG2 Nro # 57
s
enteros dobles, o si el estado de seal de E 0.0 es 0, la salida A 4.0 se pone a
1.
4.8 SUB_DI
4.8.1 Smbolo
4.8.2 Descripcin
SUB_DI (Restar enteros dobles) resta el valor IN2 del valor de IN1 si el
estado de seal en la entrada de habilitacin (EN) es "1". La salida OUT
proporciona el resultado. Si el resultado es un valor fuera del margen vlido
para enteros dobles, los bits OV y OS son "1" y ENO es "0", de forma que otras
operaciones que siguen a esta operacin aritmtica, combinadas a travs de
ENO (ejecucin en cascada), no se ejecutan.
4.8.3 Palabra de estado
4.8.4 Ejemplo
El cuadro SUB_DI se activa si E 0.0 es 1. El resultado de la sustraccin MD0 MD4 se deposita en MD10. Si el resultado es un valor fuera del margen vlido
ST PROG2 Nro # 58
s
para enteros dobles, o si el estado de seal de E 0.0 es 0, la salida A 4.0 se
pone a 1.
4.9 MUL_DI
4.9.1 Smbolo
4.9.2 Descripcin
MUL_DI (Multiplicar enteros dobles) multiplica los valores de las
entradas IN1 y IN2 si el estado de seal en la entrada de habilitacin es "1". La
salida OUT proporciona el resultado. Si el resultado es un valor fuera del
margen vlido para enteros dobles, los bits OV y OS son "1" y ENO es "0", de
forma que otras operaciones que siguen a esta operacin aritmtica,
combinadas a travs de ENO (ejecucin en cascada), no se ejecutan.
4.9.3 Palabra de estado
4.9.4 Ejemplo
s
vlido para enteros dobles, o si el estado de seal de E 0.0 es 0, la salida A 4.0
se pone a 1.
4.10DIV_DI
4.10.1 Smbolo
4.10.2 Descripcin
DIV_DI (Dividir enteros dobles) divide el valor de IN1 entre el valor de
IN2 si el estado de seal en la entrada de habilitacin (EN) es "1". La salida
OUT proporciona el resultado (parte entera). El elemento Dividir enteros dobles
no genera ningn resto de divisin. Si el resultado es un valor fuera del margen
vlido para enteros dobles, los bits OV y OS son "1" y ENO es "0", de forma
que otras operaciones que siguen a esta operacin aritmtica, combinadas a
travs de ENO (ejecucin en cascada), no se ejecutan.
4.10.3 Palabra de estado
4.10.4 Ejemplo
ST PROG2 Nro # 60
s
El cuadro DIV_DI se activa si E 0.0 es 1. El resultado de la divisin de MD0 por
MD4 se deposita en MD10. Si el resultado es un valor fuera del margen vlido
para enteros dobles, o si el estado de seal de E 0.0 es 0, la salida A 4.0 se
pone a 1.
4.11MOD_DI
OBTENER EL RESULTADO DE UNA DIVISN DE
ENTEROS DOBLES
4.11.1 Smbolo
4.11.2 Descripcin
MOD_DI (Obtener el resto de una divisin de enteros dobles) divide el
valor de IN1 entre el valor de IN2 si el estado de seal en la entrada de
habilitacin (EN) es "1". La salida OUT proporciona el resultado, esto es, el
resto de la divisin. Si el resultado es un valor fuera del margen vlido para
enteros dobles, los bits OV y OS son "1" y ENO es "0", de forma que otras
operaciones que siguen a esta operacin aritmtica, combinadas a travs de
ENO (ejecucin en cascada), no se ejecutan.
4.11.3 Palabra de estado
4.11.4 Ejemplo
ST PROG2 Nro # 61
ST PROG2 Nro # 62
s
OPERACIONES ARITMTICAS EN COMA FLOTANTE
ST PROG2 Nro # 63
s
Las tablas siguientes muestran el estado de seal de los bits de la
palabra de estado para los resultados de operaciones con nmeros en coma
flotante (32 bits).
5.3 ADD_R
5.3.1 Smbolo
ST PROG2 Nro # 64
s
5.3.3 Descripcin
ADD_R (Sumar nmeros en coma flotante) suma los valores de las
entradas IN1 y IN2 cuando la entrada de habilitacin (EN) tiene el estado de
seal "1". El resultado se deposita en la salida OUT. Si el resultado se
encuentra fuera del margen vlido para nmeros en coma flotante
(desbordamiento positivo o negativo), el bit OV y el bit OS son 1 y ENO es 0,
de forma que las dems operaciones que siguen a esta operacin aritmtica,
combinadas a travs de ENO (ejecucin en cascada), no se ejecutan.
5.3.4 Ejemplo
5.4.1 Smbolo
ST PROG2 Nro # 65
s
5.4.3 Descripcin
SUB_R (Restar nmeros en coma flotante) resta los valores IN2 de IN1
cuando la entrada de habilitacin (EN) tiene el estado de seal "1". El resultado
de la sustraccin se deposita en la salida OUT. Si el resultado se encuentra
fuera del margen vlido para nmeros en coma flotante (desbordamiento
positivo o negativo), los bits OV y OS son 1 y ENO es 0, de forma que las
dems operaciones que siguen a esta operacin aritmtica, combinadas a
travs de ENO (ejecucin en cascada), no se ejecutan.
5.4.4 Ejemplo
5.5.1 Smbolo
ST PROG2 Nro # 66
s
5.5.3 Descripcin
MUL_R (Multiplicar nmeros en coma flotante) multiplica el valor de IN1
por el valor de IN2 cuando la entrada de habilitacin (EN) tiene el estado de
seal "1". El resultado se deposita en la salida OUT. Si el resultado se
encuentra fuera del margen vlido para nmeros en coma flotante
(desbordamiento positivo o negativo), el bit OV y el bit OS son 1 y ENO es 0,
de forma que las dems operaciones operaciones que siguen a esta operacin
aritmtica, combinadas a travs de ENO (ejecucin en cascada), no se
ejecutan.
5.5.4 Ejemplo
5.6.1 Smbolo
ST PROG2 Nro # 67
s
5.6.2 Palabra de estado
5.6.3 Descripcin
DIV_R (Dividir nmeros en coma flotante) divide el valor de IN1 entre el
valor de IN2 cuando la entrada de habilitacin (EN) tiene el estado de seal
"1". El resultado se deposita en la salida OUT. Si el resultado se encuentra
fuera del margen vlido para nmeros en coma flotante (desbordamiento
positivo o negativo), el bit OV y el bit OS son 1 y ENO es 0, de forma que las
dems operaciones que siguen a esta operacin aritmtica, combinadas a
travs de ENO (ejecucin en cascada), no se ejecutan.
5.6.4 Ejemplo
5.7.1 Smbolo
ST PROG2 Nro # 68
s
5.7.2 Palabra de estado
5.7.3 Descripcin
ABS (Calcular el valor absoluto de un nmero en coma flotante) calcula
el valor absoluto de un nmero en coma flotante.
5.7.4 Ejemplo
CALCULAR EL CUADRADO
5.8.1 Smbolo
ST PROG2 Nro # 69
s
5.8.3 Descripcin
SQR (Calcular el cuadrado de un nmero en coma flotante) calcula el
cuadrado de un nmero flotante.
5.9 SQRT
5.9.1 Smbolo
5.9.3 Descripcin
SQRT (Calcular la raz cuadrada de un nmero en coma flotante) calcula
la raz cuadrada de un nmero en coma flotante. Esta operacin arroja un
resultado positivo si el operando es mayor que "0". nica excepcin: la raz
cuadrada de -0 es -0.
5.10EXP
CALCULAR EL EXPONENTE
5.10.1 Smbolo
ST PROG2 Nro # 70
5.10.3 Descripcin
EXP (Calcular el exponente de un nmero en coma flotante) calcula el
exponente de un nmero en coma flotante con la base e (=2,71828...).
5.11LN
5.11.1 Smbolo
ST PROG2 Nro # 71
s
5.11.3 Descripcin
LN (Calcular el logaritmo natural de un nmero en coma flotante) calcula
el logaritmo natural de un nmero en coma flotante.
5.12SIN
CALCULAR EL SENO
5.12.1 Smbolo
5.12.3 Descripcin
SIN (Calcular el seno de un nmero en coma flotante) calcula el seno de
un nmero en coma flotante. El nmero en coma flotante representa aqu un
ngulo en radianes.
5.13COS
CALCULAR EL COSENO
5.13.1 Smbolo
ST PROG2 Nro # 72
5.13.3 Descripcin
COS (Calcular el coseno de un nmero en coma flotante) calcula el
coseno de un nmero en coma flotante, siendo ste el valor de un ngulo
expresado en radianes.
5.14TAN
CALCULAR LA TANGENTE
5.14.1 Smbolo
ST PROG2 Nro # 73
s
5.14.3 Descripcin
TAN (Calcular la tangente de un nmero en coma flotante) calcula la
tangente de un nmero en coma flotante, siendo ste el valor de un ngulo
expresado en radianes.
5.15ASIN
CALCULAR EL ARCOSENO
5.15.1 Smbolo
5.15.3 Descripcin
ASIN (Calcular el arcoseno de un nmero en coma flotante) calcula el
arcoseno de un nmero en coma flotante, cuyo margen de definicin es -1 <=
Valor de entrada <= 1. El resultado representa aqu un ngulo en radianes en
el margen de valores
-/2 Valor de salida +/2
siendo = 3,1415....
5.16ACOS
CALCULAR EL ARCOCOSENO
5.16.1 Smbolo
ST PROG2 Nro # 74
5.16.3 Descripcin
ACOS (Calcular el arcocoseno de un nmero en coma flotante) calcula
el arcocoseno de un nmero en coma flotante, cuyo margen de definicin es -1
<= Valor de entrada <= 1. El resultado es el valor de un ngulo expresado en
radianes, valor que queda dentro del margen de valores
0 valor de salida +
siendo = 3,1415....
5.17ATAN
CALCULAR LA ARCOTANGENTE
5.17.1 Smbolo
ST PROG2 Nro # 75
s
5.17.2 Palabra de estado
5.17.3 Descripcin
ATAN (Calcular la arcotangente de un nmero en coma flotante) calcula
la arcotangente de un nmero en coma flotante. El resultado es un ngulo
expresado en radianes que queda dentro del margen
-/2 valor de salida /2
siendo = 3,1415....
ST PROG2 Nro # 76
s
OPERACIONES DE DESPLAZAMIENTO Y ROTACIN
OPERACIONES DE DESPLAZAMIENTO
6.1 DESCRIPCIN
Las operaciones de desplazamiento sirven para desplazar bit a bit el
contenido de la entrada IN, hacia la izquierda o hacia la derecha (v. Registros
de la CPU). El desplazamiento hacia la izquierda multiplica el contenido de la
entrada IN por potencias de 2; el desplazamiento hacia la derecha divide el
contenido de la entrada IN por potencias de 2. Por ejemplo, desplazando el
equivalente binario del valor decimal 3 tres bits hacia la izquierda se obtiene en
el acumulador el equivalente binario del valor decimal 24. Desplazando el
equivalente binario del valor decimal 16 dos bits hacia la derecha se obtiene en
el acumulador el equivalente binario del valor decimal 4.
El nmero que se introduce en el parmetro de entrada N indica el
nmero de bits a desplazar. Las posiciones que quedan libres despus de
ejecutar la operacin de desplazamiento se rellenan con ceros o con el estado
de seal del bit de signo (0 significa positivo y 1 significa negativo). El estado
de seal del ltimo bit desplazado se carga en el bit A1 de la palabra de
estado. Los bits A0 y OV de la palabra de estado se ponen a 0. Para
interpretar el bit A1 pueden utilizarse las operaciones de salto.
Se dispone de las operaciones de desplazamiento siguientes:
ST PROG2 Nro # 77
s
6.2 SHR_I
6.2.1 Smbolo
ST PROG2 Nro # 78
6.2.4 Ejemplo
6.3.1 Smbolo
ST PROG2 Nro # 79
6.3.4 Ejemplo
ST PROG2 Nro # 80
s
El cuadro SHR_DI se activa si E 0.0 es 1. MD0 se carga y se desplaza a
la derecha tantos bits como indica MW4. El resultado se escribe en MD10. La
salida A 4.0 se pone a 1.
6.4 SHL_W
6.4.1 Smbolo
ST PROG2 Nro # 81
6.4.4 Ejemplo
6.5.1 Smbolo
ST PROG2 Nro # 82
6.5.4 Ejemplo
ST PROG2 Nro # 83
s
6.6 SHL_DW
6.6.1 Smbolo
6.6.4 Ejemplo
ST PROG2 Nro # 84
s
El cuadro SHL_DW se activa si E 0.0 tiene el estado de seal "1". MD0
se carga y se desplaza a la izquierda tantos bits como indica MW4. La palabra
doble del resultado se escribe en MD10. La salida A 4.0 se pone a 1.
6.7 SHR_DW
6.7.1 Smbolo
ST PROG2 Nro # 85
6.7.4 Ejemplo
ST PROG2 Nro # 86
6.9 ROL_DW
6.9.1 Smbolo
ST PROG2 Nro # 87
6.9.4 Ejemplo
6.10.1 Smbolo
ST PROG2 Nro # 88
s
6.10.2 Descripcin de la operacin
ROR_DW (Rotar 32 bits a la derecha) se activa si la entrada de
habilitacin (EN) tiene el estado de seal "1". La operacin ROR_DW hace
rotar el contenido completo de la entrada IN bit a bit a la derecha. La entrada N
indica el nmero de posiciones de bit en que se va a efectuar la rotacin. Si N
es mayor que 32 la palabra doble IN es rotada en ((N-1) modulo 32)+1
posiciones. Las posiciones de bit que se arrastran de la izquierda se ocupan
con el estado de seal de los bits que fueron rotados a la derecha (rotacin a
la derecha).
La palabra doble del resultado de la operacin de rotacin queda
depositada en la salida OUT. La operacin ROR_DW pone los bits A0 y OV a
"0" si N es diferente de 0.
El estado de seal de ENO es igual al de de EN.
6.10.4 Ejemplo
s
OPERACIONES DE SALTO
ST PROG2 Nro # 90
s
7.2 ---(JMP)---
SALTO ABSOLUTO
7.2.1 Smbolo
7.2.4 Ejemplo
ST PROG2 Nro # 91
s
7.3 ---(JMP)---
SALTO CONDICIONAL
7.3.1 Smbolo
7.3.4 Ejemplo
s
7.4 ---(JMPN)---
SALTAR SI LA SEAL ES 0
7.4.1 Smbolo
7.4.4 Ejemplo
ST PROG2 Nro # 93
s
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 operacin "Poner
salida a 0", aunque la entrada E 0.3 sea 1.
7.5 LABEL
7.5.1 Smbolo
ST PROG2 Nro # 94
s
BLOQUES DE ORGANIZACIN
al arrancar la CPU
en ejecucin cclica o tambin intermitente temporal
a determinadas horas o en determinados das
despus de transcurrir un tiempo preestablecido
al producirse errores
al dispararse alarmas de proceso.
ST PROG2 Nro # 95
ST PROG2 Nro # 96
Descripcin
ST PROG2 Nro # 97
s
8.2.1.2
Descripcin
una vez
cada minuto
cada hora
cada da
cada semana
cada mes
cada ao
a final de mes
ST PROG2 Nro # 98
s
Nota
Si un OB de alarma horaria se procesa mensualmente, para la fecha inicial
slo pueden indicarse los das 1, 2, ... 28.
8.2.2.2
Modo de funcionamiento
Descripcin
ST PROG2 Nro # 99
s
El sistema operativo de la CPU del S7 ejecuta el OB 1 de forma cclica:
Una vez finalizada la ejecucin del OB 1, el sistema operativo comienza a
ejecutarlo de nuevo.
El sistema operativo de la CPU llama al OB 81 cuando se presenta un
evento activado por un fallo en la alimentacin normal (slo en el S7400) o de
respaldo en tampn (tanto en caso de un evento entrante como de uno
saliente).
Si se produce un fallo de la pila en el S7-400, slo se llama al OB 81 al
estar activada la comprobacin de la pila mediante el interruptor BATT.INDIC.
La CPU no pasa al estado operativo STOP si no est programado el OB 81.
Con ayuda de las SFCs 39 hasta 42 puede bloquearse, retardarse o
habilitarse de nuevo el OB de fallo de alimentacin.
8.2.4 OB de avera de CPU (OB 84)
8.2.4.1
Descripcin
Modos de arranque
8.2.5.2
Descripcin
s
despus de ALIMENTACION ON;
si se cambia de STOP a RUN-P el selector de modo de operacin;
tras la solicitud por una funcin de comunicacin (por comando de men
desde la unidad PG o por llamada de los bloques de funcin para
comunicaciones 19 "START", o 21 "RESUME" en otra CPU);
sincronizacin en el modo multiprocesador;
en un sistema H, tras acoplar (slo en la CPU de reserva).
En funcin del evento de arranque, de la CPU existente y de sus
parmetros ajustados, se activa el OB de rearranque asignado (OB 100, OB
101 y OB 102). Mediante la programacin correspondiente es posible realizar
ajustes previos para el programa cclico (excepcin: en un sistema H, tras el
acoplamiento se ejecuta un arranque en la CPU de reserva, pero sin llamar al
OB de arranque).
8.2.6 OB de error de programacin (OB 121)
8.2.6.1
Descripcin
s
COMUNICACIN MEDIANTE DATOS GLOBALES
9.1 SINOPSIS
9.1.1 Introduccin
La comunicacin de datos globales (comunicacin GD) es una variante
de comunicacin sencilla integrada en el sistema operativo de las CPUs S7300/S7-400.
La comunicacin GD permite intercambiar datos cclicamente entre
CPUs a travs del interface MPI. El intercambio cclico de datos se lleva a cabo
con la imagen normal del proceso. La comunicacin de datos globales se
configura con STEP 7; la transferencia de los datos globales es cosa del
sistema, por lo que no se tiene que programar.
Los apartados siguientes describen cmo calcular, con ayuda de los
datos tcnicos indicados para cada CPU (nmero de crculos GD, tamao y
nmero de paquetes GD, etc.), la cantidad de datos que pueden intercambiar
las CPUs mediante el procedimiento "Comunicacin GD". Adems, figuran:
condiciones de emisin y recepcin a tener en cuenta
una frmula para calcular aproximadamente el tiempo de respuesta
9.1.2 Datos globales
Los datos globales que se utilizan en la comunicacin mediante datos
globales (comunicacin GD) son las siguientes reas de operandos de la
CPU:
entradas, salidas (de la imagen del proceso)
marcas
reas de bloques de datos
temporizadores, contadores (no recomendables, porque los valores del
emisor ya no son actuales; configurables slo como reas de
operandos)
Las reas de la periferia (PE y PA) y los datos locales no se pueden
utilizar para la comunicacin mediante datos globales.
9.1.3 Transferencia de datos
La comunicacin mediante datos globales funciona segn el
procedimiento broadcast, es decir, no se acusa recibo de los datos globales. El
emisor no recibe informacin alguna acerca de si hay un receptor que ha
recibido los datos globales enviados y, en caso de haberlo, cul es. Si el
ST PROG2 Nro # 102
s
proceso requiere una transferencia de datos segura, utilice otro servicio, como
por ejemplo, las funciones S7.
9.1.4 Subredes para la comunicacin de datos globales
La comunicacin GD es posible
o bien va una subred MPI (entre distintos equipos)
o bien va el bus posterior (p.ej., entre CPUs S7 en un bastidor en modo
multiprocesador)
un
rea
de
operandos
en
un
rea
s
En base a los datos tcnicos arriba mencionados se puede determinar la
cantidad de datos que pueden intercambiar cclicamente las CPUs que estn
interconectadas a travs de una subred MPI o a travs del bus posterior del
S7-400. A continuacin explicaremos como se crean los paquetes GD a partir
de los datos de emisin y cuntos crculos GD se requieren en cada caso.
9.2.2 Cantidad necesaria de paquetes GD
Un paquete GD es un telegrama que enva una sola CPU de una
pasada a una o varias CPUs. Un paquete GD contiene como mximo la
siguiente cantidad de datos netos (v. Tambin Datos tcnicos de las CPUs):
mx. 22 bytes en el caso del S7-300
mx. 54 bytes en el caso del S7-400
Ejemplo 1
Queremos utilizar el rea de emisin ms grande de una CPU S7-300
para poder enviar desde un bloque de datos. En la CPU receptora se ha de
utilizar el rea de marcas. Introduza el rea de emisin de la CPU S7-300 en la
tabla de datos globales:
DB8.DBB0:22 (es decir, 22 bytes de datos del DB8 a partir del byte de
datos 0)
Introduzca el rea de recepcin de otra CPU (tiene que ser igual de
grande que el rea de emisin) en la tabla de datos globales:
MW100:11 (es decir, 11 palabras de marcas a partir de MW 100)
Reglas
Si no slo desea enviar datos del rea de operandos, tiene que restar
dos bytes por cada rea de datos adicional del nmero mximo de datos
netos.
Un operando constituido por un bit (p. ej. M 4.1) consume" un byte de
datos netos del paquete GD.
Ejemplo 2
Queremos enviar desde el bloque de datos y desde la imagen del
proceso de las salidas. En este caso, el tamao del paquete GD no debe
superar los 20 bytes.
Introduza las reas de emisin de la CPU S7-300 en la tabla de datos
globales:
DB8.DBB0:10 (es decir, 10 bytes de datos del DB8 a partir del byte de
datos 0)
AW0:10 (es decir, 10 palabras de salida a partir de AW0)
s
Introduzca las reas de recepcin de las otras CPUs igual que en el
primer ejemplo; el ancho de los datos tiene que corresponderse con el rea
de emisin.
9.2.3 Cantidad necesaria de crculos GD
Qu es un crculo GD?
Todas las CPUs que intervienen en el intercambio de un paquete de
datos comn en calidad de emisoras o receptoras, "consumen" un crculo GD.
s
Consejo
En ocasiones puede resultar conveniente definir a una CPU como la
receptora de un paquete GD, aunque esta CPU no necesite el paquete (como
la CPU 4 del ejemplo). Si las CPUs emisora y receptora son una misma CPU
se puede reducir el nmero de crculos GD p. ej. de la CPU emisora. En este
caso, las CPUs 1,2 y 3 del ejemplo consumiran solamente un crculo GD, ya
que ambos paquetes GD se agruparan en uno solo.
Nmero mximo de circuitos GD
El nmero de circuitos GD est limitado a 16. Las CPUs afectadas por
ms de 16 circuitos GD no pueden cargarse con la configuracin de datos
locales. No obstante, STEP 7 no impide guardar y compilar tablas GD con un
nmero superior de circuitos GD.
9.3 CONDICIONES DE EMISIN Y RECEPCIN
9.3.1 Condiciones de emisin y recepcin
El factor de ciclo permite definir para cada CPU que interviene en el
intercambio del paquete GD lo siguiente:
cada cuntos ciclos se enva el paquete GD (slo para la CPU que est
marcada como emisor).
cada cuntos ciclos se recibe el paquete GD
Excepcin: factor de ciclo 0 significa que el paquete GD se transfiere
por control de eventos(y no cclicamente), (slo en el S7-400 con la SFC
60/SFC 61).
Ejemplo
Un factor de ciclo de 20 para un paquete GD en la CPU emisora
significa que la CPU enviar el paquete GD desde el punto de control del ciclo
cada 20 ciclos.
Un factor de ciclo de 8 para un paquete GD en la CPU receptora
significa que la CPU enviar el paquete GD desde el punto de control del ciclo
cada 8 ciclos, es decir, que recibir el paquete GD en el rea de operandos).
Factor de ciclo del emisor:
En cualquier caso, debe ceirse a las condiciones siguientes para no
sobrecargar la comunicacin de la CPU:
CPUs S7-300: Factor de ciclo Tiempo de ciclo >= 60 ms
CPUs S7-400: Factor de ciclo Tiempo de ciclo >= 10 ms
ST PROG2 Nro # 107
s
Factor de ciclo del receptor:
Para evitar la prdida de paquetes GD hay que recibir ms paquetes GD
de los que se envan.
Para ello se ha de cumplir lo siguiente:
factor de ciclo (receptor) tiempo de ciclo (receptor) < factor de ciclo
(emisor) tiempo de ciclo (emisor).
9.3.2 Relacin entre factor de ciclo y tiempo de ciclo
Factores de ciclo permitidos
Los factores de ciclo permitidos tanto para el emisor como para el
receptor son 0 y valores entre 1 y 255. No obstante, tenga en cuenta que los
factores de ciclo muy bajos sobrecargan excesivamente a la CPU.
Recomendacin: mantenga el factor de ciclo predeterminado y vigile
que el producto del ciclo de tiempo x factor de ciclo sea superior a 0,5s. Si
quiere una comunicacin ms eficaz utilice otros mecanismos, p. ej. el
acoplamiento va PROFIBUS-DP.
El factor de ciclo 0 es caracterstico de una transferencia de datos
controlada por eventos va las SFCs en el programa de usuario (no todas las
CPUs lo permiten). Si no introduce ningn factor de ciclo, se utilizar el ajuste
predeterminado.
Ejemplo de factores de ciclo
El producto del tiempo de ciclo x factor de ciclo determina el intervalo en
el que se sucede el intercambio de datos globales. Supongamos que el
programa de usuario de una CPU 412 tiene un tiempo de ciclo de
aproximadamente 50ms. El factor de ciclo predeterminado es de22.
50 ms x 22 = 1100ms , ello significa que aprox. Cada 1,1s se envan o
reciben datos globales en esta CPU.
Si el programa de usuario hace aumentar el tiempo de ciclo a p. ej.
80ms, cada 80ms x 22 = 1760s se enviarn o recibirn datos globales. Para
volver a alcanzar el valor de 1100s, hay que volver a calcular el factor de ciclo:
Factor de ciclo (nuevo) = 1100ms/80ms = 13,75 , es decir,
prolongando el ciclo hay que ajustar el factor de ciclo a 14 para mantener el
mismo intervalo.
s
9.4 CONFIGURAR Y GUARDAR LA COMUNICACIN GD
9.4.1 Procedimiento para configurar y guardar la comunicacin GD
Se tiene que haber configurado una subred MPI con todos los equipos
necesarios.
s
Ejemplo
1. Abrir la tabla GD
2. Rellenar la tabla GD
s
3. 1era compilacin de la tabla GD