Documentos de Académico
Documentos de Profesional
Documentos de Cultura
A B
___________________________________________________________________________ B/2
A
Descripcin del sofware Tabla de materias PL7 Seccin A ___________________________________________________________________________
Captulo 1 Generalidades 1.1 Presentacin del programa PL7 1.1-1 Presentacin 1.1-2 Estructura monotarea 1.1-3 Estructura multitarea 1.1-4 Programacin estructurada y modular 1.1-5 Estructuracin en mdulos funcionales 1.1-6 Programacin simblica 1.1-7 Instrucciones del PL7 1.1-8 Bloques de funcin del usuario Objetos direccionables 1.2-1 Definicin de los principales objetos booleanos 1.2-2 Direccionamiento de objetos de mdulos entradas/salidas del TSX 37 1.2-3 Direccionamiento de objetos de mdulos E/S del TSX/PMX/PCX 57 1.2-4 Direccionamiento de palabras 1.2-5 Objetos de bloques de funcin 1.2-6 Objetos estructurados 1.2-7 Objetos Grafcet 1.2-8 Objetos de bloques de funcin DFB 1.2-9 Simbolizacin Memoria de usuario 1.3-1 Generalidades 1.3-2 Guardado / restauracin de palabras internas %MWi 1.3-3 Memoria de bits 1.3-4 Memoria de palabras 1.3-5 Autmatas TSX 37 05/08/10/21/22 1.3-6 Autmatas TSX/PCX/PMX 57-10/20/25 1.3-7 Autmatas TSX/PCX 57-30/35 1.3-8 Autmatas PMX57-35/45 y TSX 57-40/45
Pgina A1/1 A1/1 A1/1 A1/3 A1/3 A1/4 A1/5 A1/6 A1/8 A1/9 A1/10 A1/10 A1/11 A1/13 A1/16 A1/20 A1/21 A1/23 A1/23 A1/24 A1/26 A1/26 A1/28 A1/29 A1/31 A1/32 A1/33 A1/34 A1/35
1.2
1.3
___________________________________________________________________________ A/1
A
Descripcin del sofware Tabla de materias PL7 Seccin A ___________________________________________________________________________
Captulo 1.4 Modos de marcha 1.4-1 Corte de corriente y reanudacin de la alimentacin 1.4-2 Rearranque en caliente 1.4-3 Arranque en fro Estructura software monotarea 1.5-1 Presentacin de la tarea maestra 1.5-2 Ejecucin cclica 1.5-3 Ejecucin peridica 1.5-4 Control del tiempo de ciclo
Pgina A1/36 A1/36 A1/37 A1/38 A1/39 A1/39 A1/41 A1/42 A1/44
1.5
1.6
Estructura multitarea A1/45 1.6-1 Descripcin A1/45 1.6-2 Tarea maestra A1/47 1.6-3 Tarea rpida A1/48 1.6-4 Asignacin de vas de E/S a las tareas maestra y rpida A1/49 1.6-5 Tareas de suceso A1/50 A2/1 A2/1 A2/1 A2/2
2 Lenguaje de contactos 2.1 Presentacin del lenguaje de contactos 2.1-1 Principio 2.1-2 Elementos grficos
2.2
Estructura de una red de contactos A2/5 2.2-1 Generalidades A2/5 2.2-2 Etiqueta A2/6 2.2-3 Comentario A2/6 2.2-4 Red de contactos A2/7 2.2-5 Red de contactos con bloques de funcin y de operacinA2/10 Reglas de ejecucin de una red de contactos 2.3-1 Principio de ejecucin de una red A2/13 A2/13
2.3
___________________________________________________________________________ A/2
A
Descripcin del sofware Tabla de materias PL7 Seccin A ___________________________________________________________________________
Captulo 3 Lenguaje Lista de instrucciones 3.1 Presentacin del lenguaje Lista de instrucciones 3.1-1 Principio 3.1-2 Instrucciones Estructura de un programa 3.2-1 Generalidades 3.2-2 Comentario 3.2-3 Etiqueta 3.2-4 Utilizacin de los parntesis 3.2-5 Instrucciones MPS, MRD, MPP 3.2-6 Principios de programacin: bloques de funcin predefinidos
Pgina A3/1 A3/1 A3/1 A3/2 A3/4 A3/4 A3/4 A3/4 A3/5 A3/7 A3/8 A3/9 A4/1 A4/1 A4/1 A4/2 A4/7 A4/7 A4/7 A4/8 A4/8 A4/9 A4/15
3.2
3.3
4 Lenguaje Literal estructurado 4.1 Presentacin del lenguaje Literal estructurado 4.1-1 Principio 4.1-2 Instrucciones Estructura de un programa 4.2-1 Generalidades 4.2-2 Comentario 4.2-3 Etiqueta 4.2-4 Instrucciones 4.2-5 Estructuras de control Reglas de ejecucin de un programa literal
4.2
4.3
___________________________________________________________________________ A/3
A
Descripcin del sofware Tabla de materias PL7 Seccin A ___________________________________________________________________________
Captulo 5 Lenguaje Grafcet 5.1 Presentacin del lenguaje Grafcet 5.1-1 Nota sobre los principios del Grafcet 5.1-2 Anlisis progresivo: las macrorrepresentaciones Smbolos grficos relativos al lenguaje Grafcet Objetos relativos al Grafcet Posibilidades del lenguaje Grafcet Representacin del Grafcet Macroetapas 5.6-1 Principio 5.6-2 Caractersticas 5.6-3 Etapas iniciales Acciones asociadas a etapas Receptividades asociadas a transiciones Organizacin de la seccin Grafcet 5.9-1 Descripcin de la seccin Grafcet 5.9-2 Tratamiento preliminar 5.9-3 Utilizacin de los bits sistema en el tratamiento preliminar 5.9-4 Tratamiento secuencial 5.9-5 Tratamiento posterior
Pgina A5/1 A5/1 A5/1 A5/2 A5/4 A5/6 A5/7 A5/9 A5/15 A5/15 A5/16 A5/16 A5/17 A5/20 A5/23 A5/23 A5/24 A5/25 A5/28 A5/30
___________________________________________________________________________ A/4
A
Descripcin del sofware Tabla de materias PL7 Seccin A ___________________________________________________________________________
Captulo 6 Bloques de funcin DFB 6.1 Presentacin de los bloques de funcin DFB 6.1-1 Generalidades 6.1-2 Creacin de un bloque de funcin DFB Concepcin de un bloque de funcin Tipo DFB 6.2-1 Creacin de un Tipo DFB 6.2-2 Descripcin de los parmetros y variables 6.2-3 Cdigo de un tipo DFB 6.2-4 Validacin del Tipo DFB 6.2-5 Propiedades de un Tipo DFB 6.2-6 Ficha descriptiva 6.2-7 Propiedades del tipo DFB 6.2-8 Importacin/exportacin tipo DFB Creacin de una instancia de bloques de funcin Tipo DFB 6.3-1 Principios
Pgina A6/1 A6/1 A6/1 A6/2 A6/3 A6/3 A6/3 A6/5 A6/6 A6/6 A6/7 A6/7 A6/7 A6/8 A6/8
6.2
6.3
6.4
Utilizacin de los bloques de funcin DFB A6/9 6.4-1 Reglas generales de programacin A6/9 6.4-2 Programacin en lenguaje de contactos A6/10 6.4-3 Programacin en lenguaje literal o lista de instrucciones A6/11 6.4-4 Acceso a las variables A6/12 6.4-5 Guardado y restitucin de las variables pblicas A6/12 6.4-6 Ejecucin de los bloques de funcin DFB A6/12 Ejemplo A6/13
6.5
___________________________________________________________________________ A/5
A
Descripcin del sofware Tabla de materias PL7 Seccin A ___________________________________________________________________________
Captulo 7 Mdulos funcionales 7.1 Presentacin de los mdulos funcionales 7.1-1 Definicin del mdulo funcional 7.1-2 Representacin de un mdulo funcional en PL7 PRO 7.1-3 Nocin de submdulo funcional 7.1-4 Tributos de un mdulo funcional Instalacin de los mdulos funcionales 7.2-1 Crear un mdulo funcional 7.2-2 Modificacin de la arquitectura de los mdulos funcionales Programacin de un mdulo funcional 7.3-1 Agregar/crear una seccin, un suceso o una macroetapa en un mdulo funcional 7.3-2 Eliminar una seccin, macroetapa o un suceso en mdulo 7.3-3 Agregar/crear una tabla de animacin en un mdulo funcional 7.3-4 Introducir/modificar la ficha descriptiva Ejecucin del programa Depuracin de la aplicacin Carpeta de aplicacin Importacin y exportacin del origen del mdulo funcional 7.7-1 Exportar 7.7-2 Importar
Pgina A7/1 A7/1 A7/1 A7/2 A7/3 A7/3 A7/4 A7/4 A7/4 A7/6 A7/6 A7/8 A7/9 A7/9 A7/10 A7/10 A7/10 A7/11 A7/11 A7/11
7.2
7.3
___________________________________________________________________________ A/6
1.1
1.1-1 Presentacin El programa PL7 Junior es un software de programacin, diseado para los autmatas TSX 37 y TSX/PMX/PCX 57, que funcionan en Windows. El PL7 Micro permite programar nicamente los autmatas TSX 37. El software PL7 Pro ofrece, adems de las funcionalidades PL7 Junior, la posibilidad de crear bloques de funcin de usuario DFB (Derived Function block), pantallas de explotacin y mdulos funcionales. EL software PL7 Prodyn es una herramienta de explotacin (conduccin, diagnstico, mantenimiento) para los autmatas TSX 37 y TSX/PMX/PCX 57. No permite crear o modificar aplicaciones. El programa PL7 (1) propone: un lenguaje grfico, el lenguaje de contactos con transcripcin de esquemas de rels, que est adaptado al tratamiento combinatorio. Ofrece dos smbolos grficos de base: contactos y bobinas. La escritura de clculos numricos puede efectuarse en de los bloques de operacin.
un lenguaje booleano, el lenguaje de lista de instrucciones, que es un lenguaje "mquina" con escritura de tratamientos lgicos y numricos.
(1) En la siguiente documentacin se utilizar PL7 para designar indistintamente PL7 Junior, PL7 Micro, PL7 Pro o PL7 ProDyn. ___________________________________________________________________________ 1/1
un lenguaje literal estructurado, que es un lenguaje de tipo "informtica" con una escritura estructurada de tratamientos lgicos y numricos.
un lenguaje Grafcet que permite representar grficamente y de forma estructurada el funcionamiento de un automatismo secuencial.
Estos lenguajes formulan bloques de funcin predefinidos (temporizadores, contadores,...) que las funciones especficas (analgica, comunicacin, contaje ...) y las funciones particulares (gestin de tiempo, cadena de caracteres ...). Los objetos del lenguaje se pueden simbolizar mediante el editor de variables o en lnea en los editores de programa. El software PL7 est conforme a la norma IEC 1131-3. Los Anexos contienen las tablas de conformidad: vase la seccin B, captulo 6.
___________________________________________________________________________ 1/2
A
Generalidades PL7
1.1-2 Estructura monotarea Es la estructura predeterminada del programa. Contiene una sola tarea: la tarea maestra. Tarea maestra Esta tarea puede ejecutarse de forma cclica (funcionamiento predeterminado) o peridica. En funcionamiento cclico, las ejecuciones de la tarea se encadenan una tras otra, sin tiempo de espera. En funcionamiento peridico, las ejecuciones de la tarea se encadenan en un perodo determinado por el usuario. 1.1-3 Estructura multitarea La estructura multitarea de los autmatas programables TSX 37 y TSX 57 ofrece un uso adaptado a las altas prestaciones de las aplicaciones en tiempo real, puesto que asocia un programa especfico a cada funcin; una tarea controla un programa. Las tareas son independientes y se ejecutan en "paralelo" en el procesador principal que administra sus prioridades y su ejecucin. Este tipo de estructura propone: optimizar el uso de la potencia del tratamiento, simplificar el diseo y la depuracin; cada tarea se escribe y se depura independientemente, estructurar la aplicacin; cada tarea tiene su propia funcin, optimizar la disponibilidad. El sistema multitarea propone la tarea maestra, la tarea rpida y de 8 a 64 tareas de sucesos, segn el procesador.
Tarea maestra Tarea rpida Tareas de suceso
Prioridad
Tarea rpida La tarea rpida (opcional), de ejecucin peridica, permite efectuar tratamientos cortos con una prioridad ms elevada que en la tarea maestra. Cuando est programada, el sistema la activa automticamente al arrancarse. La tarea puede detenerse y activarse de nuevo mediante una accin en un bit sistema. Tareas de sucesos Estas tareas no estn vinculadas a un perodo como las previamente descritas. Una llamada procedente de determinados mdulos activa su ejecucin. Son las tareas ms prioritarias. Debe ser forzosamente corto su tratamiento para asegurar que no perturbe la ejecucin de las dems tareas. ___________________________________________________________________________ 1/3
1.1-4 Programacin estructurada y modular Las tareas de un programa PL7 se componen en varias partes denominadas secciones y subprogramas. Cada una de estas secciones puede programarse en el lenguaje apropiado al tratamiento que se desea realizar.
MAST Sas (LD) FAST Alarma_Sas(LD) Vig_Sec(LD) Alarma_Horno(ST) Alarma_Limpieza(ST) SR0 EVT0
SR0
Esta divisin en secciones permite crear un programa estructurado y generar o incorporar fcilmente los mdulos de programa. Se puede hacer una llamada a los subprogramas desde cualquier seccin de la tarea a la cual pertenecen o desde otros subprogramas de la misma tarea.
___________________________________________________________________________ 1/4
A
Generalidades PL7
1
1.1-5 Estructuracin en mdulos funcionales Un mdulo funcional es una agrupacin de elementos de programa (secciones, sucesos, macroetapas, tablas de animacin...) destinadas a realizar una funcin de automatismo. Un mdulo funcional est definido por un determinado nmero de atributos (nombre, comentario, programacin, tablas de animacin asociadas...). Un mdulo funcional comprende un directorio de programa (compuesto de uno o varios mdulos de cdigo) y de un directorio de tabla de animacin.
Un mdulo funcional puede a su vez dividirse en mdulos funcionales de nivel inferior. Estos mdulos asumen, en relacin a la funcin principal, una o varias
Slo el producto PL7 PRO permite la instalacin de mdulos funcionales en los autmatas TSX/PMX/PCX57.
___________________________________________________________________________ 1/5
1.1-6 Programacin simblica El usuario puede introducir y visualizar los objetos: bien mediante su variable (por ejemplo: %Q2.5), o bien mediante una cadena de caracteres (mximo 32 caracteres) denominada smbolo (por ejemplo Fc_puerta). Nota Los objetos asociados al bloque de funcin de usuario DFB son objetos puramente simblicos. Ejemplo: visualizacin simblica de los objetos de lenguajes de contactos.
Entrada_1Fc_puerta
Duracin=ABS(Diferencia_de_tiempo)
Entrada_4
Vlvula_D
El lenguaje de contactos puede mostrar simultneamente variables y smbolos. Los objetos del lenguaje pueden simbolizarse usando el editor de variables o en lnea en los editores de programa. Esta base de smbolos, controlada por el editor de VARIABLES del programa, es general a la estacin autmata.
___________________________________________________________________________ 1/6
Nota Determinados mdulos de funciones especficas permiten la simbolizacin automtica de los objetos que les estn asociados.
A
Generalidades PL7
1
Funcionalidad Los smbolos y comentarios pueden ser memorizados en el autmata TSX Premium (TSX/PMX/PCX 57202, 57302, 57402, 57452 V3.3) equipado de un tipo de tarjeta memoria siguiente: tarjeta memoria de 128 kpalabras: TSXMRP 2128P tarjeta memoria de 256 kpalabras: TSXMRP 3256P Cuando se registra una aplicacin en el PC, se crea un archivo *.STX. La imagen de la aplicacin en forma de archivo *.STX comprende entre otros los smbolos y comentarios. La funcin "Smbolos y comentarios integrados en el autmata TSX Premium" suministra al usuario de PL7 la misma facilidad de programacin y explotacin desde el punto de vista de smbolos y comentarios, posea o no la imagen en forma STX de su aplicacin presente en el autmata. Observaciones 1. En modo conectado, las modificaciones de los smbolos y comentarios que se efectan en el Editor de Variables no se comunican a medida que suceden a la tarjeta de memoria. Una actualizacin de la base en el autmata se propone en el momento de la peticin de desconexin si existe divergencia entre la base local y la base del autmata. 2. La liberacin del lugar a nivel de smbolos y comentarios no aumenta el rea de programa, ya que el almacenamiento de los smbolos y comentarios se efecta en un espacio distinto al de la parte programa de la aplicacin. 3. Los diferentes editores de PL7 (datos, programa, herramienta de depuracin) utilizan en modo conectado la base de smbolos y comentarios presentes en el PC. 4. La funcin Comparacin permite comparar los smbolos PC/Autmata.
___________________________________________________________________________ 1/7
1.1-7 Instrucciones del PL7 Todos los lenguajes PL7 utilizan el mismo juego de instrucciones. La seccin B de este documento detalla estas instrucciones. Para mayor claridad, stas se encuentran clasificadas en dos conjuntos: las instrucciones de base y las instrucciones avanzadas. Instrucciones de base Comprenden las instrucciones booleanas de base, los bloques de funcin predefinidos y las instrucciones aritmticas y lgicas para enteros. Instrucciones avanzadas Comprenden las instrucciones que satisfacen las necesidades de programacin avanzada. Son de dos tipos: lenguaje PL7. Aumentan las posibilidades de tratamiento del lenguaje mediante las funciones particulares (manipulacin de cadenas de caracteres, gestin de tiempo...), especficas. Ofrecen funciones especficas de tratamiento, por ejemplo las funciones de comunicacin: - PRINT para enviar un mensaje de tipo cadena de caracteres a un terminal o una impresora, - SEND para enviar un mensaje a una aplicacin, - PID para la funcin PID de regulacin. Introduccin asistida de funciones Al introducir datos, una pantalla de ayuda permite acceder a todas las funciones del lenguaje. Esta pantalla permanece accesible en todo momento, incluso durante la programacin.
___________________________________________________________________________ 1/8
A
Generalidades PL7
1
1.1-8 Bloques de funcin del usuario El software PL7 Pro permite crear bloques de funcin del usuario DFB para el autmata Premium. Estos bloques de funcin DFB se conciben en lenguaje literal estructurado y pueden luego utilizarse en una seccin o en un subprograma cualquiera sea el lenguaje empleado (tambin pueden utilizarse con el software PL7 Junior). Ejemplo de bloques de funcin DFB que se utilizan con el lenguaje de contactos.
Un bloque de funcin DFB se compone principalmente de: un nombre, parmetros de entradas y salidas variables pblicas y privadas cdigo en lenguaje literal estructurado.
Entradas
Salidas
Un bloque de funcin DFB puede tener un mximo de 15 entradas y/o entradas/ salidas y 15 salidas y/o entradas/salidas.
Entradas/ salidas
Una vez que se crea, cada bloque de funcin DFB se puede utilizar varias Variables pblicas Variables privadas veces en una aplicacin. El programador programa el bloque de funcin DFB Cdigo literal modelo (denominado: Tipo DFB) y para cada utilizacin, el usuario define un nombre de instancia mediante el editor de variables o valindose de la pantalla de ayuda para la introduccin correspondiente al lenguaje elegido. ___________________________________________________________________________ 1/9
A
1.2 Objetos direccionables
1.2-1 Definicin de los principales objetos booleanos Bits de entradas/salidas Son las "imgenes lgicas" de los estados elctricos de las entradas/salidas. Se almacenan en la memoria de datos y se actualizan en cada exploracin de la tarea en la que estn configurados. Bits internos Los bits internos %Mi permiten almacenar estados intermediarios durante la ejecucin del programa.
Nota: los bits de entradas/salidas no utilizados no pueden emplearse como bits internos.
Bits sistema Los bits sistema de %S0 a %S127 supervisan el buen funcionamiento del autmata as como la ejecucin del programa de aplicacin. El propsito y el uso de estos bits se describen en el apartado 3.1 de la seccin B. Bits de bloques de funcin Los bits de bloques de funcin corresponden a las salidas de los bloques de funcin estndar o instancia DFB. Estas salidas pueden cablearse directamente o utilizarse como objeto. Bits extrados de palabras El programa PL7 ofrece la posibilidad de extraer uno de los 16 bits de un objeto palabra. Bits de estado de las etapas y macroetapas Grafcet Los bits Grafcet de estado de las etapas %Xi , de las macroetapas %XMj y de las etapas de macroetapas %Xj.i (Xj.IN y Xj.OUT para las etapas de entradas y salidas de macroetapas) permiten de conocer el estado de la etapa i, de la macroetapa o de la etapa i de la macroetapa j del Grafcet. Lista de operandos de bits La tabla siguiente contiene la lista de todos los tipos de operandos booleanos.
Tipo Valor inmediato Bits de entradas de salidas Bits internos Bits de sistema Bits de bloques de funcin Bits Grafcet Bits extrados de pals. Direccin (o valor) 0 1 (False o True) %Ix.i o %IXx.i %Qx.i o %QXx.i %Mi o %MXi %Si ej.: %TMi.Q %DRi.F..... %Xi , %XMj, %Xj.i... ej.: %MW10:X5 Acceso en escritura (1) no s s segn i no s segn tipo de palabra 3.1 Vase Cap. Secc 1.2-4 A 1.2-2 A 1.2-3 B 1.2-5 A 5.2 A
1.2-4 A
___________________________________________________________________________ 1/10
A
Generalidades PL7
1
1.2-2 Direccionamiento de objetos de mdulos entradas/salidas del TSX 37 Los caracteres siguientes definen el direccionamiento de los principales objetos bits y palabras de mdulos de entradas/salidas: %
Smbolo
IoQ
Tipo de objeto I = entrada Q = salida
X, W o D
Formato X = booleano W = palabra D = doble palabra
Tipo de objeto I y Q: para las entradas y salidas fsicas de mdulos. Esta informacin se intercambia implcitamente en cada ciclo de la tarea asociada. Observacin: tambin pueden intercambiarse a peticin de la aplicacin otro tipo de informacin (palabras de estado, de comando ...). Formato (tamao) Para los objetos de formato booleano, se puede omitir la X. Los dems tipos de formato (byte, palabra, doble palabra) se definen en el apartado1.2-4. Posicin y nmero de va La modularidad de base del TSX 37 es de semiformato. Las esquemas siguientes indican las posiciones de cada tipo de autmata TSX 37 (base y extensin).
TSX 37-10 TSX 37-21/22
1 2
3 5 4 6 7 8 0
5 6
7 8
9 10
Base
Extensin
Base
Extensin
Los mdulos de formato estndar se direccionan como 2 mdulos de semiformato superpuestos (vase la tabla siguiente). Por ejemplo, un mdulo de 64 E/S se ve como 2 mdulos de semiformato: un mdulo de semiformato de 32 entradas situado en la posicin 5 y un mdulo de semiformato de 32 salidas situado en el alojamiento 6.
___________________________________________________________________________ 1/11
Mdulo
Semiformato 4S 8S 0a7
12 E 0 a 11
Nmero de va: i 0 a 3
x.0 a x.7
x.0 a x.11
x.0 a x.15
(x+1).0 (x+1).0 (x+1).0 (x+1).0 a a a a (x+1).11 (x+1).15 (x+1).15 (x+1).31 Nota Es posible reemplazar el nmero de va por "MOD" para acceder a la informacin general sobre el mdulo.
Rango: este sufijo opcional puede agregarse al nmero de va. Permite marcar distintos objetos del mismo tipo asociados a una misma va. ERR: indica un fallo de mdulo o de va. Ejemplos: %I4.MOD.ERR: informacin de fallo del mdulo 4, %I4.3.ERR: informacin de fallo de la va 3, mdulo 4.
Nota En el direccionamiento a travs de la red o de entradas/salidas remotas, se agrega al nmero de posicin en el rack la ruta completa de acceso a la estacin.
Ejemplos %I1.5 va de entrada n 5 del mdulo situado en la posicin n 1. %I3.8 va de entrada n 8 del mdulo de formato estndar situado en las posiciones n 3 y 4. %Q4.5 va de salida n 5 del mdulo de formato estndar situado en las posiciones n 3 y 4. %I5.MOD.ERR informacin sobre el fallo del mdulo situado en la posicin n 5. %IW8.0 va de entrada n 0 del mdulo de semiformato situado en la posicin n 8.
%I5.MOD.ERR %IW8.0
2
Base
Extensin %Q4.5
___________________________________________________________________________ 1/12
A
Generalidades PL7
1
1.2-3 Direccionamiento de objetos de mdulos E/S del TSX/PMX/PCX 57 El direccionamiento de los principales objetos bits y palabras de los mdulos de E/ S se definen de la manera siguiente:'
% Smbolo
IoQ
X, W o D
I
N va I= a 127 o MOD
Tipo de objeto I y Q: para las entradas y salidas fsicas de los mdulos. Estas informaciones se intercambian implcitamente en cada ciclo de la tarea a la que se asocian. Observacin: otros tipos de informacin (palabras de estado, de comando...) pueden tambin intercambiarse a solicitud de la aplicacin. Formato (tamao) Para los objetos de formato booleano, se puede omitir la X. Los dems tipos de formato (byte, palabra, doble palabra) se definen en el apartado 1.2-4. Direccionamiento de las vas El direccionamiento de las vas depende de la direccin del rack, de la posicin fsica del mdulo en el rack y del nmero de va.
PS 00
00
01
02
03
04
05
06
07
08
09
10
PS 01
00
01
02
03
04
05
06
07
08
09
10
Notas: para conocer la lista de los objetos asociados a un mdulo, vase el manual de funcin especfica correspondiente, el direccionamiento de las entradas/salidas distantes se describe en el manual de funcin especfica, seccin Comn a las funciones especficas.
___________________________________________________________________________ 1/13
0a7
0a7
0a7 00 a 06
0a7 00 a 10
Posicin mdulo: y 00 a 04 00 a 06 00 a 10 00 a 02 00 a 04 Nota El rack que soporta el procesador siempre tiene la direccin 0.
Nota El nmero de va puede reemplazarse por "MOD" para acceder a la informacin general sobre el mdulo.
Rango: este sufijo opcional puede agregarse al nmero de va. Permite localizar distintos objetos de mismo tipo asociados a una misma va. ERR: indica un fallo de mdulo o de va. Ejemplos: - %I104.MOD.ERR: informacin de fallo del mdulo en la posicin 4 del rack de direccin 1. - %I104.3.ERR: informacin de fallo de la va 3 del mdulo en la posicin 4 del rack de direccin 1.
Nota Para un direccionamiento a travs de la red o de las entradas/salidas remotas, la ruta de acceso completa se agrega al direccionamiento de la va.
Ejemplos: : va de entrada n 5 del mdulo situado en la posicin n 2 del rack de direccin 1. %Q307.2 : va de salida n 2 del mdulo situado en la posicin n 7 del rack de direccin 3. %I102.MOD.ERR: informacin de fallo del mdulo situado en la posicin n 2 del rack de direccin 1. %I102.5
___________________________________________________________________________ 1/14
A
Generalidades PL7
1
Caso de los racks de extensin Funcionalidades Les racks de extensin permiten configurar un mayor nmero de mdulos a travs de un mayor nmero de racks. Esta funcin slo est disponible con los procesadores de nivel superior o igual a 3.3. Estos racks de extensin tienen las mismas funciones para la configuracin de sus mdulos o de sus alimentaciones que los dems racks. Estos racks de extensin aparecen despus del rack de base si este ltimo es extensible y si comprende 8 emplazamientos por lo menos. Se marcan a nivel de la referencia por las letras EX. La primera direccin del primer mdulo configurable (fuera de alimentacin) es siempre 8.
Nmero de emplazamientos disponibles Los racks de extensin tampoco pueden tener ms de 8 emplazamientos.
Rack de base (tipo E o EX) 4 4 4 6 6 6 8 8 8 12 Rack de extensin (tipo EX) 4 6 8 4 6 8 4 6 8 0 Nmero total de emplazamientos 8 10 12 10 12 14 12 14 16 12
Ejemplo: rack de base de 6 emplazamientos y rack de extensin de 6 emplacements Mdulo DEY 16A2 va 6 %I18,6 con nrack = 1, posicin = 8, va = 6.
___________________________________________________________________________ 1/15
1.2-4 Direccionamiento de palabras El direccionamiento de las palabras de mdulos E/S se define en el apartado1.2-2 o 1.2-3. Las dems palabras utilizadas (salvo las palabras de redes y de bloques de funcin) en el lenguaje PL7 se direccionan del modo siguiente: %
Smbolo
M, K o S
Tipo de objeto M = interno K = constante S = sistema
B, W , D o F
Formato B = byte W = palabra D = doble palabra F = flotante
i
Nmero
Tipo de objeto M palabras internas destinadas a almacenar valores en curso del programa. Se ubican dentro del espacio de datos en una misma rea de memoria. K palabras constantes que memorizan valores constantes o mensajes alfanumricos. Su contenido puede ser escrito o modificado desde el terminal nicamente. Se almacenan en el mismo lugar que el programa. Por consiguiente, pueden tener como soporte la memoria FLASH EPROM. S palabras sistema que realizan varias funciones: - ciertas informan sobre el estado del sistema mediante la lectura de las palabras %SWi (tiempo de funcionamiento sistema y aplicacin, etc...). - otras permiten actuar sobre la aplicacin (modo de marcha, etc.) Las palabras sistema se describen en el captulo 3, seccin B.
Formato El programa PL7 puede direccionar los objetos segn cuatro formatos: B byte; este formato se utiliza exclusivamente en las operaciones de cadena de caracteres. W simple longitud; estas palabras de 16 bits pueden contener un valor algebraico comprendido entre -32 768 y 32 767.
15 14 13 12 11 10 9 8 Formato de 16 bits 0 1 1 1 0 1 1 1 7 6 5 4 0 0 1 1 3 2 1 0 Rango del bit 0 1 0 0 Bits menos significativos
Bits ms significativos
___________________________________________________________________________ 1/16
A
Generalidades PL7
1
D doble longitud: estas palabras de 32 bits pueden contener un valor algebraico comprendido entre -2 147 483 648 y 2 147 483 647. Estas palabras se colocan en la memoria en dos palabras consecutivas de simple longitud.
Bits menos significativos 3 2 1 0 0 1 1 1 0 0 1 0 Rango n Rango n+1
7 6 5 4 1 1 1 1 01 0 1
F flotante: el formato flotante utilizado es el de la norma IEEE Std 754-1985 (equivalente de IEC 559). La longitud de las palabras es de 32 bits. Corresponde a nmeros flotantes de simple precisin. Ejemplos de valores flotantes: 1285.28 12.8528E2
Posibilidades de solapamiento entre objetos Bytes, palabras de simple y doble longitud y flotantes se almacenan en el espacio de %MD0 %MD1 datos en una misma rea de memoria. As, hay solapamiento: %MD2 entre la palabra de doble longitud %MDi %MD3 y las palabras de simple longitud %MWi y %MWi+1 (la palabra %MWi contiene los %MDi bits menos significativos y la palabra %MWi+1 los ms significativos de la palabra %MDi). entre la palabra de simple longitud %MWi %MFk y los bytes %MBj y %MBj+1 (con j=2.i) entre el flotante %mFk y las palabras de simple longitud %MWk y MWk+1. Ejemplos: %MD0 corresponde a %MW0 y %MW1, %MW3 corresponde a %MB7 y %MB6, %KD543 corresponde a %KW543 y %KW544, %MF10 corresponde a %MW10 y %MW11.
___________________________________________________________________________ 1/17
Valores inmediatos Son valores algebraicos, cuyo formato es homogneo con el de las palabras de simple y doble longitud (16 o 32 bits), que asignan valores a estas palabras. Se almacenan en la memoria de programa. La tabla siguiente contiene su sintaxis.
Tipo Booleano Entero base 10simple longitud doble longitud Entero base 2 simple longitud (binario) doble longitud Sintaxis 0 o 1 (FALSE o TRUE) 1506 578963 2#1000111011111011011 2#1000111011111011011 1111111011111011111 Entero base 16simple longitud 16#AB20 (hexadecimal) doble longitud 16#5AC10 Flotante -1.32e12 'aAbBcC' Lmite inf. Lmite sup.
-32768 +32767 -2 147 483 648 2 147 483 647 2#10...0 2#01...1 2#10...0 2#01...1 16#0000 16#FFFF 16#000000000 16#FFFFFFFF -3.402824E+38-1.175494E-38 1.175494E-38 3.402824E+38
Direccionamiento de palabras en la red El direccionamiento de las palabras en red se describe en el manual Comunicaciones. Por otra parte, la s redes utilizan objetos especficos: las palabras comunes. Son objetos palabras de simple longitud (16 bits) comunes a todas las estaciones conectadas a la red de comunicacin. Direccionamiento: %NW{i.j}k donde: i = 0 a 127 n de red,j = 0 a 31 n de estacin y k= 0 a 3 n de palabra Bits extrados de palabras El programa PL7 permite extraer uno de los 16 bits de palabras de simple longitud. El rango del bit extrado completa la variable de la palabra segn la sintaxis siguiente: PAL. :X j Posicin j = 0 a 15 Rango del bit en la palabra Ejemplos: %MW10:X4 = bit n 4 de la palabra interna %MW10 %QW5.1:X10 = bit n 10 de la palabra de salida %QW5.1 ___________________________________________________________________________ 1/18
Nota: La extraccin de bits de palabras tambin se puede efectuar en palabras indexadas.
A
Generalidades PL7
Lista recapitulativa de los principales objetos palabras y bits asociados Las anotaciones utilizadas son: R para la lectura y W para la escritura.
Palabras y bits Naturaleza asociados Direccionamiento %MWi %MDi %MFi %MBi %KWi %KDi %KFi %KBi %IWxy.i %IDxy.i %QWxy.i %QDxy.i %Xi.T %Xj.i.T %NW{j}k %SWi %SDi Lmites (1) (1) (1) (1) (1) (1) (1) (1) 0i127 0i126 0i127 0i126 0i249 0j63 0i249 0j31 0k3 0i255 0i254 0j15 0j15 0j15 0j15 0j15 0m15 Posibilidades R/W R/W R/W R/W R/W R/W R/W R/W (3) (3) (3) (3)
Palabras internas simple longitud doble longitud flotante byte (2) Palabras constantes simple longitud doble longitud flotante byte (2) E simple longitud E doble longitud S simple longitud S doble longitud
R R R/W R/W R R R/W R/W (4) R/W (4) R/W R/W (3) R R/W R/W (4) R/W
Palabras Grafcet simple longitud simple longitud Pal. comunes en la red Palabras sistema simple longitud doble longitud Bits extrados de palabras
bit j de palabra interna %MWi:Xj bit j de palabra constante %KWi:Xj bit j de palabra de entrada %IWi:Xj bit j de palabra de salida %QWi:Xj bit j de palabra sistema %SWi:Xj bit j de palabra comn %NW{j}k:Xm red 0
(1) el lmite mximo depende del tamao de memoria disponible y del nmero de palabras declaradas en la configuracin del programa. (2) este objeto existe nicamente como direccin inicial de una cadena de caracteres %MBi:L o %KBi:L (vase el apartado 2.8-1, seccin B). (3) escritura slo desde el terminal. (4) escritura segn i.
___________________________________________________________________________ 1/19
1.2-5 Objetos de bloques de funcin Los bloques de funcin implantan objetos bits y palabras especficos. Objetos bits Corresponden a salidas de bloques. Las instrucciones booleanas de comprobacin permiten acceder a estos bits. Objetos palabras Corresponden: - a parmetros de configuracin del bloque. El programa permite acceder a ellos (ej.: parmetro de preseleccin) o no (ej.: base de tiempo). - a valores actuales (ej.: %Ci.V valor de contaje en curso).
%Ci R E
Bloque contador/descontador
1.3-3
Valor actual %MNi.V Valor de preseleccin %MNi.P Salida monoestable en curso %MNi.Q Acceso al registro Salida del registro Salida registro lleno Salida registro vaco Nmero de paso en curso Estados del paso j Tiempo de actividad del paso Ult. paso definido en curso Valor actual Valor de preseleccin Salida en curso Salida temporizador transc. %Ri.I %Ri.O %Ri.F %Ri.E %DRi.S %DRi.Wj %DRi.V %DRi.F %Ti.V %Ti.P %Ti.R %Ti.D
2.2-1
2.2-2
Palabra
2.2-3
2.2-4
(1) El nmero total de temporizadores %TMi y %Ti se limita a 64 para un TSX 37 y a 255 para un TSX/PMX/ PCX 57. (2) Nmero mximo para el TSX 37; para el TSX/PMX/PCX 57, i=0 a 254 para todos los bloques de funcin. ___________________________________________________________________________
1/20
A
Generalidades PL7
1
1.2-6 Objetos estructurados Tablas de bits Las tablas de bits son series de objetos bits adyacentes del mismo tipo y de longitud %M10 %M11 %M12 %M13 %M14 %M15 definida: L. Ejemplo de tabla de bits: %M10:6
Tipo Direccin Bits de entradas TON %Ix.i:L Bits de salidas TON Bits internos Bits Grafcet %Qx.i:L %Mi:L %Xi:L, %Xj.i:L
nc par
Tamao mximo 1 < L < m (1) 1 < L < m (1) i + L < n (2) i+L <n (2) Acceso en escritura No S S No
(1) m=modularidad del mdulo (ej.: 8 para un mdulo de 8 entradas u 8 salidas). (2) n depende del tamao definido en la configuracin.
Tablas de palabras Las tablas de palabras son series de palabras adyacentes del mismo tipo y de longitud definida: L. Ejemplo de tablas de palabras: %KW10:5
Tipo Palabras internas Formato Simple longitud Doble longitud Flotante Direccin %MWi:L %MDi:L %MFi:L %KWi:L %KDi:L %KFi:L %SW50:4 (3)
%KW10
16 bits
%KW14
Tamao mximo
Acceso escritura
i+L < Nmx (2) S i+L < Nmx-1 (2) S i+L < Nmx-1 (2) S i+L < Nmx (2) No i+L < Nmx-1 (2) No i+L < Nmx-1 (2) No S
%MB10 8 bits
Palabras constantes Simple longitud Doble longitud Flotante Palabras Grafcet Palabras sistema Simple longitud Simple longitud
Cadenas de caracteres Las cadenas de caracteres son series de bytes adyacentes del mismo tipo y de longitud definida: L. Ejemplo de cadena de caracteres:
Tipo Palabras internas Direccin %MBi:L (5)
%MB14
%MB10:5
Tamao mximo 1<i+L<Nmx (4) 1<i+L< Nmx (4) Acceso en escritura S S
(3) Nmx = nmero mximo definido en la configuracin del programa. (4) slo las palabras %SW50 a %SW53 pueden ser direccionadas en forma de tabla. (5) i debe ser par. ___________________________________________________________________________
1/21
Objetos indexados Direccionamiento directo Se dice directo el direccionamiento de objetos cuando la direccin de estos objetos es fija y se ha definido en la escritura del programa. Ejemplo: %MW26 (palabra interna con la direccin 26) Direccionamiento indexado En el direccionamiento indexado, un ndice completa la direccin directa del objeto: a la direccin del objeto se agrega el contenido del ndice. Una palabra interna %MWi una palabra constante %KWi, o un valor inmediato define el ndice. No se limita el nmero de palabras indexadas. Ejemplo: %MW108[%MW2]: palabra de direccin directa 108 + contenido de la palabra %MW2. Si el contenido de la palabra %MW2 es el valor 12, escribir %MW108[%MW2] equivale a escribir %MW120.
Formato Booleano Booleano Booleano Booleano Simple longitud Doble longitud Flotante Direccin %Ii[ndice] %Qi[ndice] %Mi[ndice] %Xi[ndice] %Xj.i[ndice] ndice[ndice] %MDi[ndice] %MFi[ndice] %KWi[ndice] %KDi[ndice] %KFi[ndice] Tamao mximo 0<i+ndice<m (1) 0<i+ndice<m (1) 0<i+ndice<Nmx (2) 0<i+ndice<Nmx (2) 0<i+ndice<Nmx (2) 0<i+ndice<Nmx (2) 0<i+ndice<Nmx-1 (2) 0<i+ndice<Nmx-1 (2) 0<i+ndice<Nmx (2) 0<i+ndice<Nmx-1 (2) 0<i+ndice<Nmx-1 (2) Acceso Escritur. No S S No No S S S No No No No No S S No No
Tipo Bit de entrada Bit de salida Bit interno Bit Grafcet Palabras internas
Palabras constantes Simple longitud Doble longitud Flotante Palabras Grafcet Tabla de palabras Simple longitud
%Xi .T[ndice] 0<i+ndice<Nmx (2) %Xj.i.T[ndice] 0<i+ndice<Nmx (2) 0<i +ndice+L<Nmx (2) 0<i +ndice+L<Nmx (2) 0<i+ndice+L<Nmx (2) 0<i+ndice+L<Nmx (2)
___________________________________________________________________________ 1/22
(1) m = modularidad del mdulo E/S (ej.: 8 para un mdulo de 8 entradas u 8 salidas). La indexacin es posible nicamente para los mdulos E/S TON. (2) Nmx = nmero mximo definido en la configuracin del programa. Este tipo de direccionamiento permite recorrer sucesivamente una serie de objetos de la misma naturaleza (palabras internas, palabras constantes...); a la direccin del objeto se agrega el contenido del ndice. Nota Indexacin de palabras dobles (o flotantes) Ejemplo: %MD6[%MW100] doble palabra de direccin directa 6 + 2 veces el contenido de la palabra %MW100. Si %MW100=10, la palabra direccionada ser 6 + 2 x 10 -->%MD26.
A
Generalidades PL7
Desbordamiento de ndice, bit sistema %S20 Se produce un desbordamiento de ndice cuando la direccin de un objeto indexado excede los lmites del rea que incluye este mismo tipo de objeto; es decir cuando: direccin de objeto + contenido del ndice inferior al valor cero, direccin de objeto + contenido del ndice superior al lmite mximo configurado (vase la tabla en la pgina previa). En caso de desbordamiento de ndice, el sistema pone al estado 1 el bit sistema %S20 y asigna al objeto un valor de ndice igual a 0. El usuario esta encargado de la supervisin del desbordamiento: el bit %S20 debe ser ledo por el programa de usuario para un tratamiento posible y puesto a cero por el usuario. %S20 (estado inicial = 0): desbordamiento de ndice: puesta a 1 por el sistema, confirmacin de desbordamiento: puesta a 0 por el usuario despus de la modificacin del ndice. 1.2-7 Objetos Grafcet Objetos bits El usuario dispone de objetos bits del Grafcet. %Xi asociados a etapas que le permiten conocer el estado de la etapa i del grfico principal (Chart). %XMj asociados a las macroetapas que le permiten conocer el estado de la macroetapa j del Grafcet. %Xj.i asociados a la etapa i de' la macroetapa j que le permiten conocer el estado de la etapa i de la macroetapa j del Grafcet. %Xj.IN o %Xj.OUT asociados a la etapa de entrada o de salida de la macroetapa. Este bit est a 1 cuando la etapa o la macroetapa est activa, a 0 cuando est inactiva. Objetos palabras Una palabra se asocia a cada etapa: %Xi.T,%Xj.i.T,%Xj.IN.T o %Xj.OUT.T. Permite conocer el tiempo de actividad de la etapa i del Gracet. Se incrementa cada 100 ms y asume un valor entre 0 y 9999. 1.2-8 Objetos de bloques de funcin DFB Los parmetros de entradas y las variables pblicas de bloque de funcin DFB son accesibles por programa, estos objetos son de tipo boleano, numrico o tabla (vase captulo 6). Estos objetos son nicamente simblicos y se definen con la sintaxis siguiente: Nombre_DFB.Nombre_parmetro, donde Nombre_DFB es el nombre proporcionado al bloque de funcin DFB utilizado (32 caracteres mximo) y Nombre_parmetro es el nombre proporcionado al parmetro de salidas o a la variable pblica (8 caracteres mximo). ___________________________________________________________________________ 1/23
1.2-9 Simbolizacin Smbolos Un smbolo es una cadena que consta de un mximo de 32 caracteres alfanumricos y cuyo primer carcter es alfabtico. El primer elemento del smbolo es una letra mayscula; las dems son minsculas (por ejemplo: el smbolo Horno_1). El smbolo puede ser introducido en letras maysculas o en minsculas (por ejemplo: HORNO_1): el programa le da automticamente la forma correcta. Pueden utilizarse los caracteres siguientes: letras maysculas: "A a Z" y las letras acentuadas "DUY" o letras minsculas: " a a z" y las letras acentuadas: yp caracteres numricos: dgitos de 0 a 9 (no pueden colocarse en el principio del smbolo). el carcter "_" (no puede colocarse en el principio ni al final del smbolo). Se reserva un cierto nmero de palabras para los lenguajes; stas no pueden utilizarse como smbolos. Vase la lista completa en la seccin B, captulo 5. El editor de variables define y asocia los smbolos a objetos de lenguaje (vase el captulo 5, seccin D). Se puede asociar un comentario de 508 caracteres a cada smbolo. Los smbolos y sus comentarios se guardan en un disco en vez del autmata. Objetos simbolizables Se pueden simbolizar todos los objetos PL7, salvo los objetos estructurados de tipo tabla y los objetos indexados. Sin embargo, si el objeto de base o el ndice est simbolizado, el smbolo se utiliza en el objeto estructurado. Ejemplos: si la palabra %MW0 tiene como smbolo "temperatura", "temperatura: 12" simboliza la tabla de palabras %MW0:12. si la palabra %MW10 tiene como smbolo "horno_1", "temperatura[horno_1]" simboliza la palabra indexada %MW0[%MW10]. Los objetos bits extrados de palabras, los bits o las palabras de bloques de funcin son simbolizables. Si no estn simbolizados, pueden heredar el smbolo del objeto de base. Ejemplos: si la palabra %MW0 tiene como smbolo "estado_bomba" y si el bit extrado de palabra %MW0:X1 no est simbolizado, ste hereda el smbolo de la palabra. %MW0:X1 tiene como smbolo: "estado_bomba: X1". si el bloque de funcin %TM0 tiene como smbolo " Tempo_horno1" y si la salida %TM0.D no est simbolizada, sta hereda el smbolo del bloque. %TM0.D tiene como smbolo: "Tempo_horno.D". ___________________________________________________________________________ 1/24
A
Generalidades PL7
Objetos nicamente simblicos Los parmetros de bloques funcin DFB son accesibles nicamente en forma de smbolos. Estos objetos se definen con la siguiente sintaxis: Nombre_DFB.Nombre_parmetro, donde Nombre_DFB es el nombre proporcionado al bloque de funcin DFB utilizado (32 caracteres mximo) y Nombre_parmetro es el nombre proporcionado al parmetro de salidas o a la variable pblica (8 caracteres mximo). Objetos presimbolizados Los mdulos especficos permiten una simbolizacin automtica de los objetos que les estn asociados. El usuario proporciona el smbolo genrico de la va %CHxy.i del mdulo, y todos los smbolos de los objetos asociados a esta va pueden ser entonces a pedido generados automticamente. Estos objetos son simbolizados con la sintaxis siguiente: Prefijo_usuario_Sufijo_constructor donde El Prefijo_usuario es el smbolo genrico proporcionado a la va %CHxy.i (12 caracteres mximo) para el usuario, El Sufijo_constructor es la parte del smbolo correspondiente al sujeto bit o palabra de la va (20 caracteres mximo) proporcionado por el sistema. Adems del smbolo, un comentario constructor se genera automticamente. Este comentario recuerda sucintamente la funcin del objeto. Ejemplo : Rec_piezas_capt , donde "Rec_piezas" es el prefijo usuario y "_capt" es el sufijo constructor predefinido.
___________________________________________________________________________ 1/25
1.3
Memoria de usuario
1.3-1 Generalidades El espacio de memoria de los autmatas TSX 37, accesible al usuario, se compone de dos partes distintas: la memoria de bits RAM integrada en el mdulo procesador que contiene la imagen de 1280 objetos bits. la memoria de palabras palabras de 16 bits (programa, datos y constantes) soportadas por una memoria RAM interna del mdulo procesador. Esta memoria puede ampliarse con una tarjeta de memoria de usuario RAM o FLASH EPROM de 32 64 K palabras (en el TSX 37-21/22). Para guardar la aplicacin (15 Kpalabras) y 1000 palabras internas %MWi (1Kpalabras), se puede utilizar una memoria de 16 K palabras FLASH EPROM integrada en el mdulo procesador (Vase el apartado 1.3-2). Tambin es posible utilizar una tarjeta backup FLAH EPROM de 32 K palabras para actualizar una aplicacin en la RAM interna del procesador. Esta tarjeta contiene la parte programa y las constantes pero no los datos. Si se utiliza una tarjeta de memoria (PCMCIA), 2 tipos de organizacin de la memoria de palabras son posibles:
TSX 37-05/08/10 o TSX 37-21/22 (sin tarjeta PCMCIA)
RAM interna Datos Programa Constantes Flash EPROM interna (1) Guardado Programa y Constantes Guardado %MW Tarjeta memoria RAM o Flash EPROM externa Programa
Constantes
Datos : datos dinmicos de aplicacin y sistema, Programa : descriptores y cdigo ejecutable de tareas, Constantes: palabras constantes, valores iniciales y configuracin de las E/S. Observacin Las memorias RAM utilizan como respaldo bateras de niquel-cadmio soportadas por el mdulo procesador en cuanto a la memoria bit y RAM interna.
(1) La transferencia de la aplicacin desde la memoria FLASH EPROM hacia la memoria RAM se efecta automticamente cuando la aplicacin se pierde en la RAM (fallo al guardar o ausencia de batera). Tambin se puede solicitar una transferencia manual desde un terminal de programacin.
___________________________________________________________________________ 1/26
A
Generalidades PL7
1
El espacio de memoria de los autmatas TSX/PMX/PCX 57 se compone de una sola parte. La memoria de bits, separada en el TSX 37, est integrada en la memoria de palabras (en el rea de datos) y se limita a 4096 bits. La memoria de palabras Palabras de 16 bits (programa, datos y constantes) soportadas por una memoria RAM interna del mdulo procesador, esta memoria puede ampliarse con una tarjeta de memoria de usuario RAM o FLASH EPROM de 32, 64, 128 256 K palabras (en el TSX 57-10) y de 32, 64 128 K palabras (1). Tambin es posible utilizar una tarjeta de seguridad FLASH EPROM de 32 K palabras para actualizar una aplicacin en la RAM interna del procesador. Esta tarjeta contiene la parte programa y las constantes pero no los datos. Dos tipos de organizacin de la memoria son posibles en funcin de la presencia o del modo de utilizacin de la tarjeta de memoria PCMCIA:
TSX/PMX/PCX 57 (sin tarjeta de memoria) TSX/PMX/PCX (con tarjeta de memoria)
RAM interna
RAM interna
Datos
Programa
Constantes
Datos
: datos dinmicos de aplicacin y datos del sistema (el sistema reserva un rea de memoria RAM de un mnimo de 5 Kpalabras), Programa : descriptores y cdigo ejecutable de tareas, Constantes : palabras constantes, valores iniciales y configuracin de E/S. Smbolos : Las tarjetas TSX MRP 2128P y TSX MRP 3256 P contienen un rea de 128 Kpalabras y 256 Kpalabras para almacenar los smbolos de la aplicacin. Area de archivado: Las tarjetas TSX MRP 232P/264P/2128P/3256 P contienen un rea de archivado de los datos accesibles mediante las instrucciones de lectura/escritura (vase Captulo 2.13, seccin B). No hay posibilidad de desbordamiento de datos en la tarjeta de memoria. Tambin es imposible tener programa tanto en la RAM interna como en el cartucho. Observacin Las memorias RAM utilizan como respaldo bateras de niquel-cadmio.
(1)Las tarjetas de memoria 256 Kpalabras son tarjetas paginadas. Una pgina de 128 Kpalabras que recibe el cdigo ejecutable, la otra pgina de 128 Kpalabras que recibe la informacin grfica. Para obtener ms informacin, vase captulo 8 , seccin B.
___________________________________________________________________________ 1/27
1.3-2 Guardado / restauracin de palabras internas %MWi Guardado de palabras internas %MWi Para guardar los datos de ajuste al producirse un corte de alimentacin, cuando la pila del procesador presenta un fallo o est ausente, los autmatas TSX 37 pueden volver a copiar un mximo de 1000 palabras internas (%MW) en la memoria Flash EPROM interna. Este rea de guardado se puede utilizar siempre, incluso cuando el autmata dispone de una tarjeta PCMCIA (TSX 37-21/22). El guardado de palabras internas en la Flash EPROM requiere que la aplicacin est en STOP. Dicha aplicacin podr activarse de nuevo en funcin de la seleccin realizada en configuracin: mediante la puesta a 1 de la entrada TON %I1.9, desde una consola de ajuste, poniendo a 1 el bit 0 de %SW96. El valor de la palabra de sistema %SW97 determina el nmero de %MWi que se va a guardar (mximo 1000). Al trmino del guardado, el bloque de visualizacin muestra OK o NOK en funcin del resultado de la operacin. El guardado de palabras internas %MWi se asocia siempre al guardado del programa de aplicacin. Si la palabra de sistema %SW97 se inicializa a 0, nicamente el programa de la aplicacin contenido en la RAM interna ser transferido a la Flash EPROM (equivalente a una copia de seguridad del programa). Atencin: sin embargo un eventual guardado de %MWi se borrar. Restauracin de palabras internas %MWi La transferencia de las %MWi guardadas, de la memoria interna Flash EPROM hacia la memoria RAM, se realiza durante un rearranque en fro provocado por: la prdida del contenido de la RAM interna. En ese caso, si el guardado del programa de la aplicacin es vlida, ste tambin ser transferido a la memoria RAM interna (TSX 37-10 o TSX 37-20 sin cartucho aplicacin PCMCIA), el botn RESET, situado en la parte delantera del autmata, la puesta a 1 del bit %S0, en ajuste, el clic en el botn "Arranque en fro" de la pantalla de depuracin del procesador de PL7, una transferencia de programa en el autmata (a travs de la toma terminal, FIPWAY, etc), la insercin de un cartucho de aplicacin PCMCIA. Para restaurar en la RAM interna las %MW guardadas, se deber comprobar en la pantalla de configuracin del procesador que la casilla "Puesta a 0 de las %MWi por rearranque en fro" no est seleccionada. Para obtener ms informacin, vase la seccin A del manual de instalacin TSX Micro.
___________________________________________________________________________ 1/28
A
Generalidades PL7
1
1.3-3 Memoria de bits Composicin Esta memoria contiene 1280 objetos bits sin distincin del tipo de autmata TSX 37. Para el TSX/PMX/PCX 57, esta memoria de bits no existe; su contenido se encuentra en la memoria de palabras en el rea de datos de la aplicacin.
TSX 37-05/08/10 Bits sistema Bits de E/S %SI %I/Qx 128 (1) 256 TSX 37-21/22 128 (1) 256 TSX/PMX PCX 57-1 128 (1) 3962 (2) TSX/PMX TSX/PMX 57-2 PCX 57-3 128 (1) 8056 (2) 128 (1) 12152 (2)
Bits de etapas %Xi (3) 96 128 1024 1024 1024 (1) Depende la configuracin hardware declarada (mdulos de entradas/salidas, esquipos en bus AS-i y en bus FIPIO). (2) Los parmetros del nmero de bits internos pueden definirse en la configuracin. El valor predeterminado (de 256 a 2048) depende del procesador y de la presencia de un cartucho de memoria. La memoria restante est disponible para las funciones especficas. (3) Total de los bits de etapas y de macroetapas para los autmatas TSX/PMX/PCX 57. Estructura
Cada objeto bit contenido en la memoria de bits se memoriza con tres bits asignados del modo siguiente: F A C
Estado actual (nico bit accesible desde el programa) Estado anterior Estado de forzado
Al actualizar la memoria de bits, el sistema asegura la transferencia de la imagen del estado actual al estado anterior, la reactualizacin del estado actual por el programa, el sistema o el terminal (forzado de un bit). Flanco ascendente o descendente Esta estructura de la memoria de bits permite detectar el flanco ascendente o descendente en: los bits de entradas/salidas, los bits internos. Consejos de utilizacin de flancos ascendentes o descendentes Las instrucciones de contacto en el flanco ascendente o descendente funcionan correctamente en las condiciones descritas a continuacin. De todas formas, se deben tratar para un mismo objeto: - el bit de entrada: el contacto de flanco en la tarea en la que se intercambia el mdulo, - el bit de salida o interno: la lectura y la escritura dentro de una misma tarea. ___________________________________________________________________________ 1/29
Se escribe una sola vez la bobina de un objeto cuando se utiliza en un programa un contacto de flanco de este objeto. No se debe efectuar el SET o RESET de un objeto cuyo flanco se est probando, puesto que aun cuando el resultado de la ecuacin que condiciona el SET/RESET vale 0, la accin SET/RESET no se realiza, pero el historial del objeto se actualiza (prdida del flanco). No se debe probar el flanco de entradas/salidas actualizado en una tarea de suceso, una tarea maestra o una tarea rpida. Para los bits internos: la deteccin de un flanco es independiente del ciclo de la tarea. Se detecta un flanco en un bit interno %Mi, cuando su estado cambia entre dos lecturas. Este flanco permanece detectado mientras no se explore el bit interno en el rea de accin. Por consiguiente, en el ejemplo siguiente, si el bit %M0 se fuerza a 1 en una tabla de animacin, el flanco queda permanente.
%M0
P
INC%MW0
Para que el flanco se detecte una sola vez, se debe utilizar un bit interno intermedio. En este caso, el historial de %M1 se actualiza. Por consiguiente, el flanco est presente una sola vez.
%M0 %M1
P
%M1
INC%MW0
Estados de forzado A peticin de forzado desde el terminal: el estado de forzado F se pone a 1. el estado actual C se pone a: - 1 si se solicita el forzado a 1, - 0 si se solicita el forzado a 0. Estos estados no evolucionan, a menos que: se suprima el forzado y se actualice el bit implicado, se solicite el forzado inverso; slo se modifica el estado actual.
___________________________________________________________________________ 1/30
A
Generalidades PL7
1
1.3-4 Memoria de palabras La estructura de esta memoria de palabras de 16 bits consta de tres espacios lgicos: datos, programa, constantes, cuyo tamao se define en la configuracin.
Datos de aplicacin Programa de aplicacin Constantes de aplicacin
Memoria de datos de aplicacin La memoria de datos comprende las cinco reas descritas a continuacin. Palabras sistema: nmero fijo. Bloques de funcin: corresponde a las palabras y entradas/salidas de estos bloques (valor actual, de ajuste...). El nmero de cada tipo de bloque de funcin se determina en la configuracin. Palabras internas: tamao definido por el nmero declarado en la configuracin. Entradas/salidas: corresponde a las palabras asociadas a cada mdulo. Su nmero depende de los mdulos configurados. Palabras comunes de red: 4 palabras comunes por estacin de autmata (disponible nicamente si el mdulo de comunicacin est presente y se ha configurado el intercambio de palabras comunes). En el caso del TSX/PMX/PCX 57, la memoria de datos comprende tambin las informaciones de bits detalladas en el prrafo previo. Memoria de programa de aplicacin Este rea comprende el cdigo del programa ejecutable, las informaciones grficas (redes de contactos) y los comentarios. Memoria de constante de aplicacin Este rea comprende los parmetros de los bloques de funcin y de los mdulos de entradas/salidas definidos en la configuracin, as como las palabras constantes %KW.
Nota Los smbolos y los comentarios asociados a objetos no se guardan en la memoria del autmata. Se almacenan en la aplicacin local (disco duro del terminal).
___________________________________________________________________________ 1/31
(1) depende de la configuracin hardware declarada (mdulos de entradas/salidas, equipos en bus AS-i)
Ki = Kinstrucciones. (1) Tamao predeterminado, se puede ampliar en detrimento del tamao del programa de aplicacin. Nota: el comando Autmata/Asignacin de memoria del software PL7 permite conocer la reparticin de memoria de la aplicacin en la memoria autmata.
___________________________________________________________________________ 1/32
A
Generalidades PL7
1.3-6 Autmatas TSX/PCX/PMX 57-10/20/25 Estas tablas se refieren a los autmatas TSX 57-10, PCX 57-10, PMX 57-10, TSX 57 -20, PMX 57-20 y TSX 57-25. Tamao de la memoria en bits
Procesador Tipo de objetos bits sistema %Si bits entradas/salidas %I/Qx.i bits internos %Mi bits de etapas %Xi 57 10 128 (1) 3962 1024 57 20/25 128 (1) 8056 1024
(1) depende de la configuracin hardware declarada (mdulos de entradas/salidas, equipos en bus AS-i y en bus FIPIO)
8,8/16,1Ki 12,4/12,4Ki 27,2/27,2Ki 16,1/23,5Ki 12,4/12,4Ki 11,2/20,6Ki 15,8/15,8Ki 34,7/34,7Ki 20,5/29,9Ki 15,8/15,8Ki 13,7/13,7Ki 10,6/10,6Ki 23,1/23,1Ki 13,7/19,9Ki 10,5/10,5Ki
8,8/8,8Ki 21,6/21,6Ki 11,6/17,6Ki 8,7/8,7Ki 10,5/10,7Ki 25,9/26,3Ki 13,9/21,1Ki 10,4/10,4Ki 8,4/8,3Ki 20,7/20,4Ki 11,1/16,9Ki 8,4/8,4Ki
3,7/8,5Ki 6,8/6,6Ki 16,9/16,5Ki 8,7/13,7Ki 3,8/9,7Ki 6,9/7,5Ki 17,3/18,7Ki 8,9/14,1Ki 4,4/9,7Ki 8,0/7,5Ki 20,0/18,7Ki 10,3/16,3Ki 128 pals. 128 pals. 256 pals. 512 pals.
K = Kpalabras Ki = Kinstrucciones (1) Tamao predeterminado, que puede ampliarse en detrimento del tamao de la aplicacin. Notas : cuando la tabla menciona para una caracterstica 2 valores separados por una "/", stas estn asociadas respectivamente a cada tipo de procesador (separados por una "/" en el encabezado de la tabla). el comando Autmata/Asignacin de memoria del software PL7 permite conocer la asignacin de memoria de la aplicacin en la memoria del autmata.
___________________________________________________________________________ 1/33
1.3-7 Autmatas TSX/PCX 57-30/35 Estas tablas se refieren a los autmatas TSX 57-30, TSX 57-35, PCX 57-35. Tamao de la memoria en bits
Procesador Tipo de objetos bits sistema %Si bits entradas/salidas %I/Qx.i bits internos %Mi bits de etapas %Xi 57 30/35 128 (1) 12152 1024
(1) depende de la configuracin hardware declarada (mdulos de entradas/salidas, equipos en bus AS-i y en bus FIPIO)
Tarj. de memoria -
23,5/30,8 Ki 12,4 K/12,4 Ki 27,2 K/27,2 Ki 56,8 K/56,8 Ki 90,5 K/90,5 Ki 29,9/39,3 Ki 15,8 K/15,8 Ki 34,7K/34,7Ki 72,4 K/72,4 Ki 83,6 K/83,6 Ki 19,9 /26,2 Ki 10,5 K/10,5 Ki 23,1 K/23,1 Ki 48,2 K/48,2 Ki 74,6 K/74,6 Ki
18,0/24,4 Ki 8,7 K/8,7 Ki 21,6 K/21,6 Ki 47,5 K/47,5 Ki 76,8 K/76,8 Ki 21,5/29,2 Ki 10,4 K/10,4 Ki 25,8 K/25,8 Ki 56,7 K/56,7 Ki 73,9 K/73,9 Ki 17,2 /23,4Ki 8,4 K/8,4 Ki 20,7 K/20,7 Ki 45,49K/45,49Ki 76,0 K/76,0 Ki
13,7/18,8 Ki 6,8 K/6,8 Ki 14,1/19,2 Ki 6,9 K/6,9 Ki 16,3 /22,2Ki 8,0 K/8,0 Ki 256 pals. 256 pals.
16,8 K/16,8 Ki 37,0 K/37,0 Ki 63,1 K/63,1 Ki 17,2 K/17,2 Ki 37,9 K/37,9 Ki 61,4 K/61,4 Ki 19,9 K/19,9 Ki 43,8 K/43,8 Ki 63,8 K/63,8 Ki 256 pals. 1024 pals. 1024 pals.
K = Kpalabras Ki = Kinstrucciones (1) Tamao predeterminado, que puede ampliarse en detrimento del tamao de la aplicacin. Notas : cuando la tabla menciona para cada caracterstica 2 valores separados por una "/", stos estn asociados respectivamente a cada tipo de procesador (separados por una "/" en el encabezado de la tabla). el comando Autmata/Asignacin de memoria del software PL7 permite conocer la asignacin de la memoria de la aplicacin en la memoria !del autmata.
___________________________________________________________________________ 1/34
A
Generalidades PL7
1
1.3-8 Autmatas PMX57-35/45 y TSX 57-40/45 Estas tablas se refieren a los autmatas PMX 57-35, PMX 57-45, TSX 57-40 y TSX 57-45. Tamao de la memoria en bits
Procesador Tipo bits sistema %Si bits internos %Mi bits de etapas %Xi de objetos PMX 57 35/45 y TSX 57 40/45 128 bits entradas/salidas %I/Qx.i (1) 12152 1024
(1) depende de la configuracin hardware declarada (mdulos de entradas/salidas, equipos en bus AS-i y en bus FIPIO)
Tarj. de memoria -
PMX 57 35 / PMX 45 / TSX 57 40 y45 32K 64K 80K/96K/96K 1K(1) 30,5K 30,5K
128K 30,5K
K = Kpalabras Ki = Kinstrucciones (1) Tamao predeterminado, que puede ampliarse en detrimento del tamao de la aplicacin. Notas : cuando la tabla menciona para cada caracterstica 2 valores separados por una "/", stos estn asociados respectivamente a cada tipo de procesador (separados por una "/" en el encabezado de la tabla). el comando Autmata/Asignacin de memoria del software PL7 permite conocer la asignacin de memoria de la aplicacin en la memoria del autmata. ___________________________________________________________________________
1/35
1.4
Modos de marcha
1.4-1 Corte de corriente y reanudacin de la alimentacin Si se produce un corte de corriente, el sistema memoriza el contexto de la aplicacin y la hora del corte. Luego, posiciona todas las salidas al estado de retorno (definido en la configuracin). Cuando se reanuda la alimentacin, el contexto guardado se compara con el actual. El resultado define el tipo de arranque ejecutado. Si el contexto de aplicacin ha cambiado (prdida del contexto sistema o nueva aplicacin), el autmata inicializa la aplicacin: arranque en fro. Si el contexto de aplicacin es idntico, el autmata reanuda sin inicializar los datos: rearranque en caliente. Si el corte es inferior al tiempo de filtrado (10 ms para las alimentaciones alternas y 1 ms para las continuas), el programa lo ignora y sigue ejecutando normalmente.
RUN Aplicacin
Corte de corriente
Espera
Reanud. aliment.
Corte detectado
Contexto guardado
No
No
S
Tarjeta de memoria idntica
No
S
Ejecucin normal del programa Rearranque en caliente Arranque en fro
Nota Un arranque en fro puede realizarse de los modos siguientes: reanudacin de la alimentacin con prdida de contexto (ejemplo: batera de respaldo del procesador fuera de servicio), ejecutando una aplicacin por primera vez, presionando el botn RESET del procesador, poniendo a 1 el bit sistema %S0 desde el programa, efectuando una inicializacin en PL7 desde el terminal, con la tarjeta de memoria PCMCIA insertada en su emplazamiento o manipulando el prensil (excepto para el autmata PCX 57, donde la insercin de carta memoria PCMCIA est prohibida en encendido). Un rearranque en caliente puede realizarse de los modos siguientes: reanudacin de la alimentacin sin prdida de contexto, poniendo a 1 el bit sistema %S1 desde el programa. desde PL7 mediante el terminal. ___________________________________________________________________________
1/36
A
Generalidades PL7
1
Adquisicin de entradas
Ejecucin del programa TOP Reanud. alimentacin Si %S1 = 1, tratamiento relativo al rearranque en caliente
Autopruebas de la configuracin
S
Corte de corriente > microcorte
No
BOT Puesta a 0 del bit %S1
Actualizacin de salidas
Reanudacin de la ejecucin del programa Se reanuda la ejecucin del programa a partir del elemento en el que se produjo el corte de corriente sin que se actualicen las salidas. Luego, el sistema efecta un ciclo de reanudacin en el que acepta de nuevo todos los mdulos de entrada, vuelve a activar la tarea maestra con el bit %S1 posicionado a 1 durante un ciclo de tarea y actualiza las salidas. El sistema desactiva las tareas rpida y de suceso hasta el fin del primer ciclo de la tarea maestra. Tratamiento del rearranque en caliente En caso de rearranque en caliente, el usuario que desea un tratamiento particular respecto a la aplicacin debe escribir en el principio del programa de la tarea maestra el programa correspondiente sobre prueba de %S1 a 1. Evolucin de las salidas Al detectarse el corte de corriente, las salidas se ponen en posicin de retorno: al valor de retorno o conservacin del valor actual, segn la configuracin. Al reanudar la alimentacin, las salidas estn en el estado cero hasta que la tarea las actualice. ___________________________________________________________________________ 1/37
A
1.4-3 Arranque en fro
Adquisicin de entradas Parada procesador Contexto aplicacin guardado
Ejecucin del programa TOP Reanud. alimentacin Si %S0 = 1, tratamiento eventual del arranque en fro
Autopruebas de la configuracin
S
Inicializacin de la aplicacin
No
BOT
Actualizacin de salidas
Inicializacin de los datos y del sistema lo que corresponde a: puesta a 0 de los bit, de la imagen de E/S y de las palabras internas (si se ha seleccionado, en la pantalla de configuracin del procesador, la opcin RAZ de las %MW al arrancar en fro, consltese la seccin D - apartado 1.3). Si la opcin RAZ de las %MW no est activa y si las %MWi est salvadas en la memoria interna Flash EPROM (TSX 37), stas se restaurarn al arrancar en fro. inicializacin de los bits y palabras sistema, inicializacin de los bloques de funcin a partir de los datos de configuracin, las tareas, excepto la tarea maestra, se desactivan hasta el fin del primer ciclo de la tarea maestra. posicionamiento del Grafcet en las etapas iniciales. Tratamiento del arranque en fro Despus de un arranque en fro, si el usuario que desea efectuar un tratamiento aplicativo, tiene la posibilidad de probar por programa el bit %SW10:X0 (si %SW10:X0=0, se ha producido un arranque en fro). Al arrancar en fro, el autmata reanuda o no la ejecucin, segn la configuracin definida por el usuario (parmetro RUN AUTO). Evolucin de las salidas Al detectarse el corte de corriente, las salidas se ponen en posicin de retorno: a 0 o conservacin del valor actual, segn la configuracin. Al reanudar la alimentacin, las salidas estn a cero hasta que la tarea las actualice. ___________________________________________________________________________ 1/38
A
Generalidades PL7
1.5 Estructura software monotarea 1
1.5-1 Presentacin de la tarea maestra El programa de una aplicacin monotarea est asociado a una tarea usuario: la tarea MAST. El programa asociado a la tarea maestra est estructurado en un tratamiento principal constituido por varias secciones y de subprogramas. tratamiento principal (MAIN) dividido en secciones, que se programan como entidades separadas en el lenguaje adecuado (LD, IL, ST o Grafcet). subprograma SRi (i=0 a 253) Los mdulos subprograma se programan tambin como entidades separadas en LD, IL o ST, mientras las llamadas a los subprogramas se efectan en las secciones del tratamiento principal o desde otros subprogramas (8 imbricaciones como mximo). La ejecucin de la tarea maestra puede elegirse (en configuracin) cclica o peridica. Mdulos funcionales: vase captulo 7 Presentacin de una seccin Una seccin se caracteriza por: un nombre de 24 caracteres mximo, el lenguaje en el cual est programada, la tarea a la cual pertenece, una condicin de ejecucin (opcional), la seccin est activa si la condicin vale 1 e inhibida si vale 0. Objetos autorizados como condicin: %M,%S,%X,bit indexado,bits extrado,%I , %Q. Todos estos objetos se pueden forzar desde el terminal excepto los %S, bitsbit indexado, bits extrado,%I xy.i.ERR,y %I xy.MOD.ERR. un comentario de 250 caracteres mximo. una proteccin: proteccin contra escritura, proteccin contra lectura/escritura. La proteccin puede ser general o parcial. ___________________________________________________________________________ 1/39
Nota: en el arranque en fro las condiciones de ejecucin estn a 0, y todas las secciones a las cuales se asocia una condicin estn inhibidas.
MAST Sas(LD)
Una seccin es una entidad autnoma, las etiquetas de marcacin de las lneas de instrucciones o de las redes de contactos son propias a la seccin (no hay salto de programa posible hacia otra seccin). Las secciones se ejecutan en el orden de programacin en la ventana del navegador.
Mast Sections
Sas Four_1
Prl Chart Post
Secado
La tarea maestra del ejemplo de la pgina anterior est constituida por: una seccin en lenguaje de contactos LD, una seccin en Grafcet, una seccin en lenguaje literal ST, una seccin en lenguaje lista de instrucciones.
Limpieza
Seccin Grafcet : Una seccin Grafcet comprende: el tratamiento preliminar (PRL) programado en LD, ST o IL. Se ejecuta antes de Grafcet, el Grafcet (CHART): en las pginas Grafcet, se programan las receptividades asociadas a las transiciones y acciones asociadas a las etapas y o a las etapas de macroetapas (vase cp....), el tratamiento posterior (POST) programado en LD, ST o IL. Se ejecuta despus de Grafcet, los subprogramas SRi (i = 0 a 253). Los mdulos de subprograma, se programan como entidades separadas y las llamadas a los subprogramas se efectan en el tratamiento preliminar, posterior, en las acciones asociadas a las etapas o desde otros subprogramas (8 imbricaciones mximo).
Pg. Grafcet
___________________________________________________________________________ 1/40
A
Generalidades PL7
1.5-2 Ejecucin cclica Este tipo de funcionamiento corresponde a la ejecucin normal del ciclo de autmata (funcionamiento predeterminado). Consiste en encadenar uno tras otro los ciclos de la tarea maestra (MAST). Despus de actualizar las salidas, el sistema realiza sus tratamientos propios y luego activa otro ciclo de la tarea. Tratamiento del programa %I T.I. Ciclo n %Q T.I. Ciclo n+1 %I Tratamiento del programa %Q
T.I. Tratamiento interno: el sistema supervisa implcitamente el autmata (gestin de los bits y palabras sistema, actualizacin de los valores actuales del relojcalendario y de los indicadores de estado, deteccin de los RUN/STOP) y tratamiento de las peticiones provenientes del terminal (modificaciones y animacin). %I Adquisicin de entradas: escritura en memoria del estado de las informaciones presentes en las entradas de los mdulos TON y de funciones especficas. Tratamiento de programa: ejecucin de la aplicacin escrita por el usuario. %Q Actualizacin de las salidas: escritura de los bits o palabras de salidas asociados a los mdulos TON y de funciones especficas, segn el estado definido por el programa de aplicacin. Ciclo de funcionamiento y control del ciclo Autmata en RUN: el procesador efecta el tratamiento interno, la adquisicin de las entradas, el (1) tratamiento del programa de aplicacin y Tratamiento interno la actualizacin de las salidas, en este orden. Autmata en STOP: el procesador efecta Adquisicin de entradas el tratamiento interno, la adquisicin de las entradas, RUN STOP y segn la configuracin elegida, - modo de retorno: las salidas se ponen Tratamiento del programa en posicin de "retorno" , - modo de conservacin: las salidas conservan los valores actuales o se modifican desde el terminal. Actualizacin de salidas Control del ciclo: el watchdog efecta el control del ciclo; vase el captulo 1.5-4.
(1) En el caso del TSX/PMX/PCX 57, el tratamiento interno se realiza en paralelo con los tratamientos de las entradas y salidas. ___________________________________________________________________________
1/41
1.5-3 Ejecucin peridica En este modo de funcionamiento, la adquisicin de las entradas, el tratamiento del programa de aplicacin y la actualizacin de las salidas se efectan de manera peridica segn el tiempo definido en la configuracin (de 1 a 255 ms). En el inicio del ciclo de autmata, un temporizador, cuyo valor actual se inicializa en el perodo definido en la configuracin, comienza a descontar. El ciclo de autmata debe terminarse antes de la expiracin de este temporizador que activa un nuevo ciclo. Tratamiento del programa %I T.I. Perodo %Q T.I. T.I. Perodo %I Tratamiento del programa %Q T.I.
T.I. Tratamiento interno: el sistema supervisa implcitamente el autmata (gestin de los bits y palabras sistema, actualizacin de los valores actuales del relojcalendario y de los indicadores de estado, deteccin de los RUN/STOP) y el tratamiento de las peticiones provenientes del terminal (modificaciones y animacin). %I Adquisicin de entradas: escritura en memoria del estado de las informaciones presentes en las entradas de los mdulos TON y de funciones especficas. Tratamiento del programa: ejecucin del programa de aplicacin escrito por el usuario.
%Q Actualizacin de las salidas: escritura de los bits y palabras de salidas asociados a mdulos TON y de funciones especficas segn el estado definido por el programa de aplicacin.
(1) En el caso del TSX/PMX/PCX 57, el tratamiento interno se realiza en paralelo con los tratamientos de las entradas y salidas
___________________________________________________________________________ 1/42
A
Generalidades PL7
Ciclo de funcionamiento y control del ciclo Autmata en RUN: el procesador efecta el tratamiento interno, la adquisicin de las entradas, el tratamiento del programa de aplicacin y la actualizacin de las salidas, en este orden. Si todava no se ha terminado el perodo, el procesador completa su ciclo de funcionamiento hasta el fin del perodo con tratamiento interno. Si el tiempo de funcionamiento excede el tiempo asignado al perodo, el autmata seala un desbordamiento de perodo mediante la puesta a 1 del bit sistema %S19 de la tarea. El tratamiento contina y se ejecuta en su totalidad (no debe exceder el tiempo lmite del watchdog). El ciclo siguiente se activa despus de la escritura implcita de las salidas del ciclo en curso. Autmata en STOP: el procesador efecta el tratamiento interno, la adquisicin de las entradas, y segn la configuracin elegida, - modo de retorno: las salidas se ponen en la posicin de "retorno", - modo de conservacin: las salidas conservan los valores actuales o se modifican desde el terminal. Control del ciclo Se efectan 2 controles: desbordamiento del perodo, mediante el watchdog, (vase el captulo 1.5-4).
(1) En el caso del TSX/PMX/PCX 57, el tratamiento interno se realiza en paralelo con los tratamientos de las entradas y salidas
Tratamiento interno
(1)
Actualizacin de salidas
Tratamiento interno
(1)
Fin de perodo
___________________________________________________________________________ 1/43
1.5-4 Control del tiempo de ciclo Watchdog (funcionamiento peridico o cclico) El autmata (el watchdog) controla el tiempo de ejecucin de la tarea maestra tanto en el funcionamiento peridico como en el cclico. El tiempo no debe exceder el valor definido en la configuracin Tmx (valor predeterminado: 250ms, valor mximo: 500ms). En caso de desbordamiento, se declara una falla de aplicacin y el autmata se detiene inmediatamente (si est configurada, la salida de alarma %Q2.0 se pone a 0 en el TSX 37; en el TSX/PMX/PCX 57, el rel de alarma se pone a 0 al conectar la alimentacin). El bit %S11 permite controlar la ejecucin de esta tarea. Seala un desbordamiento del watchdog. El sistema lo pone a 1, cuando el tiempo de ciclo excede el watchdog. En el TSX/PMX/PCX 57, el valor del watchdog debe ser superior al perodo. En el funcionamiento peridico, un control adicional permite detectar un rebasamiento de perodo: %S19: seala un desbordamiento de perodo. El sistema lo pone a 1, cuando el tiempo de ciclo excede el perodo de la tarea. %SW0: esta palabra contiene el valor del perodo (en ms). En el arranque en fro, se inicializa con el valor definido en la configuracin. Puede ser modificada por el usuario.
Uso de los tiempos de ejecucin de la tarea maestra Las palabras sistema siguientes permiten obtener informaciones sobre el tiempo de ciclo: %SW30 contiene el tiempo de ejecucin del ltimo ciclo, %SW31 contiene el tiempo de ejecucin del ciclo ms largo, %SW32 contiene el tiempo de ejecucin del ciclo ms corto.
Nota Tambin es posible acceder a estas informaciones de forma explcita desde el editor de configuracin.
___________________________________________________________________________ 1/44
A
Generalidades PL7
1.6 Estructura multitarea 1
1.6-1 Descripcin La estructura de las tareas en este tipo de aplicacin es la siguiente: la tarea maestra MAST, siempre presente, cclica o peridica, la tarea rpida FAST, opcional, siempre peridica, tratamientos de suceso EVTi, llamados por el sistema al aparecer un suceso en un acoplador de E/S. Estos tratamientos son opcionales y utilizados por las aplicaciones que necesitan tiempos de respuesta cortos para actuar sobre las entradas/salidas..
Tarea maestra Tarea rpida Tareas de suceso
Prioridad
Las tareas maestra y rpida son estructuradas en secciones (vase descripcin de una seccin en el captulo 1.5). Slo la tarea maestra puede comprender una seccin Grafcet. Las tareas de suceso slo comprenden una sola seccin cuyo nombre no puede modificarse.
MAST Sas(LD) FAST Alarma_Sas(LD) Vig_Sec(LD) Alarma_Horno(ST) Alarma_Limpieza(ST) SR0 EVT0
Secado(LD)
SR0
Limpieza(ST)
___________________________________________________________________________ 1/46
A
Generalidades PL7
Gestin de las tareas La tarea maestra permanece siempre activa; la tarea rpida est activa si est programada. La tarea de suceso se activa al aparecer el suceso asociado. Al aparecer un suceso o comenzar un ciclo de tarea rpida, la ejecucin de las tareas menos prioritarias se detiene. Se reanuda la ejecucin de la tarea interrumpida, cuando se terminan los tratamientos de la tarea prioritaria. El programa controla la ejecucin de las tareas rpidas y de suceso con de los bits sistema siguientes: %S31 permite activar o no la tarea maestra MAST, %S31 permite activar o no la tarea rpida FAST, %S38 permite activar o no las tareas de suceso EVTi. Ejemplo de tratamiento multitarea tarea maestra cclica, tarea rpida de 20 ms, tarea de suceso. Suceso Rpida Maestra Sistema
E T ETS T S ETS E T ETS E
ETS
TS
ETS T
T S
20 ms
20 ms
20 ms
20 ms
1.6-2 Tarea maestra Esta tarea, que es la menos prioritaria, efecta la gestin de la mayor parte del programa de aplicacin. La tarea MAST est organizada segn el modelo descrito en el subcaptulo previo: lectura implcita de las entradas, ejecucin del programa de aplicacin y escritura implcita de las salidas. En ambos modos de funcionamiento (peridico o cclico), el watchdog que controla la tarea permite detectar una duracin anormal del programa de aplicacin. En caso de desbordamiento, el bit sistema %S11 se pone a 1 y se declara una falla con bloqueo de la aplicacin. El bit sistema %S30 permite validar o inhibir la tarea maestra.
___________________________________________________________________________ 1/47
1.6-3 Tarea rpida Esta tarea de mayor prioridad que la tarea maestra MAST es peridica para permitir la ejecucin de la tarea menos prioritaria. Adems, los tratamientos asociados a ella deben ser de corta duracin para no retardar la tarea maestra. Como en la tarea maestra, el programa asociado se compone de secciones y de subprogramas. El perodo de la tarea rpida FAST se determina en la configuracin (de 1 a 255 ms). Este puede definirse superior al perodo de la tarea maestra MAST para que se adapte a tratamientos peridicos lentos pero prioritarios. Sin embargo, el programa ejecutado debe ser de corta duracin. Un watchdog que controla la tarea rpida permite detectar una duracin anormal del programa de aplicacin. En caso de desbordamiento, el bit sistema %S11 se pone a 1 y se declara una falla con bloqueo del autmata. Control de la tarea rpida La palabra sistema %SW1 contiene el valor del perodo. Se inicializa en el arranque en fro con el valor definido en la configuracin. El usuario puede modificarla desde el programa o el terminal. Los bits y palabras sistema siguientes permiten controlar la ejecucin de esta tarea: %S19: seala un desbordamiento de perodo. El sistema lo pone a 1, cuando el tiempo de ciclo excede el perodo de la tarea. %S31: permite validar o inhibir la tarea rpida. El sistema lo pone a 0 al final del primer ciclo de la tarea maestra, cuando la aplicacin se arranca en fro. Se pone a 1 o 0 para validar o inhibir la tarea rpida. Visualizacin de los tiempos de ejecucin de la tarea rpida Estas palabras sistema permiten obtener informaciones sobre el tiempo de ciclo: %SW33 contiene el tiempo de ejecucin del ltimo ciclo, %SW34 contiene el tiempo de ejecucin del ciclo ms largo, %SW35 contiene el tiempo de ejecucin del ciclo ms corto.
___________________________________________________________________________ 1/48
A
Generalidades PL7
1.6-4 Asignacin de vas de E/S a las tareas maestra y rpida Adems del programa de aplicacin, las tareas MAST y FAST ejecutan funciones sistema relacionadas con la gestin de las entradas/salidas implcitas asociadas. La asociacin de una va o un grupo de vas a una tarea se define en la pantalla de configuracin del acoplador correspondiente. De forma predeterminada, la tarea asociada es la tarea MAST. Puesto que la modularidad de los mdulos TON es de 8 vas sucesivas (vas 0 a 7, vas 8 a 15, ...), las entradas/salidas pueden asignarse por grupos de 8 vas, sin distincin, a la tarea MAST o FAST. Por ejemplo, es posible asignar las vas de un mdulo de 28 entradas/salidas del modo siguiente: entradas 0 a 7 asignadas a la tarea MAST, entradas 8 a 15 asignadas a la tarea FAST, salidas 0 a 7 asignadas a la tarea MAST, salidas 8 a 11 asignadas a la tarea FAST. Cada va de un mdulo de contaje puede asignarse sin distincin a la tarea MAST o FAST. Por ejemplo, es posible asignar a un mdulo de contaje de 2 vas: la va 0 a la tarea MAST y la va 1 a la tarea FAST. Las vas de los mdulos de entradas analgicas TSX 37 se asignan obligatoriamente a la tarea MAST. En cambio, es posible asignar las vas de las salidas analgicas sin distincin a la tarea MAST o FAST, con una modularidad de 2 vas. Por ejemplo, se pueden asignar a un mdulo de 4 salidas analgicas: las vas 0 y 1 a la tarea MAST y las vas 2 y 3 a la tarea FAST. Las vas de los mdulos E/S analgicas TSX 57 pueden asignarse a la tarea MAST o FAST. Esta asignacin es individual para cada va de los mdulos E/S analgicas aisladas (4 vas aisladas) y con una modularidad de vas para los dems mdulos.
___________________________________________________________________________ 1/49
1.6-5 Tareas de suceso Los tratamientos de sucesos permiten reducir el tiempo de reaccin del programa sobre los sucesos de control. Sucesos de control Son sucesos externos vinculados a las funciones especficas. La aparicin de un suceso desva el programa de aplicacin hacia el tratamiento asociado a la va de entradas/salidas que activ el suceso. Antes de llamar al tratamiento de suceso, el sistema actualiza las entradas (%I, %IW, %ID) asociadas a la va de E/S que activ el suceso. Es posible configurar: 8 sucesos en un autmata TSX 37-05/08/10 (EVT1 a EVT8), 16 sucesos en un autmata TSX 37-21/22 (EVT0 a EVT15), 32 sucesos en un autmata TSX/PMX/PCX 57-10 (EVT0 a EVT31), 64 sucesos en un autmata TSX/PMX/PCX 57-20/30 (EVT0 a EVT63). Una va se asocia a un nmero de suceso en la pantalla de configuracin de vas. En el TSX 37, los tratamientos de suceso pueden ser activados por: las entradas 0 a 3 del mdulo en la posicin1, en el flanco ascendente o descendente, la o las vas de contaje de los mdulos de contaje, las vas de contaje del mdulo 1 (si ste est configurado como contador), la recepcin de telegramas en un TSX 37-21/22 dotado de un mdulo TSX FPP20. En el TSX/PMX/PCX 57, los tratamientos de suceso pueden ser activados por: las las las las las entradas de los mdulos DEY 16 FK, DMY 28 FK, DMY 28 RFK vas de los contadores, vas de los mdulos de comando de eje CAY, vas de los mdulos de comando paso a paso CFY, vas de comunicacin "FPP20".
Gestin de las tareas de suceso Los tratamientos de sucesos pueden ser globalmente validados o inhibidos por el programa de aplicacin a travs del bit sistema %S38. Si uno o varios sucesos intervienen durante su inhibicin, se pierden los tratamientos asociados. Dos instrucciones del lenguaje PL7, MASKEVT() y UNMASKEVT(), utilizadas en el programa de aplicacin, permiten enmascarar o desenmascarar los tratamientos de sucesos. Si uno o varios sucesos intervienen durante su enmascaramiento, el sistema los memoriza y los tratamientos asociados se efectuarn slo despus del desenmascaramiento. Los 8 sucesos de control posibles en un autmata TSX 37-05/08/10 tienen todos el mismo nivel de prioridad; por consiguiente, un tratamiento de suceso no puede ser interrumpido por otro. En un autmata TSX 37-21/22 o en un autmata TSX/PMX/PCX 57, hay 2 niveles de prioridad de sucesos de control: el suceso 0 (EVT0) es ms prioritario que los dems sucesos. ___________________________________________________________________________ 1/50
A
Generalidades PL7
Intercambios de entradas/salidas en las tareas de suceso Es posible asociar a cada tarea de suceso otras vas de entradas/salidas que la relativa al suceso. El sistema realiza los intercambios implcitamente antes (%I) y despus (%Q) del tratamiento aplicativo. Estos intercambios pueden ser relativos a una va (ejemplo: mdulo de contaje) o a un grupo de vas (mdulo TON). En el segundo caso, si el tratamiento modifica por ejemplo las salidas 2 y 3 de un mdulo TON, es la imagen de las salidas 0 a 7 la que se transferir al mdulo.
La aparicin de un suceso desva el programa de aplicacin hacia el tratamiento asociado a la va de entrada/ salida que activ el suceso:
Adquisicin implcita de entradas asociadas a la va origen del suceso Adquisicin implcita de entradas declaradas en la tarea EVTi Tratamiento del suceso
el tratamiento debe ser el ms corto posible. se actualizan todas las salidas declaradas por el usuario en la tarea EVTi. Para que puedan actualizarse, tambin deben declararse las salidas asociadas a la va que activ el suceso.
___________________________________________________________________________ 1/51
Nota: En el caso de los mdulos TOR TSX DEY16FK, TSX DMY28FK o TSX DMY28RFK, la entrada que ha generado el suceso no debe ser controlada en el tratamiento de sucesos (el valor no es actualizado). La prueba del flanco que ha iniciado el suceso debe ser efectuada en la palabra de estado: %IWxy.i:X0 = 1 --> flanco ascendente %IWxy.i:X1 = 1 --> flanco descendente
Observaciones En el TSX 37, no deben intercambiarse en un tratamiento de suceso los mdulos de entradas analgicas que slo pueden utilizarse en la tarea MAST. Los intercambios de las entradas/salidas asociadas a la tarea EVTi y utilizadas por el programa se realizan mediante va (para los mdulos de contaje) o mediante grupo de vas (para los mdulos TON). Por esta razn, si el tratamiento modifica por ejemplo las salidas 2 y 3 de un mdulo TON, es la imagen de las salidas 0 a 7 la que se transferir al mdulo. En el TSX 37, para cada tratamiento de suceso, es posible declarar como mximo los intercambios de 2 mdulos en entrada (antes del tratamiento del suceso) y 2 mdulos en salida (despus del tratamiento del suceso). Las entradas intercambiadas (y el grupo de vas asociadas) durante la ejecucin de la tarea de sucesos se actualizan (prdida de valores histricos, pues de los flancos). Por consiguiente, se debe evitar comprobar los flancos en estas entradas en las tareas maestra (MAST) y rpida (FAST).
Para las E/S TON, un intercambio implica un grupo de 8 vas. Se genera al utilizar las entradas de un grupo de 8 vas (otro que el grupo de vas que genera el suceso) y al escribir las salidas de un grupo de 8 vas. Para las E/S ANA o las E/S de otra funcin especfica, un intercambio se genera al utilizar las entradas de una va (otra que la va que genera el suceso al escribir las salidas de una va). Visualizacin del nmero de sucesos tratados La palabra %SW48 indica el nmero de sucesos tratados. El sistema inicializa esta palabra a 0 al arrancarse en fro 0 y la incrementa al activar un suceso. El usuario puede modificar esta palabra. %S39 indica la prdida de suceso.
Nota Una recapitulacin de las operaciones que se deben efectuar para programar los sucesos se proporciona en la seccin A, captulo 5.3 de los manuales de funciones especficas.
___________________________________________________________________________ 1/52
2.1
2.1-1 Principio Un programa escrito en lenguaje de contactos se compone de una serie de redes ejecutadas secuencialmente por el autmata. Trazada entre dos barras de potencial, una red es un conjunto de elementos grficos que representan: las entradas/salidas del autmata (botones pulsadores, detectores, rels, indicadores...), funciones de automatismos (temporizadores, contadores...), operaciones aritmticas, lgicas y especficas, las variables internas del autmata. Estos elementos grficos estn vinculados entre s mediante conexiones horizontales y verticales. Cada red as constituida contiene un mximo de 16 lneas y 11 columnas (para los autmatas TSX/ PMX/PCX 57) 7 lneas y 11 columnas (para los autmatas TSX 37). Se divide en 2 reas: el rea de prueba, en la que figuran las condiciones necesarias para una accin, el rea de accin, que presenta el resultado de un encadenamiento de pruebas.
Formulario de programacin Esquema de contactos
Espera de secado
EVT MAIN SR FAST PRE MAST POST AUX CHART
%L
%I1.0 %TM4.Q %M17 %M12 %I3.7
%Q2.5
%MW4<50 %I3.10 %Q4.3 %M27 IN %TM0 Q TYP : TP TB : 100ms TM.P : 200 MODIF : Y %I1.2 %I1.4
SR1 C
___________________________________________________________________________ 2/1
2.1-2 Elementos grficos Elementos de base Cada uno ocupa una sola celda (1 lnea de alto, 1 columna de ancho).
Designacin Elementos de prueba Contacto de cierre Contacto de apertura Contacto de deteccin de cambio de estado Elementos de enlace Conexin horizontal Conexin vertical de potencial Derivacin de corto circuito Elementos de accin Bobina directa Bobina inversa Bobina de conexin Bobina de desconexin Salto condicional a otra red (JUMP)
S R P
Grfico
Funciones Contacto establecido cuando el objeto bit que lo controla est en el estado 1. Contacto establecido cuando el objeto bit que lo controla est en el estado 0. Flanco ascendente: deteccin del paso de 0 a 1 del objeto bit que lo controla. Flanco descendente: deteccin del paso de 1 a 0 del objeto bit que lo controla. Permite vincular en serie entre las dos barras de potencial elementos grficos de prueba y de accin. Permite vincular en paralelo los elementos grficos de prueba y de accin. Permite unir 2 objetos a travs de varias conexiones. El objeto bit asociado toma el valor del resultado del rea de prueba. El objeto bit asociado toma el valor inverso del resultado del rea de prueba. El objeto bit asociado se pone a 1 cuando el resultado del rea de prueba es 1. El objeto bit asociado se pone a 0 cuando el resultado del rea de prueba es 1. Permite una desviacin a una red etiquetada que se encuentra arriba o abajo. Slo son vlidos los saltos dentro de una misma entidad de programacin (programa principal, subprograma,...) La ejecucin de un salto provoca: la parada de la exploracin de red en curso, la ejecucin de la red con la etiqueta solicitada, la no exploracin de la parte del programa situada entre la accin de salto y la red designada. Propuesta en lenguaje Grafcet, utilizada al programar receptividades asociadas a transiciones; hace pasar a la etapa siguiente.
->> %Li
___________________________________________________________________________ 2/2
A
Lenguaje de contactos
2
Grfico
C
Funciones Permite una desviacin en el inicio del subprograma cuando el resultado del rea de prueba es 1. La ejecucin de una llamada a un subprograma tiene como consecuencia: la parada de la exploracin de red en curso, la ejecucin del subprograma, la reanudacinde laexploracininterrumpida.
<RETURN> Reservada para el subprograma SR. Permite regresar al mdulo que llama cuando el resultado del rea de prueba es 1. <HALT> Detiene la ejecucin del programa cuando el resultado del rea de prueba es 1.
___________________________________________________________________________ 2/3
Bloques de operacin
Designacin Elementos de prueba Bloque de comparacin vertical Bloque de comparacin horizontal Elemento de accin Bloque de operacin Grfico Funciones Permite comparar 2 operandos; segn el resultado, la salida correspondiente pasa a 1. Dimensin: 2 columnas/4 lneas Permite comparar 2 operandos; la salida pasa a 1 cuando se ha verificado el resultado. (Un bloque puede contener hasta 4096 caracteres). Dimensin: 2 columnas/1 lnea Realizan las operaciones aritmticas, lgicas utilizando la sintaxis del lenguaje literal. (Un bloque puede contener hasta 4096 caracteres.) Dimensin: 4 columnas/1 lnea
___________________________________________________________________________ 2/4
A
Lenguaje de contactos
2
2.2
2.2-1 Generalidades Una red se inscribe entre dos barras de potencial y se compone de un conjunto de elementos grficos vinculados entre s por enlaces horizontales o verticales. Las dimensiones mximas de una red son 16 lneas y 11 columnas (para los autmatas TSX/PMX/PCX 57) 7 lneas y 11 columnas (para los autmatas TSX 37) repartidas en dos reas: el rea de prueba y el rea de accin. Columnas 1 2 3 4 5 6
EVT MAIN SR
7
FAST
9
MAST PRE
10
POST
11
AUX CHART
Barras de potencial
Area de prueba
___________________________________________________________________________ 2/5
Area de accin
2.2-2 Etiqueta La etiqueta (opcional) permite marcar una red en una entidad de programa (programa principal, subprograma, ...). La sintaxis de la etiqueta es la siguiente: %Li, con i comprendida entre 0 y 999. Se coloca en la parte superior izquierda en frente de la barra de potencial. Se puede asignar una etiqueta a una sola red dentro de una misma entidad de programa. En cambio, es necesario poner etiqueta a una red para permitir una desviacin despus de un salto de programa.
%M20
%L245
% L2 4 5
%M3
%TM4.D
%I1.6 %MW1:X2
%Q2.1
El orden de las etiquetas no tiene importancia (es el orden de introduccin de las redes que el sistema tiene en cuenta durante la exploracin).
2.2-3 Comentario El comentario (opcional) se integra en la red y comprende un mximo de 222 caracteres alfanumricos, con los caracteres '(*' y '*)' en cada extremo. Facilita la interpretacin de la red a la que est asignado. Los comentarios se muestran en el rea reservada en la parte superior de la red de contactos. Cuando se elimina una red, se elimina tambin el comentario asociado. Area de comentario
%L
%Q2.3 %I1.4 %MW2:X9 %I1.3
%M16 %C8.E
%Q4.7 SR4 C
%M12 %TM3.Q
%I5.2
%M155 S
Los comentarios se almacenan en el autmata, donde quedan a la disposicin del usuario en todo momento. Por consiguiente, consumen memoria de programa.
___________________________________________________________________________ 2/6
A
Lenguaje de contactos
2.2-4 Red de contactos Su representacin se parece a un esquema elctrico de rels. Los elementos grficos simples de prueba y de accin ocupan cada uno una lnea y una columna en una red. Todas las lneas de contactos comienzan en la lnea de potencial izquierda y se terminan en la lnea de potencial derecha. Las pruebas se sitan siempre en las columnas de 1 a 10. Las acciones se sitan siempre en la columna 11. El sentido de circulacin del corriente es el siguiente: para los enlaces horizontales, de la izquierda a la derecha, para los enlaces verticales, en ambos sentidos.
%L
%Q2.3 %I1.4 %MW2:X9 %I1.3
%M16 %C8.E
%Q4.7 SR4 C
%M12 %TM3.Q
%I5.2
%M155 S
%L
%M16 %T3.D %I5.4 %C13.E
%L
Area de prueba Contiene: los contactos, a los que se pueden asignar todos los objetos bits definidos previamente, los bloques de funcin, los bloques de comparacin. Los flancos pueden asociarse slo a objetos bits E/S y a bits internos.
%M9 S
%I6.8 %C2.D
%MW8:X4
___________________________________________________________________________ 2/7
Area de accin Contiene: las bobinas directas, inversas, de conexin y desconexin, que pueden asignarse a todos los objetos bits que el usuario puede escribir, los bloques de operacin, las dems "bobinas": Call, Jump, Halt, Return. Red simple Control de una bobina condicionada por un contacto. Se utiliza un mximo de 10 contactos en serie en una lnea. Es posible probar 16 contactos (7 contactos para TSX37) mximo en paralelo en una columna y colocar 16 bobinas (7 bobinas para TSX37) en paralelo.
%L
%M52
%MW8:X1
%MW8:X10 /
%I1.3
%Q4.12
%M1
%I3.2 %MW18:X4 %Q4.2 %M15 %TM2.Q %I3.4 %MW1:X5 %M5 %C0.D %Q6.3 /
%L
%M5 %I6.9
%MW15:X5
%Q6.2 %M25
%MW8:X0 / SR9 C %L20
%C6.E %Q5.2 %I3.7 %S4 %M8 %M9 %M10 %M11 %M12 %M13 %M14 %M15 %M16
%M12 R %Q2.6 S %M30 %M31 %M32 / %M33 C %M34 %M35 R %M36 S %M37 %M38
___________________________________________________________________________ 2/8
A
Lenguaje de contactos
2
Red que utiliza varias cadenas de contactos Una red puede dividirse en varias cadenas de contactos independientes que controlan bobinas independientes.
%L
%I3.2 %MW6:X10 %M88 %C2.E %S4 %I6.5 %L12 SR C %Q3.2 %Q3.3 / %MW3:X6 %M27 %M68 S %M30 C %M31 %M32 / %M33 %M34 %M35 S %M36 C %M37 %M38 /
%M53
%MW8:X4
%M11
%M12
%L
Estn rodeados los B D elementos que se G E encuentran en el estado lgico 1. La corriente puede pasar de los elementos A y C hacia la bobina F, pero no puede pasar del elemento C hacia los elementos D y E. Por consiguiente, no se activa la bobina G. ___________________________________________________________________________ 2/9
2.2-5 Red de contactos con bloques de funcin y de operacin Los bloques de funcin se posicionan en el rea de prueba y se insertan en una red de contactos. Existen cuatro dimensiones de grafismo que representan todos los bloques de funcin del lenguaje PL7.
%C4
Contador/Descontador Comparador "vertical" 2 columnas 4 lneas
%TM10
Temporizadores Monoestable Registro Programador cclico 2 columnas 3 lneas
Comparador "horizontal"
2 columnas 1 lnea
COMPARE
___________________________________________________________________________ 2/10
A
Lenguaje de contactos
2
Los bloques de operacin se posicionan siempre en el rea de accin. Utilizan 1 lnea y 4 columnas y el lenguaje literal. Se conectan siempre directamente a la barra de potencial derecha.
%MW10:X5
%MW22 : = %MW1+%MW9
Los bloques de funcin DFB se posicionan en el rea de prueba y se insertan en una red de contactos. Las dimensiones del grafismo dependen del nmero de entradas, salidas y de entradas/salidas utilizadas: EL ancho es fijo y es igual a 3 columnas. La altura es igual al ms mayor de los 2 nmeros siguientes ms 1: nmero de entradas y de entradas/salidas o nmero de salidas y de entradas/salidas Ejemplo: El nmero de entradas y de entradas/salidas es de 4, el nmero de salidas y de entradas/salidas es de 3, la altura del bloque es 4+1=5 columnas. La altura mxima de un bloque de funcin DFB es de 16 lneas. Observaciones: Un bloque de funcin DFB debe tener por lo menos una entrada booleana cableada. Las entradas, salidas o entradas/salidas numricas del bloque no estn cableadas. En estos puntos se asocian objetos mencionados en la celda colocada frente al punto. Las entradas no cableadas de los bloques de funcin DFB conservan el valor anterior a la llamada o el valor de inicializacin si el bloque jams ha sido llamado con esta entrada introducida o cableada. ___________________________________________________________________________ 2/11
DFB
Bloques de funcin en cascada Igual que para los elementos grficos del tipo contacto, es posible realizar combinaciones de bloques de funcin. Serielizacin de bloques de funcin:
%L
%I3.6 S %MN1 R TB : 100ms MN.P : 80 %TM12 IN Q TYP : TP TB : 100ms TM.P : 200 MODIF : Y
%Q6.3
%L
%I1.5 %MW1>100 %I1.2 %MW2>500 %TM10 IN Q TYP : TP TB : 1s TM.P : 50 MODIF : Y
%M28
%TM2.P := 3450
Otras posibilidades de bloques de funcin Todos los tipos de bloques de funcin deben conectarse obligatoriamente en entrada a la barra de potencial izquierda, o directamente o a travs de otros elementos grficos. Salidas "sueltas": no es necesario conectar las salidas de bloques de funcin a otros elementos grficos. Salidas que se pueden probar: el usuario accede a las salidas de los bloques funcin bajo forma de objetos bits.
%TM12.Q %C5.E
%Q4.12
Las variables internas de bloques y las salidas grficas son objetos que pueden ser explotados a distancia desde otra parte del programa.
___________________________________________________________________________ 2/12
A
Lenguaje de contactos
2.3 Reglas de ejecucin de una red de contactos 2
2.3-1 Principio de ejecucin de una red Una red se ejecuta red conexa por red conexa, y luego, dentro de la red conexa, de la izquierda a la derecha. Una red conexa contiene elementos grficos vinculados entre s por elementos de enlace (fuera de la barra de potencial), pero independientes de los dems elementos grficos de la red (en el lmite de la red conexa, sin enlaces verticales hacia arriba o abajo).
%M0 %I2.5 IN %TM1 Q %M8
%Q2.5
Red conexa 1
Red conexa 2
%M INIT
%Q2.6 %M
Red conexa 3
La primera red conexa evaluada es la cuya esquina izquierda se encuentra lo ms arriba a la izquierda. Una red conexa se evala en el sentido de la ecuacin: de arriba abajo, lnea por lnea y cada lnea de la izquierda a la derecha. Si se encuentra un enlace vertical de convergencia, se evala la subred asociada (segn la misma lgica) antes de continuar la evaluacin de la red que la engloba. Respetando este orden de ejecucin, el sistema: evala el estado lgico de cada contacto, segn el valor actual de los objetos internos de la aplicacin o del estado de las entradas de los mdulos E/S adquiridas en el inicio del ciclo, ejecuta los tratamientos asociados a funciones, a bloques de funcin y a subprogramas, actualiza los objetos bits asociados a bobinas (las salidas de los mdulos E/S se actualizan al final del ciclo), desva hacia otra red etiquetada del mismo mdulo de programa (salto a otra red ->>%Li), regresa al mdulo que llama <RETURN> o detiene el programa <HALT>.
Nota Una red de contactos no debe contener redes conexas imbricadas.
___________________________________________________________________________ 2/13
El orden de ejecucin de los elementos de esta red es el siguiente: evaluacin de la red hasta que se encuentre el primer enlace vertical de convergencia: contactos A, B, C, evaluacin de la primera subred: contacto D, continuacin de la evaluacin de la red hasta que se encuentre el segundo enlace vertical de convergencia: contacto E, evaluacin de la segunda subred: contactos F y G, evaluacin de la bobina H. Ejemplo de red "booleana" Orden de evaluacin: bobina 1: INIT, %M5, %M7, %Q2.1, bobina 2: %M4, %MW2:X1, AUTO, UP_1, bobina 3: INIT, DOWN_1.
%L
A B D F G C E
H
%L
INIT %M5
%MW2:X1
%M7 %M4
AUTO
%L
Ejemplo de red que contiene bloques Orden de evaluacin: bobina 1: %M0, %M8, %M2, %T1, %Q2.9, bobina 2: %T1.R, %T2, %M9, bloque de operacin.
%M %M2 E C %T1 D
%M8
%Q2.9
%M9
%T1.D E C
%T2 D R
%MW10 := %MW1+50
___________________________________________________________________________ 2/14
3.1
3.1-1 Principio Un programa escrito en lenguaje Lista de instrucciones se compone de una serie de instrucciones ejecutadas secuencialmente por el autmata.
Cada instruccin se compone de un cdigo de instruccin y de un operando. Estas instrucciones actan sobre: las entradas/salidas del autmata (botones pulsadores, detectores, rels, indicadores...), funciones de automatismos (temporizadores, contadores...), operaciones aritmticas y lgicas as como operaciones de transferencia, las variables internas del autmata. Hay dos tipos de instrucciones: instruccin de prueba, en la que figuran las condiciones necesarias para una accin, ej.: LD, AND, OR... instruccin de accin, que da el resultado de un encadenamiento de prueba, ej.: ST, STN, R...
___________________________________________________________________________ 3/1
3.1-2 Instrucciones Instrucciones de base (para ms amplia informacin sobre las instrucciones, vase el apartado B)
Designacin Instrucciones Instrucciones de prueba LD, LDN, LDR, LDF Funciones equivalentes
P N
O exclusiva
Negacin
S R
Permite una desviacin (incondicional, condicionada a un resultado booleano a 1, condicionada a un resultado booleano a 0) a una instruccin etiquetada, arriba o abajo. Desviacin en el inicio del subprograma. Regreso del subprograma (incondicional, condicionado a un resultado booleano a 1, condicionado a un resultado booleano a 0). Fin de programa, (incondicional, condicionado a un resultado booleano a 1, condicionado a un Parada de la ejecucin del programa.
___________________________________________________________________________ 3/2
A
Lenguaje Lista de instrucciones
3
El resultado es 1 cuando %MW10<1000. Realizan operaciones aritmticas, lgicas... Utilizan la sintaxis del lenguaje literal estructurado (vase la seccin B). El resultado de la operacin %MW0+100 se coloca en la palabra interna %MW10.
___________________________________________________________________________ 3/3
3.2
Estructura de un programa
3.2-1 Generalidades Igual que en el lenguaje de contactos, las instrucciones se organizan en secuencias (equivalentes a una red de contactos) llamadas sentencia. Cada sentencia se compone de una o varias instrucciones de prueba. El resultado de estas instrucciones se aplica a una o varias instrucciones de accin. Una instruccin ocupa al mximo una lnea. Cada sentencia empieza con un signo de admiracin (generado automticamente). Puede contener un comentario y estar marcada de una etiqueta. ! (*Espera %L2: LD AND ST de secado*) %I0.1 %M10 %Q2.5
3.2-2 Comentario El comentario puede integrarse en el principio de una sentencia y ocupar un mximo de 3 lneas (es decir, 222 caracteres alfanumricos), con los caracteres '(*' y '*)' en los extremos. Facilita la interpretacin de la sentencia relacionada, pero no es obligatorio. Los comentarios se muestran nicamente a partir de la primera lnea de la sentencia. Cuando se elimina una sentencia, se elimina tambin el comentario asociado. Los comentarios se almacenan en el autmata, donde quedan a la disposicin del usuario en todo momento. Por consiguiente, consumen memoria de programa.
3.2-3 Etiqueta La etiqueta (opcional) permite marcar una sentencia en una entidad de programa (programa principal, subprograma, ...). La etiqueta tiene la sintaxis siguiente: %Li, con i comprendida entre 0 y 999 y se coloca en el principio de una sentencia. Una etiqueta puede asignarse a una sola sentencia dentro de una misma entidad de programa. En cambio, es necesario poner etiqueta a una sentencia para permitir una desviacin despus de un salto de programa. El orden de las etiquetas no tiene importancia; es el orden de introduccin de las sentencias que el sistema tiene en cuenta durante la exploracin. ___________________________________________________________________________ 3/4
A
Lenguaje Lista de instrucciones
3.2-4 Utilizacin de los parntesis Las instrucciones AND y OR pueden utilizar parntesis, lo que permite realizar de modo sencillo esquemas de contactos. La apertura de parntesis se asocia a la instruccin AND u OR. El cierre de parntesis es una instruccin obligatoria para cada parntesis abierto. Ejemplo: AND(
LD AND OR ST LD AND( OR ) ST %I1.0 %I1.1 %I1.2 %Q2.0 %l1.0 %I1.1 %l1.2 %Q2.0
Ejemplo: OR(
%I1.0 %I1.1 %I1.2 %I1.3 %Q2.0
A los parntesis se pueden asociar los modificadores siguientes: N negacin, ej.: AND(N u OR(N F flanco ascendente (Rising edge), ej.: AND(F u OR(F R flanco descendente (Falling edge), ej.: AND(R u OR(R [ comparacin
%I1.0 %I1.1 %I1.3 %MW0>100 %Q2.0
___________________________________________________________________________ 3/5
Ejemplo
%I1.1 %I1.2 %I1.3 %I1.5 %I1.6 %I1.7 %I1.8 %I1.4 %Q2.0
Nota Cada parntesis abierto debe cerrarse imperativamente. No deben colocarse en expresiones entre parntesis las etiquetas %Li:, ni las instrucciones de salto JMP o las instrucciones de llamada al subprograma SRi. No deben programarse entre parntesis las instrucciones de asignacin ST, STN, S y R.
___________________________________________________________________________ 3/6
A
Lenguaje Lista de instrucciones
3.2-5 Instrucciones MPS, MRD, MPP Estas tres instrucciones permiten tratar los encaminamientos hacia las bobinas. Utilizan una memoria intermedia llamada pila que puede almacenar hasta 8 informaciones booleanas. La instruccin MPS (Memory PuSh) almacena el resultado de la ltima instruccin de prueba en lo alto de la pila y desplaza los dems valores hacia el fondo de la pila. La instruccin MRD (Memory ReaD) lee la parte alta de la pila. La instruccin MPP (Memory PoP) lee la parte alta de la pila, la desalmacena y desplaza los dems valores hacia lo alto de la pila. Ejemplos:
%I1.0 %M0 MPS MRD MPP %I1.1 %I1.2 %Q2.0 %Q2.1
%I1.3 %I1.4
%Q2.2 %Q2.3
LD AND MPS AND ST MRD AND ST MRD AND ST MPP AND ST LD MPS AND MPS AND( OR ) ST MPP AND ST MRD AND ST MPP AND ST
%I1.0 %M0 %I1.1 %Q2.0 %I1.2 %Q2.1 %I1.3 %Q2.2 %I1.4 %Q2.3 %I1.0 %I1.1
___________________________________________________________________________ 3/7
%I1.0 %I1.1
%I1.3
%Q2.0
3.2-6 Principios de programacin: bloques de funcin predefinidos Los bloques de funcin de los automatismos pueden programarse de 2 modos distintos: con instrucciones especficas para cada bloque de funcin (ej.: CU %Ci); es el modo ms sencillo y directo, con instrucciones de estructuracin de bloque BLK ,OUT_BLK, END_BLK.
%CI R E
LD R LDN ANDN CU LD ST
Las instrucciones controlan las entradas de los bloques (ej.: CU). Se accede a las salidas bajo forma de bit (ej.: %C8.D). Principio de programacin estructurada Este tipo de programacin utiliza una serie de instrucciones acompaadas de: la instruccin BLK, que indica el inicio del bloque, la instruccin OUT_BL, que permite cablear directamente las salidas del bloque, la instruccin END_BLK, que indica el fin del bloque.
%I1.1 R %I1.2 %M0 %C8 E %Q2.0
BLK %C8 LD %I1.1 R LDN %I1.2 ANDN %M0 CU OUT_BLK LD D ST %Q2.0 END_BLK
Tratamiento de entradas
Tratamiento de salidas
Puesto que este principio de programacin estructurada necesita las instrucciones adicionales BLK, OUT_BLK y END_BLK, se necesitan volmenes de memoria superiores a los requeridos en la programacin directa. Sin embargo, este principio debe utilizarse si se desea conservar una similitud con los programas reversibles para nanoautmatas TSX 07. ___________________________________________________________________________ 3/8
A
Lenguaje Lista de instrucciones
3.3 Reglas de ejecucin de un programa en Lista de instrucciones 3
Un programa en Lista de instrucciones se ejecuta secuencialmente instruccin por instruccin. La primera instruccin de una secuencia de instrucciones debe siempre ser una instruccin LD o una instruccin incondicional (ej.: JMP). Cada instruccin (salvo la LD y las instrucciones incondicionales) utiliza el resultado booleano de la instruccin previa. Ejemplo: LD %I1.1 AND %M0 OR ST resultado booleano = estado del bit %I1.1 resultado booleano = Y del resultado booleano previo y del estado del bit %M0 %M10 resultado booleano = O del resultado booleano previo y del estado del bit %M10 %Q2.0 %Q2.0 toma el estado del resultado booleano previo.
Los parntesis permiten modificar el orden de aceptacin de los resultados booleanos: Ejemplo: LD %I1.1 AND %M0 OR( AND ) ST resultado booleano = estado del bit %I1.1 resultado booleano = Y del resultado booleano previo y del estado del bit %M0 %M10 resultado booleano = estado del bit %M10 %I1.2 resultado booleano = Y del resultado booleano previo y del estado del bit %I1.2 resultado booleano = O del resultado booleano previo y del resultado booleano de la instruccin situada antes de la instruccin con parntesis. %Q2.0 %Q2.0 toma el estado del resultado booleano previo.
Las instrucciones JMP y llamada a subprograma pueden modificar la secuencia de las instrucciones. Ejemplo: ! LD %M0 JMPC %L10 ! LD %I1.1 AND %M10 Salto a la etiqueta %L10 si %M0=1 ST %Q2.0 ! %L10 : LD %I1.3 AND %M20 .........
___________________________________________________________________________ 3/9
___________________________________________________________________________ 3/10
4.1
4.1-1 Principio El lenguaje Literal estructurado permite realizar programas mediante la escritura de lneas de programacin que constan de caracteres alfanumricos. Este lenguaje se utiliza nicamente con el software PL7 Junior y PL7 Pro en los autmatas TSX/PMX/PCX 57. En la versin PL7 Pro, este lenguaje permite la creacin de los bloques de funcin del usuario DFB. La sentencia literal constituye la entidad de base del lenguaje Literal. El conjunto de sentencias permite definir un programa. Las principales instrucciones del lenguaje Literal son: instrucciones para bits, instrucciones aritmticas y lgicas para palabras y dobles palabras, instrucciones aritmticas para flotantes, comparaciones numricas para palabras, dobles palabras y flotantes, conversiones numricas, instrucciones para tablas de bits, de palabras, de dobles palabras y de flotantes, instrucciones para cadenas de caracteres, comparaciones alfanumricas, instrucciones de gestin de tiempo, instrucciones para el programa, instrucciones de control, instrucciones para los bloques de funcin estndar, instrucciones para los intercambios explcitos, instrucciones de tipo funciones especficas (comunicacin, regulacin, etc ...).
Ejemplo:
___________________________________________________________________________ 4/1
Tablas de bits
Designacin Tabla:= Tabla Tabla:= Palabra Palabra:= Tabla Palabra:= Doble palabra Doble palabra := Tabla COPY_BIT AND_ARX OR_ARX XOR_ARX NOT_ARX BIT_W BIT_D W_BIT D_BIT LENGHT_ARX Funcin Asignacin entre dos tablas Asignacin de una palabra a una tabla Asignacin de una tabla a una palabra Asignacin de una doble palabra a una tabla Asignacin de una tabla a una doble palabra Copia de una tabla de bits en una tabla de bits Y entre dos tablas O entre dos tablas O exclusiva entre dos tablas Negacin en una tabla Copia de una tabla de bits en una tabla de palabras Copia de una tabla de bits en una tabla de dobles palabras Copia de una tabla de palabras en una tabla de bits Copia de una tabla de dobles palabras en una tabla de bits Calcula la longitud de una tabla en nmero de elementos
___________________________________________________________________________ 4/2
A
Lenguaje Literal estructurado
4
___________________________________________________________________________ 4/3
___________________________________________________________________________ 4/4
A
Lenguaje Literal estructurado
4
___________________________________________________________________________ 4/5
A
Instrucciones de gestin del tiempo
Designacin SCHEDULE RRTC WRTC PTC ADD_TOD ADD_DT DELTA_TOD DELTA_D DELTA_DT SUB_TOD SUB_DT DAY_OF_WEEK TRANS_TIME DATE_TO_STRING TOD_TO_STRING DT_TO_STRING TIME_TO_STRING Funcin Funcin reloj calendario Lectura fecha sistema Actualizacin de la fecha sistema Lectura de fecha y cdigo de parada Agregado de una duracin a una hora del da Agregado de una duracin a una fecha y hora Medida de desviacin entre horas del da Medida de desviacin entre fechas (sin hora) Medida de desviacin entre fechas (con hora) Envo del tiempo hacia la hora Envo del tiempo hacia la hora y fecha Lectura del da actual de la semana Conversin de la duracin en fecha Conversin de una fecha en cadena de caracteres Conversin de una hora en cadena de caracteres Conversin de una fecha completa en cadena de caracteres Conversin de una duracin en cadena de caracteres
Instrucciones "Orphe"
Designacin WSHL_RBIT, DSHL_RBIT WSHR_RBIT, DSHR_RBIT WSHRZ_C, DSHRZ_C SCOUNT ROLW,ROLD RORW,RORD Funcin Desplazamiento a la izquierda en una palabra con recuperacin de bits desplazados Desplazamiento a la derecha en una palabra con extensin de sighno y recuperacin de bits desplazados Desplazamiento a la derecha en una palabra con rellenado con 0 y recuperacin de bits desplazados Contaje/descontaje con sealizacin y rebasamiento Desplazamiento circular izquierdo Desplazamiento circular derecho
Instrucciones de temporizacin
Designacin FTON FTOF FTP FPULSOR Funcin Temporizacin en la conexin Temporizacin en la desconexin Temporizacin de impulsin Generador de seales rectangulares
Todas estas funciones e instrucciones, as como las instrucciones para los bloques de funcin estndar, se detallan en la seccin B de este manual de referencia. Las instrucciones y funciones para los intercambios explcitos y para las funciones especficas se detallan en el "Manual de instalacin de funciones especficas". Las estructuras de control se detallan en el prrafo 4.2-5 de esta seccin. ___________________________________________________________________________ 4/6
A
Lenguaje Literal estructurado
4.2 Estructura de un programa 4
4.2-1 Generalidades Un programa literal est organizada en sentencias. Cada sentencia literal se compone de los elementos siguientes: etiqueta, comentarios, instrucciones. Cada uno de estos elementos es opcional; en otras palabras, es posible tener una sentencia vaca, una sentencia constituida nicamente de comentarios o nicamente de una etiqueta. El primer elemento de cada sentencia es un signo de admiracin (automticamente generado). Ejemplo: ! %L2 : (* He aqu una sentencia con una etiqueta, comentarios *) SET %M0; %MW4 := %MW2 + %MW9; (* y varias instrucciones *) %MF12 := SQRT (%MF14);
4.2-2 Comentario Un comentario tiene como elemento inicial y final los caracteres (* y *). Puede colocarse en cualquier sitio en la sentencia. No se limita el nmero de comentarios por sentencia. El comentario (opcional) facilita la interpretacin de la sentencia a la que est asignado. Todos los caracteres estn autorizados en un comentario. El nmero de caracteres se limita a 256 por comentario. Se prohiben los comentarios imbricados. Un comentario puede constar de varias lneas. Los comentarios se almacenan en el autmata para que el usuario pueda acceder a ellos en todo momento. A este ttulo, consumen memoria de programa.
___________________________________________________________________________ 4/7
4.2-3 Etiqueta La etiqueta permite marcar una sentencia en una entidad de programa (programa principal, subprograma, ...). Es opcional. La etiqueta tiene la sintaxis siguiente : %Li con i comprendido entre 0 y 999. Se posiciona en el inicio de sentencia. Una etiqueta puede asignarse a una sola sentencia dentro de una misma entidad de programa (SR, Main, Mdulo de programa). En cambio, es necesario etiquetar una sentencia para permitir una desviacin despus de un salto de programa. El orden de las etiquetas no tiene importancia; es el orden de introduccin de sentencias que el sistema tiene en cuenta durante la exploracin.
4.2-4 Instrucciones El programa se realiza a partir de instrucciones. Una sentencia literal puede contener varias instrucciones. El carcter ';' debe ser obligatoriamente el ltimo elemento de cada instruccin.
___________________________________________________________________________ 4/8
A
Lenguaje Literal estructurado
4.2-5 Estructuras de control Existen cuatro estructuras de control: la accin condicional IF, las acciones iterativas condicionales WHILE y REPEAT, la accin repetitiva FOR. Cada estructura de control tiene como primer y ltimo elemento una palabra clave en la misma sentencia. Una estructura de control puede imbricarse en otra sin que sean del mismo tipo. Las estructuras de control pueden venir precedidos o seguidos de cualquier instruccin del lenguaje. La accin condicional IF ... END_IF; Forma simple (la instruccin realiza una accin si una condicin es verdadera).
Sintaxis IF condicin THEN
CONDICION
Funcionamiento
Inicio de IF no verificada
acciones; END_IF;
verificada
ACCIONES
fin de IF
Ejemplo:
___________________________________________________________________________ 4/9
Forma general
Sintaxis IF condicin 1 THEN accin 1;
ACCION 1
Funcionamiento
Inicio de IF verificada
CONDICION 1
no verificada
verificada
CONDICION 2
no verificada
ACCION 2
ACCION 3
fin de IF
Ejemplo:
Las condiciones pueden ser mltiples. Cada accin representa una lista de instrucciones. Es posible imbricar varias estructuras de control "IF". El nmero de instrucciones ELSIF es ilimitado. Hay al mximo una parte ELSE.
___________________________________________________________________________ 4/10
A
Lenguaje Literal estructurado
La accin iterativa condicional WHILE ... END_WHILE; La instruccin realiza una accin repetitiva mientras una condicin est verificada.
Sintaxis
Inicio de IF
Funcionamiento
inicio de WHILE no verificada
WHILE condicin DO
CONDICION
accin; END_WHILE;
verificada
ACCION
fin de WHILE
Ejemplo:
La condicin puede ser mltiple. La accin representa una lista de instrucciones. La prueba de condicin se efecta antes de ejecutar la accin. Si al evaluar la condicin por primera vez su valor es falso, la accin no se ejecuta.
`
___________________________________________________________________________ 4/11
La accin iterativa condicional REPEAT ... END_REPEAT; La instruccin realiza una accin repetitiva hasta que se verifique una condicin.
Sintaxis REPEAT accin; UNTIL condicin END_REPEAT;
no verificada
Funcionamiento
inicio de REPEAT
ACCION CONDICION
verificada fin de REPEAT
Ejemplo:
La condicin puede ser mltiple. La accin representa una lista de instrucciones. La prueba de condicin se efecta despus de ejecutar la accin. Si al evaluar la condicin por primera vez su valor es falso, la accin se ejecuta una vez. Es posible imbricar varias estructuras de control REPEAT.
___________________________________________________________________________ 4/12
A
Lenguaje Literal estructurado
La accin repetitiva FOR ... END_FOR; La instruccin realiza un tratamiento un cierto nmero de veces incrementando un ndice en 1 a cada bucle.
Sintaxis FOR ndice := valor inicial TO valor final DO accin; END_FOR;
INDICE > VALOR FINAL
falso verdadero fin de FOR Continuacion
Funcionamiento
inicio de FOR
Ejemplo:
Cuando el ndice es estrictamente superior al valor final, la ejecucin contina en la instruccin que viene despus de la palabra clave END_FOR. El incremento del ndice se efecta automticamente; por consiguiente, el usuario no tiene que hacerlo. La accin representa una lista de instrucciones. El valor inicial y el valor final son expresiones numricas de tipo palabra. El ndice es un objeto de tipo palabra accesible en escritura. Es posible imbricar varias estructuras de control FOR.
___________________________________________________________________________ 4/13
La instruccin de salida de bucle EXIT La palabra clave EXIT permite detener la ejecucin del bucle y continuar en la instruccin que viene despus de la palabra clave de fin de bucle. Slo se utiliza en las acciones de uno de los tres bucles WHILE, REPEAT o FOR. Est vinculada al bucle que engloba ms cercano; en otras palabras, no detiene la ejecucin de todos los bucles que la engloban. Ejemplo:
En este ejemplo, la palabra clave EXIT permite detener el bucle REPEAT pero no el bucle WHILE.
___________________________________________________________________________ 4/14
A
Lenguaje Literal estructurado
4.3 Reglas de ejecucin de un programa literal 4
Un programa literal se ejecuta secuencialmente, instruccin por instruccin, y teniendo en cuenta las estructuras de control. En el caso de expresiones aritmticas o booleanas compuestas de varios operadores, las reglas de prioridad se definen entre los distintos operadores. Reglas de prioridad de los operadores La tabla siguiente indica en la evaluacin la prioridad de una expresin desde la ms prioritaria hasta la menos prioritaria.
Operador Parntesis Complemento lgico Inversin - en un operando + en un operando Multiplicacin Divisin Mdulo Suma Resta Comparaciones Comparacin de igualdad Comparacin de desigualdad Y lgica Y booleana O exclusiva lgica O exclusiva booleana O lgica O booleana Smbolo (expresin) NOT NOT + * / REM + <, >, <=, >= = <> AND AND XOR XOR OR OR Menos fuerte Prioridad Ms fuerte
Ejemplo: NOT %MW3 * 25 AND %MW10 + %MW12 En este ejemplo, NOT se efecta en %MW3 y el resultado se multiplica por 25. Luego, se calcula la suma de %MW10 yt %MW12 y se efecta una Y lgica entre el resultado de la multiplicacin y la adicin.
___________________________________________________________________________ 4/15
Cuando hay un conflicto entre dos operadores de mismo nivel de prioridad, es el primer operador que lleva ventaja (la evaluacin se efecta de la izquierda a la derecha). Ejemplo: %MW34 * 2 REM 6 En este ejemplo, %MW34 se multiplica primero por 2, y luego el resultado se utiliza para realizar el mdulo. Uso de los parntesis Los parntesis se utilizan para modificar el orden de evaluacin de los operadores para dar prioridad a una suma respecto a una multiplicacin. Ejemplo: (%MW10 + %MW11) * %MW12 En este ejemplo, la suma se efecta antes de la multiplicacin. Es posible imbricar los parntesis. No se limita el nivel de imbricacin. Tambin es posible utilizar los parntesis para evitar una mala interpretacin del programa. Ejemplo: NOT %MW2 <> %MW4 + %MW6 Al utilizar las reglas de prioridad de los operadores, se obtiene la interpretacin siguiente: ((NOT %MW2) <> (%MW4 + %MW6)) Es posible que el usuario piense que est efectuando la operacin: NOT (%MW2 <> (%MW4 + %MW6)) Este ejemplo demuestra que el uso de los parntesis permite clarificar el programa.
___________________________________________________________________________ 4/16
A
Lenguaje Literal estructurado
Conversiones implcitas Las conversiones implcitas implican las palabras y las dobles palabras. Los operadores, que se utilizan en las expresiones aritmticas y en las comparaciones, y el operador de asignacin efectan estas conversiones implcitas (que, por consiguiente, el usuario no tiene que efectuar). Para una instruccin en la forma: <operando 1> <operador> <operando 2>, las conversiones posibles son:
Operando 1 de tipo Palabra Palabra Doble palabra Doble palabra Operando 2 de tipo Palabra Doble palabra Palabra Doble palabra Conversin operando 1 No Doble palabra No No Conversin operando 2 No No Doble palabra No Operacin en el tipo Palabra Doble palabra Doble palabra Doble palabra
Para una asignacin en la forma <operando izquierdo> := <operando derecho>, es el operando izquierdo que impone el tipo esperado para efectuar la operacin. Esto significa que el operando derecho debe convertirse, si es necesario, segn esta tabla:
Tipo de operando izquierdo Palabra Palabra Doble palabra Doble palabra Tipo de operando derecho Palabra Doble palabra Palabra Doble palabra Conversin operando derecho No Palabra Doble palabra No
Nota Todas las operaciones entre dos valores inmediatos se efectan en doble longitud.
___________________________________________________________________________ 4/17
___________________________________________________________________________ 4/18
5.1
5.1-1 Nota sobre los principios del Grafcet El lenguaje Grafcet es conforme al lenguaje "Diagrama funcional en secuencia" (SFC) de la norma IEC 1131-3. El Grafcet permite representar grficamente y de forma estructurada el funcionamiento de un automatismo secuencial. Esta descripcin grfica del comportamiento secuencial del automatismo y de las situaciones que son su consecuencia se efecta mediante smbolos grficos sencillos:
Etapa inicial: define la situacin inicial del autmata. Transicin: las receptividades asociadas indican las condiciones lgicas necesarias para el alcance de esta transicin. Activacin simultnea de las etapas 3 y 7 (Divergencia en Y). Los subconjuntos formados por las etapas 3, 4, 5, 6 y 7, 8, 9 constituyen dos secuencias llamadas simultneas. Encaminamiento (Divergencia en O) desde la eta pa 3 hacia la etapa 4 o hacia la etapa 5. Fin de encaminamiento (convergencia en O) desde la etapa 4 o la etapa 5 hacia la etapa 6. Etapa de fin de secuencia: permite sincronizar secuencias simultneas. Desactivacin simultnea de las etapas 6 y 9 (convergencia en Y).
Acciones
Acciones
Acciones
Acciones
Etapa: las acciones asociadas se ejecutan slo cuando la etapa est activa. Las transiciones y los enlaces orientados simbolizan las posibilidades de evolucin de las etapas activas. Las acciones asociadas a etapas traducen de manera general "lo que se debe hacer", cuando stas estn activas. Describen especialmente los comandos que se deben transmitir a la parte operacional (proceso por automatizar) o a otros sistemas automatizados. El conjunto de etapas activas en un momento dado define la situacin del Grafcet. ___________________________________________________________________________ 5/1
10
Acciones
5.1-2 Anlisis progresivo: las macrorrepresentaciones Pliego de especificaciones Un automatismo permite garantizar la mezcla de tres productos A, B, C. Los productos A y B son dosificados por pesaje acumulado en una tolva de pesaje B1. El producto C se pesa y dosifica en la tolva B2. La homogeneidad del producto final se obtiene por malaxeo de tres componentes en un mezclador durante un tiempo fijado por el operador. Cuando este tiempo expira, la mezcla final se puede evacuar tras autorizacin externa. Anlisis funcional Esta aplicacin se divide en 4 secuencias principales: - dosificacin de 3 componentes, - llenado del mezclador, - mezcla de 3 productos, - evacuacin de una mezcla final. El Grafcet de la derecha permite representar el encadenamiento global de las secuencias (representacin macroscpica de un anlisis de primer nivel). El anlisis detallado de cada secuencia permite establecer Grafcet de segundo nivel, incluso de tercer nivel, hasta el nivel ms elemental que permite la descripcin completa de la aplicacin. Macrorrepresentaciones El Grafcet de primer nivel que describe el encadenamiento de las secuencias permite explicar mejor la estructuracin de la parte controlada. Cada secuencia se asocia a una simbolizacin particular de la etapa: la macroetapa. Esta nocin de "macrorrepresentacin" permite jerarquizar el anlisis. Cada nivel se puede completar, modificar sin cuestionar los dems niveles. Las macroetapas estn disponibles para los autnomas TSX57. ___________________________________________________________________________ 5/2
Dbut Inicio 1
A 0 A B
C 0
Mezclador Mlangeur
Evacuation Evacuacin
Llenado Remplissage
20
Mlange Mezcla
30
Evacuacin Evacuation
40
A
Lenguaje Grafcet
5
Representacin grfica
Macroetapas
Secuencia dosificacin
Secuencia llenado
Grfico principal
Secuencia mezcla
Secuencia evacuacin
___________________________________________________________________________ 5/3
5.2
Simbolizan las etapas iniciales activas en principio de ciclo despus de una inicializacin o un arranque en fro. Simbolizan un estado estable del automatismo. El nmero mximo de etapas es configurable: - de 1 a 96 para un TSX 37-10, - de 1 a 128 para un TSX 37-20 - de 1 a 250 para un TSX 57. El nmero m ximo de etapas simultneamente activas es configurable. Simboliza una macroetapa: conjunto nico de etapas y transiciones. El nmero de macroetapas mximo se puede configurar de 0 a 63 para TSX 57 nicamente.
Etapas simples
i ou
. Macroetapas i
i ou
IN ou OUT
Simbolizan las etapas de una macroetapa. El nmero mximo de etapas para cada macroetapa puede configurarse: de 0 a 250 para TSX 57. Una etapa IN y OUT por macroetapa. Permiten pasar de una etapa a otra. Una receptividad asociada a esta transicin permite definir las condiciones lgicas necesarias para el alcance de esta transicin. El nmero de transiciones mximo es de 1024, y no es configurable. El nmero m ximo de transiciones simultneamente vlidas es configurable. Transicin de una etapa hacia varias etapas: permite activar simultneamente mximo 11 etapas. Transicin de varias etapas hacia una sola etapa: permite desactivar simultneamente mximo 11 etapas.
Transiciones
Divergencias en Y
Convergencias en Y
(1) E l nmero mximo de etapas (etapas del grfico principal + etapas de macroetapas) en la seccin Grafcet no debe sobrepasar 1024 en TSX 57. ___________________________________________________________________________ 5/4
A
Lenguaje Grafcet
5
Designacin Divergencias en O
Smbolo
Funciones Transicin de una etapa hacia varias etapas: permite realizar un encaminamiento hacia mximo 11 etapas. Transicin de varias etapas hacia una sola etapa: permite realizar un fin de encaminamiento desde mximo 11 etapas
Convergencias en O
Remisiones de origen
n' es el nmero de la etapa de donde se viene (etapa de origen). 'n' es el nmero de la etapa de adonde se va (etapa de destino). Estos enlaces permiten realizar un encaminamiento, un salto de etapas, una reanudacin de etapas (secuencia).
Remisiones de destino
n
Enlaces orientados: hacia arriba hacia abajo hacia la derecha o la izquierda
___________________________________________________________________________ 5/5
5.3
El usuario dispone de objetos bits asociados a etapas, de bits sistema especiales del lenguaje Grafcet, de objetos palabras que indican el tiempo de actividad de las etapas y palabras sistema especiales del lenguaje Grafcet.
Designacin Bits asociados a etapas Direccin %Xi %XMj %Xj.i %Xj.IN %Xj.OUT %S21 Bits sistema asociados al Grafcet (1) %S22 %S23 %S24 %S26 Descripciones Estado de la etapa i del Grafcet principal (i de 0 a n) (n depende del procesador). Estado de la macroetapa j (j de 0 a 63 para TSX /PMX/PCX 57) Estado de la etapa i de la macroetapa j Estado de la etapa de entrada de la macroetapa j Estado de la etapa de salida de la macroetapa j Inicializa el Grafcet. Efecta la puesta a cero general del Grafcet. Inmoviliza el Grafcet. Provoca la puesta a 0 de macroetapas en funcin de las palabras sistema %SW22 %SW25 Puesta a 1 cuando hay: - rebasamiento de tablas (etapas/transicin), - ejecucin de un grfico incorrecto (remisin de destino a una etapa que no pertenece al grfico). Tiempo de actividad de la etapa i del Grafcet principal. Tiempo de actividad de la etapa i de la macroetapa j Tiempo de actividad de la etapa de entrada de la macroetapa j Tiempo de actividad de la etapa de salida de la macroetapa j Palabra que permite conocer para el ciclo actual el nmero de etapas activas, por activar y desactivar. Palabra que permite conocer para el ciclo actual el nmero de transiciones vlidas, por validar o invalidar. Serie de 4 palabras que permite designar las macroetapas a poner a 0 cuando se ponen a 1 el bit %S24.
%SW20
%SW21
%SW22 a %SW25
(1) El uso de los bits sistema se detalla en el subcaptulo 5.2-3 de esta seccin.
___________________________________________________________________________ 5/6
A
Lenguaje Grafcet
5
Bits asociados a las etapas %Xi, a las macroetapas %XMi, y a las etapas de macroetapas %Xj.I , %Xj.IN y %Xj.OUT Estn en 1 cuando las etapas estn activas. Estos bits pueden ser probados en todas las tareas, pero slo pueden escribirse en el tratamiento preliminar de la tarea maestra (preposicionamiento de los grficos). Estas pruebas y acciones se programan ya sea en lenguaje de contactos, en lenguaje lista de instrucciones o en lenguaje literal. Estos bits son indexables. Palabras de tiempo de actividad de las etapas %Xi.T y de las etapas de macroetapas %Xj.I , %Xj.IN y %Xj.OUT Son incrementados cada 100 ms y toman un valor de 0 a 9999. Incrementacin de la palabra: durante la actividad de la etapa asociada. Al desactivar la etapa, el contenido queda inmovilizado. Al activar la etapa, el contenido se pone en cero y luego se incrementa. El nmero de palabras tiempo de actividad no puede configurarse y una palabra est reservada para cada etapa. Estas palabras son indexables.
5.4
El nmero de transiciones sncronas (o nmero de convergencias en ET) no debe sobrepasar 64. El nmero total de transiciones permanece en 1024.
___________________________________________________________________________ 5/7
Ejemplo de TSX 57 : El tratamiento secuencial est estructurado en: 1 subconjunto: Grfico principal, 64 subconjuntos: Macroetapas Estos subconjuntos se subdividen a su vez en pginas (vase esquema que sigue).
Macroetapa 0 Pg. 8 8 pginas 250 etapas mximo + Etapa IN + Etapa OUT + Macroetapas
Macroetapa12 Pg. 8 Posibilidades mximas ofrecidas por el tratamiento secuencial: 1024 etapas (etapas del grfico principal + etapas de macroetapas) 64 Macroetapas 8 pginas 250 etapas mximo + Etapa IN + Etapa OUT + Macroetapas
Macroetapa 63 Pg. 8
___________________________________________________________________________ 5/8
A
Lenguaje Grafcet
5.5 Representacin del Grafcet 5
El grfico principal se programa en 8 pginas (de 0 a 7). Cada pgina Grafcet consta de 14 lneas y 11 columnas que definen 154 celdas. Es posible introducir un elemento grfico en cada celda.
Reglas de escritura La primera lnea permite introducir remisiones de origen. La ltima lnea permite introducir remisiones de destino. Las lneas pares (de 2 a 12) son lneas de etapa (para las etapas y las remisiones de destino). Las lneas impares (de 3 a 13) son lneas de transicin (para las transiciones y las remisiones de origen). Un nmero diferente (de 0 a 127) marca cada etapa (el orden no tiene importancia). Es posible representar varios grficos en una misma pgina.
___________________________________________________________________________ 5/9
El nmero de transiciones encima de un fin de encaminamiento (convergencia en O) o debajo de un encaminamiento (divergencia en O) no debe exceder 11. Un encaminamiento puede trazarse hacia la izquierda o la derecha. El ltimo elemento de un encaminamiento suele ser un fin de encaminamiento. Para evitar alcanzar simultneamente varias transiciones, las receptividades asociadas deben ser exclusivas.
El nmero de etapas debajo de une activacin simultnea (divergencia en Y) o encima de una desactivacin simultnea (convergencia en Y) no debe exceder 11. El ltimo elemento de una activacin simultnea de etapas suele ser una desactivacin simultnea de etapas. La activacin simultnea se representa siempre de la izquierda a la derecha. La desactivacin simultnea se representa siempre de la derecha a la izquierda.
___________________________________________________________________________ 5/10
A
Lenguaje Grafcet
Utilizacin de las remisiones Las remisiones aseguran la continuidad de un Grafcet cuando no es posible trazar directamente un enlace orientado o en una pgina o entre dos pginas consecutivas o no. Una remisin de destino, a la que corresponde sistemticamente una remisin de origen, asegura esta continuidad.
El cierre de un grfico puede efectuarse mediante remisiones (por ejemplo, cierre de la etapa 18 hacia la etapa 0). Una reanudacin de secuencia puede efectuarse mediante remisiones (por ejemplo, la etapa10 hacia la etapa 1 o la etapa 8 hacia la etapa 2). Uso de las remisiones cuando una rama de grfico es ms larga que la pgina (por ejemplo, la etapa 9 hacia la etapa 10).
___________________________________________________________________________ 5/11
Remisiones durante un encaminamiento y un fin de encaminamiento Para un encaminamiento, las transiciones y las remisiones de destino de un encaminamiento deben introducirse en la misma pgina. Pg. 1 Pg. 2 Las remisiones de origen de un encaminamiento deben introducirse en la misma pgina que la etapa de destino.
A un fin de encaminamiento seguido de una remisin de destino deben corresponder tantas remisiones de origen como hay etapas antes del fin de encaminamiento.
Pg. 1
Pg. 2
___________________________________________________________________________ 5/12
A
Lenguaje Grafcet
Remisiones durante una activacin y desactivacin simultneas de etapas Para una activacin simultnea de etapas, las remisiones de destino deben encontrarse en la misma pgina que la etapa y la transicin de divergencia. Pg. 2 Pg. 3
Para una desactivacin simultnea, las etapas y la transicin de convergencia deben encontrarse en la misma pgina que la remisin de destino. Cuando varias etapas convergen hacia una sola transicin, la remisin de origen tiene el nmero de la etapa superior ms a la izquierda. Pg. 4 Pg. 5
Enlaces orientados Los enlaces orientados vinculan una etapa a una transicin o una transicin a una etapa. Pueden ser verticales o horizontales. Los enlaces orientados pueden: - cruzarse : son entonces de naturaleza diferente, - encontrarse : son entonces de misma naturaleza. Es imposible que un enlace cruce una activacin o una desactivacin simultnea de etapas.
___________________________________________________________________________ 5/13
Comentarios En una pgina Grafcet, un comentario puede introducirse en cualquier celda. El texto del comentario se encuentra entre (* a la izquierda y *) a la derecha. Su tamao mximo es de 64 caracteres. Un comentario ocupa dos celdas contiguas en dos lneas mximas. Si el rea de visualizacin es demasiado pequea, el comentario se trunca en la pantalla, pero al imprimir la documentacin, el comentario se presenta por completo. El comentario introducido en una pgina Grafcet se almacena en las informaciones grficas transferidas al autmata.
___________________________________________________________________________ 5/14
A
Lenguaje Grafcet
5
5.6
Macroetapas
Una macroetapa es una representacin de un conjunto de etapas y de transiciones denominado expansin de la macroetapa. Esta se caracteriza por una etapa de entrada y una etapa de salida.
5.6-1 Principio Una macroetapa es la simbolizacin grfica de una secuencia. Se distingue por una etapa que tiene dos rayas horizontales. La etapa de entrada responde a las mismas reglas que las otras etapas. La etapa de salida no puede tener acciones asociadas.
1 M1 2 3 OUT IN 1 2 11 12 13
Cuando la macroetapa est activa, la evolucin Grafcet respeta las reglas enunciadas en los captulos anteriores. La macroetapa M1 se activa cuando la etapa 1 est activa y su receptividad siguiente es verdadera. Se desactiva cuando la etapa de salida est activa y la receptividad M1>2 es verdadera. La etapa 2 se activa entonces.
1 IN 1 2 11 12 13 OUT 2 3 M1
___________________________________________________________________________ 5/15
5.6-2 Caractersticas El lenguaje Grafcet PL7 autoriza la programacin de 64 macroetapas M0 a M63. La expansin de una macroetapa constituida por una o varias secuencias, es programable como mximo en 8 pginas y comprende un mximo de 250 etapas ms la etapa IN y la etapa OUT. Una macroetapa puede contener una o varias macroetapas. Esta jerarqua es posible hasta 64 niveles. El anlisis de una aplicacin puede ser estructurado de manera que proporcione un enfoque global y luego detallado de las diferentes operaciones que se van a realizar.
0 M0 1
IN M1 1 2 OUT
Hacia un anlisis detallado Vers une analyse dtaille
IN 1 M4 12
M2
2 OUT
5.6-3 Etapas iniciales La expansin de una macroetapa puede contener una o varias etapas iniciales. Estas etapas iniciales se activan al encender o efectuar una inicializacin por programa. La macroetapa se visualiza entonces en el estado activo.
1 2 3 4 5 6 7
Initialisacion 1 IN 22
M3
11
12
13
21
___________________________________________________________________________ 5/16
A
Lenguaje Grafcet
5
5.7
A cada etapa se asocian acciones que pueden programarse en el lenguaje de contactos, en el lenguaje Lista de instrucciones o en el lenguaje Literal estructurado. Estas acciones se exploran nicamente si la etapa a la que se asocian est activa. El software PL7 autoriza tres tipos de accin: las acciones al activar: acciones ejecutadas una vez cuando la etapa a la que estn asociadas pasa del estado inactivo al estado activo. las acciones al desactivar: acciones ejecutadas una vez cuando la etapa a la que estn asociadas pasa del estado activo al estado inactivo. las acciones continuas: estas acciones se ejecutan mientras la etapa a la que estn asociadas est activa. Estos tres tipos de accin son vlidos para cada etapa. Una misma accin puede comprender varios elementos de programacin (sentencias o redes de contactos). Marcar acciones Estas acciones se marcan de la manera siguiente: MAST - <nombre seccin Grafcet> - CHART (o MACROk)- PAGE n %Xi x con: x = = = = = P1 Activacin N1 Continua P0 Desactivacin Nmero de la pgina Nmero de la etapa
n i Ejemplo:
MAST - Pintura - CHART - PAGE 0 %X1 P1 Accin al activar la etapa 1 de la pgina 0 de la seccin Pintura
Reglas de utilizacin Todas las acciones se consideran como acciones memorizadas; por consiguiente: - una accin servocontrolada la duracin de la etapa Xn debe ponerse a cero cuando la etapa Xn se desactiva o cuando la etapa Xn+1se activa. - una accin con efecto mantenido en varias etapas se posiciona a 1 cuando la etapa Xn se activa y se pone a 0 cuando la etapa Xn+m se desactiva. Todas las acciones pueden servocontrolarse por condiciones lgicas, por consiguiente, ser condicionales. Las acciones sercontroladas a seguridades indirectas deben programarse en el tratamiento posterior (tratamiento ejecutado en cada exploracin: vase el captulo 5.2 "Organizacin de la tarea maestra").
___________________________________________________________________________ 5/17
Acciones al activar o al desactivar Estas acciones son impulsivas y se ejecutan en un solo ciclo de exploracin. Permiten llamar a un subprograma, incrementar un contador, etc... Ejemplos: Llamada a un subprograma
Acciones continuas Accin condicional Ejemplo El bit %M10 est servocontrolada a la entrada %I2.5 o al bit interno %M9 y a la entrada %I1.2. Mientras la etapa 2 est activa y estas condiciones estn presentes, %M10 est posicionada a 1. El ltimo estado ledo al desactivar se almacena puesto que las acciones asociadas ya no se exploran. Es pues necesario poner a 0 el bit %M10 en la accin al desactivar la etapa, por ejemplo.
___________________________________________________________________________ 5/18
A
Lenguaje Grafcet
Accin condicional temporizada Se trata de un caso particular, ya que el tiempo interviene como condicin lgica. Este servocontrol puede realizarse simplemente probando el tiempo de actividad asociado a la etapa. Ejemplo El bit %M12 se controla mientras el tiempo de actividad de la etapa 3 es inferior a 10 segundos (base de tiempo: 100 ms).
Estas acciones pueden tambin ser incondicionales. Orden de ejecucin de las acciones En el ejemplo siguiente, en un ciclo completo, el orden de ejecucin de las acciones es la siguiente. Cuando la etapa 51 se activa, las acciones se ejecutan en el orden siguiente: 1. acciones al desactivarse la etapa 50, 2. acciones al activarse la etapa 51, 3. acciones continuas de la etapa 51.
50
Activacion %X50
Continua %X50
Desactivacion %X50
51
Activacion %X51
Continua %X51
Desactivacion %X51
___________________________________________________________________________ 5/19
5.8
A cada transicin se asocia una receptividad que puede programarse en el lenguaje de contactos, en el lenguaje Lista de instrucciones o en el lenguaje Literal estructurado. Una receptividad se explora slo si la transicin a la que est asociada es vlida. Una receptividad corresponde a una red de contactos, a una lista de instrucciones o a una expresin literal, que comprende una serie de pruebas de bit y/o de palabra. Una receptividad no programada es una receptividad siempre falsa. Marcar la receptividad Las receptividades se marcan de la manera siguiente: MAST - <nombre seccin con: n = Nmero de i = Nmero de j = Nmero de Ejemplo: Grafcet> - CHART(o MACROk) - PAGE n %X(i) --> % X(j) la pgina etapa arriba etapa abajo
MAST - Pintura -CHART - PAGE 0 %X(0) %X(1) Receptividad asociada a la transicin entre la etapa 0 y la etapa 1 de la pgina 0 del grfico de la seccin Pintura
En una activacin o desactivacin simultnea de etapas, la marca indicada es la de la etapa situada en la columna ms a la izquierda. Reglas de programacin en lenguaje de contactos La receptividad asociada a la transicin se programa en la forma de una red que comprende un rea de prueba y un rea de accin. La estructura de la red es idntica a la de una red programada en un mdulo de programa. Slo se pueden utilizar los elementos siguientes: elementos grficos de prueba: contactos (%Mi, %I, %Q, %TMi.D ...), bloques de comparacin, elementos grficos de accin: bobina "#" nicamente (las dems bobinas no son significativas en este caso).
___________________________________________________________________________ 5/20
A
Lenguaje Grafcet
Reglas de programacin en el lenguaje Lista de instrucciones La receptividad asociada a la transicin se programa en la forma de una lista de instrucciones que contiene nicamente instrucciones de prueba. La lista de instrucciones admitida para la escritura de una receptividad difiere de una lista de instrucciones clsica en: la estructura general: - sin etiquetas (%L). la lista de instrucciones: - sin instrucciones de accin (objetos bits, palabras o bloques de funcin), - sin saltos, ni llamadas de subprograma.
Reglas de programacin en el lenguaje Literal estructurado La receptividad asociada a la transicin se programa en la forma de una expresin booleana o aritmtica o de una asociacin de ambas. La expresin admitida para la escritura de una receptividad difiere de una lnea de programacin en el lenguaje literal en: la estructura general: - sin etiqueta (%L), - sin sentencias de accin, ni sentencias condicionales o sentencias iterativas. la lista de instrucciones: - sin accin sobre el objeto bit, - sin saltos, ni llamadas de subprograma, - sin transferencias, ni instrucciones de accin para bloques.
___________________________________________________________________________ 5/21
Receptividad que utiliza el tiempo de actividad En ciertas aplicaciones, hay acciones que se regulan sin control de informacin devuelta (fin de recorrido, detector, ...). Un tiempo condiciona la duracin de la etapa; el lenguaje PL7 permite utilizar el tiempo de actividad asociado a cada etapa. Ejemplo Si se desea permanecer en la etapa 3 durante 15 segundos, la receptividad asociada a la transicin entre la etapa 3 y la etapa 4 ser la de la pantalla siguiente (por ejemplo, en lenguaje Literal estructurado).
___________________________________________________________________________ 5/22
A
Lenguaje Grafcet
5.9 Organizacin de la seccin Grafcet 5
5.9-1 Descripcin de la seccin Grafcet Una seccin de programa escrito en lenguaje Grafcet comprende tres tratamientos consecutivos: el tratamiento preliminar Prl, el tratamiento secuencial Chart, el tratamiento posterior Post. Las macroetapas se ejecutan en su orden de escrutinio en el tratamiento secuencial.
El escrutinio de la seccin se efecta segn el orden siguiente: Tratamiento preliminar: Permite tratar: las inicializaciones al reanudar tras corte de corriente o falla, preposicionar el grfico, lgica de entrada.
Tratamiento Preliminar Lenguaje de contactos, lista de instrucciones o literal Seccin Grafcet
Tratamiento secuencial: Permite tratar el esquema secuencial de la aplicacin y da acceso al tratamiento de las receptividades y acciones directamente asociadas a las etapas.
Tratamiento Posterior
Tratamiento posterior: Permite tratar: la lgica de salida, la supervisin de las seguridades indirectas especficas a las salidas.
___________________________________________________________________________ 5/23
5.9-2 Tratamiento preliminar Introducido en el lenguaje de contactos, en el lenguaje Lista de instrucciones o en el lenguaje Literal, el tratamiento preliminar se explora en su totalidad desde arriba hacia abajo. Ejecutado antes de los tratamientos secuencial y posterior, permite tratar todos los sucesos que tienen una influencia sobre stos: gestin de las reanudaciones de alimentacin y de las reinicializaciones, puesta a cero o preposicionamiento de los grficos. Es pues nicamente en el tratamiento preliminar que actuar sobre los bits asociados a las etapas (puesta a 0 o a 1 de los bits etapas %Xi por las instrucciones Set y Reset). Preposicionamiento del Grafcet Puede ser necesario preposicionar un Grafcet cuando el funcionamiento pasa de la marcha normal a una marcha especial o cuando aparece un incidente (ejemplo: falla que causa una marcha deteriorada). Esta operacin interviene en el desarrollo normal del ciclo de la aplicacin; debe pues efectuarse con precaucin. El posicionamiento puede comprender la totalidad o una parte del tratamiento secuencial: utilizando las instrucciones SET, RESET, mediante la puesta a cero general (%S22) y luego, en el ciclo siguiente, posicionamiento a 1 de las etapas.
Nota Si se trata de la puesta a cero de una etapa cuando sta se desactiva, las acciones no se ejecutan.
___________________________________________________________________________ 5/24
A
Lenguaje Grafcet
5.9-3 Utilizacin de los bits sistema en el tratamiento preliminar Ya que los bits sistema asociados al Grafcet se clasifican numricamente en orden de prioridad (%S21 a %S23), cuando varios de ellos se ponen simultneamente a 1 en el tratamiento preliminar, stos se tratan uno a uno en el orden creciente (uno solo es vlido por ciclo de exploracin). Estos bits se validan al inicio del tratamiento secuencial. Inicializacin del Grafcet: %S21 Normalmente en el estado 0, la puesta al estado 1 de %S21 tiene como consecuencia: la desactivacin de las etapas activas, la activacin de las etapas iniciales.
Puesta al estado 1 Mediante la puesta al estado 1 de %S0 Mediante el programa de usuario Mediante el terminal (1) Puesta al estado 0 Mediante el sistema al inicio del tratamiento secuencial Mediante el programa de usuario Mediante el terminal
Utilizacin Cuando el programa de usuario efecta la gestin, %S21 debe ponerse a 0 o a 1 en el tratamiento preliminar. Puesta a cero del Grafcet: %S22 Normalmente en el estado 0, la puesta a 1 de %S22 desactiva las etapas activas de todo el tratamiento secuencial.
Puesta al estado 1 Mediante el programa de usuario Mediante el terminal (1) Puesta al estado 0 Mediante el sistema al final del tratamiento posterior
Utilizacin - Este bit debe tener el valor 1 en el tratamiento preliminar. - El sistema pone %S22 a cero; por consiguiente, es intil ponerlo a 0 desde el programa o el terminal. Para rearrancar el tratamiento secuencial en una situacin dada, el usuario debe prever segn su aplicacin un procedimiento de inicializacin o de preposicionamiento del Grafcet.
(1) En la pantalla de depuracin UC (parte Grafcet) o en la tabla de animacin.
___________________________________________________________________________ 5/25
Inmovilizacin del Grafcet: %S23 Normalmente en el estado 0, la puesta al estado 1 de %S23 provoca el mantenimiento en el estado de los Grafcet. Cual que sea el valor de las receptividades debajo de las etapas activas, los Grafcet no evolucionan. La inmovilizacin se conserva mientras el bit %S23 est a 1.
Puesta al estado 1 Mediante el programa de usuario Mediante el terminal (1) Puesta al estado 0 Mediante el programa de usuario Mediante el terminal (1)
Utilizacin - El programa de usuario efecta la gestin de este bit que debe ponerse a 1 o a 0 en el tratamiento preliminar. - El bit %S23 asociado a los bits %S21 y %S22 permite inmovilizar el tratamiento secuencial al estado inicial o al estado 0. Asimismo, el Grafcet puede preposicionarse y luego inmovilizarse mediante %S23. En una nueva aplicacin, o si se pierde el contexto sistema, el sistema efecta un arranque en fro. El sistema pone el bit %S21 a 1 antes de la llamada del tratamiento preliminar y el Grafcet se posiciona en las etapas iniciales. Si el usuario desea un tratamiento particular respecto a la aplicacin en caso del arranque en fro, tiene la posibilidad de probar %S0 que permanece a 1 durante el primer ciclo de la tarea maestra (MAST). Despus de un corte de corriente sin cambio de aplicacin, el sistema efecta un rearranque en caliente. Reanuda el funcionamiento en el estado anterior al corte de corriente. Si el usuario desea un tratamiento particular respecto a la aplicacin en caso de rearranque en caliente, tiene la posibilidad de probar %S1 en el tratamiento preliminar y acceder al programa correspondiente.
___________________________________________________________________________ 5/26
A
Lenguaje Grafcet
Puesta a cero de las macroetapas: %S24 Normalmente en el estado 0, la puesta a 1 de %S24 provoca la puesta a cero de las macroetapas seleccionadas de una tabla de 4 palabras sistema (%SW22 a %SW25).
Utilizacin - este bit debe escribirse en 1 nicamente en el tratamiento preliminar, - la puesta en 0 de %S24 es manejada por el sistema, est prohibido entonces volver a ponerlo a por programa o por el terminal. Tabla de palabras %SW22 a %SW25 A cada bit de esta tabla corresponde una macroetapa. Su utilizacin es la siguiente: carga de la tabla de palabras %SW22 a %SW25 (bit a puesta a 1 cuando la macroetapa correspondiente no debe ser puesta en cero), validacin por %S24.
F %SW22 0
XM63 . . . . . . . . . . . . . . XM48
Ejemplo: ! IF %I4.2 AND %T3.D THEN %SW22:=16#AF8F; %SW23:=16#F3FF; %SW24:=16#FFEF; %SW25:=16#FFFF; SET %S24 Estas cuatro palabras se inicializan en 6#FFFF si %S21 = 1.
___________________________________________________________________________ 5/27
5.9-4 Tratamiento secuencial Este tratamiento permite programar el esqueleto secuencial de la aplicacin. El tratamiento secuencial comprende: el grfico principal organizado en 8 pginas. En el grfico principal, varios Grafcet no conexos pueden programarse y desarrollarse simultneamente. Principio de evolucin La gestin de la evolucin del Grafcet se efecta de la manera descrita a continuacin. Fase 1 1. Evaluacin de las receptividades de las transiciones validadas. 2. Peticin de desactivacin de las etapas superiores asociadas. 3. Peticin de activacin de las etapas inferiores implicadas. Fase 2 Evolucin de la situacin del Grafcet en funcin de las transiciones alcanzadas: 1. Desactivacin de las etapas encima de las transiciones alcanzadas. 2. Activacin de las etapas debajo de las transiciones alcanzadas. 3. Invalidacin de las transiciones alcanzadas. 4. Validacin de las transiciones debajo de las nuevas etapas activadas. El sistema actualiza dos tablas dedicadas respectivamente a la actividad de las etapas y a la validez de las transiciones: la tabla de actividad de las etapas memoriza, para el ciclo actual, las etapas activas, las etapas que se deben activar y desactivar, la tabla de validez de las transicionesmemoriza, para el ciclo actual, las transiciones situadas debajo de las etapas relativas a la tabla previa. Fase 3 Las acciones asociadas a las etapas activas se ejecutan en el orden siguiente: 1. Acciones al desactivar las etapas que se deben desactivar. 2. Acciones al activar las etapas que se deben activar. 3. Acciones continuas de las etapas activas.
___________________________________________________________________________ 5/28
A
Lenguaje Grafcet
Rebasamiento de las posibilidades El nmero de elementos de la tabla de actividad de etapas y de la tabla de validez de transiciones es configurable. El rebasamiento de capacidad de la una o de la otra tiene como consecuencia: el paso a STOP del autmata (parada de la ejecucin de la aplicacin), el paso a 1 del bit sistema %S26 (rebasamiento de capacidad de una de las dos tablas), el parpadeo del indicador ERR del autmata. El sistema pone a la disposicin del usuario dos palabras sistema: %SW20 : palabra que permite conocer para el ciclo actual el nmero de etapas activas, que se deben activar y desactivar. %SW21 : palabra que permite conocer para el ciclo actual el nmero de transiciones vlidas, que se deben validar o invalidar. En caso de una falla con bloqueo, las palabras sistema %SW125 a %SW127 permiten determinar la naturaleza de la falla. %SW125 = DEF7 (hex) %SW125 = DEFE (hex) Rebasamiento de las tablas (etapas/transiciones). Ejecucin incorrecto del grfico (problema de transicin con remisin de destino non resuelta).
%SW127 =0 0 N macroetapa (1) Rebasamiento de la tabla de etapas Rebasamiento de la tabla de transiciones Ejecucin incorrecta del grfico
%SW126 0 =0 N de etapa
___________________________________________________________________________ 5/29
5.9-5 Tratamiento posterior Introducido en el lenguaje de contactos, en el lenguaje Lista de instrucciones o en el lenguaje Literal estructurado, el tratamiento posterior se explora desde arriba hacia abajo. Este tratamiento es el ltimo ejecutado antes de la activacin de las salidas: permite programar la lgica de salida. Acciones asociadas al Grafcet El tratamiento posterior permite completar los valores de consigna emitidos por el tratamiento secuencial integrando en la ecuacin de una salida los modos de marcha y de parada y las seguridades indirectas relativas a la accin. Permite tambin tratar una salida activada varias veces en el tratamiento secuencial. De forma general, se aconseja programar las acciones que actan directamente sobre el proceso en el tratamiento posterior. Ejemplo %I2.4 %M26 %I1.0 : seguridad indirecta relativa al control de la salida %Q4.1. : bit interno resultado de la lgica de entrada que trata los modos de marcha y de parada. : botn pulsador.
___________________________________________________________________________ 5/30
A
Lenguaje Grafcet
Acciones independientes del Grafcet El tratamiento posterior permite tambin programar las salidas independientes del tratamiento secuencial. Control de la ejecucin del Grafcet Es posible que sea necesario controlar el buen funcionamiento del Grafcet probando el tiempo de actividad de ciertas etapas. Este tiempo se prueba comparndolo o a un valor mnimo o a un valor mximo determinado por el usuario. Se le incumbe al usuario la explotacin de la falla (sealizacin, procedimiento particular de funcionamiento, edicin de mensaje). Ejemplo: ! IF (%X2.T > 100 AND %X2) THEN SET %Q4.0 ; END_IF ;
___________________________________________________________________________ 5/31
___________________________________________________________________________ 5/32
6.1
6.1-1 Generalidades El software PL7-Pro ofrece al usuario la posibilidad de crear sus propios bloques de funcin para responder a las especificidades de sus aplicaciones. Estos bloques de funcin de usuario permiten estructurar una aplicacin. Se utilizarn cuando una secuencia de programa est repetida varias veces en la aplicacin o para inmovilizar una programacin estndar (ejemplo: algoritmo de comando de un motor que incluye las seguridades locales). Los DFB se pueden transmitir al conjunto de los programadores y utilizarse en la misma aplicacin o en las otras aplicaciones (funcin exportacin/importacin). La utilizacin de un bloque de funcin DFB en una aplicacin permite: simplificar la concepcin y la introduccin del programa, aumentar la legibilidad del programa, facilitar su depuracin (todas las variables manipuladas por el bloque de funcin DFB estn identificadas en su interface). disminuir el volumen de cdigo generado (el cdigo correspondiente al DFB slo se carga una vez, cualquiera sea el nmero de llamadas al DFB en el programa), En relacin al subprograma, permiten: parametrar ms fcilmente el tratamiento, utilizar variables internas propias al DFB, por lo tanto independientes de la aplicacin, probarse independientemente de la aplicacin. Ofrecen en lenguaje de contactos una visualizacin grfica del bloque que facilita la programacin y la depuracin. Adems, los bloques de funcin DFB utilizan los datos remanentes.
La creacin de un bloque de funcin DFB se efecta con el software PL7 Pro, y la utilizacin del bloque puede efectuarse con un PL7 Pro o un PL7 Junior en los autmatasTSX/PCX/PMX57. Los bloques de funcin DFB (Derived Function Block) pueden programarse en lenguaje literal y de contacto por el programador y se pueden utilizar en lenguaje de contactos, en literal y en el lenguaje lista de instrucciones.
___________________________________________________________________________ 6/1
6.1-2 Creacin de un bloque de funcin DFB La creacin de un bloque de funcin DFB se efecta en 3 fases: 1 concepcin del DFB modelo (denominado: Tipo DFB), 2 creacin de una imagen de este bloque denominada instancia para cada utilizacin en la aplicacin, 3 utilizacin de la instancia en el programa PL7. Concepcin del Tipo DFB Un bloque de funcin Tipo DFB se compone: de un nombre, de parmetros: - entradas, - salidas, - entradas/salidas, de variables, - variables pblicas, - variables privadas, del cdigo literal estructurado, de un comentario, de una ficha descriptiva. Estas informaciones se deben definir durante la fase de concepcin del DFB. La creacin se efecta con ayuda del editor de DFB. Creacin de una instancia DFB Una vez concebido el Tipo DFB, el usuario define una instancia del DFB con ayuda del editor de variables o en la llamada de la funcin en el editor de programa.
Nombre Tipo DFB
Entradas
Salidas
Utilizacin de los DFB Esta instancia del bloque se utiliza luego como un bloque de funcin estndar en lenguaje de contactos, o como una funcin elemental en lenguaje literal estructurado o en lista de instrucciones. Se puede programar en las diferentes tareas (excepto en las tareas de sucesos) y secciones de la aplicacin.
Ejemplo de DFB: Vlvula_C1, Volumen_C1, Crono_C1
___________________________________________________________________________ 6/2
A
Bloques de funcin DFB
6.2 Concepcin de un bloque de funcin Tipo DFB 6
6.2-1 Creacin de un Tipo DFB Los bloques de funcin Tipo DFB se crean a nivel del directorio Tipo DFB del navegador de la aplicacin. Cada Tipo DFB se identifica con un nombre de 16 caracteres mximo (1).
6.2-2 Descripcin de los parmetros y variables Caractersticas generales Estos objetos son datos internos al DFB, y son puramente simblicos (sin direccionamiento en forma de variable). Para cada parmetro o variable utilizada, el programador del bloque de funcin Tipo DFB define: un nombre de 8 caracteres mximo (1), un tipo de objeto (vase tabla que sigue), un comentario opcional de 80 caracteres mximo, un valor opcional (excepto para los parmetros Entradas/Salidas), Tipos de objetos autorizados
BOOL EBOOL REAL WORD DWORD Booleano Booleano ampliado (gestin de flancos) Real Entero 16 bits Entero 32 bits AR_X AR_R AR_W AR_D STRING Tabla de bits Tabla de reales Tabla de entero 16 bits Tabla de entero 32 bits Cadena de caracteres
Notas: el tipo EBOOL maneja los flancos, y es posible entonces ejecutar en ese tipo de parmetro o de variable instrucciones sobre el flanco de tipo RE y FE (ejemplo de objeto de tipo EBOOL del lenguaje PL7: %Mi,%Ixy.i,%Qxy.i). Si la gestin de flanco no es til en el tratamiento, es preferible utilizar el tipo BOOL (ejemplo de objeto de tipo BOOL del lenguaje PL7: %MWi:Xj) que no maneja los flancos pero consume menos tamao de memoria. si se desea asociar un tipo EBOOL a un parmetro de entradas/salidas durante la utilizacin, debe ser de tipo EBOOL en el DFB. caso de tablas: la longitud de la tabla debe ser obligatoriamente mencionada para los parmetros de salida y las variables pblicas y privadas, por el contrario, no es necesario definirlas en los parmetros de entradas y los parmetros de entradas/salidas. los valores iniciales pueden ser definidos para las entradas (si no son del tipo tabla), para las salidas y para las variables pblicas y privadas.
(1) se autorizan las letras no acentuadas, los dgitos, el carcter "_"; el primer carcter debe ser una letra; las palabras clave y los smbolos estn prohibidos. ___________________________________________________________________________ 6/3
Descripcin de los parmetros Entradas: (mx.: 15 (1)) son los datos que suministrar el programa de aplicacin al DFB. Estos parmetros en slo lectura no pueden ser modificados en el cdigo DFB. Salidas: (mx.: 15 (2)) son datos elaborados en el DFB con destino al programa de aplicacin. Entradas/Salidas: (mx.: 15 (1)y (2)) son parmetros de entradas modificables en el cdigo del DFB.
Controle DWORD Ecart WORD Vitesse BOOL Enable WORD Accins Ejemplo de bloque de: 3 entradas, 2 salidas, 1 entrada/ salida WORD Accel BOOL Erreur
(1) donde Nmero de entradas + Nmero de entradas/salidas < 15 (2) donde Nmero de salidas + Nmero de entradas/salidas < 15
Nota: todo bloque DFB debe tener por lo menos una entrada booleana.
Descripcin de las variables Variables pblicas: (mx.: 100) variables internas utilizadas en el tratamiento y accesibles por el usuario en ajuste o por el programa de aplicacin fuera del cdigo DFB (en tanto que variable pblica de instancia DFB, vase apartado 6.4-4). Adems de las caractersticas generales, es posible especificar un derecho de slo lectura o de lectura/escritura, y una autorizacin de proteccin de transferencia de los valores actuales en lugar de los valores iniciales (vase apartado 6.4-5), Variables privadas: (mx.: 100) variables internas al cdigo de bloque de funcin. Estas variables se calculan y utilizan dentro de un mismo DFB pero no tienen ningn vnculo con el exterior del DFB. Estas variables son tiles para la programacin del bloque pero no tienen ningn inters para el usuario del bloque (por ejemplo: variable intermedia de remisin de una expresin combinatoria a otra, resultado de un clculo intermedio...).
Nota: La modificacin de la interface de un DFB (variables pblicas o parmetros) es posible nicamente si no contiene instancias y se utiliza en la aplicacin.
___________________________________________________________________________ 6/4
A
Bloques de funcin DFB
6.2-3 Cdigo de un tipo DFB El cdigo define el tratamiento que debe efectuar el bloque DFB en funcin de los parmetros declarados. El cdigo del bloque de funcin DFB se programa en lenguaje literal o en lenguaje de contacto. En el caso del lenguaje literal, el DFB est constituido de una sola fase literal de longitud no limitada. Todas las instrucciones y funciones avanzadas del lenguaje estn permitidas excepto: la llamada a los bloques de funcin estndares, la llamada a los dems bloques de funcin DFB, bifurcacin a una etiqueta (JUMP), la llamada a un subprograma, la instruccin HALT, las instrucciones que utilizan variables de mdulos de entradas/salidas (ej: READ_STS, SMOVE...). El cdigo explota los parmetros y las variables del DFB definidas por el usuario. El cdigo del bloque de funcin DFB no puede utilizar ni los objetos de entradas/ salidas (%I,%Q...), ni los objetos globales de la aplicacin (%MW,%KW...) excepto los bits y palabras sistema %S y %SW. Se ha desarrollado un determinado nmero de funciones especficamente para utilizarse en los bloques de funcin del usuario: las funciones de temporizacin FTON, FTOF, FTP, FPULSOR que pueden utilizarse en lugar de bloques de funcin de temporizacin, las instrucciones LW, HW, COCATW que permiten manipular palabras de dobles palabras, las instrucciones LENGTH_ARW, LENGTH_ARD, LENGTH_ARR, que permiten calcular las longitudes de tabla. Nota: no se puede utilizar las etiquetas. ___________________________________________________________________________ 6/5
CHR_200:=CHR_100; CHR_114:=CHR_104; CHR_116:=CHR_106; RESET DEMARRE; (*Se incrementa 80 veces CHR_100*) FOR CHR_102:=1 TO 80 DO INC CHR_100; WHILE((CHR_104CHR_114)<100)DO IF(CHR_104>400) THEN EXIT; END_IF; INC CHR_104; REPEAT IF(CHR_106>300) THEN EXIT; END_IF; INC CHR_106; UNTIL ((CHR_100CHR_116)>100) END_REPEAT; END_WHILE; (* Se imbrica mientras que CHR_106) IF (CHR_106=CHR_116) THEN EXIT; ELSE CHR_114:=CHR_104; CHR_116:=CHR_106; END_IF; INC CHR_200; END_FOR;
6.2-4 Validacin del Tipo DFB En la validacin, el editor DFB verifica la sintaxis del cdigo y la adecuacin con las variables introducidas en la interface. En caso de error, el primer error se muestra en vdeo inverso. Nota: si se desea salir sin validar el cdigo, hay que exportar el DFB para guardarlo: borrar el conjunto del cdigo antes de salir.
6.2-5 Propiedades de un Tipo DFB Las siguientes propiedades de un Tipo DFB son accesibles desde un cuadro de dilogo del editor de DFB.
Area de "Informacin", que maneja: - el tamao de los datos, - el nmero de instancias creadas, - la firma (garanta de unicidad del DFB) - el nmero de elementos: parmetros y variables. Area "General", que indica: - la versin: aumenta automticamente con cada modificacin del cdigo, de los parmetros o de las variables del tipo DFB, - la fecha de la ltima modificacin, - el lenguaje: ST o LD (que se puede modificar si el cdigo est vaco), - 2 tipos de proteccin: la proteccin contraescritura que limita el acceso al DFB en slo lectura , la proteccin de "informacin" que prohibe el acceso al cdigo del tipo DFB y a sus variables privadas. La proteccin es manejada por una contrasea. - un comentario de 128 caracteres mximo; de forma predeterminada el comentario menciona la fecha de creacin y el autor del tipo DFB. ___________________________________________________________________________ 6/6
A
Bloques de funcin DFB
6.2-6 Ficha descriptiva La ficha descriptiva es un rea de introduccin libre de longitud mxima de 32 000 caracteres que permite describir el tipo DFB.
6.2-7 Propiedades del tipo DFB El acceso a las propiedades del tipo DFB: Visualizacin del nmero de DFB en ST y en LD existentes en la aplicacin. Inhibicin de la funcin "Save/Restore" para todos los DFB". Este servicio permite inhibir todos los flags Save/Restore seleccionados para las Variables pblicas de todos los tipos de DFB. Esta inhibicin acta como una "proteccin" sobre el conjunto de DFB en la medida en que, cuando est desactivada, se conservan las selecciones para cada variable pblica de cada tipo de DFB.
6.2-8 Importacin/exportacin tipo DFB Los tipos DFB creados en una aplicacin se pueden volver a utilizar en cualquier otra aplicacin mediante las funciones importar/exportar. Se proponen 2 tipos de formato: origen: este formato es editable, binario: este formato no es editable; el DFB importado con ese formato se puede leer o modificar segn el grado de proteccin asignado. A partir de los archivos de origen o binario, el usuario podr crear su propia biblioteca.
Nota: Durante la importacin de una seccin en una aplicacin, es necesario importar los tipos DFB que se utilizan en esta seccin.
___________________________________________________________________________ 6/7
6.3
6.3-1 Principios Una vez que el bloque de funcin Tipo DFB ha sido creado (o importado), para utilizar el DFB es necesario generar una instancia de este bloque. Cada instancia DFB se identifica por un nmero de 32 caracteres mximo(1) definido por el usuario.
Es posible crear tantas instancias como se desee (limitado nicamente por el tamao de la memoria del autmata) a partir de un mismo tipo de DFB. Los valores iniciales de las variables pblicas definidas para los bloques de funcin Tipo DFB pueden ser modificados para cada instancia. Estas operaciones se efectan en el editor de variables (Instancias DFB) o en el editor del programa en la llamada de la funcin. Todas las instancias de DFB son accesibles con la funcin biblioteca.
Vigilancia_horno DFB Controle DWORD Ecart WORD Vitesse BOOL Enable WORD Accins Ejemplo de la instancia "Vigilancia_horno" del Tipo DFB Control WORD Accel BOOL Erreur
Una instancia DFB es una copia del Tipo DFB: utiliza el cdigo del Tipo DFB, (no hay duplicacin del cdigo), crea una rea de datos especfica a cada instancia, que es la copia de los parmetros y de variables del Tipo DFB. Esta rea est situada en el espacio de datos de la aplicacin.
(1) Los caracteres permitidos son idnticos a los autorizados en los smbolos (vase apartado1.2-9) ___________________________________________________________________________ 6/8
A
Bloques de funcin DFB
6.4 Utilizacin de los bloques de funcin DFB 6
6.4-1 Reglas generales de programacin Las instancias de DFB se utilizan en todos los idiomas (idiomas de contactos, literal y lista de instrucciones) y en todas las partes de la aplicacin: secciones, subprograma, mdulo Grafcet, (excepto en las tareas de sucesos). Las reglas siguientes se deben respetar cualquiera sea el lenguaje que se utilice: todos los parmetros de entradas de tipo tabla as como los parmetros de entradas/ salidas se deben completar. los parmetros de entradas no cableados conservan el valor de la llamada o el valor de inicializacin si el bloque jams ha sido llamado con esta entrada introducida o cableada. todos los objetos asignados a los parmetros de entradas, de salidas y de entradas/ salidas deben ser obligatoriamente del mismo tipo que los definidos durante la creacin del Tipo DFB (por ejemplo: si el tipo WORD es definido para el parmetro de entrada "velocidad", no se autoriza a asignarle dobles palabras %MDi, %KDi). La nica excepcin son los tipos BOOL y EBOOL que se pueden mezclar para los parmetros de entradas o de salidas (no para los parmetros de entradas/salidas: por ejemplo, el parmetro de entrada "Validacin" puede definirse como BOOL y tambin puede asociarse a un bit interno %Mi que es de tipo EBOOL, por el contrario, en el cdigo del tipo DFB el parmetro de entrada tendr realmente la propiedad de un tipo BOOL, y no podr manejar los flancos. La tabla que sigue resume las diferentes posibilidades:
Parmetro Entradas Tipo Booleana Numrica Tabla Entradas/ Salidas Salidas Booleana Numrica Tabla Booleana Numrica Tabla Asignacin de parmetro Cableado (1) Objeto u expresin Objeto Objeto Objeto Objeto Cableado (1) Objeto Objeto Asignacin opcional (2) opcional obligatoria obligatoria obligatoria obligatoria opcional opcional opcional
(1) cableada en lenguaje de contactos, u objeto en lenguaje booleano o literal. (2) en lenguaje de contactos todo bloque DFB debe tener por lo menos una entrada booleana (binaria) cableada.
___________________________________________________________________________ 6/9
6.4-2 Programacin en lenguaje de contactos Hay dos posibilidades para llamar un bloque de funcin DFB: una llamada textual en un bloque de operacin, la sintaxis y las restricciones en los parmetros son idnticas a la del lenguaje literal (vase captulo que sigue). una llamada grfica, vase ejemplo presentado a continuacin. Los bloques de funcin DFB grficos tienen entradas /salidas que son asignadas directamente por objetos u expresiones; estos objetos u expresiones ocupan una celda de la red grfica. 2 bloques de funcin DFB conectados en serie deben ser separados por lo menos por 2 columnas.
%MW8
Controle_port_1
ABS(%MD0 )
Controle
DWO RD Ecart WO RD Vite sse BOOL Enable
" # Acce l
WO RD
%Q2.1
10000
BOOL Erreur
%Q2.5
%MW100
WO RD Actions
%MW100
Operation Depassement_tps(Tps_ref_
nombre del DFB nombre del Tipo DFB ! parmetro efectivo de la primera entrada " parmetros de entradas (nombre y tipo) # parmetros de salidas (nombre y tipo) $ parmetros de entradas/salidas (nombre y tipo) Observaciones: Un bloque de funcin DFB debe tener por lo menos una entrada booleana cableada. Las entradas, salidas o entradas/salidas numricas del bloque no son cableadas. A estos puntos se asocian objetos mencionados en la celda que est al lado del punto.
___________________________________________________________________________ 6/10
A
Bloques de funcin DFB
6
6.4-3 Programacin en lenguaje literal o lista de instrucciones La llamada del bloque de funcin DFB constituye una accin, que puede ser colocada en una fase como para cualquier otra accin del lenguaje. Sintaxis en lenguaje literal: Nombre_DFB (E1,...,En,ES1,...,ESn,S1,...,Sn) Ejemplo: Cont_pernos(%I2.0,%MD10,%I2.1,%Q1.0);
Sintaxis en lenguaje lista de instrucciones: [Nombre_DFB (E1,...,En,ES1,...,ESn,S1,...,Sn)] Ejemplo: Cont_pernos(%I2.0,%MD10,%I2.1,%Q1.0)] donde: E1, ..., En: expresiones (1), objetos o valores inmediatos que sirven de parmetros efectivos para los parmetros de entradas. ES1, ..., ESn: parmetros efectivos que corresponden a las entradas/salidas; siempre son objetos de lenguajes en lectura/escritura. S1, ..., Sn: parmetros efectivos que corresponden a las salidas; siempre son objetos de lenguajes en lectura/escritura. En los lenguajes literal y lista de instrucciones, se propone una introduccin asistida.
6.4-4 Acceso a las variables Slo los parmetros de salidas y las variables pblicas son accesibles en tanto que objetos en el programa de aplicacin fuera del cuerpo del bloque de funcin. Su sintaxis es la siguiente: Nombre_DFB.Nombre_parmetro Donde Nombre_DFB es el nombre que se da a la instancia del DFB utilizado (32 caracteres mximo) y Nombre_parmetro es el nombre dado al parmetro de salidas o a la variable pblica (8 caracteres mximo). Ejemplo: Control.Desviacin denominada Control. para la salida Desviacin de la instancia DFB
6.4-5 Guardado y restitucin de las variables pblicas Las variables pblicas, modificadas por el programa o por ajuste, se pueden guardar en lugar de los valores de inicializacin (definidos en las instancias DFB) mediante la puesta a 1 del bit sistema %S94. El reemplazo slo se realiza si se ha dado autorizacin a nivel de cada variable del tipo DFB. Estos valores guardados son aplicados nuevamente mediante una puesta a 1 del bit sistema %S95 o al reinicializar el autmata. Inhibicin de la funcin "Save/Restore" para todos los DFBs vase el captulo 6.2-7.
6.4-6 Ejecucin de los bloques de funcin DFB La ejecucin de una instancia DFB se efecta en el siguiente orden: carga de los parmetros de entradas y de entradas/salidas valindose de los parmetros efectivos. Toda entrada dejada libre toma durante la inicializacin o reanudacin en fro el valor de la inicializacin definido en el tipo DFB. A continuacin toma el valor actual del parmetro. Los parmetros de entradas (salvo para el tipo de tabla) se transfieren por valor, Los parmetros entradas/salidas se transfieren por direccin, ejecucin del cdigo literal, escritura de los parmetros de salidas El software PL7 ofrece varias herramientas de depuracin del programa PL7 y de los DFB: tabla de animacin: todos los parmetros y variables pblicas se visualizan y animan en tiempo real; es posible modificar y forzar los objetos que se desea, punto de parada, paso a paso y diagnstico de programa, pantallas de explotacin: para la depuracin unitaria. ___________________________________________________________________________ 6/12
A
Bloques de funcin DFB
6.5 Ejemplo 6
Este ejemplo se proporciona a ttulo didctico, el DFB programado es un contador. Caractersticas del Tipo DFB Nombre: Cont._piezas Entradas: Raz: puesta a cero del contador Presel: valor de preseleccin del contador Count: entrada de contaje Salidas: Done: salida de valor de preseleccin alcanzada Variable pblica: V_actual: Valor actual incrementado por la entrada Count.
Cont_piezas EBOOL Raz DWORD Presel EBOOL Count DWORD V_actual BOOL Done
Funcionamiento del contador: este bloque cuenta los flancos ascendentes en la entrada Count, y el resultado lo coloca en la variable V_actual. Esta valor se pone a cero mediante un flanco ascendente en la entrada Raz. El contaje se efecta hasta el valor de preseleccin, cuando este valor alcanza la salida Done se pone a 1, y s se vuelve a poner a 0 en flanco ascendente en la entrada Raz.
Cdigo !(*Programacin del DFB Cont_piezas*) IF RE Raz THEN V_actual:=0; END_IF; IF RE Count THEN V_actual:=V_cour+1; END_IF; IF(V_actual>=Presel) THEN SET Done; ELSE RESET Done; END_IF;
___________________________________________________________________________ 6/13
Ejemplo de utilizacin En este ejemplo el Tipo DFB creado, se utiliza 3 veces (3 instancias DFB) para el contaje de 3 tipos de piezas. Cuando se alcanza el nmero de piezas programado (en las palabras %MD10, %MD12, y %MD14), la salida del contador controla la parada del sistema de abastecimiento de piezas correspondiente.
Programa del usuario Nombres de utilizacin del DFB a partir del Tipo DFB Cont_piezas: Cont_pernos Cont_tuercas Cont_tornillos
Cont_pernos Cpt_boulons
%I1.0 Cpt_pices Cont_piezas
BOOL Ra z %M D10 DWORD BOOL Done
%Q2.1
% I1.1
%Q2.2
Presel Preset
BOOL Cou nt
% I1.3
% Q2.3
% I1.5
___________________________________________________________________________ 6/14
7.1
7.1-1 Definicin del mdulo funcional Un mdulo funcional es una reagrupacin de elementos de programa (secciones, sucesos, macroetapas, tablas de animacin, etc.) destinadas a realizar una funcin de automatismo. Un mdulo funcional est definido por un determinado nmero de atributos (nombre, comentario, programacin, tablas de animacin asociadas, etc.).
Un mdulo funcional comprende un directorio de programa (compuesta de uno o varios mdulos de cdigo) y un directorio de tabla de animacin.
Slo el producto PL7 PRO permite la instalacin de los mdulos funcionales en los autmatas TSX/PMX/PCX57. Los mdulos funcionales permiten estructura la aplicacin en funciones y subfunciones de automatismo. ___________________________________________________________________________ 7/1
7.1-2 Representacin de un mdulo funcional en PL7 PRO El software permite mostrar: la vista estructural de la aplicacin: es la vista tradicional del navegador de aplicacin que corresponde al orden de ejecucin del autmata. la vista funcional de la aplicacin: es la vista de la aplicacin en mdulos funcionales correspondiente a las funciones del automatismo. El Navegador de aplicacin propone 4 visualizaciones posibles: la vista tradicional y funcional en paralelo,
la vista tradicional y funcional en serie, la vista tradicional sola, la vista funcional sola.
___________________________________________________________________________ 7/2
A
Los mdulos funcionales
7.1-3 Nocin de submdulo funcional Un mdulo funcional puede dividirse a su vez en mdulos funcionales de nivel inferior. Estos mdulos asumen, en relacin a la funcin principal, una o varias subfunciones de automatismo. Ejemplo
7.1-4 Tributos de un mdulo funcional Un mdulo funcional est compuesto de : un nombre corto: 8 caracteres (por ejemplo: TR371), este nombre debe ser nico en la aplicacin. un nombre largo: 16 caracteres (por ejemplo: Avanzar/Retroceder para BT371),
submdulos funcionales: se trata de mdulos funcionales de nivel inferior, mdulos de cdigo asociados: secciones, sucesos, mdulo grafcet (Prl, Chart, macroetapas Xm, Post), una ficha descriptiva (sin lmite de nmeros de caracteres), que no se memorizan en el autmata sino en el archivo .STX de la aplicacin, tablas de animacin asociadas. ___________________________________________________________________________ 7/3
7.2
7.2-1 Crear un mdulo funcional Principio de creacin Un mdulo funcional se puede crear en local, con el autmata en Stop o en Run . Un mdulo funcional se puede crear a nivel de la Estacin o a nivel de cada mdulo funcional existante. Se puede cambiar el nombre de un mdulo funcional.
Importar un mdulo funcional Un mdulo funcional se puede importar en local, con el autmata en Stop.
7.2-2 Modificacin de la arquitectura de los mdulos funcionales Desplazar un mdulo funcional Un mdulo funcional se puede desplazar en local, con el autmata en stop o en run (ningn impacto sobre la ejecucin de la aplicacin). Es desplazamiento corresponde nicamente a una modificacin de la arquitectura funcional de la aplicacin (un mdulo se vincula directamente a nivel de la Estacin o a otro mdulo funcional). Para desplazar un mdulo, basta seleccionarlo y desplazarlo (funcin Arrastrar y Colocar). Ejemplo
___________________________________________________________________________ 7/4
A
Los mdulos funcionales 7
Desvincular un mdulo funcional La desvinculacin de un mdulo funcional consiste en cortar los vnculos entre un mdulo funcional y los objetos asociados (mdulos de cdigo y tablas de animacin) - Las secciones que contienen un mdulo no se eliminan sino que se desvinculan. - Las tablas de animacin asociadas a los mdulos no se eliminan sino que slo se desvinculan del mdulo. Eliminar uno o varios mdulos funcionales sin eliminar los mdulos de cdigo y las tablas de animacin Para eliminar un mdulo funcional sin eliminar los mdulos de cdigo y tablas de animacin, hay que: 1. Efectuar la desvinculacin del mdulo y de los submdulos. 2. Eliminar el o los mdulos segn el procedimiento presentado a continuacin. Eliminar un mdulo funcional (con eliminacin de los mdulos de cdigo y tablas de animacin) La eliminacin del mdulo genera la eliminacin de los submdulos - Las secciones que contiene el mdulo no se eliminan. - Las tablas de animacin asociadas a los mdulos se suprimen. Eliminar todos los mdulos funcionales (con eliminacin de los mdulos de cdigo y tablas de animacin) La eliminacin del mdulo genera la eliminacin de todos los submdulos Eliminar una seccin, una macroetapa o un suceso en un mdulo funcional Vase 7.3-2.
___________________________________________________________________________ 7/5
7.3
7.3-1 Agregar/crear una seccin, un suceso o una macroetapa en un mdulo funcional 1er caso: la seccin, el suceso o el grfico ya existen en la vista estructural La seccin ya ha sido creada en la vista estructural Basta arrastrar y colocar (arrastrar desplazando) y posicionarse en la seccin deseada en el mdulo funcional. Ejemplo
___________________________________________________________________________ 7/6
A
Los mdulos funcionales
2do caso: crear seccin, suceso o grfico a partir de la vista funcional Hay que precisar al crear la tarea asociada en el caso de las secciones. Se puede crear una seccin, un suceso o una macroetapa
3er caso: seccin, suceso o grfico a crear a partir de la vista estructural Se trata del caso en que el usuario crea la arquitectura funcional y crea las seciones a partir de la vista estructural. En este caso, hay que precisar adems el mdulo funcional a asociar
Reglas 1. Una seccin Grafcet slo se puede crear en local y en la tarea Mast nicamente. 2. Una macroetapa o un suceso slo se pueden crear en local. 3. Las otras acciones se autorizan en local con el autmata en Stop o en Run. 4. La proteccin de un mdulo se aplica a todas las secciones vinculadas al mdulo funcional.
___________________________________________________________________________ 7/7
7.3-2 Eliminar una seccin, macroetapa o un suceso en mdulo Se puede eliminar una seccin o una macroetapa en un mdulo funcional. Se eliminan entonces en el mdulo y en la tarea asociada. La eliminacin de un suceso slo genera su desvinculacin del mdulo funcional ya que no es posible eliminar un suceso en la aplicacin. Ejemplo: eliminar la seccin Preparacin 1
Reglas 1. La eliminacin est autorizada en local con el autmata en Stop, pero est prohibida en Run. 2. Slo se puede eliminar en modo local una seccin Grafcet o una macroetapa. 3. No se puede eliminar un mdulo PRL, Chart o POST sino nicamente desvincularlo.
___________________________________________________________________________ 7/8
A
Los mdulos funcionales
7.3-3 Agregar/crear una tabla de animacin en un mdulo funcional 1er caso: la tabla ya existe La tabla de animacin ya ha sido creada en la vista estructural Basta arrastrar y colocar y posicionar la seccin en el mdulo funcional al nivel de la Tabla de animacin. 2do caso: la tabla se debe crear El principio es idntico al de la creacin en la vista estructural. Reglas 1. Una tabla de animacin se puede crear en local con el autmata en Stop y en Run. 2. Una tabla de animacin se puede eliminar en local con el autmata en Stop y en Run. 7.3-4 Introducir/modificar la ficha descriptiva La ficha descriptiva es un rea de introduccin libre que permite describir el mdulo funcional. Siempre es posible modificarla y memorizarla en la aplicacin pero no se memoriza en el autmata.
___________________________________________________________________________ 7/9
7.4
La organizacin de un mdulo funcional, la reparticin de las secciones, sucesos y mdulos Grafcet en los diferentes mdulos no tienen ninguna repercusin sobre la ejecucin del programa. La ejecucin del programa se realiza segn el orden presentado en la vista estructural.
7.5
Depuracin de la aplicacin
El usuario dispone de funciones que permiten la depuracin incremental de la aplicacin, mdulo funcional por mdulo funcional. Desactivar todas las secciones vinculadas a un mdulo funcional Esta accin consiste en forzar a 0 todas las condiciones de activacin de las secciones del mdulo. Activar todas las secciones vinculadas a un mdulo funcional Esta accin consiste en forzar a 1 todas las condiciones de activacin de las secciones del mdulo. Cancelar el forzado de todas las secciones vinculadas a un mdulo funcional Esta accin consiste en cancelar el forzado de todas las condiciones de activacin de los sectores del mdulo.
7.6
Carpeta de aplicacin
PL7 Pro permite realizar la carpeta funcional de la aplicacin que comprende: la pgina de ttulo, el sumario la configuracin, la arquitectura arborescente de los mdulos funcionales (nicamente con referencia a las secciones, sucesos y mdulos Grafcet vinculados) el programa, las referencias cruzadas con referencias a los mdulos funcionales de los usuarios de las variables, las variables, el pie de pgina.
___________________________________________________________________________ 7/10
A
Los mdulos funcionales 7
7.7
7.7-1 Exportar La exportacin de un mdulo funcional realiza: la exportacin de las secciones, sucesos y mdulos Grafcet que componen el mdulo, la exportacin de los submdulos funcionales que componen el mdulo funcional. El nombre corto y el nombre de funcin se exportan y por lo tanto se restituyen en el momento de la importacin. La funcin Exportacin de un mdulo funcional es accesible en modo local y/o en modo conectado con el autmata en Stop. Observacin Las tablas de animacin no se procesan en el origen PL7: por lo tanto no son ni exportadas ni importadas sino vinculadas a un mdulo funcional. 7.7-2 Importar La importacin de un mdulo funcional funciona como una creacin con: la importacin de secciones, sucesos y mdulos Grafcet que componen el mdulo, la importacin de los submdulos funcionales que componen el mdulo funcional. El nombre corto y el nombre de funcin se exportan y por lo tanto se restituyen en el momento de la importacin. Si una seccin, un suceso, un mdulo Grafcet, un submdulo funcional que componen el mdulo funcional importado, ya existe con el mismo nombre, el software permite introducir uno nuevo. La importacin de un mdulo funcional permite la correccin de errores en el cdigo de las secciones, sucesos y mdulos Grafcet asociados al mdulo. La funcin es accesible en modo local y/o en modo conectado con el autmata en Stop. Dos procedimientos de importacin estn disponibles: la importacin sin reasignacin la importacin con reasignacin. La importacin con reasignacin permite modificar diferentes elementos: - Nombre de los mdulos, Seccin, Tarea, Grafcet y macroetapas Evti, - Nombre de los Smbolos (y comentarios asociados) y Variables, - Direcciones de los mdulos de E/S, - DFB: campo comentario y nombre de destino de toda instancia, - SR y Macroetapas de destino.
___________________________________________________________________________ 7/11
___________________________________________________________________________ 7/12
Captulo 1 Descripcin de las instrucciones de base 1.1 Presentacin de las instrucciones de base 1.1-1 Generalidades Instrucciones booleanas 1.2-1 Presentacin de las instrucciones booleanas 1.2-2 Descripcin de las instrucciones 1.2-3 Instrucciones de carga 1.2-4 Instrucciones de asignacin 1.2-5 Instrucciones Y lgica 1.2-6 Instrucciones O lgica 1.2-7 Instrucciones O exclusiva Bloques de funcin predefinidos 1.3-1 Principio de programacin de bloques de funcin predefinidos 1.3-2 Bloque de funcin temporizador %TMi (Timer) 1.3-3 Bloque de funcin contaje/descontaje %Ci Tratamientos numricos para enteros 1.4-1 Generalidades 1.4-2 Instrucciones de comparacin 1.4-3 Instrucciones de asignacin 1.4-4 Instrucciones aritmticas con enteros 1.4-5 Instrucciones lgicas 1.4-6 Expresiones numricas
Pgina B1/1 B1/1 B1/1 B1/2 B1/2 B1/3 B1/4 B1/5 B1/6 B1/7 B1/8 B1/9 B1/9 B1/10 B1/14 B1/17 B1/17 B1/19 B1/20 B1/23 B1/25 B1/27
1.2
1.3
1.4
Instrucciones de programa B1/28 1.5-1 Llamada a un subprograma B1/28 1.5-2 Regreso de subprograma B1/29 1.5-3 Salto de programa B1/30 1.5-4 Instrucciones de fin de programa B1/32 1.5-5 Parada de programa B1/33 1.5-6 Instrucciones de enmascaramiento/ desenmascaramiento de sucesos B1/34 1.5-7 Instruccin NOP B1/34 ___________________________________________________________________________ B/1
1.5
Captulo 2 Descripcin de las instrucciones avanzadas 2.1 Presentacin de las instrucciones avanzadas 2.1-1 Generalidades Bloques de funcin predefinidos avanzados 2.2-1 Bloque de funcin monoestable %MNi 2.2-2 Bloque de funcin registro %Ri 2.2-3 Bloque de funcin programador cclico (Drum) %DRi 2.2-4 Bloque de funcin temporizador (Timer) %Ti (serie 7) Bloque de operacin de comparacin vertical Instrucciones de desplazamiento Instrucciones para flotantes 2.5-1 Generalidades 2.5-2 Instrucciones de comparacin para flotantes 2.5-3 Instrucciones de asignacin para flotantes 2.5-4 Instrucciones aritmticas para flotantes 2.5-5 Instrucciones logartmicas y exponenciales 2.5-6 Instrucciones trigonomtricas 2.5-7 Instrucciones de conversin 2.5-8 Redondeo de un valor flotante en formato ASCII
Pgina B2/1 B2/1 B2/1 B2/2 B2/2 B2/5 B2/9 B2/13 B2/17 B2/19 B2/20 B2/20 B2/22 B2/23 B2/24 B2/25 B2/26 B2/28 B2/29
2.2
2.6
Instrucciones de conversin numrica B2/31 2.6-1 Instrucciones de conversin BCD <--> Binario B2/31 2.6-2 Instrucciones de conversin Entero <--> Flotante B2/33 2.6-3 Instrucciones de conversin Gray --> Entero B2/35 2.6-4 Instrucciones de conversin Palabra <--> Doble palabra B2/36 Instrucciones para tablas de palabras 2.7-1 Generalidades 2.7-2 Asignacin de tablas de palabras 2.7-3 Instrucciones aritmticas para tablas B2/37 B2/37 B2/38 B2/40
2.7
___________________________________________________________________________ B/2
Captulo 2.7-4 2.7-5 2.7-6 2.7-7 2.7-8 Instrucciones lgicas para tablas Funcin de suma para tablas Funciones de comparacin de tablas Funciones de bsqueda para tablas Funciones de bsqueda de valores mx. y mn. para tablas 2.7-9 Nmero de ocurrencias de un valor en una tabla 2.7-10 Funciones de desplazamiento circular para tablas 2.7-11 Funciones de ordenacin para tablas 2.7-12 Funcin de clculo de longitud de tablas
Pgina B2/41 B2/42 B2/43 B2/45 B2/47 B2/48 B2/49 B2/51 B2/52 B2/53 B2/53 B2/54 B2/55 B2/56 B2/56 B2/58 B2/59 B2/60 B2/61 B2/62 B2/63 B2/65 B2/67 B2/69 B2/71 B2/72 B2/73 B2/74 B2/74 B2/76 B2/77 B2/79 B2/79 B2/80
2.8
Instrucciones para cadenas de caracteres 2.8-1 Formato de una cadena o tabla de caracteres 2.8-2 Asignacin para cadenas de caracteres 2.8-3 Comparacin alfanumrica 2.8-4 Conversin Numrico <---> ASCII 2.8-5 Conversin Binario --->ASCII 2.8-6 Conversin ASCII ---> Binario 2.8-7 Conversin Flotante ---> ASCII 2.8-8 Conversin ASCII --> Flotante 2.8-9 Concatenacin de dos cadenas 2.8-10 Eliminacin de una subcadena de caracteres 2.8-11 Insercin una subcadena de caracteres 2.8-12 Reemplazo una subcadena de caracteres 2.8-13 Extraccin de una subcadena de caracteres 2.8-14 Extraccin de caracteres 2.8-15 Comparacin de dos cadenas de caracteres 2.8-16 Bsqueda de una subcadena de caracteres 2.8-17 Longitud de una cadena de caracteres Instrucciones de gestin de tiempo: fechas, horas, duraciones 2.9-1 Formato de los parmetros 2.9-2 Utilizacin de bits y palabras sistema - Generalidades 2.9-3 Funcin reloj-calendario 2.9-4 Lectura de la fecha sistema 2.9-5 Actualizacin de la fecha sistema 2.9-6 Lectura de la fecha y del cdigo de parada
2.9
___________________________________________________________________________ B/3
Captulo
Pgina 2.9-7 Lectura del da de la semana B2/81 2.9-8 Agregar/quitar una duracin en una fecha B2/82 2.9-9 Agregar/quitar una duracin en una hora del da B2/83 2.9-10 Desviacin entre dos fechas (sin hora) B2/85 2.9-11 Desviacin entre dos fechas (con hora) B2/86 2.9-12 Desviacin entre dos horas B2/87 2.9-13 Conversin de una fecha (sin hora) en cadena de caracteres B2/88 2.9-14 Conversin de una fecha completa en cadena de caracteres B2/89 2.9-15 Conversin de una duracin en cadena de caracteres B2/90 2.9-16 Conversin de una hora del da en cadena de caracteresB2/91 2.9-17 Conversin de una duracin en HHHH:MM:SS B2/93 B2/94 B2/94 B2/95 B2/96 B2/98 B2/100 B2/100 B2/103 B2/105 B2/107 B2/107 B2/107 B2/109 B2/110 B2/111
2.10 Instrucciones para tablas de bits 2.10-1 Copia de una tabla de bits en una tabla de bits 2.10-2 Instrucciones lgicas para tablas de bits 2.10-3 Copia de una tabla de bits en una tabla de palabras 2.10-4 Copia de una tabla de palabras en una tabla de bits 2.11 Funciones "Orphe": desplazamientos, contador 2.11-1 Desplazamientos en palabras con recuperacin de bits desplazados 2.11-2 Contaje/descontaje con indicacin de rebasamiento 2.11-3 Desplazamientos circulares 2.12 Funciones de temporizacin 2.12-1 Generalidades 2.12-2 Funcin de temporizacin de conexin FTON 2.12-3 Funcin de temporizacin de desconexin FTOF 2.12-4 Funcin de temporizacin de impulsin FTP 2.12-5 Funcin generador de seal rectangular FPULSOR
2.13 Funciones de archivado de datos B2/113 2.13-1 Generalidades B2/113 2.13-2 Inicializacin del rea de archivado B2/114 2.13-3 Escritura de los datos en el rea de archivado B2/116 2.13-4 Lectura de los datos en el rea de archivado B2/118 ___________________________________________________________________________ B/4
Captulo 3 Bits y palabras del sistema 3.1 Bits del sistema 3.1-1 Lista de bits del sistema 3.1-2 Descripcin detallada de bits del sistema Palabras del sistema 3.2-1 Lista de palabras del sistema 3.2-2 Descripcin detallada de las palabras del sistema
Pgina B3/1 B3/1 B3/1 B3/3 B3/9 B3/9 B3/11 B4/1 B4/1 B5/1 B5/1 B6/1 B6/1 B6/1 B7/1 B8/1 B8/1 B8/3 B8/3 B8/4
3.2
4 Diferencias entre PL7-2/3 y PL7 Micro/Junior 4.1 Diferencias entre PL7-2/3 y PL7-Micro/Junior
6 Conformidad con la norma CEI 1131-1 6.1 Conformidad con la norma IEC 1131-3 6.1.1 Tablas de conformidad
7 Ayuda de memoria 8 Prestaciones 8.1 8.2 Generalidades Prestaciones TSX 37 8.2.1 Instrucciones booleanas 8.2.2 Bloques de funcin
___________________________________________________________________________ B/5
Captulo 8.2.3 Aritmtica entera y con coma flotante 8.2.4 Instrucciones para programas 8.2.5 Estructura de control 8.2.6 Conversiones numricas 8.2.7 Cadena de bits 8.2.8 Tablas de palabras, dobles palabras y flotantes 8.2.9 Gestin del tiempo 8.2.10 Cadenas de caracteres 8.2.11 Funciones especficas y funciones Orphe 8.2.12 Entradas/salidas explcitas 8.3 Prestaciones TSX 57 8.3.1 Instrucciones booleanas 8.3.2 Bloques de funcin 8.3.3 Aritmtica entera y con coma flotante 8.3.4 Instrucciones para programa 8.3.5 Estructura de control 8.3.6 Conversiones numricas 8.3.7 Cadena de bits 8.3.8 Tablas de palabras, dobles palabras y flotantes 8.3.9 Gestin del tiempo 8.3.10 Funcin Temporizador 8.3.11 Cadenas de caracteres 8.3.12 Extraccin de palabras 8.3.13 Funciones especficas y funcin Orphe 8.3.14 Entradas/salidas explcitas 8.3.15 Bloque de funcin DFB Tamao de la aplicacin 8.4.1 Descripcin de las reas de memoria 8.4.2 Tamao de memoria de los objetos PL7 8.4.3 Tamao de memoria de los mdulos 8.4.4 Tamao de memoria de las funciones avanzadas Anexo: mtodo de clculo del nmero de instrucciones
Pgina B8/6 B8/8 B8/8 B8/9 B8/9 B8/11 B8/14 B8/15 B8/16 B8/17 B8/18 B8/19 B8/20 B8/22 B8/24 B8/24 B8/25 B8/25 B8/27 B8/30 B8/30 B8/31 B8/31 B8/32 B8/33 B8/35 B8/38 B8/38 B8/39 B8/39 B8/45 B8/52
8.4
8.5
___________________________________________________________________________ B/6
Captulo 9 Servidor OLE Automation 9.1 Presentacin 9.1-1 Advertencia 9.1-2 Introduccin 9.1-3 Contexto de ejecucin 9.1-4 Modos de funcionamiento Instalacin 9.2-1 Instalacin 9.2-2 Inicio del servidor en modo local (modo COM) 9.2-3 Inicio del servidor en modo remoto (DCOM) 9.2-4 Instalacin del servidor en modo remoto Modos de ejecucin del PL7 servidor Puntos de entrada: funcin OLE Descripcin de las funciones OLE 9.5-1 OpenStx 9.5-2 CloseStx 9.5-3 ExportScyFile 9.5-4 ExportFefile 9.5-5 DisconnectPLC 9.5-6 ConnectPLC 9.5-7 SaveStx 9.5-8 DownloadToPLC 9.5-9 UploadFromPLC 9.5-10 GetSymbol 9.5-11 SetServerIHM 9.5-12 GetPL7State 9.5-13 GetSTXAppIdentity 9.5-14 GetPLCAppIdentity 9.5-15 SendCommandToPLC
Pgina B9/1 B9/1 B9/1 B9/2 B9/3 B9/3 B9/4 B9/4 B9/4 B9/5 B9/6 B9/7 B9/8 B9/10 B9/10 B9/10 B9/11 B9/12 B9/12 B9/13 B9/14 B9/14 B9/15 B9/16 B9/17 B9/18 B9/18 B9/19 B9/20
9.2
___________________________________________________________________________ B/7
Captulo 9.5-16 SetDriverAndAdresse 9.5-17 OpenTool 9.5-18 SetPosPL7Windows 9.5-19 ShowProgram 9.5-20 CloseProgram 9.5-21 ShowIOMdulo 9.5-22 CloseIOMdulo 9.5-23 ShowDFB 9.5-24 CloseDFB 9.5-25 GetMessageError 9.5-26 GetServerVersion 9.6 Mecanismo de acceso al PL7 Serveur OLE Automation
Pgina B9/21 B9/21 B9/22 B9/23 B9/23 B9/24 B9/25 B9/26 B9/26 B9/27 B9/27 B9/28
___________________________________________________________________________ B/8
1.1
1.1-1 Generalidades Las instrucciones descritas en este captulo son conformes a las instrucciones de base principales definidas en la norma IEC 1131.3. El lenguaje utilizado no tiene importancia: estas instrucciones tienen siempre el mismo efecto. Slo cambia su presentacin en el programa. Ejemplo de ecuacin booleana: en Lista de instrucciones: LD %I1.0 ST %Q2.0
%I1.0 %Q2.O
en lenguaje de contactos:
%Q2.0 := %I1.0 ;
Estas tres ecuaciones booleanas son equivalentes. El objeto bit %Q2.0 asume el valor (instruccin de asignacin) del objeto bit %I1.0 (instruccin de carga). Las instrucciones de base comprenden: las instrucciones booleanas (tratamientos en bits), los bloques de funcin predefinidos de automatismo temporizador y contador, las instrucciones numricas para enteros (tratamientos en palabras y dobles palabras), las instrucciones de programa. Las dems instrucciones se detallan en el captulo 2 "Descripcin de las instrucciones avanzadas".
___________________________________________________________________________ 1/1
1.2
Instrucciones booleanas
1.2-1 Presentacin de las instrucciones booleanas Las instrucciones booleanas actan sobre todas las informaciones del tipo bit (bits de entradas/salidas, bits internos...). Elementos de prueba, ejemplo: contacto de cierre Contacto establecido cuando el objeto bique lo controla est en el estado 1. LD %I1.0
%I1.0
%I1.0
Elementos de accin, ejemplo: bobina directa. El objeto bit asociado toma el valor lgico del resultado del elemento de prueba. ST %Q2.0
%Q2.0
%Q2.0 :=
Ecuacin booleana: El resultado booleano de los elementos de prueba se aplica al elemento de accin. LD %I1.0 AND %I1.1 ST %Q2.0
%I1.0 %I1.1 %Q2.0
Flancos ascendente y descendente Las instrucciones de prueba permiten detectar el flanco ascendente o descendente en los bits de entradas y salidas de autmatas o en los bits internos. Contacto de deteccin de flanco asc.: LDR %I1.0
%I1.0 P
RE %I1.0
LDF %I1.0
FE %I1.0
Para todas las entradas (TON, contaje, ...): un flanco se detecta cuando el estado del bit ha cambiado entre el ciclo n-1 y el ciclo n en curso; permanece detectado durante el ciclo en curso (vase la seccin A, captulo 1.3-2). Flanco ascendente: deteccin del paso Flanco descendente: deteccin del paso de 0 a 1 de la entrada que lo controla. de 1 a 0 de la entrada que lo controla.
tiempo 1 ciclo de tarea tiempo tiempo 1 ciclo de tarea tiempo
%I1.0
%I1.0
Result. booleano
Resultado booleano
Para las salidas o los bits internos: la deteccin de un flanco es independiente del ciclo de tarea; se detecta uno en el bit interno %Mi cuando su estado ha cambiado entre 2 lecturas. El flanco permanece detectado mientras no se explore %Mi en el rea de accin. El usuario no debe efectuar un SET o RESET de un objeto cuyo flanco est probando (en lenguaje de contactos y Lista de instrucciones). ___________________________________________________________________________ 1/2
contactos de cierre: contacto cuando el objeto bit que lo controla est en el estado 1, ... Lenguaje de contactos
%I1.1 %M0 %Q2.3 %Q2.2
Operandos autorizados
Cdigo LD Operando %I,%Q,%M,%S,%BLK,%:Xk, %Xi
Cronograma
LD LDN
%Q2.3
%Q2.2
Cronograma Lista de operandos Los 4 cronogramas estn agrupados. 0/1 valor inmediato 0 (false) o 1 (true) %I entrada autmata %Ix.i Cronograma de %Q salida autmata %Qx.i LD la instruccin LD %M bit interno %Mi %S bit sistema %Si Estado de la entrada %BLK bit bloque funcin (ej.: %TMi.Q) %I1.1 o de instancia DFB %:Xk bit extr. de pal., ej.: %MWi:Xk Estado de la %Xi bit de etapa, macroetapa (%XMi) salida %Q2.3 o etapa de macroatapa (%Xj.i) ___________________________________________________________________________ 1/3
B
1.2-3 Instrucciones de carga Estas instrucciones corresponden a: contactos de cierre: se establecen cuando el objeto bit que los controla = estado 1, contactos de apertura: se establecen cuando el objeto bit que los controla = estado 0, contactos de flanco ascendente: deteccin del paso de 0 a 1 del objeto bit que los controla, contactos de flanco descendente: deteccin del paso de 1 a 0 del objeto bit que los controla. Lenguaje de contactos Lenguaje Lista de instrucciones
%I1.1 %M0 %Q2.3 %Q2.2
%I1.2 P %I1.3 N
%Q2.4 %Q2.5
Operandos autorizados
Cdigo Operando LD %I,%Q,%M,%S,%BLK,%:Xk, %Xi (1)
Cronograma
P N
LD
LDN
LDR
LDF
%I1.1
%M0
%I1.2
%I1.3
(1) True (1) / False (0) en lenguaje Lista de instrucciones o Literal estructurado
%Q2.3
%Q2.2
___________________________________________________________________________ 1/4
B
bobinas directas: el objeto bit asociado toma el valor del resultado de la ecuacin, bobinas inversas: el objeto bit asociado toma el valor de inverso del resultado de la ecuacin, bobinas de conexin: el objeto bit asociado se pone a 1 cuando el resultado de la ecuacin = 1, bobinas de desconexin: el objeto bit asociado se pone a 0 cuando el resultado de la ecuacin = 1. Lenguaje de contactos
%I1.1 %Q2.3 %Q2.2
S LD R
%I1.2
%Q2.4 R
Operandos autorizados
Cdigo ST S R Operando %I,%Q,%M,%S,%:Xk %I,%Q,%M,%S,%:Xk, %Xi (1) %I,%Q,%M,%S,%:Xk, %Xi (1)
Cronograma
S R
ST
STN
STN %I,%Q,%M,%S,%:Xk
S R
%I1.1
%I1.1
%I1.1
%I1.2
%Q2.3
%Q2.2
%Q2.4
___________________________________________________________________________ 1/5
B
1.2-5 Instrucciones Y lgica Estas instrucciones efectan: una Y lgica entre el operando y el resultado booleano de la instruccin previa, una Y lgica entre el inverso del operando y el resultado booleano de instruccin previa, una Y lgica entre el flanco ascendente del operando y el resultado booleano de instruccin previa, una Y lgica entre el flanco descendente del operando y el resultado booleano de instruccin previa. Lenguaje de contactos
%I1.1 %M1 %M2 %I1.2 %Q2.3 %Q2.2
%Q2.4 %Q2.5
Nota: los parntesis son opcionales, pero facilitan la legibilidad del programa.
Operandos autorizados
Cdigo
AD N ANDN
P N
Cronograma
P N
Operando
%I,%Q,%M,%S,%BLK,%:Xk,%Xi(1) %I,%Q,%M,%S,%BLK,%:Xk,%Xi(1) %I,%Q,%M %I,%Q,%M
%I1.1 %M1 %Q2.3 %M2 %I1.2 %Q2.2 AND ANDN
ANDR ANDF
(1) True (1) / False (0) en lenguaje Lista de instrucciones o Literal estructurado
___________________________________________________________________________ 1/6
B
1.2-6 Instrucciones O lgica Estas instrucciones efectan: una O lgica entre el operando y el resultado booleano de la instruccin previa, una O lgica entre el inverso del operando y el resultado booleano de la instruccin previa, una O lgica entre el flanco ascendente del operando y el resultado booleano de la instruccin previa, una O lgica entre el flanco descendente del operando y el resultado booleano de la instruccin previa. Lenguaje de contactos
%I1.1 %M1 %M2 %I1.2 %I1.3 %I1.4 P %M3 %I1.5 N %Q2.4 %Q2.2 %Q2.3
%Q2.5
Nota: los parntesis son opcionales, pero facilitan la legibilidad del programa.
Operandos autorizados
Cdigo OR Operando %I,%Q,%M,%S,%BLK,%:Xk, %Xi (1)
Cronograma
OR %I1.1 %M1
O R F %I,%Q,%M
N
%Q2.3
(1) True (1) / False (0) en lenguaje Lista de instrucciones o Literal estructurado ___________________________________________________________________________
1/7
1.2-7 Instrucciones O exclusiva Estas instrucciones efectan: una O exclusiva entre el operando y el resultado booleano de la instruccin previa, una O exclusiva entre el inverso del operando y el resultado booleano de la instruccin previa, una O exclusiva entre el flanco ascendente del operando y el resultado booleano de la instruccin previa, una O exclusiva entre el flanco descendente del operando y el resultado booleano de la instruccin previa.
Nota En el lenguaje de contactos, no hay elementos grficos especficos para la O exclusiva. Sin embargo, la O exclusiva puede ser programada utilizando una combinacin de contactos de apertura y cierre (vase el ejemplo siguiente).
Lenguaje de contactos
%I1.1 %M 1 %M1 %M2 %I1.2 %I1.1 %I1.2 %M2 %Q2.2 %Q2.3
Nota: los parntesis son opcionales, pero facilitan la legibilidad del programa.
Operandos autorizados
Cdigo XOR XORN XORR XORF Operando %I,%Q,%M,%S,%BLK,%:Xk, %Xi %I,%Q,%M,%S,%BLK,%:Xk, %Xi %I,%Q,%M %I,%Q,%M
Cronograma
XOR %I1.1 %M1 %Q2.3 XORN %M2 %I1.2 %Q2.2 XORR %I1.3 %I1.4 %Q2.4 XORF %M3 %I1.5 %Q2.5
___________________________________________________________________________ 1/8
B
1.3-1 Principio de programacin de bloques de funcin predefinidos Los bloques de funcin implantan objetos bits y palabras especficas. Los bloques de funcin se preprograman en el autmata y ocupan pues un rea particular en la memoria de usuario. A fin de optimizar el espacio de memoria ocupado, es necesario definir previamente el tipo y el nmero de los bloques de funcin utilizados, dentro de los lmites impuestos por el sistema (mediante los editores de configuracin y de datos). Existen 6 tipos de bloques de funcin:
Tipo de bloque Temporizador (Timer) %TMi Contaje/descontaje %Ci Monoestable %MNi Registro %Ri Programador cclico (Drum) %DRi Temporizador (Timer srie 7) %Ti Mx. TSX 37 64 (1) 32 8 4 8 64 (1) Mx. TSX 57 255 (1) 255 255 255 255 255 (1) Vase cap. 1.3-2 1.3-3 2.2-1 2.2-2 2.2-3 2.2-4
%Ci R E
(1) el nmero total de temporizadores %TMi + %Ti debe ser inferior o igual a 64 en el TSX 37 e inferior o igual a 255 en el TSX 57.
Cada bloque contiene: entradas (ej.: IN) que permiten controlarlo, salidas (Ej.: Q) que indican su estado. A cada salida se asocia un bit de salida (ej.: %TM1.Q) que puede ser probado por el programa de usuario. Adems, cada salida puede controlar una o varias bobinas (ej.: %Q2.3 y SR2), parmetros que permiten adaptarlo a la aplicacin (preseleccin, base de tiempo...).
%I1.1 IN %TM1 Q SR2 c %Q2.3
Los parmetros de los bloques de funcin (preseleccin, valor actual...) se visualizan dentro del bloque. En el lenguaje Lista de instrucciones, las instrucciones programan los bloques predefinidos (vase la seccin A, captulo 3.2-6). ___________________________________________________________________________ 1/9
B
1.3-2 Bloque de funcin temporizador %TMi (Timer) El temporizador tiene 3 modos de funcionamiento: TON: permite administrar retardos a la conexin. El retardo es programable y puede ser modificado o no desde el terminal. TOF: permite administrar retardos a la desconexin. El retardo es programable y puede ser modificado o no desde el terminal. TP: permite elaborar un impulso de una duracin precisa. La duracin es programable y puede ser modificada o no desde el terminal.
Bloque temporizador
Caractersticas
Nmero de temporizador Modo %TMi TON TOF TP TB 0 a 63 para un TSX 37, 0 a 254 para un TSX 57 retardo a la conexin(predeterminado) retardo a la desconexin monoestable 1 min (valor predeterminado), 1 s, 100 ms, 10 ms.Cuantomspequealabasedetiempo, tanto mayor ser la precisin del temporizador. Palabra que aumenta de 0 a %TMi.P al transcurre el temporizador. Puede ser leda y probada, pero no escrita por el programa (1). 0-%TMi.P-9999.Palabraquepuedeserleda, probada y escrita por el programa. De forma predeterminada,seponea9999.Laduracin o el retardo elaborado es igual a %TMi.P x TB. Y: posibilidad de modificar el valor de preseleccin%TMi.Penmodoajuste. N: sin acceso en modo ajuste. En el flanco ascendente (modo TON o TP) o descendente(modoTOF),activaeltemporizador. Bit asociado %TMi.Q. Su puesta a 1 depende de la funcin realizada TON, TOF o TP.
Basedetiempo
Valoractual
%TMi.V
Valordepreseleccin
%TMi.P
Y/N
IN Q
___________________________________________________________________________ 1/10
B
Temporizacin con retardo en la conexin: modo TON El temporizador se activa en un flanco ascendente de la entrada IN: su valor actual %TMi.V toma el valor 0. Luego, el valor actual aumenta hacia %TMi.P en una unidad a cada impulso de la base de tiempo TB. El bit de salida %TMi.Q pasa a 1 cuando el valor actual alcanza %TMi.P y permanece a 1mientras la entrada est en el estado 1. Cuando la entrada IN pasa al estado 0, el temporizador se detiene aun cuando estaba en curso de evolucin: %TMi.V toma el valor 0.
IN
Q %TMi.P %TMi.V
Temporizacin con retardo en la desconexin: modo TOF El valor actual %TMi.V toma el valor 0 en un flanco ascendente de la entrada IN (aun cuando el temporizador est en curso de evolucin). El temporizador se activa en un flanco descendente de la entrada IN. Luego, el valor actual aumenta hacia %TMi.P en una unidad a cada impulso de la base de tiempo TB. El bit de salida %TMi.Q pasa a 1 cuando se detecta un flanco ascendente en la entrada IN y el temporizador se pone a 0 cuando el valor actual alcanza %TMi.P. Monoestable: modo TP El temporizador se activa en un flanco ascendente de la entrada IN: su valor actual %TMi.V toma el valor 0 (si el temporizador no est en curso de evolucin). Luego el valor actual aumenta hacia %TMi.P en una unidad a cada impulso de la base de tiempo TB. El bit de salida %TMi.Q pasa a 1 cuando el temporizador se activa y se pone a 0 cuando el valor actual alcanza %TMi.P. Cuando la entrada IN y la salida %TM.iQ estn a 0, TMi.V toma el valor 0. Este monoestable no puede reactivarse.
IN
Q %TMi.P %TMi.V
IN
Q %TMi.P %TMi.V
___________________________________________________________________________ 1/11
B
Programacin y configuracin La programacin de los bloques de funcin temporizador es idntica en todos los modos de utilizacin. La eleccin del funcionamiento TON, TOF o TP se efecta en el editor de variables.
Configuracin Se introducen los parmetros siguientes en el editor de variables: - Modo: TON, TOF o TP. - TB: 1 min, 1 s, 100 ms o 10 ms. - %TMi.P: 0 a 9999. - MODIF : Y o N.
%I1.1
%Q2.3
La instruccin START %TMi genera un flanco ascendente en la entrada IN del bloque temporizador. La instruccin DOWN %TMi genera un flanco descendente en la entrada IN del bloque temporizador.
___________________________________________________________________________ 1/12
B
Casos especficos Incidencia de un arranque en fro: (%S0=1) tiene como consecuencia la puesta a 0 del valor actual y la puesta a 0 de la salida %TMi.Q. El valor de preseleccin se reinicializa al valor definido en la configuracin. Incidencia de un rearranque en caliente: (%S1=1) no tiene incidencia en el valor actual del temporizador, ni en el valor de preseleccin. El valor actual no evoluciona durante el corte de corriente. Incidencia de un paso a STOP, una desactivacin de tarea o una ejecucin de punto de parada: no inmoviliza el valor actual. Incidencia de un salto de programa: el hecho de no explorar las instrucciones donde se programa el bloque temporizador no inmoviliza el valor actual %TMi.V que sigue aumentando hacia %TMi.P. Asimismo, el bit %TMi.Q asociado a la salida Q del bloque temporizador conserva su funcionamiento normal y, por consiguiente, puede ser probado por otra instruccin. En cambio, no se activa la salida cableada directamente a la salida del bloque, puesto que no la explora el autmata. Prueba del bit %TMi.Q: se aconseja probar el bit %TMi.Q una sola vez en el programa. Incidencia de la modificacin de la preseleccin %TMi.P: la modificacin del valor de preseleccin, mediante una instruccin o en modo de ajuste, se acepta slo cuando se activa el temporizador por prxima vez; la modificacin del valor de preseleccin en el editor de variables se acepta slo despus de un arranque en fro (%S0=1).
___________________________________________________________________________ 1/13
B
1.3-3 Bloque de funcin contaje/descontaje %Ci El bloque de funcin contaje/descontaje permite contar o descontar sucesos. Estas dos operaciones pueden ser simultneas.
%Ci R E
Bloque contaje/descontaje
Caracteristicas
Nmero de contador Valor actual %Ci %Ci.V 0 a 31 para un TSX 37, 0 a 254 para un TSX 57 Palabra aumentada o disminuida en funcin de las entradas CU y CD. Puede ser leda y probada, pero no escrita por el programa (1). 0-%Ci.P-9999. Palabra que puede ser leda, probada y escrita (valor predeterminado: 9999). S: posibilidad de modificar el valor de preseleccinenmododeajuste. N: sin acceso en modo de ajuste. En el estado 1 : %Ci.V = 0. En el estado1: %Ci.V = %Ci.P. Aumenta %Ci.V en el flanco ascendente. Disminuye %Ci.V en el flanco ascendente. El bit asociado %Ci.E=1, cuando el descontaje %Ci.V pasa de 0 a 9999 (se pone a 1 cuando %Ci.V alcanza 9999; se pone a 0 si el contador sigue descontado).(2) El bit asociado %Ci.D=1, cuando %Ci.V=%Ci.P. El bit asociado %Ci.F =1 cuando %Ci.V pasa de 9999 a 0 (se pone a 1 cuando %Ci.V alcanza 0; se pone a 0 si el contador sigue contando).
Valor de preseleccin Ajustedesde elterminal (MODIF) Entrada (instruccin) puesta a cero Entrada (instruccin) preseleccin Entrada (instruccin) contaje Entrada (instruccin) descontaje Salida rebasamiento
%Ci.P Y/N
R S CU CD E (Empty)
D (Done) F (Full)
(1) %Ci.V puede ser modificado desde el terminal. (2) cuando se produce un rebasamiento en el contaje o descontaje, el bit %S18 pasa a 1.
___________________________________________________________________________ 1/14
B
Funcionamiento Contaje: al aparecer un flanco ascendente en la entrada de contaje CU, el valor actual se aumenta en una unidad. Cuando este valor alcanza el de preseleccin %Ci.P, el bit de salida %Ci.D "preseleccin alcanzada" asociado a la salida D pasa al estado 1. El bit de salida %Ci.F (rebasamiento de contaje) pasa al estado 1 cuando %Ci.V pasa de 9999 a 0; se pone a 0 si el contador sigue contando. Descontaje: al aparecer un flanco ascendente en la entrada de descontaje CD, el valor actual %Ci.V se disminuye en una unidad. El bit de salida %Ci.E (rebasamiento de descontaje) pasa al estado 1 cuando %Ci.V pasa de 0 a 9999; se pone a 0 si el contador sigue descontando. Contaje/Descontaje: para utilizar simultneamente las funciones contaje y descontaje, es necesario controlar las dos entradas correspondientes (CU y CD), que se exploran sucesivamente. Si ambas entradas estn simultneamente en el estado 1, el valor actual permanece sin cambiar. Puesta a cero: cuando la entrada R se pone 1, el valor actual %Ci.V se fuerza a 0. Las salidas %Ci.E, %Ci.D y %Ci.F estn en el estado 0. La entrada "puesta a cero" es prioritaria. Preseleccin: si la entrada S "preseleccin" est en el estado 1 y la entrada R "puesta a cero" en el estado 0, el valor actual %Ci.V toma el valor %Ci.P y la salida %Ci.D el valor 1. Observacin Al poner a cero (entrada R o instruccin R): en el lenguaje de contactos, los historiales de las entradas CU y CD se actualizan con los valores cableados, en el lenguaje Lista de instrucciones y en el Literal estructurado, los historiales de las entradas CU y CD no se actualizan; cada uno conserva el valor anterior a la llamada. Casos especficos Incidencia de un arranque en fro: (%S0=1) - puesta a 0 del valor actual %Ci.V. - puesta a 0 de los bits de salida %Ci.E, %Ci.D y %Ci.F. - inicializacin del valor de preseleccin por el definido en la configuracin. Incidencia de un rearranque en caliente (%S1=1), un paso a STOP, una desactivacin de tarea o una ejecucin de punto de parada: no tiene incidencia en el valor actual del contador (%Ci.V). Incidencia de la modificacin de la preseleccin %Ci.P: la modificacin del valor de preseleccin, mediante una instruccin o en modo de ajuste, se acepta durante la gestin del bloque por la aplicacin (activacin de una de las entradas). ___________________________________________________________________________ 1/15
B
Configuracin y programacin Contaje de un nmero de piezas = 5000. Cada impulso en la entrada %I1.2 (cuando el bit interno %M0 = 1) incrementa el contador %C8 hasta el valor de preseleccin final del contador %C8 (bit %C8.D=1). La entrada %I1.1 pone el contador a cero. Configuracin Se deben introducir los parmetros siguientes mediante el editor de variables: - %Ci.P, definido como 5000 en este ejemplo, - MODIF : Y. Programacin Lenguaje de contactos
%I1.1 %C8 R E
%I1.2 %M0
%C8.D
En el lenguaje Literal estructurado, 4 instrucciones permiten programar los bloques de funcin contaje/descontaje: RESET %Ci : puesta a cero del valor actual, PRESET %Ci : carga del valor de preseleccin en el valor actual, UP %Ci : aumenta el valor actual, DOWN %Ci : disminuye el valor actual. En el caso del lenguaje Literal estructurado, el historial de las entradas CU y CD se pone a cero al utilizar las instrucciones UP y DOWN. Es pues el usuario que debe efectuar la gestin de los flancos ascendentes para estas dos instrucciones. ___________________________________________________________________________ 1/16
B
1.4-1 Generalidades Las instrucciones numricas descritas en este captulo se aplican a objetos de tipo: tabla de bits, palabra, doble palabra. Las instrucciones para los otros tipos de objetos se describen en el captulo "Descripcin de las instrucciones y funciones avanzadas".
En el lenguaje de contactos Las instrucciones numricas se introducen en los bloques: ubicados en el rea de prueba (bloques de comparacin), ubicados en el rea de accin (bloques de operacin). Estos bloques pueden contener: una expresin simple, ej.: OP3:=OP1+OP2, una expresin compleja, ej.: OP5:=(OP1+OP2)*OP3-OP4.
%Q2.2 %MW50>10 %I1.0 %MW10:=%KW0+10 %I1.2
N
INC%MW100
En el lenguaje Lista de instrucciones Las instrucciones se colocan entre corchetes. Se ejecutan, si el resultado booleano de la instruccin de prueba que precede a la instruccin numrica es 1.
En el lenguaje Literal estructurado Las instrucciones numricas se introducen directamente. La instruccin condicional IF permite condicionar estas instrucciones numricas con una expresin booleana.
%Q2.2 := %MW50 > 10 ; IF %I1.0 THEN %MW10 := %KW0 + 10 ; END_IF ; IF FE %I1.2 THEN INC %MW100 ; END_IF ;
___________________________________________________________________________ 1/17
(1) escritura segn i. (2) escritura segn el tipo de palabra, por ejemplo: los valores de preseleccin (%Ci.P pueden ser escritos, mientras los valores actuales %Ci.V slo pueden ser ledos).
Observaciones
Existen otros tipos de palabras y dobles palabras, tales como %MWxy.i %KWxy.i y %MDxy.i %KDxy.i asociadas a funciones especficas. Estas dobles palabras se comportan respectivamente como las palabras y dobles palabras %MWi %KWi y %MDi %KDi. Conversin implcita palabras <--> dobles palabras El programa PL7 autoriza la combinacin de operaciones con palabras y dobles palabras. La conversin se efecta implcitamente. Una operacin que implica una doble palabra o varios valores inmediatos se ejecuta en doble formato interna y automticamente.
___________________________________________________________________________ 1/18
%MW30>=%MW40
La comparacin se realiza dentro de corchetes despus de las instrucciones LD, AND y OR.
%Q2.3 := %MW10 > 100 ; %Q2.2 := %M0 AND (%MW20 < %KW35) ; %Q2.4 := %I1.2 OR (%MW30 >= %MW40) ; Nota: los parntesis son opcionales pero facilitan la legibilidad del programa.
___________________________________________________________________________ 1/19
B
Operandos
Tipo Palabras indexables Palabras no indexables Dobles palabras indexables Dobles palabras no indexables Operandos 1 y 2 (Op1 y 2) %MW,%KW Val.inm.,%IW,%QW,%SW,%NW,%BLK, %Xi.T Expr. numrica %MD,%KD Val.inm.,%ID,%QD,%SD,Expr. numrica
Observaciones En el lenguaje de contactos, tambin es posible efectuar la comparacin con el bloque de comparacin vertical (vase la seccin B, captulo 2.3), En el lenguaje Lista de instrucciones, las instrucciones de comparacin pueden utilizarse entre parntesis. 1.4-3 Instrucciones de asignacin Efectan la carga de un operando Op2 en un operando Op1. Sintaxis: Op1:=Op2 <=> Op2->Op1 Las operaciones de asignacin pueden realizarse: en tablas de bits, en palabras o dobles palabras . Es posible encadenar varias instrucciones de asignacin en un mismo bloque: Op1:=Op2:=Op3:=Op4:=... Asignacin de tablas de bits (vase el objeto tabla de bits, cap. 1.2-6, seccin A) Se pueden realizar en las tablas de bits las operaciones siguientes: tabla de bits -> tabla de bits ej. 1 tabla de bits -> palabra o doble palabra (indexada) ej. 2 palabra o doble palabra (indexada) -> tabla de bits ej. 3 Estructura Lenguaje de contactos
%Q2.0:8:=%M10:8 %I3.2 %MW100:=%I1.0:16 %I3.3 P %M100:16:=%KW0
Lenguaje Lista de instrucciones LD TRUE [%Q2.0:8:= %M10:8] LD %I3.2 [%MW100:= %I1.0:16 ] LDR %I3.3 [%M100:16:=%KW0]
ej 1
ej 2
ej 3
___________________________________________________________________________ 1/20
B
Lenguaje Literal estructurado
%Q2.0:8 := %M10:8 ; IF %I3.2 THEN %MW100 := %I1.0:16 ; END_IF ; IF RE %I3.3 THEN %M100:16 := %KW0 ; END_IF ; ex 1 ex 2 ex 3
Op1:=Op2
Operando 2 (Op2) %M:L,%Q:L,%I:L, %Xi:L %MW,%KW Val.inm.,%IW,%QW,%SW %NW,%BLK, %Xi.T, Expr. num. %MD,%KD Val.inm.,%ID,%QD,%SD Expr. numrica
Reglas de utilizacin No es forzosamente idntica la longitud de las tablas de bits origen y destino. Cuando la tabla origen es ms larga que la destino, slo se transfieren los bits menos significativos. En el caso contrario, la tabla de destino se completa con ceros. Cuando se trata de una asignacin tabla de bits -> palabra (o doble palabra ), los bits de la tabla se transfieren a la palabra (los menos significativos para una doble palabra) desde la derecha (primer bit de la tabla en el bit 0 de la palabra ). Los bits de palabra no implicados en la transferencia (longitud<16 o 32) se ponen a 0. Cuando se trata de una asignacin palabra -> tabla de bits, los bits de la palabra se transfieren desde la derecha (el bit 0 de la palabra en el primer bit de la tabla).
___________________________________________________________________________ 1/21
Asignacin de palabras Se pueden realizar en las palabras las operaciones de asignacin siguientes: palabra (indexada) -> palabra (indexada) o doble palabra (indexada) ej. 1 doble palabra (indexada) -> doble palabra (indexada) o palabra (indexada) ej. 2 valor inmediato -> palabra (indexada) o doble palabra (indexada) ej. 3 Estructura Lenguaje de contactos Lenguaje Lista de instrucciones
LD TRUE [%SW112 := %MW100] LD %I3.2 [%MD0:= %KD0[%MW20] ] ex 1 ex 2
Op1:=Op2
Operando 2 (Op2) %MW,%KW Val.inm.,%IW,%QW,%SW %NW,%BLK, %Xi.T, Expr. num. %MD,%KD Val.inm.,%ID,%QD,%SD Expr. numrica
Observacin Las conversiones palabra <--> doble palabra se efectan implcitamente durante la asignacin doble palabra --> palabra. Si la palabra no puede contener el valor de la doble palabra , el bit %S18 se pone a 1. Se pueden realizar asignaciones mltiples. Ejemplo: %MW0 := %MW2 := %MW4 Atencin, en el ejemplo %MD14 := %MW10 := %MD12, el resultado no es necesariamente %MD14 := %MD12, ya que en la asignacin a %MW10, se pierden bits ms significativos de la doble palabra por causa de la conversin doble palabra - simple palabra. ___________________________________________________________________________ 1/22
B
1.4-4 Instrucciones aritmticas con enteros Estas instrucciones permiten realizar una operacin aritmtica entre dos operandos o en un operando. + : suma de dos operandos, - : resta de dos operandos, * : multiplicacin de dos operandos, / : divisin de dos operandos, REM : resto de la divisin de 2 operandos. Estructura Lenguaje de contactos
%M0 %MW0:=%MW10+100 %I3.2 %MW0:=SQRT(%MW10) %I3.3 P INC %MW100
SQRT : raz cuadrada de un operando, INC : aumento de un operando, DEC : %Tmi disminucin de un operando, ABS : valor absoluto de un operando.
Sintaxis Operadores +,-,*,/,REM SQRT, ABS INC, DEC Op1:=Op2 Operador Op3 Op1:= Operador (Op2) Operador Op1
___________________________________________________________________________ 1/23
B
Operandos
Tipo Palabras indexables Palabras no indexables Dobles palabras indexables Dobles palabras no indexables Operando 1 %MW %QW,%SW,%NW, %BLK %MD %QD,%SD, (Op1) Operandos 2 y 3 (Op2 y 3) %MW,%KW Val.inm.,%IW,%QW,%SW %NW,%BLK,%Xi.T,Expr. num. %MD,%KD Val.inm.,%ID,%QD,%SD Expr. numrica
Reglas de utilizacin Suma: rebasamiento de capacidad durante la operacin Si el resultado excede los lmites: - -32768 o +32767 para un operando de simple longitud, - -2 147 483 648 o +2 147 483 647 para un operando de doble longitud, el bit %S18 (overflow) se pone a 1. El resultado es pues no significativo. La gestin del bit %S18 se efecta en el programa de usuario. Ejemplo: Lenguaje de contactos
%M0 %MW0:=%MW1+%MW2 %S18 %MW10:=%MW0 %S18 %MW10:=32767 %S18 R
Si %MW1 =23241 y %MW2=21853, el resultado real (45094) no puede expresarse en una palabra de 16 bits. El bit %S18 se pone a 1 y el resultado obtenido (-20442) es errneo. En este ejemplo, cuando el resultado es superior a 32767, su valor se fija a 32767. ___________________________________________________________________________ 1/24
B
Multiplicacin: Rebasamiento de capacidad durante la operacin. Si el resultado excede la capacidad de la palabra de almacenamiento, el bit %S18 (overflow) se pone a 1 y el resultado es no significativo. Divisin/resto de la divisin: Divisin por 0. Si el divisor es igual a 0, la divisin es imposible y el bit sistema %S18 se pone a 1. El resultado es pues errneo. Rebasamiento de capacidad durante la operacin. Extraccin de la raz cuadrada: La extraccin de la raz cuadrada se efecta slo en valores positivos. El resultado es pues siempre positivo. Si el operando de la raz cuadrada es negativo, el bit sistema %S18 se pone a 1 y el resultado es errneo.
Nota Cuando el resultado de una operacin no es un entero (caso de una divisin o de una raz cuadrada), el resultado se trunca (se redondea al prximo entero inferior). El signo del resto de la divisin (REM) es el del numerador. El programa de usuario se encarga de la gestin del bit sistema %S18. El autmata lo pone a 1; el programa debe ponerlo a cero para que pueda ser reutilizado (vase el ejemplo en la pgina previa).
1.4-5 Instrucciones lgicas Las instrucciones asociadas permiten realizar una operacin lgica entre dos operandos o en un operando. AND OR XOR NOT : : : : Y (bit a bit) entre dos operandos, O lgica (bit a bit) entre dos operandos, O exclusiva (bit a bit) entre dos operandos, complemento lgico (bit a bit) de un operando.
Lenguaje Lista de instrucciones LD %M0 [%MW0 := %MW10 AND 16#FF00] LD TRUE [%MW0 := %KW5 OR %MW10] LD %I1.3 [%MW102:= NOT %MW100]
___________________________________________________________________________ 1/25
B
Lenguaje Literal estructurado
IF %M0 THEN %MW0 := %MW10 AND 16#FF00 ; END_IF ; %MW0 := %KW5 OR %MW10 ; IF %I1.3 THEN %MW102 := NOT %MW100 ; END_IF ;
Operandos
Tipo Palabras indexables Palabras no indexables Dobles palabras indexables Dobles palabras no indexables Operando 1 %MW %QW,%SW,%NW, %BLK %MD %QD,%SD (Op1) Operandos 2 y 3 (Op2 y 3) %MW,%KW Val.inm.,%IW,%QW,%SW %NW,%BLK,%Xi.T,Expr. num. %MD,%KD Val.inm.,%ID,%QD,%SD Expr. numrica
___________________________________________________________________________ 1/26
B
La expresin numrica se compone de varios operandos numricos y de operadores aritmticos y lgicos descritos previamente. Ejemplo: %MW25 * 3 - SQRT(%MW10) + %KW8* (%MW15 + %MW18) AND 16#FF No se limita el nmero de operadores y operandos de una expresin aritmtica. Expresin numrica para objetos enteros Los operandos de una misma expresin numrica pueden ser sin distincin de simple o doble longitud: Ejemplo: %MW6 * %MW15 + SQRT(%DW6) / (%MW149[%MW8]) + %KD29) AND 16#FF Un operando o una operacin de un solo operando puede venir precedido del signo + o - (signo predeterminado: +). Ejemplo: SQRT (%MW5) * - %MW9 Todos los objetos palabras pueden utilizarse dentro de una expresin aritmtica. Es posible la indexacin de ciertas palabras. Prioridad de ejecucin de las instrucciones En la expresin numrica, se respeta la prioridad de las instrucciones. La ejecucin se efecta en esta orden: 1 -> Instruccin con un operando 2 -> * / REM 3 + -> 4 -> <,> <=,>= 5 = <> -> 6 -> AND 7 -> XOR 8 OR
En el ejemplo siguiente, la ejecucin se realiza en el orden de la numeracin: SQRT (%MW3) + %MW5 * 7 AND %MW8 OR %MW5 XOR %MW10 1 3 4 6 Parntesis Los parntesis permiten modificar el orden de evolucin de las prioridades. Se aconseja su uso para estructurar las expresiones numricas. ((%MW5 AND %MW6) + %MW7) * %MW8 1 2 3 ___________________________________________________________________________ 1/27 5 2
1.5
Instrucciones de programa
1.5-1 Llamada a un subprograma La instruccin de llamada a un subprograma permite llamar a un mdulo de subprograma situado en la misma tarea. Estructura Lenguaje de contactos
%M8 SR10 C
SRi representa el mdulo de subprograma llamado: i (variable de 0 a 253). Reglas Para efectuar una llamada a un subprograma, es necesario crear previamente el mdulo de subprograma. Se regresa del subprograma con la accin que viene inmediatamente despus de la instruccin de llamada al subprograma. Un subprograma puede llamar a otro subprograma; el nmero de llamadas en cascada se limita a 8. Los subprogramas se asignan a una tarea; slo pueden llamarse desde una misma tarea.
Principio
Mdulo de subprograma SR 10 Call SR 10 Mdulo de subprograma SR 12
Call SR 12
Call SR 10
___________________________________________________________________________ 1/28
B
La instruccin de regreso de subprograma se reserva para los mdulos de subprograma. Permite regresar hacia el mdulo que llama, si el resultado booleano de la instruccin de prueba previa es 1. Estructura Lenguaje de contactos
%M8 <RETURN>
Regla de utilizacin La instruccin de regreso del subprograma se realiza implcitamente al final de cada subprograma, pero puede ser utilizada para regresar al mdulo que llama antes del fin de subprograma. Ejemplo Lenguaje de contactos Lenguaje Lista de instrucciones
LD [%MW5>3] RETC LD %M8 [%MD26:=%MW4*%KD6]
%MW5>3 %M8
<RETURN>
%MD26:=%MW4*%KD6
El lenguaje Lista de instrucciones contiene las instrucciones adicionales siguientes: RETCN: regreso del subprograma, si el resultado booleano de la instruccin de prueba previa es 0. RET: regreso incondicional. ___________________________________________________________________________ 1/29
B
1.5-3 Salto de programa Las instrucciones de salto permiten desviar a una lnea de programacin marcada de una etiqueta %Li. JMP: salto incondicional. JMPC: salto si el resultado booleano de la instruccin de prueba previa es 1. JMPCN: salto si el resultado booleano de la instruccin de prueba previa es 0. %Li representa la etiqueta de la lnea en la que se efecta la desviacin (i = una variable de 1 a 999 con un mximo de 256 etiquetas). Estructura Lenguaje de contactos
%M8 %L10 >> %I1.0 %Q2.5
%M5 %Q2.1
___________________________________________________________________________ 1/30
B
Lenguaje Lista de instrucciones
LD JMPCN LDN ST .............. %L20 : LD ST %M2 %L20 %I2.0 %Q3.5 %M30 %M6
%L20 %M30
%M6
Lenguaje de contactos
%L40 >> %L20 %I2.1
%Q3.5
%L40 %M20
%M5
___________________________________________________________________________ 1/31
B
Reglas Un salto de programa se efecta dentro de una misma entidad de programacin (mdulo principal de una tarea maestra MAIN, subprograma %SRi, ...). Un salto de programa se efecta hacia una lnea de programacin situada arriba o abajo. Si se trata de un salto hacia arriba, el tiempo de ejecucin del programa se extiende y puede tener como consecuencia el rebasamiento del perodo de la tarea que incluye el salto.
1.5-4 Instrucciones de fin de programa Las instrucciones END, ENDC y ENDCN permiten definir el fin de ejecucin del ciclo de programa. END: fin de programa incondicional. ENDC: fin si el resultado booleano de la instruccin de prueba previa es 1. ENDCN: fin si el resultado booleano de la instruccin de prueba previa es 0. De forma predeterminada (modo normal), cuando se activa el fin de programa, se actualizan las salidas y se pasa al ciclo siguiente. Si la exploracin es peridica, se espera el fin de perodo, se actualizan las salidas y se pasa al ciclo siguiente.
Nota Estas instrucciones pueden utilizarse nicamente en el lenguaje Lista de instrucciones en la tarea maestra.
Si %I1.2 =1, fin de exploracin de programa. Si %I1.2 =0, sigue explorando el programa hasta la nueva instruccin END.
___________________________________________________________________________ 1/32
B
1.5-5 Parada de programa La instruccin HALT en un programa de aplicacin permite detener la ejecucin del programa (parada de todas las tareas), lo que tiene como efecto la inmovilizacin de los objetos variables del programa. Para que se ejecute de nuevo el programa parado, es necesario inicializarlo (mediante el comando INIT de PL7). No se ejecutarn las instrucciones que vienen despus de la instruccin HALT. Estructura Lenguaje de contactos
%M10 <HALT>
___________________________________________________________________________ 1/33
B
1.5-6 Instrucciones de enmascaramiento/desenmascaramiento de sucesos Estas instrucciones permiten enmascarar o desenmascarar todos los sucesos que aseguran la activacin de las tareas de suceso. MASKEVT: enmascaramiento global de sucesos. El autmata almacena los sucesos. En cambio, las tareas de suceso asociadas permanecen inactivas durante la validez de la operacin de enmascaramiento (hasta la prxima instruccin UNMASKEVT). UNMASKEVT: desenmascaramiento global de sucesos. Se tratan los sucesos almacenados durante el perodo de enmascaramiento. El mecanismo de tratamiento de sucesos permanece operacional hasta la prxima instruccin MASKEVT. Estructura Lenguaje de contactos
%M0 MASKEVT ( ) %M8 UNMASKEVT ( )
1.5-7 Instruccin NOP La instruccin NOP no efecta ninguna accin. Permite "reservar" lneas en un programa y as escribir instrucciones sin modificar los nmeros de lnea.
___________________________________________________________________________ 1/34
22 B
Observaciones sobre la programacin Las instrucciones de tipo Funcin implican una ocupacin de memoria de aplicacin adicional (pero slo cuando se utilizan realmente en el programa). El programador debe tener en cuenta el espacio de memoria de cada funcin independientemente del nmero de veces que se utilizan y en conformidad con el tamao mximo de memoria del autmata utilizado.
___________________________________________________________________________ 2/1
B
2.2 Bloques de funcin predefinidos avanzados
2.2-1 Bloque de funcin monoestable %MNi El bloque de funcin monoestable permite elaborar un impulso de duracin precisa. Esta duracin es programable y puede ser modificada o no desde el terminal.
%MNi S TB: 1mn MN.P:9999 MODIF:Y R
Valor de preseleccin
%MNi.P
Modificacin MODIF
Y/N
S (Start) R (Running)
Funcionamiento Cuando aparece un estado 1 (flanco ascendente) en la entrada S del monoestable, el valor actual %MNi.V toma el valor de preseleccin %MNi.P y disminuye hacia 0 en una unidad a cada impulso de la base de tiempo TB. El bit de salida %MNi.R (Running) asociado a la salida R se pone a 1 cuando el valor actual %MNi.V es distinto de 0. Cuando el valor actual %MNi.V = 0, el bit de salida %MNi.R se pone a 0. Entrada "inicio" S: Valor actual %MNi.V: Salida "en curso" R:
S %MNi.P %MNi.V R PRESET PRESET PRESET
___________________________________________________________________________ 2/2
B
Programacin y configuracin Ejemplo de utilizacin: intermitente con perodos cclicos variables, el valor de preseleccin del monoestable define la duracin del impulso.
%Q3.0 5s 2s 5s 2s
Configuracin Los parmetros siguientes se introducen en el editor de variables: - TB: 1 min, 1 s, 100 ms, 10 ms o 1 ms (en este ejemplo, 100 ms ) - %MNi.P: 0 a 9999 (en este ejemplo, %MN0.P=50 y %MN1.P=20) - MODI: Y o N
%M0:=NOT %MN1.R ; IF RE %M0 THEN START %MN0 ; END_IF ; %Q3.0:= %MN0.R ; %M1:= NOT %MN0.R ; IF RE %M1 THEN START %MN1 ; END_IF ;
En este ejemplo, la salida %Q3.0 se pone a 1 durante 5 s (%MN0.P) y luego se pone a 0 durante 2 s (%MN1.P). En el Literal estructurado, la instruccin START %Mni permite activar la ejecucin del bloque monoestable. Esta instruccin fuerza un flanco ascendente en la entrada S del bloque, lo que tiene como consecuencia la reinicializacin del bloque de funcin. Por consiguiente, el uso de esta instruccin debe ser impulsivo. ___________________________________________________________________________ 2/3
Observacin La funcin monoestable puede tambin ser realizada por el bloque de funcin %TMi en modo TP (vase la seccin B, captulo 1.3-2).
Casos especficos Incidencia de un arranque en fro: (%S0 = 1) tiene como consecuencia la carga del valor de preseleccin %MNi.P en el valor actual %MNi.V. Puesto que se pierde el valor de preseleccin eventualmente modificado por el terminal, la salida %MNi.R se pone a 0. Incidencia de un rearranque en caliente: (%S1) no tiene incidencia en el valor actual del monoestable (%MNi.V). Incidencia de un paso en STOP, una desactivacin de tarea y un punto de parada: el paso en STOP del autmata no inmoviliza el valor actual. Ocurre lo mismo, cuando se desactiva la tarea en curso o se ejecuta un punto de parada. Incidencia de un salto de programa: el hecho de no explorar la red donde se programa el bloque monoestable no inmoviliza el valor actual %MNi.V que sigue disminuyendo hacia 0. Asimismo, el bit %MNi.R asociado a la salida del bloque monoestable conserva su funcionamiento normal y puede ser probado en otra red. En cambio, las bobinas directamente "conectadas" a la salida del bloque (ej. %Q3.0) no se activan, ya que el autmata no las explora. Prueba del bit %MNi.R: este bit puede cambiar de estado en curso del ciclo.
___________________________________________________________________________ 2/4
Caractersticas
Nmero de registro Modo Longitud Palabra de entrada Palabra de salida Entrada (o instruccin) "Almacenamiento" Entrada (o instruccin) "Desalmacenamiento" Entrada (o instruccin) "Puesta a cero" Salida "Vaco" Salida "Lleno" %Ri FIFO LIFO LEN %Ri.I %Ri.O I (In) O (Out) R (Reset) E (Empty) F (Full) 0 a 3 para un TSX 37, 0 a 254 para un TSX 57 Cola de espera (seleccin predeterminada). Pila. Nmero de palabras de 16 bits (1< LEN< 255) que componen el bloque de memoria registro. Palabra de acceso al registro. Puede ser leda, probada y escrita. Palabra de salida del registro. Puede ser leda, probada y escrita. En el flanco ascendente, almacena el contenido de la palabra %Ri.I en el registro. En el flanco ascendente, almacena una palabra de informacin en la palabra %Ri.O. En el estado 1, inicializa el registro. El bit %Ri.E asociado indica que el registro est vaco. Puede ser probado. El bit %Ri.F asociado indica que el registro est lleno. Puede ser probado.
Nota Cuando las dos entradas I y O se activan simultneamente, el almacenamiento se realiza antes del desalmacenamiento.
___________________________________________________________________________ 2/5
Funcionamiento FIFO (First In, First Out) La primera informacin introducida es la primera en salir. Cuando se tiene en cuenta una peticin de entrada (flanco ascendente en la entrada I o activacin de la instruccin I), el contenido de la palabra de entrada %Ri.I previamente cargada se almacena en lo alto de la cola (Fig. a). Si la cola est llena (salida F=1), es imposible almacenar y el bit sistema %S18 pasa a1. Cuando se tiene en cuenta una peticin de salida (flanco ascendente en la entrada O o activacin de la instruccin O), la palabra de informacin que se encuentra en el fondo de la cola se almacena en la palabra de salida %Ri.O y el contenido del registro se desplaza un paso hacia abajo (Fig. b). Si el registro est vaco (salida E=1), es imposible desalmacenar; la palabra de salida %Ri.O ya no evoluciona y conserva su valor. La cola puede reinicializarse en todo momento (estado 1 en la entrada R o activacin de la instruccin R). LIFO (Last In, First Out) La ltima informacin introducida es la primera en salir. Cuando se tiene en cuenta una peticin de entrada (flanco ascendente en la entrada I o activacin de la instruccin I), el contenido de la palabra de entrada %Ri.I previamente cargada se almacena en lo alto de la pila (Fig. c). Si la pila est llena (salida F=1), es imposible almacenar y el bit sistema %S18 pasa a1. Cuando se tiene en cuenta una peticin de salida (flanco ascendente en la entrada O o activacin de la instruccin O), la palabra de informacin que se encuentra en lo alto de la pila (ltima informacin introducida) se almacena en la palabra %Ri.O (Fig. d). Si el registro est vaco (salida E=1), es imposible desalmacenar; la palabra de salida %Ri.O ya no evoluciona y conserva su ltimo valor. La pila puede reinicializarse en todo momento (estado 1 en la entrada R o activacin de la instruccin R). El elemento indicado est en lo alto de la pila.
20 %Ri.I (a) 20 80 50
20 80 50 20 80
(b) %Ri.0 50
20 %Ri.I (c) 20 80 50
%Ri.0 20 80 50 80 50 20 (b)
___________________________________________________________________________ 2/6
El modo de funcionamiento (FIFO o LIFO) se introduce en el editor de variables. Programacin Lenguaje de contactos
%R2 R %M1 I %I1.3 O %I1.3 %R2.E %MW20:=%R2.O %I1.2 %R2.F %R2.I:=%MW34 %M1 MOD : LEN : E F
El ejemplo de programa muestra la carga de %R2.I por la palabra %MW34 a peticin de la entrada %I1.2, si el registro R2 no est lleno (%R2.F=0). %M1 asegura la peticin de entrada en el registro. La peticin de salida se efecta por la entrada %I1.3. El almacenamiento de %R2.O en %MW20 se realiza si el registro no est vaco (%R2.E=0). ___________________________________________________________________________ 2/7
B
En el lenguaje Literal estructurado, 3 instrucciones permiten programar los bloques de funcin registro: RESET %Ri : inicializa el registro, PUT %Ri : almacena el contenido de la palabra %Ri.I en el registro, GET %Ri : almacena una palabra de informacin en la palabra %Ri.O. Las instrucciones PUT y GET realizan un flanco ascendente respectivamente en las entradas I y O del bloque de funcin. Por consiguiente, el uso de estas instrucciones debe ser impulsivo. Casos especficos Incidencia de un arranque en fro: (%S0=1) tiene como consecuencia la inicializacin del contenido del registro. El bit de salida %Ri.E asociado a la salida E se pone a 1. Incidencia de un rearranque en caliente: (%S1=1) no tiene incidencia en el contenido del registro ni en el estado de los bits de salida. Al poner a 0 (entrada R o instruccin R): - en el lenguaje de contactos, los historiales de las entradas I y O se actualizan con los valores cableados. - en el lenguaje Lista de instrucciones, los historiales de las entradas I y O no se actualizan; cada uno conserva el valor anterior a la llamada. - en el lenguaje Literal estructurado, los historiales de las entradas I y O se actualizan con 0.
___________________________________________________________________________ 2/8
Caractersticas
Nmero Nmero de pasos Base de tiempo Tiempo transcurrido o duracin del paso en curso Nmero del paso en curso Entrada "regreso al paso 0" Entrada "avance" Salida %DRi LEN TB %DRi.V 0 a 7 para un TSX 37, 0 a 254 para un TSX 57 De 1 a 16 (valor predeterminado: 16). 1 min, 1 s, 100 ms, 10 ms (valor predet.: 1min). 0<%DRi.V<9999. Palabra puesta a 0 cada vez que se cambia de paso. Puede ser leda y probada, pero no escrita. La duracin es igual a %DRi.V x TB. 0<%DRi.S<15. Palabra que puede ser leda y probada.. Slo puede ser escrita a partir de un valor inmediato. En el estado 1, inicializa el programador al paso 0. En el flanco ascendente, avanza de un paso el programador y actualiza los bits de comando. Indica que el ltimo paso definido est en curso. El bit %DRi.F asociado puede ser probado (%DRi.F=1 si %DRi.S=nmero de pasos configurados - 1). Palabra de 16 bits que define los estados del paso j del programador i. Puede ser leda y probada, pero no escrita. Salidas o bits internos asociados al paso (16 bits de comando).
%DRi.S
Estado de un paso
%DRi.Wj
Bits de comando
___________________________________________________________________________ 2/9
Funcionamiento El programador cclico se compone de: una matriz de datos constantes (las levas) organizada en columnas: en pasos de 0 a N-1 (con N el nmero de pasos configurados). Cada columna indica los estados del paso bajo forma de 16 informaciones binarias marcadas de 0 a F. una lista de bits de comando (1 por lnea) que corresponden a salidas %Qxy.i o a bits internos %Mi. Durante el paso en curso, los bits de comando toman los estados binarios definidos para el paso. La tabla siguiente resume las caractersticas principales del programador cclico (programador configurado con 16 pasos). Paso
Bit
Bits de comando
En este ejemplo, para el paso 1, los bits de comando %Q2.1;%Q3.5; %Q2.8;%Q3.6;%M5 y %M6 se ponen a 1, los dems bits de comando se ponen a 0. El nmero del paso en curso se aumenta en cada flanco ascendente en la entrada U (o activacin de la instruccin U). Este nmero puede ser modificado desde el programa. Diagrama de funcionamiento
Entrada Entrada Npaso Salida U: R: %DRi.S %DRi.F 0 1 2 3 N-1 0 1 2 0 1
___________________________________________________________________________ 2/10
B
Programacin y configuracin En este ejemplo, las 5 primeras salidas %Q2.0 a %Q2.4 se activan una tras otra cada vez que la entrada %I1.1 se pone a 1. La entrada I1.0 reinicializa las salidas al paso 0. Configuracin Las informaciones siguientes se definen en el editor de variables: - nmero de pasos: 5 (LEN:5), - los estados de las salidas (bits de comando) para cada paso del programador. Paso 01234 10000 01000 00100 00010 00001 Asignacin de bits de comando %Q2.0 %Q2.1 %Q2.2 %Q2.3 %Q2.4
Bit
0: 1: 2: 3: 4:
- base de tiempo (TB:1 min). Programacin Lenguaje de contactos Lenguaje Lista de instrucciones
LD R LD U LD ST %I1.0 %DR1 %I1.1 %DR1 %DR1.F %Q2.8
%I1.0
R
%DR1
F
%Q2.8
%I1.1
%TB:1 mn
U
LEN:5
En el lenguaje Literal estructurado, 2 instrucciones permiten programar los bloques de funcin del programador cclico: RESET %DRi : inicializa el programador al paso 0, UP %DRi : avanza de un paso del programador actualiza los bits de comando. Esta instruccin realiza un flanco ascendente en la entrada U del bloque de funcin; por consiguiente, su uso debe ser impulsivo. ___________________________________________________________________________ 2/11
Observacin En la puesta a 0 (entrada R, instruccin R o instruccin RESET): en el lenguaje de contactos, el historial de la entrada U se actualiza con los valores cableados. en el lenguaje Lista de instrucciones, el historial de la entrada U no se actualiza; conserva el valor anterior a la llamada. en el lenguaje Literal estructurado, el historial de U se actualiza con 0.
Casos especficos Incidencia de un arranque en fro: (%S0=1) tiene como consecuencia la reinicializacin del programador al paso 0 (con la actualizacin de los bits de comando). Incidencia de un rearranque en caliente: (%S1=1) tiene como consecuencia la actualizacin de los bits de comando segn el paso en curso. Incidencia de un salto de programa, una desactivacin de tarea y un punto de parada: el hecho de no explorar el programador cclico no pone los bits de comando a 0. Actualizacin de bits de comando: se efecta slo al cambiar de paso o al arrancar en fro o en caliente.
___________________________________________________________________________ 2/12
Bloque temporizador
Caractersticas
Nmero Base de tiempo Valor actual %Ti TB %Ti.V 0 a 63 para un TSX 37, 0 a 254 para un TSX 57 1 min, 1 s, 100 ms, 10 ms (valor predet.: 1min)). Palabra que disminuye en %Ti.P hacia 0 en el transcurso del temporizador. Puede ser leda y probada, pero no escrita. 0 < %Ti.P < 9999. Palabra que puede ser leda, probada y escrita. De forma predeterminada, se pone al valor 9999. La duracin es igual a %Ti.P*TB. Y: posibilidad de modificar el valor de preseleccin en modo de ajuste. N: sin acceso en modo de ajuste. En el estado 0, reinicializa el temporizador %Ti.V = %Ti.P. En el estado 0, inmoviliza el valor actual %Ti.V. El bit asociado %Ti.D = 1, si el temporizador transcurrido %Ti.V = 0. El bit asociado %Ti.R = 1, si el temporizador %Ti.P > %Ti.V > 0 y si la entrada C = 1.
Valor de preseleccin
%Ti.P
Modificacin MODIF
Y/N
Entrada "Activacin" Entrada "Control" Salida "Temporizador transcurrido" Salida "Temporizador en curso"
Nota Los bloques de funcin %Ti no son programables en Lista de instrucciones. En cambio, es posible acceder a los objetos de bloques %Ti (%Ti.V, %Ti.P, %Ti.D y %Ti.R). El nmero total %TMi + %Ti debe ser inferior a 64 en el TSX 37 y 255 en el TSX 57.
___________________________________________________________________________ 2/13
B
Funcionamiento El temporizador evoluciona cuando sus 2 entradas (E y C) estn en el estado 1. Funciona como un descontador. El valor actual %Ti.V disminuye desde la preseleccin %Ti.P hacia 0 en una unidad a cada impulso de la base de tiempo TB. El bit de salida %Ti.R (temporizador en curso) asociado a la salida R est en el estado 1; el bit de salida %Ti.D (temporizador transcurrido) asociado a la salida D est en el estado 0. Cuando el valor actual %Ti.V= 0, %Ti.D se pone a 1 y %Ti.R se pone a 0. Casos tpicos Segn su programacin, el bloque de funcin "temporizador" puede realizar las funciones siguientes: Retardo a la conexin Lenguaje de contactos
%I1.0 = E,C R PRESET D = %Q2.0 PRESET
0 0 %Ti.V = %Ti.P 0 0
0 1
1 0
1 1
%Ti.V %Ti.V %Ti.V = inmov. disminuye de %Ti.P %Ti.P -> 0 0 0 0 0 1 si tempo. transcurrido 1 si Tempo en curso
%I1.0
E
%T0
D
%Q2.0
TB =1mn C R %Ti.P = 3
MOD:N
___________________________________________________________________________ 2/14
%I1.1
E
%T7
D TB =1s
%Q2.1
R
D %Q2.1
PRESET
%Ti.P = 120
MOD:N
%I1.2
E
%T5
D
%Q2.4 %Q2.5
%I1.3
TB =1mn C R %Ti.P = 3
D1
D2
D3
MOD:N
___________________________________________________________________________ 2/15
%I1.0
E
%T12
D
%Q2.4
E %I1.1 C
%I1.1
TB =10mn C R %Ti.P = 40
MOD:Y
R D
D1
D2
D3
%Q2.1
PRESET = D1 + D2 + D3
En el lenguaje Literal estructurado, 3 instrucciones permiten programar los bloques de funcin temporizador %Ti: PRESET %Ti : reinicializa el temporizador, START %Ti : provoca el transcurrido del temporizador, STOP %Ti : inmoviliza el valor actual del temporizador. Casos especficos Incidencia de un arranque en fro: (%S0 = 1) tiene como consecuencia la carga del valor de preseleccin (definido por el editor de variables) en el valor actual y la puesta a 0 de la salida %Ti.D. Se pierde el valor de preseleccin eventualmente modificado en el terminal. Incidencia de un rearranque en caliente: (%S1) no tiene incidencia en el valor actual del temporizador. Incidencia de un paso en STOP: no inmoviliza el valor actual. Ocurre lo mismo, cuando la tarea en curso se desactiva o un punto de parada se ejecuta. Incidencia de un salto de programa: el hecho de no explorar la red donde se programa el bloque temporizador no inmoviliza el valor actual %Ti.V que sigue disminuyendo hacia 0. Asimismo, los bits %Ti.D y %Ti.R asociados a las salidas D y R del bloque temporizador conservan su funcionamiento normal y pueden probarse en otra red. En cambio, no se activarn las bobinas directamente "conectadas" a las salidas del bloque ya que el autmata no las explora. Prueba de los bits %Ti.D y %Ti.R: estos bits pueden cambiar de estado en curso del ciclo. ___________________________________________________________________________ 2/16
B
El bloque de comparacin vertical permite efectuar la comparacin entre 2 operandos (OP). Estos operandos son de tipo palabra de 16 bits (indexada o no) o de tipo valor inmediato.
Caractersticas
Entrada de control Salida "Superior" Salida "Igual" Salida "Inferior" Salida "Diferente" Operando n1 Operando n2 EN > = < <> OP1 OP2 Enelestado 1, compara dos operandos. En el estado 1, si el contenido de OP1 es superior al contenido de OP2. En el estado 1, si el contenido de OP1 es igual al contenido de OP2. En el estado 1, si el contenido de OP1 es inferior al contenido de OP2. En el estado 1, si el contenido de OP1 es diferente del contenido de OP2. Este operando es un objeto palabra de simple longitud (puede ser indexado). Este operando es un objeto palabra de simple longitud (puede ser indexado).
___________________________________________________________________________ 2/17
B
Funcionamiento La puesta a 1 de la entrada de comando permite comparar dos operandos. Las cuatro salidas se activan en funcin del resultado de la comparacin. La puesta a 0 de la entrada de comando tiene como consecuencia la puesta a 0 de las salidas activas. Ejemplo de utilizacin El programa siguiente muestra la comparacin de la palabra %MW2 indexada por la palabra %MW40 y del valor inmediato 150. Si el contenido de %MW2[%MW40] es superior a 150 y si %I1.3 = 1, se controla la bobina %Q2.7. Si el contenido es igual a 150, se controla la bobina %MW10:X4. La bobina %M5 se controla slo si el contenido es distinto de 150 (< o >). Lenguaje de contactos
%I1.3
EN >
%Q2.7 %MW10:X4
%MW2 = [%MW40]
< 150 <>
Este bloque de funcin no existe en el lenguaje Lista de instrucciones. Se utilizan las operaciones de comparacin >, <, =.
%M5
Casos especficos Incidencia de un arranque en fro: (%S0) tiene como consecuencia la puesta a cero del operando OP1 y posiblemente la del OP2 (si OP2 es una palabra interna). Dependiendo de la comparacin, las salidas se activan con los nuevos valores. Incidencia de un rearranque en caliente: (%S1) no tiene incidencia en el bloque de comparacin.
___________________________________________________________________________ 2/18
B
Estas instrucciones desplazan los bits de un operando palabra o doble palabra un cierto nmero de posiciones a la derecha o a la izquierda. Desplazamiento lgico: - SHL(op2,i) desplazamiento lgico i posiciones a la izquierda. - SHR(op2,i) desplazamiento lgico i posiciones a la derecha. Desplazamiento circular: - ROL(op2,i) posiciones a - ROR(op2,i) posiciones a desplazamiento circular i la izquierda. desplazamiento circular i la derecha.
0 %S17 15 (or 31) 0
%S17
Si el operando que se va a desplazar es uno de simple longitud, la variable i estar comprendido entre 1 y 16. Si el operando que se va a desplazar es uno de doble longitud, la variable i estar comprendido entre 1 y 32. El estado del ltimo bit salido se almacena en el bit %S17. Estructura Lenguaje de contactos
%I1.1 P %I1.2 P %MW10:=ROR(%KW9,8) %MW0:=SHL(%MW10,5)
%S17
Op1:=Operador (Op2,i)
(Op1)
2.5
2.5-1 Generalidades El programa PL7 permite efectuar operaciones en objetos flotantes. Se utiliza el formato flotante de la norma IEEE STD 734-1985 (equivalencia IEC 559). La longitud de las palabras es de 32 bits; corresponde a nmeros flotantes de simple precisin. Los valores flotantes se pueden representar con o sin exponentes, y siempre deben contener un punto (coma flotante). Ejemplos de valores flotantes sin exponente: 1285.28 con exponente: 1.28528e3 Los valores flotantes estn comprendidos entre -3.402824e+38 y -1.175494e-38, y 1.175494e-38 y 3.402824e+38 (valores en gris en el esquema) y comprenden tambin el valor 0 con la notacin 0.0.
-1.#INF -3.402824e+38 -1.#DN 1.#DN 1.#INF
-1.175494e-38
+1.175494e-38
+3.402824e+38
Cuando el resultado de un clculo est comprendido entre -1.175494e-38 y 1.175494e38, se redondea a 0. Un valor comprendido entre estos lmites no se puede introducir como flotante; si se introduce en otro formato, en flotante se visualizar el smbolo 1.#DN o - 1.#DN. Cuando el resultado de un clculo es: inferior a -3.402824e+38, se visualiza el smbolo -1.#INF (para -infinito) superior a +3.402824e+38, se visualiza 1.#INF (para + infinito). Cuando se define el resultado de una operacin (ejemplo: raz cuadrada de un nmero negativo) se visualiza el smbolo 1.#NAN o -1.#NAN. El bit sistema %S18 se pone a 1 cuando el resultado no est comprendido entre los lmites vlidos. Los bits de la palabra de estado %SW17 indican la causa de una falla en una operacin flotante: %SW17:X0 = operacin invlida, el resultado no es un nmero (1.#NAN o -1.#NAN) %SW17:X1 = operando no normalizado (comprendido entre -1.175494e-38 y 1.175494e-38), el resultado se redondea a 0. %SW17:X2 = divisin entre 0, el resultado es infinito (-1.#INF o 1.#INF) %SW17:X3 = resultado superior en valor absoluto a +3.402824e+38, el resultado es infinito (-1.#INF o 1.#INF) %SW17:X4 = resultado inferior a 1.175494e-38, el resultado es 0. %SW17:X5 = imprecisin sobre el resultado El sistema pone a 0 esta palabra en el arranque en fro o esta puesta a 0 la realiza el programa con miras a su reutilizacin. ___________________________________________________________________________ 2/20
B
La precisin de representacin es de 2 . En la visualizacin de nmeros flotantes, es intil mostrar ms de 6 dgitos despus de la coma. Observaciones El valor "1285" se interpreta como valor entero. Para que se acepte como valor flotante, debe escribirse: "1285.0". Las instrucciones de conversin Entero <--> Flotante permiten pasar de un formato a otro. Direccionamiento de objetos flotantes
Abreviaciones Val. inm. %MF %KF Direccionamiento completo %MFi %KFi Tipo de flotante valores inmediatos flotante interno constante flotante Acceso R R/W R Forma indexada %MFi[%MWj] %KFi[%MWj]
Posibilidad de solapamiento entre objetos Las palabras de simple, doble longitud y flotantes se almacenan en el espacio de datos de una misma rea de memoria. As, la palabra flotante %MFi corresponde a las palabras de simple longitud %MWi y %MWi+1 (la palabra %MWi contiene los caracteres menos significativos y la palabra %MWi+1 los ms significativos de la palabra %MFi). Ejemplos: %MF0 corresponde a %MW0 y %MW1 %KF543 a %KW543 y %KW544.
___________________________________________________________________________ 2/21
2.5-2 Instrucciones de comparacin para flotantes Estas instrucciones permiten comparar dos operandos. > : prueba si el operando 1 es superior al operando 2. >= : prueba si el operando 1 es superior o igual al operando 2. < : prueba si el operando 1 es inferior al operando 2. <= : prueba si el operando 1 es inferior o igual al operando 2. = : prueba si el operando 1 es igual al operando 2. <> : prueba si el operando 1 es diferente del operando 2. El resultado es 1 cuando la comparacin solicitada es verdadera. Estructura Lenguaje de contactos
%Q2.3 %MF10>129.7 %M0 %MF20<%KF35 %I1.2 %Q2.4 %Q2.2
%MF30>=%MF40
La comparacin se realiza entre corchetes despus de las instrucciones LD, AND y OR. Lenguaje Literal estructurado
%Q2.3:= %MF10 > 129.7 ; %Q2.2:= (%MF20 < %KF35) AND %M0 ; %Q2.4:= (%MF30 >= %MF40) OR %I1.2 ;
Observacin En el lenguaje Lista de instrucciones, las instrucciones de comparacin pueden utilizarse entre parntesis.
___________________________________________________________________________ 2/22
B
ej. 1 ej. 2
Op1:=Op2
___________________________________________________________________________ 2/23
B
2.5-4 Instrucciones aritmticas para flotantes Estas instrucciones permiten realizar una operacin aritmtica entre dos operandos o en un operando. + : suma de dos operandos, - : resta de dos operandos, * : multiplicacin de dos operandos, / : divisin de dos operandos. Estructura Lenguaje de contactos
%M0 %MF0:=%MF10+129.7 %I3.2 %MF1:=SQRT(%MF10) %I3.3 P P %I3.5 P %MD8:=TRUNC(%MF2) %MF2:=ABS(%MF20)
Sintaxis Operadores +,-,*,/ SQRT, ABS, TRUNC Op1:=Op2 Operador Op3 Op1:=Operador (Op2)
___________________________________________________________________________ 2/24
(1) %MDF en el caso de la instruccin TRUNC Reglas de utilizacin No es posible combinar directamente operaciones en flotantes y enteros. Las operaciones de conversin realizan la conversin en uno de los dos formatos (vase el captulo 2.6, seccin B). la gestin del bit sistema %S18 se efecta de modo idntico a las operaciones en enteros (seccin B, vase captulo 1.4-4),la palabra %SW17 indica la causa de la falla (seccin B, vase captulo 2.5-1). 2.5-5 Instrucciones logartmicas y exponenciales Esta instrucciones permiten realizar operaciones logartmicas y exponenciales.
LOG: logaritmo de base 10, LN:logaritmo neperiano, EXP: exponencial natural, EXPT: exponenciacin de un real por un entero,
2/25
B
Sintaxis Operadores LOG, EXP, LN EXPT Operandos
Tipo Palabras indexables Palabras no indexables Operando 1 %MF (Op1) Operando 2 (Op2) %MF,%KF Valor inm. flotante, Expr. num. flotante. Operandos 3 (Op3) %MW, %KW Valor inmediato entero Expr. num. entera
Op1:=Operador(Op2) Op1:=Operador(Op2,Op3)
Reglas de utilizacin cuando el operando de la funcin es un valor invlido (ejemplo: logaritmo de un nmero negativo), produce un resultado indeterminado o infinito y hace pasar el bit %S18 a 1; la palabra %SW17 indica la causa de la falla (seccin B, vase captulo 2.5-1). en el caso de las funciones logartmicas, para los valores prximos de 1.0 (comprendidos entre 0,99 y 1,0 1,0 y 1,01), el resultado ser igual a 0, los bits %S18 y %SW17:X5 estn posicionados a 1.
___________________________________________________________________________ 2/26
B
Lenguaje Literal estructurado
IF %M0 THEN %MF0:= SIN(%MF10) ; END_IF ; IF %I3.2 THEN %MF2:= TAN(%MF10) ; END_IF ; IF RE %I3.3 THEN %MF4:= ATAN(%MF20) ; END_IF ;
Op1:=Operador (Op2)
Reglas de utilizacin cuando el operando de la funcin es un valor invlido (ejemplo: arco coseno de un nmero superior a 1), produce un resultado indeterminado o infinito y hace pasar el bit %S18 a 1; la palabra %SW17 indica la causa de la falla (seccin B, vase captulo 2.5-1). las funciones SIN/COS/TAN admiten como parmetro un ngulo entre -4096 y 4096 pero su precisin disminuye progresivamente para los ngulos no comprendidos en el intervalo -2 y +2 debido a la precisin que aporta el mdulo 2 cuando se aplica al parmetro antes de cualquier otra operacin.
___________________________________________________________________________ 2/27
B
2.5-7 Instrucciones de conversin Estas instrucciones permiten realizar operaciones de conversin:
DEG_TO_RAD: conversin de grados en radianes, comprendido entre 0 y 2 RAD_TO_DEG: conversin de radianes en grados, comprendido entre 0 y 360 grados el resultado es el valor del ngulo el resultado es el valor del ngulo
Op1:=Operador(Op2)
Reglas de utilizacin el ngulo que se desea convertir debe estar comprendido entre -737280.0 y +737280.0 (para las conversiones DEG_TO_RAD) o entre -4096 y 4096 (para las conversiones RAD_TO_DEG). Para los valores que no estn comprendidos entre estos lmites, el resultado que se muestra ser + 1.#NAN, con los bits %S18 y %SW17:X0 posicionados a 1. ___________________________________________________________________________ 2/28
B
2.5-8 Redondeo de un valor flotante en formato ASCII La funcin ROUND proporciona el valor aproximado de un nmero flotante representado por una cadena de caracteres. Esta funcin utiliza 3 parmetros: ROUND(cadena 1, Long, cadena 2) Cadena 1: Tablas de bytes que constituyen la cadena de caracteres de origen
Long: Palabra que da la posicin, en la cadena de caracteres, a partir de cual se efecta el redondeo (la posicin se calcula contando el nmero de caracteres a partir de la coma, incluyendo la coma) Cadena 2: Tablas de bytes que constituyen la cadena de caracteres de resultado Estructura Lenguaje de contactos
OPERATE
0 '-' 0 '-'
10 11 12 13 14
'1' '.' 1 2
'2' '3' '4' '5' '6' '7' '0' 'e' '+' '2' '6' $00 3 4 5 6 7 8 9 10 11 12 13 14
'1' '.'
'2' '3' '5' '0' '0' '0' '0' 'e' '+' '2' '6' $00
___________________________________________________________________________ 2/29
B
Sintaxis Operador ROUND(cadena1, Long, cadena 2)
Operandos
Tipo Tablas de bytes Palabras indexables Cadena 1 y Cadena 2 %MB:15 %MW Long
Reglas:
La longitud de las cadenas de caracteres de origen y resultado debe estar comprendida entre 15 y 255 bytes. En caso contrario, le bit %S15 se posiciona a 1. El parmetro de longitud Long debe estar comprendido entre 0 y 8. En caso contrario, le bit %S20 (rebasamiento de ndice) se posiciona a 1. Caso particular: para L=0 o L=8, el redondeo no se efecta (cadena de origen = cadena de resultado) Cuando el ltimo carcter diferente de 0 es > a 5, el carcter anterior se incrementa.
___________________________________________________________________________ 2/30
B
Instrucciones de conversin numrica
Instrucciones de conversin BCD <--> Binario : conversin de un nmero BCD 16 bits en entero 16 bits, : conversin de un entero 16 bits en nmero BCD 16 bits, : conversin de un nmero BCD 32 bits en entero 32 bits, : conversin de un entero 32 bits en nmero BCD 32 bits, : conversin de un nmero BCD 32 bits en entero 16 bits, : conversin de un entero 16 bits en nmero BCD 32 bits. Se proponen seis instrucciones de conversin: BCD_TO_INT INT_TO_BCD DBCD_TO_DINT DINT_TO_DBCD DBCD_TO_INT INT_TO_DBCD
Nota sobre el cdigo BCD El cdigo BCD (Binary Coded Decimal), que significa Decimal codificado binariamente, permite de representar un nmero decimal de 0 a 9 por un conjunto de 4 bits. As, un objeto palabra de 16 bits puede contener un nmero expresado en 4 dgitos (0< N < 9999).
Decimal BCD 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001
Ejemplo: la palabra %MW5 expresa el valor BCD "2450" que corresponde al valor binario 0010 0100 0101 0000, la palabra %MW12 expresa el valor decimal "2450" que corresponde al valor binario 0000 1001 1001 0010. La palabra %MW5 pasa a la palabra %MW12 mediante la instruccin BCD_TO_INT. La palabra %MW12 pasa a la palabra %MW5 mediante la instruccin INT_TO_BCD. Estructura Las operaciones de conversin se realizan de la manera descrita a continuacin: Lenguaje de contactos
%MW0:=BCD_TO_INT(%MW10) %I1.2 %MW10:=INT_TO_BCD(%KW9)
___________________________________________________________________________ 2/31
B
Sintaxis Operadores (conversin de un nmero 16 bits) BCD_TO_INT INT_TO_BCD INT_TO_DBCD Operandos
Tipo Palabras indexables Palabras no indexables Dobles palabras indexables Dobles palabras no indexables Operando 1 %MW %QW,%SW,%NW,%BLK %MD %QD, %SD (Op1) Operando 2 (Op2) %MW,%KW,%Xi.T Val.inm.,%IW,%QW,%SW %NW,%BLK,Expr. num.
Ejemplos de aplicacin La instruccin BCD_TO_INT trata un valor de consigna presente en la entrada del autmata en codificadores rotativos con la codificacin BCD. La instruccin INT_TO_BCD muestra valores numricos (ej.: resultado de clculo, valor actual de bloque de funcin) en los indicadores con la codificacin BCD.
___________________________________________________________________________ 2/32
B
Conversin BCD --> Binario La instruccin BCD_TO_INT verifica que el operador de conversin acta sobre un valor codificado en BCD. Si el valor no es un valor BCD, el bit sistema %S18 se pone a 1 y el resultado devuelve el valor del primer cuarto que falta. Ej.: BCD_TO_INT(%MW2) con %MW2=4660 da como resultado 1234; en cambio, %MW2=242 (16#00F2) pone %S18 a 1 y el resultado es 15. Para la instruccin DBCD_TO_INT, si el nmero BCD es superior a 32767, el bit sistema %S18 se pone a 1 y el valor -1 se almacena en el resultado. Conversin Binario --> BCD La instruccin INT_TO_BCD verifica que el operador de conversin acta sobre un valor comprendido entre 0 y 9999 (o 0 y 9999 9999). Si no, el bit sistema %S18 se pone a 1 y el resultado devuelve el valor del parmetro de entrada. Ej.: INT_TO_BCD(%MW2) con %MW2=2478 da como resultado 9336. En cambio, %MW2=10004 pone %S18 a 1 y el resultado es 10004. Para la instruccin INT_TO_DBCD, si el parmetro de entrada es negativa, el bit sistema %S18 se pone a 1 y el resultado devuelve el valor del parmetro de entrada. 2.6-2 Instrucciones de conversin Entero <--> Flotante
Se proponen 4 instrucciones de conversin: INT_TO_REAL: conversin palabra entero --> flotante, DINT_TO_REAL: conversin doble palabra entero --> flotante, REAL_TO_INT: conversin flotante --> palabra entero (el resultado es el prximo valor algebraico), REAL_TO_DINT: conversin flotante --> doble palabra entero (el resultado es el prximo valor algebraico). Estructura Lenguaje de contactos
%MFO:=INT_TO_REAL(%MW10) %I1.8 %MD4:=REAL_TO_DINT(%MF9)
___________________________________________________________________________ 2/33
B
Sintaxis Operador Operandos
Tipo Palabras indexables Palabrasno indexables Palabras flotantes indexables
Op1:=INT_TO_REAL (Op2)
Operando 1 (Op1) Operando 2 (Op2) %MW,%KW,%Xi.T Val. inm.,%IW,%QW,%SW %NW,%BLK,Expr. num.
%MF
conversin palabra entero --> flotante 147 --> 1.47e+02 Op1:=DINT_TO_REAL (Op2)
Operando 1 (Op1)
%MF
Ejemplo: Operador
conversin doble palabra entero --> flotante 68905 000 --> 6.8905e+07 Op1:=REAL_TO_INT(Op2) Op1:=REAL_TO_DINT(Op2)
Operandos
Tipo Palabras indexables Palabrasno indexables Dobles palabras indexables Dobles palabras no indexables Palabras flotantesindexables Palabras flotantesno indexables Operando 1 (Op1) %MW %QW,%NW,%BLK %MD %QD Operando 2 (Op2)
Ejemplo:
conversin flotante --> palabra entero conversin flotante--> doble pal. entero
Nota Si en una conversin real --> entero (o real --> entero doble palabra) el valor flotante est fuera de los lmites de la palabra (o de la doble palabra), el bit %S18 se pone a 1.
___________________________________________________________________________ 2/34
2.6-3 Instrucciones de conversin Gray --> Entero La instruccin GRAY_TO_INT convierte una palabra en cdigo Gray en un entero (cdigo binario puro). Nota sobre el cdigo Gray: el cdigo Gray o "binario reflejado" permite codificar un valor numrico en curso de evolucin en una serie de configuraciones binarias que se diferencian en el cambio de estado de un solo bit. Este cdigo permite, por ejemplo, evitar el riesgo siguiente: en binario puro, el paso de 0111 a 1000 puede generar valores aleatorios comprendidos entre 0 y 1000, puesto que los bits no cambian de valor de modo perfectamente simultneo.
Decimal Decimal
Binary Gray
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101
%MW0:=GRAY_TO_INT(%MW10)
Op1:=GRAY_TO_INT(Op2)
Operando 1 %MW
(Op1)
%QW,%SW,%NW,%BLK
___________________________________________________________________________ 2/35
B
2.6-4 Instrucciones de conversin Palabra <--> Doble palabra Las instrucciones que se describen a continuacin son tiles en el caso de objetos puramente simblicos (caso de los bloques de funcin DFB). En el caso de los objetos direcccionables, los mecanismos de solapamiento (ejemplo: la doble palabra %MD0 est constituida por las palabras %MW0 y %MW1) hace intil el uso de estas instrucciones. Instrucciones de extraccin de la palabra menos significativa de una doble palabra La instruccin LW extrae el valor menos significativo de una doble palabra y lo transfiere a una palabra simple. Sintaxis Op1:=LW(Op2)
Op1 = palabra simple longitud (tipo WORD) Op2 = palabra doble longitud (tipo DWORD) Ejemplo: Presin_cuba:=LW(Parmetro_1) si Parmetro_1 = 16#FFFF1234, Presin_cuba = 16#1234 Instrucciones de extraccin de la palabra ms significativa de una doble palabra La instruccin HW extrae el valor ms significativo de una doble palabra y lo transfiere a una palabra simple. Sintaxis Op1:=HW(Op2)
Op1 = palabra simple longitud (tipo WORD) Op2 = palabra doble longitud (tipo DWORD) Ejemplo: Presin_cuba:=LW(Parmetro_1) si Parmetro_1 = 16#FFFF1234, Presin_cuba = 16#FFFF Instrucciones de concatenacin de 2 palabras La instruccin CONCATW concatena 2 palabras simples y transfiere el resultado a una doble palabra. Sintaxis Op1:=CONCATW(Op2,Op3)
Op1 = palabra doble longitud (tipo DWORD) Op2 = palabra simple longitud (tipo WORD) Op3 = palabra simple longitud (tipo WORD) Ejemplo: Presin_cuba:=LW(Parmetro_1,Parmetro_2) si Parmetro_1 = 16#1234, Parmetro_1 = 16#FFFF, Presin_cuba = 16#FFFF1234
___________________________________________________________________________ 2/36
B
2.7-1 Generalidades El programa PL7 permite efectuar operaciones en tablas: de palabras, de dobles palabras, de palabras flotantes. Las tablas de palabras son series de palabras adyacentes del mismo tipo y de longitud definida: L. Ejemplo de tabla de palabras: %KW10:5
Tipo Palabras internas Formato Simple longitud Doble longitud Flotante Simple longitud Doble longitud Flotante Simple longitud Direccin mxima %MWi:L %MDi:L %MFi:L %KWi:L %KDi:L %KFi:L %SW50:4 (2) Tamao i+L< Nmx (1) i+L< Nmx-1 (1) i+L< Nmx-1 (1) i+L< Nmx (1) i+L< Nmx-1 (1) i+L< Nmx-1 (1) Acceso escritura S S S No No No S
%KW10 16 bits
%KW14
Palabras constantes
Palabras sistema
(1) Nmx = nmero mximo de palabras definido en la configuracin del programa, (2) slo las palabras de %SW50 a %SW53 pueden direccionarse bajo forma de tabla.
Reglas generales para las operaciones en las tablas Las operaciones se efectan nicamente en tablas que contienen objetos del mismo tipo. Las operaciones se efectan en un mximo de 2 tablas. Si en una operacin las tablas son de tamao diferente, la tabla resultante corresponder a un mnimo de 2 tablas de operandos. El usuario debe evitar operaciones en tablas con solapamiento (por ejemplo: %MW100[20]:=%MW90[20]+%KW100[20]). Una operacin en 2 tablas se efecta en cada elemento del mismo rango de ambas tablas. El resultado se transfiere al elemento del mismo rango de la tabla resultante. Si durante una operacin entre 2 elementos el bit sistema %S18 se pone a 1, esta operacin resulta errnea, pero la operacin en los elementos siguientes se efecta correctamente. Cuando uno de los operandos es una expresin numrica, sta debe colocarse entre parntesis. El rango de una palabra en una tabla corresponde a la posicin de la palabra en la tabla. La primera posicin corresponde al rango 0.
___________________________________________________________________________ 2/37
B
2.7-2 Asignacin de tablas de palabras Se pueden realizar las siguientes operaciones de asignacin de tablas de palabras: valor inmediato -> tabla de palabras (indexada) valor inmediato doble formato -> tabla de dobles palabras (indexada) valor inmediato flotante -> tabla de palabras flotantes (indexada) Ej. 1: %MW0:5:= 100
100 100 100 100 100 %MW0
ej. 1
100
%MW4
palabra (indexada) -> tabla de palabras (indexada) doble palabra (indexada) -> tabla de dobles palabras (indexada) flotante (indexado) -> tabla de flotantes (indexada) Ej. 2: %MW0:5:= %MW11
ej. 2
%MW11 100
%MW0
%MW4
tabla de palabras (indexada) -> tabla de palabras (indexada) ej. 3 tabla de dobles palabras (indexada) -> tabla de dobles palabras (indexada) tabla de flotantes (indexada) -> tabla de flotantes (indexada) Ej. 3: %MW0:5:= %KW0:5
%KW0
%KW4
%MW0
%MW4
Nota Las asignaciones mltiples se autorizan en los ejemplos 1 y 2 (%MW0:4:= %MW10:6:= %MW100) pero no en el ejemplo 3.
___________________________________________________________________________ 2/38
B
Lenguaje Lista de instrucciones
LD TRUE [%MW0:5:= 100] LD %I3.2 [%MW0:5:= %MW11] ej 1 ej 2
Op1:= Op2
Tablas de flotantes
Tipo Tablas de palabras flotantes Palabras flotantes indexables Palabras flotantes no indexables Operando 1 (Op1) %MF:L Operando 2 (Op2) %MF:L,%KF:L %MF,%KF Val.inm.flotante, Expr. numrica flotante
___________________________________________________________________________ 2/39
B
2.7-3 Instrucciones aritmticas para tablas Estas instrucciones permiten realizar una operacin aritmtica entre dos operandos de tipo tabla de palabras (o palabra y tabla de palabras). + : suma, * : multiplicacin, : resta, / : divisin, REM : resto de la divisin. Estructura Lenguaje de contactos
%M0 %MW0:10:=%MW20:10+100 %I3.2 %MD50:5:=%KD0:5+%MD0:5 %I3.3 P %MW0:10:=%KW0:10*%MW20
___________________________________________________________________________ 2/40
B
Las instrucciones asociadas permiten realizar una operacin lgica entre dos operandos de tipo tabla de palabras (o palabra y tabla de palabras). AND : Y (bit a bit), OR : O lgica (bit a bit), XOR : O exclusiva (bit a bit), NOT : complemento lgico (bit a bit) de una tabla (1 solo operando). Estructura Lenguaje de contactos
%M0 %MW0:5:=%KW0:5AND16#FF00 %I3.2 %MD0:10:=%KD5:10OR%MD50:10 %I3.3 P %MW100:50:=NOT%MW0:50
___________________________________________________________________________ 2/41
B
2.7-5 Funcin de suma para tablas Las funciones SUM y SUM-ARR adiciona todos los elementos de una tabla de palabras. Si la tabla consta de palabras de simple formato, el resultado aparece en forma de una palabra de simple formato (funcin SUM). Si la tabla consta de dobles palabras, el resultado aparece en forma de una doble palabra (funcin SUM). Si la tabla consta de palabras flotantes, el resultado se proporciona en forma de una palabra flotante (funcin SUM_ARR). Estructura Lenguaje de contactos
%I3.2 %MW5:=SUM(%MW32:12)
Res:=SUM(Tab)
Res:=SUM_ARR(Tab)
Tablas de dobles palabras indexables Dobles palabras indexables Dobles palabras no indexables Tablas de flotantes indexables Palabras flotantes indexables %MF %MD %QD,%SD
%MD:L,%KD:L
%MF:L,%KF:L
Nota:El bit %S18 se pone a 1 cuando el resultado no se encuentra dentro de los lmites del formato palabra o doble palabra, segn el operando de tabla.
Ejemplo %MW5:=SUM(%MW30:4), donde %MW30= 10, %MW31= 20, %MW32= 30, %MW33= 40 %MW5=10+20+30+40=100 ___________________________________________________________________________ 2/42
B
2.7-6 Funciones de comparacin de tablas Las funciones EQUAL (sobre entero) y EQUAL _ARR (sobre flotante) comparan 3 tablas elemento por elemento. Si aparece una diferencia, se devuelve el rango de los primeros elementos no parecidos bajo forma de una palabra; si no el valor devuelto es igual a -1. El tercer parmetro proporciona el rango a partir del cual comienza la comparacin (ejemplo: 0 para comenzar desde el principio). Este tercer parmetro es opcional (no est autorizado con la funcin EQUAL_ARR); cuando se omite, la comparacin se efecta sobre la totalidad de la tabla. Estructura Lenguaje de contactos
%I3.2 %MW5:=EQUAL(%MW20:7,%KW0:7,3)
%MW0:=EQUAL(%MD20:7,%KD0:7)
%MF1:=EQUAL_ARR(%MF0:5,%KF0:5)
%MW1:= EQUAL_ARR(%MF0:5,%KF0:5)
Res:=EQUAL_ARR(Tab1,Tab2)
___________________________________________________________________________ 2/43
B
Parmetros
Tipo Tablas de palabras Palabras indexables Palabras no indexables %MW %QW,%SW, %NW %MD:L,%KD:L %MD %QD,%SD %MD,%KD Val. inm.%QD, %ID,%SD Expr. num. %MF:L,%KF:L %MF Resultado (Res) Tabla(Tab) %MW:L,%KW:L,%Xi.T:L %MW,%KW, %Xi.T Val. inm.%QW, %IW,%SW,%NW Expr. num. Rango
Notas Las tablas deben tener obligatoriamente la misma longitud. Si el parmetro de rango es superior al tamao de las tablas, el resultado es igual al rango.
Ejemplo 0 1 2 3
%MW5= 3
___________________________________________________________________________ 2/44
B
Se proponen 11 funciones de bsqueda: FIND_EQW: en una tabla de palabras, busca la posicin del primer elemento igual a un valor dado. FIND_GTW: en una tabla de palabras, busca la posicin del primer elemento superior a un valor dado. FIND_LTW: en una tabla de palabras, busca la posicin del primer elemento inferior a un valor dado. FIND_EQD: en una tabla de dobles palabras, busca la posicin del primer elemento igual a un valor dado. FIND_GTD: en una tabla de dobles palabras, busca la posicin del primer elemento superior a un valor dado. FIND_LTD: en una tabla de dobles palabras, busca la posicin del primer elemento inferior a un valor dado. FIND_EQR: en una tabla de flotantes, busca la posicin del primer elemento igual a un valor dado, FIND_GTR: en una tabla de flotantes, busca la posicin del primer elemento superior a un valor dado, FIND_LTR: en una tabla de flotantes, busca la posicin del primer elemento inferior a un valor dado, FIND_EQWP: en una tabla de palabras, busca la posicin del primer elemento igual a un valor dado desde un rango, FIND_EQDP: en una tabla de dobles palabras, busca la posicin del primer elemento igual a un valor dado desde un rango. El resultado de estas instrucciones es igual al rango del primer elemento encontrado o a -1 si la bsqueda no tiene xito Estructura Lenguaje de contactos
%I3.2 %MW5:=FIND_EQW(%MW20:7,%KW0) %I1.2 %MW0:=FIND_GTD(%MD20:7,%KD0)
%MW1:=FIND_LTR(%MF40:5,%KF5)
___________________________________________________________________________ 2/45
B
Sintaxis Funcin FIND_EQW,FIND_GTW,FIND_LTW FIND_EQD,FIND_GTD,FIND_LTD FIND_EQR,FIND_GTR,FIND_LTR FIND_EQWP,FIND_EQDP Parmetros Tablas de palabras (FIND_EQW,FIND_GTW,FIND_LTW,FIND_EQWP )
Tipo Tablas de palabras indexables Palabras indexables Palabras no indexables %MW %QW,%SW %NW Resultado (Res) Tabla (Tab) %MW:L,%KW:L%Xi.T:L %MW,%KW, %Xi.T Val. inm.%QW, %IW,%SW,%NW, Expr. num. Valor (Val), rango
Res:=Funcin(Tab,Val)
Res:=Funcin(Tab,Val,rango)
Ejemplo %MW5:=FIND_EQW(%MW30:4,%KW0) Rango 0 %MW30= 10 1 %MW31= 20 2 %MW32= 30 ==> %KW0= 30 ==> %MW5= 2 3 %MW33= 40 ___________________________________________________________________________ 2/46
El resultado de estas instrucciones es igual al valor mximo (o mnimo) encontrado en la tabla. Estructura Lenguaje de contactos
%I3.2 %MW5:=MAX_ARW(%MW20:7) %I1.2 %MD0:=MIN_ARD(%MD20:7)
%MF8:=MIN_ARR(%MF40:5)
Res:=Funcin(Tab)
___________________________________________________________________________ 2/47
B
2.7-9 Nmero de ocurrencias de un valor en una tabla Se proponen 3 funciones de bsqueda: OCCUR_ARW: en una tabla de palabras, busca el nmero de elementos iguales a un valor dado. OCCUR_ARD: en una tabla de dobles palabras, busca el nmero de elementos iguales a un valor dado. OCCUR_ARR: en una tabla de flotantes, busca el nmero de elementos iguales a un valor dado. Estructura Lenguaje de contactos
%I3.2 %MW5:=OCCUR_ARW(%MW20:7,%KW0) %I1.2 %MW0:=OCCUR_ARD(%MD20:7,200)
Tablas de palabras indexables Palabras (dobles) indexables Palabras (dobles) no indexables %MW %QW,%SW,%NW
%MD:L,%KD:L %MD,%KD Val. inm.%QD, %ID,%SD Expr. num. %MF:L,%KF:L %MW %MF,%KF Val. inm. Expr. num.
___________________________________________________________________________ 2/48
B
2.7-10 Funciones de desplazamiento circular para tablas Se proponen 6 funciones de desplazamiento: ROL_ARW: desplaza de modo circular elementos de la tabla de palabras n posiciones de arriba hacia abajo. ROL_ARD: desplaza de modo circular elementos de la tabla de dobles palabras n posiciones de arriba hacia abajo. ROL_ARR: desplaza de modo circular elementos de la tabla de flotantes n posiciones de arriba hacia abajo, ROR_ARW: desplaza de modo circular elementos de la tabla de palabras n posiciones de abajo hacia arriba. ROR_ARD: desplaza de modo circular elementos de la tabla de dobles palabras n posiciones de abajo hacia arriba. ROR_ARR: desplaza de modo circular elementos de la tabla de flotantes n posiciones de abajo hacia arriba. 0 1 2 4 5
0 1 2 4 5
___________________________________________________________________________ 2/49
B
Sintaxis
Funcin(n,Tab)
Nmero de posiciones (n) Tabla (Tab) %MW:L Val. inm.%QW,%IW,%SW %NW,Expr. num.
Funcin(n,Tab)
Nmero de posiciones (n) Tabla (Tab) %MD:L Val. inm.%QW,%IW,%SW %NW,Expr. num.
Funcin(n,Tab)
Nmero de posiciones (n) Tabla (Tab) %MF:L Val. inm.%QW,%IW,%SW %NW,Expr. num.
___________________________________________________________________________ 2/50
B
Se proponen 3 funciones de ordenacin: SORT_ARW: ordena los elementos de la tabla de palabras por orden creciente o decreciente y almacena el resultado en esta misma tabla. SORT_ARD: ordena los elementos de la tabla de dobles palabras por orden creciente o decreciente y almacena el resultado en esta misma tabla. SORT_ARR: ordena los elementos de la tabla de flotantes por orden creciente o decreciente y almacena el resultado en esta misma tabla. Estructura Lenguaje de contactos
%I3.2 SORT_ARW(%MW20,%MW0:6) %I1.2 SORT_ARD(-1,%MD20:6) %I1.3 SORT_ARD(0,%MD40:8)
Funcin (sentido,Tab)
El parmetro "sentido" indica el orden: sentido > 0 significa el orden creciente, sentido < 0 el orden decreciente. El resultado (tabla ordenada) se devuelve en el parmetro Tab (tabla por ordenar). Parmetros Tablas de palabras
Tipo Tablas de palabras (SORT_ARW) Tablas de dobles (SORT_ARD) Tablas de flotantes (SORT_ARF) Palabras indexables Palabras no indexables %MW,%KW Val. inm.%QW,%IW,%SW %NW,Expr. num. Sentido de ordenacin Tabla (Tab) %MW:L %MD:L %MF:L
___________________________________________________________________________ 2/51
B
2.7-12 Funcin de clculo de longitud de tablas Se ofrecen 4 funciones de clculo de longitud de tablas. Estas funciones son tiles especialmente para la programacin de los bloques de funcin DFB, cuando las longitudes de las tablas no se han definido explcitamente: LENGTH_ARW: calcula la longitud de una tabla de palabras en nmero de elementos, LENGTH_ARD: calcula la longitud de una tabla de dobles palabras en nmero de elementos, LENGTH_ARR: calcula la longitud de una tabla de flotantes en nmero de elementos, LENGTH_ARX: calcula la longitud de una tabla de bits en nmero de elementos, Estructura Lenguaje de contactos
%I3.2 LENGTH_ARW(tab_mot) %I1.2 LENGTH_ARD(tab_dmot) %I1.3 LENGTH_ARX(tab_bit)
Resultado (Result)
%MW %QW,%SW,%NW
___________________________________________________________________________ 2/52
B
2.8-1 Formato de una cadena o tabla de caracteres Una tabla de caracteres consta de una serie de bytes en la que se puede almacenar una cadena de caracteres. El tamao de la tabla permite especificar la longitud mxima de la cadena de caracteres (255 car. mximos). Ejemplo: %MB4:6 representa una tabla de 6 bytes que contiene una cadena de 6 caracteres mximos.
El primer byte del inicio de una tabla debe ser par (no es posible introducir una tabla cuyo byte inicial es impar, ej.: %MB5:6). Las tablas de bytes utilizan el mismo rea de memoria que las palabras %MW y %MD; por consiguiente, existe el riesgo de solapamiento: vase el captulo 1.2-4, seccin A. El trmino cadena de caracteres representa todos los caracteres comprendidos entre el inicio de la tabla y el primer terminador de cadena encontrado. Se llama "terminador de cadena" el carcter NULO (cdigo hex 00). El signo lo simboliza en este captulo. Ejemplos: la tabla siguiente (de 12 elementos) contiene la cadena de caracteres 'ABCDE' (de longitud 5)
'A' 'B' 'C' 'D' 'E' 'J' 'K' 'L' 'M' 'N' 'O'
la tabla siguiente (de 10 elementos) contiene la cadena de caracteres 'ABCDEJKLMN' (de longitud 10)
'A' 'B' 'C' 'D' 'E' 'J' 'K' 'L' 'M' 'N'
El nmero de caracteres antes del terminador de cadena o, si no se detecta ningn terminador, el tamao de la tabla indica pues la longitud de una cadena de caracteres.
Notas El bit sistema %S15 se pone a 1 en los casos siguientes: al escribir una cadena en una tabla cuando sta es ms larga que el tamao de la tabla (imposible escribir el terminador de cadena ). al intentar acceder a un carcter que no se encuentra en la cadena implicada. cuando hay incoherencia de parmetros, longitud por eliminar nula (funcin DELETE), longitud por extraer nula (funcin MID), longitud por reemplazar nula (funcin REPLACE), bsqueda de una subcadena mslarga que la cadena (funcin FIND).
___________________________________________________________________________ 2/53
B
2.8-2 Asignacin para cadenas de caracteres Permite transferir una cadena de caracteres a una tabla de bytes de longitud L. Estructura Lenguaje de contactos
OPERATE
%MB30:12:= 'mise_en_run'
Ejemplo
31
'i'
32
's'
33
'e'
34
'_'
35
'e'
36
'n'
37
'_'
38
'r'
39
'u'
40
'n'
41
Operandos
Tipo Tablas de bytes Operando 1 %MB:L (Op1) Operando 2 (Op2) %MB:L,%KB:L Valor inmediato
___________________________________________________________________________ 2/54
B
2.8-3 Comparacin alfanumrica Estos operadores permiten comparar dos cadenas de caracteres contenidas en las tablas de bytes definidas con parmetros. La comparacin se efecta carcter por carcter. El resultado es un bit que vale 1 si ambas cadenas satisfacen carcter por carcter la condicin proporcionada por el operador; si no, el bit vale 0. La tabla de cdigos ASCII (ISO 646) indica el orden de los caracteres. Por ejemplo, la cadena 'Z' es mayor que la cadena 'AZ' que es mayor que la cadena 'ABC'. Estructura Lenguaje de contactos
%MB20:12< %MB40:12
COMPARE
LD ST
La comparacin se realiza entre corchetes despus de las instrucciones LD, AND y OR.
SI El resultado es 1
25
'f'
21
'b'
22
'c'
23
'd'
24
'e'
26
'g'
27
'l'
28
29
'k'
30
'w'
31
'z'
%MB
40
'a'
41
'b'
42
'c'
43
'd'
44
'e'
45
'f'
46
'h'
47
'l'
48
49
'k'
50
'w'
51
'z'
No se tienen en cuenta los elementos posteriores al terminador. Sintaxis Operador <, >, <=, >=, =, < > Op1 Operador Op2
Operandos
Tipo Tablas de bytes Operando 1 (Op1) y Operando 2 (Op2) %MB:L,%KB:L, valor inmediato
___________________________________________________________________________ 2/55
B
2.8-4 Conversin Numrico <---> ASCII Estas funciones permiten convertir un valor numrico (o flotante) en cadena de caracteres codificada en ASCII, o a la inversa. El resultado de la conversin debe transferirse a un objeto PL7 mediante una operacin de asignacin: tabla de bytes, palabra de simple o doble longitud o flotante. Las conversiones posibles son: INT_TO_STRING DINT_TO_STRING STRING_TO_INT STRING_TO_DINT REAL_TO_STRING STRING_TO_REAL Conversin Binario --> ASCII Conversin Binario --> ASCII Conversin ASCII --> Binario Conversin ASCII --> Binario Conversin Flotante --> ASCII Conversin ASCII --> Flotante
Formato flotante: ==> vase el captulo 2.5, seccin B Nota sobre el cdigo ASCII El conjunto de 256 caracteres alfanumricos y de control puede codificarse en 8 bits. Este cdigo llamado ASCII (American Standard Code for Information Interchange) es compatible con la nocin de bytes. Por consiguiente, cada tabla de n bytes puede constar de n cdigos ASCII que definen n caracteres.
2.8-5 Conversin Binario --->ASCII Estas funciones permiten convertir un valor numrico (palabra de simple o doble longitud) en cadena de caracteres codificada en ASCII. Cada nmero, as como el signo del valor definido con un parmetro se codifica en ASCII en un elemento de la tabla de bytes resultante. Funcin INT_TO_STRING: el contenido de una palabra de simple longitud puede estar comprendido entre -32768 y +32767, o sea 5 dgitos ms el signo. El resultado ser una tabla de 6 caracteres ms el terminador. El signo '+' o '-' se almacena en el primer carcter, las unidades en el sexto, los dcimos en el quinto, etc. Funcin DINT_TO_STRING: el contenido de una palabra de doble longitud puede estar comprendido entre -2147483648 y +2147483647, o sea 10 dgitos ms el signo. El resultado ser una tabla de 12 caracteres ms el terminador. El signo '+' o '-' se almacena en el primer carcter, la unidad en el duodcimo, los dcimos en el undcimo, etc. El segundo carcter es siempre '0'.
___________________________________________________________________________ 2/56
B
Lenguaje Lista de instrucciones
LD TRUE [ %MB10:7:=INT_TO_STRING(%MW20)]
%MB10:7:= INT_TO_STRING(%MW20)
OPERATE
%MB2:13:= DINT_TO_STRING(%MD30)
Ejemplo: conversin Binario ---> ASCII %MB10:7:= INT_TO_STRING (%MW20) con %MW20 = - 3782 en decimal ==> El resultado se almacena en la tabla de 7 bytes despus de %MB10:7
%MB 10
'_'
11
'0'
12
'3'
13
'7'
14
'8'
15
'2'
16
3
'0'
4
'0'
5
'2'
6
'3'
7
'4'
8
'7'
9
'1'
10
'1'
11
'0'
12
'8'
13
'4'
14
Operador Operandos
Tipo Tablas de 12 bytes + terminador Dobles palabras indexables Dobles palabras no indexables
Valor
___________________________________________________________________________ 2/57
B
2.8-6 Conversin ASCII ---> Binario Estas funciones permiten convertir en binario una cadena de caracteres que representa un valor numrico (resultado transferido a una palabra de simple o doble longitud). Cada elemento de la tabla definida con un parmetro representa el cdigo ASCII de un carcter. Los caracteres autorizados son los nmeros y los caracteres '+' y '-'. Funcin STRING_TO_INT: convierte una cadena de 6 caracteres que representa un valor numrico comprendido entre -32768 y +32767. El signo se almacena en el primer carcter, los diez miles en el segundo, ..., las unidades en el sexto. El valor debe alinearse a la derecha en la cadena. Funcin STRING_TO_DINT: convierte una cadena de 12 caracteres que representa un valor numrico comprendido entre -2147483648 y +2147483647. El signo se almacena en el primer carcter, el '0' en el segundo, los millares en el tercero, ..., las unidades en el duodcimo. El valor debe alinearse a la derecha en la cadena. Estructura
%MW13:= STRING_TO_INT(%MB20:7)
OPERATE
con
21
'0'
22
'2'
23
'3'
24
'4'
25
'7'
26
El bit %S18 se pone a 1 si el valor descrito por la cadena no est comprendido entre -32768 y +32767 o si uno de los 6 caracteres es errneo.
Operador Operandos
Tipo Dobles palabras indexables Dobles palabras no indexables Tablas de 12 bytes + terminador
___________________________________________________________________________ 2/58
El bit %S18 se pone a 1 si el valor descrito por la cadena no est comprendido entre -2147483648 y +2147483647 o si uno de los 12 caracteres es errneo.
B
Esta funcin permite convertir un valor numrico real contenido en una palabra de tipo flotante en cadena de caracteres codificada en ASCII. El resultado se transfiere a una tabla de 13 bytes + el terminador. Cada dgito del valor as como los caracteres '+', '-', '.', 'e' y 'E' se codifican en ASCII en un elemento de la tabla resultante. El signo del valor se encuentra en el primer carcter, la coma (.) en el tercero, el exponente 'e' en el dcimo, el signo del exponente en el undcimo. Estructura Lenguaje de contactos Lenguaje Lista de instrucciones
LD TRUE [ %MB20:14:= REAL_TO_STRING (%MF30)]
Ejemplo:
==> resultado
El bit %S18 se pone a 1 si el valor flotante definido en la configuracin no est comprendido entre -3.402824e+38 y -1.175494e-38 o +1.175494e-38 y +3.402824e+38. En este caso el valor del resultado es errneo.
___________________________________________________________________________ 2/59
B
2.8-8 Conversin ASCII --> Flotante Esta funcin permite convertir en flotante una cadena de caracteres que representa un valor numrico real (resultado transferido a una palabra de tipo flotante). Cada elemento de la tabla definida con un parmetro representa el cdigo ASCII de un carcter. Los caracteres autorizados son los dgitos y los caracteres '+', '-', '.', 'e' y 'E'. No se utiliza el terminador de cadena para determinar el fin de cadena. Esto significa que cada uno de los 13 caracteres de la tabla debe ser correcto. El signo del valor debe encontrarse en el primer carcter, la coma (.) en el tercero, la 'e' en el dcimo, el signo del exponente en el undcimo. Por ejemplo, el valor 3.12 debe indicarse bajo la forma '+3.120000e+00'. Estructura Lenguaje de contactos Lenguaje Lista de instrucciones
LD TRUE [ %MF18:= STRING_TO_REAL (%MB20:13)]
Ejemplo: con
%MF18 = - 3.234718e+26
Resultado %MF
(Res)
El bit %S18 se pone a 1 si el valor descrito por la cadena no est comprendido entre -3.402824e+38 y -1.175494e-38 o +1.175494e-38 y +3.402824e+38 o si uno de los 13 caracteres es errneo. ___________________________________________________________________________ 2/60
B
2.8-9 Concatenacin de dos cadenas Concatenacin de dos cadenas de caracteres definidas con parmetros. El resultado es una tabla de bytes que contiene una cadena de caracteres. Estructura Lenguaje de contactos
OPERATE
%MB30:14:=CONCAT(%MB4:6,% MB14:9)
5
'n'
6
'c'
7
'o'
8
'n'
%MB
14
't'
15
'e'
16
's'
17
't'
18
'a'
19
'b'
20
'l'
21
'e'
22
%MB
30
'i'
31
'n'
32
'c'
33
'o'
34
'n'
35
't'
36
'e'
37
's'
38
't'
39
'a'
40
'b'
41
'l'
42
'e'
43
Si la tabla resultante es demasiado corta, se efecta un truncamiento y el bit sistema %S15 se pone a 1. %MB30:10:= CONCAT (%MB4:6, %MB14:9)
%MB 30
'i'
31
'n'
32
'c'
33
'o'
34
'n'
35
't'
36
'e'
37
's'
38
't'
39
'a'
==> %S15 1
Si la tabla resultante es demasiado larga, la cadena se completa con caracteres de tipo terminador . %MB30:15:= CONCAT (%MB4:6, %MB14:9)
%MB 30
'i'
31
'n'
32
'c'
33
'o'
34
'n'
35
't'
36
'e'
37
's'
38
't'
39
'a'
40
'b'
41
'l'
42
'e'
43
44
___________________________________________________________________________ 2/61
B
2.8-10 Eliminacin de una subcadena de caracteres Eliminacin de un cierto nmero de caracteres (rea de longitud L) desde una posicin dada (primer carcter que se debe borrar) en la cadena definida con un parmetro. El resultado es una tabla de bytes que contiene una cadena de caracteres. Estructura Lenguaje de contactos
OPERATE
%MB14:9:=DELETE(%MB30:14,% MW2,%MW4)
Ejemplo: %MB14: 9:= DELETE (%MB30:14, %MW2, %MW4) con %MW2 = 5 (5 caracteres por borrar) %MW4 = 3 (posicin =3)
%MB 30
'i'
31
'n'
32
'c'
33
'o'
34
'n'
35
't'
36
'e'
37
's'
38
't'
39
'a'
40
'b'
41
'l'
42
'e'
43
%MB
14
'i'
15
'n'
16
's'
17
't'
18
'a'
19
'b'
20
'l'
21
'e'
22
Notas
Posibilidad de solapamiento entre los parmetros despus de los ndices de los objetos PL7: tabla que contiene la cadena origen, tabla que contiene la cadena resultado, palabra que contiene la longitud que se va a eliminar, palabra que contiene la posicin del primer carcter que se va a eliminar.
___________________________________________________________________________ 2/62
Una longitud o una posicin negativa se interpreta como igual a 0. El parmetro posicin tiene el valor inicial 1 que corresponde a la primera posicin en la cadena de caracteres.
B
Si la tabla resultante es demasiado larga, la cadena se completa con caracteres de tipo terminador. El bit sistema %S15 se pone a 1 en los casos siguientes: la longitud que se va a eliminar es nula; la tabla de salida es una copia de la tabla de origen. la posicin es superior a la longitud de la cadena, o la posicin del primer terminador encontrado es inferior o igual a la posicin del primer carcter que se va a eliminar; el resultado es pues una cadena vaca. la posicin es igual a 0; la tabla resultante contiene una cadena vaca. la tabla resultante es demasiado corta: se efecta un truncamiento.
2.8-11 Insercin una subcadena de caracteres Insercin de la subcadena de caracteres definida por el segundo parmetro (cadena 2) en la cadena de caracteres definida por el primer parmetro (cadena 1). La insercin se efecta en la primera cadena despus del carcter situado en la posicin indicada por el parmetro posicin (Pos). El resultado de la insercin es una nueva cadena de caracteres transferida a una tabla de bytes. Estructura Lenguaje de contactos Lenguaje Lista de instrucciones
LD TRUE [%MB2:14:= INSERT (%MB20:9, %MB30:6, %MW40)]
OPERATE
%MB2:14:=INSERT(%MB20:9,%MB30:6,%MW40)
21
'n'
22
's'
23
't'
24
'a'
25
'b'
26
'l'
27
'e'
28
%MB
30
'c'
31
'o'
32
'n'
33
't'
34
'e'
35
%MB
2
'i'
3
'n'
4
'c'
5
'o'
6
'n'
7
't'
8
'e'
9
's'
10
't'
11
'a'
12
'b'
13
'l'
14
'e'
15
___________________________________________________________________________ 2/63
Notas El parmetro posicin tiene el valor inicial 1 que corresponde a la primera posicin en la cadena de caracteres. Es imposible efectuar una insercin en el principio de la cadena. En este caso, se utiliza la funcin CONCAT. Si la tabla es demasiado larga, la cadena se completa con caracteres de tipo terminador. El bit sistema %S15 se pone a 1 en los casos descritos a continuacin. El valor del parmetro posicin es negativo o igual a 0. En este caso, se interpreta como igual a 0 y la tabla resultante contiene una cadena vaca (compuesta de terminadores). La posicin determinada con el parmetro es superior a la longitud de la cadena origen; la tabla resultante contiene pues una cadena vaca (compuesta de terminadores). Si la tabla resultante es demasiado corta, se efecta un truncamiento.
___________________________________________________________________________ 2/64
B
2.8-12 Reemplazo una subcadena de caracteres Reemplaza un fragmento de una cadena de caracteres definida en la tabla de origen (cadena1) por una subcadena de caracteres definida en la tabla de reemplazo (cadena2). Los parmetros de posicin (pos.) y de longitud (long.) definen el reemplazo que se va a efectuar.Esta longitud corresponde a la longitud de la cadena que va a desaparecer, no a la longitud de la subcadena que la reemplaza. Estructura Lenguaje de contactos
OPERATE
Ejemplo:%MB2:13:= REPLACE (%MB20:12, %MB30:9, %MW40, %MW41) con %MW40 = 3 (longitud=3) y %MW41 = 9 (posicin =9)
%MB 20
'm'
21
'i'
22
's'
23
'e'
24
'_'
25
'e'
26
'n'
27
'_'
28
'r'
29
'u'
30
'n'
31
Cadena 1
%MB
30
's'
31
't'
32
'o'
33
'p'
34
35
'r'
36
'u'
37
'n'
38
Cadena 2
%MB
2
'm'
3
'i'
4
's'
5
'e'
6
'_'
7
'e'
8
'n'
9
'_'
10
's'
11
't'
12
'o'
13
'p'
14
___________________________________________________________________________ 2/65
B
Notas El parmetro posicin tiene el valor inicial 1 que corresponde a la primera posicin en la cadena de caracteres. Si la tabla de salida es demasiado larga, la cadena se completa con caracteres de tipo terminador. El bit sistema %S15 se pone a 1 en los casos descritos a continuacin. Si el valor del parmetro posicin es negativo o igual a 0. En este caso, se interpreta como igual a 0; la tabla resultante contiene pues una cadena vaca (compuesta de terminadores). Si la posicin definida por el parmetro es superior o igual a la longitud de la cadena de origen, la tabla resultante contiene pues una cadena vaca (compuesta de terminadores). Si la tabla resultante es demasiado corta, se efecta un truncamiento. Si la posicin del primer terminador de cadena es inferior o igual a la posicin del primer carcter que se va a reemplazar, la tabla de salida es una copia de la tabla de origen hasta el terminador y se completa con caracteres de tipo terminador.
___________________________________________________________________________ 2/66
B
Extraccin de un cierto nmero de caracteres en una cadena de origen definida por parmetro (cadena). El parmetro posicin (pos) indica el rango del primer carcter que se va a extraer; el parmetro longitud (long) indica el nmero de caracteres que se van a extraer. La cadena extrada se almacena en una tabla de bytes (Res.). Estructura Lenguaje de contactos
OPERATE
%MB14:7:=MID(%MB30:13,% MW2,%MW4)
Ejemplo: %MB14: 7:= MID (%MB30:13, %MW2, %MW4) con %MW2 = 4 (longitud) , %MW4 = 9 (posicin)
%MB 30
'm'
31
'i'
32
's'
33
'e'
34
'_'
35
'e'
36
'n'
37
'_'
38
's'
39
't'
40
'o'
41
'p'
42
==> resultado
%MB 14
's'
15
't'
16
'o'
17
'p'
18
19
20
___________________________________________________________________________ 2/67
B
Notas El parmetro posicin tiene el valor inicial 1 que corresponde a la primera posicin en la cadena de caracteres. Si la tabla de salida es demasiado larga, la cadena se completa con caracteres de tipo terminador. Si la longitud definida por el parmetro es superior al tamao de la cadena de origen, la tabla resultante contiene pues la cadena de origen. Si se alcanza el ltimo elemento de la tabla o el terminador de cadena antes de extraer el nmero de caracteres definido por el parmetro longitud, la extraccin se detiene. El bit sistema %S15 se pone a 1 en los casos descritos a continuacin. Si el valor del parmetro longitud que se va a extraer es negativo o nulo. En este caso, se interpreta como igual a 0; la tabla resultante contiene pues una cadena vaca (compuesta de terminadores). Si el valor del parmetro posicin de inicio de extraccin es nulo o superior a la longitud de la tabla o superior o igual a la posicin del primer terminador. En este caso, la tabla resultante contiene una cadena vaca (compuesta de terminadores). Si la tabla resultante es demasiado corta, se efecta un truncamiento.
___________________________________________________________________________ 2/68
B
Extraccin de un cierto nmero de caracteres ms a la izquierda (LEFT) o a la derecha (RIGHT) en una cadena de origen definida por el parmetro (cadena). El parmetro longitud (long) define el nmero de caracteres que se va a extraer. La cadena extrada se almacena en una tabla de bytes (Res.). Estructura Lenguaje de contactos
%MB10:10:=LEFT(%MB30:13,% MW2)
OPERATE
31
'i'
32
's'
33
'e'
34
'_'
35
'e'
36
'n'
37
'_'
38
's'
39
't'
40
'o'
41
'p'
42
==> resultado
%MB 10
'm'
11
'i'
12
's'
13
'e'
14
'_'
15
'e'
16
'n'
17
'_'
18
19
Operandos
Tipo Tablas de bytes Palabras indexables Palabras no indexables Resultado %MB:L (Res) Cadena %MB:L,%KB:L Valor inm. %MW,%KW, %Xi.T %IW,%QW,%SW,%NW Valor inmediato, Expr. numrica Longitud (long)
___________________________________________________________________________ 2/69
B
Notas Si la tabla de salida es demasiado larga, la cadena se completa con caracteres de tipo terminador. Si la longitud definida por el parmetro es superior al tamao de la cadena de origen, la tabla resultante contiene pues la cadena de origen. El bit sistema %S15 se pone a 1 en los casos descritos a continuacin. Si el valor del parmetro longitud que se va a extraer es negativo o nulo. En este caso, la tabla resultante contiene una cadena vaca (compuesta de terminadores). Si la tabla resultante es demasiado corta, se efecta un truncamiento.
___________________________________________________________________________ 2/70
B
Comparacin de dos cadenas de caracteres. El resultado es una palabra que contiene la posicin del primer carcter diferente. En caso de igualdad perfecta entre ambas cadenas de caracteres, el resultado es -1. Estructura Lenguaje de contactos
%MW2:=EQUAL_STR(%MB18:14,%MB50:14)
OPERATE
19
'b'
20
'c'
21
'd'
22
'e'
23
'f'
24
'g'
25
'h'
26
'i'
27
'p'
28
'w'
29
'x'
30
'y'
31
'z'
%MB
50
'a'
51
'b'
52
'c'
53
'd'
54
'?'
55
'f'
56
'g'
57
'h'
58
59
'v'
60
'w'
61
'x'
62
'y'
63
'z'
==> MW2:= 5
Nota Una longitud o una posicin negativa se interpreta como igual a 0. Las letras maysculas se diferencian de las letras minsculas.
___________________________________________________________________________ 2/71
B
2.8-16 Bsqueda de una subcadena de caracteres Bsqueda de la subcadena de caracteres definida por el segundo parmetro en la cadena de caracteres definida por el primer parmetro. El resultado es una palabra que contiene en la primera cadena la posicin de inicio de la subcadena buscada. Si la bsqueda sale sin xito, el resultado es -1. Estructura Lenguaje de contactos
OPERATE
19
'b'
20
'c'
21
'd'
22
'e'
23
'f'
24
'g'
25
'h'
26
'i'
27
28
'w'
29
'x'
30
'y'
31
'z'
%MB
50
'f'
51
'g'
52
'h'
53
==> MW2:= 6 Indica que el inicio de la cadena buscada se sita a partir del sexto carcter. Sintaxis Operador Operandos
Tipo Palabras indexables Palabras no indexables Tablas de bytes Nota Una longitud o una posicin negativa se interpreta como igual a 0. Resultado %MW %QW,%SW,%NW. %MB:L,%KB:L Valor inmediato (Res) Cadenas 1 y 2
___________________________________________________________________________ 2/72
B
Esta funcin devuelve la longitud de la cadena de caracteres definida por parmetros, es decir el nmero de caracteres que se encuentran antes del terminador. Estructura Lenguaje de contactos
OPERATE
21
'b'
22
'c'
23
'd'
24
'e'
25
'f'
26
'g'
27
28
'n'
29
'o'
30
'p'
31
'r'
Nota Si no se encuentra ningn terminador, esta funcin devuelve el tamao de la tabla (vase el captulo 2.8-1).
___________________________________________________________________________ 2/73
2.9
2.9-1 Formato de los parmetros Los parmetros Fecha, Hora, Duracin utilizados por estas instrucciones corresponden a los formatos estndar definidos por la norma IEC1131-3. Formato Duracin (tipo TIME) Este formato permite codificar duraciones expresadas en dcimos de segundo. Corresponde al formato TIME de la norma. El valor se muestra bajo la forma siguiente: sssssssss.d Por ejemplo: 3674.3 para 1 hora, 1 minuto, 14 segundos y 3 dcimos. El valor se codifica en 32 bits (una doble palabra) cuyos lmites se fijan a [0, 4294967295] dcimos de segundos. El lmite superior representa aproximadamente 13 aos y 7 meses. Formato Fecha (tipo DATE) Este formato permite codificar el ao, el mes y el da. Corresponde al formato DATE de la norma. El valor se muestra bajo la forma siguiente: yyyy-mm-dd Por ejemplo: 1984-06-25 El valor se codifica en BCD en 32 bits (una doble palabra) con 3 campos: 31 16 8 0 Ao : 4 dgitos Ao Mes Da Mes : 2 dgitos Da : 2 dgitos Ejemplo:
expresado en hexadecimal
19h
84h
06h
25h
= 1984-06-25
___________________________________________________________________________ 2/74
B
Esta formato permite codificar la hora, los minutos y los segundos. Corresponde al formato TIME_OF_DAY de la norma. El valor se muestra bajo la forma siguiente: hh:mm:ss Por ejemplo: 23:12:34 El valor se codifica en BCD en 32 bits (una doble palabra) con 3 campos: 31 24 16 8 0 Horas: 2 dgitos (pal. ms sign.) Hor Min Seg Minutos: 2 dgitos (pal. ms sign.) Segundos: 2 dgitos (pal. menos sign.) Ejemplo:
expresado en hexadecimal
23h
12h
34h
= 23:12:34
Formato Fecha y hora (tipo DT) Este formato permite codificar el ao, el mes, el da, la hora, los minutos y los segundos. Corresponde al formato DATE_AND_TIME de la norma. El valor se muestra bajo la forma siguiente: Por ejemplo: yyyy-mm-dd-hh:mm:ss 1984-06-25-23:12:34
Ao Ejemplo:
Mes
Da
Ho
Min
Seg
expresado en hexadecimal
1984h
06h
25h
23h
12h
34h
___________________________________________________________________________ 2/75
B
Formato Hora, Minuto, Segundo (HMS) Este formato, utilizado exclusivamente por la funcin TRANS_TIME, permite codificar la hora, los minutos y los segundos. El valor se muestra bajo la forma siguiente: hh:mm:ss Por ejemplo: 23:12:34 El valor se codifica en BCD en 32 bits (una doble palabra) con 3 campos: 31 16 8 0 Horas: 4 dgitos (pal. ms sign.) Ho Min Seg Minutos: 2 dgitos (pal. menos sign.) Segundos: 2 dgitos (pal. menos sign.) Ejemplo:
expresado en hexadecimal
23h
12h
34h
= 23:12:34
2.9-2 Utilizacin de bits y palabras sistema - Generalidades El bit sistema %S17 se pone a 0 en los casos siguientes: resultado de una operacin fuera del intervalo de valores autorizados, un parmetro de entrada no interpretable ni coherente en el formato deseado (DATE, DT o TOD), operacin en un formato Hora del da (TOD) que tiene como consecuencia un cambio de da, conflicto de acceso al reloj-calendario. El bit sistema %S15 se pone a 1 al escribir una cadena en una tabla cuando sta es ms larga que el tamao de la tabla. Las palabras sistema %SD18: contador de tiempo absoluto; permite tambin efectuar clculos de duracin (aumentado por el sistema cada 1/10 de segundo), %SW49 a %SW53 pueden utilizarse tambin para mostrar fechas (vase el captulo 3.2-2, seccin B).
___________________________________________________________________________ 2/76
B
Esta funcin permite controlar acciones en horarios y fechas predefinidos o calculados. Posiciona a 1 el parmetro de salida OUT si la fecha suministrada por el reloj del autmata en el momento de la llamada de la funcin est comprendida en el perodo programado en los parmetros de entradas. Sintaxis Operador SCHEDULE (DBEG, DEND, WEEK, HBEG, HEND, OUT)
Caractersticas de los parmetros Salida OUT Bit que contiene el resultado de las comparaciones efectuadas por la funcin reloj-calendario: a 1 durante los perodos definidos por los parmetros. Palabra que codifica la fecha de inicio del perodo (mes-da) en BCD (valores lmites: 01-01 a 12-31) Palabra que codifica la fecha de fin del perodo (mes-da) en BCD (valores lmites: 01-01 a 12-31) Palabra que codifica el o los das de la semana incluidos en el perodo definido por los parmetros DBEG y DEND. Los 7 bits menos significativos representan los 7 das de la semana: bit 6 = lunes, bit 5 = martes,..., bit 0 = domingo. Doble palabra que codifica la hora de inicio del perodo en el da (horas-minutos-segundos) en BCD formato hora del da (tipo: TOD). Valores lmites: 00:00:00, 23:59:59 Doble palabra que codifica la hora de fin del perodo en el da (horas-minutos-segundos) en BCD formato hora del da (tipo: TOD). Valores lmites: 00:00:00, 23:59:59
Hora de inicio
HBEG
Hora de fin
HEND
OPERATE
SCHEDULE (%KW0,%KW1,%KW2,%KD3,%KD5,%M0)
___________________________________________________________________________ 2/77
B
Lenguaje Literal estructurado
Ejemplo: programacin de 2 franjas horarias no contnuas SCHEDULE ( 16#0501, 16#1031, 2#0000000001111100, 16#08300000, 16#12000000, %M0 ); ( 16#0501, 16#1031, 2#0000000001111100, 16#14000000, 16#18000000, %M1 ); %Q0.0:=%M0 OR %M1; (* fecha de inicio: 1 mai*) (* fecha de trmino: 31 octobre*) (* lunes a viernes*) (* hora de incio: 8h30*) (* hora de trmino: 18h*) (* resultado en: %M0*) (* (* (* (* (* (* fecha de inicio: 1 mai*) fecha de trmino: 31 octobre*) lunes a viernes*) hora de inicio: 14h*) hora de trmino: 18h*) resultado en: %M1*)
SCHEDULE
___________________________________________________________________________ 2/78
Notas: los 2 parmetros DBEG y DEND definen una franja de das en el ao. esta franja puede estar solapada entre 2 aos civiles. Ejemplo: del 10 de octubre al 7 de abril. El 29 de febrero se puede utilizar en este perodo, pero se ignorar en los aos no bisiestos. los 2 parmetros HBEG y HEND definen una franja horaria en el da. esta franja puede estar solapada entre 2 das. Ejemplo: de las 22h a las 6h 10min 20s. si una de la fechas DBEG y DEND o una de las horas HBEG y HEND es errnea, es decir que no corresponde a una fecha u hora real, la salida OUT estar a 0 y el bit %S17 se pondr a 1. si el autmata de destino no posee un reloj interno (caso del TSX37-10), la salida estar a 0 y el bit sistema %S17 se pondr a 1. Cuando la precisin no es importante, es posible disminuir la carga del procesador del autmata cadenciando la llamada de la funcin SCHEDULE mediante el bit sistema %S6 o %S7.
B
Lectura de la fecha sistema (Real Time Clock) y transferencia al objeto definido por el parmetro en el formato Fecha y hora (DT). Estructura Lenguaje de contactos
%M6
OPERATE
RRTC (%MW2:4)
Ejemplo: RRTC (%MW2:4) El resultado se transfiere a la tabla de palabras internas de longitud 4: %MW2 a %MW5. Sintaxis Operador Operando
Tipo Tablas de 4 palabras en formato fecha y hora Fecha %MW:4
RRTC (fecha)
2.9-5 Actualizacin de la fecha sistema Actualizacin de la fecha sistema (Real Time Clock) y transferencia al objeto definido por el parmetro en el formato Fecha y hora (DT). Estructura Lenguaje de contactos
%M7 P %MW2:=16#4300 %MW3:=16#1732 %MW4:=16#1124 %MW5:=16#1995 WRTC (%MW2:4)
OPERATE OPERATE OPERATE OPERATE OPERATE
Lenguaje Lista de instrucciones LDR %M7 [%MW2:= 16#4300] [%MW3:= 16#1732] [%MW4:= 16#1124] [%MW5:= 16#1995] [WRTC (%MW2:4)]
___________________________________________________________________________ 2/79
B
Lenguaje Literal estructurado
IF RE %M7 THEN %MW2:= 16#4300 ; %MW3:= 16#1732 ; %MW4:= 16#1124 ; %MW5:= 16#1995 ; WRTC (%MW2:4) ; END_IF ;
Ejemplo: la nueva fecha se carga en una tabla de palabras internas de longitud 4: %MW2:4 y luego se enva al sistema mediante las funciones WRTC Sintaxis Operador Operando
Tipo Tablas de 4 palabras en formato fecha y hora Fecha %MW:4, %KW:4
WRTC (fecha)
2.9-6 Lectura de la fecha y del cdigo de parada Lectura de la fecha de la ltima palabra del autmata y del cdigo que especifica la causa de esta parada (en la 5a palabra, equivalente a %SW58, vase el captulo 3.22, seccin B). Estructura Lenguaje de contactos
%M7 PTC (%MW4:5)
OPERATE
Ejemplo: PTC (%MW4:5) El resultado se transfiere a la tabla de palabras internas de longitud 5: %MW4 a %MW8 Sintaxis Operador Operando
Tipo Tablas de 5 palabras en formato fecha y hora Fecha %MW:5
PTC (fecha)
___________________________________________________________________________ 2/80
B
2.9-7 Lectura del da de la semana Esta funcin proporciona como resultado el da actual de la semana bajo forma de un nmero de 1 a 7 transferido a una palabra (1 = lunes, 2 = martes, 3 = mircoles, 4 = jueves, 5 = viernes, 6 = sbado, 7 = domingo). Estructura Lenguaje de contactos
%M7 %MW5:=DAY_OF_WEEK()
OPERATE
Res:=DAY_OF_WEEK()
Observacin Si la funcin no pudo actualizar el resultado por causa de un error de acceso al reloj-calendario, el resultado devuelto es 0 y el bit sistema %S17 se pone a 1.
___________________________________________________________________________ 2/81
B
2.9-8 Agregar/quitar una duracin en una fecha Agregar o quitar una duracin (en dcimos de segundo) (In2) en una fecha de origen(In1). El resultado es una nueva fecha transferida a una tabla de 4 palabras. ADD_DT () = agrega una duracin Estructura Lenguaje de contactos
%M7
OPERATE
Ejemplo: %MW2:4:= ADD_DT(%MW2:4, %MD8 ) %MW2:4:= fecha de origen %MD8:= 906 (906 dcimos de segundo redondeados a 1 min. 31 s) %MW2:4:= nueva fecha Sintaxis Operadores Res:=ADD_DT (In1, In2) Res:=SUB_DT (In1, In2)
___________________________________________________________________________ 2/82
B
In2 (duracin)
Notas El principio del redondeo se aplicar al parmetro "duracin" (expresado en 1/10 de segundo) para permitir agregar a o quitar de la fecha (precisin de un segundo): - sssssssss.0 a sssssssss.4 redondeado a sssssssss.0 - sssssssss.5 a sssssssss.9 redondeado a sssssssss.0 + 1.0 El usuario debe prever en la aplicacin la gestin de los aos bisiestos. Si el resultado de la operacin est fuera del intervalo de valores autorizados, el bit sistema %S17 se pone a 1 y el valor del resultado equivale al lmite mnimo (para SUB_DT) o queda bloqueado en el mximo (para ADD_DT). Si el parmetro de entrada "fecha de origen" es ininterpretable e incoherente en el formato DT (DATE_AND_TIME), el bit sistema %S17 se pone a 1 y el valor del resultado es igual a 0001-01-01-00:00:00.
2.9-9 Agregar/quitar una duracin en una hora del da Agrega o quita una duracin en una hora del da. El resultado es una nueva hora del da que se transfiere a una doble palabra. ADD_TOD () = agrega una duracin Estructura Lenguaje de contactos
%M7 %MD8:= 906 %MD2:=ADD_TOD(%MD2,%MD8)
OPERATE OPERATE
___________________________________________________________________________ 2/83
B
Lenguaje Literal estructurado
IF %M7 THEN %MD8:= 906 ; %MD2:= ADD_TOD (%MD2, %MD8) ; END_IF ;
Ejemplo:
%MD2:= ADD_TOD (%MD2, %MD8 ) %MD2:= Hora de origen (ej.: 12:30:00) %MD8:= 906 (906 dcimos de segundo redondeados a 1 min. 31 s) %MD2:= Nueva hora (ej.: 12:31:31)
___________________________________________________________________________ 2/84
B
Calcula la desviacin de tiempo entre dos fechas. El resultado, indicado como valor absoluto, se transfiere a una doble palabra. Estructura Lenguaje de contactos
%M7 %MD10:=DELTA_D(%MD2,%MD4)
OPERATE
Ejemplo:
%MD10:= DELTA_D (%MD2, %MD4 ) %MD2:= Fecha nmero1 (ej.: 1994-05-01) %MD4:= Fecha nmero2 (ej.: 1994-04-05) ==> %MD10 = 22464000 (==> desviacin = 26 das)
Res:=DELTA_D(Fecha1,Fecha2)
Res utiliza el formato TIME, Fechas 1 y 2 el formato DATE. El formato TIME se define con una precisin de un dcimo de segundo. El formato DATE se define con una precisin de un da. La desviacin de tiempo calculada ser un mltiplo de 864000 (= 1 da = 24 h x 60 mn x 60 s x 10 dcimos). Atencin Hay rebasamiento, si el resultado excede el valor mximo admitido para una duracin (TIME). En este caso, el resultado es igual a 0 y el bit sistema %S18 se pone a 1. Si uno de los parmetros de entrada es ininterpretable e incoherente en el formato DATE, el bit sistema %S17 se pone a 1 y el resultado es igual a 0. ___________________________________________________________________________ 2/85
B
2.9-11 Desviacin entre dos fechas (con hora) Calcula la desviacin de tiempo entre dos fechas. El resultado, indicado como valor absoluto, se transfiere a una doble palabra. Estructura Lenguaje de contactos
OPERATE
Ejemplo:
%MD10:= DELTA_DT (%MW2:4, %MW6:4) %MW2:4:= Fecha nmero1(ej.: 1994-05-01-12:00:00) %MW6:4:= Fecha nmero2 (ej.: 1994-05-01-12:01:30) ==> %MD10 = 900 (==> desviacin = 1 minuto y 30 segundos)
Res:=DELTA_DT(Fecha1,Fecha2)
Res utiliza el formato TIME, Fechas 1 y 2 el formato DT. El formato TIME se define con una precisin de un dcimo de segundo. El formato DT se define con una precisin de un segundo. La desviacin de tiempo calculada ser un mltiplo de 10. Atencin Hay rebasamiento si el resultado excede el valor mximo admitido para una duracin (TIME). En este caso, el resultado es igual a 0 y el bit sistema %S18 se pone a 1. Si uno de los parmetros de entrada es ininterpretable e incoherente en el formato DT, el bit sistema %S17 se pone a 1 y el resultado es igual a 0. ___________________________________________________________________________ 2/86
B
Calcula la desviacin de tiempo entre dos horas del da. El resultado, indicado como valor absoluto, se transfiere a una doble palabra de duracin. Estructura Lenguaje de contactos
OPERATE
Ejemplo:
%MD10:= DELTA_TOD (%MD2, %MD4 ) %MD2:=Hora1 (ej.: 02:30:00 ) %MD4:= Hora2 (ej.: 02:41:00) ==> %MD10 = 6600 (==> desviacin = 11 minutos)
Res:=DELTA_TOD(Hora1,Hora2)
Res utiliza el formato TIME, Horas 1 y 2 el formato TOD. El formato TIME se define con una precisin de un dcimo de segundo. El formato TOD se define con una precisin de un segundo. La desviacin de tiempo calculada ser un mltiplo de 10. Atencin Si uno de los parmetros de entrada es ininterpretable e incoherente en el formato TOD, el bit sistema %S17 se pone a 1 y el resultado es igual a 0.
___________________________________________________________________________ 2/87
B
2.9-13 Conversin de una fecha (sin hora) en cadena de caracteres Esta instruccin convierte una fecha en cadena de caracteres (sin hora) en el formato: YYYY-MM-DD (10 caracteres). El ltimo elemento de esta cadena es el carcter terminador . Cada carcter Y,M,D simboliza un dgito. Estructura Lenguaje de contactos
%MB2:11:= DATE_TO_STRING(%MD40 )
OPERATE
3
'9'
4
'9'
5
'8'
6
'-'
7
'1'
8
'2'
9
'-'
10
'2'
11
'7'
12
Res:=DATE_TO_STRING(Fecha)
Notas: si el parmetro de entrada (fecha) es ininterpretable e incoherente en el formato DATE, el bit sistema %S17 se pone a 1 y la funcin devuelve la cadena ' **** - ** - ** ' . Si la cadena de salida es demasiado corta, se efecta un truncamiento y el bit sistema %S15 se pone a 1.
3
'9'
4
'9'
5
'8'
6
'-'
7
'1'
8
'2'
9
'-'
==> %S15 = 1
Si la cadena de salida es demasiado larga, la cadena se completa con caracteres de tipo terminador .
3
'9'
4
'9'
5
'8'
6
'-'
7
'1'
8
'2'
9
'-'
10
'2'
11
'7'
12
13
___________________________________________________________________________ 2/88
B
2.9-14 Conversin de una fecha completa en cadena de caracteres Esta instruccin convierte una fecha completa (con hora) en cadena de caracteres en el formato: YYYY-MM-DD-HH:MM:SS (19 caracteres). El ltimo elemento de esta cadena es el carcter terminador . Cada carcter Y,M,D,H,M,S simboliza un dgito. Estructura Lenguaje de contactos
OPERATE
%MB2:20:= DT_TO_STRING(%MW50:4 )
Ejemplo:
%MB 2
'1'
4
'9'
5
'8'
6
'-'
7
'1'
8
'2'
9
'-'
10
'2'
11
'7'
12
'-'
13
'2'
14
'3'
15
':'
16
'1'
17
'4'
18
':'
19
'3 '
20
'7'
21
Res:=DT_TO_STRING(Fecha)
Notas: si el parmetro de entrada (fecha) es ininterpretable e incoherente en el formato DT (DATE_AND_TIME), el bit sistema %S17 se pone a 1 y la funcin devuelve la cadena ' **** - ** - ** - **: **: ** '. Si la cadena de salida es demasiado corta, se efecta un truncamiento y el bit sistema %S15 se pone a 1.
3
'9'
4
'9'
5
'8'
6
'-'
7
'1'
8
'2'
9
'-'
==>
==> %S15 = 1
Si la cadena de salida es demasiado larga, la cadena se completa con caracteres de tipo terminador .
3
'9'
4
'9'
5
'8'
6
'-'
7
'1'
8
'2'
9
'-'
10
'2'
11
'7'
12
'-'
13
'2'
14
'3'
15
':'
16
'1'
17
'4'
18
':'
19
'3 '
20
'7'
21
22
==>
___________________________________________________________________________ 2/89
B
2.9-15 Conversin de una duracin en cadena de caracteres Esta instruccin convierte una duracin (en el formato TIME) en cadena de 15 caracteres. El resultado se descompone en horas, minutos, segundos y dcimos: HHHHHH:MM:SS.D. El ltimo elemento de esta cadena es el carcter terminador . Cada carcter H,M,S,D simboliza un dgito. La duracin mx. corresponde a 119304 horas, 38 minutos, 49 segundos y 5 dcimos. Estructura Lenguaje de contactos
OPERATE
%MB2:15:=TIME_TO_STRING(%MD40)
3
'0'
4
'7'
5
'6'
6
'5'
7
'4'
8
':'
9
'3'
10
'2'
11
':'
12
'1'
13
'0'
14
'.'
15
'3'
16
Res:=TIME_TO_STRING(Duracin)
3
'0'
4
'7'
5
'6'
6
'5'
7
'4'
8
':'
9
'3'
==> %S15 = 1
___________________________________________________________________________ 2/90
B
Si la cadena de salida es demasiado larga, la cadena se completa con caracteres de tipo terminador .
3
'0'
4
'7'
5
'6'
6
'5'
7
'4'
8
':'
9
'3'
10
'2'
11
':'
12
'1'
13
'0'
14
'.'
15
'3'
16
17
2.9-16 Conversin de una hora del da en cadena de caracteres Esta instruccin convierte una hora del da (formato TOD - TIME_OF_DAY) en cadena de 8 caracteres en el formato HH:MM:SS ms un carcter de tipo terminador . Cada carcter H,M,S simboliza un dgito. Estructura Lenguaje de contactos
OPERATE
%MB2:9:=TOD_TO_STRING(%MD40)
Ejemplo:
3
'3'
4
':'
5
'1'
6
'2'
7
':'
8
'2'
9
'7'
10
Res:=TOD_TO_STRING(hora)
B
Nota Si la cadena de salida es demasiado corta, se efecta un truncamiento y el bit sistema %S15 se pone a 1.
3
'3'
4
':'
5
'1'
6
'2'
7
':'
9
'7'
==> %S15 = 1
Si la cadena de salida es demasiado larga, la cadena se completa con caracteres de tipo terminador .
___________________________________________________________________________ 2/92
B
Esta instruccin convierte una duracin (en el formato TIME) en nmero de horasminutos-segundos, HHHH:MM:SS. Valores lmites: [0000:00:00 , 9999:59:59]. Estructura Lenguaje de contactos
%MD100:=TRANS_TIME(%MD2)
OPERATE
Ejemplo:
==> MD2
Res:=TRANS_TIME(duracin)
___________________________________________________________________________ 2/93
B
2.10 Instrucciones para tablas de bits
2.10-1 Copia de una tabla de bits en una tabla de bits Esta funcin copia bit a bit una tabla de bits en otra tabla de bits.
%M10:5:=COPY_BIT(%M20:5)
Res:=COPY_BIT (Tab)
Notas Las tablas pueden ser de tamao diferente. En este caso, la tabla resultante contiene el resultado de la funcin ejecutada con una longitud que equivale al ms pequeo de los tamaos de tabla. El resto de la tabla resultante no se modifica. Se debe prestar atencin a solapamientos entre la tabla de entrada y la tabla resultante.
___________________________________________________________________________ 2/94
B
Las funciones asociadas permiten realizar una operacin lgica bit a bit entre dos tablas de bits y almacenar el resultado en otra tabla de bits. AND_ARX OR_ARX XOR_ARX NOT_ARX : : : : Y lgica (bit a bit). O lgica (bit a bit). O exclusiva (bit a bit). complemento lgico (bit a bit) de una tabla.
%M50:10:=NOT_ARX(%M60:10)
Sintaxis Operador Res:= AND_ARX (Tab 1, Tab 2) Res:= OR_ARX (Tab 1, Tab 2) Res:= XOR_ARX (Tab 1, Tab 2) Res:= NOT_ARX (Tab 1)
Operandos
Tipo Tabla de bits Resultado (Res) %M:L, %Q:L, %I:L Tablas 1 y 2 (Tab) %M:L, %Q:L, %I:L, %Xi:L
Notas Las tablas pueden ser de tamao diferente. En este caso, la tabla resultante contiene el resultado de la funcin ejecutada con una longitud que equivale al ms pequeo de los tamaos de tabla. El resto de la tabla resultante no se modifica. Se debe prestar atencin a solapamientos entre la tabla de entrada y la tabla resultante.
___________________________________________________________________________ 2/95
B
2.10-3 Copia de una tabla de bits en una tabla de palabras La funcin copia los bits de una tabla o de una parte de tabla de bits en una tabla de palabras (o dobles palabras). En la tabla de bits, un nmero de bits (nbit) se copia a partir de una cierta fila (brow). En la tabla de palabras (o dobles palabras), la copia se efecta a partir de una fila (wrow o drow), comenzando en el bit menos significativo de cada palabra. BIT_W : copia de una tabla de bits en una tabla de palabras. BIT_D : copia de una tabla de bits en una tabla de dobles palabras.
%MD10:4:=BIT_D(%M20:29, 3, 22, 1)
___________________________________________________________________________ 2/96
Operandos
Tipo Tablas de palabras Tablas de dobles palabras Tablas de bits Palabras indexables Palabras no indexables Resultado (Res) %MW:L %MD:L %M:L, %Q:L, %I:L, %Xi.L %MW, %KW, %Xi.T %IW, %QW, %SW, %NW, Valor inmediato Expr. numrica Tabla (Tab) brow - nbit wrow o drow
Notas Si el nmero de bits que se van a tratar es superior al nmero de bits restantes desde la fila (brow) en la tabla, la funcin ejecuta la copia hasta el ltimo elemento de la tabla. Si el nmero de bits que se van copiar es superior al nmero de bits que constituyen las palabras restantes de la tabla resultante, la funcin detiene la copia en el ltimo elemento de la tabla de palabras (o dobles palabras). Un valor negativo en los parmetros brow, nbit, wrow o drow se interpretar como nulo.
___________________________________________________________________________ 2/97
B
2.10-4 Copia de una tabla de palabras en una tabla de bits La funcin copia los bits que constituyen una tabla o una parte de tabla de palabras (o dobles palabras) en una tabla de bits. En la tabla de palabras (o dobles palabras), un nmero de palabras (nwd) se copia a partir de la palabra de fila (wrow o drow). En la tabla de bits, la copia se efecta a partir de la fila (brow), comenzando en el bit menos significativo de cada palabra. W_BIT : copia de una tabla de palabras en una tabla de bits. D_BIT : copia de una tabla de dobles palabras en una tabla de bits. Estructura Lenguaje de contactos
OPERATE
%M20:36:=W_BIT(%MW10:7,2,2,3)
OPERATE
%M20:36:=D_BIT(%MD10:4,1,1,3)
___________________________________________________________________________ 2/98
Operandos
Tipo Tablas de bits Tablas de palabras Tablas de dobles palabras Palabras indexables Palabras no indexables Resultado (Res) %M:L,%Q:L,%I:L %MW:L,%KW:L %MD:L,%KD:L %MW, %KW, %Xi.T %IW, %QW, %SW, %NW, Valor inmediato Expr. numrica Tabla (Tab) wrow o drow nwd - brow
Notas Si el nmero de bits que se van a tratar es superior al nmero de bits restantes desde la fila (Wrow) en la tabla, la funcin ejecuta la copia hasta el ltimo elemento de la tabla. Si el nmero de bits que se van copiar es superior al nmero de bits que constituyen las palabras restantes de la tabla resultante, la funcin detiene la copia en el ltimo elemento de la tabla. Un valor negativo en los parmetros brow, nbit, wrow o drow se interpretar como nulo.
___________________________________________________________________________ 2/99
B
2.11 Funciones "Orphe": desplazamientos, contador
2.11-1 Desplazamientos en palabras con recuperacin de bits desplazados Las funciones efectan desplazamientos aritmticos a la izquierda o a la derecha en una palabra o doble palabra (a) segn el nmero de desplazamientos indicado (nbit). Despus del desplazamiento, el valor se almacena en (res) y los bits desplazados en (rest). WSHL_RBIT : desplazamiento a la izquierda en la palabra con recuperacin de bits desplazados. DSHL_RBIT : desplazamiento a la izquierda en la doble palabra con recuperacin de bits desplazados. WSHRZ_C : desplazamiento a la derecha en la palabra con relleno de ceros y recuperacin de bits desplazados. DSHRZ_C : desplazamiento a la derecha en la doble palabra con relleno de ceros y recuperacin de bits desplazados. WSHR_RBIT : desplazamiento a la derecha en la palabra con extensin de signo y recuperacin de bits desplazados. DSHR_RBIT : desplazamiento a la derecha en la doble palabra con extensin de signo y recuperacin de bits desplazados. Estructura Lenguaje de contactos Lenguaje Lista de instrucciones
OPERATE WSHL_RBIT(%MW20,%MW30,%MW21,%MW10) OPERATE WSHRZ_C(%MW20,%MW30,%MW21,%MW10) OPERATE DSHR_RBIT(%MD30,%MW40,%MD20,%MD10)
LD LD LD
[WSHL_RBIT(%MW20,%MW30,%MW21,%MW10)]
[WSHRZ_C(%MW20,%MW30,%MW21,%MW10)]
[DSHR_RBIT(%MD30,%MW40,%MD20,%MD10)]
___________________________________________________________________________ 2/100
B
con %MW30 = 4
WSHRZ_C(%MW20,%MW30,%MW21,%MW10)
a = %MW20 1000 0000 1111 0001 rest = %MW10 0001 0000 0000 0000
con %MW30 = 4
DSHR_RBIT(%MD30,%MW40,%MD20,%MD10)
a = %MD30 rest = %MD10 0000 0000 0000 0000 0000 0000 00 00 1111
con %MW40 = 6
PF Pf
PF Pf
Pf
Sintaxis Operador
WSHL_RBIT (a, nbit, res, rest) WSHRZ_C (a, nbit, res, rest) WSHR_RBIT (a, nbit, res, rest)
a %MW,%KW %IW, %QW, %SW, %NW Valor inmediato Expr. numrica nbit %MW,%KW, %Xi.T %IW, %QW, %SW, %NW, Valor inmediato Expr. numrica res rest %MW %QW,%SW,%NW
Operandos
Tipo Palabras indexables Palabras no indexables
___________________________________________________________________________ 2/101
B
Sintaxis Operador DSHL_RBIT (a, nbit, res, rest) DSHRZ_C (a, nbit, res, rest) DSHR_RBIT (a, nbit, res, rest)
Operandos
Tipo Dobles palabras indexables Dobles palabras no indexables Palabras indexables Palabras no indexables a %MD,%KD %ID,%QD,%SD Valor inmediato Expr. numrica %MW, %KW, %Xi.T %IW, %QW, %SW, %NW, Valor inmediato Expr. numrica nbit res rest %MD %QD,%SD
Notas Si el valor del parmetro (nbit) no se encuentra entre 1 y 16 para los desplazamientos en la palabra, o entre 1 y 32 para los desplazamientos en la doble palabra, las salidas (res) y (rest) no son significativas y el bit sistema %S18 se pone a 1.
___________________________________________________________________________ 2/102
B
La funcin efecta un contaje/descontaje con indicacin de rebasamiento. Esta funcin se ejecuta nicamente si la entrada de validacin (en) est en el estado 1. Dos entradas separadas (cu y cd) permiten contar y descontar sucesos. La salida (Qmn) se pone a 1 cuando se alcanza el umbral mnimo (mn). La salida (Qmx) se pone a 1 cuando se alcanza el umbral mximo (mx). El parmetro (pv) determina el valor inicial del contaje. El parmetro (cv) determina el valor actual del contaje. Una palabra de 16 bits (mwd) permite almacenar el estado de las entradas cu y cd (bit 0 para el almacenamiento de cu y bit 1 para el almacenamiento de cd). Estructura Lenguaje de contactos
OPERATE
Ejemplo:
SCOUNT (%M9,%MW10,%M11,%M12,%MW11,%MW12,%M16,%M10,%MW15,%MW20) con %MW10 (pv) = 5, %MW11 (mn) = 0, %MW12 (mx) = 7
en : %M9
cd : %M12
mcd : %MW20:X1
cu : %M11
mcu : %MW20:X0
Qmax : %M10
___________________________________________________________________________ 2/103
B
Sintaxis Operador Operandos
Tipo Bits Palabras indexables Palabras no indexables en, cu, cd Qmn, Qmx pv, mn, mx cv, mwd
SCOUNT (en, pv, cu, cd, mn, mx, Qmn, Qmx, cv, mwd)
%I,%Q,%M,%S, %I,%Q,%M %BLK,%.:Xk %MW,%KW, %Xi.T %IW, %QW, %SW, %NW, Valor inm. Expr. numrica %MW %QW,%SW %NW
Notas Si (en) = 0, la funcin ya no es valida y en cada llamada hay: Qmn = Qmx = 0 mcu = mcd = 0 cv = pv Si mx > mn: cv > mx ---> Qmx = 1 y Qmn = 0 mn < cv < mx ---> Qmx = Qmn = 0 cv < min ---> Qmx = 0 y Qmn = 1 Si mx < mn: mx < cv < mn ---> Qmx = 1 y Qmn = 0 cv < mx ---> Qmx = 0 y Qmn = 1 cv > mn ---> Qmx = 1 y Qmn = 0 Si mx = mn: cv < mn y mx ---> Qmx = 0 y Qmn = 1 cv > mn y mx ---> Qmx = 1 y Qmn = 0 Una modificacin del parmetro (pv) con (en) en el estado 1 no tiene ninguna incidencia en el funcionamiento Un valor negativo en los parmetros (pv) y (mn) se interpreta como un valor nulo. Un valor inferior a 1 en el parmetro (mx) se interpreta como igual a 1.
___________________________________________________________________________ 2/104
B
Las funciones efectan desplazamientos circulares a la izquierda o a la derecha en una palabra o una doble palabra. ROLW: desplazamiento circular hacia la izquierda en una palabra con clculo de nmero de desplazamientos RORW: desplazamiento circular hacia la derecha en una palabra con clculo de nmero de desplazamientos ROLD: desplazamiento circular hacia la izquierda en una doble palabra con clculo de nmero de desplazamientos RORD: desplazamiento circular hacia la derecha en una doble palabra con clculo de nmero de desplazamientos Estructura Lenguaje de contactos
%M0
%MW0:=ROLW(%MF10,%MW5)
%I3.2
%MD8:=RORD(%MD50,%MW5)
___________________________________________________________________________ 2/105
B
Sintaxis Operadores ROLW, RORW, ROLD, RORD Operandos ROLW, RORW,
Tipo Palabras indexables Palabras no indexables Operando 1 %MW (Op1) Operando 2 (Op2) Nmero de posicin(n) %MW,%KW,%Xi.T Val.inm.,%IW,%QW, %SW,%NW,%BLK Expr. num. %MW,%KW,%Xi.T Val.inm.,%IW,%QW, %SW,%NW,%BLK Expr. num.
Op1:=Operador(Op2,n)
Observacin De preferencia, se utilizar las instrucciones de base ROL y ROR (cuando el nmero de desplazamiento es esttico, ya que estas instrucciones son ms eficaces.
___________________________________________________________________________ 2/106
Estas funciones de temporizacin contrariamente a los bloques de funcin no estn limitadas en nmero y se pueden utilizar en el cdigo de los bloques de funcin DFB. Se proporcionan 4 funciones de temporizacin. FTON: temporizacin de conexin FTOF: temporizacin de desconexin FTP: temporizacin de impulsin FPULSOR: seal rectangular 2.12-2 Funcin de temporizacin de conexin FTON Esta funcin permite manejar los retrasos de conexin. Este retraso puede programarse.
Caractersticas
Entrada "Activacin" Valor de preseleccin EN PT En flanco ascendente inicia la temporizacin Palabra de entrada que determina la duracin (en centsimas de segundo) de la temporizacin. Permite definir una duracin mxima de 5 min y 27 s con una precisin de 10 ms. (1) Salida puesta a 1 al final de la temporizacin. Palabra de salida que se incrementa de 0 a PT cuando transcurrelatemporizacin. Doble palabra para memorizacin de los estados internos. Asociar a esta doble palabra una variable de la aplicacinexclusivamentereservadaparaesteefecto.
Q ET PRIV
___________________________________________________________________________ 2/107
B
En un flanco ascendente en la entrada EN, el temporizador se activa: su valor actual ET se incrementa de 0 a PT (centsimo de segundo). El bit de salida Q pasa a 1 cuando el valor actual alcanza PT, y luego permanece en 1 mientras la entrada EN est en 1. Cuando la entrada EN est en 0, el temporizador se detiene, aunque est en curso de evolucin : ET toma el valor 0. Estructura Lenguaje de contactos
%I1,2
OPERATE FTON (%I3.0,1000,%Q4.0,%MW2,%MD8)
EN
Q PT ET
%MD
___________________________________________________________________________ 2/108
B
Esta funcin permite manejar los retrasos en la desconexin. Este retraso puede programarse. Sintaxis Operador FTOF (EN, PT, Q, ET, PRIV)
Caractersticas
Entrada "Activacin" Valor de preseleccin EN PT En flanco ascendente inicia la temporizacin Palabra de entrada que determina la duracin (en centsimas de segundo) de la temporizacin. Permite definir una duracin mxima de 5 min y 27 s con una precisin de 10 ms. (1) Salida puesta a 1 en flanco ascendente de EN y puesta a cero al final de la temporizacin. Palabra de salida que se incrementa de 0 a PT cuando transcurre la temporizacin. Doble palabra para memorizacin de los estados internos. Asociar a esta doble palabra una variable de la aplicacinexclusivamentereservadaparaesteefecto.
Q ET PRIV
El valor actual ET toma el valor 0, en un flanco ascendente de la entrada EN (aunque el temporizador est en curso de evolucin). El temporizador se activa en flanco descendente en la entrada EN. Luego, el valor actual se incrementa de 0 a PT (centsimo de segundo). El bit de salida Q pasa a 1 cuando se detecta un flanco ascendente en la entrada EN y vuelve a caer a 0 cuando el valor actual alcanza PT. Estructura Lenguaje de contactos
%I1,2
EN
Q PT ET
B
2.12-4 Funcin de temporizacin de impulsin FTP Esta funcin permite elaborar una impulsin de duracin precisa. Esta duracin es programable. Sintaxis Operador FTP (EN, PT, Q, ET, PRIV)
Caractersticas
Entrada "Activacin" Valor de preseleccin EN PT En flanco ascendente inicia la temporizacin Palabra de entrada que determina la duracin (en centsimas de segundo) de la temporizacin. Permite definir una duracin mxima de 5 min y 27 s con una precisin de 10 ms. (1) Salida puesta a 1 al final de la temporizacin. Palabra de salida que se incrementa de 0 a PT cuando transcurre la temporizacin. Doble palabra para memorizacin de los estados internos. Asociar a esta doble palabra una variable de la aplicacinexclusivamentereservadaparaesteefecto.
Q ET PRIV
En un flanco ascendente en la entrada EN, el temporizador se activa: (si el temporizador todava no est en curso de evolucin) su valor actual ET se incrementa de 0 a PT (centsima de segundo). El bit de salida Q pasa a 1 apenas se activa el temporizador y cae a 0 cuando el valor actual alcanza PT. Cuando la entrada EN y la salida Q estn a 0, PT toma el valor 0. Este monostable no puede reactivarse. Estructura Lenguaje de contactos
%I1,2
OPERATE FTP (%I3.0,1000,%Q4.0,%MW2,%MD8)
EN
Q PT ET
B
Esta funcin permite generar una seal rectangular peridica cuyo ancho de intervalo a 1 y de intervalo a 0 se puede hacer variar con el programa mediante 2 temporizadores: TON: temporizacin a la subida (para el intervalo a 1). TOFF: temporizacin a la bajada (para el intervalo a 0). Sintaxis Operador Caractersticas
Entrada "Activacin" Valor de preseleccin (intervalo a 1) EN TON En flanco rectangular, inicia la generacin de la seal rectangular. Palabra de entrada que determina la duracin en centsimas de segundo) del intervalo a 1. Permite definir una duracin mxima de 5 min y 27 s con una precisin de 10 ms. (1) Palabra de entrada que determina la duracin en centsimas de segundo) del intervalo a 0. Permite definir una duracin mxima de 5 min y 27 s con una precisin de 10 ms. (1) Salida intervalo a 0 en la duracin TOFF, a 1 en la duracin TON. Palabra de salida que se incrementa de 0 a TON+TOFF cuando transcurre el temporizador. Doblepalabraparamemorizacindelosestadosinternos. Asociar a esta doble palabra una variable de la aplicacin exclusivamente reservada para este efecto.
TOFF
Q ET PRIV
(1) la modificacin de estas palabras surte efecto durante la temporizacin. La suma TOFF+TON tiene una duracin mxima de 5 min y 27 s.
En un flanco montante en la entrada EN, se inicia la generacin de la seal rectangular: (si la seal todava no est en curso de evolucin) su valor actual ET se incrementa de 0 hacia TON+TOFF (centsimas de segundo). El bit de la salida Q permanece en 0 mientras no haya transcurrido la temporizacin TOFF; pasa a 1 y permanece en 1 durante la temporizacin TON, y vuelve a pasar a 0 mientras la temporizacin TOFF no haya transcurrido, etc , y ello hasta que la entrada EN vuelva a pasar a 0.
TOFF TON
TOFF TON
TOFF
TON+TOFF
___________________________________________________________________________ 2/111
%MD
___________________________________________________________________________ 2/112
Estas funciones permiten archivar datos por programa en un rea dedicada de la tarjeta de memoria del usuario. Ejemplos de aplicacin: almacenamiento automtico, datos (consignaciones de estado, registros, ...) de la aplicacin en la tarjeta de memoria de usuario del autmata y envo de los datos a travs de teletransmisin (va mdem) hacia el sitio central. copia de seguridad de las validaciones de produccin en la tarjeta de memoria usuario del autmata. Referencia de las tarjetas de memoria que garantizan la funcin adicional de archivado delos datos:
Referencias Tipo/Capacidad Area de programa de aplicacin Area de archivado (tipo RAM) 128K16 128K16 128K16 640K16 128K16 Compatibilidad de procesadores TSX P57 102 TSX P57 2E2 TPMX P57 102 TPMX P57 202 TPCX 57 1012 TSX 37 21/22 S S No No S S S S S S TSX P57 3E2 TSX P57 4E2 TPMX P57 352 TPMX P57 452 TPCX 57 3512 S S S S S
TSX MRP 2128P RAM/128 K16 TSX MRP 3256P RAM/256 K16 TSX MFP 232P Flash Eprom/ 32 K16 Flash Eprom/ 64K16
128K16
Nota: 10 palabras del rea dedicada de archivado son reservadas por el sistema.
Tres funciones permiten el archivado y la restitucin de los datos: SET_PCMCIA para inicializar a un valor todo o parte del rea de archivado de la tarjeta de memoria WRITE_PCMCIA para escribir los datos en el rea de archivado de la tarjeta de memoria REDIR_PCMCIA para leer los datos en el rea de archivado de la tarjeta de memoria
Nota: el acceso a los datos almacenados en el rea de archivado de la tarjeta de memoria slo es posible desde la aplicacin residente en el autmata a travs de estas 3 funciones de base. En ningn caso una estacin remota puede acceder a ella directamente a travs de la red o de un bus de comunicacin.
___________________________________________________________________________ 2/113
2.13-2 Inicializacin del rea de archivado La funcin SET_PCMCIA permite inicializar en el valor deseado toda o parte del rea de archivado de la tarjeta de memoria del usuario. Esta funcin utiliza 4 parmetros: direccin: direccin del rea de archivado a partir de la cual se efecta la inicializacin n_palabras: nmero de las palabras a inicializar valor: valor de inicializacin estado: cdigo que proporciona el resultado de la ejecucin del comando de inicializacin.
Tarjeta de memoria del usuario
SET_PCMCIA
1500 1529
En el ejemplo anterior: direccin = %MD0 , %MD0 que contiene el valor 1500 n_palabras = %MW5, %MW5 que contiene el valor 30 origen= %MW10, %MW10 que contiene el valor 100
Lenguaje literal
IF RE %I1.3 THEN SET_PCMCIA (%MD0, %MW5, %MW10,%MW2); END_IF;
___________________________________________________________________________ 2/114
B
Sintaxis Funcin Parmetros
Tipo Palabras indexables Palabras no indexables Palabras dobles indexables %MD, Val. inmed. direccin n_palabras valor %MW Val. inmed. estado %MW %MW Val. inmed. %QW,%SW,%NW
Codificacin del parmetro estado devuelto despus de la ejecucin del comando de inicializacin
Valor (en hexadecimal) 0000 0201 0202 0204 0241 0242 0401 Significado inicializacin correctamente efectuada sin rea de archivo en la tarjeta de memoria falla en la tarjeta de memoria tarjeta de memoria protegida contra escritura direccin negativa direccin + N_palabras-1 > a la direccin ms alta de la tarjeta de memoria N_palabras= 0 o negativo
___________________________________________________________________________ 2/115
B
2.13-3 Escritura de los datos en el rea de archivado La funcin WRITE_PCMCIA permite transferir datos de la memoria RAM del autmata (palabras %MW) en la rea de archivado de la tarjeta de memoria del usuario. Esta funcin utiliza 4 parmetros: WRITE_PCMCIA (dir_des, n_palabras, origen, estado) dir_des: direccin del rea de archivado a partir de la cual se almacenarn los datos n_palabras: nmero de palabras a almacenar origen: palabra que contiene la direccin de inicio del rea a transferir en la tarjeta de memoria estado: cdigo que proporciona el resultado del comando de escritura.
%MW40 %MW69
En el ejemplo anterior: dir_des = %MD0 , %MD0 contiene el valor 1500 n_palabras = %MW5, %MW5 contiene el valor 30 origen = %MW20 contiene el valor 40
Lenguaje literal
IF RE %I1.3 THEN WRITE_PCMCIA (%MD0, %MW5, %MW20,%MW2); END_IF;
___________________________________________________________________________ 2/116
B
Sintaxis Funcin Parmetros
Tipo Palabras indexables Palabras no indexables Palabras dobles indexables %MD, Val. inmed. dir_des n_palabras origen %MW Val. inmed. estado %MW %MW Val. inmed. %QW,%SW,%NW
Codificacin del parmetro estado devuelto despus de la ejecucin del comando de escritura:
Valor (en hexadecimal) 0000 0102 0104 0201 0202 0204 0241 0242 0401 Significado escritura correctamente efectuada origen + N_palabras-1 > nmero mximo de %MW dclarado en el autmata ninguna aplicacin vlida o ningn %MW en el autmata sin rea de archivo en la tarjeta de memoria falla de tarjeta de memoria tarjeta de memoria protegida contra escritura dir_des < 0 dir_des + N_palabras-1 > la direccin ms alta de la tarjeta de memoria N_palabras= 0
___________________________________________________________________________ 2/117
B
2.13-4 Lectura de los datos en el rea de archivado La funcin REDIR_PCMCIA permite transferir datos del rea de archivado de la tarjeta de memoria del usuario en la memoria RAM del autmata (palabras %MW). Esta funcin utiliza 4 parmetros: REDIR_PCMCIA (dir_origen, n_palabras, dest, estado) dir_origen: direccin de la rea de archivado en la cual se almacenan los datos a leer n_palabras: nmero de palabras a leer dest: palabra que contiene la direccin de inicio del rea transferida por la tarjeta de memoria estado: cdigo que proporciona el resultado de la ejecucin del comando de lectura.
Memoria RAM del autmata Tarjeta de memoria del usuario
%MW40
%MW69
En el ejemplo anterior: dir_origen = %MD0 , %MD0 que contiene el valor 1500 n_palabras = %MW5, %MW5 que contiene el valor 30 dest = %MW20 que contiene el valor 40
Lenguaje literal
IF RE %I1.4 THEN REDIR_PCMCIA (%MD0, %MW5, %MW20,%MW2); END_IF;
___________________________________________________________________________ 2/118
B
Sintaxis Funcin Parmetros
Tipo Palabras indexables Palabras no indexables Palabras dobles indexables %MD, Val. immd. dir_origen n_palabras dest %MW Val. immd. estado %MW %MW Val. immd. %QW,%SW,%NW
Codificacin del parmetro estado devuelto despus de la ejecucin del comando de escritura:
Valor (en hexadecimal) 0000 0102 0104 0201 0202 0204 0241 0242 0401 Significado lectura correctamente efectuada dest + N_palabras-1 > nmero mximo de %MW declarado en el autmata ninguna aplicacin vlida o ningn %MW en el autmata sin rea de archivo en la tarjeta de memoria falla de tarjeta de memoria tarjeta de memoria protegida contra escritura dir_origen < 0 dir_origen + N_palabras-1 > la direccin ms alta de la tarjeta de memoria N_palabras= 0
___________________________________________________________________________ 2/119
___________________________________________________________________________ 2/120
33 B
%S40 a %S47 0 = Falla E/S de un rack TSX 57 %S49 %S50 1 =reactivacin salidas estticas disyuntadas 1 = Actualizacin de la fecha y hora
___________________________________________________________________________ 3/1
Bit %S51 %S59 %S60 %S66 (2) %S67 %S68 %S69 (2) %S70 %S73 (2) %S74 (2) %S80 %S90 %S92 %S94 (3) %S95 (3) %S96 (2) %S97 (2) %S98 (2) %S99 (2) %S100 %S101 %S102 %S118 %S119
Funcin 1 = puesta en hora del reloj-calendario 1 = validacin del ajuste de la fecha actual Comando de la arquitectura redundante 1 = indicador visual de la batera siempre apagado 0 = pila de la tarjeta de memoria en servicio 0 = pila de guardado (procesador) en servicio 1 = validacin del modo de visualizacin memoria "WORD" en los visualizadores 1 = actualizacin de los datos en el bus As-i o enlace TSX Nano 1 = paso al modo protegido en el bus AS-i 1 = guardado configuracin presente en el bus AS-i 1 = reinicializacin de los contadores de mensajes 1 = actualizacin de las palabras comunes 1 = paso a modo de medicin de rendimiento de las funciones de comunicacin 1 = guardado de los valores de ajuste de bloques DFB 1 = restitucin de los valores de ajuste de bloques DFB 0 = guardado del programa de aplicacin no vlido 1 = guardado del programa de aplicacin vlido 0 = guardado de los %MW no vlido 1 = guardado de los %MW vlido 1 = sustitucin del botn del acoplador TSX SAZ 10 por una entrada TON 1 = sustitucin del botn del bloque de visualizacin centralizada por una entrada TON 1 = restitucin de los valores de ajuste de los bloques DFB 1 = buffer de diagnstico configurado 1 = buffer de diagnstico lleno 0 = falla de E/S FIPIO 0 = falla de E/S en rack
Est. inic. Gestin(1) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 S U U o U->S U S S U S->U U->S U->S U->S S->U U U->S U->S S S U U S S S S S
(1) S = administrado por el sistema, U = administrado por el usuario, U->S = puesto a 1 por el usuario, puesto a 0 por el sistema, S->U = puesto a 1 por el sistema, puesto a 0 por el usuario. (2) nicamente en el TSX 37. (3) nicamente en los TSX/PMX/PCX 57.
___________________________________________________________________________ 3/2
B
3.1-2 Descripcin detallada de bits del sistema Los autmatas TSX 37 y TSX 57 disponen de bits sistema %Si que indican los estados del autmata o le permiten actuar sobre el funcionamiento del mismo. Estos bits pueden probarse en el programa de usuario con el fin de detectar todos los eventos de funcionamiento antes de realizar un procedimiento determinado de tratamiento. Algunos de ellos deben ser inicializados a su estado inicial o normal por el programa. Por tanto, los bits sistema que son reiniciados con su valor inicia o normal por el sistema no deben ser reiniciados por el programa o el terminal.
Bits sistema %S0 Funcin Rearranque en fro Designacin Normalmente a estado 0, es puesto a estado 1 por: reinicio de sector con parte de datos (batera por defecto), programa usuario, terminal, cambio de tarjeta de memoria, pulsar el botn RESET. Este bit es puesto a 1 durante el primer ciclo completo. Se pone a 0 de nuevo antes del ciclo siguiente. Funcionamiento : vase seccin A, captulo 1.4. Normalmente a estado 0, es puesto a estado 1 por: reinicio de sector con guardado de datos, programa usuario, terminal. Se pone de nuevo a 0 por el sistema al final del primer ciclo completo y antes del ajuste de las salidas. Funcionamiento : vase seccin A, captulo 1.4. Bits cuyo cambio de estado es regulado por un reloj interno. Son asncronos respecto al ciclo del autmata. Ejemplo: %S4 Normalmente en el estado 1, este bit se utiliza para comprobar el cableado cuando el autmata TSX 37 est "no configurado" estado 1: las salidas se fuerzan a 0, estado 0: las salidas pueden modificarse desde un terminal de ajuste. Normalmente en el estado 0. Puede ponerse a 1 desde el programa o el terminal: estado 1: fuerza a la posicin de retorno de salidas del autmata, (bus X, FIPIO, AS-i) estado 0: las salidas se actualizan normalmente.
5ms 5ms
%S1
Rearranque en caliente
%S9
Normalmente en el estado 1. Puede ponerse a 0 cuando se detecta una falla de 'E/S de un mdulo en rack o de un mdulo distante (FIPIO) (configuracin no conforme, falla de intercambio, falla hardware). El bit %S10 se pone a 1 apenas desaparece la falla. ___________________________________________________________________________
%S10
3/3
B
Bits sistema %S11 Funcin Rebasamiento del watchdog Designacin Normalmente en el estado 0. El sistema lo pone a 1 cuando el tiempo de ejecucin de una tarea es superior al tiempo de ejecucin mximo (watchdog) declarado en la configuracin. El rebasamiento del watchdog tiene como consecuencia el paso a STOP del autmata; la aplicacin se detiene (indicador ERR intermitente). Normalmente en el estado 0. El sistema lo pone a 1 durante el primer ciclo despus de la puesta a RUN del autmata. Normalmente en el estado 0. Se pone a 1 cuando el rea destino de una transferencia de cadena de caracteres no tiene el tamao suficiente para recibir la cadena. El usuario debe poner este bit a 0. Normalmente en estado 1. El sistema lo pone a 0 cuando ocurre una falla de un mdulo de E/S en rack o remoto en FIPIO configurado en la tarea. El usuario debe poner este bit a 1. Cada tarea maneja su propio bit %S16. Normalmente en el estado 0. El sistema lo pone a 1: durante un desplazamiento que contiene el estado del ltimo bit, rebasamiento en aritmtica sin signo (fechas). El usuario debe poner este bit a 0.
%S13 %S15
%S16
%S17
%S18
Rebasamiento Normalmente en el estado 0. Se pone a 1 en caso de rebasao error miento de capacidad durante una operacin en 16 bits, es decir aritmtico resultado superior a + 32767 o inferior a - 32768, en simple longitud, resultado superior a + 2 147 483 647 o inferior a - 2 147 483 648, en doble longitud, resultado superior a +3.402824E+38 o inferior a -3.402824E+38, en flotante (versin software > 1.0), divisin por 0, raz de un nmero negativo, forzado a un paso inexistente en un programador cclico, apilamiento de un registro lleno, desapilamiento de un registro vaco, Debe ser probado por el programa de usuario despus de cada operacin que presenta un riesgo de rebasamiento. Si ste ocurre, el usuario debe poner el bit a 0. Rebasamiento perodo de tarea (exploracin peridica) Normalmente en el estado 0. El sistema pone este bit a 1 en caso de rebasamiento del perodo de ejecucin (tiempo de ejecucin de la tarea superior al perodo definido por el usuario en la configuracin o programado en la palabra %SW asociada a la tarea). El usuario repone este bit a 0. Cada tarea efecta la gestin de su propio bit %S19.
%S19
___________________________________________________________________________ 3/4
Rebasamiento Normalmente en el estado 0. Se pone a 1 cuando la direccin del de ndice objeto indexado es inferior a 0 o excede el nmero de objetos declarados en la configuracin. Debe ser probado por el programa de usuario despus de cada operacin que presenta un riesgo de rebasamiento; si ste ocurre, el bit se pone a 0. Inicializacin El usuario efecta la gestin de este bit para inicializar el Grafcet (puesta a 1, de preferencia en el tratamiento preliminar). El sistema lo pone a 0 despus de inicializar Grafcet (al fin del tratamiento preliminar, al evaluar el nuevo estado del Grafcet). La inicializacin del Grafcet consiste en desactivar todas las etapas activas y activar etapas iniciales. Al arrancar en fro, el sistema pone este bit a 1 durante el tratamiento preliminar. Normalmente en el estado 0. El programa puede poner este bit a 1 nicamente en el tratamiento preliminar. En el estado 1, desactiva todas las etapas del Grafcet. El Sistema lo pone a 0 despus de la toma en cuenta al final del tratamiento preliminar. Normalmente en el estado 0. La puesta a 1 de %S23 tiene como consecuencia la conservacin del estado de los Grafcet. Cualquier que sea el valor de las receptividades debajo de las etapas activas, los Grafcet no evolucionan. La inmovilizacin se mantiene mientras el bit %S23 est a 1. El programa de usuario efecta la gestin de este bit; se pone a 1 o a 0 nicamente en el tratamiento preliminar. Normalmente en el estado 0. La puesta a 1 de %S24 tiene como consecuencia la puesta a cero de las macroetapas elegidas en la tabla de 4 palabras sistema %SW22 a %SW25. El sistema lo vuelve a poner a 0 despus de tomar en cuenta el fin del tratamiento preliminar. Normalmente en el estado 0. El sistema pone este bit a 1 cuando las posibilidades de activacin (etapas o transiciones) se excedeno cuando se ejecuta un grfico incorrecto (remisin de destino en una etapa que no pertenece al grfico). Un rebasamiento tiene como consecuencia el paso a STOP del autmata. Este bit se pone a 0 al inicializar el terminal. Normalmente en el estado 1. Cuando el usuario lo pone a 0, la tarea maestra se desactiva. Normalmente en el estado 1. Cuando el usuario lo pone a 0, la tarea rpida se desactiva. Normalmente en el estado 1. Cuando el usuario lo pone a 0, los sucesos se inhiben. El sistema pone este bit a 1 para indicar que es imposible tratar uno o varios sucesos por causa de saturacin de las colas de espera. El usuario vuelve a situar este bit a 0.
%S21
%S22
%S23
%S24
%S26
%S30
Activacin/ desactivacin tarea maestra Activacin tarea rpida Validacin/ inhibicin sucesos Saturacin en el tratamiento de sucesos
%S31 %S38
%S39
___________________________________________________________________________ 3/5
Funcin Falla E/S (racks) (1) estticas desconectadas Reactivacin de salidas (2)
Designacin Los bits %S40 a %S47 se asignan respectivamente a los racks 0 a 7. Normalmente en el estado 1, cada bit pasa a 0 al producirse una falla de E/S del rack correspondiente. El bit se pone a 1 al desaparecer la falla. Normalmente en el estado 0. El usuario puede ponerlo a 1 para solicitar la reactivacin cada 10 s desde la aparicin de la falla de las salidas estticas desconectadas por causa de sobreintensidad o de cortocircuito. Normalmente en el estado 0. Puede ponerse a 1 o a 0 va programa o va terminal: en el estado 0: acceso a la fecha y hora mediante la lectura de las palabras sistema %SW50 a 53, en el estado 1: actualizacin de la fecha y la hora mediante la escritura de las palabras sistema %SW50 a 53.
%S50
%S51
Prdida de Este bit, de cuya gestin se encarga el sistema, indica el estado la hora del 1 cuando el reloj-calendario est ausente o cuando las palabras reloj-calendario sistema relativas al reloj-calendario no son significativas; en este caso es necesario ajustar la hora, con lo que el bit pasa a 0 automticamente. Actualizacin de la fecha y hora mediante la palabra %SW59 Normalmente en el estado 0. Puede ponerse a 1 o a 0 desde el programa o el terminal: en el estado 0: el sist. no efecta la gestin de la pal. sist. SW59, en el estado 1: el sistema efecta la gestin de los flancos en la palabra %SW59 para ajustar la fecha y hora (por incrementos).
%S59
%S60
Comando de bit del sistema utilizado en el caso de una instalacin de una la arquitectura arquitectura redundante (vase designacin y utilizacin en el redundante manual de "arquitectura Premium redundante"). Gestin del indicador de la batera Normalmente en el estado 0. Puede ponerse a 1 o a 0 va programa o va terminal. Sirve para que se encienda o no el indicador luminoso de la batera, en caso de falle la pila de salv.: en el estado 0: se enciende el indicador de la batera cuando falta la pila de guardado o est en falla en el estado 1: el indicador de la batera est siempre apagado.Al producirse un rearranque en fro, el sistema pone %S66 a 0.
%S66 (1)
%S67
Estado Permite controlar el estado de funcionamiento de la pila de pila respaldo de la tarjeta de memoria RAM: tarjeta memoria en el estado 0: batera presente y en servicio, en el estado 1: batera ausente o fuera de servicio. Estado pila procesador Permite controlar el estado de funcionamiento de la batera de respaldo de datos y del programa en la memoria RAM: en el estado 0: batera presente y en servicio, en el estado 1: batera ausente o fuera de servicio.
%S68
(1) Slo en los autmatas TSX/PMX/PCX 57. (2) Slo en el autmata TSX 37. ___________________________________________________________________________
3/6
B
Normalmente en el estado 0. Puede ponerse a 1 o a 0 desde el programa o el terminal: en el estado 0: visualizacin de los estados de E/S en los indicadores del autmata (indicador WRD apagado), en el estado 1: visualizacin de los datos de usuario (indicador WRD encendido). (Vase las palabras %SW67,68 y 69.) El sistema pone este bit a 1 en cada fin de ciclo del enlace TSX Nano o de exploracin del bus AS-i. Al conectar la potencia, indica que se han actualizado todos los datos al menos una vez y que, por consiguiente, son significativos. El usuario vuelve a situar este bit a 0. Normalmente en el estado 0. El usuario pone en 1 este bit para pasar al modo protegido en el bus AS-i. Previamente, el bit %S74 deber encontrarse en el estado 1. Este bit slo se utiliza durante las comprobaciones de cableado, carece de aplicacin en el autmata.
%S70
%S73
%S74
%S80 %S90
Guardado configuracin presente en el bus AS-i Puesta a 0 contadores de mensajes Actualizacin de palabras comunes
%S92
Normalmente en el estado 0. El usuario pone en 1 este bit para activar la guardado de la configuracin presente en el bus AS-i. Este bit slo se utiliza durante las comprobaciones de cableado, carece de aplicacin en el autmata. Normalmente en el estado 0. El usuario puede ponerlo a 1 para poner a cero los contadores de mensajes %SW80 a %SW86. Normalmente en el estado 0. Se pone a 1 al recibir palabras comunes provenientes de otra estacin en la red. Puede ponerse a 0 desde el programa o el terminal para verificar el ciclo de intercambio de palabras comunes. Paso en modo Normalmente en el estado 0, este bit puede ser puesto a 1 por el medida de usuario para posicionar las funciones de comunicacin en modo funcin de medicin de rendimiento. El parmetro Time-out de las comunicacin funciones de comunicacin muestra entonces el tiempo de intercambio ida y vuelta en decena de ms si ese tiempo <10s, sino no significativo). Guardado de Normalmente en el estado 0. El usuario puede ponerlo a 1 para los ajustes DFB guardar los valores de ajuste de los bloques de funcin usuario. Restitucin de Normalmente en el estado 0. El usuario puede ponerlo a 1 para los ajustes DFB restituir los valores de ajuste de los bloques de funcin del usuario. Validez de la 0 -> guardado del programa de aplicacin no vlido, guardado 1 -> guardado del programa de aplicacin vlido. del programa Este bit es accesible en lectura en todo momento (va programa de aplicacin o en ajuste) y, concretamente, despus de un rearranque en fro o en caliente. Resulta significativo respecto a una aplicacin de memoria de seguridad realizada mediante PL7 en la Flash EPROM interna. Validez de la guardado de los %MW 0 -> guardado de los %MW no vlido, 1 -> guardado de los %MW vlido. Este bit es accesible en lectura en todo momento (va programa o en ajuste) y, concretamente, despus de un rearranque en fro o en caliente. Desplazamiento Normalmente en el estado 0. Este bit lo administra el usuario: del botn del 0 -> botn del acoplador TSX SAZ 10 activo, acoplador 1 -> botn, del acoplador TSX SAZ 10, sustituido por una TSX SAZ 10 entrada TON (vase %SW98).
%S97
%S98
___________________________________________________________________________ 3/7
B
Bits sistema %S99 Funcin Designacin Desplazamiento Normalmente en el estado 0. Este bit lo administra el usuario: del botn del 0 -> botn del bloque de visualizacin centralizada activo, bloque de 1 -> botn pulsador, del bloque de visualizacin centralizada, visualizacin sustituido por una entrada TON (vase la palabra %SW99). Protocolo toma terminal El sistema lo pone a 0 o a 1 segn el estado del shunt INL/DPT en la toma de consola: si el shunt est ausente (%S100=0), se utiliza el protocolo UNITELWAY maestro, si el shunt est presente (%S100=1), se utiliza el protocolo indicado por la configuracin de la aplicacin. Este bit es puesto a 1 por el sistema cuando la opcin de diagnstico est configurada, un buffer de diagnstico destinado al almacenamiento de los errores, procedentes de los DFB de diagnstico, se reserva entonces. Este bit es puesto a 1 por el sistema cuando el buffer que recibe los errores de los bloques de funcin de diagnstico est lleno. Normalmente a 1, el sistema pone estos bits a 0 cuando aparece una falla en un equipo conectado en el bus FIPIO. Cuando la falla desaparece, el sistema vuelve a poner este bit 1. Normalmente a 1, el sistema pone a 0 estos bits de E/S en rack cuando ocurre una falla en mdulo de E/S implantado en uno de los racks. Cuando la falla desaparece, el sistema vuelve a poner este bit a 1.
%S100
%S101
Buffer de diagnstico configurado Buffer de diagnstico lleno Falla general de E/S FIPIO Falla general de entradas/ salidas en Rack
%S102
%S118
%S119
___________________________________________________________________________ 3/8
Gestin del modo de visualizacin "Display" SyU %SW67: lectura de los botones pulsadores %SW68: ndices actual y mximo de los "objetos visualizados" %SW69: nmero del primer objeto en el rea visualizada %SW80 No de mensajes emitidos por el sistema hacia la toma de terminal SyU %SW81 No de mensajes recibidos por el sistema desde la toma de terminal %SW82 No de mensajes emitidos por el sist. hacia el acoplador PCMCIA %SW83 No de mensajes recibidos por el sist. desde el acoplador PCMCIA %SW84 No de telegramas emitidos por el sistema %SW85 No de telegramas recibidos por el sistema %SW86 No de mensajes rehusados por el sistema (1) S = administrado por el sistema, U = administrado por el usuario, (2) Slo en TSX 57. (3) Slo en TSX 37-21/22 y TSX 57. ___________________________________________________________________________
3/9
B
Palabra %SW87 %SW88 %SW89 Funcin Nmero de peticiones tratadas por el servidor sncrono por ciclo de la tarea maestra (MAST). Nmero de peticiones tratadas por el servidor asncrono por ciclo de la tarea maestra (MAST). Nmero de peticiones tratadas por funciones del servidor (inmediato) por ciclo de la tarea maestra (MAST). Gestin(1) S S S
%SW96 (2) Comando / diagnstico de la funcin de guardado / restitucin del S y U programa de aplicacin y de los %MW. %SW97 (2) Nmero de los %MW que hay que guardar U %SW98 (2) Direccin geogrfica mdulo/va de la entrada TON que reemplaza el botn del acoplador TSX SAZ 10 U %SW99 (2) Direccin geogrfica mdulo/va de la entrada TON que reemplazaU el botn del bloque de visualizacin centralizada %SW108 Nmero de bits forzados S %SW109 Contador de vas analgicas forzadas a 0 S %SW116 Falla E/S distantes en FIPIO S %SW124 Tipo de la ltima falla UC encontrada S %SW125 Tipo de falla bloqueante S %SW126 Direccin de la instruccin de la falla de bloqueo S %SW127 %SW128a Punto de conexin FIPIO defectuoso S %SW143 %SW144 Modo de funcionamiento de la funcin rbitro de bus, productor/ U consumidor de variable y supervisin bus FIPIO %SW145 Modificacin de los parmetros del rbitro de bus UyS %SW146 Visualizacin de la funcin rbitro de bus y productor/ S consumidor en el bus FIPIO %SW147 Valor del tiempo de ciclo bus de la tarea en modo LIBRE S %SW148 Valor del tiempo de ciclo bus de la tarea en modo SERVOCOMANDADOS %SW149 Reservado a 0 S %SW150 Nmero de tramas FIPIO emitidas S %SW151 Nmero de tramas FIPIO recibidas S %SW152 Nmero de tramas FIPIO recuperadas S %SW155 Nmero de intercambios explcitos en curso de tratamiento S %SW160 Resultado del ltimo registro S %SW161 Resultado de la ltima cancelacin de registro S %SW162 Nmero de errores en el buffer de diagnstico S (1) S = administrado por el sistema, U = administrado por el usuario, (2) Slo en TSX 57.
___________________________________________________________________________ 3/10
Permite modificar desde el programa de usuario o el terminal el perodo de la tarea maestra definido en la configuracin. El perodo se expresa en ms (1...255 ms). %SW0=0 en funcionamiento cclico. Al arrancar en fro: toma el valor definido en la onfiguracin. Permite modificar desde el programa de usuario o el terminal el perodo de la tarea rpida definido en la configuracin. El perodo se expresa en ms (1...255 ms). Al arrancar en fro: toma el valor definido en la configuracin. Normalmente en estado 0, el programa o el PC puede poner este bit a 1 o a 0. Permite inhibir la fase de adquisicin de las entradas de cada tarea. %SW8:X0 1= inhibicin en la tarea maestra %SW8:X1 1= inhibicin en la tarea rpida Normalmente en estado 0, el programa o el PC puede poner este bit a 1 o a 0. Permite inhibir la fase de actualizacin de las salidas de cada tarea. %SW9:X0 1= inhibicin en la tarea maestra %SW9:X1 1= inhibicin en la tarea rpida El valor 0 del bit de la tarea en curso significa que sta ejecuta su primer ciclo despus de un arranque en fro. %SW10:X0: asignada a la tarea maestra MAST %SW10:X1: asignada a la tarea rpida FAST Permite leer la duracin del watchdog definida en la configuracin. Se expresa en ms (10...500 ms). Direccin UNI_TELWAY de la toma de terminal (en modo esclavo) definida en la configuracin y cargada en este palabra al arrancar en fro. Indicado por la red principal : el nmero de estacin (byte menos significativo) de 0 a 127 el nmero de red (byte menos significativo) de 0 a 63 (valor de interruptor sobre la tarjeta PCMCIA)
%SW1
%SW8
%SW9
%SW10
Primer ciclo despus del arranque en fro Duracin del watchdog Direccin UNI_TELWAY conector terminal Direccin principal de la estacin
%SW11 %SW12
%SW13
___________________________________________________________________________ 3/11
Designacin Al detectar una falla en una operacin en aritmtica flotante, el bit %S18 se pone a 1 y el estado de falla %SW17 se actualiza segn la codificacin siguiente: %SW17:X0 = operacin invlida/el resultado no es un nmero %SW17:X1 = operando no normalizado/resultado correcto %SW17:X2 = divisin por 0/el resultado es %SW17:X3 =Overflow/el resultado es %SW17:X4 = Underflow/el resultado es 0 %SW17:X5 = Imprecisin en el resultado. El sistema pone esta palabra a 0 al arrancar en fro, as como el programa para la reutilizacin de la palabra. Doble palabra que permite efectuar clculos de duracin. El sistema lo aumenta cada dcimo de segundo (incluso con el autmata en STOP). Puede ser leda y escrita por el programa de usuario o el terminal. Palabra que contiene el nmero de etapas activas, por activar y desactivar para el ciclo actual. El sistema la actualiza cada vez que el grfico evoluciona. Palabra que contiene el nmero de transiciones vlidas, por validar e invalidar para el ciclo actual. El sistema la actualiza cada vez que el grfico evoluciona. Esta doble palabra permite efectuar clculos de duracin. Es incrementada cada 1/10ma de segundos por el sistema (incluso con el autmata en STOP). El programa usuario o el PC pueden leerlo o escribirlo. Esta palabra contiene el nmero de etapas activas, que se deben activar o desactivar para el ciclo actual. Es actualizado por el sistema cada vez que evoluciona el grfico. Este palabra contiene el nmero de transiciones vlidas, que se deben validar o invalidar para el ciclo actual. El sistema la actualiza cada vez que evoluciona el grfico. A cada bit de esta tabla corresponde una macroetapa con %SW22:X0 para XM0 ....%SW25:X16 para XM63. Las macroetapas cuyo bit asociado en esta tabla est a 0, se volvern a poner a 0 cuando se ponga a 1 el bit %S24. Indica el tiempo de ejecucin ms largo de la tarea maestra (en ms).
%SD18
Contador de tiempo absoluto Nivel de actividad del Grafcet Tabla de validez de las transiciones Grafcet Contador de tiempo absoluto Nivel actividad del Grafcet Tabla de validez de transiciones Grafcet Tabla de puesta a 0 macroetapa
%SW20
%SW21
%SD18
%SW20
%SW21
%SW22 a %SW25
%SW30
(1) este tiempo corresponde al tiempo transcurrido entre el inicio (adquisicin de las entradas) y el fin (actualizacin de las salidas) de un ciclo de exploracin. Este tiempo incluye el tratamiento de las tareas rpida y de suceso, as como el tratamiento de las peticiones del dispositivo de programacin. ___________________________________________________________________________
3/12
B
Indica el tiempo de ejecucin ms corto de la tarea maestra despus del ltimo arranque en fro (en ms).
%SW32
%SW33
Indica el tiempo de ejecucin del ltimo ciclo de de la tarea rpida (en ms). Indica el tiempo de ejecucin ms largo de la tarea rpida despus del ltimo arranque en fro (en ms).
%SW34
%SW35
Indica el tiempo de ejecucin ms corto de la tarea rpida despus del ltimo arranque en fro (en ms).
%SW48
Indica el nmero de sucesos tratados despus del ltimo arranque en fro (en ms). Palabra que puede ser escrita por el programa o el terminal. Palabras sistema que contienen la fecha y hora actuales (en BCD) : %SW49: da de la semana (desde 1 para el lunes hasta 7 para el domingo). %SW50: Segundos (SS00) %SW51: Horas y Minutos (HHMM) %SW52: Mes y Da (MMJJ) %SW53: Ao (AAAA) El sistema efecta la gestin de estas palabras cuando el bit %S50 est en el estado 0. Estas palabras pueden ser escritas por el programa de usuario o el terminal cuando el bit %S50 se pone a 1. Palabras sistema que contienen la fecha y hora del ltimo corte de corriente o la ltima parada del autmata (en BCD): %SW54: Segundos (SS00), %SW55: Horas y Minutos (HHMM), %SW56: Mes y Da (MMJJ), %SW57: Ao (AAAA), %SW58: el byte ms significativo indica el da de la semana (de 1 para lunes a 7 para domingo).
(1) este tiempo corresponde al tiempo transcurrido entre el inicio (adquisicin de las entradas) y el fin (actualizacin de las salidas) de un ciclo de exploracin. Este tiempo incluye el tratamiento de las tareas rpida y de suceso, as como el tratamiento de las peticiones de consola. (2) slo en los autmatas TSX 37-21/22 y TSX 57.
___________________________________________________________________________ 3/13
B
Palabras sistema %SW58 Funcin Cdigo de la ltima parada Designacin El byte menos significativo indica el cdigo de la ltima parada: 1= paso de RUN a STOP por terminal 2= parada por falla de programa (rebasamiento de la tarea del autmata) 4= corte de corriente 5= parada por falla de hardware 6= parada por instruccin HALT Contiene dos series de 8 bits para ajustar la fecha actual. La accin se realiza siempre en el flanco ascendente del bit. El bit %S59 valida esta palabra. Aumento Disminucin Parmetro bit 0 bit 8 da de la semana bit 1 bit 9 segundos bit 2 bit 10 minutos bit 3 bit 11 horas bit 4 bit 12 das bit 5 bit 13 meses bit 6 bit 14 aos bit 7 bit 15 siglos Palabras del sistema utilizadas en caso de instalacin de arquitectura redundante (vase designacin y utilizacin en el manual "Arquitectura Premium de autmata redundante).
%SW59
Gestin del Contiene el valor Hexa/BCD que el usuario desea visualizar en visualizador de el indicador de 7 segmentos opcionales. 7 segmentos Esta visualizacin se efecta cuando el bit %S66 est a 1. Gestin del modo "WORD" Cuando %S69=1, estas palabras permiten utilizar el bloque de visualizacin (parte delantera del autmata) en modo WORD: %SW67: control y estado del modo WORD, %SW68: ndices actual y mximo, %SW69: nmero del primer objeto en el rea visualizada. Para ms informacin sobre estas palabras sistema, vase el captulo 1.5, apartado F (manual de instalacin). No de mensajes emitidos por el sistema hacia el conector terminal S y U. No de mensajes recibidos por el sistema desde el conector terminal. No de mensajes emitidos por el sistema hacia el acoplador PCMCIA. No de mensajes recibidos por el sistema desde el acoplador PCMCIA. No de telegramas emitidos por el sistema. No de telegramas recibidos por el sistema. No de mensajes rehusados por el sistema. Nmero de peticiones tratadas por el servidor sncrono por ciclo de la tarea maestra (MAST). Nmero de peticiones tratadas por el servidor asncrono por ciclo de la tarea maestra (MAST). Nmero de peticiones tratadas por funcin del servidor (inmediato) por ciclo de la tarea maestra (MAST).
%SW87
%SW88 %SW89
___________________________________________________________________________ 3/14
Control y/o diagnstico de la funcin de guardado/restitucin del programa de aplicacin y de los %MW: bit 0: peticin de transferencia hacia el rea guardado. Se activa con flanco ascendente. El sistema vuelve a ponerlo a0 tan pronto se registra el flanco ascendente. bit 1: cuando este bit tiene valor 1, significa que ha terminado la funcin de guardado. Vuelve a situarse en 0 tan pronto se registra el flanco ascendente en el bit 0. bit 2: informe de guardado: 0 -> guardado realizado sin error, 1 -> error durante el guardado. bits 3 a 5: reservados. bit 6: validez del guardado del programa de aplicacin (idem %S96). bit 7: validez del guardado de los %MW (idem %S97). bits 8 a 15: este byte slo es significativo si el bit de informe est a 1 (bit 2 = 1, error durante el guardado). 1 -> el nmero de %MW que requiere guardar es superior al nmero de %MW configurado, 2 -> el nmero de %MW que requiere guardar es superior a 1000 o inferior a 0, 3 -> el nmero de %MW que hay que restituir es superior al nmero de %MW configurado, 4 -> el tamao de la aplicacin en RAM interna es superior a 15 Kpalabras (recordamos que el guardado de los %MW va siempre asociada a un guardado del programa de aplicacin en la Flash EPROM interna), 5 -> servicio no autorizado en RUN, 6 -> presencia de una tarjeta de memoria Backup en el autmata, 7 -> falla de escritura en la Flash EPROM. Permite definir el nmero de %MW que requieren guardar. Cuando esta palabra est comprendida entre 1 y 1000, se transferirn los primeros %MW (del 1 al 1000) a la Flash EPROM interna. Cuando esta palabra valga 0, nicamente se transferir a la Flash EPROM interna el programa de aplicacin contenido en la RAM interna. Se borra entonces una posible guardado de %MW. Al producirse un rearranque en fro, se inicializa esta palabra a -1, si la Flash EPROM interna no contiene ningn guardado de %MW. En caso contrario, se inicializa con el valor del nmero de palabras guardadas. Cuando el bit %S98 = 1, esta palabra indica la direccin geogrfica (mdulo / va) de la entrada TON, en sustitucin del botn del acoplador TSX SAZ 10: Byte ms significativo Byte menos significativo Nmero del mdulo Nmero de la va
%SW97
%SW98
___________________________________________________________________________ 3/15
B
Palabras sistema %SW99 Funcin Direccin de la entrada TON Designacin Cuando el bit %S99 = 1, esta palabra indica la direccin geogrfica (mdulo / va) de la entrada TON, remplazando el botn del bloque de visualizacin centralizada: Byte ms significativo Byte menos significativo Nmero del mdulo %SW108 Nmero de bits forzados Nmero de la va
Indica el nmero de bits forzados en la aplicacin. Normalmente a 0. El sistema de forzado y de cancelacin de forzado de bits lo actualiza en la memoria de aplicacin.
%SW109
Contador de Indica el nmero de vas analgicas forzadas. vas analgicas forzadas Falla FIPIO en la tarea Normalmente a 0, cada bit de esta palabra es significativo de un estado de intercambio FIPIO en la tarea en la que se prueba. El usuario vuelve a poner a 0 este esta palabra. %SW 116 : x0 = 1 error de intercambio explcito (la variable no se intercambia en el bus), x1 = 1 time-out en un intercambio explcito (no hay respuesta al trmino del time-out), x2 = 1 nmero mximo de intercambios explcito simultneo alcanzado, x3 = 1 estado MPS no correcto (el contenido de la variable no es vlido), x4 = 1 longitud de una variable recibida superior a la longitud declarada, x5 = reservado a 0 x6 =1 cdigo PDU invlido (la variable debe ser ignorada por el administrador de la va), el agente se inicializa, x7 = 1 time-out de rapidez asincrnica: el tiempo de produccin de la variable por el agente no ha sido respetado, caracteriza una ausencia del equipo configurado en el bus FIPIO, x8 = 1 falla de va, x9 = reservado a 0, x10 a x14 = reservado a 0, x15 =1 falla global (O de los bits 3, 4, 6, 7, 8). El sistema escribe en esta palabra el ltimo tipo de falla UC encontrada (estos cdigos no cambian al arrancar el fro): 16#30 : falla del cdigo sistema 16#60 a 64 : rebasamiento de pila 16#90 : falla del sistema de interrupcin: IT no previsto 16#53 : falla del tiempo de espera al intercambiar E/S
%SW116
%SW124
Tipo de falla UC
___________________________________________________________________________ 3/16
B
Palabras sistema %SW125 Funcin Tipo de falla de bloqueo Designacin El sistema escribe en esta palabra el ltimo tipo de falla de bloqueo encontrado: 16#DEB0 : rebasamiento del watchdog 16#2258 : ejecucin de la instruccin HALT 16#DEF8 : ejecucin de una instruccin JMP a una etiqueta no definida 16#2XXX : ejecucin de una instruccin CALL a un subpro grama no definido 16#0XXX : ejecucin de una funcin desconocida 16#DEFE : el programa grafcet comprende dos remisiones a las entradas no delineadas. 16#DEFF : flotante no implantado 16#DEF0 : divisin por 0, (1-->%S18) 16#DEF1 : error de transferencia de cadena de caracteres (1-->%S15) 16#DEF2 : rebasamiento de capacidad (overflow), (1-->%S18) 16#DEF3 : rebasamiento de ndice (1-->%S20) Direccin de la instruccin que gener la falla de bloqueo de la aplicacin. %SW126 contiene el desplazamiento de esta direccin %SW127 contiene la base de esta direccin Cada bit de este grupo de palabras es significativo de de un equipo conectado en el bus FIPIO. Normalmente a 1, la presencia a 0 de uno de estos bits indica la aparicin de una falla de punto de conexin. %SW128 representa las direcciones 0 a 15 %SW128:X0 --> @0, %SW128:X1-->@1,....., %SW128:X15-->@15, %SW129 representa las direcciones 16 a 31 %SW129:X0 --> @16, %SW129:X1-->@17,....., %SW129:X15-->@31, ........ %SW143 representa las direcciones 240 a 255 %SW143:X0 --> @240, %SW143:X1-->@241,....., %SW143:X15-->@255, Cuando la falla desaparece, el sistema vuelve a poner a 1 este bit Nota: @ = punto de conexin Atencin: la modificacin de esta palabra del sistema puede producir la parada de la estacin. Esta palabra del sistema permite la detencin y el arranque de la funcin rbitro de bus y de la funcin productor/
%SW126 %SW127
%SW128 a %SW143
%SW144
consumidor. Permite modificar el modo de arranque, automtico y manual del bus en caso de parada.
Para ms informacin, vase el manual de comunicacin.
___________________________________________________________________________ 3/17
B
Palabras sistema %SW145 Funcin Modificacin de los parmetros del rbitro del bus FIPIO Visualizacin de la funcin rbitro de bus FIPIO Tiempo de ciclo red MAST Tiempo de ciclo red FAST Designacin Atencin: la modificacin de esta palabra puede generar la parada de la estacin. Esta palabra sistema permite modificar parmetros del rbitro de bus FIPIO. Para ms informacin, vase manual de comunicacin. Esta palabra visualiza la funcin rbitro de bus y productor/consumidor en el bus FIPIO. Para ms informacin, vase manual de comunicacin. Valor del tiempo de ciclo red de la tarea MAST. Un valor no nulo indica en ms, el valor del tiempo de ciclo red (TCR-MAST) de la tarea MAST. Valor del tiempo de ciclo red de la tarea FAST. Un valor no nulo indica en ms, el valor del tiempo de ciclo red (TCR-FAST) de la tarea FAST. Reservado a 0. Nmero de Esta palabra indica el nmero de tramas emitidas por el tramas emitidas administrador de la va FIPIO. Nmero de Esta palabra indica el nmero de tramas recibidas por el tramas recibidas administrador de la va FIPIO. Nombre de messages repris Esta palabra indica el nmero de recuperaciones de mensajes efectuadas por el administrador de la va FIPIO.
%SW146
%SW147
%SW148
%SW155
Nmero Nmero de intercambios explcitos en curso de tratamiento de intercambios explcitos Resultado del ltimo registro (funcin diagnstico). Resultado de la ltima cancelacin de registro (funcin de diagnstico). Nmero de errores en curso en el buffer de diagnstico1.
___________________________________________________________________________ 3/18
4.1
Valores inmediatos
Objetos Entero base 10 Entero base 2 Entero base 16 Flotante Cadena de caracteres
Etiquetas
Etiqueta Li i = 0 a 999 %Li i = 0 a 999
Bits
Objetos Bit de entrada en rack Bit de entrada en rack indexado Bit de entrada a distancia Bit de entrada a distancia indexado Bit de salida en rack Bit de salidaen rack indexado Bit de salida a distancia Bit de salida a distancia indexado Bit de falla E/S en rack bit de falla mdulo bit de falla va Bit de falla E/S a distancia bit de falla mdulo bit de falla va bit de disyuncin va de salida bit de reactivacin va de salida Bit interno Bit interno indexado Bit sistema Bit de etapa Bit de macroetapa Bit de etapa i de macroetapa j Bit de etapa de entrada de macroetapa j Bit de etapa de salida de macroetapa j Bit j de palabra interna i Bit j de palabra interna i indexada PL7-2/3 Ixy,i Ixy,i (Wj) (PL7-3) RIx,y,i (PL7-3) RIx,y,i (Wj) (PL7-3) Oxy,i Oxy,i (Wj)(PL7-3) ROx,y,i (PL7-3) ROx,y,i (Wj) (PL7-3) Ixy,S / Oxy,S (PL7-3) RDx,y,i/ERRORx,y,i TRIPx,y,i RSTx,y,i Bi Bi(Wj) (PL7-3) SYi Xi XMj (PL7-3) Xj,i (PL7-3) Xj,I (PL7-3) Xj,O (PL7-3) Wi,j Wi(Wk),j(PL7-3) %I\<ruta>\<md>.MOD.ERR %I\<ruta>\<md>.<va>.ERR PL7 Micro/Junior %Ixy.i %Ixy.i[%MWj] %I\<ruta>\<md>.<va> %Qxy.i %Qxy.i[%MWj] %Q\<ruta>\<md>.<va>
%Mi %Mi[%MWj] %Si %Xi %XMj %Xj.i %Xj.IN %Xj.OUT %MWi:Xj %MWi[%MWk]:Xj
___________________________________________________________________________ 4/1
Bit j de palabra constante i Bit j de palabra constante i indexada Bit j de registro i Bit k de palabra comn j de la estacin i Bit j de palabra sistema i
Palabras
Objetos Palabra interna simple longitud Palabra interna simple longitud indexada Palabra interna doble longitud Palabra interna doble longitud indexada Palabra interna real Palabra interna real indexada Palabra constante simple longitud Palabra constante simple longitud indexada Palabra constante doble longitud Palabra constante doble longitud indexada Palabra constante real Palabra constante real indexada Palabra registro de entrada simple longitud Palabra registro de entrada doble longitud Palabra registro de salida simple longitud Palabra registro de salida doble longitud Palabra registro de una entrada a distancia Palabra registro de una salida a distancia Palabra sistema Palabra comn j de la estacin i RIWx,y,i (PL7-3) ROWx,y,i(PL7-3) SWi COMi,j COMXi,j(conX=B,C,D) STATUSAx,y,i (PL7-3) STATUSBx,y,i (PL7-3) STSx,y,i(PL7-3) Xi,V Xj,i,V (PL7-3) %IW\<ruta>\<md>.<va>.ERR %Xi.T %Xj.i.T OWxy,i IWxy,i CWi CWi(Wj) CDWi (PL7-3) CDWi(Wj) (PL7-3) PL7-2/3 Wi Wi(Wj) (PL7-3) DWi (PL7-3) DWi(Wj) (PL7-3) PL7 Micro/Junior %MWi %MWi[%MWj] %MDi %MDi[%MWj] %MFi %MFi[%MWj] %KWi %KWi[%MWj] %KDi %KDi[%MWj] %KFi %KFi[%MWj] %IWxy.i %IDxy.i %QWxy.i %QDxy.i %IW\<ruta>\<md>.<va> %QW\<ruta>\<md>.<va> %SWi %NW{i}j %NW{[r.]i}j r = nm. de red
Palabra de estado de un mdulo TON remoto Pal. de estado de una va de md. TON remoto Tiempo de actividad de etapas Grafcet Tiempo de actividad de etapa i de macroetapa j
___________________________________________________________________________ 4/2
Bloques de funcin
Objetos Temporizador valor de preseleccin (palabra) valor actual (palabra) temporizador en curso (bit) temporizador transcurrido (bit) Monoestable valor de preseleccin (palabra) valor actual (palabra) monoestable en curso (bit) Contador/descontador valor de preseleccin (palabra) valor actual (palabra) rebasamiento contaje (bit) preseleccin alcanzada (bit) rebasamiento descontaje (bit) Registro palabra de entrada (palabra) palabra de salida (palabra) registro lleno (bit) registro vaco (bit) Texto Programador cclico nmero del paso activo (palabra) tiempo de actividad del paso actual (palabra) 16 bits de comando (palabra) ltimo paso en curso (bit) Contador/Temporizador rpido valor de preseleccin (palabra) valor actual (palabra) puesta a 0 externa (bit) preseleccin alcanzada (bit) contaje en curso (bit) Reloj-calendario tipo "WEEK" o "YEAR" seleccin de das LMMJVSD (palabra) valor de consigna de inicio (palabra) valor de consigna de fin (palabra) valor actual < valor de consigna (bit) valor actual = valor de consigna (bit) valor actual > valor de consigna (bit) PL7-2/3 Ti Ti,P Ti,V Ti,R Ti,D Mi Mi,P Mi,V Mi,R Ci Ci,P Ci,V Ci,E Ci,D Ci,F Ri Ri,I Ri,O Ri,F Ri,E TXTi Di (PL7-2) Di,S Di,V Di,Wj Di,F FC (PL7-2) FC,P FC,V FC,E FC,D FC,F H (PL7-2) VD BGN END < = > PL7 Micro/Junior %Ti %Ti.P %Ti.V %Ti.R %Ti.D %MNi %MNi.P %MNi.V %MNi.R %Ci %Ci.P %Ci.V %Ci.E %Ci.D %Ci.F %Ri %Ri.I %Ri.O %Ri.F %Ri.E sin de bloque texto %DRi %DRi.S %DRi.V %DRi.Wj %DRi.F -
___________________________________________________________________________ 4/3
___________________________________________________________________________ 4/4
AND OR XOR
Instrucciones para palabras y dobles palabras Suma + + Resta Multiplicacin * * Divisin / / Comparaciones >, >=, <, <=, =, <> Resto de una divisin MOD REM Raz cuadrada SQRT Valor absoluta Y lgica AND AND O lgica OR OR O lgica exclusiva XOR XOR Complemento lgico CPL CPL Aumento INC Disminucin DEC Desplazamiento lgico a la izquierda SHL Desplazamiento lgico a la derecha SHR Desplazamiento circular a la izquierda SLC SLC Desplazamiento circular a la derecha SRC SRC Instrucciones de tipo flotante (1) Suma Resta Multiplicacin Divisin Raz cuadrada Valor absoluto Prueba de igualdad Prueba de superioridad estricta Prueba de inferioridad estricta Otras pruebas ADDF SUBF MULF DIVF SQRTF EQUF SUPF INFF
___________________________________________________________________________ 4/5
B
Instrucciones (cont.)
Objetos Instrucciones para cadenas de octetos Desplazamiento circular Instrucciones de conversin Conversin BCD binario Conversin binario BCD Conversin ASCII binario Conversin binario ASCII Conversin Gray binario Conversin flotante entero Conversin entero flotante Conversin BCD flotante Conversin flotante BCD Conversin ASCII flotante Conversin flotante ASCII Instrucciones para tablas Operaciones aritmticas Operaciones lgicas Suma de las palabras de una tabla Bsqueda de la 1era palabra diferente Bsqueda de la 1era palabra igual Instrucciones para programa Salto Llamada de subprograma Regreso de subprograma Parada de la aplicacin Sentencia condicional Sentencia iterativa Instrucciones para interrupciones Prueba Enmascaramiento Desenmascaramiento Confirmacin Generacin de una IT hacia acoplador Instrucciones de E/S explcitas Lectura de entradas TON Escritura de salidas TON Lectura de registros Escritura de registros Lectura de palabras Escritura de palabras BCD BIN ATB BTA PL7-2 PL7-3 SLCWORD DTB BTD ATB BTA GTB FTB FTF DTF FTD ATF FTA +, -, *, /, REM AND, OR, XOR + EQUAL SEARCH JUMP Li RET HALT IF/THEN/ELSE WHILE/DO READINT MASKINT DMASKINT ACKINT BCD_TO_INT INT_TO_BCD STRING_TO_INT o STRING_TO_DINT INT_TO_STRING o DINT_TO_STRING GRAY_TO_INT REAL_TO_INT o REAL_TO_DINT INT_TO_REAL o DINT_TO_REAL BCD_TO_REAL REAL_TO_BCD STRING_TO_REAL REAL_TO_STRING +, -, *, /, REM AND, OR, XOR, NOT SUM EQUAL FIND_EQU JUMP %Li CALL SRi SRi RETURN HALT IF/THEN/ELSE/END_IF WHILE/DO/END_WHILE PL7 Micro/Junior
___________________________________________________________________________ 4/6
Delimitadores
Objetos Asignacin Parntesis izquierdo para la indexacin Parntesis derecho para la indexacin Longitud de tabla PL7-2/3 -> ( ) [longitud] PL7 Micro/Junior := [ ] :longitud
___________________________________________________________________________ 4/7
___________________________________________________________________________ 4/8
5.1
Palabras reservadas
___________________________________________________________________________ 5/1
B
END_PROGRAM END_REPEAT END_RESOURCE END_RUNG END_STEP END_STRUCT END_TRANSITION END_TYPE END_VAR END_WHILE EQ EQUAL EQUAL_ARR ERR EVT EXCHG EXCH_DATA EXIT EXP EXPT F FALSE FAST FBD FE FIFO FIND FIND_EQ FIND_EQD FIND_EQDP FIND_EQR FIND_EQW FIND_EQWP FIND_GTD FIND_GTR FIND_GTW FIND_LTD FIND_LTR FIND_LTW FOR FPULSOR FROM FTOF FTON FTP FUNC FUNCTION FUNCTION_BLOCK F_B F_EDGE F_TRIG GE GET GET_MSG GET_VALUE GLOBAL_COMMENT GR7 GRAY_TO_INT GT GTI H HALT HALT_COIL HASH_COIL HW H_COMPARE H_LINK I IF IL IN INC INCJUMP INDEX_CH INFO INITIAL_STEP INIT_BUTTONS INPUT INPUT_CHAR INSERT INT INTERVAL INT_TO_BCD INT_TO_REAL INT_TO_STRING ITB ITS JMP JMPC JMPCN JUMP JUMP_COIL L LAD LANGAGE LANGUAGE LD LDF LDN LDR LE LEFT LEN LENGTH_ARD LENGTH_ARR LENGTH_ARW LENGTH_ARX LIFO LIMIT LINT LIST LIT LN LOCATION LOG LREAL LT LW LWORD M MACRO_STEP MAIN MASKEVT MAST MAX MAX_ARD MAX_ARR MAX_ARW MAX_PAGES MAX_STEP MCR MCR_COIL MCS MCS_COIL MID MIN MIN_ARD MIN_ARR MIN_ARW MN MOD MONO MOVE MPP MPS MRD MS MUL MUX M_CH M_MACRO_STEP N N1 NAME NB_ACTIVE_STEPS NB_ACTIVE_TIME
___________________________________________________________________________ 5/2
___________________________________________________________________________ 5/3
B
SHL SHOW_ALARM SHOW_MSG SHOW_PAGE SHR SHRZ SIN SINGLE SINT SL SLCWORD SMOVE SOFT_CONFIGURATION SORT SORT_ARD SORT_ARR SORT_ARW SQRT SR ST STANDARD START STD STEP STI STN STOP STR STRING STRING_TO_DINT STRING_TO_INT STRING_TO_REAL STRUCT SUB SUB_DT SUB_TOD SUM SU_TYPE SWAP S_T_AND_LINK S_T_OR_LINK T TAN TASK TASKS THEN TIME TIMER TIME_OF_DAY TM TMAX TMOVE TO TOD TOF TOFF TON TOP TP TRANSITION TRANS_TIME TRUE TRUNC TYPE TYPES T_S_AND_LINK T_S_OR_LINK U UDINT UINT ULINT UNMASKEVT UNTIL UP USINT USORT_ARD USORT_ARW UTIN_CHAR VAR VAR_ACCESS VAR_EXTERNAL VAR_GLOBAL VAR_INPUT VAR_IN_OUT VAR_OUTPUT VAR_PUBLIC VERSION V_COMPARE V_LINK W WHILE WITH WORD WRITE WRITE_CMD WRITE_PARAM WRITE_VAR WRTC WSHL_RBIT WSHRZ_C WSHR_RBIT W_BIT XM XM_MONO XM_MULTI XOR XORF XORN XORR XOR_ARX YES
___________________________________________________________________________ 5/4
Captulo 66 B
6.1
La norma IEC 1131-3 Autmatas programables - Parte 3: Lenguajes de programacin especifica la sintaxis y la semntica de los elementos de software establecidos para programar los autmatas programables. Esta norma abarca las descripciones de dos lenguajes textuales: IL (Instruction List) y ST (Structured Text), de dos lenguajes grficos: LD (Ladder Diagram) y FBD (Function Block Diagram) y de un formalismo grfico: SFC (Sequential Function Chart), que permite estructurar la organizacin interna de una secuencia programada. El software de programacin PL7 permite programar un autmata programable en conformidad con la norma IEC: PL7 proporciona un subconjunto de elementos de lenguajes definidos en la norma y determina ampliaciones autorizadas dentro de esta norma. La norma IEC 1131-3 no define las reglas de interactividad del software proporcionado por un constructor que lo afirma ser conforme a la norma. Por consiguiente, el usuario puede gozar de una gran flexibilidad de presentacin y de introduccin de elementos de programacin. Los elementos de la norma implantados en PL7, la informacin relativa a la implantacin y los casos de deteccin de errores se sintetizan en las siguientes tablas de conformidad.
6.1.1 Tablas de conformidad Este sistema es conforme a las prescripciones de la norma IEC 1131-3 por lo que se refiere a las caractersticas de lenguaje siguientes: Elementos comunes Tabla no 1 1 1 Caracterstica n 1 2 3a Descripcin de las caractersticas Juego de caracteres requerido vase el prrafo 2.1.1 de 1131-3 Letras minsculas Signo nmero (#)
___________________________________________________________________________ 6/1
1 1 1 2 2 3 4 4 4 4 4 4 4 5 6 6 6 6 6 6
4a 5a 6a 1 2 1 1 2 3 4 6 7 8 1 2 3 4 5 6 7
Signo dlar ($) Barra vertical (|) Delimitadores de ndices: corchetes derecho e izquierdo [] Maysculas y nmeros Maysculas y minsculas, nmeros, caracteres de subrayado integrados Comentarios Literales enteros (Nota 1) Literales reales (Nota 1) Literales reales con exponentes Literales en base 2 (Nota 1) Literales en base 16 (Nota 1) Booleanos Cero y Uno Booleanos TRUE y FALSE Caractersticas de los literales cadenas de caracteres $$ Signo dlar $ Apstrofe $L o $l Avance de lnea $N o $n Nueva lnea $P o $p Avance de pgina $R o $r Regreso del cursor
___________________________________________________________________________ 6/2
B
6 7 10 10 10 10 10 10 10 10 10 10 15 8 1a 1 10 12 13 14 15 16 17 18 19 1 2 3 15 4 5 6 7 8 $T o $t Tabulacin Literales de duracin con prefijo corto t# (Nota 2) BOOL -1 bitREAL -32 bitsTIME -32 bits- (Nota 3) DATE -32 bits- (Nota 3) TIME_OF_DAY -32 bits- (Nota 3) DATE_AND_TIME -64 bits- (Nota 3) STRING BYTE -8 bitsWORD -16 bitsDWORD -32 bitsPrefijo I para Input Prefijo Q para Output Prefijo M para Memory Prefijo X, tamao de un bit Ningn prefijo, tamao de un bit Prefijo B, tamao de un byte (8 bits) Prefijo W, tamao de una palabra (16 bits) Prefijo D, tamao de una doble palabra (32 bits)
___________________________________________________________________________ 6/3
B
16 VAR VAR_INPUT VAR_OUTPUT VAR_IN_OUT VAR_EXTERNAL VAR_GLOBAL CONSTANT AT 2 3 5 2 3 Palabras clave (Nota 4)
17 17 17 18 18
Declaracin de variables no voltiles directamente representadas (variables) (Nota 4) Declaracin de emplazamiento de variables simblicas (smbolos o variables) (Nota 4) Asignacin automtica en memoria de variables simblicas (variables de bloques de funcin) (Nota 4) Inicializacin de variables no voltiles directamente representadas (variables) (Nota 4) Asignacin de emplazamientos y valores iniciales de variables simblicas (smbolos sobre variables) (Nota 4) Inicializacin de variables simblicas (variables de bloques de funcin) (Nota 4) Las funciones sobrecargadas de PL7 son: ABS, EQUAL, ROL, ROR, SHL, SHR, SQRT, SUM Las funciones PL7 suelen pertenecer a esta categora. Funciones de conversin de tipo: DINT_TO_STRING, INT_TO_STRING, STRING_TO_DINT, STRING_TO_INT, DATE_TO_STRING, DT_TO_STRING, TIME_TO_STRING, TOD_TO_STRING, REAL_TO_STRING, STRING_TO_REAL, REAL_TO_INT, REAL_TO_DINT, INT_TO_REAL, DINT_TO_REAL (Nota 5)
18 21 21 22
5 1 2 1
___________________________________________________________________________ 6/4
B
22 22 22 23 23 23 23 23 23 23 23 23 23 23 25 25 25 25 29 29 29 29 29 29 29 2 3 4 1 2 3 4 5 6 7 8 9 10 11 1 2 3 4 1 2 3 4 5 6 7 Funcin TRUNC: truncado en 0 de un tipo REAL Funcin de conversin BCD_TO_INT (Nota 6) Funcin de conversin INT_TO_BCD (Nota 6) Funcin ABS: valor absoluto Funcin SQRT: raz cuadrada Funcin LN: logaritmo neperiano Funcin LOG: logaritmo de base 10 Funcin EXP: exponencial natural Funcin SIN: seno en radianes Funcin COS: coseno en radianes Funcin TAN: tangente en radianes Funcin ASIN: arco de seno Funcin ACOS: arco de conseno Funcin ATAN: arco de tangente Funcin SHL: desplazar la izquierda Funcin SHR: desplazar a la derecha Funcin ROR: rotar a la derecha Funcin ROL: rotar a la izquierda Funcin LEN: longitud de cadena Funcin LEFT: n caracteres en el extremo izquierdo Funcin RIGHT: n caracteres en el extremo derecho Funcin MID: n caracteres desde una posicin dada Funcin CONCAT: concatenar cadenas (Nota 7) Funcin INSERT: insertar una cadena en otra Funcin DELETE: suprimir caracteres
___________________________________________________________________________ 6/5
B
29 29 32 8 9 Funcin REPLACE: reemplazar caracteres Funcin FIND: buscar una cadena en otra
Input read (Nota 8) Input write Output read Output write 1 2 4a 1 2a 3a Calificativo RETAIN para las variables internas de los bloques de funcin predefinidos (Nota 9) Calificativo RETAIN para las salidas de los bloques de funcin predefinidos (Nota 9) (Nota 4) Declaracin de entradas/salidas de bloques de funcin (literal) (Nota 4) Temporizador de impulsos: TP (Nota 10) Temporizador de conexin: TON (Nota 10) Temporizador de desconexin: TOF (Nota 10)
33 33 33 37 37 37 38 39 40
esquemas temporales TP, TON, TOF 19 1 Utilizacin de variables directamente representadas (variables) Etapa, forma grfica Nota: Un nmero de etapa reemplaza un identificador de etapa
40 41 41 42 43 43
2 1 2 2l 1 2
Etapa, forma textual utilizada en la forma origen del Grafcet nicamente Condicin de transicin en lenguaje ST Condicin de transicin en lenguaje LD Declaracin de las acciones en lenguaje LD Bloque de accin Bloques de accin concatenados
___________________________________________________________________________ 6/6
B
45 45 45 46 46 46 46 46 46 46 2 11 12 1 2c 3 4 5c 6c 7 Calificativo de accin N (no memorizado) Calificativo de accin P1 (Pulse rising edge) Calificativo de accin P0 (Pulse falling edge) Secuencia simple, alternancia de etapa/transicin Divergencia en O: el usuario asegura que las condiciones de transicin son mutuamente exclusivas Convergencia en O Divergencia en Y, Convergencia en Y Salto de secuencia en una divergencia en O Bucle de secuencia: regreso a una etapa previa Flechas de direccin Nota: Las flechas de direccin son ascendentes y descendentes El lenguaje Grafcet cumple las condiciones para el nivel mnimo de conformidad SFC 1131-3 Representacin grfica
48
40 41 42 43 45 46 57 3 5a 6a 7 5b
49 49 49 49 50
Construccin RESOURCE...ON...END_RESOURCE Construccin TASK peridica en RESOURCE Declaracin PROGRAM con asociacin PROGRAM-to-TASK Declaracin de variables directamente representadas en VAR_GLOBAL Orden preferencial en el modelo multitarea
___________________________________________________________________________ 6/7
B
Nota 1: no se aceptan los caracteres de subrayado (_) insertados entre los nmeros de un literal numrico. Nota 2: estos literales se visualizan nicamente en el archivo de origen de la aplicacin para expresar los tiempos de las tareas configuradas. Nota 3: todava no se han implantado estos tipos de datos de forma visible para el usuario. Sin embargo, esta tabla indica el espacio de memoria que ocupa su representacin interna. Nota 4: slo en los orgenes generados por PL7 y la herramienta de conversin de la aplicacin PL7-2 se utilizan estas palabras clave. Nota 5: efectos de conversin dentro de los lmites siguientes: DINT_TO_STRING: si la cadena que recibe el resultado es inferior a 13 caracteres, %S15 se trunca y se posiciona. INT_TO_STRING: si la cadena que recibe el resultado es inferior a 7 caracteres, %S15 se trunca y se posiciona. STRING_TO_DINT y STRING_TO_INT: si la cadena no puede convertirse en entero, el resultado es indeterminado y %S18 se posiciona. DATE_TO_STRING: si la cadena que recibe el resultado es inferior a 11 caracteres, %S15 se trunca y se posiciona. DT_TO_STRING: si la cadena que recibe el resultado es inferior a 20 caracteres, %S15 se trunca y se posiciona. TIME_TO_STRING: si la cadena que recibe el resultado es inferior a 15 caracteres, %S15 se trunca y se posiciona. TOD_TO_STRING: si la cadena que recibe el resultado es inferior a 9 caracteres, %S15 se trunca y se posiciona. REAL_TO_STRING: si la cadena que recibe el resultado es inferior a 15 caracteres, %S15 se trunca y se posiciona. STRING_TO_REAL: si la cadena no puede convertirse en real, el resultado vale 1.#NAN (16#FFC0_0000) y %S18 se posiciona. REAL_TO_INT: si el real no puede convertirse dentro de los lmites [-32768, +32767], el resultado vale -32768 y %S18 y %SW17:X0 se posicionan. REAL_TO_DINT: si el real no puede convertirse dentro de los lmites [-2147483648, +2147483647], el resultado vale -2147483648 y %S18 y %SW17:X0 se posicionan. INT_TO_REAL: la conversin es siempre posible. DINT_TO_REAL: la conversin es siempre posible. Nota 6: Ya que el tipo INT se utiliza, pero no est formalmente implementado, estas funciones permiten cambiar el formato de codificacin de una WORD. Nota 7: la funcin CONCAT se limita a la concatenacin de 2 cadenas. Nota 8: este prrafo se aplica a los bloques de funcin predefinidos PL7. Nota 9: el calificativo RETAIN es implcito. Nota 10: los temporizadores TP, TON, TOF respetan los diagramas temporales de la tabla 38, pero presentan una interface de E/S diferente de la 1131-3.
___________________________________________________________________________ 6/8
54 54 54
11 12 13
Nota 11: el operador PT no est disponible. Elementos de lenguaje ST (Nota 12) Tabla no 55 55 55 55 Caracterstica no 1 2 4 5 Descripcin de las caractersticas Puesta entre parntesis Evaluacin de funcin - Negacin NO complemento
___________________________________________________________________________ 6/9
B
55 6 7 55 9 10 55 55 55 55 55 55 56 56 56 56 56 56 56 11 12 13 15 16 17 1 3 4 6 7 8 9 * Multiplicacin / Divisin + Suma - Resta <, >, <=, >= Comparacin = Igualdad <> Desigualdad AND para la "Y" booleana XOR para la "O exclusiva" booleana OR para la "O" booleana := Asignacin Estructura RETURN Estructura IF "if... then... elsif... then... else... end_if" Estructura FOR "for... to... do... end_for" (Nota 13) Estructura WHILE "while... do... end_while" Estructura REPEAT "repeat ... until... end_repeat" Estructura EXIT
Nota 12: este lenguaje se utiliza en su integridad en los mdulos ST. Un subconjunto ST se utiliza tambin en los bloques OPERACION y COMPARACION de los lenguajes IL y LD. Nota 13: implementacin del bucle FOR con un paso implcito de 1 (by 1)..
___________________________________________________________________________ 6/10
Elementos de lenguaje LD Tabla n 59 59 60 60 61 61 61 61 62 62 62 62 Caracterstica n 1 2 1 2 1 3 5 7 1 2 3 4 Descripcin de las caractersticas Barra de alimentacin izquierda Barra de alimentacin derecha Enlace horizontal Enlace vertical Contacto abierto Contacto cerrado Contacto detector de transicin positiva Contacto detector de transicin negativa Bobina Bobina negativa Bobina SET Bobina RESET
___________________________________________________________________________ 6/11
Parmetros dependientes de la implantacin Parmetro Procedimiento de tratamiento de errores Restricciones y funcionamiento PL7 Se sealan varios errores al ejecutar por posicionamiento de bits y palabras sistema. #, $, | Longitud mxima de los identificadores Longitud mxima del comentario Gama de valores de duracin Gama de valores de tipo TIME en los tipos TIME_OF_DAY y DATE_AND_TIME Nmero mximo de ndices de tabla Tamao mximo de tablas Long. mx. predet. de las variables STRING Longitud mxima autorizada para las variables STRING Nmero mximo de niveles jerrquicos Configuracin lgica o fsica Intervalo mximo de valores de ndices 32 222 (Nota 14) (Nota 14) (Nota 15) 1 (Nota 16) Depende del rea indexada (Nota 16) No aplicable 255 3 Configuracin lgica Depende del rea indexada (Nota 16)
___________________________________________________________________________ 6/12
B
Inicializacin de las entradas del sistema Las variables son inicializadas por el sistema: - en el valor inicial especificado por el usuario, dado el caso - si no, en cero vase tabla 22, caracterstica 1 No hay nmero mximo de bloques de funcin (los lmites estn vinculados al volumen de la aplicacin) Volumen mximo de cdigo de un programa = 64 KBytes 100ms 96 en autmata 3710 128 en autmata 3720 1024 en autmata s 57xx V3.0 1024 transiciones por grfico 11 transiciones por etapa Calificativos P0, P1 y N1 3 acciones son posibles: al activar (P1), continua (N1) y al desactivar (P0) Etapa activa en vdeo inverso El tiempo de alcance es variable y siempre no nulo
Lmite del tamao de los programas Precisin del tiempo transcurrido asociado a una etapa Nmero mximo de etapas por grfico
Nmero mximo de transiciones por grfico y por etapa Mecanismo de comando de acciones Nmero mximo de bloques de accin por etapa Indicacin grfica del estado de una etapa Tiempo de alcance de una transicin (desactivacin de las etapas superiores y activacin de las etapas inferiores)
___________________________________________________________________________ 6/13
B
Profundidad de las construcciones divergentes y convergentes Lista de autmatas programables por PL7 Lmite dado por la cuadrcula de introduccin TSX 3710, 3720, TSX 5710, 5720, 5725, 5730, 5735, 5740, 57 45 PMX 5710, 5720, 5735, 5745, PCX 5710, 5735 1 tarea peridica o cclica 1 tarea peridica 8 tareas de sucesos para autmatas 37 10 16 tareas de sucesos para autmatas 37 20 32 tareas de sucesos para autmatas 57 10 64 tareas de sucesos para autmatas 57 20/30 Gama de intervalos entre tareas Orden preferencial o no preferencial Longitud mxima de una expresin Evaluacin parcial de las expresiones booleanas Longitud mxima de las estructuras de comandos en ST Valor de la variable de comando despus la ejecucin completa de un bucle FOR Representacin grfica/semigrfica Restriccin en la topologa de las redes de 1 ms a 255 ms Orden preferencial variable no variable El valor de la variable de comando vale el valor lmite + 1 (puesto que el paso es de 1) Representacin grfica El tamao mximo de una red LD es de 16 columnas y 7 lneas
___________________________________________________________________________ 6/14
B
Nota 14: todava no se han implantado estos tipos de datos de forma visible para el usuario. Sin embargo, esta tabla indica sus gamas de valores en el formato IEC 1131-3. TIME: de T#0 T#429496729.5s TIME_OF_DAY: de TOD#0:0:0 TOD#23:59:59 DATE_AND_TIME: de DT#1990-01-01:0:0:0 DT#2099-12-31:23:59:59 DATE: de D#1990-01-01 D#2099-12-31 Nota 15: se redondea del modo siguiente: de x.0 s a x.4 s se redondea a x s y; de x.5 s a x.9 s se redondea a x+1 s. Nota 16: es posible indexar positiva y negativamente todos los tipos de variables directamente representadas dentro del lmite del nmero mximo respectivo definido en la configuracin.
___________________________________________________________________________ 6/15
B
Situaciones de error Situaciones de error Errores de conversin de tipo Restricciones y funcionamiento PL7 Sealado durante la ejecucin al posicionar un bit sistema; vase la tabla Elementos comunes, tabla 22, caracterstica 1 Sealado durante la ejecucin al posicionar el bit sistema %S18 Sealado durante la ejecucin al posicionar el bit sistema %S18 Sealado durante la ejecucin al posicionar el bit sistema %S15 Detectado durante la programacin Sealado durante la ejecucin al posicionar el bit sistema %S19 Detectado durante la configuracin Detectado durante la programacin si es posible; si operacin no sealado durante la ejecucin al posicionar el bit sistema %S18 El autmata pasa al modo de falla de rebasamiento de watchdog; se indica la unidad de programacin implicada
El resultado numrico excede la gama del tipo dado Posicin de caracteres especificada invlida
El resultado excede la longitud mxima de la cadena Efectos de borde durante la evaluacin de una transicin Tiempos de ejecucin no respetados
Otros conflictos de orden de tareas Divisin entre cero Tipo de dato invlido para una
___________________________________________________________________________ 6/16
TRUE
P P P
AND AND(
ANDR
ANDF
O lgica (directa, inversa, flanco ascendente, flanco descendente) Inversin O lgica exclusiva (directa, inversa, flanco ascendente, flanco descendente) Escritura (directa, inversa) Puesta a 1 Puesta a 0 Bloque de operacin (contenido: vase las pginas siguientes) Bloque de comparacin horizontal (contenido: vase las pginas siguientes)
( )
P P
N N
OR
OR(N
OR(R
OR(F
XORN XORF
( / )
ST STN S R [accin] LD AND AND( OR OR( XOR [comparacin] [comparacin] [comparacin] [comparacin] [comparacin] [comparacin]
(S )
(R )
OPERATE action
COMPARE comparaison
___________________________________________________________________________ 7/1
b Instrucciones Asignacin O booleena Y booleena O exclusiva booleena Inversin Flanco ascendente, descendente Puesta a 1, puesta a 0 Bloques de funcin TemporizadorIEC Temporizador PL7-3 LD
%TMi IN Q
%Ti E C D R %Ci R S CU CD E D F
Contador/Descontador
BLK..END_BLK BLK..END_BLK
Monoestable Registro
%MNi R S % Ri
R
F E
I O
BLK..END_BLK
Drum
U
% DR i F
BLK..END_BLK
Bloques de funciones Temporizador IEC Temporizador PL7-3 START %TMi DOWN %TMi PRESET %Ti START %Ti STOP %Ti
Contador/Descontador
RESET %Ci PRESET %Ci UP %Ci, DOWN %Ci START %MNi RESET %Ri PUT %Ri GET %Ri RESET %DRi
Monoestable Registro
Programador cclico
Ayuda de memoria
B
Estructuras de control Accin condicional Accin iterativa condicional Accin iterativa condicional Accin repetitiva Instruccin de salida de bucle Aritmtica enteros (simple y doble longitud) Transferencia o inicializacin Comparaciones Suma, resta, multiplicacin, divisin, resto de la divisin Y, O, O exclusiva, complemento Valor absoluto Raz cuadrada Incremento Decremento Desplazamiento a la izquierda Desplazamiento a la derecha Desplazamiento circular a la izquierda Desplazamiento circular a la derecha Aritmtica en flotantes Transferencia o inicializacin Comparaciones Suma, resta, multiplicacin, divisin, parte entera Valor absoluto, raz cuadrada Logaritmo, exponenciales Seno, coseno, tangente Arco seno, arco coseno, arco tangente Conversin grado <--> radianes ST IF...THEN... ELSIF...THEN... ELSE...END_IF; WHILE...DO...END_WHILE; REPEAT...UNTIL...END_REPEAT; FOR...DO...END_FOR; EXIT LD/IL/ST := = <> <= < > >= + - * / REM AND OR XOR NOT ABS, SQRT INC DEC SHL SHR ROL ROR LD/IL/ST := = <> <= < > >= + - * / TRUNC ABS, SQRT LOG, LN, EXPT, EXP SIN, COS, TAN ASIN, ACOS, ATAN DEG_TO_RAD, RAD_TO_DEG LD/IL/ST BCD_TO_INT GRAY_TO_INT INT_TO_BCD INT_TO_REAL DINT_TO_REAL REAL_TO_INT REAL_TO_DINT DBCD_TO_DINT DINT_TO_DBCD DBCD_TO_INT INT_TO_DBCD LW HW CONCATW
Conversiones numricas Conversin BCD en entero simple longitud Conversin GRAY en entero simple longitud Conversin entero simple longitud en BCD Conversin entero simple longitud en flotante Conversin entero doble longitud en flotante Conversin flotante en entero simple longitud Conversin flotante en entero doble longitud Conversin BCD 32 bits en entero 32 bits Conversin entero 32 bits en BCD 32 bits Conversin BCD 32 bits en entero 16 bits Conversin entero 16 bits en BCD 32 bits Extrac. de 1 pal. de valor menos sig. de 1 pal. doble Extrac. de 1 pal. de valor ms sig. de 1 doble pal. Concatenacin de 2 palabras simples
___________________________________________________________________________ 7/3
B
Tablas de bits Transferencia o inicializacin Copia de una tabla de bits en una tabla de bits Y entre dos tablas O entre dos tablas O exclusiva entre dos tablas Negacin en una tabla Copia de una tabla de bits en una tabla de palabras Copia de una tabla de bits en una tabla de dobles palabras Copia de una tabla de palabras en una tabla de bits Copia de una tabla de dobles palabras en una tabla de bits Clculo de la longitud de una tabla Instrucciones para tablas Transferencia e inicializacin Operaciones aritmticas entre tablas Operaciones lgicas entre tablas Operaciones aritmticas entre una tabla y un entero Operaciones lgicas entre una tabla y un entero Complemento de elementos de una tabla Suma de todos los elementos de una tabla Comparacin de dos tablas Bsqueda del 1er elemento de una tabla igual a un valor Bsqueda del 1er elemento de una tabla igual a un valor desde un rango Bsqueda del 1er elem. de una tabla superior a un valor Bsqueda del 1er elem. de una tabla inferior a un valor Bsqueda del ms grande valor en una tabla Bsqueda del ms pequeo valor en una tabla Nmero de ocurrencias de un valor en una tabla Desplazamiento circular a la izquierda en una tabla Desplazamiento circular a la derecha en una tabla Ordenacin de una tabla (ascendente o descendente) Clculo de la longitud de una tabla Instrucciones para tablas de flotantes Transferencia e inicializacin Suma de todos los elementos de una tabla Comparacin de dos tablas Bsqueda del 1er elem. de 1 tabla igual a un valor Bsqueda del 1er elem. de 1 tabla sup. a un valor Bsqueda del 1er elem. de 1 tabla inf. a un valor Bsqueda del valor mayor en una tabla Bsqueda del valor menor en una tabla Nmero de ocurrencias de un valor en una tabla Desplazamiento circular a la izq. en una tabla Desplazamiento circular a la derecha en una tabla Ordenacin de una tabla (ascendente o descendente) Clculo de la longitud de una tabla LD/IL/ST := COPY_BIT AND_ARX OR_ARX XOR_ARX NOT_ARX BIT_W BIT_D W_BIT D_BIT LENGTH_ARX LD/IL/ST := + - * / REM AND OR XOR + - * / REM AND OR XOR NOT SUM EQUAL FIND_EQW, FIND_EQD FIND_EQWP, FIND_EQDP FIND_GTW, FIND_GTD FIND_LTW, FIND_LTD MAX_ARW, MAX_ARD MIN_ARW, MIN_ARD OCCUR_ARW, OCCUR_ARD ROL_ARW, ROL_ARD ROR_ARW, ROL_ARW SORT_ARW, SORT_ARD LENGTH_ARW, LENGTH_ARD LD/IL/ST := SUM_ARR EQUAL_ARR FIND_EQR FIND_GTR FIND_LTR MAX_ARR MIN_ARR OCCUR_ARR ROL_ARR ROR_ARR SORT_ARR LENGHT_ARR
___________________________________________________________________________ 7/4
Ayuda de memoria
B
InstruccionesOrphe Desplazamiento a la izquierda en palabra con recuperacin de bits desplazados Desplazamiento a la derecha en palabra con extensin de signo y recup. de bits desplazados Desplazamiento a la derecha en palabra con relleno de ceros y recup. de bits desplazados Contaje/descontaje con indicacin de rebasamiento Desplazamiento circular a la izquierda Desplazamiento circular a la derecha Intercambios explcitos Lectura de los parmetros %M de una va lgica Lectura de los %M de estado de una va lgica Restauracin de los parm. %M de una va lgica Guardado de los parmetros %M de una va lgica Escritura de los %M de comando de una va lgica Escritura de los parmetros %M de una va lgica Instrucciones de gestin del tiempo Reloj-calendario Comparaciones Transferencia Lectura de la fecha y del cdigo de la ltima parada del autmata Lectura de la fecha sistema Actualizacin de la fecha sistema Agregar una duracin a una fecha completa Agregar una duracin a una hora del da Conversin de una fecha en cadena Da de la semana Desviacin entre dos fechas Desviacin entre dos fechas completas Desviacin entre dos horas del da Conversin de una fecha completa en cadena Quitar una duracin de una fecha completa Quitar una duracin de una hora del da Conversin de una duracin en cadena Conversin de una hora del da en cadena Puesta en la forma horas-min-seg de una duracin Instrucciones de temporizacin Temporizacin en la conexin Temporizacin en la desconexin Temporizacin de impulsin Generador de seales rectangulares Instrucciones de archivo de datos Inicializacin del rea de archivos en tarjeta PCMCIA Escritura de datos en tarjeta PCMCIA Lectura de datos en tarjeta PCMCIA LD/IL/ST WSHL_RBIT, DSHL_RBIT WSHR_RBIT, DSHR_RBIT WSHRZ_C, DSHRZ_C SCOUNT ROLW, ROLD RORW, RORD LD/IL/ST READ_PARAM READ_STS RESTORE_PARAM SAVE_PARAM WRITE_CMD WRITE_PARAM LD/IL/ST SCHEDULE = <> <= < > >= := PTC RRTC WRTC ADD_DT ADD_TOD DATE_TO_STRING DAY_OF_WEEK DELTA_D DELTA_DT DELTA_TOD DT_TO_STRING SUB_DT SUB_TOD TIME_TO_STRING TOD_TO_STRING TRANS_TIME LD/IL/ST FTON FTOF FTP FPULSOR LD/IL/ST SET_PCMCIA WRITE_PCMCIA READ_PCMCIA
___________________________________________________________________________ 7/5
B
Instrucciones para cadenas de caracteres Comparaciones Transferencia Conversin Conversin Conversin Conversin Conversin Conversin de un entero doble en cadena de un entero simple en cadena de una cadena en entero doble de una cadena en entero simple de una cadena en flotante de un flotante en cadena LD/IL/ST = <> <= < > >= := DINT_TO_STRING INT_TO_STRING STRING_TO_DINT STRING_TO_INT STRING_TO_REAL REAL_TO_STRING CONCAT DELETE EQUAL_STR FIND INSERT LEFT LEN MID REPLACE RIGHT LD/IL/ST Posicionamiento %Si Posicionamiento %SWi MASKEVT UNMASKEVT LD/IL/ST CANCEL DATA_EXCH INPUT_CHAR OUT_IN_CHAR PRINT_CHAR RCV_TLG READ_VAR SEND_REQ SEND_TLG WRITE_VAR ROR1_ARB SWAP READ_GDATA WRITE_GDATA CALL_MODEM SERVER WRITE_ASYN READ_ASYN
Concatenacin de dos cadenas Eliminacin de una subcadena Bsqueda de un primer carcter diferente Bsqueda de una subcadena Insercin de una subcadena Extraccin de la parte izquierda de una cadena Longitud de una cadena Extraccin de una subcadena Reemplazo de una subcadena Extraccin de la parte derecha de una cadena Multitareas y sucesos Activacin / desactivacin de una tarea Ajuste del tiempo de ciclo de una tarea Enmascaramiento global de sucesos Desenmascaramiento global de sucesos Comunicacin Peticin de parada de una funcin en curso Emisin de datos y/o recepcin de datos Peticin de lectura de una cadena de caracteres Emisin y/o peticin de recepcin de una cadena de caracteres Emisin de una cadena de caracteres Recepcin de un telegrama Lectura de objetos lenguaje de base Emisin/recepcin de peticiones UNI-TE Emisin de un telegrama Escritura de objetos lenguaje de base Desplazamiento de 1 byte a la derecha de una tabla Permutacin de los bytes de una tabla de palabras Lectura de datos comunes Modbus Plus Escritura de datos comunes Modbus Plus Gestin de la conexin de la tarjeta Mdem Servidor inmediato Escritura de 1 K en mensajera Lectura de 1 K en mensajera
___________________________________________________________________________ 7/6
Captulo 8 8 Prestaciones
8 Prestaciones
8.1
Generalidades
Este captulo permite calcular para los autmatas TSX 37/57: . la duracin de la ejecucin del programa de aplicacin, . el tamao de memoria del programa de aplicacin. Duracin de la ejecucin del programa de aplicacin El clculo del tiempo de ejecucin del programa se efecta mediante las tablas presentadas en las pginas siguientes sumando los tiempos de cada instruccin del programa. Nota: el tiempo obtenido corresponde a un tiempo mximo. En efecto, un bloque de operacin o un subprograma se tratar nicamente si la condicin de ejecucin (ecuacin lgica que condiciona la ejecucin del bloque, del subprograma) es verdadera. Por consiguiente, es posible que el tiempo efectivo sea muy inferior al tiempo mximo calculado. El clculo del tiempo de ciclo completo hace que intervengan parmetros relativos al autmata (tiempo overhead, duracin del intercambio de entradas/salidas...). Para el procedimiento de clculo completo, vase el manual de puesta en marcha del autmata respectivo (captulo Prestaciones).
Elemento Programa
Mtodo de clculo Se suman todas las instrucciones del programa, (vase las tablas en los captulos 8.2 y 8.3). La suma se multiplica por el coeficiente que corresponde al lenguaje utilizado (vase la pgina siguiente) Vase el captulo 8.4.4
Funciones avanzadas
Objetos PL7 configurados Vase el captulo 8.4.2 Mdulo de entradas/ Vase el captulo 8.4.3 salidas configuradas
___________________________________________________________________________ 8/1
B
En las tablas de las pginas que siguen, la informacin acerca de los tamaos se refieren al volumen de cdigos de instrucciones. Para conocer el tamao total de una instruccin o de un programa, hay que aplicar un coeficiente multiplicador que tenga en cuenta la informacin tpica por lenguaje (ejemplo: informacin grfica en el caso del lenguaje de contactos) En lenguaje de contactos: Volumen total = 1,7 x Volumen de cdigo En lenguaje Literal estructurado: Volumen total = 1,6 x Volumen de cdigo En lenguaje Lista de instrucciones:
para el autmata TSX37: Volumen total = 1,4 x Volumen de cdigo para el autmata TSX57: Volumen total = 1,6 x Volumen de cdigo
En lenguaje Grafcet :
El volumen asociado al grfico es el siguiente: Volumen Grfico (en palabras) = 214 + 17 * no de etapas de grfico + 2 n total de etapas configuradas + 4 * no de acciones programadas
Observacin Los nmeros indicados en las tablas siguientes son evaluaciones medias obtenidas desde una aplicacin tpica. No es posible proporcionar informaciones exactas, puesto que PL7 optimiza la utilizacin de la memoria en funcin del contenido y de la estructura de la aplicacin. El captulo 8.4.1 recapitula las reas de memoria ocupadas por la aplicacin.
___________________________________________________________________________ 8/2
Prestaciones
8.2 Prestaciones TSX 37
B
Objetos Tiempo de ejecucin (s) 3705 3720 3720 08/10 ram cart 0,25 0,13 0,19 Tamao (palabras) 37xx 1
LD,
%M1 (1)
0,25
0,13
0,19
LDN %M1[%MW2] %MW0:X0 (2) %IWi.j:Xk (3) %MW0[%MW10]:X0 %KW0[%MW10]:X0 %M1 13,10 6,06 77,04 16,29 87,27 0,50 12,85 5,75 69,25 15,55 79,05 0,25 12,85 5,75 69,25 15,55 79,05 0,38 7 4 8 8 12 2
LDR,
LDF %M1[%MW2] AND, ANDN , AND (, AND (N , idem OR ANDR, ANDF, AND (R, AND (F, idem OR Idem LDR LDF 13,01 idem 12,75 LD, 12,75 LDN 7
XOR, XORN
5 13 10 14 14 18 9 19 2
%M1[%MW2] %MW0:X0 %NW{i}j:Xk (3) %MW0[%MW10]:X0 Bobinas mltiples en Ladder, coste de la 2da bobina y de las siguientes Bloque de operacin [accin] Bloque ejecutado No ejecutado
7 4 8 8 1 1 1
(1) Implica todos los objetos bits forzables: %I, %Q, %X, %M, %S (2) Otros objetos del mismo tipo: bits de salida del bloque de funcin %TMi.Q ..., bits extrados de palabras sistema %SWi:Xj (3) Otros objetos del mismo tipo: bits extrados de palabras comunes %NW{i}j:Xk, bits extrados de palabras de E/S %IWi.j.Xk, %QWi.j.Xk, bits extrados de %KW, bits de falla %Ii.j.ERR ___________________________________________________________________________ 8/3
B
LD IL ST Objetos Tiempo de ejecucin (s) 3705 3720 3720 08/10 ram cart 0,00 0,00 0,00 12,38 0,25 0,25 0,75 0,25 11,85 0,13 0,13 0,38 0,13 11,85 0,19 0,19 0,56 0,19 Tamao
(palabras)
37xx 0 4 1 1 3 1
bloque de comparacin horizontal bloque de comparacin vertical convergencia divergencia no seguida de une convergencia
LD [comparacin]
37xx
Temporizador IE
flanco ascendente en IN IN %TM1 START %TM1 (flanco ascend.) flanco descendente en IN IN %TM1 DOWN %TM1 (flanco descendente) IN =1 IN %TM1 (=1) IN %TM1 (=0) activacin timer parada timer 43,39 17,47 41,11 17,01 3
18,74 17,40
17,99 16,67
IN =0
Temporizador PL7-3
START %T1 STOP %T1 E=0 RESET %T1 activas inmovilizar reset timer activo timer inactivo 12,63 12,94 17,55 12,15 12,15 17,00 3
Contaje/descontaje
reset, R=1 preset, S=1 R %C8 (=1) S %C9 (=1) RESET %C8 PRESET %C9 reset preset up down ninguna accin 18,69 20,42 19,92 19,92 13,27 17,92 19,73 19,10 19,10 12,81 3
flanco ascendente en CU CU %C8 (flancoUP %C8 ascendente) flanco ascendente en CD CD %C9 (flancoDOWN %C9 ascendente) entradas inactivas R/S/CU/CD bit inactivo
___________________________________________________________________________ 8/4
Prestaciones
Bloques de funcin (cont.)
LD IL ST Objetos/condiciones Tiempo de ejecucin (s) 3705/08/10 3720
B
Tamao (palabras) 37xx
37xx
B
S %MN0, flanco START %MN0 ascendente S %MN0, S=1/0 I %R2 (flanco) PUT %R2 O %R2 (flanco) GET %R2 R %R1 (=1) I/O/R, bit inactivo RESET %R2 activacin monostable activo 35,08 11,64 33,16 11,17 3
Monostable
flanco ascendente en S S=1
Registro
flanco en I flanco en O R=1 entradas inactivas almacenamiento desalmacenamiento reset ninguna accin 21,90 21,90 16,90 12,61 21,27 21,27 16,02 12,19 3
Drum
flanco en U U %DR0 UP %DR1 up, fijo por bit de orden R=1 R %DR1 RESET %DR2 reset, fijo por bit de orden entradas inactivas R/U, bit inactivo ninguna accin, fijo por bit de orden 181,37 19,30 174,15 19,30 175,92 19,30 169,13 19,30 162,03 19,30 164,00 19,30 3
___________________________________________________________________________ 8/5
B
8.2.3 Aritmtica entera y con coma flotante Correcciones en funcin del tipo de objetos Los tiempos y volmenes de las pginas siguientes se indican para %MW0, %MD0 o %MF0
Tiempo de ejecucin (s) 3705/08/10 3720 Tamao (palabras) 37xx
11,20
10,60
13,37
12,60
Valor que se debe agregar para objetos del tipo siguiente: %KWi, %KWi[%MW0], %KDi, %KFi, palabras comunes, palabras de E/S
70,98 63,50 2
Correccin en funcin del contexto de la operacin Valor que se debe agregar si la operacin est al mnimo en la 2da posicin en la sentencia, ejemplo *%MW2 en := %MW0 * %MW1 * %MW2, abarca las operaciones siguientes.
%MW0 %MD0 Y %MF0 0,69 0,99 0,55 0,75 0 0
Valor que se debe agregar para una operacin con resultado de una operacin entre parntesis o ms prioritaria, ejemplo: %MW0 + %MW2 + (...)
%MW0 %MD0 y %MF0 2,86 3,60 2,55 3,15 1 1
___________________________________________________________________________ 8/6
Prestaciones
B
ST Objetos Condiciones Tiempo de ejecucin (s) 3705/08/10 objeto despus de:= := %MW0 %MD0,%MF0 %MW0 %MD0 y %MF0 =, <>, <=, <, >, >= %MW0 %MD0 %MF0 AND, OR, XOR +, %MW0 %MD0 %MW0 %MD0 %MF0 * %MW0 %MD0 %MF0 /, REM / ABS, -objeto %MW0 %MD0 %MF0 %MW0 %MD0 %MF0 NOT SQRT %MW0 %MD0 %MW0 %MD0 %MF0 INC, DEC SHL, SHR, ROL, ROR %MW0 %MD0 %MW0 %MD0 para 1 bit para 1 bit por bit adicional LN LOG EXP EXPT TRUNC COS SIN TAN ACOS ASIN ATAN DEG_TO_RAD RAD_TO_DEG %MF0 %MF0 %MF0 %MF0 %MF0 %MF0 %MF0 %MF0 %MF0 %MF0 %MF0 %MF0 %MF0 1371,60 1458,00 1155,60 2988,00 204,00 2829,60 2840,40 2937,60 4082,40 4082,40 2786,40 852,00 720,00 8,94 10,71 29,06 7,29 9,21 7,29 9,21 62,83 9,75 39,63 58,26 10,69 205,21 62,47 7,20 9,97 13,01 6,69 7,80 17,02 85,73 165,04 4,86 5,20 17,74 20,58 0,063 1270,00 1350,00 1070,00 2490,00 170,00 2620,00 2630,00 2720,00 3780,00 3780,00 2580,00 710,00 600,00 3 3 3 3 3 3 3 3 3 3 3 3 3 8,50 10,26 28,39 6,90 8,55 6,90 8,55 61,20 9,10 36,50 56,90 10,08 201,38 60,25 6,95 9,53 12,50 6,45 7,40 16,70 85,25 158,40 4,40 4,75 17,05 19,15 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 5 5 4,81 6,45 4,46 5,15 3720 4,50 5,70 4,30 4,85 Tamao (palabras) 37xx 2 2 2 2
___________________________________________________________________________ 8/7
9,15 5,55
8,70 5,40
9,15 5,55
8,70 5,40
5,55 3,60
5,40 3,30
15
___________________________________________________________________________ 8/8
Prestaciones
8.2.6 Conversiones numricas
ST Tiempo de ejecucin Volumen (s) (palabras) 3705/08/10 3720 ram 3720 cart 37xx 25,03 21,66 36,98 40,90 33,32 58,75 44,59 1 324,85 1 265,54 1 124,85 564,85 24,55 21,15 36,55 40,75 32,55 58,55 44,05 1 065,15 925,70 825,15 445,15 24,55 21,15 36,55 40,75 32,55 58,55 44,05 1 134,70 986,15 879,10 474,40 3 3 3 3 3 3 3 5 5 5 5
BCD_TO_INT INT_TO_BCD GRAY_TO_INT INT_TO_REAL DINT_TO_REAL REAL_TO_INT REAL_TO_DINT DBCD_TO_DINT DBCD_TO_INT DINT_TO_DBCD INT_TO_DBCD
___________________________________________________________________________ 8/9
B
ST Condiciones Tiempo de ejecucin (s) 3705/08/10 3720 ram 3720 cart Volumen (palabras) 37xx
___________________________________________________________________________ 8/10
Prestaciones
8.2.8 Tablas de palabras, dobles palabras y flotantes
ST Condiciones Tiempo de ejecucin (s) 3705/08/10 3720 ram 3720 cart
B
volumen (palabras) 37xx
___________________________________________________________________________ 8/11
B
ST Condiciones Tiempo de ejecucin (s) 3705/08/10 3720 ram 3720 cart Volumen (palabras) 37xx
___________________________________________________________________________ 8/12
Prestaciones
B
ST Condiciones Tiempo de ejecucin (s) 3705/08/10 3720 ram 3720 cart Volumen (palabras) 37xx
Bsqueda
%MW20 := FIND_EQW(%MW0:10,%KW0) %MD20 := FIND_EQD(%MD0:10, %KD0) %MF20 := FIND_EQR(%MF0:10, %KF0) %MF20 := FIND_EQRP(%MF0:10, %KF0) %MD20 := FIND_GTR(%MF0:10, %KF0) %MD20 := FIND_LTR(%MF0:10, %KF0) 10 palabras, caso mx 340,00 10 doble palabras, caso mx 10 doble palabras 10 doble palabras 10 doble palabras 10 doble palabras 350,00 833 845 836 836 250,00 260,00 648 650 643 643 266,25 276,90 690,12 692,25 684,79 684,79 15 16 15 15 15 15
Nmero de ocurrencias
%MW20 := OCCUR_ARW(%MW0:10, %KW0) %MD20 := OCCUR_ARD(%MD0:10, %KD0) %MF20 := OCCUR_ARR(%MF0:10, %KF0) 10 palabras 10 doble palabras 10 doble palabras 350,00 370,00 1265 250,00 270,00 973 266,25 287,55 1036,24 15 16 16
Desplazamiento circular
ROL_ARW(palabra o valor,%MWj:10) ROL_ARD(%MDi,%MDj:10) ROL_ARR(%MFi,%MFj:10) 10 palabras 10 doble palabras 10 doble palabras 550,00 590,00 585 400,00 430,00 450 426,00 457,95 479,25 9 9 9
Ordenacin
SORT_ARW(%MWi,%MWj:10) SORT_ARD(%MDi,%MDj:10) SORT_ARR(%MFi,%MFj:10) 10 palabras, caso mx 970,00 5 doble palabras, caso mx 10 doble palabras 610,00 1863 700,00 450,00 1433 745,50 479,25 1526,14 9 9 9
___________________________________________________________________________ 8/13
B
8.2.9 Gestin del tiempo
ST Tiempo de ejecucin (s) 3705/08/10 3720 ram 3720 cart Volumen (palabras) 37xx
Acceso al reloj-calendario
RRTC(%MW0:4) WRTC(%MW0:4) PTC(%MW0:5) SCHEDULE(%MW0,%MW1,%MW2, %MD10,%MD12,%M0) 93,60 248,61 97,98 1430 84,80 230,85 88,60 1100 84,80 230,85 88,60 1171,5 5 5 5 5
___________________________________________________________________________ 8/14
Prestaciones
8.2.10 Cadenas de caracteres
ST Condiciones Tiempo de ejecucin (s) 3705/08/10 3720 ram 3720 cart Volumen (palabras) 37xx
OF de manipulacin de cadenas
%MB10:20 := CONCAT(%MB30:10,%MB50:10) %MB10:20 := DELETE(%MB10:22,2,3); %MW0 := EQUAL_STR(%MB10:20,%MB30:20); %MW0 := FIND(%MB10:20,%MB30:10); %MB10:20 := INSERT(%MB30:10,%MB50:10,4); %MB10:20 := LEFT(%MB30:30,20); %MW0 := LEN(%MB10:20); %MB10:20 := MID(%MB30:30,20,10); %MB10:20 : = REPLACE(%MB30:20,%MB50:10,10,10); %MB10:20 := RIGHT(%MB30:30,20); el quinto carcter es diferente 1 170,00 950,00 860,00 1 610,00 1 270,00 920,00 770,00 1 080,00 1 450,00 1 480,00 770,00 600,00 520,00 1 000,00 800,00 570,00 340,00 700,00 870,00 950,00 820,05 639,00 553,80 1 065,00 852,00 607,05 362,10 745,50 926,55 1 011,75 15 15 13 13 17 13 9 15 19 13
___________________________________________________________________________ 8/15
Comunicacin
SEND_REQ(%KW0:6,15,%MW0:1,%MW10:10,%MW30:4) SEND_TLG(%KW0:6,1,%MW0:5,%MW30:2) 2182 1636 1818 1364 1936 1452 21 15
Dilogo de operador
SEND_MSG(ADR#1.0,%MW0:2,%MW10:2) SEND_ALARM(ADR#1.0,%MW0:2,%MW10:2) GET_MSG(ADR#1.0,%MW0:2,%MW10:2) GET_VALUE(ADR#1.0,%MW0,%MW10:2) ASK_MSG(ADR#1.0,%MW0:2,%MW10:2,%MW20:2) ASK_VALUE(ADR#1.0,%MW0,%MW10:2,%MW20:2) DISPLAY_ALRM(ADR#1.0,%MW0,%MW10:2) DISPLAY_GRP(ADR#1.0,%MW0,%MW10:2) DISPLAY_MSG(ADR#1.0,%MW0,%MW10:2) CONTROL_LEDS(ADR#1.0,%MW0:2,%MW10:2) ASSIGN_KEYS(ADR#1.0,%MW0:2,%MW10:2) PANEL_CMD(ADR#1.0,%MW0:2,%MW10:2) 2 240 2 240 2 240 1 120 2 240 2 240 1 120 1 120 1 120 2 240 2 240 2 240 2 000 2 000 2 000 1 000 2 000 2 000 1 000 1 000 1 000 2 000 2 000 2 000 2208 2208 2 208 1 104 2 208 2 208 1 104 1 104 1 104 2 208 2 208 2 208 19 19 19 17 23 21 17 17 17 19 19 19
Regulacin
PID(PIDS1,Unit,%IW3.5,%MW12,%M16,%MW284:43) PWM(%MW11,%Q2.1,%MW385:5) SERVO(%MW12,%IW3.6,%Q2.2,%Q2.3,%MW284:43, %MW390:10) PID_MMI(ADR#0.0.4,%M1,%M2:5,%MW410:62) deval_mmi=0 deval_mmi=1 1320 1080 600 960 EN=1 1140 1100 900 500 800 950 1172 958,5 532,5 852 1012 11 19 20 24
___________________________________________________________________________ 8/16
Prestaciones
B
ST Condiciones Tiempo de ejecucin (s) 3705 3720 3720 08/10 ram cart 440 660 410 300 390 300 510 320 480 310 220 280 220 410 341 511 330 234 298 234 437 Volumen (palabras) 37xx
Funcin Orphe
DSHL_RBIT(%MD102,16,%MD204,%MD206) DSHR_RBIT(%MD102,16,%MD204,%MD206) DSHRZ_C(%MD102,16,%MD204,%MD206) WSHL_RBIT(%MW102,8,%MW204,%MW206) WSHR_RBIT(%MW102,8,%MW204,%MW206) WSHRZ_C(%MW102,8,%MW204,%MW206) SCOUNT(%M100,%MW100,%M101,%M102,%MW101, %MW102,%M200,%M201,%MW200,%MW201) lectura 10 pals. escritura 10 pals. pet. espejo 10 pals. intercambio 10 pals. 20 bytes 20 bytes 20 bytes 13 13 13 13 13 13 25
180 90 110
180 70 95
216 74 104
___________________________________________________________________________ 8/17
8.3
Prestaciones TSX 57
En lo que sigue de este documento, por razones de comodidad de representacin, se han agrupado los procesadores en 3 familias:
Identificacin A B C Procesadores TSX 57 10 y PCX 57 10 TSX 57 20, TSX 57 25, TSX 57 30, TSX 57 35 PMX 57 10, PCX 57 35 TSX 57 40, TSX 57 45 PMX 57 20, PMX 57 35, PMX 57 45
Nota: en lo que sigue de este documento, las 3 familias se mencionan en la parte inferior de cada pgina.
___________________________________________________________________________ 8/18
Prestaciones
8.3.1 Instrucciones booleanas
LD IL ST Objetos
B
Tiempo de ejecucin Tamao (s) (palabras) A A B/C B/C B/C B/C 57xx > 4K ram ram cart cart > 4K > 4K 0,29 0,12 0,21 1
LD,
%M1 (1)
0,58
0,25
0,37 0,37
0,58
LDN %M1[%MW2] %MW0:X0 (2) %IWi.j:Xk (3) %MW0[%MW10]:X0 %KW0[%MW10]:X0 %M1 2,33 1,46 2,33 3,50 3,50 0,87 1,00 0,62 1,00 1,50 1,50 0,37 1,00 0,62 1,00 1,50 1,50 0,50 1,58 1,00 1,58 2,37 2,37 0,58 1,58 1,00 1,58 2,37 2,37 0,79 6 4 6 9 9 2
LDR,
LDF %M1[%MW2] AND, ANDN , AND (, AND (N , idem OR ANDR, ANDF, AND (R, AND (F, idem OR idem LDR, LDF 2,62 idem LD, 1,12 LDN 1,12 1,79 1,79 7
XOR, XORN
5 13 10 14 14 18 9 19 2
%M1[%MW2] %MW0:X0 %NW{i}j:Xk (3) %MW0[%MW10]:X0 bobinas mltiples en ladder, costo de la 2da bobina y de las siguientes bloque de operacin [accin] bloque ejecutado no ejecutado
7 4 8 8 1 1 1
0,37 0,54
(1) Implica todos los objetos bits forzables: %I, %Q, %X, %M, %S (2) Otros objetos del mismo tipo: bits de salida del bloque de funcin %TMi.Q ..., bits extrados de palabras sistema %SWi:Xj, bits extrados de %KW, bits de falla %Ii.j.ERR (3) Otros objetos del mismo tipo: bits extrados de palabras comunes %NW{i}j:Xk, bits extrados de palabras de E/S %IWi.j.Xk, %QWi.j.Xk
A TSX5710yPCX5710 B TSX5720/25/30/35,PMX5710yPCX5735 C TSX5740/45yPMX5720/35/45
___________________________________________________________________________ 8/19
B
LD IL ST Objetos Tiempo de ejecucin Tamao (s) (palabras) A A B/C B/C B/C B/C 57xx > 4K ram ram cart cart > 4K > 4K 0,00 0,00 0,00 0,00 0,00 0,00 0 2,04 2,04 0,29 0,29 0,87 0,29 0,87 0,12 0,12 0,37 0,12 0,87 1,37 0,12 0,21 0,12 0,21 0,37 0,62 0,12 0,21 1,37 0,21 0,21 0,62 0,21 5 1 1 3 1
bloque de comparacin horizontal bloque de comparacin vertical convergencia divergencia no seguida de una convergencia
LD [comparacin]
0,29 ladder, 1 divergencia 0,29 list MPS+MPP list MRD 0,87 0,29
Temporizador IE
flanco ascendente en IN IN %TM1 START %TM1 activacin timer parada timer timer activo timer inactivo 67,87 27,84 32,15 28,60 46,92 19,50 22,66 20,18 13,52 5,01 5,80 5,40 3 (flanco ascendente) flanco descendente en IN IN %TM1 DOWN %TM1 (flanco descendente) IN =1 IN =0 IN %TM1 (=1) IN %TM1 (=0)
Temporizador PL7-3
START %T1 STOP %T1 E=0 RESET %T1 activar fijar reset timer activo timer inactivo 23,08 23,46 30,40 16,16 16,26 21,51 5,13 5,85 5,78 3
Contaje/descontaje
reset, R=1 preset, S=1 R %C8 (=1) S %C9 (=1) RESET %C8 PRESET %C9 reset preset up down ninguna accin 30,38 33,99 33,81 33,81 22,37 21,26 23,55 23,49 23,49 16,22 6,11 6,25 6,50 6,50 4,58 3
flanco ascendente en CU CU %C8 (flancoUP %C8 ascendente) flanco ascendente en CD CD %C9 (flancoDOWN %C9 ascendente) entradas inactivas R/S/CU/CD bit inactivo
A TSX5710yPCX5710
B TSX5720/25/30/35,PMX5710yPCX5735
C TSX5740/45yPMX5720/35/45
___________________________________________________________________________ 8/20
Prestaciones
Bloques de funcin (cont.)
LD IL ST Objetos/Condiciones Tiempo de ejecucin (s) A B
B
Tamao (palabras) 57xx
Monostable
flanco ascendente en S S=1 S %MN0, flanco START %MN0 ascendente S %MN0, S=1/0 activacin monostable activo 57,42 20,38 40,65 14,11 11,88 4,04 3
Registro
flanco en I flanco en O R=1 entradas inactivas I %R2 (flanco) PUT %R2 O %R2 (flanco) GET %R2 R %R1 (=1) I/O/R, bit inactivo RESET %R2 almacenamiento desalmacenamiento reset ninguna accin 35,69 35,69 26,83 20,7115,50 24,92 24,92 18,80 6,72 6,72 6,11 4,62 3
Drum
flanco en U R=1 entradas inactivas U %DR0 R %DR1 R/U, bit inactivo UP %DR1 RESET %DR2 up, fijo por bit de orden reset, fijo por bit de orden ninguna accin, fija por bit de orden 268,69 25,00 257,01 25,00 259,07 25,00 185,41 25,00 176,06 25,00 179,06 25,00 58,68 25,00 57,00 25,00 56,82 25,00 3
A TSX5710yPCX5710
B TSX5720/25/30/35,PMX5710yPCX5735
C TSX5740/45yPMX5720/35/45
___________________________________________________________________________ 8/21
8.3.3 Aritmtica entera y con coma flotante Correcciones en funcin del tipo de objetos Los tiempos y volmenes de las pginas se indican para %MW0, %MD0 o %MF0
Tiempo de ejecucin (s) A B ram B cart Tamao (palabras) 57xx
C ram
C cart
0,87 0,87
1,37 1,37
0,87 0,87
1,37 1,37
5 5
Valor que se debe agregar para objetos del tipo siguiente: Palabras comunes, palabras de E/S 0,87 0,37 0,58 0,37
0,58
Correccin en funcin del contexto de la operacin Valor que se debe agregar si la operacin est al mnimo en la 2da posicin en la sentencia, ejemplo *%MW2 en := %MW0 * %MW1 * %MW2, abarca las operaciones siguientes: *,/,REM en palabras y dobles palabras, o todas las operaciones de flotantes.
%MW0 %MD0 y %MF0 0,58 0,87 0,25 0,37 0,37 0,54 0,25 0,37 0,37 0,54 1 1
Valor que se debe agregar para una operacin con resultado de una operacin entre parntesis o ms prioritaria, ejemplo: %MW0 + %MW2 + (...)
%MW0 %MD0 y %MF0 0,29 0,58 0,12 0,25 0,17 0,33 0,12 0,25 0,17 0,33 1 1
___________________________________________________________________________ 8/22
A TSX5710yPCX5710
B TSX5720/25/30/35,PMX5710yPCX5735
C TSX5740/45yPMX5720/35/45
Prestaciones
B
ST Objetos Condiciones A objeto despus de:= %MW0 %MD0 %MF0 := =, <>, <=, <, >, >= %MW0 %MD0 y %MF0 %MW0 %MD0 %MF0 AND, OR, XOR +, %MW0 %MD0 %MW0 %MD0 %MF0 * %MW0 %MD0 %MF0 /, REM / ABS, -objeto %MW0 %MD0 %MF0 %MW0 %MD0 %MF0 NOT SQRT %MW0 %MD0 %MW0 %MD0 %MF0 INC, DEC SHL, SHR, ROL, ROR %MW0 %MD0 %MW0 %MD0 para 1 bit para 1 bit por bit adicional LN LOG EXP EXPT TRUNC COS SIN TAN ACOS ASIN ATAN DEG_TO_RAD RAD_TO_DEG %MF0 %MF0 %MF0 %MF0 %MF0 %MF0 %MF0 %MF0 %MF0 %MF0 %MF0 %MF0 %MF0 0,87 %MW0+(..., o antes de *, /, REM 1,17 1,17 %MD0+(..., o antes de *, /, REM 1,75 1,75 0,87 1,17 1,17 1,46 48,36 0,87 1,17 0,87 1,17 99,42 10,83 55,31 87,60 11,93 333,15 95,83 0,87 1,17 18,82 0,87 1,17 22,20 111,29 233,62 1,17 1,75 2,92 3,21 0,042 1711 1819 1442 3412 215 3530 3544 3665 5093 5093 3476 814 791 Tiempo de ejecucin (s) B ram B cart C ram C cart 0,37 0,50 0,50 0,75 0,75 0,37 0,50 0,50 0,62 0,37 0,50 0,37 0,50 9,14 0,58 0,75 0,75 1,08 1,08 0,58 0,75 0,79 1,04 0,58 0,75 0,58 0,75 9,35 0,37 0,50 0,50 0,75 0,75 0,37 0,50 0,50 0,62 4,17 0,37 0,50 0,37 0,50 4,42 4,65 15,26 4,42 4,94 5,72 0,37 0,54 3,67 0,37 0,54 5,53 16,14 5,10 0,50 0,75 1,25 1,37 0,042 4,53 4,53 12,03 98,70 52,40 4,53 4,53 4,53 5,33 6,73 4,33 0,58 0,75 0,75 1,08 1,08 0,58 0,75 0,79 1,04 4,42 0,58 0,75 0,58 0,75 4,67 4,86 15,51 4,67 5,15 49,63 5,97 0,58 0,75 3,92 0,58 0,75 5,74 16,39 5,35 0,75 1,08 1,96 2,12 0,042 4,78 4,78 12,28 98,70 52,40 4,78 4,78 4,78 5,58 6,98 4,58 3 3 3 3 3 3 3 3 3 3 3 3 3 Volumen (palabras) 57xx 2 2 2 2 2 2 2 4 4 4 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 3 3 3 2 2 10 10
33,88 34,13
226,54 226,79 49,38 68,51 68,76 0,37 0,54 0,37 0,54 0,58 0,75 0,58 0,75
13,01 13,26
16,24 16,45 89,66 89,91 173,01 173,26 0,50 0,75 1,25 1,37 0,75 1,08 1,96 2,12
0,042 0,042 1270 1350 1070 2624 165 2620 2630 2720 3780 3780 2580 626 608 1270 1350 1070 2775 175 2620 2630 2720 3780 3780 2580 662 643
___________________________________________________________________________ 8/23
8.3.4
ST
<cond> bit forzable comparacin if <cond > then <accin> end_if; condicin verdadera condicin falsa (salto) If <cond> then <accin1> else <accin2> end_if; condicin verdadera condicin falsa while <cond> do.<accin> end_while paso en el bucle con conclusin salida del bucle <cond> end_repeat repeat <accin> until paso en el bucle con conclusin ltimo paso for <pal1:=pal2>to <pal3>do <accin> end_for entrada en for, ejecutada una sola vez paso en bucle con conclusin salida de bucle
1,29 0,71
0,62 0,37
0,96 0,54
1,29 0,71
0,62 0,37
0,96 0,54
0,710 0,58
,37 0,25
0,54 0,42
15
A TSX5710yPCX5710
B TSX5720/25/30/35,PMX5710yPCX5735
C TSX5740/45yPMX5720/35/45
___________________________________________________________________________ 8/24
Prestaciones
8.3.6 Conversiones numricas
ST Tiempo de ejecucin (s) A B ram B cart 30,33 24,48 59,73 60,35 49,14 91,59 68,84 1 625,73 1 379,53 1 251,05 620,01 24,44 20,19 40,79 40,64 34,76 60,86 48,31 1 069,50 909,63 819,50 439,50 24,65 20,40 41,00 40,85 35,01 61,11 48,56 1 192,30 1 014,07 913,55 489,85 Volumen (palabras) 57xx 3 3 3 3 3 3 3 5 5 5 5
B
C ram 4,75 4,51 5,82 3,25 3,67 3,38 3,67 378,40 323,83 314,88 168,73 C cart 4,96 4,72 6,02 3,46 3,92 3,63 3,92 378,15 323,62 314,63 168,48
BCD_TO_INT INT_TO_BCD GRAY_TO_INT INT_TO_REAL DINT_TO_REAL REAL_TO_INT REAL_TO_DINT DBCD_TO_DINT DBCD_TO_INT DINT_TO_DBCD INT_TO_DBCD
A TSX5710yPCX5710
B TSX5720/25/30/35,PMX5710yPCX5735
C TSX5740/45yPMX5720/35/45
___________________________________________________________________________ 8/25
B
ST Condiciones A Tiempo de ejecucin (s) B ram B cart C ram C cart Volumen (palabras) 57xx
A TSX5710yPCX5710
B TSX5720/25/30/35,PMX5710yPCX5735
C TSX5740/45yPMX5720/35/45
___________________________________________________________________________ 8/26
Prestaciones
8.3.8 Tablas de palabras, dobles palabras y flotantes
ST Condiciones A Tiempo de ejecucin (s) B ram B cart C ram C cart
B
Volumen (palabras) 57xx
A TSX5710yPCX5710
B TSX5720/25/30/35,PMX5710yPCX5735
C TSX5740/45yPMX5720/35/45
___________________________________________________________________________ 8/27
B
ST Condiciones A Tiempo de ejecucin (s) B ram B cart C ram C cart Volumen (palabras) 57xx
1270,00 1313,82
A TSX5710yPCX5710
B TSX5720/25/30/35,PMX5710yPCX5735
C TSX5740/45yPMX5720/35/45
___________________________________________________________________________ 8/28
Prestaciones
B
ST Condiciones A Tiempo de ejecucin (s) B ram B cart C ram C cart Volumen (palabras) 57xx
Bsqueda (1)
%MW20 := FIND_EQW(%MW0:10,%KW0) 10 palabras %MD20 := FIND_EQD(%MD0:10, %KD0) %MF20 := FIND_EQR(%MF0:10, %KF0) %MF20 := FIND_EQRP(%MF0:10, %KF0) %MD20 := FIND_GTR(%MF0:10, %KF0) %MD20 := FIND_LTR(%MF0:10, %KF0) 10 dobles palabras 10 doble palabra 10 doble palabra 10 doble palabra 10 doble palabra 374,68 394,40 936 936 936 936 240,00 260,00 624,00 624,00 624,00 624,00 267,60 289,90 645,53 645,53 645,53 645,53 97,00 100,00 135,70 135,70 135,70 135,70 97,00 100,00 135,70 135,70 135,70 135,70 14 15 15 15 15 15
(1)
los valores indicados en esta tabla son valores medios (el valor buscado se sita en medio de esta tabla).
10 palabras 10 dobles palabras 10 doble palabra 10 doble palabra 404,26 483,14 1555 1443 260,00 310,00 289,90 345,65 100,00 119,23 100,00 119,23 261,20 240,50 12 12 12 12
Nmero de ocurrencias
%MW20:=OCCUR_ARW(%MW0:10,%KW0) 10 palabras %MD20:=OCCUR_ARD(%MD0:10,%KD0) 10 dobles palabras 394,40 423,98 1435 260,00 280,00 957,00 289,90 312,20 990,02 100,00 107,69 239,25 100,00 107,69 293,25 14 15 15
Desplazamiento circular
ROL_ARW(palabra o valor,%MWj:10) ROL_ARD(%MDi,%MDj:10) ROL_ARR(%MFi,%MFj:10) 10 palabras 10 dobles palabras 10 doble palabra 621,18 670,48 654 400,00 430,00 436,00 446,00 479,45 451,04 153,85 165,38 109,00 153,85 165,38 109,00 12 12 12
Ordenacin
SORT_ARW(%MWi,%MWj:10) SORT_ARD(%MDi,%MDj:10) SORT_ARR(%MFi,%MFj:10) 10 palabras 10 dobles palabras 10 doble palabra 1 133,90 720,00 700,06 2150 440,00 802,80 490,60 276,92 169,23 276,92 169,23 358,25 12 12 12
Clculo de longitud
LENGTH_ARW(tab_palabra) LENGTH_ARD(tab_dpalabra) LENGTH_ARW(tab_real) LENGTH_ARX(tab_bit) 71,42 71,42 71,42 71,42 50 50 50 50 55,74 55,74 55,74 55,74 19,28 19,28 19,28 19,28 19,28 19,28 19,28 19,28 12 12 12 12
A TSX5710yPCX5710
B TSX5720/25/30/35,PMX5710yPCX5735
C TSX5740/45yPMX5720/35/45
___________________________________________________________________________ 8/29
C cart
%MD10 := DELTA_DT(%MD2:4,%MW6:4) 3 549,60 %MD10 := DELTA_TOD(%MD2,%MD4) %MB2:20 := DT_TO_STRING(%MW50:4) %MW2:4 := SUB_DT(%MW2:4,%MD8) %MD2 := SUB_TOD(%MD2,%MD8) %MB2:15 := TIME_TO_STRING(%MD40) %MB2:9 := TOD_TO_STRING(%MD40) %MD100 := TRANS_TIME(%MD2) 2 632,62 2 297,38 5 492,02 2 622,76 1 922,70 1 281,80 788,80
Acceso al reloj-calendario
RRTC(%MW0:4) WRTC(%MW0:4) PTC(%MW0:5) SCHEDULE(%MW0,%MW1,%MW2, %MD10,%MD12,%M0) 164,81 152,94 165,36 1500 111,44 103,79 111,79 1070 112,19 104,54 112,54 1190 46,43 43,47 46,45 411 47,18 44,22 47,20 411 8 8 8 8
A TSX5710yPCX5710
B TSX5720/25/30/35,PMX5710yPCX5735
C TSX5740/45yPMX5720/35/45
___________________________________________________________________________ 8/30
Prestaciones
8.3.11 Cadenas de caracteres
ST Condiciones A Tiempo de ejecucin (s) B ram B cart C ram C cart
B
Volumen (palabras) 57xx
OF de manipulacin de cadenas
%MB10:20 := CONCAT(%MB30:10,%MB50:10) %MB10:20 := DELETE(%MB10:22,2,3); %MW0 := EQUAL_STR(%MB10:20,%MB30:20); %MW0 := FIND(%MB10:20,%MB30:10); %MB10:20 := INSERT(%MB30:10,%MB50:10,4); %MB10:20 := LEFT(%MB30:30,20); %MW0 := LEN(%MB10:20); %MB10:20 := MID(%MB30:30,20,10); %MB10:20 := REPLACE(%MB30:20,%MB50:10,10,10); %MB10:20 := RIGHT(%MB30:30,20); 1 106,00 790,00 896,00 756,00 640,00 540,00 880,85 713,60 602,10 303,85 246,15 207,69 303,85 246,15 207,69 400,00 319,23 226,92 134,62 273,08 342,31 373,08 24 21 19 19 26 19 12 21 28 19
1 456,00 1 040,00 1 159,60 400,00 1 162,00 830,00 826,00 490,00 994,00 590,00 350,00 710,00 925,45 657,85 390,25 791,65 319,23 226,92 134,62 273,08
A TSX5710yPCX5710
B TSX5720/25/30/35,PMX5710yPCX5735
C TSX5740/45yPMX5720/35/45
___________________________________________________________________________ 8/31
Comunicacin
SEND_REQ(%KW0:6,15,%MW0:1,%MW10:10, %MW30:4) SEND_TLG(%KW0:6,1,%MW0:5,%MW30:2) SERVER (para 120 octets) WRITE_ASYN (para 500 palabras) READ_ASYN (para 500 palabras) 2 800 2 100 6300 4900 4900 2 000 1 500 4500 3500 3500 2 230 1 673 5018 3902 3902 1800 1350 4050 3150 3150 2007 1505 4515 3513 3513 32 32 32 33
Dilogo de operador
SEND_MSG(ADR#1.0,%MW0:2,%MW10:2) SEND_ALARM(ADR#1.0,%MW0:2,%MW10:2) GET_MSG(ADR#1.0,%MW0:2,%MW10:2) GET_VALUE(ADR#1.0,%MW0,%MW10:2) ASK_MSG(ADR#1.0,%MW0:2,%MW10:2,%MW20:2) ASK_VALUE(ADR#1.0,%MW0,%MW10:2,%MW20:2) DISPLAY_ALRM(ADR#1.0,%MW0,%MW10:2) DISPLAY_GRP(ADR#1.0,%MW0,%MW10:2) DISPLAY_MSG(ADR#1.0,%MW0,%MW10:2) CONTROL_LEDS(ADR#1.0,%MW0:2,%MW10:2) ASSIGN_KEYS(ADR#1.0,%MW0:2,%MW10:2) PANEL_CMD(ADR#1.0,%MW0:2,%MW10:2) 2 800 2 800 2 800 1 400 2 800 2 800 1 400 1 400 1 400 2 800 2 800 2 800 2 000 2 000 2 000 1 000 2 000 2 000 1 000 1 000 1 000 2 000 2 000 2 000 2 230 2 230 2 230 1 115 2 230 2 230 1 115 1 115 1 115 2 230 2 230 2 230 800 800 800 400 800 800 400 400 400 800 800 800 25 25 25 20 32 27 20 20 20 25 25 25
Regulacin
PID(PIDS1,Unit,%IW3.5,%MW12,%M16, %MW284:43) PWM(%MW11,%Q2.1,%MW385:5) SERVO(%MW12,%IW3.6,%Q2.2,%Q2.3, %MW284:43,%MW390:10) PID_MMI(ADR#0.0.4,%M1,%M2:5,%MW410:62) deval_mmi=0 deval_mmi=1 1700 1500 700 1000 EN=1 1400 1100 900 500 800 1000 1227 1004 557,5 892 1115 17 31 30 32
Archivo de datos
SET_PCMCIA (para 1600 palabras) WRITE_PCMCIA (para 1600 palabras) READ_PCMCIA (para 1600 palabras) 6000 6000 4000 8000 7000 7000 24 24 24
A TSX5710yPCX5710
B TSX5720/25/30/35,PMX5710yPCX5735
C TSX5740/45yPMX5720/35/45
___________________________________________________________________________ 8/32
Prestaciones
B
ST Condiciones A Tiempo de ejecucin (s) B ram B cart C ram C cart Volumen (palabras) 57xx
Funcin Orphe
DSHL_RBIT(%MD102,16,%MD204,%MD206) lectura de 10 pals. 493 749 493 365 424 365 670 320 510 310 220 290 220 420 357 569 346 245 323 245 468 123 196 119 85 112 85 162 17 17 17 17 17 17 38 DSHR_RBIT(%MD102,16,%MD204,%MD206) escritura de 10 pals. DSHRZ_C(%MD102,16,%MD204,%MD206) pet. espejo 10 pals.
WSHL_RBIT(%MW102,8,%MW204,%MW206) intercamb. 10 pals. WSHR_RBIT(%MW102,8,%MW204,%MW206) WSHRZ_C(%MW102,8,%MW204,%MW206) SCOUNT(%M100,%MW100,%M101,%M102, %MW101,%MW102,%M200,%M201,%MW200, %MW201) 20 bytes 20 bytes 20 bytes
6 6
A TSX5710yPCX5710
B TSX5720/25/30/35,PMX5710yPCX5735
C TSX5740/45yPMX5720/35/45
___________________________________________________________________________ 8/33
B
ST Condiciones A Tiempo de ejecucin (s) B ram B cart C ram C cart Volumen (palabras) 57xx
Read_Param %CHi Entrada analgica Salida analgica CTY CFY CAY Save_Param %CHi Entrada analgica Salida analgica CTY CFY CAY Restore_Param %CHi Entrada analgica Salida analgica CTY CFY CAY Write_Cmd %CHi Salida TON Entrada analgica . forzado de entrada . forzado de entrada Salida analgica: forzado de salidas Salida TON Smove %CHi CFY CAY Xmove %CHi CAY 115 80 86 36 36 32 117 115 84 82 88 86 37 36 37 36 24 210 150 150 67 67 200 1 390 140 1 020 150 1 040 63 455 63 455 448 320 336 143 143 6 800 800 1148 1092 826 570 570 820 780 590 590 590 861 819 620 254 254 366 348 263 254 254 366 348 263 6 1 300 1 300 1722 700 700 880 890 1230 500 500 890 900 1292 525 525 393 397 549 223 223 393 397 549 223 223 6 180 180 532 644 630 120 120 380 460 450 130 130 399 483 473 54 54 170 205 201 54 54 170 205 201 6
A TSX 57 10 y PCX 57 10
B TSX 57 20/25/30/35
___________________________________________________________________________ 8/34
Prestaciones
8.3.15 Bloque de funcin DFB Tamao ocupado por el tipo DFB Tamao tipo DFB = Tamao variables y parmetros DFB + Tamao de DFB
Tamao variables y parmetros0 DFB = 110 + Sumas de los descriptores de variables y parmetros + Suma de los tamaos ocupados por cada variable o parmetro Descriptor de una variable o de un parmetro = 5,5 + (Nmero de caracteres del nombre de la variable o del parmetro)/2 Tamao ocupado por cada variable o parmetro:
Tipo EBOOL BOOL WORD DWORD REAL AR_X AR_W AR_D AR_R STRING IN 0,5 0,5 1 2 2 3 3 3 3 3 IN/OUT 2 2 2 2 2 3 3 3 3 3 OUT 0,5 0,5 1 2 2 0,5*N N 2*N 2*N 0,5*N PUBLICA 0,5 0,5 1 2 2 0,5*N N 2*N 2*N 0,5*N PRIVADA 0,5 0,5 1 2 2 0,5*N N 2*N 2*N 0,5*N
N = nmero de elementos de la tabla o longitud de la cadena de caracteres (STRING) Tamao de DFB = 11 + Suma de los tamaos de cada una de las instrucciones (1) (1) Al tamao de las instrucciones agregar los volmenes segn la variable o del parmetro contenido en la instruccin: Objeto no indexado
Naturaleza IN Tipo EBOOL BOOL, WORD, DWORD, REAL AR_X,AR_W,AR_D,AR_R,STRING IN/OUT EBOOL BOOL, WORD, DWORD, REAL AR_X,AR_W,AR_D,AR_R,STRING OUT, PUBLC PRIVEE EBOOL BOOL, WORD, DWORD, REAL AR_X,AR_W,AR_D,AR_R,STRING Volumen 0,5 0 3 3 3 3 0,5 0 0
___________________________________________________________________________ 8/35
B
Objeto indexado
Naturaleza IN IN/OUT Tipo AR_X,AR_W,AR_D,AR_R, AR_X,AR_W,AR_D,AR_R, Volumen 7 7 6
Tamao ocupado por la utilizacin del DFB llamada de una instancia de DFB sin ningn parmetro: 6 palabras clculo para un parmetro:
Naturaleza IN IN/OUT OUT Tipo EBOOL,BOOL,WORD,DWORD,REAL AR_X,AR_W,AR_D,AR_R,STRING EBOOL,WORD,DWORD,REAL BOOL,AR_X,AR_W,AR_D,AR_R, Todo los tipos Volumen idem asignacin := 14 10 14 idem asignacin :=
___________________________________________________________________________ 8/36
Prestaciones
B
Tiempo de ejecucin Tiempo total de ejecucin del DFB = Taln para cdigo DFB + Suma de los tiempos de acceso a las variables y parmetros DFB + Llamada DFB (sin parmetro) + Suma de los tiempos de acceso de cada parmetro
Tiempo de ejecucin (s)
A
Taln para cdigo DFB 16,24
B ram
7,00
B cart
8,00
C ram
7,00
C cart
8,00
Acceso a una variable o un parmetro DFB (1) Objetos indexados IN - EBOOL 0,290 - BOOL,WORD,DWORD,REAL 0 - AR_X,AR_W,AR_D,AR_R,STRING1,739 IN/OUT (todos los tipos) 1,739 0,125 0 0,750 0,750 0,125 0 0 0,208 0 1,282 1,282 0,208 0 0 0,125 0 0,750 0,750 0,125 0 0 0,208 0 1,282 1,282 0,208 0 0
OUT,PUBLICA,PRIVADA - EBOOL 0,290 - BOOL,WORD,DWORD,REAL 0 - AR_X,AR_W,AR_D,AR_R,STRING 0 Objetos no indexados IN, IN/OUT - AR_X,AR_W,AR_D,AR_R, OUT,PUBLICA,PRIVADA - AR_X,AR_W,AR_D,AR_R, Llamada DFB (sin parmetro) 3,496 2,616 4,770
Clculo por parmetro (1) IN - EBOOL - BOOL,WORD,DWORD,REAL - AR_X,AR_W,AR_D,AR_R,STRING4,393 IN/OUT - EBOOL,WORD,DWORD,REAL 3,48
(1) valor por agregar en relacin a las operaciones que se aplican a objetos de tipo %M
A TSX 57 10 y PCX 57 10 B TSX 57 20/25/30/35 C TSX 57 40/45 y PMX 57 20/35/45
___________________________________________________________________________ 8/37
8.4
Tamao de la aplicacin
8.4.1 Descripcin de las reas de memoria La aplicacin se divide en varias reas de memoria: rea de memoria de bits: - este rea es relativa a los autmatas TSX 37 y se limita a 1280 bits, - este rea forma parte del rea de memoria de los autmatas TSX 57, rea de memoria de datos (palabras) , rea de memoria de aplicacin, que comprende: - la configuracin, - el programa, - las constantes. Las reas de memoria de bits y datos se almacenan siempre en la RAM interna; el rea de memoria de la aplicacin puede almacenarse en la RAM interna o en una tarjeta de memoria. La descripcin de la estructura de memoria se encuentra en el captulo 1.3, seccin A.
A TSX 57 10 y PCX 57 10
B TSX 57 20/25/30/35
___________________________________________________________________________ 8/38
Prestaciones
8.4.2 Tamao de memoria de los objetos PL7
Memoria de bits Datos (en palabras) (en palabras) 0,5 1 0,5 1 1,25 1 4 5 4 3 6+lg 6 2 2 2 1 2 49
B
Aplicacin (en palabras)
Etapas Grafcet (%Xi, %Xi.T) %Mi Numricas (%MWi) Constantes (%KWi) %NWi %Ti %TMi %MNi %Ci %Ri (longitud lg) %DRi
Datos del intrprete Grafcet = 355 + 2 x N de etapas activas configuradas + (N de transiciones vlidas configuradas) / 2 8.4.3 Tamao de memoria de los mdulos
Observacin
Estas informaciones son para una versin particular de procesadores. Pueden contener pequeas variaciones en funcin de las evoluciones del producto . Las tablas siguientes indican para cada tipo de mdulo el espacio ocupado en cada rea as como un espacio fijo que se agrega al informe sobre el espacio de memoria cuando una funcin especfica se utiliza por primera vez . Asignacin del espacio de memoria utilizado por los mdulos en TSX 37
Procesadores Memoria de bits (palabras) 70 70 70 Datos (palabras) 1560 1570 2110 260 520 Area de aplicacin (palabras) 920 930 1280
___________________________________________________________________________ 8/39
B
Familia TON 8 entradas TON 16 entradas TON 4 salidas TON 8 salidas TON 8E / 8S TON 16E / 12S TON 32E / 32S TON Familia 4 Entradas ANA AEZ414 Sobrecosto 1er mdulo Familia 4 Entradas ANA Familia 8 Entradas ANA AEZ801/AEZ802 Sobrecosto 1er mdulo Familia 8 Entradas ANA Familia Salidas ANA ASZ200 ASZ401 Sobrecosto 1er mdulo Familia Salidas ANA Familia Contaje CTY1A CTY2A Sobrecosto 1ra va en Contaje Sobrecosto 1ra va en Descontaje Sobrecosto 1ra va en CPT/DCPT Familia Comunicacin STZ010 Memoria de bits (palabras) 0 Datos de (palabras) 36 Memoria de bits (palabras) 0 0 Datos de (palabras) 52 100 Memoria de bits (palabras) 4 8 2 4 4 16 32 Memoria de bits (palabras) 0 Datos de (palabras) 12 12 12 12 12 20 20 Datos de (palabras) 156 Area de aplicacin (palabras) 40 50 40 40 40 100 142 Area de aplicacin (palabras) 56 120 Area de aplicacin (palabras) 72 120 Area de aplicacin (palabras) 40 59 120 Area de aplicacin (palabras) 64 106 144 144 144 Area de aplicacin (palabras) 168
SCP111/ SCP112/ SCP114 0 40 763 en UC (UTW) FPP 20 en UC (Va 0 UTW) 0 40 755 ___________________________________________________________________________ MDM 10 0 2528 12880
8/40
Prestaciones
Asignacin del espacio de memoria utilizado por los mdulos en TSX/PCX/PMX 57
Procesadores TSX/PCX/PMX 57-10 TSX 57-20/25/30/35/40/45 PCX 57-10/35 PMX 57-10/20/35/45 Utilizacin tarea FAST (TSX 57) Sobrecosto1ermduloenlaconfiguracin Procesadores PMX: bucle de regulacin PMX 57-10: por bucle Sobrecosto 1er bucle PMX 57-20/35/45: por bucle Sobrecosto 1er bucle Familia Entradas TON simples 8 entradas TON 16 entradas TON 32 Entradas TON 64 Entradas TON Sobrecosto 1er mdulo Familia Entradas TON simples Familia Salidas TON simples 8 Salidas TON 16 Salidas TON 32 Salidas TON 64 Salidas TON Sobrecosto 1er mdulo Familia Salidas TON simples Familia Entradas/Salidas TON seguridad 12E/4S o 12E/2S (PAY) Sobrecosto 1er mdulo Familia Entradas EVT Memoria de bits (palabras) 4 8 16 32 Memoria de bits (palabras) Memoria de bits (palabras) 70 70 Datos de (palabras) 4714 4714 Area de aplicacin (palabras) 1720 1784
520 600 Datos de (palabras) 500 25000 500 5000 Datos de (palabras) 100 130 230 430 Area de aplicacin (palabras) 100 110 120 190 610 Area de aplicacin (palabras)
Area de aplicacin (palabras) 100 110 120 190 570 Area de aplicacin (palabras) 200 1.320 TON
___________________________________________________________________________ 8/41
B
Familia entradas/salidas TON mixta 16 Entradas/12 Sobrecosto 1er TON mixta 16E/12S reflejo Sobrecosto 1er mixta reflejo salidas (DMY 28FK) mdulo Familia (DMY 28RFK) md. Familia TON Memoria de bits (palabras) 16 Datos de (palabras) 304 Area de aplicacin (palabras) 152 1432 656 5.596
32
976
Familias Entradas analgicas AEY414 AEY800 AEY1600 Sobrecosto 1er md. Fam. Entradas Analgicas (AEY 414/800/1600) AEY810 AEY1614 Sobrecosto 1er md. Fam. Entradas Analgicas (AEY 810/1614) AEY420 Sobrecosto 1er md. Fam. Entradas Analgicas (AEY 810/1614) Familia Salidas Analgicas ASY410 Sobrecosto 1er mdulo Salidas Analgicas ASY410 ASY800 Sobrecosto 1er mdulo Salidas Analgicas ASY800 Familia Contaje Mdulo CTY2A Mdulo CTY4A Sobrecosto 1ra va contaje configurada Mdulo CTY2C Sobrecosto 1ra va contaje configurada
Area de aplicacin (palabras) 160 240 430 2990 248 432 3056 168 2080 Area de aplicacin (palabras) 160 1700 248 1760 Area de aplicacin (palabras) 170 250 1740
8 16
888 1768
476
744
48
672
184 1992
___________________________________________________________________________ 8/42
Prestaciones
B
Familia Servomotor CAY1 CAY2 CAY33 va 3 Sobrecosto 1 va config. CAY1 Sobrecosto 1 va config. CAY2/33 Sobrecosto 1 va 3 config. CAY33 Familia Paso a paso CFY11 CFY21 Sobrecosto 1ra va paso a paso configurada Familia Mdulo de comunicacin SCY21600 (Va 0 UTW) SCP111/ SCP112 / SCP114 (UTW) en SCY21600 (Va 1 UTW) Sobrecosto 1ra va config. en UTW ETY 110 Sobrecosto 1ra va config. ETY 110 ETY 120 Sobrecosto 1ra va config. ETY 120 ETY 210 Sobrecosto 1ra va config.ETY 210 IBY 100 Memoria de bits (palabras) por va 78 78 78 Datos de (palabras) por va 520 376 264 Area de Aplicacin (palab.) por va 140 232 170 2130 3600 3600 Area de aplicacin (palabras) 104 152 2368
Area de aplicacin (palabras) 80 40 1280 256 1984 136 1368 400 3424 40
1 1 1 1
Familia Submdulos de comunicacin UC SCP111/ SCP112/ SCP114 (UTW) en UC (Va 0 UTW) FPP 20 en UC (Va 0 UTW) FPP 10 en UC (Va 0 UTW) Familia Acoplador ASI SAY Sobrecosto 1ra va ASi configurada
Area de aplicacin (palabras) 580 580 870 Area de aplicacin (palabras) 176 2272
___________________________________________________________________________ 8/43
B
Familia Pesaje AWY001 Sobrecosto 1ra va pesaje configurada Memoria de bits (palabras) 1 Datos de (palabras) 170 Area de aplicacin (palabras) 120 3920
Familia TBX Entradas TON Sobrecosto 1ra base configurada Salidas TON Sobrecosto 1ra base configurada Programable Sobrecosto 1ra base configurada Memorizacin de Sobrecosto 1ra base configurada AES 400 ASS 200 AMS 620 Sobrecosto 1ra base configurada
176
88 1320 88 2304
160
160
2 2 4
Familia Momentum Entradas Sobrecosto 1ra base configurada Salida Sobrecosto 1ra base configurada Mixta Sobrecosto 1ra base configurada Familia operacin remota bus X
Datos de (palabras) 96
16
112
16
104
Datos de (palabras) 0
___________________________________________________________________________ 8/44
Prestaciones
8.4.4 Tamao de memoria de las funciones avanzadas Las tablas siguientes indican para cada funcin avanzada (OF) el tamao del cdigo transferido a la aplicacin (rea aplicacin) al llamar una funcin avanzada. Las funciones de una misma familia comparten cdigo (cdigo comn). Este cdigo comn se transfiere al autmata con la primera llamada de una funcin de esta familia. El cdigo relativo a una funcin se transfiere con la primera llamada de esta funcin
Ejemplo: Primera llamada de una funcin de la familia Conversiones numricas, caso de DBCD_TO_DINT
Cdigo transferido al rea de aplicacin - cdigo comn = 154 palabras - cdigo OF DBCD_TO_INT = 149 palabras Llamada de otra funcin de la familia Conversiones numricas, caso de DINT_TO_DBCD Cdigo transferido al rea aplicacin: - cdigo OF DINT_TO_DBCD = 203 palabras Llamada de una funcin de la familia Conversiones numricas ya llamada (DBCD_TO_DINT o DINT_TO_DBCD): ningn cdigo transferido Conversiones numricas OF Tamao de cdigo (en palabras)
145 149 203 75 33 33 33 154
Conversin de un nmero BCD 32 bits en entero 32 bits Conversin de un nmero BCD 32 bits en entero 16 bits
Conversin de entero 32 bits en nmero BCD 32 bits Conversin de entero 16 bits en nmero BCD 32 bits Extraccin de la palabra de valor menos significativo de una doble palabra Extracin de la palabra de valor ms significativo de una doble palabra Formacin de una doble palabra con 2 palabras
___________________________________________________________________________ 8/45
B
Cadenas de bits OF Tamao de cdigo (en palabras)
248 205 146 196 157 195 209 20 427
Y lgica entre dos tablasAND_ARX Copia de una tabla de bits en una tabla de palabras dobles Copia de una tabla de bits en una tabla de palabras Copia de una tabla de bits en una tabla de bits Copia de una tabla de dobles palabras en una tabla de bits Complemento en 1de una tabla O lgica entre dos tablasOR_ARX Copia de una tabla de palabras en una tabla de bits O exclusiva entre dos tablas Longitud en nmero de elementos
209 BIT_D BIT_W COPY_BIT D_BIT NOT_ARX 209 W_BIT XOR_ARX LENGTH_ARX cdigo comn
OF
Bsqueda del 1er elemento de una tabla igual a un valor Bsqueda del 1er elemento de una tabla superior a une valor Bsqueda del 1er elemento de una tabla inferior a un valor Bsqueda del valor mayor en una tabla Bsqueda del valor menor en una tabla Nmero de ocurrencias de un valor en una tabla Desplazamiento circular a la izquierda en una tabla Desplazamiento circular a la derecha en una tabla Ordenacin de una tabla (ascendente o descendente) Bsqueda parcial del 1 elemento de una tabla igual a un valor Longitud en nmero de elementos
FIND_EQW FIND_GTW FIND_LTW MAX_ARW MIN_ARW OCCUR_ARW ROL_ARW ROR_ARW SORT_ARW FIND_EQWP LENGTH_ARW cdigo comn
___________________________________________________________________________ 8/46
Prestaciones
B
Instrucciones para tablas de dobles-palabras OF Tamao de cdigo (en palabras)
79 80 95 95 78 163 170 178 77 20 162
Bsqueda del 1er elemento de una tabla igual a un valor Bsqueda del 1er elemento de una tabla superior a un valor Bsqueda del 1er elemento de una tabla inferior a un valor Bsqueda del mayor valor en una tabla Bsqueda del valor menor en una tabla Nmero de ocurrencias de un valor en una tabla Desplazamiento circular a la izquierda en una tabla Desplazamiento circular a la derecha en una tabla Ordenacin de una tabla (ascendente o descendente) Bsqueda parcial del 1er elemento en una tabla igual a un valor Longitud en nombre de elementos
FIND_EQD FIND_GTD FIND_LTD MAX_ARD MIN_ARD OCCUR_ARD ROL_ARD ROR_ARD SORT_ARD FIND_EQWP LENGTH_ARW cdigo comn
OF
Suma de los elementos de una tabla de reales Bsqueda del 1er elemento de una tabla igual a un valor Bsqueda del 1er elemento de una tabla igual a un valor a partir de un rango Bsqueda del 1er elemento de una tabla superior a un valor Bsqueda del 1er elemento de una tabla inferior a un valor Bsqueda del mayor valor en una tabla Bsqueda del menor valor en una tabla Nmero de ocurrencias de un valor en una tabla Desplazamiento circular a la izquierda de una tabla Desplazamiento circular a la derecha de una tabla Ordenacin de una tabla (ascendente o descendente) comparacin de 2 tablas de real Ordenacin de una tabla (ascendente o descendente)
SUM_ARR FIND_EQR FIND_EQRP FIND_GTR FIND_LTR MAX_ARR MIN_ARR OCCUR_ARR ROL_ARR ROR_ARR SORT_ARR EQUAL_ARR LENGTH_ARR cdigo comn
___________________________________________________________________________ 8/47
B
Horas, fechas y duraciones Agregar una duracin a una fecha completa Agregar una duracin a una hora del da
Conversin de una fecha en cadena Da de la semana Desviacin entre dos fechas 374 Desviacin entre dos fechas completas Desviacin entre dos horas del da Conversin de una fecha completa en cadena Quitar una duracin a una fecha completa Quitar una duracin a una hora del da Conversin de una duracin en cadena Conversin de una hora del da en cadena Puesta en forma horas-mn-seg de una duracin Funcin reloj-calendario
OF
ADD_DT ADD_TOD DATE_TO_STRING DAY_OF_WEEK DELTA_D DELTA_DT DELTA_TOD DT_TO_STRING SUB_DT SUB_TOD TIME_TO_STRING TOD_TO_STRING TRANS_TIME SCHEDULE cdigo comn
OF
CONCAT224 DELETE EQUAL_STR FIND INSERT LEFT LEN MID REPLACE RIGHT cdigo comn
Funciones Orphe
Despl. a la izquierda 32 con recup. de bits desplazados Despl. a la derecha 32 con extensin signo, recup. bits desplazados Despl. a la derecha 32 con relleno de 0, recup. bits desplazados Despl. a la izquierda 16 con recup. de bits desplazados Despl. a la derecha 16 con extensin signo, recup. bits desplazados Despl. a la derecha 16 con relleno de ceros, recup. bits desplazados
OF
DSHL_RBIT DSHR_RBIT DSHRZ_C WSHL_RBIT WSHR_RBIT WSHRZ_C
cdigo comn 173 Contaje/descontaje con indicacin de rebasamiento SCOUNT 617 Rotacin hacia la izquierda de una palabra ROLW 41 Rotacin hacia la derecha de una palabra RORW 41 Rotacin hacia la izquierda de una doble palabra ROLD 49 Rotacin hacia la izquierda de una doble palabra RORD 49 ___________________________________________________________________________
8/48
Prestaciones
B
Funciones de temporizacin OF Tamao de cdigo (en palabras)
215 272 217 245
OF
LN LOG EXP EXPT TRUNC COS SIN TAN ACOS ASIN ATAN DEG_TO_RAD RAD_TO_DEG cdigo comn
Funciones especficas
Funciones de Regulacin OF Tamao de cdigo (en palabras)
1800 600 1200 4400 573
Regulador PID mixto Modulacin de amplitud de impulsos de tamao numrico Plano de salida de PID para comando de vlvula TON Gestin del dilogo operador dedicado en CCX17 de PID
___________________________________________________________________________ 8/49
B
Funciones Dilogo de operador OF Tam. cd. (en palabras)
46,5 46,5 46,5 46,5 46,5 46,5 46,5 46,5 46,5 46,5 46,5 573 Introduccin con bloqueo de una variable en el CCX17 ASK_MSG, Introduccin con bloqueo de una variable en mensaje ASK_VALUE, contenido en el CCX17 Asignacin dinmica de las teclas ASSIGN_KEYS, Control de los indicadoresCONTROL_LEDS, 46,5 Visualizacin de una alarme contenida en el CCX17 DISPLAY_ALARM, Visualizacin de un grupo de mensajes contenidos DISPLAY_GRP, en el CCX17 Visualizacin de un mensaje contenido en el CCX17 DISPLAY_MSG, Introduccin mltiple de una variable en el CCX17 GET_MSG, Introduccin mltiple de una variable en el mensaje GET_VALUE, contenido en el CCX17 Envo de un comando al CCX17 PANEL_CMD, Visualizacin de un mensaje de alarma contenido SEND_ALARM, en la memoria del autmata Visualiz. de mens. contenido en memoria del autmata SEND_MSG cdigo comn
Funciones de Comunicacin
Lectura de objetos lenguaje de base Escritura de objetos lenguaje de base Emisin/recepcin de peticiones UNI-TE Emisin y/o recepcin de datos Emisin de una cadena de caracteres Peticin de lectura de una cadena de caracteres Emisin y/o recepcin de una cadena de caracteres Emisin de una telegrama Recepcin de una telegrama Peticin de parada de funcin de comunicacin en curso Desplaz. de un byte a la derecha en tabla de bytes Servidor inmediato Escritura de 1K de mensajera Lectura de 1K de mensajera
OF
READ_VAR WRITE_VAR SEND_REQ DATA_EXCH PRINT_CHAR INPUT_CHAR OUT_IN_CHAR
SEND_TLG RCV_TLG
CANCEL cdigo comn ROR1_ARB SERVER cdigo comn WRITE_ASYN cdigo comn READ_ASYN cdigo comn
OF
___________________________________________________________________________ 8/50
Prestaciones
B
Archivo de datos
Inicializacin del rea de archivo en tarjeta PCMCIA Escritura de datos en tarjeta PCMCIA Lectura de datos en tarjeta PCMCIA
OF
SET_PCMCIA WRITE_PCMCIA READ_PCMCIA cdigo comn
OF
Lectura de parmetros de estado READ_STS Lectura de parmetros de ajuste READ_PARAM Actualizacin de parmetros de ajuste WRITE_PARAM Guardado de parmetros de ajuste SAVE_PARAM Restauracin de parmetros de ajuste RESTORE_PARAM Actualizacin de parmetros de comando WRITE_CMD (1) OF especfico, el cdigo est contado en el volumen del mdulo E/S.
DFB de diagnstico La tabla siguiente indica para cada tipo de DFB de diagnstico el tamao del cdigo tomado en la aplicacin (en el rea de programa) y el tamao ocupado por la instancia en zona de datos y en zona programa. En la primera programacin de uno de los DFB de diagnstico, se reservan 200 palabras en el rea de programa de la aplicacin . DFB de diagnstico Tamao (tamao de palabras) Tipo de DFB
IO_DIA ALRM_DIA NEPO_DIA TEPO_DIA EV_DIA MV_DIA ASI_DIA 800 608 15184 10896 1144 2616 7912
___________________________________________________________________________ 8/51
8.5
Este mtodo permite calcular el nmero de instrucciones de base (nivel ensamblador) booleanas o numricas.
Nota: este mtodo se utiliz para calcular las prestaciones proporcionadas en el captulo 1.3 seccin A.
Clculo del nmero de instrucciones booleanas Se tienen en cuenta los elementos siguientes: operaciones unitarias booleanas: carga (LD), AND, OR, XOR,ST,... parntesis de cierre (o las convergencias Ladder: enlaces verticales de convergencia) bloques de comparacin (AND[...], OR[...]...) y Operate ([...]) No se consideran como instrucciones booleanas los operadores NOT, RE y FE.
Ejemplo: %MW0:=(%MW1+%MW2)*%MW3; instrucciones contadas: := %MW1 (corresponde a la instruccin de carga en el acumulador) + * o sea 4 instrucciones.
___________________________________________________________________________ 8/52
Prestaciones
Ejemplo de programa que contiene 65% de booleanas y 35% de numricas:
___________________________________________________________________________ 8/53
___________________________________________________________________________ 8/54
Prestaciones
___________________________________________________________________________ 8/55
(1):%MW0:=%MW1+%MW2+%MW3+%MW4+%MW5+%MW6+%MW7+%MW8+%MW9+%MW10+1 Informe Booleana sin flanco Booleana con flanco Bloque de operacin Bloque de funcin Aritmtica simple (+,-,:=,AND,...)
Aritmtica indexada
64,16%
35,84%
100,00%
___________________________________________________________________________ 8/56
9.1
Presentacin
9.1-1 Advertencia La realizacin de una aplicacin del servidor OLE hace necesario conocer uno de los lenguajes siguientes para la programacin OLE Automation: Microsoft Visual Basic, versin 5.0 o superior, Microsoft Visual C++, versin 4.2 o superior, Microsoft VBA en Excel, versin 5.0 o superior.
___________________________________________________________________________ 9/1
B
9.1-2 Introduccin La funcionalidad PL7 del Servidor OLE Automation ofrece la posibilidad de controlar la ejecucin de un PL7 de manera programada, no interactiva (sin intervencin del operador) para aplicaciones externas a PL7. Se utiliza la terminologa de las aplicaciones clientes del PL7 Serveur OLE Automation.
Autmata
Cliente
Servidor
OLE Automation
Clientes de aplicacin
OLE Automation
PL7 *.STX
Siguiendo al pie de la letra el estndar definido por Microsoft en su oferta OLE para responder a esta necesidad, PL7 dispone ahora de una interface estndar, pblica, muy difundida, propia e independiente del lenguaje de programacin de la aplicacin cliente. Las principales caractersticas son: automatizacin de las tareas repetitivas, delegacin a PL7 del tratamiento que slo l sabe ejecutar, acceso a informacin sobre las aplicaciones contenidas en los archivos *.STX, y ms generalmente, el desarrollo de funcin de nivel superior a PL7, de tipo integrador, encapsulando al mismo tiempo los detalles de ejecucin especfica a PL7.
___________________________________________________________________________ 9/2
B
9.1-3 Contexto de ejecucin La funcionalidad PL7 Serveur OLE Automation est integrada a PL7 Pro. Se instala y ejecuta con las mismas condiciones de instalacin y ejecucin 0 que PL7. PL7 Serveur OLE Automation se apoya en el run-time OLE Automation Microsoft suministrado con WIndows 95, 98 y NT.
9.1-4 Modos de funcionamiento En el modo de funcionamiento de PL7 conocido hasta la fecha, que se designa como "interactivo", donde PL7 acta nicamente frente a las entradas del operador, se agrega el modo de funcionamiento del servidor OLE automation en el cual PL7 reacciona adems a los comandos emitidos por una aplicacin cliente OLE. La seleccin del modo de funcionamiento est en funcin del procedimiento de inicio de PL7. El modo interactivo se inicializa al iniciarse PL7 va Windows (men Inicio/ Programas/ Modicon telemecanique/PL7 Pro.). El modo servidor se elige si se invoca al PL7 Serveur OLE Automation en la programacin de una aplicacin cliente OLE. Una instancia no puede cambiar de modo en curso. Cada vez que una aplicacin cliente invoca al PL7 Serveur OLE Automation, una instancia especfica de PL7 se inicial, independientemente de otras instancias ya iniciadas. Un nmero cualquiera de instancias de PL7 en modo servidor o en modo interactivo puede cohabitar en ejecucin en la misma estacin. Existe una perfecta independencia en las instancias entre ellas que pueden cada una ejecutarse en su propio contexto. Para todas estas instancias, las mismas reglas de exclusin de acceso llevan a una aplicacin STX o a un autmata, se aplican a saber: una aplicacin STX o un autmata slo puede ser manipulado por una instancia a la vez. Esta regla ha sido modificada para PL7 Serveur OLE Automation de modo que pueda abrir una aplicacin STX ya abierta pero cuyo registro estar prohibido. Asimismo, puede efectuar a peticin explcita, una transferencia autmata > PC desde un autmata reservado en otra parte. Una aplicacin cliente puede dividir en instancias varios "PL7 Serveur OLE Automation" concurrentes.
___________________________________________________________________________ 9/3
9.2
Instalacin
9.2-1 Instalacin La instalacin del producto PL7 Serveur OLE Automation es transparente para el usuario, est garantiza implcitamente durante la instalacin de PL7. La instalacin comprende: 1. Cuatro ejemplos de cliente OLE Automation, completos con su cdigo fuente y un archivo README se suministran con el software. Estos ejemplos corresponden a: un cliente visual C++ 4.2 mnimo: el mnimo que a conocer para escribir a un cliente OLE, un cliente visual C++ 4.2 completo que explota todos los puntos de entrada disponibles, un cliente visual Basic 5.0 que explota todos los puntos de entrada disponibles. un cliente Excel. 2. Un archivo *.h que define los valores de los cdigos de error emitidos por el servidor 3. Un archivo TLB de interface para un cliente Visual C++.
9.2-2 Inicio del servidor en modo local (modo COM) El modo COM (Component object Model) define una interface de comunicacin entre las aplicaciones. Permite ser independiente respecto a las herramientas de desarrollo. Para comunicar con la aplicacin servidor, la aplicacin cliente declara un objeto A. Basta luego ejecutar la funcin Createdispatch en el objeto A de la aplicacin cliente para dividir por instancias la aplicacin servidor. La localizacin del servidor se realiza de manera transparente para la aplicacin cliente en el Createdispatch gracias a la interrogacin de la base de registros. El vnculo entre la aplicacin cliente y la aplicacin servidor se crea si este ltimo est referenciado en la base de registros. Para un buen funcionamiento de la aplicacin PL7Pro en modo servidor, hay que, durante la instalacin del producto, registrarlo en la base de registros como servidor OLE. La aplicacin cliente puede ahora interrogar la aplicacin servidor a travs de la interface accesible del objeto A . Ejemplo: A.OpenStx(C:\appli.stx) ___________________________________________________________________________ 9/4
El Pl7 servidor se ejecuta en funcin de la informacin presente en la base de registros. Puede estar localizado en la mquina cliente o en una mquina remota. El modo DCOM es en realidad una extensin del modo COM (Component Object Model). El modo COM permite dialogar entre una aplicacin cliente y una aplicacin servidor en una misma mquina. El modo DCOM permite dialogar entre dos mquinas remotas. Reemplaza los protocolos de comunicacin interproceso mediante protocolos de red.
Cliente
Componente
DCE RPC
Protocolo stack
Protocolo stack
Para establecer la comunicacin entre dos mquinas, utilizamos una utilidad de configuracin denominada DCOMCNFG.EXE. De forma predeterminada la utilidad DCOMCNFG.EXE no est presente en Windows 95. El usuario debe conectarse a internet a la siguiente direccin http:// www.microsoft.com/com/dcom95/relnotes-f.htm y telecargar esta utilidad para que el servidor funcionen en DCOM en Windows 95.
___________________________________________________________________________ 9/5
9.2-4 Instalacin del servidor en modo remoto Ejemplo de utilizacin: Sea una mquina A (Windows NT 4) instalada con PL7Pro servidor. El usuario de las mquinas debe conectarse a una cuenta administrador para poder administrar los derechos de acceso. El cliente es la mquina B (Windows 95). Procedimiento: En la mquina B iniciar DCOMCNFG.EXE: Seleccionar la ficha Default Properties con el fin de visualizar la informacin siguiente: [X] Enable Distributed COM on this computer Default Authentication Level: CONNECT Default Impersonation Level: Identify En la ficha Default Security, marcar la opcin: [X] Enable remote connection En la ficha Aplication: Seleccionar el servidor PL7Pro PL7 server, y luego properties, En la nueva pantalla, definir la ubicacin de la red.
En la mquina A iniciar DCOMCNFG: Seleccionar la ficha Default Properties para visualizar la informacin siguiente: [X] Enable Distributed COM on this computer Default Authentication Level: CONNECT Default Impersonation Level: Identify La mquina B "Cliente" puede controlar "PL7Pro serveur" ubicado en la mquina A. Seleccionar la ficha Default security, agregar los usuarios que tendrn derecho de escritura en la mquina.
Nota: Para obtener ms informacin Existe un newsgroup, donde es posible formular preguntas referentes a DCOM: http://www.microsoft.com/support/news/win32.htm
___________________________________________________________________________ 9/6
El PL7 Serveur OLE Automation posee dos modos de ejecucin que se pueden elegir dinmicamente en curso de la ejecucin (vase SetIHMServer): Modo de ejecucin sin IHM. El PL7 se inicia en tarea de fondo, sin ninguna visualizacin ni posibilidad de entrada del operador. Este el modo tpico a utilizar por ejemplo para automatizar las tareas repetitivas o acceder a informacin sobre una aplicacin contenida en un archivo stx. Modo de ejecucin con IHM. El PL7 se inicia como PL7 interactivocon visualizacin y posibilidad de entrada del operador pero permanece receptivo a los comandos emitidos por su aplicacin cliente. Este modo ha sido desarrollado para visualizar elementos de programa o de configuracin de una aplicacin contenida en un archivo stx desde herramientas externas como DIAG Viewer.
Notas: Los servicios referentes a la visualizacin de programas, herramientas, mdulos slo se ejecutan en el modo con IHM. El PL7 Serveur OLE Automation en su modo con IHM est sometido a los controles de derechos de usuario. Se posiciona en perfil de derecho de usuario Read Only, que corresponde a su funcin de visualizador de cdigo y mdulos E/S PL7. El PL7 Serveur OLE Automation en modo sin IHM no est sometido a los controles de derechos de usuario pero los servicios que ofrece no permiten modificar la aplicacin.
___________________________________________________________________________ 9/7
9.4
Descripcin Entra al modo conectado Sale del modo conectado Carga la aplicacin activa en un autmata Copia una aplicacin autmata en la aplicacin activa
Lectura de informacin: Nombre Descripcin Exporta smbolos en la aplicacin activa en forma de archivo scy Exporta la aplicacin activa en forma de archivo de tipo fef Lee el smbolo y el comentario asociado a una variable Lee la informacin general de una aplicacin contenida en un archivo STX Lee la informacin general de una aplicacin contenida en un autmata Lee la versin del servidor
___________________________________________________________________________ 9/8
B
Visualizacin de elemento de aplicacin Nombre Descripcin Modifica las caractersticas de visualizacin del PL7 (posicin y forma) Abre un editor en un mdulo programa dado Cierra un editor programa Abre un editor en mdulo de E/S dado Cierra un editor de mdulo de E/S Abre un editor en el cdigo de un DFB dado Cierra un editor en el cdigo de un DFB Abre una herramienta MDI cualquiera sin contexto
Nota: Los puntos de entrada referentes a la visualizacin del elemento de la aplicacin no funcionan si el servidor est en modo sin IHM.
___________________________________________________________________________ 9/9
9.5
9.5-1 OpenStx Esta funcin permite abrir un archivo de tipo aplicacin stx. Sintaxis: integer OpenStx(String lpAppPathName). Entrada: Introducir la cadena de caracteres que contiene el nombre del archivo que el usuario desea abrir. Funcin llamada: OpenStation: Funcin de la gestin de estacin (gesta.dll). Contexto nominal El PL7 Servidor est activo. Caso de error: SRV_ERR_GEN_FILENOTFOUND: SRV_ERR_OPEN_BADZIP: SRV_ERR_OPEN_BADFILE: SRV_ERR_OPEN_NOK_COMPATIBLE: SRV_ERR_OPEN_OPEN: SRV_ERR_GEN_PARAM_EMPTY: SRV_ERR_GEN_ACTION: SRV_ERR_GEN_DRIVE FULL: El archivo no se encuentra. Problema de descompresin de archivo. Problema de lectura del archivo stx El procesador es incompatible con PL7 abierto. Una aplicacin ya est abierta. El Path Name est vaci. Error al abrir la aplicacin. No hay ms espacio libre en el disco para la abertura de la aplicacin.
Salida: Cdigo de retorno de tipo short. Sea 0 en el caso de una apertura con xito, o un cdigo de error.
9.5-2 CloseStx Esta funcin permite cerrar la aplicacin actual. Sintaxis: integer CloseStx( integer p_bWithoutSave). Entrada: Si la aplicacin ha sido modificada, es posible cerrarla sin advertir al usuario (p_bWithoutSave a TRUE) Funcin llamada: CloseStation: Funcin de la gestin de estacin (gesta.dll). Contexto nominal: El PL7 Servidor est activo, una aplicacin est abierta. ___________________________________________________________________________ 9/10
B
Caso de error: SRV_ERR_GEN_NOTOPEN: SRV_ERR_CLOSE_NOTSAVE: No hay aplicacin abierta. La aplicacin ha sido modificada, hay que registrarla antes de salir.
Salida: Cdigo de retorno de tipo short. Sea 0 en caso de cierre con xito, sea un cdigo de error.
9.5-3 ExportScyFile Esta funcin permite exportar los smbolos contenidos en la aplicacin activa en forma de archivo de tipo scy. Sintaxis: integer ExportScyFile(String p_psScyFile) Entrada: Introducir la cadena de caracteres que contiene el nombre del archivo scy. Funcin llamada: ExportScyFile: Funcin de la gestin de estacin (gesta.dll). Contexto nominal: El PL7 Servidor est activo. Una aplicacin est abierta. Caso de error: SRV_ERR_GEN_ACTION: SRV_ERR_GEN_NOTOPEN: SRV_ERR_GEN_PARAM_EMPTY: SRV_EXPORT_ERRFILE Error de la creacin del archivo fuente smbolo. No hay aplicacin abierta. p_ psScyFile est vaco. Error de escritura del archivo fuente.
Salida: Cdigo de retorno de tipo short. Sea 0 en caso de una exportacin con xito, sea un cdigo de error.
___________________________________________________________________________ 9/11
B
9.5-4 ExportFefile Esta funcin permite exportar la aplicacin activa en forma de archivo de tipo fef. Sintaxis: integer ExportFefFile(String p_psNamefile) Entrada: Introducir la cadena de caracteres que contiene el nombre del archivo fef . Funcin llamada: ExportFefFile: Funcin de la gestin de estacin (gesta.dll). Contexto nominal: El Servidor PL7 est activo. Una aplicacin est abierta. Caso de error: SRV_ERR_GEN_ACTION: SRV_ERR_GEN_NOTOPEN: SRV_ERR_GEN_PARAM_EMPTY: SRV_EXPORT_ERRFILE Error para la creacin del archivo fuente de la aplicacin. No hay aplicacin abierta. p_psNamefile est vaca. Error de escritura del archivo fuente.
Salida: Cdigo de retorno de tipo short. Sea 0 en caso de una exportacin con xito, sea un cdigo de error.
9.5-5 DisconnectPLC Esta funcin permite realizar la desconexin entre el autmata y PL7. Sintaxis: integer DisconnectPLC () Funcin llamada: DisconnectStation: Funcin de la gestin de estacin (gesta.dll). Contexto nominal: El Servidor PL7 est activo. Salida: Cdigo de retorno de tipo short. Sea 0 en caso de desconexin con xito, sea un cdigo de error (SRV_ERR_GEN_ACTION).
___________________________________________________________________________ 9/12
Entrada: Introducir dos cadenas de caracteres que contengan el driver y la direccin del autmata. Funcin llamada: ConnectStation: Funcin de la gestin de estacin (gesta.dll). Contexto nominal El Servidor PL7 est activo. En el caso en que los parmetros de las cadenas estn vacos, el servidor ejecuta la funcin con el driver y/o la direccin actual. Caso de error: SRV_ERR_GEN_CONNECT: SRV_ERR_GEN_COMMUNICATION: SRV_ERR_GEN_RESERVED: SRV_ERR_PLC_BLANK: SRV_ERR_PC_BLANK: SRV_ERR_DIFFERENCE_PLC_STX: La conexin no ha podido efectuarse. Problema de comunicacin entre el PL7pro y el autmata. El autmata est reservado y es entonces imposible conectarse a l. El autmata no contiene la aplicacin, es imposible entonces conectarse a l. No hay aplicacin abierta, es entonces imposible conectarse. La aplicacin abierta y la aplicacin contenida en el autmata son diferentes, es entonces imposible conectarse. El parmetro direccin es incorrecto. Error en la ejecucin de la funcin. El parmetro driver es incorrecto. No hay aplicacin abierta. Aplicacin protegida. Problema de compatibilidad con el autmata.
Salida Cdigo de retorno de tipo short. Sea 0 en caso de conexin con xito, sea un cdigo de error.
___________________________________________________________________________ 9/13
9.5-7 SaveStx Esta funcin permite de salvaguardar la aplicacin abierta. Sintaxis: integer SaveStx(String p_lpStxFile) Entrada: Introducir una cadena de caracteres que contiene el path y el nombre del archivo de guardado. Funcin llamada: SaveStx: Funcin de la gestin de estacin (gesta.dll). Contexto nominal: El Servidor PL7 est activo. Una aplicacin est abierta, PL7 est en local. Caso de error: SRV_ERR_SAVEDENIED: SRV_ERR_SAVEERRZIP: SRV_ERR_SAVEERRREN: SRV_ERR_GEN_NOTOPEN: SRV_ERR_GEN_PARAM_EMPTY: SRV_ERR_GEN_ACTION: SRV_ERR_PLC_CONNECT: Acceso al archivo rechazado Error durante el compactado de la aplicacin Cambio de nombre rechazado No hay aplicacin abierta. p_ lpStxFile est vaco. Error al guardar la aplicacin. El guardado slo se puede efectuar en modo local.
Salida: Cdigo de retorno de tipo short. Sea 0 en caso de guardado con xito, sea un cdigo de error.
9.5-8 DownloadToPLC Esta funcin permite telecargar una aplicacin en memoria del autmata. Sintaxis: integer DownloadToPLC(String p_lpDriver, String p_lpAdresse) Entrada: Introducir dos cadenas de caracteres que contienen el driver y la direccin del autmata. Funcin llamada: DownloadStation: Funcin de la gestin de estacin (gesta.dll). Contexto nominal: El Servidor PL7 est activo. Una aplicacin est abierta, PL7 est en local. En el caso en que todos los parmetros son cadenas vacas, el servidor ejecuta la funcin con el driver y/o la direccin actual. ___________________________________________________________________________ 9/14
B
Caso de error: SRV_ERR_DOWNLOAD_CART: Problema de compatibilidad de la tarjeta de memoria entre la aplicacin abierta y el autmata, Problema de compatibilidadentre la aplicacin abierta y el autmata, El parmetro p_lpAdresse es incorrecto. El parmetro p_lpDriver es incorrecto. No hay aplicacin abierta. El autmata est reservado. El autmata ya est conectado. Error durante el download.
Salida Cdigo de retorno de tipo short. Sea 0 en caso de una carga con xito, sea un cdigo de error.
9.5-9 UploadFromPLC Esta funcin permite copiar en memoria una aplicacin contenida en un autmata. Sintaxis: integer UploadFromPLC(String p_lpDriver, String p_lpAdresse, integer p_iReservedModo) Entrada: Introducir dos cadenas de caracteres que contienen el driver y la direccin del autmata. Un integer (p_iReservedModo) que permite hacer un Upload en un autmata reservado. Funcin llamada:
Suspensin de la transferencia. Aplicacin reservada. Autmata virgen. Direccin incorrecta. Error de ejecucin de la funcin. Error de conexin. Driver incorrecto. El autmata est en modo conectado. Problema de compatibilidad.
Salida: Cdigo de retorno de tipo short. Sea 0 en caso una carga con xito, sea un cdigo de error.
9.5-10 GetSymbol Esta funcin permite dar el smbolo y el comentario asociado a una variable. Sintaxis: integer GetSymbol(String p_lpRepere, String* p_bsSymbole, String* p_bsComment) Entrada: Introducir la cadena de caracteres que contiene la variable a modificar o a completar. Funcin llamada:
___________________________________________________________________________ 9/16
B
Salida: Cdigo de retorno de tipo short. Sea 0 en caso de una carga con xito, sea un cdigo de error. - Dos cadenas de caracteres: El smbolo asociado (p_bsSmbolo). El comentario asociado (p_bsComment).
9.5-11 SetServerIHM Esta funcin permite visualizar o no el Servidor PL7. Se realiza el paso de un modo de funcionamiento a otro. Es decir, de un PL7Pro servidor sin IHM a un PL7 Pro servidor con IHM y viceversa. Sintaxis: integer SetServerIHM (integer p_bIHM) Entrada: Un booleano (visualizacin o no visualizacin IHM). Funcin llamada: SetIHMServer: Funcin de la Windows aplicacin (sawinapp.cpp). Contexto nominal: El Servidor PL7 est activo. Caso de error: SRV_ERR_GEN_ACTION: SRV_ERR_GEN_MODIFAPPLI: Error al ejecutar la funcin. Aplicacin en curso de modificacin.
Salida: Cdigo de retorno de tipo short. Sea 0 en caso de una carga con xito, sea un cdigo de error.
___________________________________________________________________________ 9/17
9.5-12 GetPL7State Esta funcin permite dar el estado del servidor. Sintaxis: integer GetPL7State(String* p_lpStation, String * p_lpConnection) Funcin llamada: GetEtatPL7: Funcin de la gestin de estacin (gesta.dll). Contexto nominal: El Servidor PL7 est activo. Caso de error: SRV_ERR_GEN_ACTION: Error durante la ejecucin de la funcin.
Salida: Cdigo de retorno de tipo short. Sea 0 en caso de una carga con xito, sea un cdigo de error. Dos cadenas de caracteres informan al usuario sobre: - El estado de la estacin (abierta o cerrada). - El estado del modo (local o conectado). En modo conectado, el estado del autmata run o stop est indicado.
9.5-13 GetSTXAppIdentity Esta funcin permite conocer la informacin general de una aplicacin. Sintaxis: integer GetSTXAppIdentity(String p_lpNameStx, VARIANT FAR* p_pVarInfo) Entrada: Introducir la cadena de caracteres (p_lpNameStx) que contiene el nombre de la aplicacin. Funcin llamada:
___________________________________________________________________________ 9/18
Salida: Cdigo de retorno de tipo short. Sea 0 en caso de una carga con xito, sea un cdigo de error. Informaciones visualizadas: 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. El nombre de la estacin, Nmero de versin de la aplicacin, Fecha y hora de la modificacin, La firma de la estacin, La firma referente a la configuracin de las entradas/salidas locales, La firma referente a la configuracin de las entradas/salidas remotas, La firma referente al cdigo PL7, La firma referente al grafcet, La firma referente a las constantes, La firma referente a los smbolos, La firma referente a la reservacin, El comentario asociado a la aplicacin.
9.5-14 GetPLCAppIdentity Esta funcin permite conocer la informacin general de una aplicacin contenida en un autmata. Sintaxis: integer GetPLCAppIdentity(String p_lpDriver, String p_lpAdresse, VARIANT FAR* p_pvInfoAppli) Entrada: Introducir las dos cadenas de caracteres que contienen el driver y la direccin del autmata. Funcin llamada: FicheIdentAppliOnAutmata: Funcin de la gestin de estacin (gesta.dll). Contexto nominal: El Servidor PL7 est activo y en modo local. Caso de error: SRV_ERR_APPLIINFO_NOK: SRV_ERR_GEN_ACTION: SRV_ERR_GEN_ADDRESS: SRV_ERR_COMPATIBLE_PLC: SRV_ERR_PLC_BLANK: SRV_ERR_GEN_ACTION: SRV_ERR_GEN_DRIVER: Informacin incorrecta. Error durante la ejecucin de la funcin. Direccin incorrecta. Problema de compatibilidad entre API y el software PL7. El autmata no contiene aplicacin. Problema durante el almacenamiento de la informacin de aplicacin. El parmetro p_lpDriver es incorrecto.
B
Salida: Cdigo de retorno de tipo short. Sea 0 en caso de una carga con xito, sea un cdigo de error. Informaciones visualizadas: 0. 1. 2. 3 4 5 6 7 8 9 10 11 El nombre de la estacin, Nmero de versin de la aplicacin, Fecha y hora de la modificacin, La firma de la estacin, La firma referente a la configuracin de las entradas/salidas locales, La firma referente a la configuracin de las entradas/salidas remotas, La firma referente al cdigo PL7, La firma referente al grafcet, La firma referente a las constantes, La firma referente a los smbolos, La firma referente a la reservacin, El comentario asociado a la aplicacin.
9.5-15 SendCommandToPLC Esta funcin permite iniciar un comando en e autmata. Sintaxis: integer SendCommandToPLC(integer p_iCommand) Entrada: El tipo del comando que el usuario desea ejecutar. 3 tipos posibles: SRV_COMMAND_INIT: Comando de inicializacin del autmata SRV_COMMAND_STOP: Comando Stop SRV_COMMAND_RUN: Comando Run Funcin llamada: StationCommand: Funcin de la gestin de estacin (gesta.dll). Contexto nominal El Servidor PL7 est activo. Una aplicacin est abierta, PL7 est en modo conectado, en STOP. Caso de error: SRV_ERR_GEN_ACTION: SRV_ERR_GEN_NOTOPEN: SRV_COMMAND_ERRINIT: Salida: Cdigo de retorno de tipo short. Sea 0 en caso de una carga con xito, sea un cdigo de error. ___________________________________________________________________________ 9/20 Comando incorrecto. No hay aplicacin abierta. La funcin INIT es imposible, el autmata est en RUN.
Introducir las dos cadenas de caracteres que contienen el driver y la direccin del autmata. Funcin llamada:
SRV_ERR_PLC_CONNECT: El servidor est en modo conectado. SRV_ERR_PLC_ACTION: SRV_ERR_PARAM_EMPTY: Los parmetros estn vacos. Salida: Cdigo de retorno de tipo short. Sea 0 en caso de una carga con xito, sea un cdigo de error.
9.5-17 OpenTool Esta funcin permite abrir las herramientas presentes en la cadena de caracteres transferida como parmetro. Sintaxis: integer OpenTool(String p_lpListTool)) Entrada: Cadenas de caracteres que contienen la lista de herramientas que el servidor debe abrir. ejemplo de formato: tools1;tools2;tools3 Funcin llamada: OpenTool: Funcin de la gestin de estacin (gesta.dll). ___________________________________________________________________________ 9/21
B
Contexto nominal: El Servidor PL7 con IHM est activo. Una aplicacin est abierta. Caso de error: Imposible abrir la herramienta. Parmetro vaco. No hay aplicacin abierta. Funcin disponible con el Servidor PL7 en modo IHM. SRV_ERR_GEN_OPENEDTVDATA: La herramienta "Tabla de animacin" no puede ser abierta. Salida: Cdigo de retorno de tipo short. Sea 0 en caso de una carga con xito, sea un cdigo de error. SRV_ERR_GEN_ACTION: SRV_ERR_GEN_PARAM_EMPTY: SRV_ERR_GEN_NOTOPEN: SRV_ERR_GEN_WITHIHM:
9.5-18 SetPosPL7Windows Esta funcin permite dimensionar la ventana PL7. Sintaxis: integer PosPL7Windows(integer CoordX, integer CoordY, integer CoordCX, integer CoordCY) Entrada: Las coordenadas x, y de la ventana. Funcin llamada:
___________________________________________________________________________ 9/22
Esta funcin permite abrir los programas presentes en la cadena de parmetros transferida como parmetro. Sintaxis: integer ShowProgram(String p_lpListProgram) Entrada: Introducir las cadenas de caracteres que contienen la lista de programas que el servidor debe abrir. ejemplo de formato: mast\lad1;mast\lit2;evt\evt0;sr1;mast\prl Funcin llamada: ShowProgram: Funcin de la gestin de estacin (gesta.dll). Contexto nominal: El Servidor PL7 con IHM est activo. Una aplicacin est abierta. Caso de error: SRV_ERR_GEN_ACTION: SRV_ERR_GEN_NOTOPEN: SRV_ERR_GEN_PARAM_EMPTY: SRV_ERR_GEN_WITHIHM: Fracaso del comando. No hay aplicacin abierta. Parmetro vaco. Funcin disponible con el Servidor PL7 en modo IHM.
SRV_ERR_GEN_SHOWPROGRAM: Imposible abrir el mdulo. Salida: Cdigo de retorno de tipo short. Sea 0 en caso de una carga con xito, sea un cdigo de error. Restricciones: Esta funcin no es capaz de abrir un DFB sin instancias. Para visualizar el cdigo de un DFB sin instancias hay que utilizar la funcin ShowDFB.
9.5-20 CloseProgram Esta funcin permite cerrar los programas presentes en la cadena de caracteres transferida como parmetro. Sintaxis: integer CloseProgram(String p_lpListProgram) Entrada: Cadenas de caracteres que contienen la lista de programas que el servidor debe cerrar. Ejemplo de formato: mast\lad1;mast\lit2;evt\evt0;sr1;mast\prl. ___________________________________________________________________________ 9/23
Funcin llamada:
SRV_ERR_GEN_CLOSEPROGRAMM: Imposible cerrar el mdulo. Salida: Cdigo de retorno de tipo short. Sea 0 en caso de una carga con xito, sea un cdigo de error. Limitaciones: Esta funcin no es capaz de cerrar un DFB abierto.
9.5-21 ShowIOMdulo Esta funcin permite abrir los mdulos de entrada/salida presentes en la cadena de caracteres transferida como parmetro. Entrada: Cadenas de caracteres que contienen la lista de mdulos que el servidor debe abrir. El formato de la cadena de caracteres es rack,mdulo;rack,mdulo ejemplo de formato: 0,0;0,1;1,2 Funcin llamada: ShowIOMdulo: Funcin de la gestin de estacin (gesta.dll). Contexto nominal: El servidor PL7pro con IHM est activo. Una aplicacin est abierta. Caso de error: SRV_ERR_GEN_NOTOPEN: SRV_ACTION_NOK: SRV_ERR_GEN_PARAM_EMPTY: 9/24 No hay aplicacin abierta. Problema de activacin de los derechos de usuario. Parmetro vaco.
___________________________________________________________________________
B
Funcin disponible con el Servidor PL7 en modo IHM. Salida: Cdigo de retorno de tipo short. Sea 0 en caso de una carga con xito, sea un cdigo de error. Restricciones: La abertura de un mdulo IO se realiza en modo local, la pantalla de configuracin del mdulo est abierta. Si el usuario pasa al modo local en modo conectado, el servidor no cambia de la pantalla de configuracin a la pantalla de depuracin. El usuario puede sea actuar directamente sobre el PL7 por o realizar un cierre/apertura del mdulo con ayuda del cliente.
9.5-22 CloseIOMdulo Esta funcin permite cerrar los mdulos de entrada/salida presentes en la cadena de caracteres transferida como parmetro. Sintaxis: integer CloseIOMdulo(String p_lpListIOMdulo). Entrada: Cadenas de caracteres que contienen la lista de los mdulos que el servidor debe abrir. ejemplo de formato: 0,0;0,1;1,2 Funcin llamada: CloseIOMdulo: Funcin de la gestin de estacin (gesta.dll). Contexto nominal: El Servidor PL7 con IHM est activo. Una aplicacin est abierta. Caso de error: SRV_ERR_GEN_ACTION: SRV_ERR_GEN_PARAM_EMPTY: SRV_ERR_GEN_NOTOPEN: SRV_ERR_GEN_WITHIHM: Fracaso del comando de cierre. Parmetro vaco. Sin aplicacin abierta. Funcin disponible con el Servidor PL7 en modo IHM.
Salida: Cdigo de retorno de tipo short. Sea 0 en caso de una carga con xito, sea un cdigo de error. Restriccin: Esta funcin no cierra el editor de configuracin abierto con ayuda de la funcin ShowIOMdulo. ___________________________________________________________________________ 9/25
9.5-23 ShowDFB Esta funcin permite visualizar el cdigo de uno o varios DFB presentes en la cadena de caracteres transferida como parmetro. La apertura de un DFB a travs de esta funcin no necesita de instanciacin. Sintaxis: integer ShowDFB(String p_lpListeDFB). Entrada: Cadenas de caracteres que contienen la lista de los DFB que el servidor debe abrir. Funcin llamada: ShowDFB: Funcin de la gestin de estacin (gesta.dll). Contexto nominal: El Servidor PL7 con IHM est activo. Una aplicacin est abierta. Caso de error: SRV_ERR_GEN_PARAM_EMPTY: SRV_ERR_GEN_NOTOPEN: SRV_ERR_GEN_ACTION: SRV_ERR_GEN_WITHIHM: Parmetro vaco. No hay aplicacin abierta. Problema durante la apertura de un DFB. Funcin disponible con el Servidor PL7 en modo IHM.
Salida: Cdigo de retorno de tipo short. Sea 0 en caso de una carga con xito, sea un cdigo de error.
9.5-24 CloseDFB Esta funcin permite cerrar uno o varios DFB presentes en la cadena de caracteres transferida como parmetro. Sintaxis: integer CloseDFB(String p_lpListeDFB) Entrada: Cadenas de caracteres que contiene la lista de DFB que el servidor debe cerrar. Funcin llamada: CloseDFB: Funcin de la gestin de estacin (gesta.dll). Contexto nominal: El Servidor PL7 con IHM est activo. Una aplicacin est abierta.
___________________________________________________________________________ 9/26
Problema durante el cierre de un DFB. Funcin disponible con el Servidor PL7en modo IHM.
Salida: Cdigo de retorno de tipo short. Sea 0 en caso de una carga con xito, sea un cdigo de error.
9.5-25 GetMessageError Esta funcin permite asociar un mensaje de error en funcin del cdigo de error transferido como parmetro. Sintaxis: String GetMessageError(integer p_iCodeError) Entrada: El cdigo de error de uno de los servicios a devolver. Contexto nominal: El Servidor PL7 est activo. Salida: Una cadena de caracteres correspondiente a la leyenda del error.
9.5-26 GetServerVersion Esta funcin permite conocer el nmero de versin del servidor PL7pro. String GetServerVersion() Contexto nominal El Servidor PL7 est activo. Salida Una cadena de caracteres que corresponden a la leyenda del nmero de versin del servidor PL7pro.
___________________________________________________________________________ 9/27
9.6
El PL7 Serveur OLE Automation permite dos modos de acceso a los servicios que suministra. Acceso en local. La aplicacin cliente y PL7 Serveur OLE Automation estn en la misma estacin.
Acceso en remoto por intermedio de DCOM. La aplicacin cliente y el PL7 Servidor Automation estn en dos estaciones distintas, vinculadas a la red TCP/IP:
Estacin cliente Estacin servidor
DCOM
___________________________________________________________________________ 9/28
Indice 10 INDICE
10 Indice
Symboles
%Ci %DRi %Li %MNi %Ri %Ti %TMi * + / := < <= <> = > >= B1/14 B2/9 B1/30 B2/2 B2/5 B2/13 B1/10, B2/109 B1/23 B1/23 B1/23 B1/23 B1/20 B1/19 B1/19 B1/19 B1/19 B1/19 B1/19
Bits Bits del sistema Bits extrados de palabras BLK Bloques de funcin Bloques de funcin de usuario Bobinas de conexin Bobinas de desconexin Bobinas directas Bobinas inversas Bsqueda para tablas Byte
A1/10 B3/1 A1/18 A3/8 B1/9 A1/9 B1/5 B1/5 B1/5 B1/5 B2/45 A1/16
C
Cadenas de caracteres A1/21, B2/53 CALL A2/3 Cclica A1/41 Comentario A2/6, A3/4, A4/7, A5/14 Comparacin B1/19 Comparacin alfanumrica B2/55 Comparacin de tablas B2/43 Comparacin vertical B2/17 Complemento lgico B1/25 CONCAT B2/61 Concatenacin de dos cadenas B2/61 CONCATW B2/36 Constante A1/16 Contactos de apertura B1/4 Contactos de cierre B1/4 Contactos de flanco ascendente B1/4 Contactos de flanco descendente B1/4 Contaje B1/14 Convergencias en O A5/5 Convergencias en Y A5/4 Conversin B2/28, B2/31 Conversin ASCII ---> Binario B2/58 Conversin ASCII --> Flotante B2/60 Conversin BCD <--> Binario B2/31 Conversin Binario --->ASCII B2/56 Conversin Entero <--> Flotante B2/33 Conversin Flotante ---> ASCII B2/59 Conversin Gray --> Entero B2/35 Conversin Palabra <--> Doble palabraB2/36 COPY_BIT B2/94 Corte de corriente A1/36 COS B2/26
A
ABS Accin ACOS Activacin simultnea de etapas Actualizacin de la fecha sistema ADD_DT ADD_TOD AND B1/6, AND_ARX ANDF ANDN ANDR Area de accin Area de prueba Aritmtica con enteros Arranque en fro Asignacin ASIN ATAN Aumento B1/23 A5/17 B2/26 A5/10 B2/79 B2/82 B2/83 B1/25 B2/95 B1/6 B1/6 B1/6 A2/1 A2/1 B1/23 A1/36 B1/20 B2/26 B2/26 B1/23
B
BIT_D BIT_W B2/96 B2/96
___________________________________________________________________________ 10/1
D
D_BIT B2/98 DATE_TO_STRING B2/88 Datos estructurados B4/4 DAY_OF_WEEK B2/81 DEC B1/23 DEG_TO_RAD B2/28 DELETE B2/62 DELTA_D B2/85 DELTA_DT B2/86 DELTA_TOD B2/87 Desactivacin simultnea de etapas A5/10 Desbordamiento de ndice A1/23 Descontaje B1/14 Desplazamiento circular B2/19 Desplazamiento lgico B2/19 DFB A1/9, A6/1 DINT_TO_REAL B2/34 DINT_TO_STRING B2/56 Direccionamiento A1/11 Direccionamiento de objetosTSX 37 A1/11 Direccionamiento de objetosTSX 57 A1/13 Disminucin B1/23 Divergencias en O A5/5 Divergencias en Y A5/4 Divisin B1/23 Doble longitud A1/17 DOWN B1/12, B1/16 Drum B2/9 DSHL_RBIT B2/100 DSHR_RBIT B2/100 DSHRZ_C B2/100 DT_TO_STRING B2/89 Duraciones B2/74
ENDCN B1/32 Enlaces orientados A5/5, A5/13 Enmascarar/Desenmascarar sucesosB1/34 Entero <--> Flotante B2/33 EQUAL B2/43 EQUAL_ARR B2/43 EQUAL_STR B2/71 Estructuras de control A4/9 Etapas A5/4 Etiqueta A2/6, A3/4, A4/8 EXIT A4/14 EXP B2/25 Exponenciales B2/25 Expresin numrica B1/27 EXPT B2/25
F
FAST Fechas Fin de programa FIND FIND_EQD FIND_EQDP FIND_EQR FIND_EQW FIND_EQWP FIND_GTD FIND_GTR FIND_GTW FIND_LTD FIND_LTR FIND_LTW Flanco Flotante FOR ... END_FOR Forzado FPULSOR FTOF FTON FTP Funciones para tablas A1/48 B2/74 B1/32 B2/72 B2/45 B2/45 B2/45 B2/45 B2/45 B2/45 B2/45 B2/45 B2/45 B2/45 B2/45 A1/29, B1/2 A1/17, B2/20 A4/13 A1/30 B2/111 B2/109 B2/107 B2/110 B2/42
E
Ejecucin cclica Ejecucin de una red de contactos Ejecucin peridica Elementos grficos LD Encaminamiento END END_BLK ENDC A1/41 A2/13 A1/42 A2/2 A5/10 B1/32 A3/8 B1/32
___________________________________________________________________________ 10/2
Indice 10
G
GET Grafcet GRAY_TO_INT B2/8 A5/1 B2/35, B2/36
H
HALT Horas HW B1/33 B2/74 B2/36
Lenguaje de contactos Lenguaje Grafcet Lenguaje Lista de instrucciones Lenguaje Literal estructurado Lista de instrucciones LN LOG Logartmicas Longitud de tablas LW
A2/1 A5/1 A3/1 A4/1 A3/1 B2/25 B2/25 B2/25 B2/52 B2/36
I
IF ... END_IF INC Indexacin Inicializacin del rea de archivado Inmovilizacin del Grafcet INSERT Instancia DFB Instrucciones booleanas Instrucciones de programa Instrucciones para flotantes INT_TO_REAL INT_TO_STRING A4/9 B1/23 A1/22 B2/114 A5/26 B2/63 A6/8 B1/2 B1/28 B2/20 B2/34 B2/56
M
Macroetapa MASKEVT MAST MAX_ARD MAX_ARR MAX_ARW Memoria de bits Memoria de palabras Memoria de usuario MID MIN_ARD MIN_ARR MIN_ARW Modos de marcha Mdulo funcional Monoestable Monotarea MPP MPS MRD Multiplicacin Multitarea A5/15 B1/34 A1/47 B2/47 B2/47 B2/47 A1/26, A1/28, A1/29 A1/26, A1/31 A1/26 B2/67 B2/47 B2/47 B2/47 A1/36, A5/1 A7/1 B1/11, B2/2 A1/39 A3/7 A3/7 A3/7 B1/23 A1/45
J
JMP JMPC JMPCN B1/30 B1/30 B1/30
L
LD LDF LDN LDR Lectura de la fecha sistema Lectura del da de la semana LEFT LEN LENGTH_ARD LENGTH_ARR LENGTH_ARW LENGTH_ARX B1/4 B1/4 B1/4 B1/4 B2/79 B2/81 B2/69 B2/73 B2/52 B2/52 B2/52 B2/52
N
NOT NOT_ARX B1/25 B2/95
O
O exclusiva B1/8
___________________________________________________________________________ 10/3
B
O lgica B1/7, B1/25 Objetos de bloques de funcin A1/20 Objetos DFB A6/3 Objetos Grafcet A1/23, A5/6 Objetos indexados A1/22 Objetos simbolizables A1/24, A1/25 OCCUR_ARD B2/48 OCCUR_ARR B2/48 OCCUR_ARW B2/48 OLE B9/2 OR B1/7, B1/25 OR_ARX B2/95 Ordenacin para tablas B2/51 ORF B1/7 ORN B1/7 ORR B1/7 OUT_BL A3/8 Reloj-calendario REM Remisiones de destino Remisiones de origen REPEAT ... END_REPEAT REPLACE RESET B1/16, B2/8, Resta Resto de la divisin RET RETCN RIGHT ROL_ARD ROL_ARR B2/49, ROL_ARW ROR_ARD ROR_ARR B2/49, ROR_ARW ROUND RRTC B2/77 B1/23 A5/5 A5/5 A4/12 B2/65 B2/11 B1/23 B1/23 B1/29 B1/29 B2/69 B2/49 B2/50 B2/49 B2/49 B2/50 B2/49 B2/29 B2/79
P
Palabras comunes Palabras del sistema Palabras internas Parntesis PCMCIA Peridica Pila FIFO Pila LIFO PRESET Presimbolizacin Programador cclico PTC PUT A1/18 B3/9 A1/16 A3/5 B2/113 A1/42 B2/5 B2/5 B1/16 A1/25 B2/9 B2/80 B2/8
S
S Salto de programa SCHEDULE SCOUNT Seccin Seccin Grafcet Sentencia Servidor OLE SET_PCMCIA Smbolo Smbolos grficos Grafcet SIN SORT_ARD SORT_ARR SORT_ARW SQRT SRi ST START STN STRING_TO_DINT STRING_TO_INT SUB_DT SUB_TOD B1/5 B1/30 B2/77 B2/103 A1/4, A1/39 A5/23 A3/4 B9/2 B2/114 A1/6, A1/24 A5/4 B2/26 B2/51 B2/51 B2/51 B1/23 A1/39 B1/5 B1/12, B2/3 B1/5 B2/58 B2/58, B2/60 B2/82 B2/83
R
R RAD_TO_DEG Raz cuadrada READ_PCMCIA REAL_TO_DINT REAL_TO_INT Reanudacin en caliente Rebasamiento Receptividad Red de contactos Registro Regreso de subprograma B1/5 B2/28 B1/23 B2/118 B2/34 B2/34 A1/36 B1/24 A5/20 A2/5 B2/5 B1/29
___________________________________________________________________________ 10/4
Indice 10
B
Subprograma SUM SUM_ARR Suma A1/39, B1/28 B2/42 B2/42 B1/23
W
W_BIT Watchdog WHILE ... END_WHILE WRITE_PCMCIA WRTC WSHL_RBIT WSHR_RBIT B2/98 A1/44 A4/11 B2/116 B2/80 B2/100, B2/105 B2/100
T
Tablas de bits A1/21, B2/94 Tablas de palabras A1/21, B2/37 TAN B2/26 Tarea maestra A1/47 Tarea rpida A1/48 Tareas de suceso A1/50 Tarjeta de memoria (PCMCIA) A1/26 Temporizacin B1/10, B2/13, B2/107, B2/109 B2/110, B2/111 Tiempo B2/74 TIME_TO_STRING B2/90 Timer B2/13 Tipo DFB A6/3 TOD_TO_STRIN B2/91 TRANS_TIME B2/93, B2/94 Transiciones A5/4 Tratamiento posterior A5/30 Tratamiento preliminar A5/24 Tratamiento secuencial A5/28 Trigonomtricas B2/26 TRUNC B2/24
X
XOR XOR_ARX XORF XORN XORR B1/8, B1/25 B2/95 B1/8 B1/8 B1/8
Y
Y lgica B1/6
U
UNMASKEVT UP B1/34 B1/16, B2/11
V
Valor absoluto Valores inmediatos Variables privadas Variables pblicas Vista estructural Vista funcional B1/23 A1/18 A6/4 A6/4 A7/2 A7/2
___________________________________________________________________________ 10/5
___________________________________________________________________________ 10/6