Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Índice
Bloques CFC 1
SIMATIC Glosario
Índice alfabético
CFC Library
Manual
11/2006
A5E00848822-01
Consignas de seguridad
Este manual contiene las informaciones necesarias para la seguridad personal así como para la
prevención de daños materiales. Las informaciones para su seguridad personal están resaltadas con
un triángulo de advertencia; las informaciones para evitar únicamente daños materiales no llevan dicho
triángulo. De acuerdo al grado de peligro las consignas se representan, de mayor a menor peligro,
como sigue:
! Peligro
Significa que, si no se adoptan las medidas preventivas adecuadas se producirá la muerte, o bien
lesiones corporales graves.
! Advertencia
Significa que, si no se adoptan las medidas preventivas adecuadas puede producirse la muerte o
bien lesiones corporales graves.
! Precaución
Con triángulo de advertencia significa que si no se adoptan las medidas preventivas adecuadas,
pueden producirse lesiones corporales.
Precaución
Sin triángulo de advertencia significa que si no se adoptan las medidas preventivas adecuadas,
pueden producirse daños materiales.
Atención
Significa que puede producirse un resultado o estado no deseado si no se respeta la consigna de
seguridad correspondiente.
Si se dan varios niveles de peligro se usa siempre la consigna de seguridad más estricta en cada caso.
Si en una consigna de seguridad con triángulo de advertencia se alarma de posibles daños personales,
la misma consigna puede contener también una advertencia sobre posibles daños materiales.
Personal cualificado
El equipo/sistema correspondiente sólo deberá instalarse y operarse respetando lo especificado en
este documento. Sólo está autorizado a intervenir en este equipo el personal cualificado. En el sentido
del manual se trata de personas que disponen de los conocimientos técnicos necesarios para poner en
funcionamiento, conectar a tierra y marcar los aparatos, sistemas y circuitos de acuerdo con las normas
estándar de seguridad.
Uso conforme
Considere lo siguiente:
! Advertencia
El equipo o los componentes del sistema sólo se podrán utilizar para los casos de aplicación
previstos en el catálogo y en la descripción técnica, y sólo asociado a los equipos y componentes de
Siemens y de tercera que han sido recomendados y homologados por Siemens.
El funcionamiento correcto y seguro del producto presupone un transporte, un almacenamiento, una
instalación y un montaje conforme a las prácticas de la buena ingeniería, así como un manejo y un
mantenimiento rigurosos.
Marcas registradas
Todos los nombres marcados con ® son marcas registradas de Siemens AG. Los restantes nombres y
designaciones contenidos en el presente documento pueden ser marcas registradas cuya utilización
por terceros para sus propios fines puede violar los derechos de sus titulares.
Exención de responsabilidad
Hemos comprobado la concordancia del contenido de esta publicación con el hardware y el software
descritos. Sin embargo, como es imposible excluir desviaciones, no podemos hacernos responsable de
la plena concordancia. El contenido de esta publicación se revisa periódicamente; si es necesario, las
posibles correcciones se incluyen en la siguiente edición.
EN
EN (enable): entrada de habilitación.
Este parámetro, disponible únicamente en la representación gráfica de CFC, está ocultado y
permite activar y desactivar la ejecución del bloque. Gracias a ello, el bloque se llamará (en
el código de ejecución del PLC) sólo si ha sido habilitado con EN = 1.
ENO
ENO: equivale al RB (resultado binario – v. descripción de STEP 7).
ENO = 1 indica que el resultado de la función es válido. Cuando ocurran errores que hayan
sido detectados por el sistema operativo y/o por el tratamiento de errores incluido en la
lógica del bloque, ENO = 0 indicará que el resultado no es válido. Esta información se puede
utilizar para conmutar a otros valores (p. ej. valores de seguridad) y, si fuese necesario,
visualizar avisos en la OS (estación de operador).
El parámetro ENO será también FALSE si EN = FALSE.
SAMPLE_T
Todos los bloques con el parámetro de entrada SAMPLE_T deben procesarse en tareas
periódicas (p. ej. OB 35: alarma temporizada 100 ms). Si se incorporan en tareas no cíclicas
(p. ej. alarmas de proceso), estos bloques proporcionan resultados erróneos.
Arranque
Puesto que las CPUs S7-300 no detectan automáticamente el nivel de rearranque completo,
en los bloques en los que se ha programado un comportamiento específico de arranque
(ELEM_300) se utiliza la palabra de marcas 0 (MW0) como marca de arranque. Por tanto,
esta palabra de marcas no se puede modificar en el programa de usuario.
Para que el arranque se realice de forma correcta es preciso insertar en el esquema CFC
tantas funciones RESTART (FC 70) como CPUs S7-300.
Procedimiento:
1. Abra el editor de ejecución con el comando de menú Edición > Secuencia de ejecución
o mediante el símbolo de la barra de herramientas.
2. En el OB 100, coloque el bloque RESTART en primer lugar.
3. Borre el bloque RESTART en la tarea cíclica (ajuste estándar: OB 35)
El bloque se llamará sólo en el OB 100.
Familia Aplicación
BIT_LGC Bloques lógicos con el tipo de datos BOOL
WRD_LGC Bloques lógicos con los tipos de datos WORD y DWORD
COMPARE Bloques para comparar dos valores de entrada del mismo tipo
CONVERT Bloques para convertir tipos de datos
MATH_FP Bloques aritméticos con el tipo de datos REAL
MATH_INT Bloques aritméticos con los tipos de datos INT y DINT
FLIPFLOP Bloques Flip-Flop
SHIFT Bloques de desplazamiento
MULTIPLX Bloques multiplex
COUNTER Bloques de contaje
IMPULS Bloques para generar o procesar impulsos
TIME Bloques para introducir o modificar la hora y la fecha, así como intervalos
CONTROL Bloques de regulación
SYSTEM Bloques para funciones del sistema
1.4.1 BIT_LGC
AND Combinación Y
OR Combinación O
XOR Combinación de antivalencia
NAND Combinación NAND
NOR Combinación NOR
NOT Combinación NOT
1.4.2 AND
Función
Este bloque combina las entradas formando una Y (AND) lógica. La salida es 1 cuando
todas las entradas son 1. De lo contrario, la salida será 0. Se puede modificar el número de
entradas IN.
Conexiones
1.4.3 OR
Función
Este bloque combina las entradas formando una O lógica (OR). La salida será 1 cuando al
menos una entrada sea 1. Si todas las entradas son 0, la salida será 0. Se puede modificar
el número de entradas IN.
Conexiones
1.4.4 XOR
Función
Este bloque combina las entradas formando una O exclusiva. La salida será 0 cuando todas
las entradas tengan el mismo valor. De lo contrario, la salida será 1. Se puede modificar el
número de entradas IN.
Conexiones
1.4.5 NAND
Función
Este bloque combina las entradas formando una Y lógica, que seguidamente será negada.
La salida sólo es 0 cuando todas las entradas son 1. Puede modificarse el número de
entradas IN.
Conexiones
1.4.6 NOR
Función
Este bloque combina las entradas formando una O (OR) lógica, que seguidamente será
negada. La salida sólo es 1 cuando todas las entradas son 0. Puede modificarse el número
de entradas IN.
Conexiones
1.4.7 NOT
Función
Este bloque invierte la entrada.
Tabla de verdad
IN OUT
0 1
1 0
Conexiones
1.5.1 WRD_LGC
1.5.2 WAND_W
Función
Este bloque combina las entradas palabra a palabra formando una Y (AND) lógica. Los bits
de todas las entradas que tengan los mismos valores se combinan en una Y (AND) lógica y
el resultado se escribe en el bit correspondiente de la salida. Puede modificarse el número
de entradas IN.
Conexiones
1.5.3 WOR_W
Función
Este bloque combina las entradas palabra a palabra formando una O (OR) lógica. Los bits
de todas las entradas que tengan los mismos valores se combinan en una O (OR) lógica y
el resultado se escribe en el bit correspondiente de la salida. Puede modificarse el número
de entradas IN.
Conexiones
1.5.4 WXOR_W
Función
Este bloque combina las entradas palabra a palabra formando una O exclusiva. Los bits de
todas las entradas que tengan los mismos valores se combinan en una O (OR) exclusiva
lógica y el resultado se escribe en el bit correspondiente de la salida. El bit es 0 si los bits
con igual significancia de todas las entradas tienen un mismo valor. De lo contrario, el bit
será 1. Puede modificarse el número de entradas IN.
Conexiones
1.5.5 WNAND_W
Función
Este bloque combina las entradas palabra a palabra formando una Y-NO lógica. Los bits de
todas las entradas que tengan los mismos valores se combinan en una Y (AND) lógica, que
seguidamente es negada, y el resultado se escribe en el bit correspondiente de la salida.
Puede modificarse el número de entradas IN.
Conexiones
1.5.6 WNOR_W
Función
Este bloque combina las entradas palabra a palabra formando una O-NO lógica. Los bits de
todas las entradas que tengan los mismos valores se combinan en una O (OR) lógica, que
seguidamente es negada, y el resultado se escribe en el bit correspondiente de la salida.
Puede modificarse el número de entradas IN.
Conexiones
1.5.7 WNOT_W
Función
Este bloque invierte la entrada palabra a palabra. Cada bit de la entrada es negado y escrito
en el bit equivalente de la salida.
Ejemplo
IN 2# 1 1 1 1_0 0 0 0_1 1 1 1_0 0 0 0_1 1 0 1
OUT 2# 0 0 0 0_1 1 1 1_0 0 0 0_1 1 1 1_0 0 1 0
Conexiones
1.5.8 WAND_DW
Función
Este bloque combina las entradas palabra doble a palabra doble formando una Y (AND)
lógica. Los bits de todas las entradas que tengan los mismos valores se combinan en una Y
(AND) lógica y el resultado se escribe en el bit correspondiente de la salida. Puede
modificarse el número de entradas IN.
1.5.9 WOR_DW
Función
Este bloque combina las entradas palabra doble a palabra doble formando una O (OR)
lógica. Los bits de todas las entradas que tengan los mismos valores se combinan en una O
(OR) lógica y el resultado se escribe en el bit correspondiente de la salida. Puede
modificarse el número de entradas IN.
1.5.10 WXOR_DW
Función
Este bloque combina las entradas palabra doble a palabra doble formando una O (OR)
exclusiva. Los bits de todas las entradas que tengan los mismos valores se combinan en
una O (OR) exclusiva lógica y el resultado se escribe en el bit correspondiente de la salida.
El bit es 0 si los bits con igual significancia de todas las entradas tienen un mismo valor. De
lo contrario, el bit será 1. Puede modificarse el número de entradas IN.
1.5.11 WNAND_DW
Función
Este bloque combina las entradas palabra doble a palabra doble formando una Y-NO lógica.
Los bits de todas las entradas que tengan los mismos valores se combinan en una Y (AND)
lógica, que seguidamente es negada, y el resultado se escribe en el bit correspondiente de
la salida. Puede modificarse el número de entradas IN.
1.5.12 WNOR_DW
Función
Este bloque combina las entradas palabra doble a palabra doble formando una O-NO lógica.
Los bits de todas las entradas que tengan los mismos valores se combinan en una O (OR)
lógica, que seguidamente es negada, y el resultado se escribe en el bit correspondiente de
la salida. Puede modificarse el número de entradas IN.
1.5.13 WNOT_DW
Función
Este bloque invierte la entrada palabra a palabra. Cada bit de la entrada es negado y escrito
en el bit equivalente de la salida.
1.6.1 COMPARE
1.6.2 CMP_I
Función
Este bloque compara dos magnitudes de entrada y pone las salidas a los valores siguientes:
GT = 1 si IN1 > IN2,
GE = 1 si IN1 t IN2,
EQ = 1 si IN1 = IN2
LT = 1 si IN1 < IN2
LE = 1 si IN1 d IN2
En todos los casos, las demás cuatro salidas se ponen a 0.
Conexiones
1.6.3 CMP_DI
Función
Este bloque compara dos magnitudes de entrada y pone las salidas a los valores siguientes:
GT = 1 si IN1 > IN2,
GE = 1 si IN1 t IN2
EQ = 1 si IN1 = IN2
LT = 1 si IN1 < IN2
LE = 1 si IN1 d IN2
En todos los casos, las demás cuatro salidas se ponen a 0.
Conexiones
1.6.4 CMP_R
Función
Este bloque compara dos magnitudes de entrada y pone las salidas a los valores siguientes:
GT = 1 si IN1 > IN2,
GE = 1 si IN1 t IN2
EQ = 1 si IN1 = IN2
LT = 1 si IN1 < IN2
LE = 1 si IN1 d IN2
En todos los casos, las demás cuatro salidas se ponen a 0.
Conexiones
1.6.5 CMP_T
Función
Este bloque compara dos magnitudes de entrada y pone las salidas a los valores siguientes:
GT = 1 si IN1 > IN2,
GE = 1 si IN1 t IN2
EQ = 1 si IN1 = IN2
LT = 1 si IN1 < IN2
LE = 1 si IN1 d IN2
En todos los casos, las demás cuatro salidas se ponen a 0.
Conexiones
1.7.1 CONVERT
Introducción
En CFC sólo se pueden unir salidas de bloques (tipo origen) a entradas de bloques (tipo
destino) cuando ambos tipos de datos sean idénticos (p .ej. una salida REAL con una
entrada REAL). Para interconectar tipos de datos diferentes deben utilizarse bloques de
conversión. Estos bloques disponen de entradas y salidas de tipos distintos y convierten el
valor de la entrada al tipo de datos de la salida.
Reglas de conversión
Los nombres de tipos de los bloques de conversión se forman a partir de las abreviaturas de
los tipos de datos de origen y de destino, que se unen mediante el carácter "_".
En la tabla siguiente se describen brevemente las reglas de conversión de cada uno de los
bloques. Si el valor de entrada IN no se encuentra dentro del rango admisible, el valor de
salida OUT no será válido y se indicará por medio de la salida de comprobación ENO = 0.
ENO se puede evaluar para p. ej. utilizar un valor sustitutivo o de seguridad en el
procesamiento subsiguiente.
En la librería CONVERT se han implementado bloques que convierten n valores de un tipo
de datos en m valores de otro tipo de datos (m y n también pueden tener el mismo valor).
Los siguientes bloques convierten un valor de un tipo de datos en un valor de otro tipo de
datos:
Los siguientes bloques convierten varios valores del tipo de datos BOOL en un solo valor
del tipo BYTE, WORD o DWORD:
Los siguientes bloques convierten un valor del tipo BYTE, WORD o DWORD en varios
valores del tipo BOOL:
1.7.2 BY_DW
Función
El byte de IN se copia al byte bajo de OUT, en tanto que los bytes altos se ponen a 0.
Tratamiento de errores
No aplicable
Conexiones
1.7.3 BY_W
Función
El byte de IN se copia al byte bajo de OUT, en tanto que el byte alto se pone a 0.
Tratamiento de errores
No aplicable
Conexiones
1.7.4 DI_DW
Función
Copia la cadena de bits de IN a OUT.
Tratamiento de errores
No aplicable
Conexiones
1.7.5 DI_I
Función
Interpreta la cadena de bits en IN como INT y la copia a OUT.
Tratamiento de errores
Si los valores de IN se encuentran fuera del rango de -32 768 ... 32 767, ENO = 0 y OUT
tendrá un valor no válido.
Conexiones
1.7.6 DI_R
Función
Convierte el valor de IN en un número REAL y lo copia a OUT.
Tratamiento de errores
No aplicable
Conexiones
1.7.7 DW_DI
Función
Copia la cadena de bits de IN a OUT.
Tratamiento de errores
No aplicable
Conexiones
1.7.8 DW_R
Modo de funcionamiento
El bloque se limita a transferir la cadena de bits sin convertir su valor. Para convertir el valor
en un número REAL es preciso utilizar el bloque DW_DI y, a continuación, el bloque DI_R.
Función
Copia la cadena de bits de IN a OUT.
Tratamiento de errores
No aplicable
Conexiones
1.7.9 DW_W
Función
Copia la palabra baja desde IN a OUT.
Tratamiento de errores
ENO = 0 siendo la palabra alta de IN > 0
Conexiones
1.7.10 I_DI
Función
Copia el valor de IN a OUT.
Tratamiento de errores
No aplicable
Conexiones
1.7.11 I_DW
Función
Copia la cadena de bits de IN a la palabra baja de OUT, en tanto que la palabra alta se pone
a 0.
Tratamiento de errores
No aplicable
Conexiones
1.7.12 I_R
Función
Convierte el número entero de IN en OUT.
Tratamiento de errores
No aplicable
Conexiones
1.7.13 I_W
Función
Copia la cadena de bits de IN a OUT.
Tratamiento de errores
No aplicable
Conexiones
1.7.14 R_DI
Función
Convierte el número REAL de IN a OUT.
Tratamiento de errores
Si el valor de IN no se encuentra entre -2,147483648e+09 y 2,147483647e+09, entonces
ENO = 0 y OUT tendrá un valor no válido.
Conexiones
1.7.15 R_DW
Modo de funcionamiento
El bloque se limita a transferir la cadena de bits sin convertir su valor. Para convertir valores
en DW es preciso utilizar el bloque R_TO_DW (PCS 7 Library).
Función
Copia la cadena de bits de IN a OUT.
Tratamiento de errores
No aplicable
Conexiones
1.7.16 R_I
Función
Convierte el número REAL de IN a OUT.
Tratamiento de errores
Si el valor de IN no se encuentra entre -32.768 y 32.767, entonces ENO = 0 y OUT tendrá
un valor no válido.
Conexiones
1.7.17 W_BY
Función
Copia el byte bajo de IN a OUT.
Tratamiento de errores
Si el byte alto > 0, entonces ENO = 0.
Conexiones
1.7.18 W_DW
Función
Copia la palabra de IN a la palabra baja de OUT.
Tratamiento de errores
No aplicable
Conexiones
1.7.19 W_I
Función
Copia la cadena de bits de IN a OUT.
Tratamiento de errores
No aplicable
Conexiones
1.7.20 BO_BY
Función
Este bloque convierte los 8 valores de entrada del tipo BOOL en un valor del tipo BYTE que
se deposita en la salida. La conversión 8 BOOL -> 1 BYTE se realiza de la siguiente forma:
El bit "i" del valor BYTE se pone a 0 (o 1) cuando el valor "i" de entrada es 0 (o 1).
(i = 0.0.7).
Tratamiento de errores
No aplicable
Conexiones
1.7.21 BO_W
Función
Este bloque convierte los 16 valores de entrada del tipo BOOL en un valor del tipo WORD
que se deposita en la salida. La conversión 16 BOOL -> 1 WORD se realiza de la siguiente
forma: El bit "i" del valor WORD se pone a 0 (o 1) cuando el valor "i" de entrada es 0 (o 1). (i
= 0.0.15).
Tratamiento de errores
No aplicable
Conexiones
1.7.22 BO_DW
Función
Este bloque convierte los 32 valores de entrada del tipo BOOL en un valor del tipo DWORD
que se deposita en la salida. La conversión 32 BOOL -> 1 DWORD se realiza de la siguiente
forma: El bit "i" del valor DWORD se pone a 0 (o 1) cuando el valor "i" de entrada es 0 (o 1).
(i = 0.0,31).
Tratamiento de errores
No aplicable
Conexiones
1.7.23 BY_BO
Función
Este bloque convierte el valor de entrada del tipo de datos BYTE en 8 valores del tipo de
datos BOOL, que se depositan en las 8 salidas. Durante el proceso, IN-Bit0 se convierte en
OUT0, IN-Bit1 en OUT1, etc.
Tratamiento de errores
No aplicable
Conexiones
1.7.24 W_BO
Función
Este bloque convierte el valor de entrada del tipo de datos WORD en 16 valores del tipo de
datos BOOL, que se depositan en las 16 salidas. Durante el proceso, IN-Bit0 se convierte en
OUT0, IN-Bit1 en OUT1, etc.
Tratamiento de errores
No aplicable
Conexiones
1.7.25 DW_BO
Función
Este bloque convierte el valor de entrada del tipo de datos DWORD en 32 valores del tipo
de datos BOOL que se depositan en las 32 salidas. Durante el proceso, IN-Bit0 se convierte
en OUT0, IN-Bit1 en OUT1, etc.
Tratamiento de errores
No aplicable
Conexiones
1.8.1 MATH_FP
Nota
El rango de valores de los números reales es:
+38
-3,40282e+38 ... -1,755e-38 ... 0 ... 1,755e-38 ... 3,40282e
1.8.2 ADD_R
Función
Este bloque suma las entradas y deposita la suma en la salida.
OUT = IN1 + IN2
Tratamiento de errores
ENO = 0 en caso de desbordamiento por exceso o por defecto.
Conexiones
1.8.3 SUB_R
Función
Este bloque resta la entrada IN2 de la entrada IN1 y deposita la diferencia en la salida.
OUT = IN1 - IN2
Tratamiento de errores
ENO = 0 en caso de desbordamiento por exceso o por defecto.
Conexiones
1.8.4 MUL_R
Función
Este bloque multiplica las entradas y deposita el producto en la salida.
OUT = IN1 * IN2
Tratamiento de errores
ENO = 0 en caso de desbordamiento por exceso o por defecto.
Conexiones
1.8.5 DIV_R
Función
Este bloque divide la entrada IN2 por la entrada IN1 y deposita el cociente en la salida.
OUT = IN1 / IN2
Tratamiento de errores
Al producirse una división por 0, un desbordamiento por exceso o un desbordamiento por
defecto, ENO recibe el valor 0.
Conexiones
1.8.6 MAXn_R
Función
Este bloque compara las entradas y deposita el valor máximo en la salida.
OUT = MAX {IN1, ... , INn}
Bloques
Nombre Explicación
MAX2_R 2 entradas del tipo REAL
MAX4_R 4 entradas del tipo REAL
MAX8_R 8 entradas del tipo REAL
Conexiones
1.8.7 MINn_R
Función
Este bloque compara las entradas y deposita el valor mínimo en la salida.
OUT = MIN {IN1, ... , INn}
Bloques
Nombre Explicación
MIN2_R 2 entradas del tipo REAL
MIN4_R 4 entradas del tipo REAL
MIN8_R 8 entradas del tipo REAL
Conexiones
1.8.8 ABS_R
Función
Este bloque deposita en la salida el valor absoluto de la entrada.
OUT = | IN |
Conexiones
1.8.9 SQRT
Función
Este bloque calcula la raíz cuadrada de la entrada y la deposita en la salida.
OUT = IN
Tratamiento de errores
ENO = 0 y OUT = 0 si IN < 0.
Conexiones
1.8.10 EXP
Función
Este bloque calcula la función exponencial de la entrada y deposita el resultado en la salida.
El número "e" es el número de Euler 2,71… y la base del logaritmo natural.
IN
OUT = e
Tratamiento de errores
ENO = 0 en caso de desbordamiento por exceso o por defecto.
ENO = 0 y OUT = 0 si IN < 0.
Conexiones
1.8.11 POW10
Función
Este bloque calcula la función de potencia de 10^IN de la entrada y deposita el resultado en
la salida.
IN
OUT = 10
Tratamiento de errores
ENO = 0 siendo IN1 < -37.9 y IN1 > 38.5
Conexiones
1.8.12 LN
Función
Este bloque calcula el logaritmo natural de la entrada y deposita el resultado en la salida.
OUT = LN (IN)
La entrada IN debe ser positiva.
Tratamiento de errores
ENO = 0 en caso de desbordamiento por exceso o por defecto.
ENO = 0 y OUT = 0 si IN < 0.
Conexiones
1.8.13 LOG10
Función
Este bloque calcula el logaritmo en base 10 de la entrada y deposita el resultado en la
salida.
OUT = LOG10(IN)
La entrada IN debe ser positiva.
Tratamiento de errores
ENO = 0 en caso de desbordamiento por exceso o por defecto.
ENO = 0 y OUT = 0 si IN < 0.
Conexiones
1.8.14 SIN
Función
Este bloque calcula la función de seno de la entrada y la deposita en la salida. IN se debe
indicar en grados de arco.
OUT = SIN(IN)
Conexiones
1.8.15 COS
Función
Este bloque calcula la función de coseno de la entrada y la deposita en la salida. IN se debe
indicar en grados de arco.
OUT = COS(IN)
Conexiones
1.8.16 TAN
Función
Este bloque calcula la función de tangente de la entrada y la deposita en la salida. IN se
debe indicar en grados de arco.
OUT = TAN(IN)
Conexiones
1.8.17 ASIN
Función
Este bloque calcula el arcoseno de la entrada y deposita el resultado en la salida. El
resultado se indica en grados de arco y su valor está comprendido entre - S /2 y + S /2. El
argumento de la función debe encontrarse entre -1 y +1.
OUT = ASIN(IN)
Conexiones
1.8.18 ACOS
Función
Este bloque calcula el arcocoseno de la entrada y deposita el resultado en la salida. El
resultado se indica en grados de arco y tiene un valor comprendido entre 0 y S . El
argumento de la función debe estar comprendido entre -1 y +1.
OUT = ACOS(IN)
Tratamiento de errores
ENO = 0 siendo IN < -1 --> OUT = 3.14..
ENO = 0 siendo IN > 1 --> OUT = 0
Conexiones
1.8.19 ATAN
Función
Este bloque calcula la arcotangente de la entrada y deposita el resultado en la salida. El
resultado se indica en grados de arco y tiene un valor comprendido entre - S /2 y + S /2.
Como rango válido de argumentos se admiten todos los números del rango REAL.
OUT = ATAN(IN)
Conexiones
1.8.20 NEG_R
Función
Este bloque deposita la magnitud de entrada en la salida, pero con el signo invertido.
Conexiones
1.8.21 LIM_R
Función
Este bloque compara las magnitudes de entrada IN, MAX y MIN. Comprueba si IN se
encuentra dentro o fuera del intervalo delimitado por MIN y MAX. Si el límite inferior MIN del
intervalo es superior o igual al límite superior MAX, la salida es OUT = MAX y las salidas
OUTU y OUTL adquieren el valor 1. Si IN > MAX, hay un rebase de límite por exceso, luego
OUT = MAX, OUTU = 1 y OUTL = 0. Si IN < MIN, hay un rebase de límite por defecto, luego
OUT = MIN, OUTU = 0 y OUTL = 1. Si IN se encuentra entre MIN y MAX, entonces OUT =
IN, OUTU = 0 y OUTL = 0.
Conexiones
1.8.22 EPS_R
Función
Este bloque compara los valores absolutos de las entradas. Si el valor absoluto de la
entrada IN es inferior al límite INTERVAL, la salida QA se pone a 1, en tanto que la salida
QN se pone a 0. La magnitud de entrada IN estará contenida entonces en el intervalo. De lo
contrario, la salida QA se pone a 0 y la salida QN se pone a 1. En este caso, la magnitud de
entrada se encontrará fuera del intervalo.
Conexiones
1.8.23 CADD_R
Función
Este bloque suma la magnitud de entrada IN a la magnitud de salida OUT si la entrada CI
tiene el valor 1 y las entradas RI y SI tienen el valor 0. Si RI = 1, la salida OUT se pone a 0.
Si SI = 1 y RI = 0, OUT adopta el valor IN (OUT = IN).
Tratamiento de errores
ENO = 0 en caso de desbordamiento por exceso o por defecto.
Tabla de verdad
RI SI CI OUT ENO
1 X X 0 1
0 1 X IN 1
0 0 1 OUT* + IN 1
0 0 0 OUT* 1
X es un valor cualquiera
OUT* es el valor antiguo del último ciclo
Conexiones
1.8.24 POWXY
Función
Este bloque eleva la magnitud de entrada IN1 a la potencia de la magnitud de entrada IN2 y
deposita el resultado en la salida.
OUT = IN1IN2
Tratamiento de errores
En caso de desbordamiento por exceso o por defecto, M7 pasa al estado STOP.
Conexiones
1.8.25 SAMP_AVE
Función
Este bloque calcula el valor medio de los últimos valores de entrada N y deposita el
resultado en la salida.
OUT = (Ink + Ink -1 + ... + Ink -n + 1) / N
siendo Ink el valor de entrada actual. La cantidad N de valores de entrada debe cumplir la
condición
0 < N < 33.
Comportamiento de arranque
Al arrancar y durante la primera ejecución, cada elemento del búfer se pone a 0 para recibir
valores IN y OUT.
Conexiones
1.9.1 MATH_INT
Nota
Los rangos de valores correspondientes a los tipos de datos INT y DINT son:
INT : -32 768 ... 32 767
DINT: -2 147 483 648 ... 2 147 483 647
1.9.2 ADD_I
Función
Este bloque suma las entradas y deposita la suma en la salida.
OUT = IN1 + IN2
Tratamiento de errores
ENO = 0 en caso de desbordamiento por exceso o por defecto.
Conexiones
1.9.3 SUB_I
Función
Este bloque resta la entrada IN2 de la entrada IN1 y deposita la diferencia en la salida.
OUT = IN1 - IN2
Tratamiento de errores
ENO = 0 en caso de desbordamiento por exceso o por defecto.
Conexiones
1.9.4 MUL_I
Función
Este bloque multiplica las entradas y deposita el producto en la salida.
OUT = IN1 * IN2
Tratamiento de errores
ENO = 0 en caso de desbordamiento por exceso o por defecto.
Conexiones
1.9.5 DIV_I
Función
Este bloque divide la entrada IN2 por la entrada IN1 y deposita el cociente en la salida.
OUT = IN1 / IN2
Tratamiento de errores
ENO = 0 al dividirse por cero y –32768 al dividirse por –1.
Conexiones
1.9.6 MOD_I
Función
Este bloque deposita en la salida el resto de la división de enteros DIV_I de la entrada IN1
dividida por la entrada IN2.
Tratamiento de errores
ENO = 0 al dividirse por 0.
Conexiones
1.9.7 MAXn_I
Función
Este bloque compara las entradas y deposita el valor máximo en la salida.
OUT = MAX {IN1, ... , INn}
Bloques
Nombre Explicación
MAX2_I 2 entradas del tipo INT
MAX4_I 4 entradas del tipo INT
MAX8_I 8 entradas del tipo INT
Conexiones
1.9.8 MINn_I
Función
Este bloque compara las entradas y deposita el valor mínimo en la salida.
OUT = MIN {IN1, ... , INn}
Bloques
Nombre Explicación
MIN2_I 2 entradas del tipo INT
MIN4_I 4 entradas del tipo INT
MIN8_I 8 entradas del tipo INT
Conexiones
1.9.9 ABS_I
Función
Este bloque deposita en la salida el valor absoluto de la entrada.
OUT = | IN |
Tratamiento de errores
ENO = 0 siendo IN = -32 768
Conexiones
1.9.10 NEG_I
Función
Este bloque deposita la magnitud de entrada en la salida, pero con el signo cambiado.
Tratamiento de errores
ENO = 0 siendo IN = -32 768
Conexiones
1.9.11 LIM_I
Función
Este bloque compara las magnitudes de entrada IN, MAX y MIN. Comprueba si IN se
encuentra dentro o fuera del intervalo delimitado por MIN y MAX.
Si el límite inferior MIN del intervalo es superior al límite superior MAX, la salida OUT = MAX
y las salidas OUTU y OUTL adquieren el valor 1.
Si IN > MAX, hay un rebase de límite por exceso, luego OUT = MAX, OUTU = 1 y OUTL = 0.
Si IN < MIN, hay un rebase de límite por defecto, luego OUT = MIN, OUTU = 0 y OUTL = 1.
Si IN se encuentra entre MIN y MAX, entonces OUT = IN, OUTU = 0 y OUTL = 0.
Tratamiento de errores
ENO = 0 siendo MIN > MAX --> OUT = MAX; OUTU = OUTL = 1
Conexiones
1.9.12 EPS_I
Función
Este bloque compara el valor absoluto de la entrada IN y el valor de la entrada INTERVAL.
Si el valor absoluto de la entrada IN es inferior al límite INTERVAL, la salida QA se pone a
1, en tanto que la salida QN se pone a 0. La magnitud de entrada IN estará contenida
entonces en el intervalo. De lo contrario, la salida QA se pone a 0 y la salida QN se pone a
1. En este caso, la magnitud de entrada se encontrará fuera del intervalo.
INTERVAL debe tener un valor positivo.
Si INTERVAL d 0, entonces QA = 0.
Tratamiento de errores
ENO = 0 siendo IN = -32 768
Conexiones
1.9.13 CADD_I
Función
Este bloque suma la magnitud de entrada IN a la magnitud de salida OUT si la entrada CI
tiene el valor 1 y las entradas RI y SI tienen el valor 0. Si RI = 1, la salida OUT se pone a 0.
Si SI = 1 y RI = 0, OUT adopta el valor IN (OUT = IN).
Tratamiento de errores
ENO = 0 en caso de desbordamiento por exceso o por defecto.
Tabla de verdad
RI SI CI OUT ENO
1 X X 0 1
0 1 X IN 1
0 0 1 OUT* + IN 1
0 0 0 OUT* 1
X es un valor cualquiera
OUT* es el valor antiguo del último ciclo
Conexiones
1.9.14 ADD_DI
Función
Este bloque suma las entradas y deposita la suma en la salida.
OUT = IN1 + IN2
Tratamiento de errores
ENO = 0 en caso de desbordamiento por exceso o por defecto.
Conexiones
1.9.15 SUB_DI
Función
Este bloque resta la entrada IN2 de la entrada IN1 y deposita la diferencia en la salida.
OUT = IN1 - IN2
Tratamiento de errores
ENO = 0 en caso de desbordamiento por exceso o por defecto.
Conexiones
1.9.16 MUL_DI
Función
Este bloque multiplica las entradas y deposita el producto en la salida.
OUT = IN1 * IN2
Tratamiento de errores
ENO = 0 en caso de desbordamiento por exceso o por defecto.
Conexiones
1.9.17 DIV_DI
Función
Este bloque divide la entrada IN2 por la entrada IN1 y deposita el cociente en la salida.
OUT = IN1 / IN2
Tratamiento de errores
ENO = 0 al dividirse por cero y -2147483648 al dividirse por –1.
Conexiones
1.9.18 MOD_DI
Función
Este bloque deposita en la salida el resto de la división de enteros DIV_DI de la entrada IN1
dividida por la entrada IN2.
Tratamiento de errores
ENO = 0 al dividirse por 0.
Conexiones
1.9.19 MAXn_DI
Función
Este bloque compara las entradas y deposita el valor máximo en la salida.
OUT = MAX {IN1, ... , INn}
Bloques
Nombre Explicación
MAX2_DI 2 entradas del tipo DINT
MAX4_DI 4 entradas del tipo DINT
MAX8_DI 8 entradas del tipo DINT
Conexiones
1.9.20 MINn_DI
Función
Este bloque compara las entradas y deposita el valor mínimo en la salida.
OUT = MIN {IN1, ... , INn}
Bloques
Nombre Explicación
MIN2_DI 2 entradas del tipo DINT
MIN4_DI 4 entradas del tipo DINT
MIN8_DI 8 entradas del tipo DINT
Conexiones
1.9.21 ABS_DI
Función
Este bloque deposita en la salida el valor absoluto de la entrada.
OUT = | IN |
Tratamiento de errores
ENO = 0 siendo IN = -2 147 483 648 (número negativo más pequeño)
Conexiones
1.9.22 NEG_DI
Función
Este bloque deposita la magnitud de entrada en la salida, pero con el signo cambiado.
Tratamiento de errores
ENO = 0 siendo IN = -2.147.483.648
Conexiones
1.9.23 LIM_DI
Función
Este bloque compara las magnitudes de entrada IN, MAX y MIN. Comprueba si IN se
encuentra dentro o fuera del intervalo delimitado por MIN y MAX.
Si el límite inferior MIN del intervalo es superior al límite superior MAX, la salida OUT = MAX
y las salidas OUTU y OUTL adquieren el valor 1.
Si IN > MAX, hay un rebase de límite por exceso, luego OUT = MAX, OUTU = 1 y OUTL = 0.
Si IN < MIN, hay un rebase de límite por defecto, luego OUT = MIN, OUTU = 0 y OUTL = 1.
Si IN se encuentra entre MIN y MAX, entonces OUT = IN, OUTU = 0 y OUTL = 0.
Tratamiento de errores
ENO = 0 siendo MIN > MAX --> OUT = MAX; OUTU = OUTL = 1
Conexiones
1.9.24 EPS_Dl
Función
Este bloque compara el valor absoluto de la entrada IN y el valor de la entrada INTERVAL.
Si el valor absoluto de la entrada IN es inferior al límite INTERVAL, la salida QA se pone a
1, en tanto que la salida QN se pone a 0. La magnitud de entrada IN estará contenida
entonces en el intervalo. De lo contrario, la salida QA se pone a 0 y la salida QN se pone a
1. En este caso, la magnitud de entrada se encontrará fuera del intervalo.
INTERVAL debe tener un valor positivo.
Si INTERVAL d es 0, entonces QA = 0.
Tratamiento de errores
ENO = 0 siendo IN = -2.147.483.648
Conexiones
1.9.25 CADD_DI
Función
Este bloque suma la magnitud de entrada IN a la magnitud de salida OUT si la entrada CI
tiene el valor 1 y las entradas RI y SI tienen el valor 0. Si RI = 1, la salida OUT se pone a 0.
Si SI = 1 y RI = 0, OUT adopta el valor IN (OUT = IN).
Tratamiento de errores
ENO = 0 en caso de desbordamiento por exceso o por defecto.
Tabla de verdad
RI SI CI OUT ENO
1 X X 0 1
0 1 X IN 1
0 0 1 OUT* + IN 1
0 0 0 OUT* 1
X es un valor cualquiera
OUT* es el valor antiguo del último ciclo
Conexiones
1.10.1 FLIPFLOP
JK_FF FlipFlop JK
RS_FF FlipFlop RS, desactivación dominante
SR_FF FlipFlop SR, activación dominante
1.10.2 JK_FF
Función
J K Q n Q n
0 0 Q n-1 Q n-1
0 1 0 1
1 0 1 0
1 1 Q Q n-1*
n-1
Conexiones
1.10.3 RS_FF
Función
R S
Qn Q n
0 0 Q n-1 Q n-1
0 1 1 0
1 0 0 1
1 1 0 1
Conexiones
1.10.4 SR_FF
Función
R S
Qn Q n
0 0 Q n-1 Q n-1
0 1 1 0
1 0 0 1
1 1 1 0
Conexiones
1.11.1 SHIFT
1.11.2 SHL_W
Función
El valor de entrada IN se desplaza bit a bit hacia la izquierda en la cantidad de posiciones
indicadas en la entrada N. El resultado se visualiza en la salida.
Conexiones
1.11.3 SHL_DW
Función
El valor de entrada IN se desplaza bit a bit hacia la izquierda en la cantidad de posiciones
indicadas en la entrada N. El resultado se visualiza en la salida.
Conexiones
1.11.4 SHR_W
Función
El valor de entrada IN se desplaza bit a bit hacia la izquierda derecha en la cantidad de
posiciones indicadas en la entrada N. El resultado se visualiza en la salida.
Conexiones
1.11.5 SHR_DW
Función
El valor de entrada IN se desplaza bit a bit hacia la izquierda derecha en la cantidad de
posiciones indicadas en la entrada N. El resultado se visualiza en la salida.
Conexiones
1.11.6 ROL_W
Función
El valor de entrada IN se rota bit a bit hacia la izquierda en la cantidad de posiciones
indicadas en la entrada N. El resultado se visualiza en la salida.
Conexiones
1.11.7 ROL_DW
Función
El valor de entrada IN se rota bit a bit hacia la izquierda en la cantidad de posiciones
indicadas en la entrada N. El resultado se visualiza en la salida.
Conexiones
1.11.8 ROR_W
Función
El valor de entrada IN se rota bit a bit hacia la derecha en la cantidad de posiciones
indicadas en la entrada N. El resultado se visualiza en la salida.
Conexiones
1.11.9 ROR_DW
Función
El valor de entrada IN se rota bit a bit hacia la derecha en la cantidad de posiciones
indicadas en la entrada N. El resultado se visualiza en la salida.
Conexiones
1.12.1 MULTIPLX
1.12.2 MUXn_I
Función
El bloque es un multiplexor 1 de n para valores INT (n = 2, 4, 8). Dependiendo del valor de
la entrada seleccionada K, la salida se pone al valor de una de las entradas IN0…IN7.
Tratamiento de errores
ENO = 0 y OUT = 0 si k > (n-1) o si k < 0.
Tabla de funcionamiento
Número de
entradas
2 K: 0 1
OUT: IN0 IN1
4 K: 0 1 2 3
OUT: IN0 IN1 IN2 IN3
8 K: 0 1 2 3 4 5 6 7
OUT: IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7
Conexiones
1.12.3 MUXn_DI
Función
El bloque es un multiplexor 1 de n para valores DINT (n = 2, 4, 8). Dependiendo del valor de
la entrada seleccionada K, la salida se pone al valor de una de las entradas IN0…IN7.
Tratamiento de errores
ENO = 0 y OUT = 0 si k > (n-1) o si k < 0.
Tabla de funcionamiento
Número de
entradas
2 K: 0 1
OUT: IN0 IN1
4 K: 0 1 2 3
OUT: IN0 IN1 IN2 IN3
8 K: 0 1 2 3 4 5 6 7
OUT: IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7
Conexiones
1.12.4 MUXn_R
Función
El bloque es un multiplexor 1 de n para valores REAL (n = 2, 4, 8). Dependiendo del valor de
la entrada seleccionada K, la salida se pone al valor de una de las entradas IN0…IN7.
Tratamiento de errores
ENO = 0 y OUT = 0 si k > (n-1) o si k < 0.
Tabla de funcionamiento
Número de
entradas
2 K: 0 1
OUT: IN0 IN1
4 K: 0 1 2 3
OUT: IN0 IN1 IN2 IN3
8 K: 0 1 2 3 4 5 6 7
OUT: IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7
Conexiones
1.12.5 MUXn_BO
Función
El bloque es un multiplexor 1 de n para valores BOOL (n = 2, 4, 8). Dependiendo del valor
de la entrada seleccionada K, la salida se pone al valor de una de las entradas IN0…IN7.
Tratamiento de errores
ENO = 0 y OUT = 0 si k > (n-1) o si k < 0.
Tabla de funcionamiento
Número de
entradas
2 K: 0 1
OUT: IN0 IN1
4 K: 0 1 2 3
OUT: IN0 IN1 IN2 IN3
8 K: 0 1 2 3 4 5 6 7
OUT: IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7
Conexiones
1.12.6 SEL_BO
Función
Este bloque conecta, independientemente del valor de la entrada K, el valor de la entrada
IN0 (K = 1) o de la entrada IN1 (K = 0) a la salida.
Conexiones
1.12.7 SEL_R
Función
Este bloque conecta, independientemente del valor de la entrada K, el valor de la entrada
IN0 (K = 1) o de la entrada IN1 (K = 0) a la salida.
Conexiones
1.13.1 COUNTER
1.13.2 CTU
Función
Este bloque corresponde a la operación "Incrementar contador" controlada por flancos. El
contador recibe el valor de preajuste PV en un flanco ascendente de la entrada S. El
contador es incrementado por flancos ascendentes en la entrada CU. El estado del contador
se encuentra en la salida CV. Al alcanzar el máximo valor INT, el contador se detiene. Al
restaurarlo se vuelve a poner el contador a 0 y puede comenzar de nuevo a incrementarse.
Q = 0, si CV = INT máx. (32767)
Q = 1, si CV > 0
Comportamiento de arranque
Al arrancar, este bloque se comporta del mismo modo que al ponerlo a cero (CV = 0).
Tabla de verdad
R CU CV ENO
1 X 0 1
0 1 CV*+1 1
0 0 CV* 1
X es un valor cualquiera
CV* es el valor antiguo del último ciclo
Conexiones
1.13.3 CTD
Función
Este bloque corresponde a la operación "Decrementar contador" controlada por flancos. El
contador recibe el valor de preajuste PV en un flanco ascendente de la entrada S. El
contador es decrementado por flancos ascendentes en la entrada CD. El estado del
contador se encuentra en la salida CV. Al alcanzar el valor INT mínimo, el contador se
detiene. Al restaurarlo se vuelve a poner a 0.
Q = 0, si CV = – INT máx. (-32768)
Q = 1, si CV > 0
Comportamiento de arranque
Al arrancar, este bloque se comporta del mismo modo que al ponerlo a cero (CV = 0).
Tabla de verdad
R CD CV ENO
1 X 0 1
0 1 CV*-1 1
0 0 CV* 1
X es un valor cualquiera
CV* es el valor antiguo del último ciclo
Conexiones
1.13.4 CTUD
Función
Este bloque corresponde a la operación "Incrementar/decrementar contador" controlada por
flanco. El contador recibe el valor de preajuste PV en un flanco ascendente de la entrada S.
El contador es incrementado por flancos ascendentes en la entrada CU. El contador es
decrementado por flancos ascendentes en la entrada CD. El estado del contador se
encuentra en la salida CV. Las salidas QU o QD permiten supervisar el estado del contador.
Para poner a 0 el contador, ponga R = 1.
QU = 1 si CV >= 0
QU = 0 si CV = INT máx. (32767)
QD = 0 si CV = –INT máx. (-32768)
QD = 1 si CV > 0
Comportamiento de arranque
Al arrancar, este bloque se comporta del mismo modo que al ponerlo a cero (CV = 0).
Tabla de verdad
R CU CD CV ENO
1 X X 0 1
0 1 0 CV*+1 1
0 0 1 CV*-1 1
0 0 0 CV* 1
0 1 1 CV* 1
X es un valor cualquiera
CV* es el valor antiguo del último ciclo
Conexiones
1.14.1 IMPULS
1.14.2 TIMER_P
Función
El bloque inicia el temporizador en el modo de operación predeterminado por el valor de la
entrada MODE:
x Formador de impulsos
x Impulso prolongado
x Retardo a la conexión
x Retardo a la conexión con memoria
x Retardo a la desconexión
Modos de operación
Cronogramas de impulsos
MODE=0 Impulso
Nota
El tiempo de muestreo debe ser inferior al tiempo de conmutación.
Conexiones
1.14.3 R_TRIG
Nota
Para que funcione correctamente, el bloque R_TRIG debe incorporarse en una alarma
cíclica (tarea cíclica).
Función
Este bloque comprueba en la magnitud de entrada si ha ocurrido un flanco positivo e indica
en la salida si se ha detectado algún flanco. Si el flanco del impulso de entrada CLK es
positivo, la salida Q se pone a 1.
Comportamiento de arranque
Al arrancar, la marca de flanco se pone a 0.
Cronograma de impulsos
Conexiones
1.14.4 F_TRIG
Nota
Para que funcione correctamente, el bloque F_TRIG debe incorporarse en una alarma
cíclica (tarea cíclica).
Función
Este bloque comprueba en la magnitud de entrada si ha ocurrido un flanco negativo e indica
en la salida si se ha detectado algún flanco. Si el flanco del impulso de entrada CLK es
negativo, la salida Q se pone a 1.
Comportamiento de arranque
Al arrancar, la marca de flanco se pone a 1.
Cronograma de impulsos
Conexiones
1.14.5 AFP
Nota
Para que funcione correctamente, el bloque AFP debe incorporarse en una alarma cíclica
(tarea cíclica).
Función
Generador de impulsos de reloj. Este bloque genera impulsos cuya duración y pausa deben
parametrizarse. Tanto la duración como la pausa del impulso se indican en ms.
Comportamiento de arranque
Al arrancar, los contadores y bits de habilitación (enable) se ajustan para los períodos Q = 0
y Q = 1. El bit de habilitación para Q = 0 será 1, los demás valores se pondrán a cero.
Cronograma de impulsos
Conexiones
1.15.1 TIME
1.15.2 TIME
Función
Este bloque mide el tiempo transcurrido entre dos llamadas consecutivas
(máximo 2 147 483 647 ms).
Nota
Entre las llamadas no se puede haber modificado la fecha. De lo contrario, se obtendrá una
diferencia de tiempo negativa (00:00:00 – tiempo medido).
Conexiones
1.15.3 TIME_BEG
Función
Este bloque indica en la salida TM la hora del sistema a la que se llama al bloque.
Conexiones
1.15.4 TIME_END
Función
Este bloque indica en la salida TM_DIFF la diferencia de tiempo entre la entrada TM y la
hora actual del sistema. La entrada TM de este bloque se puede interconectar con la salida
TM de un bloque TIME_BEG para determinar el tiempo transcurrido entre las llamadas a
estos dos bloques.
Conexiones
1.16.1 CONTROL
1.16.2 CONT_C
Introducción
El bloque de función CONT_C sirve para regular procesos técnicos con magnitudes
continuas de entrada y salida en los sistemas de automatización SIMATIC S7. La
parametrización permite conectar y desconectar funciones parciales del regulador PID y
adaptar éste al sistema regulado.
Aplicación
El regulador se puede utilizar como regulador PID de valor fijo de forma individual o también
como regulador en cascada, de mezcla o proporcional en regulaciones de bucles múltiples.
El modo de operación se basa en el algoritmo de regulación PID del regulador muestreado
con señal analógica de salida y se complementa, dado el caso, con una etapa formadora de
impulsos para generar señales de salida moduladas en ancho de impulsos para
regulaciones a dos o tres puntos con actuadores de acción.
Descripción
Además de las funciones de valores de consigna y reales, el bloque de función desempeña
la misión de regulador PID acabado con salida continua de la magnitud manipulada
permitiendo, además, modificar manualmente el valor manipulado. Existen las siguientes
funciones parciales:
x Rama de valores nominales
x Rama de valores reales
x Formación de errores de regulación
x Algoritmo PID
x Procesamiento de valores manuales
x Procesamiento de valores nominales
x Control anticipativo de la magnitud perturbadora
Información de errores
No se utiliza la palabra de notificación de error RET_VAL.
Parámetros de entrada
Parámetros de salida
1.16.3 CONT_S
Introducción
El bloque de función CONT_S permite regular procesos técnicos con señales binarias de
salida de los valores manipulados para actuadores integradores en los sistemas de
automatización SIMATIC S7. La parametrización permite conectar y desconectar funciones
parciales del regulador discontinuo PI y adaptarlo al sistema regulado.
Aplicación
El regulador se puede utilizar como regulador PI de valor fijo individualmente o también en
lazos de regulación subordinados en reguladores de cascada, mezcla o proporcionales,
aunque no como regulador principal. El modo de trabajo está basado en el algoritmo de
regulación PI del regulador de muestreo y se complementa con los elementos funcionales
para generar la señal binaria de salida a partir de la señal del actuador.
Con TN = T#0 ms se puede desconectar la acción I del regulador. Ello permite utilizar el
bloque como regulador P.
Como el regulador trabaja sin aviso de posición, la magnitud manipulada que se calcula
internamente no coincide exactamente con la posición del aparato de ajuste. Cuando la
magnitud manipulada (ER * GAIN) resulta negativa, ésta se compensa. En tal caso, el
regulador va bajando la salida Señal del valor manipulado (QLMNDN) hasta que se activa la
señal del tope inferior del aviso de posición (LMNR_LS).
El regulador también puede emplearse en lazos de regulación subordinados en reguladores
de cascada. La posición del aparato de ajuste viene predefinida por la entrada del valor de
consigna SP_INT. En este caso se ha de poner a cero la entrada del valor real y el
parámetro Tiempo de integración (TN). Este regulador se aplica p. ej. a una regulación de
temperatura que regule la potencia calefactora mediante un control de impulso/pausa y la
potencia de enfriamiento mediante una válvula.
Para cerrar la válvula completamente, la magnitud manipulada (ER * GAIN) deberá volverse
negativa.
Descripción
Además de las funciones en la rama de valor real, el bloque de función actúa como
regulador PI con salida binaria de valores manipulados y posibilidad de modificación manual
del valor manipulado. El regulador discontinuo funciona sin respuesta de posición. Existen
las siguientes funciones parciales:
x Rama de valores nominales
x Rama de valores reales
x Formación de errores de regulación
x Algoritmo PI discontinuo
x Control anticipativo de la magnitud perturbadora
Información de errores
No se utiliza la palabra de notificación de error RET_VAL.
Parámetros de entrada
Parámetros de salida
1.16.4 PULSEGEN
Introducción
El bloque de función PULSEGEN sirve para crear un regulador PID con salida de impulsos
para actuadores proporcionales.
Aplicación
El bloque de función PULSEGEN permite crear reguladores PID a dos o tres puntos con
modulación de ancho de impulsos. La función se utiliza casi siempre en combinación con el
regulador continuo CONT_C.
Descripción
La función PULSEGEN transforma la magnitud de entrada INV (= LMN del regulador PID)
por modulación del ancho de impulsos en una secuencia de impulsos con período
constante. Éste equivale al tiempo de ciclo con el que se actualiza la magnitud de entrada, y
se debe parametrizar en PER_TM.
La duración de cada impulso por período es proporcional a la magnitud de entrada. El ciclo
parametrizado a través de PER_TM no es idéntico al ciclo de procesamiento del bloque de
función PULSEGEN. Antes bien, un ciclo PER_TM se compone de varios ciclos de
procesamiento del bloque de función PULSEGEN. La cantidad de llamadas a PULSEGEN
por ciclo PER_TM permite medir la precisión de la modulación de ancho de impulsos dar.
Una magnitud de entrada del 30% y 10 llamadas a PULSEGEN por cada PER_TM
significan:
x "uno" en la salida QPOS para las tres primeras llamadas a PULSEGEN (30% de 10
llamadas).
x "cero" en la salida QPOS para las siguientes siete llamadas a PULSEGEN (70% de 10
llamadas).
La duración de los impulsos se vuelve a calcular al principio de cada período.
Nota
El factor de ciclo de la frecuencia de llamadas debe ser programada por el usuario.
Sincronización automática
Existe la posibilidad de sincronizar automáticamente la salida de impulsos con el bloque que
actualiza la magnitud de entrada INV (por ejemplo, CONT_C). De esta forma se garantiza
que una magnitud de entrada cambiante sea reproducida como impulso lo antes posible.
El formador de impulsos siempre evalúa la magnitud de entrada INV con una periodicidad
igual a la del período PER_TM y convierte el valor en una señal de impulso con una longitud
equivalente. Sin embargo, dado que INV se calcula casi siempre en un nivel de alarma
temporizada más lento, el formador de impulsos debería iniciar, lo antes posible después de
la actualización de INV, la transformación del valor discreto en una señal de impulso.
Para ello, el mismo bloque puede sincronizar el inicio del período con el procedimiento
siguiente:
Si se ha modificado INV y la llamada al bloque no se encuentra en el primer o en los dos
últimos ciclos de llamada de un período, se realizará una sincronización. Se vuelve a
calcular la duración de impulsos y se inicia la salida en el siguiente ciclo con un nuevo
período.
La sincronización automática se puede desconectar en la entrada "SYN_ON" (= FALSE).
Nota
Al comenzar el nuevo período, el valor antiguo de INV (o sea, de LMN) se representa, de
forma más o menos imprecisa, sobre la señal de impulso tras efectuarse la sincronización.
Modos de operación
Los reguladores PID a tres puntos, o con salida bipolar o unipolar de dos puntos, se pueden
configurar dependiendo de la parametrización del formador de impulsos. La tabla siguiente
muestra las combinaciones de interruptores correspondientes a los modos de operación
posibles:
Interruptor
Modo de operación MAN_ON STEP3_ON ST2BI_ON
Regulación a tres puntos FALSE TRUE cualquiera
Regulación a dos puntos con margen de valores FALSE FALSE TRUE
manipulados bipolar (-100% ... +100%)
Regulación a dos puntos con margen de valores FALSE FALSE FALSE
manipulados unipolar (-0% ... +100%)
Modo manual TRUE cualquiera cualquiera
Parámetros de entrada
Nota
En el bloque no se limitan los valores de los parámetros de entrada. Los parámetros no se
comprueban.
Parámetros de salida
Información de errores
No se utiliza la palabra de notificación de error RET_VAL.
Informaciones adicionales
Para obtener más información, consulte los apartados siguientes:
x Regulación a tres puntos
x Regulación a tres puntos asimétrica
x Regulación a dos puntos
x Modo manual en regulación a dos o tres puntos
Actuador
Señal de salida Calentar No Refrigerar
QPOS_P TRUE FALSE FALSE
QNEG_P FALSE FALSE TRUE
A partir de la magnitud de entrada, se calcula una duración de impulso por medio de una
curva característica. La forma de esta característica queda definida por la duración mínima
de impulso o de pausa y el factor de relación. El valor normal del factor de relación es 1.
Los puntos de flexión de las curvas características son causados por la duración mínima de
impulso o de pausa.
Nota
Se suprimen los pequeños valores absolutos de la magnitud de entrada LMN que
generarían duraciones de impulsos inferiores a P_B_TM. Los valores de entrada grandes,
que generarían duraciones de impulsos superiores a (PER_TM - P_B_TM), se ajustan al
100% o al -100%.
La duración de los impulsos positivos o negativos se calcula multiplicando la magnitud de
entrada (en %) por la duración del período. Duración de impulsos = INV / 100 * PER_TM
Informaciones adicionales
Para obtener más información, consulte los apartados siguientes:
x Regulación a tres puntos asimétrica
x Regulación a dos puntos
x Modo manual
A través del factor de relación RATIOFAC se puede modificar la relación entre las
duraciones de impulsos positivos y negativos. Por ejemplo, en un proceso térmico esto
permite considerar diferentes constantes de tiempo para la calefacción y la refrigeración.
El factor de relación influye también en la duración mínima de impulso o de pausa. Un factor
de relación < 1 significa que el valor de reacción para impulsos negativos se multiplica por el
factor de relación.
Informaciones adicionales
Para obtener más información, consulte los apartados siguientes:
x Regulación a tres puntos
x Regulación a dos puntos
x Modo manual en regulación a dos o tres puntos
Actuador
Impulso Sí No
QPOS_P TRUE FALSE
QNEG_P FALSE TRUE
Informaciones adicionales
Para obtener más información, consulte los apartados siguientes:
x Regulación a tres puntos
x Regulación a tres puntos asimétrica
x Modo manual
En el modo manual (MAN_ON = TRUE), las salidas binarias del regulador a dos o tres
puntos se pueden activar a través de las señales POS_P_ON y NEG_P_ON, con
independencia de INV.
Informaciones adicionales
Para obtener más información, consulte los apartados siguientes:
x Regulación a tres puntos
x Regulación a tres puntos asimétrica
x Regulación a dos puntos
1.17.1 SYSTEM
EVENT Generar una alarma de software, cuyo nombre se transfiere como parámetro
DELAY Retardar todos los eventos ocurridos durante el inicio hasta que se habilite la edición.
EDELAY Liberar los eventos de arranque retardados.
DISCARD Descartar (no iniciar) todos los eventos de arranque que ocurran,
de manera que el nivel de ejecución llamado pueda trabajar sin interrupciones.
EDISCARD Habilitar todos los eventos de arranque nuevos que ocurran.
LASTERR Averiguar los códigos de los errores de periferia y de los errores en los bloques
de sistema DELAY, EDELAY, DISCARD, EDISCARD, P_REASON
SYSTIME Determinar la hora del sistema.
P_REASON Determinar la causa de la llamada de una alarma de proceso.
1.17.2 EVENT
Nota
Este bloque sólo se puede utilizar en sistemas runtime M7-300/400.
Función
Este bloque genera una alarma de software. Inicia el nivel de ejecución (tarea) cuyo nombre
se indique en la entrada TN.
Si se indica un nombre que no tenga asignado un nivel de ejecución, se generará un
mensaje de error durante la compilación y la prueba de coherencia.
Conexiones
1.17.3 DELAY
Nota
Este bloque sólo se puede utilizar en sistemas runtime M7-300/400.
Función
Gracias a este bloque, el nivel de ejecución invocante puede funcionar sin interrupciones en
otros niveles de ejecución. Todos los eventos de arranque que se presenten serán
retardados hasta que se habilite la ejecución (con ayuda del bloque EDELAY) o hasta que
finalice el nivel de ejecución activo.
Luego se ejecutarán los eventos de arranque que se hayan presentado durante este
intervalo.
Si ocurre un error durante la ejecución, éste se puede consultar con ayuda del bloque
LASTERR.
1.17.4 EDELAY
Nota
Este bloque sólo se puede utilizar en sistemas runtime M7-300/400.
Función
Este bloque habilita los eventos de arranque retardados. Los eventos de arranque se
deberán haber retardado previamente mediante el bloque DELAY.
Si ocurre un error durante la ejecución, éste se puede consultar con ayuda del bloque
LASTERR.
1.17.5 DISCARD
Nota
Este bloque sólo se puede utilizar en sistemas runtime M7-300/400.
Función
Gracias a este bloque, el nivel de ejecución invocante puede funcionar sin interrupciones en
otros niveles de ejecución. Se descartan todos los eventos de arranque que ocurran. Por
tanto, no se inician los niveles de ejecución correspondientes. Los eventos ya registrados
(retardados) continuarán ejecutándose hasta finalizar. Las alarmas de proceso se acusan de
inmediato.
Todos los eventos de arranque que ocurran se descartarán hasta que se habilite la edición
(con ayuda del bloque EDISCARD) o hasta que finalice el nivel de ejecución activo.
Si ocurre un error durante la ejecución, éste se puede consultar con ayuda del bloque
LASTERR.
1.17.6 EDISCARD
Nota
Este bloque sólo se puede utilizar en sistemas runtime M7-300/400.
Función
Este bloque habilita los nuevos eventos de arranque que se produzcan. Para ello se deberá
haber bloqueado previamente el procesamiento de eventos de arranque con ayuda del
bloque DISCARD.
Si ocurre un error durante la ejecución, éste se puede consultar con ayuda del bloque
LASTERR.
1.17.7 LASTERR
Nota
Este bloque sólo se puede utilizar en sistemas runtime M7-300/400.
Función
Este bloque suministra el código del último error de las siguientes clases de error:
x Errores de periferia
x Errores en los bloques de sistema DELAY, EDELAY, DISCARD, EDISCARD,
P_REASON
Los valores posibles son un subconjunto de los códigos de error del software de sistema
M7. Pueden consultarse en el archivo M7API.H o en la documentación del software de
sistema M7.
Conexiones
1.17.8 SYSTIME
Nota
Este bloque sólo se puede utilizar en sistemas runtime M7-300/400.
Función
Con ayuda de este bloque puede determinarse la hora del sistema. La hora se indica en
formato TIME en la salida del bloque.
Conexiones
1.17.9 P_REASON
Función
Este bloque permite averiguar la causa de la llamada de una alarma de proceso.
La tarea deseada se indica mediante su nombre en la entrada TN. Si no se trata de una
alarma de proceso, el bloque no tendrá efecto alguno.
En la salida STATE se emite la información adicional de la alarma de proceso durante la
última llamada. El contenido de la información adicional es específico del bloque y se indica
en formato INTEL en lo que se refiere a la secuencia de bytes.
En la salida MASK se emite además la máscara de alarmas que fue configurada en CFC
para este nivel de ejecución de la alarma de proceso.
Si ocurre un error durante la ejecución, éste se puede consultar con ayuda del bloque
LASTERR.
Conexiones
Algoritmo PID
El algoritmo PID funciona como algoritmo de posición. Las acciones proporcional, integral
(INT) y diferencial (DIF) están conectadas en paralelo y se pueden conectar y desconectar
individualmente. Esto permite parametrizar los reguladores P, PI, PD y PID. Sin embargo,
también son posibles reguladores D e I.
Algoritmo PI discontinuo
Este bloque de función funciona sin respuesta de posición. La acción I del algoritmo PI, así
como la respuesta prevista, se calculan en un integrador (INT) y se comparan como valor de
retorno con la acción P remanente. La diferencia pasa a un elemento de tres puntos
(THREE_ST) y a un formador de impulsos (PULSEOUT) que forma los impulsos para la
servoválvula. La frecuencia de conmutación del regulador se reduce adaptando el umbral de
activación del elemento de tres puntos.
Leyenda
1 Desactivado de forma permanente
2 Duración del impulso positivo
3 Activado de forma permanente
Leyenda
1 Duración del impulso positivo
Leyenda
1 Duración del impulso positivo
2 Duración del impulso negativo
Leyenda
1 Duración del impulso positivo
2 Activado de forma permanente
3 Desactivado de forma permanente
4 Duración del impulso negativo
Leyenda
1 Ciclo PULSEGEN
2 Ciclo CONT_C