Vous êtes sur la page 1sur 408

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 Programacin simblica 1.1-6 Instrucciones del PL7 1.1-7 Bloques de funcin del usuario

Pgina
A1/1 A1/1 A1/1 A1/3 A1/3 A1/4 A1/5 A1/6 A1/7

1.2

Objetos direccionables A1/8 1.2-1 Definicin de los principales objetos booleanos A1/8 1.2-2 Direccionamiento de objetos de mdulos entradas/salidas del TSX 37 A1/9 1.2-3 Direccionamiento de objetos de mdulos E/S del TSX 57A1/11 1.2-4 Direccionamiento de palabras A1/13 1.2-5 Objetos de bloques de funcin A1/17 1.2-6 Objetos estructurados A1/18 1.2-7 Objetos Grafcet A1/20 1.2-8 Objetos de bloques de funcin DFB A1/20 1.2-9 Simbolizacin A1/21 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-10/21/22 1.3-6 Autmatas TSX/PCX/PMX 57-10/20/25 1.3-7 Autmatas TSX/PCX 57-30/35 A1/23 A1/23 A1/25 A1/26 A1/28 A1/29 A1/30 A1/31

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/32 A1/32 A1/33 A1/34 A1/35 A1/35 A1/37 A1/38 A1/40

1.5

1.6

Estructura multitarea A1/41 1.6-1 Descripcin A1/41 1.6-2 Tarea maestra A1/43 1.6-3 Tarea rpida A1/44 1.6-4 Asignacin de vas de E/S a las tareas maestra y rpida A1/45 1.6-5 Tareas de suceso A1/46 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

Pgina
A3/1 A3/1 A3/1 A3/2

3.2

Estructura de un programa A3/4 3.2-1 Generalidades A3/4 3.2-2 Comentario A3/4 3.2-3 Etiqueta A3/4 3.2-4 Utilizacin de los parntesis A3/5 3.2-5 Instrucciones MPS, MRD, MPP A3/7 3.2-6 Principios de programacin: bloques de funcin predefinidos A3/8 Reglas de ejecucin de un programa en Lista de instrucciones 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.3

4 Lenguaje Literal estructurado 4.1 Presentacin del lenguaje Literal estructurado 4.1-1 Principio 4.1-2 Instrucciones Estructura de un programa 4.2-1 Generalidades 4.2-2 Comentario 4.2-3 Etiqueta 4.2-4 Instrucciones 4.2-5 Estructuras de control Reglas de ejecucin de un programa literal

4.2

4.3

___________________________________________________________________________ A/3

A
Descripcin del sofware Tabla de materias PL7 Seccin A ___________________________________________________________________________

Captulo
5 Lenguaje Grafcet 5.1 Presentacin del lenguaje Grafcet 5.1-1 Nota sobre los principios del Grafcet 5.1-2 Anlisis progresivo: las macrorrepresentaciones Smbolos grficos relativos al lenguaje Grafcet Objetos relativos al Grafcet Posibilidades del lenguaje Grafcet Representacin del Grafcet Macroetapas 5.6-1 Principio 5.6-2 Caractersticas 5.6-3 Etapas iniciales Acciones asociadas a etapas Receptividades asociadas a transiciones

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

5.2 5.3 5.4 5.5 5.6

5.7 5.8 5.9

Organizacin de la seccin Grafcet A5/23 5.9-1 Descripcin de la seccin Grafcet A5/23 5.9-2 Tratamiento preliminar A5/24 5.9-3 Utilizacin de los bits sistema en el tratamiento preliminarA5/25 5.9-4 Tratamiento secuencial A5/28 5.9-5 Tratamiento posterior A5/30

___________________________________________________________________________ A/4

A
Descripcin del sofware Tabla de materias PL7 Seccin A ___________________________________________________________________________

Captulo
6 Bloques de funcin DFB 6.1 Presentacin de los bloques de funcin DFB 6.1-1 Generalidades 6.1-2 Creacin de un bloque de funcin DFB Concepcin de un bloque de funcin Tipo DFB 6.2-1 Creacin de un Tipo DFB 6.2-2 Descripcin de los parmetros y variables 6.2-3 Cdigo de un tipo DFB 6.2-4 Validacin del Tipo DFB 6.2-5 Propiedades de un Tipo DFB 6.2-6 Ficha descriptiva 6.2-7 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/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

Pgina

___________________________________________________________________________ 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) y pantallas de explotacin. 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 ...) pueden completar. Los objetos del lenguaje pueden simbolizarse. El programa PL7 es 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 ___________________________________________________________________________ 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) EVT0

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

Vig_Sec(LD)

Alarma_Horno(ST)

Alarma_Limpieza(ST)

SR0

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 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 smbolos utilizados pueden introducirse previamente o durante la edicin del programa. Esta base de smbolos, controlada por el editor de VARIABLES del programa, es general a la estacin autmata.

Nota Determinados mdulos de funciones especficas permiten la simbolizacin automtica de los objetos que les estn asociados.

___________________________________________________________________________ 1/5

1.1-6 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/6

A
Generalidades PL7
1

1.1-7 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 veces Variables pblicas Variables privadas 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/7

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 %XMjy 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 Bitsextradosdepals. 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/8

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

7 0

2
Base

2
Base

10

Extensin

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

Mdulo Nmero de va: i

Semiformato 4S 8S 0a3 0a7

12 E 0 a 11

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

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

Posicin y N va (x = posicin)

x.0 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 objetos del mismo tipo asociados a una misma va. ERR: indica uno 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.
%I1.5 %I3.8 TSX 37-10 %I5.MOD.ERR %IW8.0

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 n0 del mdulo de semiformato situado en la posicin n 8.

2
Base

Extensin %Q4.5

___________________________________________________________________________ 1/10

A
Generalidades PL7
1

1.2-3 Direccionamiento de objetos de mdulos E/S del TSX 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/11

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


Racks TSX Direccin rack : x RKY 6 0 RKY 8 RKY 12 RKY 4EX RKY 6EX RKY 8EX RKY 12EX 0 00 a 06 0 00 a 10 0a7 00 a 02 0a7 00 a 04 0a7 00 a 06 0a7 00 a 10

Posicin mdulo: y 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 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: %I102.5 : 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.

___________________________________________________________________________ 1/12

A
Generalidades PL7
1

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

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 %MDi los bits menos significativos y la palabra %MWi+1 los ms significativos de la palabra %MDi). %MFk entre la palabra de simple longitud %MWi 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.

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

%MB1 %MB3 %MB5 %MB7

%MB0 %MB2 %MB4 %MB6

Ejemplos: %MD0 corresponde a %MW0 y %MW1, %MW3 corresponde a %MB7 y %MB6, %KD543 corresponde a %KW543 y %KW544, %MF10 corresponde a %MW10 y %MW11. ___________________________________________________________________________ 1/14

A
Generalidades PL7
1

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 10 Entero base 2 (binario) Entero base 16 (hexadecimal) Flotante Sintaxis 0 o 1 (FALSE o TRUE) 1506 578963 2#1000111011111011011 2#1000111011111011011 1111111011111011111 16#AB20 16#5AC10 -1.32e12 'aAbBcC' Lmite inf. Lmite sup.

simple longitud doble longitud simple longitud doble longitud simple longitud doble longitud

-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#000000000 -3.402824E+38 1.175494E-38 16#FFFF 16#FFFFFFFF -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
Nota: La extraccin de bits de palabras tambin se puede efectuar en palabras indexadas.

___________________________________________________________________________ 1/15

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 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 simple longitud simple longitud en la red simple longitud doble longitud bit j de palabra interna bit j de palabra constante bit j de palabra de entrada bit j de palabra de salida bit j de palabra sistema bit j de palabra comn red 0 Direccionamiento Lmites %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 %MWi:Xj %KWi:Xj %IWi:Xj %QWi:Xj %SWi:Xj %NW{j}k:Xm (1) (1) (1) (1) (1) (1) (1) (1) 0i127 0i126 0i127 0i126 0i249 0j 63 0 i249 0 j31 0 k 3 0i255 0i254 0j15 0j15 0j15 0j15 0j15 0m15 Posibilidades R/W R/W R/W R/W R/W (3) R/W (3) R/W (3) R/W (3) 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 de mdulo de E/S Palabras Grafcet Pal. comunes Palabras sistema Bits extrados de palabras

(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/16

A
Generalidades PL7
1

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 %TMi (i=0 a 63) (1) Contador/ descontador %Ci (i=0 a 31) Palabra Bit Palabra Bit Valor actual Valor de preseleccin Salida temporizador Valor actual Valor de preseleccin Salida desbord. (vaco) Salida preseleccin alcanz. Salida desbord. (lleno) Valor actual Valor de preseleccin Salida monoestable en curso 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. Direccin Acceso en Vase escritura secc. B %TMi.V %TMi.P %TMi.Q %Ci.V %Ci.P %Ci.E %Ci.D %Ci.F %MNi.V %MNi.P %MNi.Q %Ri.I %Ri.O %Ri.F %Ri.E %DRi.S %DRi.Wj %DRi.V %DRi.F %Ti.V %Ti.P %Ti.R %Ti.D 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

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

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 Simple longitud Doble longitud Flotante Simple longitud Simple longitud Direccin %MWi:L %MDi:L %MFi:L %KWi:L %KDi:L %KFi:L

%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 i+L < Nmax-1 (2) Non S
%MB10 8 bits

Palabras constantes

Palabras Grafcet Palabras sistema

%Xi.T:L, %Xj.i.T:L %SW50:4 (3)

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: %MB10:5
Tipo Palabras internas Palabras constantes Direccin %MBi:L (5) %KBi:L (5) Tamao mximo 1<i+L<Nmx (4) 1<i+L< Nmx (4)

%MB14

Acceso en escritura S S

(3) Nmx = nmero mximo definido en la configuracin del programa. (4) slo las palabras %SW50 a %SW53 pueden ser direccionadas en forma de tabla. (5) i debe ser par. ___________________________________________________________________________

1/18

A
Generalidades PL7
1

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] %Xi .T[ndice] %Xj.i.T[ndice] ndice[ndice]:L %MDi[ndice]:L %KWi[ndice]:L %KDi[ndice]:L 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) 0<i+ndice<Nmx (2) 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) Acceso escritura 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 <Objeto> [ndice]:L

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

___________________________________________________________________________ 1/19

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

A
Generalidades PL7
1

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

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

A
Generalidades PL7
1

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

TSX 37-21/22 (con tarjeta PCMCIA)


RAM interna Datos Flash EPROM interna rea inutilizable

Guardado %MW

Programa

Constantes

Datos : datos dinmicos de aplicacin y sistema, Programa : descriptores y cdigo ejecutable de tareas, Constantes: palabras constantes, valores iniciales y configuracin de las E/S. Observacin Las memorias RAM utilizan como respaldo bateras de niquel-cadmio soportadas por el mdulo procesador en cuanto a la memoria bit y RAM interna.
(1) La transferencia de la aplicacin desde la memoria FLASH EPROM hacia la memoria RAM se efecta automticamente cuando la aplicacin se pierde en la RAM (fallo al guardar o ausencia de batera). Tambin se puede solicitar una transferencia manual desde un terminal de programacin.

___________________________________________________________________________ 1/23

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

Datos RAM interna Programa Constantes Tarjeta memoria RAM o FLASH EPROM RAM interna

Datos

Programa

Constantes

Datos

: datos dinmicos de aplicacin y datos del sistema (el sistema reserva un rea de memoria RAM de un mnimo de 5 Kpalabras, vase la seccin B-captulo 8) Programa : descriptores y cdigo ejecutable de tareas, Constantes : palabras constantes, valores iniciales y configuracin de las E/S. 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/24

A
Generalidades PL7
1

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

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-10 Bits sistema Bits de E/S Bits internos %SI %I/Qx %Mi 128 408 (1) 256 TSX 37-21/22 128 472 (1) 256 TSX 57-10 128 512 4096 (1) TSX 57-20 128 1024 4096 (1)

Bits de etapas %Xi (3) 96 128 128 128 (1) Con el bus AS-i (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. El nmero total de bits (bits sistema + bits de E/S + bits internos) no deber sobrepasar 4096. (3) Total de los bits de etapas 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/26

A
Generalidades PL7
1

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

%M1
P

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

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.

___________________________________________________________________________ 1/28

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

A
Generalidades PL7
1

1.3-5 Autmatas TSX 37-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 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


Procesador Tarj. de memoria Tamao total Datos(%MWi) Programa 100% boleano Lenguaje LD 3,8 Kinst. 6,6 Kinst. 13,7 Kinst. 28,5 Kinst. 6,3 Kinst. 13,6 Kinst. 28,4 Kinst. 36,1 Kinst. 24,1 Kinst. 3710 14Kpals. 20Kpals. 3721 32Kpals. 52Kpals. 37 22 32Kpals. 52Kpals. 17,5Kpals

64Kpals. 84Kpals.

20Kpals

64Kpals 84Kpals 17,5Kpals

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

17,5Kpals 0,5Kpals(1)

Lenguaje LDIL 4,9 Kinst. 8,4 Kinst. 17,5 Kinst. 36,3 Kinst. 8,1 Kinst. 17,3 Kinst. Lenguaje LDST 3,3 Kinst. 5,6 Kinst. 11,7 Kinst. 24,2 Kinst. 5,4 Kinst. 11,5 Kinst. Programa 90% boleano LenguajeLDLD 3,1 Kinst. 5,4 Kinst. 11,8 Kinst. 24,7 Kinst. 5,2 Kinst. 11,6 Kinst. Lenguaje IL Lenguaje ST Programa 65% boleano LenguajeLDLD 2,2 Kinst. 4,0 Kinst. 9,1 Kinst. LenguajeLDIL 18,9 Kinst. 3,9 Kinst. 8,9 Kinst. 3,8 Kinst. 6,6 Kinst. 14,3 Kinst. 30,0 Kinst. 6,3 Kinst. 14,2 Kinst. 2,9 Kinst. 5,1 Kinst. 11,1 Kinst. 23,3 Kinst. 4,9 Kinst. 11,0 Kinst.

24,5 Kinst. 29,8 Kinst. 23,2 Kinst.

18,8 Kinst. 21,2 Kinst. 21,2 Kinst. 512 pals.

2,5 Kinst. 4,6 Kinst. 10,3 Kinst. 21,3 Kinst. 4,4 Kinst. 10,1 Kinst.

LenguajeLDST 2,5 Kinst. 4,6 Kinst. 10,3 Kinst. 21,3 Kinst. 4,4 Kinst. 10,1 Kinst. Constantes (1) 128 pals. 128 pals. 256 pals. 512 pals. 128 pals. 256 pals.

(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/29

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


Procesador Tarj. de memoria 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) 3,7/8,5K 3,8/9,7 K 4,4/9,7K 128 pals. 6,8/6,6K 6,9/7,5 K 8,0 /7,5K 128 pals. 16,9/16,5 K 8,7/13,7K 6,8/6,8K 17,3 /18,7K 8,9/14,1K 6,9/6,9K 20,0/18,7 K 10,3/16,3K 8,0/8,0K 256 pals. 512 pals. 128 pals. 16,8/16,8K 17,2/17,2K 19,9/19,9K 256 pals. 37,0/37,0K 37,9/37,9K 43,8/43,8K 512 pals. 5,3/11,6K 8,8/8,8K 21,6/21,6 K 11,6/17,6K 8,7/8,7K 21,6/21,6K 47,7/47,5K 56,6/56,7K 45,4/45,4K 8,8/16,1K 12,4/12,4K 27,2/27,2 K 16,1/23,5K 12,4/12,4K 27,2/27,0K 56,8/56,8K 72,4/72,4K 48,2/48,2K TSX-PCX57 10 / PMX 57 10 32K 64K 32K / 48K 1K(1) 32K / 48K 26K 32K / 48K 26K TSX-PMX 5720 / TSX 57 25 32K 64K 48K / 64K 1K(1) 48K / 64K 30,5K 48K / 64K 30,5K

128K 48K / 64K 30,5K

11,2/20,6 K 15,8/15,8 K 34,7 /34,7K 20,5/29,9K 15,8/15,8K 34,7/34,4K 13,7/13,7K 10,6 /10,6K 23,1/23,1 K 13,7/19,9K 10,5/10,5K 23,1/23,0K

6,3/14,2 K 10,5/10,7 K 25,9 /26,3K 13,9/21,1K 10,4/10,4K 25,8/25,8K 5,0/11,0K 8,4 /8,3K 20,7/20,4 K 11,1/16,9K 8,4/8,4K 20,7/20,7K

(1) Tamao predeterminado, que puede ampliarse en detrimento del tamao de la aplicacin. Notas : esta tabla menciona para cada caracterstica 2 valores separados por una "/", que estn asociados respectivamente a los 2 tipos de procesador (separados por una "/" en la cabecera de la tabla). el comando Autmata/Asignacin de memoria del software PL7 permite conocer la reparticin de la memoria del autmata.

___________________________________________________________________________ 1/30

A
Generalidades PL7
1

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


Procesador Tarj. de memoria 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) 13,7/18,8K 14,1/19,2 K 16,3/22,2K 256 pals. 6,8 K/6,8 K 6,9 K/6,9 K 8,0 K/8,0 K 256 pals. 16,8 K/16,8 K 17,2 K/17,2 K 19,9 K/19,9 K 256 pals. 37,0K/37,0K 37,9K/37,9K 43,8K/43,8K 1024 pals. 63,1K/63,1K 61,4K/61,4K 63,8K/63,8K 1024 pals. 18,0/24,4K 21,5/29,2 K 17,2/23,4K 8,7 K/8,7 K 10,4 K/10,4 K 8,4 K/8,4 K 21,6 K/21,6 K 25,8 K/25,8 K 20,7 K/20,7 K 47,5K/47,5K 56,7K/56,7K 76,8K/76,8K 73,9K/73,9K 23,5/30,8K 29,9/39,3 K 19,9/26,2K 12,4 K/12,4 K 15,8 K/15,8 K 10,5 K/10,5 K 27,2 K/27,2 K 34,7K/34,7K 23,1 K/23,1 K 56,8K/56,8K 72,4K/72,4K 48,2K/48,2K 90,5K/90,5K 83,6K/83,6K 74,6K/74,6K TSX/PMX 5730 / TSX 57 35 32K 64K / 80K 1K(1) 64K / 80K 30,5K

64K 64K / 80K 30,5K

128K 64K / 80K 30,5K

256K 64K / 80K 30,5K

45,49K/45,49K 76,0K/76,0K

(1) Tamao predeterminado, que puede ampliarse en detrimento del tamao de la aplicacin. Notas : esta tabla menciona para cada caracterstica 2 valores separados por una "/", y estn asociados respectivamente a los 2 tipos de procesador (separados por una "/" en la cabecera de la tabla). el comando Autmata/Asignacin de memoria del software PL7 permite conocer la reparticin de la memoria del autmata.

___________________________________________________________________________ 1/31

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

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

1.4-3 Arranque en fro

Adquisicin de entradas

Parada procesador Contexto aplicacin guardado

Ejecucin del programa TOP Reanud. alimentacin Si %S0 = 1, tratamiento eventual del arranque en fro

Autopruebas de la configuracin

S
Corte de corriente > microcorte

No
BOT

Inicializacin de la aplicacin

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

A
Generalidades PL7
1

1.5

Estructura software monotarea

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.
MAST Sas(LD)

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

Secado(LD) SR0 Limpieza(ST)

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.

Nota: en el arranque en fro las condiciones de ejecucin estn en 0, y todas las secciones a las cuales se asocia una condicin estn inhibidas.

___________________________________________________________________________ 1/35

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 (8 pages) pgs)

Pg. Grafcet

Rceptivits Receptividades Actions Acciones Subprograma Sous-programme SRi

Tratamiento Traitement postrieur posterior POST POST

Subprograma Sous-programme SRi SRi

___________________________________________________________________________ 1/36

A
Generalidades PL7
1

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

Tratamiento del programa %Q Ciclo n+1

T.I. Tratamiento interno: el sistema supervisa implcitamente el autmata (gestin de los bits y palabras sistema, actualizacin de los valores actuales del reloj-calendario 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 tratamiento del programa de aplicacin y la actualizacin de las salidas, en este orden. 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 posicin de "retorno" , - modo de conservacin: las salidas conservan los valores actuales o se modifican desde el terminal. 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. ___________________________________________________________________________

Tratamiento interno

(1)

Adquisicin de entradas RUN STOP

Tratamiento del programa

Actualizacin de salidas

1/37

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

Tratamiento del programa %Q T.I. Perodo

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

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

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: 250 ms, valor mximo: 500 ms). 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/40

A
Generalidades PL7
1

1.6

Estructura multitarea

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

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

Vig_Sec(LD)

Alarma_Horno(ST) SR0

Alarma_Limpieza(ST)

Secado(LD)

SR0

Limpieza(ST)

___________________________________________________________________________ 1/41

Ejemplo de estructura de programa multitarea

___________________________________________________________________________ 1/42

A
Generalidades PL7
1

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

Suceso Rpida Maestra Sistema


E T ETS ETS ETS E

TS

ETS

T S

E 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/43

1.6-3 Tarea rpida Esta tarea ms prioritaria 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/44

A
Generalidades PL7
1

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

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-10 (EVT0 a EVT7), 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 (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 16 entradas 0 a 3 de los mdulos DEY 16 FK, vas de los contadores, vas de los mdulos de comando de eje CAY, vas de los mdulos de comando paso a paso CAY, 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-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/46

A
Generalidades PL7
1

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

Nota: En el caso de los mdulos TON TSX DEY16FK o TSX DMY28FK, la entrada que genera el suceso no debe ser probada en el tratamiento de sucesos (no se actualiza el valor). La prueba del flanco que genera el suceso se debe efectuar en la palabra de estado: %IWxy.i:X0 = 1 --> flanco ascendente %IWxy.i:X1 = 1 --> flanco descendente ___________________________________________________________________________

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

Adquisicin implcita de entradas declaradas en la tarea EVTi

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

Tratamiento del suceso

el tratamiento debe ser el ms corto posible. se actualizan todas las salidas declaradas por el usuario en la tarea EVTi. Para que puedan actualizarse, tambin deben declararse las salidas asociadas a la va que activ el suceso.

Actualizacin implcita de salidas declaradas en la tarea EVTi

1/47

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 N mx. de intercambios fun. esp. P57-1 (32 EVTs) P57-2/3 (64 EVTs) 32 intercambios 8 intercambios 4 intercambios 128 intercambios 16 intercambios 16 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.2 del manual de funcin especfica.

___________________________________________________________________________ 1/48

A
Lenguaje de contactos Captulo 2 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 Elementos de accin Bobina directa Bobina inversa Bobina de conexin Bobina de desconexin Salto condicional a otra red (JUMP)
S 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. 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
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.

Bloque 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


%L

Lneas 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Barras de potencial

Area de prueba Area de accin

___________________________________________________________________________ 2/5

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.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
%M16 %T3.D %I5.4 %C13.E

%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

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

A
Lenguaje Lista de instrucciones Captulo 3 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


P N

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 funcin estndar 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 [.......] 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.

Ejemplo: [%MW10:=%MW0+100]

___________________________________________________________________________ 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

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

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 %I1.1 %I1.2 %Q2.0 %Q2.1

MRD MPP

%I1.3 %I1.4

%Q2.2 %Q2.3

LD AND MPS AND ST MRD 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

%M1 %I1.4 %M10

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

%I1.3 %M0

%M0

LD MPS AND MPS AND( OR ) ST MPP AND ST MRD AND ST MPP AND ST

%I1.0 %I1.1

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

Reglas de ejecucin de un programa en Lista de instrucciones

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 resultado booleano = estado del bit %I1.1 resultado booleano = Y del resultado booleano previo y del estado del bit %M0 OR( %M10 resultado booleano = estado del bit %M10 AND %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. ST %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

A Captulo 4 4 Lenguaje Literal estructurado


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

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

4.2

Estructura de un programa

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

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

Funcionamiento
Inicio de IF

acciones; END_IF;

verificada

ACCIONES
fin de IF

Ejemplo:

___________________________________________________________________________ 4/9

Forma general
Sintaxis IF condicin 1 THEN
verificada

Funcionamiento
Inicio de IF

CONDICION 1
no verificada

accin 1;
ACCION 1

ELSIF condicin 2 THEN accin 2;

verificada

CONDICION 2
no verificada

ACCION 2

ACCION 3
fin de IF

ELSE accin 3; END_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
4

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

WHILE condicin DO
CONDICION

no verificada

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
4

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

4.3

Reglas de ejecucin de un programa literal

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
4

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

A Captulo Lenguaje Grafcet 5 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 cycle ciclo par por ciclo


Dosage Dosificacin 10

Squence Dosage Secuencia Dosif. fin de dosage fin de dosificacin

Llenado Remplissage

20

Secuencia Llenado Squence Remplissage


fin remplissage finde llenado

Mlange Mezcla

30

Secuencia Mezcla Squence Mlange


fin fin de demlange mezcla

Evacuacin Evacuation

40

Squence Evacuacin Evacuation Secuencia fin find'vacuation 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 %S22 Bits sistema asociados al Grafcet (1) %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 TSX 37-10 Predet. Etapas del grfico principal Macroetapas Etapas de macroetapas Total de etapas Etapas activas simultneamente Transiciones vlidas simultneamente 96 0 0 96 16 Mx. 96 0 0 96 96 TSX 37-20 TSX 57 Predet. 128 0 0 128 20 Mx. 128 0 0 128 128 Predet. 128 8 64 640 40 Mx. 250 64 250 1024 250

20

192

24

256

48

400

___________________________________________________________________________ 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

Macro-tape 0 Pg. 8 8 pginas 250 etapas mximo + Etapa IN

Pg.3 Pg. 2 Pg. 1

Pg. 3 + Etapa OUT Pg. 2 + Macroetapas 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 Pg. 1 + Etapa OUT Macroetapa 63 Pg. 8 + Macroetapas

Pg. 3 Pg. 2

Pg. 3 Pg. 2 Pg. 1

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

___________________________________________________________________________ 5/8

A
Lenguaje Grafcet
5

5.5

Representacin del Grafcet

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
5

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
5

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 IN 1 11

M1 2

12 13

OUT

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.

IN 1 11 M1 2 12 13

OUT

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

IN

IN 1

M0 1

M1

M4

1 2

M2

12

OUT
Hacia un anlisis detallado Vers une analyse dtaille

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

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

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
5

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

5.9

Organizacin de la seccin Grafcet

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 Lenguaje de contactos, lista de instrucciones o literal

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

___________________________________________________________________________ 5/23

5.9-2 Tratamiento preliminar Introducido en el lenguaje de contactos, en el lenguaje Lista de instrucciones o en el lenguaje Literal, el tratamiento preliminar se explora en su totalidad desde arriba hacia abajo. Ejecutado antes de los tratamientos secuencial y posterior, permite tratar todos los sucesos que tienen una influencia sobre stos: gestin de las reanudaciones de alimentacin y de las reinicializaciones, puesta a cero o preposicionamiento de los grficos. Es pues nicamente en el tratamiento preliminar que actuar sobre los bits asociados a las etapas (puesta a 0 o a 1 de los bits etapas %Xi por las instrucciones Set y Reset). Preposicionamiento del Grafcet Puede ser necesario preposicionar un Grafcet cuando el funcionamiento pasa de la marcha normal a una marcha especial o cuando aparece un incidente (ejemplo: falla que causa una marcha deteriorada). Esta operacin interviene en el desarrollo normal del ciclo de la aplicacin; debe pues efectuarse con precaucin. El posicionamiento puede comprender la totalidad o una parte del tratamiento secuencial: utilizando las instrucciones SET, RESET, mediante la puesta a cero general (%S22) y luego, en el ciclo siguiente, posicionamiento a 1 de las etapas.
Nota Si se trata de la puesta a cero de una etapa cuando sta se desactiva, las acciones no se ejecutan.

___________________________________________________________________________ 5/24

A
Lenguaje Grafcet
5

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
5

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 transiciones memoriza, 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
5

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

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

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

A Captulo Bloques de funcin DFB 6 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) son programados en lenguaje literal por el programador y se utilizan en lenguaje de contactos LD, en literal ST y en el lenguaje lista de instrucciones IL.

___________________________________________________________________________ 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

6.2

Concepcin de un bloque de funcin Tipo DFB

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

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. Constituye una sola fase literal de longitud no limitada. Todas las instrucciones y funciones avanzadas del lenguaje son premisas 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 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, - 2 tipos de proteccin: la proteccin de lectura 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 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.
Notas: Durante la importacin de una seccin en una aplicacin, es necesario importar los tipos DFB utilizados 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 Booleana Numrica Tabla Salidas 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.

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 Preset Presel BOOL Done

%Q2.1

% I1.1
BOOL Co unt

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

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

Pgina
B1/1 B1/1 B1/1 B1/2 B1/2 B1/3 B1/4 B1/5 B1/6 B1/7 B1/8

1.2

1.3

Bloques de funcin predefinidos B1/9 1.3-1 Principio de programacin de bloques de funcin predefinidos B1/9 1.3-2 Bloque de funcin temporizador %TMi (Timer) B1/10 1.3-3 Bloque de funcin contaje/descontaje %Ci B1/14 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 para enteros 1.4-5 Instrucciones lgicas 1.4-6 Expresiones numricas B1/17 B1/17 B1/19 B1/20 B1/23 B1/25 B1/27

1.4

Instrucciones de programa B1/28 1.5-1 Llamada a un subprograma B1/28 1.5-2 Regreso del 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

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 B2/29 B2/31 B2/33 B2/34 B2/35 B2/35 B2/36 B2/38 B2/39

2.2

2.3 2.4 2.5

2.6

Instrucciones de conversin numrica 2.6-1 Instrucciones de conversin BCD <--> Binario 2.6-2 Instrucciones de conversin Entero <--> Flotante 2.6-3 Instrucciones de conversin Gray --> entero 2.6-4 Instrucciones de conversin palabra <--> doble palabra Instrucciones para tablas de palabras 2.7-1 Generalidades 2.7-2 Asignacin de tablas de palabras 2.7-3 Instrucciones aritmticas para tablas 2.7-4 Instrucciones lgicas para tablas

2.7

___________________________________________________________________________ B/2

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

Captulo

2.7-5 2.7-6 2.7-7 2.7-8

Pgina Funcin de suma para tablas B2/40 uncin de comparacin de tablas B2/41 Funciones de bsqueda para tablas B2/43 Funciones de bsqueda de valores mx. y mn. para tablas B 2 / 45 2.7-9 Nmero de ocurrencias de un valor en una tabla B2/46 2.7-10 Funciones de desplazamiento circular para tablas B2/47 2.7-11 Funciones de ordenacin para tablas B2/49 2.7-12 Funcin de clculo de longitud de tablas B2/50
B2/51 B2/51 B2/52 B2/53 B2/54 B2/54 B2/56 B2/57 B2/58 B2/59 B2/60 B2/61 B2/63 B2/65 B2/67 B2/69 B2/70 B2/71 B2/72 B2/72 B2/74 B2/75 B2/77 B2/77 B2/78 B2/79

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 Comparaciones alfanumricas 2.8-4 Funciones de conversin Numrico <---> ASCII 2.8-5 Conversiones Binario --->ASCII 2.8-6 Conversiones ASCII ---> Binario 2.8-7 Conversiones Flotante ---> ASCII 2.8-8 Conversiones 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-7 Lectura del da de la semana

2.9

___________________________________________________________________________ B/3

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

Captulo

Pgina 2.9-8 Agregar/quitar una duracin en una fecha B2/80 2.9-9 Agregar/quitar una duracin en una hora del da B2/81 2.9-10 Desviacin entre dos fechas (sin hora) B2/83 2.9-11 Desviacin entre dos fechas (con hora) B2/84 2.9-12 Desviacin entre dos horas B2/85 2.9-13 Conversin de una fecha (sin hora) en cadena de caracteres B2/86 2.9-14 Conversin de una fecha completa en cadena de caracteres B2/87 2.9-15 Conversin de una duracin en cadena de caracteres B2/88 2.9-16 Conversin de una hora del da en cadena de caracteresB2/89 2.9-17 Conversin de una duracin en HHHH:MM:SS B2/91
B2/92 B2/92 B2/93 B2/94 B2/96

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 B2/98 2.11-1 Desplazamientos en palabras con recuperacin de bits desplazadoss B2/98 2.11-2 Contaje/descontaje con indicacin de rebasamiento B2/101 2.11-3 Desplazamientos circulares B2/103 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 3 Bits y palabras sistema 3.1 Bits sistema 3.1-1 Lista de bits sistema 3.1-2 Descripcin detallada de bits sistema B2/105 B2/105 B2/105 B2/107 B2/108 B2/109 B3/1 B3/1 B3/1 B3/3

___________________________________________________________________________ B/4

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

Captulo
3.2 Palabras sistema 3.2-1 Lista de palabras sistema 3.2-2 Descripcin detallada de las palabras sistema

Pgina
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 B8/6 B8/8 B8/8 B8/9 B8/9 B8/11 B8/14

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

___________________________________________________________________________ B/5

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

Captulo
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.11 Funciones especficas y funcin Orphe 8.3.12 Entradas/salidas explcitas 8.3.13 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/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/51

8.4

8.5

___________________________________________________________________________ B/6

Descripcin de las instrucciones de base 1 1 Captulo


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

B
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

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 tiempo

%I1.0

%I1.0

Result. booleano

1 ciclo de tarea tiempo

Resultado booleano

1 ciclo de tarea tiempo

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

B
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

B
1.2-4 Instrucciones de asignacin Estas instrucciones corresponden a: 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 %Q2.4 R

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

S LD R

%I1.2

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 Operando %I,%Q,%M,%S,%:Xk

Cronograma
S R

ST

STN

STN %I,%Q,%M,%S,%:Xk
S R

S R

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

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

Nota: los parntesis son opcionales, pero facilitan la legibilidad del programa.

Operandos autorizados
Cdigo
AND

Cronograma
P N

Operando
%I,%Q,%M,%S,%BLK,%:Xk, %Xi (1)
AND %I1.1 %M1 %Q2.3 ANDN %M2 %I1.2 %Q2.2

ANDR %I1 .3 %I1.4

ANDF %M3 %I1.5

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


P N

ANDR %I,%Q,%M ANDF %I,%Q,%M

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

OR %I1.1 %M1

ORN %M2 %I1.2 %Q2.2

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

ORF %M3 %I1.5 %Q2.5

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


P

ORF %I,%Q,%M
N

%Q2.3

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

1/7

B
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

B
1.3 Bloques de funcin predefinidos
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...).
%TM1 IN Q SR2 c

%I1.1

%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:
%TMi Q IN MODE:TON TB: 1mn TM.P:9999 MODIF:Y

Bloque temporizador

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.

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 a 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 a 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 Lenguaje Lista de instrucciones


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

%I1.1 IN

%TM1 Q TON

%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 R %C8 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

B
1.4 Tratamientos numricos para enteros
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).
%I1.0 %Q2.2 %MW50>10

Estos bloques pueden contener: una expresin simple, ej.: OP3:=OP1+OP2, una expresin compleja, ej.: OP5:=(OP1+OP2)*OP3-OP4.
%I1.2
N

%MW10:=%KW0+10

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

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

ex 1

ex 2

ex 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

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

%SW112:=%MW100 %I3.2 %MD0:=%KD0[%MW20]

ex 1 ex 2

Lenguaje Literal estructurado


%I3.3 P %MW10:=100

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 para enteros Estas instrucciones permiten realizar una operacin aritmtica entre dos operandos o en un operando. + : - : * : / : REM suma de dos operandos, resta de dos operandos, multiplicacin de dos operandos, divisin de dos operandos, : resto de la divisin de 2 operandos. SQRT INC DEC ABS : : : : raz cuadrada de un operando, aumento de un operando, disminucin de un operando, valor absoluto de un operando.

Estructura Lenguaje de contactos


%M0 %MW0:=%MW10+100 %I3.2 %MW0:=SQRT(%MW10) %I3.3 P INC %MW100

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]

%MW0:=%KW5 OR %MW10 %I1.3 %MW102:=NOT %MW100

LD %I1.3 [%MW102:= NOT %MW100]

___________________________________________________________________________ 1/25

B
Lenguaje Literal estructurado
IF %M0 THEN %MW0 := %MW10 AND 16#FF00 ; END_IF ; %MW0 := %KW5 OR %MW10 ; IF %I1.3 THEN %MW102 := NOT %MW100 ; END_IF ;

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

B
1.4-6 Expresiones numricas 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

B
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

B
1.5-2 Regreso del subprograma La instruccin de regreso del 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

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

%L10 %M20

%M5

%I1.0

%I1.2

%Q2.1

%M20 %M5 %I1.0 %I1.2 %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

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

Lenguaje Lista de instrucciones


LD JMPCN LDN ST .............. %L20 : LD ST %M2 %L20 %I2.0 %Q3.5

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

%L20 %M30

%M6

%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

%Q3.5

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

%M20 %M5

%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:
S

Valor actual %MNi.V: Salida "en curso" R:

%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

B
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

B
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

B
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 : F E

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

B
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

B
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

B
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

B
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

%I1.1
E

%T7
D TB =1s C R %Ti.P = 120

%Q2.1
E,C R PRESET D %Q2.1

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

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

%I1.3

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

%Q2.5

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

B
Retardo acumulado a la desconexin Lenguaje de contactos
% I1.0

%I1.0
E

%T12
D

%Q2.4

E %I1.1

%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

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

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 En el estado 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

B
2.4 Instrucciones de desplazamiento
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

B
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.#DN -1.#INF 1.#DN 1.#INF

-3.402824e+38

-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

B
La precisin de representacin es de 2-24. 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

B
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

B
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

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.6
2.6-1

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 Lenguaje Lista de instrucciones
LD TRUE [%MW0:= BCD_TO_INT(%MW10)] LD %I1.2 [%MW10:= INT_TO_BCD(%KW9)]

%MW0:=BCD_TO_INT(%MW10) %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/29

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

Descripcin de las instrucciones avanzadas

B
Reglas de utilizacin 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. 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 Lenguaje Lista de instrucciones
LD TRUE [%MF0:= INT_TO_REAL(%MW10)] LD %I1.8 [%MD4:= REAL_TO_DINT(%MF9)]

%MFO:=INT_TO_REAL(%MW10) %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/31

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:

conversin palabra entero --> flotante 147 --> 1.47e+02

Operador Operandos
Tipo Palabras indexables Palabrasno indexables

Op1:=DINT_TO_REAL (Op2)

Operando 1 (Op1)

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

Palabras flotantes indexables

%MF

Ejemplo:

conversin doble palabra entero --> flotante 68905 000 --> 6.8905e+07

Operador

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

Descripcin de las instrucciones avanzadas

B
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/33

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

Descripcin de las instrucciones avanzadas

B
2.7 Instrucciones para tablas de palabras
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/35

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

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]
%MW0:5:=%MW11 %I3.3 P %MW0:5:=%KW0:5

%MW0:5:=100 %I3.2

ej 1 ej 2

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

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

Descripcin de las instrucciones avanzadas

B
2.7-4 Instrucciones lgicas para tablas 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/39

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)

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

%MW %QW,%SW,%NW %MD:L,%KD:L %MD %QD,%SD %MF:L,%KF:L %MF

Tablas de dobles palabras indexables Dobles palabras indexables Dobles palabras no indexables Tablas de flotantes indexables Palabras flotantes indexables

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

Descripcin de las instrucciones avanzadas

B
2.7-6 uncin 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/41

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

Descripcin de las instrucciones avanzadas

B
2.7-7 Funciones de bsqueda para tablas 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/43

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 Resultado (Res) Tabla (Tab) %MF:L,%KF:L %MF,%KF Valores inm. Expr. num. Valor (Val)

Palabras flotantes no indexables %QW,%SW %NW

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

Descripcin de las instrucciones avanzadas

B
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/45

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. %MD:L,%KD:L

Tablas de palabras indexables Palabras (dobles) indexables Palabras (dobles) no indexables %MW %QW,%SW,%NW

%MD,%KD Val. inm.%QD, %ID,%SD Expr. num. %MF:L,%KF:L

Tablas de flotantes Palabras (flotantes) indexables %MW

%MF,%KF Val. inm. Expr. num.

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

___________________________________________________________________________ 2/46

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

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

Descripcin de las instrucciones avanzadas

B
2.7-11 Funciones de ordenacin para tablas 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/49

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

Descripcin de las instrucciones avanzadas

B
2.8 Instrucciones para cadenas de caracteres
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/51

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 Lenguaje Lista de instrucciones
LD TRUE [ %MB30:12:= 'mise_en_run']

OPERATE

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

Descripcin de las instrucciones avanzadas

B
2.8-3 Comparaciones alfanumricas 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
COMPARE

Lenguaje Lista de instrucciones


%M10

%MB20:12< %MB40:12

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

B
2.8-4 Funciones de 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 Conversiones 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/54

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

B
2.8-6 Conversiones 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
OPERATE

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

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

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

B
2.8-7 Conversiones Flotante ---> ASCII 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 14 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 undcimo, el signo del exponente en el duodcimo. Estructura Lenguaje de contactos
OPERATE

Lenguaje Lista de instrucciones


LD TRUE [ %MB20:15:= REAL_TO_STRING (%MF30)]

%MB20:15:=REAL_TO_STRING(%MF30)

Lenguaje Literal estructurado


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

Ejemplo:

%MB20:15:= REAL_TO_STRING (%MF30)

con %MF30 = - 3.234718 e26

==> resultado
%MB 20
'-'

21
'3'

22
'.'

23
'2'

24
'3'

25
'4'

26
'7'

27
'1'

28
'8'

29
'0'

30
'e'

31
'+'

32
'2'

33
'6'

34

Sintaxis Operador Operandos


Tipo Tablas de 14 bytes + terminador Palabras indexables Palabras no indexables Resultado %MB:15 %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/57

B
2.8-8 Conversiones 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 14 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 undcimo, el signo del exponente en el duodcimo. Por ejemplo, el valor 3.12 debe indicarse bajo la forma '+3.1200000e+00'. Estructura Lenguaje de contactos
OPERATE

Lenguaje Lista de instrucciones


LD TRUE [ %MF18:= STRING_TO_REAL (%MB20:14)]

%MF18:=STRING_TO_REAL(%MB20:14)

Lenguaje Literal estructurado


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

Ejemplo: con
%MB

%MF18:= STRING_TO_REAL (%MB20:14)

20
'-'

21
'3'

22
'.'

23
'2'

24
'3'

25
'4'

26
'7'

27
'1'

28
'8'

29
'0'

30
'e'

31
'+'

32
'2'

33
'6'

34

==> resultado Sintaxis Operador Operandos


Tipo Palabras indexables Tablas de 14 bytes

%MF18 = - 3.234718e26

Res:= STRING_TO_REAL (cadena)

Resultado %MF

(Res)

Cadena

%MB:14, %KB:14 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 14 caracteres es errneo. ___________________________________________________________________________ 2/58

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

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

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

B
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/62

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 21
'i'

22
's'

23
'e'

24
'_'

25
'e'

26
'n'

27
'_'

28
'r'

29
'u'

30
'n'

31

Cadena 1 'm'
%MB 30

31
't'

32
'o'

33
'p'

34

35
'r'

36
'u'

37
'n'

38

Cadena 2 's'
%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/63

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

Descripcin de las instrucciones avanzadas

B
2.8-13 Extraccin de una subcadena de caracteres 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/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. 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/66

Descripcin de las instrucciones avanzadas

B
2.8-14 Extraccin de caracteres 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 Expr. numrica Resultado %MB:L (Res) Cadena %MB:L,%KB:L Valor inm. %MW,%KW, %Xi.T %IW,%QW,%SW,%NW Valor inmediato, Longitud (long)

___________________________________________________________________________ 2/67

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

Descripcin de las instrucciones avanzadas

B
2.8-15 Comparacin de dos cadenas de caracteres 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
OPERATE

Lenguaje Lista de instrucciones


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

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

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 Resultado %MW %QW,%SW,%NW. %MB:L,%KB:L Valor inmediato (Res) Cadenas 1 y 2

Res:=FIND (cadena1, cadena2)

Nota Una longitud o una posicin negativa se interpreta como igual a 0.

___________________________________________________________________________ 2/70

Descripcin de las instrucciones avanzadas

B
2.8-17 Longitud de una cadena de caracteres 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/71

B
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/72

Descripcin de las instrucciones avanzadas

B
Formato Hora del da (tipo TOD) 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/73

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

Descripcin de las instrucciones avanzadas

B
2.9-3 Funcin reloj calendario 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 de perodo 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-minutossegundos) 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-minutossegundos) en BCD formato hora del da (tipo: TOD). Valores lmites: 00:00:00, 23:59:59

Fecha de inicio

DBEG

Fecha de fin

DEND

Da de la semana

WEEK

Hora de inicio

HBEG

Hora de fin

HEND

___________________________________________________________________________ 2/75

B
Estructura Lenguaje de contactos
OPERATE

Lenguaje Lista de instrucciones


LD TRUE [SCHEDULE %KD5,%Q0.0)]

(%KW0,%KW1,%KW2,%KD3,

SCHEDULE (%KW0,%KW1,%KW2,%KD3,%KD5,%M0)

Lenguaje Literal estructurado


SCHEDULE ( 16#0501, 16#1031, 2#0000000001111100, 16#08300000, 16#18000000, %Q0.0) ; (* fecha de inico: 1 mayo*) (* fecha de fin: 31 octubre*) (* lunes a viernes*) (* hora de inicio: 8h30*) (* hora de fin: 18h*) (* resultado en: %Q0.0*)

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

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

B
2.9-4 Lectura de la fecha sistema 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
OPERATE

Lenguaje Lista de instrucciones LDR %M7 [%MW2:= 16#4300] [%MW3:= 16#1732] [%MW4:= 16#1124] [%MW5:= 16#1995] [WRTC (%MW2:4)]

%MW2:=16#4300
OPERATE

%MW3:=16#1732
OPERATE

%MW4:=16#1124
OPERATE

%MW5:=16#1995
OPERATE

WRTC (%MW2:4)

___________________________________________________________________________ 2/77

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
OPERATE

Lenguaje Lista de instrucciones


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

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

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
OPERATE

Lenguaje Lista de instrucciones


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

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

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

%MD8:=906
OPERATE

%MW2:4:=ADD_DT(%MW2:4,%MD8)
OPERATE

WRTC (%MW2:4)

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

Descripcin de las instrucciones avanzadas

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

SUB_TOD () = quita una duracin Lenguaje Lista de instrucciones


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

%MD8:= 906
OPERATE

%MD2:=ADD_TOD(%MD2,%MD8)

___________________________________________________________________________ 2/81

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

Descripcin de las instrucciones avanzadas

B
2.9-10 Desviacin entre dos fechas (sin 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
%M7
OPERATE

Lenguaje Lista de instrucciones


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

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

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

Descripcin de las instrucciones avanzadas

B
2.9-12 Desviacin entre dos horas 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/85

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
OPERATE

Lenguaje Lista de instrucciones


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

%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

Tablas de 11 bytes Dobles palabras indexables Dobles palabras no indexables

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

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

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

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

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

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

Descripcin de las instrucciones avanzadas

B
2.9-17 Conversin de una duracin en HHHH:MM:SS 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
OPERATE

Lenguaje Lista de instrucciones


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

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

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

Descripcin de las instrucciones avanzadas

B
2.10-2 Instrucciones lgicas para tablas de bits 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/93

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 bit 0 fila 3 (brow)

Nmero de bits (nbit): 16 + 6

___________________________________________________________________________ 2/94

Descripcin de las instrucciones avanzadas

B
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/95

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

Descripcin de las instrucciones avanzadas

B
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/97

B
2.11 Funciones "Orphe": desplazamientos, contador
2.11-1 Desplazamientos en palabras con recuperacin de bits desplazadoss 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)

LD

TRUE

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

OPERATE WSHRZ_C(%MW20,%MW30,%MW21,%MW10)

LD

TRUE

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

OPERATE DSHR_RBIT(%MD30,%MW40,%MD20,%MD10)

LD

TRUE

[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/98

Descripcin de las instrucciones avanzadas

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

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

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

Descripcin de las instrucciones avanzadas

B
2.11-2 Contaje/descontaje con indicacin de rebasamiento 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

65

___________________________________________________________________________ 2/101

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

Descripcin de las instrucciones avanzadas

B
2.11-3 Desplazamientos circulares 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/103

B
Sintaxis Operadores ROLW, RORW, ROLD, RORD Op1:=Operador(Op2,n)

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.

Operandos ROLD, RORD


Tipo Operando 1 (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 Palabras non indexables %QD,%SD,

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

Descripcin de las instrucciones avanzadas

B
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/105

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 Palabrasindexables Palabras no indexables Dobles palabras indexables Bits %I,%Q, %M, %S %BLK,%:Xk,%X %I,%Q, %M, %S,%:Xk,%X %IW,%QW,%SW Val. inm., Expr. num.,%NW EN PT Q %MW,%KW,%Xi.T %IW,%QW ET PRIV %MW

%MD

___________________________________________________________________________ 2/106

Descripcin de las instrucciones avanzadas

B
2.12-3 Funcin de temporizacin de desconexin FTOF 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/107

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

Descripcin de las instrucciones avanzadas

B
2.12-5 Funcin generador de seal rectangular FPULSOR 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/109

B
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/110

Bits y palabras sistema Captulo


3.1 Bits sistema

33 B

3 Bits y palabras sistema

3.1-1 Lista de bits sistema


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

B
0 0 S o U->S S o U->S

1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0

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

%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

B
Bit %S51 %S59 %S66 (2) %S67 %S68 %S69 (2) %S70 %S73 (2) %S74 (2) %S80 %S90 %S94 (3) %S95 (3) %S96 (2) %S97 (2) %S98 (2) %S99 (2) %S100 %S118 %S119 Funcin 1 = puesta en horadel reloj-calendario 1 = validacin del ajuste de la fecha actual 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 = guardadode los valores de ajuste de bloques DFB 1 = restitucin de los valores de ajuste de bloques DFB 0 = guardadodel programa de aplicacin no vlido 1 = guardadodel programa de aplicacin vlido 0 = guardadode los %MW no vlido 1 = guardadode 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 Protocolo en conector terminal 0 = falla de E/S FIPIO 0 = falla de E/S en rack Est. inicial Gestin(1) 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 S U U S S U S->U U->S U->S U->S S->U U->S U->S S S U U S S S

(1) S = administrado por el sistema, U = administrado por el usuario, U->S = puesto en 1 por el usuario, puesto en 0 por el sistema, S->U = puesto en 1 por el sistema, puesto en 0 por el usuario. (2) nicamente en el TSX 37. (3) nicamente en el TSX/PMX/PCX 57.

___________________________________________________________________________ 3/2

Bits y palabras sistema

B
3.1-2 Descripcin detallada de bits 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 Designacin

Rearranque en fro

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.

%S1

Rearranque en caliente

%S4 %S5 %S6 %S7 %S8

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

Ejemplo: %S4
5ms 5ms

Normalmente en el estado 1, este bit se utiliza para comprobar el cableado cuando elautmataTSX 37est "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. 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.

%S9

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

%S10

___________________________________________________________________________ 3/3

B
Bits sistema %S11 Funcin Designacin

Rebasamiento del watchdog

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. Normalmente en el estado 0. Se pone a 1 en caso de rebasamiento de capacidad durante una operacin en 16 bits, es decir 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. 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.

%S13 %S15

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

%S16

%S17

Bit salido en desplazamiento o informe aritmtico Rebasamiento o error aritmtico

%S18

%S19

Rebasamiento perodo de tarea (exploracin peridica)

___________________________________________________________________________ 3/4

Bits y palabras sistema

B
Bits sistema %S20 Funcin Rebasamiento de ndice Designacin Normalmente en el estado 0. Se pone a 1 cuando la direccin del 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. 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 exceden o 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

Inicializacin

%S22

Puesta a cero del Grafcet

%S23

Inmovilizacin del Grafcet

%S24

Puesta a cero de las etapas Rebasamiento de tablas (etapas/ transiciones)

%S26

%S30

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

%S31 %S38

%S39

___________________________________________________________________________ . 3/5

B
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. Este bit, de cuya gestin se encarga el sistema, indica el estado 1 cuando el reloj-calendario est ausente o cuando las palabras 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. 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). 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. Permite controlar el estado de funcionamiento de la pila de respaldo de la tarjeta de memoria RAM: en el estado 0: batera presente y en servicio, en el estado 1: batera ausente o fuera de servicio. 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.

%S50

Actualizacin de la fecha y hora mediante las palabras %SW50 a 53 Prdidade la hora del reloj-calendario Actualizacin de la fecha y hora mediante la palabra %SW59 Gestin del indicador de la batera

%S51

%S59

%S66 (1)

%S67

Estado pila tarjeta memoria Estado pila procesador

%S68

(1) Slo en el autmata TSX/PMX/PCX 57. (2) Slo en el autmata TSX 37.

___________________________________________________________________________ 3/6

Bits y palabras sistema

B
Bits sistema %S69 Funcin Visualizacin datos de usuario en indicadores de autmata Actualizacin de los datos en el bus AS-i o enlace TSX este bit a 0. Paso al modo protegido en el bus AS-i Guardado configuracin presente en el bus AS-i Puesta a 0 contadores de mensajes Actualizacin de palabras comunes Guardado de los ajustes DFB Restitucin de los ajustes DFB Validez de la guardado del programa de aplicacin Designacin 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 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. 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 durantelas 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. Normalmente en el estado 0. El usuario puede ponerlo a 1 para guardar los valores de ajuste de los bloques de funcin usuario. Normalmente en el estado 0. El usuario puede ponerlo a 1 para restituir los valores de ajuste de los bloques de funcin del usuario. 0 -> guardado del programa de aplicacin no vlido, 1 -> guardado del programa de aplicacin 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. Resulta significativo respecto a una aplicacin de memoria de seguridad realizada mediante PL7 en la Flash EPROM interna. 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 Normalmente en el estado 0. Este bit lo administra el usuario: 0 -> botn del acoplador TSX SAZ 10 activo, 1 -> botn, del acoplador TSX SAZ 10, sustituido por una entrada TON (vase %SW98).

%S70

Nano %S73

%S74

%S80

%S90

%S94 %S95 %S96

%S97

Validez de la guardado de los %MW en caliente.

%S98

___________________________________________________________________________ 3/7

Desplazamiento del botn del acoplador TSX SAZ 10

B
Bits sistema %S99 Funcin Desplazamiento del botn del bloque de visualizacin Protocolo toma terminal Designacin Normalmente en el estado 0. Este bit lo administra el usuario: 0 -> botn del bloque de visualizacin centralizada activo, 1 -> botn pulsador, del bloque de visualizacin centralizada, sustituido por una entrada TON (vase la palabra %SW99). 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. 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

%S118

Falla general de E/S FIPIO Falla general

%S119

___________________________________________________________________________ 3/8

Bits y palabras sistema


3.2 Palabras sistema

B
3.2-1 Lista de palabras sistema
Funcin Valor del perodo de la tarea maestra (en func. peridico) Valor del perodo de la tarea rpida (en func. peridico) Control de la adquisicin de las entradas de cada tarea Control de la actualizacin de las salidas de cada tarea Primer ciclo despus del arranque en fro Duracin del watchdog Direccin UNI_TELWAY conector terminal Direccin principal de la estacin Estado de falla en la operacin flotante Contador de tiempo absoluto Nmero de etapas activas, por activar y desactivar Nmero de transiciones vlidas, por validar e invalidar Tabla de 4 palabras que permite designar las macroetapas que se deben poner a 1 del bit %S24. Tiempo de ejecucin delltimo ciclo de la tarea maestra Tiempo de ciclo mximo de la tarea maestra Tiempo de ciclo mnimo de la tarea maestra Tiempo de ejecucin delltimo ciclo de la tarea rpida Tiempo de ciclo mximo de la tarea rpida Tiempo de ciclo mnimo de la tarea rpida Nmero de sucesos tratados Funcin reloj-calendario: palabras que contienen los valores 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 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. dela ltima parada y da de semana (tipo de da) Ajuste en incrementos de la fecha y hora actuales Gestin del modo de visualizacin "Display" %SW67: lectura de los botones pulsadores %SW68:ndices actual y mximo de los "objetos visualizados" %SW69: nmero del primer objeto en elrea visualizada %SW80 No de mensajes emitidos por el sistema hacia la toma de terminal %SW81 No de mensajes recibidos por el sistema desde la toma de terminal %SW82 No de mensajes emitidos por el sistema hacia el acoplador PCMCIA %SW83 No de mensajes recibidos por el sistema 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. 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 %SW67 %SW68 %SW69 Gestin( 1) U U U U S S S S SyU SyU S S U S S S S S S SyU SyU

S U SyU

SyU

___________________________________________________________________________ 3/9

B
Palabra Funcin %SW96 (2) Comando / diagnstico de la funcin de guardado / restitucin del programa de aplicacin y de los %MW. %SW97 (2) Nmero de los %MW que hay que guardar %SW98 (2) Direccin geogrfica mdulo/va de la entrada TON que reemplaza el botn del acoplador TSX SAZ 10 %SW99 (2) Direccin geogrfica mdulo/va de la entrada TON que reemplaza el botn del bloque de visualizacin centralizada %SW108 Nmero de bits forzados %SW109 Contador de vasanalgicas forzadas a 0 %SW116 Falla E/S distantes en FIPIO %SW124 Tipo de laltimafalla UC encontrada %SW125 Tipo de falla de bloqueo %SW126 Direccin de la instruccin de la falla de bloqueo %SW127 %SW128a Punto de conexin FIPIO defectuoso %SW143 %SW155 Nmero de intercambios explcitos en curso de tratamiento (1) S = administrado por el sistema, U = administrado por el usuario, (2) Slo en TSX 57. Gestin (1) SyU U U U S S S S S S S S

___________________________________________________________________________ 3/10

Bits y palabras sistema


3.2-2 Descripcin detallada de las palabras 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 configuracin. 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

B
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), desde el ltimo arranque . fro

%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 Tiempo de ejecucindela tarea maestra (1)

%SW20

%SW21

%SD18

%SW20

%SW21

%SW22 a %SW25 %SW30

(1) este tiempo corresponde al tiempo transcurrido entre el inicio (adquisicin de las entradas) y el fin (actualizacin de las salidas) de un ciclo de exploracin. Este tiempo incluye el tratamiento de las tareas rpida y de suceso, as como el tratamiento de las peticiones del dispositivo de programacin.

___________________________________________________________________________ 3/12

Bits y palabras 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 Contiene el valor Hexa/BCD que el usuario desea mostrar en el indicador de 7 segmentos opcionales. Esta presentacin se efecta cuando el bit %S66 est en el 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.

%SW59

Ajuste de la fecha actual

%SW66 (1) estado 1. %SW67 %SW68 %SW69

Gestin del indicador de 7 segmentos Gestin del modo "WORD"

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

Gestinde mensajes y telegramas

(1) no disponible en la versin actual.

___________________________________________________________________________ 3/14

Bits y palabras sistema

B
Palabras sistema %SW96 Funcin Designacin Control/ diagnstico de la funcin guarda/ restitucin 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 a 0 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 FlashEPROM 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.

%SW97

Nmero de %MW que requieren guardado

%SW98

Direccinde Cuando el bit %S98 = 1, esta palabra indica la direccin la entrada TON geogrfica (mdulo / va) de la entrada TON, en sustitucin del botn del acoplador TSX SAZ 10: Byte ms significativo Nmerodelmdulo Byte menos significativo Nmero de la va

___________________________________________________________________________ 3/15

B
Palabras sistema %SW99 Funcin Designacin

Direccin de la entrada TON

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 Nmero del mdulo Byte menos significativo Nmero de la va

%SW108

Nmero de bits forzados Contador de vas analgicas forzadas Falla FIPIO en la tarea

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. Indica el nmero de vas analgicas forzadas.

%SW109

%SW116

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 : falladelcdigosistema 16#60a64 : rebasamientodepila 16#90 : falla del sistema de interrupcin: IT no previsto 16#53 : falla del tiempo de espera al intercambiar E/S

%SW124

Tipode falla U C

___________________________________________________________________________ 3/16

Bits y palabras 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 subprograma no definido 16#0XXX : ejecucin de una funcin desconocida 16#DEFE : el programa grafcetcomprende 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 Nmero de intercambios explcitos en curso de tratamiento

%SW126 %SW127

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

%SW128 a %SW143

%SW155

Nmero de intercambios explcitos

___________________________________________________________________________ 3/17

___________________________________________________________________________ 3/18

Diferencias entre PL7-2/3 yCaptulo PL7 Micro 44


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

4.1

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

Valores inmediatos
Objetos Entero base 10 Entero base 2 Entero base 16 Flotante Cadena de caracteres 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'

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

B
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

B
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 Captulo 5 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

B
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

B
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 Palabras clave (Nota 4) VAR_INPUT VAR_OUTPUT VAR_IN_OUT VAR_EXTERNAL VAR_GLOBAL CONSTANT AT 2 3 5 2 3 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)

17 17 17 18 18

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 Inputread Input write Output read Outputwrite 1 2 4a 1 2a 3a Funcin REPLACE: reemplazar caracteres Funcin FIND: buscar una cadena en otra (Nota8)

33 33 33 37 37 37 38 39 40

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)

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

B
Elementos de lenguaje IL Tabla no 51 Caracterstica no Descripcin de las caractersticas 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) 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 Descripcin de las caractersticas 1 2 4 5 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 Descripcin de las caractersticas 2 4 6 8 10 12 2 4 5 8 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 Descripcin de las caractersticas 1 2 1 2 1 3 5 7 1 2 3 4 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

B
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 32 222 (Nota 14) (Nota 14) (Nota 15) 1 (Nota 16) Depende del rea indexada (Nota 16)

Caracteres nacionales utilizados

Long. mx. predet. de las variables STRING No aplicable Longitud mxima autorizada para las variables STRING Nmero mximo de niveles jerrquicos Configuracin lgica o fsica Intervalo mximo de valores de ndices 255 3 Configuracin lgica Depende del rea indexada (Nota 16)

___________________________________________________________________________ 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

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 1024 transiciones por grfico y por etapa 11 transiciones 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) 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

___________________________________________________________________________ 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

El resultado numrico excede la gama del tipo dado

Posicin de caracteres especificada invlida Sealado durante la ejecucin al posicionar el bit sistema %S18 El resultado excede la longitud mxima de la cadena Efectos de borde durante la evaluacin de una transicin Tiempos de ejecucin no respetados 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

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

TRUE

P P P

AND
N

ANDN AND(N ORN

ANDR

ANDF

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

AND(RAND(F ORR ORF

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

ST := OR AND XOR NOT RE, FE SET, RESET LD


%TMi IN Q

IL IN estructura BLK..END_BLK

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

% D Ri 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 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

Suma de todos los elementos de una tabla SUM Comparacin de dos tablas EQUAL Bsqueda del 1er elemento de una tabla igual a un valor FIND_EQW, FIND_EQD Bsqueda del 1er elemento de una tabla igual a FIND_EQWP, FIND_EQDP un valor desde un rango Bsqueda del 1er elem. de una tabla superior a un valor FIND_GTW, FIND_GTD Bsqueda del 1er elem. de una tabla inferior a un valor FIND_LTW, FIND_LTD Bsqueda del ms grande valor en una tabla MAX_ARW, MAX_ARD Bsqueda del ms pequeo valor en una tabla MIN_ARW, MIN_ARD Nmero de ocurrencias de un valor en una tabla OCCUR_ARW, OCCUR_ARD Desplazamiento circular a la izquierda en una tabla ROL_ARW, ROL_ARD Desplazamiento circular a la derecha en una tabla ROR_ARW, ROL_ARW Ordenacin de una tabla (ascendente o descendente) SORT_ARW, SORT_ARD Clculo de la longitud de una tabla LENGTH_ARW, LENGTH_ARD Instrucciones para tablas de flotantes LD/IL/ST Transferencia e inicializacin := Suma de todos los elementos de una tabla SUM_ARR Comparacin de dos tablas EQUAL_ARR Bsqueda del 1er elem. de 1 tabla igual a un valor FIND_EQR Bsqueda del 1er elem. de 1 tabla sup. a un valor FIND_GTR Bsqueda del 1er elem. de 1 tabla inf. a un valor FIND_LTR Bsqueda del valor mayor en una tabla MAX_ARR Bsqueda del valor menor en una tabla MIN_ARR Nmero de ocurrencias de un valor en una tabla OCCUR_ARR Desplazamiento circular a la izq. en una tabla ROL_ARR Desplazamiento circular a la derecha en una tabla ROR_ARR Ordenacin de una tabla (ascendente o descendente) SORT_ARR Clculo de la longitud de una tabla LENGHT_ARR

___________________________________________________________________________ 7/4

Ayuda de memoria

B
InstruccionesOrphe LD/IL/ST Desplazamiento a la izquierda en palabra con WSHL_RBIT, DSHL_RBIT recuperacin de bits desplazados Desplazamiento a la derecha en palabra con WSHR_RBIT, DSHR_RBIT extensin de signo y recup. de bits desplazados Desplazamiento a la derecha en palabra con WSHRZ_C, DSHRZ_C relleno de ceros y recup. de bits desplazados Contaje/descontaje con indicacin de SCOUNT rebasamiento Desplazamiento circular a la izquierda ROLW, ROLD Desplazamiento circular a la derecha RORW, RORD Intercambios explcitos LD/IL/ST Lectura de los parmetros %M de una va lgica READ_PARAM Lectura de los %M de estado de una va lgica READ_STS Restauracin de los parm. %M de una va lgica RESTORE_PARAM Guardado de los parmetros %M de una SAVE_PARAM va lgica Escritura de los %M de comando de una va lgica WRITE_CMD Escritura de los parmetros %M de una va lgica WRITE_PARAM Instrucciones de gestin del tiempo LD/IL/ST Reloj-calendario SCHEDULE 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 = <> <= < > >= := 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

___________________________________________________________________________ 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

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+ Escritura de datos comunes Modbus+

___________________________________________________________________________ 7/6

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

8.2.1 Instrucciones booleanas


LD IL ST Objetos Tiempo de ejecucin (s) 3710 3720 3720 ram cart 0,25 0,13 0,19 Tamao (palabras) 37xx 1

LD,

%M1 (1)

0,25

0,13

0,19

LDN %M1[%MW2] %MW0:X0 (2) %IWi.j:Xk (3) %MW0[%MW10]:X0 %KW0[%MW10]:X0 %M1 13,10 6,06 77,04 16,29 87,27 0,50 12,85 5,75 69,25 15,55 79,05 0,25 12,85 5,75 69,25 15,55 79,05 0,38 7 4 8 8 12 2

LDR,

LDF %M1[%MW2] AND, ANDN , AND (, AND (N , idem OR ANDR, ANDF, AND (R, AND (F, idem OR Idem LDR LDF 13,01 idem 12,75 LD, 12,75 LDN 7

XOR, XORN

%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) 3710 3720 3720 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) 3710 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 18,69 20,42 19,92 17,92 19,73 19,10 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

down

19,92

19,10

ninguna accin

13,27

12,81

___________________________________________________________________________ 8/4

Prestaciones
Bloques de funcin (cont.)
LD IL ST Objetos/condiciones Tiempo de ejecucin (s) 3710 3720

B
Tamao (palabras) 37xx

Monostable
flanco ascendente en S S=1 S %MN0, flanco START %MN0 ascendente S %MN0, S=1/0 activacin monostable activo 35,08 11,64 33,16 11,17 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 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) 3710 3720 Tamao (palabras) 37xx

Valor que se debe quitar para valores inmediatos


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

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

B
8.2.8 Tablas de palabras, dobles palabras y flotantes
ST Condiciones Tiempo de ejecucin (s) 3710 3720 ram 3720 cart volumen (palabras) 37xx

Inicializacin de una tabla de palabras por una palabra


%MW0:10 := %MW100 10 palabras por palabra %MD0:10 := %MD100 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; 10 palabras por palabra %MD0:10:=%MD10:10+%MD20:10; 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; 10 palabras por palabra %MD0:10:=%MD10:10 / %MD20:10; 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) 3710 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; 10 doble palabras por doble palabra /, 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; 10 doble palabras por doble palabra 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 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 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) 3710 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); 10 doble palabras por doble palabra %MF20:=EQUAL_ARR(%MF0:10;%MF10:10); 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) 3710 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) 3710 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) 3710 3720 3720 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) deval_mmi=0 deval_mmi=1 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) 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) 3710 3720 3720 ram cart 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 440 660 410 300 390 300 510 320 480 310 220 280 220 410 341 511 330 234 298 234 437 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 0,37

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

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

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, 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 0,12 0,12 0,37 0,12 1,37 0,21 0,21 0,62 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 67,87 46,92 13,52 3 (flanco ascendente) flanco descendente en IN IN %TM1 DOWN %TM1 (flanco descendente) IN =1 IN =0 IN %TM1 (=1) IN %TM1 (=0) parada timer timer activo timer inactivo 27,84 32,15 28,60 19,50 22,66 20,18 5,01 5,80 5,40

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

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

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

B
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 33,88 0,37 0,50 0,37 0,50 71,51 9,14 42,71 63,61 9,99 68,51 0,37 0,54 13,01 0,37 0,54 16,24 89,66 0,50 0,75 1,25 1,37 0,042 1270 1350 1070 2624 165 2620 2630 2720 3780 3780 2580 626 608 0,58 0,75 0,75 1,08 1,08 0,58 0,75 0,79 1,04 34,13 0,58 0,75 0,58 0,75 71,76 9,35 42,96 63,86 10,20 68,76 0,58 0,75 13,26 0,58 0,75 16,45 89,91 0,75 1,08 1,96 2,12 0,042 1270 1350 1070 2775 175 2620 2630 2720 3780 3780 2580 662 643 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

226,54 226,79 49,38

173,01 173,26

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 15,31 17,31 4,12 6,79 16,81 19,48 2,87 4,87 15,31 17,31 4,12 6,79 16,81 19,48 7 7 12 12

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 24,31 29,31 8,17 9,83 28,85 35,52 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

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

B
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
%MW20 := FIND_EQW(%MW0:10,%KW0) 10 palabras %MD20 := FIND_EQD(%MD0:10, %KD0) %MF20 := FIND_EQR(%MF0:10, %KF0) 10 dobles palabras 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

%MF20 := FIND_EQRP(%MF0:10, %KF0) 10 doble palabra %MD20 := FIND_GTR(%MF0:10, %KF0) %MD20 := FIND_LTR(%MF0:10, %KF0) 10 doble palabra 10 doble palabra

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) 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 261,20 240,50 100,00 119,23 261,20 240,50 12 12 12 12

1037,00 1072,78 962,00 995,19

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 358,25 276,92 169,23 358,25 12 12 12

1433,00 1482,44

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.11 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) 2 800 2 100 2 000 1 500 2 230 1 673 33 24

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

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

8.3.12 Entradas/salidas explcitas

Read_Sts %CHi.MOD Cualquier salida especfica salvo la va de comunicacin del procesador Read_Sts %CHi Entrada TON Salida TON 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

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 1176 1148 840 820 882 861 375 366 375 366 19 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.13 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 Volumen 0,5 0 3 3 3 3 0,5 0

AR_X,AR_W,AR_D,AR_R,STRING 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 Tipo EBOOL,BOOL,WORD,DWORD,REAL AR_X,AR_W,AR_D,AR_R,STRING IN/OUT EBOOL,WORD,DWORD,REAL BOOL,AR_X,AR_W,AR_D,AR_R, OUT 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

C cart

Acceso a una variable o un parmetro DFB (1) Objetos indexados IN - EBOOL - BOOL,WORD,DWORD,REAL - AR_X,AR_W,AR_D,AR_R,STRING IN/OUT (todos los tipos) OUT,PUBLICA,PRIVADA - EBOOL - BOOL,WORD,DWORD,REAL - AR_X,AR_W,AR_D,AR_R,STRING 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) Clculo por parmetro (1) IN - EBOOL - BOOL,WORD,DWORD,REAL - AR_X,AR_W,AR_D,AR_R,STRING 3,496 2,616 4,770 1,5 1,125 2,125 1,472 1,931 3,018 0,290 0 1,739 1,739 0,290 0 0 0,125 0 0,750 0,750 0,125 0 0 0,208 0 1,282 1,282 0,208 0 0

4,393

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

3,269 2,318 3,269

IN/OUT - EBOOL,WORD,DWORD,REAL 3,48 - BOOL,AR_X,AR_W,AR_D,AR_R,STRING 4,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 4 5 4 3 6+lg 6

B
Aplicacin (en palabras)

Etapas Grafcet (%Xi, %Xi.T) %Mi Numricas (%MWi) Constantes (%KWi) %NWi %Ti %TMi %MNi %Ci %Ri (longitud lg) %DRi

B
1,25 2 2 2 1 2 49

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-10 TSX 37-21 TSX 37-22

Utilizacin tarea FAST (TSX 37) Utilizacin primer suceso


(TSX 37)

___________________________________________________________________________ 8/39

B
Familia TON Memoria de bits (palabras) 4 8 2 4 16 32 Memoria de bits (palabras) 0 Datos de (palabras) 12 12 12 12 20 20 Datos de (palabras) 156 8 entradas TON 16 entradas TON 4 salidas TON 8 salidas TON 16E / 12S TON 32E / 32S TON Familia 4 Entradas ANA Area de aplicacin (palabras) 40 50 40 40 100 142 Area de aplicacin (palabras) 56 120 Memoria de bits (palabras) 0 Datos de (palabras) 212 Area de aplicacin (palabras) 72 120

AEZ414 Sobrecosto 1er mdulo Familia 4 Entradas ANA Familia 8 Entradas ANA

AEZ801/AEZ802 Sobrecosto 1er mdulo Familia 8 Entradas ANA Familia Salidas ANA

Memoria de bits (palabras) 0 0

Datos de (palabras) 52 100

ASZ200 ASZ401 Sobrecosto 1er mdulo Familia Salidas ANA Familia Contaje

Area de aplicacin (palabras) 40 59 120 Area de aplicacin (palabras) 64 106 144 144 144 Area de aplicacin (palabras) 168 763 755

Memoria de bits (palabras) 16 32

Datos de (palabras) 108 212

CTY1A CTY2A Sobrecosto 1ra va en Contaje Sobrecosto 1ra va en Descontaje Sobrecosto 1ra va en CPT/DCPT Familia Comunicacin

Memoria de bits (palabras) 0 0 0

Datos de (palabras) 36 40 40

STZ010 SCP111/ SCP112/ SCP114 en UC UTW) FPP 20 en UC (Va 0 UTW)

___________________________________________________________________________ 8/40

Prestaciones

B
Asignacin del espacio de memoria utilizado por los mdulos en TSX/PCX/PMX 57
Procesadores Memoria de bits (palabras) 70 70 Datos de (palabras) 4714 4714 Area de aplicacin (palabras) 1720 1784

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

520 600 Memoria de bits (palabras) Datos de (palabras) 500 25000 500 5000 Memoria de bits (palabras) 4 8 16 32 Datos de (palabras) 100 130 230 430 Area de aplicacin (palabras) 100 110 120 190 610 Area de aplicacin (palabras)

8 entradas TON 16 entradas TON 32 Entradas TON 64 Entradas TON Sobrecosto 1er mdulo Familia Entradas TON simples Familia Salidas TON simples

Memoria de bits (palabras) 4 8 16 32

Datos de (palabras) 110 160 280 550

8 Salidas TON 16 Salidas TON 32 Salidas TON 64 Salidas TON Sobrecosto 1er mdulo Familia Salidas TON simples Familia Entradas TON de suceso 16 Entradas TON (DEY 16FK) Sobrecosto 1er mdulo Familia Entradas TON EVT

Area de aplicacin (palabras) 100 110 120 190 570 Area de aplicacin (palabras) 130 680

Memoria de bits (palabras) 8

Datos de (palabras) 220

___________________________________________________________________________ 8/41

B
Familia entradas/salidas TON mixta 16 Entradas/12 salidas (DMY 28FK) Sobrecosto 1er mdulo Familia TON mixta Familias Entradas analgicas Memoria de bits (palabras) 16 Datos de (palabras) 304 Area de aplicacin (palabras) 152 1432

Memoria de bits (palabras) 4 8 16

Datos de (palabras) 430 840 1670

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

Area de aplicacin (palabras) 160 240 430 2990 248 432 3056 168 2080

8 16

888 1768

476

Memoria de bits (palabras) 4

Datos de (palabras) 430

ASY410 Sobrecosto 1er mdulo Salidas Analgicas ASY410 ASY800 Sobrecosto 1er mdulo Salidas Analgicas ASY800 Familia Contaje

Area de aplicacin (palabras) 160 1700 248 1760

744

Memoria de bits (palabras) 32 64

Datos de (palabras) 410 800

Mdulo CTY2A Mdulo CTY4A Sobrecosto 1ra va contaje configurada Mdulo CTY2C Sobrecosto 1ra va contaje configurada

Area de aplicacin (palabras) 170 250 1740

48

672

184 1992

___________________________________________________________________________ 8/42

Prestaciones

B
Familia Servomotor Memoria de bits (palabras) 78 156 Datos de (palabras) 1050 2090 Area de aplicacin (palabras) 280 480 2150

CAY21 CAY41 Sobrecosto 1ra va servomotor configurada Familia Paso a paso

Memoria de bits (palabras) 29 58

Datos de (palabras) 323 646

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

Area de aplicacin (palabras) 104 152 2368

Memoria de bits (palabras) 1 1

Datos de (palabras) 230 450

Area de aplicacin (palabras) 80 40 1280 256 1984 40 Area de aplicacin (palabras) 580 580 870 Area de aplicacin (palabras) 176 2272

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

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

SAY Sobrecosto 1ra va ASi configurada

___________________________________________________________________________ 8/43

B
Familia Pesaje Memoria de bits (palabras) 1 Datos de (palabras) 170 Area de aplicacin (palabras) 120 3920

AWY001 Sobrecosto 1ra va pesaje configurada

Familia TBX

Memoria de bits (palabras) 8

Datos de (palabras) 152

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

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

Memoria de bits (palabras) 16

Datos de (palabras) 96

Entradas Sobrecosto 1ra base configurada Salida Sobrecosto 1ra base configurada Mixta Sobrecosto 1ra base configurada

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

16

112

16

104

___________________________________________________________________________ 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

Salida intervalo Temporizacin de desconexin Temporizacin de conexin Temporizacin de impulsin 245

FPULSOR FTOF FTON FTP

Funciones logartmicas, exponenciales

OF

Tamao de cdigo (en palabras)


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

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

LN LOG EXP EXPT TRUNC COS SIN TAN ACOS ASIN ATAN DEG_TO_RAD RAD_TO_DEG cdigo comn

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

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

SEND_TLG RCV_TLG
CANCEL cdigo comn ROR1_ARB

Funciones Regulacin
Comando de movimiento automtico SMOVE

OF

Tam. cd. (en palabras)


0

Funciones Intercambios explcitos (1)

OF

Tam. cd. (en palabras)


0 0 0 0 0 0

___________________________________________________________________________ 8/50

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 especial, el cdigo incluye el volumen del mdulo de E/S.

Prestaciones
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/51

Ejemplo de programa que contiene 65% de booleanas y 35% de numricas :

___________________________________________________________________________ 8/52

Prestaciones

___________________________________________________________________________ 8/53

___________________________________________________________________________ 8/54

Prestaciones

(1):%MW0:=%MW1+%MW2+%MW3+%MW4+%MW5+%MW6+%MW7+%MW8+%MW9+%MW10+1 Informe 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%

Booleana sin flanco Booleana con flanco Bloque de operacin Bloque de funcin Aritmtica simple (+,-,:=,AND,...)
Aritmtica indexada

64,16%

35,84%

*,/ Valores inmediatos Total

100,00%

___________________________________________________________________________ 8/55

___________________________________________________________________________ 8/56

Indice 9 INDICE
9 Indice

Smbolos
%Ci %DRi %Li %MNi %Ri %Ti %TMi * + / := < < = < > = > > = B1/14 B2/9 B1/30 B2/2 B2/5 B2/13 B1/10, B2/107 B1/23 B1/23 B1/23 B1/23 B1/20 B1/19 B1/19 B1/19 B1/19 B1/19 B1/19

Bits sistema Bits BLK Bloques de funcin Bloques de funcin de usuario Bobinas de conexin Bobinas de desconexin Bobinas directas Bobinas inversas Bsqueda en tablas Byte

B3/1 A1/8 A3/8 B1/9 A1/7 B1/5 B1/5 B1/5 B1/5 B2/43 A1/13

C
Cadenas de caracteres A1/18, B2/51 CALL A2/3 Cclica A1/37 Cdigo de parada B2/78 Comentario A2/6, A3/4, A4/7, A5/14 Comparacin de tablas B2/41 Comparacin B1/19 Comparaciones alfanumricas B2/53 Comparador vertical B2/17 Complemento B1/25 CONCA T B2/59 Concatenacin de dos cadenas B2/59 CONCA TW B2/34 Constante A1/13 Contactos de apertura B1/4 Contactos de cierre B1/4 Contactos de flanco ascendente B1/4 Contactos de flanco descendente B1/4 Contador B1/14 Convergencias en O A5/5 Convergencias enY A5/4 Conversin ASCII --> Flotante B2/58 Conversin ASCII ---> Binario B2/56 Conversin BCD <--> Binario B2/29 Conversin Binario --->ASCII B2/54 Conversin Entero <--> Flotante B2/31 Conversin Flotante ---> ASCII B2/57 Conversin Gray --> Entero B2/33, B2/34 Conversin B2/28, B2/29 COPY_BIT B2/92 Corte de corriente A1/32 COS B2/26

A
ABS ACOS Accin Activacin simultnea de etapas Actualizacin del sistema ADD_DT ADD_TOD AND AND_ARX ANDF ANDN ANDR Area de accin Area de prueba Aritmtica con enteros Arranque en fro Asignacin ASIN A T AN B1/23 B2/26 A5/17 A5/10 B2/77 B2/80 B2/81 B1/6, B1/25 B2/93 B1/6 B1/6 B1/6 A2/1 A2/1 B1/23 A1/34 B1/20 B2/26 B2/26

B
BIT_D BIT_W Bits extrados de palabras B2/94 B2/94 A1/15

___________________________________________________________________________ 9/1

B
D
D_BIT B2/96 DA TE_TO_STRING B2/86 Datos estructurados B4/4 DA Y_OF_WEEK B2/79 DEC B1/23 DEG_TO_RAD B2/28 DELETE B2/60 DEL T A_D B2/83 DEL T A_DT B2/84 DEL T A_TOD B2/85 Descontador B1/14 Desplazamiento circular B2/19 Desplazamiento lgico B2/19 DFB A1/7, A6/1 DINT_TO_REAL B2/32 DINT_TO_STRING B2/54 Direccionamiento de objetos TSX 57 A1/11 Direccionamiento de objetos TSX37 A1/9 Direccionamiento A1/9 Disminucin B1/23 Divergencias enY A5/4 Divisin B1/23 Doble longitud A1/14 DOWN B1/12, B1/16 Drum B2/9 DSHL_RBIT B2/98 DSHR_RBIT B2/98 DSHRZ_C B2/98 DT_TO_STRING B2/87 Duraciones B2/72 EQUAL_STR Estructuras de control Etapas Etiqueta EXIT EXP Exponenciales Expresin numrica EXPT B2/69 A4/9 A5/4 A2/6, A3/4, A4/8 A4/14 B2/25 B2/25 B1/27 B2/25

F
FAST Fechas Fin de programa FIND FIND_EQD FIND_EQW FIND_GTD FIND_GTW FIND_LTD FIND_LTW Flanco Flotante FOR ... END_FOR Forzado FPULSOR FTOF FTON FTP Funciones para tabla A1/44 B2/72 B1/32 B2/70 B2/43 B2/43 B2/43 B2/43 B2/43 B2/43 A1/26, B1/2 A1/14, B2/20 A4/13 A1/27 B2/109 B2/107 B2/105 B2/108 B2/40

E
Ejecucin cclica A1/37 Ejecucin de una red de contactos A2/13 Ejecucin peridica A1/38 Elementos grficos de Grafcet A5/4 Elementos grficos de LD A2/2 Encaminamiento A5/10 END B1/32 END_BLK A3/8 ENDC B1/32 Enmascaramiento/desenmascaramiento de suceso B1/34 Entero <--> Flotante B2/31 EQUAL B2/41 EQUAL_ARR B2/41

G
GET Grafcet GRA Y_TO_INT B2/8 A5/1 B2/33, B2/34

H
HALT Horas HW B1/33 B2/72 B2/34

I
IF ... END_IF INC A4/9 B1/23

___________________________________________________________________________ 9/2

Indice

B
Incrementacin Indexacin Inmovilizacin del Grafcet INSERT Instancia de DFB Instrucciones booleanas Instrucciones para flotantes Instrucciones para programa INT_TO_REAL INT_TO_STRING B1/23 A1/19 A5/26 B2/61 A6/8 B1/2 B2/20 B1/28 B2/32 B2/54 MIN_ARD MIN_ARW Modos de marcha Monoestable Monotarea MPP MPS MRD Multiplicacin Multitarea B2/45 B2/45 A1/32, A5/1 B1/11, B2/2 A1/35 A3/7 A3/7 A3/7 B1/23 A1/41

J
JMP JMPC JMPCN B1/30 B1/30 B1/30

N
NOT NOT_ARX B1/25 B2/93

L
LD LDF LDN LDR Lectura de fecha sistema Lectura del da de la semana LEFT LEN LENGTH_ARR Lenguaje Grafcet Lenguaje Lista de instrucciones Lenguaje de contactos Lenguaje Literal estructurado Lista de instrucciones LN LOG Logaritmos L W B1/4 B1/4 B1/4 B1/4 B2/77 B2/79 B2/67 B2/71 B2/50 A5/1 A3/1 A2/1 A4/1 A3/1 B2/25 B2/25 B2/25 B2/34

O
O exclusiva O lgica Objetos de bloques de funcin Objetos DFB Objetos Grafcet Objetos indexados Objetos simbolizables OCCUR_ARD OCCUR_ARR OCCUR_ARW O R OR_ARX Ordenacin en tabla ORF ORN ORR OUT_BLK B1/8 B1/7, B1/25 A1/17 A6/3 A1/20, A5/6 A1/19 A1/21, A1/22 B2/46 B2/46 B2/46 B1/7, B1/25 B2/93 B2/49, B2/50 B1/7 B1/7 B1/7 A3/8

P
Palabras comunes Palabras internas Palabras sistema Parntesis Peridica Pila FIFO Pila LIFO PRESET Presimbolizacin Programador cclico A1/15 A1/13 B3/9 A3/5 A1/38 B2/5 B2/5 B1/16 A1/22 B2/9

M
Macroetapa MASKEVT MAX_ARD MAX_ARW Memoria de bits Memoria de palabras Memoria de usuario MID A5/15 B1/34 B2/45 B2/45 A1/23, A1/25, A1/26 A1/23, A1/28 A1/23 B2/65

___________________________________________________________________________ 9/3

B
PTC PUT B2/78 B2/8

R
R RAD_TO_DEG Raz cuadrada REAL_TO_DINT REAL_TO_INT Reanudacin en caliente Rebasamiento de ndice Rebasamiento Receptividad Red de contactos Registro Reloj-calendario REM Remisiones de destino Remisiones de origen REPEA T ...END_REPEAT REPLACE RESET Resta RET RETCN Retorno de subprograma RIGHT ROL_ARD ROL_ARR ROL_ARW ROR_ARD ROR_ARR ROR_ARW RRTC B1/5 B2/28 B1/23 B2/32 B2/32 A1/33 A1/20 B1/24 A5/20 A2/5 B2/5 B2/75 B1/23 A5/5 A5/5 A4/12 B2/63 B1/16, B2/8, B2/11 B1/23 B1/29 B1/29 B1/29 B2/67 B2/47 B2/48 B2/47 B2/47 B2/47, B2/48 B2/47 B2/77

SQRT SRi ST ST ART STN STRING_TO_DINT STRING_TO_INT SUB_DT SUB_TOD Subprograma SUM SUM_ARR Suma

B1/23 A1/35 B1/5 B1/12, B2/3 B1/5 B2/56 B2/56, B2/58 B2/80 B2/81 A1/35, B1/28 B2/40 B2/40 B1/23

T
Tablas de bits A1/18, B2/92 Tablas de palabras A1/18, B2/35 T AN B2/26 T area maestra A1/43 T area rpida A1/44 Tareas de sucesos A1/46 Tarjeta de memoria A1/23 T emporizacin B2/105 T emporizador B1/10, B2/13, B2/105, B2/107, B2/ 108, B2/109 Tiempo B2/72 Time B2/13 TIME_TO_STRING B2/88 Tipo DFB A6/3 TOD_TO_STRIN B2/89 TRANS_TIME B2/91, B2/92 T ransiciones A5/4 Tratamiento posterior A5/30 T ratamiento preliminar A5/24 Tratamiento secuencial A5/28 T rigonomtricas B2/26 TRUNC B2/24

S
S Salto SCHEDULE SCOUNT Seccin Grafcet Seccin Sentencia Smbolo SIN SORT_ARD SORT_ARR SORT_ARW B1/5 B1/30 B2/75 B2/101 A5/23 A1/4, A1/35 A3/4 A1/5, A1/21 B2/26 B2/49 B2/49 B2/49

U
UNMASKEVT UP B1/34 B1/16, B2/11

V
Valor absoluto Valores inmediatos Variables privadas Variables pblicas B1/23 A1/15 A6/4 A6/4

___________________________________________________________________________ 9/4

Indice

B
Vnculos orientados A5/5, A5/13

W
W_BIT B2/96 Watchdog A1/40 WHILE ... END_WHILE A4/11 WRTC B2/78 WSHL_RBIT B2/98, B2/103 WSHR_RBIT B2/98

X
XOR B1/8, B1/25 XOR_ARX B2/93 XORF B1/8 XORN B1/8 XORR B1/8

Y
Y lgica B1/6

___________________________________________________________________________ 9/5

___________________________________________________________________________ 9/6