Está en la página 1de 464

Descripcin del software PL7 Manual de referencia

A B

Descripcin detallada de las instrucciones y funciones

___________________________________________________________________________ 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

Reglas de ejecucin de un programa en Lista de instrucciones

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

5.2 5.3 5.4 5.5 5.6

5.7 5.8 5.9

___________________________________________________________________________ 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

7.4 7.5 7.6 7.7

___________________________________________________________________________ A/6

Captulo 1 Generalidades PL7 1


1 Generalidades

1.1

Presentacin del programa PL7

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

Horno_1(Grafcet) PRL (LD) CHART POST(LD)

Secado (LD) Limpieza (ST)

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 comprende un programa y tablas 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

El mdulo Prod1 posee un submdulo Mdm1

subfunciones del automatismo.

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

Smbolos y comentarios integrados en el autmata TSX Premium

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.

Nombre Tipo DFB

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) escritura desde el programa o en modo de ajuste desde el terminal.

___________________________________________________________________________ 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

N va Posicin x= Nmero de i= 0 a 127 o MOD posicin en el rack

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

Formato estndar 28 E/S 32 E 32 S 0 a 15 0 a 11 0 a 15 0 a 15 x.0 a x.15 0 a 15 0 a 15 x.0 a x.15

64 E/S 0 a 31 0 a 31 x.0 a x.31

Nmero de va: i 0 a 3

Posicin y N va x.0 (x = posicin) a x.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.

%I1.5 %I3.8 TSX 37-10

%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 objeto Formato I = entrada X = booleano W = palabra Q = salida D = doble palabra

Direccin Posicin Rack mdulo x=0 a 7 y=00 a 10

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

Direcciones de racks (x) y posiciones de mdulos (y)


Racks TSX Direccin rack : x
RKY 6 RKY 8 RKY 12 RKY 4EX RKY 6EX RKY 8EX RKY 12EX

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.

Nmero de vas (i)


Mdulos TSX DEY ..../DSY .... Nmero de va : i 64 E/S 0 a 63 32 E/S 0 a 31 16 E/S 0 a 15 8 E/S 0a7

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

15 14 13 12 11 10 9 8 Formato de 32 bits 0 1 0 1 0 0 1 1 Bits ms significativos 0 0 1 1 0 1 1 0

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.

%MW0 %MW1 %MW2 %MW3 %MWi %MWi+1 %MWk %MWk+1

%MB1 %MB3 %MB5 %MB7

%MB0 %MB2 %MB4 %MB6

___________________________________________________________________________ 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

Cadena de caracteres (1) excluyendo lmites

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

Palabras de mdulo de E/S

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

S C.P : 9999 D CU MODIF : Y CD F

Bloque contador/descontador

Lista de objetos bits y palabras de bloques de funcin accesibles desde el programa


Bloques funcin Palabras y bits asociados predefinidos (2)
Temporizador Palabra %TMi (i=0 a 63) (1) Bit Contador/ descontador %Ci (i=0 a 31) Palabra Bit Valor actual Valor de preseleccin Salida temporizador Valor actual Valor de preseleccin Salida desbord. (vaco) Salida preseleccin alcanz. Salida desbord. (lleno)

Direccin Acceso en Vase escritura secc. B


%TMi.V %TMi.P %TMi.Q %Ci.V %Ci.P %Ci.E %Ci.D %Ci.F No S No No S No No No No S No S S No No S No No No No S No No 1.3-2

1.3-3

Monoestable %MNi (i=0 a 7) Registro palabra %Ri (i= 0 a 3)

Palabra Bit Palabra Bit

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

Programador cclico %DRi (i=0 a 7) Temporizador serie 7 %T (i=0 a 63) (1)

Palabra

2.2-3

Bit Palabra Bit

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

%Xi.T:L, %Xj.i.T:L i+L < Nmax-1 (2) Non

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

Palabras constantes %KBi:L (5)

(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)

<Objeto> [ndice]:L ndice[ndice]:L %MDi[ndice]:L %KWi[ndice]:L %KDi[ndice]:L

___________________________________________________________________________ 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

TSX 37-21/22 (con tarjeta PCMCIA)


RAM interna Datos Flash EPROM interna rea inutilizable Guardado %MW

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

Datos Programa Constantes

RAM interna

Datos

Tarjeta memoria RAM o FLASH EPROM

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 internos %Mi

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.3-5 Autmatas TSX 37 05/08/10/21/22 Tamao de la memoria bits


Procesador Tamao disponible en procesador Tipo de objetos bits sistema %Si bits entradas/salidas %I/Qx.i bits internos %Mi bits de etapas %Xi 37 05/08/10 1280 128 (1) 256 96 37 21/22 1280 128 (1) 256 128

(1) depende de la configuracin hardware declarada (mdulos de entradas/salidas, equipos en bus AS-i)

Tamao de la memoria palabras


Processeur Tarjetamem. Tamaototal Datos(%MWi) Programa 100%boleano LenguajeLD LangageIL LangageST Programa 90%boleano LangageLD LangageIL LangageST Programa 65%boleano LangageLD LangageIL LangageST Constantes(1) 0,9Kinst 1,0Kinst 1,0Kinst 128pals 2,2Kinst 2,5Kinst 2,5Kinst 128pals 4,0Kinst 4,6Kinst 4,6Kinst 128pals 9,1Kinst 10,3Kinst 10,3Kinst 256pals 18,9Kinst 21,3Kinst 21,3Kinst 512pals 3,9Kinst 4,4Kinst 4,4Kinst 128pals 8,9Kinst 10,1Kinst 10,1Kinst 256pals 18,8Kinst 21,2Kinst 21,2Kinst 512pals 1,1Kinst 1,4Kinst 1,1Kinst 3,1Kinst 3,8Kinst 2,9Kinst 5,4Kinst 6,6Kinst 5,1Kinst 11,8Kinst 14,3Kinst 11,1Kinst 24,7Kinst 30,0Kinst 23,3Kinst 5,2Kinst 6,3Kinst 4,9Kinst 11,6Kinst 14,2Kinst 11,0Kinst 24,5Kinst 29,8Kinst 23,2Kinst 1,6Kinst 2Kinst 1,3Kinst 3,8Kinst 4,9Kinst 3,3Kinst 6,6Kinst 8,4Kinst 5,6Kinst 13,7Kinst 17,5Kinst 11,7Kinst 28,5Kinst 36,3Kinst 24,2Kinst 6,3Kinst 8,1Kinst 5,4Kinst 13,6Kinst 17,3Kinst 11,5Kinst 28,4Kinst 36,1Kinst 24,1Kinst 3705/08 9Kpals 3710 14Kpals 20Kpals 3721 32Kpals 52Kpals 64Kpals 84Kpals 17,5Kpals 20Kpals 0,5Kpals(1) 37 22 32Kpals 52Kpals 17,5Kpals 64Kpals 84Kpals 17,5Kpals

0,5Kpals(1) 0,5Kpals(1) 0,5Kpals(1) 17,5Kpals

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)

Tamao de la memoria palabras


Procesador Tarj. de memoria Memoriainterna Datos(%MWi) Programa 100%boleano LenguajeLD LenguajeIL LenguajeST Programa 90%boleano LenguajeLD LenguajeIL LenguajeST Programa 65%boleano LenguajeLD LenguajeIL LenguajeST Constantes (1) TSX-PCX57 10 / PMX 57 10 32K/48K 1K(1) 32K 32K/48K 26K 64K 32K/48K 26K 48K/64K 1K(1) TSX-PMX 5720 / TSX 57 25 32K 48K/64K 30,5K 64K 48K/64K 30,5K 128K 48K/64K 30,5K

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

27,2/27,0Ki 34,7/34,4Ki 23,1/23,0Ki

56,8/56,8Ki 72,4/72,4Ki 48,2/48,2Ki

5,3/11,6Ki 6,3/14,2Ki 5,0/11,0Ki

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

21,6/21,6Ki 25,8/25,8Ki 20,7/20,7Ki

47,7/47,5Ki 56,6/56,7Ki 45,4/45,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.

6,8/6,8Ki 6,9/6,9Ki 8,0/8,0Ki 128 pals.

16,8/16,8Ki 17,2/17,2Ki 19,9/19,9Ki 256 pals.

37,0/37,0Ki 37,9/37,9Ki 43,8/43,8Ki 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)

Tamao de la memoria palabras


Procesador Memoria interna Datos(%MWi) Programa 100% boleano Lenguaje LD Lenguaje IL Lenguaje ST Programa 90% boleano Lenguaje LD Lenguaje IL Lenguaje ST Programa 65% boleano Lenguaje LD Lenguaje IL Lenguaje ST Constantes (1) TSX 5730 / TSX y PCX 57 35 32K 64K / 80K 30,5K 64K 64K / 80K 30,5K 128K 64K / 80K 30,5K 256K 64K / 80K 30,5K 64K / 80K 1K(1)

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)

Tamao de la memoria palabras


Procesador Memoria interna Datos (%MWi) Programa 100% boleano Lenguaje LD Lenguaje IL Lenguaje ST Programa 90% boleano Lenguaje LD Lenguaje IL Lenguaje ST Programa 65% boleano Lenguaje LD Lenguaje IL Lenguaje ST Constantes (1)

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

256K 80K/96K/96K 30,5K

80K/96K/96K 80K/96K/96K 80K/96K/96K

28,8/36,1/37,5Ki 12,4Ki 36,7/46,1/47,8Ki 15,8Ki 24,5/30,7/31,9Ki 10,5Ki

27,2Ki 34,7Ki 23,1Ki

56,8Ki 72,4Ki 48,2Ki

90,5Ki 83,6Ki 74,6Ki

22,6/29,0/30,3Ki 8,7Ki 27,1/34,7/36,1Ki 10,4Ki 21,7 /27,8/29,0Ki 8,4Ki

21,6Ki 25,8Ki 20,7Ki

47,5Ki 56,7Ki 45,49Ki

76,8Ki 73,9Ki 76,0Ki

17,4/22,4/23,3Ki 6,8Ki 17,8/22,9/23,9Ki 6,9Ki 20,5 /26,5/27,6Ki 8,0Ki 256 palabras

16,8Ki 17,2Ki 19,9Ki

37,0Ki 37,9Ki 43,8Ki

63,1Ki 61,4Ki 63,8Ki

256 palabras 256 palabras 1024 palabras 1024 pal.

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

1.4-2 Rearranque en caliente

Adquisicin de entradas

Parada procesador Contexto aplicacin guardado

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

Puesta a 1 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

Corte de corriente > microcorte

S
Inicializacin de la aplicacin

No

BOT

Puesta a 0 del bit %S0

Puesta a 1 del bit %S0

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)

Horno_1(Grafcet) PRL(LD) CHART POST(IL)

Secado(LD) SR0 Limpieza(ST)

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

SR SR0 SR1 SR2

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).

Tratamiento Traitement preliminar prliminaire PRL PRL

Subprograma Sous-programme SRi SRi

Page Grafcet CHARt CHART (8 pages) (8 pgs)

Pg. Grafcet

Rceptivits Receptividades Actions Acciones Subprograma Sous-programme SRi

Tratamiento Traitement postrieur posterior POST POST

Subprograma Sous-programme SRi SRi

___________________________________________________________________________ 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

Activacin del perodo

Tratamiento interno

(1)

Adquisicin de entradas RUN STOP

Tratamiento del programa

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

Horno_1(Grafcet) PRL(LD) CHART POST(IL)

Secado(LD)

SR0

Limpieza(ST)

Mdulos funcionales: vase captulo 7. ___________________________________________________________________________ 1/45

Ejemplo de estructura de programa multitarea

___________________________________________________________________________ 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.

Recapitulacin de los intercambios y tratamientos IT


H
Tratamiento de suceso (tarea EVTi)

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

se adquieren automticamente todas las entradas asociadas a la va que activ el suceso.

se adquieren todas las entradas declaradas por el usuario en la tarea EVTi.

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.

Actualizacin implcita de salidas declaradas en la tarea EVTi

___________________________________________________________________________ 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).

En el TSX 57, segn el procesador utilizado, el nmero de intercambios utilizados se limita.


N de intercambios utilizables en los EVT por el procesador N mx. de intercambios TON N mx. de intercambios ANA P57-1 (32 EVTs) P57-2/3 (64 EVTs) 32 intercambios 8 intercambios 128 intercambios 16 intercambios 16 intercambios

N mx. de intercambios fun. esp. 4 intercambios

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

Lenguaje de contactos 2 Captulo 2


2 Lenguaje de contactos

2.1

Presentacin del lenguaje de contactos

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

%M25 %MW0:X5 %MW15 : = %MW18+500

___________________________________________________________________________ 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

Bobina de signo de nmero

___________________________________________________________________________ 2/2

A
Lenguaje de contactos
2

Designacin Elementos de accin (cont.) Bobina de llamada a un subprograma (CALL)

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.

Regreso del subprograma Parada de programa

<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.

Bloques de funcin estndar


Designacin Elementos de prueba Bloques: Temporizador Contador Monoestable Registro Programador cclico Drum Grfico Funciones Cada bloque de funcin estndar utiliza entradas y salidas que permiten vincularlos a otros elementos grficos. Las funciones de los bloques se describen en la seccin B. Dimensin: vase el captulo 2.2-5.

Bloques de funcin DFB


Designacin Elementos Bloques Grfico Funciones Cada uno de los bloques de funcin DFB utiliza entradas, salidas y entradas/salidas que permiten vincularlos a los otros elementos grficos para los objetos de tipo bits o que puedan asignarse a objetos numricos o tablas. Las funciones del bloque DFB se describen en el captulo 6. Dimensiones: vase apartado 2.2-5

Los bloques de funcin DFB no pueden utilizarse en los autmatas TSX37.

___________________________________________________________________________ 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

Estructura de una red de contactos

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

Formulario de programacin esquema de contactos Lneas 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16


%L

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

%Q2.0 %MW3:X0 %M3 %I1.3

%I5.2

%M155 S

%I3.1 %M13 %Q4.7

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

%Q2.0 %MW3:X0 %M3 %I1.3

%I5.2

%M155 S

%I3.1 %M13 %Q4.7

%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

%MN0 R TB : 100ms MN.P : 80

%I6.8 %C2.D
%MW8:X4

%Q2.6 %M85 %S6

___________________________________________________________________________ 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 /

%M8 %Q6.5 S %M12 R %MW2 := %MW0+1

%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 /

16 lneas (7 lneas para TSX37) de contactos independientes.

%M53
%MW8:X4

%M12 %M8 %M9 %M10


P

%M11
%M12

%M13 %M14 %M15 %M16


P

Redes que utilizan los diferentes principios enunciados.

%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

Observacin: Las entradas no cableadas de los bloques de funcin estndar se ponen a 0.

___________________________________________________________________________ 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

Combinaciones de bloques de funcin y de operacin

%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

%Q2.1 UP_1 INIT DOWN_1

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

Lenguaje Lista de instrucciones 3 Captulo 3


3 Lenguaje Lista de instrucciones

3.1

Presentacin del lenguaje Lista de instrucciones

3.1-1 Principio Un programa escrito en lenguaje Lista de instrucciones se compone de una serie de instrucciones ejecutadas secuencialmente por el autmata.

Ejemplo de instruccin: LD %I1.0 Cdigo de instruccin Operando

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

AND, ANDN, ANDR, ANDF

OR, ORN, ORR, ORF


P N

AND(, OR( (8 niveles de parntesis)

XOR, XORN, XORR, XORF MPS MRD MPP

O exclusiva

N Instrucciones de accin ST, STN, S, R JMP, JMPC, JMPCN

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.

SRn RET, RETC, RETCN

END, ENDC, ENDCN resultado booleano a 0). HALT

___________________________________________________________________________ 3/2

A
Lenguaje Lista de instrucciones
3

Instrucciones para bloques de funcin (vase la seccin B, captulo 1.3)


Designacin Elementos de prueba Instrucciones Bloques: Temporizador Contador Monoestable Registro Programador Funciones Para cada bloque de funcinestndar existen instrucciones que permiten controlarlo. Una forma estructurada permite "cablear" directamente las entradas/salidas de bloques.

Instrucciones numricas (vase la seccin B)


Designacin Elementos de prueba OR[.....] Instrucciones LD[.....] AND[.....] verifica el resultado. Ejemplo: LD[%MW10<1000] Elementos de accin [.......] Ejemplo: [%MW10:=%MW0+100] Funciones Permite comparar 2 operandos (vase la seccin B, captulo 1.4-2), la salida pasa a 1 cuando se

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

LD AND OR( AND ) ST

%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

LD AND OR( AND ) ST

%I1.0 %I1.1 [%MW0>100] %I1.3 %Q2.0

___________________________________________________________________________ 3/5

Imbricacin de parntesis Es posible imbricar hasta 8 niveles de parntesis. Ejemplo


%I1.0 %I1.1 %I1.2 %M3 %Q2.0

LD AND( OR(N AND ) ) ST

%I1.0 %I1.1 %I1.2 %M3 %Q2.0

Ejemplo
%I1.1 %I1.2 %I1.3 %I1.5 %I1.6 %I1.7 %I1.8 %I1.4 %Q2.0

LD AND( AND OR(N AND ) AND OR(N AND ) ) ST

%I1.1 %I1.2 %I1.3 %I1.5 %I1.6 %I1.4 %I1.7 %I1.8 %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

%M0 %Q2.1 %Q2.2 %Q2.3

%M1 %I1.4 %M10

%I1.3 %M0 %Q2.0 %M1 %Q2.1 %I1.4 %Q2.2 %M10 %Q2.3

Nota Estas instrucciones no pueden utilizarse en una expresin entre parntesis.

___________________________________________________________________________ 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

S C.P : 9999 D CU MODIF : Y CD F


Bloque contador/descontador

Principio de programacin directa


%I1.1 R %I1.2 %M0 %C8 E %Q2.0

S C.P : 9999 D CU MODIF : Y CD F

LD R LDN ANDN CU LD ST

%I1.1 %C8 %I1.2 %M0 %C8 %C8.D %Q2.0

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

S C.P : 9999 D CU MODIF : Y CD F

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

Captulo 4 Lenguaje Literal estructurado 4


4 Lenguaje Literal estructurado

4.1

Presentacin del lenguaje Literal estructurado

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

4.1-2 Instrucciones Instrucciones para bits


Designacin := OR AND XOR NOT RE FE SET RESET Asignacin de un bit O booleana Y booleana O exclusiva booleana Inversin Flanco ascendente Flanco descendente Puesta a 1 Puesta a 0 Funcin

Comparaciones numricas de palabras, dobles palabras y flotantes


Designacin < > <= >= = <> Estrictamente inferior a Estrictamente superior a Inferior o igual a Superior o igual a Igual a Diferente de Funcin

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

Aritmtica entera para palabras y dobles palabras


Designacin +,-,*,/ REM SQRT ABS INC DEC Funcin Suma, Resta, Multiplicacin, Divisin entera Resto de la divisin entera Raz cuadrada entera Valor absoluto Incremento Decremento

Aritmtica para flotantes


Designacin +,-,*,/ SQRT ABS TRUNC LOG LN EXP EXPT COS SIN TAN ACOS ASIN ATAN DEG_TO_RAD RAD_TO_DEG Funcin Suma, Resta, Multiplicacin, Divisin entera Raz cuadrada Valor absoluto Parte entera Logaritmo base 10 Logaritmo neperiano Exponenciacin natural Exponenciacin de un real por un entero Coseno de un valor en radianes Seno de un valor en radianes Tangente de un valor en radianes Arco coseno (resultado ante 0 y 2) Arco seno (resultado entre -/2) y +/2) Arco tangente (resultado entre -/2 y +/2) Conversin de grados en radianes Conversin radianes en grados

Instrucciones lgicas para palabras y dobles palabras


Designacin AND OR XOR NOT SHL SHR ROL ROR Funcin Y lgica O lgica O lgica exclusiva Complemento lgico Desplazamiento lgico a la izquierda Desplazamiento lgico a la derecha Desplazamiento lgico circular a la izquierda Desplazamiento lgico circular a la derecha

Instrucciones sobre el programa


Designacin HALT JUMP SRi RETURN MASKEVT UNMASKEVT Funcin Parada de ejecucin del programa Salto a una etiqueta Llamada de subprograma Regreso de subprograma Enmascaramiento de los sucesos en el autmata Desenmascaramiento de los sucesos en el autmata

___________________________________________________________________________ 4/3

Instrucciones de conversiones numricas


Designacin BCD_TO_INT INT_TO_BCD GRAY_TO_INT 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 Funcin Conversin BCDBinaria Conversin BinariaBCD ConversinGrayBinaria Conversin de un entero simple en formato flotante Conversin de un entero doble en formato flotante Conversin de un flotante en formato entero simple Conversin de un flotante en formato entero doble 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 Extraccin de la palabra menos significativa de 1 doble palabra Extraccin de la palabra de ms significativa de 1 doble palabra Concatenacin de 2 palabras simples

Instrucciones para las tablas de palabras y dobles palabras


Designacin Tabla := Tabla Tabla := Palabra +, -, *, /, REM +, -, *, /, REM SUM EQUAL NOT AND, OR, XOR AND, OR, XOR FIND_EQW, FIND_EQD FIND_GTW, FIND_GTD FIND_LTW, FIND_LTD MAX_ARW, MAX_ARD MIN_ARW, MIN_ARD OCCUR_ARW, OCCUR_ARD SORT_ARW, SORT_ARD ROL_ARW, ROL_ARD ROR_ARW, ROR_ARD FIND_EQWP,FIND_EQDP LENGTH_ARW, LENGTH_ARD Funcin Asignacin entre dos tablas Inicializacin de una tabla Operaciones aritmticas entre tablas Operaciones aritmticas entre expresiones y tablas Suma de los elementos de una tabla Comparacin de dos tablas Complemento lgico de una tabla Operaciones lgicas entre dos tablas Operaciones lgicas entre expresiones y tablas Bsqueda del primer elemento igual a un valor Bsqueda del primer elemento superior a un valor Bsqueda del primer elemento inferior a un valor Bsqueda del valor mximo en una tabla Bsqueda del valor mnimo en una tabla Nmero de ocurrencias de un valor en una tabla Orden por orden ascendente o descendente de una tabla Desplazamiento circular a derecha de una tabla Desplazamiento circular a izquierda de una tabla Bsqueda del primer elemento igual a un valor desde un rango Clculo de la longitud de una tabla

___________________________________________________________________________ 4/4

A
Lenguaje Literal estructurado
4

Instrucciones para tablas de flotantes


Designacin Tabla := Tabla Tabla := Flotante SUM_ARR EQUAL_ARR FIND_EQR FIND_GTR FIND_LTR MAX_ARR MIN_ARR OCCUR_ARR SORT_ARR ROL_ARR ROR_ARR LENGTH_ARR Funcin Asignacin entre dos tablas Inicializacin de una tabla Suma de los elementos de una tabla Comparacin de dos tablas Bsqueda del primer elemento igual a un valor Bsqueda del primer elemento superior a un valor Bsqueda del primer elemento inferior a un valor Bsqueda del valor mximo en una tabla Bsqueda del valor mnimo en una tabla Nmero de ocurrencias de un valor en una tabla Orden por orden ascendente o descendente Desplazamiento circular a la izquierda de una tabla Desplazamiento circular a la derecha de una tabla Clculo de longitud de una tabla

Instrucciones para cadenas de caracteres


Designacin STRING_TO_INT STRING_TO_DINT INT_TO_STRING DINT_TO_STRING STRING_TO_REAL REAL_TO_STRING <, >, <=, >=, =, <> FIND EQUAL_STR LEN MID INSERT DELETE CONCAT REPLACE LEFT RIGHT Funcin Conversin ASCIIBinario (palabra simple formato) Conversin ASCIIBinario (palabra doble formato) Conversin Binario(palabra simple formato) ASCII Conversin Binario(palabra doble formato) ASCII Conversin ASCIIFlotante Conversin FlotanteASCII Comparacin alfanumrica Posicin de una subcadena Posicin del primer carcter diferente Longitud de una cadena de caracteres Extraccin de una subcadena Insercin de una subcadena Supresin de una subcadena Concatenacin de dos cadenas Reemplazo de una cadena Inicio de cadena Fin de cadena

___________________________________________________________________________ 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

ELSIF condicin 2 THEN accin 2; ELSE accin 3; END_IF;

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.
`

Es posible imbricar varias estructuras de control WHILE.

___________________________________________________________________________ 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

VALOR INICIAL INDICE

ACCION INDICE + 1 INDICE

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

Captulo 5 Lenguaje Grafcet 5


5 Lenguaje Grafcet

5.1

Presentacin del lenguaje Grafcet

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

Tolva Tremie peseuse pesadora B1 B1

Mezclador Mlangeur

Tolva Tremie peseuse pesadora B2 B2

Evacuation Evacuacin

cycle par ciclo ciclo por cycle


Dosage Dosificacin 10

Squence Dosage Secuencia Dosif. fin de dosage fin de dosificacin

Llenado Remplissage

20

Secuencia Llenado Squence Remplissage


fin de remplissage fin llenado

Mlange Mezcla

30

Secuencia Mezcla Squence Mlange


fin de mlange fin de mezcla

Evacuacin Evacuation

40

Squence Evacuation Secuencia Evacuacin fin d'vacuation fin de evacuacin

A
Lenguaje Grafcet
5

Representacin grfica

Macroetapas

Secuencia dosificacin

Secuencia llenado

Grfico principal

Secuencia mezcla

Secuencia evacuacin

___________________________________________________________________________ 5/3

5.2

Smbolos grficos relativos al lenguaje Grafcet


Smbolo Funciones

Designacin Etapas iniciales

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

Etapas de macroetapas (1)

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

Objetos relativos al Grafcet

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.

Palabras asociadas a etapas

%Xi.T %Xj.i.T %Xj.IN.T %Xj.OUT.T

Palabras sistema asociadas al Grafcet

%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

Posibilidades del lenguaje Grafcet

Dependen del procesador a programar, y se recapitulan en la tabla que sigue:


Nmero Etapas del grfico principal Macroetapas Etapas de macroetapas Total de etapas Etapas activas simultneamente Transiciones vlidas simultneamente TSX 37-10 Predet. 96 0 0 96 16 20 Mx. 96 0 0 96 96 192 TSX 37-20 TSX 57 Predet. 128 0 0 128 20 24 Mx. 128 0 0 128 128 256 Predet. 128 8 64 640 40 48 Mx. 250 64 250 1024 250 400

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).

Grfico principal Pg. 8 8 pginas 250 etapas mximo + Macroetapas

Macroetapa 0 Pg. 8 8 pginas 250 etapas mximo + Etapa IN + Etapa OUT + Macroetapas

Pg.3 Pg. 2 Pg. 1

Pg. 3 Pg. 2 Pg. 1

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

Pg. 3 Pg. 2 Pg. 1

Macroetapa 63 Pg. 8

Pg. 3 Pg. 2 Pg. 1

8 pginas 250 etapas mximo + Etapa IN + Etapa OUT + Macroetapas

___________________________________________________________________________ 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

Encaminamiento y fin de encaminamiento

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.

Activacin y desactivacin simultneas de etapas

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

Acciones asociadas a etapas

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

Incremento de la palabra %MW10 y puesta a cero de %MW0 y %MW25

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

Cuando la etapa 51 se desactiva, las acciones continuas asociadas ya no se exploran.

___________________________________________________________________________ 5/19

5.8

Receptividades asociadas a transiciones

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.

La seccin Grafcet se programa en la tarea MAST.

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 Secuencial Grafcet

Tratamiento Posterior

Tratamiento posterior: Permite tratar: la lgica de salida, la supervisin de las seguridades indirectas especficas a las salidas.

Lenguaje de contactos, lista de instrucciones o literal

___________________________________________________________________________ 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)

(1) En la pantalla de depuracin UC (parte Grafcet) o en la tabla de animacin.

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).

Puesta a estado 1 Por el programa de usuario

Puesta a estado 0 Por el sistema al inicio del tratamiento secuencial

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

XM15 . . . . . . . . . . . . . . XM0 %SW23 %SW24 %SW25

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

%SW125 DEF7 DEF7 DEFE

%SW126 0 =0 N de etapa

(1) 64 para el grfico principal.

___________________________________________________________________________ 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.

Las etapas 5, 8 y 59 del tratamiento secuencial activan la salida %Q4.1.

___________________________________________________________________________ 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

Captulo 6 Bloques de funcin DFB 6


6 Bloques de funcin DFB

6.1

Presentacin de los bloques de funcin DFB

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

Entradas/ salidas Variables pblicas Variables privadas Cdigo en literal

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

Creacin de una instancia de bloques de funcin Tipo DFB

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.

(1) excepto para los objetos de tipo BOOL/EBOOL. ___________________________________________________________________________ 6/11

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

Preset Presel BOOL Co unt

% I1.1

Cpt_crous Cont_tuercas %I1.2 Cpt_pices Cont_piezas


BOOL Ra z %M D12 DWORD BOOL Done

%Q2.2

Presel Preset
BOOL Cou nt

% I1.3

Cpt_v is Cont_tornillos % I1.4 Cpt_pi ces Cont_piezas


BOOL Raz %MD14 DWORD Presel Preset BOOL Count BOOL Done

% Q2.3

% I1.5

___________________________________________________________________________ 6/14

Captulo 7 Los mdulos funcionales 7


7 Mdulos funcionales

7.1

Presentacin de los mdulos funcionales

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.

Un mdulo funcional comprende programa y tablas 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

El mdulo Prod1 posee un submdulo Mdm1

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

Instalacin de los mdulos funcionales

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

Programacin de un mdulo funcional

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

Hay que seleccionar la seccin y desplazarse en el mdulo funcional correspondant.

El nombre del mdulo funcional se indica al nivel de la vista estructural

___________________________________________________________________________ 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

La seccin desaparece en ambas vistas

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

Ejecucin del programa

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

Importacin y exportacin del origen del mdulo funcional

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

Descripcin detallada de las instrucciones Tabla de materias y funciones Seccin B ___________________________________________________________________________

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

Descripcin detallada de las instrucciones Tabla de materias y funciones Seccin B ___________________________________________________________________________

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.3 2.4 2.5

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

Descripcin detallada de las instrucciones Tabla de materias y funciones Seccin B ___________________________________________________________________________

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

Descripcin detallada de las instrucciones Tabla de materias y funciones Seccin B ___________________________________________________________________________

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

Descripcin detallada de las instrucciones Tabla de materias y funciones Seccin B ___________________________________________________________________________

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

5 Lista de palabras reservadas 5.1 Palabras reservadas

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

Descripcin detallada de las instrucciones Tabla de materias y funciones Seccin B ___________________________________________________________________________

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

Descripcin detallada de las instrucciones Tabla de materias y funciones Seccin B ___________________________________________________________________________

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

9.3 9.4 9.5

___________________________________________________________________________ B/7

Descripcin detallada de las instrucciones Tabla de materias y funciones Seccin B ___________________________________________________________________________

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

Descripcin de las instrucciones de base 1 Captulo 1


1 Descripcin de las instrucciones de base

1.1

Presentacin de las instrucciones de base

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:

en lenguaje Literal estructurado:

%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

%Q2.0 := %I1.0 AND %I1.1 ;

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

Contacto de deteccin de flanco desc.:


%I1.0 N

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

Descripcin de las instrucciones de base


1.2-2 Descripcin de las instrucciones Las instrucciones booleanas se describen del modo siguiente. La instruccin descrita se presenta en negrita. Cada ecuacin se ilustra en todos los lenguajes. Instrucciones de carga Estas instrucciones corresponden a:

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

Lenguaje Lista de instrucciones


LD ST LDN ST %I1.1 %Q2.3 %M0 %Q2.2

Lenguaje Literal estructurado


%Q2.3 := %I1.1 ; %Q2.2 := NOT %M0 ;

Operandos autorizados
Cdigo LD Operando %I,%Q,%M,%S,%BLK,%:Xk, %Xi

Cronograma
LD LDN

LDN %I,%Q,%M,%S,%BLK,%:Xk, %Xi


%I1.1 %M0

%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

LD ST LDN ST LDR ST LDF ST

%I1.1 %Q2.3 %M0 %Q2.2 %I1.2 %Q2.4 %I1.3 %Q2.5

Lenguaje Literal estructurado


%Q2.3 %Q2.2 %Q2.4 %Q2.5 := := := := %I1.1 ; NOT %M0 ; RE %I1.2 ; FE %I1.3 ;

Operandos autorizados
Cdigo Operando LD %I,%Q,%M,%S,%BLK,%:Xk, %Xi (1)

Cronograma
P N

LD

LDN

LDR

LDF

LDN %I,%Q,%M,%S,%BLK,%:Xk, %Xi (1)


P N

LDR %I,%Q,%M LDF %I,%Q,%M

%I1.1

%M0

%I1.2

%I1.3

(1) True (1) / False (0) en lenguaje Lista de instrucciones o Literal estructurado

%Q2.3

%Q2.2

%Q2.4 (2) %Q2.5 (2)

(2) Puesto a 1 durante1 ciclo

___________________________________________________________________________ 1/4

Descripcin de las instrucciones de base


1.2-4 Instrucciones de asignacin Estas instrucciones corresponden a:

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

Lenguaje Lista de instrucciones


LD ST STN
%Q2.4 S

%I1.1 %Q2.3 %Q2.2 %Q2.4 %I1.2 %Q2.4

S LD R

%I1.2

%Q2.4 R

Lenguaje Literal estructurado


%Q2.3 := %I1.1 ; %Q2.2 := NOT %I1.1 ; IF %I1.1 THEN SET %Q2.4 ; END_IF ; IF %I1.2 THEN RESET %Q2.4 ; END_IF ;

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

(1) Unicamente en el tratamiento preliminar.

%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

Lenguaje Lista de instrucciones


LD AND ST LD ANDN ST LD ANDR ST LD ANDF ST %I1.1 %M1 %Q2.3 %M2 %I1.2 %Q2.2 %I1.3 %I1.4 %Q2.4 %M3 %I1.5 %Q2.5

%I1.3 %I1.4 P %M3 %I1.5 N

%Q2.4 %Q2.5

Lenguaje Literal estructurado


%Q2.3 %Q2.2 %Q2.4 %Q2.5 := := := := %I1.1 %M2 %I1.3 %M3 AND AND AND AND %M1 ; (NOT %I1.2) ; (RE %I1.4) ; (FE %I1.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 %I1 .3 %I1.4

ANDF %M3 %I1.5

ANDR ANDF

(1) True (1) / False (0) en lenguaje Lista de instrucciones o Literal estructurado

%Q2.4 (2) %Q2.5 (2)

(2) Puesto a 1 durante 1 ciclo

___________________________________________________________________________ 1/6

Descripcin de las instrucciones de base

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

Lenguaje Lista de instrucciones


LD OR ST LD ORN ST LD ORR ST LD ORF ST %I1.1 %M1 %Q2.3 %M2 %I1.2 %Q2.2 %I1.3 %I1.4 %Q2.4 %M3 %I1.5 %Q2.5

%Q2.5

Lenguaje Literal estructurado


%Q2.3 %Q2.2 %Q2.4 %Q2.5 := := := := %I1.1 %M2 %I1.3 %M3 OR OR OR OR %M1 ; (NOT %I1.2) ; (RE %I1.4) ; (FE %I1.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

O R N %I,%Q,%M,%S,%BLK,%:Xk, %Xi (1) O R R %I,%Q,%M


P

OR %I1.1 %M1

ORN %M2 %I1.2 %Q2.2

ORR %I1.3 %I1.4 %Q2.4

ORF %M3 %I1.5 %Q2.5

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

Lenguaje Lista de instrucciones


LD XOR ST LD XORN ST LD XORR ST LD XORF ST %I1.1 %M1 %Q2.3 %M2 %I1.2 %Q2.2 %I1.3 %I1.4 %Q2.4 %M3 %I1.5 %Q2.5

Lenguaje Literal estructurado


%Q2.3 := %I1.1 %Q2.2 := %M2 %Q2.4 := %I1.3 %Q2.5 := %M3 XOR %M1 ; XOR (NOT %I1.2) ; XOR (RE %I1.4) ; XOR (FE %I1.5) ;

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

Descripcin de las instrucciones de base


1.3 Bloques de funcin predefinidos

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

S C.P : 9999 D CU MODIF : Y CD F Bloque contaje/descontaje

(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.

%TMi Q IN MODE:TON TB: 1mn TM.P:9999 MODIF:Y

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

Ajustedesde elterminal (MODIF) Entrada(instruccin) "Activacin" Salida"Temporizador"

Y/N

IN Q

(1) %TMi.V puede ser modificado desde el terminal.

___________________________________________________________________________ 1/10

Descripcin de las instrucciones de base

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.

Programacin Lenguaje de contactos


%TM1 IN TON Q

Lenguaje Lista de instrucciones


LD IN LD ST %I1.1 %TM1 %TM1.Q %Q2.3

%I1.1

%Q2.3

Lenguaje Literal estructurado


IF RE %I1.1 THEN START %TM1 ; ELSIF FE %I1.1 THEN DOWN %TM1 ; END_IF ; %Q2.3 := %TM1.Q ;

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

Descripcin de las instrucciones de base

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

S C.P : 9999 D CU MODIF : Y CD F

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)

Salida preseleccin alcanzada Salida rebasamiento

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

Descripcin de las instrucciones de base

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

Lenguaje Lista de instrucciones


LD R LD AND CU LD ST
%Q2.0

%I1.2 %M0

S C.P : 5000 D CU MODIF : Y CD F

%I1.1 %C8 %I1.2 %M0 %C8 %C8.D %Q2.0

%C8.D

Lenguaje Literal estructurado


IF %I1.1 THEN RESET %C8 ; END_IF ; %M1 := %I1.2 AND %M0 ; IF RE %M1 THEN UP %C8 ; END_IF ; %Q2.0 := %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

Descripcin de las instrucciones de base


1.4 Tratamientos numricos para enteros

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.

LD [%MW50>10] ST %Q2.2 LD %I1.0 [%MW10:=%KW0+10] LDF %I1.2 [INC %MW100]

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

Lista de operandos Lista de tablas de bits


Abreviaciones Direccionamiento %M:L %I:L %Q:L %Xi:L %Mi:L %Ixy.i:L %Qxy.i:L %Xi:L o %Xj.i:L Tipo de palabra tabla de bits internos tabla de bits de entrada tabla de bits de salida tabla de bits de etapas Acceso R/W R/W R/W R

Lista de palabras de formato simple


Abreviaciones Direccionamiento Val. inm. %MW %KW %SW %IW %QW %NW %BLK %Xi.T %MWi %KWi %SWi %IWxy.i(.r) %QWxy.i(.r) %NW{j}k ej : %TMi.P %Xi.T o %Xj.i.T Tipo de palabra valores inmediatos palabra interna constante interna palabra sistema palabra de entrada palabra de salida palabra comn pal. extr. de bloque funcin estndar o de DFB tiempo de actividad etapa Acceso R R/W R R/W (1) R R/W R/W R/W (2) R Forma index. %MWi[ndice] %KWi[ndice] %Xi.T [ndice]

(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).

Lista de dobles palabras


Abreviaciones Direccionamiento Val. inm. %MD %KD %SD %ID %QD %MDi %KDi %SDi %IDxy.i(.r) %QDxy.i(.r) Tipo de doble palabra valores inmediatos doble palabra interna doble constante interna doble palabra sistema doble palabra de entrada doble palabra de salida Acceso R R/W R R/W (1) R R/W Forma index. %MD[ndice] %KDi[ndice] -

(1) slo la doble palabra %SD18

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

Descripcin de las instrucciones de base


1.4-2 Instrucciones de comparacin 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 %MW10>100 %M0 %MW20<%KW35 %I1.2 %Q2.4 %Q2.2

Lenguaje Lista de instrucciones


LD ST LD AND ST LD OR ST [%MW10 > 100] %Q2.3 %M0 [%MW20 < %KW35] %Q2.2 %I1.2 [%MW30 >= %MW40] %Q2.4

%MW30>=%MW40

Los bloques de comparacin se programan en el rea de prueba. Lenguaje Literal estructurado

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.

Sintaxis Operadores: >,>=,<,<=,=,<>

Op1 Operador Op2

___________________________________________________________________________ 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

Descripcin de las instrucciones de base

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

Sintaxis Operador:= Operandos


Tipo Tabla de bits Palabras indexables Palabras no indexables Dobles palabras indexables

Op1:=Op2

Operando 1 (Op1) %M:L,%Q:L,%I:L %MW %QW,%SW,%NW %BLK %MD

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

Dobles palabras no indexables %QD,%SD,

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

%SW112:=%MW100 %I3.2 %MD0:=%KD0[%MW20] %I3.3 P %MW10:=100

Lenguaje Literal estructurado


IF RE %I3.3 THEN %MW10 := 100 ; END_IF ; ex 3

Sintaxis Operador := Operandos


Tipo Palabras indexables Palabras no indexables Dobles palabras indexables

Op1:=Op2

Operando 1 (Op1) %MW %QW,%SW,%NW, %BLK %MD

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

Dobles palabras no indexables %QD,%SD,

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

Descripcin de las instrucciones de base

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.

Lenguaje Lista de instrucciones


LD %M0 [%MW0 := %MW10 + 100] LD %I3.2 [%MW0 := SQRT(%MW10)] LDR %I3.3 [INC %MW100]

Lenguaje Literal estructurado


IF %M0 THEN %MW0 := %MW10 + 100 ; END_IF ; IF %I3.2 THEN %MW0 := SQRT (%MW10) ; END_IF ; IF RE %I3.3 THEN INC %MW100 ; END_IF ;

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

Nota No es posible utilizar las operaciones INC y DEC en expresiones numricas.

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

Lenguaje Lista de instrucciones


LD %M0 [%MW0 := %MW1+ %MW2] LDN %S18 [%MW10 := %MW0 ] LD %S18 [%MW10 := 32767 ] R %S18

Lenguaje Literal estructurado


IF %M0 THEN %MW0 := %MW1 + %MW2 ; END_IF ; IF %S18 THEN %MW10 := 32767 ; RESET %S18 ; ELSE %MW10 := %MW0 ; END_IF ;

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

Descripcin de las instrucciones de base

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.

Estructura Lenguaje de contactos


%M0 %MW0:=%MW10 AND 16#FF00

Lenguaje Lista de instrucciones LD %M0 [%MW0 := %MW10 AND 16#FF00] LD TRUE [%MW0 := %KW5 OR %MW10] LD %I1.3 [%MW102:= NOT %MW100]

%MW0:=%KW5 OR %MW10 %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 ;

Sintaxis Operadores AND,OR,XOR, NOT, Op1:=Op2 Operador Op3 Op1:=NOT Op2

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

Descripcin de las instrucciones de base


1.4-6 Expresiones numricas

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

Lenguaje Lista de instrucciones LD %M8 SR10

Lenguaje Literal estructurado


IF %M8 THEN SR10 ; END_IF ;

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

Descripcin de las instrucciones de base


1.5-2 Regreso de subprograma

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>

Lenguaje Lista de instrucciones


LD RETC %M8

Lenguaje Literal estructurado


IF %M8 THEN RETURN ; END_IF ;

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

Lenguaje Literal estructurado


IF (%M5 > 3) THEN RETURN ; END_IF ; IF %M8 THEN %MD26 := %MW4 * %KD6 ; END_IF ;

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

Lenguaje Lista de instrucciones


LD JMPC LD ST .............. %L10 : LD ST LD AND ST %M8 %L10 %I1.0 %Q2.5 %M20 %M5 %I1.0 %I1.2 %Q2.1

Salto a la etiqueta %L10, si %M8 = 1.

%L10 %M20 %I1.0 %I1.2

%M5 %Q2.1

Lenguaje Literal estructurado


IF %M8 THEN JUMP %L10 ; END_IF ; %Q2.5 := %I1.0 ; %L10 : %M5 := %M20 ; %Q2.1 := %I1.0 AND %I1.2 ;

Salto a la etiqueta %L10, si %M8 = 1.

___________________________________________________________________________ 1/30

Descripcin de las instrucciones de base


Lenguaje de contactos
%M2 %I2.0 %L20 >> %Q3.5

B
Lenguaje Lista de instrucciones
LD JMPCN LDN ST .............. %L20 : LD ST %M2 %L20 %I2.0 %Q3.5 %M30 %M6

Salto a la etiqueta %L20, si %M2 = 0.

%L20 %M30

%M6

Lenguaje Literal estructurado


IF NOT %M2 THEN JUMP %L20 ; END_IF ; %Q3.5 := NOT %I2.0 ; %L20 : %M6 := %M30 ;

Salto a la etiqueta %L20, si %M2 = 0.

Lenguaje de contactos
%L40 >> %L20 %I2.1

Lenguaje Lista de instrucciones


JMP %L20 : LD ST .............. %L40 : LD ST %L40 %I2.1 %Q3.5 %M20 %M5

%Q3.5

S a l t o incondicional a la etiqueta %L40.

%L40 %M20

%M5

Lenguaje Literal estructurado


JUMP %L40 ; %L20 : %Q3.5 := %I2.1 ; %L40 : %M5 := %M20 ;

Salto incondicional a la etiqueta %L40,

___________________________________________________________________________ 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.

Ejemplo Lenguaje Lista de instrucciones


LD %M1 ST %Q2.1 LD %M2 ST %Q2.2 ..................... END LD %M1 ST %Q2.1 LD %M2 ST %Q2.2 ..................... LD %I1.2 ENDC LD %M2 ST %Q2.2 .................... END

Si %I1.2 =1, fin de exploracin de programa. Si %I1.2 =0, sigue explorando el programa hasta la nueva instruccin END.

___________________________________________________________________________ 1/32

Descripcin de las instrucciones de base

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>

Lenguaje Lista de instrucciones LD %M10 HALT

Lenguaje Literal estructurado


IF %M10 THEN HALT ; END_IF ;

___________________________________________________________________________ 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 ( )

Lenguaje Lista de instrucciones


LD %M0 [MASKEVT()] LD %M8 [UNMASKEVT()]

Lenguaje Literal estructurado


IF %M0 THEN MASKEVT ( ) ; END_IF ; IF %M8 THEN UNMASKEVT ( ) ; END_IF ;

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

Descripcin de las instruccionesCaptulo avanzadas


2.1 Presentacin de las instrucciones avanzadas

22 B

2 Descripcin de las instrucciones avanzadas


2.1-1 Generalidades Las instrucciones descritas en este captulo satisfacen las necesidades de programacin avanzada. Tienen los mismos efectos en todos los lenguajes. Slo difiere la sintaxis. Son: instrucciones de base del software, o funciones consideradas como extensiones de software. Las instrucciones de tipo Funciones ampliadas permiten completar el software de base con instrucciones especficas de programacin. Operaciones en cadenas de caracteres, tablas de palabras, etc... Funciones especficas: Comunicacin, Regulacin, Dilogo de operador, etc... Comprenden las familias siguientes: cadenas de caracteres, tablas de enteros, gestin de fechas, horas, duraciones, conversiones, tablas de bits, funciones "Orphe", Comunicacin, Regulacin, Dilogo de operador, Control de movimiento

==> vase la funcin respectiva

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

Bloque monoestable Caractersticas


Nmero Base de tiempo Valor actual %MNi TB %MNi.V 0 a 7 para un TSX 37, 0 a 254 para un TSX 57 1min, 1s, 100ms, 10ms (valor predet.: 1min). Palabra que disminuye de %MNi.P hacia 0 en el transcurso del temporizador. Puede ser leda y probada, pero no escrita. 0 < %MNi.P < 9999. Palabra que puede ser leda, probada y escrita. La duracin del impulso (PRESET) es igual a %MNi.P x TB. Y: posibilidad de modificar el valor de preseleccin en modo de ajuste. N: sin acceso en modo de ajuste. En el flanco ascendente %MNi.V = %MNi.P, luego %MNi.V disminuye hacia 0. El bit asociado %MNi.R est en el estado 1 si %MNi.V > 0 (transcurso monoestable) %MNi.R = 0 si %MNi.V = 0.

Valor de preseleccin

%MNi.P

Modificacin MODIF

Y/N

Entrada "Inicio" (o instruccin) Salida "Monoestable"

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

Descripcin de las instrucciones avanzadas

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

Programacin Lenguaje de contactos


%MN1.R %MN0 %Q3.0

Lenguaje Lista de instrucciones


LDN S LD ST LDN S %MN1.R %MN0 %MN0.R %Q3.0 %MN0.R %MN1

Lenguaje Literal estructurado


%MN0.R %MN1

%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

Descripcin de las instrucciones avanzadas


2.2-2 Bloque de funcin registro %Ri Un registro es un bloque de memoria que permite almacenar hasta 255 palabras de 16 bits de dos maneras distintas: cola de espera (primero en entrar, primero en salir) llamada pila FIFO (First In, First Out), pila (ltimo en entrar, primero en salir) llamada pila LIFO (Last In, First Out).
%Ri R E MODE:LIFO LEN:16 F I O Bloque registro

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.

Ejemplo Almacenamiento del contenido de %Ri.I en lo alto de la cola.

20 %Ri.I (a) 20 80 50

Desalmacenamiento de la primera informacin y almacenamiento de sta en %Ri.O.

20 80 50 20 80

(b) %Ri.0 50

Ejemplo Almacenamiento del contenido de %Ri.I en lo alto de la pila.

20 %Ri.I (c) 20 80 50

Desalmacenamiento de la palabra de informacin del alto de la pila.

%Ri.0 20 80 50 80 50 20 (b)

___________________________________________________________________________ 2/6

Descripcin de las instrucciones avanzadas


Programacin y configuracin Configuracin Los parmetros siguientes se introducen en el editor de configuracin: - nmero : 1 a 4 para un TSX 37, 1 a 255 para un TSX 57, - longitud : 1 a 255.

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

Lenguaje Lista de instrucciones


LD %M1 I %R2 LD %I1.3 O %R2 LD %I1.3 ANDN %R2.E [%MW20:=%R2.O] LD %I1.2 ANDN %R2.F [%R2.I:=%MW34] ST %M1

Lenguaje Literal estructurado


IF RE %M1 THEN PUT %R2 ; END_IF ; IF RE %I1.3 THEN GET %R2 ; END_IF ; IF (%I1.3 AND NOT %R2.E) THEN %MW20:= %R2.O ; END_IF ; %M1:= %I1.2 AND NOT %R2.F ; IF %M1 THEN %R2.I:= %MW34 ; END_IF ;

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

Descripcin de las instrucciones avanzadas


2.2-3 Bloque de funcin programador cclico (Drum) %DRi Segn un principio de funcionamiento parecido al programador de levas, el programador cclico cambia de paso en funcin de sucesos exteriores. A cada paso, el punto alto de una leva da un comando que el automatismo ejecuta. En el caso del programador cclico, un estado 1 simbolizar al nivel de cada paso los puntos altos, que se asignan a bits de salida %Qi.j o internos %Mi llamados bits de comando.

%DRi R F %TB:1mn U LEN:16

Bloque programador cclico

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

R (RESET) U (UP) F (FULL)

Estado de un paso

%DRi.Wj

Bits de comando

Observacin: el bit %S18 pasa a 1, si se escribe un paso no configurado.

___________________________________________________________________________ 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

%DRi.V Tiempo transcurrido

___________________________________________________________________________ 2/10

Descripcin de las instrucciones avanzadas

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

Lenguaje Literal estructurado


IF %I1.0 THEN RESET %DR1 ; END_IF ; IF RE %I1.1 THEN UP %DR1 ; END_IF ; %Q2.8:= %DR1.F ;

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

Descripcin de las instrucciones avanzadas


2.2-4 Bloque de funcin temporizador (Timer) %Ti (serie 7) Este bloque de funcin temporizador compatible con los bloques serie 7 PL7-2/3 permite controlar acciones especficas. El valor de este retardo es programable y puede ser modificado o no desde el terminal.
%Ti E TB:1mn C T.P:9999 MODIF:Y D R

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"

E(Enable) C(Control) D(Done) R(Running)

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

E C %Ti.P %Ti.V %Ti.D %Ti.R

E C %Ti.P %Ti.V %Ti.D %Ti.R

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

Lenguaje Literal estructurado


IF %I1.0 THEN START %T0 ; ELSE PRESET %T0 ; END_IF ; %Q2.0:= %T0.D ;

___________________________________________________________________________ 2/14

Descripcin de las instrucciones avanzadas


Retardo a la desconexin Lenguaje de contactos
% I1.1 E,C R

%I1.1
E

%T7
D TB =1s

%Q2.1

R
D %Q2.1

PRESET

%Ti.P = 120

MOD:N

Lenguaje Literal estructurado


IF %1.1 THEN PRESET %T7 ; ELSE START %T7 ; END_IF ; %Q2.1:= NOT %T7.D ;

Retardo acumulado a la conexin Lenguaje de contactos


% I1.2 = E

%I1.2
E

%T5
D

%Q2.4 %Q2.5

%I1.3 = C %Q2.5 = R %Q2.4 =D PRESET = D1 + D2 + D3

%I1.3

TB =1mn C R %Ti.P = 3

D1

D2

D3

MOD:N

Lenguaje Literal estructurado


IF %I1.2 THEN IF %I1.3 THEN START %T5 ; ELSE STOP %T5 ; END_IF ; ELSE PRESET %T5 ; END_IF ; %Q2.4:= %T5.D ; %Q2.5:= %T5.R ;

___________________________________________________________________________ 2/15

Retardo acumulado a la desconexin Lenguaje de contactos


% I1.0

%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

Lenguaje Literal estructurado


IF %I1.0 THEN PRESET %T12 ; ELSE IF %I1.1 THEN STOP %T12 ; ELSE START %T12 ; END_IF ; END_IF ; %Q2.4:= NOT %T12.D ;

%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

Descripcin de las instrucciones avanzadas


2.3 Bloque de operacin de comparacin vertical
COMPARE EN OP1 OP2 > = < <>

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.

Los bloques de comparacin vertical no se limitan en nmero, ni se numeran.

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

Descripcin de las instrucciones avanzadas


2.4 Instrucciones de desplazamiento

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 15 (or 31) 0

%S17

Lenguaje Lista de instrucciones


LDR %I1.1 [%MW0:= SHL(%MW10,5)]

Lenguaje Literal estructurado


IF RE %I1.2 THEN %MW10:= ROR (%KW9,8) ; END_IF ;

Sintaxis Operadores SHL,SHR,ROL,ROR 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:=Operador (Op2,i)

(Op1)

Operando 2 (Op2) %MW,%KW Val.inm.,%IW,%QW,%SW %NW,%BLK, Expr. num. %MD,%KD Val.inm.,%ID,%QD,%SD

Expr. numrica ___________________________________________________________________________ 2/19

2.5

Instrucciones para flotantes

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

Descripcin de las instrucciones avanzadas


-24

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.

%MF0 %MF1 %MF2 %MF3 %MFi

%MW0 %MW1 %MW2 %MW3 %MWi %MWi+1

___________________________________________________________________________ 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

Lenguaje Lista de instrucciones


LD ST LD AND ST LD OR ST [%MF10 > 129.7] %Q2.3 %M0 [%MF20 < %KF35] %Q2.2 %I1.2 [%MF30 >= %MF40] %Q2.4

%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 ;

Los bloques de comparacin se programan en el rea de prueba.

Sintaxis Operadores >,>=,<,<=,=,<> Operandos


Tipo Flotantes indexables Flotantes no indexables Operandos 1 y 2 (Op1 y 2) %MF,%KF Valor inmediato flotante Expresin numrica flotante

Op1 Operador Op2

Observacin En el lenguaje Lista de instrucciones, las instrucciones de comparacin pueden utilizarse entre parntesis.

___________________________________________________________________________ 2/22

Descripcin de las instrucciones avanzadas


2.5-3 Instrucciones de asignacin para flotantes Se pueden realizar las siguientes operaciones de asignacin para flotantes: flotante (indexado) -> flotante (indexado) valor flotante inmediato -> flotante (indexado) Estructura Lenguaje de contactos
%MF10:=%KF100 %I3.2 %MF5:=%KF0[%MW20] %I3.3 P %MF100:=150.25

B
ej. 1 ej. 2

Lenguaje Lista de instrucciones


LD TRUE [%MF10:= %KF100] LD %I3.2 [%MF5:= %KF0[%MW20] ] LDR %I3.3 [%MF100:=150.25] ej. 1 ej. 1 ej. 2

Lenguaje Literal estructurado


%MF10:= %KF100 ; IF %I3.2 THEN %MF5:= %KF0 [%MW20] ; END_IF ; IF RE %I3.3 THEN %MF100:= 150.25 ; END_IF ; ej. 1 ej. 1 ej. 2

Sintaxis Operador:= Operandos


Tipo Flotantes indexables Flotantes no indexables

Op1:=Op2

Operando 1 (Op1) %MF

Operando 2 (Op2) %MF,%KF Val. inmediato flotante Expr. numrica flotante

Es posible realizar asignaciones mltiples. Ejemplo: %MF0:= %MF2:= %MF4

___________________________________________________________________________ 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)

SQRT : raz cuadrada de un operando, ABS : valor absoluto de un operando,


TRUNC : parte entera de un valor flotante,

Lenguaje Lista de instrucciones


LD %M0 [%MF0:= %MF10 + 129.7] LD %I3.2 [%MF1:= SQRT(%MF10)] LDR %I3.3 [%MF2:= ABS(%MF20)] LDR %I3.5 [%MD8:= TRUNC(%MF2)]

Lenguaje Literal estructurado


IF %M0 THEN %MF0:= %MF10 + 129.7 ; END_IF ; IF %I3.2 THEN %MF1:= SQRT (%MF10) ; END_IF ; IF RE %I3.3 THEN %MF2:= ABS (%MF20) ; END_IF ; IF RE %I3.5 THEN %MD8:= TRUNC (%MF2) ; END_IF ;

Sintaxis Operadores +,-,*,/ SQRT, ABS, TRUNC Op1:=Op2 Operador Op3 Op1:=Operador (Op2)

___________________________________________________________________________ 2/24

Descripcin de las instrucciones avanzadas


Operandos
Tipo Palabras indexables Palabras no indexables Operando 1 %MF (Op1) Operandos 2 y 3 (Op2 y 3) %MF,%KF Valor inmediato flotante Expr. numrica flotante

(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,

Estructura Lenguaje de contactos


%M0 %MF0:=LOG(%MF10) %I3.2 %MF2:=LN(%MF20) %I3.3 P %I3.4 P %MF6:=EXPT(%MF50,5) %MF4:=EXP(%MF40)

Lenguaje lista de instrucciones


LD %M0 [%MF0:= LOG(%MF10)] LD %I3.2 [%MF2:= LN(%MF20)] LDR %I3.3 [%MF4:= EXP(%MF40)] LDR %I3.4 [%MF6:= EXPT(%MF50,5)]

Lenguaje Literal estructurado


IF %M0 THEN %MF0:= LOG(%MF10) ; END_IF ; IF %I3.2 THEN %MF2:= LN(%MF20) ; END_IF ; IF RE %I3.3 THEN %MF4:= EXP(%MF40) ; END_IF ; IF RE %I3.4 THEN %MF6:= EXPT(%MF50,5) ; END_IF ; ___________________________________________________________________________

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.5-6 Instrucciones trigonomtricas Estas instrucciones permiten realizar operaciones trigonomtricas.


SIN: seno de un ngulo exp. en radianes, ASIN: arco seno (resultado entre -/2 y /2) COS: coseno de un ngulo expr. en radianes, ACOS: arco coseno (resultado entre 0 y ) TAN: tangente de un ngulo expr. en radianes. ATAN: arco tangente (res. entre -/2 y /2)

Estructura Lenguaje de contactos


%M0 %MF0:=SIN(%MF10) %I3.2 %MF2:=TAN(%MF10) %I3.3 P %MF4:=ATAN(%MF20)

Lenguaje lista de instrucciones


LD %M0 [%MF0:= SIN(%MF10)] LD %I3.2 [%MF2:= TAN(%MF10)] LDR %I3.3 [%MF4:= ATAN(%MF20)]

___________________________________________________________________________ 2/26

Descripcin de las instrucciones avanzadas

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 ;

Sintaxis Operadores SIN, COS, TAN ASIN, ACOS, ATAN Operandos


Tipo Palabras indexables Palabras no indexables Operando 1 %MF (Op1) Operando 2 (Op2) %MF,%KF Valor inm. flotante, Expr. num. flotante.

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

Estructura Lenguaje de contactos

Lenguaje lista de instrucciones


LD %M0 [%MF0:= DEG_TO_RAD(%MF10)] LD %M2 [%MF2:= RAD_TO_DEG(%MF20)]

Lenguaje Literal estructurado


IF %M0 THEN %MF0:= DEG_TO_RAD(%MF10) ; END_IF ; IF %I3.2 THEN %MF2:= RAD_TO_DEG(%MF20) ; END_IF ;

Sintaxis Operadores DEG_TO_RAD RAD_TO_DEG Operandos


Tipo Palabras indexables Palabras no indexables Operando 1 %MF (Op1) Operando 2 (Op2) %MF,%KF Valor inm. flotante, Expr. num. flotante.

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

Descripcin de las instrucciones avanzadas

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

Lenguaje Lista de instrucciones


LD TRUE [ROUND(%MB10:15,%MW100,%MB50:15)]

Lenguaje Literal estructurado


ROUND(%MB10:15,%MW100,%MB50:15) ;

Ejemplos: %MB10:15 %MW100 = 4 %MB50:15

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

0 %MB10:15 %MW100 = 2 %MB50:15

10 11 12 13 14 '3' '0' $00

'+' '1' '.' 0 1 2

'1' '3' '5' '4' '9' '4' '2' 'e' '-' 3 4 5 6 7 8 9

10 11 12 13 14 '3' '0' $00

'+' '1' '.'

'1' '0' '0' '0' '0' '0' '0' 'e' '-'

___________________________________________________________________________ 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

Descripcin de las instrucciones avanzadas


2.6
2.6-1

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)

Lenguaje Lista de instrucciones


LD TRUE [%MW0:= BCD_TO_INT(%MW10)] LD %I1.2 [%MW10:= INT_TO_BCD(%KW9)]

Lenguaje Literal estructurado


%MW0:= BCD_TO_INT (%MW10) ; IF %I1.2 THEN %MW10:= INT_TO_BCD (%KW9) ; END_IF ;

___________________________________________________________________________ 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.

Op1:= Operador (Op2)

Sintaxis Operadores (conversin de un nmero de 32 bits) DBCD_TO_DINT DINT_TO_DBCD DBCD_TO_INT Operandos


Tipo Palabras indexables Palabras no indexables Dobles palabras indexables Doblespalabras no indexables Operando 1 %MW %QW,%SW,%NW,%BLK %MD %QD, %SD %MD, %KD Val.inm.,%ID,%QD,%SD Expr. numrica (Op1) Operando 2 (Op2)

Op1:= Operador (Op2)

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

Descripcin de las instrucciones avanzadas


Reglas de utilizacin

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)

Lenguaje Lista de instrucciones


LD TRUE [%MF0:= INT_TO_REAL(%MW10)] LD %I1.8 [%MD4:= REAL_TO_DINT(%MF9)]

Lenguaje Literal estructurado


%MF0:= INT_TO_REAL (%MW10) ; IF %I1.8 THEN %MD4:= REAL_TO_DINT (%MF9) ; END_IF ;

___________________________________________________________________________ 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

Ejemplo: Operador Operandos

conversin palabra entero --> flotante 147 --> 1.47e+02 Op1:=DINT_TO_REAL (Op2)

Tipo Palabras indexables Palabrasno indexables Palabras flotantes indexables

Operando 1 (Op1)

Operando 2 (Op2) %MD,%KD Val. inm.,%ID,%QD,%SD Expr. numrica

%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)

%MF,%KF Val. inm. flotante

Ejemplo:

conversin flotante --> palabra entero conversin flotante--> doble pal. entero

5978.6 --> 5979 -1235978.6 --> -1235979

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

Descripcin de las instrucciones avanzadas

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

Estructura Lenguaje de contactos

Lenguaje Lista de instrucciones


LD TRUE [%MW0:= GRAY_TO_INT(%MW10)]

%MW0:=GRAY_TO_INT(%MW10)

Lenguaje Literal estructurado


%MW0:= GRAY_TO_INT (%MW10) ;

Sintaxis Operador Operandos


Tipo Palabras indexables Palabras no indexables

Op1:=GRAY_TO_INT(Op2)

Operando 1 %MW

(Op1)

Operando 2 (Op2) %MW,%KW,%Xi.T Val.inm.,%IW,%QW,%SW %NW,%BLK, Expr. num.

%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

Descripcin de las instrucciones avanzadas


2.7 Instrucciones para tablas de palabras

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

100 100 100 100 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

100 200 0 10 100

100 200 0 10 100

%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

Descripcin de las instrucciones avanzadas


Estructura Lenguaje de contactos

B
Lenguaje Lista de instrucciones
LD TRUE [%MW0:5:= 100] LD %I3.2 [%MW0:5:= %MW11] ej 1 ej 2

%MW0:5:=100 %I3.2 %MW0:5:=%MW11 %I3.3 P %MW0:5:=%KW0:5

Lenguaje Literal estructurado


IF RE %I3.3 THEN %MW0:5:= %KW0:5 ; END_IF ; ej 3

Sintaxis Operador:= Tablas de palabras


Tipo Tablas de palabras indexables Palabras indexables Palabras no indexables

Op1:= Op2

Operando 1 (Op1) %MW:L

Operando 2 (Op2) %MW:L,%KW:L,%Xi.T:L %MW,%KW,%Xi.T Val.inm.,%IW,%QW,%SW %NW,%BLK,Expr. num.

Tablas de dobles palabras


Tipo Tablas de palabras indexables Dobles palabras indexables Dobles palabras no indexables Operando 1 (Op1) %MD:L Operando 2 (Op2) %MD:L,%KD:L %MD,%KD Val.inm.,%ID,%QD, Expr. numrica

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

Nota Se prohiben las asignaciones mltiples en las tablas.

___________________________________________________________________________ 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

Lenguaje Lista de instrucciones


LD %M0 [%MW0:10:=%MW20:10+100] LD %I3.2 [%MD50:5:=%KD0:5 + %MD0:5]

Lenguaje Literal estructurado


IF RE %I3.3 THEN %MW0:10:= %KW0:10 * %MW20 ; END_IF ;

Sintaxis Operadores +,-,*,/,REM Operandos Tablas de palabras


Tipo Tablas de palabras indexables Palabras indexables Palabras no indexables Operando 1 %MW:L (Op1) Operandos 2 y 3 (Op2 y 3 %MW:L,%KW:L,%Xi.T:L %MW,%KW,%Xi.T Val.inm.,%IW,%QW,%SW %NW,%BLK,%Xi.T,Expr. num.

Op1:=Op2 Operador Op3

Tablas de dobles palabras


Tipo Tablas de palabras indexables Dobles palabras indexables Dobles palabras no indexables Operando 1 %MD:L (Op1) Operandos 2 y 3 (Op2 y 3 %MD:L,%KD:L %MD,%KD Val.inm.,%ID,%QD, Expr. numrica

___________________________________________________________________________ 2/40

Descripcin de las instrucciones avanzadas


2.7-4 Instrucciones lgicas para tablas

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

Lenguaje Lista de instrucciones


LD %M0 [%MW0:5:=%KW0: 5 AND 16#FF00]

Lenguaje Literal estructurado


IF %I3.2 THEN %MD0:10:= %KD5:10 OR %MD50:10 ; END_IF ; IF RE%I3.3 THEN %MW100:50:= NOT %MW0:50 ; END_IF ;

Sintaxis Operadores AND, OR, XOR NOT Operandos Tablas de palabras


Tipo Tablas de palabras indexables Palabras indexables Palabras no indexables Operando 1 %MW:L (Op1) Operandos 2 y 3 (Op2 y 3) %MW:L,%KW:L,%Xi.T:L %MW,%KW,%Xi.T Val.inm.,%IW,%QW,%SW %NW,%BLK,Expr. num.

Op1:=Op2 Operador Op3 Op1:=NOT Op2

Tablas de dobles palabras


Tipo Tablas de palabras indexables Dobles palabras indexables Dobles palabras no indexables Operando 1 %MD:L (Op1) Operandos 2 y 3 (Op2 y 3) %MD:L,%KD:L %MD,%KD,%SD Val.inm.,%ID,%QD, Expr. numrica

___________________________________________________________________________ 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)

Lenguaje Lista de instrucciones


LD %I3.2 [%MW5:=SUM(%MW32:12)]

Lenguaje Literal estructurado


%MD50:=SUM(%KD50:20)

%MD50:= SUM (%KD50:20) ;


%MF0:=SUM_ARR(%KF8:5)

%MF0:= SUM_ARR (%KF8:5) ;

Sintaxis Funcin Parmetros


Tipo Tablas de palabras indexables Palabras indexables Palabras no indexables

Res:=SUM(Tab)

Res:=SUM_ARR(Tab)

Resultado (Res) %MW %QW,%SW,%NW

Tabla (Tab) %MW:L,%KW:L,%Xi.T:L

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

Descripcin de las instrucciones avanzadas

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)

Lenguaje lista de instrucciones


LD %I3.2 [%MW5:=EQUAL(%MW20:7,%KW0:7,3)]

%MW0:=EQUAL(%MD20:7,%KD0:7)

Lenguaje Literal estructurado


%MW0:= EQUAL (%MD20:7,%KD0:7)

%MF1:=EQUAL_ARR(%MF0:5,%KF0:5)

%MW1:= EQUAL_ARR(%MF0:5,%KF0:5)

Sintaxis Funcin Res:=EQUAL(Tab1,Tab2,rango)

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

Tablas de dobles palabras Dobles palabras indexables Dobles palabras no indexables

Tablas de flotantes Palabras flotantes

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:=EQUAL(%MW30:4,%KW0:4,1) %KW0= 20 %KW1= 20 %KW2= 30 %KW3= 60 ==> %MW33 %KW3==>

%MW30= 10 %MW31= 20 %MW32= 30 %MW33= 40

%MW5= 3

___________________________________________________________________________ 2/44

Descripcin de las instrucciones avanzadas


2.7-7 Funciones de bsqueda para tablas

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)

Lenguaje lista de instrucciones


LD %I3.2 [%MW5:=FIND_EQW(%MW20:7,%KW0)]

Lenguaje Literal estructurado


IF %I1.2 THEN %MW0:=FIND_GTD(%MD20:7,%KD0) ; END_IF ; %MW1:=FIND_LTR(%MF40:5,%KF5) ; %MW9:=FIND_EQWP(%MW30:8,%KF5,%MW4);

%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)

Tablas de dobles palabras (FIND_EQD,FIND_GTD,FIND_LTD,FIND_EQDP)


Tipo Tablas de palabras indexables Palabras (dobles) indexables Palabras (dobles) no indexables %MW %QW,%SW %NW Resultado (Res) Tabla (Tab) %MD:L,%KD:L %MD,%KD Val. inm.%QD, %ID,%SD Expr. num. Valor (Val)

Nota: para el rango vase la tabla de palabras (idem FIND_EQWP)

Tablas de flotantes (FIND_EQR,FIND_GTR,FIND_LTR)


Tipo Tablas de flotantes Palabras flotantes indexables %MW Palabras flotantes no indexables %QW,%SW %NW Resultado (Res) Tabla (Tab) %MF:L,%KF:L %MF,%KF Valores inm. Expr. num. Valor (Val)

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

Descripcin de las instrucciones avanzadas


2.7-8 Funciones de bsqueda de valores mx. y mn. para tablas Se proponen 6 funciones de bsqueda: MAX_ARW: en una tabla de palabras, busca el valor mximo. MIN_ARW: en una tabla de palabras, busca el valor mnimo. MAX_ARD: en una tabla de dobles palabras, busca el valor mximo. MIN_ARD: en una tabla de dobles palabras, busca el valor mnimo. MAX_ARR: en una tabla de flotantes, busca el valor mximo MIN_ARR: en una tabla de flotantes, busca el valor mnimo.

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)

Lenguaje lista de instrucciones


LD %I3.2 [%MW5:=MAX_ARW(%MW20:7)]

Lenguaje Literal estructurado


IF %I1.2 THEN %MD0:= MIN_ARD (%MD20:7) ; END_IF ; %MF8:= MIN_ARR (%MF40:5) ;

%MF8:=MIN_ARR(%MF40:5)

Sintaxis Funcin MAX_ARW,MIN_ARW MAX_ARD,MIN_ARD MAX_ARR,MIN_ARR Parmetros


Tipo Tablas de palabras indexables Palabras indexables Palabras no indexables Tablas de dobles palabras indexables Dobles palabras indexables Dobles palabras no indexables Tablas de flotantes Dobles palabras indexables %MF %MD %QD,%SD %MF:L,%KF:L %MW %QW,%SW,%NW %MD:L,%KD:L Resultado (Res) Tabla (Tab) %MW:L,%KW:L,%Xi.T:L

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)

Lenguaje lista de instrucciones


LD %I3.2 [%MW5:=OCCUR_ARW(%MW20:7,%KW0)]

Lenguaje Literal estructurado


IF %I1.2 THEN %MW0:=OCCUR_ARD(%MD20:7,200) ; END_IF ;

Sintaxis Funcin OCCUR_ARW OCCUR_ARD OCCUR_ARR Parmetros


Tipo Tablas de palabras indexables Palabras indexables Palabras no indexables

Res:= Funcin (Tab,Val)

Resultado (Res) Tabla (Tab) %MW:L,%KW:L,%Xi.T:L %MW %QW,%SW,%NW

Valor (Val) %MW,%KW,%Xi.T Val. inm.%QW, %IW,%SW,%NW Expr. num.

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.

Tablas de flotantes Palabras (flotantes) indexables Palabras (flotantes) no indexables %QW,%SW,%NW

___________________________________________________________________________ 2/48

Descripcin de las instrucciones avanzadas

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

Estructura Lenguaje de contactos

Lenguaje lista de instrucciones


LDR %I3.2 [ROL_ARW(%KW0,%MW20:7)]

%I3.2 P %I1.2 P %I1.3 P ROR_ARR(2,%MF40:5) ROR_ARD(2,%MD20:7) ROL_ARW(%KW0,%MW20:7)

Lenguaje Literal estructurado


IF RE%I1.2 THEN ROR_ARD (2,%MD20:7) ; END_IF ; IF RE%I1.3 THEN ROR_ARR (2,%MF40:5) ; END_IF ;

___________________________________________________________________________ 2/49

B
Sintaxis

Funciones ROL_ARW,ROR_ARW Parmetros Tablas de palabras


Tipo Tablas de palabras indexables Palabras indexables Palabras no indexables %MW,%KW,%Xi.T

Funcin(n,Tab)

Nmero de posiciones (n) Tabla (Tab) %MW:L Val. inm.%QW,%IW,%SW %NW,Expr. num.

Funciones ROL_ARD,ROR_ARD Parmetros Tablas de dobles palabras


Tipo Tablas de palabras indexables Palabras indexables Palabras no indexables %MW,%KW,%Xi.T

Funcin(n,Tab)

Nmero de posiciones (n) Tabla (Tab) %MD:L Val. inm.%QW,%IW,%SW %NW,Expr. num.

Funciones ROL_ARR,ROR_ARR Parmetros Tablas de dobles palabras


Tipo Tablas de flotantes indexables Palabras indexables Palabras no indexables %MW,%KW,%Xi.T

Funcin(n,Tab)

Nmero de posiciones (n) Tabla (Tab) %MF:L Val. inm.%QW,%IW,%SW %NW,Expr. num.

Nota: si el valor de n es negativo o nulo, no se efecta ningn desplazamiento.

___________________________________________________________________________ 2/50

Descripcin de las instrucciones avanzadas


2.7-11 Funciones de ordenacin para tablas

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)

Lenguaje lista de instrucciones


LD %I3.2 [SORT_ARW(%MW20,%MW0:6)]

Lenguaje Literal estructurado


IF %I1.2 THEN SORT_ARD (-1,%MD20:6) ; END_IF ; IF %I1.3 THEN SORT_ARR (0,%MF40:8) ; END_IF ;

Sintaxis Funcin SORT_ARW SORT_ARD SORT_ARR

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)

Lenguaje lista de instrucciones


LD %I3.2 [LENGTH_ARW(tab_mot)]

Lenguaje Literal estructurado


IF %I1.2 THEN LENGTH_ARD(tab_dmot)] END_IF ; IF %I1.2 THEN LENGTH_ARX(tab_bit)] END_IF ;

Sintaxis Funcin LENGTH_ARW LENGTH_ARD LENGTH_ARR LENGTH_ARX Parmetros Tablas de palabras


Tipo Tablas (LENGTH_ARW) Tablas (LENGTH_ARD) Tablas (LENGTH_ARR) Tablas (LENGTH_ARX) Palabras indexables Palabras no indexables

Result = Funcin (Tab)

Tabla (Tab) palabra doble palabra flotante bit

Resultado (Result)

%MW %QW,%SW,%NW

Nota: los parmetros de tabla son objetos puramente simblicos.

___________________________________________________________________________ 2/52

Descripcin de las instrucciones avanzadas


2.8 Instrucciones para cadenas de caracteres

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

Lenguaje Lista de instrucciones


LD TRUE [ %MB30:12:= 'mise_en_run']

%MB30:12:= 'mise_en_run'

Lenguaje Literal estructurado


%MB30:12:='mise_en_run' ;

Ejemplo

Transferencia de la cadena de caracteres 'puesta_en_run' a la tabla de bytes de longitud 12.


%MB 30
'm'

31
'i'

32
's'

33
'e'

34
'_'

35
'e'

36
'n'

37
'_'

38
'r'

39
'u'

40
'n'

41

Sintaxis Operador Op1:=Op2

Operandos
Tipo Tablas de bytes Operando 1 %MB:L (Op1) Operando 2 (Op2) %MB:L,%KB:L Valor inmediato

___________________________________________________________________________ 2/54

Descripcin de las instrucciones avanzadas

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

Lenguaje Lista de instrucciones


%M10

LD ST

[ %MB20:12 < %MB40:12] %M10

Los bloques de comparacin se programan en el rea de prueba. Lenguaje Literal estructurado


%M10:= %MB20:12 < %MB40:12 ;

La comparacin se realiza entre corchetes despus de las instrucciones LD, AND y OR.

Ejemplo: %MB20:12 < %MB40:12 ==> con


%MB 20
'a'

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

Descripcin de las instrucciones avanzadas


Estructura Lenguaje de contactos
OPERATE

B
Lenguaje Lista de instrucciones
LD TRUE [ %MB10:7:=INT_TO_STRING(%MW20)]

%MB10:7:= INT_TO_STRING(%MW20)
OPERATE

Lenguaje Literal estructurado


%MB2:13:=DINT_TO_STRING (%MD30) ;

%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

Ejemplo: %MB2:13:= DINT_TO_STRING (%MD30) con %MD30 = - 234701084


%MB 2
'-'

3
'0'

4
'0'

5
'2'

6
'3'

7
'4'

8
'7'

9
'1'

10
'1'

11
'0'

12
'8'

13
'4'

14

Sintaxis Operador Operandos


Tipo Tablas de 6 bytes + terminador Palabras indexables Palabras no indexables Resultado (Res) %MB:7 %MW, %KW, %Xi.T %IW,%QW,%SW,%NW Val inm., Expr num. Valor

Res:= INT_TO_STRING (valor)

Operador Operandos
Tipo Tablas de 12 bytes + terminador Dobles palabras indexables Dobles palabras no indexables

Res:= DINT_TO_STRING (valor)

Resultado (Res) %MB:13

Valor

%MD, %KD %ID,%QD,%SD, Val. inm., Expr numrica

___________________________________________________________________________ 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

LD TRUE [%MW13:= STRING_TO_INT(%MB20:7)]

Ejemplo: %MW13:= STRING_TO_INT (%MB20:7)


%MB 20
'_'

con

21
'0'

22
'2'

23
'3'

24
'4'

25
'7'

26

==> resultado %MW13 = -2347 en decimal

Sintaxis Operador Operandos


Tipo Palabras indexables Palabras no indexables Tablas de 6 bytes + terminador

Res:= STRING_TO_INT (cadena)


Resultado %MW %QW,%SW,%NW %MB:7,%KB:7, Val. inm. (Res) Cadena

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

Res:= STRING_TO_DINT (cadena)


Resultado %MD %QD,%SD %MB:13,%KB:13, Val. inm. (Res) Cadena

___________________________________________________________________________ 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.

Descripcin de las instrucciones avanzadas


2.8-7 Conversin Flotante ---> ASCII

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)]

Lenguaje Literal estructurado


%MB20:14:= REAL_TO_STRING (%MF30) ;

Ejemplo:

%MB20:14:= REAL_TO_STRING (%MF30)

con %MF30 = - 3.234718e+26

==> resultado

Sintaxis Operador Operandos


Tipo Tablas de 13 bytes + terminador Palabras indexables Palabras no indexables Resultado %MB:14 %MF, %KF Val. inm., Expr. numrica (Res) Valor

Res:= REAL_TO_STRING (valor)

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)]

Lenguaje Literal estructurado


%MF18:= STRING_TO_REAL (%MB20:13) ;

Ejemplo: con

%MF18:= STRING_TO_REAL (%MB20:13)

==> resultado Sintaxis Operador Operandos


Tipo Palabras indexables Tablas de 13 bytes

%MF18 = - 3.234718e+26

Res:= STRING_TO_REAL (cadena)

Resultado %MF

(Res)

Cadena %MB:13, %KB:13 valor inmediato

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

Descripcin de las instrucciones avanzadas

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

Lenguaje Lista de instrucciones


LD TRUE [ %MB30:14:= CONCAT (%MB4:6, %MB14:9)]

%MB30:14:=CONCAT(%MB4:6,% MB14:9)

Lenguaje Literal estructurado


%MB30:14:= CONCAT (%MB4:6, %MB14:9) ;

Ejemplo: %MB30:14:= CONCAT (%MB4:6, %MB14:9)


%MB 4
'i'

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

Sintaxis Operador Operandos


Tipo Tablas de bytes Resultado (Res) %MB:L Cadenas 1 y 2 %MB:L,%KB:L, Val. inm.

Res:=CONCAT (cadena1, cadena2)

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

Lenguaje Lista de instrucciones


LD TRUE [%MB14: 9:= DELETE (%MB30:14, %MW2, %MW4)]

%MB14:9:=DELETE(%MB30:14,% MW2,%MW4)

Lenguaje Literal estructurado


%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

Sintaxis Operador Operandos


Tipo Tablas de bytes Palabras indexables Palabras no indexables Resultado (Res) %MB:L Cadena %MB:L,%KB:L Val. inmediato %MW, %KW %IW,%QW,%SW,%NW Valor inmediato Expr. numrica Longitud (long) Posicin (pos)

Res:=DELETE (cadena, long, pos)

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.

Descripcin de las instrucciones avanzadas

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)

Lenguaje Literal estructurado


%MB2:14:= INSERT (%MB20:9, %MB30:6, %MW40) ;

Ejemplo:%MB2:14:= INSERT (%MB20:9, %MB30:6, %MW40) con %MW40:= posicin 2


%MB 20
'i'

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

Sintaxis Operador Operandos


Tipo Tablas de bytes Palabras indexables Palabras no indexables Resultado %MB:L Valor inm. (Res) Cadenas 1 y 2 %MB:L,%KB:L %MW, %KW, %Xi.T %IW,%QW,%SW,%NW Valor inmediato, Expr. numrica Posicin (Pos)

Res:=INSERT (cadena1, cadena2, pos)

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

Descripcin de las instrucciones avanzadas

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

Lenguaje Lista de instrucciones


LD TRUE [ %MB2:13:= REPLACE (%MB20:12, %MB30:9, %MW40, %MW41)]

%MB2: 13:=REPLACE(%MB20:12,% MB30:9, %MW40, %MW41)

Lenguaje Literal estructurado


%MB2:13:= REPLACE (%MB20:12, %MB30:9, %MW40, %MW41) ;

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

Sintaxis Operador Operandos


Tipo Tablas de bytes Palabras indexables Palabras no indexables Resultado (Res) %MB:L Cadenas 1 y 2 %MB:L,%KB:L Valor inm. %MW, %KW, %Xi.T %IW,%QW,%SW,%NW Valor inmediato, Expr. numrica Longitud (long) Posicin (pos)

Res:=REPLACE(cadena1, cadena2, long., pos.)

___________________________________________________________________________ 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

Descripcin de las instrucciones avanzadas


2.8-13 Extraccin de una subcadena de caracteres

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

Lenguaje Lista de instrucciones


LD TRUE [%MB14: 7:= MID (%MB30:13, %MW2, %MW4)]

%MB14:7:=MID(%MB30:13,% MW2,%MW4)

Lenguaje Literal estructurado


%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

Sintaxis Operador Operandos


Tipo Tablas de bytes Palabras indexables Palabras no indexables Resultado %MB:L Valor inm. (Res) Cadena %MB:L,%KB:L %MW,%KW,%Xi.T %IW,%QW,%SW,%NW Valor inmediato, Expr. numrica Longitud (long) Posicin (pos)

Res:=MID (cadena, long, pos)

___________________________________________________________________________ 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

Descripcin de las instrucciones avanzadas


2.8-14 Extraccin de caracteres

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

Lenguaje Lista de instrucciones


LD TRUE [%MB10: 10:=LEFT (%MB30:13,%MW2)]

Lenguaje Literal estructurado


%MB10:10:= LEFT (%MB30:13, MW2) ;

Ejemplo: %MB10: 10:= LEFT (%MB30:13, %MW2) con %MW2 = 8 (longitud)


%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 10
'm'

11
'i'

12
's'

13
'e'

14
'_'

15
'e'

16
'n'

17
'_'

18

19

Sintaxis Operador Res:=LEFT (cadena, long)

Res:=RIGHT (cadena, long)

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

Descripcin de las instrucciones avanzadas


2.8-15 Comparacin de dos cadenas de caracteres

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

Lenguaje Lista de instrucciones


LD TRUE [%MW2:= EQUAL_STR (%MB18:14, %MB50:14)]

Lenguaje Literal estructurado


%MW2:= EQUAL_STR (%MB18:14, %MB50:14) ;

Ejemplo: %MW2:= EQUAL_STR (%MB18:14, %MB50:14) con


%MB 18
'a'

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

Sintaxis Operador Operandos


Tipo Palabras indexables Palabras no indexables Tablas de bytes Resultado %MW %QW,%SW,%NW. %MB:L,%KB:L Valor inmediato (Res) Cadenas 1 y 2

Res:=EQUAL_STR (cadena1, cadena2)

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

Lenguaje Lista de instrucciones


LD TRUE [ %MW2:= FIND (%MB18:14, %MB50:4)]

%MW2:= FIND(%MB18:14, %MB 50:4)

Lenguaje Literal estructurado


%MW2:= FIND (%MB18:14, %MB50:4) ;

Ejemplo: %MW2:= FIND (%MB18:14, %MB50:4) con


%MB 18
'a'

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

Res:=FIND (cadena1, cadena2)

___________________________________________________________________________ 2/72

Descripcin de las instrucciones avanzadas


2.8-17 Longitud de una cadena de caracteres

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

Lenguaje Lista de instrucciones


LD TRUE [%MW2:= LEN (%MB20:14)]

%MW2:= LEN (%MB20:14)

Lenguaje Literal estructurado


%MW2:= LEN (%MB20:14) ;

Ejemplo: %MW2:= LEN (%MB20:14) con


%MB 20
'a'

21
'b'

22
'c'

23
'd'

24
'e'

25
'f'

26
'g'

27

28
'n'

29
'o'

30
'p'

31
'r'

==> %MW2 = 7 Sintaxis Operador Operandos


Tipo Palabras indexables Palabras no indexables Tablas de bytes Resultado (Res) %MW %QW,%SW,%NW. %MB:L, %KB:L, Valor inmediato Cadena

Res:= LEN (cadena)

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

Instrucciones de gestin de tiempo: fechas, horas, duraciones

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

Slo se autorizan los valores comprendidos en el intervalo [1990-01-01, 2099-1231].

___________________________________________________________________________ 2/74

Descripcin de las instrucciones avanzadas


Formato Hora del da (tipo TOD)

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

Slo se autorizan los valores comprendidos en el intervalo [00:00:00, 23:59:59] .

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

El valor se codifica en BCD en 64 bits (una tabla de palabras de longitud 4):


64 48 40 32 24 16 8 0

Ao Ejemplo:

Mes

Da

Ho

Min

Seg

expresado en hexadecimal

1984h

06h

25h

23h

12h

34h

Slo se autorizan los valores comprendidos en el intervalo [1990-01-01-00:00:00, 2099-12-31-23:59:59].

___________________________________________________________________________ 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

Descripcin de las instrucciones avanzadas


2.9-3 Funcin reloj-calendario

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

Fecha de inicio Fecha de fin Da de la semana

DBEG DEND WEEK

Hora de inicio

HBEG

Hora de fin

HEND

Estructura Lenguaje de contactos

Lenguaje Lista de instrucciones


LD TRUE [SCHEDULE (%KW0,%KW1,%KW2,%KD3, %KD5,%M0)]

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

Operandos SCHEDULE (DBEG, DEND, WEEK, HBEG, HEND, OUT)


Tipo Palabras indexables Palabras no indexables DBEG,DEND,WEEK %MW,%KW,%Xi.T %IW,%QW,%SW,%NW Valor inmediato Expr. numrica %MD,%KD %ID,%QD Valor inmediato Expr. numrica %I,%Q, %M, %S, %BLK ,%:Xk, %X HBEG,HEND OUT

Dobles palabras indexables Dobles palabras no indexables Bits

___________________________________________________________________________ 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.

Descripcin de las instrucciones avanzadas


2.9-4 Lectura de la fecha sistema

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

Lenguaje Lista de instrucciones


LD %M6 [RRTC (%MW2:4)]

RRTC (%MW2:4)

Lenguaje Literal estructurado


IF %M6 THEN RRTC (%MW2:4) ; END_IF ;

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

Lenguaje Lista de instrucciones


LD %M7 [PTC (%MW4:5)]

Lenguaje Literal estructurado


IF %M7 THEN PTC (%MW4:5) ; END_IF ;

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

Descripcin de las instrucciones avanzadas

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

Lenguaje Lista de instrucciones


LD %M7 [%MW5:= DAY_OF_WEEK()]

Lenguaje Literal estructurado


IF %M7 THEN %MW5:= DAY_OF_WEEK () ; END_IF ;

Ejemplo: %MW5:= DAY_OF_WEEK()

%MW5:= 4 corresponde a jueves

Sintaxis Operador Operando


Tipo Palabras indexables Palabras no indexables Resultado (Res) %MW %QW, %SW, %NW

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

SUB_DT () = quita una duracin

Lenguaje Lista de instrucciones


LD %M7 [RRTC (%MW2:4)] [%MD8:= 906] [%MW2:4:= ADD_DT(%MW2:4, %MD8)] [WRTC (%MW2:4)]

RRTC (%MW2:4) %MD8:=906 %MW2:4:=ADD_DT(%MW2:4,%MD8) WRTC (%MW2:4)


OPERATE OPERATE OPERATE

Lenguaje Literal estructurado


IF %M7 THEN RRTC (%MW2:4) ; %MD8:= 906 ; %MW2:4:= ADD_DT (%MW2:4, %MD8) ; WRTC (%MW2:4) ; END_IF ;

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

Descripcin de las instrucciones avanzadas


Operandos
Tipo Tablas de 4 palabras en formato fecha y hora Dobles palabras indexables Dobles palabras no indexables Resultado (Res) In1 (fecha origen) %MW:4 %MW4:4, %KW:4 %MD,%KD %ID,%QD Valor inmediato Expr. numrica

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

SUB_TOD () = quita una duracin Lenguaje Lista de instrucciones


LD %M7 [%MD8:= 906] [%MD2:= ADD_TOD (%MD2, %MD8)]

___________________________________________________________________________ 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)

Sintaxis Operadores Res:=ADD_TOD (In1, In2) Res:=SUB_TOD (In1, In2) Operandos


Tipo Dobles palabras indexables Dobles palabras no indexables Resultado (Res) %MD %QD In1(hora de origen) y In2 (duracin) %MD,%KD %ID,%QD Valor inmediato, Expr. numrica

Res e In1 utilizan el formato TOD, In2 el formato 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


Se cambia de da, si el resultado de la operacin se encuentra fuera del intervalo de valores autorizados. En este caso, el bit sistema %S17 se pone a 1 y el valor del resultado se interpreta con un mdulo 24:00:00. Si el parmetro de entrada "hora del da" no puede interpretarse en el formato TOD, el bit sistema %S17 se pone a 1 y el resultado es igual a 00:00:00 .

___________________________________________________________________________ 2/84

Descripcin de las instrucciones avanzadas


2.9-10 Desviacin entre dos fechas (sin hora)

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

Lenguaje Lista de instrucciones


LD %M7 [%MD10:= DELTA_D (%MD2, %MD4)]

Lenguaje Literal estructurado


IF %M7 THEN %MD10:= DELTA_D (%MD2, %MD4) ; END_IF ;

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)

Sintaxis Operador Operandos


Tipo Dobles palabras indexables Dobles palabras no indexables Resultado (Res) %MD %QD Fechas 1 y 2 %MD,%KD %ID,%QD Valor inmediato, Expr. numrica

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

Lenguaje Lista de instrucciones


LD TRUE [%MD10:= DELTA_DT (%MW2:4, %MW6:4)]

%MD10:= DELTA_D T(%MW2:4,%MW6:4)

Lenguaje Literal estructurado


%MD10:= DELTA_DT (%MW2:4, %MW6:4) ;

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)

Sintaxis Operador Operandos


Tipo Dobles palabras indexables Dobles palabras noindexables Tablas de 4 palabras en formato DT Resultado (Res) %MD %QD %MW:4, %KW:4 Fechas 1 y 2

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

Descripcin de las instrucciones avanzadas


2.9-12 Desviacin entre dos horas

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

Lenguaje Lista de instrucciones


LD TRUE [%MD10:= DELTA_TOD (%MD2, %MD4)]

%MD10:= DELTA_TOD (%MD2,%MD4 )

Lenguaje Literal estructurado


%MD10:= DELTA_TOD (%MD2, %MD4) ;

Ejemplo:

%MD10:= DELTA_TOD (%MD2, %MD4 ) %MD2:=Hora1 (ej.: 02:30:00 ) %MD4:= Hora2 (ej.: 02:41:00) ==> %MD10 = 6600 (==> desviacin = 11 minutos)

Sintaxis Operador Operandos


Tipo Dobles palabras indexables Dobles palabras no indexables Resultado (Res) %MD %QD Horas 1 y 2 %MD,%KD %ID,%QD Valor inmediato, Expr. numrica

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

Lenguaje Lista de instrucciones


LD TRUE [%MB2:11:= DATE_TO_STRING (%MD40)]

Lenguaje Literal estructurado


%MB2:11:= DATE_TO_STRING (%MD40) ;

Ejemplo: ==> %MB Sintaxis Operador Operandos


Tipo

%MB2:11:= DATE_TO_STRING (%MD40) %MD40:= DATE (ej.:1998-12-27 )


2
'1'

3
'9'

4
'9'

5
'8'

6
'-'

7
'1'

8
'2'

9
'-'

10
'2'

11
'7'

12

Res:=DATE_TO_STRING(Fecha)

Resultado (Res) %MB:11

Fecha %MD,%KD %ID,%QD Valor inmediato, Expr. numrica

Tablas de 11 bytes Dobles palabras indexables Dobles palabras no indexables

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.

%MB2:8:= DATE_TO_STRING (%MD40) ==>


%MB 2
'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 .

%MB2:12:= DATE_TO_STRING (%MD40) ==>


%MB 2
'1'

3
'9'

4
'9'

5
'8'

6
'-'

7
'1'

8
'2'

9
'-'

10
'2'

11
'7'

12

13

___________________________________________________________________________ 2/88

Descripcin de las instrucciones avanzadas

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

Lenguaje Lista de instrucciones


LD TRUE [%MB2:20:= DT_TO_STRING (%MW50:4)]

%MB2:20:= DT_TO_STRING(%MW50:4 )

Lenguaje Literal estructurado


%MB2:20:= DT_TO_STRING (%MW50:4) ;

Ejemplo:
%MB 2
'1'

%MB2:20:= DT_TO_STRING (%MW50:4) %MW50:4:= Fecha y hora (tipo DT) (ej.:1998-12-27-23:14:37)


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

Sintaxis Operador Operandos


Tipo Tablas de 20 bytes Tablas de 4 palabras en formato DT Resultado (Res) %MB:20 %MW:4, %KW:4 Fecha

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.

%MB2:8:= DT_TO_STRING (%MW50:4)


%MB 2
'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 .

%MB2:21:= DT_TO_STRING (%MW50:4)


%MB 2
'1'

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

Lenguaje Lista de instrucciones


LD TRUE [%MB2:15:=TIME_TO_STRING (%MD40)]

%MB2:15:=TIME_TO_STRING(%MD40)

Lenguaje Literal estructurado


%MB2:15:= TIME_TO_STRING (%MD40) ;

Ejemplo: %MB2:15:= TIME_TO_STRING (%MD40) con %MD40:= 27556330.3 (formato TIME)


%MB 2
'0'

3
'0'

4
'7'

5
'6'

6
'5'

7
'4'

8
':'

9
'3'

10
'2'

11
':'

12
'1'

13
'0'

14
'.'

15
'3'

16

Sintaxis Operador Operandos


Tipo Tablas de 15 bytes Dobles palabras indexables Dobles palabras no indexables Resultado (Res) %MB:15 %MD,%KD %ID,%QD Valor inmediato, Expr. numrica Duracin

Res:=TIME_TO_STRING(Duracin)

Duracin: utiliza el formato TIME.


Nota Si la cadena de salida es demasiado corta, se efecta un truncamiento y el bit sistema %S15 se pone a 1.

%MB2:8:= TIME_TO_STRING (%MD40) ==> %MB


2
'0'

3
'0'

4
'7'

5
'6'

6
'5'

7
'4'

8
':'

9
'3'

==> %S15 = 1

___________________________________________________________________________ 2/90

Descripcin de las instrucciones avanzadas

B
Si la cadena de salida es demasiado larga, la cadena se completa con caracteres de tipo terminador .

%MB2:16:= TIME_TO_STRING (%MD40) ==>


%MB 2
'0'

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

Lenguaje Lista de instrucciones


LD TRUE [%MB2:9:= TOD_TO_STRING (%MD40)]

%MB2:9:=TOD_TO_STRING(%MD40)

Lenguaje Literal estructurado


%MB2:9:= TOD_TO_STRING (%MD40) ;

Ejemplo:

%MB2:9:= TOD_TO_STRING (%MD40)

con %MD40:= 23:12:27 (formato TOD) ==>


%MB 2
'2'

3
'3'

4
':'

5
'1'

6
'2'

7
':'

8
'2'

9
'7'

10

Sintaxis Operador Operandos


Tipo Tablas de 9 bytes Dobles palabras indexables Dobles palabras no indexables Resultado (Res) %MB:9 %MD,%KD %ID,%QD Valor inmediato, Expr. numrica Hora

Res:=TOD_TO_STRING(hora)

Hora: utiliza el formato TOD. ___________________________________________________________________________ 2/91

B
Nota Si la cadena de salida es demasiado corta, se efecta un truncamiento y el bit sistema %S15 se pone a 1.

%MB2:8:= TOD_TO_STRING (%MD40) ==> %MB


2
'2'

(con %MD40:= 23:12:27)


8
'2'

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 .

%MB2:10:= TOD_TO_STRING (%MD40) (con %MD40:= 23:12:27) ==> %MB 2 3 4 5 6 7 8 9 10 11


'2' '3' ':' '1' '2' ':' '2' '7'

___________________________________________________________________________ 2/92

Descripcin de las instrucciones avanzadas


2.9-17 Conversin de una duracin en HHHH:MM:SS

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

Lenguaje Lista de instrucciones


LD TRUE [%MD100:= TRANS_TIME (%MD2)]

Lenguaje Literal estructurado


%MD100:= TRANS_TIME (%MD2) ;

Ejemplo:

%MD100:= TRANS_TIME (%MD2) con %MD2:= 86324873 dcimos de segundo 31 2397 16 54 8 47 0

==> MD2

valores expresados en hexadecimal Sintaxis Operador Operandos


Tipo Dobles palabras indexables Dobles palabras no indexables Resultado (Res) %MD %QD Duracin %MD,%KD %ID,%QD Valor inmediato, Expr. numrica

Res:=TRANS_TIME(duracin)

Res: utiliza el formato HMS. Duracin: utiliza el formato TIME.


Notas El principio del redondeo se aplicar al parmetro "duracin" (expresado en 1/10 de segundo) para permitir la conversin (precisin de un segundo): - sssssssss.0 a sssssssss.4 redondeado a sssssssss.0 - sssssssss.5 a sssssssss.9 redondeado a sssssssss.0 + 1.0 La duracin mxima convertida puede alcanzar 10000 horas. Esto significa que si el valor de la duracin (TIME) definido por el parmetro es superior o igual a 360000000, sta no puede convertirse. El bit sistema %S15 se pone a 1 y el resultado es igual a 0000:00:00.

___________________________________________________________________________ 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.

Estructura Lenguaje de contactos


OPERATE

Lenguaje Lista de instrucciones


LD TRUE [%M10:5:= COPY_BIT (%M20:5)]

%M10:5:=COPY_BIT(%M20:5)

Lenguaje Literal estructurado


%M10:5:= COPY_BIT (%M20:5) ;

Sintaxis Operador Operandos


Tipo Tabla de bits Resultado (Res) %M:L, %Q:L, %I:L Tab (tabla) %M:L, %Q:L, %I:L, %Xi:L

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

Descripcin de las instrucciones avanzadas


2.10-2 Instrucciones lgicas para tablas de bits

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.

Estructura Lenguaje de contactos


OPERATE

Lenguaje Lista de instrucciones


LD TRUE [%M10:7:= AND_ARX (%M20:7, %M30:7)] LD TRUE [%M50:10:= NOT_ARX (%M60:10)]

%M10:7:= AND_ARX(%M20:7, %M30:7)


OPERATE

%M50:10:=NOT_ARX(%M60:10)

Lenguaje Literal estructurado


%M10:7:= AND_ARX (%M20:7, %M30:7) ; %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.

Estructura Lenguaje de contactos


OPERATE

Lenguaje Lista de instrucciones


LD TRUE [%MW10:7:= BIT_W (%M20:29, 3, 22, 2)] LD TRUE [%MD10:4:= BIT_D (%M20:29, 3, 22, 1)]

%MW10:7:= BIT_W(%M20:29, 3, 22, 2)


OPERATE

%MD10:4:=BIT_D(%M20:29, 3, 22, 1)

Lenguaje Literal estructurado


%MW10:7:= BIT_W (%M20:29, 3, 22, 2) ; %MD10:4:= BIT_D (%M20:29, 3, 22, 1) ;

Ejemplo: %MW10:7:= BIT_W (%M20:29, 3, 22, 2) ;


%M20:29 fila 0 %MW10:7 bit 15 fila 0 fila 2 Nmero de bits (nbit): 16 + 6 bit 0 fila 3 (brow)

___________________________________________________________________________ 2/96

Descripcin de las instrucciones avanzadas


Sintaxis Operador Res:= BIT_W (Tab, brow, nbit, wrow) Res:= BIT_D (Tab, brow, nbit, drow)

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

Lenguaje Lista de instrucciones


LD TRUE [%M20:36:= W_BIT (%MW10:7, 2, 2, 3)] LD TRUE [%M20:36:= D_BIT (%MD10:4, 1, 1, 3)]

%M20:36:=W_BIT(%MW10:7,2,2,3)
OPERATE

%M20:36:=D_BIT(%MD10:4,1,1,3)

Lenguaje Literal estructurado


%M20:36:= W_BIT (%MW10:7, 2, 2, 3) ; %M20:36:= D_BIT (%MD10:4, 1, 1, 3) ;

Ejemplo: %M20:36:= W_BIT (%MW10:7, 2, 2, 3) ;


%M20:36 %MW10:7 bit 15 fila 0 (wrow) fila 2 bit 0 fila 0 fila 3 (brow) fila 19

___________________________________________________________________________ 2/98

Descripcin de las instrucciones avanzadas


Sintaxis Operador Res:= W_BIT (Tab, wrow, nwd, brow) Res:= D_BIT (Tab, drow, nwd, brow)

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

TRUE TRUE TRUE

[WSHL_RBIT(%MW20,%MW30,%MW21,%MW10)]

[WSHRZ_C(%MW20,%MW30,%MW21,%MW10)]

[DSHR_RBIT(%MD30,%MW40,%MD20,%MD10)]

Lenguaje Literal estructurado


WSHL_RBIT (%MW20,%MW30,%MW21,%MW10) ; WSHRZ_C (%MW20,%MW30,%MW21,%MW10) ; DSHR_RBIT (%MD30,%MW40,%MD20,%MD10) ;

___________________________________________________________________________ 2/100

Descripcin de las instrucciones avanzadas


Ejemplo: WSHL_RBIT(%MW20,%MW30,%MW21,%MW10)
rest = %MW10 0000 0000 0000 0001 A = %MW20 0001 1111 0110 1000

B
con %MW30 = 4

Copia de bits desplazados


res = %MW21 1111 0110 1000 0000

Relleno de bits con ceros

WSHRZ_C(%MW20,%MW30,%MW21,%MW10)
a = %MW20 1000 0000 1111 0001 rest = %MW10 0001 0000 0000 0000

con %MW30 = 4

Copia de bits desplazados


res = %MW21 0000 1000 0000 1111

Relleno de bits con ceros

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

1000 0000 1111 0001 0000 0000 11 00 1111

Copia de bits desplazados


res = %MD20

Conservacin del signo 1 111 11 10 0000 0011 PF


1100 0100 0000 0011

Pf

Sintaxis Operador

Propagacin del bit de signo en los bits liberados por el desplazamiento

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

Descripcin de las instrucciones avanzadas


2.11-2 Contaje/descontaje con indicacin de rebasamiento

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

Lenguaje Lista de instrucciones


LD TRUE [SCOUNT(%M9,%MW10,%M11,%M12,%MW11, %MW12,%M16,%M10,%MW15,%MW20)]

SCOUNT (%M9,%MW10,%M11,%M12,%MW11, %MW12,%M16,%M10,%MW15,%MW20)

Lenguaje Literal estructurado


SCOUNT(%M9,%MW10,%M11,%M12,%MW11,%MW12,%M16,%M10,%MW15,%MW20) ;

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

Qmin : %M16 cv = %MW15 5 4 5 65 6 7 5

___________________________________________________________________________ 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

Descripcin de las instrucciones avanzadas


2.11-3 Desplazamientos circulares

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)

Lenguaje Lista de instrucciones


LD %M0 [%MW0:= ROLW(%MW10,%MW5)] LD %I3.2 [%MD10:= RORD(%MD100,%MW5)]

%I3.2
%MD8:=RORD(%MD50,%MW5)

Lenguaje Literal estructurado


IF %M0 THEN %MW0:= ROLW(%MW10,%MW5) ; END_IF ; IF %I3.2 THEN %MD10:= RORD(%MD100,%MW5) ; END_IF ;

___________________________________________________________________________ 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)

Operandos ROLD, RORD


Tipo Palabras non indexables Operando 1 %QD,%SD, (Op1) Operando 2 (Op2) Nmero de posicin(n) %MD,%KD Val.inm.,%ID,%QD, %SD,Expr. num. %MW,%KW,%Xi.T Val.inm.,%IW,%QW, %SW,%NW,%BLK Expr. num.

Palabras doble indexables %MD

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

Descripcin de las instrucciones avanzadas


2.12 Funciones de temporizacin
2.12-1 Generalidades

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.

Sintaxis Operador FTON (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 transcurrelatemporizacin. Doble palabra para memorizacin de los estados internos. Asociar a esta doble palabra una variable de la aplicacinexclusivamentereservadaparaesteefecto.

Salida "Temporizador" Valoractual Variabledeclculo

Q ET PRIV

(1) la modificacin de esta palabra surte efecto durante la temporizacin.

___________________________________________________________________________ 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

Lenguaje Lista de instrucciones


LD %I1.2 [FTON(%I3.0,1000,%Q4.0,%MW2,%MD8)]

Lenguaje Literal estructurado


IF %I1.2 THEN FTON (%I3.0,1000,%Q4.0,%MW2,%MD8) ; END_IF ;

Operandos FTON (EN, PT, Q, ET, PRIV)


Tipo Palabras indexables Palabras no indexables Dobles palabras indexables Bits %I,%Q, %M, %S %BLK,%:Xk,%X %I,%Q, %M, %S,%:Xk,%X EN PT %MW,%KW,%Xi.T %IW,%QW,%SW Val. inm., Expr. num.,%NW Q ET %MW %IW,%QW PRIV

%MD

___________________________________________________________________________ 2/108

Descripcin de las instrucciones avanzadas


2.12-3 Funcin de temporizacin de desconexin FTOF

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.

Salida "Temporizador" Valor actual Variabledeclculo

Q ET PRIV

(1) la modificacin de esta palabra surte efecto durante la temporizacin.

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

Lenguaje Literal estructurado


IF %I1.2 THEN FTOF (%I3.0,1000,%Q4.0,%MW2,%MD8) END_IF ;

OPERATE FTOF (%I3.0,1000,%Q4.0,%MW2,%MD8)

Operandos vase funcin FTON (captulo anterior). ___________________________________________________________________________ 2/109

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.

Salida "Temporizador" Valor actual Variabledeclculo

Q ET PRIV

(1) la modificacin de esta palabra surte efecto durante la temporizacin.

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

Lenguaje Literal estructurado


IF %I1.2 THEN FTP (%I3.0,1000,%Q4.0,%MW2,%MD8) ; END_IF ;

Operandos vase funcin FTON (captulo anterior). ___________________________________________________________________________ 2/110

Descripcin de las instrucciones avanzadas


2.12-5 Funcin generador de seal rectangular FPULSOR

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.

FPULSOR(EN, TON, TOFF, Q, ET, PRIV)

Valor de preseleccin (intervalo a 0)

TOFF

Salida seal rectangular Valor actual Variabledeclculo

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

Estructura Lenguaje de contactos


OPERATE PULSOR (%I3.0,500,200,%Q4.0,%MW2,%MD8)

Lenguaje Lista de instrucciones


LD True [FPULSOR %I3.0,500,200,%Q4.0,%MW2, %MD8)]

Lenguaje Literal estructurado


IF %I1.2 THEN FPULSOR (%I3.0,500,200,%Q4.0,%MW2,%MD8) ; END_IF ;

Operandos FPULSOR (EN, TON, TOFF, Q, ET, PRIV)


Tipo Palabras indexables Palabras no indexables Dobles palabras indexables Bits %BLK,%:Xk,%X %I,%Q, %M, %S %S,%:Xk,%X %I,%Q, %M, EN TON,TOFF %MW,%KW,%Xi.T %IW,%QW,%SW Val. inm. Expr. num.,%NW Q ET %MW %IW,%QW PRIV

%MD

___________________________________________________________________________ 2/112

Descripcin de las instrucciones avanzadas


2.13 Funciones de archivado de datos
2.13-1 Generalidades

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 232P TSX MRP 264P

RAM/32 K16 RAM/64 K16

TSX MRP 2128P RAM/128 K16 TSX MRP 3256P RAM/256 K16 TSX MFP 232P Flash Eprom/ 32 K16 Flash Eprom/ 64K16

TSX MFP 264P

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

100 100 100 100

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

Estructura Lenguaje de contactos


%I1,3
P OPERATE SET_PCMCIA(%MD0, %MW5, %MW10,%MW2)

Lenguaje lista de instrucciones


LDR %I1.3 [SET_PCMCIA (%MD0, %MW5, %MW10,%MW2)]

Lenguaje literal
IF RE %I1.3 THEN SET_PCMCIA (%MD0, %MW5, %MW10,%MW2); END_IF;

___________________________________________________________________________ 2/114

Descripcin de las instrucciones avanzadas

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

SET_PCMCIA (direccin,n_palabras,valor, estado)

Palabras dobles no indexables %QD,%SD

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.

Memoria RAM del autmata

Tarjeta de memoria del usuario

%MW40 %MW69

WRITE_PCMCIA 1500 1529

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

Estructura Lenguaje de contactos


%I1,3
P OPERATE WRITE_PCMCIA(%MD0, %MW5, %MW20,%MW2)

Lenguaje lista de instrucciones


LDR %I1.3 [WRITE_PCMCIA (%MD0, %MW5, %MW20,%MW2)]

Lenguaje literal
IF RE %I1.3 THEN WRITE_PCMCIA (%MD0, %MW5, %MW20,%MW2); END_IF;

___________________________________________________________________________ 2/116

Descripcin de las instrucciones avanzadas

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

WRITE_PCMCIA (dir_des, n_palabras, origen, estado)

Palabras dobles no indexables %QD,%SD

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

REDIR_PCMCIA 1500 1529

%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

Estructura Lenguaje de contactos


%I1,4
P OPERATE READ_PCMCIA(%MD0, %MW5, %MW20,%MW2)

Lenguaje lista de instrucciones


LDR %I1.4 [REDIR_PCMCIA (%MD0, %MW5, %MW20,%MW2)]

Lenguaje literal
IF RE %I1.4 THEN REDIR_PCMCIA (%MD0, %MW5, %MW20,%MW2); END_IF;

___________________________________________________________________________ 2/118

Descripcin de las instrucciones avanzadas

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

REDIR_PCMCIA (dir_origen, n_palabras,dest, estado)

Palabras dobles no indexables %QD,%SD

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

Bits y palabras del sistema Captulo


3.1
Bit %S0 %S1 %S4,%S5, %S6,%S7 %S8 (2) %S9 %S10 %S11 %S13 %S15 %S16 %S17 %S18 %S19 %S20 %S21 %S22 %S23 %S24 (3) %S26 %S30 %S31 %S38 %S39

33 B

3 Bits y palabras del sistema

Bits del sistema


Funcin 1 = arranque en fro (reanudacin de la alimentacin con prdida de datos) 1 = rearranque en caliente (reanudacin de la alimentacin sin prdida de datos) Base de tiempo 10 ms, 100 ms, 1 s, 1 min Prueba del cableado (utilizable en un autmata TSX 37 no configurado) 1 = forzado al retorno de las salidas autmata 0 = falla entradas/salidas 1 = rebasamiento watchdog 1 = primer ciclo despus de la puesta a RUN 1 = falla cadena de caracteres 0 = falla E/S tarea 1 = rebasamiento de capacidad 1 = rebasamiento o error aritmtico 1 = rebasamiento de perodo tarea 1 = rebasamiento de ndice 1 = inicializacin del Grafcet 1 = puesta a cero del Grafcet 1 = preposicionamiento e inmovilizacin del Grafcet 1 = puesta a 0 de macroetapas en funcin de %SW22 a25 1 = rebasamiento de tablas (etapas/transiciones) 1 = activacin de la tarea maestra 1 = activacin de la tarea rpida 1 = validacin de sucesos 1 = saturacin en el tratamiento de sucesos Est. inicial Gestin(1) 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 S o U->S S o U->S S U U S S S S->U S->U S->U S->U S->U S->U S o U->S U->S U U->S S U U U S->U S U U

3.1-1 Lista de bits del sistema

%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

(1) (2) y (3) vase pgina siguiente.

___________________________________________________________________________ 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

Bits y palabras del sistema

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

%S4 %S5 %S6 %S7 %S8

Bases de tiempo 10 ms 100 ms 1s 1 min Prueba del cableado

%S9

Puesta a la posicin de retorno de las salidas en todos los bus Falla

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

Primer ciclo Falla cadena de caracteres Falla de E/S tarea

%S16

%S17

Bit salido en desplazamiento o informe aritmtico

%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

Bits y palabras del sistema


Bits sistema %S20 Funcin Designacin

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

Puesta a cero del Grafcet Inmovilizacin del Grafcet

%S23

%S24

Puesta a cero de las etapas

%S26

Rebasamiento de tablas (etapas/ transiciones)

%S30

Activacin/ desactivacin tarea maestra Activacin tarea rpida Validacin/ inhibicin sucesos Saturacin en el tratamiento de sucesos

%S31 %S38

%S39

___________________________________________________________________________ 3/5

Bits sistema % S40 a %S47 %S49

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

Actualizacin de la fecha y hora mediante las palabras %SW50 a 53

%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

Bits y palabras del sistema


Bits Sist. Funcin %S69 Visualizacin datos de usuario en indicadores de autmata Actualizacin de los datos en el bus AS-i o enlace TSX Nano Paso al modo protegido en el bus AS-i Designacin

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

%S94 %S95 %S96

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

Bits y palabras del sistema


3.2 Palabras del sistema

3.2-1 Lista de palabras del sistema


Palabra %SW0 %SW1 %SW8 %SW9 %SW10 %SW11 %SW12 %SW13 %SW17 %SD18 %SW20 %SW21 %SW22 a %SW25 (2) %SW30 %SW31 %SW32 %SW33 %SW34 %SW35 %SW48 %SW49 (3) %SW50 (3) %SW51 (3) %SW52 (3) %SW53 (3) %SW54 ((3) %SW55 (3) %SW56 (3) %SW57 (3) %SW58 %SW59 %SW60 a %SW66 %SW67 %SW68 %SW69 Funcin Gestin(1) Valor del perodo de la tarea maestra (en func. peridico) U Valor del perodo de la tarea rpida (en func. peridico) U Control de la adquisicin de las entradas de cada tarea U Control de la actualizacin de las salidas de cada tarea U Primer ciclo despus del arranque en fro S Duracin del watchdog S Direccin UNI_TELWAY conector terminal S Direccin principal de la estacin S Estado de falla en la operacin flotante SyU Contador de tiempo absoluto SyU Nmero de etapas activas, por activar y desactivar S Nmero de transiciones vlidas, por validar e invalidar S Tabla de 4 palabras que permite designar las macroetapas U que se deben poner a 1 del bit %S24. Tiempo de ejecucin del ltimo ciclo de la tarea maestra S Tiempo de ciclo mximo de la tarea maestra S Tiempo de ciclo mnimo de la tarea maestra S Tiempo de ejecucin del ltimo ciclo de la tarea rpida S Tiempo de ciclo mximo de la tarea rpida S Tiempo de ciclo mnimo de la tarea rpida S Nmero de sucesos tratados SyU Funcin reloj-calendario: palabras que contienen los valores SyU actuales de la fecha y hora (en BCD) %SW49 = da de la semana (tipo de da) %SW50 = segundos %SW51 = horas y minutos %SW52 = mes y da %SW53= siglo y ao Funcin reloj-calendario: palabras que contienen la fecha y hora del S ltimo corte de corriente o ltima parada de autmata (en BCD) %SW54 = segs y cdigo falla %SW55 = horas y minutos %SW56 = mes y da %SW57= siglo y ao Cdigo de identif. de la ltima parada y da de semana (tipo de da) S Ajuste en incrementos de la fecha y hora actuales U Diagnstico del autmata redundante S

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

Bits y palabras del sistema


3.2-2 Descripcin detallada de las palabras del sistema
Palabras sistema %SW0 Funcin Perodo de exploracin de la tarea maestra Perodo de exploracin de la tarea rpida Control de la adquisicin de las entradas de tareas Designacin

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

Control de la actualizacin de las salidas de tareas

%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

Palabras sistema %SW17

Funcin Estado de falla en operacin flotante

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

Tiempo de ejecucin de la tarea maestra (1)

(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

Bits y palabras del sistema


Palabras sistema %SW31 Funcin Tiempo de ejecucin mx. de la tarea maestra (1) Tiempo de ejecucin mn. de la tarea maestra (1) Tiempo de ejecucin de la tarea rpida (1) Tiempo de ejecucin mx. de la tarea rpida (1) Tiempo de ejecucin mn. de la tarea rpida (1) Nmero de sucesos Funcin relojcalendario (2) Designacin Indica el tiempo de ejecucin ms largo de la tarea maestra despus del ltimo arranque en fro (en ms).

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).

%SW49 %SW50 %SW51 %SW52 %SW53

%SW54 %SW55 %SW56 %SW57 %SW58

Funcin relojcalendario (2)

(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

Ajuste de la fecha actual

%SW60 a %SW69 %SW66

Diagnstico autmata redundante

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).

%SW67 %SW68 %SW69

%SW80 %SW81 %SW82 %SW83 %SW84 %SW85 %SW86

Gestin de mensajes y telegramas

%SW87
%SW88 %SW89

Gestin de los flujos de comunicacin (1)

(1) palabras disponibles nicamente en TSX/PCX/PMX 57, versin V3.3 o superior.

___________________________________________________________________________ 3/14

Bits y palabras del sistema


Palabras sistema %SW96 Funcin Control/ diagnstico de la funcin guarda/ restitucin Designacin

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

Nmero de %MW que requieren guardado

%SW98

Direccin de la entrada TON

___________________________________________________________________________ 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

Bits y palabras del sistema

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

Direccin de la instruccin de la falla de bloqueo Punto de conexin Falla en FIPIO en

%SW128 a %SW143

%SW144

Modo de marcha funcin rbitro de bus FIPIO

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

%SW149 %SW150 %SW151 %SW151

%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.

%SW160 %SW161 %SW162

___________________________________________________________________________ 3/18

Diferencias entre PL7-2/3 yCaptulo 44 PL7 Micro


4 Diferencias entre PL7-2/3 y PL7 Micro/Junior

4.1

Diferencias entre PL7-2/3 y PL7-Micro/Junior


PL7-2/3 1234 L'10011110' H'ABCD' -1.32e12 (PL7-3) M'aAbBcB' PL7 Micro/Junior 1234 2#10011110 16#ABCD -1.32e12 'aAbBcC'

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>

%Ixy. MOD.ERR %Ixy.i.ERR

%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

CWi,j CWi(Wk),j (PL7-3) IW/OWxy,i,j COMi,j,k COMXi,j,k (X = B, C, D) SWi,j

%KWi:Xj %KWi[%MWk]:Xj %IW/%QWxy.i:Xj %NWi.j:Xk %NXWi.j:Xk %SWi:Xj

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

Diferencias entre PL7-2/3 y PL7 Micro


Tiempo de actividad de etapa de entrada de macroetapa j Tiempo de actividad de etapa de salida de macroetapa j Xj,I,V (PL7-3) Xj,O,V (PL7-3) %Xj.IN.T %Xj.OUT.T

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

Tablas de bits y palabras


Objetos Cadenas de bits cadena de bits internos cadena de bits de entrada cadena de bits de salida cadena de bits de etapa Grafcet cadena de bits de macroetapa Cadenas de caracteres Tablas de palabras tabla de palabras internas tabla de palabras internas indexadas tabla de dobles palabras internas tabla de dobles palabras internas indexadas tabla de palabras constantes tabla de palabras constantes indexadas tabla de dobles palabras constantes tabla de dobles palabras constantes indexadas tabla de reales tabla de reales indexados tabla de reales constantes tabla de reales constantes indexados tabla de elementos de entrada a distancia tabla de elementos de salida a distancia tabladeelementosindex.deentradaadistancia tabla de elementosindex. de salida a distancia PL7-2/3 Bi[L] Ixy,i[L] (PL7-3) Oxy.i[L] (PL7-3) Xi[L] (PL7-3) XMi[L] (PL7-3) PL7 Micro/Junior %Mi:L %Ixy.i:L %Qxy.i:L %Xi:L %MBi:L (1) (con "i" par) Wi[L] Wi(Wj)[L] DWi[L] (PL7-3) DWi(Wj)[L] (PL7-3) CWi[L] CWi(Wj)[L] CDWi[L] (PL7-3) CDWi(Wj)[L] (PL7-3) %MWi:L %MWi[%MWj]:L %MDi:L %MDi[%MWj]:L %KWi:L %KWi[%MWj]:L %KDi:L %KDi[%MWj]:L %MFi:L %MFi[%MWj]:L %KFi:L %KFi[%MWj]:L

RIx,y,i[L] (PL7-3) ROx,y,i[L] (PL7-3) RIx,y,i(Wj)[L] (PL7-3) ROx,y,i(Wj)[L] (PL7-3)

Bloques de funcin opcionales


Objetos Bloque de funcin opcional Elemento de OFB Elemento de OFB indexado Tabla de elementos de OFB Tabla de elementos de OFB indexados PL7-3 <OFB>i <OFB>i, <elemento> <OFB>i,<elemento>(Wj) <OFB>i,<elemento>[L] <OFB>i,<elemento>(Wj)[L] PL7 Micro/Junior

___________________________________________________________________________ 4/4

Diferencias entre PL7-2/3 y PL7 Micro


Instrucciones
Objetos Instrucciones para bits Inversin lgica Y O O exclusiva Flanco ascendente Flanco descendente Puesta a 1 Puesta a 0 PL7-2 PL7-3 NOT + RE FE SET RESET PL7 Micro/Junior NOT AND OR XOR RE FE SET RESET + * / >, >=, <, <=, =, <> REM SQRT ABS AND OR XOR NOT INC DEC SHL SHR ROL ROR + * / SQRT ABS = > < >=, <=, <>

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

MASKEVT UNMASKEVT SETIT

READBIT WRITEBIT READREG WRITEREG READEXT WRITEEXT

___________________________________________________________________________ 4/6

Diferencias entre PL7-2/3 y PL7 Micro


Instrucciones (cont.)
Objetos Instrucciones para bloques funcin Preseleccin Arranque Activacin de la tarea Puesta a cero Desactivacin de la tarea Contaje Descontaje Almacenamiento en un registro Desalmacenamiento de un registro Recepcin de un mensaje Emisin de un mensaje Emisin/Recepcin de un mensaje Ejecucin de un OFB Lectura de telegramas PL7-3 PRESET Ti / Ci START Ti / Mi START CTRLi RESET Ci / Ri / TXTi RESET CTRLi UP Ci DOWN Ci PUT Ri GET Ri INPUT TXTi OUTPUT TXTi EXCHG TXTi EXEC <OFBi> READTLG PL7 Micro/Junior PRESET %Ti / %Ci START %Ti / %MNi RESET %Ci / %Ri UP %Ci DOWN %Ci PUT %Ri GET %Ri

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

Lista de palabras reservadas 5 Captulo 5


5 Lista de palabras reservadas

5.1

Palabras reservadas

Las siguientes palabras reservadas no deben utilizarse como smbolos.


*_TO_* * = Letter SRi AUXi EVTi XMi i = entero ABS ACCEPT ACOS ACTION ACTIVATE_PULSE ACTIVE_TIME ADD ADDRESS ADD_DT ADD_TOD ADR AND ANDF ANDN ANDR AND_ARX ANY ANY_BIT ANY_DATE ANY_INT ANY_NUM ANY_REAL ARRAY AR_D AR_DINT AR_F AR_INT AR_R AR_W AR_X ASIN ASK ASK_MSG ASK_VALUE ASSIGN_KEYS AT ATAN AUX BCD_TO_INT BIT_D BIT_W BLK BLOCK BODY BOOL BOTTOM BTI BTR BY BYTE C CAL CALC CALCN CALL CALL_COIL CANCEL CASE CD CHART CH_M CLK CLOSE CLOSED_CONTACT COIL COMMAND COMMENTS COMP4 COMPCH CONCAT CONCATW CONF CONFIGURATION CONSTANT CONTROL_LEDS COPY_BIT COS CTD CTU CTUD CU D DATE DATE_AND_TIME DAT_FMT DAY_OF_WEEK DA_TYPE DEACTIVATE_PULSE DEC DELETE DELTA_D DELTA_DT DELTA_TOD DINT DINT_TO_REAL DINT_TO_STRING DISPLAY_ALRM DISPLAY_GRP DISPLAY_MSG DIV DMOVE DO DOWN DR DRUM DS DSHL_RBIT DSHRZ_C DSHR_RBIT DSORT_ARD DSORT_ARW DT DTS DWORD D_BIT E EBOOL ELSE ELSIF EMPTY EMPTY_LINE END ENDC ENDCN END_ACTION END_BLK END_BLOCK END_CASE END_COMMENTS END_CONFIGURATION END_FOR END_FUNCTION END_FUNCTION_BLOCK END_IF END_MACRO_STEP END_PAGE END_PHRASE END_PROG

___________________________________________________________________________ 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

Lista de palabras reservadas


NB_BLOCKS NB_COMMON_WORDS NB_CONSTANT_WORDS NB_CPT NB_DRUM NB_INTERNAL_BITS NB_INTERNAL_WORDS NB_MACRO_STEPS NB_MONO NB_PAGES NB_REG NB_TIMER NB_TM NB_TRANSITIONS NE NIL NO NON_STORED NOP NOT NOT_ARX NOT_COIL NOT_READABLE NO_GR7 NO_PERIOD N_CONTACT O OCCUR OCCUR_ARD OCCUR_ARR OCCUR_ARW OF ON OPEN OPEN_CONTACT OPERATE OR ORF ORN ORR OR_ARX OTHERS OUT OUTIN_CHAR OUTPUT OUT_BLK P P0 P1 PAGE PAGE_COMMENT PANEL_CMD PERIOD PHRASE PHRASE_COMMENT PID PID_MMI PLC POST PRESET PRINT PRINT_CHAR PRIO0 PRIO1 PRIORITY PRL PROG PROGRAM PROG_LANGAGE PROG_LANGUAGE PT PTC PUT PV PWM P_CONTACT Q QUERY R R1 RCV_TLG RE READ READ_EVT_UTW READ_ONLY READ_PARAM READ_STS READ_VAR READ_WRITE REAL REAL_TO_DINT REAL_TO_INT REAL_TO_STRING REG REM REPEAT REPLACE REQ RESET RESET_COIL RESOURCE RESTORE_PARAM RET RETAIN RETC RETCN RETURN RET_COIL RIGHT ROL ROLD ROLW ROL_ARD ROL_ARR ROL_ARW ROL_DWORD ROL_WORD ROR RORD RORW ROR_ARD ROR_ARR ROR_ARW ROR_DWORD ROR_WORD RRTC RS RTB RTC RTS RUNG R_EDGE R_TRIG S S1 SAVE SAVE_PARAM SCHEDULE SD SEARCH SECTION SEL SEMA SEND SENDER SEND_ALARM SEND_MBX_ALARM SEND_MBX_MSG SEND_MSG SEND_REQ SEND_TLG SERVO SET SET_COIL SFC SHIFT

___________________________________________________________________________ 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

Conformidad con la norma CEI 1131-1

Captulo 66 B

6 Conformidad con la norma CEI 1131-1

6.1

Conformidad con la norma IEC 1131-3

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

Conformidad con la norma CEI 1131-1

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

Conformidad con la norma CEI 1131-1

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

Conformidad con la norma CEI 1131-1

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

Conformidad con la norma CEI 1131-1


Elementos de lenguaje IL Tabla no 51 Caracterstica no Campos de de instruccin 52 52 52 52 1 2 3 4 6 7 52 52 52 53 18 20 21 3 LD ST SyR AND OR XOR JMP RET ) Utilizacin de operadores de entrada para la iniciacin de bloques de funcin en leng. IL IN (Nota 11) IN (Nota 11) IN (Nota 11) Descripcin de las caractersticas Etiqueta, operador, operando, comentario

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

Conformidad con la norma CEI 1131-1


Elementos grficos comunes Tabla n 57 57 57 57 57 57 58 58 58 58 Caracterstica n 2 4 6 8 10 12 2 4 5 8 Descripcin de las caractersticas Lneas horizontales grficas Lneas verticales grficas Interseccin grfica lnea horizontal/lvertical Interseccin grfica de lneas sin conexin Esquinas grfs.conectadas y no conectadas Bloques con lneas grficas conectadas Salto incondicional en lenguaje LD Salto condicional en lenguaje LD Regreso condicional en lenguaje LD Regreso incondicional en lenguaje LD

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)

Caracteres nacionales utilizados

___________________________________________________________________________ 6/12

Conformidad con la norma CEI 1131-1

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

Efectos de conversin de tipos sobre la precisin Nmero mximo de tipos de instancias

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

Nmero mximo de tareas

___________________________________________________________________________ 6/14

Conformidad con la norma CEI 1131-1

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

Falla de una iteracin FOR o WHILE que se va a terminar

___________________________________________________________________________ 6/16

Ayuda de Captulo7 memoria 7


7 Ayuda de memoria
7.1 Ayuda de memoria
Instrucciones booleanas Inicializacin de acumulador o red Prueba (lectura) (directa, inversa, flanco ascendente, flanco descendente) Y lgica LD IL

LD LD LDN LDR LDF


N N

TRUE

P P P

AND AND(

ANDN AND(N ORN

ANDR

ANDF

AND(RAND(F ORR ORF

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 XOR XORR

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

Bloque de comparacin vertical

COMPARE EN > = < <>

___________________________________________________________________________ 7/1

Memory PusH Memory ReaD Memory PoP

MPS MRD MPP

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

ST := OR AND XOR NOT RE, FE SET, RESET IL IN estructura BLK..END_BLK

%Ti E C D R %Ci R S CU CD E D F

Contador/Descontador

R S CU CD estructura S estructura R I O estructura R U estructura ST

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

UP %DRi ___________________________________________________________________________ 7/2

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).

Tamao de memoria de la aplicacin El tamao de la aplicacin es la suma de los elementos siguientes:

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

Nota: los comentarios de programa ocupan 1 byte por carcter.

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

8.2.1 Instrucciones booleanas


LD IL ST

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

%M1 %M1[%MW2] %MW0:X0 %IWi.j:Xk %MW0[%MW10]:X0 %KW0[%MW10]:X0 %M1 %M1[%MW2] %M1

1,25 26,94 12,86 83,84 33,33 104,31 2,25 27,28 0,50

XORR, XORF ST, STN, S, R

0,63 26,08 11,88 75,38 31,48 94,98 1 1,13 26,13 0,25

0,94 26,26 12,06 75,56 31,66 95,16 1,69 26,44 0,38

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

13,10 5,88 76,86 16,41 0,25 0,74 5,55

12,85 5,60 69,10 15,65 0,13 0,75 5,40

12,85 5,60 69,10 15,65 0,19 0,75 5,40

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]

tiempo adems de la comparacin entre 2 %MWi ) ladder, 1 divergencia

MPS, MPP, MRD

list MPS+MPP list MRD

8.2.2 Bloques de funcin


LD IL ST Objetos/condiciones Tiempo de ejecucin (s) 3705/08/10 3720 Tamao
(palabras)

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

timer activo timer inactivo

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

Valor que se debe quitar para valores inmediatos


16#1234/%MW0 16#12345678 / 1,21 %MD0 o %MF/0 1,20 0,75 1,10 1 0

Valor que se debe agregar para palabras/dobles palabras/flotantes indexados


%MW2[%MW0] Objeto despus de:= ou %MD2[%MW0] o %MF2[%MW0] 1era operacin : puesto que el 1er operando no est indexado, o asignacin 2do operando si el 1er operando est indexado tambin 10,52 10,05 4

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

8.2.4 Instrucciones para programas


ST Objetos Condiciones Tiempo de ejecucin (s) 3705/08/10 3720 41,93 12,21 40,27 48,68 42,18 38,20 10,80 37,10 42,88 38,33 Tamao (palabras) 37xx 3 1 1 3 3

Jump %Li Maskevt Unmaskevt SRi Return

8.2.5 Estructura de control


ST Tiempo de ejecucin (s) 3705/08/10 <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 repeat <accin> until <cond> end_repeat Paso en el bucle con conclusin Ultimo paso for <palabra1:=palabra2>to <palabra3>do <accin> end_for Entrada en for, ejecutada una sola vez Paso en el bucle con conclusin Salida del bucle Evaluacin de la condicin Vase instruccin booleana LD %M1 Vase comparaciones =,<,> ... Los tiempos y volmenes indicados a continuacin deben agregarse a los de la accin contenida en la estructura 3,60 5,55 3,30 5,40 2 3720 Volumen (palabras) 37xx

9,15 5,55

8,70 5,40

9,15 5,55

8,70 5,40

5,55 3,60

5,40 3,30

8,58 29,38 20,42

8,25 27,35 19,40

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.2.7 Cadena de bits


ST Condiciones Tiempo de ejecucin (s) 3705/08/10 3720 ram 3720 cart Volumen (palabras) 37xx

Inicializacin de una tabla de bits


%M30:8 := 0 %M30:16 := 1 %M30:24 := 2 %M30:32 := 2 8 bits 16 bits 24 bits 32 bits 19,38 20,38 24,25 25,25 18,88 19,88 23,35 24,35 18,88 19,88 23,35 24,35 6 6 6 6

___________________________________________________________________________ 8/9

B
ST Condiciones Tiempo de ejecucin (s) 3705/08/10 3720 ram 3720 cart Volumen (palabras) 37xx

Copia de una tabla de bits en una tabla de bits


%M30:8 := %M20:8 %M30:16 := %M20:16 %M30:24 := %M20:24 %M30:32 := %M20:32 %M30:16 := COPY_BIT(%M20:16) 8 bits 16 bits 24 bits 32 bits 16 bits 32 bits 128 bits 25,54 26,16 33,41 35,91 281,63 440,82 1 261,22 24,79 25,41 32,26 34,76 230,00 360,00 1 030,00 24,79 25,41 32,26 34,76 244,95 383,40 1 096,95 6 6 6 6 9 9 9

Instrucciones lgicas para tablas de bits


AND_ARX, OR_ARX, XOR_ARX %M0:16 := AND_ARX(%M30:16,%M50:16) %M0:32 := AND_ARX(%M30:32,%M50:32) %M0:128 := AND_ARX(%M30:128,%M50:128) NOT_ARX %M0:16 := NOT_ARX(%M30:16) 16 bits 32 128 281,63 440,82 1 261,22 230,00 360,00 1 030,00 244,95 383,40 1 096,95 9 9 9 16 bits 32 128 397,42 620,97 1 887,74 320,00 500,00 1 520,00 340,80 532,50 1 618,80 12 12 12

Copia de una tabla de bits en una tabla de palabras


%MW1 := %M30:8 %MW1 := %M30:16 %MD2 := %M30:24 %MD2 := %M30:32 %MW1:4 := BIT_W(%M40:80,0,17,2) %MD1:4 := BIT_D(%M30:80,0,33,0) 8 bits 16 bits 24 bits 32 bits 17 bits 33 bits 14,84 16,34 14,54 16,04 501,43 379,53 14,36 15,86 14,23 15,73 390,00 530,00 14,36 15,86 14,23 15,73 415,35 564,45 5 5 5 5 16 16

Copia de una tabla de palabras en una tabla de bits


%M30:8 := %MW1 %M30:16 := %MW2 %M30:24 := %MD1 %M30:32 := %MD3 %M30:32 := W_BIT(%MW200:2,0,2,0) %M30:32 := D_BIT(%MD0:1,0,2,0) 8 bits 16 bits 24 bits 32 bits 32 bits 32 bits 19,28 20,28 21,20 22,20 488,68 567,33 18,68 19,68 20,37 21,37 370,00 460,00 18,68 19,68 20,37 21,37 394,05 489,90 5 5 5 5 16 16

___________________________________________________________________________ 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

Inicializacin de una tabla de palabras por una palabra


%MW0:10 := %MW100 %MD0:10 := %MD100 10 palabras por palabra 10 doble palabras por doble palabra 47,46 0,34 81,27 42,15 0,20 74,45 2,87 42,15 0,20 74,45 2,65 7 2,65 7

Copia de una tabla de palabras en una tabla de palabras


%MW0:10:=%MW20:10; 10 palabras por palabra %MD0:10:=%MD20:10; 10 doble palabras por doble palabra 95,80 0,77 111,13 1,54 85,35 0,50 97,65 1,00 85,35 0,50 97,65 1,00 9 9

Instrucciones aritmticas y lgicas entre 2 tablas de palabras


+, %MW0:10 :=%MW10:10 + %MW20:10; %MD0:10:=%MD10:10+%MD20:10; 10 palabras por palabra 10 doble palabras por doble palabra * %MW0:10:=%MW10:10 * %MW20:10; 10 palabras por palabra %MD0:10:=%MD10:10 * %MD20:10; 10 doble palabras por doble palabra /, REM %MW0:10:=%MW10:10 / %MW20:10; %MD0:10:=%MD10:10 / %MD20:10; 10 palabras por palabra 10 doble palabras por doble palabra AND, OR, XOR %MW0:10:=%MW10:10 AND %MW20:10; 10 palabras por palabra %MD0:10:=%MD10:10 AND %MD20:10; 10 doble palabras por doble palabra 163,69 6,66 240,14 13,94 147,40 5,85 215,90 12,40 147,40 5,85 215,90 12,40 14 14 224,76 13,14 2 192,38 209,16 181,40 9,30 2 157,35 206,55 181,40 9,30 2 157,35 206,55 14 14 189,32 9,27 710,35 61,64 175,40 8,70 603,80 51,20 175,40 8,70 603,80 51,20 14 14 168,04 7,13 239,17 13,84 151,95 6,35 214,40 12,25 151,95 6,35 214,40 12,25 14 14

___________________________________________________________________________ 8/11

B
ST Condiciones Tiempo de ejecucin (s) 3705/08/10 3720 ram 3720 cart Volumen (palabras) 37xx

Instrucciones aritmticas y lgicas entre 1 tabla de palabras y 1 palabra


+, %MW0:10 :=%MW10:10 + %MW20; ou %MW0:10 := %MW20 + %MW10:10 %MD0:10 :=%MD10:10 + %MD20; 10 palabras por palabra 10 doble palabras por doble palabra * %MW0:10 :=%MW20*%MW10:10; 10 palabras por palabra %MD0:10:=%MD20*%MD10:10; /, REM %MW0:10 :=%MW10:10 / %MW30; 10 palabras por palabra %MD0:10:=%MD10:10 / %MD30; 10 doble palabras por doble palabra AND, OR, XOR %MW0:10 :=%MW10:10 AND %MW20; 10 palabras por palabra %MD0:10:=%MD20*%MD10:10; NOT %MW0:10 :=NOT(%MW10:10); 10 palabras por palabra %MD0:10:=NOT(%MD10:10); 10 doble palabras por doble palabra 110,28 2,96 126,39 4,50 100,25 2,75 114,00 4,05 100,25 2,75 114,00 4,05 9 9 10 doble palabras por doble palabra 117,20 2,64 587,01 6,47 106,45 2,40 522,95 6,15 106,45 2,40 522,95 6,15 12 12 196,69 10,86 2 230,17 213,66 155,85 7,30 2 173,95 208,90 155,85 7,30 2 173,95 208,90 12 12 10 doble palabras por doble palabra 166,86 7,94 587,01 49,18 132,45 5,05 522,95 43,80 132,45 5,05 522,95 43,80 12 12 119,12 2,87 159,68 6,57 108,55 2,65 147,45 6,25 108,55 2,65 147,45 6,25 12 12

Funcin de suma en la tabla


%MW20:=SUM(%MW0:10); 10 palabras por palabra %MD20:=SUM(%MD0:10); 10 doble palabras por doble palabra %MF20:=SUM_ARR(%MF0:10); 10 doble palabras por doble palabra 74,30 2,44 83,58 3,17 1634 69,00 2,35 76,90 2,95 1257 69,00 2,35 76,90 2,95 1257 10 10 10

___________________________________________________________________________ 8/12

Prestaciones

B
ST Condiciones Tiempo de ejecucin (s) 3705/08/10 3720 ram 3720 cart Volumen (palabras) 37xx

Funcin de comparacin de tablas


%MW20:=EQUAL(%MW0:10;%MW10:10); 10 palabras por palabra %MD20:=EQUAL(%MD0:10;%MD10:10); %MF20:=EQUAL_ARR(%MF0:10;%MF10:10); 10 doble palabras por doble palabra 10 doble palabras por doble palabra 103,78 1,13 116,17 2,23 741 93,50 0,90 103,40 1,75 570 93,50 0,90 103,40 1,75 607 11 11 11

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

Bsqueda de los valores mx. y mn.


%MW20 := MAX_ARW(%MW0:10) %MD20 := MAX_ARD(%MD0:10) %MF20 := MAX_ARR(%MF0:10) %MF20 := MIN_ARR(%MF0:10) 10 palabras 10 doble palabras 10 doble palabras 10 doble palabras 350,00 410,00 1366 1270 260,00 300,00 1051 977 276,90 319,50 1119,31 1040,50 9 9 9 9

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

OF Fechas, horas y duraciones


%MW2:4 := ADD_DT(%MW2:4,%MD8) %MD2 := ADD_TOD(%MD2,%MD8) %MB2:11 := DATE_TO_STRING(%MD40) %MW5 := DAY_OF_WEEK() %MD10 := DELTA_D(%MD2, %MD4) %MD10 := DELTA_DT(%MD2:4,%MW6:4) %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) 4 400,00 2 100,00 1 370,00 220,00 1 520,00 3 170,00 2 330,00 2 050,00 4 750,00 2 330,00 1 560,00 1 270,00 500,00 3 300,00 1 550,00 900,00 280,00 1 130,00 2 300,00 1 700,00 1 450,00 3 500,00 1 700,00 1 200,00 800,00 500,00 3 514,50 1 650,75 958,50 298,20 1 203,45 2 449,50 1 810,50 1 544,25 3 727,50 1 810,50 1 278,00 852,00 532,50 13 9 9 5 9 13 9 11 13 9 9 9 7

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

Asignacin, copia de cadenas de caracteres


%MB0:8:=%MB10:8 8 caracteres por carcter %MB0:8:=abcdefg 8 caracteres por carcter 105,16 1,65 120,72 4,15 93,80 1,30 110,20 3,85 93,80 1,30 110,20 3,85 11 0,5 9

Conversiones palabra <-> cadenas de caracteres


%MW1:=STRING_TO_INT(%MB0:7) %MB0:7:=INT_TO_STRING(%MW0) 97,69 104,36 91,95 96,70 91,95 96,70 7 7

Conversiones doble palabra <-> cadenas de caracteres


%MD1:=STRING_TO_DINT(%MB0:13) %MB0:13:=DINT_TO_STRING(%MD0) 1 070,53 322,29 965,62 295,35 965,62 295,35 7 7

Conversiones flotante <-> cadenas de caracteres


%MF1:=STRING_TO_REAL(%MB0:15) %MB0:15:=REAL_TO_STRING(%MF0) 1 783,70 741,75 1 634,53 681,20 1 634,53 681,20 7 7

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

8.2.11 Funciones especficas y funciones Orphe


ST Condiciones Tiempo de ejecucin (s) 3705/ 3720 3720 08/10 ram cart Volumen (palabras) 37xx

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

8.2.12 Entradas/salidas explcitas


Read_Sts %CHi.MOD Cualquier funcin especfica salvo la va de comunicacin del procesador Read_Sts %CHi Entrada analgica Salida analgica Mdulo de contaje CTZ Write_Param %CHi Entrada analgica Mdulo de contaje CTZ Read_Param %CHi Entrada analgica Mdulo de contaje CTZ Save_Param %CHi Entrada analgica Mdulo de contaje CTZ Restore_Param %CHi Entrada analgica Mdulo de contaje CTZ Write_Cmd %CHi Salida TON 50 47 52 6 550 1160 510 1080 535 1097 6 1234 1370 1220 1220 1240 1240 6 260 338 290 295 316 300 6 790 1127 570 1080 790 1083 6 30 30 32 2

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

XORR, XORF ST, STN, S, R

%M1 %M1[%MW2] %MW0:X0 %IWi.j:Xk %MW0[%MW10]:X0 %KW0[%MW10]:X0 %M1 %M1[%MW2] %M1

2,04 5,54 4,08 4,96 7,87 7,87 2,25 27,28 1,17

0,87 2,37 1,75 2,12 3,37 3,37 1,13 26,13 0,50

1,12 1,62 1,37 1,75 2,25 2,25 1,62 2,87 0,62

1,37 3,79 2,83 3,42 5,37 5,37 1,69 26,44 0,75

1,79 2,62 2,25 2,83 3,62 3,62 2,62 4,62 0,96

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

2,62 1,75 2,62 3,79 0,87 0,58 0,71

1,12 0,75 1,12 1,25 0,37 0,25 0,37

1,12 0,75 1,12 1,25 0,50 0,25

1,75 1,17 1,75 2,54 0,54 0,42

1,75 1,17 1,75 2,54 0,75 0,42 0,54

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]

tiempo adems de la comparacin entre 2 %MWi )

0,29 ladder, 1 divergencia 0,29 list MPS+MPP list MRD 0,87 0,29

MPS, MPP, MRD

8.3.2 Bloques de funcin


LD IL ST Objetos/Condiciones Tiempo de ejecucin (s) A B Tamao (palabras) 57xx

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

Valor que se debe quitar para valores inmediatos


16#1234 / %MW0 16#12345678 / %MD0 ou %MF0 0,29 0,29 0,12 0,12 0,17 0,12 0,12 0,12 0,17 0,12 0 1

Valor que se debe agregar para palabras/dobles palabras/flotantes indexados


%MW2[%MW0] objeto despus de := 2,04 o %MD2[%MW0] o %MF2[%MW0] 1era operacin, asignacin 2,04 2da operacin (o 1er operando indexado) 2,04 0,87 1,37 0,87 1,37 5

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

71,51 71,76 42,71 42,96 63,61 63,86 9,99 10,20

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

139,90 139,90 140,20 140,20

___________________________________________________________________________ 8/23

8.3.4
ST

Instrucciones para programa


Objetos Condiciones A Tiempo de ejecucin (s) B ram B cart C ram C cart 1,25 23,96 24,41 1,75 0,50 1,71 23,96 24,41 2,42 0,71 1,25 9,59 9,77 1,75 0,50 1,71 9,59 9,77 2,42 0,71 Volumen (palabras) 57xx 3 1 1 2 2

Jump %Li Maskevt Unmaskevt SRi Return

2,58 33,98 34,54 3,92 1,00

8.3.5 Estructura de control


ST Tiempo de ejecucin (s) A B/C B/C ram cart evaluacin de la condicin vase instruccin booleana LD %M1 vase comparaciones =,<,> ... los tiempos y volmenes indicados a continuacin se deben agregar a los de la accin contenida en la estructura 0,58 0,71 0,25 0,37 0,42 0,54 2 Volumen (palabras) 57xx

<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

1,75 5,08 2,46

0,75 2,12 1,12

1,17 3,29 1,71

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

8.3.7 Cadena de bits


ST Condiciones A Tiempo de ejecucin (s) B ram B cart C ram C cart Volumen (palabras) 57xx

Inicializacin de una tabla de bits


%M30:8 := 0 %M30:16 := 1 %M30:24 := 2 %M30:32 := 2 8 bits 16 bits 24 bits 32 bits 6,71 11,37 24,47 29,13 2,87 4,87 4,12 6,79 2,87 4,87 15,31 17,31 4,12 6,79 16,81 19,48 7 7 12 12

15,31 16,81 17,31 19,48

Copia de una tabla de bits en una tabla de bits


%M30:8 := %M20:8 %M30:16 := %M20:16 %M30:24 := %M20:24 %M30:32 := %M20:32 %M30:16 := COPY_BIT(%M20:16) 8 bits 16 bits 24 bits 32 bits 16 bits 32 bits 128 bits 13,71 16,62 45,46 57,13 322,00 490,00 5,87 7,12 8,17 9,83 5,87 7,12 24,31 29,31 8,17 9,83 28,85 35,52 99,20 8 8 13 13 17 17 17

24,31 28,85 29,31 35,52

230,00 256,45 99,20

350,00 390,25 153,20 153,20

1 526,00 1 090,001 215,35470,20 470,20

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

Instrucciones lgicas para tablas de bits


AND_ARX, OR_ARX, XOR_ARX %M0:16 := AND_ARX(%M30:16,%M50:16) %M0:32 := AND_ARX(%M30:32,%M50:32) %M0:128 := AND_ARX(%M30:128,%M50:128) NOT_ARX %M0:16 := NOT_ARX(%M30:16) 16 bits 32 128 322,00 490,00 230,00 350,00 256,45 390,25 99,20 153,20 99,20 153,20 470,20 17 17 17 16 bits 32 128 434,00 686,00 310,00 490,00 345,65 546,35 136,10 213,00 136,10 213,00 674,40 24 24 24

2 198,00 1 570,00 1 750,55 674,40

1 526,00 1 090,00 1 215,35 470,20

Copia de una tabla de bits en una tabla de palabras


%MW1 := %M30:8 %MW1 := %M30:16 %MD2 := %M30:24 %MD2 := %M30:32 %MW1:2 := BIT_W(%M40:17,0,17,0) %MD1:2 := BIT_D(%M30:33,0,33,0) 8 bits 16 bits 24 bits 32 bits 17 bits 33 bits 8,75 15,75 23,04 30,04 518,00 728,00 3,75 6,75 10,54 13,54 370,00 520,00 5,25 9,25 13,83 17,83 412,55 579,80 3,75 6,75 10,54 13,54 150,50 200,00 5,25 9,25 13,83 17,83 150,50 200,00 6 6 6 6 23 23

Copia de una palabra o una tabla de palabras en una tabla de bits


%M30:8 := %MW1 %M30:16 := %MW2 %M30:24 := %MD1 %M30:32 := %MD3 %M30:32 := W_BIT(%MW0:2,0,2,0) %M30:32 := D_BIT(%MD0:1,0,2,0) 8 bits 16 bits 24 bits 32 bits 32 bits 32 bits 6,71 11,37 24,76 29,42 518,00 616,00 2,87 4,87 16,11 18,11 370,00 440,00 4,08 6,75 17,36 20,02 412,55 490,60 2,87 4,87 16,11 18,11 142,31 169,23 4,08 6,75 17,36 20,02 142,31 169,23 6 6 11 11 23 23

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

Inicializacin de una tabla de palabras por un palabra


%MW0:10 := %MW100 10 palabras por palabra %MD0:10 := %MD100 10 palabras por palabra 74,48 0,47 115,45 4,41 50,16 0,25 78,29 2,95 51,12 0,25 79,29 2,95 27,04 0,37 33,59 0,90 28,00 0,37 34,59 0,90 10 10

Copia de una tabla de palabras en una tabla de palabras


%MW0:10:=%MW20:10; 10 palabras por palabra %MD0:10:=%MD20:10; 10 palabras por palabra 139,71 0,95 151,18 2,02 93,76 0,50 102,46 1,30 95,26 0,50 103,96 1,30 45,65 0,74 53,75 1,54 47,14 0,74 55,25 1,54 15 15

Instrucciones aritmticas y lgicas entre 2 tablas de palabras


+, %MW0:10 :=%MW10:10 + %MW20:10; 10 palabras por palabra %MD0:10:=%MD10:10+%MD20:10; 10 palabras por palabra * %MW0:10:=%MW10:10 * %MW20:10; 10 palabras por palabra %MD0:10:=%MD10:10 * %MD20:10; 10 palabras por palabra /, REM %MW0:10:=%MW10:10 / %MW20:10; 10 palabras por palabra %MD0:10:=%MD10:10 / %MD20:10; 10 palabras por palabra AND, OR, XOR %MW0:10:=%MW10:10 AND %MW20:10; 10 palabras por palabra %MD0:10:=%MD10:10 AND %MD20:10; 10 palabras por palabra 235,38 9,94 322,35 18,05 160,14 6,90 231,09 13,65 162,39 6,90 233,34 13,65 71,15 3,02 104,96 6,20 73,40 3,02 107,21 6,20 23 23 249,44 11,35 192,64 10,15 194,89 10,15 77,99 3,71 80,24 3,71 546,90 50,19 23 23 246,52 11,03 881,77 74,04 184,99 9,40 658,44 56,40 187,24 9,40 660,69 56,40 76,30 3,55 241,22 19,82 78,55 3,55 243,47 19,82 23 23 236,81 10,05 325,79 18,41 162,54 7,15 229,79 13,55 164,79 7,15 232,04 13,55 71,59 3,07 104,03 6,12 73,84 3,07 106,28 6,12 23 23

3 669,10 2 501,99 2 504,24 544,65 352,83 240,75 240,75 50,19

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

Instrucciones aritmticas y lgicas entre 1 tabla de palabras y1 palabra


+, %MW0:10 :=%MW10:10 + %MW20; ou %MW0:10 := %MW20 + %MW10:10 %MD0:10 :=%MD10:10 + %MD20; 10 palabras por palabra 10 dobles palabras por doble palabra * %MW0:10 :=%MW20*%MW10:10; 10 palabras por palabra %MD0:10:=%MD20*%MD10:10; 10 dobles palabras por doble palabra /, REM %MW0:10 :=%MW10:10 / %MW30; 10 palabras por palabra %MD0:10:=%MD10:10 / %MD30; 10 dobles palabras por doble palabra AND, OR, XOR %MW0:10 :=%MW10:10 AND %MW20; 10 palabras por palabra %MD0:10:=%MD20*%MD10:10; 10 dobles palabras por doble palabra NOT %MW0:10 :=NOT(%MW10:10); 10 palabras por palabra %MD0:10:=NOT(%MD10:10); 10 dobles palabras por doble palabra 161,71 4,37 184,14 6,61 109,06 2,85 125,51 4,50 110,56 2,85 127,01 4,50 46,70 0,88 55,34 1,75 48,20 0,88 56,84 1,75 15 15 170,89 4,39 747,33 9,81 115,59 2,90 568,16 6,50 117,30 2,90 569,91 6,50 49,09 0,89 205,84 2,57 50,79 0,89 207,59 2,57 18 18 212,87 8,48 166,39 7,90 168,10 7,90 65,15 2,42 509,41 46,82 66,86 2,42 511,16 46,82 18 18 180,13 5,31 747,33 61,59 137,04 5,05 568,16 47,85 138,75 5,05 569,91 47,85 53,64 1,35 205,84 16,43 55,35 1,35 207,59 16,43 18 18 170,69 4,37 230,52 9,92 115,14 2,85 156,91 6,75 116,85 2,85 158,66 6,75 48,99 0,88 67,61 2,62 50,70 0,88 69,36 2,62 18 18

3 536,66 2 418,56 2 420,31 340,51 232,90 232,90

Funcin de suma en tabla


%MW20:=SUM(%MW0:10); 10 palabras por palabra %MD20:=SUM(%MD0:10); 10 dobles palabras por doble palabra %MF20:=SUM_ARR(%MF0:10); 10 doble palabra por doble palabra 111,87 3,40 130,74 4,96 1905 76,61 2,40 87,74 3,30 77,57 2,40 88,74 3,30 29,61 0,53 34,03 0,93 303,20 30,57 0,53 35,03 0,93 303,20 16 16 16

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

Funcin de comparacin de tablas


%MW20:=EQUAL(%MW0:10;%MW10:10); 10 palabras por palabra %MD20:=EQUAL(%MD0:10;%MD10:10); 10 dobles palabras por doble palabra %MF20:=EQUAL_ARR (%MF0:10;%MF10:10); 10 doble palabra por doble palabra 142,90 1,14 155,56 2,33 825 99,14 0,95 110,06 2,00 550,00 100,85 0,95 111,81 2,00 568,98 47,31 0,83 56,02 1,69 137,50 49,02 0,83 57,77 1,69 137,50 17 17 17

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

Bsqueda de los valores mx. y mn.


%MW20 := MAX_ARW(%MW0:10) %MD20 := MAX_ARD(%MD0:10) %MF20 := MAX_ARR(%MF0:10) %MD20 := MIN_ARR(%MF0:10)

1037,00 1072,78 261,20 962,00 995,19 240,50

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

%MF20 := OCCUR_ARR(%MF0:10, %KF0) 10 doble palabra

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

1433,00 1482,44 358,25

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

8.3.9 Gestin del tiempo


ST A Tiempo de ejecucin (s) B ram B cart C ram Volumen (palabras) 57xx

C cart

OF Fechas, horas y duraciones


%MW2:4 := ADD_DT(%MW2:4,%MD8) %MD2 := ADD_TOD(%MD2,%MD8) %MB2:11 := DATE_TO_STRING(%MD40) %MW5 := DAY_OF_WEEK() %MD10 := DELTA_D(%MD2, %MD4) 5 176,50 2 435,42 1 429,70 552,16 1 725,50 3 500,00 1 640,00 970,00 390,00 1 170,00 2 410,00 1 780,00 1 550,00 3 750,00 1 780,00 1 270,00 830,00 530,00 3 902,50 1 828,60 1 081,55 434,85 1 304,55 2 687,15 1 984,70 1 728,25 4 181,25 1 984,70 1 416,05 925,45 590,95 1203,20 630,77 373,08 108,45 450,00 926,92 684,62 596,15 1203,20 684,62 488,46 319,23 203,85 1203,20 630,77 373,08 108,45 450,00 926,92 684,62 596,15 1203,20 684,62 488,6 319,23 203,85 19 9 12 5 9 19 9 17 19 9 12 12 7

%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

8.3.10 Funcin Temporizador

FTON FTOF FTP FPULSOR

80,1 80,1 80,1 406

53,40 53,40 53,40 290,4

53,40 53,40 53,40 323

35,10 35,10 35,10 112

35,10 35,10 35,10 112

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

Asignacin, copia de cadenas de caracteres


%MB0:8:=%MB10:8 8 caracteres por carcter %MB0:8:=abcdefg 8 caracteres por carcter 147,75 1,64 193,86 5,94 103,56 1,25 136,88 4,35 103,56 1,25 136,88 4,35 51,96 1,21 56,53 1,69 51,96 1,21 56,53 1,69 14 0,5 15

Conversiones palabra <-> cadenas de caracteres


%MW1:=STRING_TO_INT(%MB0:7) %MB0:7:=INT_TO_STRING(%MW0) 145,69 149,67 104,31 109,21 104,52 109,42 37,93 35,52 38,14 35,73 10 10

Conversiones doble palabra <-> cadenas de caracteres


%MD1:=STRING_TO_DINT(%MB0:13) %MB0:13:=DINT_TO_STRING(%MD0) 1 408,43 1 061,01 1 061,01 364,71 411,64 317,69 317,94 97,35 364,71 97,60 10 10

Conversiones flotante <-> cadenas de caracteres


%MF1:=STRING_TO_REAL(%MB0:15) %MB0:15:=REAL_TO_STRING(%MF0) 2 606,63 1 815,08 1 815,33 635,96 1 084,46 752,94 753,27 389,47 635,96 389,81 10 10

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

1 246,00 890,00 992,35 342,31 1 358,00 970,00 1 081,55 373,08

8.3.12 Extraccin de palabras


LW HW CONCATW 72 72 72 51,40 51,40 51,40 51,40 51,40 51,40 24,70 24,70 24,70 24,70 24,70 24,70

A TSX5710yPCX5710

B TSX5720/25/30/35,PMX5710yPCX5735

C TSX5740/45yPMX5720/35/45

___________________________________________________________________________ 8/31

8.3.13 Funciones especficas y funcin Orphe


ST Condiciones A Tiempo de ejecucin (s) B ram B cart C ram C cart Volumen (palabras) 57xx

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

Bloque de funcin diagnstico


IO_DIA ALRM_DIA EV_DIA MV_DIA ASI_DIA NEPO_DIA TEPO_DIA 111,5 110 129 430 144 119,5 133 138 117,5 160 37,5 37,5 56 450 49 177 a 227 177 a 197

262 a 557270a567 262 a 285270 292

8.3.14 Entradas/salidas explcitas


Read_Sts %CHi.MOD Cualquier salida especfica salvo la va de comunicacin del procesador Read_Sts %CHi Entrada TOR Salida TOR Entrada analgica Salida analgica CTY CFY CAY Write_Param %CHi Entrada analgica Salida analgica CTY CFY CAY 860 810 1 134 1 064 784 620 580 810 760 560 630 600 851 798 588 277 259 362 339 250 277 259 362 339 250 6 997 712 748 316,4 316,4 2

462 630 510 500 518 756 532

330 450 380 370 370 540 380

347 473 390 380 389 567 399

147 201 170 165 165 241 170

147 201 170 165 165 241 170

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

C TSX 57 40/45 y PMX 57 20/35/45

___________________________________________________________________________ 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

OUT, PUBLICA AR_X,AR_W,AR_D,AR_R, PRIVADA

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 :=

utilizacin de una variable de una instancia: agregar 1 palabra respecto a %M..

___________________________________________________________________________ 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

1,5 1,125 2,125

1,472 1,931 3,018

1,5 1,125 2,125

1,472 1,931 3,018

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

idem := idem := 2,125 1,5 2,125 idem :=

3,269 2,318 3,269

2,125 1,5 2,125

3,269 2,318 3,269

- BOOL,AR_X,AR_W,AR_D,AR_R,STRING4,393 OUT todos los tipos

(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

C TSX 57 40/45 y PMX 57 20/35/45

___________________________________________________________________________ 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

TSX 37-05/08/10 TSX 37-21 TSX 37-22

Utilizacin tarea FAST (TSX 37) Utilizacin primer suceso


(TSX 37)

___________________________________________________________________________ 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

Memoria de bits (palabras) 0

Datos de (palabras) 212

Memoria de bits (palabras) 16 32

Datos de (palabras) 108 212

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)

Memoria de bits (palabras) 4 8 16 32

Datos de (palabras) 110 160 280 550

Area de aplicacin (palabras) 100 110 120 190 570 Area de aplicacin (palabras) 200 1.320 TON

Memoria de bits (palabras) 16

Datos de (palabras) 128

___________________________________________________________________________ 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

Memoria de bits (palabras) 4 8 16

Datos de (palabras) 430 840 1670

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

Memoria de bits (palabras) 4

Datos de (palabras) 430

744

Memoria de bits (palabras) 32 64

Datos de (palabras) 410 800

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

Memoria de bits (palabras) 29 58

Datos de (palabras) 323 646

Memoria de bits (palabras) 1 1

Datos de (palabras) 230 450

Area de aplicacin (palabras) 80 40 1280 256 1984 136 1368 400 3424 40

1 1 1 1

431 48 434 450

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

Memoria de bits (palabras) 1 1 1 Memoria de bits (palabras) 3

Datos de (palabras) 60 60 40 Datos de (palabras) 373

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

Memoria de bits (palabras) 8

Datos de (palabras) 152

Area de aplicacin (palabras) 88 1400

176

88 1320 88 2304

160

160

88 1400 104 104 112 3968

2 2 4

270 270 508

Familia Momentum Entradas Sobrecosto 1ra base configurada Salida Sobrecosto 1ra base configurada Mixta Sobrecosto 1ra base configurada Familia operacin remota bus X

Memoria de bits (palabras) 16

Datos de (palabras) 96

Area de aplicacin (palabras) 72 1384 72 1256 72 1424

16

112

16

104

Memoria bits (palabras) 0

Datos de (palabras) 0

Mdulo TSX REY 200

rea de aplicacin (palabras) 56

___________________________________________________________________________ 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

DBCD_TO_DINT DBCD_TO_INT DINT_TO_DBCD INT_TO_DBCD LW HW CONCATW cdigo comn

___________________________________________________________________________ 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

Instrucciones para tablas de palabras

OF

Tamao de cdigo (en palabras)


75 75 78 78 74 145 150 144 164 77 20 162

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

Instrucciones para tablas de dobles-palabras

OF

Tamao de cdigo (en palabras)


152 134 135 134 134 161 162 132 167 173 271 173 20 124

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

Tam. cdigo (en palabras)


519 188 150 99 547 110 266 548 186 413 156 211 700 1703

Instrucciones para cadenas de caracteres


Concatenacin de dos cadenas Supresin de una subcadena Bsqueda del 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

OF
CONCAT224 DELETE EQUAL_STR FIND INSERT LEFT LEN MID REPLACE RIGHT cdigo comn

Tam. cd. (en palabras)


279 212 225 287 38 70 44 365 55 418

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

Tam. cd. (en pals.)


152 152 133 91 103 90

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

Salida intervalo Temporizacin de desconexin Temporizacin de conexin Temporizacin de impulsin

FPULSOR FTOF FTON FTP

Funciones logartmicas, exponenciales y trigonomtricas


Logaritmo neperiano Logaritmo decimal Exponencial Exponenciacin de un real por un entero Parte entera Coseno de un ngulo en radianes Seno de un ngulo en radianes Tangente de un ngulo en radianes Arco coseno (resultado entre 0 y pi) Arco seno (resultado entre -pi/2 y pi/2) Arco tangente (resultado entre -pi/2 y pi/2) Conversin grados en radianes Conversin radianes en grados

OF

Tamao de cdigo (en palabras)


0 0 0 523 128 0 0 0 0 0 0 257 247 392

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

PID PWM SERVO PID_MMI cdigo comn

___________________________________________________________________________ 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

Tam. cd. (en palabras)


617 500 438 375 476 625 531 219 172 133 506 235 32 648 32 936 32 920

SEND_TLG RCV_TLG
CANCEL cdigo comn ROR1_ARB SERVER cdigo comn WRITE_ASYN cdigo comn READ_ASYN cdigo comn

Funciones de comandos de movimiento


Comando de movimiento automtico 1 eje Comando de movimiento automtico multejes SMOVE XMOVE

OF

Ram. cd. (en palabras)


24 32

___________________________________________________________________________ 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

Tam. cd. (en palabras)


24 24 24 288

Funciones Intercambios explcitos (1)

OF

Tam. cd. (en palabras)


0 0 0 0 0 0

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

Tamao cdigo por instancia


64 40 128 128 48 80 304

Tamao de datos por instancia


72 48 136 136 56 88 312

___________________________________________________________________________ 8/51

8.5

Anexo: mtodo de clculo del nmero de instrucciones

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: LD %M0 AND( %M1 OR %M2 ) ST %M3


= 5 instrucciones booleanas Clculo del nmero de instrucciones booleanas Se tienen en cuenta los elementos siguientes: asignaciones (:=) carga del primer valor despus de := instrucciones aritmticas (+, -, *, /, <, =,...), operaciones para palabras o tablas de palabras, dobles palabras, flotantes instrucciones lgicas para palabras funciones (OF, EQUAL,...) sin distincin del nmero de parmetros bloques de funcin (o instruccin de bloque de funcin)

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

*,/ Valores inmediatos Total

Nmero de instrucciones 187 4 31 3 111 4 6 24 346

% 54,05% 1,16% 8,96% 0,87% 32,08% 1,16% 1,73%

64,16%

35,84%

100,00%

___________________________________________________________________________ 8/56

Captulo 9 Servidor OLE Automation 9


9 Servidor OLE Automation

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

Servidor OLE Automation

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

Servidor OLE Automation


9.2-3 Inicio del servidor en modo remoto (DCOM)

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

COM run-time Security provider

COM run-time Security provider DCE RPC

Componente

DCE RPC

Protocolo stack

Protocolo stack

Protocolo DCOM network-

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

Servidor OLE Automation


9.3 Modos de ejecucin del PL7 servidor

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

Puntos de entrada: funcin OLE

Los puntos de entrada se organizan en cuatro tipos:


Contexto de ejecucin Nombre Descripcin Abre una aplicacin Guarda la aplicacin activa Cierra la aplicacin activa Hace el PL7 Serveur OLE Automation interactivo o no Da el estado: aplicacin abierta o cerrada, modo local - conectado, estado API Lee el mensaje de error asociado al cdigo de error

OpenStx SaveStx CloseStx SetServerIHM GetPL7State GetMessageError


Control API: Nombre

SetDriverAndAddress Modifica la direccin y el driver del autmata accedido

Descripcin Entra al modo conectado Sale del modo conectado Carga la aplicacin activa en un autmata Copia una aplicacin autmata en la aplicacin activa

ConnectPLC DisconnectPLC DownloadToPLC UploadFromPLC

SendCommandToPLC Inicia un comando en el autmata (RUN, STOP INIT)

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

ExportScyFile ExportFefFile GetSymbol GetSTXAppIdentity GetPLCAppIdentity GetServerVersion

___________________________________________________________________________ 9/8

Servidor OLE Automation

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

SetPosPL7Window ShowProgram CloseProgram ShowIOMdulo CloseIOMdulo ShowDFB CloseDFB OpenTool

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

Descripcin de las funciones OLE

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

Servidor OLE Automation

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

Servidor OLE Automation


9.5-6 ConnectPLC Esta funcin permite conectarse a un autmata. Sintaxis: integer ConnectPLC (String p_lpDriver, String p_lpAddress)

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.

SRV_ERR_GEN_ADDRESS: SRV_ERR_GEN_ACTION: SRV_ERR_GEN_DRIVER: SRV_ERR_GEN_NOTOPEN: SRV_ERR_GEN_PROTECTEDAPPLI: SRV_COMPATIBLE_PLC:

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

Servidor OLE Automation

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.

SRV_ERR_COMPATIBLE_PLC: SRV_ERR_GEN_ADDRESS: SRV_ERR_GEN_DRIVER: SRV_ERR_GEN_NOTOPEN: SRV_ERR_GEN_RESERVED: SRV_ERR_PLC_CONNECT: SRV_ERR_PLC_ACTION:

SRV_ERR_GEN_COMMUNICATION: Problema de comunicacin.

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:

UploadStation: Funcin de la gestin de estacin (gesta.dll).


Contexto nominal: El Servidor PL7 est activo. No hay aplicacin abierta, y el PL7 est en modo local. Si los parmetros son cadenas vacas, el servidor ejecuta la funcin con el driver y/o la direccin actual. Caso de error: SRV_ERR_UPLOAD_TRANSFER: Problema durante la transferencia de la aplicacin contenida en el autmata ___________________________________________________________________________ 9/15

SRV_ERR_UPLOAD_ABORT: SRV_ERR_UPLOAD_RESERVED: SRV_ERR_UPLOAD_NOAPPLI: SRV_ERR_GEN_ADDRESS: SRV_ERR_GEN_ACTION: SRV_ERR_PLC_CONNECT: SRV_ERR_GEN_DRIVER: SRV_ERR_PLC_CONNECT: SRV_OPEN_NOT_COMPATIBLE:

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.

SRV_ERR_GEN_COMMUNICATION: Error de comunicacin.

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:

GetSymbol: Funcin de la gestin de estacin (gesta.dll).


Contexto nominal: El Servidor PL7 est activo. Una aplicacin est abierta en modo local. Caso de error: SRV_ERR_ADDRESSSYNTAX: SRV_ERR_GEN_NOTOPEN: SRV_ERR_GEN_PARAM_EMPTY: SRV_ERR_GEN_ACTION: la cadena de caracteres pasada como parmetro no corresponde a una variable. No hay aplicacin abierta. p_lpRepere est vaca. Error al ejecutar la funcin.

___________________________________________________________________________ 9/16

Servidor OLE Automation

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:

FicheIdentAppli: Funcin de la gestin de estacin (gesta.dll).


Contexto nominal: El Servidor PL7 est activo. Caso de error: SRV_ERR_GEN_PARAM_EMPTY: SRV_ERR_GEN_ACTION: SRV_ERR_APPLIINFO_NOK:

p_ lpNameStx est vide.


Error durante la ejecucin de la funcin. Informacin incorrecta.

___________________________________________________________________________ 9/18

Servidor OLE Automation

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.

SRV_ERR_GEN_COMMUNICATION: Error de comunicacin. ___________________________________________________________________________ 9/19

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.

SRV_ERR_COMMAND_NOTINLOCAL: El servidor est en modo local.

Servidor OLE Automation


9.5-16 SetDriverAndAdresse Esta funcin permite cambiar el driver y la direccin para la estacin actual. Sintaxis: integer SetDriverAndAdresse(String p_lpDriver, String p_lpAdresse) Entrada:

Introducir las dos cadenas de caracteres que contienen el driver y la direccin del autmata. Funcin llamada:

DriverAndAdresse: Funcin de la gestin de estacin (gesta.dll).


Contexto nominal: El Servidor PL7 est activo. Una aplicacin est abierta y en modo local. Si los parmetros no se completan o estn incorrectos, los valores actuales se intercambian. Caso de error: SRV_ERR_GEN_ADDRESS: la direccin transferida como parmetro es incorrecta. SRV_ERR_GEN_DRIVER: el driver transferida como parmetro es incorrecto. Error durante la ejecucin de la funcin.

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:

MoveWindow: Funcin mfc.


Contexto nominal: El Servidor PL7 con IHM est activo. Caso de error: SRV_ERR_GEN_ACTION: SRV_ERR_GEN_PARAM_EMPTY: SRV_ERR_GEN_WITHIHM: Salida: Cdigo de retorno de tipo short. Fracaso del comando. Parmetro vaco. Funcin disponible con el Servidor PL7 en modo IHM.

___________________________________________________________________________ 9/22

Servidor OLE Automation


9.5-19 ShowProgram

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:

CloseProgram: 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_NOTOPEN: SRV_ERR_GEN_ACTION: SRV_ERR_GEN_PARAM_EMPTY: SRV_ERR_GEN_WITHIHM: No haya aplicacin abierta. Fracaso de cierre. Parmetro vaco. Funcin disponible con el Servidor PL7 en modo IHM.

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.

___________________________________________________________________________

Servidor OLE Automation


SRV_ERR_GEN_WITHIHM:

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

Servidor OLE Automation


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 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

Mecanismo de acceso al PL7 Serveur OLE Automation

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

También podría gustarte