6 Controladores Logicos FESTO - Direccionamiento E-S
December 8, 2022 | Author: Anonymous | Category: N/A
Short Description
Download 6 Controladores Logicos FESTO - Direccionamiento E-S...
Description
B-61 Capítulo 6
Capítulo 6 Elementos comunes de los lenguajes de programación
Festo Didactic
TP301
B-62 Capítulo 6
6. 1
Recursos de un PLC
Según IEC 1131-3, sólo las entradas, las salidas y los elementos de memoria pueden ser direccionados directamente por un programa de control. En este caso, el direccionamiento directo significa que en el programa, una entrada, salida o elemento de memoria del control está afectado inmediatamente y no indirectamente a través de una variable simbólica definida. Naturalmente, IEC 1131-3 reconoce muchos otros recursos, p. ej. temporizadores y contadores. Sin embargo, estos están integrados en funciones y bloques de función para asegurar el más alto grado posible de portabilidad del programa de control entre los diferentes sistemas.
Entradas, salidas y la memoria Los constituyentes más importantes de un control incluyen las entradas, salidas y la memoria. Sólo a través de estas entradas puede un control recibir información de los procesos conectados. De forma similar, sólo puede influir en ellos a través de sus salidas o almacenar información para la subsecuente continuación del proceso. Las denominaciones para los recursos entradas, salidas y elementos de memoria, están definidos por IEC 1131-3 y son obligatorios..
Fig. B6.1: Designaciones para Entradas, Salidas y Memoria
Entradas (Inputs)
I
Salidas (Outputs)
Q
Memorias (Memory)
M
Sin posteriores referencias, estos designan sólo entradas y salidas binarias y elementos de memoria de un sólo bit, designados como flags (también denominado marcas). El estándar habla generalmente de variables representadas directamente. Estas son variables que están referidas directamente a las entradas, salidas y elementos de memoria del control disponibles, relacionadas con el hardware. La asignación de entradas, salidas y memorias (flags), y su posición física o lógica en el sistema de control es definido por el correspondiente fabricante del control.
TP301
Festo Didactic
B-63 Capítulo 6
Siempre que el control lo soporte, pueden direccionarse recursos que excedan de un bit. IEC 1311-3 emplea otra letra para decribirlos, que sigue a la abreviación I, Q y M y, por ejemplo, designa bytes y words. IEC 1131-3 designa desi gna los tipos de datos da tos mostrados mostrad os en la fig. B6.2 B6. 2 en relación con las entradas, salidas y flags. BOOL
Secuencia de bits de longitud 1
BYTE
Secuencia de bits de longitud 8
WORD
Secuencia de bits de longitud16
Fig. B6.2: Tipos de datos
Los tamaños de 1 bit, tal como describe el tipo de datos BOOL (booleana) solamente pueden asumir los valores 0 ó 1. Consecuentemente, el margen de valores para un dato del tipo BOOL consiste en dos valores "0" y "1". A diferencia de esto, hay que destacar que en el caso de los tipos de datos de secuencia de bits, que consisten en más de un bit, no hay un rango de valores relacionado inmediatamente. Todos los tipos de datos de secuencias de bits, tales como p. ej. BYTE y WORD son meramente una combinación de varios bits. Cada uno de estos bits tiene el valor 0 ó 1, pero su combinación no tiene su propio valor. Los métodos de designación obligatorios para entradas, salidas y flags de diferentes longitudes de bits están representados en la fig. B6.3. I, Q, M o bien IX, QX, MX
Bit de entrada, bit de salida, bit de memoria
1 bit
IB, QB, MB
Byte de entrada, byte de salida, byte de memoria
8 bit
IW, IW, QW QW,, MW MW
Word Word de ent ntra rad da, wo word rd de sal alid ida, a, wo word rd de me memo mori ria a
16 bit
Festo Didactic
TP301
Fig. B6.3: para Designación Entradas, Salidas y Memorias
B-64 Capítulo 6
Un bit individual de una entrada, salida o flag también puede ser direccionado sin la abreviación adicional X para el tipo de dato. Como sea que los controles siempre tienen un número relativamente grande de entradas, salidas y flags disponibles, estos deben ser especialmente identificados a efectos de diferenciación. Para ello se utiliza la numeración indicada por IEC 1131-3, como en el siguiente ejemplo: I1
Entrada 1
IX9
Entrada 9
I15
Entrada 15
QW3
Word de salida 3
MB5
Byte de memoria 5
MX2
Memoria 2
IEC 1131-3 no especifica el margen de números que se permite para esta numeración ni si deben empezar por 0 ó por 1. Esto lo especifica el fabricante del control. También deben utilizarse una cantidad jerárquica de entradas, salidas y flags, si el control utilizado ha sido adecuadamente configurado. Se utiliza un punto para separar los niveles individuales de la jerarquía. El número de niveles de jerarquía no ha sido definido. En el caso de numeración jerárquica, la posición más alta en el número de la izquierda debe ser codificado, los números que siguen a la derecha representan consecutivamente las posiciones más bajas. Ejemplo
I3.8.5
TP301
Festo Didactic
B-65 Capítulo 6
La estrada especificadas I3.8.5 puede por lo tanto representar: Entrada en inserto No. 3 en tarjeta No. 8 como Entrada No. 5 I
3.
8.
5
IEC 1131-4 no hace ningún comentario en relación con la asignación de bits individuales en un BYTE o WORD. Los fabricantes de los controles a menudo eligen métodos de designación jerárquica para asignar bits individuales como partes de words. Así, F6.2 podría representar, por ejemplo, el bit número 2 de la flag word número 6. Sin embargo, esto no tiene que ser necesariamente así, ya que el flag bit F6.2 y la flag word FW6 no necesariamente tienen que estar conectadas de alguna forma. Además, no se ha hecho ninguna definición sobre si la numeración de los bits individuales en una word deben empezar por la derecha o por la izquierda (hasta ahora, el bit número 0 en el extremo derecho ha sido el más frecuentemente utilizado) Variables directamente direccionadas Si los recursos en un programa de control deben ser direccionados directamente, a la designación del recurso debe anteponerse el recurso %. Ejemplos de variables directamente direccionables: %IX12 o
Bit de entrada 12
%I12 %IW5
Word de Entrada 5
%QB8
Byte de Output 8
%MW27
Word de Memoria 27
El uso de variables directamente direccionadas solamente es permisible en programas, configuraciones y recursos. Las unidades de organización de programas Función y Bloque de Función deben operar exclusivamente con variables simbólicas, para mantener el programa lo más independiente posible del control y, con ello, lo más ampliamente utilizable.
Festo Didactic
TP301
Fig. B6.4: Estructura de las designaciones jerárquicas
B-66 Capítulo 6
6. 2
Variables y tipos de datos
La utilización de variables representadas exclusiva y directamente (recursos, entradas, salidas y memoria) no es suficiente para crear programas de control. Frecuentemente, se requieren datos, que contienen información específica, también de una naturaleza más compleja. Estos datos puedendeser especificados directamente, es decir, datos de tiempo o valores recuento, o accesibles sólo a través de variables – es decir, a través de una representación simbólica. Las definiciones más importantes para tratar con datos o variables se indica abajo.
Direccionamiento simbólico Direccionamiento Un identificador simbólico siempre consiste en una letra mayúscula o minúscula, dígitos y un guión de subrayado. Un identificador debe empezar siempre con una letra o un guión de subrayado. El guión de subrayado puede utilizarse para hacer más leíble un identificador. Sin embargo, es un carácter significativo. Por ello, los dos identificadores Marcha_motor y Marchamotor son diferentes. No se permiten varios guiones de subrayado. Si el control permite letras mayúsculas y minúsculas, su utilización indistinta no debe tener significación alguna. Los dos identificadores MARCHAMOTOR y Marchamotor se interpretan idénticamente y designan el mismo objeto. Los siguientes identificadores no son permisibles: 123
El nombre no empieza con una letra
Butt Button on_ _?
El úl últi timo mo ca cará ráct cter er no es vá válilido do ya que que no es ni una letra ni un número
Además, los identificadores simbólicos no deben ser idénticos que las palabras clave. Como regla, las palabras clave son palabras reservadas para tareas específicas.
Representación de datos Representación En un programa de control, debe ser posible especificar valores de tiempo, de recuento, etc. Consecuentemente, IEC 1131-3 ha establecido las definiciones para la representación de los datos a especificar Valores de recuento Valores de tiempo Cadenas
TP301
Festo Didactic
B-67 Capítulo 6
Descripción
Ejemplos
Enteros
12, -8, 123_456*, +75
Número Núm eros s en coma coma fflot lotante ante
-12 -12.0, .0, -8. -8.0, 0, 0 0.12 .123_4 3_4**
Números de base 2 (Números binarios)
2#1111_1111 2#1101_0011
(255 decimal) (211 decimal)
Números de base 8 (Números octales)
8#377 8#323
(255 decimal) (211 decimal)
Números de base 16 (Números hexadecimales)
16#FF o 16#ff 16#D3 o 16#d3
(255 decimal) (211 decimal)
Cero y Uno Booleanos
0, 1
*
El uso de subrayados entre tre dígitos es permisible para mejora jorarr la legibilidad. Sin embargo, el subrayado no es significativo.
Tabla B6.1: Representación de datos numéricos
IEC 1131-3 prevé diferentes tipos de datos de tiempo: Duración, es decir, para medición de resultados Fecha Hora del día, p. ej. para sincronización desde el inicio o el final de un evento (también juntamente con la fecha)
Descripción
Ejemplos
Duración d de e ttiiempo
T#18ms, t# t#3m4s, tt# #3.5s t#6h_20m_8s TIME#18ms
Fecha
D#1994-07-21 DATE#1994-07-21
Hora del día
TOD#13:18:42.55 TIME_OF_DAY#13:18:42.55
Fecha y Hora
DT#1994-07-21-13:18:42.55 DATE_AND_TIME#1994-07-21-13:18:42.55
La especificación de la duración de un tiempo consiste en una parte introductoria, la palabra clave T# o t#, y una secuencia de secciones relacionadas con el tiempo – es decir, días, horas, minutos, segundos y milisegundos. milisegundos.
Festo Didactic
TP301
Tabla B6.2: Representación de tiempo, fecha y hora
B-68 Capítulo 6
Abreviaciones Abreviac iones para datos de tiempo: d
Dias
h
Horas
m
Minutos
s
Segundos
ms
Milisegundos
También pueden utilizarse mayúsculas en lugar de minúsculas y guiones de subrayado para mejorar la lectura del dato. También IEC 1131-3 ha especificado un formato fijo para la indicación de una fecha, hora del día o una combinación de ambos. Cada especificación empieza con una palabra clave; la información real se representa como se muestra en la tabla B6.2. Otro método importante de representación de fechas es el uso de una secuencia de caracteres también conocida como cadena, que puede ser requerida para el intercambio de información, es decir, entre diferentes controles, con otros componentes de un sistema de automatización o también para la programación de textos para visualización en el control y en dispositivos de visualización. Una cadena consiste en ninguno o varios caracteres, que empiezan y terminan con una coma volada.
Tabla B6.3: Representación de cadenas
Ejemplo
Descripción
’B’
Cadena de longitud 1, conteniendo el carácter B
’At Ate enció ión n’
Caden ena a de lo lon ngitu gitud d 7, cont ontenie niendo el me men nsa saje je Atenc ención ión
’’
cadena vacía
TP301
Festo Didactic
B-69 Capítulo 6
Tipos de datos IEC 1131-3 define un gran número de tipos de datos para diferentes tareas. Uno de estos tipos de datos, BOOL, ya ha sido mencionado. Una variable del tipo BOOL asume el valor 0 ó bien el valor 1.
Palabra clave
Tipo de Dato
Margen de valores
BOOL
Número Booleano
0, 1
SINT
Entero corto
0 a 255
INT
Entero
-32 768 a +32 767
DINT
Entero doble
-2 147 483 648 a +2 147 483 647
UINT
Entero sin signo
0 a 65 535
REAL
Número en coma flotante
+/-2.9E-39 a +/-3.4E+38
TIME
Duración de tiempo
dependiendo de la implementación
STRING
Cadena d de e lo longitud v va aria riable
dependien iendo de de la la im implementación
BYTE
Secuencia de 8 bits
sin rango de valores declarable
WORD
Secuencia de 16 bits
sin rango de valores declarable
Otros dos importantes tipos de datos, denominados INT e UINT definen números enteros. enteros. Las variables del tipo de datos datos INT (integer/en(integer/entero) permiten valores numéricos de -32 768 hasta +32 767. El margen de valores del tipo de dato INT cubre tanto valores negativos como positivos. Las variables del tipo UNIT (unsigned integer/entero sin signo) sólo permiten valores positivos. El margen de valores para las UINT va desde 0 a 65 535. SINT (short integer/entero corto) y DINT (double integer/entero doble) son tipos de datos adicionales que definen números enteros. Sin embargo, estos tiene un margen de valores inferior o superior que el tipo de datos INT. El tipo de datos REAL contiene números en coma flotante. Estos son números que pueden contener lugares tras la coma, tales como el 3,24 ó -1,5. El tipo de datos TIME se utiliza para especificar el tiempo, y puede contener una duración de tiempo como por ejemplo: 2 minutos y 30 segundos.
Festo Didactic
TP301
Tabla B6.4: Un número de tipos de datos elementales
B-70 Capítulo 6
Aparte de estos tipos de datos predefinidos elementales, el usuario tiene la posibilidad de definir sus propios tipos de datos. Esto es útil en casos en donde la definición del problema va más allá del ámbito de la pura tecnología de control. Los tipos de datos derivados se declaran dentro de la construcción TYPE...END_TYPE. La declaración completa se indica abajo para la enumeración del tipo Color en la tabla B6.5: TYPE Colo: (ROJO, AZUL, AMARILLO, NEGRO); END_TYPE
Tabla B6.5: Tipos de datos derivados
Tipo de dato derivado
Declaración TYPE END_TYPE
Tipo de enumeración
Color: (ROJO, AZUL, AMARILLO, NEGRO);
Tipo de subrango
Margen_referencia: INT(80..110);
Campos (array)
Posicion: ARRAY[1..10] OF REAL;
Estructuras
Coordenadas: STRUCT X:REAL; Y:REAL; END_STRUCT;
El significado de los tipos de datos individuales en la tabla B6.5 se explica brevemente abajo: Un dato del tipo Color solamente puede asumir uno de los valores ROJO, o NEGRO. Un datoVERDE, del tipo AMARILLO Margen_referencia sólo puede asumir valores entre 80 y 110, incluyen los límites inferior y superior 80 ó 110. Un dato del tipo Posicion, representa una lista con 10 entradas. Cada entrada tiene el valor de un número REAL. Con este índice pueden indexarse las entradas individuales. Un elemento del tipo de datos Coordenadas contiene dos números REAL, a los que puede accederse a través de sus nombres X e Y. No todos los controles necesitan reconocer todos estos tipos de datos. Cada fabricante dispone un juego de tipos de datos, que pueden utilizarse en el correspondiente control.
TP301
Festo Didactic
B-71 Capítulo 6
Declaración de variables Con el uso de datos, debe definirse claramente el derecho de acceso a estos datos. Con este fin, IEC 1131-3 utiliza una declaración de variables. Para comprender la función de una declaración de variables, es necesario establecer antes que el programa del control está construido en unidades de organización individuales. Estas unidades son: Configuración Recurso Programas Bloques de función Funciones Todas las variables tienen una posición específica. En el caso de lenguajes de programación en forma textual (IL y ST), las declaraciones de variables son aproximadamente las mismas que las utilizadas en el lenguaje Pascal. Para las formas gráficas de representación sería factible una forma tabular con el contenido equivalente. Sin embargo, esto no está especificado en IEC 1131-3. Todas las declaraciones de variables (fig. B6.5) siempre empiezan con una palabra clave, que designa la posición de la variable en la unidad de organización del control, y termina con la palabra clave END_VAR.
VAR Temp Manual Lleno, Abierto END_VAR
: INT; : BOOL; : BOOL;
(*Temperatura (*Flag para funcionamiento manual (*Flag para "lleno" y "abierto"
*) *) *)
Las variables y su asignación a un tipo de datos, se introduce entre estas palabras clave en las que se especifica un identificador o identificadores simbólicos de las variables, el tipo de dato se indica tras dos puntos y la declaración se cierra con un punto y coma. Si se declaran varias variables, se repiten correspondientemente. Normalmente, cada declaración se escribe en una línea separada en este caso.
Festo Didactic
TP301
Fig. B6.5: Declaración de variables
B-72 Capítulo 6
IEC 1131-3 distingue entre seis tipos diferentes de acceso a las variables. Cada tipo tiene una palabra clave, que introduce la declaración de la variable.
Tabla B6.6: Palabras clave para la declaración de variables
Variables de Entrada
VAR_INPUT
Variables de Salida
VAR_OUTPUT
Variables de Entrada/Salida
VAR_IN_OUT
Variables locales
VAR
Variables globales
VAR_GLOBAL
Variables externas
VAR_EXTERN
Las variables de entrada son declaradas con las palabras clave VAR_INPUT y END_VAR.
Fig. B6.6: Declaración de una variables de entrada
VAR_INPUT Input : INT; END_VAR
(*Valor de entrada
*)
Las variables especificadas de esta forma representan variables de entrada, alimentadas externamente a una unidad de organización, p. ej, un bloque de función. Estas sólo pueden leerse dentro de la unidad de organización. No es posible hacer modificaciones. Análogamente a esto, las variables de salida se definen con las palabras clave VAR_OUTPUT y END_VAR
Fig. B6.7: Declaración de una variable de salida
VAR_OUTPUT Result : INT; END_VAR
(*Valor de realimentación
*)
El dato que calcula una unidad de organización y devuelve de nuevo el exterior se declara arriba. Todos los resultados de una unidad de organización deben ser transferidos más allá de la unidad de organización a través de variables declaradas de esta forma. Dentro de las unidades de organización, estas pueden ser leídas y escritas. Externamente, sólo se permite el acceso de lectura.
TP301
Festo Didactic
B-73 Capítulo 6
En los casos en que se permitan variables conteniendo valores de entrada y salida, estos deben crearse con las palabras clave VAR_IN_OUT y END_VAR.
VAR_IN_OUT Value END_VAR
Fig. B6.8: Declaración de una variable de entrada/salida
: INT;
Esta forma representa una tercera opción y permite la declaración de variables, que pueden ser leídas y utilizadas dentro de una unidad de organización. En el caso de una variable declarada como VAR_IN_OUT, se asume que ambos valores serán suministrados hacia y desde la unidad de organización. A menudo, se requieren variables para resultados intermedios, que deben permanecer desconocidos externamente. La declaración de tales variables, denominadas locales, empieza con VAR y termina con END_VAR.
VAR Z END_VAR
: INT;
(*Resultado intermedio
*)
Las variables especificadas aquí son locales para una unidad de organización y solame te pueden ser utilizadas en ella. Son desconocidas para otras unidades organizacionales y por lo tanto inaccesibles. Una aplicación típica son las posiciones de memoria para resultados intermedios, que no son de interés en otras zonas del programa. En el caso de estas variables, hay que observar que también pueden existir varias veces en diferentes unidades de organización. De esta forma, es posible, por ejemplo, que varios bloques de función declaren la variable local Z. Estas variables locales son completamente independientes y difieren unas de otras. Una variable también puede ser declarada globalmente, en cuyo caso puede ser accedida universalmente. La necesaria declaración se realiza de una forma similar, utilizando las palabras clave VAR_GLOBAL y VAR_EXTERNAL.
Festo Didactic
TP301
Fig. B6.9: Declaración de una variable local
B-74 Capítulo 6
Fig. B6.10: Declaración de una variable global
VAR_GLOBAL Global_value: INT; END_VAR
Así es como se declaran todos los datos globales para un programa de control. Los datos globales son accesibles universalmente. Esta declaración sólo puede hallarse en unidades de organización, configuración y recurso.
Fig. B6.11: Declaración de acceso a una variable global
VAR_EXTERNAL Global_value: INT; END_VAR
Para facilitar el acceso de datos global a una unidad de organización, esta declaración debe ser registrada en la unidad de organización. Sin la declaración mostrada arriba, el acceso a los datos globales no sería permisible. Esta estricta unidad de declaración para todas las variables define únicamente qué variables son reconocidas por una unidad de organización y cómo pueden ser usadas. Un bloque de función puede, por ejemplo, leer pero no cambiar sus variables de salida. Se utiliza la palabra clave AT para asignar variables a las entradas y salidas del control.
Fig. B6.12: Declaración de variables con asignación a entradas de un control
VAR Pulsador_paro AT %I2.3: BOOL; Temperatura AT %IW3: INT; END_VAR
Las declaraciones hechas de esta forma son el mejor medio para definir el significado de todas las entradas y salidas del control. Si se produce un cambio en el sistema y su conexión al controlador, sólo deberán ser cambiadas estas declaraciones. Cualquier utilización p. ej. del Pulsador_paro, o de la Temperatura en un programa existente, no se ve afectada por el cambio.
TP301
Festo Didactic
B-75 Capítulo 6
Sin embargo, según IEC 1131-3 siempre es posible utilizar variables direccionadas directamente sin tener que asignarlas a un identificador simbólico. La declaración en este caso es como sigue: VAR AT %I4.2 AT %MW1 END_VAR
: BOOL; : WORD;
Inicialización A menudo es esencial que a una variable se le asigne un valor inicial. Este valor puede cambiar varias veces durante el procesamiento del programa, incluso aunque haya estado definida el principio. Los estados iniciales como estos también son importantes para otros datos. Tales valores iniciales se especifican conjuntamente con la declaración de las variables. Una variable global de este tipo denominada p. ej. 12. Docena se declara para que al principio del programa asuma el valor VAR_GLOBAL Docena END_VAR
Fig. B6.13: Declaración de una variable global con valor inicial
: INT := 12;
Como se ha mostrado en este ejemplo, el valor de inicialización se inserta siempre entre el tipo de dato – en este caso INT – y el punto y coma de cierre. La especificación del valor de inicialización siempre requiere el signo :=. De esta forma, a cada variable se le puede especificar un valor inicial. Fundamentalmente, las variables siempre tienen un valor inicial definido al inicio del programa. Esto lo facilita la característica definida en IEC 1131-3, en donde los tipos de datos tienen un valor preestablecido. Cada variable es preasignada al valor inicial correspondiente al tipo de dato – a no ser que se especifique lo contrario en el programa. Una lista de los valores iniciales de una selección de tipos de datos elementales puede verse en la tabla B6.7. Tipo de dato
Valor inicial
BOOL, SINT, INT, DINT UINT BYTE, WORD REAL TIME
0 0 0 0.0 T#0s
STRING
’’ (cadena vacía)
Festo Didactic
TP301
Tabla B6.7: Valores iniciales preestablecidos
B-76 Capítulo 6
6. 3
Programa
El programa para un control está dividido en unidades de organización individuales, que son como sigue en el nivel de programación: Programas Bloques de función Funciones Estas unidades de organización de programa están disponibles en todos los lenguajes de programación IEC 1131-3 define una amplia gama de funciones estandarizadas y bloques de función para tareas de control típicas. Aparte de estas funciones especificadas y bloques de función, IEC 1131-3 permite la definición de sus propias funciones y bloques de función. Los fabricantes o los usuarios pueden así crear módulos de software hechos a su medida para determinadas aplicaciones.
Funciones Las funciones son módulos de software que, cuando se les invoca, proporcionan exactamente un resultado (elemento de datos). Esta es la razón por la que en un lenguaje textual, la invocación de una función puede ser utilizada como un operando en una expresión. Las funciones no pueden contener información de estado. Esto significa que la invocación de una función con los mismos argumentos (parámetros de entrada) deben proporcionar el mismo resultado. La suma de valores enteros INT o la función lógica OR con ejemplos de funciones. Las funciones y su invocación puede representarse gráficamente o en forma de texto.
Fig. B6.14: Representación gráfica de una función
TP301
Festo Didactic
B-77 Capítulo 6
Gráficamente, una función se representa en forma de rectángulo. Todos los parámetros de entrada se relacionan en el lado izquierdo, mientras que los parámetros de salida se muestran en el lado derecho. En el interior del rectángulo se indica el nombre de la función. Los parámetros formales de entrada especificarse lo largode defunciones, los lados tales dentro del rectángulo. Esto es pueden necesario con algunosa grupos como las funciones de desplazamientos de bits, por ejemplo (fig. B6.15b). Para funciones con entradas idénticas, como es el caso de la función de suma ADD (fig. B6.15a) no se requieren nombres de los parámetros formales.
Fig. B6.15: Uso de parámetros formales con funciones
Las entradas o salidas booleanas de una función pueden ser negadas, es decir, invertidas especificando un círculo directamente fuera del rectángulo (fig. B6.16).
%Q5.3
AND
%Q4.1
%M1.1 Fig. B6.16: Representación de negaciones Booleanas
Festo Didactic
TP301
B-78 Capítulo 6
Si se invoca una función, deben conectarse sus entradas y la salida de la función. La función suma ADD ilustrada en la fig. B6.16 procesa valores enteros INT, por lo cual, las variables direccionadas directamente tales como %QW4 etc. están declaradas como variables de tipo de dato INT. De la misma forma, la función ADD podría aplicarse a valores del tipo SINT o REAL. Las funciones como estas, que funcionan para entrar parámetros de tipos de datos diferentes, se denominan en IEC 1131-3 como funciones sobrecargadas, independientes del tipo. La Fig. B6.17 ilustra las características de una función sobrecargada utilizando el ejemplo de una función ADD.
Fig. B6.17:
Función sobrecargada de tipo independiente
TP301
Festo Didactic
B-79 Capítulo 6
Si una función sobrecargada está limitada a un determinado tipo de datos por el control – p. ej., el tipo de datos INT como se muestra en la fig B6.18 – esto se conoce como una función con tipo. Las funciones con tipo son reconocibles por el nombre de su función. El tipo se indica añadiendo un guión de subrayado, seguido del tipo deseado.
Fig. B6.18: Una función con tipo
Funciones estándar Las funciones estándar más importantes para la realización de tareas básicas de tecnología de control se relacionan a continuación. Dado que una gran variedad de funciones estándar pueden funcionar utilizando parámetros de entrada de diferentes tipos de datos, los tipos de datos se han combinado en grupos. A cada grupo se le ha dado un tipo de datos genérico. Los tipos de datos genéricos más importantes se muestran en la tabla B6.8. ANY_ AN Y_NU NUM M
To Todo dos s lo los s tipo tipos s de de da dato tos s par para an núm úmer eros os en co coma ma flot flotan ante te,, ta tale les s como y para enteros tales como INT, UINT, etc. están REAL contenidos ennúmeros ANY_REAL y ANY_INT.
ANY_ AN Y_IN INT T
To Todo dos s lo los tip tipos os de da dato tos sp par ara ae ent nter ero os tal tale es com como o INT INT,, UIN UINIT IT,, e etc tc..
ANY_R AN Y_REAL EAL
To Todo dos s los los ti tipo pos sd de e dat datos os,, defin definien iendo do núm númer eros os en co coma ma flota flotante nte tales como REAL e LREAL
ANY_ AN Y_BI BIT T
To Todo dos s lo los s tipos tipos de da dato tos s d de e secu secuen enci cia a de bits, its, tale tales s com como o BO BOOL OL,, BYTE, WORD etc.
Festo Didactic
TP301
Tabla B6.8: Tipos de datos genéricos
B-80 Capítulo 6
Nombre AND OR Tabla B6.9: Funciones booleanas Bit-a-bit
XOR
Símbolo
Descripción
&
Operación AND de todas las entradas
>=1
Operación OR de todas las entradas
=2k+1
Operación OR-exclusiva de todas la las entradas
NOT
Entrada negada
Tabla B6.10: Funciones de desplazamiento de bits
Nombre
Descrip ipc ción
SHL
Desp Despla laza zarr IN po porr N b bit its s hac hacia ia la izqu izquie ierd rda, a, llen llenar ar co con nc cer eros os la dere derech cha a
SHR
Desp Despla laza zarr IN por por N bi bits ts h hac acia ia la la der derec echa ha,, llen llenar ar co con n ce cero ros s la izqu izquie ierd rda a
ROR RO R
De Desp spla laza zarr IN IN cíc cícli lica came ment nte ep por or N b bit its sh hac acia ia la de dere rec cha
ROL RO L
De Desp spla laza zarr IN IN cíc cícli lica came ment nte ep por or N b bit its sh hac acia ia la izqu izquie ierd rda a
TP301
Festo Didactic
B-81 Capítulo 6
Nombre
Símbolo
Descripción
GT
>
Mayor que (secuencia descendiente)
GE
>=
Mayor o iguall (secuencia monotónica)
EQ
=
Igual
LE
View more...
Comments