464
A B Descripción del software PL7 Descripción detallada de las instrucciones y funciones Manual de referencia

Manual PL7

Embed Size (px)

Citation preview

Page 1: Manual PL7

A

B

Descripción del software PL7

Descripción detallada de las instrucciones y funcionesManual dereferencia

Page 2: Manual PL7

___________________________________________________________________________

B/2

Page 3: Manual PL7

___________________________________________________________________________A/1

A

Descripción del sofware Tabla de materiasPL7 Sección A

Capítulo Página

___________________________________________________________________________

1 Generalidades A1/1

1.1 Presentación del programa PL7 A1/11.1-1 Presentación A1/11.1-2 Estructura monotarea A1/31.1-3 Estructura multitarea A1/31.1-4 Programación estructurada y modular A1/41.1-5 Estructuración en módulos funcionales A1/51.1-6 Programación simbólica A1/61.1-7 Instrucciones del PL7 A1/81.1-8 Bloques de función del usuario A1/9

1.2 Objetos direccionables A1/101.2-1 Definición de los principales objetos booleanos A1/101.2-2 Direccionamiento de objetos de módulos

entradas/salidas del TSX 37 A1/111.2-3 Direccionamiento de objetos de módulos E/S del

TSX/PMX/PCX 57 A1/131.2-4 Direccionamiento de palabras A1/161.2-5 Objetos de bloques de función A1/201.2-6 Objetos estructurados A1/211.2-7 Objetos Grafcet A1/231.2-8 Objetos de bloques de función DFB A1/231.2-9 Simbolización A1/24

1.3 Memoria de usuario A1/261.3-1 Generalidades A1/261.3-2 Guardado / restauración de palabras internas %MWi A1/281.3-3 Memoria de bits A1/291.3-4 Memoria de palabras A1/311.3-5 Autómatas TSX 37 05/08/10/21/22 A1/321.3-6 Autómatas TSX/PCX/PMX 57-10/20/25 A1/331.3-7 Autómatas TSX/PCX 57-30/35 A1/341.3-8 Autómatas PMX57-35/45 y TSX 57-40/45 A1/35

Page 4: Manual PL7

___________________________________________________________________________

A/2

A

Descripción del sofware Tabla de materiasPL7 Sección A

Capítulo Página

___________________________________________________________________________

1.4 Modos de marcha A1/361.4-1 Corte de corriente y reanudación de la alimentación A1/361.4-2 Rearranque en caliente A1/371.4-3 Arranque en frío A1/38

1.5 Estructura software monotarea A1/391.5-1 Presentación de la tarea maestra A1/391.5-2 Ejecución cíclica A1/411.5-3 Ejecución periódica A1/421.5-4 Control del tiempo de ciclo A1/44

1.6 Estructura multitarea A1/451.6-1 Descripción A1/451.6-2 Tarea maestra A1/471.6-3 Tarea rápida A1/481.6-4 Asignación de vías de E/S a las tareas maestra y rápida A1/491.6-5 Tareas de suceso A1/50

2 Lenguaje de contactos A2/1

2.1 Presentación del lenguaje de contactos A2/12.1-1 Principio A2/12.1-2 Elementos gráficos A2/2

2.2 Estructura de una red de contactos A2/52.2-1 Generalidades A2/52.2-2 Etiqueta A2/62.2-3 Comentario A2/62.2-4 Red de contactos A2/72.2-5 Red de contactos con bloques de función y de operaciónA2/10

2.3 Reglas de ejecución de una red de contactos A2/132.3-1 Principio de ejecución de una red A2/13

Page 5: Manual PL7

___________________________________________________________________________A/3

A

Descripción del sofware Tabla de materiasPL7 Sección A

Capítulo Página

___________________________________________________________________________

3 Lenguaje Lista de instrucciones A3/1

3.1 Presentación del lenguaje Lista de instrucciones A3/13.1-1 Principio A3/13.1-2 Instrucciones A3/2

3.2 Estructura de un programa A3/43.2-1 Generalidades A3/43.2-2 Comentario A3/43.2-3 Etiqueta A3/43.2-4 Utilización de los paréntesis A3/53.2-5 Instrucciones MPS, MRD, MPP A3/73.2-6 Principios de programación: bloques de función

predefinidos A3/8

3.3 Reglas de ejecución de un programa en Lista de instrucciones A3/9

4 Lenguaje Literal estructurado A4/1

4.1 Presentación del lenguaje Literal estructurado A4/14.1-1 Principio A4/14.1-2 Instrucciones A4/2

4.2 Estructura de un programa A4/74.2-1 Generalidades A4/74.2-2 Comentario A4/74.2-3 Etiqueta A4/84.2-4 Instrucciones A4/84.2-5 Estructuras de control A4/9

4.3 Reglas de ejecución de un programa literal A4/15

Page 6: Manual PL7

___________________________________________________________________________

A/4

A

Descripción del sofware Tabla de materiasPL7 Sección A

Capítulo Página

___________________________________________________________________________

5 Lenguaje Grafcet A5/1

5.1 Presentación del lenguaje Grafcet A5/15.1-1 Nota sobre los principios del Grafcet A5/15.1-2 Análisis progresivo: las macrorrepresentaciones A5/2

5.2 Símbolos gráficos relativos al lenguaje Grafcet A5/4

5.3 Objetos relativos al Grafcet A5/6

5.4 Posibilidades del lenguaje Grafcet A5/7

5.5 Representación del Grafcet A5/9

5.6 Macroetapas A5/155.6-1 Principio A5/155.6-2 Características A5/165.6-3 Etapas iniciales A5/16

5.7 Acciones asociadas a etapas A5/17

5.8 Receptividades asociadas a transiciones A5/20

5.9 Organización de la sección Grafcet A5/235.9-1 Descripción de la sección Grafcet A5/235.9-2 Tratamiento preliminar A5/245.9-3 Utilización de los bits sistema en el tratamiento

preliminar A5/255.9-4 Tratamiento secuencial A5/285.9-5 Tratamiento posterior A5/30

Page 7: Manual PL7

___________________________________________________________________________A/5

A

Descripción del sofware Tabla de materiasPL7 Sección A

Capítulo Página

___________________________________________________________________________

6 Bloques de función DFB A6/1

6.1 Presentación de los bloques de función DFB A6/16.1-1 Generalidades A6/16.1-2 Creación de un bloque de función DFB A6/2

6.2 Concepción de un bloque de función Tipo DFB A6/36.2-1 Creación de un Tipo DFB A6/36.2-2 Descripción de los parámetros y variables A6/36.2-3 Código de un tipo DFB A6/56.2-4 Validación del Tipo DFB A6/66.2-5 Propiedades de un Tipo DFB A6/66.2-6 Ficha descriptiva A6/76.2-7 Propiedades del tipo DFB A6/76.2-8 Importación/exportación tipo DFB A6/7

6.3 Creación de una instancia de bloques de función Tipo DFB A6/86.3-1 Principios A6/8

6.4 Utilización de los bloques de función DFB A6/96.4-1 Reglas generales de programación A6/96.4-2 Programación en lenguaje de contactos A6/106.4-3 Programación en lenguaje literal o lista de instrucciones A6/116.4-4 Acceso a las variables A6/126.4-5 Guardado y restitución de las variables públicas A6/126.4-6 Ejecución de los bloques de función DFB A6/12

6.5 Ejemplo A6/13

Page 8: Manual PL7

___________________________________________________________________________

A/6

A

Descripción del sofware Tabla de materiasPL7 Sección A

Capítulo Página

___________________________________________________________________________

7 Módulos funcionales A7/1

7.1 Presentación de los módulos funcionales A7/17.1-1 Definición del módulo funcional A7/17.1-2 Representación de un módulo funcional en PL7 PRO A7/27.1-3 Noción de submódulo funcional A7/37.1-4 Tributos de un módulo funcional A7/3

7.2 Instalación de los módulos funcionales A7/47.2-1 Crear un módulo funcional A7/47.2-2 Modificación de la arquitectura de los módulos

funcionales A7/4

7.3 Programación de un módulo funcional A7/67.3-1 Agregar/crear una sección, un suceso o una

macroetapa en un módulo funcional A7/67.3-2 Eliminar una sección, macroetapa o un suceso

en módulo A7/87.3-3 Agregar/crear una tabla de animación en un

módulo funcional A7/97.3-4 Introducir/modificar la ficha descriptiva A7/9

7.4 Ejecución del programa A7/10

7.5 Depuración de la aplicación A7/10

7.6 Carpeta de aplicación A7/10

7.7 Importación y exportación del origen del módulo funcional A7/117.7-1 Exportar A7/117.7-2 Importar A7/11

Page 9: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/1

A

• un lenguaje booleano, el lenguaje de lista de instrucciones, que es un lenguaje"máquina" con escritura de tratamientos lógicos y numéricos.

(1) En la siguiente documentación se utilizará PL7 para designar indistintamentePL7 Junior, PL7 Micro, PL7 Pro o PL7 ProDyn.

1.1 Presentación del programa PL7

1.1-1 Presentación

El programa PL7 Junior es un software de programación, diseñado para losautómatas TSX 37 y TSX/PMX/PCX 57, que funcionan en Windows. El PL7 Micropermite programar únicamente los autómatas TSX 37.El software PL7 Pro ofrece, además de las funcionalidades PL7 Junior, la posibilidadde crear bloques de función de usuario DFB (Derived Function block), pantallas deexplotación y módulos funcionales.EL software PL7 Prodyn es una herramienta de explotación (conducción, diagnóstico,mantenimiento) para los autómatas TSX 37 y TSX/PMX/PCX 57. No permite crear omodificar aplicaciones.

Capítulo 11 Generalidades

El programa PL7 (1) propone:

• un lenguaje gráfico, el lenguaje de contactos con transcripción de esquemas derelés, que está adaptado al tratamiento combinatorio. Ofrece dos símbolos gráficosde base: contactos y bobinas. La escritura de cálculos numéricos puede efectuarseen de los bloques de operación.

Page 10: Manual PL7

1/2___________________________________________________________________________

A

• un lenguaje literal estructurado, que es un lenguaje de tipo "informática" con unaescritura estructurada de tratamientos lógicos y numéricos.

• un lenguaje Grafcet que permite representar gráficamente y de forma estructuradael funcionamiento de un automatismo secuencial.

Estos lenguajes formulan bloques de función predefinidos (temporizadores,contadores,...) que las funciones específicas (analógica, comunicación, contaje ...)y las funciones particulares (gestión de tiempo, cadena de caracteres ...).

Los objetos del lenguaje se pueden simbolizar mediante el editor de variables o enlínea en los editores de programa.

El software PL7 está conforme a la norma IEC 1131-3. Los Anexos contienen lastablas de conformidad: véase la sección B, capítulo 6.

Page 11: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/3

A

1.1-2 Estructura monotarea

Es la estructura predeterminada del programa. Contiene una sola tarea: la tareamaestra.

Tarea maestraEsta tarea puede ejecutarse de forma cíclica (funcionamiento predeterminado) operiódica.En funcionamiento cíclico, las ejecuciones de la tarea se encadenan una tras otra,sin tiempo de espera.En funcionamiento periódico, las ejecuciones de la tarea se encadenan en unperíodo determinado por el usuario.

1.1-3 Estructura multitarea

La estructura multitarea de los autómatas programables TSX 37 y TSX 57 ofrece unuso adaptado a las altas prestaciones de las aplicaciones en tiempo real, puesto queasocia un programa específico a cada función; una tarea controla un programa.Las tareas son independientes y se ejecutan en "paralelo" en el procesador principalque administra sus prioridades y su ejecución.

Este tipo de estructura propone:• optimizar el uso de la potencia del tratamiento,• simplificar el diseño y la depuración; cada tarea se escribe y se depura

independientemente,• estructurar la aplicación; cada tarea tiene su propia función,• optimizar la disponibilidad.

El sistema multitarea propone la tarea maestra, la tarea rápida y de 8 a 64 tareas desucesos, según el procesador.

Tarea rápidaLa tarea rápida (opcional), de ejecución periódica, permite efectuar tratamientoscortos con una prioridad más elevada que en la tarea maestra. Cuando estáprogramada, el sistema la activa automáticamente al arrancarse. La tarea puededetenerse y activarse de nuevo mediante una acción en un bit sistema.

Tareas de sucesosEstas tareas no están vinculadas a un período como las previamente descritas. Unallamada procedente de determinados módulos activa su ejecución. Son las tareasmás prioritarias. Debe ser forzosamente corto su tratamiento para asegurar que noperturbe la ejecución de las demás tareas.

Tarea rápida

Prioridad

Tarea maestra

Tareas de suceso

+-

Page 12: Manual PL7

1/4___________________________________________________________________________

A

1.1-4 Programación estructurada y modular

Las tareas de un programa PL7 se componen en varias partes denominadassecciones y subprogramas.

Cada una de estas secciones puede programarse en el lenguaje apropiado altratamiento que se desea realizar.

Esta división en secciones permite crear un programa estructurado y generar oincorporar fácilmente los módulos de programa.

Se puede hacer una llamada a los subprogramas desde cualquier sección de la tareaa la cual pertenecen o desde otros subprogramas de la misma tarea.

Sas (LD)

MAST

Horno_1(Grafcet)

PRL (LD)

CHART

POST(LD)

Secado (LD)

Limpieza (ST)

FAST

Alarma_Sas(LD)

Vig_Sec(LD)

Alarma_Horno(ST)

Alarma_Limpieza(ST)

SR0

SR0

EVT0

Page 13: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/5

A

1.1-5 Estructuración en módulos funcionales

Un módulo funcional es una agrupación de elementos de programa (secciones,sucesos, macroetapas, tablas de animación...) destinadas a realizar una función deautomatismo.Un módulo funcional está definido por un determinado número de atributos (nombre,comentario, programación, tablas de animación asociadas...).

Un módulo funcional comprende un directorio de programa (compuesto de uno ovarios módulos de código) y de un directorio de tabla de animación.

Un módulo funcionalcomprende un programay tablas de animación

Un módulo funcional puede a su vez dividirse en módulos funcionales de nivelinferior. Estos módulos asumen, en relación a la función principal, una o varias

El módulo Prod1 posee un submódulo Mdm1

subfunciones del automatismo.

Sólo el producto PL7 PRO permite la instalación de módulos funcionales en losautómatas TSX/PMX/PCX57.

Page 14: Manual PL7

1/6___________________________________________________________________________

A

1.1-6 Programación simbólica

El usuario puede introducir y visualizar los objetos:

• bien mediante su variable (por ejemplo: %Q2.5),

• o bien mediante una cadena de caracteres (máximo 32 caracteres) denominadasímbolo (por ejemplo Fc_puerta).

NotaLos objetos asociados al bloque de función de usuario DFB son objetos puramentesimbólicos.

Ejemplo: visualización simbólica de los objetos de lenguajes de contactos.

El lenguaje de contactos puede mostrar simultáneamente variables y símbolos.

Los objetos del lenguaje pueden simbolizarse usando el editor de variables o enlínea en los editores de programa.

Esta base de símbolos, controlada por el editor de VARIABLES del programa, esgeneral a la estación autómata.

Fc_puerta

Duración=ABS(Diferencia_de_tiempo)

Entrada_1

Entrada_4 Válvula_D

NotaDeterminados módulos de funciones específicas permiten la simbolización automática de losobjetos que les están asociados.

Page 15: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/7

A

Símbolos y comentarios integrados en el autómata TSX Premium

• FuncionalidadLos símbolos y comentarios pueden ser memorizados en el autómata TSX Premium(TSX/PMX/PCX 57202, 57302, 57402, 57452 V3.3) equipado de un tipo de tarjetamemoria siguiente:• tarjeta memoria de 128 kpalabras: TSXMRP 2128P• tarjeta memoria de 256 kpalabras: TSXMRP 3256P

Cuando se registra una aplicación en el PC, se crea un archivo *.STX.La imagen de la aplicación en forma de archivo *.STX comprende entre otros lossímbolos y comentarios.

La función "Símbolos y comentarios integrados en el autómata TSX Premium"suministra al usuario de PL7 la misma facilidad de programación y explotación desdeel punto de vista de símbolos y comentarios, posea o no la imagen en forma STX desu aplicación presente en el autómata.

Observaciones1. En modo conectado, las modificaciones de los símbolos y comentarios que se

efectúan en el Editor de Variables no se comunican a medida que suceden a latarjeta de memoria. Una actualización de la base en el autómata se propone enel momento de la petición de desconexión si existe divergencia entre la base localy la base del autómata.

2. La liberación del lugar a nivel de símbolos y comentarios no aumenta el área deprograma, ya que el almacenamiento de los símbolos y comentarios se efectúaen un espacio distinto al de la parte programa de la aplicación.

3. Los diferentes editores de PL7 (datos, programa, herramienta de depuración)utilizan en modo conectado la base de símbolos y comentarios presentes enel PC.

4. La función Comparación permite comparar los símbolos PC/Autómata.

Page 16: Manual PL7

1/8___________________________________________________________________________

A

1.1-7 Instrucciones del PL7

Todos los lenguajes PL7 utilizan el mismo juego de instrucciones.

La sección B de este documento detalla estas instrucciones. Para mayor claridad,éstas se encuentran clasificadas en dos conjuntos: las instrucciones de base y lasinstrucciones avanzadas.

Instrucciones de baseComprenden las instrucciones booleanas de base, los bloques de función predefinidosy las instrucciones aritméticas y lógicas para enteros.

Instrucciones avanzadasComprenden las instrucciones que satisfacen las necesidades de programaciónavanzada.

Son de dos tipos:

• lenguaje PL7. Aumentan las posibilidades de tratamiento del lenguaje mediantelas funciones particulares (manipulación de cadenas de caracteres, gestión detiempo...),

• específicas. Ofrecen funciones específicas de tratamiento, por ejemplo las funcionesde comunicación:- PRINT para enviar un mensaje de tipo cadena de caracteres a un terminal o una

impresora,- SEND para enviar un mensaje a una aplicación,- PID para la función PID de regulación.

Introducción asistida de funcionesAl introducir datos, una pantalla de ayuda permite acceder a todas las funciones dellenguaje. Esta pantalla permanece accesible en todo momento, incluso durante laprogramación.

Page 17: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/9

A

1.1-8 Bloques de función del usuario

El software PL7 Pro permite crear bloques de función del usuario DFB para elautómata Premium. Estos bloques de función DFB se conciben en lenguaje literalestructurado y pueden luego utilizarse en una sección o en un subprogramacualquiera sea el lenguaje empleado (también pueden utilizarse con el software PL7Junior).

Ejemplo de bloques de función DFB que se utilizan con el lenguaje de contactos.

Un bloque de función DFB se componeprincipalmente de:

• un nombre,• parámetros de entradas y salidas• variables públicas y privadas• código en lenguaje literal estructurado.

Un bloque de función DFB puede tenerun máximo de 15 entradas y/o entradas/salidas y 15 salidas y/o entradas/salidas.

Una vez que se crea, cada bloque defunción DFB se puede utilizar variasveces en una aplicación. El programadorprograma el bloque de función DFBmodelo (denominado: Tipo DFB) y paracada utilización, el usuario define unnombre de instancia mediante el editorde variables o valiéndose de la pantallade ayuda para la introduccióncorrespondiente al lenguaje elegido.

Nombre Tipo DFB

Entradas Salidas

Entradas/salidas

Variables públicasVariables privadas

Código literal

Page 18: Manual PL7

1/10___________________________________________________________________________

A

1.2 Objetos direccionables

1.2-1 Definición de los principales objetos booleanos

Bits de entradas/salidasSon las "imágenes lógicas" de los estados eléctricos de las entradas/salidas. Sealmacenan en la memoria de datos y se actualizan en cada exploración de la tareaen la que están configurados.Bits internosLos bits internos %Mi permiten almacenar estados intermediarios durante la ejecucióndel programa.Nota: los bits de entradas/salidas no utilizados no pueden emplearse como bits internos.

Bits sistemaLos bits sistema de %S0 a %S127 supervisan el buen funcionamiento del autómataasí como la ejecución del programa de aplicación. El propósito y el uso de estos bitsse describen en el apartado 3.1 de la sección B.Bits de bloques de funciónLos bits de bloques de función corresponden a las salidas de los bloques de funciónestándar o instancia DFB. Estas salidas pueden cablearse directamente o utilizarsecomo objeto.Bits extraídos de palabrasEl programa PL7 ofrece la posibilidad de extraer uno de los 16 bits de un objetopalabra.Bits de estado de las etapas y macroetapas GrafcetLos bits Grafcet de estado de las etapas %Xi , de las macroetapas %XMj y de las etapasde macroetapas %Xj.i (Xj.IN y Xj.OUT para las etapas de entradas y salidas demacroetapas) permiten de conocer el estado de la etapa i, de la macroetapa o de laetapa i de la macroetapa j del Grafcet.Lista de operandos de bitsLa tabla siguiente contiene la lista de todos los tipos de operandos booleanos.

Tipo Dirección Acceso en Véase(o valor) escritura (1) Cap. Secc

Valor inmediato 0 ó 1 (False o True) – 1.2-4 A

Bits de entradas %Ix.i o %IXx.i no 1.2-2 Ade salidas %Qx.i o %QXx.i sí 1.2-3

Bits internos %Mi o %MXi sí –

Bits de sistema %Si según i 3.1 B

Bits de bloques ej.: %TMi.Q no 1.2-5 Ade función %DRi.F.....

Bits Grafcet %Xi , %XMj, %Xj.i... sí 5.2 A

Bits extraídos de pals. ej.: %MW10:X5 según tipo de palabra 1.2-4 A

(1) escritura desde el programa o en modo de ajuste desde el terminal.

Page 19: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/11

A

1.2-2 Direccionamiento de objetos de módulos entradas/salidas del TSX 37

Los caracteres siguientes definen el direccionamiento de los principales objetos bitsy palabras de módulos de entradas/salidas:

% I o Q X, W o D x . i

• Tipo de objetoI y Q: para las entradas y salidas físicas de módulos. Esta información seintercambia implícitamente en cada ciclo de la tarea asociada.Observación: también pueden intercambiarse a petición de la aplicación otro tipode información (palabras de estado, de comando ...).

• Formato (tamaño)Para los objetos de formato booleano, se puede omitir la X. Los demás tipos deformato (byte, palabra, doble palabra) se definen en el apartado1.2-4.

• Posición y número de víaLa modularidad de base del TSX 37 es de semiformato. Las esquemas siguientesindican las posiciones de cada tipo de autómata TSX 37 (base y extensión).

Los módulos de formato estándar se direccionan como 2 módulos de semiformatosuperpuestos (véase la tabla siguiente).

Por ejemplo, un módulo de 64 E/S se ve como 2 módulos de semiformato:un módulo de semiformato de 32 entradas situado en la posición 5 y un módulode semiformato de 32 salidas situado en el alojamiento 6.

N° víai= 0 a 127o MOD

Posiciónx= Número deposición enel rack

FormatoX = booleanoW = palabraD = doble palabra

Símbolo Tipo de objetoI = entradaQ = salida

8

7 9

0

6

5

10

TSX 37-10 TSX 37-21/22

ExtensiónBaseBase Extensión

6 8

5 72

1

4

3

2

1

4

3

Page 20: Manual PL7

1/12___________________________________________________________________________

A

Módulo Semiformato Formato estándar4 S 8 S 12 E 28 E/S 32 E 32 S 64 E/S

Número de vía: i 0 a 3 0 a 7 0 a 11 0 a 15 0 a 15 0 a 15 0 a 31

0 a 11 0 a 15 0 a 15 0 a 31

Posición y N° vía x.0 x.0 x.0 x.0 x.0 x.0 x.0(x = posición) a a a a a a a

x.3 x.7 x.11 x.15 x.15 x.15 x.31

(x+1).0 (x+1).0 (x+1).0 (x+1).0a a a a(x+1).11 (x+1).15 (x+1).15 (x+1).31

NotaEs posible reemplazar el número de vía por "MOD" para acceder a la información general sobreel módulo.

• Rango: este sufijo opcional puede agregarse al número de vía. Permite marcardistintos objetos del mismo tipo asociados a una misma vía.ERR: indica un fallo de módulo o de vía.Ejemplos : %I4.MOD.ERR: información de fallo del módulo 4,%I4.3.ERR: información de fallo de la vía 3, módulo 4.

NotaEn el direccionamiento a través de la red o de entradas/salidas remotas, se agrega al númerode posición en el rack la ruta completa de acceso a la estación.

Ejemplos

%I1.5 vía de entrada n° 5 del módulosituado en la posición n° 1.

%I3.8 vía de entrada n° 8 del módulo deformato estándar situado en lasposiciones n° 3 y 4.

%Q4.5 vía de salida n° 5 del módulo deformato estándar situado en lasposiciones n° 3 y 4.

%I5.MOD.ERR información sobre el fallodel módulo situado en la posiciónn° 5.

%IW8.0 vía de entrada n° 0 del módulo desemiformato situado en laposición n° 8.

Extensión

6 8

5 7

Base

%IW8.0TSX 37-10

%Q4.5

%I5.MOD.ERR%I3.8%I1.5

2

1

4

3

Page 21: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/13

A

1.2-3 Direccionamiento de objetos de módulos E/S del TSX/PMX/PCX 57

El direccionamiento de los principales objetos bits y palabras de los módulos de E/S se definen de la manera siguiente:'

• Tipo de objetoI y Q: para las entradas y salidas físicas de los módulos. Estas informaciones seintercambian implícitamente en cada ciclo de la tarea a la que se asocian.Observación: otros tipos de información (palabras de estado, de comando...)pueden también intercambiarse a solicitud de la aplicación.

• Formato (tamaño)Para los objetos de formato booleano, se puede omitir la X. Los demás tipos deformato (byte, palabra, doble palabra) se definen en el apartado 1.2-4.

• Direccionamiento de las víasEl direccionamiento de las vías depende de la dirección del rack, de la posiciónfísica del módulo en el rack y del número de vía.

PS 00 01 02 03 04 05 06 07 08 09 10

PS 00 01 02 03 04 05 06 07 08 09 10

00

01

Símbolo Tipo objetoI = entradaQ = salida

FormatoX = booleanoW = palabraD = doble palabra

Posiciónmóduloy=00 a 10

Nº víaI= a 127o MOD

DirecciónRackx=0 a 7

% I o Q X, W o D x y • I

Notas:• para conocer la lista de los objetos asociados a un módulo, véase el manual de función

específica correspondiente,• el direccionamiento de las entradas/salidas distantes se describe en el manual de función

específica, sección Común a las funciones específicas.

Page 22: Manual PL7

1/14___________________________________________________________________________

A

Direcciones de racks (x) y posiciones de módulos (y)

Racks TSX RKY 6 RKY 8 RKY 12 RKY 4EX RKY 6EX RKY 8EX RKY 12EX

Dirección rack : x 0 0 0 0 a 7 0 a 7 0 a 7 0 a 7

Posición módulo: y 00 a 04 00 a 06 00 a 10 00 a 02 00 a 04 00 a 06 00 a 10

NotaEl rack que soporta el procesador siempre tiene la dirección 0.

Número de vías (i)

Módulos TSX DEY ..../DSY .... 64 E/S 32 E/S 16 E/S 8 E/S

Número de vía : i 0 a 63 0 a 31 0 a 15 0 a 7

NotaEl número de vía puede reemplazarse por "MOD" para acceder a la información general sobreel módulo.

• Rango : este sufijo opcional puede agregarse al número de vía. Permite localizardistintos objetos de mismo tipo asociados a una misma vía.

ERR: indica un fallo de módulo o de vía.

Ejemplos :- %I104.MOD.ERR: información de fallo del módulo en la posición 4 del rack de

dirección 1.- %I104.3.ERR: información de fallo de la vía 3 del módulo en la posición 4 del

rack de dirección 1.

NotaPara un direccionamiento a través de la red o de las entradas/salidas remotas, la ruta de accesocompleta se agrega al direccionamiento de la vía.

Ejemplos :

• %I102.5 : vía de entrada n° 5 del módulo situado en la posición n° 2 delrack de dirección 1.

• %Q307.2 : vía de salida n° 2 del módulo situado en la posición n° 7 delrack de dirección 3.

• %I102.MOD.ERR: información de fallo del módulo situado en la posición n° 2 delrack de dirección 1.

Page 23: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/15

A

Caso de los racks de extensión

• FuncionalidadesLes racks de extensión permiten configurar un mayor número de módulos a travésde un mayor número de racks. Esta función sólo está disponible con los procesadoresde nivel superior o igual a 3.3.Estos racks de extensión tienen las mismas funciones para la configuración de susmódulos o de sus alimentaciones que los demás racks.Estos racks de extensión aparecen después del rack de base si este último esextensible y si comprende 8 emplazamientos por lo menos.Se marcan a nivel de la referencia por las letras EX.La primera dirección del primer módulo configurable (fuera de alimentación) essiempre 8.

• Número de emplazamientos disponiblesLos racks de extensión tampoco pueden tener más de 8 emplazamientos.

Rack de NúmeroRack de base extensión total de

(tipo E o EX) (tipo EX) emplazamientos

4 4 84 6 104 8 126 4 106 6 126 8 148 4 128 6 148 8 1612 0 12

Ejemplo : rack de base de 6 emplazamientos y rack de extensión de 6 emplace-mentsMódulo DEY 16A2 vía 6%I18,6 con n°rack = 1, posición = 8, vía = 6.

Page 24: Manual PL7

1/16___________________________________________________________________________

A

Bits mássignificativos

Bits menossignificativos

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

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Rango del bitFormato de 16 bits

Símbolo Tipo de objetoM = internoK = constanteS = sistema

FormatoB = byteW = palabraD = doble palabraF = flotante

Número

1.2-4 Direccionamiento de palabras

El direccionamiento de las palabras de módulos E/S se define en el apartado1.2-2o 1.2-3. Las demás palabras utilizadas (salvo las palabras de redes y de bloques defunción) en el lenguaje PL7 se direccionan del modo siguiente:

% M, K o S B, W , D o F i

• Tipo de objeto

M palabras internas destinadas a almacenar valores en curso del programa. Seubican dentro del espacio de datos en una misma área de memoria.

K palabras constantes que memorizan valores constantes o mensajes alfanuméricos.Su contenido puede ser escrito o modificado desde el terminal únicamente. Sealmacenan en el mismo lugar que el programa. Por consiguiente, pueden tenercomo 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 aplicación, etc...).- otras permiten actuar sobre la aplicación (modo de marcha, etc.)

Las palabras sistema se describen en el capítulo 3, sección B.

• Formato

El programa PL7 puede direccionar los objetos según cuatro formatos:

B byte; este formato se utiliza exclusivamente en las operaciones de cadena decaracteres.

W simple longitud; estas palabras de 16 bits pueden contener un valor algebraicocomprendido entre -32 768 y 32 767.

Page 25: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/17

A

D doble longitud: estas palabras de 32 bits pueden contener un valor algebraicocomprendido entre -2 147 483 648 y 2 147 483 647. Estas palabras se colocanen la memoria en dos palabras consecutivas de simple longitud.

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. Correspondea números flotantes de simple precisión.Ejemplos de valores flotantes:1285.2812.8528E2

Posibilidades de solapamiento entreobjetosBytes, palabras de simple y doble longitud yflotantes se almacenan en el espacio dedatos en una misma área de memoria.Así, hay solapamiento:• entre la palabra de doble longitud %MDi

y las palabras de simple longitud %MWi y%MWi+1 (la palabra %MWi contiene losbits menos significativos y la palabra%MWi+1 los más significativos de lapalabra %MDi).

• entre la palabra de simple longitud %MWiy los bytes %MBj y %MBj+1 (con j=2.i)

• entre el flotante %mFk y las palabras desimple longitud %MWk y MWk+1.

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

%MB1 %MB0

%MB3 %MB2

%MB5

%MB7

%MB4

%MB6

%MW0

%MW1

%MW2

%MW3

%MD0

%MD2

%MD1

%MD3

%MWi

%MWi+1%MDi

%MWk

%MWk+1%MFk

Bits mássignificativos

Bits menos significativos

Rango n

Rango n+1Formato de 32bits

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

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

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Page 26: Manual PL7

1/18___________________________________________________________________________

A

Valores inmediatos

Son valores algebraicos, cuyo formato es homogéneo con el de las palabras desimple y doble longitud (16 o 32 bits), que asignan valores a estas palabras. Sealmacenan en la memoria de programa. La tabla siguiente contiene su sintaxis.

Tipo Sintaxis Límite inf. Límite sup. Booleano 0 o 1 (FALSE o TRUE) Entero base 10simple longitud 1506 -32768 +32767

doble longitud 578963 -2 147 483 648 2 147 483 647 Entero base 2 simple longitud 2#1000111011111011011 2#10...0 2#01...1 (binario) doble longitud 2#1000111011111011011 2#10...0 2#01...1

1111111011111011111 Entero base 16simple longitud 16#AB20 16#0000 16#FFFF (hexadecimal) doble longitud 16#5AC10 16#000000000 16#FFFFFFFF Flotante -1.32e12 -3.402824E+38-1.175494E-38

1.175494E-38 3.402824E+38 Cadena de caracteres 'aAbBcC'(1) excluyendo límites

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 específicos: las palabras comunes. Sonobjetos palabras de simple longitud (16 bits) comunes a todas las estacionesconectadas a la red de comunicación.

Direccionamiento: %NW{i.j}kdonde: i = 0 a 127 n° de red,j = 0 a 31 n° de estación y k= 0 a 3 n° de palabra

Bits extraídos de palabras

El programa PL7 permite extraer uno de los 16 bits de palabras de simple longitud.El rango del bit extraído completa la variable de la palabra según la sintaxis siguiente:

PAL. :X j

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 extracción de bits de palabras también se puede efectuar en palabras indexadas.

Posiciónj = 0 a 15Rango del biten la palabra

Page 27: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/19

A

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 Direccionamiento Límites Posibilidadesasociados

Palabras internas simple longitud %MWi (1) R/Wdoble longitud %MDi (1) R/Wflotante %MFi (1) R/Wbyte (2) %MBi (1) R/W

Palabras simple longitud %KWi (1) R/W (3)constantes doble longitud %KDi (1) R/W (3)

flotante %KFi (1) R/W (3)byte (2) %KBi (1) R/W (3)

Palabras de E simple longitud %IWxy.i 0≤i≤127 Rmódulo E doble longitud %IDxy.i 0≤i≤126 Rde E/S S simple longitud %QWxy.i 0≤i≤127 R/W

S doble longitud %QDxy.i 0≤i≤126 R/W

Palabras Grafcet simple longitud %Xi.T 0≤i≤249 Rsimple longitud %Xj.i.T 0≤j≤63 0≤i≤249 R

Pal. comunes en la red %NW{j}k 0≤j≤31 0≤k≤3 R/W

Palabras sistema simple longitud %SWi 0≤i≤255 R/W (4)doble longitud %SDi 0≤i≤254 R/W (4)

Bits extraídos bit j de palabra interna %MWi:Xj 0≤j≤15 R/Wde palabras bit j de palabra constante %KWi:Xj 0≤j≤15 R/W (3)

bit j de palabra de entrada %IWi:Xj 0≤j≤15 Rbit j de palabra de salida %QWi:Xj 0≤j≤15 R/Wbit j de palabra sistema %SWi:Xj 0≤j≤15 R/W (4)bit j de palabra común %NW{j}k:Xm 0≤m≤15 R/Wred 0

(1) el límite máximo depende del tamaño de memoria disponible y del número de palabrasdeclaradas en la configuración del programa.

(2) este objeto existe únicamente como dirección inicial de una cadena de caracteres %MBi:Lo %KBi:L (véase el apartado 2.8-1, sección B).

(3) escritura sólo desde el terminal.(4) escritura según i.

Page 28: Manual PL7

1/20___________________________________________________________________________

A

R

S

CU

CD F

D

E

%Ci

C.P : 9999

MODIF : Y

Bloque contador/descontador

1.2-5 Objetos de bloques de función

Los bloques de función implantan objetos bits y palabras específicos.

• Objetos bitsCorresponden a salidas de bloques. Lasinstrucciones booleanas de comprobaciónpermiten acceder a estos bits.

• Objetos palabrasCorresponden:

- a parámetros de configuración del bloque.El programa permite acceder a ellos (ej.:parámetro de preselección) o no(ej.: base de tiempo).

- a valores actuales (ej.: %Ci.V valor de contajeen curso).

Lista de objetos bits y palabras de bloques de función accesibles desde elprograma

Bloques función Palabras y bits asociados Dirección Acceso enVéase predefinidos (2) escritura secc. B

Temporizador Palabra Valor actual %TMi.V No 1.3-2 %TMi (i=0 a 63) (1) Valor de preselección %TMi.P Sí

Bit Salida temporizador %TMi.Q No

Contador/ Palabra Valor actual %Ci.V No 1.3-3 descontador Valor de preselección %Ci.P Sí %Ci (i=0 a 31) Bit Salida desbord. (vacío) %Ci.E No

Salida preselección alcanz. %Ci.D NoSalida desbord. (lleno) %Ci.F No

Monoestable Palabra Valor actual %MNi.V No 2.2-1 %MNi (i=0 a 7) Valor de preselección %MNi.P Sí

Bit Salida monoestable en curso %MNi.Q No

Registro palabra Palabra Acceso al registro %Ri.I Sí 2.2-2 %Ri (i= 0 a 3) Salida del registro %Ri.O Sí

Bit Salida registro lleno %Ri.F NoSalida registro vacío %Ri.E No

Programador Palabra Número de paso en curso %DRi.S Sí 2.2-3 cíclico Estados del paso j %DRi.Wj No%DRi (i=0 a 7) Tiempo de actividad del paso %DRi.V No

Bit Ult. paso definido en curso %DRi.F No

Temporizador Palabra Valor actual %Ti.V No 2.2-4 serie 7 Valor de preselección %Ti.P Sí %T (i=0 a 63) (1) Bit Salida en curso %Ti.R No

Salida temporizador transc. %Ti.D No

(1) El número total de temporizadores %TMi y %Ti se limita a 64 para un TSX 37 y a 255 para un TSX/PMX/PCX 57.(2) Número máximo para el TSX 37; para el TSX/PMX/PCX 57, i=0 a 254 para todos los bloques de función.

Page 29: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/21

A

1.2-6 Objetos estructurados

Tablas de bits

Las tablas de bits son series de objetos bits adyacentes del mismo tipo y de longituddefinida: L.

Ejemplo de tabla de bits: %M10:6 nc par

Tipo Dirección Tamaño máximo Acceso en escritura Bits de entradas TON %Ix.i:L 1 < L < m (1) No

Bits de salidas TON %Qx.i:L 1 < L < m (1) Sí

Bits internos %Mi:L i + L < n (2) Sí

Bits Grafcet %Xi:L, %Xj.i:L i+L <n (2) No

(1) m=modularidad del módulo (ej.: 8 para un módulo de 8 entradas u 8 salidas).(2) n depende del tamaño definido en la configuración.

Tablas de palabras

Las tablas de palabras son series depalabras adyacentes del mismo tipo y delongitud definida: L.

Ejemplo de tablas de palabras: %KW10:5 Tipo Formato Dirección Tamaño Acceso

máximo escritura

Palabras internas Simple longitud %MWi:L i+L < Nmáx (2) SíDoble longitud %MDi:L i+L < Nmáx-1 (2) SíFlotante %MFi:L i+L < Nmáx-1 (2) Sí

Palabras constantes Simple longitud %KWi:L i+L < Nmáx (2) NoDoble longitud %KDi:L i+L < Nmáx-1 (2) NoFlotante %KFi:L i+L < Nmáx-1 (2) No

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

Palabras sistema Simple longitud %SW50:4 (3) Sí

Cadenas de caracteres

Las cadenas de caracteres son series debytes adyacentes del mismo tipo y delongitud definida: L.

Ejemplo de cadena de caracteres: %MB10:5

Tipo Dirección Tamaño Acceso enmáximo escritura

Palabras internas %MBi:L (5) 1<i+L<Nmáx (4) Sí

Palabras constantes %KBi:L (5) 1<i+L< Nmáx (4) Sí

(3) Nmáx = número máximo definido en la configuración del programa.(4) sólo las palabras %SW50 a %SW53 pueden ser direccionadas en forma de tabla.(5) i debe ser par.

%M10 %M11 %M12 %M13 %M14 %M15

8 bits

16 bits%KW10

%KW14

%MB10

%MB14

Page 30: Manual PL7

1/22___________________________________________________________________________

A

Objetos indexados

• Direccionamiento directo

Se dice directo el direccionamiento de objetos cuando la dirección de estos objetoses fija y se ha definido en la escritura del programa.

Ejemplo: %MW26 (palabra interna con la dirección 26)

• Direccionamiento indexado

En el direccionamiento indexado, un índice completa la dirección directa del objeto:a la dirección del objeto se agrega el contenido del índice. Una palabra interna %MWiuna palabra constante %KWi, o un valor inmediato define el índice. No se limita elnúmero de palabras indexadas.

Ejemplo: %MW108[%MW2]: palabra de dirección directa 108 + contenido de lapalabra %MW2.Si el contenido de la palabra %MW2 es el valor 12, escribir%MW108[%MW2] equivale a escribir %MW120.

Tipo Formato Dirección Tamaño Accesomáximo Escritur.

Bit de entrada Booleano %Ii[índice] 0<i+índice<m (1) No

Bit de salida Booleano %Qi[índice] 0<i+índice<m (1) Sí

Bit interno Booleano %Mi[índice] 0<i+índice<Nmáx (2) Sí

Bit Grafcet Booleano %Xi[índice] 0<i+índice<Nmáx (2) No%Xj.i[índice] 0<i+índice<Nmáx (2) No

Palabras internas Simple longitud índice[índice] 0<i+índice<Nmáx (2) SíDoble longitud %MDi[índice] 0<i+índice<Nmáx-1 (2) SíFlotante %MFi[índice] 0<i+índice<Nmáx-1 (2) Sí

Palabras constantes Simple longitud %KWi[índice] 0<i+índice<Nmáx (2) NoDoble longitud %KDi[índice] 0<i+índice<Nmáx-1 (2) NoFlotante %KFi[índice] 0<i+índice<Nmáx-1 (2) No

Palabras Grafcet Simple longitud %Xi .T[índice] 0<i+índice<Nmáx (2) No%Xj.i.T[índice] 0<i+índice<Nmáx (2) No

Tabla de palabras <Objeto> [índice]:Líndice[índice]:L 0<i +índice+L<Nmáx (2) Sí%MDi[índice]:L 0<i +índice+L<Nmáx (2) Sí%KWi[índice]:L 0<i+índice+L<Nmáx (2) No%KDi[índice]:L 0<i+índice+L<Nmáx (2) No

(1) m = modularidad del módulo E/S (ej.: 8 para un módulo de 8 entradas u 8 salidas). Laindexación es posible únicamente para los módulos E/S TON.

(2) Nmáx = número máximo definido en la configuración del programa.Este tipo de direccionamiento permite recorrer sucesivamente una serie de objetos de la mismanaturaleza (palabras internas, palabras constantes...); a la dirección del objeto se agrega elcontenido del índice.NotaIndexación de palabras dobles (o flotantes)Ejemplo: %MD6[%MW100] doble palabra de dirección directa 6 + 2 veces el contenido de lapalabra %MW100. Si %MW100=10, la palabra direccionada será 6 + 2 x 10 -->%MD26.

Page 31: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/23

A

• Desbordamiento de índice, bit sistema %S20

Se produce un desbordamiento de índice cuando la dirección de un objeto indexadoexcede los límites del área que incluye este mismo tipo de objeto; es decir cuando:• dirección de objeto + contenido del índice inferior al valor cero,• dirección de objeto + contenido del índice superior al límite máximo configurado

(véase la tabla en la página 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 supervisión del desbordamiento: el bit %S20 debeser leído por el programa de usuario para un tratamiento posible y puesto a cero porel usuario.

%S20 (estado inicial = 0):• desbordamiento de índice: puesta a 1 por el sistema,• confirmación de desbordamiento: puesta a 0 por el usuario después de la

modificación 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 gráfico

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. Permiteconocer el tiempo de actividad de la etapa i del Gracet. Se incrementa cada 100 msy asume un valor entre 0 y 9999.

1.2-8 Objetos de bloques de función DFB

Los parámetros de entradas y las variables públicas de bloque de función DFB sonaccesibles por programa, estos objetos son de tipo boleano, numérico o tabla (véasecapítulo 6).Estos objetos son únicamente simbólicos y se definen con la sintaxis siguiente:Nombre_DFB.Nombre_parámetro, donde Nombre_DFB es el nombre proporcionadoal bloque de función DFB utilizado (32 caracteres máximo) y Nombre_parámetro esel nombre proporcionado al parámetro de salidas o a la variable pública (8caracteres máximo).

Page 32: Manual PL7

1/24___________________________________________________________________________

A

1.2-9 Simbolización

Símbolos

Un símbolo es una cadena que consta de un máximo de 32 caracteres alfanuméricosy cuyo primer carácter es alfabético. El primer elemento del símbolo es una letramayúscula; las demás son minúsculas (por ejemplo: el símbolo Horno_1). El símbolopuede ser introducido en letras mayúsculas o en minúsculas (por ejemplo: HORNO_1):el programa le da automáticamente la forma correcta.

Pueden utilizarse los caracteres siguientes:• letras mayúsculas:

"A a Z" y las letras acentuadas "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏDÑÒÓÓÕÖØÙÚÛUY"o letras minúsculas:" a a z" y las letras acentuadas: àáâãäåæçèéêëìíîïðñòóôõöØùúûüypßÿ

• caracteres numéricos: dígitos de 0 a 9 (no pueden colocarse en el principio delsímbolo).

• el carácter "_" (no puede colocarse en el principio ni al final del símbolo).

Se reserva un cierto número de palabras para los lenguajes; éstas no puedenutilizarse como símbolos. Véase la lista completa en la sección B, capítulo 5.

El editor de variables define y asocia los símbolos a objetos de lenguaje (véase elcapítulo 5, sección D). Se puede asociar un comentario de 508 caracteres a cadasímbolo. Los símbolos y sus comentarios se guardan en un disco en vez del autómata.

Objetos simbolizables

Se pueden simbolizar todos los objetos PL7, salvo los objetos estructurados de tipotabla y los objetos indexados. Sin embargo, si el objeto de base o el índice estásimbolizado, el símbolo se utiliza en el objeto estructurado.

Ejemplos:• si la palabra %MW0 tiene como símbolo "temperatura", "temperatura: 12" simboliza

la tabla de palabras %MW0:12.• si la palabra %MW10 tiene como símbolo "horno_1", "temperatura[horno_1]"

simboliza la palabra indexada %MW0[%MW10].

Los objetos bits extraídos de palabras, los bits o las palabras de bloques de funciónson simbolizables. Si no están simbolizados, pueden heredar el símbolo del objetode base.Ejemplos:• si la palabra %MW0 tiene como símbolo "estado_bomba" y si el bit extraído de

palabra %MW0:X1 no está simbolizado, éste hereda el símbolo de la palabra.%MW0:X1 tiene como símbolo: "estado_bomba: X1".

• si el bloque de función %TM0 tiene como símbolo " Tempo_horno1" y si la salida%TM0.D no está simbolizada, ésta hereda el símbolo del bloque. %TM0.D tienecomo símbolo: "Tempo_horno.D".

Page 33: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/25

A

Objetos únicamente simbólicos

Los parámetros de bloques función DFB son accesibles únicamente en forma desímbolos. Estos objetos se definen con la siguiente sintaxis:

Nombre_DFB.Nombre_parámetro,

donde Nombre_DFB es el nombre proporcionado al bloque de función DFB utilizado(32 caracteres máximo) y Nombre_parámetro es el nombre proporcionado alparámetro de salidas o a la variable pública (8 caracteres máximo).

Objetos presimbolizadosLos módulos específicos permiten una simbolización automática de los objetos queles están asociados. El usuario proporciona el símbolo genérico de la vía %CHxy.idel módulo, y todos los símbolos de los objetos asociados a esta vía pueden serentonces a pedido generados automáticamente.

Estos objetos son simbolizados con la sintaxis siguiente:

Prefijo_usuario_Sufijo_constructordondeEl Prefijo_usuario es el símbolo genérico proporcionado a la vía %CHxy.i (12caracteres máximo) para el usuario,El Sufijo_constructor es la parte del símbolo correspondiente al sujeto bit o palabrade la vía (20 caracteres máximo) proporcionado por el sistema.

Además del símbolo, un comentario constructor se genera automáticamente. Estecomentario recuerda sucintamente la función del objeto.

Ejemplo : Rec_piezas_capt , donde "Rec_piezas" es el prefijo usuario y "_capt" esel sufijo constructor predefinido.

Page 34: Manual PL7

1/26___________________________________________________________________________

A

1.3 Memoria de usuario

1.3-1 Generalidades

El espacio de memoria de los autómatas TSX 37 , accesible al usuario, se componede dos partes distintas:• la memoria de bits

RAM integrada en el módulo procesador que contiene la imagen de 1280 objetosbits.

• la memoria de palabraspalabras de 16 bits (programa, datos y constantes) soportadas por una memoriaRAM interna del módulo procesador. Esta memoria puede ampliarse con unatarjeta de memoria de usuario RAM o FLASH EPROM de 32 ó 64 K palabras (enel TSX 37-21/22). Para guardar la aplicación (15 Kpalabras) y 1000 palabrasinternas %MWi (1Kpalabras), se puede utilizar una memoria de 16 K palabrasFLASH EPROM integrada en el módulo procesador (Véase el apartado 1.3-2).

También es posible utilizar una tarjeta backup FLAH EPROM de 32 K palabras paraactualizar una aplicación en la RAM interna del procesador. Esta tarjeta contienela parte programa y las constantes pero no los datos.

Si se utiliza una tarjeta de memoria (PCMCIA), 2 tipos de organización de lamemoria de palabras son posibles:

Datos : datos dinámicos de aplicación y sistema,Programa : descriptores y código ejecutable de tareas,Constantes : palabras constantes, valores iniciales y configuración de las E/S.

Observación

Las memorias RAM utilizan como respaldo baterías de niquel-cadmio soportadaspor el módulo procesador en cuanto a la memoria bit y RAM interna.

(1) La transferencia de la aplicación desde la memoria FLASH EPROM hacia la memoria RAMse efectúa automáticamente cuando la aplicación se pierde en la RAM (fallo al guardar oausencia de batería). También se puede solicitar una transferencia manual desde unterminal de programación.

Programa

Constantes

RAMinterna

TarjetamemoriaRAM oFlashEPROMexterna

TSX 37-05/08/10 oTSX 37-21/22 (sin tarjeta PCMCIA)

Datos

Programa

Constantes

GuardadoPrograma yConstantes

Guardado%MW

RAMinterna

FlashEPROMinterna (1)

Áreainutilizable

Guardado%MW

FlashEPROMinterna

Datos

TSX 37-21/22 (con tarjeta PCMCIA)

Page 35: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/27

A

El espacio de memoria de los autómatas TSX/PMX/PCX 57 se compone de una solaparte. La memoria de bits, separada en el TSX 37, está integrada en la memoria depalabras (en el área de datos) y se limita a 4096 bits.

• La memoria de palabrasPalabras de 16 bits (programa, datos y constantes) soportadas por una memoriaRAM interna del módulo procesador, esta memoria puede ampliarse con unatarjeta de memoria de usuario RAM o FLASH EPROM de 32, 64, 128 ó 256 Kpalabras (en el TSX 57-10) y de 32, 64 ó 128 K palabras (1).También es posible utilizar una tarjeta de seguridad FLASH EPROM de 32 Kpalabras para actualizar una aplicación en la RAM interna del procesador. Estatarjeta contiene la parte programa y las constantes pero no los datos.Dos tipos de organización de la memoria son posibles en función de la presenciao del modo de utilización de la tarjeta de memoria PCMCIA:

TSX/PMX/PCX 57 TSX/PMX/PCX(sin tarjeta de memoria) (con tarjeta de memoria)

Datos : datos dinámicos de aplicación y datos del sistema (el sistemareserva un área de memoria RAM de un mínimo de 5 Kpalabras),

Programa : descriptores y código ejecutable de tareas,Constantes : palabras constantes, valores iniciales y configuración de E/S.Símbolos : Las tarjetas TSX MRP 2128P y TSX MRP 3256 P contienen un

área de 128 Kpalabras y 256 Kpalabras para almacenar lossímbolos de la aplicación.

Area de archivado: Las tarjetas TSX MRP 232P/264P/2128P/3256 P contienen unárea de archivado de los datos accesibles mediante lasinstrucciones de lectura/escritura (véase Capítulo 2.13,sección B).

No hay posibilidad de desbordamiento de datos en la tarjeta de memoria. Tambiénes imposible tener programa tanto en la RAM interna como en el cartucho.

Observación

Las memorias RAM utilizan como respaldo baterías de niquel-cadmio.

RAMinterna

Datos Datos

Programa

Constantes

Constantes

RAMinterna

TarjetamemoriaRAM oFLASHEPROM

Programa

(1)Las tarjetas de memoria 256 Kpalabras son tarjetas paginadas. Una página de 128Kpalabras que recibe el código ejecutable, la otra página de 128 Kpalabras que recibe lainformación gráfica. Para obtener más información, véase capítulo 8 , sección B.

Page 36: Manual PL7

1/28___________________________________________________________________________

A

1.3-2 Guardado / restauración de palabras internas %MWi

Guardado de palabras internas %MWiPara guardar los datos de ajuste al producirse un corte de alimentación, cuando lapila del procesador presenta un fallo o está ausente, los autómatas TSX 37 puedenvolver a copiar un máximo de 1000 palabras internas (%MW) en la memoria FlashEPROM interna. Este área de guardado se puede utilizar siempre, incluso cuandoel autómata dispone de una tarjeta PCMCIA (TSX 37-21/22).El guardado de palabras internas en la Flash EPROM requiere que la aplicación estéen STOP . Dicha aplicación podrá activarse de nuevo en función de la selecciónrealizada en configuración:

• 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 número de %MWi que se vaa guardar (máximo 1000).

Al término del guardado, el bloque de visualización muestra OK o NOK en funcióndel resultado de la operación.

El guardado de palabras internas %MWi se asocia siempre al guardado delprograma de aplicación .Si la palabra de sistema %SW97 se inicializa a 0, únicamente el programa de laaplicación contenido en la RAM interna será transferido a la Flash EPROM (equivalentea una copia de seguridad del programa). Atención: sin embargo un eventualguardado de %MWi se borrará.

Restauración de palabras internas %MWiLa transferencia de las %MWi guardadas, de la memoria interna Flash EPROM haciala memoria RAM, se realiza durante un rearranque en frío provocado por:• la pérdida del contenido de la RAM interna. En ese caso, si el guardado del

programa de la aplicación es válida, éste también será transferido a la memoriaRAM interna (TSX 37-10 o TSX 37-20 sin cartucho aplicación PCMCIA),

• el botón RESET, situado en la parte delantera del autómata,• la puesta a 1 del bit %S0, en ajuste,• el clic en el botón "Arranque en frío" de la pantalla de depuración del procesador

de PL7,• una transferencia de programa en el autómata (a través de la toma terminal,

FIPWAY, etc),• la inserción de un cartucho de aplicación PCMCIA.

Para restaurar en la RAM interna las %MW guardadas, se deberá comprobar en lapantalla de configuración del procesador que la casilla "Puesta a 0 de las %MWi porrearranque en frío" no esté seleccionada.Para obtener más información, véase la sección A del manual de instalaciónTSX Micro.

Page 37: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/29

A

1.3-3 Memoria de bitsComposiciónEsta memoria contiene 1280 objetos bits sin distinción del tipo de autómata TSX 37.Para el TSX/PMX/PCX 57, esta memoria de bits no existe; su contenido se encuentraen la memoria de palabras en el área de datos de la aplicación.

TSX TSX TSX/PMX TSX/PMX TSX/PMX37-05/08/10 37-21/22 PCX 57-1• 57-2• PCX 57-3•

Bits sistema %SI 128 128 128 128 128

Bits de E/S %I/Qx (1) (1) (1) (1) (1)

Bits internos %Mi 256 256 3962 (2) 8056 (2) 12152 (2)

Bits de etapas %Xi (3) 96 128 1024 1024 1024(1) Depende la configuración hardware declarada (módulos de entradas/salidas, esquipos en

bus AS-i y en bus FIPIO).(2) Los parámetros del número de bits internos pueden definirse en la configuración. El valor

predeterminado (de 256 a 2048) depende del procesador y de la presencia de un cartuchode memoria. La memoria restante está disponible para las funciones específicas.

(3) Total de los bits de etapas y de macroetapas para los autómatas TSX/PMX/PCX 57.

Estructura

Cada objeto bit contenido en la memoria de bits se memoriza con tres bits asignadosdel modo siguiente:

Al actualizar la memoria de bits, el sistema asegura• la transferencia de la imagen del estado actual al estado anterior,• la reactualización del estado actual por el programa, el sistema o el terminal

(forzado de un bit).

Flanco ascendente o descendenteEsta estructura de la memoria de bits permite detectar el flanco ascendente odescendente en:• los bits de entradas/salidas,• los bits internos.Consejos de utilización de flancos ascendentes o descendentesLas instrucciones de contacto en el flanco ascendente o descendente funcionancorrectamente en las condiciones descritas a continuación.

• 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 elmódulo,

- el bit de salida o interno: la lectura y la escritura dentro de una misma tarea .

F A C

Estado actual (único bit accesible

desde el programa)

Estado anterior

Estado de forzado

Page 38: Manual PL7

1/30___________________________________________________________________________

A

• Se escribe una sola vez la bobina de un objeto cuando se utiliza en un programaun 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 ecuación que condiciona el SET/RESETvale 0, la acción SET/RESET no se realiza, pero el historial del objeto se actualiza(pérdida del flanco).

• No se debe probar el flanco de entradas/salidas actualizado en una tarea desuceso, una tarea maestra o una tarea rápida.

• Para los bits internos: la detección de un flanco es independiente del ciclo de latarea. Se detecta un flanco en un bit interno %Mi, cuando su estado cambia entredos lecturas. Este flanco permanece detectado mientras no se explore el bitinterno en el área de acción.

Por consiguiente, en el ejemplo siguiente,si el bit %M0 se fuerza a 1 en una tabla deanimación, el flanco queda permanente.

Para que el flanco se detecte una sola vez, se debe utilizar un bit interno intermedio.

En este caso, el historial de %M1 seactualiza. Por consiguiente, el flanco estápresente una sola vez.

Estados de forzado

A petición 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; sólo se modifica el estado actual.

INC%MW0P

%M0

INC%MW0P

%M1

%M1%M0

Page 39: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/31

A

1.3-4 Memoria de palabras

La estructura de esta memoria de palabras de 16 bits consta de tres espacios lógicos:

• datos, Datos de aplicación

• programa, Programa de aplicación

• constantes, Constantes de aplicación

cuyo tamaño se define en la configuración.

Memoria de datos de aplicación

La memoria de datos comprende las cinco áreas descritas a continuación.

• Palabras sistema : número fijo.

• Bloques de función : corresponde a las palabras y entradas/salidas de estosbloques (valor actual, de ajuste...).El número de cada tipo de bloque de función se determina en la configuración.

• Palabras internas : tamaño definido por el número declarado en la configuración.

• Entradas/salidas : corresponde a las palabras asociadas a cada módulo. Sunúmero depende de los módulos configurados.

• Palabras comunes de red : 4 palabras comunes por estación de autómata(disponible únicamente si el módulo de comunicación está presente y se haconfigurado el intercambio de palabras comunes).

En el caso del TSX/PMX/PCX 57, la memoria de datos comprende también lasinformaciones de bits detalladas en el párrafo previo.

Memoria de programa de aplicación

Este área comprende el código del programa ejecutable, las informaciones gráficas(redes de contactos) y los comentarios.

Memoria de constante de aplicación

Este área comprende los parámetros de los bloques de función y de los módulos deentradas/salidas definidos en la configuración, así como las palabras constantes%KW.

NotaLos símbolos y los comentarios asociados a objetos no se guardan en la memoria del autómata.Se almacenan en la aplicación local (disco duro del terminal).

Page 40: Manual PL7

1/32___________________________________________________________________________

A

1.3-5 Autómatas TSX 37 05/08/10/21/22

Tamaño de la memoria bits

Procesador 37 05/08/10 37 21/22

Tamaño disponible en procesador 1280 1280

Tipo de bits sistema %Si 128 128

objetos bits entradas/salidas %I/Qx.i (1) (1)

bits internos %Mi 256 256

bits de etapas %Xi 96 128

(1) depende de la configuración hardware declarada (módulos de entradas/salidas, equiposen bus AS-i)

Tamaño de la memoria palabras

Processeur 3705/08 3710 3721 37 22 Tarjeta mem. - - 32Kpals 64Kpals - 32Kpals 64Kpals

Tamaño total 9Kpals 14Kpals 20Kpals 52Kpals 84Kpals 20Kpals 52Kpals 84Kpals

Datos (%MWi) 0,5Kpals(1) 0,5Kpals(1) 0,5Kpals(1) 17,5Kpals 17,5Kpals 0,5Kpals(1) 17,5Kpals 17,5Kpals

Programa

100% boleano

• Lenguaje LD 1,6 Kinst 3,8 Kinst 6,6 Kinst 13,7 Kinst 28,5 Kinst 6,3 Kinst 13,6 Kinst 28,4 Kinst

• Langage IL 2 Kinst 4,9 Kinst 8,4 Kinst 17,5 Kinst 36,3 Kinst 8,1 Kinst 17,3 Kinst 36,1 Kinst

• Langage ST 1,3 Kinst 3,3 Kinst 5,6 Kinst 11,7 Kinst 24,2 Kinst 5,4 Kinst 11,5 Kinst 24,1 Kinst

Programa

90% boleano

• Langage LD 1,1 Kinst 3,1 Kinst 5,4 Kinst 11,8 Kinst 24,7 Kinst 5,2 Kinst 11,6 Kinst 24,5 Kinst

• Langage IL 1,4 Kinst 3,8 Kinst 6,6 Kinst 14,3 Kinst 30,0 Kinst 6,3 Kinst 14,2 Kinst 29,8 Kinst

• Langage ST 1,1 Kinst 2,9 Kinst 5,1 Kinst 11,1 Kinst 23,3 Kinst 4,9 Kinst 11,0 Kinst 23,2 Kinst

Programa

65% boleano

• Langage LD 0,9 Kinst 2,2 Kinst 4,0 Kinst 9,1 Kinst 18,9 Kinst 3,9 Kinst 8,9 Kinst 18,8 Kinst

• Langage IL 1,0 Kinst 2,5 Kinst 4,6 Kinst 10,3 Kinst 21,3 Kinst 4,4 Kinst 10,1 Kinst 21,2 Kinst

• Langage ST 1,0 Kinst 2,5 Kinst 4,6 Kinst 10,3 Kinst 21,3 Kinst 4,4 Kinst 10,1 Kinst 21,2 Kinst

Constantes (1) 128 pals 128 pals 128pals 256pals 512pals 128pals 256 pals 512pals

Ki = Kinstrucciones.(1) Tamaño predeterminado, se puede ampliar en detrimento del tamaño del programa de

aplicación.

Nota: el comando Autómata/Asignación de memoria del software PL7 permite conocer larepartición de memoria de la aplicación en la memoria autómata.

Page 41: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/33

A

1.3-6 Autómatas TSX/PCX/PMX 57-10/20/25

Estas tablas se refieren a los autómatas TSX 57-10, PCX 57-10, PMX 57-10, TSX 57-20, PMX 57-20 y TSX 57-25.

Tamaño de la memoria en bits

Procesador 57 10 57 20/25

Tipo de bits sistema %Si 128 128

objetos bits entradas/salidas %I/Qx.i (1) (1)

bits internos %Mi 3962 8056

bits de etapas %Xi 1024 1024

(1) depende de la configuración hardware declarada (módulos de entradas/salidas, equiposen bus AS-i y en bus FIPIO)

Tamaño de la memoria palabras

Procesador TSX-PCX57 10 / PMX 57 10 TSX-PMX 5720 / TSX 57 25

Tarj. de memoria - 32K 64K - 32K 64K 128K

Memoria interna 32K/48K 32K/48K 32K/48K 48K/64K 48K/64K 48K/64K 48K/64K

Datos (%MWi) 1K(1) 26K 26K 1K(1) 30,5K 30,5K 30,5K

Programa

100% boleano

• Lenguaje LD 8,8/16,1 Ki 12,4/12,4Ki 27,2/27,2 Ki 16,1/23,5 Ki 12,4/12,4 Ki 27,2/27,0 Ki 56,8/56,8 Ki• Lenguaje IL 11,2/20,6 Ki 15,8/15,8 Ki 34,7 /34,7Ki 20,5/29,9 Ki 15,8/15,8 Ki 34,7/34,4 Ki 72,4/72,4 Ki

• Lenguaje ST 13,7 /13,7Ki 10,6 /10,6Ki 23,1/23,1 Ki 13,7/19,9 Ki 10,5/10,5 Ki 23,1/23,0 Ki 48,2/48,2 Ki

Programa90% boleano

• Lenguaje LD 5,3/11,6 Ki 8,8/8,8Ki 21,6/21,6 Ki 11,6/17,6 Ki 8,7/8,7 Ki 21,6/21,6 Ki 47,7/47,5 Ki

• Lenguaje IL 6,3/14,2 Ki 10,5/10,7 Ki 25,9 /26,3Ki 13,9/21,1 Ki 10,4/10,4 Ki 25,8/25,8 Ki 56,6/56,7 Ki

• Lenguaje ST 5,0 /11,0Ki 8,4 /8,3Ki 20,7/20,4 Ki 11,1/16,9 Ki 8,4/8,4 Ki 20,7/20,7 Ki 45,4/45,4 KiPrograma

65% boleano

• Lenguaje LD 3,7/8,5 Ki 6,8/6,6Ki 16,9/16,5 Ki 8,7/13,7 Ki 6,8/6,8 Ki 16,8/16,8 Ki 37,0/37,0 Ki• Lenguaje IL 3,8/9,7 Ki 6,9/7,5 Ki 17,3 /18,7Ki 8,9/14,1 Ki 6,9/6,9 Ki 17,2/17,2 Ki 37,9/37,9 Ki

• Lenguaje ST 4,4 /9,7Ki 8,0 /7,5Ki 20,0/18,7 Ki 10,3/16,3 Ki 8,0/8,0 Ki 19,9/19,9 Ki 43,8/43,8 Ki

Constantes (1) 128 pals. 128 pals. 256 pals. 512 pals. 128 pals. 256 pals. 512 pals.

K = Kpalabras Ki = Kinstrucciones(1) Tamaño predeterminado, que puede ampliarse en detrimento del tamaño de la aplicación.

Notas :• cuando la tabla menciona para una característica 2 valores separados por una "/", éstas

están asociadas respectivamente a cada tipo de procesador (separados por una "/" en elencabezado de la tabla).

• el comando Autómata/Asignación de memoria del software PL7 permite conocer laasignación de memoria de la aplicación en la memoria del autómata.

Page 42: Manual PL7

1/34___________________________________________________________________________

A

1.3-7 Autómatas TSX/PCX 57-30/35

Estas tablas se refieren a los autómatas TSX 57-30, TSX 57-35, PCX 57-35.

Tamaño de la memoria en bits

Procesador 57 30/35

Tipo de bits sistema %Si 128

objetos bits entradas/salidas %I/Qx.i (1)

bits internos %Mi 12152

bits de etapas %Xi 1024

(1) depende de la configuración hardware declarada (módulos de entradas/salidas, equiposen bus AS-i y en bus FIPIO)

Tamaño de la memoria palabras

Procesador TSX 5730 / TSX y PCX 57 35

Tarj. de memoria - 32K 64K 128K 256K

Memoria interna 64K / 80K 64K / 80K 64K / 80K 64K / 80K 64K / 80K

Datos(%MWi) 1K(1) 30,5K 30,5K 30,5K 30,5K

Programa

100% boleano

• Lenguaje LD 23,5/30,8 Ki 12,4 K/12,4 Ki 27,2 K/27,2 Ki 56,8 K/56,8 Ki 90,5 K/90,5 Ki• Lenguaje IL 29,9/39,3 Ki 15,8 K/15,8 Ki 34,7K/34,7Ki 72,4 K/72,4 Ki 83,6 K/83,6 Ki

• Lenguaje ST 19,9 /26,2 Ki 10,5 K/10,5 Ki 23,1 K/23,1 Ki 48,2 K/48,2 Ki 74,6 K/74,6 Ki

Programa

90% boleano• Lenguaje LD 18,0/24,4 Ki 8,7 K/8,7 Ki 21,6 K/21,6 Ki 47,5 K/47,5 Ki 76,8 K/76,8 Ki

• Lenguaje IL 21,5/29,2 Ki 10,4 K/10,4 Ki 25,8 K/25,8 Ki 56,7 K/56,7 Ki 73,9 K/73,9 Ki

• Lenguaje ST 17,2 /23,4Ki 8,4 K/8,4 Ki 20,7 K/20,7 Ki 45,49K/45,49Ki 76,0 K/76,0 Ki Programa

65% boleano

• Lenguaje LD 13,7/18,8 Ki 6,8 K/6,8 Ki 16,8 K/16,8 Ki 37,0 K/37,0 Ki 63,1 K/63,1 Ki• Lenguaje IL 14,1/19,2 Ki 6,9 K/6,9 Ki 17,2 K/17,2 Ki 37,9 K/37,9 Ki 61,4 K/61,4 Ki

• Lenguaje ST 16,3 /22,2Ki 8,0 K/8,0 Ki 19,9 K/19,9 Ki 43,8 K/43,8 Ki 63,8 K/63,8 Ki

Constantes (1) 256 pals. 256 pals. 256 pals. 1024 pals. 1024 pals.

K = Kpalabras Ki = Kinstrucciones(1) Tamaño predeterminado, que puede ampliarse en detrimento del tamaño de la aplicación.

Notas :• cuando la tabla menciona para cada característica 2 valores separados por una "/", éstos

están asociados respectivamente a cada tipo de procesador (separados por una "/" en elencabezado de la tabla).

• el comando Autómata/Asignación de memoria del software PL7 permite conocer laasignación de la memoria de la aplicación en la memoria !del autómata.

Page 43: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/35

A

1.3-8 Autómatas PMX57-35/45 y TSX 57-40/45

Estas tablas se refieren a los autómatas PMX 57-35, PMX 57-45, TSX 57-40 y TSX57-45.

Tamaño de la memoria en bits

Procesador PMX 57 35/45 y TSX 57 40/45

Tipo bits sistema %Si 128

de objetos bits entradas/salidas %I/Qx.i (1)

bits internos %Mi 12152

bits de etapas %Xi 1024

(1) depende de la configuración hardware declarada (módulos de entradas/salidas, equiposen bus AS-i y en bus FIPIO)

Tamaño de la memoria palabras

Procesador PMX 57 35 / PMX 45 / TSX 57 40 y45 Tarj. de memoria - 32K 64K 128K 256K

Memoria interna 80K/96K/96K 80K/96K/96K 80K/96K/96K 80K/96K/96K 80K/96K/96K

Datos (%MWi) 1K(1) 30,5K 30,5K 30,5K 30,5K

Programa

100% boleano

• Lenguaje LD 28,8/36,1/37,5Ki 12,4Ki 27,2Ki 56,8Ki 90,5Ki

• Lenguaje IL 36,7/46,1/47,8Ki 15,8Ki 34,7Ki 72,4Ki 83,6Ki• Lenguaje ST 24,5/30,7/31,9Ki 10,5Ki 23,1Ki 48,2Ki 74,6Ki

Programa

90% boleano• Lenguaje LD 22,6/29,0/30,3Ki 8,7Ki 21,6Ki 47,5Ki 76,8Ki

• Lenguaje IL 27,1/34,7/36,1Ki 10,4Ki 25,8Ki 56,7Ki 73,9Ki

• Lenguaje ST 21,7 /27,8/29,0Ki 8,4Ki 20,7Ki 45,49Ki 76,0KiPrograma

65% boleano

• Lenguaje LD 17,4/22,4/23,3Ki 6,8Ki 16,8Ki 37,0Ki 63,1Ki

• Lenguaje IL 17,8/22,9/23,9Ki 6,9Ki 17,2Ki 37,9Ki 61,4Ki• Lenguaje ST 20,5 /26,5/27,6Ki 8,0Ki 19,9Ki 43,8Ki 63,8Ki

Constantes (1) 256 palabras 256 palabras 256 palabras 1024 palabras 1024 pal.

K = Kpalabras Ki = Kinstrucciones(1) Tamaño predeterminado, que puede ampliarse en detrimento del tamaño de la aplicación.

Notas :• cuando la tabla menciona para cada característica 2 valores separados por una "/", éstos

están asociados respectivamente a cada tipo de procesador (separados por una "/" en elencabezado de la tabla).

• el comando Autómata/Asignación de memoria del software PL7 permite conocer laasignación de memoria de la aplicación en la memoria del autómata.

Page 44: Manual PL7

1/36___________________________________________________________________________

A

1.4 Modos de marcha

1.4-1 Corte de corriente y reanudación de la alimentaciónSi se produce un corte de corriente, el sistema memoriza el contexto de la aplicacióny la hora del corte. Luego, posiciona todas las salidas al estado de retorno (definidoen la configuración). Cuando se reanuda la alimentación, el contexto guardado secompara con el actual. El resultado define el tipo de arranque ejecutado.• Si el contexto de aplicación ha cambiado (pérdida del contexto sistema o nueva

aplicación), el autómata inicializa la aplicación: arranque en frío.• Si el contexto de aplicación es idéntico, el autómata reanuda sin inicializar los

datos: rearranque en caliente.Si el corte es inferior al tiempo de filtrado (10 ms para las alimentaciones alternas y1 ms para las continuas), el programa lo ignora y sigue ejecutando normalmente.

RUNAplicación

Corte de corriente

Reanud. aliment.

Corte Contextodetectado guardado

Tarjeta dememoria idéntica

Ejecución normal Rearranque Arranquedel programa en caliente en frío

NotaUn arranque en frío puede realizarse de los modos siguientes:• reanudación de la alimentación con pérdida de contexto (ejemplo: batería de respaldo del

procesador fuera de servicio),• ejecutando una aplicación por primera vez,• presionando el botón RESET del procesador,• poniendo a 1 el bit sistema %S0 desde el programa,• efectuando una inicialización en PL7 desde el terminal,• con la tarjeta de memoria PCMCIA insertada en su emplazamiento o manipulando el prensil

(excepto para el autómata PCX 57, donde la inserción de carta memoria PCMCIA estáprohibida en encendido).

Un rearranque en caliente puede realizarse de los modos siguientes:• reanudación de la alimentación sin pérdida de contexto,• poniendo a 1 el bit sistema %S1 desde el programa.• desde PL7 mediante el terminal.

Espera

Sí No

NoSí

No

Page 45: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/37

A

1.4-2 Rearranque en caliente

Reanudación de la ejecución del programaSe reanuda la ejecución del programa a partir del elemento en el que se produjoel corte de corriente sin que se actualicen las salidas. Luego, el sistema efectúa unciclo de reanudación en el que acepta de nuevo todos los módulos de entrada,vuelve a activar la tarea maestra con el bit %S1 posicionado a 1 durante un ciclode tarea y actualiza las salidas. El sistema desactiva las tareas rápida y de sucesohasta el fin del primer ciclo de la tarea maestra.

Tratamiento del rearranque en calienteEn caso de rearranque en caliente, el usuario que desea un tratamiento particularrespecto a la aplicación debe escribir en el principio del programa de la tareamaestra el programa correspondiente sobre prueba de %S1 a 1.

Evolución de las salidas• Al detectarse el corte de corriente, las salidas se ponen en posición de retorno:

al valor de retorno o conservación del valor actual, según la configuración.• Al reanudar la alimentación, las salidas están en el estado cero hasta que la tarea

las actualice.

Parada procesadorContexto aplicación

guardado

Reanud. alimentación

Autopruebasde la configuración

Puesta a 1 del

bit %S1

Adquisiciónde entradas

Ejecución del programaTOP

Si %S1 = 1,tratamiento relativo alrearranque en caliente

Corte de corriente> microcorte

BOT

Puesta a 0 del bit%S1

Actualizaciónde salidas

No

Page 46: Manual PL7

1/38___________________________________________________________________________

A

1.4-3 Arranque en frío

Inicialización 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 configuración del procesador, la opción RAZ delas %MW al arrancar en frío, consúltese la sección D - apartado 1.3). Si la opciónRAZ de las %MW no está activa y si las %MWi está salvadas en la memoria internaFlash EPROM (TSX 37), éstas se restaurarán al arrancar en frío.

• inicialización de los bits y palabras sistema,• inicialización de los bloques de función a partir de los datos de configuración,• 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 fríoDespués de un arranque en frío, si el usuario que desea efectuar un tratamientoaplicativo, tiene la posibilidad de probar por programa el bit %SW10:X0 (si%SW10:X0=0, se ha producido un arranque en frío). Al arrancar en frío, el autómatareanuda o no la ejecución , según la configuración definida por el usuario (parámetroRUN AUTO).Evolución de las salidas• Al detectarse el corte de corriente, las salidas se ponen en posición de retorno: a

0 o conservación del valor actual, según la configuración.• Al reanudar la alimentación, las salidas están a cero hasta que la tarea las

actualice.

Adquisiciónde entradas

Ejecución del programaTOP

Si %S0 = 1,tratamiento eventualdel arranque en frío

Corte de corriente> microcorte

BOT

Puesta a 0 del bit%S0

Actualizaciónde salidas

Parada procesadorContexto aplicación

guardado

Reanud. alimentación

Autopruebasde la configuración

Inicialización dela aplicación

Puesta a 1 del bit%S0

No

Page 47: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/39

A

1.5 Estructura software monotarea

1.5-1 Presentación de la tarea maestra

El programa de una aplicación monotarea está asociado a una tarea usuario: la tareaMAST.El programa asociado a la tarea maestra está estructurado en un tratamientoprincipal constituido por varias secciones y de subprogramas.

• tratamiento principal (MAIN) divididoen secciones, que se programan comoentidades separadas en el lenguajeadecuado (LD, IL, ST o Grafcet).

• subprograma SRi (i=0 a 253)Los módulos subprograma seprograman también como entidadesseparadas en LD, IL o ST, mientras lasllamadas a los subprogramas seefectúan en las secciones deltratamiento principal o desde otrossubprogramas (8 imbricaciones comomáximo).

La ejecución de la tarea maestra puedeelegirse (en configuración) cíclica operiódica.

Módulos funcionales: véase capítulo 7

Presentación de una sección

Una sección se caracteriza por:

• un nombre de 24 caracteres máximo,

• el lenguaje en el cual está programada,

• la tarea a la cual pertenece,

• una condición de ejecución (opcional),la sección está activa si la condiciónvale 1 e inhibida si vale 0.

Objetos autorizados como condición:%M,%S,%X,bit indexado,bits extraído,%I , %Q. Todos estos objetos se puedenforzar desde el terminal excepto los %S, bitsbit indexado, bits extraído,%I xy.i.ERR,y%I xy.MOD.ERR.

• un comentario de 250 caracteres máximo.

• una protección: protección contra escritura, protección contra lectura/escritura. Laprotección puede ser general o parcial.

Nota: en el arranque en frío las condiciones de ejecución están a 0, y todas las secciones alas cuales se asocia una condición están inhibidas.

Sas(LD)

MAST

Horno_1(Grafcet)

PRL(LD)

CHART

POST(IL)

Secado(LD)

Limpieza(ST)

SR0

Page 48: Manual PL7

1/40___________________________________________________________________________

A

Una sección es una entidad autónoma,las etiquetas de marcación de las líneasde instrucciones o de las redes decontactos son propias a la sección (nohay salto de programa posible hacia otrasección).

Las secciones se ejecutan en el orden deprogramación en la ventana delnavegador.

La tarea maestra del ejemplo de la páginaanterior está constituida por:• una sección en lenguaje de contactos

LD,• una sección en Grafcet,• una sección en lenguaje literal ST,• una sección en lenguaje lista de

instrucciones.

Sección Grafcet :Una sección Grafcet comprende:• el tratamiento preliminar (PRL) pro-

gramado en LD, ST o IL. Se ejecutaantes de Grafcet,

• el Grafcet (CHART): en las páginasGrafcet, se programan lasreceptividades asociadas a lastransiciones y acciones asociadas alas etapas y o a las etapas demacroetapas (véase cáp....),

• el tratamiento posterior (POST) pro-gramado en LD, ST o IL. Se ejecutadespués de Grafcet,

• los subprogramas SRi (i = 0 a 253). Losmódulos de subprograma, seprograman como entidades separadasy las llamadas a los subprogramas seefectúan en el tratamiento preliminar,posterior, en las acciones asociadas alas etapas o desde otros subprogramas(8 imbricaciones máximo).

Mast

Sections

SR

Prl

Chart

Post

SR0

SR1

SR2

Sas

Four_1

Secado

Limpieza

TraitementpréliminairePRL

Sous-programmeSRi

Page GrafcetCHART(8 pages)

Réceptivités

Actions

TraitementpostérieurPOST

Sous-programmeSRi

Sous-programmeSRi

TratamientopreliminarPRL

Pág. GrafcetCHARt(8 págs)

TratamientoposteriorPOST

SubprogramaSRi

SubprogramaSRi

SubprogramaSRi

Receptividades

Acciones

Page 49: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/41

A

1.5-2 Ejecución cíclica

Este tipo de funcionamiento corresponde a la ejecución normal del ciclo de autómata(funcionamiento predeterminado). Consiste en encadenar uno tras otro los ciclos dela tarea maestra (MAST). Después de actualizar las salidas, el sistema realiza sustratamientos propios y luego activa otro ciclo de la tarea.

Tratamiento del Tratamientoprograma del programa

%I %Q %I %QT.I. T.I.

Ciclo n Ciclo n+1

T.I. Tratamiento interno: el sistema supervisa implícitamente el autómata (gestiónde los bits y palabras sistema, actualización de los valores actuales del reloj-calendario y de los indicadores de estado, detección de los RUN/STOP) ytratamiento de las peticiones provenientes del terminal (modificaciones yanimación).

%I Adquisición de entradas: escritura en memoria del estado de las informacionespresentes en las entradas de los módulos TON y de funciones específicas.Tratamiento de programa: ejecución de la aplicación escrita por el usuario.

%Q Actualización de las salidas: escritura de los bits o palabras de salidasasociados a los módulos TON y de funciones específicas, según el estadodefinido por el programa de aplicación.

Ciclo de funcionamiento y control del cicloAutómata en RUN: el procesadorefectúa el tratamiento interno, laadquisición de las entradas, eltratamiento del programa de aplicación yla actualización de las salidas, en esteorden.Autómata en STOP: el procesadorefectúa• el tratamiento interno,• la adquisición de las entradas,• y según la configuración elegida,

- modo de retorno: las salidas se ponenen posición de "retorno" ,

- modo de conservación: las salidasconservan los valores actuales o semodifican desde el terminal.

Control del ciclo: el watchdog efectúa elcontrol del ciclo; véase el capítulo 1.5-4.

(1) En el caso del TSX/PMX/PCX 57, el tratamiento interno se realiza en paralelo con lostratamientos de las entradas y salidas.

Tratamiento interno

Adquisición de entradas

RUN STOP

Tratamiento del programa

Actualización de salidas

(1)

Page 50: Manual PL7

1/42___________________________________________________________________________

A

1.5-3 Ejecución periódica

En este modo de funcionamiento, la adquisición de las entradas, el tratamiento delprograma de aplicación y la actualización de las salidas se efectúan de maneraperiódica según el tiempo definido en la configuración (de 1 a 255 ms).

En el inicio del ciclo de autómata, un temporizador, cuyo valor actual se inicializa enel período definido en la configuración, comienza a descontar. El ciclo de autómatadebe terminarse antes de la expiración de este temporizador que activa un nuevociclo.

Tratamiento Tratamiento deldel programa programa

%I %Q %I %QT.I. T.I. T.I. T.I.

Período Período

T.I. Tratamiento interno: el sistema supervisa implícitamente el autómata (gestiónde los bits y palabras sistema, actualización de los valores actuales del reloj-calendario y de los indicadores de estado, detección de los RUN/STOP) y eltratamiento de las peticiones provenientes del terminal (modificaciones yanimación).

%I Adquisición de entradas: escritura en memoria del estado de las informacionespresentes en las entradas de los módulos TON y de funciones específicas.Tratamiento del programa: ejecución del programa de aplicación escrito porel usuario.

%Q Actualización de las salidas: escritura de los bits y palabras de salidasasociados a módulos TON y de funciones específicas según el estado definidopor el programa de aplicación.

(1) En el caso del TSX/PMX/PCX 57, el tratamiento interno se realiza en paralelo con lostratamientos de las entradas y salidas

Page 51: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/43

A

Ciclo de funcionamiento y control del ciclo

Autómata en RUN: el procesadorefectúa el tratamiento interno, laadquisición de las entradas, eltratamiento del programa de aplicación yla actualización de las salidas, en esteorden. Si todavía no se ha terminado elperíodo, el procesador completa su ciclode funcionamiento hasta el fin del períodocon tratamiento interno.

Si el tiempo de funcionamiento excede eltiempo asignado al período, el autómataseñala un desbordamiento de períodomediante la puesta a 1 del bit sistema%S19 de la tarea. El tratamiento continúay se ejecuta en su totalidad (no debeexceder el tiempo límite del watchdog).El ciclo siguiente se activa después de laescritura implícita de las salidas del cicloen curso.

Autómata en STOP: el procesadorefectúa• el tratamiento interno,• la adquisición de las entradas,• y según la configuración elegida,

- modo de retorno: las salidas seponen en la posición de "retorno",

- modo de conservación: las salidasconservan los valores actuales o semodifican desde el terminal.

Control del cicloSe efectúan 2 controles:• desbordamiento del período,• mediante el watchdog,

(véase el capítulo 1.5-4).

Activación del período

Tratamiento interno

Adquisición de entradas

RUN STOP

Tratamiento del programa

Actualización de salidas

Tratamiento interno

Fin de período

(1) En el caso del TSX/PMX/PCX 57, el tratamiento interno se realiza en paralelo con lostratamientos de las entradas y salidas

(1)

(1)

Page 52: Manual PL7

1/44___________________________________________________________________________

A

1.5-4 Control del tiempo de ciclo

Watchdog (funcionamiento periódico o cíclico)

El autómata (el watchdog) controla el tiempo de ejecución de la tarea maestra tantoen el funcionamiento periódico como en el cíclico. El tiempo no debe exceder el valordefinido en la configuración Tmáx (valor predeterminado: 250ms, valor máximo:500ms).

En caso de desbordamiento, se declara una falla de aplicación y el autómata sedetiene inmediatamente (si está configurada, la salida de alarma %Q2.0 se ponea 0 en el TSX 37; en el TSX/PMX/PCX 57, el relé de alarma se pone a 0 al conectarla alimentación).

El bit %S11 permite controlar la ejecución de esta tarea.

Señala un desbordamiento del watchdog. El sistema lo pone a 1, cuando el tiempode ciclo excede el watchdog.

En el TSX/PMX/PCX 57, el valor del watchdog debe ser superior al período.

En el funcionamiento periódico, un control adicional permite detectar un rebasamientode período:

• %S19: señala un desbordamiento de período. El sistema lo pone a 1, cuando eltiempo de ciclo excede el período de la tarea.

• %SW0: esta palabra contiene el valor del período (en ms). En el arranque en frío,se inicializa con el valor definido en la configuración. Puede ser modificada por elusuario.

Uso de los tiempos de ejecución de la tarea maestra

Las palabras sistema siguientes permiten obtener informaciones sobre el tiempo deciclo:

• %SW30 contiene el tiempo de ejecución del último ciclo,

• %SW31 contiene el tiempo de ejecución del ciclo más largo,

• %SW32 contiene el tiempo de ejecución del ciclo más corto.

NotaTambién es posible acceder a estas informaciones de forma explícita desde el editor deconfiguración.

Page 53: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/45

A

1.6 Estructura multitarea

1.6-1 Descripción

La estructura de las tareas en este tipo de aplicación es la siguiente:

• la tarea maestra MAST, siempre presente, cíclica o periódica,• la tarea rápida FAST, opcional, siempre periódica,• 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 aplicacionesque necesitan tiempos de respuesta cortos para actuar sobre las entradas/salidas..

Las tareas maestra y rápida son estructuradas en secciones (véase descripción deuna sección en el capítulo 1.5).

Sólo la tarea maestra puede comprender una sección Grafcet.Las tareas de suceso sólo comprenden una sola sección cuyo nombre no puedemodificarse.

Sas(LD)

MAST

Horno_1(Grafcet)

PRL(LD)

CHART

POST(IL)

Secado(LD)

Limpieza(ST)

FAST

Alarma_Sas(LD)

Vig_Sec(LD)

Alarma_Horno(ST)

Alarma_Limpieza(ST)

SR0

SR0

EVT0

Tarea rápida

Prioridad

Tarea maestra

Tareas de suceso

+-

Módulos funcionales: véase capítulo 7.

Page 54: Manual PL7

1/46___________________________________________________________________________

A

Ejemplo de estructura de programa multitarea

Page 55: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/47

A

Gestión de las tareas

La tarea maestra permanece siempre activa; la tarea rápida 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 rápida, la ejecución de las tareasmenos prioritarias se detiene. Se reanuda la ejecución de la tarea interrumpida,cuando se terminan los tratamientos de la tarea prioritaria.El programa controla la ejecución de las tareas rápidas y de suceso con de los bitssistema siguientes:• %S31 permite activar o no la tarea maestra MAST,• %S31 permite activar o no la tarea rápida FAST,• %S38 permite activar o no las tareas de suceso EVTi.

Ejemplo de tratamiento multitarea• tarea maestra cíclica,• tarea rápida de 20 ms,• tarea de suceso.

E T S E T S E T S E T S

E T S

E

Suceso

Rápida

Maestra

Sistema

T S

E T E TT S T S E T

20 ms 20 ms 20 ms 20 ms

1.6-2 Tarea maestra

Esta tarea, que es la menos prioritaria, efectúa la gestión de la mayor parte delprograma de aplicación. La tarea MAST está organizada según el modelo descritoen el subcapítulo previo: lectura implícita de las entradas, ejecución del programade aplicación y escritura implícita de las salidas.

En ambos modos de funcionamiento (periódico o cíclico), el watchdog que controlala tarea permite detectar una duración anormal del programa de aplicación. En casode desbordamiento, el bit sistema %S11 se pone a 1 y se declara una falla conbloqueo de la aplicación.El bit sistema %S30 permite validar o inhibir la tarea maestra.

Page 56: Manual PL7

1/48___________________________________________________________________________

A

1.6-3 Tarea rápida

Esta tarea de mayor prioridad que la tarea maestra MAST es periódica para permitirla ejecución de la tarea menos prioritaria.

Además, los tratamientos asociados a ella deben ser de corta duración para noretardar la tarea maestra. Como en la tarea maestra, el programa asociado secompone de secciones y de subprogramas.

El período de la tarea rápida FAST se determina en la configuración (de 1 a 255 ms).Este puede definirse superior al período de la tarea maestra MAST para que se adaptea tratamientos periódicos lentos pero prioritarios. Sin embargo, el programa ejecutadodebe ser de corta duración.

Un watchdog que controla la tarea rápida permite detectar una duración anormal delprograma de aplicación. En caso de desbordamiento, el bit sistema %S11 se ponea 1 y se declara una falla con bloqueo del autómata.

Control de la tarea rápida

La palabra sistema %SW1 contiene el valor del período. Se inicializa en el arranqueen frío con el valor definido en la configuración. El usuario puede modificarla desdeel programa o el terminal.Los bits y palabras sistema siguientes permiten controlar la ejecución de esta tarea:

• %S19: señala un desbordamiento de período. El sistema lo pone a 1, cuando eltiempo de ciclo excede el período de la tarea.

• %S31: permite validar o inhibir la tarea rápida. El sistema lo pone a 0 al final delprimer ciclo de la tarea maestra, cuando la aplicación se arranca en frío. Se ponea 1 o 0 para validar o inhibir la tarea rápida.

Visualización de los tiempos de ejecución de la tarea rápida

Estas palabras sistema permiten obtener informaciones sobre el tiempo de ciclo:• %SW33 contiene el tiempo de ejecución del último ciclo,• %SW34 contiene el tiempo de ejecución del ciclo más largo,• %SW35 contiene el tiempo de ejecución del ciclo más corto.

Page 57: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/49

A

1.6-4 Asignación de vías de E/S a las tareas maestra y rápida

Además del programa de aplicación, las tareas MAST y FAST ejecutan funcionessistema relacionadas con la gestión de las entradas/salidas implícitas asociadas.

La asociación de una vía o un grupo de vías a una tarea se define en la pantalla deconfiguración del acoplador correspondiente. De forma predeterminada, la tareaasociada es la tarea MAST.

Puesto que la modularidad de los módulos TON es de 8 vías sucesivas (vías 0 a 7,vías 8 a 15, ...), las entradas/salidas pueden asignarse por grupos de 8 vías, sindistinción, a la tarea MAST o FAST. Por ejemplo, es posible asignar las vías de unmódulo 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 vía de un módulo de contaje puede asignarse sin distinción a la tarea MASTo FAST. Por ejemplo, es posible asignar a un módulo de contaje de 2 vías:• la vía 0 a la tarea MAST y

• la vía 1 a la tarea FAST.

Las vías de los módulos de entradas analógicas TSX 37 se asignan obligatoriamentea la tarea MAST. En cambio, es posible asignar las vías de las salidas analógicassin distinción a la tarea MAST o FAST, con una modularidad de 2 vías. Por ejemplo,se pueden asignar a un módulo de 4 salidas analógicas:

• las vías 0 y 1 a la tarea MAST y

• las vías 2 y 3 a la tarea FAST.

Las vías de los módulos E/S analógicas TSX 57 pueden asignarse a la tarea MASTo FAST. Esta asignación es individual para cada vía de los módulos E/S analógicasaisladas (4 vías aisladas) y con una modularidad de vías para los demás módulos.

Page 58: Manual PL7

1/50___________________________________________________________________________

A

1.6-5 Tareas de suceso

Los tratamientos de sucesos permiten reducir el tiempo de reacción del programasobre los sucesos de control.

Sucesos de control

Son sucesos externos vinculados a las funciones específicas. La aparición de unsuceso desvía el programa de aplicación hacia el tratamiento asociado a la vía deentradas/salidas que activó el suceso. Antes de llamar al tratamiento de suceso, elsistema actualiza las entradas (%I, %IW, %ID) asociadas a la vía de E/S que activóel suceso. Es posible configurar:• 8 sucesos en un autómata TSX 37-05/08/10 (EVT1 a EVT8),• 16 sucesos en un autómata TSX 37-21/22 (EVT0 a EVT15),• 32 sucesos en un autómata TSX/PMX/PCX 57-10 (EVT0 a EVT31),• 64 sucesos en un autómata TSX/PMX/PCX 57-20/30 (EVT0 a EVT63).Una vía se asocia a un número de suceso en la pantalla de configuración de vías.

En el TSX 37, los tratamientos de suceso pueden ser activados por:

• las entradas 0 a 3 del módulo en la posición1, en el flanco ascendente odescendente,

• la o las vías de contaje de los módulos de contaje,• las vías de contaje del módulo 1 (si éste está configurado como contador),• la recepción de telegramas en un TSX 37-21/22 dotado de un módulo TSX FPP20.

En el TSX/PMX/PCX 57, los tratamientos de suceso pueden ser activados por:

• las entradas de los módulos DEY 16 FK, DMY 28 FK, DMY 28 RFK• las vías de los contadores,• las vías de los módulos de comando de eje CAY,• las vías de los módulos de comando paso a paso CFY,• las vías de comunicación "FPP20".

Gestión de las tareas de suceso

Los tratamientos de sucesos pueden ser globalmente validados o inhibidos por elprograma de aplicación a través del bit sistema %S38. Si uno o varios sucesosintervienen durante su inhibición, se pierden los tratamientos asociados.

Dos instrucciones del lenguaje PL7, MASKEVT() y UNMASKEVT(), utilizadas en elprograma de aplicación, permiten enmascarar o desenmascarar los tratamientos desucesos. Si uno o varios sucesos intervienen durante su enmascaramiento, elsistema los memoriza y los tratamientos asociados se efectuarán sólo después deldesenmascaramiento.

Los 8 sucesos de control posibles en un autómata TSX 37-05/08/10 tienen todos elmismo nivel de prioridad; por consiguiente, un tratamiento de suceso no puede serinterrumpido por otro. En un autómata TSX 37-21/22 o en un autómata TSX/PMX/PCX57, hay 2 niveles de prioridad de sucesos de control: el suceso 0 (EVT0) es másprioritario que los demás sucesos.

Page 59: Manual PL7

Generalidades PL7 1

___________________________________________________________________________1/51

A

Intercambios de entradas/salidas en las tareas de suceso

Es posible asociar a cada tarea de suceso otras vías de entradas/salidas que larelativa al suceso. El sistema realiza los intercambios implícitamente antes (%I) ydespués (%Q) del tratamiento aplicativo. Estos intercambios pueden ser relativosa una vía (ejemplo: módulo de contaje) o a un grupo de vías (módulo TON). En elsegundo caso, si el tratamiento modifica por ejemplo las salidas 2 y 3 de un móduloTON, es la imagen de las salidas 0 a 7 la que se transferirá al módulo.

Recapitulación de los intercambios y tratamientos

La aparición de un suceso desvía elprograma de aplicación hacia eltratamiento asociado a la vía de entrada/salida que activó el suceso:

• se adquieren automáticamente todaslas entradas asociadas a la vía queactivó el suceso.

• se adquieren todas las entradasdeclaradas por el usuario en la tareaEVTi.

• el tratamiento debe ser el más cortoposible.

• se actualizan todas las salidasdeclaradas por el usuario en la tareaEVTi. Para que puedan actualizarse,también deben declararse las salidasasociadas a la vía que activó el suceso.

Tratamientode suceso

(tarea EVTi)

Adquisiciónimplícita de

entradas asociadasa la vía origen

del suceso

Adquisiciónimplícita de

entradasdeclaradas en la

tarea EVTi

Tratamiento delsuceso

Actualizaciónimplícita de

salidas declaradasen la tarea

EVTi

IT

r

Nota:En el caso de los módulos TOR TSX DEY16FK, TSX DMY28FK o TSX DMY28RFK, la entradaque ha generado el suceso no debe ser controlada en el tratamiento de sucesos (el valor noes actualizado). La prueba del flanco que ha iniciado el suceso debe ser efectuada en la palabrade estado:%IWxy.i:X0 = 1 --> flanco ascendente%IWxy.i:X1 = 1 --> flanco descendente

Page 60: Manual PL7

1/52___________________________________________________________________________

A

Observaciones

En el TSX 37, no deben intercambiarse en un tratamiento de suceso los módulosde entradas analógicas que sólo pueden utilizarse en la tarea MAST.

Los intercambios de las entradas/salidas asociadas a la tarea EVTi y utilizadaspor el programa se realizan mediante vía (para los módulos de contaje) omediante grupo de vías (para los módulos TON). Por esta razón, si el tratamientomodifica por ejemplo las salidas 2 y 3 de un módulo TON, es la imagen de lassalidas 0 a 7 la que se transferirá al módulo.

En el TSX 37, para cada tratamiento de suceso, es posible declarar como máximolos intercambios de 2 módulos en entrada (antes del tratamiento del suceso) y2 módulos en salida (después del tratamiento del suceso).

Las entradas intercambiadas (y el grupo de vías asociadas) durante la ejecuciónde la tarea de sucesos se actualizan (pérdida de valores históricos, pues de losflancos). Por consiguiente, se debe evitar comprobar los flancos en estasentradas en las tareas maestra (MAST) y rápida (FAST).

En el TSX 57, según el procesador utilizado, el número de intercambios utilizadosse limita.

N° de intercambios utilizables P57-1• (32 EVTs) P57-2•/3• (64 EVTs)en los EVT por el procesador

N° máx. de intercambios TON 32 intercambios 128 intercambios

N° máx. de intercambios ANA 8 intercambios 16 intercambios

N° máx. de intercambios fun. esp. 4 intercambios 16 intercambios

Para las E/S TON, un intercambio implica un grupo de 8 vías. Se genera al utilizarlas entradas de un grupo de 8 vías (otro que el grupo de vías que genera el suceso)y al escribir las salidas de un grupo de 8 vías.

Para las E/S ANA o las E/S de otra función específica, un intercambio se genera alutilizar las entradas de una vía (otra que la vía que genera el suceso al escribir lassalidas de una vía).

Visualización del número de sucesos tratados

La palabra %SW48 indica el número de sucesos tratados. El sistema inicializa estapalabra a 0 al arrancarse en frío 0 y la incrementa al activar un suceso. El usuariopuede modificar esta palabra.%S39 indica la pérdida de suceso.NotaUna recapitulación de las operaciones que se deben efectuar para programar los sucesos seproporciona en la sección A, capítulo 5.3 de los manuales de funciones específicas.

Page 61: Manual PL7

Lenguaje de contactos 2

___________________________________________________________________________2/1

A

2.1 Presentación del lenguaje de contactos

2.1-1 Principio

Un programa escrito en lenguaje de contactos se compone de una serie de redesejecutadas secuencialmente por el autómata.

Trazada entre dos barras de potencial, una red es un conjunto de elementos gráficosque representan:

• las entradas/salidas del autómata (botones pulsadores, detectores, relés,indicadores...),

• funciones de automatismos (temporizadores, contadores...),

• operaciones aritméticas, lógicas y específicas,

• las variables internas del autómata.

Estos elementos gráficos están vinculados entre sí mediante conexiones horizontalesy verticales.

Cada red así constituidacontiene un máximo de16 líneas y 11 columnas(para los autómatas TSX/PMX/PCX 57) ó 7 líneas y11 columnas (para losautómatas TSX 37).Se divide en 2 áreas:

• el área de prueba, en laque figuran lascondiciones necesariaspara una acción,

• el área de acción, quepresenta el resultado deun encadenamiento depruebas.

MAIN

EVT

SR

FAST

PRE

MAST

POST

AUX

CHART

% L

%I1.0 %M12 %Q2.5%I3.7

%TM4.Q %M17

%MW4<50

%MW15 : = %MW18+500%TM0%I3.10 %Q4.3

IN

TYP : TPTB : 100ms

TM.P : 200MODIF : Y

Q

SR1

C

%I1.2 %I1.4

%M27 %M25 %MW0:X5

Formulario de programaciónEsquema de contactos

Capítulo 22 Lenguaje de contactos

Espera de secado

Page 62: Manual PL7

2/2___________________________________________________________________________

A

2.1-2 Elementos gráficos

Elementos de baseCada uno ocupa una sola celda (1 línea de alto, 1 columna de ancho).

Designación Gráfico Funciones

Elementos de • Contacto de Contacto establecido cuando el objeto bit queprueba cierre lo controla está en el estado 1.

• Contacto de Contacto establecido cuando el objeto bit queapertura lo controla está en el estado 0.

• Contacto de Flanco ascendente: detección del paso de 0 adetección de 1 del objeto bit que lo controla.cambio deestado Flanco descendente: detección del paso de 1

a 0 del objeto bit que lo controla.

Elementos de • Conexión Permite vincular en serie entre las dos barrasenlace horizontal de potencial elementos gráficos de prueba

y de acción.

• Conexión Permite vincular en paralelo los elementosvertical gráficos de prueba y de acción.de potencial

• Derivación de Permite unir 2 objetos a través decorto circuito varias conexiones.

Elementos • Bobina El objeto bit asociado toma el valor delde acción directa resultado del área de prueba.

• Bobina El objeto bit asociado toma el valor inverso delinversa resultado del área de prueba.

• Bobina El objeto bit asociado se pone a 1 cuando elde conexión resultado del área de prueba es 1.

• Bobina de El objeto bit asociado se pone a 0 cuando eldesconexión resultado del área de prueba es 1.

• Salto condi- Permite una desviación a una red etiquetadacional a que se encuentra arriba o abajo.otra red Sólo son válidos los saltos dentro de una(JUMP) misma entidad de programación (programa

principal, subprograma,...)La ejecución de un salto provoca:• la parada de la exploración de red en curso,• la ejecución de la red con la etiqueta solicitada,• la no exploración de la parte del programa situada entre la acción de salto y la red designada.

• Bobina de signo Propuesta en lenguaje Grafcet, utilizada al de número programar receptividades asociadas a

transiciones; hace pasar a la etapa siguiente.

->> %Li

S

N

P

R

#

Page 63: Manual PL7

Lenguaje de contactos 2

___________________________________________________________________________2/3

A

Bloques de función DFB

Designación Gráfico Funciones

Elementos • Bloques Cada uno de los bloques de función DFButiliza entradas, salidas y entradas/salidasque permiten vincularlos a los otroselementos gráficos para los objetos detipo bits o que puedan asignarse a objetosnuméricos o tablas.Las funciones del bloque DFB se describenen el capítulo 6.Dimensiones: véase apartado 2.2-5

Los bloques de función DFB no pueden utilizarse en los autómatas TSX37.

Designación Gráfico Funciones

Elementos • Bobina de Permite una desviación en el inicio del subpro-de acción llamada a un grama cuando el resultado del área de prueba(cont.) subprograma es 1.

(CALL) La ejecución de una llamada a un sub-programa tiene como consecuencia:

• la parada de la exploración de red en curso,

• la ejecución del subprograma,

• la reanudación de la exploración interrumpida.

• Regreso del Reservada para el subprograma SR. Permite re-subprograma gresar al módulo que llama cuando el resultado

del área de prueba es 1.

• Parada de Detiene la ejecución del programaprograma cuando el resultado del área de prueba es 1.

Bloques de función estándar

Designación Gráfico Funciones

Elementos • Bloques: Cada bloque de función estándar utilizade prueba Temporizador entradas y salidas que permiten vincularlos

Contador a otros elementos gráficos. Las funciones deMonoestable los bloques se describen en la sección B.Registro Dimensión: véase el capítulo 2.2-5.Programadorcíclico Drum

C

<RETURN>

<HALT>

Page 64: Manual PL7

2/4___________________________________________________________________________

A

Bloques de operación

Designación Gráfico Funciones

Elementos • Bloque de Permite comparar 2 operandos; según elde prueba comparación resultado, la salida correspondiente pasa a 1.

verticalDimensión: 2 columnas/4 líneas

• Bloque de Permite comparar 2 operandos; la salida pasacomparación a 1 cuando se ha verificado el resultado. (Unhorizontal bloque puede contener hasta 4096 caracte-

res). Dimensión: 2 columnas/1 línea

Elemento • Bloque de Realizan las operaciones aritméticas, lógicas…de acción operación utilizando la sintaxis del lenguaje literal. (Un

bloque puede contener hasta 4096 caracteres.)Dimensión: 4 columnas/1 línea

Page 65: Manual PL7

Lenguaje de contactos 2

___________________________________________________________________________2/5

A

MAIN

EVT

SR

FAST

PRE

MAST

POST

AUX

CHART

% L

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 deelementos gráficos vinculados entre sí por enlaces horizontales o verticales.

Las dimensiones máximas de una red son 16 líneas y 11 columnas (para losautómatas TSX/PMX/PCX 57) ó 7 líneas y 11 columnas (para los autómatas TSX 37)repartidas en dos áreas: el área de prueba y el área de acción.

1 2 3 4 5 6 7 8 9 10 11

Líneas

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Columnas

Area de prueba

Area de acción

Barras depotencial

Formulario de programaciónesquema de contactos

Page 66: Manual PL7

2/6___________________________________________________________________________

A

2.2-2 Etiqueta

La etiqueta (opcional) permite marcar una red en una entidad de programa (programaprincipal, subprograma, ...).

La sintaxis de la etiqueta es la siguiente: %Li, con i comprendida entre 0 y 999. Secoloca en la parte superior izquierda en frente de la barra de potencial.

Se puede asignar unaetiqueta a una sola reddentro de una mismaentidad de programa.

En cambio, es necesarioponer etiqueta a una redpara permitir unadesviación después de unsalto de programa.

El orden de las etiquetas no tiene importancia (es el orden de introducción de las redesque el sistema tiene en cuenta durante la exploración).

2.2-3 Comentario

El comentario (opcional) se integra en la red y comprende un máximo de 222caracteres alfanuméricos, con los caracteres '(*' y '*)' en cada extremo. Facilita lainterpretación de la red a la que está asignado.

Los comentarios semuestran en el áreareservada en la partesuperior de la red decontactos.

Cuando se elimina unared, se elimina también elcomentario asociado.

Los comentarios se almacenan en el autómata, donde quedan a la disposición delusuario en todo momento. Por consiguiente, consumen memoria de programa.

% L

%Q2.3 %Q4.7%I1.4 %MW2:X9

%M16

%I1.3

SR4C

%M12 %TM3.Q

%C8.E

%Q2.0 %M155%MW3:X0 %M3 %I5.2

S%I1.3 %I3.1 %M13 %Q4.7

% L2 4 5

%M3 %Q2.1%I1.6 %MW1:X2

%TM4.D

%L245%M20

Area de comentario

Page 67: Manual PL7

Lenguaje de contactos 2

___________________________________________________________________________2/7

A

2.2-4 Red de contactos

Su representación se parece a un esquema eléctrico de relés.

Los elementos gráficos simples de prueba y de acción ocupan cada uno una línea yuna columna en una red.

Todas las líneas decontactos comienzan en lalínea de potencializquierda y se terminan enla línea de potencialderecha.

Las pruebas se sitúansiempre en las columnasde 1 a 10.Las acciones se sitúansiempre en la columna 11.

El sentido de circulacióndel corriente es elsiguiente:

• para los enlaces horizon-tales, de la izquierda a laderecha ,

• para los enlaces vertica-les, en ambos sentidos.

Area de prueba

Contiene:

• los contactos, a los quese pueden asignar todoslos objetos bits definidospreviamente,

• los bloques de función,• los bloques de

comparación.

Los flancos puedenasociarse sólo a objetosbits E/S y a bits internos.

% L

%Q2.3 %Q4.7%I1.4 %MW2:X9

%M16

%I1.3

SR4C

%M12 %TM3.Q

%C8.E

%Q2.0 %M155%MW3:X0 %M3 %I5.2

S%I1.3 %I3.1 %M13 %Q4.7

% L

%M16 %T3.D

%I5.4

%C13.E

% L

%I6.8S

TB : 100ms

MN.P : 80

%C2.D

%MW8:X4

%MN0%M9R

%Q2.6 %M85

%S6

Page 68: Manual PL7

2/8___________________________________________________________________________

A

Area de acciónContiene:

• las bobinas directas, in-versas, de conexión ydesconexión, quepueden asignarse atodos los objetos bits queel usuario puede escribir,

• los bloques deoperación,

• las demás "bobinas":Call, Jump, Halt, Return.

Red simpleControl de una bobinacondicionada por uncontacto.

Se utiliza un máximo de 10contactos en serie en unalínea.

Es posible probar 16contactos (7 contactospara TSX37) máximo enparalelo en una columna ycolocar 16 bobinas (7 bo-binas para TSX37) enparalelo.

%I1.3 %Q4.12

% L

%M52

%MW2 := %MW0+1

%MW8:X10%MW8:X1/

%Q6.5%M8S

%M12R

%M1 %Q6.3%I3.2 %MW18:X4%Q4.2 %M15 %TM2.Q %I3.4 %MW1:X5 %M5 %C0.D

/

% L

%M5 %Q6.2

%M25

%MW8:X0

SR9

%L20

%M12

%Q2.6S

R

C

/

%I6.9

%MW15:X5

%C6.E

%Q5.2

%I3.7

%S4

%M8 %M30

%M31

%M32

%M33

%M34

%M35

%M36S

R

C

/

%M9

%M10

%M11

%M12

%M13

%M14

%M15 %M37

%M38%M16

Page 69: Manual PL7

Lenguaje de contactos 2

___________________________________________________________________________2/9

A

Red que utiliza varias cadenas de contactos

Una red puede dividirseen varias cadenas decontactos independientesque controlan bobinasindependientes.

16 líneas (7 líneas paraTSX37) de contactosindependientes.

Redes que utilizan losdiferentes principiosenunciados.

Están rodeados loselementos que seencuentran en el estadológico 1. La corrientepuede pasar de loselementos A y C hacia labobina F, pero no puedepasar del elemento C hacialos elementos D y E. Porconsiguiente, no se activala bobina G.

% L

FA C

G

B D

E

% L

%I3.2 %L12

SRØ

%Q3.2

%Q3.3

%MW3:X6

%M27

%M68S

/

%C2.E

%S4

%I6.5

%M53

%MW8:X4

%M12

%MW6:X10 %M88

P

C

%M30

%M31

%M32

%M33

%M34

%M35S

/

%M8

%M9

%M10

%M11

%M12

%M13

P

C

%M36

%M37

%M38/

%M14

%M15

%M16P

C

Page 70: Manual PL7

2/10___________________________________________________________________________

A

Observación:

Las entradas no cableadas de los bloques de función estándar se ponen a 0.

2.2-5 Red de contactos con bloques de función y de operación

• Los bloques de función se posicionan en el área de prueba y se insertan en una redde contactos.Existen cuatro dimensiones de grafismo que representan todos los bloques defunción del lenguaje PL7.

Contador/Descontador 2 columnasComparador "vertical" 4 líneas

Temporizadores 2 columnasMonoestable 3 líneasRegistroProgramador cíclico

Comparador "horizontal" 2 columnas1 línea

%TM10

%C4

COMPARE

Page 71: Manual PL7

Lenguaje de contactos 2

___________________________________________________________________________2/11

A

• Los bloques de función DFB se posicionan en el área de prueba y se insertan enuna red de contactos.Las dimensiones del grafismo dependen del número de entradas, salidas y deentradas/salidas utilizadas:

EL ancho es fijo y es igual a 3 columnas.

La altura es igual al más mayor de los 2 númerossiguientes más 1:

• número de entradas y de entradas/salidas

o

• número de salidas y de entradas/salidas

Ejemplo:El número de entradas y de entradas/salidas es de 4,el número de salidas y de entradas/salidas es de 3, laaltura del bloque es 4+1=5 columnas.

La altura máxima de un bloque de función DFB es de16 líneas.

Observaciones:

• Un bloque de función DFB debe tener por lo menosuna entrada booleana cableada.

• Las entradas, salidas o entradas/salidasnuméricas del bloque no están cableadas. Enestos puntos se asocian objetos mencionados enla celda colocada frente al punto.

• Las entradas no cableadas de los bloques defunción DFB conservan el valor anterior a la llamadao el valor de inicialización si el bloque jamás hasido llamado con esta entrada introducida ocableada.

• Los bloques de operación se posicionan siempre en el área de acción. Utilizan 1línea y 4 columnas y el lenguaje literal. Se conectan siempre directamente a la barrade potencial derecha.

%MW22 : = %MW1+%MW9%MW10:X5

DFB

Page 72: Manual PL7

2/12___________________________________________________________________________

A

Bloques de función en cascadaIgual que para los elementos gráficos del tipo contacto, es posible realizar combinacionesde bloques de función.

Serielización de bloques de función:

Combinaciones de bloques de función y de operación

Otras posibilidades de bloques de funciónTodos los tipos de bloques de función deben conectarse obligatoriamente en entradaa la barra de potencial izquierda, o directamente o a través de otros elementos gráficos.

• Salidas "sueltas": no es necesario conectar las salidas de bloques de función a otroselementos gráficos.

• Salidas que se pueden probar: el usuario accede a las salidas de los bloquesfunción bajo forma de objetos bits.

Las variables internas de bloques y las salidas gráficas son objetos que pueden serexplotados a distancia desde otra parte del programa.

% L

%MN1S

TB : 100ms

MN.P : 80

R%TM12

INTYP : TPTB : 100msTM.P : 200MODIF : Y

Q%I3.6 %Q6.3

% L

%MW1>100%TM10

INTYP : TPTB : 1sTM.P : 50MODIF : Y

Q%I1.5 %M28

%MW2>500%I1.2

%TM2.P := 3450

%TM12.Q %Q4.12%C5.E

Page 73: Manual PL7

Lenguaje de contactos 2

___________________________________________________________________________2/13

A

2.3 Reglas de ejecución de una red de contactos

2.3-1 Principio de ejecución de una red

Una red se ejecuta red conexa por red conexa, y luego, dentro de la red conexa, dela izquierda a la derecha.

Una red conexa contiene elementos gráficos vinculados entre sí por elementos deenlace (fuera de la barra de potencial), pero independientes de los demás elementosgráficos de la red (en el límite de la red conexa, sin enlaces verticales hacia arribao abajo).

La primera red conexa evaluada es la cuya esquina izquierda se encuentra lo másarriba a la izquierda.

Una red conexa se evalúa en el sentido de la ecuación: de arriba abajo, línea por líneay cada línea de la izquierda a la derecha.Si se encuentra un enlace vertical de convergencia, se evalúa la subred asociada(según la misma lógica) antes de continuar la evaluación de la red que la engloba.

Respetando este orden de ejecución, el sistema:

• evalúa el estado lógico de cada contacto, según el valor actual de los objetosinternos de la aplicación o del estado de las entradas de los módulos E/S adquiridasen el inicio del ciclo,

• ejecuta los tratamientos asociados a funciones, a bloques de función y asubprogramas,

• actualiza los objetos bits asociados a bobinas (las salidas de los módulos E/S seactualizan al final del ciclo),

• desvía hacia otra red etiquetada del mismo módulo de programa (salto a otra red->>%Li), regresa al módulo que llama <RETURN> o detiene el programa <HALT>.

NotaUna red de contactos no debe contener redes conexas imbricadas.

Redconexa 1

Redconexa 2

%Q2.5%M0 %M8

%I2.5 %TM1IN Q

%MØINIT

%Q2.6%MØ

Redconexa 3

Page 74: Manual PL7

2/14___________________________________________________________________________

A

El orden de ejecución de los elementos de esta red es el siguiente:

• evaluación de la redhasta que se encuentreel primer enlace verticalde convergencia: con-tactos A, B, C,

• evaluación de la primerasubred: contacto D,

• continuación de laevaluación de la redhasta que se encuentreel segundo enlace verti-cal de convergencia:contacto E,

• evaluación de lasegunda subred:contactos F y G,

• evaluación de labobina H.

Ejemplo de red"booleana"Orden de evaluación:

• bobina 1: INIT, %M5,%M7, %Q2.1,

• bobina 2: %M4,%MW2:X1, AUTO,UP_1,

• bobina 3: INIT,DOWN_1.

Ejemplo de red quecontiene bloquesOrden de evaluación:• bobina 1: %M0, %M8,

%M2, %T1, %Q2.9,• bobina 2: %T1.R, %T2,

%M9,• bloque de operación.

% L

A HB C E

D

F G

% L

INIT %Q2.1%M7

UP_1

DOWN_1

%M5 %M4

%MW2:X1

AUTO

INIT

% L

%Q2.9%MØ %M8

%M9

%M2 %T1E

C

D

R

%T2D

R

%T1.DE

C %MW10 := %MW1+50

Page 75: Manual PL7

Lenguaje Lista de instrucciones 3

___________________________________________________________________________3/1

ACapítulo 3

3 Lenguaje Lista de instrucciones

3.1 Presentación del lenguaje Lista de instrucciones

3.1-1 Principio

Un programa escrito en lenguaje Lista de instrucciones se compone de una serie deinstrucciones ejecutadas secuencialmente por el autómata.

Ejemplo de instrucción: LD %I1.0

Código de instrucción Operando

Cada instrucción se compone de un código de instrucción y de un operando.

Estas instrucciones actúan sobre:

• las entradas/salidas del autómata (botones pulsadores, detectores, relés,indicadores...),

• funciones de automatismos (temporizadores, contadores...),

• operaciones aritméticas y lógicas así como operaciones de transferencia,

• las variables internas del autómata.

Hay dos tipos de instrucciones:

• instrucción de prueba, en la que figuran las condiciones necesarias para una acción,ej.: LD, AND, OR...

• instrucción de acción, que da el resultado de un encadenamiento de prueba,ej.: ST, STN, R...

Page 76: Manual PL7

3/2___________________________________________________________________________

A

3.1-2 Instrucciones

Instrucciones de base(para más amplia información sobre las instrucciones, véase el apartado B)

Designación Instrucciones Funciones equivalentes

Instrucciones • LD, LDN, LDR, LDFde prueba

• AND, ANDN,ANDR, ANDF

• OR, ORN, ORR, ORF

• AND(, OR((8 niveles de paréntesis)

• XOR, XORN, XORR, XORF O exclusiva

• MPSMRDMPP

• N Negación

Instrucciones • ST, STN, S, Rde acción

• JMP, JMPC, JMPCN Permite una desviación (incondicional, condicio-nada a un resultado booleano a 1, condicionada aun resultado booleano a 0) a una instrucción eti-quetada, arriba o abajo.

• SRn Desviación en el inicio del subprograma.RET, RETC, RETCN Regreso del subprograma (incondicional, condi-

cionado a un resultado booleano a 1, condicionadoa un resultado booleano a 0).

• END, ENDC, ENDCN Fin de programa, (incondicional, condicionado aun resultado booleano a 1, condicionado a un

resultado booleano a 0).HALT Parada de la ejecución del programa.

P N

P N

P N

S R

Page 77: Manual PL7

Lenguaje Lista de instrucciones 3

___________________________________________________________________________3/3

A

Instrucciones para bloques de función (véase la sección B, capítulo 1.3)

Designación Instrucciones FuncionesElementos • Bloques: Para cada bloque de función estándarde prueba Temporizador existen instrucciones que permiten

Contador controlarlo.Monoestable Una forma estructurada permite "cablear"Registro directamente las entradas/salidas de bloques.Programador

Instrucciones numéricas (véase la sección B)

Designación Instrucciones Funciones

Elementos • LD[.....] Permite comparar 2 operandos (véase la secciónde prueba AND[.....] B, capítulo 1.4-2), la salida pasa a 1 cuando se

OR[.....] verifica el resultado.

Ejemplo:LD[%MW10<1000] El resultado es 1 cuando %MW10<1000.

Elementos • [.......] Realizan operaciones aritméticas, lógicas...de acción Utilizan la sintaxis del lenguaje literal estructurado

(véase la sección B).Ejemplo:[%MW10:=%MW0+100] El resultado de la operación %MW0+100 se coloca

en la palabra interna %MW10.

Page 78: Manual PL7

3/4___________________________________________________________________________

A

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 secompone de una o varias instrucciones de prueba. El resultado de estas instruccionesse aplica a una o varias instrucciones de acción.

Una instrucción ocupa al máximo una línea.Cada sentencia empieza con un signo de admiración (generado automáticamente).Puede contener un comentario y estar marcada de una etiqueta.

! (*Espera de secado*)%L2:LD %I0.1AND %M10ST %Q2.5

3.2-2 Comentario

El comentario puede integrarse en el principio de una sentencia y ocupar un máximode 3 líneas (es decir, 222 caracteres alfanuméricos), con los caracteres '(*' y '*)' en losextremos. Facilita la interpretación de la sentencia relacionada, pero no es obligatorio.

Los comentarios se muestran únicamente a partir de la primera línea de la sentencia.

Cuando se elimina una sentencia, se elimina también el comentario asociado.

Los comentarios se almacenan en el autómata, donde quedan a la disposición delusuario 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 colocaen el principio de una sentencia.

Una etiqueta puede asignarse a una sola sentencia dentro de una misma entidad deprograma.

En cambio, es necesario poner etiqueta a una sentencia para permitir una desviacióndespués de un salto de programa.

El orden de las etiquetas no tiene importancia; es el orden de introducción de lassentencias que el sistema tiene en cuenta durante la exploración.

Page 79: Manual PL7

Lenguaje Lista de instrucciones 3

___________________________________________________________________________3/5

A

3.2-4 Utilización de los paréntesis

Las instrucciones AND y OR pueden utilizar paréntesis, lo que permite realizar demodo sencillo esquemas de contactos. La apertura de paréntesis se asocia a lainstrucción AND u OR. El cierre de paréntesis es una instrucción obligatoria para cadaparéntesis abierto.

Ejemplo: AND(

LD %I1.0AND %I1.1OR %I1.2ST %Q2.0

LD %l1.0AND( %I1.1OR %l1.2)ST %Q2.0

Ejemplo: OR(

LD %I1.0AND %I1.1OR( %I1.2AND %I1.3)ST %Q2.0

A los paréntesis se pueden asociar los modificadores siguientes:

• N negación, 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

• [ comparación

LD %I1.0AND %I1.1OR( [%MW0>100]AND %I1.3)ST %Q2.0

%Q2.0%I1.1%I1.0

%I1.3%I1.2

%Q2.0%I1.1%I1.0

%I1.3%MW0>100

Page 80: Manual PL7

3/6___________________________________________________________________________

A

Imbricación de paréntesisEs posible imbricar hasta 8 niveles de paréntesis.

Ejemplo

LD %I1.0AND( %I1.1OR(N %I1.2AND %M3))ST %Q2.0

Ejemplo

LD %I1.1AND( %I1.2AND %I1.3OR(N %I1.5AND %I1.6)AND %I1.4OR(N %I1.7AND %I1.8))ST %Q2.0

Nota• Cada paréntesis abierto debe cerrarse imperativamente.• No deben colocarse en expresiones entre paréntesis las etiquetas %Li:, ni las instrucciones de salto JMP o las instrucciones de llamada al subprograma SRi.• No deben programarse entre paréntesis las instrucciones de asignación ST, STN, S y R.

%Q2.0%I1.1%I1.0

%M3%I1.2

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

%I1.6%I1.5

%I1.8%I1.7

%I1.4%I1.3

Page 81: Manual PL7

Lenguaje Lista de instrucciones 3

___________________________________________________________________________3/7

A

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 8informaciones booleanas.

La instrucción MPS (Memory PuSh) almacena el resultado de la última instrucción deprueba en lo alto de la pila y desplaza los demás valores hacia el fondo de la pila.

La instrucción MRD (Memory ReaD) lee la parte alta de la pila.

La instrucción MPP (Memory PoP) lee la parte alta de la pila, la desalmacena ydesplaza los demás valores hacia lo alto de la pila.

Ejemplos:

LD %I1.0AND %M0MPSAND %I1.1ST %Q2.0MRDAND %I1.2ST %Q2.1MRDAND %I1.3ST %Q2.2MPPAND %I1.4ST %Q2.3

LD %I1.0MPSAND %I1.1MPSAND( %I1.3OR %M0)ST %Q2.0MPPAND %M1ST %Q2.1MRDAND %I1.4ST %Q2.2MPPAND %M10ST %Q2.3

NotaEstas instrucciones no pueden utilizarse en una expresión entre paréntesis.

%I1.2MPS

MRD

MPP

%I1.1 %Q2.0

%I1.3

%Q2.1

%Q2.2

%I1.4 %Q2.3

%M0%I1.0

%M0

%I1.3 %Q2.0

%I1.4

%Q2.1

%Q2.2

%M1

%M10 %Q2.3

%I1.1%I1.0

∇∇

∇∇

∇∇

∇∇

Page 82: Manual PL7

3/8___________________________________________________________________________

A

3.2-6 Principios de programación: bloques de función predefinidos

Los bloques de función de losautomatismos pueden programarse de 2modos distintos:• con instrucciones específicas para cada

bloque de función (ej.: CU %Ci); es elmodo más sencillo y directo,

• con instrucciones de estructuración debloque BLK ,OUT_BLK, END_BLK.

Principio de programación directa

LD %I1.1R %C8LDN %I1.2ANDN %M0CU %C8LD %C8.DST %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 programación estructuradaEste tipo de programación utiliza una serie de instrucciones acompañadas de:

• la instrucción BLK , que indica el inicio del bloque,• la instrucción OUT_BL , que permite cablear directamente las salidas del bloque,• la instrucción END_BLK , que indica el fin del bloque.

BLK %C8LD %I1.1RLDN %I1.2ANDN %M0CUOUT_BLKLD DST %Q2.0END_BLK

Puesto que este principio de programación estructurada necesita las instruccionesadicionales BLK, OUT_BLK y END_BLK, se necesitan volúmenes de memoriasuperiores a los requeridos en la programación directa.Sin embargo, este principio debe utilizarse si se desea conservar una similitud con losprogramas reversibles para nanoautómatas TSX 07.

Tratamiento deentradas

R

S

CU

CD F

D

E

%CI

C.P : 9999

MODIF : Y

Bloque contador/descontador

Tratamiento desalidas

%Q2.0

%I1.1

%I1.2

R

S

CU

CD F

D

E

%C8

C.P : 9999

MODIF : Y

%M0

%Q2.0

%I1.1

%I1.2

R

S

CU

CD F

D

E

%C8

C.P : 9999

MODIF : Y

%M0

Page 83: Manual PL7

Lenguaje Lista de instrucciones 3

___________________________________________________________________________3/9

A

3.3 Reglas de ejecución de un programa en Lista de instrucciones

Un programa en Lista de instrucciones se ejecuta secuencialmente instrucción porinstrucción. La primera instrucción de una secuencia de instrucciones debe siempre seruna instrucción LD o una instrucción incondicional (ej.: JMP).

Cada instrucción (salvo la LD y las instrucciones incondicionales) utiliza el resultadobooleano de la instrucción previa.

Ejemplo:LD %I1.1 resultado booleano = estado del bit %I1.1AND %M0 resultado booleano = Y del resultado booleano previo y del estado del

bit %M0OR %M10 resultado booleano = O del resultado booleano previo y del estado del

bit %M10ST %Q2.0 %Q2.0 toma el estado del resultado booleano previo.

Los paréntesis permiten modificar el orden de aceptación de los resultados booleanos:

Ejemplo:LD %I1.1 resultado booleano = estado del bit %I1.1AND %M0 resultado booleano = Y del resultado booleano previo y del estado del

bit %M0OR( %M10 resultado booleano = estado del bit %M10AND %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 instrucción situada antes de la instrucción con paréntesis.ST %Q2.0 %Q2.0 toma el estado del resultado booleano previo.

Las instrucciones JMP y llamada a subprograma pueden modificar la secuencia de lasinstrucciones.Ejemplo:! LD %M0

JMPC %L10! LD %I1.1

AND %M10 Salto a la etiqueta %L10 si %M0=1ST %Q2.0

! %L10 :LD %I1.3AND %M20.........

Page 84: Manual PL7

3/10___________________________________________________________________________

A

Page 85: Manual PL7

Lenguaje Literal estructurado 4

___________________________________________________________________________4/1

A

4.1 Presentación del lenguaje Literal estructurado

4.1-1 Principio

El lenguaje Literal estructurado permite realizar programas mediante la escritura delíneas de programación que constan de caracteres alfanuméricos.Este lenguaje se utiliza únicamente con el software PL7 Junior y PL7 Pro en losautómatas TSX/PMX/PCX 57. En la versión PL7 Pro, este lenguaje permite la creaciónde los bloques de función del usuario DFB.

La sentencia literal constituye la entidad de base del lenguaje Literal. El conjunto desentencias permite definir un programa.

Las principales instrucciones del lenguaje Literal son:

• instrucciones para bits,• instrucciones aritméticas y lógicas para palabras y dobles palabras,• instrucciones aritméticas para flotantes,• comparaciones numéricas para palabras, dobles palabras y flotantes,• conversiones numéricas,• instrucciones para tablas de bits, de palabras, de dobles palabras y de flotantes,• instrucciones para cadenas de caracteres,• comparaciones alfanuméricas,• instrucciones de gestión de tiempo,• instrucciones para el programa,• instrucciones de control,• instrucciones para los bloques de función estándar,• instrucciones para los intercambios explícitos,• instrucciones de tipo funciones específicas (comunicación, regulación, etc ...).

Ejemplo:

Capítulo 44 Lenguaje Literal estructurado

Page 86: Manual PL7

4/2___________________________________________________________________________

A

4.1-2 Instrucciones

Instrucciones para bits

Designación Función

:= Asignación de un bitOR O booleanaAND Y booleanaXOR O exclusiva booleanaNOT InversiónRE Flanco ascendenteFE Flanco descendente

SET Puesta a 1RESET Puesta a 0

Comparaciones numéricas de palabras, dobles palabras y flotantes

Designación Función

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

Tablas de bits

Designación Función

Tabla:= Tabla Asignación entre dos tablasTabla:= Palabra Asignación de una palabra a una tablaPalabra:= Tabla Asignación de una tabla a una palabra

Palabra:= Doble palabra Asignación de una doble palabra a una tablaDoble palabra := Tabla Asignación de una tabla a una doble palabra

COPY_BIT Copia de una tabla de bits en una tabla de bitsAND_ARX Y entre dos tablasOR_ARX O entre dos tablasXOR_ARX O exclusiva entre dos tablasNOT_ARX Negación en una tabla

BIT_W Copia de una tabla de bits en una tabla de palabrasBIT_D Copia de una tabla de bits en una tabla de dobles palabrasW_BIT Copia de una tabla de palabras en una tabla de bitsD_BIT Copia de una tabla de dobles palabras en una tabla de bits

LENGHT_ARX Calcula la longitud de una tabla en número de elementos

Page 87: Manual PL7

Lenguaje Literal estructurado 4

___________________________________________________________________________4/3

A

Aritmética entera para palabras y dobles palabrasDesignación Función

+,-,*,/ Suma, Resta, Multiplicación,División enteraREM Resto de la división entera

SQRT Raíz cuadrada enteraABS Valor absolutoINC IncrementoDEC Decremento

Aritmética para flotantes

Designación Función

+,-,*,/ Suma, Resta, Multiplicación,División enteraSQRT Raíz cuadradaABS Valor absoluto

TRUNC Parte enteraLOG Logaritmo base 10LN Logaritmo neperiano

EXP Exponenciación naturalEXPT Exponenciación de un real por un enteroCOS Coseno de un valor en radianesSIN Seno de un valor en radianesTAN Tangente de un valor en radianesACOS Arco coseno (resultado ante 0 y 2 π)ASIN Arco seno (resultado entre -π/2) y + π/2)ATAN Arco tangente (resultado entre -π/2 y +π/2)

DEG_TO_RAD Conversión de grados en radianesRAD_TO_DEG Conversión radianes en grados

Instrucciones lógicas para palabras y dobles palabras

Designación Función

AND Y lógicaOR O lógica

XOR O lógica exclusivaNOT Complemento lógicoSHL Desplazamiento lógico a la izquierdaSHR Desplazamiento lógico a la derechaROL Desplazamiento lógico circular a la izquierdaROR Desplazamiento lógico circular a la derecha

Instrucciones sobre el programa

Designación Función

HALT Parada de ejecución del programaJUMP Salto a una etiquetaSRi Llamada de subprograma

RETURN Regreso de subprogramaMASKEVT Enmascaramiento de los sucesos en el autómata

UNMASKEVT Desenmascaramiento de los sucesos en el autómata

Page 88: Manual PL7

4/4___________________________________________________________________________

A

Instrucciones de conversiones numéricas

Designación Función

BCD_TO_INT Conversión BCD →BinariaINT_TO_BCD Conversión Binaria →BCDGRAY_TO_INT Conversión Gray→Binaria

INT_TO_REAL Conversión de un entero simple en formato flotanteDINT_TO_REAL Conversión de un entero doble en formato flotanteREAL_TO_INT Conversión de un flotante en formato entero simple

REAL_TO_DINT Conversión de un flotante en formato entero dobleDBCD_TO_DINT Conversión de un número BCD 32 bits en entero 32 bitsDINT_TO_DBCD Conversión de un entero 32 bits en número BCD 32 bitsDBCD_TO_INT Conversión de un número BCD 32 bits en entero 16 bitsINT_TO_DBCD Conversión de un entero 16 bits en número BCD 32 bits

LW Extracción de la palabra menos significativa de 1 doble palabraHW Extracción de la palabra de más significativa de 1 doble palabra

CONCATW Concatenación de 2 palabras simples

Instrucciones para las tablas de palabras y dobles palabras

Designación Función

Tabla := Tabla Asignación entre dos tablasTabla := Palabra Inicialización de una tabla+, -, *, /, REM Operaciones aritméticas entre tablas+, -, *, /, REM Operaciones aritméticas entre expresiones y tablas

SUM Suma de los elementos de una tablaEQUAL Comparación de dos tablas

NOT Complemento lógico de una tablaAND, OR, XOR Operaciones lógicas entre dos tablasAND, OR, XOR Operaciones lógicas entre expresiones y tablas

FIND_EQW, FIND_EQD Búsqueda del primer elemento igual a un valorFIND_GTW, FIND_GTD Búsqueda del primer elemento superior a un valorFIND_LTW, FIND_LTD Búsqueda del primer elemento inferior a un valorMAX_ARW, MAX_ARD Búsqueda del valor máximo en una tabla

MIN_ARW, MIN_ARD Búsqueda del valor mínimo en una tablaOCCUR_ARW, OCCUR_ARD Número de ocurrencias de un valor en una tabla

SORT_ARW, SORT_ARD Orden por orden ascendente o descendente de una tablaROL_ARW, ROL_ARD Desplazamiento circular a derecha de una tabla

ROR_ARW, ROR_ARD Desplazamiento circular a izquierda de una tablaFIND_EQWP,FIND_EQDP Búsqueda del primer elemento igual a un valor desde un rango

LENGTH_ARW, LENGTH_ARD Cálculo de la longitud de una tabla

Page 89: Manual PL7

Lenguaje Literal estructurado 4

___________________________________________________________________________4/5

A

Instrucciones para tablas de flotantes

Designación Función

Tabla := Tabla Asignación entre dos tablasTabla := Flotante Inicialización de una tabla

SUM_ARR Suma de los elementos de una tablaEQUAL_ARR Comparación de dos tablasFIND_EQR Búsqueda del primer elemento igual a un valorFIND_GTR Búsqueda del primer elemento superior a un valorFIND_LTR Búsqueda del primer elemento inferior a un valorMAX_ARR Búsqueda del valor máximo en una tablaMIN_ARR Búsqueda del valor mínimo en una tabla

OCCUR_ARR Número de ocurrencias de un valor en una tablaSORT_ARR Orden por orden ascendente o descendente

ROL_ARR Desplazamiento circular a la izquierda de una tablaROR_ARR Desplazamiento circular a la derecha de una tabla

LENGTH_ARR Cálculo de longitud de una tabla

Instrucciones para cadenas de caracteres

Designación Función

STRING_TO_INT Conversión ASCII →Binario (palabra simple formato)STRING_TO_DINT Conversión ASCII→Binario (palabra doble formato)INT_TO_STRING Conversión Binario→(palabra simple formato) ASCII

DINT_TO_STRING Conversión Binario→(palabra doble formato) ASCIISTRING_TO_REAL Conversión ASCII→FlotanteREAL_TO_STRING Conversión Flotante→ASCII<, >, <=, >=, =, <> Comparación alfanumérica

FIND Posición de una subcadenaEQUAL_STR Posición del primer carácter diferente

LEN Longitud de una cadena de caracteresMID Extracción de una subcadena

INSERT Inserción de una subcadenaDELETE Supresión de una subcadenaCONCAT Concatenación de dos cadenasREPLACE Reemplazo de una cadena

LEFT Inicio de cadenaRIGHT Fin de cadena

Page 90: Manual PL7

4/6___________________________________________________________________________

A

Instrucciones de gestión del tiempo

Designación Función

SCHEDULE Función reloj calendarioRRTC Lectura fecha sistema

WRTC Actualización de la fecha sistemaPTC Lectura de fecha y código de parada

ADD_TOD Agregado de una duración a una hora del díaADD_DT Agregado de una duración a una fecha y hora

DELTA_TOD Medida de desviación entre horas del díaDELTA_D Medida de desviación entre fechas (sin hora)

DELTA_DT Medida de desviación entre fechas (con hora)SUB_TOD Envío del tiempo hacia la horaSUB_DT Envío del tiempo hacia la hora y fecha

DAY_OF_WEEK Lectura del día actual de la semanaTRANS_TIME Conversión de la duración en fecha

DATE_TO_STRING Conversión de una fecha en cadena de caracteresTOD_TO_STRING Conversión de una hora en cadena de caracteresDT_TO_STRING Conversión de una fecha completa en cadena de

caracteresTIME_TO_STRING Conversión de una duración en cadena de caracteres

Instrucciones "Orphée"

Designación Función

WSHL_RBIT, DSHL_RBIT Desplazamiento a la izquierda en una palabra conrecuperación de bits desplazados

WSHR_RBIT, DSHR_RBIT Desplazamiento a la derecha en una palabra conextensión de sighno y recuperación de bits desplazados

WSHRZ_C, DSHRZ_C Desplazamiento a la derecha en una palabra con rellenado con0 y recuperación de bits desplazados

SCOUNT Contaje/descontaje con señalización y rebasamientoROLW,ROLD Desplazamiento circular izquierdoRORW,RORD Desplazamiento circular derecho

Instrucciones de temporización

Designación Función

FTON Temporización en la conexiónFTOF Temporización en la desconexiónFTP Temporización de impulsión

FPULSOR Generador de señales rectangulares

Todas estas funciones e instrucciones, así como las instrucciones para los bloquesde función estándar, se detallan en la sección B de este manual de referencia.

Las instrucciones y funciones para los intercambios explícitos y para las funcionesespecíficas se detallan en el "Manual de instalación de funciones específicas".

Las estructuras de control se detallan en el párrafo 4.2-5 de esta sección.

Page 91: Manual PL7

Lenguaje Literal estructurado 4

___________________________________________________________________________4/7

A

4.2 Estructura de un programa

4.2-1 Generalidades

Un programa literal está organizada en sentencias. Cada sentencia literal se componede los elementos siguientes:

• etiqueta,

• comentarios,

• instrucciones.

Cada uno de estos elementos es opcional; en otras palabras, es posible tener unasentencia vacía, una sentencia constituida únicamente de comentarios o únicamentede una etiqueta. El primer elemento de cada sentencia es un signo de admiración(automáticamente 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 colocarseen cualquier sitio en la sentencia. No se limita el número de comentarios por sentencia.El comentario (opcional) facilita la interpretación de la sentencia a la que estáasignado.

• Todos los caracteres están autorizados en un comentario.

• El número de caracteres se limita a 256 por comentario.

• Se prohiben los comentarios imbricados.

• Un comentario puede constar de varias líneas.

Los comentarios se almacenan en el autómata para que el usuario pueda acceder aellos en todo momento. A este título, consumen memoria de programa .

Page 92: Manual PL7

4/8___________________________________________________________________________

A

4.2-3 Etiqueta

La etiqueta permite marcar una sentencia en una entidad de programa (programaprincipal, subprograma, ...). Es opcional.

La etiqueta tiene la sintaxis siguiente : %Li con i comprendido entre 0 y 999. Seposiciona en el inicio de sentencia. Una etiqueta puede asignarse a una sola sentenciadentro de una misma entidad de programa (SR, Main, Módulo de programa).

En cambio, es necesario etiquetar una sentencia para permitir una desviacióndespués de un salto de programa.

El orden de las etiquetas no tiene importancia; es el orden de introducción desentencias que el sistema tiene en cuenta durante la exploración.

4.2-4 Instrucciones

El programa se realiza a partir de instrucciones. Una sentencia literal puede contenervarias instrucciones. El carácter ';' debe ser obligatoriamente el último elemento decada instrucción.

Page 93: Manual PL7

Lenguaje Literal estructurado 4

___________________________________________________________________________4/9

A

4.2-5 Estructuras de control

Existen cuatro estructuras de control:

• la acción condicional IF,

• las acciones iterativas condicionales WHILE y REPEAT,

• la acción repetitiva FOR.

Cada estructura de control tiene como primer y último elemento una palabra clave enla misma sentencia. Una estructura de control puede imbricarse en otra sin que seandel mismo tipo. Las estructuras de control pueden venir precedidos o seguidos decualquier instrucción del lenguaje.

La acción condicional IF ... END_IF;

Forma simple (la instrucción realiza una acción si una condición es verdadera).

Ejemplo:

Sintaxis Funcionamiento

IF condición THEN

acciones;

END_IF;

CONDICION

ACCIONES

Inicio de IF

no verificada

verificada

fin de IF

Page 94: Manual PL7

4/10___________________________________________________________________________

A

Forma general

Ejemplo:

• Las condiciones pueden ser múltiples.

• Cada acción representa una lista de instrucciones.

• Es posible imbricar varias estructuras de control "IF".

• El número de instrucciones ELSIF es ilimitado.

• Hay al máximo una parte ELSE.

Sintaxis Funcionamiento

IF condición 1 THEN

acción 1;

ELSIF condición 2 THEN

acción 2;

ELSE

acción 3;

END_IF;

CONDICION 1

ACCION 1

CONDICION 2

ACCION 2 ACCION 3

Inicio de IF

no verificada

verificada

fin de IF

no verificada

verificada

Page 95: Manual PL7

Lenguaje Literal estructurado 4

___________________________________________________________________________4/11

A

La acción iterativa condicional WHILE ... END_WHILE;

La instrucción realiza una acción repetitiva mientras una condición está verificada.

Ejemplo:

Sintaxis Funcionamiento

WHILE condición DO

acción;

END_WHILE;

• La condición puede ser múltiple.

• La acción representa una lista de instrucciones.

• La prueba de condición se efectúa antes de ejecutar la acción. Si al evaluar lacondición por primera vez su valor es falso, la acción no se ejecuta.

`• Es posible imbricar varias estructuras de control WHILE.

Inicio de IF

no verificada

fin de WHILE

verificada

CONDICION

ACCION

inicio de WHILE

Page 96: Manual PL7

4/12___________________________________________________________________________

A

La acción iterativa condicional REPEAT ... END_REPEAT;

La instrucción realiza una acción repetitiva hasta que se verifique una condición.

Ejemplo:

• La condición puede ser múltiple.

• La acción representa una lista de instrucciones.

• La prueba de condición se efectúa después de ejecutar la acción. Si al evaluar lacondición por primera vez su valor es falso, la acción se ejecuta una vez.

• Es posible imbricar varias estructuras de control REPEAT.

Sintaxis Funcionamiento

REPEAT

acción;

UNTIL condición END_REPEAT;no verificada

fin de REPEATverificada

CONDICION

ACCION

inicio de REPEAT

Page 97: Manual PL7

Lenguaje Literal estructurado 4

___________________________________________________________________________4/13

A

La acción repetitiva FOR ... END_FOR;

La instrucción realiza un tratamiento un cierto número de veces incrementando uníndice en 1 a cada bucle.

Ejemplo:

• Cuando el índice es estrictamente superior al valor final, la ejecución continúa en lainstrucción que viene después de la palabra clave END_FOR.

• El incremento del índice se efectúa automáticamente; por consiguiente, el usuario notiene que hacerlo.

• La acción representa una lista de instrucciones.

• El valor inicial y el valor final son expresiones numéricas de tipo palabra.

• El índice es un objeto de tipo palabra accesible en escritura.

• Es posible imbricar varias estructuras de control FOR.

Sintaxis Funcionamiento

FOR índice := valor inicial TO valor final DO

acción;

END_FOR;verdadero

finde FOR

Continuacion

VALOR INICIAL → INDICE

ACCION

inicio de FOR

INDICE >VALOR FINAL

INDICE + 1 → INDICE

falso

Page 98: Manual PL7

4/14___________________________________________________________________________

A

La instrucción de salida de bucle EXIT

• La palabra clave EXIT permite detener la ejecución del bucle y continuar en lainstrucción que viene después de la palabra clave de fin de bucle.

• Sólo se utiliza en las acciones de uno de los tres bucles WHILE, REPEAT o FOR.

• Está vinculada al bucle que engloba más cercano; en otras palabras, no detiene laejecución de todos los bucles que la engloban.

Ejemplo:

En este ejemplo, la palabra clave EXIT permite detener el bucle REPEAT pero no elbucle WHILE.

Page 99: Manual PL7

Lenguaje Literal estructurado 4

___________________________________________________________________________4/15

A

4.3 Reglas de ejecución de un programa literal

Un programa literal se ejecuta secuencialmente, instrucción por instrucción, y teniendoen cuenta las estructuras de control.

En el caso de expresiones aritméticas 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 evaluación la prioridad de una expresión desde la másprioritaria hasta la menos prioritaria.

Operador Símbolo Prioridad

Paréntesis (expresión) Más fuerte

Complemento lógico NOTInversión NOT- en un operando -+ en un operando +

Multiplicación *División /Módulo REM

Suma +Resta -

Comparaciones <, >, <=, >=

Comparación de igualdad =Comparación de desigualdad <>

Y lógica ANDY booleana AND

O exclusiva lógica XORO exclusiva booleana XOR

O lógica OR Menos fuerteO booleana OR

Ejemplo:

NOT %MW3 * 25 AND %MW10 + %MW12

En este ejemplo, NOT se efectúa en %MW3 y el resultado se multiplica por 25. Luego,se calcula la suma de %MW10 yt %MW12 y se efectúa una Y lógica entre el resultadode la multiplicación y la adición.

Page 100: Manual PL7

4/16___________________________________________________________________________

A

Cuando hay un conflicto entre dos operadores de mismo nivel de prioridad, es el primeroperador que lleva ventaja (la evaluación se efectúa de la izquierda a la derecha).

Ejemplo:

%MW34 * 2 REM 6

En este ejemplo, %MW34 se multiplica primero por 2, y luego el resultado seutiliza para realizar el módulo.

Uso de los paréntesis

Los paréntesis se utilizan para modificar el orden de evaluación de los operadores paradar prioridad a una suma respecto a una multiplicación.

Ejemplo:

(%MW10 + %MW11) * %MW12

En este ejemplo, la suma se efectúa antes de la multiplicación.

Es posible imbricar los paréntesis. No se limita el nivel de imbricación.

También es posible utilizar los paréntesis para evitar una mala interpretación delprograma.

Ejemplo:

NOT %MW2 <> %MW4 + %MW6

Al utilizar las reglas de prioridad de los operadores, se obtiene la interpretaciónsiguiente:

((NOT %MW2) <> (%MW4 + %MW6))

Es posible que el usuario piense que está efectuando la operación:

NOT (%MW2 <> (%MW4 + %MW6))

Este ejemplo demuestra que el uso de los paréntesis permite clarificar elprograma.

Page 101: Manual PL7

Lenguaje Literal estructurado 4

___________________________________________________________________________4/17

A

Conversiones implícitas

Las conversiones implícitas implican las palabras y las dobles palabras. Los operadores,que se utilizan en las expresiones aritméticas y en las comparaciones, y el operador deasignación efectúan estas conversiones implícitas (que, por consiguiente, el usuario notiene que efectuar).

Para una instrucción en la forma: <operando 1> <operador> <operando 2>, lasconversiones posibles son:

Operando 1 Operando 2 Conversión Conversión Operaciónde tipo de tipo operando 1 operando 2 en el tipo

Palabra Palabra No No PalabraPalabra Doble palabra Doble palabra No Doble palabra

Doble palabra Palabra No Doble palabra Doble palabraDoble palabra Doble palabra No No Doble palabra

Para una asignación en la forma <operando izquierdo> := <operando derecho>, es eloperando izquierdo que impone el tipo esperado para efectuar la operación. Estosignifica que el operando derecho debe convertirse, si es necesario, según esta tabla:

Tipo de operando Tipo de operando Conversiónizquierdo derecho operando derecho

Palabra Palabra NoPalabra Doble palabra Palabra

Doble palabra Palabra Doble palabraDoble palabra Doble palabra No

NotaTodas las operaciones entre dos valores inmediatos se efectúan en doble longitud.

Page 102: Manual PL7

4/18___________________________________________________________________________

A

Page 103: Manual PL7

Lenguaje Grafcet 5

___________________________________________________________________________5/1

A

5.1 Presentación 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 gráficamente y de forma estructurada el funcionamientode un automatismo secuencial.Esta descripción gráfica del comportamiento secuencial del automatismo y de lassituaciones que son su consecuencia se efectúa mediante símbolos gráficos sencillos:

Etapa inicial : define la situación inicialdel autómata.

Transición : las receptividades aso-ciadas indican las condiciones lógicasnecesarias para el alcance de estatransición.

Activación simultánea de las etapas3 y 7 (Divergencia en Y) . Lossubconjuntos formados por las etapas3, 4, 5, 6 y 7, 8, 9 constituyen dossecuencias llamadas simultáneas.

Encaminamiento (Divergencia en O)desde la etapa 3 hacia la etapa 4 ohacia la etapa 5.

Fin de encaminamiento (convergen-cia en O) desde la etapa 4 o la etapa5 hacia la etapa 6.

Etapa de fin de secuencia : permitesincronizar secuencias simultáneas.

Desactivación simultánea de lasetapas 6 y 9 (convergencia en Y).

Etapa : las acciones asociadas seejecutan sólo cuando la etapa estáactiva.

Capítulo 55 Lenguaje Grafcet

1

2

3

4

6

10

7

85

9

Acciones

Acciones

Acciones

Acciones

Acciones

Las transiciones y los enlaces orientados simbolizan las posibilidades de evoluciónde las etapas activas .Las acciones asociadas a etapas traducen de manera general "lo que se debehacer", cuando éstas están activas. Describen especialmente los comandos que sedeben transmitir a la parte operacional (proceso por automatizar) o a otros sistemasautomatizados. El conjunto de etapas activas en un momento dado define la situacióndel Grafcet.

Page 104: Manual PL7

5/2___________________________________________________________________________

A

5.1-2 Análisis progresivo: las macrorrepresentaciones

• Pliego de especificaciones

Un automatismo permite garantizarla mezcla de tres productos A, B, C.

Los productos A y B son dosificadospor pesaje acumulado en una tolvade pesaje B1. El producto C se pesay dosifica en la tolva B2.

La homogeneidad del producto finalse obtiene por malaxeo de trescomponentes en un mezcladordurante un tiempo fijado por eloperador.

Cuando este tiempo expira, lamezcla final se puede evacuar trasautorización externa.

• Análisis funcional

Esta aplicación se divide en 4secuencias principales:- dosificación de 3 componentes,- llenado del mezclador,- mezcla de 3 productos,- evacuación de una mezcla final.

El Grafcet de la derecha permiterepresentar el encadenamientoglobal de las secuencias(representación macroscópica deun análisis de primer nivel).El análisis detallado de cadasecuencia permite establecerGrafcet de segundo nivel, inclusode tercer nivel, hasta el nivel máselemental que permite ladescripción completa de laaplicación.

• Macrorrepresentaciones

El Grafcet de primer nivel que describe el encadenamiento de las secuenciaspermite explicar mejor la estructuración de la parte controlada. Cada secuencia seasocia a una simbolización particular de la etapa: la macroetapa.

Esta noción de "macrorrepresentación" permite jerarquizar el análisis. Cada nivelse puede completar, modificar sin cuestionar los demás niveles.Las macroetapas están disponibles para los autónomas TSX57.

10

20

30

40

Séquence RemplissageRemplissage

Séquence DosageDosage

Séquence MélangeMélange

Séquence EvacuationEvacuation

1

cycle par cycle

fin de dosage

fin de remplissage

fin de mélange

fin d'évacuation

DébutInicio

Dosificación

Llenado

Mezcla

Evacuación

ciclo por ciclo

Secuencia Dosif.

Secuencia Llenado

Secuencia Mezcla

Secuencia Evacuación

fin de dosificación

fin llenado

fin de mezcla

fin de evacuación

0

C

0

A

B

Mélangeur

A B C

Tremiepeseuse

B2

Tremiepeseuse

B1

Evacuation

Tolvapesadora

B1

Tolvapesadora

B2

Evacuación

Mezclador

Page 105: Manual PL7

Lenguaje Grafcet 5

___________________________________________________________________________5/3

A

Secuencia llenado

Secuencia mezcla

Secuencia evacuación

Secuencia dosificación

Macroetapas

Gráfico principal

• Representación gráfica

Page 106: Manual PL7

5/4___________________________________________________________________________

A

5.2 Símbolos gráficos relativos al lenguaje Grafcet

Designación Símbolo Funciones

Etapas iniciales Simbolizan las etapas iniciales activas enprincipio de ciclo después de unainicialización o un arranque en frío.

Etapas simples Simbolizan un estado estable del automatismo.El número máximo 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 número máximo de etapassimultáneamente activas es configurable.

.

Macroetapas Simboliza una macroetapa: conjunto únicode etapas y transiciones. El número demacroetapas máximo se puedeconfigurar de 0 a 63 para TSX 57únicamente.

Etapas de macroetapas (1) Simbolizan las etapas de unamacroetapa.El número máximo de etapas para cadamacroetapa puede configurarse: de 0 a 250para TSX 57.Una etapa IN y OUT por macroetapa.

Transiciones Permiten pasar de una etapa a otra. Unareceptividad asociada a esta transiciónpermite definir las condiciones lógicasnecesarias para el alcance de esta transición.El número de transiciones máximo es de1024, y no es configurable.El número máximo de transicionessimultáneamente válidas es configurable.

Divergencias en Y Transición de una etapa hacia variasetapas: permite activar simultáneamentemáximo 11 etapas.

Convergencias en Y Transición de varias etapas hacia una solaetapa: permite desactivar simultáneamentemáximo 11 etapas.

(1) E l número máximo de etapas (etapas del gráfico principal + etapas de macroetapas)en la sección Grafcet no debe sobrepasar 1024 en TSX 57.

i ou i

i ou i

i

IN OUTou

i io

Page 107: Manual PL7

Lenguaje Grafcet 5

___________________________________________________________________________5/5

A

Designación Símbolo Funciones

Divergencias en O Transición de una etapa hacia varias etapas:permite realizar un encaminamiento haciamáximo 11 etapas.

Convergencias en O Transición de varias etapas hacia una solaetapa: permite realizar un fin deencaminamiento desde máximo 11 etapas

Remisiones de origen n' es el número de la etapa de donde se viene(etapa de origen).

Remisiones de destino 'n' es el número de la etapa de adonde se va(etapa de destino).

Enlaces orientados: Estos enlaces permiten realizar unencaminamiento, un salto de etapas, unareanudación de etapas (secuencia).

n

n

• hacia arriba

• hacia abajo

• hacia la derecha o la izquierda

Page 108: Manual PL7

5/6___________________________________________________________________________

A

5.3 Objetos relativos al Grafcet

El usuario dispone de objetos bits asociados a etapas, de bits sistema especiales dellenguaje Grafcet, de objetos palabras que indican el tiempo de actividad de las etapasy palabras sistema especiales del lenguaje Grafcet.

Designación Dirección Descripciones

Bits asociados a etapas %Xi Estado de la etapa i del Grafcet principal(i de 0 a n) (n depende del procesador).

%XMj Estado de la macroetapa j(j de 0 a 63 para TSX /PMX/PCX 57)

%Xj.i Estado de la etapa i de la macroetapa j

%Xj.IN Estado de la etapa de entrada de la macroetapa j

%Xj.OUT Estado de la etapa de salida de la macroetapa j

%S21 Inicializa el Grafcet.

%S22 Efectúa la puesta a cero generaldel Grafcet.

%S23 Inmoviliza el Grafcet.

%S24 Provoca la puesta a 0 de macroetapas en funciónde las palabras sistema %SW22 à %SW25

%S26 Puesta a 1 cuando hay:- rebasamiento de tablas (etapas/transición),- ejecución de un gráfico incorrecto (remisión de

destino a una etapa que no pertenece al gráfico).

Palabras asociadas a etapas %Xi.T Tiempo de actividad de la etapa i del Grafcetprincipal.

%Xj.i.T Tiempo de actividad de la etapa i de lamacroetapa j

%Xj.IN.T Tiempo de actividad de la etapa de entrada de lamacroetapa j

%Xj.OUT.T Tiempo de actividad de la etapa de salida de lamacroetapa j

Palabras sistema asociadas %SW20 Palabra que permite conocer para el cicloal Grafcet actual el número de etapas activas, por activar

y desactivar.

%SW21 Palabra que permite conocer para el ciclo actual elnúmero de transiciones válidas, por validar oinvalidar.

%SW22 a Serie de 4 palabras que permite designar%SW25 las macroetapas a poner a 0 cuando se ponen a 1

el bit %S24.

(1) El uso de los bits sistema se detalla en el subcapítulo 5.2-3 de esta sección.

Bits sistema asociadosal Grafcet (1)

Page 109: Manual PL7

Lenguaje Grafcet 5

___________________________________________________________________________5/7

A

Bits asociados a las etapas %Xi, a las macroetapas %XMi, y a las etapas demacroetapas %Xj.I , %Xj.IN y %Xj.OUT

• Están en 1 cuando las etapas están activas.• Estos bits pueden ser probados en todas las tareas, pero sólo pueden escribirse en

el tratamiento preliminar de la tarea maestra (preposicionamiento de los gráficos).Estas pruebas y acciones se programan ya sea en lenguaje de contactos, enlenguaje 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.• Incrementación 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 número 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:

Número TSX 37-10 TSX 37-20 TSX 57

Predet. Máx. Predet. Máx. Predet. Máx.

Etapas del gráfico principal 96 96 128 128 128 250

Macroetapas 0 0 0 0 8 64

Etapas de macroetapas 0 0 0 0 64 250

Total de etapas 96 96 128 128 640 1024

Etapas activas 16 96 20 128 40 250simultáneamente

Transiciones válidas 20 192 24 256 48 400simultáneamente

El número de transiciones síncronas (o número de convergencias en ET) no debesobrepasar 64. El número total de transiciones permanece en 1024.

Page 110: Manual PL7

5/8___________________________________________________________________________

A

Ejemplo de TSX 57 :

El tratamiento secuencial está estructurado en:• 1 subconjunto: Gráfico principal,• 64 subconjuntos: Macroetapas

Estos subconjuntos se subdividen a su vez en páginas (véase esquema que sigue).

Gráfico principal Macroetapa 0

Macroetapa12

Macroetapa 63

Pág. 1

Pág. 2

Pág.3

Pág. 8

Pág. 1

Pág. 2

Pág. 3

Pág. 8

Pág. 1

Pág. 2

Pág. 3

Pág. 8

Pág. 1

Pág. 2

Pág. 3

Pág. 8

8 páginas250 etapasmáximo

+ Macroetapas

Posibilidades máximasofrecidas por eltratamiento secuencial:1024 etapas (etapas delgráfico principal + etapasde macroetapas)64 Macroetapas

8 páginas250 etapasmáximo

+ Etapa IN

+ Etapa OUT

+ Macroetapas

8 páginas250 etapasmáximo

+ Etapa IN

+ Etapa OUT

+ Macroetapas

8 páginas250 etapasmáximo

+ Etapa IN

+ Etapa OUT

+ Macroetapas

Page 111: Manual PL7

Lenguaje Grafcet 5

___________________________________________________________________________5/9

A

5.5 Representación del Grafcet

El gráfico principal se programa en 8 páginas (de 0 a 7). Cada página Grafcet constade 14 líneas y 11 columnas que definen 154 celdas. Es posible introducir un elementográfico en cada celda.

Reglas de escritura

• La primera línea permite introducir remisiones de origen.• La última línea permite introducir remisiones de destino.• Las líneas pares (de 2 a 12) son líneas de etapa (para las etapas y las remisiones

de destino).• Las líneas impares (de 3 a 13) son líneas de transición (para las transiciones y las

remisiones de origen).• Un número diferente (de 0 a 127) marca cada etapa (el orden no tiene importancia).• Es posible representar varios gráficos en una misma página.

Page 112: Manual PL7

5/10___________________________________________________________________________

A

Encaminamiento y fin de encaminamiento

• El número de transiciones encima de un fin de encaminamiento (convergenciaen 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 simultáneamente varias transiciones, las receptividades

asociadas deben ser exclusivas.

Activación y desactivación simultáneas de etapas

• El número de etapas debajo de une activación simultánea (divergencia en Y) oencima de una desactivación simultánea (convergencia en Y) no debe exceder 11.

• El último elemento de una activación simultánea de etapas suele ser unadesactivación simultánea de etapas.

• La activación simultánea se representa siempre de la izquierda a la derecha.• La desactivación simultánea se representa siempre de la derecha a la izquierda.

Page 113: Manual PL7

Lenguaje Grafcet 5

___________________________________________________________________________5/11

A

Utilización de las remisiones

Las remisiones aseguran la continuidad de un Grafcet cuando no es posible trazardirectamente un enlace orientado o en una página o entre dos páginas consecutivaso no. Una remisión de destino, a la que corresponde sistemáticamente una remisiónde origen, asegura esta continuidad.

• El cierre de un gráfico puede efectuarse mediante remisiones (por ejemplo, cierrede la etapa 18 hacia la etapa 0).

• Una reanudación 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 gráfico es más larga que la página (porejemplo, la etapa 9 hacia la etapa 10).

Page 114: Manual PL7

5/12___________________________________________________________________________

A

Remisiones durante un encaminamiento y un fin de encaminamiento

• Para un encaminamiento, lastransiciones y las remisiones de destinode un encaminamiento debenintroducirse en la misma página.

• Las remisiones de origen de unencaminamiento deben introducirse enla misma página que la etapa de destino.

• A un fin de encaminamiento seguido deuna remisión de destino debencorresponder tantas remisiones deorigen como hay etapas antes del fin deencaminamiento.

Pág. 1

Pág. 2

Pág. 1

Pág. 2

Page 115: Manual PL7

Lenguaje Grafcet 5

___________________________________________________________________________5/13

A

Remisiones durante una activación y desactivación simultáneas de etapas

• Para una activación simultánea deetapas, las remisiones de destino debenencontrarse en la misma página que laetapa y la transición de divergencia.

• Para una desactivación simultánea, lasetapas y la transición de convergenciadeben encontrarse en la misma páginaque la remisión de destino.

Cuando varias etapas convergen haciauna sola transición, la remisión deorigen tiene el número de la etapasuperior más a la izquierda.

Enlaces orientados

• Los enlaces orientados vinculanuna etapa a una transición o unatransición a una etapa. Puedenser verticales o horizontales.

• Los enlaces orientados pueden:- cruzarse ➀: son entonces de

naturaleza diferente,- encontrarse ➁: son entonces de

misma naturaleza.

• Es imposible que un enlace cruceuna activación o unadesactivación simultánea deetapas.

Pág. 2

Pág. 3

Pág. 4

Pág. 5

➀ ➁

Page 116: Manual PL7

5/14___________________________________________________________________________

A

Comentarios

• En una página Grafcet, uncomentario puede introducirse encualquier celda. El texto delcomentario se encuentra entre (*a la izquierda y *) a la derecha. Sutamaño máximo es de 64caracteres.

• Un comentario ocupa dos celdascontiguas en dos líneasmáximas. Si el área devisualización es demasiadopequeña, el comentario se truncaen la pantalla, pero al imprimir ladocumentación, el comentario sepresenta por completo.

• El comentario introducido en unapágina Grafcet se almacena enlas informaciones gráficastransferidas al autómata.

Page 117: Manual PL7

Lenguaje Grafcet 5

___________________________________________________________________________5/15

A

5.6 Macroetapas

Una macroetapa es una representación de un conjunto de etapas y de transicionesdenominado expansión de la macroetapa. Esta se caracteriza por una etapa deentrada y una etapa de salida.

5.6-1 Principio

Una macroetapa es la simbolización gráfica deuna secuencia.

Se distingue por una etapa que tiene dos rayashorizontales.

La etapa de entrada responde a las mismas reglasque las otras etapas.

La etapa de salida no puede tener accionesasociadas.

Cuando la macroetapa está activa, la evoluciónGrafcet respeta las reglas enunciadas en loscapítulos anteriores.

La macroetapa M1 se activa cuando la etapa 1está activa y su receptividad siguiente esverdadera.

Se desactiva cuando la etapa de salida está activay la receptividad M1>2 es verdadera.

La etapa 2 se activa entonces.

IN

1 11

2 12

13

OUT

1

M1

2

3

IN

1 11

2 12

13

OUT

2

3

1

M1

Page 118: Manual PL7

5/16___________________________________________________________________________

A

5.6-2 Características

El lenguaje Grafcet PL7 autoriza la programación de 64 macroetapas M0 a M63.

La expansión de una macroetapa constituida por una o varias secuencias, esprogramable como máximo en 8 páginas y comprende un máximo de 250 etapas másla etapa IN y la etapa OUT.

Una macroetapa puede contener una o varias macroetapas.

Esta jerarquía es posible hasta 64 niveles.

El análisis de una aplicación puede ser estructurado de manera que proporcione unenfoque global y luego detallado de las diferentes operaciones que se van a realizar.

5.6-3 Etapas iniciales

La expansión de una macroetapapuede contener una o varias etapasiniciales.Estas etapas iniciales se activan alencender o efectuar una inicializaciónpor programa. La macroetapa sevisualiza entonces en el estado activo.

1 2 3 4 5 6 7

IN1

12

22

M3

13

11

21

Initialisacion

0

M0

1

2

IN

1

OUT

M1

Vers une analyse détaillée

IN

1

12

OUT

2

M4

M2

Hacia un análisis detallado

Page 119: Manual PL7

Lenguaje Grafcet 5

___________________________________________________________________________5/17

A

5.7 Acciones asociadas a etapas

A cada etapa se asocian acciones que pueden programarse en el lenguaje decontactos, 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. Elsoftware PL7 autoriza tres tipos de acción:

• las acciones al activar : acciones ejecutadas una vez cuando la etapa a la que estánasociadas pasa del estado inactivo al estado activo.

• las acciones al desactivar : acciones ejecutadas una vez cuando la etapa a la queestán asociadas pasa del estado activo al estado inactivo.

• las acciones continuas : estas acciones se ejecutan mientras la etapa a la que estánasociadas está activa.

Estos tres tipos de acción son válidos para cada etapa.

Una misma acción puede comprender varios elementos de programación (sentenciaso redes de contactos).

Marcar acciones

Estas acciones se marcan de la manera siguiente:

MAST - <nombre sección Grafcet> - CHART (o MACROk)- PAGE n %Xi x

con: x = P1 Activación= N1 Continua= P0 Desactivación

n = Número de la páginai = Número de la etapa

Ejemplo: MAST - Pintura - CHART - PAGE 0 %X1 P1Acción al activar la etapa 1 de la página 0 de la sección Pintura

Reglas de utilización

• Todas las acciones se consideran como acciones memorizadas; por consiguiente:- una acción servocontrolada la duración de la etapa Xn debe ponerse a cero cuando

la etapa Xn se desactiva o cuando la etapa Xn+1se activa.- una acción 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 lógicas, por

consiguiente, ser condicionales.• Las acciones sercontroladas a seguridades indirectas deben programarse en el

tratamiento posterior (tratamiento ejecutado en cada exploración: véase el capítulo5.2 "Organización de la tarea maestra").

Page 120: Manual PL7

5/18___________________________________________________________________________

A

Acciones al activar o al desactivar

Estas acciones son impulsivas y se ejecutan en un solo ciclo de exploración. Permitenllamar 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

• Acción 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 están presentes, %M10 estáposicionada a 1. El último estado leído al desactivar se almacena puesto que lasacciones asociadas ya no se exploran.

Es pues necesario poner a 0 el bit %M10 en la acción al desactivar la etapa, porejemplo.

Page 121: Manual PL7

Lenguaje Grafcet 5

___________________________________________________________________________5/19

A

• Acción condicional temporizada

Se trata de un caso particular, ya que el tiempo interviene como condición lógica.Este servocontrol puede realizarse simplemente probando el tiempo de actividadasociado a la etapa.

Ejemplo

El bit %M12 se controla mientras el tiempo de actividad de la etapa 3 es inferior a10 segundos (base de tiempo: 100 ms).

• Estas acciones pueden también ser incondicionales.

Orden de ejecución de las acciones

En el ejemplo siguiente, en un ciclo completo, el orden de ejecución de las accioneses 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.

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

50

51

Activacion %X50 Continua %X50 Desactivacion %X50

Activacion %X51 Continua %X51 Desactivacion %X51

Page 122: Manual PL7

5/20___________________________________________________________________________

A

5.8 Receptividades asociadas a transiciones

• A cada transición se asocia una receptividad que puede programarse en el lenguajede contactos, en el lenguaje Lista de instrucciones o en el lenguaje Literal estructurado.

• Una receptividad se explora sólo si la transición a la que está asociada es válida.• Una receptividad corresponde a una red de contactos, a una lista de instrucciones

o a una expresión 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 sección Grafcet> - CHART(o MACROk) - PAGE n %X(i) --> % X(j)con: n = Número de la página

i = Número de etapa arribaj = Número de etapa abajo

Ejemplo: MAST - Pintura -CHART - PAGE 0 %X(0) → %X(1)Receptividad asociada a la transición entre la etapa 0 y la etapa 1 de lapágina 0 del gráfico de la sección Pintura

En una activación o desactivación simultánea de etapas, la marca indicada es la dela etapa situada en la columna más a la izquierda.

Reglas de programación en lenguaje de contactos

La receptividad asociada a la transición se programa en la forma de una red quecomprende un área de prueba y un área de acción.

La estructura de la red es idéntica a la de una red programada en un módulo deprograma.

Sólo se pueden utilizar los elementos siguientes:

• elementos gráficos de prueba: contactos (%Mi, %I, %Q, %TMi.D ...), bloques decomparación,

• elementos gráficos de acción: bobina "#" únicamente (las demás bobinas no sonsignificativas en este caso).

Page 123: Manual PL7

Lenguaje Grafcet 5

___________________________________________________________________________5/21

A

Reglas de programación en el lenguaje Lista de instrucciones

La receptividad asociada a la transición se programa en la forma de una lista deinstrucciones que contiene únicamente instrucciones de prueba.

La lista de instrucciones admitida para la escritura de una receptividad difiere de unalista de instrucciones clásica en:

• la estructura general:

- sin etiquetas (%L).

• la lista de instrucciones:

- sin instrucciones de acción (objetos bits, palabras o bloques de función),- sin saltos, ni llamadas de subprograma.

Reglas de programación en el lenguaje Literal estructurado

La receptividad asociada a la transición se programa en la forma de una expresiónbooleana o aritmética o de una asociación de ambas.

La expresión admitida para la escritura de una receptividad difiere de una línea deprogramación en el lenguaje literal en:

• la estructura general:

- sin etiqueta (%L),- sin sentencias de acción, ni sentencias condicionales o sentencias iterativas.

• la lista de instrucciones:

- sin acción sobre el objeto bit,- sin saltos, ni llamadas de subprograma,- sin transferencias, ni instrucciones de acción para bloques.

Page 124: Manual PL7

5/22___________________________________________________________________________

A

Receptividad que utiliza el tiempo de actividad

En ciertas aplicaciones, hay acciones que se regulan sin control de informacióndevuelta (fin de recorrido, detector, ...). Un tiempo condiciona la duración 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 asociadaa la transición entre la etapa 3 y la etapa 4 será la de la pantalla siguiente (por ejemplo,en lenguaje Literal estructurado).

Page 125: Manual PL7

Lenguaje Grafcet 5

___________________________________________________________________________5/23

A

5.9 Organización de la sección Grafcet

5.9-1 Descripción de la sección Grafcet

Una sección de programa escrito enlenguaje Grafcet comprende trestratamientos consecutivos:• el tratamiento preliminar Prl,• el tratamiento secuencial Chart,• el tratamiento posterior Post.

Las macroetapas se ejecutan en su ordende escrutinio en el tratamiento secuencial.

La sección Grafcet se programa en latarea MAST.

El escrutinio de la sección se efectúa según el orden siguiente:

Tratamiento preliminar:

Permite tratar:

• las inicializaciones al reanudar trascorte de corriente o falla,

• preposicionar el gráfico,• lógica de entrada.

Tratamiento secuencial:

Permite tratar el esquema secuencial dela aplicación y da acceso al tratamiento delas receptividades y accionesdirectamente asociadas a las etapas.

Tratamiento posterior:

Permite tratar:

• la lógica de salida,• la supervisión de las seguridades

indirectas específicas a las salidas.

Tratamiento Secuencial

Grafcet

Tratamiento Posterior

Lenguaje de contactos,lista de instrucciones

o literal

Tratamiento Preliminar

Lenguaje de contactos,lista de instrucciones

o literal

Sección Grafcet

Page 126: Manual PL7

5/24___________________________________________________________________________

A

5.9-2 Tratamiento preliminar

Introducido en el lenguaje de contactos, en el lenguaje Lista de instrucciones o en ellenguaje Literal, el tratamiento preliminar se explora en su totalidad desde arriba haciaabajo.

Ejecutado antes de los tratamientos secuencial y posterior, permite tratar todos lossucesos que tienen una influencia sobre éstos:

• gestión de las reanudaciones de alimentación y de las reinicializaciones,• puesta a cero o preposicionamiento de los gráficos.

Es pues únicamente en el tratamiento preliminar que actuará sobre los bits asociadosa 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 lamarcha normal a una marcha especial o cuando aparece un incidente (ejemplo: fallaque causa una marcha deteriorada).

Esta operación interviene en el desarrollo normal del ciclo de la aplicación; debe puesefectuarse con precaución. El posicionamiento puede comprender la totalidad o unaparte 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.

Page 127: Manual PL7

Lenguaje Grafcet 5

___________________________________________________________________________5/25

A

5.9-3 Utilización de los bits sistema en el tratamiento preliminar

Ya que los bits sistema asociados al Grafcet se clasifican numéricamente en orden deprioridad (%S21 a %S23), cuando varios de ellos se ponen simultáneamente a 1 enel tratamiento preliminar, éstos se tratan uno a uno en el orden creciente (uno solo esválido por ciclo de exploración). Estos bits se validan al inicio del tratamientosecuencial.

Inicialización del Grafcet: %S21

Normalmente en el estado 0, la puesta al estado 1 de %S21 tiene como consecuencia:

• la desactivación de las etapas activas,• la activación de las etapas iniciales.

Puesta al estado 1 Puesta al estado 0

• Mediante la puesta al estado 1 de %S0 • Mediante el sistema al inicio del• Mediante el programa de usuario tratamiento secuencial• Mediante el terminal (1) • Mediante el programa de usuario

• Mediante el terminal

• UtilizaciónCuando el programa de usuario efectúa la gestión, %S21 debe ponerse a 0 o a 1en el tratamiento preliminar .

Puesta a cero del Grafcet: %S22

Normalmente en el estado 0, la puesta a 1 de %S22 desactiva las etapas activas detodo el tratamiento secuencial.

Puesta al estado 1 Puesta al estado 0

• Mediante el programa de usuario • Mediante el sistema al final del• Mediante el terminal (1) tratamiento posterior

• Utilización- Este bit debe tener el valor 1 en el tratamiento preliminar .- El sistema pone %S22 a cero; por consiguiente, es inútil ponerlo a 0 desde el

programa o el terminal.

Para rearrancar el tratamiento secuencial en una situación dada, el usuario debeprever según su aplicación un procedimiento de inicialización o de preposicionamientodel Grafcet.

(1) En la pantalla de depuración UC (parte Grafcet) o en la tabla de animación.

Page 128: Manual PL7

5/26___________________________________________________________________________

A

Inmovilizació n del Grafcet: %S23

Normalmente en el estado 0, la puesta al estado 1 de %S23 provoca el mantenimientoen el estado de los Grafcet. Cual que sea el valor de las receptividades debajo de lasetapas activas, los Grafcet no evolucionan. La inmovilización se conserva mientras elbit %S23 esté a 1.

Puesta al estado 1 Puesta al estado 0

• Mediante el programa de usuario • Mediante el programa de usuario

• Mediante el terminal (1) • Mediante el terminal (1)

(1) En la pantalla de depuración UC (parte Grafcet) o en la tabla de animación.

• Utilización- El programa de usuario efectúa la gestión 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 preposicionarsey luego inmovilizarse mediante %S23.

En una nueva aplicación, o si se pierde el contexto sistema, el sistema efectúa unarranque en frío. El sistema pone el bit %S21 a 1 antes de la llamada del tratamientopreliminar y el Grafcet se posiciona en las etapas iniciales. Si el usuario desea untratamiento particular respecto a la aplicación en caso del arranque en frío, tiene laposibilidad de probar %S0 que permanece a 1 durante el primer ciclo de la tareamaestra (MAST).

Después de un corte de corriente sin cambio de aplicación, el sistema efectúa unrearranque en caliente. Reanuda el funcionamiento en el estado anterior al corte decorriente. Si el usuario desea un tratamiento particular respecto a la aplicación en casode rearranque en caliente, tiene la posibilidad de probar %S1 en el tratamientopreliminar y acceder al programa correspondiente.

Page 129: Manual PL7

Lenguaje Grafcet 5

___________________________________________________________________________5/27

A

Puesta a cero de las macroetapas: %S24

Normalmente en el estado 0, la puesta a 1 de %S24 provoca la puesta a cero de lasmacroetapas seleccionadas de una tabla de 4 palabras sistema (%SW22 a %SW25).

Puesta a estado 1 Puesta a estado 0

• Por el programa de usuario • Por el sistema al inicio del tratamientosecuencial

• Utilización- 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 %SW25A cada bit de esta tabla corresponde una macroetapa.Su utilización 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),• validación por %S24.

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.

F 0%SW22

XM15 . . . . . . . . . . . . . . XM0%SW23%SW24%SW25F 0

XM63 . . . . . . . . . . . . . . XM48

Page 130: Manual PL7

5/28___________________________________________________________________________

A

5.9-4 Tratamiento secuencial

Este tratamiento permite programar el esqueleto secuencial de la aplicación. Eltratamiento secuencial comprende:

• el gráfico principal organizado en 8 páginas.

En el gráfico principal, varios Grafcet no conexos pueden programarse y desarrollarsesimultáneamente.

Principio de evolución

La gestión de la evolución del Grafcet se efectúa de la manera descrita a continuación.

Fase 1

1. Evaluación de las receptividades de las transiciones validadas.

2. Petición de desactivación de las etapas superiores asociadas.

3. Petición de activación de las etapas inferiores implicadas.

Fase 2

Evolución de la situación del Grafcet en función de las transiciones alcanzadas:

1. Desactivación de las etapas encima de las transiciones alcanzadas.

2. Activación de las etapas debajo de las transiciones alcanzadas.

3. Invalidación de las transiciones alcanzadas.

4. Validación de las transiciones debajo de las nuevas etapas activadas.

El sistema actualiza dos tablas dedicadas respectivamente a la actividad de las etapasy 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 transicionessituadas 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.

Page 131: Manual PL7

Lenguaje Grafcet 5

___________________________________________________________________________5/29

A

Rebasamiento de las posibilidades

El número de elementos de la tabla de actividad de etapas y de la tabla de validez detransiciones es configurable. El rebasamiento de capacidad de la una o de la otra tienecomo consecuencia:

• el paso a STOP del autómata (parada de la ejecución de la aplicación),• el paso a 1 del bit sistema %S26 (rebasamiento de capacidad de una de las dos

tablas),• el parpadeo del indicador ERR del autómata.

El sistema pone a la disposición del usuario dos palabras sistema:

• %SW20 : palabra que permite conocer para el ciclo actual el número de etapasactivas, que se deben activar y desactivar.

• %SW21 : palabra que permite conocer para el ciclo actual el número de transicionesválidas, que se deben validar o invalidar.

En caso de una falla con bloqueo, las palabras sistema %SW125 a %SW127 permitendeterminar la naturaleza de la falla.

• %SW125 = DEF7 (hex) Rebasamiento de las tablas (etapas/transiciones).• %SW125 = DEFE (hex) Ejecución incorrecto del gráfico

(problema de transición con remisión de destino nonresuelta).

%SW125 %SW126 %SW127

DEF7 ≠ 0 = 0 Rebasamiento de la tabla de etapas

DEF7 = 0 ≠ 0 Rebasamiento de la tabla detransiciones

DEFE N° de etapa Nº macroetapa (1) Ejecución incorrecta del gráfico

(1) ó 64 para el gráfico principal.

Page 132: Manual PL7

5/30___________________________________________________________________________

A

5.9-5 Tratamiento posterior

Introducido en el lenguaje de contactos, en el lenguaje Lista de instrucciones o en ellenguaje Literal estructurado, el tratamiento posterior se explora desde arriba haciaabajo. Este tratamiento es el último ejecutado antes de la activación de las salidas:permite programar la lógica de salida.

Acciones asociadas al Grafcet

El tratamiento posterior permite completar los valores de consigna emitidos por eltratamiento secuencial integrando en la ecuación de una salida los modos de marchay de parada y las seguridades indirectas relativas a la acción. Permite también trataruna salida activada varias veces en el tratamiento secuencial.

De forma general, se aconseja programar las acciones que actúan directamentesobre el proceso en el tratamiento posterior.

Ejemplo

• %I2.4 : seguridad indirecta relativa al control de la salida %Q4.1.

• %M26 : bit interno resultado de la lógica de entrada que trata los modos de marchay de parada.

• %I1.0 : botón pulsador.

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

Page 133: Manual PL7

Lenguaje Grafcet 5

___________________________________________________________________________5/31

A

Acciones independientes del Grafcet

El tratamiento posterior permite también programar las salidas independientes deltratamiento secuencial.

Control de la ejecución del Grafcet

Es posible que sea necesario controlar el buen funcionamiento del Grafcet probandoel tiempo de actividad de ciertas etapas.

Este tiempo se prueba comparándolo o a un valor mínimo o a un valor máximodeterminado por el usuario. Se le incumbe al usuario la explotación de la falla(señalización, procedimiento particular de funcionamiento, edición de mensaje).

Ejemplo : ! IF (%X2.T > 100 AND %X2) THENSET %Q4.0 ;END_IF ;

Page 134: Manual PL7

5/32___________________________________________________________________________

A

Page 135: Manual PL7

Bloques de función DFB 6

___________________________________________________________________________6/1

A

6.1 Presentación de los bloques de función DFB

6.1-1 Generalidades

El software PL7-Pro ofrece al usuario la posibilidad de crear sus propios bloques defunción para responder a las especificidades de sus aplicaciones.

Estos bloques de función de usuario permiten estructurar una aplicación. Se utilizaráncuando una secuencia de programa esté repetida varias veces en la aplicación o parainmovilizar una programación estándar (ejemplo: algoritmo de comando de un motorque incluye las seguridades locales).

Los DFB se pueden transmitir al conjunto de los programadores y utilizarse en la mismaaplicación o en las otras aplicaciones (función exportación/importación).

La utilización de un bloque de función DFB en una aplicación permite:• simplificar la concepción y la introducción del programa,

• aumentar la legibilidad del programa,

• facilitar su depuración (todas las variables manipuladas por el bloque de funciónDFB están identificadas en su interface).

• disminuir el volumen de código generado (el código correspondiente al DFB sólose carga una vez, cualquiera sea el número de llamadas al DFB en el programa),

En relación al subprograma, permiten:• parametrar más fácilmente el tratamiento,

• utilizar variables internas propias al DFB, por lo tanto independientes de la aplicación,

• probarse independientemente de la aplicación.

Ofrecen en lenguaje de contactos una visualización gráfica del bloque que facilita laprogramación y la depuración.

Además, los bloques de función DFB utilizan los datos remanentes.

La creación de un bloque de función DFB se efectúa con el software PL7 Pro, y lautilización del bloque puede efectuarse con un PL7 Pro o un PL7 Junior en losautómatasTSX/PCX/PMX57.

Los bloques de función DFB (Derived Function Block) pueden programarse enlenguaje literal y de contacto por el programador y se pueden utilizar en lenguajede contactos, en literal y en el lenguaje lista de instrucciones.

Capítulo 66 Bloques de función DFB

Page 136: Manual PL7

6/2___________________________________________________________________________

A

6.1-2 Creación de un bloque de función DFB

La creación de un bloque de función DFB se efectúa en 3 fases:

1 concepción del DFB modelo (denominado: Tipo DFB),

2 creación de una imagen de este bloque denominada instancia para cada utilizaciónen la aplicación,

3 utilización de la instancia en el programa PL7.

Concepción del Tipo DFBUn bloque de función Tipo DFB se compone:

• de un nombre,• de parámetros:

- entradas,- salidas,- entradas/salidas,

• de variables,- variables públicas,- variables privadas,

• del código literal estructurado,• de un comentario,• de una ficha descriptiva.

Estas informaciones se deben definirdurante la fase de concepción del DFB. Lacreación se efectúa con ayuda del editorde DFB.

Creación de una instancia DFBUna vez concebido el Tipo DFB, el usuariodefine una instancia del DFB con ayudadel editor de variables o en la llamada dela función en el editor de programa.

Utilización de los DFBEsta instancia del bloque se utiliza luegocomo un bloque de función estándar enlenguaje de contactos, o como una funciónelemental en lenguaje literal estructuradoo en lista de instrucciones. Se puedeprogramar en las diferentes tareas(excepto en las tareas de sucesos) ysecciones de la aplicación.

Nombre Tipo DFB

Entradas Salidas

Entradas/salidas

Variables públicasVariables privadas

Código en literal

Ejemplo de DFB: Válvula_C1, Volumen_C1, Crono_C1

Page 137: Manual PL7

Bloques de función DFB 6

___________________________________________________________________________6/3

A

6.2 Concepción de un bloque de función Tipo DFB

6.2-1 Creación de un Tipo DFB

Los bloques de función Tipo DFB se creana nivel del directorio Tipo DFB delnavegador de la aplicación.

Cada Tipo DFB se identifica con unnombre de 16 caracteres máximo (1).

6.2-2 Descripción de los parámetros y variables

Características generalesEstos objetos son datos internos al DFB, y son puramente simbólicos (sindireccionamiento en forma de variable). Para cada parámetro o variable utilizada, elprogramador del bloque de función Tipo DFB define:• un nombre de 8 caracteres máximo (1),• un tipo de objeto (véase tabla que sigue),• un comentario opcional de 80 caracteres máximo,• un valor opcional (excepto para los parámetros Entradas/Salidas),

Tipos de objetos autorizados

BOOL Booleano AR_X Tabla de bitsEBOOL Booleano ampliado (gestión de flancos) AR_R Tabla de realesREAL Real AR_W Tabla de entero 16 bitsWORD Entero 16 bits AR_D Tabla de entero 32 bitsDWORD Entero 32 bits STRING Cadena de caracteres

Notas:• el tipo EBOOL maneja los flancos, y es posible entonces ejecutar en ese tipo de parámetro

o de variable instrucciones sobre el flanco de tipo RE y FE (ejemplo de objeto de tipo EBOOLdel lenguaje PL7: %Mi,%Ixy.i,%Qxy.i). Si la gestión de flanco no es útil en el tratamiento, espreferible utilizar el tipo BOOL (ejemplo de objeto de tipo BOOL del lenguaje PL7: %MWi:Xj)que no maneja los flancos pero consume menos tamaño de memoria.

• si se desea asociar un tipo EBOOL a un parámetro de entradas/salidas durante la utilización,debe ser de tipo EBOOL en el DFB.

• caso de tablas: la longitud de la tabla debe ser obligatoriamente mencionada para losparámetros de salida y las variables públicas y privadas, por el contrario, no es necesariodefinirlas en los parámetros de entradas y los parámetros de entradas/salidas.

• los valores iniciales pueden ser definidos para las entradas (si no son del tipo tabla), para lassalidas y para las variables públicas y privadas.

(1) se autorizan las letras no acentuadas, los dígitos, el carácter "_"; el primer carácterdebe ser una letra; las palabras clave y los símbolos están prohibidos.

Page 138: Manual PL7

6/4___________________________________________________________________________

A

Controle

Ecart Accel

Vitesse

Enable

Accións

ErreurWORD

DWORD

BOOL

BOOL

WORD

WORD

Ejemplo de bloquede:3 entradas, 2salidas, 1 entrada/salida

Descripción de los parámetros

• Entradas : (máx.: 15 (1)) son los datosque suministrar el programa deaplicación al DFB. Estos parámetros ensólo lectura no pueden ser modificadosen el código DFB.

• Salidas : (máx.: 15 (2)) son datoselaborados en el DFB con destino alprograma de aplicación.

• Entradas/Salidas : (máx.: 15 (1)y (2))son parámetros de entradasmodificables en el código del DFB.

(1) donde Número de entradas + Número de entradas/salidas < 15(2) donde Número de salidas + Número de entradas/salidas < 15

Nota: todo bloque DFB debe tener por lo menos una entrada booleana.

Descripción de las variables

• Variables públicas : (máx.: 100) variables internas utilizadas en el tratamiento yaccesibles por el usuario en ajuste o por el programa de aplicación fuera del códigoDFB (en tanto que variable pública de instancia DFB, véase apartado 6.4-4).Además de las características generales, es posible especificar un derecho de sólolectura o de lectura/escritura, y una autorización de protección de transferencia delos valores actuales en lugar de los valores iniciales (véase apartado 6.4-5),

• Variables privadas : (máx.: 100) variables internas al código de bloque de función.Estas variables se calculan y utilizan dentro de un mismo DFB pero no tienen ningúnvínculo con el exterior del DFB. Estas variables son útiles para la programación delbloque pero no tienen ningún interés para el usuario del bloque (por ejemplo:variable intermedia de remisión de una expresión combinatoria a otra, resultado deun cálculo intermedio...).

Nota: La modificación de la interface de un DFB (variables públicas o parámetros) es posibleúnicamente si no contiene instancias y se utiliza en la aplicación.

Page 139: Manual PL7

Bloques de función DFB 6

___________________________________________________________________________6/5

A

6.2-3 Código de un tipo DFB

El código define el tratamiento que debeefectuar el bloque DFB en función de losparámetros declarados.

El código del bloque de función DFB seprograma en lenguaje literal o en lenguajede contacto.

En el caso del lenguaje literal, el DFB estáconstituido de una sola fase literal delongitud no limitada.

Todas las instrucciones y funcionesavanzadas del lenguaje están permitidasexcepto:• la llamada a los bloques de función

estándares,• la llamada a los demás bloques de

función DFB,• bifurcación a una etiqueta (JUMP),• la llamada a un subprograma,• la instrucción HALT,• las instrucciones que utilizan variables

de módulos de entradas/salidas (ej:READ_STS, SMOVE...).

El código explota los parámetros y lasvariables del DFB definidas por el usuario.

El código del bloque de función DFB no puede utilizar ni los objetos de entradas/salidas (%I,%Q...), ni los objetos globales de la aplicación (%MW,%KW...) excepto losbits y palabras sistema %S y %SW.

Se ha desarrollado un determinado número de funciones específicamente parautilizarse en los bloques de función del usuario:• las funciones de temporización FTON, FTOF, FTP, FPULSOR que pueden utilizarse

en lugar de bloques de función de temporización,

• las instrucciones LW, HW, COCATW que permiten manipular palabras de doblespalabras,

• las instrucciones LENGTH_ARW, LENGTH_ARD, LENGTH_ARR, que permitencalcular las longitudes de tabla.

Nota: no se puede utilizar las etiquetas.

CHR_200:=CHR_100;CHR_114:=CHR_104;CHR_116:=CHR_106;RESET DEMARRE;(*Se incrementa 80 vecesCHR_100*)FOR CHR_102:=1 TO 80 DO

INC CHR_100;WHILE((CHR_104-

CHR_114)<100)DOIF(CHR_104>400) THEN

EXIT;END_IF;INC CHR_104;REPEATIF(CHR_106>300) THEN

EXIT;END_IF;INC CHR_106;UNTIL ((CHR_100-

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

Page 140: Manual PL7

6/6___________________________________________________________________________

A

6.2-4 Validación del Tipo DFB

En la validación, el editor DFB verifica la sintaxis del código y la adecuación con lasvariables introducidas en la interface. En caso de error, el primer error se muestra envídeo inverso.Nota: si se desea salir sin validar el código, hay que exportar el DFB para guardarlo:borrar el conjunto del código antes de salir.

6.2-5 Propiedades de un Tipo DFB

Las siguientes propiedades de un Tipo DFB son accesibles desde un cuadro dediálogo del editor de DFB.

• Area de "Información", que maneja:- el tamaño de los datos,- el número de instancias creadas,- la firma (garantía de unicidad del DFB)- el número de elementos: parámetros y variables.

• Area "General", que indica:- la versión: aumenta automáticamente con cada modificación del código, de los

parámetros o de las variables del tipo DFB,- la fecha de la última modificación,- el lenguaje: ST o LD (que se puede modificar si el código está vacío),- 2 tipos de protección: la protección contraescritura que limita el acceso al DFB en

sólo lectura , la protección de "información" que prohibe el acceso al código del tipoDFB y a sus variables privadas. La protección es manejada por una contraseña.

- un comentario de 128 caracteres máximo; de forma predeterminada el comentariomenciona la fecha de creación y el autor del tipo DFB.

Page 141: Manual PL7

Bloques de función DFB 6

___________________________________________________________________________6/7

A

6.2-6 Ficha descriptiva

La ficha descriptiva es un área de introducción libre de longitud máxima de 32 000caracteres que permite describir el tipo DFB.

6.2-7 Propiedades del tipo DFB

El acceso a las propiedades del tipo DFB:• Visualización del número de DFB en ST y en LD existentes en la aplicación.• Inhibición de la función "Save/Restore" para todos los DFB".

Este servicio permite inhibir todos los flags Save/Restore seleccionados para lasVariables públicas de todos los tipos de DFB.Esta inhibición actúa como una "protección" sobre el conjunto de DFB en la medidaen que, cuando está desactivada, se conservan las selecciones para cada variablepública de cada tipo de DFB.

6.2-8 Importación/exportación tipo DFB

Los tipos DFB creados en una aplicación se pueden volver a utilizar en cualquier otraaplicación 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 leero modificar según el grado de protección asignado.

A partir de los archivos de origen o binario, el usuario podrá crear su propia biblioteca.

Nota:Durante la importación de una sección en una aplicación, es necesario importar los tipos DFBque se utilizan en esta sección.

Page 142: Manual PL7

6/8___________________________________________________________________________

A

6.3 Creación de una instancia de bloques de función Tipo DFB

6.3-1 Principios

Una vez que el bloque de función Tipo DFB ha sido creado (o importado), para utilizarel DFB es necesario generar una instancia de este bloque.Cada instancia DFB se identifica por un número de 32 caracteres máximo(1) definidopor el usuario.

Es posible crear tantas instancias como se desee (limitado únicamente por el tamañode la memoria del autómata) a partir de un mismo tipo de DFB.Los valores iniciales de las variables públicas definidas para los bloques de funciónTipo DFB pueden ser modificados para cada instancia.

Estas operaciones se efectúan en el editor de variables (Instancias DFB) o en el editordel programa en la llamada de la función. Todas las instancias de DFB son accesiblescon la función biblioteca.

Una instancia DFB es una copia del TipoDFB:• utiliza el código del Tipo DFB, (no hay

duplicación del código),• crea una área de datos específica a

cada instancia, que es la copia de losparámetros y de variables del Tipo DFB.Esta área está situada en el espacio dedatos de la aplicación.

(1) Los caracteres permitidos son idénticos a los autorizados en los símbolos (véaseapartado1.2-9)

DFB Controle

Ecart Accel

Vitesse

Enable

Accións

ErreurWORD

DWORD

BOOL

BOOL

WORD

WORD

Ejemplo de la instancia"Vigilancia_horno" delTipo DFB Control

Vigilancia_horno

Page 143: Manual PL7

Bloques de función DFB 6

___________________________________________________________________________6/9

A

6.4 Utilización de los bloques de función DFB

6.4-1 Reglas generales de programación

Las instancias de DFB se utilizan en todos los idiomas (idiomas de contactos, literaly lista de instrucciones) y en todas las partes de la aplicación: secciones, subprograma,módulo Grafcet, (excepto en las tareas de sucesos).

Las reglas siguientes se deben respetar cualquiera sea el lenguaje que se utilice:

• todos los parámetros de entradas de tipo tabla así como los parámetros de entradas/salidas se deben completar.

• los parámetros de entradas no cableados conservan el valor de la llamada o el valorde inicialización si el bloque jamás ha sido llamado con esta entrada introducida ocableada.

• todos los objetos asignados a los parámetros de entradas, de salidas y de entradas/salidas deben ser obligatoriamente del mismo tipo que los definidos durante lacreación del Tipo DFB (por ejemplo: si el tipo WORD es definido para el parámetrode entrada "velocidad", no se autoriza a asignarle dobles palabras %MDi, %KDi).La única excepción son los tipos BOOL y EBOOL que se pueden mezclar para losparámetros de entradas o de salidas (no para los parámetros de entradas/salidas:por ejemplo, el parámetro de entrada "Validación" puede definirse como BOOL ytambién puede asociarse a un bit interno %Mi que es de tipo EBOOL, por el contrario,en el código del tipo DFB el parámetro de entrada tendrá realmente la propiedadde un tipo BOOL, y no podrá manejar los flancos.

La tabla que sigue resume las diferentes posibilidades:

Parámetro Tipo Asignación de parámetro Asignación

Entradas Booleana Cableado (1) opcional (2)

Numérica Objeto u expresión opcional

Tabla Objeto obligatoria

Entradas/ Booleana Objeto obligatoria

Salidas Numérica Objeto obligatoria

Tabla Objeto obligatoria

Salidas Booleana Cableado (1) opcional

Numérica Objeto opcional

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

Page 144: Manual PL7

6/10___________________________________________________________________________

A

6.4-2 Programación en lenguaje de contactos

Hay dos posibilidades para llamar un bloque de función DFB:

• una llamada textual en un bloque de operación, la sintaxis y las restricciones en losparámetros son idénticas a la del lenguaje literal (véase capítulo que sigue).

• una llamada gráfica, véase ejemplo presentado a continuación.

Los bloques de función DFB gráficos tienen entradas /salidas que son asignadasdirectamente por objetos u expresiones; estos objetos u expresiones ocupan unacelda de la red gráfica.

2 bloques de función DFB conectados en serie deben ser separados por lo menospor 2 columnas.

1 nombre del DFB2 nombre del Tipo DFB3 parámetro efectivo de la primera entrada4 parámetros de entradas (nombre y tipo)5 parámetros de salidas (nombre y tipo)6 parámetros de entradas/salidas (nombre y tipo)

Observaciones:

• Un bloque de función DFB debe tener por lo menos una entrada booleana cableada.• Las entradas, salidas o entradas/salidas numéricas del bloque no son cableadas.

A estos puntos se asocian objetos mencionados en la celda que está al lado delpunto.

Controle

DWORDEcart

%Q2.1WORDVitesse

%Q2.5

OperationDepassement_tps(Tps_ref_

BOOLEnable

WORDActions

Controle_port_1

WORDAccel

BOOLErreur

ABS(%MD0)

10000

%MW100

%MW8

1

23

4 5

6%MW100

Page 145: Manual PL7

Bloques de función DFB 6

___________________________________________________________________________6/11

A

6.4-3 Programación en lenguaje literal o lista de instrucciones

La llamada del bloque de función DFB constituye una acción, que puede ser colocadaen una fase como para cualquier otra acción 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 parámetrosefectivos para los parámetros de entradas.ES1, ..., ESn: parámetros efectivos que corresponden a las entradas/salidas; siempreson objetos de lenguajes en lectura/escritura.S1, ..., Sn: parámetros efectivos que corresponden a las salidas; siempre son objetosde lenguajes en lectura/escritura.

En los lenguajes literal y lista de instrucciones, se propone una introducción asistida.

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

Page 146: Manual PL7

6/12___________________________________________________________________________

A

6.4-4 Acceso a las variablesSólo los parámetros de salidas y las variables públicas son accesibles en tanto queobjetos en el programa de aplicación fuera del cuerpo del bloque de función. Susintaxis es la siguiente:

Nombre_DFB.Nombre_parámetro

Donde Nombre_DFB es el nombre que se da a la instancia del DFB utilizado (32caracteres máximo) y Nombre_parámetro es el nombre dado al parámetro de salidaso a la variable pública (8 caracteres máximo).

Ejemplo: Control.Desviación para la salida Desviación de la instancia DFBdenominada Control.

6.4-5 Guardado y restitución de las variables públicasLas variables públicas, modificadas por el programa o por ajuste, se pueden guardaren lugar de los valores de inicialización (definidos en las instancias DFB) mediantela puesta a 1 del bit sistema %S94. El reemplazo sólo se realiza si se ha dadoautorización a nivel de cada variable del tipo DFB.

Estos valores guardados son aplicados nuevamente mediante una puesta a 1 del bitsistema %S95 o al reinicializar el autómata.

Inhibición de la función "Save/Restore" para todos los DFBsvéase el capítulo 6.2-7.

6.4-6 Ejecución de los bloques de función DFB

La ejecución de una instancia DFB se efectúa en el siguiente orden:• carga de los parámetros de entradas y de entradas/salidas valiéndose de los

parámetros efectivos. Toda entrada dejada libre toma durante la inicialización oreanudación en frío el valor de la inicialización definido en el tipo DFB. A continuacióntoma el valor actual del parámetro.Los parámetros de entradas (salvo para el tipo de tabla) se transfieren por valor,Los parámetros entradas/salidas se transfieren por dirección,

• ejecución del código literal,

• escritura de los parámetros de salidas

El software PL7 ofrece varias herramientas de depuración del programa PL7 y de losDFB:• tabla de animación: todos los parámetros y variables públicas se visualizan y animan

en tiempo real; es posible modificar y forzar los objetos que se desea,• punto de parada, paso a paso y diagnóstico de programa,

• pantallas de explotación: para la depuración unitaria.

Page 147: Manual PL7

Bloques de función DFB 6

___________________________________________________________________________6/13

A

6.5 Ejemplo

Este ejemplo se proporciona a títulodidáctico, el DFB programado es uncontador.

Características del Tipo DFB

Nombre: Cont._piezasEntradas:• Raz: puesta a cero del contador

• Presel: valor de preselección delcontador

• Count: entrada de contaje

Salidas:

• Done: salida de valor de preselecciónalcanzada

Variable pública:

• V_actual: Valor actual incrementado porla entrada Count.

Funcionamiento del contador: este bloque cuenta los flancos ascendentes en laentrada Count, y el resultado lo coloca en la variable V_actual. Esta valor se pone acero mediante un flanco ascendente en la entrada Raz. El contaje se efectúa hastael valor de preselección, cuando este valor alcanza la salida Done se pone a 1, y s sevuelve a poner a 0 en flanco ascendente en la entrada Raz.

Código

!(*Programación 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;

Cont_piezas

Raz

Count

DoneEBOOL

EBOOL

BOOL

PreselDWORD

V_actualDWORD

Page 148: Manual PL7

6/14___________________________________________________________________________

A

Ejemplo de utilización

En este ejemplo el Tipo DFB creado, se utiliza 3 veces (3 instancias DFB) para elcontaje de 3 tipos de piezas. Cuando se alcanza el número de piezas programado (enlas palabras %MD10, %MD12, y %MD14), la salida del contador controla la paradadel sistema de abastecimiento de piezas correspondiente.

Programa del usuarioNombres de utilización del DFB a partir del Tipo DFB Cont_piezas:

• Cont_pernos

• Cont_tuercas

• Cont_tornillos

Cpt_pièces

BOOLRa z

%Q2.1

DWORDPreset

% I1.1BOOLCo unt

Cpt_boulons

BOOLDone

%M D10

%I1.0

Cpt_pièces

BOOLRa z

%Q2.2

DWORDPreset

% I1.3BOOLCou nt

Cpt_écrous

BOOLDone

%M D12

%I1.2

Cpt_pi èces

BOOLRaz

%Q2.3

DWORDPreset

% I1.5BOOLCount

Cpt_v is

BOOLDone

%MD14

%I1.4

Presel

Presel

Presel

Cont_pernos

Cont_piezas

Cont_piezas

Cont_piezas

Cont_tuercas

Cont_tornillos

Page 149: Manual PL7

Los módulos funcionales 7

___________________________________________________________________________7/1

ACapítulo 7

7 Módulos funcionales

Un módulo funcionalcomprende programa ytablas de animación

Un módulo funcional comprende un directorio de programa (compuesta de uno ovarios módulos de código) y un directorio de tabla de animación.

Sólo el producto PL7 PRO permite la instalación de los módulos funcionales en losautómatas TSX/PMX/PCX57.Los módulos funcionales permiten estructura la aplicación en funciones y subfuncionesde automatismo.

7.1 Presentación de los módulos funcionales

7.1-1 Definición del módulo funcional

Un módulo funcional es una reagrupación de elementos de programa (secciones,sucesos, macroetapas, tablas de animación, etc.) destinadas a realizar una funciónde automatismo.

Un módulo funcional está definido por un determinado número de atributos (nombre,comentario, programación, tablas de animación asociadas, etc.).

Page 150: Manual PL7

7/2___________________________________________________________________________

A

7.1-2 Representación de un módulo funcional en PL7 PRO

El software permite mostrar:• la vista estructural de la aplicación : es la vista tradicional del navegador de

aplicación que corresponde al orden de ejecución del autómata.

• la vista funcional de la aplicación: es la vista de la aplicación en módulosfuncionales correspondiente a las funciones del automatismo.

El Navegador de aplicación propone 4 visualizaciones posibles:• la vista tradicional y

funcional en paralelo,

• la vista tradicional y funcional en serie,• la vista tradicional sola,• la vista funcional sola.

Page 151: Manual PL7

Los módulos funcionales 7

___________________________________________________________________________7/3

A

7.1-3 Noción de submódulo funcional

Un módulo funcional puede dividirse a su vez en módulos funcionales de nivel inferior.Estos módulos asumen, en relación a la función principal, una o varias subfuncionesde automatismo.

Ejemplo

7.1-4 Tributos de un módulo funcional

Un módulo funcional está compuesto de :

• un nombre corto : 8caracteres (por ejemplo:TR371), este nombredebe ser único en laaplicación.

• un nombre largo : 16caracteres (por ejemplo:Avanzar /Retrocederpara BT371),

• submódulos funcionales: se trata demódulos funcionales de nivel inferior,

• módulos de código asociados:secciones, sucesos, módulo grafcet (Prl,Chart, macroetapas Xm, Post),

• una ficha descriptiva (sin límite denúmeros de caracteres), que no sememorizan en el autómata sino en elarchivo .STX de la aplicación,

• tablas de animación asociadas.

El módulo Prod1 posee un submódulo Mdm1

Page 152: Manual PL7

7/4___________________________________________________________________________

A

7.2 Instalación de los módulos funcionales

7.2-1 Crear un módulo funcional

Principio de creaciónUn módulo funcional se puede crear en local, con elautómata en Stop o en Run .Un módulo funcional se puede crear a nivel de la Estacióno a nivel de cada módulo funcional existante.Se puede cambiar el nombre de un módulo funcional.

Importar un módulo funcionalUn módulo funcional se puede importar en local, con elautómata en Stop.

7.2-2 Modificación de la arquitectura de los módulos funcionales

Desplazar un módulo funcionalUn módulo funcional se puede desplazar en local, con el autómata en stop o en run(ningún impacto sobre la ejecución de la aplicación).Es desplazamiento corresponde únicamente a una modificación de la arquitecturafuncional de la aplicación (un módulo se vincula directamente a nivel de la Estacióno a otro módulo funcional).Para desplazar un módulo, basta seleccionarlo y desplazarlo (función Arrastrar yColocar).

Ejemplo

Page 153: Manual PL7

Los módulos funcionales 7

___________________________________________________________________________7/5

A

Desvincular un módulo funcionalLa desvinculación de un módulo funcional consiste en cortar los vínculos entre unmódulo funcional y los objetos asociados (módulos de código y tablas de animación)- Las secciones que contienen un módulo no se eliminan sino que se desvinculan.- Las tablas de animación asociadas a los módulos no se eliminan sino que sólo sedesvinculan del módulo.

Eliminar uno o varios módulos funcionales sin eliminar los módulos de código ylas tablas de animaciónPara eliminar un módulo funcional sin eliminar los módulos de código y tablas deanimación, hay que:1. Efectuar la desvinculación del módulo y de los submódulos.2. Eliminar el o los módulos según el procedimiento presentado a continuación.

Eliminar un módulo funcional (con eliminación de los módulos de código y tablasde animación)La eliminación del módulo genera la eliminación de los submódulos- Las secciones que contiene el módulo no se eliminan.- Las tablas de animación asociadas a los módulos se suprimen.

Eliminar todos los módulos funcionales (con eliminación de los módulos de códigoy tablas de animación)La eliminación del módulo genera la eliminación de todos los submódulos

Eliminar una sección, una macroetapa o un suceso en un módulo funcionalVéase § 7.3-2.

Page 154: Manual PL7

7/6___________________________________________________________________________

A

Hay que seleccionar la sección ydesplazarse en el módulofuncional correspondant.

El nombre del módulo funcional se indica alnivel de la vista estructural

7.3 Programación de un módulo funcional

7.3-1 Agregar/crear una sección, un suceso o una macroetapa en un módulofuncional

1er caso: la sección, el suceso o el gráfico ya existen en la vista estructuralLa sección ya ha sido creada en la vista estructuralBasta arrastrar y colocar (arrastrar desplazando) y posicionarse en la sección deseadaen el módulo funcional.

Ejemplo

Page 155: Manual PL7

Los módulos funcionales 7

___________________________________________________________________________7/7

A

2do caso: crear sección, suceso o gráfico a partir de la vista funcionalHay que precisar al crearla tarea asociada en el casode las secciones.Se puede crear unasección, un suceso o unamacroetapa

3er caso: sección, suceso o gráfico a crear a partir de la vista estructuralSe trata del caso en que elusuario crea la arquitecturafuncional y crea lasseciones a partir de la vistaestructural.En este caso, hay queprecisar además el módulofuncional a asociar

Reglas1. Una sección Grafcet sólo se puede crear en local y en la tarea Mast únicamente.2. Una macroetapa o un suceso sólo se pueden crear en local.3. Las otras acciones se autorizan en local con el autómata en Stop o en Run.4. La protección de un módulo se aplica a todas las secciones vinculadas al módulo

funcional.

Page 156: Manual PL7

7/8___________________________________________________________________________

A

7.3-2 Eliminar una sección, macroetapa o un suceso en módulo

Se puede eliminar una sección o una macroetapa en un módulo funcional. Se eliminanentonces en el módulo y en la tarea asociada.La eliminación de un suceso sólo genera su desvinculación del módulo funcionalya que no es posible eliminar un suceso en la aplicación.

Ejemplo : eliminar la sección Preparación 1

La sección desaparece en ambas vistas

Reglas1. La eliminación está autorizada en local con el autómata en Stop, pero está prohibida

en Run.2. Sólo se puede eliminar en modo local una sección Grafcet o una macroetapa.3. No se puede eliminar un módulo PRL, Chart o POST sino únicamente desvincularlo.

Page 157: Manual PL7

Los módulos funcionales 7

___________________________________________________________________________7/9

A

7.3-3 Agregar/crear una tabla de animación en un módulo funcional

1er caso: la tabla ya existeLa tabla de animación ya ha sido creada en la vista estructuralBasta arrastrar y colocar y posicionar la sección en el módulo funcional al nivel de laTabla de animación.

2do caso: la tabla se debe crearEl principio es idéntico al de la creación en la vista estructural.

Reglas1. Una tabla de animación se puede crear en local con el autómata en Stop y en Run.2. Una tabla de animación se puede eliminar en local con el autómata en Stop y en

Run.

7.3-4 Introducir/modificar la ficha descriptiva

La ficha descriptiva es un área de introducción libre que permite describir el módulofuncional.Siempre es posible modificarla y memorizarla en la aplicación pero no se memorizaen el autómata.

Page 158: Manual PL7

7/10___________________________________________________________________________

A

7.4 Ejecución del programa

La organización de un módulo funcional, la repartición de las secciones, sucesos ymódulos Grafcet en los diferentes módulos no tienen ninguna repercusión sobre laejecución del programa.La ejecución del programa se realiza según el orden presentado en la vista estructural.

7.5 Depuración de la aplicación

El usuario dispone de funciones que permiten la depuración incremental de laaplicación, módulo funcional por módulo funcional.

Desactivar todas las secciones vinculadas a un módulo funcionalEsta acción consiste en forzar a 0 todas las condiciones de activación de las seccionesdel módulo.

Activar todas las secciones vinculadas a un módulo funcionalEsta acción consiste en forzar a 1 todas las condiciones de activación de las seccionesdel módulo.

Cancelar el forzado de todas las secciones vinculadas a un módulo funcionalEsta acción consiste en cancelar el forzado de todas las condiciones de activación delos sectores del módulo.

7.6 Carpeta de aplicación

PL7 Pro permite realizar la carpeta funcional de la aplicación que comprende:• la página de título,• el sumario• la configuración,• la arquitectura arborescente de los módulos funcionales (únicamente con referencia

a las secciones, sucesos y módulos Grafcet vinculados)• el programa,• las referencias cruzadas con referencias a los módulos funcionales de los usuarios

de las variables,• las variables,• el pie de página.

Page 159: Manual PL7

Los módulos funcionales 7

___________________________________________________________________________7/11

A

7.7 Importación y exportación del origen del módulo funcional

7.7-1 Exportar

La exportación de un módulo funcional realiza:• la exportación de las secciones, sucesos y módulos Grafcet que componen el

módulo,• la exportación de los submódulos funcionales que componen el módulo funcional.El nombre corto y el nombre de función se exportan y por lo tanto se restituyen en elmomento de la importación.La función Exportación de un módulo funcional es accesible en modo local y/o en modoconectado con el autómata en Stop.

ObservaciónLas tablas de animación no se procesan en el origen PL7: por lo tanto no son niexportadas ni importadas sino vinculadas a un módulo funcional.

7.7-2 Importar

La importación de un módulo funcional funciona como una creación con:• la importación de secciones, sucesos y módulos Grafcet que componen el módulo,• la importación de los submódulos funcionales que componen el módulo funcional.El nombre corto y el nombre de función se exportan y por lo tanto se restituyen en elmomento de la importación.Si una sección, un suceso, un módulo Grafcet, un submódulo funcional que componenel módulo funcional importado, ya existe con el mismo nombre, el software permiteintroducir uno nuevo.La importación de un módulo funcional permite la corrección de errores en el códigode las secciones, sucesos y módulos Grafcet asociados al módulo.La función es accesible en modo local y/o en modo conectado con el autómata en Stop.

Dos procedimientos de importación están disponibles:• la importación sin reasignación• la importación con reasignación.

La importación con reasignación permite modificar diferentes elementos:- Nombre de los módulos, Sección, Tarea, Grafcet y macroetapas Evti,- Nombre de los Símbolos (y comentarios asociados) y Variables,- Direcciones de los módulos de E/S,- DFB: campo comentario y nombre de destino de toda instancia,- SR y Macroetapas de destino.

Page 160: Manual PL7

7/12___________________________________________________________________________

A

Page 161: Manual PL7

___________________________________________________________________________B/1

Descripción detallada de las instrucciones Tabla de materiasy funciones Sección B

Capítulo Página

___________________________________________________________________________

B

1 Descripción de las instrucciones de base B1/1

1.1 Presentación de las instrucciones de base B1/11.1-1 Generalidades B1/1

1.2 Instrucciones booleanas B1/21.2-1 Presentación de las instrucciones booleanas B1/21.2-2 Descripción de las instrucciones B1/31.2-3 Instrucciones de carga B1/41.2-4 Instrucciones de asignación B1/51.2-5 Instrucciones Y lógica B1/61.2-6 Instrucciones O lógica B1/71.2-7 Instrucciones O exclusiva B1/8

1.3 Bloques de función predefinidos B1/91.3-1 Principio de programación de bloques de función

predefinidos B1/91.3-2 Bloque de función temporizador %TMi (Timer) B1/101.3-3 Bloque de función contaje/descontaje %Ci B1/14

1.4 Tratamientos numéricos para enteros B1/171.4-1 Generalidades B1/171.4-2 Instrucciones de comparación B1/191.4-3 Instrucciones de asignación B1/201.4-4 Instrucciones aritméticas con enteros B1/231.4-5 Instrucciones lógicas B1/251.4-6 Expresiones numéricas B1/27

1.5 Instrucciones de programa B1/281.5-1 Llamada a un subprograma B1/281.5-2 Regreso de subprograma B1/291.5-3 Salto de programa B1/301.5-4 Instrucciones de fin de programa B1/321.5-5 Parada de programa B1/331.5-6 Instrucciones de enmascaramiento/

desenmascaramiento de sucesos B1/341.5-7 Instrucción NOP B1/34

Page 162: Manual PL7

___________________________________________________________________________

B/2

Descripción detallada de las instrucciones Tabla de materiasy funciones Sección B

Capítulo Página

___________________________________________________________________________

B

2 Descripción de las instrucciones avanzadas B2/1

2.1 Presentación de las instrucciones avanzadas B2/12.1-1 Generalidades B2/1

2.2 Bloques de función predefinidos avanzados B2/22.2-1 Bloque de función monoestable %MNi B2/22.2-2 Bloque de función registro %Ri B2/52.2-3 Bloque de función programador cíclico (Drum) %DRi B2/92.2-4 Bloque de función temporizador (Timer) %Ti (serie 7) B2/13

2.3 Bloque de operación de comparación vertical B2/17

2.4 Instrucciones de desplazamiento B2/19

2.5 Instrucciones para flotantes B2/202.5-1 Generalidades B2/202.5-2 Instrucciones de comparación para flotantes B2/222.5-3 Instrucciones de asignación para flotantes B2/232.5-4 Instrucciones aritméticas para flotantes B2/242.5-5 Instrucciones logarítmicas y exponenciales B2/252.5-6 Instrucciones trigonométricas B2/262.5-7 Instrucciones de conversión B2/282.5-8 Redondeo de un valor flotante en formato ASCII B2/29

2.6 Instrucciones de conversión numérica B2/312.6-1 Instrucciones de conversión BCD <--> Binario B2/312.6-2 Instrucciones de conversión Entero <--> Flotante B2/332.6-3 Instrucciones de conversión Gray --> Entero B2/352.6-4 Instrucciones de conversión Palabra <--> Doble palabraB2/36

2.7 Instrucciones para tablas de palabras B2/372.7-1 Generalidades B2/372.7-2 Asignación de tablas de palabras B2/382.7-3 Instrucciones aritméticas para tablas B2/40

Page 163: Manual PL7

___________________________________________________________________________B/3

Descripción detallada de las instrucciones Tabla de materiasy funciones Sección B

Capítulo Página

___________________________________________________________________________

B

2.7-4 Instrucciones lógicas para tablas B2/412.7-5 Función de suma para tablas B2/422.7-6 Funciones de comparación de tablas B2/432.7-7 Funciones de búsqueda para tablas B2/452.7-8 Funciones de búsqueda de valores máx. y mín.

para tablas B2/472.7-9 Número de ocurrencias de un valor en una tabla B2/482.7-10 Funciones de desplazamiento circular para tablas B2/492.7-11 Funciones de ordenación para tablas B2/512.7-12 Función de cálculo de longitud de tablas B2/52

2.8 Instrucciones para cadenas de caracteres B2/532.8-1 Formato de una cadena o tabla de caracteres B2/532.8-2 Asignación para cadenas de caracteres B2/542.8-3 Comparación alfanumérica B2/552.8-4 Conversión Numérico <---> ASCII B2/562.8-5 Conversión Binario --->ASCII B2/562.8-6 Conversión ASCII ---> Binario B2/582.8-7 Conversión Flotante ---> ASCII B2/592.8-8 Conversión ASCII --> Flotante B2/602.8-9 Concatenación de dos cadenas B2/612.8-10 Eliminación de una subcadena de caracteres B2/622.8-11 Inserción una subcadena de caracteres B2/632.8-12 Reemplazo una subcadena de caracteres B2/652.8-13 Extracción de una subcadena de caracteres B2/672.8-14 Extracción de caracteres B2/692.8-15 Comparación de dos cadenas de caracteres B2/712.8-16 Búsqueda de una subcadena de caracteres B2/722.8-17 Longitud de una cadena de caracteres B2/73

2.9 Instrucciones de gestión de tiempo: fechas, horas, duraciones B2/742.9-1 Formato de los parámetros B2/742.9-2 Utilización de bits y palabras sistema - Generalidades B2/762.9-3 Función reloj-calendario B2/772.9-4 Lectura de la fecha sistema B2/792.9-5 Actualización de la fecha sistema B2/792.9-6 Lectura de la fecha y del código de parada B2/80

Page 164: Manual PL7

___________________________________________________________________________

B/4

Descripción detallada de las instrucciones Tabla de materiasy funciones Sección B

Capítulo Página

___________________________________________________________________________

B

2.9-7 Lectura del día de la semana B2/812.9-8 Agregar/quitar una duración en una fecha B2/822.9-9 Agregar/quitar una duración en una hora del día B2/832.9-10 Desviación entre dos fechas (sin hora) B2/852.9-11 Desviación entre dos fechas (con hora) B2/862.9-12 Desviación entre dos horas B2/872.9-13 Conversión de una fecha (sin hora) en cadena

de caracteres B2/882.9-14 Conversión de una fecha completa en cadena

de caracteres B2/892.9-15 Conversión de una duración en cadena de caracteres B2/902.9-16 Conversión de una hora del día en cadena de caracteresB2/912.9-17 Conversión de una duración en HHHH:MM:SS B2/93

2.10 Instrucciones para tablas de bits B2/942.10-1 Copia de una tabla de bits en una tabla de bits B2/942.10-2 Instrucciones lógicas para tablas de bits B2/952.10-3 Copia de una tabla de bits en una tabla de palabras B2/962.10-4 Copia de una tabla de palabras en una tabla de bits B2/98

2.11 Funciones "Orphée": desplazamientos, contador B2/1002.11-1 Desplazamientos en palabras con recuperación

de bits desplazados B2/1002.11-2 Contaje/descontaje con indicación de rebasamiento B2/1032.11-3 Desplazamientos circulares B2/105

2.12 Funciones de temporización B2/1072.12-1 Generalidades B2/1072.12-2 Función de temporización de conexión FTON B2/1072.12-3 Función de temporización de desconexión FTOF B2/1092.12-4 Función de temporización de impulsión FTP B2/1102.12-5 Función generador de señal rectangular FPULSOR B2/111

2.13 Funciones de archivado de datos B2/1132.13-1 Generalidades B2/1132.13-2 Inicialización del área de archivado B2/1142.13-3 Escritura de los datos en el área de archivado B2/1162.13-4 Lectura de los datos en el área de archivado B2/118

Page 165: Manual PL7

___________________________________________________________________________B/5

Descripción detallada de las instrucciones Tabla de materiasy funciones Sección B

Capítulo Página

___________________________________________________________________________

B

3 Bits y palabras del sistema B3/1

3.1 Bits del sistema B3/13.1-1 Lista de bits del sistema B3/13.1-2 Descripción detallada de bits del sistema B3/3

3.2 Palabras del sistema B3/93.2-1 Lista de palabras del sistema B3/93.2-2 Descripción detallada de las palabras del sistema B3/11

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

4.1 Diferencias entre PL7-2/3 y PL7-Micro/Junior B4/1

5 Lista de palabras reservadas B5/1

5.1 Palabras reservadas B5/1

6 Conformidad con la norma CEI 1131-1 B6/1

6.1 Conformidad con la norma IEC 1131-3 B6/16.1.1 Tablas de conformidad B6/1

7 Ayuda de memoria B7/1

8 Prestaciones B8/1

8.1 Generalidades B8/1

8.2 Prestaciones TSX 37 B8/38.2.1 Instrucciones booleanas B8/38.2.2 Bloques de función B8/4

Page 166: Manual PL7

___________________________________________________________________________

B/6

Descripción detallada de las instrucciones Tabla de materiasy funciones Sección B

Capítulo Página

___________________________________________________________________________

B

8.2.3 Aritmética entera y con coma flotante B8/68.2.4 Instrucciones para programas B8/88.2.5 Estructura de control B8/88.2.6 Conversiones numéricas B8/98.2.7 Cadena de bits B8/98.2.8 Tablas de palabras, dobles palabras y flotantes B8/118.2.9 Gestión del tiempo B8/148.2.10 Cadenas de caracteres B8/158.2.11 Funciones específicas y funciones Orphée B8/168.2.12 Entradas/salidas explícitas B8/17

8.3 Prestaciones TSX 57 B8/188.3.1 Instrucciones booleanas B8/198.3.2 Bloques de función B8/208.3.3 Aritmética entera y con coma flotante B8/228.3.4 Instrucciones para programa B8/248.3.5 Estructura de control B8/248.3.6 Conversiones numéricas B8/258.3.7 Cadena de bits B8/258.3.8 Tablas de palabras, dobles palabras y flotantes B8/278.3.9 Gestión del tiempo B8/308.3.10 Función Temporizador B8/308.3.11 Cadenas de caracteres B8/318.3.12 Extracción de palabras B8/318.3.13 Funciones específicas y función Orphée B8/328.3.14 Entradas/salidas explícitas B8/338.3.15 Bloque de función DFB B8/35

8.4 Tamaño de la aplicación B8/388.4.1 Descripción de las áreas de memoria B8/388.4.2 Tamaño de memoria de los objetos PL7 B8/398.4.3 Tamaño de memoria de los módulos B8/398.4.4 Tamaño de memoria de las funciones avanzadas B8/45

8.5 Anexo: método de cálculo del número de instrucciones B8/52

Page 167: Manual PL7

___________________________________________________________________________B/7

Descripción detallada de las instrucciones Tabla de materiasy funciones Sección B

Capítulo Página

___________________________________________________________________________

B

9 Servidor OLE Automation B9/1

9.1 Presentación B9/19.1-1 Advertencia B9/19.1-2 Introducción B9/29.1-3 Contexto de ejecución B9/39.1-4 Modos de funcionamiento B9/3

9.2 Instalación B9/49.2-1 Instalación B9/49.2-2 Inicio del servidor en modo local (modo COM) B9/49.2-3 Inicio del servidor en modo remoto (DCOM) B9/59.2-4 Instalación del servidor en modo remoto B9/6

9.3 Modos de ejecución del PL7 servidor B9/7

9.4 Puntos de entrada: función OLE B9/8

9.5 Descripción de las funciones OLE B9/109.5-1 OpenStx B9/109.5-2 CloseStx B9/109.5-3 ExportScyFile B9/119.5-4 ExportFefile B9/129.5-5 DisconnectPLC B9/129.5-6 ConnectPLC B9/139.5-7 SaveStx B9/149.5-8 DownloadToPLC B9/149.5-9 UploadFromPLC B9/159.5-10 GetSymbol B9/169.5-11 SetServerIHM B9/179.5-12 GetPL7State B9/189.5-13 GetSTXAppIdentity B9/189.5-14 GetPLCAppIdentity B9/199.5-15 SendCommandToPLC B9/20

Page 168: Manual PL7

___________________________________________________________________________

B/8

Descripción detallada de las instrucciones Tabla de materiasy funciones Sección B

Capítulo Página

___________________________________________________________________________

B

9.5-16 SetDriverAndAdresse B9/219.5-17 OpenTool B9/219.5-18 SetPosPL7Windows B9/229.5-19 ShowProgram B9/239.5-20 CloseProgram B9/239.5-21 ShowIOMódulo B9/249.5-22 CloseIOMódulo B9/259.5-23 ShowDFB B9/269.5-24 CloseDFB B9/269.5-25 GetMessageError B9/279.5-26 GetServerVersion B9/27

9.6 Mecanismo de acceso al PL7 Serveur OLE Automation B9/28

Page 169: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/1

B1.1 Presentación de las instrucciones de base

1.1-1 Generalidades

Las instrucciones descritas en este capítulo son conformes a las instrucciones de baseprincipales definidas en la norma IEC 1131.3.

El lenguaje utilizado no tiene importancia: estas instrucciones tienen siempre el mismoefecto. Sólo cambia su presentación en el programa.

Ejemplo de ecuación booleana:

en Lista de instrucciones: LD %I1.0ST %Q2.0

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(instrucción de asignación) del objeto bit %I1.0 (instrucción de carga).

Las instrucciones de base comprenden:

• las instrucciones booleanas (tratamientos en bits),

• los bloques de función predefinidos de automatismo temporizador y contador,

• las instrucciones numéricas para enteros (tratamientos en palabras y doblespalabras),

• las instrucciones de programa.

Las demás instrucciones se detallan en el capítulo 2 "Descripción de las instruccionesavanzadas".

%I1.0 %Q2.O

Capítulo 11 Descripción de las instrucciones de base

Page 170: Manual PL7

1/2___________________________________________________________________________

B1.2 Instrucciones booleanas

1.2-1 Presentación de las instrucciones booleanas

Las instrucciones booleanas actúan sobre todas las informaciones del tipo bit (bits deentradas/salidas, bits internos...).

• Elementos de prueba , ejemplo: contacto de cierreContacto establecido cuando el objeto bique lo controla está en el estado 1.

LD %I1.0 %I1.0

• Elementos de acción , ejemplo: bobina directa.El objeto bit asociado toma el valor lógico del resultado del elemento de prueba.

ST %Q2.0 %Q2.0 :=

• Ecuación booleana:El resultado booleano de los elementos de prueba se aplica al elemento de acción.

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

Flancos ascendente y descendenteLas instrucciones de prueba permiten detectar el flanco ascendente o descendenteen los bits de entradas y salidas de autómatas o en los bits internos.

Contacto de detección de flanco asc.: Contacto de detección de flanco desc.:

LDR %I1.0 RE %I1.0 LDF %I1.0 FE %I1.0

• Para todas las entradas (TON, contaje, ...): un flanco se detecta cuando el estadodel bit ha cambiado entre el ciclo n-1 y el ciclo n en curso; permanece detectadodurante el ciclo en curso (véase la sección A, capítulo 1.3-2).

Flanco ascendente: detección del pasoFlanco descendente: detección del pasode 0 a 1 de la entrada que lo controla. de 1 a 0 de la entrada que lo controla.

• Para las salidas o los bits internos: la detección de un flanco es independientedel ciclo de tarea; se detecta uno en el bit interno %Mi cuando su estado ha cambiadoentre 2 lecturas. El flanco permanece detectado mientras no se explore %Mi en elárea de acción.

• El usuario no debe efectuar un SET o RESET de un objeto cuyo flanco está probando(en lenguaje de contactos y Lista de instrucciones).

%I1.0%I1.0

%I1.0

N%I1.0

P

%I1.0 %I1.1 %Q2.0

%Q2.0

%I1.0

Result.booleano

tiempo

tiempo

1 ciclo de tarea 1 ciclo de tarea

tiempo

tiempo

Resultadobooleano

Page 171: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/3

B

%Q2.3

%I1.1

LD

1.2-2 Descripción de las instrucciones

Las instrucciones booleanas se describen del modo siguiente.

Instrucciones de cargaEstas instrucciones corresponden a:

• contactos de cierre: contacto cuando el objeto bit que lo controla está en el estado 1,

• ...

Lenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

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

Operandos autorizados Cronograma

Código Operando

LD %I,%Q,%M,%S,%BLK,%•:Xk, %Xi

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

%Q2.3

%I1.1

LD

%M0

LDN

%Q2.2

%M0

%I1.1 %Q2.3

%Q2.2

Cronograma dela instrucción LD

Cronograma

Estado de la entrada

Estado de lasalida

Los 4 cronogramas están agrupados.Lista de operandos0/1 valor inmediato 0 (false) o 1 (true)%I entrada autómata %Ix.i%Q salida autómata %Qx.i%M bit interno %Mi%S bit sistema %Si%BLK bit bloque función (ej.: %TMi.Q)

o de instancia DFB%•:Xk bit extr. de pal., ej.: %MWi:Xk%Xi bit de etapa, macroetapa (%XMi)

o etapa de macroatapa (%Xj.i)

La instrucción descrita se presenta en negrita.Cada ecuación se ilustra en todos loslenguajes.

Page 172: Manual PL7

1/4___________________________________________________________________________

B

%Q2.3

%I1.1

LD

%M0 %I1.2 %I1.3

LDN LDR LDF

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

NP

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 = estado0,

• contactos de flanco ascendente: detección del paso de 0 a 1 del objeto bit que loscontrola,

• contactos de flanco descendente: detección del paso de 1 a 0 del objeto bit que loscontrola.

Lenguaje de contactos Lenguaje Lista de instrucciones

LD %I1.1ST %Q2.3LDN %M0ST %Q2.2LDR %I1.2ST %Q2.4LDF %I1.3ST %Q2.5

Lenguaje Literal estructurado

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

Operandos autorizados Cronograma

Código Operando

L D %I,%Q,%M,%S,%BLK,%•:Xk, %Xi (1)

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

LDR %I,%Q,%M

LDF %I,%Q,%M

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

(2) Puesto a 1 durante1 ciclo

%M0

%I1.1 %Q2.3

%I1.2

%Q2.2

%Q2.4

%I1.3 %Q2.5

P

N

P

N

Page 173: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/5

B1.2-4 Instrucciones de asignación

Estas instrucciones corresponden a:

• bobinas directas: el objeto bit asociado toma el valor del resultado de la ecuación,

• bobinas inversas: el objeto bit asociado toma el valor de inverso del resultado dela ecuación,

• bobinas de conexión: el objeto bit asociado se pone a 1 cuando el resultado de laecuación = 1,

• bobinas de desconexión: el objeto bit asociado se pone a 0 cuando el resultado dela ecuación = 1.

Lenguaje de contactos Lenguaje Lista de instrucciones

LD %I1.1ST %Q2.3

STN %Q2.2

S %Q2.4

LD %I1.2R %Q2.4

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 Cronograma

Código Operando

ST %I,%Q,%M,%S,%•:Xk

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

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

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

(1) Unicamente en el tratamiento preliminar.%Q2.3

%I1.1

ST

%I1.1 %I1.1 %I1.2

STN S R

%Q2.2 %Q2.4

S R

%I1.1 %Q2.3

%Q2.2

%Q2.4

%I1.2 %Q2.4

S

R

S

R

Page 174: Manual PL7

1/6___________________________________________________________________________

B1.2-5 Instrucciones Y lógica

Estas instrucciones efectúan:

• una Y lógica entre el operando y el resultado booleano de la instrucción previa,

• una Y lógica entre el inverso del operando y el resultado booleano de instrucciónprevia,

• una Y lógica entre el flanco ascendente del operando y el resultado booleano deinstrucción previa,

• una Y lógica entre el flanco descendente del operando y el resultado booleano deinstrucción previa.

Lenguaje de contactos Lenguaje Lista de instrucciones

LD %I1.1AND %M1ST %Q2.3LD %M2ANDN %I1.2ST %Q2.2LD %I1.3ANDR %I1.4ST %Q2.4LD %M3ANDF %I1.5ST %Q2.5

Lenguaje Literal estructurado

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

Nota: los paréntesis son opcionales, pero facilitan la legibilidad del programa.

Operandos autorizados Cronograma

Código Operando

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

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

ANDR %I,%Q,%M

ANDF %I,%Q,%M

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

(2) Puesto a 1 durante 1 ciclo

N

P

%M2

%I1.1 %Q2.3

%I1.3

%Q2.2

%Q2.4

%M3 %Q2.5

%I1.2

%M1

%I1.4

%I1.5

P

N

%Q2.3

%I1.1

AND

%M2 %I1 .3 %M3

ANDN ANDR ANDF

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

%M1 %I1.2 %I1.4 %I1.5

P N

Page 175: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/7

B1.2-6 Instrucciones O lógicaEstas instrucciones efectúan:• una O lógica entre el operando y el resultado booleano de la instrucción previa,• una O lógica entre el inverso del operando y el resultado booleano de la instrucción

previa,• una O lógica entre el flanco ascendente del operando y el resultado booleano de

la instrucción previa,• una O lógica entre el flanco descendente del operando y el resultado booleano de

la instrucción previa.

Lenguaje de contactos Lenguaje Lista de instrucciones

LD %I1.1OR %M1ST %Q2.3

LD %M2ORN %I1.2ST %Q2.2

LD %I1.3ORR %I1.4ST %Q2.4

LD %M3ORF %I1.5ST %Q2.5

Lenguaje Literal estructurado

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

Nota: los paréntesis son opcionales, pero facilitan la legibilidad del programa.

Operandos autorizados Cronograma

Código Operando

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

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

ORR %I,%Q,%M

ORF %I,%Q,%M

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

%Q2.3

%I1.1

OR

%M2 %I1.3 %M3

ORN ORR ORF

%Q2.2 %Q2.4 %Q2.5

%M1 %I1.2 %I1.4 %I1.5

NP

P

N

%I1.1

%M1

%Q2.3

%M2

%I1.2

%Q2.2

%I1.3

%I1.4

%Q2.4

%M3

%I1.5

%Q2.5P

N

Page 176: Manual PL7

1/8___________________________________________________________________________

B

%Q2.3

%I1.1

XOR

%M2 %I1.3 %M3

XORN XORR XORF

%Q2.2 %Q2.4 %Q2.5

%M1 %I1.2 %I1.4 %I1.5

1.2-7 Instrucciones O exclusiva

Estas instrucciones efectúan:

• una O exclusiva entre el operando y el resultado booleano de la instrucción previa,

• una O exclusiva entre el inverso del operando y el resultado booleano de lainstrucción previa,

• una O exclusiva entre el flanco ascendente del operando y el resultado booleanode la instrucción previa,

• una O exclusiva entre el flanco descendente del operando y el resultado booleanode la instrucción previa.

NotaEn el lenguaje de contactos, no hay elementos gráficos específicos para la O exclusiva. Sinembargo, la O exclusiva puede ser programada utilizando una combinación de contactos deapertura y cierre (véase el ejemplo siguiente).

Lenguaje de contactos Lenguaje Lista de instrucciones

LD %I1.1XOR %M1ST %Q2.3

LD %M2XORN %I1.2ST %Q2.2

LD %I1.3XORR %I1.4ST %Q2.4

LD %M3XORF %I1.5ST %Q2.5

Operandos autorizados Cronograma

Código Operando

XOR %I,%Q,%M,%S,%BLK,%•:Xk, %Xi

XORN %I,%Q,%M,%S,%BLK,%•:Xk, %Xi

XORR %I,%Q,%M

XORF %I,%Q,%M

Lenguaje Literal estructurado

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

Nota: los paréntesis son opcionales, pero facilitan la legibilidad del programa.

%I1.1

%M1

%Q2.3

%M2

%I1.2

%Q2.2

%M 1

%I1.1

%I1.2

%M2

Page 177: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/9

B1.3 Bloques de función predefinidos

1.3-1 Principio de programación de bloques de función predefinidos

Los bloques de función implantan objetos bits y palabras específicas.

Los bloques de función se preprogramanen el autómata y ocupan pues un áreaparticular en la memoria de usuario.A fin de optimizar el espacio de memoriaocupado, es necesario definirpreviamente el tipo y el número de losbloques de función utilizados, dentro delos límites impuestos por el sistema(mediante los editores de configuración yde datos).

Existen 6 tipos de bloques de función:

Tipo de bloque Máx. TSX 37 Máx. TSX 57 Véase cap.

Temporizador (Timer) %TMi 64 (1) 255 (1) 1.3-2

Contaje/descontaje %Ci 32 255 1.3-3

Monoestable %MNi 8 255 2.2-1

Registro %Ri 4 255 2.2-2

Programador cíclico (Drum) %DRi 8 255 2.2-3

Temporizador (Timer série 7) %Ti 64 (1) 255 (1) 2.2-4

(1) el número total de temporizadores %TMi + %Ti debe ser inferior o igual a 64 en el TSX 37 einferior o igual a 255 en el TSX 57.

Cada bloque contiene:

• entradas (ej.: IN) que permitencontrolarlo,

• salidas (Ej.: Q) que indican su estado. Acada salida se asocia un bit de salida(ej.: %TM1.Q) que puede ser probadopor el programa de usuario. Además,cada salida puede controlar unao varias bobinas (ej.: %Q2.3 y SR2),

• parámetros que permiten adaptarlo a laaplicación (preselección, base detiempo...).

Los parámetros de los bloques de función (preselección, valor actual...) se visualizandentro del bloque. En el lenguaje Lista de instrucciones, las instrucciones programanlos bloques predefinidos (véase la sección A, capítulo 3.2-6).

Bloque contaje/descontaje

R

S

CU

CD F

D

E

%Ci

C.P : 9999

MODIF : Y

%Q2.3%I1.1IN Q

%TM1

SR2c

Page 178: Manual PL7

1/10___________________________________________________________________________

B1.3-2 Bloque de función temporizador %TMi (Timer)

El temporizador tiene 3 modos defuncionamiento:

• TON: permite administrar retardos a laconexión. El retardo es programable ypuede ser modificado o no desde elterminal.

• TOF: permite administrar retardos a ladesconexión. El retardo es programabley puede ser modificado o no desde elterminal.

• TP: permite elaborar un impulso de unaduración precisa. La duración esprogramable y puede ser modificada ono desde el terminal.

Características

Número de temporizador %TMi 0 a 63 para un TSX 37, 0 a 254 para un TSX 57

Modo TON • retardo a la conexión(predeterminado)TOF • retardo a la desconexiónTP • monoestable

Base de tiempo TB 1 min (valor predeterminado), 1 s, 100 ms, 10ms. Cuanto más pequeña la base de tiempo,tanto mayor será la precisión del temporizador.

Valor actual %TMi.V Palabra que aumenta de 0 a %TMi.P al transcurre el temporizador. Puede ser leída yprobada, pero no escrita por el programa (1).

Valor de preselección %TMi.P 0-%TMi.P-9999. Palabra que puede ser leída,probada y escrita por el programa. De formapredeterminada, se pone a 9999. La duracióno el retardo elaborado es igual a %TMi.P x TB.

Ajuste desde Y/N Y: posibilidad de modificar el valor de pre-el terminal selección %TMi.P en modo ajuste.(MODIF) N: sin acceso en modo ajuste.

Entrada (instrucción) IN En el flanco ascendente (modo TON o TP) o"Activación" descendente (modo TOF), activa el temporizador.

Salida "Temporizador" Q Bit asociado %TMi.Q. Su puesta a 1 dependede la función realizada TON, TOF o TP.

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

INMODE:TON

MODIF:Y

Q

%TMi

TB: 1mn

TM.P:9999

Bloque temporizador

Page 179: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/11

BTemporización con retardo en la conexión: modo TON

El temporizador se activa en un flancoascendente de la entrada IN: su valoractual %TMi.V toma el valor 0. Luego, elvalor actual aumenta hacia %TMi.P enuna unidad a cada impulso de la base detiempo TB. El bit de salida %TMi.Q pasa a1 cuando el valor actual alcanza %TMi.Py permanece a 1mientras la entrada estáen el estado 1.Cuando la entrada IN pasa al estado 0, eltemporizador se detiene aun cuandoestaba en curso de evolución: %TMi.Vtoma el valor 0.

Temporización con retardo en la desconexión: modo TOF

El valor actual %TMi.V toma el valor 0 enun flanco ascendente de la entrada IN(aun cuando el temporizador está en cursode evolución). El temporizador se activaen un flanco descendente de la entradaIN.Luego, el valor actual aumenta hacia%TMi.P en una unidad a cada impulso dela base de tiempo TB. El bit de salida%TMi.Q pasa a 1 cuando se detecta unflanco ascendente en la entrada IN y eltemporizador se pone a 0 cuando el valoractual alcanza %TMi.P.

Monoestable: modo TP

El temporizador se activa en un flancoascendente de la entrada IN: su valoractual %TMi.V toma el valor 0 (si eltemporizador no está en curso deevolución). Luego el valor actual aumentahacia %TMi.P en una unidad a cadaimpulso de la base de tiempo TB. El bit desalida %TMi.Q pasa a 1 cuando eltemporizador se activa y se pone a 0cuando el valor actual alcanza %TMi.P.Cuando la entrada IN y la salida %TM.iQestán a 0, TMi.V toma el valor 0.Este monoestable no puede reactivarse.

IN

Q

%TMi.V

%TMi.P

IN

Q

%TMi.V

%TMi.P

IN

Q

%TMi.V

%TMi.P

Page 180: Manual PL7

1/12___________________________________________________________________________

BProgramación y configuraciónLa programación de los bloques de función temporizador es idéntica en todos losmodos de utilización. La elección del funcionamiento TON, TOF o TP se efectúa en eleditor de variables.

• Configuración

Se introducen los parámetros 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.

• Programación

Lenguaje de contactos Lenguaje Lista de instrucciones

Lenguaje Literal estructurado

IF RE %I1.1 THENSTART %TM1 ;

ELSIF FE %I1.1 THENDOWN %TM1 ;

END_IF ;%Q2.3 := %TM1.Q ;

La instrucción START %TMi genera un flanco ascendente en la entrada IN del bloquetemporizador.La instrucción DOWN %TMi genera un flanco descendente en la entrada IN del bloquetemporizador.

LD %I1.1IN %TM1LD %TM1.QST %Q2.3TON

%Q2.3%I1.1IN Q

%TM1

Page 181: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/13

BCasos específicos

• Incidencia de un arranque en frío: (%S0=1) tiene como consecuencia la puesta a0 del valor actual y la puesta a 0 de la salida %TMi.Q. El valor de preselección sereinicializa al valor definido en la configuración.

• Incidencia de un rearranque en caliente: (%S1=1) no tiene incidencia en el valoractual del temporizador, ni en el valor de preselección. El valor actual no evolucionadurante el corte de corriente.

• Incidencia de un paso a STOP, una desactivación de tarea o una ejecución depunto de parada: no inmoviliza el valor actual.

• Incidencia de un salto de programa: el hecho de no explorar las instruccionesdonde se programa el bloque temporizador no inmoviliza el valor actual %TMi.V quesigue aumentando hacia %TMi.P. Asimismo, el bit %TMi.Q asociado a la salida Qdel bloque temporizador conserva su funcionamiento normal y, por consiguiente,puede ser probado por otra instrucción. En cambio, no se activa la salida cableadadirectamente a la salida del bloque, puesto que no la explora el autómata.

• Prueba del bit %TMi.Q: se aconseja probar el bit %TMi.Q una sola vez en elprograma.

• Incidencia de la modificación de la preselección %TMi.P: la modificación del valorde preselección, mediante una instrucción o en modo de ajuste, se acepta sólocuando se activa el temporizador por próxima vez; la modificación del valor depreselección en el editor de variables se acepta sólo después de un arranque enfrío (%S0=1).

Page 182: Manual PL7

1/14___________________________________________________________________________

B1.3-3 Bloque de función contaje/descontaje %Ci

El bloque de función contaje/descontajepermite contar o descontar sucesos. Es-tas dos operaciones pueden sersimultáneas.

Caracteristicas

Número de contador %Ci 0 a 31 para un TSX 37, 0 a 254 para un TSX 57

Valor actual %Ci.V Palabra aumentada o disminuida en función de lasentradas CU y CD.Puede ser leída y probada, pero no escrita porel programa (1).

Valor de preselección %Ci.P 0-%Ci.P-9999. Palabra que puede ser leída,probada y escrita (valor predeterminado: 9999).

Ajuste desde Y/N S: posibilidad de modificar el valor de pre-el terminal selección en modo de ajuste.(MODIF) N: sin acceso en modo de ajuste.

Entrada (instrucción) R En el estado 1 : %Ci.V = 0.puesta a cero

Entrada (instrucción) S En el estado1: %Ci.V = %Ci.P.preselección

Entrada (instrucción) CU Aumenta %Ci.V en el flanco ascendente.contaje

Entrada (instrucción) CD Disminuye %Ci.V en el flanco ascendente.descontaje

Salida rebasamiento E (Empty) 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 contadorsigue descontado).(2)

Salida preselección D (Done) El bit asociado %Ci.D=1, cuando %Ci.V=%Ci.P.alcanzada

Salida rebasamiento F (Full) El bit asociado %Ci.F =1 cuando %Ci.V pasa de9999 a 0 (se pone a 1 cuando %Ci.V alcanza 0;se pone a 0 si el contador sigue contando).

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

R

S

CU

CD F

D

E

%Ci

C.P : 9999

MODIF : Y

Bloque contaje/descontaje

Page 183: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/15

BFuncionamiento

• Contaje: al aparecer un flanco ascendente en la entrada de contaje CU, el valoractual se aumenta en una unidad. Cuando este valor alcanza el de preselección%Ci.P, el bit de salida %Ci.D "preselección alcanzada" asociado a la salida D pasaal 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, elvalor actual %Ci.V se disminuye en una unidad. El bit de salida %Ci.E (rebasamientode descontaje) pasa al estado 1 cuando %Ci.V pasa de 0 a 9999; se pone a 0 si elcontador sigue descontando.

• Contaje/Descontaje: para utilizar simultáneamente las funciones contaje ydescontaje, es necesario controlar las dos entradas correspondientes (CU y CD),que se exploran sucesivamente. Si ambas entradas están simultáneamente en elestado 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 están en el estado 0. La entrada "puesta a cero"es prioritaria.

• Preselección: si la entrada S "preselección" 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.

Observación

Al poner a cero (entrada R o instrucción R):

• en el lenguaje de contactos, los historiales de las entradas CU y CD se actualizancon 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 anteriora la llamada.

Casos específicos

• Incidencia de un arranque en frío: (%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.- inicialización del valor de preselección por el definido en la configuración.

• Incidencia de un rearranque en caliente (%S1=1), un paso a STOP, unadesactivación de tarea o una ejecución de punto de parada: no tiene incidenciaen el valor actual del contador (%Ci.V).

• Incidencia de la modificación de la preselección %Ci.P: la modificación del valorde preselección, mediante una instrucción o en modo de ajuste, se acepta durantela gestión del bloque por la aplicación (activación de una de las entradas).

Page 184: Manual PL7

1/16___________________________________________________________________________

BConfiguración y programación

Contaje de un número de piezas = 5000. Cada impulso en la entrada %I1.2 (cuando elbit interno %M0 = 1) incrementa el contador %C8 hasta el valor de preselección finaldel contador %C8 (bit %C8.D=1). La entrada %I1.1 pone el contador a cero.

• ConfiguraciónSe deben introducir los parámetros siguientes mediante el editor de variables:- %Ci.P, definido como 5000 en este ejemplo,- MODIF : Y.

• ProgramaciónLenguaje de contactos Lenguaje Lista de instrucciones

LD %I1.1R %C8LD %I1.2AND %M0CU %C8LD %C8.DST %Q2.0

Lenguaje Literal estructurado

IF %I1.1 THENRESET %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 bloquesde función contaje/descontaje:• RESET %Ci : puesta a cero del valor actual,• PRESET %Ci : carga del valor de preselección 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 sepone a cero al utilizar las instrucciones UP y DOWN. Es pues el usuario que debeefectuar la gestión de los flancos ascendentes para estas dos instrucciones.

%I1.2

%C8.D

%I1.1

%Q2.0

%M0

R

S

CU

CD F

D

E

%C8

C.P : 5000

MODIF : Y

Page 185: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/17

B1.4 Tratamientos numéricos para enteros

1.4-1 Generalidades

Las instrucciones numéricas descritas en este capítulo se aplican a objetos de tipo:• tabla de bits,• palabra,• doble palabra.

Las instrucciones para los otros tipos de objetos se describen en el capítulo "Descripciónde las instrucciones y funciones avanzadas".

En el lenguaje de contactosLas instrucciones numéricas se introducenen los bloques:

• ubicados en el área de prueba (bloquesde comparación),

• ubicados en el área de acción (bloquesde operación).

Estos bloques pueden contener:

• una expresión simple,ej.: OP3:=OP1+OP2,

• una expresión compleja,ej.: OP5:=(OP1+OP2)*OP3-OP4.

En el lenguaje Lista de instruccionesLas instrucciones se colocan entrecorchetes.Se ejecutan, si el resultado booleano de lainstrucción de prueba que precede a lainstrucción numérica es 1.

En el lenguaje Literal estructuradoLas instrucciones numéricas se introducendirectamente.La instrucción condicional IF permitecondicionar estas instrucciones numéricascon una expresión booleana.

%MW50>10

%MW10:=%KW0+10

INC%MW100N

%I1.2

%I1.0

%Q2.2

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

%Q2.2 := %MW50 > 10 ;IF %I1.0 THEN

%MW10 := %KW0 + 10 ;END_IF ;IF FE %I1.2 THEN

INC %MW100 ;END_IF ;

Page 186: Manual PL7

1/18___________________________________________________________________________

BLista de operandosLista de tablas de bits

Abreviaciones Direccionamiento Tipo de palabra Acceso

%M:L %Mi:L tabla de bits internos R/W

%I:L %Ixy.i:L tabla de bits de entrada R/W

%Q:L %Qxy.i:L tabla de bits de salida R/W

%Xi:L %Xi:L o %Xj.i:L tabla de bits de etapas R

Lista de palabras de formato simple

Abreviaciones Direccionamiento Tipo de palabra Acceso Forma index.

Val. inm. - valores inmediatos R -

%MW %MWi palabra interna R/W %MWi[índice]

%KW %KWi constante interna R %KWi[índice]

%SW %SWi palabra sistema R/W (1) -

%IW %IWxy.i(.r) palabra de entrada R -

%QW %QWxy.i(.r) palabra de salida R/W -

%NW %NW{j}k palabra común R/W -

%BLK ej : %TMi.P pal. extr. de bloque funciónestándar o de DFB R/W (2) -

%Xi.T %Xi.T o %Xj.i.T tiempo de actividad etapa R %Xi.T [índice]

(1) escritura según i. (2) escritura según el tipo de palabra, por ejemplo: los valores de preselección(%Ci.P pueden ser escritos, mientras los valores actuales %Ci.V sólo pueden ser leídos).

Lista de dobles palabras

Abreviaciones Direccionamiento Tipo de doble palabra Acceso Forma index.

Val. inm. - valores inmediatos R -

%MD %MDi doble palabra interna R/W %MD[índice]

%KD %KDi doble constante interna R %KDi[índice]

%SD %SDi doble palabra sistema R/W (1) -

%ID %IDxy.i(.r) doble palabra de entrada R -

%QD %QDxy.i(.r) doble palabra de salida R/W -

(1) sólo la doble palabra %SD18

ObservacionesExisten otros tipos de palabras y dobles palabras, tales como %MWxy.i %KWxy.i y %MDxy.i%KDxy.i asociadas a funciones específicas. Estas dobles palabras se comportanrespectivamente como las palabras y dobles palabras %MWi %KWi y %MDi %KDi.Conversión implícita palabras <--> dobles palabrasEl programa PL7 autoriza la combinación de operaciones con palabras y dobles palabras.La conversión se efectúa implícitamente. Una operación que implica una doble palabra ovarios valores inmediatos se ejecuta en doble formato interna y automáticamente.

Page 187: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/19

B1.4-2 Instrucciones de comparación

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 comparación solicitada es verdadera.

Estructura

Lenguaje de contactos Lenguaje Lista de instrucciones

Los bloques de comparación seprograman en el área de prueba.

Lenguaje Literal estructurado

%Q2.3 := %MW10 > 100 ;%Q2.2 := %M0 AND (%MW20 < %KW35) ;%Q2.4 := %I1.2 OR (%MW30 >= %MW40) ;

Nota: los paréntesis son opcionales pero facilitan la legibilidad del programa.

SintaxisOperadores: >,>=,<,<=,=,<> Op1 Operador Op2

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

La comparación se realiza dentro decorchetes después de las instruccionesLD, AND y OR.

%M0

%I1.2

%MW10>100

%MW20<%KW35

%MW30>=%MW40

%Q2.3

%Q2.2

%Q2.4

Page 188: Manual PL7

1/20___________________________________________________________________________

BOperandos

Tipo Operandos 1 y 2 (Op1 y 2)

Palabras indexables %MW,%KW

Palabras no indexables Val.inm.,%IW,%QW,%SW,%NW,%BLK, %Xi.TExpr. numérica

Dobles palabras indexables %MD,%KD

Dobles palabras no indexables Val.inm.,%ID,%QD,%SD,Expr. numérica

Observaciones

• En el lenguaje de contactos, también es posible efectuar la comparación con elbloque de comparación vertical (véase la sección B, capítulo 2.3),

• En el lenguaje Lista de instrucciones, las instrucciones de comparación puedenutilizarse entre paréntesis.

1.4-3 Instrucciones de asignación

Efectúan la carga de un operando Op2 en un operando Op1.

Sintaxis: Op1:=Op2 <=> Op2->Op1

Las operaciones de asignación pueden realizarse:• en tablas de bits,• en palabras o dobles palabras .

Es posible encadenar varias instrucciones de asignación en un mismo bloque:Op1:=Op2:=Op3:=Op4:=...

Asignación de tablas de bits (véase el objeto tabla de bits, cap. 1.2-6, sección 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

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD TRUE[%Q2.0:8:= %M10:8] ej 1

LD %I3.2[%MW100:= %I1.0:16 ] ej 2

LDR %I3.3[%M100:16:=%KW0] ej 3

%I3.2

%I3.3

%Q2.0:8:=%M10:8

%MW100:=%I1.0:16

%M100:16:=%KW0P

Page 189: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/21

BLenguaje Literal estructurado

%Q2.0:8 := %M10:8 ; ex 1IF %I3.2 THEN

%MW100 := %I1.0:16 ; ex 2END_IF ;IF RE %I3.3 THEN

%M100:16 := %KW0 ; ex 3END_IF ;

SintaxisOperador:= Op1:=Op2

Operandos

Tipo Operando 1 (Op1) Operando 2 (Op2)

Tabla de bits %M:L,%Q:L,%I:L %M:L,%Q:L,%I:L, %Xi:L

Palabras indexables %MW %MW,%KW

Palabras no indexables %QW,%SW,%NW Val.inm.,%IW,%QW,%SW%BLK %NW,%BLK, %Xi.T, Expr. num.

Dobles palabras indexables %MD %MD,%KD

Dobles palabras no indexables %QD,%SD, Val.inm.,%ID,%QD,%SDExpr. numérica

Reglas de utilización

• No es forzosamente idéntica la longitud de las tablas de bits origen y destino. Cuandola tabla origen es más larga que la destino, sólo se transfieren los bits menossignificativos. En el caso contrario, la tabla de destino se completa con ceros.

• Cuando se trata de una asignación tabla de bits -> palabra (o doble palabra ), los bitsde 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 palabrano implicados en la transferencia (longitud<16 o 32) se ponen a 0.

• Cuando se trata de una asignación palabra -> tabla de bits, los bits de la palabra setransfieren desde la derecha (el bit 0 de la palabra en el primer bit de la tabla).

Page 190: Manual PL7

1/22___________________________________________________________________________

BAsignación de palabrasSe pueden realizar en las palabras las operaciones de asignación 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

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD TRUE[%SW112 := %MW100] ex 1LD %I3.2[%MD0:= %KD0[%MW20] ] ex 2

Lenguaje Literal estructurado

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

END_IF ;

SintaxisOperador := Op1:=Op2

Operandos

Tipo Operando 1 (Op1) Operando 2 (Op2)

Palabras indexables %MW %MW,%KW

Palabras no indexables %QW,%SW,%NW, Val.inm.,%IW,%QW,%SW%BLK %NW,%BLK, %Xi.T, Expr. num.

Dobles palabras indexables %MD %MD,%KD

Dobles palabras no indexables %QD,%SD, Val.inm.,%ID,%QD,%SDExpr. numérica

Observación

Las conversiones palabra <--> doble palabra se efectúan implícitamente durantela asignación doble palabra --> palabra. Si la palabra no puede contener el valor dela doble palabra , el bit %S18 se pone a 1.

Se pueden realizar asignaciones múltiples.Ejemplo: %MW0 := %MW2 := %MW4

Atención, en el ejemplo %MD14 := %MW10 := %MD12, el resultado no esnecesariamente %MD14 := %MD12, ya que en la asignación a %MW10, se pierdenbits más significativos de la doble palabra por causa de la conversión doble palabra- simple palabra.

%I3.2

%I3.3

%SW112:=%MW100

%MD0:=%KD0[%MW20]

%MW10:=100P

Page 191: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/23

B

1.4-4 Instrucciones aritméticas con enteros

Estas instrucciones permiten realizar una operación aritmética entre dos operandoso en un operando.

+ : suma de dos operandos, SQRT : raíz cuadrada de un operando,- : resta de dos operandos, INC : aumento de un operando,* : multiplicación de dos operandos, DEC : %Tmi disminución de un

operando,/ : división de dos operandos, ABS : valor absoluto de un operando.REM : resto de la división de 2 operandos.

EstructuraLenguaje de contactos 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 ;

SintaxisOperadores

• +,-,*,/,REM Op1:=Op2 Operador Op3

• SQRT, ABS Op1:= Operador (Op2)

• INC, DEC Operador Op1

%I3.2

%I3.3

%MW0:=%MW10+100

%MW0:=SQRT(%MW10)

INC %MW100

%M0

P

Page 192: Manual PL7

1/24___________________________________________________________________________

BOperandos

Tipo Operando 1 (Op1) Operandos 2 y 3 (Op2 y 3)

Palabras indexables %MW %MW,%KW

Palabras no indexables %QW,%SW,%NW, Val.inm.,%IW,%QW,%SW%BLK %NW,%BLK,%Xi.T,Expr. num.

Dobles palabras indexables %MD %MD,%KD

Dobles palabras no indexables %QD,%SD, Val.inm.,%ID,%QD,%SDExpr. numérica

NotaNo es posible utilizar las operaciones INC y DEC en expresiones numéricas.

Reglas de utilización

• Suma: rebasamiento de capacidad durante la operación

Si el resultado excede los límites:- -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 gestióndel bit %S18 se efectúa en el programa de usuario.

Ejemplo:Lenguaje de contactos 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 expresarseen una palabra de 16 bits. El bit %S18 se pone a 1 y el resultado obtenido (-20442)es erróneo. En este ejemplo, cuando el resultado es superior a 32767, su valor sefija a 32767.

%S18

%S18

%MW0:=%MW1+%MW2

%MW10:=%MW0

%MW10:=32767

%M0

%S18R

Page 193: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/25

B• Multiplicación:

Rebasamiento de capacidad durante la operación.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.

• División/resto de la división:División por 0.Si el divisor es igual a 0, la división es imposible y el bit sistema %S18 se pone a 1.El resultado es pues erróneo.Rebasamiento de capacidad durante la operación.

• Extracción de la raíz cuadrada:La extracción de la raíz cuadrada se efectúa sólo en valores positivos. El resultadoes pues siempre positivo. Si el operando de la raíz cuadrada es negativo, el bitsistema %S18 se pone a 1 y el resultado es erróneo.

Nota• Cuando el resultado de una operación no es un entero (caso de una división o de una raíz

cuadrada), el resultado se trunca (se redondea al próximo entero inferior).• El signo del resto de la división (REM) es el del numerador.• El programa de usuario se encarga de la gestión del bit sistema %S18. El autómata lo pone a

1; el programa debe ponerlo a cero para que pueda ser reutilizado (véase el ejemplo en la páginaprevia).

1.4-5 Instrucciones lógicas

Las instrucciones asociadas permiten realizar una operación lógica entre dosoperandos o en un operando.

AND : Y (bit a bit) entre dos operandos,OR : O lógica (bit a bit) entre dos operandos,XOR : O exclusiva (bit a bit) entre dos operandos,NOT : complemento lógico (bit a bit) de un operando.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

LD TRUE[%MW0 := %KW5 OR %MW10]

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

%MW0:=%MW10 AND 16#FF00

%MW0:=%KW5 OR %MW10

%MW102:=NOT %MW100

%M0

Page 194: Manual PL7

1/26___________________________________________________________________________

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

SintaxisOperadores

• AND,OR,XOR, Op1:=Op2 Operador Op3

• NOT, Op1:=NOT Op2

Operandos

Tipo Operando 1 (Op1) Operandos 2 y 3 (Op2 y 3)

Palabras indexables %MW %MW,%KW

Palabras no indexables %QW,%SW,%NW, Val.inm.,%IW,%QW,%SW%BLK %NW,%BLK,%Xi.T,Expr. num.

Dobles palabras indexables %MD %MD,%KD

Dobles palabras no indexables %QD,%SD Val.inm.,%ID,%QD,%SDExpr. numérica

Page 195: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/27

B1.4-6 Expresiones numéricas

La expresión numérica se compone de varios operandos numéricos y de operadoresaritméticos y lógicos descritos previamente.

Ejemplo: %MW25 * 3 - SQRT(%MW10) + %KW8* (%MW15 + %MW18) AND 16#FF

No se limita el número de operadores y operandos de una expresión aritmética.

Expresión numérica para objetos enterosLos operandos de una misma expresión numérica pueden ser sin distinción de simpleo doble longitud:Ejemplo: %MW6 * %MW15 + SQRT(%DW6) / (%MW149[%MW8]) + %KD29)AND 16#FF

Un operando o una operación 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 expresión aritmética. Esposible la indexación de ciertas palabras.

Prioridad de ejecución de las instruccionesEn la expresión numérica, se respeta la prioridad de las instrucciones. La ejecuciónse efectúa en esta orden:

1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 Instrucción * + <,> = AND XOR OR con un / - <=,>= <> operando REM

En el ejemplo siguiente, la ejecución se realiza en el orden de la numeración:SQRT (%MW3) + %MW5 * 7 AND %MW8 OR %MW5 XOR %MW10

1 23

4 5

ParéntesisLos paréntesis permiten modificar el orden de evolución de las prioridades. Seaconseja su uso para estructurar las expresiones numéricas.

((%MW5 AND %MW6) + %MW7) * %MW8

6

21

3

Page 196: Manual PL7

1/28___________________________________________________________________________

B

SR 10 SR 12

Call SR 12

Call SR 10

Call SR 10

%M8 SR10

C

1.5 Instrucciones de programa

1.5-1 Llamada a un subprograma

La instrucción de llamada a un subprograma permite llamar a un módulo de subprogramasituado en la misma tarea.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

Lenguaje Literal estructurado

IF %M8 THENSR10 ;

END_IF ;

SRi representa el módulo de subprograma llamado: i (variable de 0 a 253).

Reglas• Para efectuar una llamada a un subprograma, es necesario crear previamente el

módulo de subprograma.• Se regresa del subprograma con la acción que viene inmediatamente después de

la instrucción de llamada al subprograma.• Un subprograma puede llamar a otro subprograma; el número de llamadas en

cascada se limita a 8.• Los subprogramas se asignan a una tarea; sólo pueden llamarse desde una misma

tarea.

Principio

LD %M8SR10

Módulo de subprograma Módulo de subprograma

Page 197: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/29

B1.5-2 Regreso de subprograma

La instrucción de regreso de subprograma se reserva para los módulos de subprograma.Permite regresar hacia el módulo que llama, si el resultado booleano de la instrucciónde prueba previa es 1.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD %M8RETC

Lenguaje Literal estructurado

IF %M8 THENRETURN ;

END_IF ;

Regla de utilizaciónLa instrucción de regreso del subprograma se realiza implícitamente al final de cadasubprograma, pero puede ser utilizada para regresar al módulo que llama antes delfin de subprograma.

EjemploLenguaje de contactos Lenguaje Lista de instrucciones

LD [%MW5>3]RETCLD %M8[%MD26:=%MW4*%KD6]

Lenguaje Literal estructurado

IF (%M5 > 3) THENRETURN ;

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 instrucción deprueba previa es 0.RET: regreso incondicional.

%M8

<RETURN>

%MW5>3

%MD26:=%MW4*%KD6%M8

<RETURN>

Page 198: Manual PL7

1/30___________________________________________________________________________

B1.5-3 Salto de programaLas instrucciones de salto permiten desviar a una línea de programación marcada deuna etiqueta %Li.JMP: salto incondicional.JMPC: salto si el resultado booleano de la instrucción de prueba previa es 1.JMPCN: salto si el resultado booleano de la instrucción de prueba previa es 0.%Li representa la etiqueta de la línea en la que se efectúa la desviación (i = unavariable de 1 a 999 con un máximo de 256 etiquetas).

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD %M8JMPC %L10LD %I1.0ST %Q2.5..............%L10 :LD %M20ST %M5LD %I1.0AND %I1.2ST %Q2.1

Lenguaje Literal estructurado

IF %M8 THENJUMP %L10 ;

END_IF ;%Q2.5 := %I1.0 ;

%L10 :%M5 := %M20 ;%Q2.1 := %I1.0 AND %I1.2 ;

Salto a laetiqueta %L10,si %M8 = 1.

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

%I1.0

%L10

%Q2.5

>>

%M8

%I1.0

%M5

%Q2.1

%M20%L10

%I1.2

Page 199: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/31

BLenguaje de contactos Lenguaje Lista de instrucciones

LD %M2JMPCN %L20LDN %I2.0ST %Q3.5..............%L20 :LD %M30ST %M6

Lenguaje Literal estructurado

IF NOT %M2 THENJUMP %L20 ;

END_IF ;%Q3.5 := NOT %I2.0 ;

%L20 :%M6 := %M30 ;

Lenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

JUMP %L40 ;

%L20 :%Q3.5 := %I2.1 ;

%L40 :%M5 := %M20 ;

Salto a laetiqueta %L20,si %M2 = 0.

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

S a l t oincondicional ala etiqueta%L40.

Salto incondicionala la etiqueta %L40,

%I2.0

%L20

%Q3.5

>>

%M2

%M6%M30%L20

%M5%M20%L40

%L40

>>

%I2.1 %Q3.5%L20

Page 200: Manual PL7

1/32___________________________________________________________________________

BReglas• Un salto de programa se efectúa dentro de una misma entidad de programación

(módulo principal de una tarea maestra MAIN, subprograma %SRi, ...).• Un salto de programa se efectúa hacia una línea de programación situada arriba o

abajo.Si se trata de un salto hacia arriba, el tiempo de ejecución del programa se extiendey puede tener como consecuencia el rebasamiento del período de la tarea queincluye el salto.

1.5-4 Instrucciones de fin de programa

Las instrucciones END, ENDC y ENDCN permiten definir el fin de ejecución del ciclode programa.

END: fin de programa incondicional.ENDC: fin si el resultado booleano de la instrucción de prueba previa es 1.ENDCN: fin si el resultado booleano de la instrucción de prueba previa es 0.

De forma predeterminada (modo normal), cuando se activa el fin de programa, seactualizan las salidas y se pasa al ciclo siguiente.Si la exploración es periódica, se espera el fin de período, se actualizan las salidasy se pasa al ciclo siguiente.

NotaEstas instrucciones pueden utilizarse únicamente en el lenguaje Lista de instrucciones en la tareamaestra.

EjemploLenguaje Lista de instrucciones

LD %M1ST %Q2.1LD %M2ST %Q2.2.....................END

LD %M1ST %Q2.1LD %M2ST %Q2.2.....................LD %I1.2ENDCLD %M2ST %Q2.2....................END

Si %I1.2 =1, fin deexploración de programa.Si %I1.2 =0, sigueexplorando el programahasta la nueva instrucciónEND.

Page 201: Manual PL7

Descripción de las instrucciones de base 1

___________________________________________________________________________1/33

B1.5-5 Parada de programa

La instrucción HALT en un programa de aplicación permite detener la ejecución delprograma (parada de todas las tareas), lo que tiene como efecto la inmovilización delos objetos variables del programa.

Para que se ejecute de nuevo el programa parado, es necesario inicializarlo (medianteel comando INIT de PL7). No se ejecutarán las instrucciones que vienen después dela instrucción HALT.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

Lenguaje Literal estructurado

IF %M10 THENHALT ;

END_IF ;

LD %M10HALT

%M10

<HALT>

Page 202: Manual PL7

1/34___________________________________________________________________________

B1.5-6 Instrucciones de enmascaramiento/desenmascaramiento de sucesos

Estas instrucciones permiten enmascarar o desenmascarar todos los sucesos queaseguran la activación de las tareas de suceso.

MASKEVT: enmascaramiento global de sucesos. El autómata almacena los sucesos.En cambio, las tareas de suceso asociadas permanecen inactivas durante la validezde la operación de enmascaramiento (hasta la próxima instrucción UNMASKEVT).

UNMASKEVT: desenmascaramiento global de sucesos. Se tratan los sucesosalmacenados durante el período de enmascaramiento. El mecanismo de tratamientode sucesos permanece operacional hasta la próxima instrucción MASKEVT.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD %M0[MASKEVT()]

LD %M8[UNMASKEVT()]

MASKEVT ( )

UNMASKEVT ( ) %M8

%M0

Lenguaje Literal estructurado

IF %M0 THENMASKEVT ( ) ;

END_IF ;IF %M8 THEN

UNMASKEVT ( ) ;END_IF ;

1.5-7 Instrucción NOP

La instrucción NOP no efectúa ninguna acción. Permite "reservar" líneas en unprograma y así escribir instrucciones sin modificar los números de línea.

Page 203: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/1

B2.1 Presentación de las instrucciones avanzadas

2.1-1 Generalidades

Las instrucciones descritas en este capítulo satisfacen las necesidades de programaciónavanzada.

Tienen los mismos efectos en todos los lenguajes. Sólo 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 debase con instrucciones específicas de programación.

• Operaciones en cadenas de caracteres, tablas de palabras, etc...

• Funciones específicas: Comunicación, Regulación, Diálogo de operador, etc...

Comprenden las familias siguientes:

• cadenas de caracteres,

• tablas de enteros,

• gestión de fechas, horas, duraciones,

• conversiones,

• tablas de bits,

• funciones "Orphée",

• Comunicación,• Regulación, ==> véase la función respectiva• Diálogo de operador,• Control de movimiento

Observaciones sobre la programación

Las instrucciones de tipo Función implican una ocupación de memoria de aplicación adicional (pero sólo cuando se utilizan realmente en el programa). El programador debe tener en cuenta el espacio de memoria de cada función independientemente del número de veces que se utilizan y en conformidad con el tamaño máximo de memoria del autómata utilizado.

Capítulo 22 Descripción de las instrucciones avanzadas

Page 204: Manual PL7

2/2___________________________________________________________________________

B2.2 Bloques de función predefinidos avanzados

2.2-1 Bloque de función monoestable %MNi

El bloque de función monoestable permiteelaborar un impulso de duración precisa.

Esta duración es programable y puedeser modificada o no desde el terminal.

Características

Número %MNi 0 a 7 para un TSX 37, 0 a 254 para un TSX 57

Base de tiempo TB 1min, 1s, 100ms, 10ms (valor predet.: 1min).

Valor actual %MNi.V Palabra que disminuye de %MNi.P hacia 0 en eltranscurso del temporizador. Puede ser leída yprobada, pero no escrita.

Valor de preselección %MNi.P 0 < %MNi.P < 9999. Palabra que puede ser leída,probada y escrita. La duración del impulso(PRESET) es igual a %MNi.P x TB.

Modificación MODIF Y/N Y: posibilidad de modificar el valor de preselecciónen modo de ajuste.N: sin acceso en modo de ajuste.

Entrada "Inicio" S (Start) En el flanco ascendente %MNi.V = %MNi.P, luego(o instrucción) %MNi.V disminuye hacia 0.

Salida "Monoestable" R (Running) El bit asociado %MNi.R está en el estado 1 si%MNi.V > 0 (transcurso monoestable)%MNi.R = 0 si %MNi.V = 0.

Funcionamiento

Cuando aparece un estado 1 (flanco ascendente) en la entrada S del monoestable, elvalor actual %MNi.V toma el valor de preselección %MNi.P y disminuye hacia 0 en unaunidad a cada impulso de la base de tiempo TB. El bit de salida %MNi.R (Running)asociado a la salida R se pone a 1 cuando el valor actual %MNi.V es distinto de 0.Cuando el valor actual %MNi.V = 0, el bit de salida %MNi.R se pone a 0.

Entrada "inicio" S:

Valor actual %MNi.V:

Salida "en curso" R:

Bloque monoestable

S

MODIF:Y

R

%MNi

TB: 1mn

MN.P:9999

PRESET PRESET PRESET

S

R

%MNi.P%MNi.V

Page 205: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/3

BProgramación y configuración

• Ejemplo de utilización: intermitente conperíodos cíclicos variables, el valor depreselección del monoestable define laduración del impulso.

• ConfiguraciónLos parámetros 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

• ProgramaciónLenguaje de contactos Lenguaje Lista de instrucciones

LDN %MN1.RS %MN0LD %MN0.RST %Q3.0LDN %MN0.RS %MN1

Lenguaje Literal estructurado

%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 ponea 0 durante 2 s (%MN1.P).

En el Literal estructurado, la instrucción START %Mni permite activar la ejecución delbloque monoestable. Esta instrucción fuerza un flanco ascendente en la entrada S delbloque, lo que tiene como consecuencia la reinicialización del bloque de función. Porconsiguiente, el uso de esta instrucción debe ser impulsivo.

%MN0

S

%Q3.0

R

%MN1.R

%MN1

S R

%MN0.R

5s 5s2s 2s

%Q3.0

Page 206: Manual PL7

2/4___________________________________________________________________________

BObservación

La función monoestable puede también ser realizada por el bloque de función%TMi en modo TP (véase la sección B, capítulo 1.3-2).

Casos específicos

• Incidencia de un arranque en frío: (%S0 = 1) tiene como consecuencia la carga delvalor de preselección %MNi.P en el valor actual %MNi.V. Puesto que se pierde elvalor de preselección eventualmente modificado por el terminal, la salida %MNi.Rse pone a 0.

• Incidencia de un rearranque en caliente: (%S1) no tiene incidencia en el valoractual del monoestable (%MNi.V).

• Incidencia de un paso en STOP, una desactivación de tarea y un punto de parada:el paso en STOP del autómata no inmoviliza el valor actual. Ocurre lo mismo, cuandose 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 seprograma el bloque monoestable no inmoviliza el valor actual %MNi.V que siguedisminuyendo hacia 0.Asimismo, el bit %MNi.R asociado a la salida del bloque monoestable conserva sufuncionamiento normal y puede ser probado en otra red. En cambio, las bobinasdirectamente "conectadas" a la salida del bloque (ej. %Q3.0) no se activan, ya queel autómata no las explora.

• Prueba del bit %MNi.R: este bit puede cambiar de estado en curso del ciclo.

Page 207: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/5

B2.2-2 Bloque de función registro %Ri

Un registro es un bloque de memoria quepermite almacenar hasta 255 palabras de16 bits de dos maneras distintas:

• cola de espera (primero en entrar,primero en salir) llamada pila FIFO (FirstIn, First Out),

• pila (último en entrar, primero en salir)llamada pila LIFO (Last In, First Out).

Características

Número de registro %Ri 0 a 3 para un TSX 37, 0 a 254 para un TSX 57

Modo FIFO Cola de espera (selección predeterminada).LIFO Pila.

Longitud LEN Número de palabras de 16 bits (1< LEN< 255)que componen el bloque de memoria registro.

Palabra de entrada %Ri.I Palabra de acceso al registro. Puede ser leída,probada y escrita.

Palabra de salida %Ri.O Palabra de salida del registro. Puede ser leída,probada y escrita.

Entrada (o instrucción) I (In) En el flanco ascendente, almacena el contenido"Almacenamiento" de la palabra %Ri.I en el registro.

Entrada (o instrucción) O (Out) En el flanco ascendente, almacena una palabra"Desalmacenamiento" de información en la palabra %Ri.O.

Entrada (o instrucción) R (Reset) En el estado 1, inicializa el registro."Puesta a cero"

Salida "Vacío" E (Empty) El bit %Ri.E asociado indica que el registro estávacío. Puede ser probado.

Salida "Lleno" F (Full) El bit %Ri.F asociado indica que el registro estálleno. Puede ser probado.

NotaCuando las dos entradas I y O se activan simultáneamente, el almacenamiento se realiza antesdel desalmacenamiento.

Bloque registro

R E

%Ri

MODE:LIFOLEN:16

O

FI

Page 208: Manual PL7

2/6___________________________________________________________________________

BFuncionamientoFIFO (First In, First Out)La primera información introducida es la pri-mera en salir. Cuando se tiene en cuenta unapetición de entrada (flanco ascendente en laentrada I o activación de la instrucción I), elcontenido de la palabra de entrada %Ri.Ipreviamente cargada se almacena en lo alto dela cola (Fig. a). Si la cola está llena (salida F=1),es imposible almacenar y el bit sistema %S18pasa a1.Cuando se tiene en cuenta una petición desalida (flanco ascendente en la entrada O oactivación de la instrucción O), la palabra deinformación que se encuentra en el fondo de lacola se almacena en la palabra de salida %Ri.Oy el contenido del registro se desplaza un pasohacia abajo (Fig. b). Si el registro está vacío(salida E=1), es imposible desalmacenar; lapalabra de salida %Ri.O ya no evoluciona yconserva su valor. La cola puede reinicializarseen todo momento (estado 1 en la entrada R oactivación de la instrucción R).LIFO (Last In, First Out)La última información introducida es la primeraen salir. Cuando se tiene en cuenta una peticiónde entrada (flanco ascendente en la entrada Io activación de la instrucción I), el contenido dela palabra de entrada %Ri.I previamentecargada se almacena en lo alto de la pila (Fig.c). Si la pila está llena (salida F=1), es imposiblealmacenar y el bit sistema %S18 pasa a1.Cuando se tiene en cuenta una petición desalida (flanco ascendente en la entrada O oactivación de la instrucción O), la palabra deinformación que se encuentra en lo alto de lapila (última información introducida) sealmacena en la palabra %Ri.O (Fig. d). Si elregistro está vacío (salida E=1), es imposibledesalmacenar; la palabra de salida %Ri.O yano evoluciona y conserva su último valor. Lapila puede reinicializarse en todo momento(estado 1 en la entrada R o activación de lainstrucción R). El elemento indicado está en loalto de la pila. 50

80

50

20

%Ri.0

(b)8020

20

8020

50

%Ri.I(c)

50

8020

50

%Ri.0(b)

8020

20

8020

50

%Ri.I(a)

Ejemplo

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

Ejemplo

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

Desalmacenamiento de la primerainformación y almacenamiento de éstaen %Ri.O.

Desalmacenamiento de la palabra deinformación del alto de la pila.

Page 209: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/7

BProgramación y configuración

• ConfiguraciónLos parámetros siguientes se introducen en el editor de configuración:

- número : 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.

• ProgramaciónLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

IF RE %M1 THENPUT %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 peticiónde la entrada %I1.2, si el registro R2 no está lleno (%R2.F=0). %M1 asegura la peticiónde entrada en el registro. La petición de salida se efectúa por la entrada %I1.3. Elalmacenamiento de %R2.O en %MW20 se realiza si el registro no está vacío(%R2.E=0).

%R2

R

O

I

%M1

%I1.3

%M1

%I1.3

%I1.2

%R2.E

%R2.F

%MW20:=%R2.O

%R2.I:=%MW34

E

FMOD :LEN :

Page 210: Manual PL7

2/8___________________________________________________________________________

BEn el lenguaje Literal estructurado, 3 instrucciones permiten programar los bloques defunción 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 información en la palabra %Ri.O.

Las instrucciones PUT y GET realizan un flanco ascendente respectivamente en lasentradas I y O del bloque de función. Por consiguiente, el uso de estas instruccionesdebe ser impulsivo.

Casos específicos

• Incidencia de un arranque en frío: (%S0=1) tiene como consecuencia la inicializacióndel 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 elcontenido del registro ni en el estado de los bits de salida.

• Al poner a 0 (entrada R o instrucción 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.

Page 211: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/9

B2.2-3 Bloque de función programador cíclico (Drum) %DRi

Según un principio de funcionamientoparecido al programador de levas, elprogramador cíclico cambia de paso enfunción de sucesos exteriores. A cadapaso, el punto alto de una leva da uncomando que el automatismo ejecuta. Enel caso del programador cíclico, un estado1 simbolizará al nivel de cada paso lospuntos altos, que se asignan a bits desalida %Qi.j o internos %Mi llamados bitsde comando.

Características

Número %DRi 0 a 7 para un TSX 37, 0 a 254 para un TSX 57

Número de pasos LEN De 1 a 16 (valor predeterminado: 16).

Base de tiempo TB 1 min, 1 s, 100 ms, 10 ms (valor predet.: 1min).

Tiempo transcurrido %DRi.V 0<%DRi.V<9999. Palabra puesta a 0 cada vezo duración del paso que se cambia de paso. Puede ser leída yen curso probada, pero no escrita. La duración es igual a

%DRi.V x TB.

Número del paso %DRi.S 0<%DRi.S<15. Palabra que puede ser leída yen curso probada.. Sólo puede ser escrita a partir de un

valor inmediato.

Entrada R (RESET) En el estado 1, inicializa el programador al"regreso al paso 0" paso 0.

Entrada U (UP) En el flanco ascendente, avanza de un paso"avance" el programador y actualiza los bits de comando.

Salida F (FULL) Indica que el último paso definido está en curso.El bit %DRi.F asociado puede ser probado(%DRi.F=1 si %DRi.S=número de pasosconfigurados - 1).

Estado de un paso %DRi.Wj Palabra de 16 bits que define los estados delpaso j del programador i. Puede ser leída yprobada, pero no escrita.

Bits de comando Salidas o bits internos asociados al paso (16 bitsde comando).

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

R F

%DRi

%TB:1mnULEN:16

Bloque programador cíclico

Page 212: Manual PL7

2/10___________________________________________________________________________

BFuncionamientoEl programador cíclico se compone de:• una matriz de datos constantes (las levas) organizada en columnas: en pasos de

0 a N-1 (con N el número de pasos configurados). Cada columna indica los estadosdel paso bajo forma de 16 informaciones binarias marcadas de 0 a F.

• una lista de bits de comando (1 por línea) que corresponden a salidas %Qxy.i o abits internos %Mi. Durante el paso en curso, los bits de comando toman los estadosbinarios definidos para el paso.

La tabla siguiente resume las características principales del programador cíclico(programador configurado con 16 pasos).

En este ejemplo, para el paso 1, los bits de comando %Q2.1;%Q3.5; %Q2.8;%Q3.6;%M5y %M6 se ponen a 1, los demás bits de comando se ponen a 0. El número del pasoen curso se aumenta en cada flanco ascendente en la entrada U (o activación de lainstrucción U). Este número puede ser modificado desde el programa.

Diagrama de funcionamiento

Bits decomandoBit

Paso

%DRi.F

U:

R:

%DRi.S 0 1 2 3 N-1 0 1 2 0 1

%DRi.V

Entrada

Entrada

N°paso

Salida

Tiempotranscurrido

Page 213: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/11

BProgramación y configuraciónEn este ejemplo, las 5 primeras salidas %Q2.0 a %Q2.4 se activan una tras otra cadavez que la entrada %I1.1 se pone a 1.La entrada I1.0 reinicializa las salidas al paso 0.

• ConfiguraciónLas informaciones siguientes se definen en el editor de variables:

- número de pasos: 5 (LEN:5),

- los estados de las salidas (bits de comando) para cada paso del programador.

Paso Asignación de bits de comando0 1 2 3 4

0: 1 0 0 0 0 %Q2.01: 0 1 0 0 0 %Q2.1

Bit 2: 0 0 1 0 0 %Q2.23: 0 0 0 1 0 %Q2.34: 0 0 0 0 1 %Q2.4

- base de tiempo (TB:1 min).

• Programación Lenguaje de contactos Lenguaje Lista de instrucciones

LD %I1.0R %DR1LD %I1.1U %DR1LD %DR1.FST %Q2.8

Lenguaje Literal estructurado

IF %I1.0 THENRESET %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 bloquesde función del programador cíclico:• RESET %DRi : inicializa el programador al paso 0,• UP %DRi : avanza de un paso del programador actualiza los bits de comando.

Esta instrucción realiza un flanco ascendente en la entrada U del bloque de función;por consiguiente, su uso debe ser impulsivo.

%DR1

R F

U

LEN:5

%TB:1 mn%I1.1

%Q2.8%I1.0

Page 214: Manual PL7

2/12___________________________________________________________________________

BObservación

En la puesta a 0 (entrada R, instrucción R o instrucción 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 específicos• Incidencia de un arranque en frío: (%S0=1) tiene como consecuencia la

reinicialización del programador al paso 0 (con la actualización de los bits decomando).

• Incidencia de un rearranque en caliente: (%S1=1) tiene como consecuencia laactualización de los bits de comando según el paso en curso.

• Incidencia de un salto de programa, una desactivación de tarea y un punto deparada: el hecho de no explorar el programador cíclico no pone los bits de comandoa 0.

• Actualización de bits de comando: se efectúa sólo al cambiar de paso o al arrancaren frío o en caliente.

Page 215: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/13

B2.2-4 Bloque de función temporizador (Timer) %Ti (serie 7)

Este bloque de función temporizador com-patible con los bloques serie 7 PL7-2/3permite controlar acciones específicas.El valor de este retardo es programable ypuede ser modificado o no desde el termi-nal.

Características

Número %Ti 0 a 63 para un TSX 37, 0 a 254 para un TSX 57

Base de tiempo TB 1 min, 1 s, 100 ms, 10 ms (valor predet.: 1min)).

Valor actual %Ti.V Palabra que disminuye en %Ti.P hacia 0 en eltranscurso del temporizador. Puede ser leída yprobada, pero no escrita.

Valor de preselección %Ti.P 0 < %Ti.P < 9999. Palabra que puede ser leída,probada y escrita. De forma predeterminada, sepone al valor 9999. La duración es igual a %Ti.P*TB.

Modificación MODIF Y/N Y: posibilidad de modificar el valor de preselecciónen modo de ajuste.N: sin acceso en modo de ajuste.

Entrada "Activación" E(Enable) En el estado 0, reinicializa el temporizador %Ti.V =%Ti.P.

Entrada "Control" C(Control) En el estado 0, inmoviliza el valor actual %Ti.V.

Salida "Temporizador D(Done) El bit asociado %Ti.D = 1, si el temporizadortranscurrido" transcurrido %Ti.V = 0.

Salida "Temporizador R(Running) El bit asociado %Ti.R = 1, si el temporizadoren curso" %Ti.P > %Ti.V > 0 y si la entrada C = 1.

NotaLos bloques de función %Ti no son programables en Lista de instrucciones. En cambio, es posibleacceder a los objetos de bloques %Ti (%Ti.V, %Ti.P, %Ti.D y %Ti.R).

El número total %TMi + %Ti debe ser inferior a 64 en el TSX 37 y 255 en el TSX 57.

E D

%Ti

TB:1mnRC

T.P:9999MODIF:Y

Bloque temporizador

Page 216: Manual PL7

2/14___________________________________________________________________________

BFuncionamiento

El temporizador evoluciona cuando sus 2entradas (E y C) están en el estado 1.Funciona como un descontador.

• El valor actual %Ti.V disminuye desdela preselección %Ti.P hacia 0 en unaunidad a cada impulso de la base detiempo TB.

• El bit de salida %Ti.R (temporizador encurso) asociado a la salida R está en elestado 1; el bit de salida %Ti.D(temporizador transcurrido) asociado ala salida D está en el estado 0.

• Cuando el valor actual %Ti.V= 0, %Ti.Dse pone a 1 y %Ti.R se pone a 0.

Casos típicosSegún su programación, el bloque defunción "temporizador" puede realizar lasfunciones siguientes:

• Retardo a la conexión Lenguaje de contactos

Lenguaje Literal estructurado

IF %I1.0 THENSTART %T0 ;

ELSEPRESET %T0 ;

END_IF ;%Q2.0:= %T0.D ;

%T0

E D

C

MOD:N

%Q2.0%I1.0

%Ti.P = 3

RTB =1mn

%I1.0 = E,C

R

PRESETPRESET

D = %Q2.0

E 0 0 1 1

C 0 1 0 1

%Ti.P %Ti.V %Ti.V %Ti.V %Ti.V= = inmov. disminuye de

%Ti.V %Ti.P %Ti.P %Ti.P -> 0

%Ti.D 0 0 0 1 si tempo.transcurrido

%Ti.R 0 0 0 1 si Tempoen curso

E

C

%Ti.V

%Ti.D

%Ti.R

%Ti.P

Page 217: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/15

B• Retardo a la desconexión

Lenguaje de contactos

Lenguaje Literal estructurado

IF %1.1 THENPRESET %T7 ;

ELSESTART %T7 ;

END_IF ;%Q2.1:= NOT %T7.D ;

• Retardo acumulado a la conexiónLenguaje de contactos

Lenguaje Literal estructurado

IF %I1.2 THENIF %I1.3 THEN

START %T5 ;ELSE

STOP %T5 ;END_IF ;

ELSEPRESET %T5 ;

END_IF ;%Q2.4:= %T5.D ;%Q2.5:= %T5.R ;

%T5

E D

C

MOD:N

%Q2.4%I1.2

%Ti.P = 3

RTB =1mn %Q2.5%I1.3

% I1.1

E,C

R

PRESET

D

%Q2.1

%T7

E D

C

MOD:N

%Q2.1%I1.1

%Ti.P = 120

RTB =1s

% I1.2 = E

%Q2.4 =D

%I1.3 = C

%Q2.5 = RD1 D2 D3

PRESET = D1 + D2 + D3

Page 218: Manual PL7

2/16___________________________________________________________________________

B• Retardo acumulado a la desconexión

Lenguaje de contactos

Lenguaje Literal estructuradoIF %I1.0 THEN

PRESET %T12 ;ELSE

IF %I1.1 THENSTOP %T12 ;

ELSESTART %T12 ;

END_IF ;END_IF ;%Q2.4:= NOT %T12.D ;

En el lenguaje Literal estructurado, 3 instrucciones permiten programar los bloquesde función temporizador %Ti:• PRESET %Ti : reinicializa el temporizador,• START %Ti : provoca el transcurrido del temporizador,• STOP %Ti : inmoviliza el valor actual del temporizador.

Casos específicos

• Incidencia de un arranque en frío: (%S0 = 1) tiene como consecuencia la carga delvalor de preselección (definido por el editor de variables) en el valor actual y la puestaa 0 de la salida %Ti.D. Se pierde el valor de preselección eventualmente modificadoen el terminal.

• Incidencia de un rearranque en caliente: (%S1) no tiene incidencia en el valoractual 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 seprograma el bloque temporizador no inmoviliza el valor actual %Ti.V que siguedisminuyendo hacia 0. Asimismo, los bits %Ti.D y %Ti.R asociados a las salidas Dy R del bloque temporizador conservan su funcionamiento normal y puedenprobarse en otra red. En cambio, no se activarán las bobinas directamente"conectadas" a las salidas del bloque ya que el autómata no las explora.

• Prueba de los bits %Ti.D y %Ti.R: estos bits pueden cambiar de estado en cursodel ciclo.

PRESET = D1 + D2 + D3

E

%I1.1

C

R

D

% I1.0

%Q2.1

D1 D2 D3

%T12

E D

C

MOD:Y

%Q2.4%I1.0

%Ti.P = 40

RTB =10mn%I1.1

Page 219: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/17

B2.3 Bloque de operación de comparación vertical

El bloque de comparación vertical permiteefectuar la comparación entre 2operandos (OP).

Estos operandos son de tipo palabra de16 bits (indexada o no) o de tipo valorinmediato.

Los bloques de comparación vertical no se limitan en número, ni se numeran.

Características

Entrada de control EN En el estado 1, compara dos operandos.

Salida "Superior" > En el estado 1, si el contenido de OP1 es superior alcontenido de OP2.

Salida "Igual" = En el estado 1, si el contenido de OP1 es igual alcontenido de OP2.

Salida "Inferior" < En el estado 1, si el contenido de OP1 es inferior alcontenido de OP2.

Salida "Diferente" <> En el estado 1, si el contenido de OP1 es diferentedel contenido de OP2.

Operando n°1 OP1 Este operando es un objeto palabra de simple longitud (puede ser indexado).

Operando n°2 OP2 Este operando es un objeto palabra de simple longitud (puede ser indexado).

EN

OP1

OP2

>

COMPARE

=

<

< >< >

Page 220: Manual PL7

2/18___________________________________________________________________________

BFuncionamientoLa puesta a 1 de la entrada de comando permite comparar dos operandos. Las cuatrosalidas se activan en función del resultado de la comparación. La puesta a 0 de laentrada de comando tiene como consecuencia la puesta a 0 de las salidas activas.

• Ejemplo de utilizaciónEl programa siguiente muestra la comparación de la palabra %MW2 indexada por lapalabra %MW40 y del valor inmediato 150.Si el contenido de %MW2[%MW40] es superior a 150 y si %I1.3 = 1, se controla labobina %Q2.7.Si el contenido es igual a 150, se controla la bobina %MW10:X4. La bobina %M5 secontrola sólo si el contenido es distinto de 150 (< o >).

Lenguaje de contactos

Este bloque de función no existe en ellenguaje Lista de instrucciones. Seutilizan las operaciones de comparación>, <, =.

Casos específicos

• Incidencia de un arranque en frío: (%S0) tiene como consecuencia la puesta a cerodel operando OP1 y posiblemente la del OP2 (si OP2 es una palabra interna).Dependiendo de la comparación, las salidas se activan con los nuevos valores.

• Incidencia de un rearranque en caliente: (%S1) no tiene incidencia en el bloque decomparación.

=

%Q2.7

<

%I1.3>

< >

EN

%MW10:X4

%M5

%MW2[%MW40]

150

Page 221: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/19

B2.4 Instrucciones de desplazamiento

Estas instrucciones desplazan los bits de un operando palabra o doble palabra uncierto número de posiciones a la derecha o a la izquierda.• Desplazamiento lógico:

- SHL(op2,i) desplazamiento lógico iposiciones a la izquierda.- SHR(op2,i) desplazamiento lógico iposiciones a la derecha.

• Desplazamiento circular:

- ROL(op2,i) desplazamiento circular iposiciones a la izquierda.- ROR(op2,i) desplazamiento circular iposiciones a la derecha.

Si el operando que se va a desplazar esuno de simple longitud, la variable i estarácomprendido entre 1 y 16.Si el operando que se va a desplazar esuno de doble longitud, la variable i estarácomprendido entre 1 y 32.El estado del último bit salido se almacenaen el bit %S17.

EstructuraLenguaje de contactos 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 ;

SintaxisOperadores SHL,SHR,ROL,ROR Op1:=Operador (Op2,i)

Operandos

Tipo Operando 1 (Op1) Operando 2 (Op2)

Palabras indexables %MW %MW,%KW

Palabras no indexables %QW,%SW,%NW, Val.inm.,%IW,%QW,%SW%BLK %NW,%BLK, Expr. num.

Dobles palabras indexables %MD %MD,%KD

Dobles palabras no indexables %QD,%SD, Val.inm.,%ID,%QD,%SDExpr. numérica

15 (or 31) 0

0%S17

%S17

0

0

%S17

%S17

15 (or 31)

%MW0:=SHL(%MW10,5)

%MW10:=ROR(%KW9,8)

%I1.2

P

%I1.1

P

Page 222: Manual PL7

2/20___________________________________________________________________________

B2.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 números flotantes de simpleprecisión.

Los valores flotantes se pueden representar con o sin exponentes, y siempre debencontener un punto (coma flotante).

Ejemplos de valores flotantessin exponente: 1285.28con exponente: 1.28528e3

Los valores flotantes están comprendidos entre -3.402824e+38 y -1.175494e-38, y1.175494e-38 y 3.402824e+38 (valores en gris en el esquema) y comprendentambién el valor 0 con la notación 0.0.

Cuando el resultado de un cálculo está comprendido entre -1.175494e-38 y 1.175494e-38, se redondea a 0. Un valor comprendido entre estos límites no se puede introducircomo flotante; si se introduce en otro formato, en flotante se visualizará el símbolo1.#DN o - 1.#DN.

Cuando el resultado de un cálculo es:• inferior a -3.402824e+38, se visualiza el símbolo -1.#INF (para -infinito)• superior a +3.402824e+38, se visualiza 1.#INF (para + infinito).

Cuando se define el resultado de una operación (ejemplo: raíz cuadrada de un númeronegativo) se visualiza el símbolo 1.#NAN o -1.#NAN.

El bit sistema %S18 se pone a 1 cuando el resultado no está comprendido entre loslímites válidos. Los bits de la palabra de estado %SW17 indican la causa de una fallaen una operación flotante:%SW17:X0 = operación inválida, el resultado no es un número (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 = división 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 = imprecisión sobre el resultadoEl sistema pone a 0 esta palabra en el arranque en frío o esta puesta a 0 la realiza elprograma con miras a su reutilización.

0-3.402824e+38 -1.175494e-38 +1.175494e-38 +3.402824e+38

1.#INF-1.#INF-1.#DN 1.#DN

Page 223: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/21

BLa precisión de representación es de 2-24. En la visualización de números flotantes,es inútil mostrar más de 6 dígitos después de la coma.

Observaciones

• El valor "1285" se interpreta como valor entero. Para que se acepte como valorflotante, debe escribirse: "1285.0".

• Las instrucciones de conversión Entero <--> Flotante permiten pasar de un formatoa otro.

Direccionamiento de objetos flotantes

Abreviaciones Direccionamiento Tipo de flotante Acceso Forma indexadacompleto

Val. inm. - valores inmediatos R -

%MF %MFi flotante interno R/W %MFi[%MWj]

%KF %KFi constante flotante R %KFi[%MWj]

Posibilidad de solapamiento entreobjetosLas palabras de simple, doble longitud yflotantes se almacenan en el espacio dedatos de una misma área de memoria.Así, la palabra flotante %MFi correspondea las palabras de simple longitud %MWiy %MWi+1 (la palabra %MWi contiene loscaracteres menos significativos y la pala-bra %MWi+1 los más significativos de lapalabra %MFi).

Ejemplos:%MF0 corresponde a %MW0 y %MW1%KF543 a %KW543 y %KW544.

%MF1

%MF3

%MW0

%MW1

%MW2

%MW3

%MWi

%MWi+1

%MF0

%MF2

%MFi

Page 224: Manual PL7

2/22___________________________________________________________________________

B2.5-2 Instrucciones de comparación 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 comparación solicitada es verdadera.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

La comparación se realiza entre corchetesdespués de las instrucciones LD, AND y OR.

Los bloques de comparación seprograman en el área de prueba.

Sintaxis

Operadores >,>=,<,<=,=,<> Op1 Operador Op2

Operandos

Tipo Operandos 1 y 2 (Op1 y 2)

Flotantes indexables %MF,%KF

Flotantes no indexables Valor inmediato flotanteExpresión numérica flotante

Observación

En el lenguaje Lista de instrucciones, las instrucciones de comparación puedenutilizarse entre paréntesis.

Lenguaje Literal estructurado

%Q2.3:= %MF10 > 129.7 ;%Q2.2:= (%MF20 < %KF35) AND %M0 ;%Q2.4:= (%MF30 >= %MF40) OR %I1.2 ;

%M0

%I1.2

%MF10>129.7

%MF20<%KF35

%MF30>=%MF40

%Q2.3

%Q2.2

%Q2.4

Page 225: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/23

B2.5-3 Instrucciones de asignación para flotantes

Se pueden realizar las siguientes operaciones de asignación para flotantes:

• flotante (indexado) -> flotante (indexado) ej. 1

• valor flotante inmediato -> flotante (indexado) ej. 2

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD TRUE[%MF10:= %KF100] ej. 1

LD %I3.2[%MF5:= %KF0[%MW20] ] ej. 1

LDR %I3.3[%MF100:=150.25] ej. 2

Lenguaje Literal estructurado

%MF10:= %KF100 ; ej. 1IF %I3.2 THEN

%MF5:= %KF0 [%MW20] ; ej. 1END_IF ;IF RE %I3.3 THEN

%MF100:= 150.25 ; ej. 2END_IF ;

SintaxisOperador:= Op1:=Op2

Operandos

Tipo Operando 1 (Op1) Operando 2 (Op2)

Flotantes indexables %MF %MF,%KF

Flotantes no indexables Val. inmediato flotanteExpr. numérica flotante

Es posible realizar asignaciones múltiples.Ejemplo: %MF0:= %MF2:= %MF4

%I3.2

%I3.3

%MF10:=%KF100

%MF5:=%KF0[%MW20]

%MF100:=150.25P

Page 226: Manual PL7

2/24___________________________________________________________________________

B2.5-4 Instrucciones aritméticas para flotantes

Estas instrucciones permiten realizar una operación aritmética entre dos operandoso en un operando.

+ : suma de dos operandos, SQRT : raíz cuadrada de un operando,- : resta de dos operandos, ABS : valor absoluto de un operando,* : multiplicación de dos operandos, TRUNC : parte entera de un valor flotante,/ : división de dos operandos.EstructuraLenguaje de contactos 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

• +,-,*,/ Op1:=Op2 Operador Op3

• SQRT, ABS , TRUNC Op1:=Operador (Op2)

P

%I3.2

%I3.3

%MF0:=%MF10+129.7

%MF1:=SQRT(%MF10)

%M0

P %MF2:=ABS(%MF20)

%I3.5

P %MD8:=TRUNC(%MF2)

Page 227: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/25

BOperandos

Tipo Operando 1 (Op1) Operandos 2 y 3 (Op2 y 3)

Palabras indexables %MF %MF,%KF

Palabras no indexables Valor inmediato flotanteExpr. numérica flotante

(1) %MDF en el caso de la instrucción TRUNC

Reglas de utilización• No es posible combinar directamente operaciones en flotantes y enteros.

Las operaciones de conversión realizan la conversión en uno de los dos formatos(véase el capítulo 2.6, sección B).

• la gestión del bit sistema %S18 se efectúa de modo idéntico a las operaciones enenteros (sección B, véase capítulo 1.4-4),la palabra %SW17 indica la causa de lafalla (sección B, véase capítulo 2.5-1).

2.5-5 Instrucciones logarítmicas y exponenciales

Esta instrucciones permiten realizar operaciones logarítmicas y exponenciales.LOG : logaritmo de base 10, EXP: exponencial natural,LN :logaritmo neperiano, EXPT: exponenciación de un real por un entero,

EstructuraLenguaje de contactos 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 estructuradoIF %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 ;

%I3.2

%I3.3

%MF0:=LOG(%MF10)

%MF2:=LN(%MF20)

%M0

P %MF4:=EXP(%MF40)

%I3.4

P %MF6:=EXPT(%MF50,5)

Page 228: Manual PL7

2/26___________________________________________________________________________

BSintaxis

Operadores

• LOG, EXP, LN Op1:=Operador(Op2)

• EXPT Op1:=Operador(Op2,Op3)

Operandos

Tipo Operando 1 (Op1) Operando 2 (Op2) Operandos 3 (Op3)

Palabras indexables %MF %MF,%KF %MW, %KW

Palabras no indexables Valor inm. flotante, Valor inmediato enteroExpr. num. flotante. Expr. num. entera

Reglas de utilización• cuando el operando de la función es un valor inválido (ejemplo: logaritmo de un

número negativo), produce un resultado indeterminado o infinito y hace pasar el bit%S18 a 1; la palabra %SW17 indica la causa de la falla (sección B, véase capítulo2.5-1).

• en el caso de las funciones logarítmicas, para los valores próximos de 1.0(comprendidos entre 0,99 y 1,0 ó 1,0 y 1,01), el resultado será igual a 0, los bits %S18y %SW17:X5 están posicionados a 1.

2.5-6 Instrucciones trigonométricas

Estas instrucciones permiten realizar operaciones trigonométricas.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)

EstructuraLenguaje de contactos Lenguaje lista de instrucciones

LD %M0[%MF0:= SIN(%MF10)]

LD %I3.2[%MF2:= TAN(%MF10)]

LDR %I3.3[%MF4:= ATAN(%MF20)]

%I3.2

%I3.3

%MF0:=SIN(%MF10)

%MF2:=TAN(%MF10)

%M0

P %MF4:=ATAN(%MF20)

Page 229: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/27

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 Op1:=Operador (Op2)

ASIN, ACOS, ATAN

Operandos

Tipo Operando 1 (Op1) Operando 2 (Op2)

Palabras indexables %MF %MF,%KF

Palabras no indexables Valor inm. flotante,Expr. num. flotante.

Reglas de utilización• cuando el operando de la función es un valor inválido (ejemplo: arco coseno de un

número superior a 1), produce un resultado indeterminado o infinito y hace pasarel bit %S18 a 1; la palabra %SW17 indica la causa de la falla (sección B, véasecapítulo 2.5-1).

• las funciones SIN/COS/TAN admiten como parámetro un ángulo entre -4096π y4096π pero su precisión disminuye progresivamente para los ángulos nocomprendidos en el intervalo -2π y +2π debido a la precisión que aporta el módulo2π cuando se aplica al parámetro antes de cualquier otra operación.

Page 230: Manual PL7

2/28___________________________________________________________________________

B2.5-7 Instrucciones de conversión

Estas instrucciones permiten realizar operaciones de conversión:DEG_TO_RAD: conversión de grados en radianes, el resultado es el valor del ángulocomprendido entre 0 y 2πRAD_TO_DEG: conversión de radianes en grados, el resultado es el valor del ángulocomprendido entre 0 y 360 grados

EstructuraLenguaje 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 Op1:=Operador(Op2)

RAD_TO_DEG

Operandos

Tipo Operando 1 (Op1) Operando 2 (Op2)

Palabras indexables %MF %MF,%KF

Palabras no indexables Valor inm. flotante,Expr. num. flotante.

Reglas de utilización• 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π (paralas conversiones RAD_TO_DEG).Para los valores que no están comprendidos entre estos límites, el resultado que semuestra será + 1.#NAN, con los bits %S18 y %SW17:X0 posicionados a 1.

Page 231: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/29

B2.5-8 Redondeo de un valor flotante en formato ASCII

La función ROUND proporciona el valor aproximado de un número flotante representadopor una cadena de caracteres.

Esta función utiliza 3 parámetros:

ROUND(cadena 1, Long, cadena 2)

Cadena 1: Tablas de bytes que constituyen la cadena de caracteres de origen

Long: Palabra que da la posición, en la cadena de caracteres, a partir de cual seefectúa el redondeo (la posición se calcula contando el número de caracteres a partirde la coma, incluyendo la coma)Cadena 2: Tablas de bytes que constituyen la cadena de caracteres de resultado

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

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

Ejemplos:

%MB10:15

%MW100 = 4

%MB50:15

%MB10:15

%MW100 = 2

%MB50:15

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

'-' '1' '.' '2' '3' '4' '5' '6' '7' '0' 'e' '+' '2' '6' $00

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

'-' '1' '.' '2' '3' '5' '0' '0' '0' '0' 'e' '+' '2' '6' $00

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

'+' '1' '.' '1' '3' '5' '4' '9' '4' '2' 'e' '-' '3' '0' $00

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

'+' '1' '.' '1' '0' '0' '0' '0' '0' '0' 'e' '-' '3' '0' $00

OPERATE

Page 232: Manual PL7

2/30___________________________________________________________________________

BSintaxis

Operador ROUND(cadena1, Long, cadena 2)

Operandos

Tipo Cadena 1 y Cadena 2 Long

Tablas de bytes %MB:15

Palabras indexables %MW

Reglas:

1 La longitud de las cadenas de caracteres de origen y resultado debe estarcomprendida entre 15 y 255 bytes. En caso contrario, le bit %S15 se posiciona a1.

2 El parámetro de longitud Long debe estar comprendido entre 0 y 8.En caso contrario, le bit %S20 (rebasamiento de índice) se posiciona a 1.Caso particular: para L=0 o L=8, el redondeo no se efectúa (cadena de origen =cadena de resultado)

3 Cuando el último carácter diferente de 0 es > a 5, el carácter anterior se incrementa.

Page 233: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/31

B2.6 Instrucciones de conversión numérica

2.6-1 Instrucciones de conversión BCD <--> Binario

Se proponen seis instrucciones de conversión:

• BCD_TO_INT : conversión de un número BCD 16 bits en entero 16 bits,• INT_TO_BCD : conversión de un entero 16 bits en número BCD 16 bits,• DBCD_TO_DINT : conversión de un número BCD 32 bits en entero 32 bits,• DINT_TO_DBCD : conversión de un entero 32 bits en número BCD 32 bits,• DBCD_TO_INT : conversión de un número BCD 32 bits en entero 16 bits,• INT_TO_DBCD : conversión de un entero 16 bits en número BCD 32 bits.

Nota sobre el código BCDEl código BCD (Binary Coded Decimal), que significa Decimal codificado binariamente,permite de representar un número decimal de 0 a 9 por un conjunto de 4 bits. Así, unobjeto palabra de 16 bits puede contener un número expresado en 4 dígitos (0< N <9999).

Decimal 0 1 2 3 4 5 6 7 8 9

BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

Ejemplo:

• la palabra %MW5 expresa el valor BCD "2450" que corresponde al valor binario0010 0100 0101 0000,

• la palabra %MW12 expresa el valor decimal "2450" que corresponde al valor binario0000 1001 1001 0010.

La palabra %MW5 pasa a la palabra %MW12 mediante la instrucción BCD_TO_INT.La palabra %MW12 pasa a la palabra %MW5 mediante la instrucción INT_TO_BCD.

EstructuraLas operaciones de conversión se realizan de la manera descrita a continuación:

Lenguaje de contactos Lenguaje Lista de instrucciones

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

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

Lenguaje Literal estructurado

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

%MW10:= INT_TO_BCD (%KW9) ;END_IF ;

%MW0:=BCD_TO_INT(%MW10)

%MW10:=INT_TO_BCD(%KW9)

%I1.2

Page 234: Manual PL7

2/32___________________________________________________________________________

BSintaxisOperadores (conversión de un número 16 bits)

• BCD_TO_INT Op1:= Operador (Op2)INT_TO_BCDINT_TO_DBCD

Operandos

Tipo Operando 1 (Op1) Operando 2 (Op2)

Palabras indexables %MW %MW,%KW,%Xi.T

Palabras no indexables %QW,%SW,%NW, %BLK Val.inm.,%IW,%QW,%SW%NW,%BLK,Expr. num.

Dobles palabras indexables %MD

Dobles palabras no indexables %QD, %SD

SintaxisOperadores (conversión de un número de 32 bits)

• DBCD_TO_DINT Op1:= Operador (Op2)DINT_TO_DBCDDBCD_TO_INT

Operandos

Tipo Operando 1 (Op1) Operando 2 (Op2)

Palabras indexables %MW

Palabras no indexables %QW,%SW,%NW, %BLK

Dobles palabras indexables %MD %MD, %KD

Doblespalabras no indexables %QD, %SD Val.inm.,%ID,%QD,%SDExpr. numérica

Ejemplos de aplicaciónLa instrucción BCD_TO_INT trata un valor de consigna presente en la entrada delautómata en codificadores rotativos con la codificación BCD.La instrucción INT_TO_BCD muestra valores numéricos (ej.: resultado de cálculo,valor actual de bloque de función) en los indicadores con la codificación BCD.

Page 235: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/33

BReglas de utilización

• Conversión BCD --> BinarioLa instrucción BCD_TO_INT verifica que el operador de conversión actúa sobre unvalor codificado en BCD. Si el valor no es un valor BCD, el bit sistema %S18 se ponea 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 resultadoes 15.

Para la instrucción DBCD_TO_INT, si el número BCD es superior a 32767, el bitsistema %S18 se pone a 1 y el valor -1 se almacena en el resultado.

• Conversión Binario --> BCDLa instrucción INT_TO_BCD verifica que el operador de conversión actúa sobre unvalor comprendido entre 0 y 9999 (o 0 y 9999 9999). Si no, el bit sistema %S18 sepone a 1 y el resultado devuelve el valor del parámetro 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 instrucción INT_TO_DBCD, si el parámetro de entrada es negativa, el bitsistema %S18 se pone a 1 y el resultado devuelve el valor del parámetro de entrada.

2.6-2 Instrucciones de conversión Entero <--> Flotante

Se proponen 4 instrucciones de conversión:• INT_TO_REAL: conversión palabra entero --> flotante,• DINT_TO_REAL: conversión doble palabra entero --> flotante,• REAL_TO_INT: conversión flotante --> palabra entero (el resultado es el próximo

valor algebraico),• REAL_TO_DINT: conversión flotante --> doble palabra entero (el resultado es el

próximo valor algebraico).

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD TRUE[%MF0:= INT_TO_REAL(%MW10)]

LD %I1.8[%MD4:= REAL_TO_DINT(%MF9)]

Lenguaje Literal estructurado

%MF0:= INT_TO_REAL (%MW10) ;IF %I1.8 THEN

%MD4:= REAL_TO_DINT (%MF9) ;END_IF ;

%MD4:=REAL_TO_DINT(%MF9)

%MFO:=INT_TO_REAL(%MW10)

%I1.8

Page 236: Manual PL7

2/34___________________________________________________________________________

BSintaxisOperador Op1:=INT_TO_REAL (Op2)

Operandos

Tipo Operando 1 (Op1) Operando 2 (Op2)Palabras indexables %MW,%KW,%Xi.TPalabras no indexables Val. inm.,%IW,%QW,%SW

%NW,%BLK,Expr. num.Palabras flotantes indexables %MF

Ejemplo: conversión palabra entero --> flotante 147 --> 1.47e+02

Operador Op1:=DINT_TO_REAL (Op2)

Operandos

Tipo Operando 1 (Op1) Operando 2 (Op2)Palabras indexables %MD,%KDPalabras no indexables Val. inm.,%ID,%QD,%SD

Expr. numéricaPalabras flotantes indexables %MF

Ejemplo: conversión doble palabra entero --> flotante 68905 000 --> 6.8905e+07

Operador Op1:=REAL_TO_INT (Op2) Op1:=REAL_TO_DINT (Op2)

OperandosTipo Operando 1 (Op1) Operando 2 (Op2)Palabras indexables %MWPalabras no indexables %QW,%NW,%BLKDobles palabras indexables %MDDobles palabras no indexables %QDPalabras flotantes indexables %MF,%KFPalabras flotantes no indexables Val. inm. flotante

Ejemplo: conversión flotante --> palabra entero 5978.6 --> 5979conversión flotante--> doble pal. entero -1235978.6 --> -1235979

NotaSi en una conversión real --> entero (o real --> entero doble palabra) el valor flotante está fuerade los límites de la palabra (o de la doble palabra), el bit %S18 se pone a 1.

Page 237: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/35

B2.6-3 Instrucciones de conversión Gray --> EnteroLa instrucción GRAY_TO_INT convierte una palabra en código Gray en un entero(código binario puro).Nota sobre el código Gray: el código Gray o "binario reflejado" permite codificar unvalor numérico en curso de evolución en una serie de configuraciones binarias quese diferencian en el cambio de estado de un solo bit. Este código permite, por ejemplo,evitar el riesgo siguiente: en binario puro, el paso de 0111 a 1000 puede generarvalores aleatorios comprendidos entre 0 y 1000, puesto que los bits no cambian devalor de modo perfectamente simultáneo.

Decimal

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

%MW0:= GRAY_TO_INT (%MW10) ;

SintaxisOperador Op1:=GRAY_TO_INT (Op2)

Operandos

Tipo Operando 1 (Op1) Operando 2 (Op2)

Palabras indexables %MW %MW,%KW,%Xi.T

Palabras no indexables %QW,%SW,%NW, %BLK Val.inm.,%IW,%QW,%SW%NW,%BLK, Expr. num.

0110 0111 1000 10010010 0011 0100 01010000 0001

0

Binary

Decimal 1 2 3 4 5 6 7 8 9

0101 0100 1100 11010011 0010 0110 01110000 0001Gray

%MW0:=GRAY_TO_INT(%MW10)

Page 238: Manual PL7

2/36___________________________________________________________________________

B2.6-4 Instrucciones de conversión Palabra <--> Doble palabra

Las instrucciones que se describen a continuación son útiles en el caso de objetospuramente simbólicos (caso de los bloques de función DFB). En el caso de los objetosdirecccionables, los mecanismos de solapamiento (ejemplo: la doble palabra %MD0está constituida por las palabras %MW0 y %MW1) hace inútil el uso de estasinstrucciones.

• Instrucciones de extracción de la palabra menos significativa de una doblepalabraLa instrucción LW extrae el valor menos significativo de una doble palabra y lotransfiere a una palabra simple.

Sintaxis Op1:=LW(Op2)

Op1 = palabra simple longitud (tipo WORD)Op2 = palabra doble longitud (tipo DWORD)

Ejemplo: Presión_cuba:=LW(Parámetro_1)si Parámetro_1 = 16#FFFF1234, Presión_cuba = 16#1234

• Instrucciones de extracción de la palabra más significativa de una doble palabraLa instrucción HW extrae el valor más significativo de una doble palabra y lotransfiere a una palabra simple.

Sintaxis Op1:=HW(Op2)

Op1 = palabra simple longitud (tipo WORD)Op2 = palabra doble longitud (tipo DWORD)

Ejemplo: Presión_cuba:=LW(Parámetro_1)si Parámetro_1 = 16#FFFF1234, Presión_cuba = 16#FFFF

• Instrucciones de concatenación de 2 palabrasLa instrucción CONCATW concatena 2 palabras simples y transfiere el resultadoa 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: Presión_cuba:=LW(Parámetro_1,Parámetro_2)si Parámetro_1 = 16#1234, Parámetro_1 = 16#FFFF,Presión_cuba = 16#FFFF1234

Page 239: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/37

B2.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 pa-labras adyacentes del mismo tipo y delongitud definida: L.

Ejemplo de tabla de palabras: %KW10:5

Tipo Formato Dirección Tamaño Accesomáxima escritura

Palabras internas Simple longitud %MWi:L i+L< Nmáx (1) SíDoble longitud %MDi:L i+L< Nmáx-1 (1) SíFlotante %MFi:L i+L< Nmáx-1 (1) Sí

Palabras constantes Simple longitud %KWi:L i+L< Nmáx (1) NoDoble longitud %KDi:L i+L< Nmáx-1 (1) NoFlotante %KFi:L i+L< Nmáx-1 (1) No

Palabras sistema Simple longitud %SW50:4 (2) - Sí

(1) Nmáx = número máximo de palabras definido en la configuración del programa,(2) sólo las palabras de %SW50 a %SW53 pueden direccionarse bajo forma de tabla.

Reglas generales para las operaciones en las tablas• Las operaciones se efectúan únicamente en tablas que contienen objetos del mismo

tipo.• Las operaciones se efectúan en un máximo de 2 tablas.• Si en una operación las tablas son de tamaño diferente, la tabla resultante

corresponderá a un mínimo de 2 tablas de operandos.• El usuario debe evitar operaciones en tablas con solapamiento (por ejemplo:

%MW100[20]:=%MW90[20]+%KW100[20]).• Una operación en 2 tablas se efectúa 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 operación entre 2 elementos el bit sistema %S18 se pone a 1, esta

operación resulta errónea, pero la operación en los elementos siguientes se efectúacorrectamente.

• Cuando uno de los operandos es una expresión numérica, ésta debe colocarse entreparéntesis.

• El rango de una palabra en una tabla corresponde a la posición de la palabra en latabla. La primera posición corresponde al rango 0.

16 bits%KW10

%KW14

Page 240: Manual PL7

2/38___________________________________________________________________________

B2.7-2 Asignación de tablas de palabras

Se pueden realizar las siguientes operaciones de asignación de tablas de palabras:

• valor inmediato -> tabla de palabras (indexada) ej. 1valor inmediato doble formato -> tabla de dobles palabras (indexada)valor inmediato flotante -> tabla de palabras flotantes (indexada)

Ej. 1: %MW0:5:= 100

• palabra (indexada) -> tabla de palabras (indexada) ej. 2doble palabra (indexada) -> tabla de dobles palabras (indexada)flotante (indexado) -> tabla de flotantes (indexada)

Ej. 2: %MW0:5:= %MW11

• tabla de palabras (indexada) -> tabla de palabras (indexada) ej. 3tabla de dobles palabras (indexada) -> tabla de dobles palabras (indexada)tabla de flotantes (indexada) -> tabla de flotantes (indexada)

Ej. 3: %MW0:5:= %KW0:5

NotaLas asignaciones múltiples se autorizan en los ejemplos 1 y 2(%MW0:4:= %MW10:6:= %MW100) pero no en el ejemplo 3.

%MW0

%MW4

100100

100100100

100

%MW0

%MW4

100100

100100100

100%MW11

%MW0

%MW4

200100

010100

200100

010100

%KW0

%KW4

Page 241: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/39

BEstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD TRUE[%MW0:5:= 100] ej 1

LD %I3.2[%MW0:5:= %MW11] ej 2

Lenguaje Literal estructurado

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

END_IF ;

SintaxisOperador:= Op1:= Op2

Tablas de palabras

Tipo Operando 1 (Op1) Operando 2 (Op2)

Tablas de palabras indexables %MW:L %MW:L,%KW:L,%Xi.T:L

Palabras indexables %MW,%KW,%Xi.T

Palabras no indexables Val.inm.,%IW,%QW,%SW%NW,%BLK,Expr. num.

Tablas de dobles palabras

Tipo Operando 1 (Op1) Operando 2 (Op2)

Tablas de palabras indexables %MD:L %MD:L,%KD:L

Dobles palabras indexables %MD,%KD

Dobles palabras no indexables Val.inm.,%ID,%QD,Expr. numérica

Tablas de flotantes

Tipo Operando 1 (Op1) Operando 2 (Op2)

Tablas de palabras flotantes %MF:L %MF:L,%KF:L

Palabras flotantes indexables %MF,%KF

Palabras flotantes no indexables Val.inm.flotante,Expr. numérica flotante

NotaSe prohiben las asignaciones múltiples en las tablas.

%I3.2

%I3.3

%MW0:5:=100

%MW0:5:=%MW11

%MW0:5:=%KW0:5P

Page 242: Manual PL7

2/40___________________________________________________________________________

B2.7-3 Instrucciones aritméticas para tablas

Estas instrucciones permiten realizar una operación aritmética entre dos operandosde tipo tabla de palabras (o palabra y tabla de palabras).+ : suma, * : multiplicación,- : resta, / : división,REM : resto de la división.

EstructuraLenguaje de contactos 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 Op1:=Op2 Operador Op3

Operandos

Tablas de palabras

Tipo Operando 1 (Op1) Operandos 2 y 3 (Op2 y 3

Tablas de palabras indexables %MW:L %MW:L,%KW:L,%Xi.T:L

Palabras indexables %MW,%KW,%Xi.T

Palabras no indexables Val.inm.,%IW,%QW,%SW%NW,%BLK,%Xi.T,Expr. num.

Tablas de dobles palabras

Tipo Operando 1 (Op1) Operandos 2 y 3 (Op2 y 3

Tablas de palabras indexables %MD:L %MD:L,%KD:L

Dobles palabras indexables %MD,%KD

Dobles palabras no indexables Val.inm.,%ID,%QD,Expr. numérica

%I3.2

%I3.3

%MW0:10:=%MW20:10+100

%MD50:5:=%KD0:5+%MD0:5

%M0

P %MW0:10:=%KW0:10*%MW20

Page 243: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/41

B2.7-4 Instrucciones lógicas para tablas

Las instrucciones asociadas permiten realizar una operación lógica entre dosoperandos de tipo tabla de palabras (o palabra y tabla de palabras).AND : Y (bit a bit),OR : O lógica (bit a bit),XOR : O exclusiva (bit a bit),NOT : complemento lógico (bit a bit) de una tabla (1 solo operando).

EstructuraLenguaje de contactos 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 Op1:=Op2 Operador Op3

NOT Op1:=NOT Op2

OperandosTablas de palabras

Tipo Operando 1 (Op1) Operandos 2 y 3 (Op2 y 3)

Tablas de palabras indexables %MW:L %MW:L,%KW:L,%Xi.T:L

Palabras indexables %MW,%KW,%Xi.T

Palabras no indexables Val.inm.,%IW,%QW,%SW%NW,%BLK,Expr. num.

Tablas de dobles palabras

Tipo Operando 1 (Op1) Operandos 2 y 3 (Op2 y 3)

Tablas de palabras indexables %MD:L %MD:L,%KD:L

Dobles palabras indexables %MD,%KD,%SD

Dobles palabras no indexables Val.inm.,%ID,%QD,Expr. numérica

%I3.2

%I3.3

%MW0:5:=%KW0:5AND16#FF00

%MD0:10:=%KD5:10OR%MD50:10

%M0

P %MW100:50:=NOT%MW0:50

Page 244: Manual PL7

2/42___________________________________________________________________________

B2.7-5 Función de suma para tablas

Las funciones SUM y SUM-ARR adiciona todos los elementos de una tabla depalabras.• Si la tabla consta de palabras de simple formato, el resultado aparece en forma de

una palabra de simple formato (función SUM).• Si la tabla consta de dobles palabras, el resultado aparece en forma de una doble

palabra (función SUM).• Si la tabla consta de palabras flotantes, el resultado se proporciona en forma de una

palabra flotante (función SUM_ARR).

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

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

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

SintaxisFunción Res:=SUM(Tab) Res:=SUM_ARR (Tab)

Parámetros

Tipo Resultado (Res) Tabla (Tab)

Tablas de palabras indexables %MW:L,%KW:L,%Xi.T:L

Palabras indexables %MW

Palabras no indexables %QW,%SW,%NW

Tablas de dobles palabras indexables %MD:L,%KD:L

Dobles palabras indexables %MD

Dobles palabras no indexables %QD,%SD

Tablas de flotantes indexables %MF:L,%KF:L

Palabras flotantes indexables %MF

Nota: El bit %S18 se pone a 1 cuando el resultado no se encuentra dentro de los límites del formatopalabra o doble palabra, según el operando de tabla.

Ejemplo %MW5:=SUM(%MW30:4), donde %MW30= 10, %MW31= 20, %MW32=30, %MW33= 40 %MW5=10+20+30+40=100

%MW5:=SUM(%MW32:12)

%MD50:=SUM(%KD50:20)

%I3.2

%MF0:=SUM_ARR(%KF8:5)

Page 245: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/43

B2.7-6 Funciones de comparación de tablas

Las funciones EQUAL (sobre entero) y EQUAL _ARR (sobre flotante) comparan 3tablas elemento por elemento.

Si aparece una diferencia, se devuelve el rango de los primeros elementos noparecidos bajo forma de una palabra; si no el valor devuelto es igual a -1.

El tercer parámetro proporciona el rango a partir del cual comienza la comparación(ejemplo: 0 para comenzar desde el principio). Este tercer parámetro es opcional (noestá autorizado con la función EQUAL_ARR ); cuando se omite, la comparación seefectúa sobre la totalidad de la tabla.

EstructuraLenguaje de contactos Lenguaje lista de instrucciones

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

Lenguaje Literal estructurado

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

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

Sintaxis

Función Res:=EQUAL(Tab1,Tab2,rango)

Res:=EQUAL_ARR (Tab1,Tab2)

%MW5:=EQUAL(%MW20:7,%KW0:7,3)

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

%I3.2

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

Page 246: Manual PL7

2/44___________________________________________________________________________

BParámetros

Tipo Resultado (Res) Tabla(Tab) Rango

Tablas de palabras %MW:L,%KW:L,%Xi.T:L

Palabras indexables %MW %MW,%KW, %Xi.T

Palabras no indexables %QW,%SW, Val. inm.%QW,%NW %IW,%SW,%NW

Expr. num.

Tablas de dobles palabras %MD:L,%KD:L

Dobles palabras indexables %MD %MD,%KD

Dobles palabras no indexables %QD,%SD Val. inm.%QD,%ID,%SDExpr. num.

Tablas de flotantes %MF:L,%KF:L

Palabras flotantes %MF

Notas• Las tablas deben tener obligatoriamente la misma longitud.• Si el parámetro de rango es superior al tamaño de las tablas, el resultado es igual al rango.

Ejemplo %MW5:=EQUAL(%MW30:4,%KW0:4,1)

0 %MW30= 10 %KW0= 201 %MW31= 20 %KW1= 202 %MW32= 30 %KW2= 303 %MW33= 40 %KW3= 60 ==> %MW33 • %KW3==> %MW5= 3

Page 247: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/45

B2.7-7 Funciones de búsqueda para tablas

Se proponen 11 funciones de búsqueda:• FIND_EQW: en una tabla de palabras, busca la posición del primer elemento igual

a un valor dado.• FIND_GTW: en una tabla de palabras, busca la posición del primer elemento

superior a un valor dado.• FIND_LTW: en una tabla de palabras, busca la posición del primer elemento inferior

a un valor dado.• FIND_EQD: en una tabla de dobles palabras, busca la posición del primer elemento

igual a un valor dado.• FIND_GTD: en una tabla de dobles palabras, busca la posición del primer elemento

superior a un valor dado.• FIND_LTD: en una tabla de dobles palabras, busca la posición del primer elemento

inferior a un valor dado.• FIND_EQR: en una tabla de flotantes, busca la posición del primer elemento igual

a un valor dado,• FIND_GTR: en una tabla de flotantes, busca la posición del primer elemento superior

a un valor dado,• FIND_LTR: en una tabla de flotantes, busca la posición del primer elemento inferior

a un valor dado,• FIND_EQWP: en una tabla de palabras, busca la posición del primer elemento igual

a un valor dado desde un rango,• FIND_EQDP: en una tabla de dobles palabras, busca la posición del primer

elemento igual a un valor dado desde un rango.

El resultado de estas instrucciones es igual al rango del primer elemento encontradoo a -1 si la búsqueda no tiene éxito

EstructuraLenguaje de contactos 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) ;

%MW5:=FIND_EQW(%MW20:7,%KW0)

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

%I3.2

%I1.2

%MW1:=FIND_LTR(%MF40:5,%KF5)

Page 248: Manual PL7

2/46___________________________________________________________________________

BSintaxisFunciónFIND_EQW,FIND_GTW,FIND_LTW Res:=Función(Tab,Val)

FIND_EQD,FIND_GTD,FIND_LTD

FIND_EQR,FIND_GTR,FIND_LTR

FIND_EQWP,FIND_EQDP Res:=Función(Tab,Val,rango)

Parámetros

Tablas de palabras (FIND_EQW,FIND_GTW,FIND_LTW,FIND_EQWP )

Tipo Resultado (Res) Tabla (Tab) Valor (Val), rango

Tablas de palabras indexables %MW:L,%KW:L%Xi.T:L

Palabras indexables %MW %MW,%KW, %Xi.T

Palabras no indexables %QW,%SW Val. inm.%QW,%NW %IW,%SW,%NW,

Expr. num.

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

Tipo Resultado (Res) Tabla (Tab) Valor (Val)

Tablas de palabras indexables %MD:L,%KD:L

Palabras (dobles) indexables %MW %MD,%KD

Palabras (dobles) no indexables %QW,%SW Val. inm.%QD,%NW %ID,%SD

Expr. num.

Nota: para el rango véase la tabla de palabras (idem FIND_EQWP)

Tablas de flotantes (FIND_EQR,FIND_GTR,FIND_LTR)

Tipo Resultado (Res) Tabla (Tab) Valor (Val)

Tablas de flotantes %MF:L,%KF:L

Palabras flotantes indexables %MW %MF,%KF

Palabras flotantes no indexables %QW,%SW Valores inm.%NW Expr. num.

Ejemplo %MW5:=FIND_EQW(%MW30:4,%KW0)Rango0 %MW30= 101 %MW31= 202 %MW32= 30 ==> %KW0= 30 ==> %MW5= 23 %MW33= 40

Page 249: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/47

B

%MW5:=MAX_ARW(%MW20:7)

%MD0:=MIN_ARD(%MD20:7)

%I3.2

%I1.2

%MF8:=MIN_ARR(%MF40:5)

2.7-8 Funciones de búsqueda de valores máx. y mín. para tablas

Se proponen 6 funciones de búsqueda:

• MAX_ARW: en una tabla de palabras, busca el valor máximo.• MIN_ARW: en una tabla de palabras, busca el valor mínimo.• MAX_ARD: en una tabla de dobles palabras, busca el valor máximo.• MIN_ARD: en una tabla de dobles palabras, busca el valor mínimo.• MAX_ARR : en una tabla de flotantes, busca el valor máximo• MIN_ARR: en una tabla de flotantes, busca el valor mínimo.

El resultado de estas instrucciones es igual al valor máximo (o mínimo) encontradoen la tabla.

EstructuraLenguaje de contactos 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) ;

Sintaxis

FunciónMAX_ARW,MIN_ARW Res:=Función(Tab)MAX_ARD,MIN_ARDMAX_ARR,MIN_ARR

Parámetros

Tipo Resultado (Res) Tabla (Tab)

Tablas de palabras indexables %MW:L,%KW:L,%Xi.T:L

Palabras indexables %MW

Palabras no indexables %QW,%SW,%NW

Tablas de dobles palabras indexables %MD:L,%KD:L

Dobles palabras indexables %MD

Dobles palabras no indexables %QD,%SD

Tablas de flotantes %MF:L,%KF:L

Dobles palabras indexables %MF

Page 250: Manual PL7

2/48___________________________________________________________________________

B2.7-9 Número de ocurrencias de un valor en una tabla

Se proponen 3 funciones de búsqueda:

• OCCUR_ARW: en una tabla de palabras, busca el número de elementos igualesa un valor dado.

• OCCUR_ARD: en una tabla de dobles palabras, busca el número de elementosiguales a un valor dado.

• OCCUR_ARR: en una tabla de flotantes, busca el número de elementos iguales aun valor dado.

EstructuraLenguaje de contactos 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 ;

SintaxisFunción Res:= Función (Tab,Val)OCCUR_ARWOCCUR_ARDOCCUR_ARR

Parámetros

Tipo Resultado (Res) Tabla (Tab) Valor (Val)

Tablas de palabras indexables %MW:L,%KW:L,%Xi.T:L

Palabras indexables %MW %MW,%KW,%Xi.T

Palabras no indexables %QW,%SW, %NW Val. inm.%QW,%IW,%SW,%NWExpr. num.

Tablas de palabras indexables %MD:L,%KD:L

Palabras (dobles) indexables %MW %MD,%KD

Palabras (dobles) no indexables %QW,%SW, %NW Val. inm.%QD,%ID,%SDExpr. num.

Tablas de flotantes %MF:L,%KF:L

Palabras (flotantes) indexables %MW %MF,%KF

Palabras (flotantes) no indexables %QW,%SW, %NW Val. inm.Expr. num.

%MW5:=OCCUR_ARW(%MW20:7,%KW0)

%MW0:=OCCUR_ARD(%MD20:7,200)

%I3.2

%I1.2

Page 251: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/49

B2.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 nposiciones de arriba hacia abajo.

• ROL_ARD: desplaza de modo circularelementos de la tabla de doblespalabras n posiciones de arriba haciaabajo.

• ROL_ARR : desplaza de modo circularelementos de la tabla de flotantes nposiciones de arriba hacia abajo,

• ROR_ARW: desplaza de modo circularelementos de la tabla de palabras nposiciones de abajo hacia arriba.

• ROR_ARD: desplaza de modo circularelementos de la tabla de doblespalabras n posiciones de abajo haciaarriba.

• ROR_ARR: desplaza de modo circularelementos de la tabla de flotantes nposiciones de abajo hacia arriba.

EstructuraLenguaje de contactos Lenguaje lista de instrucciones

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

Lenguaje Literal estructurado

IF RE%I1.2 THENROR_ARD (2,%MD20:7) ;

END_IF ;IF RE%I1.3 THEN

ROR_ARR (2,%MF40:5) ;END_IF ;

01245

01245

ROL_ARW(%KW0,%MW20:7)

ROR_ARD(2,%MD20:7)

%I3.2

%I1.2

P

P

ROR_ARR(2,%MF40:5)

%I1.3

P

Page 252: Manual PL7

2/50___________________________________________________________________________

BSintaxis

Funciones ROL_ARW,ROR_ARW Función(n,Tab)

ParámetrosTablas de palabras

Tipo Número de posiciones (n) Tabla (Tab)

Tablas de palabras indexables %MW:L

Palabras indexables %MW,%KW,%Xi.T

Palabras no indexables Val. inm.%QW,%IW,%SW%NW,Expr. num.

Funciones ROL_ARD,ROR_ARD Función(n,Tab)

ParámetrosTablas de dobles palabras

Tipo Número de posiciones (n) Tabla (Tab)

Tablas de palabras indexables %MD:L

Palabras indexables %MW,%KW,%Xi.T

Palabras no indexables Val. inm.%QW,%IW,%SW%NW,Expr. num.

Funciones ROL_ARR,ROR_ARR Función(n,Tab)

ParámetrosTablas de dobles palabras

Tipo Número de posiciones (n) Tabla (Tab)

Tablas de flotantes indexables %MF:L

Palabras indexables %MW,%KW,%Xi.T

Palabras no indexables Val. inm.%QW,%IW,%SW%NW,Expr. num.

Nota: si el valor de n es negativo o nulo, no se efectúa ningún desplazamiento.

Page 253: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/51

B2.7-11 Funciones de ordenación para tablas

Se proponen 3 funciones de ordenación:• 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.

EstructuraLenguaje de contactos Lenguaje lista de instrucciones

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

Lenguaje Literal estructurado

IF %I1.2 THENSORT_ARD (-1,%MD20:6) ;

END_IF ;IF %I1.3 THEN

SORT_ARR (0,%MF40:8) ;END_IF ;

SintaxisFunción Función (sentido,Tab)SORT_ARWSORT_ARDSORT_ARR

• El parámetro "sentido" indica el orden: sentido > 0 significa el orden creciente,sentido < 0 el orden decreciente.

• El resultado (tabla ordenada) se devuelve en el parámetro Tab (tabla por ordenar).

ParámetrosTablas de palabras

Tipo Sentido de ordenación Tabla (Tab)

Tablas de palabras (SORT_ARW) %MW:L

Tablas de dobles (SORT_ARD) %MD:L

Tablas de flotantes (SORT_ARF) %MF:L

Palabras indexables %MW,%KW

Palabras no indexables Val. inm.%QW,%IW,%SW%NW,Expr. num.

SORT_ARW(%MW20,%MW0:6)

SORT_ARD(-1,%MD20:6)

%I3.2

%I1.2

SORT_ARD(0,%MD40:8)

%I1.3

Page 254: Manual PL7

2/52___________________________________________________________________________

B2.7-12 Función de cálculo de longitud de tablas

Se ofrecen 4 funciones de cálculo de longitud de tablas. Estas funciones son útilesespecialmente para la programación de los bloques de función DFB, cuando laslongitudes de las tablas no se han definido explícitamente:• LENGTH_ARW : calcula la longitud de una tabla de palabras en número de

elementos,• LENGTH_ARD : calcula la longitud de una tabla de dobles palabras en número de

elementos,• LENGTH_ARR : calcula la longitud de una tabla de flotantes en número de elementos,• LENGTH_ARX : calcula la longitud de una tabla de bits en número de elementos,

EstructuraLenguaje de contactos Lenguaje lista de instrucciones

LD %I3.2[LENGTH_ARW(tab_mot)]

Lenguaje Literal estructurado

IF %I1.2 THENLENGTH_ARD(tab_dmot)]

END_IF ;IF %I1.2 THEN

LENGTH_ARX(tab_bit)]END_IF ;

SintaxisFunción Result = Función (Tab)LENGTH_ARWLENGTH_ARDLENGTH_ARRLENGTH_ARX

ParámetrosTablas de palabras

Tipo Tabla (Tab) Resultado (Result)

Tablas (LENGTH_ARW) palabra

Tablas (LENGTH_ARD) doble palabra

Tablas (LENGTH_ARR) flotante

Tablas (LENGTH_ARX) bit

Palabras indexables %MW

Palabras no indexables %QW,%SW,%NW

Nota: los parámetros de tabla son objetos puramente simbólicos.

LENGTH_ARW(tab_mot)

LENGTH_ARD(tab_dmot)

%I3.2

%I1.2

LENGTH_ARX(tab_bit)

%I1.3

Page 255: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/53

B2.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 almacenaruna cadena de caracteres. El tamaño de la tabla permite especificar la longitud máximade la cadena de caracteres (255 car. máximos).

Ejemplo: %MB4:6 representa una tabla de 6 bytes quecontiene una cadena de 6 caracteres máximos.

El primer byte del inicio de una tabla debe ser par (no es posible introducir una tablacuyo 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: véase el capítulo 1.2-4, secciónA.

El término cadena de caracteres representa todos los caracteres comprendidos entreel inicio de la tabla y el primer terminador de cadena encontrado.

Se llama "terminador de cadena" el carácter NULO (código hex 00). El signo Ø losimboliza en este capítulo.

Ejemplos:

• la tabla siguiente (de 12 elementos) contiene la cadena de caracteres 'ABCDE' (delongitud 5)

• la tabla siguiente (de 10 elementos) contiene la cadena de caracteres 'ABCDEJKLMN'(de longitud 10)

El número de caracteres antes del terminador de cadena Ø o, si no se detecta ningúnterminador, el tamaño 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 más larga que el tamaño de la tabla

(imposible escribir el terminador de cadena Ø).

• al intentar acceder a un carácter que no se encuentra en la cadena implicada.

• cuando hay incoherencia de parámetros,longitud por eliminar nula (función DELETE), longitud por extraer nula (función MID), longitudpor reemplazar nula (función REPLACE), búsqueda de una subcadena más larga que la cadena(función FIND).

'A' 'B' 'C' 'D' 'E' 'J' 'K' 'L' 'M' 'N'

'A' 'B' 'C' 'D' 'E' Ø 'J' 'K' 'L' 'M' 'N' 'O'

Page 256: Manual PL7

2/54___________________________________________________________________________

B2.8-2 Asignación para cadenas de caracteres

Permite transferir una cadena de caracteres a una tabla de bytes de longitud L.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD TRUE[ %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 debytes de longitud 12.

Sintaxis

Operador Op1:=Op2

Operandos

Tipo Operando 1 (Op1) Operando 2 (Op2)

Tablas de bytes %MB:L %MB:L,%KB:LValor inmediato

'm' 'i' 's' 'e' '_' 'e' 'n' '_' 'r' 'u' 'n' Ø

%MB 30 31 32 33 34 35 36 37 38 39 40 41

%MB30:12:= 'mise_en_run' OPERATE

Page 257: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/55

B2.8-3 Comparación alfanumérica

Estos operadores permiten comparar dos cadenas de caracteres contenidas en lastablas de bytes definidas con parámetros. La comparación se efectúa carácter porcarácter.El resultado es un bit que vale 1 si ambas cadenas satisfacen carácter por carácter lacondición proporcionada por el operador; si no, el bit vale 0.

La tabla de códigos 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'.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Los bloques de comparación seprograman en el área de prueba.

Lenguaje Literal estructurado

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

Ejemplo: %MB20:12 < %MB40:12 ==> SI El resultado es 1

con

No se tienen en cuenta los elementos posteriores al terminador.

Sintaxis

Operador <, >, <=, >=, =, < > Op1 Operador Op2

Operandos

Tipo Operando 1 (Op1) y Operando 2 (Op2)

Tablas de bytes %MB:L,%KB:L, valor inmediato

'a' 'b' 'c' 'd' 'e' 'f' 'h' 'l' Ø 'k' 'w' 'z'

%MB 40 41 42 43 44 45 46 47 48 49 50 51

'a' 'b' 'c' 'd' 'e' 'f' 'g' 'l' Ø 'k' 'w' 'z'

%MB 20 21 22 23 24 25 26 27 28 29 30 31

La comparación se realiza entre corchetesdespués de las instrucciones LD, AND yOR.

%MB20:12< %MB40:12COMPARE

%M10

Page 258: Manual PL7

2/56___________________________________________________________________________

B2.8-4 Conversión Numérico <---> ASCII

Estas funciones permiten convertir un valor numérico (o flotante) en cadena decaracteres codificada en ASCII, o a la inversa.El resultado de la conversión debe transferirse a un objeto PL7 mediante unaoperación de asignación: tabla de bytes, palabra de simple o doble longitud o flotante.

Las conversiones posibles son:

INT_TO_STRING Conversión Binario --> ASCIIDINT_TO_STRING Conversión Binario --> ASCIISTRING_TO_INT Conversión ASCII --> BinarioSTRING_TO_DINT Conversión ASCII --> BinarioREAL_TO_STRING Conversión Flotante --> ASCIISTRING_TO_REAL Conversión ASCII --> Flotante

Formato flotante: ==> véase el capítulo 2.5, sección B

Nota sobre el código ASCIIEl conjunto de 256 caracteres alfanuméricos y de control puede codificarse en 8 bits.Este código llamado ASCII (American Standard Code for Information Interchange) escompatible con la noción de bytes. Por consiguiente, cada tabla de n bytes puedeconstar de n códigos ASCII que definen n caracteres.

2.8-5 Conversión Binario --->ASCII

Estas funciones permiten convertir un valor numérico (palabra de simple o doblelongitud) en cadena de caracteres codificada en ASCII.Cada número, así como el signo del valor definido con un parámetro se codifica enASCII en un elemento de la tabla de bytes resultante.

• Función INT_TO_STRING: el contenido de una palabra de simple longitud puedeestar comprendido entre -32768 y +32767, o sea 5 dígitos más el signo. El resultadoserá una tabla de 6 caracteres más el terminador. El signo '+' o '-' se almacena enel primer carácter, las unidades en el sexto, los décimos en el quinto, etc.

• Función DINT_TO_STRING: el contenido de una palabra de doble longitud puedeestar comprendido entre -2147483648 y +2147483647, o sea 10 dígitos más elsigno. El resultado será una tabla de 12 caracteres más el terminador. El signo '+'o '-' se almacena en el primer carácter, la unidad en el duodécimo, los décimos enel undécimo, etc. El segundo carácter es siempre '0'.

Page 259: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/57

BEstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD TRUE[ %MB10:7:=INT_TO_STRING(%MW20)]

Lenguaje Literal estructurado

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

Ejemplo: conversión Binario ---> ASCII

%MB10:7:= INT_TO_STRING (%MW20) con %MW20 = - 3782 en decimal

==> El resultado se almacena en la tabla de 7 bytes después de %MB10:7

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

Sintaxis

Operador Res:= INT_TO_STRING (valor)

Operandos

Tipo Resultado (Res) Valor

Tablas de 6 bytes %MB:7+ terminador

Palabras indexables %MW, %KW, %Xi.T

Palabras no indexables %IW,%QW,%SW,%NWVal inm., Expr num.

Operador Res:= DINT_TO_STRING (valor)

Operandos

Tipo Resultado (Res) Valor

Tablas de 12 bytes %MB:13+ terminador

Dobles palabras indexables %MD, %KD

Dobles palabras no indexables %ID,%QD,%SD,Val. inm., Expr numérica

'-' '0' '0' '2' '3' '4' '7' '1' '1' '0' '8' '4'

%MB 2 3 4 5 6 7 8 9 10 11 12 1 3

Ø

1 4

'_' '0' '3' '7' '8' '2' Ø

%MB 10 11 12 13 14 15 16

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

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

Page 260: Manual PL7

2/58___________________________________________________________________________

B2.8-6 Conversión ASCII ---> Binario

Estas funciones permiten convertir en binario una cadena de caracteres que representaun valor numérico (resultado transferido a una palabra de simple o doble longitud).Cada elemento de la tabla definida con un parámetro representa el código ASCII deun carácter. Los caracteres autorizados son los números y los caracteres '+' y '-'.• Función STRING_TO_INT: convierte una cadena de 6 caracteres que representa

un valor numérico comprendido entre -32768 y +32767. El signo se almacena enel primer carácter, los diez miles en el segundo, ..., las unidades en el sexto. El valordebe alinearse a la derecha en la cadena.

• Función STRING_TO_DINT: convierte una cadena de 12 caracteres que representaun valor numérico comprendido entre -2147483648 y +2147483647. El signo sealmacena en el primer carácter, el '0' en el segundo, los millares en el tercero, ..., lasunidades en el duodécimo. El valor debe alinearse a la derecha en la cadena.

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

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

Sintaxis

Operador Res:= STRING_TO_INT (cadena)Operandos

Tipo Resultado (Res) Cadena

Palabras indexables %MW

Palabras no indexables %QW,%SW,%NW

Tablas de 6 bytes %MB:7,%KB:7, Val. inm.+ terminador

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 erróneo.

Operador Res:= STRING_TO_DINT (cadena)Operandos

Tipo Resultado (Res) Cadena

Dobles palabras indexables %MD

Dobles palabras no indexables %QD,%SD

Tablas de 12 bytes %MB:13,%KB:13, Val. inm.+ terminador

El bit %S18 se pone a 1 si el valor descrito por la cadena no está comprendido entre -2147483648y +2147483647 o si uno de los 12 caracteres es erróneo.

==> resultado %MW13 = -2347 en decimal'_' '0' '2' '3' '4' '7' Ø

%MB 20 21 22 23 24 25 2 6

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

Page 261: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/59

B2.8-7 Conversión Flotante ---> ASCII

Esta función permite convertir un valor numérico real contenido en una palabra de tipoflotante en cadena de caracteres codificada en ASCII. El resultado se transfiere a unatabla de 13 bytes + el terminador.Cada dígito del valor así como los caracteres '+', '-', '.', 'e' y 'E' se codifican en ASCIIen un elemento de la tabla resultante.El signo del valor se encuentra en el primer carácter, la coma (.) en el tercero, elexponente 'e' en el décimo, el signo del exponente en el undécimo.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

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

Ejemplo: %MB20:14:= REAL_TO_STRING (%MF30) con %MF30 = - 3.234718e+26

==> resultado

Sintaxis

Operador Res:= REAL_TO_STRING (valor)

Operandos

Tipo Resultado (Res) Valor

Tablas de 13 bytes %MB:14+ terminador

Palabras indexables %MF, %KF

Palabras no indexables Val. inm., Expr. numérica

El bit %S18 se pone a 1 si el valor flotante definido en la configuración 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 erróneo.

Page 262: Manual PL7

2/60___________________________________________________________________________

B2.8-8 Conversión ASCII --> Flotante

Esta función permite convertir en flotante una cadena de caracteres que representaun valor numérico real (resultado transferido a una palabra de tipo flotante).Cada elemento de la tabla definida con un parámetro representa el código ASCII deun carácter. Los caracteres autorizados son los dígitos y los caracteres '+', '-', '.', 'e'y 'E'. No se utiliza el terminador de cadena para determinar el fin de cadena. Estosignifica que cada uno de los 13 caracteres de la tabla debe ser correcto.

El signo del valor debe encontrarse en el primer carácter, la coma (.) en el tercero, la'e' en el décimo, el signo del exponente en el undécimo.Por ejemplo, el valor 3.12 debe indicarse bajo la forma '+3.120000e+00'.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

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

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

con

==> resultado %MF18 = - 3.234718e+26

Sintaxis

Operador Res:= STRING_TO_REAL (cadena)

Operandos

Tipo Resultado (Res) Cadena

Palabras indexables %MF

Tablas de 13 bytes %MB:13, %KB:13valor 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 los13 caracteres es erróneo.

Page 263: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/61

B2.8-9 Concatenación de dos cadenas

Concatenación de dos cadenas de caracteres definidas con parámetros. El resultadoes una tabla de bytes que contiene una cadena de caracteres.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD TRUE[ %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)

Sintaxis

Operador Res:=CONCAT (cadena1, cadena2)

Operandos

Tipo Resultado (Res) Cadenas 1 y 2

Tablas de bytes %MB:L %MB:L,%KB:L, Val. inm.

• Si la tabla resultante es demasiado corta, se efectúa un truncamiento y el bit sistema%S15 se pone a 1. %MB30:10:= CONCAT (%MB4:6, %MB14:9)

• Si la tabla resultante es demasiado larga, la cadena se completa con caracteres detipo terminador Ø. %MB30:15:= CONCAT (%MB4:6, %MB14:9)

'i' 'n' 'c' 'o' 'n' 't' 'e' 's' 't' 'a'

%MB 30 31 32 33 34 35 36 37 38 39

'i' 'n' 'c' 'o' 'n' 't' 'e' 's' 't' 'a' 'b' 'l'

%MB 30 31 32 33 34 35 36 37 38 39 40 41

'e' Ø

42 43

Ø

44

'i' 'n' 'c' 'o' 'n' 't' 'e' 's' 't' 'a' 'b' 'l'

%MB 30 31 32 33 34 35 36 37 38 39 40 41

'e' Ø

42 43

't' 'e' 's' 't' 'a' 'b' 'l' 'e' Ø

%MB 14 15 16 17 18 19 20 21 22

'i' 'n' 'c' 'o' 'n' Ø

%MB 4 5 6 7 8 9

==> %S15 à 1

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

Page 264: Manual PL7

2/62___________________________________________________________________________

B2.8-10 Eliminación de una subcadena de caracteres

Eliminación de un cierto número de caracteres (área de longitud L) desde una posicióndada (primer carácter que se debe borrar) en la cadena definida con un parámetro. Elresultado es una tabla de bytes que contiene una cadena de caracteres.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD TRUE[%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 (posición =3)

Sintaxis

Operador Res:=DELETE (cadena, long, pos)

Operandos

Tipo Resultado (Res) Cadena Longitud (long)Posición (pos)

Tablas de bytes %MB:L %MB:L,%KB:LVal. inmediato

Palabras indexables %MW, %KW

Palabras no indexables %IW,%QW,%SW,%NWValor inmediatoExpr. numérica

NotasPosibilidad de solapamiento entre los parámetros después 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 posición del primer carácter que se va a eliminar.

Una longitud o una posición negativa se interpreta como igual a 0. El parámetro posición tiene el valorinicial 1 que corresponde a la primera posición en la cadena de caracteres.

'i' 'n' 'c' 'o' 'n' 't' 'e' 's' 't' 'a' 'b' 'l'

%MB 30 31 32 33 34 35 36 37 38 39 40 41

'e' Ø

42 43

'i' 'n' 's' 't' 'a' 'b' 'l' 'e' Ø

%MB 14 15 16 17 18 19 20 21 22

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

Page 265: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/63

BSi la tabla resultante es demasiado larga, la cadena se completa con caracteres de tipoterminador Ø.

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

• la posición es superior a la longitud de la cadena, o la posición del primer terminadorencontrado es inferior o igual a la posición del primer carácter que se va a eliminar;el resultado es pues una cadena vacía.

• la posición es igual a 0; la tabla resultante contiene una cadena vacía.• la tabla resultante es demasiado corta: se efectúa un truncamiento.

2.8-11 Inserción una subcadena de caracteres

Inserción de la subcadena de caracteres definida por el segundo parámetro (cadena 2)en la cadena de caracteres definida por el primer parámetro (cadena 1).La inserción se efectúa en la primera cadena después del carácter situado en laposición indicada por el parámetro posición (Pos).El resultado de la inserción es una nueva cadena de caracteres transferida a una tablade bytes.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD TRUE[%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:= posición 2

'i' 'n' 'c' 'o' 'n' 't' 'e' 's' 't' 'a' 'b' 'l'

%MB 2 3 4 5 6 7 8 9 10 11 12 13

'e' Ø

14 15

'c' 'o' 'n' 't' 'e' Ø

%MB 30 31 32 33 34 35

'i' 'n' 's' 't' 'a' 'b' 'l' 'e' Ø

%MB 20 21 22 23 24 25 26 27 28

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

Page 266: Manual PL7

2/64___________________________________________________________________________

BSintaxis

Operador Res:=INSERT (cadena1, cadena2, pos)

Operandos

Tipo Resultado (Res) Cadenas 1 y 2 Posición (Pos)

Tablas de bytes %MB:L %MB:L,%KB:LValor inm.

Palabras indexables %MW, %KW, %Xi.T

Palabras no indexables %IW,%QW,%SW,%NWValor inmediato,Expr. numérica

Notas

El parámetro posición tiene el valor inicial 1 que corresponde a la primera posición en la cadenade caracteres.

Es imposible efectuar una inserción en el principio de la cadena. En este caso, se utiliza la funciónCONCAT.

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 continuación.

El valor del parámetro posición es negativo o igual a 0. En este caso, se interpreta como iguala 0 y la tabla resultante contiene una cadena vacía (compuesta de terminadores).

La posición determinada con el parámetro es superior a la longitud de la cadena origen; la tablaresultante contiene pues una cadena vacía (compuesta de terminadores).Si la tabla resultante es demasiado corta, se efectúa un truncamiento.

Page 267: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/65

B2.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 parámetros de posición (pos.) y de longitud (long.) definen elreemplazo que se va a efectuar. Esta longitud corresponde a la longitud de la cadenaque va a desaparecer, no a la longitud de la subcadena que la reemplaza.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD TRUE[ %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 (posición =9)

Sintaxis

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

Operandos

Tipo Resultado (Res) Cadenas 1 y 2 Longitud (long)Posición (pos)

Tablas de bytes %MB:L %MB:L,%KB:LValor inm.

Palabras indexables %MW, %KW, %Xi.T

Palabras no indexables %IW,%QW,%SW,%NWValor inmediato,Expr. numérica

'm' 'i' 's' 'e' '_' 'e' 'n' '_' 's' 't' 'o' 'p'

%MB 2 3 4 5 6 7 8 9 10 11 12 13

Ø

14

's' 't' 'o' 'p' Ø 'r'

%MB 30 31 32 33 34 35

'u' 'n' Ø

36 37 38

'm' 'i' 's' 'e' '_' 'e' 'n' '_' 'r' 'u' 'n' Ø

%MB 20 21 22 23 24 25 26 27 28 29 30 31

Cadena 1

Cadena 2

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

OPERATE

Page 268: Manual PL7

2/66___________________________________________________________________________

BNotas

El parámetro posición tiene el valor inicial 1 que corresponde a la primera posición en la cadenade 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 continuación.

• Si el valor del parámetro posición es negativo o igual a 0. En este caso, se interpreta como iguala 0; la tabla resultante contiene pues una cadena vacía (compuesta de terminadores).

• Si la posición definida por el parámetro es superior o igual a la longitud de la cadena de origen,la tabla resultante contiene pues una cadena vacía (compuesta de terminadores).

• Si la tabla resultante es demasiado corta, se efectúa un truncamiento.

• Si la posición del primer terminador de cadena es inferior o igual a la posición del primer carácterque se va a reemplazar, la tabla de salida es una copia de la tabla de origen hasta el terminadory se completa con caracteres de tipo terminador.

Page 269: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/67

B2.8-13 Extracción de una subcadena de caracteres

Extracción de un cierto número de caracteres en una cadena de origen definida porparámetro (cadena).El parámetro posición (pos) indica el rango del primer carácter que se va a extraer; elparámetro longitud (long) indica el número de caracteres que se van a extraer.La cadena extraída se almacena en una tabla de bytes (Res.).

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD TRUE[%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 (posición)

==> resultado

Sintaxis

Operador Res:=MID (cadena, long, pos)

Operandos

Tipo Resultado (Res) Cadena Longitud (long)Posición (pos)

Tablas de bytes %MB:L %MB:L,%KB:LValor inm.

Palabras indexables %MW,%KW,%Xi.T

Palabras no indexables %IW,%QW,%SW,%NWValor inmediato,Expr. numérica

's' 't' 'o' 'p' Ø Ø

%MB 14 15 16 17 18 19

Ø

20

'm' 'i' 's' 'e' '_' 'e' 'n' '_' 's' 't' 'o' 'p'

%MB 30 31 32 33 34 35 36 37 38 39 40 41

Ø

42

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

Page 270: Manual PL7

2/68___________________________________________________________________________

BNotas

El parámetro posición tiene el valor inicial 1 que corresponde a la primera posición en la cadenade caracteres.

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

Si la longitud definida por el parámetro es superior al tamaño de la cadena de origen, la tablaresultante contiene pues la cadena de origen.

Si se alcanza el último elemento de la tabla o el terminador de cadena antes de extraer el númerode caracteres definido por el parámetro longitud, la extracción se detiene.

El bit sistema %S15 se pone a 1 en los casos descritos a continuación.

• Si el valor del parámetro longitud que se va a extraer es negativo o nulo. En este caso, seinterpreta como igual a 0; la tabla resultante contiene pues una cadena vacía (compuesta determinadores).

• Si el valor del parámetro posición de inicio de extracción es nulo o superior a la longitud de latabla o superior o igual a la posición del primer terminador. En este caso, la tabla resultantecontiene una cadena vacía (compuesta de terminadores).

• Si la tabla resultante es demasiado corta, se efectúa un truncamiento.

Page 271: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/69

B2.8-14 Extracción de caracteres

Extracción de un cierto número de caracteres más a la izquierda (LEFT) o a la derecha(RIGHT) en una cadena de origen definida por el parámetro (cadena).El parámetro longitud (long) define el número de caracteres que se va a extraer.La cadena extraída se almacena en una tabla de bytes (Res.).

EstructuraLenguaje de contactos 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)

==> resultado

Sintaxis

Operador Res:=LEFT (cadena, long)

Res:=RIGHT (cadena, long)

Operandos

Tipo Resultado (Res) Cadena Longitud (long)

Tablas de bytes %MB:L %MB:L,%KB:LValor inm.

Palabras indexables %MW,%KW, %Xi.T

Palabras no indexables %IW,%QW,%SW,%NWValor inmediato,Expr. numérica

'm' 'i' 's' 'e' '_' 'e' 'n' '_' Ø Ø

%MB 10 11 12 13 14 15 16 17 18 19

'm' 'i' 's' 'e' '_' 'e' 'n' '_' 's' 't' 'o' 'p'

%MB 30 31 32 33 34 35 36 37 38 39 40 41

Ø

42

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

Page 272: Manual PL7

2/70___________________________________________________________________________

BNotas

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

Si la longitud definida por el parámetro es superior al tamaño de la cadena de origen, la tablaresultante contiene pues la cadena de origen.

El bit sistema %S15 se pone a 1 en los casos descritos a continuación.

• Si el valor del parámetro longitud que se va a extraer es negativo o nulo. En este caso, la tablaresultante contiene una cadena vacía (compuesta de terminadores).• Si la tabla resultante es demasiado corta, se efectúa un truncamiento.

Page 273: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/71

B2.8-15 Comparación de dos cadenas de caracteres

Comparación de dos cadenas de caracteres. El resultado es una palabra que contienela posición del primer carácter diferente.En caso de igualdad perfecta entre ambas cadenas de caracteres, el resultadoes -1.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

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

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

==> MW2:= 5

Sintaxis

Operador Res:=EQUAL_STR (cadena1, cadena2)

Operandos

Tipo Resultado (Res) Cadenas 1 y 2

Palabras indexables %MW

Palabras no indexables %QW,%SW,%NW.

Tablas de bytes %MB:L,%KB:LValor inmediato

NotaUna longitud o una posición negativa se interpreta como igual a 0.

Las letras mayúsculas se diferencian de las letras minúsculas.

'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'p' 'w' 'x'

%MB 18 19 20 21 22 23 24 25 26 27 28 29

'y' 'z'

30 31

'a' 'b' 'c' 'd' '?' 'f' 'g' 'h' Ø 'v' 'w' 'x'

%MB 50 51 52 53 54 55 56 57 58 59 60 61

'y' 'z'

62 63

%MW2:= EQUAL_STR(%MB18:14, %MB 50:14)OPERATE

Page 274: Manual PL7

2/72___________________________________________________________________________

B2.8-16 Búsqueda de una subcadena de caracteres

Búsqueda de la subcadena de caracteres definida por el segundo parámetro en lacadena de caracteres definida por el primer parámetro.El resultado es una palabra que contiene en la primera cadena la posición de iniciode la subcadena buscada.Si la búsqueda sale sin éxito, el resultado es -1.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

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

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

==> MW2:= 6 Indica que el inicio de la cadena buscada se sitúa a partir del sexto carácter.

Sintaxis

Operador Res:=FIND (cadena1, cadena2)

Operandos

Tipo Resultado (Res) Cadenas 1 y 2

Palabras indexables %MW

Palabras no indexables %QW,%SW,%NW.

Tablas de bytes %MB:L,%KB:LValor inmediato

Nota

Una longitud o una posición negativa se interpreta como igual a 0.

'f' 'g' 'h' Ø

%MB 50 51 52 53

'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' Ø 'w' 'x'

%MB 18 19 20 21 22 23 24 25 26 27 28 29

'y' 'z'

30 31

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

Page 275: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/73

B2.8-17 Longitud de una cadena de caracteres

Esta función devuelve la longitud de la cadena de caracteres definida por parámetros,es decir el número de caracteres que se encuentran antes del terminador.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

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

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

==> %MW2 = 7

Sintaxis

Operador Res:= LEN (cadena)

Operandos

Tipo Resultado (Res) Cadena

Palabras indexables %MW

Palabras no indexables %QW,%SW,%NW.

Tablas de bytes %MB:L, %KB:L,Valor inmediato

'a' 'b' 'c' 'd' 'e' 'f' 'g' Ø 'n' 'o' 'p' 'r'

%MB 20 21 22 23 24 25 26 27 28 29 30 31

NotaSi no se encuentra ningún terminador, esta función devuelve el tamaño de la tabla (véase elcapítulo 2.8-1).

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

Page 276: Manual PL7

2/74___________________________________________________________________________

B2.9 Instrucciones de gestión de tiempo: fechas, horas, duraciones

2.9-1 Formato de los parámetros

Los parámetros Fecha, Hora, Duración utilizados por estas instrucciones correspondena los formatos estándar definidos por la norma IEC1131-3.

• Formato Duración (tipo TIME)

Este formato permite codificar duraciones expresadas en décimos 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 décimos.

El valor se codifica en 32 bits (una doble palabra) cuyos límites se fijana [0, 4294967295] décimos de segundos. El límite superior representaaproximadamente 13 años y 7 meses.

• Formato Fecha (tipo DATE)

Este formato permite codificar el año, el mes y el día. 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 Año : 4 dígitos

Año Mes Día Mes : 2 dígitos Día : 2 dígitos Ejemplo: expresado en hexadecimal

19h 84h 06h 25h = 1984-06-25

Sólo se autorizan los valores comprendidos en el intervalo [1990-01-01, 2099-12-31].

Page 277: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/75

B• Formato Hora del día (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 dígitos (pal. más sign.)

Hor Min Seg Minutos: 2 dígitos (pal. más sign.) Segundos: 2 dígitos (pal. menos sign.) Ejemplo: expresado en hexadecimal

23h 12h 34h = 23:12:34

Sólo 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 año, el mes, el día, la hora, los minutos y los segundos. Corresponde al formato DATE_AND_TIME de la norma.

El valor se muestra bajo la forma siguiente: yyyy-mm-dd-hh:mm:ss Por ejemplo: 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 Año Mes Día Ho Min Seg

Ejemplo: expresado en hexadecimal

1984h 06h 25h 23h 12h 34h

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

Page 278: Manual PL7

2/76___________________________________________________________________________

B• Formato Hora, Minuto, Segundo (HMS) Este formato, utilizado exclusivamente por la función 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 dígitos (pal. más sign.)

Ho Min Seg Minutos: 2 dígitos (pal. menos sign.) Segundos: 2 dígitos (pal. menos sign.) Ejemplo: expresado en hexadecimal

23h 12h 34h = 23:12:34

2.9-2 Utilización de bits y palabras sistema - Generalidades

El bit sistema %S17 se pone a 0 en los casos siguientes:

• resultado de una operación fuera del intervalo de valores autorizados,

• un parámetro de entrada no interpretable ni coherente en el formato deseado (DATE, DT o TOD),

• operación en un formato Hora del día (TOD) que tiene como consecuencia un cambio de día,

• conflicto de acceso al reloj-calendario.

El bit sistema %S15 se pone a 1 al escribir una cadena en una tabla cuando ésta esmás larga que el tamaño de la tabla.

Las palabras sistema

• %SD18: contador de tiempo absoluto; permite también efectuar cálculos de duración(aumentado por el sistema cada 1/10 de segundo),

• %SW49 a %SW53 pueden utilizarse también para mostrar fechas (véase elcapítulo 3.2-2, sección B).

Page 279: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/77

B2.9-3 Función reloj-calendario

Esta función permite controlar acciones en horarios y fechas predefinidos o calculados.Posiciona a 1 el parámetro de salida OUT si la fecha suministrada por el reloj delautómata en el momento de la llamada de la función está comprendida en el períodoprogramado en los parámetros de entradas.

Sintaxis

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

Características de los parámetros

Salida OUT Bit que contiene el resultado de las comparacionesefectuadas por la función reloj-calendario: a 1durante los períodos definidos por los parámetros.

Fecha de inicio DBEG Palabra que codifica la fecha de inicio del período(mes-día) en BCD (valores límites: 01-01 a 12-31)

Fecha de fin DEND Palabra que codifica la fecha de fin del período(mes-día) en BCD (valores límites: 01-01 a 12-31)

Día de la semana WEEK Palabra que codifica el o los días de la semanaincluidos en el período definido por los parámetrosDBEG y DEND.Los 7 bits menos significativos representan los 7días de la semana: bit 6 = lunes, bit 5 = martes,..., bit0 = domingo.

Hora de inicio HBEG Doble palabra que codifica la hora de inicio delperíodo en el día (horas-minutos-segundos) enBCD formato hora del día (tipo: TOD). Valoreslímites: 00:00:00, 23:59:59

Hora de fin HEND Doble palabra que codifica la hora de fin del períodoen el día (horas-minutos-segundos) en BCD formatohora del día (tipo: TOD). Valores límites: 00:00:00,23:59:59

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

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

OPERATE

Page 280: Manual PL7

2/78___________________________________________________________________________

BLenguaje Literal estructurado

Ejemplo: programación de 2 franjas horarias no contínuas

SCHEDULE ( 16#0501, (* fecha de inicio: 1° mai*)16#1031, (* fecha de término: 31 octobre*)2#0000000001111100, (* lunes a viernes*)16#08300000, (* hora de incio: 8h30*)16#12000000, (* hora de término: 18h*)%M0 (* resultado en: %M0*)) ;

SCHEDULE ( 16#0501, (* fecha de inicio: 1° mai*)16#1031, (* fecha de término: 31 octobre*)2#0000000001111100, (* lunes a viernes*)16#14000000, (* hora de inicio: 14h*)16#18000000, (* hora de término: 18h*)%M1 (* resultado en: %M1*)) ;%Q0.0:=%M0 OR %M1;

OperandosSCHEDULE (DBEG, DEND, WEEK, HBEG, HEND, OUT)

Tipo DBEG,DEND,WEEK HBEG,HEND OUT

Palabras indexables %MW,%KW,%Xi.T

Palabras no indexables %IW,%QW,%SW,%NWValor inmediatoExpr. numérica

Dobles palabras indexables %MD,%KD

Dobles palabras %ID,%QDno indexables Valor inmediato

Expr. numérica

Bits %I,%Q, %M, %S,%BLK ,%•:Xk, %X

Notas:• los 2 parámetros DBEG y DEND definen una franja de días en el año. esta franja puede estar

solapada entre 2 años civiles. Ejemplo: del 10 de octubre al 7 de abril. El 29 de febrero se puedeutilizar en este período, pero se ignorará en los años no bisiestos.

• los 2 parámetros HBEG y HEND definen una franja horaria en el día. esta franja puede estarsolapada entre 2 días. 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 errónea, es decirque no corresponde a una fecha u hora real, la salida OUT estará a 0 y el bit %S17 se pondráa 1.

• si el autómata de destino no posee un reloj interno (caso del TSX37-10), la salida estará a 0y el bit sistema %S17 se pondrá a 1.

• Cuando la precisión no es importante, es posible disminuir la carga del procesador del autómatacadenciando la llamada de la función SCHEDULE mediante el bit sistema %S6 o %S7.

Page 281: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/79

B2.9-4 Lectura de la fecha sistema

Lectura de la fecha sistema (Real Time Clock) y transferencia al objeto definido porel parámetro en el formato Fecha y hora (DT).

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

IF %M6 THENRRTC (%MW2:4) ;

END_IF ;

Ejemplo: RRTC (%MW2:4)El resultado se transfiere a la tabla de palabras internas de longitud 4: %MW2 a %MW5.

SintaxisOperador RRTC (fecha)

Operando

Tipo Fecha

Tablas de 4 palabras %MW:4en formato fecha y hora

2.9-5 Actualización de la fecha sistema

Actualización de la fecha sistema (Real Time Clock) y transferencia al objeto definidopor el parámetro en el formato Fecha y hora (DT).

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

RRTC (%MW2:4)OPERATE%M6

%M7

%MW2:=16#4300OPERATE

%MW3:=16#1732

%MW4:=16#1124

%MW5:=16#1995

P

OPERATE

OPERATE

OPERATE

WRTC (%MW2:4)OPERATE

Page 282: Manual PL7

2/80___________________________________________________________________________

BLenguaje 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 envía al sistema mediante las funciones WRTC

SintaxisOperador WRTC (fecha)

Operando

Tipo Fecha

Tablas de 4 palabras %MW:4, %KW:4en formato fecha y hora

2.9-6 Lectura de la fecha y del código de parada

Lectura de la fecha de la última palabra del autómata y del código que especifica lacausa de esta parada (en la 5a palabra, equivalente a %SW58, véase el capítulo 3.2-2, sección B).

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

IF %M7 THENPTC (%MW4:5) ;

END_IF ;

Ejemplo: PTC (%MW4:5)El resultado se transfiere a la tabla de palabras internas de longitud 5: %MW4 a %MW8

SintaxisOperador PTC (fecha)

Operando

Tipo Fecha

Tablas de 5 palabras %MW:5en formato fecha y hora

PTC (%MW4:5)OPERATE

%M7

Page 283: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/81

B2.9-7 Lectura del día de la semana

Esta función proporciona como resultado el día actual de la semana bajo forma deun número de 1 a 7 transferido a una palabra (1 = lunes, 2 = martes, 3 = miércoles,4 = jueves, 5 = viernes, 6 = sábado, 7 = domingo).

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

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

END_IF ;

Ejemplo: %MW5:= DAY_OF_WEEK() %MW5:= 4 corresponde a jueves

Sintaxis

Operador Res:=DAY_OF_WEEK ()

Operando

Tipo Resultado (Res)

Palabras indexables %MW

Palabras no indexables %QW, %SW, %NW

Observación

Si la función no pudo actualizar el resultado por causa de un error de acceso alreloj-calendario, el resultado devuelto es 0 y el bit sistema %S17 se pone a 1.

%MW5:=DAY_OF_WEEK()OPERATE

%M7

Page 284: Manual PL7

2/82___________________________________________________________________________

B2.9-8 Agregar/quitar una duración en una fecha

Agregar o quitar una duración (en décimos de segundo) (In2) en una fecha deorigen(In1). El resultado es una nueva fecha transferida a una tabla de 4 palabras.

ADD_DT () = agrega una duración SUB_DT () = quita una duración

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

IF %M7 THENRRTC (%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 décimos de segundo redondeados a 1 min. 31 s) %MW2:4:= nueva fecha

Sintaxis

Operadores Res:=ADD_DT (In1, In2)

Res:=SUB_DT (In1, In2)

%M7

RRTC (%MW2:4)OPERATE

%MD8:=906OPERATE

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

WRTC (%MW2:4)OPERATE

Page 285: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/83

BOperandos

Tipo Resultado (Res) In1 (fecha origen) In2 (duración)

Tablas de 4 palabras %MW:4 %MW4:4, %KW:4en formato fecha y hora

Dobles palabras indexables %MD,%KD

Dobles palabras %ID,%QDno indexables Valor inmediato

Expr. numérica

Notas

• El principio del redondeo se aplicará al parámetro "duración" (expresado en 1/10 de segundo) para permitir agregar a o quitar de la fecha (precisión 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 aplicación la gestión de los años bisiestos.

• Si el resultado de la operación está fuera del intervalo de valores autorizados, el bit sistema %S17 se pone a 1 y el valor del resultado equivale al límite mínimo (para SUB_DT) o queda bloqueado en el máximo (para ADD_DT).

• Si el parámetro 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 duración en una hora del día

Agrega o quita una duración en una hora del día. El resultado es una nueva hora deldía que se transfiere a una doble palabra.

ADD_TOD () = agrega una duración SUB_TOD () = quita una duración

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

%M7

%MD8:= 906OPERATE

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

Page 286: Manual PL7

2/84___________________________________________________________________________

BLenguaje 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 décimos 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 Resultado (Res) In1(hora de origen) y In2 (duración)

Dobles palabras indexables %MD %MD,%KD

Dobles palabras %QD %ID,%QDno indexables Valor inmediato, Expr. numérica

Res e In1 utilizan el formato TOD, In2 el formato duración.

Notas

• El principio del redondeo se aplicará al parámetro "duración" (expresado en 1/10 de segundo) para permitir agregar a o quitar de la fecha (precisión 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 día, si el resultado de la operación 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 módulo 24:00:00.

• Si el parámetro de entrada "hora del día" no puede interpretarse en el formato TOD, el bit sistema %S17 se pone a 1 y el resultado es igual a 00:00:00 .

Page 287: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/85

B2.9-10 Desviación entre dos fechas (sin hora)

Calcula la desviación de tiempo entre dos fechas. El resultado, indicado como valorabsoluto, se transfiere a una doble palabra.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

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

END_IF ;

Ejemplo: %MD10:= DELTA_D (%MD2, %MD4 ) %MD2:= Fecha número1 (ej.: 1994-05-01) %MD4:= Fecha número2 (ej.: 1994-04-05)==> %MD10 = 22464000 (==> desviación = 26 días)

Sintaxis

Operador Res:=DELTA_D (Fecha1,Fecha2)

Operandos

Tipo Resultado (Res) Fechas 1 y 2

Dobles palabras indexables %MD %MD,%KD

Dobles palabras %QD %ID,%QDno indexables Valor inmediato, Expr. numérica

Res utiliza el formato TIME, Fechas 1 y 2 el formato DATE.

El formato TIME se define con una precisión de un décimo de segundo. El formatoDATE se define con una precisión de un día. La desviación de tiempo calculada seráun múltiplo de 864000 (= 1 día = 24 h x 60 mn x 60 s x 10 décimos).

Atención

• Hay rebasamiento, si el resultado excede el valor máximo admitido para unaduración (TIME). En este caso, el resultado es igual a 0 y el bit sistema %S18se pone a 1.

• Si uno de los parámetros de entrada es ininterpretable e incoherente en elformato DATE, el bit sistema %S17 se pone a 1 y el resultado es igual a 0.

%MD10:=DELTA_D(%MD2,%MD4)OPERATE

%M7

Page 288: Manual PL7

2/86___________________________________________________________________________

B2.9-11 Desviación entre dos fechas (con hora)

Calcula la desviación de tiempo entre dos fechas. El resultado, indicado como valorabsoluto, se transfiere a una doble palabra.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD TRUE[%MD10:= DELTA_DT (%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 número1(ej.: 1994-05-01-12:00:00) %MW6:4:= Fecha número2 (ej.: 1994-05-01-12:01:30)==> %MD10 = 900 (==> desviación = 1 minuto y 30 segundos)

Sintaxis

Operador Res:=DELTA_DT (Fecha1,Fecha2)

Operandos

Tipo Resultado (Res) Fechas 1 y 2

Dobles palabras indexables %MD

Dobles palabras %QDno indexables

Tablas de 4 palabras %MW:4, %KW:4en formato DT

Res utiliza el formato TIME, Fechas 1 y 2 el formato DT.

El formato TIME se define con una precisión de un décimo de segundo. El formato DTse define con una precisión de un segundo. La desviación de tiempo calculada seráun múltiplo de 10.

Atención

• Hay rebasamiento si el resultado excede el valor máximo admitido para unaduración (TIME). En este caso, el resultado es igual a 0 y el bit sistema %S18se pone a 1.

• Si uno de los parámetros de entrada es ininterpretable e incoherente en elformato DT, el bit sistema %S17 se pone a 1 y el resultado es igual a 0.

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

Page 289: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/87

B2.9-12 Desviación entre dos horas

Calcula la desviación de tiempo entre dos horas del día. El resultado, indicado comovalor absoluto, se transfiere a una doble palabra de duración.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD TRUE[%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 (==> desviación = 11 minutos)

Sintaxis

Operador Res:=DELTA_TOD (Hora1,Hora2)

Operandos

Tipo Resultado (Res) Horas 1 y 2

Dobles palabras indexables %MD %MD,%KD

Dobles palabras %QD %ID,%QDno indexables Valor inmediato, Expr. numérica

Res utiliza el formato TIME, Horas 1 y 2 el formato TOD.

El formato TIME se define con una precisión de un décimo de segundo. El formato TODse define con una precisión de un segundo. La desviación de tiempo calculada seráun múltiplo de 10.

Atención

Si uno de los parámetros de entrada es ininterpretable e incoherente en el formatoTOD, el bit sistema %S17 se pone a 1 y el resultado es igual a 0.

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

Page 290: Manual PL7

2/88___________________________________________________________________________

B2.9-13 Conversión de una fecha (sin hora) en cadena de caracteres

Esta instrucción 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 carácterterminador Ø. Cada carácter Y,M,D simboliza un dígito.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

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

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

==>

SintaxisOperador Res:=DATE_TO_STRING(Fecha)

Operandos

Tipo Resultado (Res) Fecha

Tablas de 11 bytes %MB:11

Dobles palabras indexables %MD,%KD

Dobles palabras %ID,%QDno indexables Valor inmediato, Expr. numérica

Notas: si el parámetro de entrada (fecha) es ininterpretable e incoherente en el formato DATE,el bit sistema %S17 se pone a 1 y la función devuelve la cadena ' **** - ** - ** ' . Si la cadena desalida es demasiado corta, se efectúa un truncamiento y el bit sistema %S15 se pone a 1.

%MB2:8:= DATE_TO_STRING (%MD40)

==>

Si la cadena de salida es demasiado larga, la cadena se completa con caracteres de tipoterminador Ø.

%MB2:12:= DATE_TO_STRING (%MD40)

==>

'1' '9' '9' '8' '-' '1' '2' '-'

%MB 2 3 4 5 6 7 8 9

'1' '9' '9' '8' '-' '1' '2' '-' '2' '7'

%MB 2 3 4 5 6 7 8 9 10 11

Ø

12

==> %S15 = 1

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

'1' '9' '9' '8' '-' '1' '2' '-' '2' '7' Ø

%MB 2 3 4 5 6 7 8 9 10 11 12

Ø

13

Page 291: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/89

B2.9-14 Conversión de una fecha completa en cadena de caracteres

Esta instrucción convierte una fecha completa (con hora) en cadena de caracteres enel formato: YYYY-MM-DD-HH:MM:SS (19 caracteres). El último elemento de estacadena es el carácter terminador Ø. Cada carácter Y,M,D,H,M,S simboliza un dígito.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

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

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

Sintaxis

Operador Res:=DT_TO_STRING(Fecha)

Operandos

Tipo Resultado (Res) Fecha

Tablas de 20 bytes %MB:20

Tablas de 4 palabras %MW:4, %KW:4en formato DT

Notas: si el parámetro de entrada (fecha) es ininterpretable e incoherente en el formato DT(DATE_AND_TIME), el bit sistema %S17 se pone a 1 y la función devuelvela cadena ' **** - ** - ** - **: **: ** '. Si la cadena de salida es demasiado corta, se efectúa untruncamiento y el bit sistema %S15 se pone a 1.

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

==>

• Si la cadena de salida es demasiado larga, la cadena se completa con caracteres detipo terminador Ø.

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

==>

'1' '9' '9' '8' '-' '1' '2' '-'

%MB 2 3 4 5 6 7 8 9

'1' '9' '9' '8' '-' '1' '2' '-' '2' '7'

%MB 2 3 4 5 6 7 8 9 10 11

'-' '2' '3' ':' '1' '4' ':' '3 '

12 13 14 15 16 17 18 19

'7' Ø

20 21

Ø

22

'1' '9' '9' '8' '-' '1' '2' '-' '2' '7'

%MB 2 3 4 5 6 7 8 9 10 11

'-' '2' '3' ':' '1' '4' ':' '3 '

12 13 14 15 16 17 18 19

'7' Ø

20 21

==> %S15 = 1

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

Page 292: Manual PL7

2/90___________________________________________________________________________

B2.9-15 Conversión de una duración en cadena de caracteres

Esta instrucción convierte una duración (en el formato TIME) en cadenade 15 caracteres. El resultado se descompone en horas, minutos, segundos y décimos:HHHHHH:MM:SS.D. El último elemento de esta cadena es el carácter terminador Ø.Cada carácter H,M,S,D simboliza un dígito.

La duración máx. corresponde a 119304 horas, 38 minutos, 49 segundos y 5 décimos.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

Lenguaje Literal estructurado

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

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

Sintaxis

Operador Res:=TIME_TO_STRING(Duración)

Operandos

Tipo Resultado (Res) Duración

Tablas de 15 bytes %MB:15

Dobles palabras indexables %MD,%KD

Dobles palabras %ID,%QDno indexables Valor inmediato, Expr. numérica

Duración: utiliza el formato TIME.

NotaSi la cadena de salida es demasiado corta, se efectúa un truncamiento y el bit sistema %S15 sepone a 1.

%MB2:8:= TIME_TO_STRING (%MD40)

==>'0' '0' '7' '6' '5' '4' ':' '3'

%MB 2 3 4 5 6 7 8 9

'0' '0' '7' '6' '5' '4' ':' '3' '2' ':'

%MB 2 3 4 5 6 7 8 9 10 11

'1' '0' '.' '3' Ø

12 13 14 15 16

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

==> %S15 = 1

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

Page 293: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/91

BSi la cadena de salida es demasiado larga, la cadena se completa con caracteres de tipoterminador Ø.

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

2.9-16 Conversión de una hora del día en cadena de caracteres

Esta instrucción convierte una hora del día (formato TOD - TIME_OF_DAY) en cadenade 8 caracteres en el formato HH:MM:SS más un carácter de tipo terminador Ø. Cadacarácter H,M,S simboliza un dígito.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

Lenguaje Literal estructurado

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

Ejemplo: %MB2:9:= TOD_TO_STRING (%MD40)con %MD40:= 23:12:27 (formato TOD)

==>

Sintaxis

Operador Res:=TOD_TO_STRING(hora)

Operandos

Tipo Resultado (Res) Hora

Tablas de 9 bytes %MB:9

Dobles palabras indexables %MD,%KD

Dobles palabras %ID,%QDno indexables Valor inmediato, Expr. numérica

Hora: utiliza el formato TOD.

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

%MB 2 3 4 5 6 7 8 9

Ø

10

'0' '0' '7' '6' '5' '4' ':' '3' '2' ':'

%MB 2 3 4 5 6 7 8 9 10 11

'1' '0' '.' '3' Ø

12 13 14 15 16

Ø

17

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

OPERATE

Page 294: Manual PL7

2/92___________________________________________________________________________

B

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

%MB 2 3 4 5 6 7 8 9

Ø

10

Ø

11

NotaSi la cadena de salida es demasiado corta, se efectúa un truncamiento y el bit sistema %S15 sepone a 1.

%MB2:8:= TOD_TO_STRING (%MD40) (con %MD40:= 23:12:27)

==>

Si la cadena de salida es demasiado larga, la cadena se completa con caracteres de tipoterminador Ø.

%MB2:10:= TOD_TO_STRING (%MD40) (con %MD40:= 23:12:27) ==>

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

%MB 2 3 4 5 6 7 8 9

==> %S15 = 1

Page 295: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/93

B2.9-17 Conversión de una duración en HHHH:MM:SS

Esta instrucción convierte una duración (en el formato TIME) en número de horas-minutos-segundos, HHHH:MM:SS. Valores límites: [0000:00:00 , 9999:59:59].

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

%MD100:= TRANS_TIME (%MD2) ;

Ejemplo: %MD100:= TRANS_TIME (%MD2)con %MD2:= 86324873 décimos de segundo

==> MD2

valores expresados en hexadecimal

Sintaxis

Operador Res:=TRANS_TIME(duración)

Operandos

Tipo Resultado (Res) Duración

Dobles palabras indexables %MD %MD,%KD

Dobles palabras %QD %ID,%QDno indexables Valor inmediato, Expr. numérica

Res: utiliza el formato HMS.Duración: utiliza el formato TIME.

NotasEl principio del redondeo se aplicará al parámetro "duración" (expresado en 1/10 de segundo)para permitir la conversión (precisión de un segundo):

- sssssssss.0 a sssssssss.4 redondeado a sssssssss.0- sssssssss.5 a sssssssss.9 redondeado a sssssssss.0 + 1.0

La duración máxima convertida puede alcanzar 10000 horas. Esto significa que si el valor dela duración (TIME) definido por el parámetro es superior o igual a 360000000, ésta no puedeconvertirse. El bit sistema %S15 se pone a 1 y el resultado es igual a 0000:00:00.

31 16 8 0

2 3 9 7 54 47

%MD100:=TRANS_TIME(%MD2)OPERATE

%MD100:=TRANS_TIME(%MD2)OPERATE

Page 296: Manual PL7

2/94___________________________________________________________________________

B2.10 Instrucciones para tablas de bits

2.10-1 Copia de una tabla de bits en una tabla de bits

Esta función copia bit a bit una tabla de bits en otra tabla de bits.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

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

Sintaxis

Operador Res:=COPY_BIT (Tab)

Operandos

Tipo Resultado (Res) Tab (tabla)

Tabla de bits %M:L, %Q:L, %I:L %M:L, %Q:L, %I:L, %Xi:L

Notas• Las tablas pueden ser de tamaño diferente. En este caso, la tabla resultante contiene el

resultado de la función ejecutada con una longitud que equivale al más pequeño de los tamañosde tabla. El resto de la tabla resultante no se modifica.

• Se debe prestar atención a solapamientos entre la tabla de entrada y la tabla resultante.

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

Page 297: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/95

B2.10-2 Instrucciones lógicas para tablas de bits

Las funciones asociadas permiten realizar una operación lógica bit a bit entre dostablas de bits y almacenar el resultado en otra tabla de bits.

• AND_ARX : Y lógica (bit a bit).• OR_ARX : O lógica (bit a bit).• XOR_ARX : O exclusiva (bit a bit).• NOT_ARX : complemento lógico (bit a bit) de una tabla.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD TRUE[%M10:7:= AND_ARX (%M20:7,%M30:7)]

LD TRUE[%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 Resultado (Res) Tablas 1 y 2 (Tab)

Tabla de bits %M:L, %Q:L, %I:L %M:L, %Q:L, %I:L, %Xi:L

Notas• Las tablas pueden ser de tamaño diferente. En este caso, la tabla resultante contiene el

resultado de la función ejecutada con una longitud que equivale al más pequeño de los tamañosde tabla. El resto de la tabla resultante no se modifica.

• Se debe prestar atención a solapamientos entre la tabla de entrada y la tabla resultante.

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

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

Page 298: Manual PL7

2/96___________________________________________________________________________

B2.10-3 Copia de una tabla de bits en una tabla de palabras

La función copia los bits de una tabla o de una parte de tabla de bits en una tabla depalabras (o dobles palabras).

En la tabla de bits, un número de bits (nbit) se copia a partir de una cierta fila (brow).

En la tabla de palabras (o dobles palabras), la copia se efectúa a partir de una fila (wrowo 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.

EstructuraLenguaje de contactos 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)]

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

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

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

bit 15 bit 0

%MW10:7

%M20:29

fila 0

fila 2

fila 0

fila 3 (brow)

Número de bits (nbit):16 + 6

Page 299: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/97

BSintaxis

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

Operandos

Tipo Resultado (Res) Tabla (Tab) brow - nbitwrow o drow

Tablas de palabras %MW:L

Tablas de dobles palabras %MD:L

Tablas de bits %M:L, %Q:L, %I:L,%Xi.L

Palabras indexables %MW, %KW, %Xi.T

Palabras no indexables %IW, %QW,%SW, %NW,Valor inmediatoExpr. numérica

Notas• Si el número de bits que se van a tratar es superior al número de bits restantes desde la fila

(brow) en la tabla, la función ejecuta la copia hasta el último elemento de la tabla.• Si el número de bits que se van copiar es superior al número de bits que constituyen las palabras

restantes de la tabla resultante, la función detiene la copia en el último elemento de la tabla depalabras (o dobles palabras).

• Un valor negativo en los parámetros brow, nbit, wrow o drow se interpretará como nulo.

Page 300: Manual PL7

2/98___________________________________________________________________________

B

bit 15 bit 0

%MW10:7

%M20:36

2.10-4 Copia de una tabla de palabras en una tabla de bits

La función 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 número de palabras (nwd) se copiaa partir de la palabra de fila (wrow o drow).

En la tabla de bits, la copia se efectúa a partir de la fila (brow), comenzando en el bitmenos 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.

EstructuraLenguaje de contactos 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)]

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:=W_BIT(%MW10:7,2,2,3)OPERATE

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

fila 0

(wrow) fila 2

fila 0fila 3 (brow) fila 19

Page 301: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/99

BSintaxis

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

Operandos

Tipo Resultado (Res) Tabla (Tab) wrow o drownwd - brow

Tablas de bits %M:L,%Q:L,%I:L

Tablas de palabras %MW:L,%KW:L

Tablas de dobles palabras %MD:L,%KD:L

Palabras indexables %MW, %KW, %Xi.T

Palabras no indexables %IW, %QW,%SW, %NW,Valor inmediatoExpr. numérica

Notas• Si el número de bits que se van a tratar es superior al número de bits restantes desde la fila

(Wrow) en la tabla, la función ejecuta la copia hasta el último elemento de la tabla.• Si el número de bits que se van copiar es superior al número de bits que constituyen las palabras

restantes de la tabla resultante, la función detiene la copia en el último elemento de la tabla.• Un valor negativo en los parámetros brow, nbit, wrow o drow se interpretará como nulo.

Page 302: Manual PL7

2/100___________________________________________________________________________

B2.11 Funciones "Orphée": desplazamientos, contador

2.11-1 Desplazamientos en palabras con recuperación de bits desplazados

Las funciones efectúan desplazamientos aritméticos a la izquierda o a la derecha enuna palabra o doble palabra (a) según el número de desplazamientos indicado (nbit).

Después del desplazamiento, el valor se almacena en (res) y los bits desplazados en(rest).

• WSHL_RBIT : desplazamiento a la izquierda en la palabra con recuperación debits desplazados.

• DSHL_RBIT : desplazamiento a la izquierda en la doble palabra con recuperaciónde bits desplazados.

• WSHRZ_C : desplazamiento a la derecha en la palabra con relleno de ceros yrecuperación de bits desplazados.

• DSHRZ_C : desplazamiento a la derecha en la doble palabra con relleno deceros y recuperación de bits desplazados.

• WSHR_RBIT : desplazamiento a la derecha en la palabra con extensión de signoy recuperación de bits desplazados.

• DSHR_RBIT : desplazamiento a la derecha en la doble palabra con extensión designo y recuperación de bits desplazados.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

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

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

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

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

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

Page 303: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/101

BEjemplo:

WSHL_RBIT(%MW20,%MW30,%MW21,%MW10) con %MW30 = 4

WSHRZ_C(%MW20,%MW30,%MW21,%MW10) con %MW30 = 4

DSHR_RBIT(%MD30,%MW40,%MD20,%MD10) con %MW40 = 6

SintaxisOperador WSHL_RBIT (a, nbit, res, rest)

WSHRZ_C (a, nbit, res, rest)WSHR_RBIT (a, nbit, res, rest)

Operandos

Tipo a nbit resrest

Palabras indexables %MW,%KW %MW,%KW, %Xi.T %MW

Palabras no indexables %IW, %QW, %IW, %QW, %QW, %SW,%NW%SW, %NW %SW, %NW,Valor inmediato Valor inmediatoExpr. numérica Expr. numérica

1000 0000 1111 0001 0001 0000 0000 0000

a = %MW20 rest = %MW10

0000 1000 0000 1111

res = %MW21

1111 0110 1000 0000

0000 0000 0000 0001 0001 1111 0110 1000

rest = %MW10 A = %MW20

res = %MW21

Copia de bits desplazados

Relleno de bits con ceros

Copia de bits desplazados

Relleno de bits con ceros

0000 0000 11 00 1111

1000 0000 1111 0001 0000 0000 0000 0000

a = %MD30 rest = %MD10

0000 0000 00 00 1111

res = %MD20

1100 0100 0000 0011

1 111 11 10 0000 0011

PF

Pf

PF

Pf

PF

Pf

Copia de bits desplazados

Propagación del bit de signo en losbitsliberados por el desplazamiento

Conservación del signo

Page 304: Manual PL7

2/102___________________________________________________________________________

BSintaxis

Operador DSHL_RBIT (a, nbit, res, rest)DSHRZ_C (a, nbit, res, rest)DSHR_RBIT (a, nbit, res, rest)

Operandos

Tipo a nbit resrest

Dobles palabras indexables %MD,%KD %MD

Dobles palabras %ID,%QD,%SD %QD,%SD no indexables Valor inmediato

Expr. numérica

Palabras indexables %MW, %KW, %Xi.T

Palabras no indexables %IW, %QW,%SW, %NW,Valor inmediatoExpr. numérica

Notas• Si el valor del parámetro (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.

Page 305: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/103

B

5 4 5 6 5 6 7 5

en : %M9

cd : %M12

mcd : %MW20:X1

cu : %M11

mcu : %MW20:X0

Qmax : %M10

Qmin : %M16

cv = %MW15

2.11-2 Contaje/descontaje con indicación de rebasamiento

La función efectúa un contaje/descontaje con indicación de rebasamiento. Esta funciónse ejecuta únicamente si la entrada de validación (en) está en el estado 1.

Dos entradas separadas (cu y cd) permiten contar y descontar sucesos. La salida(Qmín) se pone a 1 cuando se alcanza el umbral mínimo (mín). La salida (Qmáx) sepone a 1 cuando se alcanza el umbral máximo (máx).

El parámetro (pv) determina el valor inicial del contaje. El parámetro (cv) determina elvalor actual del contaje.

Una palabra de 16 bits (mwd) permite almacenar el estado de las entradas cu y cd (bit0 para el almacenamiento de cu y bit 1 para el almacenamiento de cd).

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

LD TRUE[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 (mín) = 0, %MW12 (máx) = 7

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

OPERATE

Page 306: Manual PL7

2/104___________________________________________________________________________

BSintaxis

Operador SCOUNT (en, pv, cu, cd, mín, máx, Qmín, Qmáx, cv, mwd)

Operandos

Tipo en, cu, cd Qmín, Qmáx pv, mín, máx cv, mwd

Bits %I,%Q,%M,%S, %I,%Q,%M%BLK,%.:Xk

Palabras indexables %MW,%KW, %Xi.T %MW

Palabras no %IW, %QW, %QW,%SWindexables %SW, %NW, %NW

Valor inm.Expr. numérica

Notas• Si (en) = 0, la función ya no es valida y en cada llamada hay:

Qmín = Qmáx = 0mcu = mcd = 0cv = pv

• Si máx > mín:cv > máx ---> Qmáx = 1 y Qmín = 0mín < cv < máx ---> Qmáx = Qmín = 0cv < min ---> Qmáx = 0 y Qmín = 1

• Si máx < mín:máx < cv < mín ---> Qmáx = 1 y Qmín = 0cv < máx ---> Qmáx = 0 y Qmín = 1cv > mín ---> Qmáx = 1 y Qmín = 0

• Si máx = mín:cv < mín y máx ---> Qmáx = 0 y Qmín = 1cv > mín y máx ---> Qmáx = 1 y Qmín = 0

• Una modificación del parámetro (pv) con (en) en el estado 1 no tiene ninguna incidencia enel funcionamiento

• Un valor negativo en los parámetros (pv) y (mín) se interpreta como un valor nulo.• Un valor inferior a 1 en el parámetro (máx) se interpreta como igual a 1.

Page 307: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/105

B2.11-3 Desplazamientos circulares

Las funciones efectúan desplazamientos circulares a la izquierda o a la derecha enuna palabra o una doble palabra.• ROLW: desplazamiento circular hacia la izquierda en una palabra con cálculo de

número de desplazamientos• RORW: desplazamiento circular hacia la derecha en una palabra con cálculo de

número de desplazamientos• ROLD: desplazamiento circular hacia la izquierda en una doble palabra con cálculo

de número de desplazamientos• RORD: desplazamiento circular hacia la derecha en una doble palabra con cálculo

de número de desplazamientos

Estructura

Lenguaje de contactos Lenguaje Lista de instrucciones

LD %M0[%MW0:= ROLW(%MW10,%MW5)]

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

Lenguaje Literal estructurado

IF %M0 THEN%MW0:= ROLW(%MW10,%MW5) ;

END_IF ;IF %I3.2 THEN

%MD10:= RORD(%MD100,%MW5) ;END_IF ;

%I3.2

%MW0:=ROLW(%MF10,%MW5)

%MD8:=RORD(%MD50,%MW5)

%M0

Page 308: Manual PL7

2/106___________________________________________________________________________

BSintaxis

Operadores

• ROLW, RORW, ROLD, RORD Op1:=Operador(Op2,n)

Operandos ROLW, RORW,

Tipo Operando 1 (Op1) Operando 2 (Op2) Número de posición(n)

Palabras indexables %MW %MW,%KW,%Xi.T %MW,%KW,%Xi.T

Palabras no indexables Val.inm.,%IW,%QW, Val.inm.,%IW,%QW,%SW,%NW,%BLK %SW,%NW,%BLKExpr. num. Expr. num.

Operandos ROLD, RORD

Tipo Operando 1 (Op1) Operando 2 (Op2) Número de posición(n)

Palabras doble indexables %MD %MD,%KD %MW,%KW,%Xi.T

Palabras non indexables %QD,%SD, Val.inm.,%ID,%QD, Val.inm.,%IW,%QW,%SD,Expr. num. %SW,%NW,%BLK

Expr. num.

ObservaciónDe preferencia, se utilizará las instrucciones de base ROL y ROR (cuando el númerode desplazamiento es estático, ya que estas instrucciones son más eficaces.

Page 309: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/107

B2.12 Funciones de temporización

2.12-1 Generalidades

Estas funciones de temporización contrariamente a los bloques de función no estánlimitadas en número y se pueden utilizar en el código de los bloques de función DFB.Se proporcionan 4 funciones de temporización.• FTON: temporización de conexión• FTOF: temporización de desconexión• FTP: temporización de impulsión• FPULSOR: señal rectangular

2.12-2 Función de temporización de conexión FTON

Esta función permite manejar los retrasos de conexión. Este retraso puede programarse.

Sintaxis

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

Características

Entrada EN En flanco ascendente inicia la temporización"Activación"

Valor de preselección PT Palabra de entrada que determina la duración (encentésimas de segundo) de la temporización. Permitedefinir una duración máxima de 5 min y 27 s con unaprecisión de 10 ms. (1)

Salida "Temporizador" Q Salida puesta a 1 al final de la temporización.

Valor actual ET Palabra de salida que se incrementa de 0 a PT cuandotranscurre la temporización.

Variable de cálculo PRIV Doble palabra para memorización de los estadosinternos. Asociar a esta doble palabra una variable de laaplicación exclusivamente reservada para este efecto.

(1) la modificación de esta palabra surte efecto durante la temporización.

Page 310: Manual PL7

2/108___________________________________________________________________________

BEn un flanco ascendente en la entradaEN, el temporizador se activa: su valoractual ET se incrementa de 0 a PT(centésimo de segundo). El bit de salidaQ pasa a 1 cuando el valor actual alcanzaPT, y luego permanece en 1 mientras laentrada EN esté en 1.Cuando la entrada EN está en 0, eltemporizador se detiene, aunque esté encurso de evolución : ET toma el valor 0.

EstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

IF %I1.2 THENFTON (%I3.0,1000,%Q4.0,%MW2,%MD8) ;

END_IF ;

OperandosFTON (EN, PT, Q, ET, PRIV)

Tipo EN PT Q ET PRIV

Palabras %MW,%KW,%Xi.T %MWindexables

Palabras no %IW,%QW,%SW %IW,%QW indexables Val. inm.,

Expr. num.,%NW

Dobles palabras %MDindexables

Bits %I,%Q, %M, %S %I,%Q, %M,%BLK,%•:Xk,%X %S,%•:Xk,%X

EN

Q

ET

PT

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

%I1,2

Page 311: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/109

B2.12-3 Función de temporización de desconexión FTOF

Esta función permite manejar los retrasos en la desconexión. Este retraso puedeprogramarse.

Sintaxis

Operador FTOF (EN, PT, Q, ET, PRIV)

Características

Entrada EN En flanco ascendente inicia la temporización"Activación"

Valor de preselección PT Palabra de entrada que determina la duración (encentésimas de segundo) de la temporización. Permitedefinir una duración máxima de 5 min y 27 s con unaprecisión de 10 ms. (1)

Salida "Temporizador" Q Salida puesta a 1 en flanco ascendente de EN ypuesta a cero al final de la temporización.

Valor actual ET Palabra de salida que se incrementa de 0 a PTcuando transcurre la temporización.

Variable de cálculo PRIV Doble palabra para memorización de los estadosinternos. Asociar a esta doble palabra una variable de laaplicación exclusivamente reservada para este efecto.

(1) la modificación de esta palabra surte efecto durante la temporización.

El valor actual ET toma el valor 0, en unflanco ascendente de la entrada EN(aunque el temporizador esté en curso deevolución). El temporizador se activa enflanco descendente en la entrada EN.Luego, el valor actual se incrementa de 0a PT (centésimo de segundo). El bit desalida Q pasa a 1 cuando se detecta unflanco ascendente en la entrada EN yvuelve a caer a 0 cuando el valor actualalcanza PT.EstructuraLenguaje de contactos Lenguaje Literal estructurado

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

;END_IF ;

Operandos véase función FTON (capítulo anterior).

EN

Q

ET

PT

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

%I1,2

Page 312: Manual PL7

2/110___________________________________________________________________________

B2.12-4 Función de temporización de impulsión FTP

Esta función permite elaborar una impulsión de duración precisa. Esta duración esprogramable.

Sintaxis

Operador FTP (EN, PT, Q, ET, PRIV)

Características

Entrada EN En flanco ascendente inicia la temporización"Activación"

Valor de preselección PT Palabra de entrada que determina la duración (encentésimas de segundo) de la temporización. Permitedefinir una duración máxima de 5 min y 27 s con unaprecisión de 10 ms. (1)

Salida "Temporizador" Q Salida puesta a 1 al final de la temporización.

Valor actual ET Palabra de salida que se incrementa de 0 a PTcuando transcurre la temporización.

Variable de cálculo PRIV Doble palabra para memorización de los estadosinternos. Asociar a esta doble palabra una variable de laaplicación exclusivamente reservada para este efecto.

(1) la modificación de esta palabra surte efecto durante la temporización.

En un flanco ascendente en la entradaEN, el temporizador se activa: (si eltemporizador todavía no está en curso deevolución) su valor actual ET seincrementa de 0 a PT (centésima desegundo). El bit de salida Q pasa a 1apenas se activa el temporizador y cae a0 cuando el valor actual alcanza PT.Cuando la entrada EN y la salida Q estána 0, PT toma el valor 0.Este monostable no puede reactivarse.

EstructuraLenguaje de contactos Lenguaje Literal estructurado

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

Operandos véase función FTON (capítulo anterior).

EN

Q

ET

PT

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

%I1,2

Page 313: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/111

B2.12-5 Función generador de señal rectangular FPULSOR

Esta función permite generar una señal rectangular periódica cuyo ancho de intervaloa 1 y de intervalo a 0 se puede hacer variar con el programa mediante 2 temporizadores:• TON: temporización a la subida (para el intervalo a 1).• TOFF: temporización a la bajada (para el intervalo a 0).

Sintaxis

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

Características

Entrada EN En flanco rectangular, inicia la generación de"Activación" la señal rectangular.

Valor de preselección TON Palabra de entrada que determina la duración(intervalo a 1) en centésimas de segundo) del intervalo a 1. Permite

definir una duración máxima de 5 min y 27 s con unaprecisión de 10 ms. (1)

Valor de preselección TOFF Palabra de entrada que determina la duración(intervalo a 0) en centésimas de segundo) del intervalo a 0. Permite

definir una duración máxima de 5 min y 27 s con unaprecisión de 10 ms. (1)

Salida señal rectangular Q Salida intervalo a 0 en la duración TOFF, a 1 en laduración TON.

Valor actual ET Palabra de salida que se incrementa de 0 a TON+TOFFcuando transcurre el temporizador.

Variable de cálculo PRIV Doble palabra para memorización de los estados internos.Asociar a esta doble palabra una variable de la aplicaciónexclusivamente reservada para este efecto.

(1) la modificación de estas palabras surte efecto durante la temporización. La suma TOFF+TONtiene una duración máxima de 5 min y 27 s.

En un flanco montante en la entrada EN,se inicia la generación de la señalrectangular: (si la señal todavía no está encurso de evolución) su valor actual ET seincrementa de 0 hacia TON+TOFF(centésimas de segundo). El bit de lasalida Q permanece en 0 mientras nohaya transcurrido la temporización TOFF;pasa a 1 y permanece en 1 durante latemporización TON, y vuelve a pasar a 0mientras la temporización TOFF no hayatranscurrido, etc , y ello hasta que la entradaEN vuelva a pasar a 0.

TOFF

TON

TOFF TOFF

TONTON+TOFF

Page 314: Manual PL7

2/112___________________________________________________________________________

BEstructuraLenguaje de contactos Lenguaje Lista de instrucciones

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

Lenguaje Literal estructurado

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

END_IF ;

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

Tipo EN TON,TOFF Q ET PRIV

Palabras indexables %MW,%KW,%Xi.T %MW

Palabras no %IW,%QW,%SW %IW,%QWindexables Val. inm.

Expr. num.,%NW

Dobles palabras %MDindexables

Bits %I,%Q, %M, %S %I,%Q, %M,%BLK,%•:Xk,%X %S,%•:Xk,%X

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

Page 315: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/113

B2.13 Funciones de archivado de datos

2.13-1 Generalidades

Estas funciones permiten archivar datos por programa en un área dedicada de latarjeta de memoria del usuario.

Ejemplos de aplicación:• almacenamiento automático, datos (consignaciones de estado, registros, ...) de la

aplicación en la tarjeta de memoria de usuario del autómata y envío de los datos através de teletransmisión (vía módem) hacia el sitio central.

• copia de seguridad de las validaciones de producción en la tarjeta de memoriausuario del autómata.

Referencia de las tarjetas de memoria que garantizan la función adicional dearchivado delos datos:

Referencias Tipo/Capacidad Compatibilidad de procesadores

Area de Area TSX P57 102 TSX P57 2i2 TSX P57 3i2programa de TPMX P57 102 TPMX P57 202 TSX P57 4i2de aplicación archivado TPCX 57 1012 TPMX P57 352

(tipo RAM) TSX 37 21/22 TPMX P57 452TPCX 57 3512

TSX MRP 232P RAM/32 K16 128K16 Sí Sí Sí

TSX MRP 264P RAM/64 K16 128K16 Sí Sí Sí

TSX MRP 2128P RAM/128 K16 128K16 No Sí Sí

TSX MRP 3256P RAM/256 K16 640K16 No Sí Sí

TSX MFP 232P Flash Eprom/ 128K16 Sí Sí Sí32 K16

TSX MFP 264P Flash Eprom/ 128K16 Sí Sí Sí64K16

Nota: 10 palabras del área dedicada de archivado son reservadas por el sistema.

Tres funciones permiten el archivado y la restitución de los datos:

• SET_PCMCIA para inicializar a un valor todo o parte del área de archivado de latarjeta de memoria

• WRITE_PCMCIA para escribir los datos en el área de archivado de la tarjeta dememoria

• REDIR_PCMCIA para leer los datos en el área de archivado de la tarjeta de memoria

Nota: el acceso a los datos almacenados en el área de archivado de la tarjeta de memoriasólo es posible desde la aplicación residente en el autómata a través de estas 3 funcionesde base. En ningún caso una estación remota puede acceder a ella directamente a travésde la red o de un bus de comunicación.

Page 316: Manual PL7

2/114___________________________________________________________________________

B2.13-2 Inicialización del área de archivado

La función SET_PCMCIA permite inicializar en el valor deseado toda o parte del áreade archivado de la tarjeta de memoria del usuario.

Esta función utiliza 4 parámetros:

• dirección: dirección del área de archivado a partir de la cual se efectúa lainicialización

• nº_palabras: número de las palabras a inicializar

• valor: valor de inicialización

• estado: código que proporciona el resultado de la ejecución del comando deinicialización.

En el ejemplo anterior:• dirección = %MD0 , %MD0 que contiene el valor 1500• nº_palabras = %MW5, %MW5 que contiene el valor 30• origen= %MW10, %MW10 que contiene el valor 100

EstructuraLenguaje de contactos Lenguaje lista de instrucciones

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

Lenguaje literal

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

Tarjeta de memoria del usuario

1500

1529

∇SET_PCMCIA100100100100

SET_PCMCIA(%MD0, %MW5, %MW10,%MW2)OPERATE

%I1,3

P

Page 317: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/115

B

Sintaxis

Función SET_PCMCIA (dirección,nº_palabras,valor, estado)

Parámetros

Tipo dirección nº_palabras valor estado

Palabras indexables %MW %MW %MWVal. inmed. Val. inmed.

Palabras no indexables %QW,%SW,%NW

Palabras dobles indexables %MD,Val. inmed.

Palabras dobles no indexables %QD,%SD

Codificación del parámetro estado devuelto después de la ejecución del comando deinicialización

Valor (en hexadecimal) Significado

0000 inicialización correctamente efectuada

0201 sin área de archivo en la tarjeta de memoria

0202 falla en la tarjeta de memoria

0204 tarjeta de memoria protegida contra escritura

0241 dirección negativa

0242 dirección + Nº_palabras-1 > a la dirección más alta de latarjeta de memoria

0401 Nº_palabras= 0 o negativo

Page 318: Manual PL7

2/116___________________________________________________________________________

B2.13-3 Escritura de los datos en el área de archivado

La función WRITE_PCMCIA permite transferir datos de la memoria RAM del autómata(palabras %MW) en la área de archivado de la tarjeta de memoria del usuario.

Esta función utiliza 4 parámetros:

WRITE_PCMCIA (dir_des, nº_palabras, origen, estado)

• dir_des: dirección del área de archivado a partir de la cual se almacenarán los datos

• nº_palabras: número de palabras a almacenar

• origen: palabra que contiene la dirección de inicio del área a transferir en la tarjetade memoria

• estado: código que proporciona el resultado del comando de escritura.

En el ejemplo anterior:• dir_des = %MD0 , %MD0 contiene el valor 1500• nº_palabras = %MW5, %MW5 contiene el valor 30• origen = %MW20 contiene el valor 40

EstructuraLenguaje de contactos Lenguaje lista de instrucciones

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

Lenguaje literal

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

Memoria RAM del autómata Tarjeta de memoria del usuario

1500

1529

%MW40

%MW69

WRITE_PCMCIA

WRITE_PCMCIA(%MD0, %MW5, %MW20,%MW2)OPERATE

%I1,3

P

Page 319: Manual PL7

Descripción de las instrucciones avanzadas 2

___________________________________________________________________________2/117

B

Sintaxis

Función WRITE_PCMCIA (dir_des, nº_palabras, origen, estado)

Parámetros

Tipo dir_des nº_palabras origen estado

Palabras indexables %MW %MW %MWVal. inmed. Val. inmed.

Palabras no indexables %QW,%SW,%NW

Palabras dobles indexables %MD,Val. inmed.

Palabras dobles no indexables %QD,%SD

Codificación del parámetro estado devuelto después de la ejecución del comando deescritura:

Valor (en hexadecimal) Significado

0000 escritura correctamente efectuada

0102 origen + Nº_palabras-1 > número máximo de %MWdéclarado en el autómata

0104 ninguna aplicación válida o ningún %MW en el autómata

0201 sin área de archivo en la tarjeta de memoria

0202 falla de tarjeta de memoria

0204 tarjeta de memoria protegida contra escritura

0241 dir_des < 0

0242 dir_des + Nº_palabras-1 > la dirección más alta de la tarjetade memoria

0401 Nº_palabras= 0

Page 320: Manual PL7

2/118___________________________________________________________________________

B2.13-4 Lectura de los datos en el área de archivado

La función REDIR_PCMCIA permite transferir datos del área de archivado de la tarjetade memoria del usuario en la memoria RAM del autómata (palabras %MW).

Esta función utiliza 4 parámetros:

REDIR_PCMCIA (dir_origen, nº_palabras, dest, estado)

• dir_origen: dirección de la área de archivado en la cual se almacenan los datos aleer

• nº_palabras: número de palabras a leer

• dest: palabra que contiene la dirección de inicio del área transferida por la tarjetade memoria

• estado: código que proporciona el resultado de la ejecución del comando de lectura.

En el ejemplo anterior:• dir_origen = %MD0 , %MD0 que contiene el valor 1500• nº_palabras = %MW5, %MW5 que contiene el valor 30• dest = %MW20 que contiene el valor 40

EstructuraLenguaje de contactos Lenguaje lista de instrucciones

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

Lenguaje literal

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

1500

1529

%MW40∇

%MW69

REDIR_PCMCIA

Memoria RAM del autómata Tarjeta de memoria del usuario

READ_PCMCIA(%MD0, %MW5, %MW20,%MW2)OPERATE

%I1,4

P

Page 321: Manual PL7

___________________________________________________________________________2/119

B

Descripción de las instrucciones avanzadas 2

Sintaxis

Función REDIR_PCMCIA (dir_origen, nº_palabras,dest, estado)

Parámetros

Tipo dir_origen nº_palabras dest estado

Palabras indexables %MW %MW %MWVal. imméd. Val. imméd.

Palabras no indexables %QW,%SW,%NW

Palabras dobles indexables %MD,Val. imméd.

Palabras dobles no indexables %QD,%SD

Codificación del parámetro estado devuelto después de la ejecución del comando deescritura:

Valor (en hexadecimal) Significado

0000 lectura correctamente efectuada

0102 dest + Nº_palabras-1 > número máximo de %MW declaradoen el autómata

0104 ninguna aplicación válida o ningún %MW en el autómata

0201 sin área de archivo en la tarjeta de memoria

0202 falla de tarjeta de memoria

0204 tarjeta de memoria protegida contra escritura

0241 dir_origen < 0

0242 dir_origen + Nº_palabras-1 > la dirección más alta de latarjeta de memoria

0401 Nº_palabras= 0

Page 322: Manual PL7

2/120___________________________________________________________________________

B

Page 323: Manual PL7

Bits y palabras del sistema 3

___________________________________________________________________________3/1

B

B

Capítulo 33 Bits y palabras del sistema

3.1 Bits del sistema3.1-1 Lista de bits del sistema

Bit Función Est. inicial Gestión(1)

%S0 1 = arranque en frío (reanudación de la 0 S o U->Salimentación con pérdida de datos)

%S1 1 = rearranque en caliente (reanudación de 0 S o U->Sla alimentación sin pérdida de datos)

%S4,%S5,%S6,%S7 Base de tiempo 10 ms, 100 ms, 1 s, 1 min - S

%S8 (2) Prueba del cableado 1 U(utilizable en un autómata TSX 37 no configurado)

%S9 1 = forzado al retorno de las salidas autómata 0 U

%S10 0 = falla entradas/salidas 1 S

%S11 1 = rebasamiento watchdog 0 S

%S13 1 = primer ciclo después de la puesta a RUN - S

%S15 1 = falla cadena de caracteres 0 S->U

%S16 0 = falla E/S tarea 1 S->U

%S17 1 = rebasamiento de capacidad 0 S->U

%S18 1 = rebasamiento o error aritmético 0 S->U

%S19 1 = rebasamiento de período tarea 0 S->U

%S20 1 = rebasamiento de índice 0 S->U

%S21 1 = inicialización del Grafcet 0 S o U->S

%S22 1 = puesta a cero del Grafcet 0 U->S

%S23 1 = preposicionamiento e inmovilización del Grafcet 0 U

%S24 (3) 1 = puesta a 0 de macroetapas en función de 0 U->S%SW22 a25

%S26 1 = rebasamiento de tablas (etapas/transiciones) 0 S

%S30 1 = activación de la tarea maestra 1 U

%S31 1 = activación de la tarea rápida 1 U

%S38 1 = validación de sucesos 1 U

%S39 1 = saturación en el tratamiento de sucesos 0 S->U

%S40 a %S47 0 = Falla E/S de un rack TSX 57 1 S

%S49 1 =reactivación salidas estáticas disyuntadas 0 U

%S50 1 = Actualizaciòn de la fecha y hora 0 U

(1) (2) y (3) véase página siguiente.

Page 324: Manual PL7

3/2___________________________________________________________________________

BBit Función Est. inic. Gestión(1)

%S51 1 = puesta en hora del reloj-calendario 0 S

%S59 1 = validación del ajuste de la fecha actual 0 U

%S60 Comando de la arquitectura redundante 0 U o U->S

%S66 (2) 1 = indicador visual de la batería siempre apagado 0 U

%S67 0 = pila de la tarjeta de memoria en servicio - S

%S68 0 = pila de guardado (procesador) en servicio - S

%S69 (2) 1 = validación del modo de visualización 0 Umemoria "WORD" en los visualizadores

%S70 1 = actualización de los datos en el bus As-i o 0 S->Uenlace TSX Nano

%S73 (2) 1 = paso al modo protegido en el bus AS-i 0 U->S

%S74 (2) 1 = guardado configuración presente en el bus AS-i 0 U->S

%S80 1 = reinicialización de los contadores de mensajes 0 U->S

%S90 1 = actualización de las palabras comunes 0 S->U

%S92 1 = paso a modo de medición de rendimientode las funciones de comunicación 0 U

%S94 (3) 1 = guardado de los valores de ajuste de bloques 0 U->SDFB

%S95 (3) 1 = restitución de los valores de ajuste de bloques 0 U->SDFB

%S96 (2) 0 = guardado del programa de aplicación no válido - S1 = guardado del programa de aplicación válido

%S97 (2) 0 = guardado de los %MW no válido - S1 = guardado de los %MW válido

%S98 (2) 1 = sustitución del botón del acoplador 0 UTSX SAZ 10 por una entrada TON

%S99 (2) 1 = sustitución del botón del bloque de visualización 0 Ucentralizada por una entrada TON

%S100 1 = restitución de los valores de ajuste de los - Sbloques DFB

%S101 1 = buffer de diagnóstico configurado - S

%S102 1 = buffer de diagnóstico lleno - S

%S118 0 = falla de E/S FIPIO 1 S

%S119 0 = falla de E/S en rack 1 S

(1) S = administrado por el sistema, U = administrado por el usuario, U->S = puesto a 1 por elusuario, puesto a 0 por el sistema, S->U = puesto a 1 por el sistema, puesto a 0 por el usuario.

(2) Únicamente en el TSX 37.(3) Únicamente en los TSX/PMX/PCX 57.

Page 325: Manual PL7

Bits y palabras del sistema 3

___________________________________________________________________________3/3

B

B3.1-2 Descripción detallada de bits del sistemaLos autómatas TSX 37 y TSX 57 disponen de bits sistema %Si que indican los estadosdel autómata o le permiten actuar sobre el funcionamiento del mismo.Estos bits pueden probarse en el programa de usuario con el fin de detectar todos loseventos de funcionamiento antes de realizar un procedimiento determinado detratamiento. Algunos de ellos deben ser inicializados a su estado inicial o normal porel programa. Por tanto, los bits sistema que son reiniciados con su valor inicia o normalpor el sistema no deben ser reiniciados por el programa o el terminal.

Bits Función Designaciónsistema

%S0 Rearranque Normalmente a estado 0, es puesto a estado 1 por:en frío • reinicio de sector con parte de datos (batería por defecto),

• programa usuario,• terminal,• cambio de tarjeta de memoria,• pulsar el botón RESET.Este bit es puesto a 1 durante el primer ciclo completo. Se ponea 0 de nuevo antes del ciclo siguiente.Funcionamiento : véase sección A, capítulo 1.4.

%S1 Rearranque Normalmente a estado 0, es puesto a estado 1 por:en caliente • reinicio de sector con guardado de datos,

• programa usuario,• terminal.Se pone de nuevo a 0 por el sistema al final del primer ciclocompleto y antes del ajuste de las salidas.Funcionamiento : véase sección A, capítulo 1.4.

Bases Bits cuyo cambio de estado es regulado por un reloj interno.de tiempo Son asíncronos respecto al ciclo del autómata.

%S4 10 ms%S5 100 ms%S6 1 s Ejemplo: %S4%S7 1 min

%S8 Prueba del Normalmente en el estado 1, este bit se utiliza para comprobarcableado el cableado cuando el autómata TSX 37 está "no configurado"

• estado 1: las salidas se fuerzan a 0,• estado 0: las salidas pueden modificarse desde un terminalde ajuste.

%S9 Puesta a la Normalmente en el estado 0. Puede ponerse a 1 desde elposición de programa o el terminal:retorno de las • estado 1: fuerza a la posición de retorno de salidas delsalidas en autómata, (bus X, FIPIO, AS-i)todos los bus • estado 0: las salidas se actualizan normalmente.

%S10 Falla Normalmente en el estado 1. Puede ponerse a 0 cuando sedetecta una falla de 'E/S de un módulo en rack o de un módulodistante (FIPIO) (configuración no conforme, falla de inter-cambio, falla hardware). El bit %S10 se pone a 1 apenasdesaparece la falla.

5ms 5ms

Page 326: Manual PL7

3/4___________________________________________________________________________

BBits Función Designaciónsistema

%S11 Rebasa- Normalmente en el estado 0. El sistema lo pone a 1 cuando elmiento del tiempo de ejecución de una tarea es superior al tiempowatchdog de ejecución máximo (watchdog) declarado en la configuración.

El rebasamiento del watchdog tiene como consecuencia elpaso a STOP del autómata; la aplicación se detiene(indicador ERR intermitente).

%S13 Primer Normalmente en el estado 0. El sistema lo pone a 1 durante elciclo primer ciclo después de la puesta a RUN del autómata.

%S15 Falla Normalmente en el estado 0. Se pone a 1 cuando el áreacadena de destino de una transferencia de cadena de caracteres no tienecaracteres el tamaño suficiente para recibir la cadena. El usuario debe

poner este bit a 0.

%S16 Falla de E/S Normalmente en estado 1. El sistema lo pone a 0 cuandotarea ocurre una falla de un módulo de E/S en rack o remoto en

FIPIO configurado en la tarea. El usuario debe ponereste bit a 1. Cada tarea maneja su propio bit %S16.

%S17 Bit salido en Normalmente en el estado 0. El sistema lo pone a 1:desplazamiento • durante un desplazamiento que contiene el estado del últimoo informe bit,aritmético • rebasamiento en aritmética sin signo (fechas).

El usuario debe poner este bit a 0.

%S18 Rebasamiento Normalmente en el estado 0. Se pone a 1 en caso de rebasa-o error miento de capacidad durante una operación en 16 bits, es deciraritmético • 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 (versión software > 1.0),• división por 0,• raíz de un número negativo,• forzado a un paso inexistente en un programador cíclico,• apilamiento de un registro lleno, desapilamiento de un registro vacío,Debe ser probado por el programa de usuario después de cadaoperación que presenta un riesgo de rebasamiento. Si ésteocurre, el usuario debe poner el bit a 0.

%S19 Rebasamiento Normalmente en el estado 0. El sistema pone este bit a 1 enperíodo caso de rebasamiento del período de ejecución (tiempo dede tarea ejecución de la tarea superior al período definido por el usuario(exploración en la configuración o programado en la palabra %SW asociadaperiódica) a la tarea). El usuario repone este bit a 0.

Cada tarea efectúa la gestión de su propio bit %S19.

Page 327: Manual PL7

Bits y palabras del sistema 3

___________________________________________________________________________3/5

B

BBits Función Designaciónsistema

%S20 Rebasamiento Normalmente en el estado 0. Se pone a 1 cuando la dirección delde índice objeto indexado es inferior a 0 o excede el número de

objetos declarados en la configuración. Debe ser probado por elprograma de usuario después de cada operación que presentaun riesgo de rebasamiento; si éste ocurre, el bit se pone a 0.

%S21 Inicialización El usuario efectúa la gestión de este bit para inicializar elGrafcet (puesta a 1, de preferencia en el tratamientopreliminar). El sistema lo pone a 0 después de inicializarGrafcet (al fin del tratamiento preliminar, al evaluar el nuevoestado del Grafcet). La inicialización del Grafcet consiste endesactivar todas las etapas activas y activar etapas iniciales.Al arrancar en frío, el sistema pone este bit a 1 durante eltratamiento preliminar.

%S22 Puesta a Normalmente en el estado 0. El programa puede poner este bit acero del 1 únicamente en el tratamiento preliminar. En el estado 1, desac-Grafcet tiva todas las etapas del Grafcet. El Sistema lo pone a 0 des-

pués de la toma en cuenta al final del tratamiento preliminar.

%S23 Inmovilización Normalmente en el estado 0. La puesta a 1 de %S23 tienedel Grafcet como consecuencia la conservación del estado de los Grafcet.

Cualquier que sea el valor de las receptividades debajo de lasetapas activas, los Grafcet no evolucionan. La inmovilización semantiene mientrasel bit %S23 está a 1. El programa de usuarioefectúa la gestión de este bit; se pone a 1 o a 0 únicamente enel tratamiento preliminar.

%S24 Puesta a cero Normalmente en el estado 0. La puesta a 1 de %S24 tienede las como consecuencia la puesta a cero de las macroetapasetapas elegidas en la tabla de 4 palabras sistema %SW22 a %SW25. El

sistema lo vuelve a poner a 0 después de tomar en cuenta el findel tratamiento preliminar.

%S26 Rebasamiento Normalmente en el estado 0. El sistema pone este bit a 1 cuandode tablas las posibilidades de activación (etapas o transiciones) se(etapas/ excedeno cuando se ejecuta un gráfico incorrecto (remisión detransiciones) destino en una etapa que no pertenece al gráfico). Un

rebasamiento tiene como consecuencia el paso a STOP delautómata. Este bit se pone a 0 al inicializar el terminal.

%S30 Activación/ Normalmente en el estado 1. Cuando el usuario lo pone a 0, ladesactivación tarea maestra se desactiva.tarea maestra

%S31 Activación Normalmente en el estado 1. Cuando el usuario lo pone a 0, latarea rápida tarea rápida se desactiva.

%S38 Validación/ Normalmente en el estado 1. Cuando el usuario lo pone a 0, losinhibición sucesos se inhiben.sucesos

%S39 Saturación El sistema pone este bit a 1 para indicar que es imposible trataren el trata- uno o varios sucesos por causa de saturación de las colas demiento de espera.sucesos El usuario vuelve a situar este bit a 0.

Page 328: Manual PL7

3/6___________________________________________________________________________

BBits Función Designaciónsistema

%S40 Falla E/S Los bits %S40 a %S47 se asignan respectivamente a los racksa (racks) (1) 0 a 7. Normalmente en el estado 1, cada bit pasa a 0 al produ-%S47 estáticas cirse una falla de E/S del rack correspondiente.

desconectadas El bit se pone a 1 al desaparecer la falla.

%S49 Reactivación Normalmente en el estado 0. El usuario puede ponerlo a 1 parade salidas (2) solicitar la reactivación cada 10 s desde la aparición de la falla

de las salidas estáticas desconectadas por causa de sobrein-tensidad o de cortocircuito.

%S50 Actualización Normalmente en el estado 0. Puede ponerse a 1 o a 0 víade la fecha y programa o vía terminal:hora mediante • en el estado 0: acceso a la fecha y hora mediante la lecturalas palabras de las palabras sistema %SW50 a 53,%SW50 a 53 • en el estado 1: actualización de la fecha y la hora mediante la

escritura de las palabras sistema %SW50 a 53.

%S51 Pérdida de Este bit, de cuya gestión se encarga el sistema, indica el estadola hora del 1 cuando el reloj-calendario está ausente o cuando las palabrasreloj-calendario sistema relativas al reloj-calendario no son significativas; en

este caso es necesario ajustar la hora, con lo que el bit pasaa 0 automáticamente.

%S59 Actualización Normalmente en el estado 0. Puede ponerse a 1 o a 0 desde elde la fecha y programa o el terminal:hora mediante • en el estado 0: el sist. no efectúa la gestión de la pal. sist.la palabra SW59,%SW59 • en el estado 1: el sistema efectúa la gestión de los flancos en

la palabra %SW59 para ajustar la fecha y hora(por incrementos).

%S60 Comando de bit del sistema utilizado en el caso de una instalación de unala arquitectura arquitectura redundante (véase designación y utilización en el

redundante manual de "arquitectura Premium redundante").

%S66 Gestión del Normalmente en el estado 0. Puede ponerse a 1 o a 0 vía (1) indicador de programa o vía terminal. Sirve para que se encienda o no el

la batería indicador luminoso de la batería, en caso de falle la pila de salv.:• en el estado 0: se enciende el indicador de la batería cuando

falta la pila de guardado o está en falla• en el estado 1: el indicador de la batería está siempre

apagado.Al producirse un rearranque en frío, el sistema pone%S66 a 0.

%S67 Estado Permite controlar el estado de funcionamiento de la pila depila respaldo de la tarjeta de memoria RAM:tarjeta memoria • en el estado 0: batería presente y en servicio,

• en el estado 1: batería ausente o fuera de servicio.

%S68 Estado Permite controlar el estado de funcionamiento de la batería depila respaldo de datos y del programa en la memoria RAM:procesador • en el estado 0: batería presente y en servicio,

• en el estado 1: batería ausente o fuera de servicio.

(1) Sólo en los autómatas TSX/PMX/PCX 57.(2) Sólo en el autómata TSX 37.

Page 329: Manual PL7

Bits y palabras del sistema 3

___________________________________________________________________________3/7

B

BBits Sist. Función Designación

%S69 Visualización Normalmente en el estado 0. Puede ponerse a 1 o a 0 desde eldatos de programa o el terminal:usuario en • en el estado 0: visualización de los estados de E/S en losindicadores indicadores del autómata (indicador WRD apagado),de autómata • en el estado 1: visualización de los datos de usuario (indica-

dor WRD encendido). (Véase las palabras %SW67,68 y 69.)

%S70 Actualización El sistema pone este bit a 1 en cada fin de ciclo del enlacede los datos TSX Nano o de exploración del bus AS-i. Al conectar la potencia,en el bus AS-i indica que se han actualizado todos los datos al menos una vezo enlace TSX y que, por consiguiente, son significativos. El usuario vuelve aNano situar este bit a 0.

%S73 Paso al modo Normalmente en el estado 0. El usuario pone en 1 este bit paraprotegido pasar al modo protegido en el bus AS-i. Previamente, el biten el bus AS-i %S74 deberá encontrarse en el estado 1. Este bit sólo se utiliza

durante las comprobaciones de cableado, carece de aplicaciónen el autómata.

%S74 Guardado Normalmente en el estado 0. El usuario pone en 1 este bit paraconfiguración activar la guardado de la configuración presente en el buspresente AS-i. Este bit sólo se utiliza durante las comprobaciones deen el bus AS-i cableado, carece de aplicación en el autómata.

%S80 Puesta a 0 Normalmente en el estado 0. El usuario puede ponerlo a 1 paracontadores poner a cero los contadores de mensajes %SW80 ade mensajes %SW86.

%S90 Actualización Normalmente en el estado 0. Se pone a 1 al recibir palabrasde palabras comunes provenientes de otra estación en la red.comunes Puede ponerse a 0 desde el programa o el terminal para

verificar el ciclo de intercambio de palabras comunes.

%S92 Paso en modo Normalmente en el estado 0, este bit puede ser puesto a 1 por elmedida de usuario para posicionar las funciones de comunicación en modofunción de medición de rendimiento. El parámetro Time-out de lascomunicación funciones de comunicación muestra entonces el tiempo de

intercambio ida y vuelta en decena de ms si ese tiempo <10s,sino no significativo).

%S94 Guardado de Normalmente en el estado 0. El usuario puede ponerlo a 1 paralos ajustes DFB guardar los valores de ajuste de los bloques de función usuario.

%S95 Restitución de Normalmente en el estado 0. El usuario puede ponerlo a 1 paralos ajustes DFB restituir los valores de ajuste de los bloques de función del

usuario.

%S96 Validez de la 0 -> guardado del programa de aplicación no válido,guardado 1 -> guardado del programa de aplicación válido.del programa Este bit es accesible en lectura en todo momento (vía programade aplicación oen ajuste) y, concretamente, después de un rearranque en frío

o en caliente. Resulta significativo respecto a una aplicación dememoria de seguridad realizada mediante PL7 en la FlashEPROM interna.

%S97 Validez de la 0 -> guardado de los %MW no válido,guardado 1 -> guardado de los %MW válido.de los %MW Este bit es accesible en lectura en todo momento (vía programa

oen ajuste) y, concretamente, después de un rearranque en fríooen caliente.

%S98 DesplazamientoNormalmente en el estado 0. Este bit lo administra el usuario:del botón del 0 -> botón del acoplador TSX SAZ 10 activo,acoplador 1 -> botón, del acoplador TSX SAZ 10, sustituido por unaTSX SAZ 10 entrada TON (véase %SW98).

Page 330: Manual PL7

3/8___________________________________________________________________________

BBits Función Designaciónsistema

%S99 DesplazamientoNormalmente en el estado 0. Este bit lo administra el usuario:del botón del 0 -> botón del bloque de visualización centralizada activo,bloque de 1 -> botón pulsador, del bloque de visualización centralizada,visualización sustituido por una entrada TON (véase la palabra %SW99).

%S100 Protocolo El sistema lo pone a 0 o a 1 según el estado del shunt INL/DPTtoma en la toma de consola:terminal • 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 configuración de la aplicación.

%S101 Buffer de Este bit es puesto a 1 por el sistema cuando la opción de diagnósticodiagnóstico está configurada, un buffer de diagnóstico destinado alconfigurado almacenamiento de los errores, procedentes de los DFB de

diagnóstico, se reserva entonces.

%S102 Buffer de Este bit es puesto a 1 por el sistema cuando el bufferdiagnóstico que recibe los errores de los bloques de función de diagnóstico estálleno lleno.

%S118 Falla general Normalmente a 1, el sistema pone estos bits a 0 cuandode E/S FIPIO aparece una falla en un equipo conectado en el bus FIPIO.

Cuando la falla desaparece, el sistema vuelve a poner este bit 1.

%S119 Falla general Normalmente a 1, el sistema pone a 0 estos bits de E/S en rackde entradas/ cuando ocurre una falla en módulo de E/S implantado en uno desalidas en los racks.Rack Cuando la falla desaparece, el sistema vuelve a poner este bit a 1.

Page 331: Manual PL7

Bits y palabras del sistema 3

___________________________________________________________________________3/9

B

B3.2 Palabras del sistema

3.2-1 Lista de palabras del sistema

Palabra Función Gestión( 1)

%SW0 Valor del período de la tarea maestra (en func. periódico) U%SW1 Valor del período de la tarea rápida (en func. periódico) U%SW8 Control de la adquisición de las entradas de cada tarea U%SW9 Control de la actualización de las salidas de cada tarea U%SW10 Primer ciclo después del arranque en frío S%SW11 Duración del watchdog S%SW12 Dirección UNI_TELWAY conector terminal S%SW13 Dirección principal de la estación S%SW17 Estado de falla en la operación flotante S y U%SD18 Contador de tiempo absoluto S y U%SW20 Número de etapas activas, por activar y desactivar S%SW21 Número de transiciones válidas, por validar e invalidar S%SW22 a Tabla de 4 palabras que permite designar las macroetapas U%SW25 (2) que se deben poner a 1 del bit %S24.%SW30 Tiempo de ejecución del último ciclo de la tarea maestra S%SW31 Tiempo de ciclo máximo de la tarea maestra S%SW32 Tiempo de ciclo mínimo de la tarea maestra S%SW33 Tiempo de ejecución del último ciclo de la tarea rápida S%SW34 Tiempo de ciclo máximo de la tarea rápida S%SW35 Tiempo de ciclo mínimo de la tarea rápida S%SW48 Número de sucesos tratados S y U%SW49 (3) Función reloj-calendario: palabras que contienen los valores S y U%SW50 (3) actuales de la fecha y hora (en BCD)%SW51 (3) %SW49 = día de la semana (tipo de día)%SW52 (3) %SW50 = segundos %SW51 = horas y minutos%SW53 (3) %SW52 = mes y día %SW53= siglo y año%SW54 ((3) Función reloj-calendario: palabras que contienen la fecha y hora del S%SW55 (3) último corte de corriente o última parada de autómata (en BCD)%SW56 (3) %SW54 = segs y código falla %SW55 = horas y minutos%SW57 (3) %SW56 = mes y día %SW57= siglo y año%SW58 Código de identif. de la última parada y día de semana (tipo de día) S%SW59 Ajuste en incrementos de la fecha y hora actuales U%SW60 a Diagnóstico del autómata redundante S%SW66%SW67 Gestión del modo de visualización "Display" S y U%SW68 %SW67: lectura de los botones pulsadores%SW69 %SW68: índices actual y máximo de los "objetos visualizados"

%SW69: número del primer objeto en el área visualizada%SW80 No de mensajes emitidos por el sistema hacia la toma de terminal S y U%SW81 No de mensajes recibidos por el sistema desde la toma de terminal%SW82 No de mensajes emitidos por el sist. hacia el acoplador PCMCIA%SW83 No de mensajes recibidos por el sist. desde el acoplador PCMCIA%SW84 No de telegramas emitidos por el sistema%SW85 No de telegramas recibidos por el sistema%SW86 No de mensajes rehusados por el sistema

(1) S = administrado por el sistema, U = administrado por el usuario,(2) Sólo en TSX 57.(3) Sólo en TSX 37-21/22 y TSX 57.

Page 332: Manual PL7

3/10___________________________________________________________________________

BPalabra Función Gestión(1)%SW87 Número de peticiones tratadas por el servidor síncrono por ciclo S

de la tarea maestra (MAST).%SW88 Número de peticiones tratadas por el servidor asíncrono por ciclo S

de la tarea maestra (MAST).%SW89 Número de peticiones tratadas por funciones del servidor S

(inmediato) por ciclo de la tarea maestra (MAST).

%SW96 (2) Comando / diagnóstico de la función de guardado / restitución del S y Uprograma de aplicación y de los %MW.

%SW97 (2) Número de los %MW que hay que guardar U%SW98 (2) Dirección geográfica módulo/vía de la entrada TON que reemplaza

el botón del acoplador TSX SAZ 10 U%SW99 (2) Dirección geográfica módulo/vía de la entrada TON que reemplazaU

el botón del bloque de visualización centralizada%SW108 Número de bits forzados S%SW109 Contador de vías analógicas forzadas a 0 S%SW116 Falla E/S distantes en FIPIO S%SW124 Tipo de la última falla UC encontrada S%SW125 Tipo de falla bloqueante S%SW126 Dirección de la instrucción de la falla de bloqueo S%SW127%SW128a Punto de conexión FIPIO defectuoso S%SW143%SW144 Modo de funcionamiento de la función árbitro de bus, productor/ U

consumidor de variable y supervisión bus FIPIO%SW145 Modificación de los parámetros del árbitro de bus U y S%SW146 Visualización de la función árbitro de bus y productor/ S

consumidor en el bus FIPIO%SW147 Valor del tiempo de ciclo bus de la tarea en modo LIBRE S%SW148 Valor del tiempo de ciclo bus de la tarea en modo

SERVOCOMANDADOS%SW149 Reservado a 0 S%SW150 Número de tramas FIPIO emitidas S%SW151 Número de tramas FIPIO recibidas S%SW152 Número de tramas FIPIO recuperadas S%SW155 Número de intercambios explícitos en curso de tratamiento S%SW160 Resultado del último registro S%SW161 Resultado de la última cancelación de registro S%SW162 Número de errores en el buffer de diagnóstico S

(1) S = administrado por el sistema, U = administrado por el usuario,(2) Sólo en TSX 57.

Page 333: Manual PL7

Bits y palabras del sistema 3

___________________________________________________________________________3/11

B

B3.2-2 Descripción detallada de las palabras del sistema

Palabras Función Designaciónsistema

%SW0 Período de Permite modificar desde el programa de usuario o elexploración terminal el período de la tarea maestra definido en lade la tarea configuración. El período se expresa en ms (1...255 ms).maestra %SW0=0 en funcionamiento cíclico. Al arrancar en frío:

toma el valor definido en la onfiguración.

%SW1 Período de Permite modificar desde el programa de usuario o elexploración terminal el período de la tarea rápida definido en lade la tarea configuración. El período se expresa en ms (1...255 ms).rápida Al arrancar en frío: toma el valor definido en la

configuración.

%SW8 Control de la Normalmente en estado 0, el programa o el PC puedeadquisición de poner este bit a 1 o a 0.las entradas Permite inhibir la fase de adquisición de las entradas dede tareas cada tarea.

%SW8:X0 1= inhibición en la tarea maestra%SW8:X1 1= inhibición en la tarea rápida

%SW9 Control de la Normalmente en estado 0, el programa o el PC puedeactualización de poner este bit a 1 o a 0.las salidas Permite inhibir la fase de actualización de las salidas dede tareas cada tarea.

%SW9:X0 1= inhibición en la tarea maestra%SW9:X1 1= inhibición en la tarea rápida

%SW10 Primer El valor 0 del bit de la tarea en curso significa que éstaciclo después del ejecuta su primer ciclo después de un arranque en frío.arranque en frío %SW10:X0: asignada a la tarea maestra MAST

%SW10:X1: asignada a la tarea rápida FAST

%SW11 Duración del Permite leer la duración del watchdog definida en lawatchdog configuración. Se expresa en ms (10...500 ms).

%SW12 Dirección Dirección UNI_TELWAY de la toma de terminal (en modoUNI_TELWAY esclavo) definida en la configuración y cargada en esteconector terminal palabra al arrancar en frío.

%SW13 Dirección Indicado por la red principal :principal • el número de estación (byte menos significativo)de la de 0 a 127estación • el número de red (byte menos significativo) de 0 a 63

(valor de interruptor sobre la tarjeta PCMCIA)

Page 334: Manual PL7

3/12___________________________________________________________________________

BPalabras Función Designaciónsistema

%SW17 Estado de falla Al detectar una falla en una operación en aritméticaen operación flotante, el bit %S18 se pone a 1 y el estado de fallaflotante %SW17 se actualiza según la codificación siguiente:

%SW17:X0 = operación inválida/el resultado no es unnúmero

%SW17:X1 = operando no normalizado/resultadocorrecto

%SW17:X2 = división por 0/el resultado es ± ∞%SW17:X3 =Overflow/el resultado es ± ∞%SW17:X4 = Underflow/el resultado es 0%SW17:X5 = Imprecisión en el resultado.El sistema pone esta palabra a 0 al arrancar en frío, asícomo el programa para la reutilización de la palabra.

%SD18 Contador Doble palabra que permite efectuar cálculos de duración.de tiempo El sistema lo aumenta cada décimo de segundo (inclusoabsoluto con el autómata en STOP). Puede ser leída y escrita por

el programa de usuario o el terminal.

%SW20 Nivel Palabra que contiene el número de etapas activas, porde actividad activar y desactivar para el ciclo actual. El sistema ladel Grafcet actualiza cada vez que el gráfico evoluciona.

%SW21 Tabla de validez Palabra que contiene el número de transiciones válidas,de las transiciones por validar e invalidar para el ciclo actual. El sistema laGrafcet actualiza cada vez que el gráfico evoluciona.

%SD18 Contador Esta doble palabra permite efectuar cálculos de duración.de tiempo Es incrementada cada 1/10ma de segundos por elabsoluto sistema (incluso con el autómata en STOP). El programa

usuario o el PC pueden leerlo o escribirlo.

%SW20 Nivel Esta palabra contiene el número de etapas activas, queactividad se deben activar o desactivar para el ciclo actual. Esdel Grafcet actualizado por el sistema cada vez que evoluciona el

gráfico.

%SW21 Tabla de validez Este palabra contiene el número de transicionesde transiciones válidas, que se deben validar o invalidar para el cicloGrafcet actual. El sistema la actualiza cada vez que evoluciona el

gráfico.

%SW22 Tabla de A cada bit de esta tabla corresponde una macroetapaa puesta a 0 con %SW22:X0 para XM0 ....%SW25:X16 para XM63.%SW25 macroetapa Las macroetapas cuyo bit asociado en esta tabla está

a 0, se volverán a poner a 0 cuando se ponga a 1 el bit%S24.

%SW30 Tiempo de Indica el tiempo de ejecución más largo de la tareaejecución de la maestra (en ms).tarea maestra (1)

(1) este tiempo corresponde al tiempo transcurrido entre el inicio (adquisición de las entradas)y el fin (actualización de las salidas) de un ciclo de exploración. Este tiempo incluye el tratamientode las tareas rápida y de suceso, así como el tratamiento de las peticiones del dispositivo deprogramación.

Page 335: Manual PL7

Bits y palabras del sistema 3

___________________________________________________________________________3/13

B

BPalabras Función Designaciónsistema

%SW31 Tiempo de Indica el tiempo de ejecución más largo de la tarea ejecución máx. maestra después del último arranque en frío (en ms). de la tarea maestra (1)

%SW32 Tiempo de Indica el tiempo de ejecución más corto de la tareaejecución mín. maestra después del último arranque en frío (en ms).de la tareamaestra (1)

%SW33 Tiempo de Indica el tiempo de ejecución del último ciclo de ejecución de la de la tarea rápida (en ms).

tarea rápida (1)

%SW34 Tiempo de Indica el tiempo de ejecución más largo de la tareaejecución máx. rápida después del último arranque en frío (en ms).de la tarearápida (1)

%SW35 Tiempo de Indica el tiempo de ejecución más corto de la tareaejecución mín. rápida después del último arranque en frío (en ms).de la tarearápida (1)

%SW48 Número de Indica el número de sucesos tratadossucesos después del último arranque en frío (en ms). Palabra

que puede ser escrita por el programa o el terminal.

%SW49 Función reloj- Palabras sistema que contienen la fecha y hora actuales%SW50 calendario (en BCD) :%SW51 (2) %SW49: día de la semana (desde 1 para el lunes hasta%SW52 7 para el domingo).%SW53 %SW50: Segundos (SS00)

%SW51: Horas y Minutos (HHMM)%SW52: Mes y Día (MMJJ)%SW53: Año (AAAA)El sistema efectúa la gestión de estas palabras cuandoel bit %S50 está en el estado 0.Estas palabras pueden ser escritas por el programa deusuario o el terminal cuando el bit %S50 se pone a 1.

%SW54 Función reloj- Palabras sistema que contienen la fecha y hora del%SW55 calendario último corte de corriente o la última parada del autómata%SW56 (2) (en BCD):%SW57 %SW54: Segundos (SS00),%SW58 %SW55: Horas y Minutos (HHMM),

%SW56: Mes y Día (MMJJ),%SW57: Año (AAAA),%SW58: el byte más significativo indica el día de lasemana (de 1 para lunes a 7 para domingo).

(1) este tiempo corresponde al tiempo transcurrido entre el inicio (adquisición de las entradas)y el fin (actualización de las salidas) de un ciclo de exploración. Este tiempo incluye el tratamientode las tareas rápida y de suceso, así como el tratamiento de las peticiones de consola.(2) sólo en los autómatas TSX 37-21/22 y TSX 57.

Page 336: Manual PL7

3/14___________________________________________________________________________

BPalabras Función Designaciónsistema

%SW58 Código de El byte menos significativo indica el código de la últimala última parada:parada 1= paso de RUN a STOP por terminal

2= parada por falla de programa (rebasamiento de la tarea del autómata)4= corte de corriente5= parada por falla de hardware6= parada por instrucción HALT

%SW59 Ajuste Contiene dos series de 8 bits para ajustar la fecha actual.de la fecha La acción se realiza siempre en el flanco ascendente del bit.actual El bit %S59 valida esta palabra.

Aumento Disminución Parámetrobit 0 bit 8 día de la semanabit 1 bit 9 segundosbit 2 bit 10 minutosbit 3 bit 11 horasbit 4 bit 12 díasbit 5 bit 13 mesesbit 6 bit 14 añosbit 7 bit 15 siglos

%SW60 Diagnóstico Palabras del sistema utilizadas en caso de instalación dea autómata arquitectura redundante (véase designación y utilización en el%SW69 redundante manual "Arquitectura Premium de autómata redundante·).

%SW66 Gestión del Contiene el valor Hexa/BCD que el usuario desea visualizar envisualizador de el indicador de 7 segmentos opcionales.7 segmentos Esta visualización se efectúa cuando el bit %S66 está a 1.

%SW67 Gestión Cuando %S69=1, estas palabras permiten utilizar el bloque%SW68 del modo de visualización (parte delantera del autómata) en modo%SW69 " WORD" WORD:

%SW67: control y estado del modo WORD,%SW68: índices actual y máximo,%SW69: número del primer objeto en el área visualizada.Para más información sobre estas palabras sistema, véaseel capítulo 1.5, apartado F (manual de instalación).

%SW80 Gestión de No de mensajes emitidos por el sistema hacia el conectormensajes y terminal S y U.

%SW81 telegramas No de mensajes recibidos por el sistema desde el conectorterminal.

%SW82 No de mensajes emitidos por el sistema hacia el acopladorPCMCIA.

%SW83 No de mensajes recibidos por el sistema desde el acopladorPCMCIA.

%SW84 No de telegramas emitidos por el sistema.%SW85 No de telegramas recibidos por el sistema.%SW86 No de mensajes rehusados por el sistema.

%SW87 Gestión de Número de peticiones tratadas por el servidor síncrono porlos flujos de ciclo de la tarea maestra (MAST).

%SW88 comunicación Número de peticiones tratadas por el servidor asíncrono por(1) ciclo de la tarea maestra (MAST).

%SW89 Número de peticiones tratadas por función del servidor(inmediato) por ciclo de la tarea maestra (MAST).

(1) palabras disponibles únicamente en TSX/PCX/PMX 57, versión V3.3 o superior.

Page 337: Manual PL7

Bits y palabras del sistema 3

___________________________________________________________________________3/15

B

BPalabras Función Designaciónsistema

%SW96 Control/ Control y/o diagnóstico de la función de guardado/restitucióndiagnóstico del programa de aplicación y de los %MW:de la función bit 0: petición de transferencia hacia el área guardado. Seguarda/ activa con flanco ascendente. El sistema vuelve a ponerlo a0restitución tan pronto se registra el flanco ascendente.

bit 1: cuando este bit tiene valor 1, significa que ha terminadola función de guardado. Vuelve a situarse en 0 tan pronto seregistra 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 aplicación (idem%S96).bit 7: validez del guardado de los %MW (idem %S97).bits 8 a 15: este byte sólo es significativo si el bit de informeestá a 1 (bit 2 = 1, error durante el guardado).1 -> el número de %MW que requiere guardar es superior alnúmero de %MW configurado,2 -> el número de %MW que requiere guardar es superior a1000 o inferior a 0,3 -> el número de %MW que hay que restituir es superior alnúmero de %MW configurado,4 -> el tamaño de la aplicación en RAM interna es superior a15 Kpalabras(recordamos que el guardado de los %MW va siempreasociada a un guardado del programa de aplicación en laFlash EPROM interna),5 -> servicio no autorizado en RUN,6 -> presencia de una tarjeta de memoria Backup en elautómata,7 -> falla de escritura en la Flash EPROM.

%SW97 Número de Permite definir el número de %MW que requieren guardar.%MW que Cuando esta palabra esté comprendida entre 1 y 1000, serequieren transferirán los primeros %MW (del 1 al 1000) a la Flashguardado EPROM interna. Cuando esta palabra valga 0, únicamente se

transferirá a la Flash EPROM interna el programa deaplicación contenido en la RAM interna.Se borra entonces una posible guardado de %MW .Al producirse un rearranque en frío, se inicializa esta palabraa -1, si la Flash EPROM interna no contiene ningún guardadode %MW.En caso contrario, se inicializa con el valor del número depalabras guardadas.

%SW98 Dirección de Cuando el bit %S98 = 1, esta palabra indica la direcciónla entrada geográfica (módulo / vía) de la entrada TON, en sustituciónTON del botón del acoplador TSX SAZ 10:

Byte más significativo Byte menos significativo

Número del módulo Número de la vía

Page 338: Manual PL7

3/16___________________________________________________________________________

BPalabras Función Designaciónsistema

%SW99 Dirección de Cuando el bit %S99 = 1, esta palabra indica la direcciónla entrada geográfica (módulo / vía) de la entrada TON, remplazandoTON el botón del bloque de visualización centralizada:

Byte más significativo Byte menos significativo

Número del módulo Número de la vía

%SW108 Número de Indica el número de bits forzados en la aplicación.bits forzados Normalmente a 0. El sistema de forzado y de cancelación de

forzado de bits lo actualiza en la memoria de aplicación.

%SW109 Contador de Indica el número de vías analógicas forzadas.vías analógicasforzadas

%SW116 Falla FIPIO Normalmente a 0, cada bit de esta palabra es significativoen la tarea 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 explícito (la variable no se intercambiaen el bus),x1 =1 time-out en un intercambio explícito (no hay respuesta altérmino del time-out),x2 =1 número máximo de intercambios explícito simultáneoalcanzado,x3 =1 estado MPS no correcto (el contenido de la variable no esválido),x4 =1 longitud de una variable recibida superior a la longituddeclarada,x5 = reservado a 0x6 =1 código PDU inválido (la variable debe ser ignorada por eladministrador de la vía), el agente se inicializa,x7 =1 time-out de rapidez asincrónica: el tiempo de producciónde la variable por el agente no ha sido respetado, caracteriza unaausencia del equipo configurado en el bus FIPIO,x8 =1 falla de vía,x9 = reservado a 0,x10 a x14 = reservado a 0,x15 =1 falla global (O de los bits 3, 4, 6, 7, 8).

%SW124 Tipo de El sistema escribe en esta palabra el último tipo de falla UCfalla encontrada (estos códigos no cambian al arrancar el frío):UC 16#30 : falla del código sistema

16#60 a 64 : rebasamiento de pila16#90 : falla del sistema de interrupción: IT no previsto16#53 : falla del tiempo de espera al intercambiar E/S

Page 339: Manual PL7

Bits y palabras del sistema 3

___________________________________________________________________________3/17

B

BPalabras Función Designaciónsistema

%SW125 Tipo de El sistema escribe en esta palabra el último tipo de falla defalla de bloqueo encontrado:bloqueo 16#DEB0 : rebasamiento del watchdog

16#2258 : ejecución de la instrucción HALT16#DEF8 : ejecución de una instrucción JMP a una

etiqueta no definida16#2XXX : ejecución de una instrucción CALL a un subpro

grama no definido16#0XXX : ejecución de una función desconocida16#DEFE : el programa grafcet comprende dos remisiones

a las entradas no delineadas.16#DEFF : flotante no implantado16#DEF0 : división 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)

%SW126 Dirección de Dirección de la instrucción que generó la falla de bloqueo de%SW127 la instrucción la aplicación.

de la falla de %SW126 contiene el desplazamiento de esta direcciónbloqueo %SW127 contiene la base de esta dirección

%SW128 Punto de Cada bit de este grupo de palabras es significativo dea conexión de un equipo conectado en el bus FIPIO.%SW143 Falla en Normalmente a 1, la presencia a 0 de uno de estos bits

FIPIO en indica la aparición de una falla de punto de conexión.%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 ponera 1 este bitNota: @ = punto de conexión

%SW144 Modo de Atención : la modificación de esta palabra del sistemamarcha puede producir la parada de la estación.función Esta palabra del sistema permite la detención y el arranqueárbitro de de la función árbitro de bus y de la función productor/bus FIPIO consumidor. Permite modificar el modo de arranque,

automático y manual del bus en caso de parada.Para más información, véase el manual de comunicación.

Page 340: Manual PL7

3/18___________________________________________________________________________

B

Palabras Función Designaciónsistema

%SW145 Modificación de Atención : la modificación de esta palabra puedelos parámetros generar la parada de la estación.del árbitro del Esta palabra sistema permite modificar parámetrosbus FIPIO del árbitro de bus FIPIO.

Para más información, véase manual de comunicación.

%SW146 Visualización Esta palabra visualiza la función árbitro de bus yde la función productor/consumidor en el bus FIPIO.árbitro de Para más información, véase manual de comunicación.bus FIPIO

%SW147 Tiempo de Valor del tiempo de ciclo red de la tarea MAST.ciclo red Un valor no nulo indica en ms, el valor del tiempoMAST de ciclo red (TCR-MAST) de la tarea MAST.

%SW148 Tiempo de Valor del tiempo de ciclo red de la tarea FAST.ciclo red Un valor no nulo indica en ms, el valor del tiempoFAST de ciclo red (TCR-FAST) de la tarea FAST.

%SW149 Reservado a 0.

%SW150 Número de Esta palabra indica el número de tramas emitidas por eltramas emitidas administrador de la vía FIPIO.

%SW151 Número de Esta palabra indica el número de tramas recibidas por eltramas recibidas administrador de la vía FIPIO.

%SW151 Nombre de Esta palabra indica el número de recuperaciones de mensajesmessages efectuadas por el administrador de la vía FIPIO.repris

%SW155 Número Número de intercambios explícitos en curso de tratamientode intercambiosexplícitos

%SW160 Resultado del último registro (función diagnóstico).

%SW161 Resultado de la última cancelación de registro (función dediagnóstico).

%SW162 Número de errores en curso en el buffer de diagnóstico1.

Page 341: Manual PL7

Diferencias entre PL7-2/3 y PL7 Micro 4

___________________________________________________________________________4/1

B

B4.1 Diferencias entre PL7-2/3 y PL7-Micro/Junior

Valores inmediatos

Objetos PL7-2/3 PL7 Micro/Junior

Entero base 10 1234 1234

Entero base 2 L'10011110' 2#10011110

Entero base 16 H'ABCD' 16#ABCD

Flotante -1.32e12 (PL7-3) -1.32e12

Cadena de caracteres M'aAbBcB' 'aAbBcC'

Etiquetas

Etiqueta Li i = 0 a 999 %Li i = 0 a 999

Bits

Objetos PL7-2/3 PL7 Micro/Junior

Bit de entrada en rack Ixy,i %Ixy.iBit de entrada en rack indexado Ixy,i (Wj) (PL7-3) %Ixy.i [%MWj]Bit de entrada a distancia RIx,y,i (PL7-3) %I\<ruta>\<mód>.<vía>Bit de entrada a distancia indexado RIx,y,i (Wj) (PL7-3)

Bit de salida en rack Oxy,i %Qxy.iBit de salida en rack indexado Oxy,i (Wj) (PL7-3) %Qxy.i[%MWj]Bit de salida a distancia ROx,y,i (PL7-3) %Q\<ruta>\<mód>.<vía>Bit de salida a distancia indexado ROx,y,i (Wj) (PL7-3)

Bit de falla E/S en rack• bit de falla módulo Ixy,S / Oxy,S %Ixy. MOD.ERR• bit de falla vía %Ixy.i.ERR

Bit de falla E/S a distancia (PL7-3)• bit de falla módulo %I\<ruta>\<mód>.MOD.ERR• bit de falla vía RDx,y,i / ERRORx,y,i %I\<ruta>\<mód>.<vía>.ERR• bit de disyunción vía de salida TRIPx,y,i• bit de reactivación vía de salida RSTx,y,i

Bit interno Bi %Mi

Bit interno indexado Bi(Wj) (PL7-3) %Mi[%MWj]

Bit sistema SYi %Si

Bit de etapa Xi %Xi

Bit de macroetapa XMj (PL7-3) %XMj

Bit de etapa i de macroetapa j Xj,i (PL7-3) %Xj.i

Bit de etapa de entrada de macroetapa j Xj,I (PL7-3) %Xj.IN

Bit de etapa de salida de macroetapa j Xj,O (PL7-3) %Xj.OUT

Bit j de palabra interna i Wi,j %MWi:Xj

Bit j de palabra interna i indexada Wi(Wk),j(PL7-3) %MWi[%MWk]:Xj

Capítulo 44 Diferencias entre PL7-2/3 y PL7 Micro/Junior

Page 342: Manual PL7

4/2___________________________________________________________________________

BBit j de palabra constante i CWi,j %KWi:Xj

Bit j de palabra constante i indexada CWi(Wk),j (PL7-3) %KWi[%MWk]:Xj

Bit j de registro i IW/OWxy,i,j %IW/%QWxy.i:Xj

Bit k de palabra común j COMi,j,k %NWi.j:Xkde la estación i COMXi,j,k (X = B, C, D) %NXWi.j:Xk

Bit j de palabra sistema i SWi,j %SWi:Xj

Palabras

Objetos PL7-2/3 PL7 Micro/Junior

Palabra interna simple longitud Wi %MWi

Palabra interna simple longitud indexada Wi(Wj) (PL7-3) %MWi[%MWj]

Palabra interna doble longitud DWi (PL7-3) %MDi

Palabra interna doble longitud indexada DWi(Wj) (PL7-3) %MDi[%MWj]

Palabra interna real %MFi

Palabra interna real indexada %MFi[%MWj]

Palabra constante simple longitud CWi %KWi

Palabra constante simple longitud indexada CWi(Wj) %KWi[%MWj]

Palabra constante doble longitud CDWi (PL7-3) %KDi

Palabra constante doble longitud indexada CDWi(Wj) (PL7-3) %KDi[%MWj]

Palabra constante real %KFi

Palabra constante real indexada %KFi[%MWj]

Palabra registro de entrada simple longitud IWxy,i %IWxy.i

Palabra registro de entrada doble longitud %IDxy.i

Palabra registro de salida simple longitud OWxy,i %QWxy.i

Palabra registro de salida doble longitud %QDxy.i

Palabra registro de una entrada a distancia RIWx,y,i (PL7-3) %IW\<ruta>\<mód>.<vía>

Palabra registro de una salida a distancia ROWx,y,i (PL7-3) %QW\<ruta>\<mód>.<vía>

Palabra sistema SWi %SWi

Palabra común j de la estación i COMi,j %NW{i}jCOMXi,j (con X = B, C, D) %NW{[r.]i}j

r = núm. de red

Palabra de estado de un módulo TON remoto STATUSAx,y,i (PL7-3)STATUSBx,y,i (PL7-3)

Pal. de estado de una vía de mód. TON remoto STSx,y,i(PL7-3) %IW\<ruta>\<mód>.<vía>.ERR

Tiempo de actividad de etapas Grafcet Xi,V %Xi.T

Tiempo de actividad de etapa i de macroetapa j Xj,i,V (PL7-3) %Xj.i.T

Page 343: Manual PL7

Diferencias entre PL7-2/3 y PL7 Micro 4

___________________________________________________________________________4/3

B

BTiempo de actividad de etapa de entrada Xj,I,V (PL7-3) %Xj.IN.Tde macroetapa j

Tiempo de actividad de etapa de salida Xj,O,V (PL7-3) %Xj.OUT.Tde macroetapa j

Bloques de función

Objetos PL7-2/3 PL7 Micro/Junior

Temporizador Ti %Ti• valor de preselección (palabra) Ti,P %Ti.P• valor actual (palabra) Ti,V %Ti.V• temporizador en curso (bit) Ti,R %Ti.R• temporizador transcurrido (bit) Ti,D %Ti.D

Monoestable Mi %MNi• valor de preselección (palabra) Mi,P %MNi.P• valor actual (palabra) Mi,V %MNi.V• monoestable en curso (bit) Mi,R %MNi.R

Contador/descontador Ci %Ci• valor de preselección (palabra) Ci,P %Ci.P• valor actual (palabra) Ci,V %Ci.V• rebasamiento contaje (bit) Ci,E %Ci.E• preselección alcanzada (bit) Ci,D %Ci.D• rebasamiento descontaje (bit) Ci,F %Ci.F

Registro Ri %Ri• palabra de entrada (palabra) Ri,I %Ri.I• palabra de salida (palabra) Ri,O %Ri.O• registro lleno (bit) Ri,F %Ri.F• registro vacío (bit) Ri,E %Ri.E

Texto TXTi sin de bloque texto

Programador cíclico Di (PL7-2) %DRi• número del paso activo (palabra) Di,S %DRi.S• tiempo de actividad del paso actual (palabra) Di,V %DRi.V• 16 bits de comando (palabra) Di,Wj %DRi.Wj• último paso en curso (bit) Di,F %DRi.F

Contador/Temporizador rápido FC (PL7-2) -• valor de preselección (palabra) FC,P -• valor actual (palabra) FC,V -• puesta a 0 externa (bit) FC,E -• preselección alcanzada (bit) FC,D -• contaje en curso (bit) FC,F -

Reloj-calendario H (PL7-2) -• tipo "WEEK" o "YEAR" selección de días LMMJVSD (palabra) VD -• valor de consigna de inicio (palabra) BGN -• valor de consigna de fin (palabra) END -• valor actual < valor de consigna (bit) < -• valor actual = valor de consigna (bit) = -• valor actual > valor de consigna (bit) > -

Page 344: Manual PL7

4/4___________________________________________________________________________

BTablas de bits y palabras

Objetos PL7-2/3 PL7 Micro/Junior

Cadenas de bits• cadena de bits internos Bi[L] %Mi:L• cadena de bits de entrada Ixy,i[L] (PL7-3) %Ixy.i:L• cadena de bits de salida Oxy.i[L] (PL7-3) %Qxy.i:L• cadena de bits de etapa Grafcet Xi[L] (PL7-3) %Xi:L• cadena de bits de macroetapa XMi[L] (PL7-3)

Cadenas de caracteres %MBi:L (1)(con "i" par)

Tablas de palabras• tabla de palabras internas Wi[L] %MWi:L• tabla de palabras internas indexadas Wi(Wj)[L] %MWi[%MWj]:L• tabla de dobles palabras internas DWi[L] (PL7-3) %MDi:L• tabla de dobles palabras internas indexadas DWi(Wj)[L] (PL7-3) %MDi[%MWj]:L• tabla de palabras constantes CWi[L] %KWi:L• tabla de palabras constantes indexadas CWi(Wj)[L] %KWi[%MWj]:L• tabla de dobles palabras constantes CDWi[L] (PL7-3) %KDi:L• tabla de dobles palabras constantes indexadas CDWi(Wj)[L] (PL7-3) %KDi[%MWj]:L• tabla de reales %MFi:L• tabla de reales indexados %MFi[%MWj]:L• tabla de reales constantes %KFi:L• tabla de reales constantes indexados %KFi[%MWj]:L• tabla de elementos de entrada a distancia RIx,y,i[L] (PL7-3)• tabla de elementos de salida a distancia ROx,y,i[L] (PL7-3)• tabla de elementos index. de entrada a distancia RIx,y,i(Wj)[L] (PL7-3)• tabla de elementos index. de salida a distancia ROx,y,i(Wj)[L] (PL7-3)

Bloques de función opcionales

Objetos PL7-3 PL7 Micro/Junior

Bloque de función opcional <OFB>i

Elemento de OFB <OFB>i, <elemento>

Elemento de OFB indexado <OFB>i,<elemento>(Wj)

Tabla de elementos de OFB <OFB>i,<elemento>[L]

Tabla de elementos de OFB indexados <OFB>i,<elemento>(Wj)[L]

Page 345: Manual PL7

Diferencias entre PL7-2/3 y PL7 Micro 4

___________________________________________________________________________4/5

B

BInstrucciones

Objetos PL7-2 PL7-3 PL7 Micro/Junior

Instrucciones para bits• Inversión lógica NOT NOT• Y AND • AND• O OR + OR• O exclusiva XOR XOR• Flanco ascendente RE RE• Flanco descendente FE FE• Puesta a 1 SET SET• Puesta a 0 RESET RESET

Instrucciones para palabras y dobles palabras• Suma + + +• Resta - - -• Multiplicación * * *• División / / /• Comparaciones >, >=, <, <=, =, <> >, >=, <, <=, =, <>• Resto de una división MOD REM REM• Raíz cuadrada SQRT SQRT• Valor absoluta ABS• Y lógica AND AND AND• O lógica OR OR OR• O lógica exclusiva XOR XOR XOR• Complemento lógico CPL CPL NOT• Aumento INC INC• Disminución DEC DEC• Desplazamiento lógico a la izquierda SHL SHL• Desplazamiento lógico a la derecha SHR SHR• Desplazamiento circular a la izquierda SLC SLC ROL• Desplazamiento circular a la derecha SRC SRC ROR

Instrucciones de tipo flotante (1)• Suma ADDF +• Resta SUBF -• Multiplicación MULF *• División DIVF /• Raíz cuadrada SQRTF SQRT• Valor absoluto ABS• Prueba de igualdad EQUF =• Prueba de superioridad estricta SUPF >• Prueba de inferioridad estricta INFF <• Otras pruebas >=, <=, <>

Page 346: Manual PL7

4/6___________________________________________________________________________

BInstrucciones (cont.)

Objetos PL7-2 PL7-3 PL7 Micro/Junior

Instrucciones para cadenas de octetos• Desplazamiento circular SLCWORD

Instrucciones de conversión• Conversión BCD binario BCD DTB BCD_TO_INT• Conversión binario BCD BIN BTD INT_TO_BCD• Conversión ASCII binario ATB ATB STRING_TO_INT o

STRING_TO_DINT• Conversión binario ASCII BTA BTA INT_TO_STRING o

DINT_TO_STRING• Conversión Gray binario GTB GRAY_TO_INT• Conversión flotante entero FTB REAL_TO_INT o

REAL_TO_DINT• Conversión entero flotante FTF INT_TO_REAL o

DINT_TO_REAL• Conversión BCD flotante DTF BCD_TO_REAL• Conversión flotante BCD FTD REAL_TO_BCD• Conversión ASCII flotante ATF STRING_TO_REAL• Conversión flotante ASCII FTA REAL_TO_STRING

Instrucciones para tablas• Operaciones aritméticas +, -, *, /, REM +, -, *, /, REM• Operaciones lógicas AND, OR, XOR AND, OR, XOR, NOT• Suma de las palabras de una tabla + SUM• Búsqueda de la 1era palabra diferente EQUAL EQUAL• Búsqueda de la 1era palabra igual SEARCH FIND_EQU

Instrucciones para programa• Salto JUMP Li JUMP %Li• Llamada de subprograma CALL SRi SRi• Regreso de subprograma RET RETURN• Parada de la aplicación HALT HALT• Sentencia condicional IF/THEN/ELSE IF/THEN/ELSE/END_IF• Sentencia iterativa WHILE/DO WHILE/DO/END_WHILE

Instrucciones para interrupciones• Prueba READINT• Enmascaramiento MASKINT MASKEVT• Desenmascaramiento DMASKINT UNMASKEVT• Confirmación ACKINT• Generación de una IT hacia acoplador SETIT

Instrucciones de E/S explícitas• Lectura de entradas TON READBIT• Escritura de salidas TON WRITEBIT• Lectura de registros READREG• Escritura de registros WRITEREG• Lectura de palabras READEXT• Escritura de palabras WRITEEXT

Page 347: Manual PL7

Diferencias entre PL7-2/3 y PL7 Micro 4

___________________________________________________________________________4/7

B

BInstrucciones (cont.)

Objetos PL7-3 PL7 Micro/Junior

Instrucciones para bloques función• Preselección PRESET Ti / Ci PRESET %Ti / %Ci• Arranque START Ti / Mi START %Ti / %MNi• Activación de la tarea START CTRLi• Puesta a cero RESET Ci / Ri / TXTi RESET %Ci / %Ri• Desactivación de la tarea RESET CTRLi• Contaje UP Ci UP %Ci• Descontaje DOWN Ci DOWN %Ci• Almacenamiento en un registro PUT Ri PUT %Ri• Desalmacenamiento de un registro GET Ri GET %Ri• Recepción de un mensaje INPUT TXTi• Emisión de un mensaje OUTPUT TXTi• Emisión/Recepción de un mensaje EXCHG TXTi• Ejecución de un OFB EXEC <OFBi>• Lectura de telegramas READTLG

Delimitadores

Objetos PL7-2/3 PL7 Micro/Junior

Asignación -> :=

Paréntesis izquierdo para la indexación ( [

Paréntesis derecho para la indexación ) ]

Longitud de tabla [longitud] :longitud

Page 348: Manual PL7

4/8___________________________________________________________________________

B

Page 349: Manual PL7

Lista de palabras reservadas 5

___________________________________________________________________________5/1

B

B

Capítulo 55 Lista de palabras reservadas

5.1 Palabras reservadas

Las siguientes palabras reservadas no deben utilizarse como símbolos.

*_TO_* * = LetterSRiAUXiEVTiXMi i = entero

ABSACCEPTACOSACTIONACTIVATE_PULSEACTIVE_TIMEADDADDRESSADD_DTADD_TODADRANDANDFANDNANDRAND_ARXANYANY_BITANY_DATEANY_INTANY_NUMANY_REALARRAYAR_DAR_DINTAR_FAR_INTAR_RAR_WAR_XASINASKASK_MSGASK_VALUEASSIGN_KEYSATATANAUXBCD_TO_INTBIT_DBIT_WBLK

BLOCKBODYBOOLBOTTOMBTIBTRBYBYTECCALCALCCALCNCALLCALL_COILCANCELCASECDCHARTCH_MCLKCLOSECLOSED_CONTACTCOILCOMMANDCOMMENTSCOMP4COMPCHCONCATCONCATWCONFCONFIGURATIONCONSTANTCONTROL_LEDSCOPY_BITCOSCTDCTUCTUDCUDDATEDATE_AND_TIMEDAT_FMTDAY_OF_WEEKDA_TYPEDEACTIVATE_PULSEDECDELETE

DELTA_DDELTA_DTDELTA_TODDINTDINT_TO_REALDINT_TO_STRINGDISPLAY_ALRMDISPLAY_GRPDISPLAY_MSGDIVDMOVEDODOWNDRDRUMDSDSHL_RBITDSHRZ_CDSHR_RBITDSORT_ARDDSORT_ARWDTDTSDWORDD_BITEEBOOLELSEELSIFEMPTYEMPTY_LINEENDENDCENDCNEND_ACTIONEND_BLKEND_BLOCKEND_CASEEND_COMMENTSEND_CONFIGURATIONEND_FOREND_FUNCTIONEND_FUNCTION_BLOCKEND_IFEND_MACRO_STEPEND_PAGEEND_PHRASEEND_PROG

Page 350: Manual PL7

5/2___________________________________________________________________________

BEND_PROGRAMEND_REPEATEND_RESOURCEEND_RUNGEND_STEPEND_STRUCTEND_TRANSITIONEND_TYPEEND_VAREND_WHILEEQEQUALEQUAL_ARRERREVTEXCHGEXCH_DATAEXITEXPEXPTFFALSEFASTFBDFEFIFOFINDFIND_EQFIND_EQDFIND_EQDPFIND_EQRFIND_EQWFIND_EQWPFIND_GTDFIND_GTRFIND_GTWFIND_LTDFIND_LTRFIND_LTWFORFPULSORFROMFTOFFTONFTPFUNCFUNCTIONFUNCTION_BLOCKF_BF_EDGEF_TRIGGE

LENGTH_ARRLENGTH_ARWLENGTH_ARXLIFOLIMITLINTLISTLITLNLOCATIONLOGLREALLTLWLWORDMMACRO_STEPMAINMASKEVTMASTMAXMAX_ARDMAX_ARRMAX_ARWMAX_PAGESMAX_STEPMCRMCR_COILMCSMCS_COILMIDMINMIN_ARDMIN_ARRMIN_ARWMNMODMONOMOVEMPPMPSMRDMSMULMUXM_CHM_MACRO_STEPNN1NAMENB_ACTIVE_STEPSNB_ACTIVE_TIME

GETGET_MSGGET_VALUEGLOBAL_COMMENTGR7GRAY_TO_INTGTGTIHHALTHALT_COILHASH_COILHWH_COMPAREH_LINKIIFILININCINCJUMPINDEX_CHINFOINITIAL_STEPINIT_BUTTONSINPUTINPUT_CHARINSERTINTINTERVALINT_TO_BCDINT_TO_REALINT_TO_STRINGITBITSJMPJMPCJMPCNJUMPJUMP_COILLLADLANGAGELANGUAGELDLDFLDNLDRLELEFTLENLENGTH_ARD

Page 351: Manual PL7

Lista de palabras reservadas 5

___________________________________________________________________________5/3

B

BNB_BLOCKSNB_COMMON_WORDSNB_CONSTANT_WORDSNB_CPTNB_DRUMNB_INTERNAL_BITSNB_INTERNAL_WORDSNB_MACRO_STEPSNB_MONONB_PAGESNB_REGNB_TIMERNB_TMNB_TRANSITIONSNENILNONON_STOREDNOPNOTNOT_ARXNOT_COILNOT_READABLENO_GR7NO_PERIODN_CONTACTOOCCUROCCUR_ARDOCCUR_ARROCCUR_ARWOFONOPENOPEN_CONTACTOPERATEORORFORNORROR_ARXOTHERSOUTOUTIN_CHAROUTPUTOUT_BLKPP0P1PAGEPAGE_COMMENTPANEL_CMD

PERIODPHRASEPHRASE_COMMENTPIDPID_MMIPLCPOSTPRESETPRINTPRINT_CHARPRIO0PRIO1PRIORITYPRLPROGPROGRAMPROG_LANGAGEPROG_LANGUAGEPTPTCPUTPVPWMP_CONTACTQQUERYRR1RCV_TLGREREADREAD_EVT_UTWREAD_ONLYREAD_PARAMREAD_STSREAD_VARREAD_WRITEREALREAL_TO_DINTREAL_TO_INTREAL_TO_STRINGREGREMREPEATREPLACEREQRESETRESET_COILRESOURCERESTORE_PARAMRETRETAIN

RETCRETCNRETURNRET_COILRIGHTROLROLDROLWROL_ARDROL_ARRROL_ARWROL_DWORDROL_WORDRORRORDRORWROR_ARDROR_ARRROR_ARWROR_DWORDROR_WORDRRTCRSRTBRTCRTSRUNGR_EDGER_TRIGSS1SAVESAVE_PARAMSCHEDULESDSEARCHSECTIONSELSEMASENDSENDERSEND_ALARMSEND_MBX_ALARMSEND_MBX_MSGSEND_MSGSEND_REQSEND_TLGSERVOSETSET_COILSFCSHIFT

Page 352: Manual PL7

5/4___________________________________________________________________________

BSHLSHOW_ALARMSHOW_MSGSHOW_PAGESHRSHRZSINSINGLESINTSLSLCWORDSMOVESOFT_CONFIGURATIONSORTSORT_ARDSORT_ARRSORT_ARWSQRTSRSTSTANDARDSTARTSTDSTEPSTISTNSTOPSTRSTRINGSTRING_TO_DINTSTRING_TO_INTSTRING_TO_REALSTRUCTSUBSUB_DTSUB_TODSUMSU_TYPESWAPS_T_AND_LINKS_T_OR_LINKTTANTASKTASKSTHENTIMETIMERTIME_OF_DAYTMTMAXTMOVE

TOTODTOFTOFFTONTOPTPTRANSITIONTRANS_TIMETRUETRUNCTYPETYPEST_S_AND_LINKT_S_OR_LINKUUDINTUINTULINTUNMASKEVTUNTILUPUSINTUSORT_ARDUSORT_ARWUTIN_CHARVARVAR_ACCESSVAR_EXTERNALVAR_GLOBALVAR_INPUTVAR_IN_OUTVAR_OUTPUTVAR_PUBLICVERSIONV_COMPAREV_LINKWWHILEWITHWORDWRITEWRITE_CMDWRITE_PARAMWRITE_VARWRTCWSHL_RBITWSHRZ_CWSHR_RBITW_BITXMXM_MONO

XM_MULTIXORXORFXORNXORRXOR_ARXYES

Page 353: Manual PL7

Conformidad con la norma CEI 1131-1 6

___________________________________________________________________________6/1

B

B

6.1 Conformidad con la norma IEC 1131-3

La norma IEC 1131-3 «Autómatas programables - Parte 3: Lenguajes de programación»especifica la sintaxis y la semántica de los elementos de software establecidos paraprogramar los autómatas programables.

Esta norma abarca las descripciones de dos lenguajes textuales: IL (Instruction List) y ST(Structured Text), de dos lenguajes gráficos: LD (Ladder Diagram) y FBD (Function BlockDiagram) y de un formalismo gráfico: SFC (Sequential Function Chart), que permiteestructurar la organización interna de una secuencia programada.

El software de programación PL7 permite programar un autómata programable enconformidad con la norma IEC: PL7 proporciona un subconjunto de elementos delenguajes definidos en la norma y determina ampliaciones autorizadas dentro de estanorma.

La norma IEC 1131-3 no define las reglas de interactividad del software proporcionado porun constructor que lo afirma ser conforme a la norma. Por consiguiente, el usuario puedegozar de una gran flexibilidad de presentación y de introducción de elementos deprogramación.

Los elementos de la norma implantados en PL7, la información relativa a la implantacióny los casos de detección de errores se sintetizan en las siguientes tablas de conformidad.

6.1.1 Tablas de conformidadEste sistema es conforme a las prescripciones de la norma IEC 1131-3 por lo que serefiere a las características de lenguaje siguientes:

Elementos comunes

Tabla n o Característica n° Descripción de las características1 1 Juego de caracteres requerido

véase el párrafo 2.1.1 de 1131-3

1 2 Letras minúsculas

1 3a Signo número (#)

Capítulo 66 Conformidad con la norma CEI 1131-1

Page 354: Manual PL7

6/2___________________________________________________________________________

B1 4a Signo dólar ($)

1 5a Barra vertical (|)

1 6a Delimitadores de índices:corchetes derecho e izquierdo «[]»

2 1 Mayúsculas y números

2 2 Mayúsculas y minúsculas, números, caracteresde subrayado integrados

3 1 Comentarios

4 1 Literales enteros (Nota 1)

4 2 Literales reales (Nota 1)

4 3 Literales reales con exponentes

4 4 Literales en base 2 (Nota 1)

4 6 Literales en base 16 (Nota 1)

4 7 Booleanos Cero y Uno

4 8 Booleanos TRUE y FALSE

5 1 Características de los literales cadenas de caracteres

6 2 $$ Signo dólar

6 3 $’ Apóstrofe

6 4 $L o $l Avance de línea

6 5 $N o $n Nueva línea

6 6 $P o $p Avance de página

6 7 $R o $r Regreso del cursor

Page 355: Manual PL7

Conformidad con la norma CEI 1131-1 6

___________________________________________________________________________6/3

B

B

6 8 $T o $t Tabulación

7 1a Literales de duración con prefijo corto t# (Nota 2)

10 1 BOOL -1 bit-

10 10 REAL -32 bits-

10 12 TIME -32 bits- (Nota 3)

10 13 DATE -32 bits- (Nota 3)

10 14 TIME_OF_DAY -32 bits- (Nota 3)

10 15 DATE_AND_TIME -64 bits- (Nota 3)

10 16 STRING

10 17 BYTE -8 bits-

10 18 WORD -16 bits-

10 19 DWORD -32 bits-

15 1 Prefijo I para Input

2 Prefijo Q para Output

3 Prefijo M para Memory

15 4 Prefijo X, tamaño de un bit

5 Ningún prefijo, tamaño de un bit

6 Prefijo B, tamaño de un byte (8 bits)

7 Prefijo W, tamaño de una palabra (16 bits)

8 Prefijo D, tamaño de una doble palabra (32 bits)

Page 356: Manual PL7

6/4___________________________________________________________________________

B

16 VAR Palabras clave (Nota 4)VAR_INPUTVAR_OUTPUTVAR_IN_OUTVAR_EXTERNALVAR_GLOBALCONSTANTAT

17 2 Declaración de variables no volátiles directamenterepresentadas (variables) (Nota 4)

17 3 Declaración de emplazamiento de variablessimbólicas (símbolos o variables) (Nota 4)

17 5 Asignación automática en memoria de variablessimbólicas (variables de bloques de función) (Nota 4)

18 2 Inicialización de variables no volátiles directamenterepresentadas (variables) (Nota 4)

18 3 Asignación de emplazamientos y valores inicialesde variables simbólicas (símbolos sobre variables)(Nota 4)

18 5 Inicialización de variables simbólicas (variables debloques de función) (Nota 4)

21 1 Las funciones sobrecargadas de PL7 son:ABS, EQUAL, ROL, ROR, SHL, SHR, SQRT, SUM

21 2 Las funciones PL7 suelen pertenecer a estacategoría.

22 1 Funciones de conversión 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)

Page 357: Manual PL7

Conformidad con la norma CEI 1131-1 6

___________________________________________________________________________6/5

B

B

22 2 Función TRUNC: truncado en 0 de un tipo REAL

22 3 Función de conversión BCD_TO_INT (Nota 6)

22 4 Función de conversión INT_TO_BCD (Nota 6)

23 1 Función ABS: valor absoluto

23 2 Función SQRT: raíz cuadrada

23 3 Función LN: logaritmo neperiano

23 4 Función LOG: logaritmo de base 10

23 5 Función EXP: exponencial natural

23 6 Función SIN: seno en radianes

23 7 Función COS: coseno en radianes

23 8 Función TAN: tangente en radianes

23 9 Función ASIN: arco de seno

23 10 Función ACOS: arco de conseno

23 11 Función ATAN: arco de tangente

25 1 Función SHL: desplazar la izquierda

25 2 Función SHR: desplazar a la derecha

25 3 Función ROR: rotar a la derecha

25 4 Función ROL: rotar a la izquierda

29 1 Función LEN: longitud de cadena

29 2 Función LEFT: n caracteres en el extremo izquierdo

29 3 Función RIGHT: n caracteres en el extremo derecho

29 4 Función MID: n caracteres desde una posición dada

29 5 Función CONCAT: concatenar cadenas(Nota 7)

29 6 Función INSERT: insertar una cadena en otra

29 7 Función DELETE: suprimir caracteres

Page 358: Manual PL7

6/6___________________________________________________________________________

B

29 8 Función REPLACE: reemplazar caracteres

29 9 Función FIND: buscar una cadena en otra

32 Input read (Nota 8)Input writeOutput readOutput write

33 1 Calificativo RETAIN para las variables internas de losbloques de función predefinidos (Nota 9)

33 2 Calificativo RETAIN para las salidas de los bloquesde función predefinidos (Nota 9) (Nota 4)

33 4a Declaración de entradas/salidas de bloquesde función (literal) (Nota 4)

37 1 Temporizador de impulsos: TP (Nota 10)

37 2a Temporizador de conexión: TON (Nota 10)

37 3a Temporizador de desconexión: TOF (Nota 10)

38 esquemastemporales TP, TON, TOF

39 19 Utilización de variables directamente representadas(variables)

40 1 Etapa, forma gráfica

Nota: Un número de etapa reemplaza un identificadorde etapa

40 2 Etapa, forma textual utilizada en la forma origen delGrafcet únicamente

41 1 Condición de transición en lenguaje ST

41 2 Condición de transición en lenguaje LD

42 2l Declaración de las acciones en lenguaje LD

43 1 Bloque de acción

43 2 Bloques de acción concatenados

Page 359: Manual PL7

Conformidad con la norma CEI 1131-1 6

___________________________________________________________________________6/7

B

B

45 2 Calificativo de acción N (no memorizado)

45 11 Calificativo de acción P1 (Pulse rising edge)

45 12 Calificativo de acción P0 (Pulse falling edge)

46 1 Secuencia simple, alternancia de etapa/transición

46 2c Divergencia en «O»: el usuario asegura que lascondiciones de transición son mutuamente exclusivas

46 3 Convergencia en «O»

46 4 Divergencia en «Y», Convergencia en «Y»

46 5c Salto de secuencia en una divergencia en «O»

46 6c Bucle de secuencia: regreso a una etapa previa

46 7 Flechas de direcciónNota: Las flechas de dirección son ascendentes ydescendentes

48 40 El lenguaje Grafcet cumple las condiciones para41 el nivel mínimo de conformidad SFC 1131-34243 Representación gráfica454657

49 3 Construcción RESOURCE...ON...END_RESOURCE

49 5a Construcción TASK periódica en RESOURCE

49 6a Declaración PROGRAM con asociaciónPROGRAM-to-TASK

49 7 Declaración de variables directamente representadasen VAR_GLOBAL

50 5b Orden preferencial en el modelo multitarea

Page 360: Manual PL7

6/8___________________________________________________________________________

BNota 1 : no se aceptan los caracteres de subrayado (_) insertados entre los númerosde un literal numérico.

Nota 2: estos literales se visualizan únicamente en el archivo de origen de la aplicaciónpara expresar los tiempos de las tareas configuradas.

Nota 3 : todavía no se han implantado estos tipos de datos de forma visible para elusuario. Sin embargo, esta tabla indica el espacio de memoria que ocupa surepresentación interna.

Nota 4 : sólo en los orígenes generados por PL7 y la herramienta de conversión de laaplicación PL7-2 se utilizan estas palabras clave.

Nota 5 : efectos de conversión dentro de los límites 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, %S15se 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, %S15se 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 límites [-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 límites [-2147483648,+2147483647], el resultado vale -2147483648 y %S18 y %SW17:X0 se posicionan.INT_TO_REAL: la conversión es siempre posible.DINT_TO_REAL: la conversión es siempre posible.

Nota 6: Ya que el tipo INT se utiliza, pero no está formalmente implementado, estasfunciones permiten cambiar el formato de codificación de una WORD.

Nota 7: la función CONCAT se limita a la concatenación de 2 cadenas.

Nota 8: este párrafo se aplica a los bloques de función predefinidos PL7.

Nota 9: el calificativo RETAIN es implícito.

Nota 10: los temporizadores TP, TON, TOF respetan los diagramas temporales de latabla 38, pero presentan una interface de E/S diferente de la 1131-3.

Page 361: Manual PL7

Conformidad con la norma CEI 1131-1 6

___________________________________________________________________________6/9

B

BElementos de lenguaje IL

Tabla n o Característica n o Descripción de las características

51 Campos de Etiqueta, operador, operando, comentario

de instrucción

52 1 LD

52 2 ST

52 3 S y R

52 4 AND

6 OR

7 XOR

52 18 JMP

52 20 RET

52 21 )

53 3 Utilización de operadores de entrada para lainiciación de bloques de función en leng. IL

54 11 IN (Nota 11)

54 12 IN (Nota 11)

54 13 IN (Nota 11)

Nota 11 : el operador PT no está disponible.

Elementos de lenguaje ST (Nota 12)

Tabla n o Característica n o Descripción de las características

55 1 Puesta entre paréntesis

55 2 Evaluación de función

55 4 - Negación

55 5 NO complemento

Page 362: Manual PL7

6/10___________________________________________________________________________

B

55 6 * Multiplicación

7 / División

55 9 + Suma

10 - Resta

55 11 <, >, <=, >= Comparación

55 12 = Igualdad

55 13 <> Desigualdad

55 15 AND para la "Y" booleana

55 16 XOR para la "O exclusiva" booleana

55 17 OR para la "O" booleana

56 1 := Asignación

56 3 Estructura RETURN

56 4 Estructura IF "if... then... elsif... then... else...end_if"

56 6 Estructura FOR "for... to... do... end_for" (Nota 13)

56 7 Estructura WHILE "while... do... end_while"

56 8 Estructura REPEAT "repeat ... until... end_repeat"

56 9 Estructura EXIT

Nota 12: este lenguaje se utiliza en su integridad en los módulos ST. Unsubconjunto ST se utiliza también en los bloques OPERACION y COMPARACIONde los lenguajes IL y LD.

Nota 13: implementación del bucle FOR con un paso implícito de 1 (by 1)..

Page 363: Manual PL7

Conformidad con la norma CEI 1131-1 6

___________________________________________________________________________6/11

B

BElementos gráficos comunes

Tabla n° Característica n° Descripción de las características

57 2 Líneas horizontales gráficas

57 4 Líneas verticales gráficas

57 6 Intersección gráfica línea horizontal/lvertical

57 8 Intersección gráfica de líneas sin conexión

57 10 Esquinas gráfs.conectadas y no conectadas

57 12 Bloques con líneas gráficas conectadas

58 2 Salto incondicional en lenguaje LD

58 4 Salto condicional en lenguaje LD

58 5 Regreso condicional en lenguaje LD

58 8 Regreso incondicional en lenguaje LD

Elementos de lenguaje LD

Tabla n° Característica n° Descripción de las características

59 1 Barra de alimentación izquierda

59 2 Barra de alimentación derecha

60 1 Enlace horizontal

60 2 Enlace vertical

61 1 Contacto abierto

61 3 Contacto cerrado

61 5 Contacto detector de transición positiva

61 7 Contacto detector de transición negativa

62 1 Bobina

62 2 Bobina negativa

62 3 Bobina SET

62 4 Bobina RESET

Page 364: Manual PL7

6/12___________________________________________________________________________

BParámetros dependientes de la implantación

Parámetro Restricciones y funcionamientoPL7

Procedimiento de tratamiento de errores Se señalan varios errores alejecutar por posicionamiento debits y palabras sistema.

Caracteres nacionales utilizados ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ

#, $, |

Longitud máxima de los identificadores 32

Longitud máxima del comentario 222

Gama de valores de duración (Nota 14)

Gama de valores de tipo TIME (Nota 14)en los tipos TIME_OF_DAY y (Nota 15)DATE_AND_TIME

Número máximo de índices de tabla 1 (Nota 16)

Tamaño máximo de tablas Depende del área indexada(Nota 16)

Long. máx. predet. de las variables STRING No aplicable

Longitud máxima autorizada para las 255variables STRING

Número máximo de niveles jerárquicos 3

Configuración lógica o física Configuración lógica

Intervalo máximo de valores de índices Depende del área indexada(Nota 16)

Page 365: Manual PL7

Conformidad con la norma CEI 1131-1 6

___________________________________________________________________________6/13

B

B

Inicialización de las entradas del sistema Las variables son inicializadaspor el sistema:- en el valor inicial especificadopor el usuario, dado el caso- si no, en cero

Efectos de conversión de tipos sobre véase tabla 22, característica 1la precisión

Número máximo de tipos de instancias No hay número máximo de blo-ques de función(los límites están vinculados alvolumen de la aplicación)

Límite del tamaño de los programas Volumen máximo de códigode un programa = 64 KBytes

Precisión del tiempo transcurrido asociado 100msa una etapa

Número máximo de etapas por gráfico 96 en autómata 3710128 en autómata 37201024 en autómata s 57xx V3.0

Número máximo de transiciones por gráfico 1024 transiciones por gráficoy por etapa 11 transiciones por etapa

Mecanismo de comando de acciones Calificativos P0, P1 y N1

Número máximo de bloques de acción 3 acciones son posibles: alpor etapa activar (P1), continua (N1) y al

desactivar (P0)

Indicación gráfica del estado de una etapa Etapa activa en vídeo inverso

Tiempo de alcance de una transición El tiempo de alcance es(desactivación de las etapas superiores y variable y siempre no nuloactivación de las etapas inferiores)

Page 366: Manual PL7

6/14___________________________________________________________________________

BProfundidad de las construcciones Límite dado por la cuadrículadivergentes y convergentes de introducción

Lista de autómatas programables por TSX 3710, 3720,PL7 TSX 5710, 5720, 5725, 5730,

5735, 5740, 57 45PMX 5710, 5720, 5735, 5745,PCX 5710, 5735

Número máximo de tareas 1 tarea periódica o cíclica

1 tarea periódica

8 tareas de sucesospara autómatas 37 10

16 tareas de sucesospara autómatas 37 20

32 tareas de sucesospara autómatas 57 10

64 tareas de sucesospara autómatas 57 20/30

Gama de intervalos entre tareas de 1 ms a 255 ms

Orden preferencial o no preferencial Orden preferencial

Longitud máxima de una expresión variableEvaluación parcial de las expresiones nobooleanas

Longitud máxima de las estructuras variablede comandos en ST

Valor de la variable de comando después El valor de la variable dela ejecución completa de un bucle FOR comando vale el valor límite +

1 (puesto que el paso es de 1)

Representación gráfica/semigráfica Representación gráficaRestricción en la topología de las redes El tamaño máximo de una red

LD es de 16 columnas y 7líneas

Page 367: Manual PL7

Conformidad con la norma CEI 1131-1 6

___________________________________________________________________________6/15

B

BNota 14: todavía no se han implantado estos tipos de datos de forma visible parael usuario. Sin embargo, esta tabla indica sus gamas de valores en el formato IEC1131-3.TIME: de T#0 à T#429496729.5sTIME_OF_DAY: de TOD#0:0:0 à TOD#23:59:59DATE_AND_TIME: de DT#1990-01-01:0:0:0 à DT#2099-12-31:23:59:59DATE: 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; dex.5 s a x.9 s se redondea a x+1 s.

Nota 16: es posible indexar positiva y negativamente todos los tipos de variablesdirectamente representadas dentro del límite del número máximo respectivodefinido en la configuración.

Page 368: Manual PL7

6/16___________________________________________________________________________

B

Situaciones de error

Situaciones de error Restricciones yfuncionamiento PL7

Errores de conversión de tipo Señalado durante la ejecución alposicionar un bit sistema; véasela tabla Elementos comunes,tabla 22, característica 1

El resultado numérico excede la Señalado durante la ejecucióngama del tipo dado al posicionar el bit sistema

%S18

Posición de caracteres especificada inválida Señalado durante la ejecuciónal posicionar el bit sistema%S18

El resultado excede la longitud máxima Señalado durante la ejecuciónde la cadena al posicionar el bit sistema

%S15

Efectos de borde durante la evaluación Detectado durante lade una transición programación

Tiempos de ejecución no respetados Señalado durante la ejecuciónal posicionar el bit sistema%S19

Otros conflictos de orden de tareas Detectado durante laconfiguración

División entre cero Detectado durante laprogramación si es posible; si

Tipo de dato inválido para una operación no señalado durantela ejecución al posicionar el bitsistema %S18

Falla de una iteración FOR o WHILE El autómata pasa al modo deque se va a terminar falla de rebasamiento de

watchdog; se indica la unidadde programación implicada

Page 369: Manual PL7

Ayuda de memoria 7

___________________________________________________________________________7/1

B

B

Capítulo77 Ayuda de memoria

7.1 Ayuda de memoria

Instrucciones LD ILbooleanas

Inicializaciónde acumulador o red LD TRUE

Prueba (lectura) LD

(directa, inversa, LDN

flanco ascendente, LDR

flanco descendente) LDF

Y lógica AND ANDN ANDR ANDF

AND( AND(N AND(RAND(F

O lógica OR ORN ORR ORF(directa, inversa,flanco ascendente,flanco descendente) OR( OR(N OR(R OR(F

Inversión N

O lógica exclusiva XOR XORN

(directa, inversa, XORR XORF

flanco ascendente,flanco descendente)

Escritura ST(directa, inversa) STN

Puesta a 1 SPuesta a 0 R

Bloque de operación(contenido: véase las [acción]

páginas siguientes)Bloque de comparación LD [comparación]horizontal AND [comparación](contenido: véase las AND( [comparación]

páginas siguientes) OR [comparación]OR( [comparación]XOR [comparación]

Bloque de comparaciónvertical

Memory PusH MPSMemory ReaD MRDMemory PoP MPP

P N

P N

P N

P N

P N

( ) ( / )

( S ) ( R )

OPERATEaction

COMPAREcomparaison

>

=

<

<>

EN

COMPARE

Page 370: Manual PL7

7/2___________________________________________________________________________

Bb

Instrucciones ST

Asignación :=

O booleena ORY booleena ANDO exclusiva booleena XORInversión NOTFlanco ascendente, descendente RE, FEPuesta a 1, puesta a 0 SET, RESET

Bloques de función LD IL

Temporizador IEC INestructura BLK..END_BLK

Temporizador PL7-3

Contador/Descontador RSCUCDestructura BLK..END_BLK

Monoestable Sestructura BLK..END_BLK

Registro RIOestructura BLK..END_BLK

Drum RU

estructura BLK..END_BLK

Bloques de funciones ST

Temporizador IEC START %TMiDOWN %TMi

Temporizador PL7-3 PRESET %TiSTART %TiSTOP %Ti

Contador/Descontador RESET %CiPRESET %CiUP %Ci, DOWN %Ci

Monoestable START %MNi

Registro RESET %RiPUT %RiGET %Ri

Programador cíclico RESET %DRiUP %DRi

IN Q%TMi

E

C

D

R

%Ti

E

C D

D

C U

% C i

F

R

S

S R%MNi

F

I E

R% R i

O

F

U

R% D R i

Page 371: Manual PL7

Ayuda de memoria 7

___________________________________________________________________________7/3

B

BEstructuras de control ST

Acción condicional IF...THEN... ELSIF...THEN... ELSE...END_IF;Acción iterativa condicional WHILE...DO...END_WHILE;Acción iterativa condicional REPEAT...UNTIL...END_REPEAT;

Acción repetitiva FOR...DO...END_FOR;

Instrucción de salida de bucle EXIT

Aritmética enteros (simple y LD/IL/STdoble longitud)

Transferencia o inicialización :=

Comparaciones = <> <= < > >=

Suma, resta, multiplicación, + - * / REMdivisión, resto de la división

Y, O, O exclusiva, complemento AND OR XOR NOT

Valor absoluto Raíz cuadrada ABS, SQRTIncremento INCDecremento DEC

Desplazamiento a la izquierda SHLDesplazamiento a la derecha SHRDesplazamiento circular a la izquierda ROLDesplazamiento circular a la derecha ROR

Aritmética en flotantes LD/IL/ST

Transferencia o inicialización :=

Comparaciones = <> <= < > >=

Suma, resta, multiplicación, + - * / TRUNC división, parte entera

Valor absoluto, raíz cuadrada ABS, SQRTLogaritmo, exponenciales LOG, LN, EXPT, EXPSeno, coseno, tangente SIN, COS, TANArco seno, arco coseno, arco tangente ASIN, ACOS, ATANConversión grado <--> radianes DEG_TO_RAD, RAD_TO_DEG

Conversiones numéricas LD/IL/STConversión BCD en entero simple longitud BCD_TO_INTConversión GRAY en entero simple longitud GRAY_TO_INTConversión entero simple longitud en BCD INT_TO_BCDConversión entero simple longitud en flotante INT_TO_REALConversión entero doble longitud en flotante DINT_TO_REALConversión flotante en entero simple longitud REAL_TO_INTConversión flotante en entero doble longitud REAL_TO_DINTConversión BCD 32 bits en entero 32 bits DBCD_TO_DINTConversión entero 32 bits en BCD 32 bits DINT_TO_DBCDConversión BCD 32 bits en entero 16 bits DBCD_TO_INTConversión entero 16 bits en BCD 32 bits INT_TO_DBCDExtrac. de 1 pal. de valor menos sig. de 1 pal. doble LWExtrac. de 1 pal. de valor más sig. de 1 doble pal. HWConcatenación de 2 palabras simples CONCATW

Page 372: Manual PL7

7/4___________________________________________________________________________

B

Tablas de bits LD/IL/ST

Transferencia o inicialización :=

Copia de una tabla de bits en una tabla de bits COPY_BITY entre dos tablas AND_ARXO entre dos tablas OR_ARXO exclusiva entre dos tablas XOR_ARXNegación en una tabla NOT_ARXCopia de una tabla de bits en una tabla de palabras BIT_WCopia de una tabla de bits en una tabla BIT_Dde dobles palabrasCopia de una tabla de palabras en una tabla de bits W_BITCopia de una tabla de dobles palabras D_BITen una tabla de bitsCálculo de la longitud de una tabla LENGTH_ARX

Instrucciones para tablas LD/IL/ST

Transferencia e inicialización :=

Operaciones aritméticas entre tablas + - * / REMOperaciones lógicas entre tablas AND OR XOROperaciones aritméticas entre una tabla y un entero + - * / REMOperaciones lógicas entre una tabla y un entero AND OR XORComplemento de elementos de una tabla NOT

Suma de todos los elementos de una tabla SUMComparación de dos tablas EQUALBúsqueda del 1er elemento de una tabla igual a un valor FIND_EQW, FIND_EQDBúsqueda del 1er elemento de una tabla igual a FIND_EQWP, FIND_EQDPun valor desde un rangoBúsqueda del 1er elem. de una tabla superior a un valor FIND_GTW, FIND_GTDBúsqueda del 1er elem. de una tabla inferior a un valor FIND_LTW, FIND_LTDBúsqueda del más grande valor en una tabla MAX_ARW, MAX_ARDBúsqueda del más pequeño valor en una tabla MIN_ARW, MIN_ARDNúmero de ocurrencias de un valor en una tabla OCCUR_ARW, OCCUR_ARDDesplazamiento circular a la izquierda en una tabla ROL_ARW, ROL_ARDDesplazamiento circular a la derecha en una tabla ROR_ARW, ROL_ARWOrdenación de una tabla (ascendente o descendente) SORT_ARW, SORT_ARDCálculo de la longitud de una tabla LENGTH_ARW, LENGTH_ARD

Instrucciones para tablas de flotantes LD/IL/STTransferencia e inicialización :=Suma de todos los elementos de una tabla SUM_ARRComparación de dos tablas EQUAL_ARRBúsqueda del 1er elem. de 1 tabla igual a un valor FIND_EQRBúsqueda del 1er elem. de 1 tabla sup. a un valor FIND_GTRBúsqueda del 1er elem. de 1 tabla inf. a un valor FIND_LTRBúsqueda del valor mayor en una tabla MAX_ARRBúsqueda del valor menor en una tabla MIN_ARRNúmero de ocurrencias de un valor en una tabla OCCUR_ARRDesplazamiento circular a la izq. en una tabla ROL_ARRDesplazamiento circular a la derecha en una tabla ROR_ARROrdenación de una tabla (ascendente o descendente) SORT_ARRCálculo de la longitud de una tabla LENGHT_ARR

Page 373: Manual PL7

Ayuda de memoria 7

___________________________________________________________________________7/5

B

B

Instrucciones«Orphée» LD/IL/ST

Desplazamiento a la izquierda en palabra con WSHL_RBIT, DSHL_RBITrecuperación de bits desplazadosDesplazamiento a la derecha en palabra con WSHR_RBIT, DSHR_RBITextensión de signo y recup. de bits desplazadosDesplazamiento a la derecha en palabra con WSHRZ_C, DSHRZ_Crelleno de ceros y recup. de bits desplazadosContaje/descontaje con indicación de SCOUNTrebasamientoDesplazamiento circular a la izquierda ROLW, ROLDDesplazamiento circular a la derecha RORW, RORD

Intercambios explícitos LD/IL/ST

Lectura de los parámetros %M de una vía lógica READ_PARAMLectura de los %M de estado de una vía lógica READ_STSRestauración de los parám. %M de una vía lógica RESTORE_PARAMGuardado de los parámetros %M de una SAVE_PARAMvía lógicaEscritura de los %M de comando de una vía lógica WRITE_CMDEscritura de los parámetros %M de una vía lógica WRITE_PARAM

Instrucciones de gestión del tiempo LD/IL/STReloj-calendario SCHEDULEComparaciones = <> <= < > >=

Transferencia :=

Lectura de la fecha y del código de la última PTCparada del autómataLectura de la fecha sistema RRTCActualización de la fecha sistema WRTCAgregar una duración a una fecha completa ADD_DTAgregar una duración a una hora del día ADD_TODConversión de una fecha en cadena DATE_TO_STRINGDía de la semana DAY_OF_WEEKDesviación entre dos fechas DELTA_DDesviación entre dos fechas completas DELTA_DTDesviación entre dos horas del día DELTA_TODConversión de una fecha completa en cadena DT_TO_STRINGQuitar una duración de una fecha completa SUB_DTQuitar una duración de una hora del día SUB_TODConversión de una duración en cadena TIME_TO_STRINGConversión de una hora del día en cadena TOD_TO_STRINGPuesta en la forma horas-min-seg de una duración TRANS_TIME

Instrucciones de temporización LD/IL/STTemporización en la conexión FTONTemporización en la desconexión FTOFTemporización de impulsión FTPGenerador de señales rectangulares FPULSOR

Instrucciones de archivo de datos LD/IL/STInicialización del área de archivos en SET_PCMCIAtarjeta PCMCIAEscritura de datos en tarjeta PCMCIA WRITE_PCMCIALectura de datos en tarjeta PCMCIA READ_PCMCIA

Page 374: Manual PL7

7/6___________________________________________________________________________

B

Instrucciones para cadenas de caracteres LD/IL/ST

Comparaciones = <> <= < > >=

Transferencia :=

Conversión de un entero doble en cadena DINT_TO_STRINGConversión de un entero simple en cadena INT_TO_STRINGConversión de una cadena en entero doble STRING_TO_DINTConversión de una cadena en entero simple STRING_TO_INTConversión de una cadena en flotante STRING_TO_REALConversión de un flotante en cadena REAL_TO_STRING

Concatenación de dos cadenas CONCATEliminación de una subcadena DELETEBúsqueda de un primer carácter diferente EQUAL_STRBúsqueda de una subcadena FINDInserción de una subcadena INSERTExtracción de la parte izquierda de una cadena LEFTLongitud de una cadena LENExtracción de una subcadena MIDReemplazo de una subcadena REPLACEExtracción de la parte derecha de una cadena RIGHT

Multitareas y sucesos LD/IL/ST

Activación / desactivación de una tarea Posicionamiento %SiAjuste del tiempo de ciclo de una tarea Posicionamiento %SWi

Enmascaramiento global de sucesos MASKEVTDesenmascaramiento global de sucesos UNMASKEVT

Comunicación LD/IL/ST

Petición de parada de una función en curso CANCELEmisión de datos y/o recepción de datos DATA_EXCHPetición de lectura de una cadena de caracteres INPUT_CHAREmisión y/o petición de recepción de una OUT_IN_CHARcadena de caracteresEmisión de una cadena de caracteres PRINT_CHARRecepción de un telegrama RCV_TLGLectura de objetos lenguaje de base READ_VAREmisión/recepción de peticiones UNI-TE SEND_REQEmisión de un telegrama SEND_TLGEscritura de objetos lenguaje de base WRITE_VARDesplazamiento de 1 byte a la derecha de una tabla ROR1_ARBPermutación de los bytes de una tabla de palabras SWAPLectura de datos comunes Modbus Plus READ_GDATAEscritura de datos comunes Modbus Plus WRITE_GDATAGestión de la conexión de la tarjeta Módem CALL_MODEMServidor inmediato SERVEREscritura de 1 K en mensajería WRITE_ASYNLectura de 1 K en mensajería READ_ASYN

Page 375: Manual PL7

Prestaciones 8

___________________________________________________________________________8/1

B

B

Capítulo 88 Prestaciones

8.1 Generalidades

Este capítulo permite calcular para los autómatas TSX 37/57:. la duración de la ejecución del programa de aplicación,. el tamaño de memoria del programa de aplicación.

Duración de la ejecución del programa de aplicación

El cálculo del tiempo de ejecución del programa se efectúa mediante las tablaspresentadas en las páginas siguientes sumando los tiempos de cada instruccióndel programa.

Nota : el tiempo obtenido corresponde a un tiempo máximo. En efecto, un bloquede operación o un subprograma se tratará únicamente si la condición deejecución (ecuación lógica que condiciona la ejecución del bloque, delsubprograma) es verdadera. Por consiguiente, es posible que el tiempo efectivosea muy inferior al tiempo máximo calculado.

El cálculo del tiempo de ciclo completo hace que intervengan parámetros relativosal autómata (tiempo overhead, duración del intercambio de entradas/salidas...).Para el procedimiento de cálculo completo, véase el manual de puesta en marchadel autómata respectivo (capítulo Prestaciones).

Tamaño de memoria de la aplicación

El tamaño de la aplicación es la suma de los elementos siguientes:

Elemento Método de cálculo

• Programa Se suman todas las instrucciones del programa,(véase las tablas en los capítulos 8.2 y 8.3). Lasuma se multiplica por el coeficiente que corres-ponde al lenguaje utilizado (véase la páginasiguiente)

• Funciones avanzadas Véase el capítulo 8.4.4

• Objetos PL7 configurados Véase el capítulo 8.4.2

• Módulo de entradas/ Véase el capítulo 8.4.3salidas configuradas

Page 376: Manual PL7

8/2___________________________________________________________________________

BEn las tablas de las páginas que siguen, la información acerca de los tamañosse refieren al volumen de códigos de instrucciones. Para conocer el tamaño totalde una instrucción o de un programa, hay que aplicar un coeficiente multiplicadorque tenga en cuenta la información típica por lenguaje (ejemplo: informacióngráfica en el caso del lenguaje de contactos)

• En lenguaje de contactos: Volumen total = 1,7 x Volumen de código

• En lenguaje Literal estructurado: Volumen total = 1,6 x Volumen de código

• En lenguaje Lista de instrucciones:- para el autómata TSX37: Volumen total = 1,4 x Volumen de código- para el autómata TSX57: Volumen total = 1,6 x Volumen de código

• En lenguaje Grafcet:El volumen asociado al gráfico es el siguiente:

Volumen Gráfico (en palabras) = 214 + 17 * no de etapas de gráfico + 2n° total de etapas configuradas + 4 * no de acciones programadas

Nota: los comentarios de programa ocupan 1 byte por carácter.

Observación

Los números indicados en las tablas siguientes son evaluaciones mediasobtenidas desde una aplicación típica. No es posible proporcionar informacionesexactas, puesto que PL7 optimiza la utilización de la memoria en función delcontenido y de la estructura de la aplicación.

El capítulo 8.4.1 recapitula las áreas de memoria ocupadas por la aplicación.

Page 377: Manual PL7

Prestaciones 8

___________________________________________________________________________8/3

B

B8.2 Prestaciones TSX 37

8.2.1 Instrucciones booleanas

LD IL ST Objetos Tiempo de ejecución Tamaño(µs) (palabras)

3705 3720 3720 37xx08/10 ram cart0,25 0,13 0,19 1

LD, %M1 (1) 0,25 0,13 0,19 1

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

LDR, %M1 0,50 0,25 0,38 2

LDF

%M1[%MW2] 13,01 12,75 12,75 7AND, idem LD, LDN

ANDN , AND (, AND (N , idem OR

ANDR, ANDF, AND (R, AND (F, idem OR Idem LDR LDF

XOR, XORN %M1 1,25 0,63 0,94 5%M1[%MW2] 26,94 26,08 26,26 13%MW0:X0 12,86 11,88 12,06 10%IWi.j:Xk 83,84 75,38 75,56 14%MW0[%MW10]:X0 33,33 31,48 31,66 14%KW0[%MW10]:X0 104,31 94,98 95,16 18

1XORR, XORF %M1 2,25 1,13 1,69 9

%M1[%MW2] 27,28 26,13 26,44 19ST, STN, %M1 0,50 0,25 0,38 2

S, R%M1[%MW2] 13,10 12,85 12,85 7%MW0:X0 5,88 5,60 5,60 4%NW{i}j:Xk (3) 76,86 69,10 69,10 8%MW0[%MW10]:X0 16,41 15,65 15,65 8

Bobinas múltiples en Ladder, «coste» de la 2da bobina y de las siguientes 0,25 0,13 0,19 1Bloque de operación [acción] Bloque ejecutado 0,74 0,75 0,75 1

No ejecutado 5,55 5,40 5,40 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 función %TMi.Q ...,

bits extraídos de palabras sistema %SWi:Xj(3) Otros objetos del mismo tipo: bits extraídos de palabras comunes %NW{i}j:Xk,

bits extraídos de palabras de E/S %IWi.j.Xk, %QWi.j.Xk, bits extraídos de %KW,bits de falla %Ii.j.ERR

Page 378: Manual PL7

8/4___________________________________________________________________________

BLD IL ST Objetos Tiempo de ejecución Tamaño

(µs) (palabras)

3705 3720 3720 37xx08/10 ram cart

bloque de comparación LD tiempo además de la 0,00 0,00 0,00 0horizontal [comparación] comparaciónbloque de comparación entre 2 %MWi 12,38 11,85 11,85 4verticalconvergencia ) ) 0,25 0,13 0,19 1divergencia no seguida ladder, 1 divergencia 0,25 0,13 0,19 1de une convergencia

MPS, MPP, list MPS+MPP 0,75 0,38 0,56 3MRD list MRD 0,25 0,13 0,19 1

8.2.2 Bloques de función

LD IL ST Objetos/condiciones Tiempo de e jecución Tamaño (µs) (palabras)

3705/08/10 3720 37xx

Temporizador IEflanco ascendente en IN IN %TM1 START %TM1 activación timer 43,39 41,11 3

(flanco ascend.)flanco descendente en IN IN %TM1 DOWN %TM1 parada timer 17,47 17,01

(flancodescendente)

IN =1 IN %TM1 (=1) timer activo 18,74 17,99

IN =0 IN %TM1 (=0) timer inactivo 17,40 16,67

Temporizador PL7-3START %T1 activas 3

STOP %T1 inmovilizar 12,63 12,15

E=0 RESET %T1 reset 12,94 12,15

timer activo 17,55 17,00

timer inactivo

Contaje/descontajereset, R=1 R %C8 (=1) RESET %C8 reset 18,69 17,92 3

preset, S=1 S %C9 (=1) PRESET %C9 preset 20,42 19,73

flanco ascendente en CU CU %C8 (flancoUP %C8 up 19,92 19,10ascendente)

flanco ascendente en CD CD %C9 (flancoDOWN %C9 down 19,92 19,10ascendente)

entradas inactivas R/S/CU/CD bit inactivo ninguna acción 13,27 12,81

Page 379: Manual PL7

Prestaciones 8

___________________________________________________________________________8/5

B

BBloques de función (cont.)

LD IL ST Objetos/condiciones Tie mpo de ejecución Tamaño(µs) (palabras)

3705/08/10 3720 37xx37xx

Monostableflanco ascendente en S S %MN0, flanco START %MN0 activación 35,08 33,16 3

ascendente

S=1 S %MN0, monostable activo 11,64 11,17S=1/0

Registroflanco en I I %R2 (flanco) PUT %R2 almacenamiento 21,90 21,27 3

flanco en O O %R2 (flanco) GET %R2 desalmacenamiento 21,90 21,27

R=1 R %R1 (=1) RESET %R2 reset 16,90 16,02

entradas inactivas I/O/R, bit ninguna acción 12,61 12,19inactivo

Drumflanco en U U %DR0 UP %DR1 up, fijo 181,37 169,13 3

por bit de orden 19,30 19,30

R=1 R %DR1 RESET %DR2 reset, fijo 174,15 162,03

por bit de orden 19,30 19,30

entradas inactivas R/U, bit inactivo ninguna acción, fijo 175,92 164,00

por bit de orden 19,30 19,30

Page 380: Manual PL7

8/6___________________________________________________________________________

B8.2.3 Aritmética entera y con coma flotante

Correcciones en función del tipo de objetosLos tiempos y volúmenes de las páginas siguientes se indican para %MW0, %MD0o %MF0

Tiempo de ejecución Tamaño(µs) (palabras)

3705/08/10 3720 37xx

• Valor que se debe quitar para valores inmediatos16#1234/%MW0 1,20 1,10 016#12345678 / 1,21 0,75 1

%MD0 o%MF/0

• Valor que se debe agregar para palabras/dobles palabras/flotantes indexados%MW2[%MW0] Objeto después de:= 10,52 10,05 4

ou%MD2[%MW0]

o%MF2[%MW0]

1era operación : puesto 11,20 10,60 5que el 1er operandono está indexado,o asignación2do operando si el 13,37 12,60 51er operando estáindexado también

• 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

Corrección en función del contexto de la operación• Valor que se debe agregar si la operación está al mínimo en la 2da posición en

la sentencia, ejemplo *%MW2 en := %MW0 * %MW1 * %MW2, abarca lasoperaciones siguientes.

%MW0 0,69 0,55 0

%MD0 Y %MF0 0,99 0,75 0

• Valor que se debe agregar para una operación con resultado de una operaciónentre paréntesis o más prioritaria, ejemplo: %MW0 + %MW2 + (...)

%MW0 2,86 2,55 1

%MD0 y %MF0 3,60 3,15 1

Page 381: Manual PL7

Prestaciones 8

___________________________________________________________________________8/7

B

BST Objetos Condiciones Tiempo de ejecución Tamaño

(µs) (palabras)

3705/08/10 3720 37xx

objeto después de:= %MW0 4,81 4,50 2

%MD0,%MF0 6,45 5,70 2

:= %MW0 4,46 4,30 2

%MD0 5,15 4,85 2

y %MF0

=, <>, <=, <, >, >= %MW0 8,94 8,50 4

%MD0 10,71 10,26 4

%MF0 29,06 28,39 4

AND, OR, XOR %MW0 7,29 6,90 3

%MD0 9,21 8,55 3

+, - %MW0 7,29 6,90 3

%MD0 9,21 8,55 3

%MF0 62,83 61,20 3

* %MW0 9,75 9,10 3

%MD0 39,63 36,50 3

%MF0 58,26 56,90 3

/, REM %MW0 10,69 10,08 3

%MD0 205,21 201,38 3

/ %MF0 62,47 60,25 3

ABS, -objeto %MW0 7,20 6,95 3

%MD0 9,97 9,53 3

%MF0 13,01 12,50 3

NOT %MW0 6,69 6,45 3

%MD0 7,80 7,40 3

SQRT %MW0 17,02 16,70 3

%MD0 85,73 85,25 3

%MF0 165,04 158,40 3

INC, DEC %MW0 4,86 4,40 2

%MD0 5,20 4,75 2

SHL, SHR, ROL, ROR %MW0 para 1 bit 17,74 17,05 5

%MD0 para 1 bit 20,58 19,15 5

por bit adicional 0,063

LN %MF0 1371,60 1270,00 3

LOG %MF0 1458,00 1350,00 3

EXP %MF0 1155,60 1070,00 3

EXPT %MF0 2988,00 2490,00 3

TRUNC %MF0 204,00 170,00 3

COS %MF0 2829,60 2620,00 3

SIN %MF0 2840,40 2630,00 3

TAN %MF0 2937,60 2720,00 3

ACOS %MF0 4082,40 3780,00 3

ASIN %MF0 4082,40 3780,00 3

ATAN %MF0 2786,40 2580,00 3

DEG_TO_RAD %MF0 852,00 710,00 3

RAD_TO_DEG %MF0 720,00 600,00 3

Page 382: Manual PL7

8/8___________________________________________________________________________

B8.2.4 Instrucciones para programas

ST Objetos Condiciones Tiempo de ejecución Tamaño(µs) (palabras)

3705/08/10 3720 37xx

Jump %Li 41,93 38,20 3

Maskevt 12,21 10,80 1

Unmaskevt 40,27 37,10 1

SRi 48,68 42,88 3

Return 42,18 38,33 3

8.2.5 Estructura de control

ST Tiempo de ejecución Volumen(µs) (palabras)

3705/08/10 3720 37xx

<cond> Evaluación de la condición

bit forzable Véase instrucción booleana LD %M1

comparación Véase comparaciones =,<,> ...

if <cond > then <acción> Los tiempos y volúmenes indicados a continuación debenend_if; agregarse a los de la acción contenida en la estructuraCondición verdadera 3,60 3,30 2

Condición falsa (salto) 5,55 5,40

If <cond> then <acción1>else <acción2> end_if;Condición verdadera 9,15 8,70 4

Condición falsa 5,55 5,40

while <cond> do.<acción>end_whilePaso en el bucle 9,15 8,70 2con conclusión

Salida del bucle 5,55 5,40

repeat <acción> until<cond> end_repeatPaso en el bucle 5,55 5,40 2con conclusión

Ultimo paso 3,60 3,30

for <palabra1:=palabra2>to<palabra3>do <acción> end_forEntrada en for, ejecutada 8,58 8,25 15una sola vez

Paso en el bucle 29,38 27,35con conclusión

Salida del bucle 20,42 19,40

Page 383: Manual PL7

Prestaciones 8

___________________________________________________________________________8/9

B

B8.2.6 Conversiones numéricas

ST Tiempo de ejecución Volumen(µs) (palabras)

3705/08/10 3720 ram 3720 cart 37xx

BCD_TO_INT 25,03 24,55 24,55 3

INT_TO_BCD 21,66 21,15 21,15 3

GRAY_TO_INT 36,98 36,55 36,55 3

INT_TO_REAL 40,90 40,75 40,75 3

DINT_TO_REAL 33,32 32,55 32,55 3

REAL_TO_INT 58,75 58,55 58,55 3

REAL_TO_DINT 44,59 44,05 44,05 3

DBCD_TO_DINT 1 324,85 1 065,15 1 134,70 5

DBCD_TO_INT 1 265,54 925,70 986,15 5

DINT_TO_DBCD 1 124,85 825,15 879,10 5

INT_TO_DBCD 564,85 445,15 474,40 5

8.2.7 Cadena de bits

ST Condiciones Tiempo de ejecución Volumen(µs) (palabras)

3705/08/10 3720 ram 3720 cart 37xx

Inicialización de una tabla de bits%M30:8 := 0 8 bits 19,38 18,88 18,88 6

%M30:16 := 1 16 bits 20,38 19,88 19,88 6

%M30:24 := 2 24 bits 24,25 23,35 23,35 6

%M30:32 := 2 32 bits 25,25 24,35 24,35 6

Page 384: Manual PL7

8/10___________________________________________________________________________

BST Condiciones Tiempo de ejecución Volumen

(µs) (palabras)3705/08/10 3720 ram 3720 cart 37xx

Copia de una tabla de bits en una tabla de bits%M30:8 := %M20:8 8 bits 25,54 24,79 24,79 6

%M30:16 := %M20:16 16 bits 26,16 25,41 25,41 6

%M30:24 := %M20:24 24 bits 33,41 32,26 32,26 6

%M30:32 := %M20:32 32 bits 35,91 34,76 34,76 6

%M30:16 := COPY_BIT(%M20:16) 16 bits 281,63 230,00 244,95 9

32 bits 440,82 360,00 383,40 9

128 bits 1 261,22 1 030,00 1 096,95 9

Instrucciones lógicas para tablas de bitsAND_ARX, OR_ARX, XOR_ARX

%M0:16 := AND_ARX(%M30:16,%M50:16) 16 bits 397,42 320,00 340,80 12

%M0:32 := AND_ARX(%M30:32,%M50:32) 32 620,97 500,00 532,50 12

%M0:128 := AND_ARX(%M30:128,%M50:128) 128 1 887,74 1 520,00 1 618,80 12

NOT_ARX

%M0:16 := NOT_ARX(%M30:16) 16 bits 281,63 230,00 244,95 9

32 440,82 360,00 383,40 9

128 1 261,22 1 030,00 1 096,95 9

Copia de una tabla de bits en una tabla de palabras%MW1 := %M30:8 8 bits 14,84 14,36 14,36 5

%MW1 := %M30:16 16 bits 16,34 15,86 15,86 5

%MD2 := %M30:24 24 bits 14,54 14,23 14,23 5

%MD2 := %M30:32 32 bits 16,04 15,73 15,73 5

%MW1:4 := BIT_W(%M40:80,0,17,2) 17 bits 501,43 390,00 415,35 16

%MD1:4 := BIT_D(%M30:80,0,33,0) 33 bits 379,53 530,00 564,45 16

Copia de una tabla de palabras en una tabla de bits%M30:8 := %MW1 8 bits 19,28 18,68 18,68 5

%M30:16 := %MW2 16 bits 20,28 19,68 19,68 5

%M30:24 := %MD1 24 bits 21,20 20,37 20,37 5

%M30:32 := %MD3 32 bits 22,20 21,37 21,37 5

%M30:32 := W_BIT(%MW200:2,0,2,0) 32 bits 488,68 370,00 394,05 16

%M30:32 := D_BIT(%MD0:1,0,2,0) 32 bits 567,33 460,00 489,90 16

Page 385: Manual PL7

Prestaciones 8

___________________________________________________________________________8/11

B

B8.2.8 Tablas de palabras, dobles palabras y flotantesST Condiciones Tiempo de ejecución volumen

(µs) (palabras)3705/08/10 3720 ram 3720 cart 37xx

Inicialización de una tabla de palabras por una palabra%MW0:10 := %MW100 10 palabras 47,46 42,15 42,15 7

por palabra 0,34 0,20 0,20

%MD0:10 := %MD100 10 doble palabras 81,27 74,45 74,45 7

por doble palabra 2,87 2,65 2,65

Copia de una tabla de palabras en una tabla de palabras%MW0:10:=%MW20:10; 10 palabras 95,80 85,35 85,35 9

por palabra 0,77 0,50 0,50

%MD0:10:=%MD20:10; 10 doble palabras 111,13 97,65 97,65 9

por doble palabra 1,54 1,00 1,00

Instrucciones aritméticas y lógicas entre 2 tablas de palabras+, -

%MW0:10 :=%MW10:10 + %MW20:10; 10 palabras 168,04 151,95 151,95 14

por palabra 7,13 6,35 6,35

%MD0:10:=%MD10:10+%MD20:10; 10 doble palabras 239,17 214,40 214,40 14

por doble palabra 13,84 12,25 12,25

*

%MW0:10:=%MW10:10 * %MW20:10; 10 palabras 189,32 175,40 175,40 14

por palabra 9,27 8,70 8,70

%MD0:10:=%MD10:10 * %MD20:10; 10 doble palabras 710,35 603,80 603,80 14

por doble palabra 61,64 51,20 51,20

/, REM

%MW0:10:=%MW10:10 / %MW20:10; 10 palabras 224,76 181,40 181,40 14

por palabra 13,14 9,30 9,30

%MD0:10:=%MD10:10 / %MD20:10; 10 doble palabras 2 192,38 2 157,35 2 157,35 14

por doble palabra 209,16 206,55 206,55

AND, OR, XOR

%MW0:10:=%MW10:10 AND %MW20:10; 10 palabras 163,69 147,40 147,40 14

por palabra 6,66 5,85 5,85

%MD0:10:=%MD10:10 AND %MD20:10; 10 doble palabras 240,14 215,90 215,90 14

por doble palabra 13,94 12,40 12,40

Page 386: Manual PL7

8/12___________________________________________________________________________

BST Condiciones Tiempo de ejecución Volumen

(µs) (palabras)3705/08/10 3720 ram 3720 cart 37xx

Instrucciones aritméticas y lógicas entre 1 tabla de palabras y 1 palabra+, -

%MW0:10 :=%MW10:10 + %MW20; 10 palabras 119,12 108,55 108,55 12

ou %MW0:10 := %MW20 + %MW10:10 por palabra 2,87 2,65 2,65

%MD0:10 :=%MD10:10 + %MD20; 10 doble palabras 159,68 147,45 147,45 12

por doble palabra 6,57 6,25 6,25

*

%MW0:10 :=%MW20*%MW10:10; 10 palabras 166,86 132,45 132,45 12

por palabra 7,94 5,05 5,05

%MD0:10:=%MD20*%MD10:10; 10 doble palabras 587,01 522,95 522,95 12

por doble palabra 49,18 43,80 43,80

/, REM

%MW0:10 :=%MW10:10 / %MW30; 10 palabras 196,69 155,85 155,85 12

por palabra 10,86 7,30 7,30

%MD0:10:=%MD10:10 / %MD30; 10 doble palabras 2 230,17 2 173,95 2 173,95 12

por doble palabra 213,66 208,90 208,90

AND, OR, XOR

%MW0:10 :=%MW10:10 AND %MW20; 10 palabras 117,20 106,45 106,45 12

por palabra 2,64 2,40 2,40

%MD0:10:=%MD20*%MD10:10; 10 doble palabras 587,01 522,95 522,95 12

por doble palabra 6,47 6,15 6,15

NOT

%MW0:10 :=NOT(%MW10:10); 10 palabras 110,28 100,25 100,25 9

por palabra 2,96 2,75 2,75

%MD0:10:=NOT(%MD10:10); 10 doble palabras 126,39 114,00 114,00 9

por doble palabra 4,50 4,05 4,05

Función de suma en la tabla%MW20:=SUM(%MW0:10); 10 palabras 74,30 69,00 69,00 10

por palabra 2,44 2,35 2,35

%MD20:=SUM(%MD0:10); 10 doble palabras 83,58 76,90 76,90 10

por doble palabra 3,17 2,95 2,95

%MF20:=SUM_ARR(%MF0:10); 10 doble palabras 1634 1257 1257 10

por doble palabra

Page 387: Manual PL7

Prestaciones 8

___________________________________________________________________________8/13

B

BST Condiciones Tiempo de ejecución Volumen

(µs) (palabras)3705/08/10 3720 ram 3720 cart 37xx

Función de comparación de tablas%MW20:=EQUAL(%MW0:10;%MW10:10); 10 palabras 103,78 93,50 93,50 11

por palabra 1,13 0,90 0,90

%MD20:=EQUAL(%MD0:10;%MD10:10); 10 doble palabras 116,17 103,40 103,40 11

por doble palabra 2,23 1,75 1,75

%MF20:=EQUAL_ARR(%MF0:10;%MF10:10); 10 doble palabras 741 570 607 11

por doble palabra

Búsqueda%MW20 := FIND_EQW(%MW0:10,%KW0) 10 palabras, caso máx 340,00 250,00 266,25 15

%MD20 := FIND_EQD(%MD0:10, %KD0) 10 doble palabras, 350,00 260,00 276,90 16caso máx

%MF20 := FIND_EQR(%MF0:10, %KF0) 10 doble palabras 833 648 690,12 15

%MF20 := FIND_EQRP(%MF0:10, %KF0) 10 doble palabras 845 650 692,25 15

%MD20 := FIND_GTR(%MF0:10, %KF0) 10 doble palabras 836 643 684,79 15

%MD20 := FIND_LTR(%MF0:10, %KF0) 10 doble palabras 836 643 684,79 15

Búsqueda de los valores máx. y mín.%MW20 := MAX_ARW(%MW0:10) 10 palabras 350,00 260,00 276,90 9

%MD20 := MAX_ARD(%MD0:10) 10 doble palabras 410,00 300,00 319,50 9

%MF20 := MAX_ARR(%MF0:10) 10 doble palabras 1366 1051 1119,31 9

%MF20 := MIN_ARR(%MF0:10) 10 doble palabras 1270 977 1040,50 9

Número de ocurrencias%MW20 := OCCUR_ARW(%MW0:10, %KW0) 10 palabras 350,00 250,00 266,25 15

%MD20 := OCCUR_ARD(%MD0:10, %KD0) 10 doble palabras 370,00 270,00 287,55 16

%MF20 := OCCUR_ARR(%MF0:10, %KF0) 10 doble palabras 1265 973 1036,24 16

Desplazamiento circularROL_ARW(palabra o valor,%MWj:10) 10 palabras 550,00 400,00 426,00 9

ROL_ARD(%MDi,%MDj:10) 10 doble palabras 590,00 430,00 457,95 9

ROL_ARR(%MFi,%MFj:10) 10 doble palabras 585 450 479,25 9

OrdenaciónSORT_ARW(%MWi,%MWj:10) 10 palabras, caso máx 970,00 700,00 745,50 9

SORT_ARD(%MDi,%MDj:10) 5 doble palabras, 610,00 450,00 479,25 9caso máx

SORT_ARR(%MFi,%MFj:10) 10 doble palabras 1863 1433 1526,14 9

Page 388: Manual PL7

8/14___________________________________________________________________________

B8.2.9 Gestión del tiempoST Tiempo de ejecución Volumen

(µs) (palabras)3705/08/10 3720 ram 3720 cart 37xx

OF Fechas, horas y duraciones

%MW2:4 := ADD_DT(%MW2:4,%MD8) 4 400,00 3 300,00 3 514,50 13

%MD2 := ADD_TOD(%MD2,%MD8) 2 100,00 1 550,00 1 650,75 9

%MB2:11 := DATE_TO_STRING(%MD40) 1 370,00 900,00 958,50 9

%MW5 := DAY_OF_WEEK() 220,00 280,00 298,20 5

%MD10 := DELTA_D(%MD2, %MD4) 1 520,00 1 130,00 1 203,45 9

%MD10 := DELTA_DT(%MD2:4,%MW6:4) 3 170,00 2 300,00 2 449,50 13

%MD10 := DELTA_TOD(%MD2,%MD4) 2 330,00 1 700,00 1 810,50 9

%MB2:20 := DT_TO_STRING(%MW50:4) 2 050,00 1 450,00 1 544,25 11

%MW2:4 := SUB_DT(%MW2:4,%MD8) 4 750,00 3 500,00 3 727,50 13

%MD2 := SUB_TOD(%MD2,%MD8) 2 330,00 1 700,00 1 810,50 9

%MB2:15 := TIME_TO_STRING(%MD40) 1 560,00 1 200,00 1 278,00 9

%MB2:9 := TOD_TO_STRING(%MD40) 1 270,00 800,00 852,00 9

%MD100 := TRANS_TIME(%MD2) 500,00 500,00 532,50 7

Acceso al reloj-calendario

RRTC(%MW0:4) 93,60 84,80 84,80 5

WRTC(%MW0:4) 248,61 230,85 230,85 5

PTC(%MW0:5) 97,98 88,60 88,60 5

SCHEDULE(%MW0,%MW1,%MW2, 1430 1100 1171,5 5

%MD10,%MD12,%M0)

Page 389: Manual PL7

Prestaciones 8

___________________________________________________________________________8/15

B

B8.2.10 Cadenas de caracteres

ST Condiciones Tiempo de ejecución Volumen(µs) (palabras)

3705/08/10 3720 ram 3720 cart 37xx

Asignación, copia de cadenas de caracteres%MB0:8:=%MB10:8 8 caracteres 105,16 93,80 93,80 9

por carácter 1,65 1,30 1,30

%MB0:8:=’abcdefg’ 8 caracteres 120,72 110,20 110,20 11

por carácter 4,15 3,85 3,85 0,5

Conversiones palabra <-> cadenas de caracteres%MW1:=STRING_TO_INT(%MB0:7) 97,69 91,95 91,95 7

%MB0:7:=INT_TO_STRING(%MW0) 104,36 96,70 96,70 7

Conversiones doble palabra <-> cadenas de caracteres%MD1:=STRING_TO_DINT(%MB0:13) 1 070,53 965,62 965,62 7

%MB0:13:=DINT_TO_STRING(%MD0) 322,29 295,35 295,35 7

Conversiones flotante <-> cadenas de caracteres%MF1:=STRING_TO_REAL(%MB0:15) 1 783,70 1 634,53 1 634,53 7

%MB0:15:=REAL_TO_STRING(%MF0) 741,75 681,20 681,20 7

OF de manipulación de cadenas%MB10:20 := CONCAT(%MB30:10,%MB50:10) 1 170,00 770,00 820,05 15

%MB10:20 := DELETE(%MB10:22,2,3); 950,00 600,00 639,00 15

%MW0 := EQUAL_STR(%MB10:20,%MB30:20); el quinto carácter 860,00 520,00 553,80 13es diferente

%MW0 := FIND(%MB10:20,%MB30:10); 1 610,00 1 000,00 1 065,00 13

%MB10:20 := INSERT(%MB30:10,%MB50:10,4); 1 270,00 800,00 852,00 17

%MB10:20 := LEFT(%MB30:30,20); 920,00 570,00 607,05 13

%MW0 := LEN(%MB10:20); 770,00 340,00 362,10 9

%MB10:20 := MID(%MB30:30,20,10); 1 080,00 700,00 745,50 15

%MB10:20 : 1 450,00 870,00 926,55 19= REPLACE(%MB30:20,%MB50:10,10,10);%MB10:20 := RIGHT(%MB30:30,20); 1 480,00 950,00 1 011,75 13

Page 390: Manual PL7

8/16___________________________________________________________________________

B8.2.11 Funciones específicas y funciones Orphée

ST Condiciones Tiempo de ejecución Volumen(µs) (palabras)

3705/ 3720 3720 37xx08/10 ram cart

ComunicaciónSEND_REQ(%KW0:6,15,%MW0:1,%MW10:10,%MW30:4) 2182 1818 1936 21

SEND_TLG(%KW0:6,1,%MW0:5,%MW30:2) 1636 1364 1452 15

Diálogo de operadorSEND_MSG(ADR#1.0,%MW0:2,%MW10:2) 2 240 2 000 2208 19

SEND_ALARM(ADR#1.0,%MW0:2,%MW10:2) 2 240 2 000 2208 19

GET_MSG(ADR#1.0,%MW0:2,%MW10:2) 2 240 2 000 2 208 19

GET_VALUE(ADR#1.0,%MW0,%MW10:2) 1 120 1 000 1 104 17

ASK_MSG(ADR#1.0,%MW0:2,%MW10:2,%MW20:2) 2 240 2 000 2 208 23

ASK_VALUE(ADR#1.0,%MW0,%MW10:2,%MW20:2) 2 240 2 000 2 208 21

DISPLAY_ALRM(ADR#1.0,%MW0,%MW10:2) 1 120 1 000 1 104 17

DISPLAY_GRP(ADR#1.0,%MW0,%MW10:2) 1 120 1 000 1 104 17

DISPLAY_MSG(ADR#1.0,%MW0,%MW10:2) 1 120 1 000 1 104 17

CONTROL_LEDS(ADR#1.0,%MW0:2,%MW10:2) 2 240 2 000 2 208 19

ASSIGN_KEYS(ADR#1.0,%MW0:2,%MW10:2) 2 240 2 000 2 208 19

PANEL_CMD(ADR#1.0,%MW0:2,%MW10:2) 2 240 2 000 2 208 19

RegulaciónPID(“PIDS1”,’Unité’,%IW3.5,%MW12,%M16,%MW284:43) deval_mmi=0 1320 1100 1172 24

deval_mmi=1 1080 900 958,5

PWM(%MW11,%Q2.1,%MW385:5) 600 500 532,5 11

SERVO(%MW12,%IW3.6,%Q2.2,%Q2.3,%MW284:43, 960 800 852 19%MW390:10)PID_MMI(ADR#0.0.4,%M1,%M2:5,%MW410:62) EN=1 1140 950 1012 20

Page 391: Manual PL7

Prestaciones 8

___________________________________________________________________________8/17

B

BST Condiciones Tiempo de ejecución Volumen

(µs) (palabras)3705 3720 3720 37xx08/10 ram cart

Función OrphéeDSHL_RBIT(%MD102,16,%MD204,%MD206) lectura 10 pals. 440 320 341 13

DSHR_RBIT(%MD102,16,%MD204,%MD206) escritura 10 pals. 660 480 511 13

DSHRZ_C(%MD102,16,%MD204,%MD206) pet. espejo 10 pals. 410 310 330 13

WSHL_RBIT(%MW102,8,%MW204,%MW206) intercambio 10 pals. 300 220 234 13

WSHR_RBIT(%MW102,8,%MW204,%MW206) 20 bytes 390 280 298 13

WSHRZ_C(%MW102,8,%MW204,%MW206) 20 bytes 300 220 234 13

SCOUNT(%M100,%MW100,%M101,%M102,%MW101, 20 bytes 510 410 437 25%MW102,%M200,%M201,%MW200,%MW201)

8.2.12 Entradas/salidas explícitasRead_Sts %CHi.MOD

Cualquier función específica salvo la vía 30 30 32 2de comunicación del procesadorRead_Sts %CHi

Entrada analógica 180 180 216 6

Salida analógica 90 70 74

Módulo de contaje CTZ 110 95 104

Write_Param %CHi

Entrada analógica 790 570 790 6

Módulo de contaje CTZ 1127 1080 1083

Read_Param %CHi

Entrada analógica 260 290 316 6

Módulo de contaje CTZ 338 295 300

Save_Param %CHi

Entrada analógica 1234 1220 1240 6

Módulo de contaje CTZ 1370 1220 1240

Restore_Param %CHi

Entrada analógica 550 510 535 6

Módulo de contaje CTZ 1160 1080 1097

Write_Cmd %CHi

Salida TON 50 47 52 6

Page 392: Manual PL7

8/18___________________________________________________________________________

B8.3 Prestaciones TSX 57

En lo que sigue de este documento, por razones de comodidad de representación, sehan agrupado los procesadores en 3 familias:

Identificación Procesadores

A TSX 57 10 y PCX 57 10

B TSX 57 20, TSX 57 25, TSX 57 30, TSX 57 35PMX 57 10, PCX 57 35

C TSX 57 40, TSX 57 45PMX 57 20, PMX 57 35, PMX 57 45

Nota: en lo que sigue de este documento, las 3 familias se mencionan en la parteinferior de cada página.

Page 393: Manual PL7

Prestaciones 8

___________________________________________________________________________8/19

B

B8.3.1 Instrucciones booleanas

LD IL ST Objetos Tiempo de ejecución Tamaño(µs) (palabras)

A A B/C B/C B/C B/C 57xx> 4K ram ram cart cart

> 4K > 4K0,29 0,12 0,21 1

LD, %M1 (1) 0,58 0,25 0,37 0,37 0,58 1

LDN%M1[%MW2] 2,33 1,00 1,00 1,58 1,58 6%MW0:X0 (2) 1,46 0,62 0,62 1,00 1,00 4%IWi.j:Xk (3) 2,33 1,00 1,00 1,58 1,58 6%MW0[%MW10]:X0 3,50 1,50 1,50 2,37 2,37 9%KW0[%MW10]:X0 3,50 1,50 1,50 2,37 2,37 9

LDR, %M1 0,87 0,37 0,50 0,58 0,79 2

LDF%M1[%MW2] 2,62 1,12 1,12 1,79 1,79 7

AND, idem LD, LDN

ANDN , AND (, AND (N , idem OR

ANDR, ANDF, AND (R, AND (F, idem OR idem LDR, LDF

XOR, XORN %M1 2,04 0,87 1,12 1,37 1,79 5%M1[%MW2] 5,54 2,37 1,62 3,79 2,62 13%MW0:X0 4,08 1,75 1,37 2,83 2,25 10%IWi.j:Xk 4,96 2,12 1,75 3,42 2,83 14%MW0[%MW10]:X0 7,87 3,37 2,25 5,37 3,62 14%KW0[%MW10]:X0 7,87 3,37 2,25 5,37 3,62 18

XORR, XORF %M1 2,25 1,13 1,62 1,69 2,62 9%M1[%MW2] 27,28 26,13 2,87 26,44 4,62 19

ST, STN, %M1 1,17 0,50 0,62 0,75 0,96 2

S, R%M1[%MW2] 2,62 1,12 1,12 1,75 1,75 7%MW0:X0 1,75 0,75 0,75 1,17 1,17 4%NW{i}j:Xk (3) 2,62 1,12 1,12 1,75 1,75 8%MW0[%MW10]:X0 3,79 1,25 1,25 2,54 2,54 8

bobinas múltiples en ladder, «costo» de la 2da bobina y de las siguientes 0,87 0,37 0,50 0,54 0,75 1bloque de operación [acción] bloque ejecutado 0,58 0,25 0,25 0,42 0,42 1

no ejecutado 0,71 0,37 0,37 0,54 0,54 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 función %TMi.Q ...,

bits extraídos de palabras sistema %SWi:Xj, bits extraídos de %KW, bits defalla %Ii.j.ERR

(3) Otros objetos del mismo tipo: bits extraídos de palabras comunes %NW{i}j:Xk,bits extraídos de palabras de E/S %IWi.j.Xk, %QWi.j.Xk

A TSX 57 10 y PCX 57 10 B TSX 57 20/25/30/35, PMX 57 10 y PCX 57 35 C TSX 57 40/45 y PMX 57 20/35/45

Page 394: Manual PL7

8/20___________________________________________________________________________

BLD IL ST Objetos Tiempo de ejecución Tamaño

(µs) (palabras)A A B/C B/C B/C B/C 57xx

> 4K ram ram cart cart> 4K > 4K

bloque de comparación LD [comparación] tiempo además de 0,00 0,00 0,00 0,00 0,00 0,00 0horizontal la comparaciónbloque de comparación entre 2 %MWi 2,04 2,04 0,87 0,87 1,37 1,37 5verticalconvergencia ) ) 0,29 0,29 0,12 0,12 0,21 0,21 1divergencia no seguida ladder, 1 divergencia 0,29 0,29 0,12 0,12 0,21 0,21 1de una convergencia

MPS, MPP, list MPS+MPP 0,87 0,87 0,37 0,37 0,62 0,62 3

MRD list MRD 0,29 0,29 0,12 0,12 0,21 0,21 1

8.3.2 Bloques de función

LD IL ST Objetos/Condiciones Tiempo de ejecución Tamaño(µs) (palabras)

A B C 57xx

Temporizador IEflanco ascendente en IN IN %TM1 START %TM1 activación timer 67,87 46,92 13,52 3

(flanco ascendente)

flanco descendente en IN IN %TM1 DOWN %TM1 parada timer 27,84 19,50 5,01(flanco descendente)

IN =1 IN %TM1 (=1) timer activo 32,15 22,66 5,80

IN =0 IN %TM1 (=0) timer inactivo 28,60 20,18 5,40

Temporizador PL7-3START %T1 activar 3

STOP %T1 fijar 23,08 16,16 5,13

E=0 RESET %T1 reset 23,46 16,26 5,85

timer activo 30,40 21,51 5,78

timer inactivo

Contaje/descontajereset, R=1 R %C8 (=1) RESET %C8 reset 30,38 21,26 6,11 3

preset, S=1 S %C9 (=1) PRESET %C9 preset 33,99 23,55 6,25

flanco ascendente en CU CU %C8 (flancoUP %C8 up 33,81 23,49 6,50ascendente)

flanco ascendente en CD CD %C9 (flancoDOWN %C9 down 33,81 23,49 6,50ascendente)

entradas inactivas R/S/CU/CD bit inactivo ninguna acción 22,37 16,22 4,58

A TSX 57 10 y PCX 57 10 B TSX 57 20/25/30/35, PMX 57 10 y PCX 57 35 C TSX 57 40/45 y PMX 57 20/35/45

Page 395: Manual PL7

Prestaciones 8

___________________________________________________________________________8/21

B

BBloques de función (cont.)

LD IL ST Objetos/Condiciones Tiempo de ejecución Tamaño(µs) (palabras)

A B C 57xx

Monostableflanco ascendente en S S %MN0, flanco START %MN0 activación 57,42 40,65 11,88 3

ascendente

S=1 S %MN0, monostable activo 20,38 14,11 4,04S=1/0

Registroflanco en I I %R2 (flanco) PUT %R2 almacenamiento 35,69 24,92 6,72 3

flanco en O O %R2 (flanco) GET %R2 desalmacenamiento 35,69 24,92 6,72

R=1 R %R1 (=1) RESET %R2 reset 26,83 18,80 6,11

entradas inactivas I/O/R, bit ninguna acción 20,7115,50 4,62inactivo

Drumflanco en U U %DR0 UP %DR1 up, fijo 268,69 185,41 58,68 3

por bit de orden 25,00 25,00 25,00

R=1 R %DR1 RESET %DR2 reset, fijo 257,01 176,06 57,00

por bit de orden 25,00 25,00 25,00

entradas inactivas R/U, bit inactivo ninguna acción, fija 259,07 179,06 56,82

por bit de orden 25,00 25,00 25,00

A TSX 57 10 y PCX 57 10 B TSX 57 20/25/30/35, PMX 57 10 y PCX 57 35 C TSX 57 40/45 y PMX 57 20/35/45

Page 396: Manual PL7

8/22___________________________________________________________________________

B8.3.3 Aritmética entera y con coma flotanteCorrecciones en función del tipo de objetosLos tiempos y volúmenes de las páginas se indican para %MW0, %MD0 o %MF0

Tiempo de ejecución Tamaño(µs) (palabras)

A B ram B cart C ram C cart 57xx

• Valor que se debe quitar para valores inmediatos16#1234 / %MW0 0,29 0,12 0,17 0,12 0,17 0

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

• Valor que se debe agregar para palabras/dobles palabras/flotantes indexados%MW2[%MW0] objeto después de := 2,04 0,87 1,37 0,87 1,37 5

o %MD2[%MW0]o %MF2[%MW0]1era operación, asignación 2,04 0,87 1,37 0,87 1,37 5

2da operación (o 1er 2,04 0,87 1,37 0,87 1,37 5operando indexado)

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

Corrección en función del contexto de la operación• Valor que se debe agregar si la operación está al mínimo en la 2da posiciónen la sentencia, ejemplo *%MW2 en := %MW0 * %MW1 * %MW2, abarca lasoperaciones siguientes: *,/,REM en palabras y dobles palabras, o todas lasoperaciones de flotantes.

%MW0 0,58 0,25 0,37 0,25 0,37 1

%MD0 y %MF0 0,87 0,37 0,54 0,37 0,54 1

• Valor que se debe agregar para una operación con resultado de unaoperación entre paréntesis o más prioritaria, ejemplo: %MW0 + %MW2 + (...)

%MW0 0,29 0,12 0,17 0,12 0,17 1

%MD0 y %MF0 0,58 0,25 0,33 0,25 0,33 1

A TSX 57 10 y PCX 57 10 B TSX 57 20/25/30/35, PMX 57 10 y PCX 57 35 C TSX 57 40/45 y PMX 57 20/35/45

Page 397: Manual PL7

Prestaciones 8

___________________________________________________________________________8/23

B

BST Objetos Condiciones Tiempo de ejecución Volumen

(µs) (palabras)

A B ram B cart C ram C cart 57xx

objeto después de:= %MW0 0,87 0,37 0,58 0,37 0,58 2

%MW0+(..., o antes de *, /, REM 1,17 0,50 0,75 0,50 0,75 2

%MD0 1,17 0,50 0,75 0,50 0,75 2

%MD0+(..., o antes de *, /, REM 1,75 0,75 1,08 0,75 1,08 2

%MF0 1,75 0,75 1,08 0,75 1,08 2

:= %MW0 0,87 0,37 0,58 0,37 0,58 2

%MD0 y %MF0 1,17 0,50 0,75 0,50 0,75 2

=, <>, <=, <, >, >= %MW0 1,17 0,50 0,79 0,50 0,79 4

%MD0 1,46 0,62 1,04 0,62 1,04 4

%MF0 48,36 33,88 34,13 4,17 4,42 4

AND, OR, XOR %MW0 0,87 0,37 0,58 0,37 0,58 3

%MD0 1,17 0,50 0,75 0,50 0,75 3

+, - %MW0 0,87 0,37 0,58 0,37 0,58 3

%MD0 1,17 0,50 0,75 0,50 0,75 3

%MF0 99,42 71,51 71,76 4,42 4,67 3

* %MW0 10,83 9,14 9,35 4,65 4,86 3

%MD0 55,31 42,71 42,96 15,26 15,51 3

%MF0 87,60 63,61 63,86 4,42 4,67 3

/, REM %MW0 11,93 9,99 10,20 4,94 5,15 3

%MD0 333,15 226,54 226,79 49,38 49,63 3

/ %MF0 95,83 68,51 68,76 5,72 5,97 3

ABS, -objeto %MW0 0,87 0,37 0,58 0,37 0,58 2

%MD0 1,17 0,54 0,75 0,54 0,75 2

%MF0 18,82 13,01 13,26 3,67 3,92 2

NOT %MW0 0,87 0,37 0,58 0,37 0,58 2

%MD0 1,17 0,54 0,75 0,54 0,75 2

SQRT %MW0 22,20 16,24 16,45 5,53 5,74 3

%MD0 111,29 89,66 89,91 16,14 16,39 3

%MF0 233,62 173,01 173,26 5,10 5,35 3

INC, DEC %MW0 1,17 0,50 0,75 0,50 0,75 2

%MD0 1,75 0,75 1,08 0,75 1,08 2

SHL, SHR, ROL, ROR %MW0 para 1 bit 2,92 1,25 1,96 1,25 1,96 10

%MD0 para 1 bit 3,21 1,37 2,12 1,37 2,12 10

por bit adicional 0,042 0,042 0,042 0,042 0,042

LN %MF0 1711 1270 1270 4,53 4,78 3

LOG %MF0 1819 1350 1350 4,53 4,78 3

EXP %MF0 1442 1070 1070 12,03 12,28 3

EXPT %MF0 3412 2624 2775 98,70 98,70 3

TRUNC %MF0 215 165 175 52,40 52,40 3

COS %MF0 3530 2620 2620 4,53 4,78 3

SIN %MF0 3544 2630 2630 4,53 4,78 3

TAN %MF0 3665 2720 2720 4,53 4,78 3

ACOS %MF0 5093 3780 3780 5,33 5,58 3

ASIN %MF0 5093 3780 3780 6,73 6,98 3

ATAN %MF0 3476 2580 2580 4,33 4,58 3

DEG_TO_RAD %MF0 814 626 662 139,90 139,90 3

RAD_TO_DEG %MF0 791 608 643 140,20 140,20 3

Page 398: Manual PL7

8/24___________________________________________________________________________

B8.3.4 Instrucciones para programa

ST Objetos Condiciones Tiempo de ejecución Volumen(µs) (palabras)

A B ram B cart C ram C cart 57xx

Jump %Li 2,58 1,25 1,71 1,25 1,71 3

Maskevt 33,98 23,96 23,96 9,59 9,59 1

Unmaskevt 34,54 24,41 24,41 9,77 9,77 1

SRi 3,92 1,75 2,42 1,75 2,42 2

Return 1,00 0,50 0,71 0,50 0,71 2

8.3.5 Estructura de control

ST Tiempo de ejecución Volumen(µs) (palabras)

A B/C B/C 57xxram cart

<cond> evaluación de la condición

bit forzable véase instrucción booleana LD %M1

comparación véase comparaciones =,<,> ...

if <cond > then <acción> los tiempos y volúmenes indicadosend_if; a continuación se deben agregar a

los de la acción contenida en la estructuracondición verdadera 0,58 0,25 0,42 2

condición falsa (salto) 0,71 0,37 0,54

If <cond> then <acción1>else <acción2> end_if;condición verdadera 1,29 0,62 0,96 4

condición falsa 0,71 0,37 0,54

while <cond> do.<acción>end_whilepaso en el bucle 1,29 0,62 0,96 2con conclusiónsalida del bucle 0,71 0,37 0,54<cond> end_repeatrepeat <acción> until

paso en el bucle 0,710 ,37 0,54 2con conclusiónúltimo paso 0,58 0,25 0,42

for <pal1:=pal2>to<pal3>do <acción> end_forentrada en for, ejecutada 1,75 0,75 1,17 15una sola vezpaso en bucle 5,08 2,12 3,29con conclusiónsalida de bucle 2,46 1,12 1,71

A TSX 57 10 y PCX 57 10 B TSX 57 20/25/30/35, PMX 57 10 y PCX 57 35 C TSX 57 40/45 y PMX 57 20/35/45

Page 399: Manual PL7

Prestaciones 8

___________________________________________________________________________8/25

B

B8.3.6 Conversiones numéricas

ST Tiempo de ejecución Volumen(µs) (palabras)

A B ram B cart C ram C cart 57xx

BCD_TO_INT 30,33 24,44 24,65 4,75 4,96 3

INT_TO_BCD 24,48 20,19 20,40 4,51 4,72 3

GRAY_TO_INT 59,73 40,79 41,00 5,82 6,02 3

INT_TO_REAL 60,35 40,64 40,85 3,25 3,46 3

DINT_TO_REAL 49,14 34,76 35,01 3,67 3,92 3

REAL_TO_INT 91,59 60,86 61,11 3,38 3,63 3

REAL_TO_DINT 68,84 48,31 48,56 3,67 3,92 3

DBCD_TO_DINT 1 625,73 1 069,50 1 192,30 378,40 378,15 5

DBCD_TO_INT 1 379,53 909,63 1 014,07 323,83 323,62 5

DINT_TO_DBCD 1 251,05 819,50 913,55 314,88 314,63 5

INT_TO_DBCD 620,01 439,50 489,85 168,73 168,48 5

8.3.7 Cadena de bits

ST Condiciones Tiempo de ejecución Volumen

(µs) (palabras)

A B ram B cart C ram C cart 57xx

Inicialización de una tabla de bits%M30:8 := 0 8 bits 6,71 2,87 4,12 2,87 4,12 7

%M30:16 := 1 16 bits 11,37 4,87 6,79 4,87 6,79 7

%M30:24 := 2 24 bits 24,47 15,31 16,81 15,31 16,81 12

%M30:32 := 2 32 bits 29,13 17,31 19,48 17,31 19,48 12

Copia de una tabla de bits en una tabla de bits%M30:8 := %M20:8 8 bits 13,71 5,87 8,17 5,87 8,17 8

%M30:16 := %M20:16 16 bits 16,62 7,12 9,83 7,12 9,83 8

%M30:24 := %M20:24 24 bits 45,46 24,31 28,85 24,31 28,85 13

%M30:32 := %M20:32 32 bits 57,13 29,31 35,52 29,31 35,52 13

%M30:16 := COPY_BIT(%M20:16) 16 bits 322,00 230,00 256,45 99,20 99,20 17

32 bits 490,00 350,00 390,25 153,20 153,20 17

128 bits 1 526,00 1 090,001 215,35470,20 470,20 17

A TSX 57 10 y PCX 57 10 B TSX 57 20/25/30/35, PMX 57 10 y PCX 57 35 C TSX 57 40/45 y PMX 57 20/35/45

Page 400: Manual PL7

8/26___________________________________________________________________________

BST Condiciones Tiempo de ejecución Volumen

(µs) (palabras)

A B ram B cart C ram C cart 57xx

Instrucciones lógicas para tablas de bitsAND_ARX, OR_ARX, XOR_ARX

%M0:16 := AND_ARX(%M30:16,%M50:16) 16 bits 434,00 310,00 345,65 136,10 136,10 24

%M0:32 := AND_ARX(%M30:32,%M50:32) 32 686,00 490,00 546,35 213,00 213,00 24

%M0:128 := AND_ARX(%M30:128,%M50:128) 128 2 198,00 1 570,00 1 750,55 674,40 674,40 24

NOT_ARX

%M0:16 := NOT_ARX(%M30:16) 16 bits 322,00 230,00 256,45 99,20 99,20 17

32 490,00 350,00 390,25 153,20 153,20 17

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

Copia de una tabla de bits en una tabla de palabras%MW1 := %M30:8 8 bits 8,75 3,75 5,25 3,75 5,25 6

%MW1 := %M30:16 16 bits 15,75 6,75 9,25 6,75 9,25 6

%MD2 := %M30:24 24 bits 23,04 10,54 13,83 10,54 13,83 6

%MD2 := %M30:32 32 bits 30,04 13,54 17,83 13,54 17,83 6

%MW1:2 := BIT_W(%M40:17,0,17,0) 17 bits 518,00 370,00 412,55 150,50 150,50 23

%MD1:2 := BIT_D(%M30:33,0,33,0) 33 bits 728,00 520,00 579,80 200,00 200,00 23

Copia de una palabra o una tabla de palabras en una tabla de bits%M30:8 := %MW1 8 bits 6,71 2,87 4,08 2,87 4,08 6

%M30:16 := %MW2 16 bits 11,37 4,87 6,75 4,87 6,75 6

%M30:24 := %MD1 24 bits 24,76 16,11 17,36 16,11 17,36 11

%M30:32 := %MD3 32 bits 29,42 18,11 20,02 18,11 20,02 11

%M30:32 := W_BIT(%MW0:2,0,2,0) 32 bits 518,00 370,00 412,55 142,31 142,31 23

%M30:32 := D_BIT(%MD0:1,0,2,0) 32 bits 616,00 440,00 490,60 169,23 169,23 23

A TSX 57 10 y PCX 57 10 B TSX 57 20/25/30/35, PMX 57 10 y PCX 57 35 C TSX 57 40/45 y PMX 57 20/35/45

Page 401: Manual PL7

Prestaciones 8

___________________________________________________________________________8/27

B

B8.3.8 Tablas de palabras, dobles palabras y flotantes

ST Condiciones Tiempo de ejecución Volumen

(µs) (palabras)

A B ram B cart C ram C cart 57xx

Inicialización de una tabla de palabras por un palabra%MW0:10 := %MW100 10 palabras 74,48 50,16 51,12 27,04 28,00 10

por palabra 0,47 0,25 0,25 0,37 0,37

%MD0:10 := %MD100 10 palabras 115,45 78,29 79,29 33,59 34,59 10

por palabra 4,41 2,95 2,95 0,90 0,90

Copia de una tabla de palabras en una tabla de palabras%MW0:10:=%MW20:10; 10 palabras 139,71 93,76 95,26 45,65 47,14 15

por palabra 0,95 0,50 0,50 0,74 0,74

%MD0:10:=%MD20:10; 10 palabras 151,18 102,46 103,96 53,75 55,25 15

por palabra 2,02 1,30 1,30 1,54 1,54

Instrucciones aritméticas y lógicas entre 2 tablas de palabras+, -

%MW0:10 :=%MW10:10 + %MW20:10; 10 palabras 236,81 162,54 164,79 71,59 73,84 23

por palabra 10,05 7,15 7,15 3,07 3,07

%MD0:10:=%MD10:10+%MD20:10; 10 palabras 325,79 229,79 232,04 104,03 106,28 23

por palabra 18,41 13,55 13,55 6,12 6,12

*

%MW0:10:=%MW10:10 * %MW20:10; 10 palabras 246,52 184,99 187,24 76,30 78,55 23

por palabra 11,03 9,40 9,40 3,55 3,55

%MD0:10:=%MD10:10 * %MD20:10; 10 palabras 881,77 658,44 660,69 241,22 243,47 23

por palabra 74,04 56,40 56,40 19,82 19,82

/, REM

%MW0:10:=%MW10:10 / %MW20:10; 10 palabras 249,44 192,64 194,89 77,99 80,24 23

por palabra 11,35 10,15 10,15 3,71 3,71

%MD0:10:=%MD10:10 / %MD20:10; 10 palabras 3 669,10 2 501,99 2 504,24 544,65 546,90 23

por palabra 352,83 240,75 240,75 50,19 50,19

AND, OR, XOR

%MW0:10:=%MW10:10 AND %MW20:10; 10 palabras 235,38 160,14 162,39 71,15 73,40 23

por palabra 9,94 6,90 6,90 3,02 3,02

%MD0:10:=%MD10:10 AND %MD20:10; 10 palabras 322,35 231,09 233,34 104,96 107,21 23

por palabra 18,05 13,65 13,65 6,20 6,20

A TSX 57 10 y PCX 57 10 B TSX 57 20/25/30/35, PMX 57 10 y PCX 57 35 C TSX 57 40/45 y PMX 57 20/35/45

Page 402: Manual PL7

8/28___________________________________________________________________________

BST Condiciones Tiempo de ejecución Volumen

(µs) (palabras)

A B ram B cart C ram C cart 57xx

Instrucciones aritméticas y lógicas entre 1 tabla de palabras y1 palabra+, -

%MW0:10 :=%MW10:10 + %MW20; 10 palabras 170,69 115,14 116,85 48,99 50,70 18

ou %MW0:10 := %MW20 + %MW10:10 por palabra 4,37 2,85 2,85 0,88 0,88

%MD0:10 :=%MD10:10 + %MD20; 10 dobles palabras 230,52 156,91 158,66 67,61 69,36 18

por doble palabra 9,92 6,75 6,75 2,62 2,62

*

%MW0:10 :=%MW20*%MW10:10; 10 palabras 180,13 137,04 138,75 53,64 55,35 18

por palabra 5,31 5,05 5,05 1,35 1,35

%MD0:10:=%MD20*%MD10:10; 10 dobles palabras 747,33 568,16 569,91 205,84 207,59 18

por doble palabra 61,59 47,85 47,85 16,43 16,43

/, REM

%MW0:10 :=%MW10:10 / %MW30; 10 palabras 212,87 166,39 168,10 65,15 66,86 18

por palabra 8,48 7,90 7,90 2,42 2,42

%MD0:10:=%MD10:10 / %MD30; 10 dobles palabras 3 536,66 2 418,56 2 420,31 509,41 511,16 18

por doble palabra 340,51 232,90 232,90 46,82 46,82

AND, OR, XOR

%MW0:10 :=%MW10:10 AND %MW20; 10 palabras 170,89 115,59 117,30 49,09 50,79 18

por palabra 4,39 2,90 2,90 0,89 0,89

%MD0:10:=%MD20*%MD10:10; 10 dobles palabras 747,33 568,16 569,91 205,84 207,59 18

por doble palabra 9,81 6,50 6,50 2,57 2,57

NOT

%MW0:10 :=NOT(%MW10:10); 10 palabras 161,71 109,06 110,56 46,70 48,20 15

por palabra 4,37 2,85 2,85 0,88 0,88

%MD0:10:=NOT(%MD10:10); 10 dobles palabras 184,14 125,51 127,01 55,34 56,84 15

por doble palabra 6,61 4,50 4,50 1,75 1,75

Función de suma en tabla%MW20:=SUM(%MW0:10); 10 palabras 111,87 76,61 77,57 29,61 30,57 16

por palabra 3,40 2,40 2,40 0,53 0,53

%MD20:=SUM(%MD0:10); 10 dobles palabras 130,74 87,74 88,74 34,03 35,03 16

por doble palabra 4,96 3,30 3,30 0,93 0,93

%MF20:=SUM_ARR(%MF0:10); 10 doble palabra 1905 1270,00 1313,82 303,20 303,20 16

por doble palabra

A TSX 57 10 y PCX 57 10 B TSX 57 20/25/30/35, PMX 57 10 y PCX 57 35 C TSX 57 40/45 y PMX 57 20/35/45

Page 403: Manual PL7

Prestaciones 8

___________________________________________________________________________8/29

B

BST Condiciones Tiempo de ejecución Volumen

(µs) (palabras)

A B ram B cart C ram C cart 57xx

Función de comparación de tablas%MW20:=EQUAL(%MW0:10;%MW10:10); 10 palabras 142,90 99,14 100,85 47,31 49,02 17

por palabra 1,14 0,95 0,95 0,83 0,83

%MD20:=EQUAL(%MD0:10;%MD10:10); 10 dobles palabras 155,56 110,06 111,81 56,02 57,77 17

por doble palabra 2,33 2,00 2,00 1,69 1,69

%MF20:=EQUAL_ARR 10 doble palabra 825 550,00 568,98 137,50 137,50 17

(%MF0:10;%MF10:10); por doble palabra

Búsqueda (1)%MW20 := FIND_EQW(%MW0:10,%KW0) 10 palabras 374,68 240,00 267,60 97,00 97,00 14

%MD20 := FIND_EQD(%MD0:10, %KD0) 10 dobles palabras 394,40 260,00 289,90 100,00 100,00 15

%MF20 := FIND_EQR(%MF0:10, %KF0) 10 doble palabra 936 624,00 645,53 135,70 135,70 15

%MF20 := FIND_EQRP(%MF0:10, %KF0) 10 doble palabra 936 624,00 645,53 135,70 135,70 15

%MD20 := FIND_GTR(%MF0:10, %KF0) 10 doble palabra 936 624,00 645,53 135,70 135,70 15

%MD20 := FIND_LTR(%MF0:10, %KF0) 10 doble palabra 936 624,00 645,53 135,70 135,70 15

(1) los valores indicados en esta tabla son valores medios (el valor buscado se sitúa enmedio de esta tabla).

Búsqueda de los valores máx. y mín.%MW20 := MAX_ARW(%MW0:10) 10 palabras 404,26 260,00 289,90 100,00 100,00 12

%MD20 := MAX_ARD(%MD0:10) 10 dobles palabras 483,14 310,00 345,65 119,23 119,23 12

%MF20 := MAX_ARR(%MF0:10) 10 doble palabra 1555 1037,00 1072,78 261,20 261,20 12

%MD20 := MIN_ARR(%MF0:10) 10 doble palabra 1443 962,00 995,19 240,50 240,50 12

Número de ocurrencias%MW20:=OCCUR_ARW(%MW0:10,%KW0) 10 palabras 394,40 260,00 289,90 100,00 100,00 14

%MD20:=OCCUR_ARD(%MD0:10,%KD0) 10 dobles palabras 423,98 280,00 312,20 107,69 107,69 15

%MF20 := OCCUR_ARR(%MF0:10, %KF0) 10 doble palabra 1435 957,00 990,02 239,25 293,25 15

Desplazamiento circularROL_ARW(palabra o valor,%MWj:10) 10 palabras 621,18 400,00 446,00 153,85 153,85 12

ROL_ARD(%MDi,%MDj:10) 10 dobles palabras 670,48 430,00 479,45 165,38 165,38 12

ROL_ARR(%MFi,%MFj:10) 10 doble palabra 654 436,00 451,04 109,00 109,00 12

OrdenaciónSORT_ARW(%MWi,%MWj:10) 10 palabras 1 133,90 720,00 802,80 276,92 276,92 12

SORT_ARD(%MDi,%MDj:10) 10 dobles palabras 700,06 440,00 490,60 169,23 169,23 12

SORT_ARR(%MFi,%MFj:10) 10 doble palabra 2150 1433,00 1482,44 358,25 358,25 12

Cálculo de longitudLENGTH_ARW(tab_palabra) 71,42 50 55,74 19,28 19,28 12

LENGTH_ARD(tab_dpalabra) 71,42 50 55,74 19,28 19,28 12LENGTH_ARW(tab_real) 71,42 50 55,74 19,28 19,28 12LENGTH_ARX(tab_bit) 71,42 50 55,74 19,28 19,28 12

A TSX 57 10 y PCX 57 10 B TSX 57 20/25/30/35, PMX 57 10 y PCX 57 35 C TSX 57 40/45 y PMX 57 20/35/45

Page 404: Manual PL7

8/30___________________________________________________________________________

B8.3.9 Gestión del tiempo

ST Tiempo de ejecución Volumen(µs) (palabras)

A B ram B cart C ram C cart 57xx

OF Fechas, horas y duraciones%MW2:4 := ADD_DT(%MW2:4,%MD8) 5 176,50 3 500,00 3 902,50 1203,20 1203,20 19

%MD2 := ADD_TOD(%MD2,%MD8) 2 435,42 1 640,00 1 828,60 630,77 630,77 9

%MB2:11 := DATE_TO_STRING(%MD40) 1 429,70 970,00 1 081,55 373,08 373,08 12

%MW5 := DAY_OF_WEEK() 552,16 390,00 434,85 108,45 108,45 5

%MD10 := DELTA_D(%MD2, %MD4) 1 725,50 1 170,00 1 304,55 450,00 450,00 9

%MD10 := DELTA_DT(%MD2:4,%MW6:4) 3 549,60 2 410,00 2 687,15 926,92 926,92 19

%MD10 := DELTA_TOD(%MD2,%MD4) 2 632,62 1 780,00 1 984,70 684,62 684,62 9

%MB2:20 := DT_TO_STRING(%MW50:4) 2 297,38 1 550,00 1 728,25 596,15 596,15 17

%MW2:4 := SUB_DT(%MW2:4,%MD8) 5 492,02 3 750,00 4 181,25 1203,20 1203,20 19

%MD2 := SUB_TOD(%MD2,%MD8) 2 622,76 1 780,00 1 984,70 684,62 684,62 9

%MB2:15 := TIME_TO_STRING(%MD40) 1 922,70 1 270,00 1 416,05 488,46 488,6 12

%MB2:9 := TOD_TO_STRING(%MD40) 1 281,80 830,00 925,45 319,23 319,23 12

%MD100 := TRANS_TIME(%MD2) 788,80 530,00 590,95 203,85 203,85 7

Acceso al reloj-calendarioRRTC(%MW0:4) 164,81 111,44 112,19 46,43 47,18 8WRTC(%MW0:4) 152,94 103,79 104,54 43,47 44,22 8PTC(%MW0:5) 165,36 111,79 112,54 46,45 47,20 8SCHEDULE(%MW0,%MW1,%MW2, 1500 1070 1190 411 411 8

%MD10,%MD12,%M0)

8.3.10 Función Temporizador

FTON 80,1 53,40 53,40 35,10 35,10

FTOF 80,1 53,40 53,40 35,10 35,10

FTP 80,1 53,40 53,40 35,10 35,10

FPULSOR 406 290,4 323 112 112

A TSX 57 10 y PCX 57 10 B TSX 57 20/25/30/35, PMX 57 10 y PCX 57 35 C TSX 57 40/45 y PMX 57 20/35/45

Page 405: Manual PL7

Prestaciones 8

___________________________________________________________________________8/31

B

B8.3.11 Cadenas de caracteres

ST Condiciones Tiempo de ejecución Volumen

(µs) (palabras)

A B ram B cart C ram C cart 57xx

Asignación, copia de cadenas de caracteres%MB0:8:=%MB10:8 8 caracteres 147,75 103,56 103,56 51,96 51,96 15

por carácter 1,64 1,25 1,25 1,21 1,21

%MB0:8:=’abcdefg’ 8 caracteres 193,86 136,88 136,88 56,53 56,53 14

por carácter 5,94 4,35 4,35 1,69 1,69 0,5

Conversiones palabra <-> cadenas de caracteres%MW1:=STRING_TO_INT(%MB0:7) 145,69 104,31 104,52 37,93 38,14 10

%MB0:7:=INT_TO_STRING(%MW0) 149,67 109,21 109,42 35,52 35,73 10

Conversiones doble palabra <-> cadenas de caracteres%MD1:=STRING_TO_DINT(%MB0:13) 1 408,43 1 061,01 1 061,01 364,71 364,71 10

%MB0:13:=DINT_TO_STRING(%MD0) 411,64 317,69 317,94 97,35 97,60 10

Conversiones flotante <-> cadenas de caracteres%MF1:=STRING_TO_REAL(%MB0:15) 2 606,63 1 815,08 1 815,33 635,96 635,96 10

%MB0:15:=REAL_TO_STRING(%MF0) 1 084,46 752,94 753,27 389,47 389,81 10

OF de manipulación de cadenas%MB10:20 := CONCAT(%MB30:10,%MB50:10) 1 106,00 790,00 880,85 303,85 303,85 24

%MB10:20 := DELETE(%MB10:22,2,3); 896,00 640,00 713,60 246,15 246,15 21

%MW0 := EQUAL_STR(%MB10:20,%MB30:20); 756,00 540,00 602,10 207,69 207,69 19

%MW0 := FIND(%MB10:20,%MB30:10); 1 456,00 1 040,00 1 159,60 400,00 400,00 19

%MB10:20 := INSERT(%MB30:10,%MB50:10,4); 1 162,00 830,00 925,45 319,23 319,23 26

%MB10:20 := LEFT(%MB30:30,20); 826,00 590,00 657,85 226,92 226,92 19

%MW0 := LEN(%MB10:20); 490,00 350,00 390,25 134,62 134,62 12

%MB10:20 := MID(%MB30:30,20,10); 994,00 710,00 791,65 273,08 273,08 21

%MB10:20 :=REPLACE(%MB30:20,%MB50:10,10,10); 1 246,00 890,00 992,35 342,31 342,31 28%MB10:20 := RIGHT(%MB30:30,20); 1 358,00 970,00 1 081,55 373,08 373,08 19

8.3.12 Extracción de palabras

LW 72 51,40 51,40 24,70 24,70

HW 72 51,40 51,40 24,70 24,70

CONCATW 72 51,40 51,40 24,70 24,70

A TSX 57 10 y PCX 57 10 B TSX 57 20/25/30/35, PMX 57 10 y PCX 57 35 C TSX 57 40/45 y PMX 57 20/35/45

Page 406: Manual PL7

8/32___________________________________________________________________________

B8.3.13 Funciones específicas y función Orphée

ST Condiciones Tiempo de ejecución Volumen

(µs) (palabras)

A B ram B cart C ram C cart 57xx

ComunicaciónSEND_REQ(%KW0:6,15,%MW0:1,%MW10:10, 2 800 2 000 2 230 1800 2007 33%MW30:4)SEND_TLG(%KW0:6,1,%MW0:5,%MW30:2) 2 100 1 500 1 673 1350 1505

SERVER (para 120 octets) 6300 4500 5018 4050 4515 32

WRITE_ASYN (para 500 palabras) 4900 3500 3902 3150 3513 32

READ_ASYN (para 500 palabras) 4900 3500 3902 3150 3513 32

Diálogo de operadorSEND_MSG(ADR#1.0,%MW0:2,%MW10:2) 2 800 2 000 2 230 800 25

SEND_ALARM(ADR#1.0,%MW0:2,%MW10:2) 2 800 2 000 2 230 800 25

GET_MSG(ADR#1.0,%MW0:2,%MW10:2) 2 800 2 000 2 230 800 25

GET_VALUE(ADR#1.0,%MW0,%MW10:2) 1 400 1 000 1 115 400 20

ASK_MSG(ADR#1.0,%MW0:2,%MW10:2,%MW20:2) 2 800 2 000 2 230 800 32

ASK_VALUE(ADR#1.0,%MW0,%MW10:2,%MW20:2) 2 800 2 000 2 230 800 27

DISPLAY_ALRM(ADR#1.0,%MW0,%MW10:2) 1 400 1 000 1 115 400 20

DISPLAY_GRP(ADR#1.0,%MW0,%MW10:2) 1 400 1 000 1 115 400 20

DISPLAY_MSG(ADR#1.0,%MW0,%MW10:2) 1 400 1 000 1 115 400 20

CONTROL_LEDS(ADR#1.0,%MW0:2,%MW10:2) 2 800 2 000 2 230 800 25

ASSIGN_KEYS(ADR#1.0,%MW0:2,%MW10:2) 2 800 2 000 2 230 800 25

PANEL_CMD(ADR#1.0,%MW0:2,%MW10:2) 2 800 2 000 2 230 800 25

RegulaciónPID(“PIDS1”,’Unité’,%IW3.5,%MW12,%M16, deval_mmi=0 1700 1100 1227 32%MW284:43)

deval_mmi=1 1500 900 1004

PWM(%MW11,%Q2.1,%MW385:5) 700 500 557,5 17

SERVO(%MW12,%IW3.6,%Q2.2,%Q2.3, 1000 800 892 31%MW284:43,%MW390:10)PID_MMI(ADR#0.0.4,%M1,%M2:5,%MW410:62) EN=1 1400 1000 1115 30

Archivo de datosSET_PCMCIA (para 1600 palabras) 6000 8000 24

WRITE_PCMCIA (para 1600 palabras) 6000 7000 24

READ_PCMCIA (para 1600 palabras) 4000 7000 24

A TSX 57 10 y PCX 57 10 B TSX 57 20/25/30/35, PMX 57 10 y PCX 57 35 C TSX 57 40/45 y PMX 57 20/35/45

Page 407: Manual PL7

Prestaciones 8

___________________________________________________________________________8/33

B

BST Condiciones Tiempo de ejecución Volumen

(µs) (palabras)

A B ram B cart C ram C cart 57xx

Función OrphéeDSHL_RBIT(%MD102,16,%MD204,%MD206) lectura de 10 pals. 493 320 357 123 17

DSHR_RBIT(%MD102,16,%MD204,%MD206) escritura de 10 pals. 749 510 569 196 17

DSHRZ_C(%MD102,16,%MD204,%MD206) pet. espejo 10 pals. 493 310 346 119 17

WSHL_RBIT(%MW102,8,%MW204,%MW206) intercamb. 10 pals. 365 220 245 85 17

WSHR_RBIT(%MW102,8,%MW204,%MW206) 20 bytes 424 290 323 112 17

WSHRZ_C(%MW102,8,%MW204,%MW206) 20 bytes 365 220 245 85 17

SCOUNT(%M100,%MW100,%M101,%M102, 20 bytes 670 420 468 162 38%MW101,%MW102,%M200,%M201,%MW200,%MW201)

Bloque de función diagnósticoIO_DIA 111,5 119,5 37,5

ALRM_DIA 110 133 37,5

EV_DIA 129 138 56

MV_DIA 430 117,5 450

ASI_DIA 144 160 49

NEPO_DIA 262 a 557270a 567 177 a 227

TEPO_DIA 262 a 285270 à 292 177 a 197

8.3.14 Entradas/salidas explícitas

Read_Sts %CHi.MOD

Cualquier salida específica salvo la vía 997 712 748 316,4 316,4 2de comunicación del procesadorRead_Sts %CHi

Entrada TOR 462 330 347 147 147 6

Salida TOR 630 450 473 201 201Entrada analógica 510 380 390 170 170 6Salida analógica 500 370 380 165 165

CTY 518 370 389 165 165

CFY 756 540 567 241 241

CAY 532 380 399 170 170

Write_Param %CHi

Entrada analógica 860 620 630 277 277 6

Salida analógica 810 580 600 259 259

CTY 1 134 810 851 362 362

CFY 1 064 760 798 339 339

CAY 784 560 588 250 250

A TSX 57 10 y PCX 57 10 B TSX 57 20/25/30/35, PMX 57 10 y PCX 57 35 C TSX 57 40/45 y PMX 57 20/35/45

Page 408: Manual PL7

8/34___________________________________________________________________________

BST Condiciones Tiempo de ejecución Volumen

(µs) (palabras)

A B ram B cart C ram C cart 57xx

Read_Param %CHi

Entrada analógica 180 120 130 54 54 6

Salida analógica 180 120 130 54 54

CTY 532 380 399 170 170

CFY 644 460 483 205 205

CAY 630 450 473 201 201

Save_Param %CHi

Entrada analógica 1 300 880 890 393 393 6

Salida analógica 1 300 890 900 397 397

CTY 1722 1230 1292 549 549

CFY 700 500 525 223 223

CAY 700 500 525 223 223

Restore_Param %CHi

Entrada analógica 800 570 590 254 254 6

Salida analógica 800 570 590 254 254

CTY 1148 820 861 366 366

CFY 1092 780 819 348 348

CAY 826 590 620 263 263

Write_Cmd %CHi

Salida TON 448 320 336 143 143 6

Entrada analógica

. forzado de entrada 200 140 150 63 63

. forzado de entrada 1 390 1 020 1 040 455 455

Salida analógica: forzado de salidas

Salida TON 210 150 150 67 67

Smove %CHi

CFY 117 84 88 37 37 24

CAY 115 82 86 36 36

Xmove %CHi

CAY 115 80 86 36 36 32

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

Page 409: Manual PL7

Prestaciones 8

___________________________________________________________________________8/35

B

B8.3.15 Bloque de función DFB

Tamaño ocupado por el tipo DFB

Tamaño tipo DFB = Tamaño variables y parámetros DFB + Tamaño de DFB

• Tamaño variables y parámetros0 DFB =110 + Sumas de los descriptores de variables y parámetros + Suma de los tamañosocupados por cada variable o parámetro

Descriptor de una variable o de un parámetro = 5,5 + (Número de caracteres delnombre de la variable o del parámetro)/2

Tamaño ocupado por cada variable o parámetro:

Tipo IN IN/OUT OUT PUBLICA PRIVADA

EBOOL 0,5 2 0,5 0,5 0,5

BOOL 0,5 2 0,5 0,5 0,5

WORD 1 2 1 1 1

DWORD 2 2 2 2 2

REAL 2 2 2 2 2

AR_X 3 3 0,5*N 0,5*N 0,5*N

AR_W 3 3 N N N

AR_D 3 3 2*N 2*N 2*N

AR_R 3 3 2*N 2*N 2*N

STRING 3 3 0,5*N 0,5*N 0,5*N

N = número de elementos de la tabla o longitud de la cadena de caracteres (STRING)

• Tamaño de DFB = 11 + Suma de los tamaños de cada una de las instrucciones (1)

(1) Al tamaño de las instrucciones agregar los volúmenes según la variable o delparámetro contenido en la instrucción:

Objeto no indexado

Naturaleza Tipo Volumen

IN EBOOL 0,5

BOOL, WORD, DWORD, REAL 0

AR_X,AR_W,AR_D,AR_R,STRING 3

IN/OUT EBOOL 3

BOOL, WORD, DWORD, REAL 3

AR_X,AR_W,AR_D,AR_R,STRING 3

OUT, PUBLC EBOOL 0,5

PRIVEE BOOL, WORD, DWORD, REAL 0

AR_X,AR_W,AR_D,AR_R,STRING 0

Page 410: Manual PL7

8/36___________________________________________________________________________

BObjeto indexado

Naturaleza Tipo Volumen

IN AR_X,AR_W,AR_D,AR_R, 7

IN/OUT AR_X,AR_W,AR_D,AR_R, 7

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

Tamaño ocupado por la utilización del DFB

• llamada de una instancia de DFB sin ningún parámetro: 6 palabras

• cálculo para un parámetro:

Naturaleza Tipo Volumen

IN EBOOL,BOOL,WORD,DWORD,REAL idem asignación :=

AR_X,AR_W,AR_D,AR_R,STRING 14

IN/OUT EBOOL,WORD,DWORD,REAL 10

BOOL,AR_X,AR_W,AR_D,AR_R, 14

OUT Todo los tipos idem asignación :=

• utilización de una variable de una instancia: agregar 1 palabra respecto a %M..

Page 411: Manual PL7

Prestaciones 8

___________________________________________________________________________8/37

B

BTiempo de ejecución

Tiempo total de ejecución del DFB = Talón para código DFB + Suma de los tiemposde acceso a las variables y parámetros DFB + Llamada DFB (sin parámetro) + Sumade los tiempos de acceso de cada parámetro

Tiempo de ejecución (µs)A B ram B cart C ram C cart

Talón para código DFB 16,24 7,00 8,00 7,00 8,00

Acceso a una variable o un parámetro DFB (1)Objetos indexados

• IN- EBOOL 0,290 0,125 0,208 0,125 0,208- BOOL,WORD,DWORD,REAL 0 0 0 0 0- AR_X,AR_W,AR_D,AR_R,STRING1,739 0,750 1,282 0,750 1,282

• IN/OUT (todos los tipos) 1,739 0,750 1,282 0,750 1,282

• OUT,PUBLICA,PRIVADA - EBOOL 0,290 0,125 0,208 0,125 0,208

- BOOL,WORD,DWORD,REAL 0 0 0 0 0- AR_X,AR_W,AR_D,AR_R,STRING 0 0 0 0 0

Objetos no indexados

• IN, IN/OUT - AR_X,AR_W,AR_D,AR_R, 3,496 1,5 1,472 1,5 1,472

• OUT,PUBLICA,PRIVADA - AR_X,AR_W,AR_D,AR_R, 2,616 1,125 1,931 1,125 1,931

Llamada DFB (sin parámetro) 4,770 2,125 3,018 2,125 3,018

Cálculo por parámetro (1)• IN - EBOOL idem :=

- BOOL,WORD,DWORD,REAL idem :=- AR_X,AR_W,AR_D,AR_R,STRING4,393 2,125 3,269 2,125 3,269

• IN/OUT - EBOOL,WORD,DWORD,REAL 3,48 1,5 2,318 1,5 2,318

- BOOL,AR_X,AR_W,AR_D,AR_R,STRING4,393 2,125 3,269 2,125 3,269

• OUT todos los tipos idem :=

(1) valor por agregar en relación 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

Page 412: Manual PL7

8/38___________________________________________________________________________

B8.4 Tamaño de la aplicación

8.4.1 Descripción de las áreas de memoria

La aplicación se divide en varias áreas de memoria:

• área de memoria de bits:- este área es relativa a los autómatas TSX 37 y se limita a 1280 bits,- este área forma parte del área de memoria de los autómatas TSX 57,

• área de memoria de datos (palabras) ,

• área de memoria de aplicación, que comprende:- la configuración,- 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 aplicación puede almacenarse en la RAM interna o en unatarjeta de memoria.La descripción de la estructura de memoria se encuentra en el capítulo 1.3,sección 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

Page 413: Manual PL7

Prestaciones 8

___________________________________________________________________________8/39

B

B8.4.2 Tamaño de memoria de los objetos PL7

Memoria de bits Datos Aplicación(en palabras) (en palabras) (en palabras)

Etapas Grafcet (%Xi, %Xi.T) 0,5 1

%Mi 0,5

Numéricas (%MWi) 1

Constantes (%KWi) 1,25

%NWi 1

%Ti 4 2

%TMi 5 2

%MNi 4 2

%Ci 3 1

%Ri (longitud lg) 6+lg 2

%DRi 6 49

Datos del intérprete Grafcet = 355 + 2 x N° de etapas activas configuradas + (N° detransiciones válidas configuradas) / 2

8.4.3 Tamaño de memoria de los módulosObservaciónEstas informaciones son para una versión particular de procesadores. Puedencontener pequeñas variaciones en función de las evoluciones del producto.

Las tablas siguientes indican para cada tipo de módulo el espacio ocupado encada área así como un espacio fijo que se agrega al informe sobre el espacio dememoria cuando una función específica se utiliza por primera vez.

Asignación del espacio de memoria utilizado por los módulos en TSX 37

Procesadores Memoria de bits Datos Area de(palabras) (palabras) aplicación

(palabras)

TSX 37-05/08/10 70 1560 920TSX 37-21 70 1570 930

TSX 37-22 70 2110 1280

Utilización tarea FAST (TSX 37) 260

Utilización primer suceso 520(TSX 37)

Page 414: Manual PL7

8/40___________________________________________________________________________

BFamilia TON Memoria de bits Datos de Area de

(palabras) (palabras) aplicación(palabras)

8 entradas TON 4 12 40

16 entradas TON 8 12 50

4 salidas TON 2 12 40

8 salidas TON 4 12 40

8E / 8S TON 4 12 40

16E / 12S TON 16 20 100

32E / 32S TON 32 20 142

Familia 4 Entradas ANA Memoria de bits Datos de Area de (palabras) (palabras) aplicación

(palabras)AEZ414 0 156 56

Sobrecosto 1er módulo Familia 4 120Entradas ANA

Familia 8 Entradas ANA Memoria de bits Datos de Area de(palabras) (palabras) aplicación

(palabras)AEZ801/AEZ802 0 212 72

Sobrecosto 1er módulo Familia 8 120

Entradas ANA

Familia Salidas ANA Memoria de bits Datos de Area de(palabras) (palabras) aplicación

(palabras)ASZ200 0 52 40

ASZ401 0 100 59

Sobrecosto 1er módulo Familia 120Salidas ANA

Familia Contaje Memoria de bits Datos de Area de(palabras) (palabras) aplicación

(palabras)CTY1A 16 108 64

CTY2A 32 212 106

Sobrecosto 1ra vía en Contaje 144

Sobrecosto 1ra vía en Descontaje 144

Sobrecosto 1ra vía en CPT/DCPT 144

Familia Comunicación Memoria de bits Datos de Area de(palabras) (palabras) aplicación

(palabras)STZ010 0 36 168

SCP111/ SCP112/ SCP114 0 40 763en UC (UTW)FPP 20 en UC (Vía 0 UTW) 0 40 755

MDM 10 0 2528 12880

Page 415: Manual PL7

Prestaciones 8

___________________________________________________________________________8/41

B

B

TSX/PCX/PMX 57

Procesadores Memoria de bits Datos de Area de(palabras) (palabras) aplicación

(palabras)TSX/PCX/PMX 57-10 70 4714 1720

TSX 57-20/25/30/35/40/45 70 4714 1784PCX 57-10/35PMX 57-10/20/35/45

Utilización tarea FAST (TSX 57) 520

Sobrecosto 1er módulo en la configuración 600

Procesadores PMX: bucle de Memoria de bits Datos de Area deregulación (palabras) (palabras) aplicación

(palabras)PMX 57-10: por bucle 500

Sobrecosto 1er bucle 25000PMX 57-20/35/45: por bucle 500

Sobrecosto 1er bucle 5000

Familia Entradas TON simples Memoria de bits Datos de Area de(palabras) (palabras) aplicación

(palabras)8 entradas TON 4 100 100

16 entradas TON 8 130 110

32 Entradas TON 16 230 120

64 Entradas TON 32 430 190

Sobrecosto 1er módulo Familia 610Entradas TON simples

Familia Salidas TON simples Memoria de bits Datos de Area de(palabras) (palabras) aplicación

(palabras)8 Salidas TON 4 110 100

16 Salidas TON 8 160 110

32 Salidas TON 16 280 120

64 Salidas TON 32 550 190

Sobrecosto 1er módulo Familia 570Salidas TON simples

Familia Entradas/Salidas TON Memoria de bits Datos de Area deseguridad (palabras) (palabras) aplicación

(palabras)12E/4S o 12E/2S (PAY) 16 128 200

Sobrecosto 1er módulo Familia 1.320 TONEntradas EVT

Asignación del espacio de memoria utilizado por los módulos en

Page 416: Manual PL7

8/42___________________________________________________________________________

BFamilia entradas/salidas TON Memoria de bits Datos de Area demixta (palabras) (palabras) aplicación

(palabras)16 Entradas/12 salidas (DMY 28FK) 16 304 152

Sobrecosto 1er módulo Familia 1432TON mixta16E/12S reflejo (DMY 28RFK) 32 976 656Sobrecosto 1er mód. Familia TON 5.596mixta reflejo

Familias Entradas analógicas Memoria de bits Datos de Area de(palabras) (palabras) aplicación

(palabras)AEY414 4 430 160

AEY800 8 840 240

AEY1600 16 1670 430

Sobrecosto 1er mód. Fam. Entradas 2990Analógicas (AEY 414/800/1600)AEY810 8 888 248

AEY1614 16 1768 432

Sobrecosto 1er mód. Fam. Entradas 3056Analógicas (AEY 810/1614)AEY420 4 476 168

Sobrecosto 1er mód. Fam. Entradas 2080Analógicas (AEY 810/1614)

Familia Salidas Analógicas Memoria de bits Datos de Area de(palabras) (palabras) aplicación

(palabras)ASY410 4 430 160

Sobrecosto 1er módulo Salidas 1700Analógicas ASY410ASY800 8 744 248

Sobrecosto 1er módulo Salidas 1760Analógicas ASY800

Familia Contaje Memoria de bits Datos de Area de(palabras) (palabras) aplicación

(palabras)Módulo CTY2A 32 410 170

Módulo CTY4A 64 800 250

Sobrecosto 1ra vía contaje 1740configurada

Módulo CTY2C 48 672 184

Sobrecosto 1ra vía contaje 1992configurada

Page 417: Manual PL7

Prestaciones 8

___________________________________________________________________________8/43

B

BFamilia Servomotor Memoria de bits Datos de Area de Apli-

(palabras) (palabras) cación (palab.)por vía por vía por vía

CAY•1 78 520 140

CAY•2 78 376 232

CAY33 vía 3 78 264 170

Sobrecosto 1° vía config. CAY•1 2130Sobrecosto 1° vía config. CAY•2/33 3600Sobrecosto 1° vía 3 config. CAY33 3600

Familia Paso a paso Memoria de bits Datos de Area de(palabras) (palabras) aplicación

(palabras)CFY11 29 323 104

CFY21 58 646 152

Sobrecosto 1ra vía paso a paso 2368 configurada

Familia Módulo de Memoria de bits Datos de Area decomunicación (palabras) (palabras) aplicación

(palabras)SCY21600 (Vía 0 UTW) 1 230 80SCP111/ SCP112 / SCP114 (UTW) 1 450 40en SCY21600 (Vía 1 UTW)Sobrecosto 1ra vía config. en UTW 1280

ETY 110 1 431 256Sobrecosto 1ra vía config. ETY 110 1984

ETY 120 1 48 136Sobrecosto 1ra vía config. ETY 120 1368

ETY 210 1 434 400Sobrecosto 1ra vía config.ETY 210 3424IBY 100 1 450 40

Familia Submódulos Memoria de bits Datos de Area dede comunicación UC (palabras) (palabras) aplicación

(palabras)SCP111/ SCP112/ SCP114 (UTW) 1 60 580en UC (Vía 0 UTW)FPP 20 en UC (Vía 0 UTW) 1 60 580

FPP 10 en UC (Vía 0 UTW) 1 40 870

Familia Acoplador ASI Memoria de bits Datos de Area de(palabras) (palabras) aplicación

(palabras)SAY 3 373 176

Sobrecosto 1ra vía ASi 2272configurada

Page 418: Manual PL7

8/44___________________________________________________________________________

BFamilia Pesaje Memoria de bits Datos de Area de

(palabras) (palabras) aplicación(palabras)

AWY001 1 170 120

Sobrecosto 1ra vía pesaje configurada 3920

Familia TBX Memoria de bits Datos de Area de(palabras) (palabras) aplicación

(palabras)Entradas TON 8 152 88

Sobrecosto 1ra base 1400 configuradaSalidas TON 8 176 88

Sobrecosto 1ra base 1320 configuradaProgramable 8 160 88

Sobrecosto 1ra base 2304 configuradaMemorización de 8 160 88

Sobrecosto 1ra base 1400 configuradaAES 400 2 270 104

ASS 200 2 270 104

AMS 620 4 508 112

Sobrecosto 1ra base 3968 configurada

Familia Momentum Memoria de bits Datos de Area de(palabras) (palabras) aplicación

(palabras)Entradas 16 96 72

Sobrecosto 1ra base 1384 configuradaSalida 16 112 72

Sobrecosto 1ra base 1256 configuradaMixta 16 104 72

Sobrecosto 1ra base 1424 configurada

Familia operación remota bus X Memoria bits Datos de Área de

(palabras) (palabras) aplicación

(palabras)

Módulo TSX REY 200 0 0 56

Page 419: Manual PL7

Prestaciones 8

___________________________________________________________________________8/45

B

B8.4.4 Tamaño de memoria de las funciones avanzadasLas tablas siguientes indican para cada función avanzada (OF) el tamaño delcódigo transferido a la aplicación (área aplicación) al llamar una funciónavanzada.Las funciones de una misma familia comparten código (código común). Estecódigo común se transfiere al autómata con la primera llamada de una función deesta familia. El código relativo a una función se transfiere con la primera llamadade esta función

Ejemplo:• Primera llamada de una función de la familia Conversiones numéricas, caso de

DBCD_TO_DINTCódigo transferido al área de aplicación- código común = 154 palabras- código OF DBCD_TO_INT = 149 palabras

• Llamada de otra función de la familia Conversiones numéricas, caso deDINT_TO_DBCDCódigo transferido al área aplicación:- código OF DINT_TO_DBCD = 203 palabrasLlamada de una función de la familia Conversiones numéricas ya llamada(DBCD_TO_DINT o DINT_TO_DBCD): ningún código transferido

Conversiones numéricas OF Tamañode código

(en palabras)Conversión de un número BCD 32 bits enentero 32 bits DBCD_TO_DINT 145Conversión de un número BCD 32 bits en

entero 16 bits DBCD_TO_INT 149Conversión de entero 32 bits en número BCD 32 bits DINT_TO_DBCD 203Conversión de entero 16 bits en número BCD 32 bits INT_TO_DBCD 75Extracción de la palabra de valor menos significativode una doble palabra LW 33Extración de la palabra de valor más significativode una doble palabra HW 33Formación de una doble palabra con 2 palabras CONCATW 33

código común 154

Page 420: Manual PL7

8/46___________________________________________________________________________

B

Cadenas de bits OF Tamaño de código(en palabras)

Y lógica entre dos tablasAND_ARX 209Copia de una tabla de bits en una tabla de palabras BIT_D 248doblesCopia de una tabla de bits en una tabla de palabras BIT_W 205Copia de una tabla de bits en una tabla de bits COPY_BIT 146Copia de una tabla de dobles palabras en una tabla D_BIT 196de bitsComplemento en 1de una tabla NOT_ARX 157O lógica entre dos tablasOR_ARX 209Copia de una tabla de palabras en una tabla de bits W_BIT 195O exclusiva entre dos tablas XOR_ARX 209Longitud en número de elementos LENGTH_ARX 20

código común 427

Instrucciones para tablas de palabras OF Tamaño de código(en palabras)

Búsqueda del 1er elemento de una tabla igual a un FIND_EQW 75valorBúsqueda del 1er elemento de una tabla superior a FIND_GTW 75une valorBúsqueda del 1er elemento de una tabla inferior a FIND_LTW 78un valorBúsqueda del valor mayor en una tabla MAX_ARW 78Búsqueda del valor menor en una tabla MIN_ARW 74Número de ocurrencias de un valor en una tabla OCCUR_ARW 145Desplazamiento circular a la izquierda en una tabla ROL_ARW 150Desplazamiento circular a la derecha en una tabla ROR_ARW 144Ordenación de una tabla (ascendente o descendente) SORT_ARW 164Búsqueda parcial del 1° elemento de una tabla FIND_EQWP 77igual a un valorLongitud en número de elementos LENGTH_ARW 20

código común 162

Page 421: Manual PL7

Prestaciones 8

___________________________________________________________________________8/47

B

B

Instrucciones para tablas de dobles-palabras OF Tamaño de código(en palabras)

Búsqueda del 1er elemento de una tabla igual a FIND_EQD 79un valorBúsqueda del 1er elemento de una tabla superior a FIND_GTD 80un valorBúsqueda del 1er elemento de una tabla inferior a FIND_LTD 95un valorBúsqueda del mayor valor en una tabla MAX_ARD 95Búsqueda del valor menor en una tabla MIN_ARD 78Número de ocurrencias de un valor en una tabla OCCUR_ARD 163Desplazamiento circular a la izquierda en una tabla ROL_ARD 170Desplazamiento circular a la derecha en una tabla ROR_ARD 178Ordenación de una tabla (ascendente o descendente) SORT_ARDBúsqueda parcial del 1er elemento en una tabla FIND_EQWP 77igual a un valorLongitud en nombre de elementos LENGTH_ARW 20

código común 162

Instrucciones para tablas de dobles-palabras OF Tamaño de código(en palabras)

Suma de los elementos de una tabla de reales SUM_ARR 152Búsqueda del 1er elemento de una tabla igual a un FIND_EQR 134valorBúsqueda del 1er elemento de una tabla igual a un FIND_EQRP 135valor a partir de un rangoBúsqueda del 1er elemento de una tabla superior a FIND_GTR 134un valorBúsqueda del 1er elemento de una tabla inferior a FIND_LTR 134un valorBúsqueda del mayor valor en una tabla MAX_ARR 161Búsqueda del menor valor en una tabla MIN_ARR 162Número de ocurrencias de un valor en una tabla OCCUR_ARR 132Desplazamiento circular a la izquierda de una tabla ROL_ARR 167Desplazamiento circular a la derecha de una tabla ROR_ARR 173Ordenación de una tabla (ascendente o descendente) SORT_ARR 271comparación de 2 tablas de real EQUAL_ARR 173Ordenación de una tabla (ascendente o descendente) LENGTH_ARR 20

código común 124

Page 422: Manual PL7

8/48___________________________________________________________________________

BHoras, fechas y duraciones OF Tam. código

(en palabras)Agregar una duración a una fecha completa ADD_DT 519Agregar una duración a una hora del día ADD_TOD 188Conversión de una fecha en cadena DATE_TO_STRING 150Día de la semana DAY_OF_WEEK 99Desviación entre dos fechas DELTA_D374Desviación entre dos fechas completas DELTA_DT 547Desviación entre dos horas del día DELTA_TOD 110Conversión de una fecha completa en cadena DT_TO_STRING 266Quitar una duración a una fecha completa SUB_DT 548Quitar una duración a una hora del día SUB_TOD 186Conversión de una duración en cadena TIME_TO_STRING 413Conversión de una hora del día en cadena TOD_TO_STRING 156Puesta en forma horas-mn-seg de una duración TRANS_TIME 211Función reloj-calendario SCHEDULE 700

código común 1703

Instrucciones para cadenas de caracteres OF Tam. cód.(en palabras)

Concatenación de dos cadenas CONCAT224Supresión de una subcadena DELETE 279Búsqueda del primer carácter diferente EQUAL_STR 212Búsqueda de una subcadena FIND 225Inserción de una subcadena INSERT 287Extracción de la parte izquierda de una cadena LEFT 38Longitud de una cadena LEN 70Extracción de una subcadena MID 44Reemplazo de una subcadena REPLACE 365Extracción de la parte derecha de una cadena RIGHT 55

código común 418

Funciones Orphée OF Tam. cód.(en pals.)

Despl. a la izquierda 32 con recup. de bits desplazados DSHL_RBIT 152Despl. a la derecha 32 con extensión signo, recup. bits DSHR_RBIT 152desplazadosDespl. a la derecha 32 con relleno de 0, recup. DSHRZ_C 133bits desplazadosDespl. a la izquierda 16 con recup. de bits desplazados WSHL_RBIT 91Despl. a la derecha 16 con extensión signo, recup. bits WSHR_RBIT 103desplazadosDespl. a la derecha 16 con relleno de ceros, recup. WSHRZ_C 90bits desplazados

código común 173Contaje/descontaje con indicación de rebasamiento SCOUNT 617Rotación hacia la izquierda de una palabra ROLW 41Rotación hacia la derecha de una palabra RORW 41Rotación hacia la izquierda de una doble palabra ROLD 49Rotación hacia la izquierda de una doble palabra RORD 49

Page 423: Manual PL7

Prestaciones 8

___________________________________________________________________________8/49

B

B

Funciones de temporización OF Tamaño de código

(en palabras)Salida intervalo FPULSOR 215Temporización de desconexión FTOF 272Temporización de conexión FTON 217Temporización de impulsión FTP 245

Funciones logarítmicas, exponenciales OF Tamaño dey trigonométricas código

(en palabras)Logaritmo neperiano LN 0Logaritmo decimal LOG 0Exponencial EXP 0Exponenciación de un real por un entero EXPT 523Parte entera TRUNC 128Coseno de un ángulo en radianes COS 0Seno de un ángulo en radianes SIN 0Tangente de un ángulo en radianes TAN 0Arco coseno (resultado entre 0 y pi) ACOS 0Arco seno (resultado entre -pi/2 y pi/2) ASIN 0Arco tangente (resultado entre -pi/2 y pi/2) ATAN 0Conversión grados en radianes DEG_TO_RAD 257Conversión radianes en grados RAD_TO_DEG 247

código común 392

Funciones específicas

Funciones de Regulación OF Tamaño de código

(en palabras)Regulador PID mixto PID 1800Modulación de amplitud de impulsos de tamaño PWM 600numéricoPlano de salida de PID para comando de válvula TON SERVO 1200Gestión del diálogo operador dedicado en CCX17 de PID PID_MMI 4400

código común 573

Page 424: Manual PL7

8/50___________________________________________________________________________

BFunciones Diálogo de operador OF Tam. cód.

(en palabras)Introducción con bloqueo de una variable en el CCX17 ASK_MSG, 46,5Introducción con bloqueo de una variable en mensaje ASK_VALUE, 46,5contenido en el CCX17Asignación dinámica de las teclas ASSIGN_KEYS, 46,5Control de los indicadoresCONTROL_LEDS, 46,5Visualización de una alarme contenida en el CCX17 DISPLAY_ALARM, 46,5Visualización de un grupo de mensajes contenidos DISPLAY_GRP, 46,5en el CCX17Visualización de un mensaje contenido en el CCX17 DISPLAY_MSG, 46,5Introducción múltiple de una variable en el CCX17 GET_MSG, 46,5Introducción múltiple de una variable en el mensaje GET_VALUE, 46,5contenido en el CCX17Envío de un comando al CCX17 PANEL_CMD, 46,5Visualización de un mensaje de alarma contenido SEND_ALARM, 46,5en la memoria del autómataVisualiz. de mens. contenido en memoria del autómata SEND_MSG 46,5

código común 573

Funciones de Comunicación OF Tam. cód.(en palabras)

Lectura de objetos lenguaje de base READ_VAR 617Escritura de objetos lenguaje de base WRITE_VAR 500Emisión/recepción de peticiones UNI-TE SEND_REQ 438Emisión y/o recepción de datos DATA_EXCH 375Emisión de una cadena de caracteres PRINT_CHAR 476Petición de lectura de una cadena de caracteres INPUT_CHAR 625Emisión y/o recepción de una cadena de caracteres OUT_IN_CHAR 531Emisión de una telegrama SEND_TLG 219Recepción de una telegrama RCV_TLG 172Petición de parada de función de comunicación en curso CANCEL 133

código común 506Desplaz. de un byte a la derecha en tabla de bytes ROR1_ARB 235

Servidor inmediato SERVER 32

código común 648Escritura de 1K de mensajería WRITE_ASYN 32

código común 936Lectura de 1K de mensajería READ_ASYN 32

código común 920

Funciones de comandos de movimiento OF Ram. cód.(en palabras)

Comando de movimiento automático 1 eje SMOVE 24

Comando de movimiento automático multejes XMOVE 32

Page 425: Manual PL7

Prestaciones 8

___________________________________________________________________________8/51

B

BArchivo de datos OF Tam. cód.

(en palabras)

Inicialización del área de archivo en SET_PCMCIA 24tarjeta PCMCIAEscritura de datos en tarjeta PCMCIA WRITE_PCMCIA 24Lectura de datos en tarjeta PCMCIA READ_PCMCIA 24

código común 288

Funciones Intercambios OF Tam. cód.explícitos (1) (en palabras)Lectura de parámetros de estado READ_STS 0Lectura de parámetros de ajuste READ_PARAM 0Actualización de parámetros de ajuste WRITE_PARAM 0Guardado de parámetros de ajuste SAVE_PARAM 0Restauración de parámetros de ajuste RESTORE_PARAM 0Actualización de parámetros de comando WRITE_CMD 0

(1) OF específico, el código está contado en el volumen del módulo E/S.

DFB de diagnósticoLa tabla siguiente indica para cada tipo de DFB de diagnóstico el tamaño del códigotomado en la aplicación (en el área de programa) y el tamaño ocupado por la instanciaen zona de datos y en zona programa.

En la primera programación de uno de los DFB de diagnóstico, se reservan 200palabras en el área de programa de la aplicación .

DFB de diagnóstico Tamaño Tamaño código Tamaño de datos (tamaño de palabras) Tipo de DFB por instancia por instancia

IO_DIA 800 64 72

ALRM_DIA 608 40 48

NEPO_DIA 15184 128 136

TEPO_DIA 10896 128 136

EV_DIA 1144 48 56

MV_DIA 2616 80 88

ASI_DIA 7912 304 312

Page 426: Manual PL7

8/52___________________________________________________________________________

B8.5 Anexo: método de cálculo del número de instrucciones

Este método permite calcular el número de instrucciones de base (nivelensamblador) booleanas o numéricas.

Nota : este método se utilizó para calcular las prestaciones proporcionadasen el capítulo 1.3 sección A.

Cálculo del número de instrucciones booleanasSe tienen en cuenta los elementos siguientes:• operaciones unitarias booleanas: carga (LD), AND, OR, XOR,ST,...• paréntesis de cierre (o las convergencias Ladder: enlaces verticales de

convergencia)• bloques de comparación (AND[...], OR[...]...) y Operate ([...])

No se consideran como instrucciones booleanas los operadores NOT, RE y FE.

Ejemplo:LD %M0AND( %M1OR %M2)ST %M3= 5 instrucciones booleanas

Cálculo del número de instrucciones booleanasSe tienen en cuenta los elementos siguientes:• asignaciones (:=)• carga del primer valor después de :=• instrucciones aritméticas (+, -, *, /, <, =,...), operaciones para palabras o tablas de

palabras, dobles palabras, flotantes• instrucciones lógicas para palabras• funciones (OF, EQUAL,...) sin distinción del número de parámetros• bloques de función (o instrucción de bloque de función)

Ejemplo: %MW0:=(%MW1+%MW2)*%MW3;instrucciones contadas:

:=%MW1 (corresponde a la instrucción de carga en el acumulador)+*

o sea 4 instrucciones.

Page 427: Manual PL7

Prestaciones 8

___________________________________________________________________________8/53

B

BEjemplo de programa que contiene 65% de booleanas y 35% de numéricas :

Page 428: Manual PL7

8/54___________________________________________________________________________

B

Page 429: Manual PL7

Prestaciones 8

___________________________________________________________________________8/55

B

B

Page 430: Manual PL7

8/56___________________________________________________________________________

B

(1):%MW0:=%MW1+%MW2+%MW3+%MW4+%MW5+%MW6+%MW7+%MW8+%MW9+%MW10+1

InformeNúmero deinstrucciones %

Booleana sin flanco 187 54,05% 64,16%Booleana con flanco 4 1,16%Bloque de operación 31 8,96%Bloque de función 3 0,87% 35,84%Aritmética simple (+,-,:=,AND,...) 111 32,08%Aritmética indexada 4 1,16%*,/ 6 1,73%Valores inmediatos 24Total 346 100,00%

Page 431: Manual PL7

Servidor OLE Automation 9

___________________________________________________________________________

9/1

B

Capítulo 99 Servidor OLE Automation

9.1 Presentación

9.1-1 Advertencia

La realización de una aplicación del servidor OLE hace necesario conocer uno de loslenguajes siguientes para la programación OLE Automation:

• Microsoft Visual Basic, versión 5.0 o superior,

• Microsoft Visual C++, versión 4.2 o superior,

• Microsoft VBA en Excel, versión 5.0 o superior.

Page 432: Manual PL7

9/2

___________________________________________________________________________

B9.1-2 Introducción

La funcionalidad PL7 del Servidor OLE Automation ofrece la posibilidad de controlarla ejecución de un PL7 de manera programada, no interactiva (sin intervención deloperador) para aplicaciones externas a PL7. Se utiliza la terminología de las aplicacionesclientes del PL7 Serveur OLE Automation.

PL7

ServidorCliente

Clientes deaplicación

OL

EA

uto

ma

tio

n

OL

EA

uto

ma

tio

n

Autómata

*.STX

Siguiendo al pie de la letra el estándar definido por Microsoft en su oferta OLE pararesponder a esta necesidad, PL7 dispone ahora de una interface estándar, pública,muy difundida, propia e independiente del lenguaje de programación de la aplicacióncliente.

Las principales características son:

• automatización de las tareas repetitivas,

• delegación a PL7 del tratamiento que sólo él sabe ejecutar,

• acceso a información sobre las aplicaciones contenidas en los archivos *.STX,

• y más generalmente, el desarrollo de función de nivel superior a PL7, de tipointegrador, encapsulando al mismo tiempo los detalles de ejecución específica aPL7.

Page 433: Manual PL7

Servidor OLE Automation 9

___________________________________________________________________________

9/3

B9.1-3 Contexto de ejecución

La funcionalidad PL7 Serveur OLE Automation está integrada a PL7 Pro. Se instalay ejecuta con las mismas condiciones de instalación y ejecución 0 que PL7.PL7 Serveur OLE Automation se apoya en el run-time OLE Automation Microsoftsuministrado con WIndows 95, 98 y NT.

9.1-4 Modos de funcionamiento

En el modo de funcionamiento de PL7 conocido hasta la fecha, que se designa como"interactivo", donde PL7 actúa únicamente frente a las entradas del operador, seagrega el modo de funcionamiento del servidor OLE automation en el cual PL7reacciona además a los comandos emitidos por una aplicación cliente OLE.

La selección del modo de funcionamiento está en función del procedimiento de iniciode PL7. El modo interactivo se inicializa al iniciarse PL7 vía Windows (menú Inicio/Programas/ Modicon telemecanique/PL7 Pro.).El modo servidor se elige si se invoca al PL7 Serveur OLE Automation en laprogramación de una aplicación cliente OLE. Una instancia no puede cambiar demodo en curso.

Cada vez que una aplicación cliente invoca al PL7 Serveur OLE Automation, unainstancia específica de PL7 se inicial, independientemente de otras instancias yainiciadas. Un número cualquiera de instancias de PL7 en modo servidor o en modointeractivo puede cohabitar en ejecución en la misma estación. Existe una perfectaindependencia en las instancias entre ellas que pueden cada una ejecutarse en supropio contexto.

Para todas estas instancias, las mismas reglas de exclusión de acceso llevan a unaaplicación STX o a un autómata, se aplican a saber: una aplicación STX o un autómatasólo puede ser manipulado por una instancia a la vez.

Esta regla ha sido modificada para PL7 Serveur OLE Automation de modo que puedaabrir una aplicación STX ya abierta pero cuyo registro estará prohibido. Asimismo,puede efectuar a petición explícita, una transferencia autómata —> PC desde unautómata reservado en otra parte.Una aplicación cliente puede dividir en instancias varios "PL7 Serveur OLE Automa-tion" concurrentes.

Page 434: Manual PL7

9/4

___________________________________________________________________________

B9.2 Instalación

9.2-1 Instalación

La instalación del producto PL7 Serveur OLE Automation es transparente para elusuario, está garantiza implícitamente durante la instalación de PL7.La instalación comprende:

1. Cuatro ejemplos de cliente OLE Automation, completos con su código fuente y unarchivo README se suministran con el software.

Estos ejemplos corresponden a:

• un cliente visual C++ 4.2 “mínimo”: el mínimo que a conocer para escribir a un clienteOLE,

• un cliente visual C++ 4.2 “completo” que explota todos los puntos de entradadisponibles,

• un cliente visual Basic 5.0 que explota todos los puntos de entrada disponibles.

• un cliente Excel.

2. Un archivo *.h que define los valores de los códigos de error emitidos por el servidor

3. Un archivo TLB de interface para un cliente Visual C++.

9.2-2 Inicio del servidor en modo local (modo COM)

El modo COM (Component object Model) define una interface de comunicación entrelas aplicaciones. Permite ser independiente respecto a las herramientas de desarrollo.Para comunicar con la aplicación servidor, la aplicación cliente declara un objeto “A”.Basta luego ejecutar la función Createdispatch en el objeto “A” de la aplicación clientepara dividir por instancias la aplicación servidor.

La localización del servidor se realiza de manera transparente para la aplicacióncliente en el Createdispatch gracias a la interrogación de la base de registros.

El vínculo entre la aplicación cliente y la aplicación servidor se crea si este último estáreferenciado en la base de registros. Para un buen funcionamiento de la aplicaciónPL7Pro en modo servidor, hay que, durante la instalación del producto, registrarlo enla base de registros como servidor OLE.

La aplicación cliente puede ahora interrogar la aplicación servidor a través de lainterface accesible del objeto “A” .Ejemplo:A.OpenStx(“C:\appli.stx”)

Page 435: Manual PL7

Servidor OLE Automation 9

___________________________________________________________________________

9/5

B9.2-3 Inicio del servidor en modo remoto (DCOM)

El Pl7 servidor se ejecuta en función de la información presente en la base de registros.Puede estar localizado en la máquina cliente o en una máquina remota.

El modo DCOM es en realidad una extensión del modo COM (Component ObjectModel). El modo COM permite dialogar entre una aplicación cliente y una aplicaciónservidor en una misma máquina.El modo DCOM permite dialogar entre dos máquinas remotas. Reemplaza losprotocolos de comunicación interproceso mediante protocolos de red.

ClienteCOM

run-timeCOM

run-time Componente

Securityprovider

DCE RPC

Protocolo stack

Securityprovider

DCE RPC

Protocolo stack

ProtocoloDCOM network-

Para establecer la comunicación entre dos máquinas, utilizamos una utilidad deconfiguración denominada “DCOMCNFG.EXE”.De forma predeterminada la utilidad “DCOMCNFG.EXE” no está presente en Windows95. El usuario debe conectarse a internet a la siguiente dirección “http://www.microsoft.com/com/dcom95/relnotes-f.htm” y telecargar esta utilidad para que elservidor funcionen en DCOM en Windows 95.

Page 436: Manual PL7

9/6

___________________________________________________________________________

B9.2-4 Instalación del servidor en modo remoto

Ejemplo de utilización:

Sea una máquina A (Windows NT 4) instalada con PL7Pro servidor.

El usuario de las máquinas debe conectarse a una cuenta “administrador” para poderadministrar los derechos de acceso.

El cliente es la máquina B (Windows 95).

Procedimiento:

En la máquina B iniciar DCOMCNFG.EXE:

• Seleccionar la ficha «Default Properties» con el fin de visualizar la informaciónsiguiente:

[X] «Enable Distributed COM on this computer

Default Authentication Level: CONNECT Default Impersonation Level: Identify

• En la ficha «Default Security», marcar la opción:

[X] Enable remote connection

• En la ficha «Aplication»:Seleccionar el servidor PL7Pro “PL7 server”, y luego “properties”,En la nueva pantalla, definir la ubicación de la red.

En la máquina A iniciar DCOMCNFG:

• Seleccionar la ficha «Default Properties» para visualizar la información siguiente:

[X] «Enable Distributed COM on this computer

Default Authentication Level: CONNECTDefault Impersonation Level: Identify

La máquina B "Cliente" puede controlar "PL7Pro serveur " ubicado en la máquina A.

Seleccionar la ficha «Default security», agregar los usuarios que tendrán derecho deescritura en la máquina.

Nota:Para obtener más informaciónExiste un newsgroup, donde es posible formular preguntas referentes a DCOM:“http://www.microsoft.com/support/news/win32.htm”

Page 437: Manual PL7

Servidor OLE Automation 9

___________________________________________________________________________

9/7

B9.3 Modos de ejecución del PL7 servidor

El PL7 Serveur OLE Automation posee dos modos de ejecución que se pueden elegirdinámicamente en curso de la ejecución (véase SetIHMServer ):

• Modo de ejecución sin IHM. El PL7 se inicia “en tarea de fondo”, sin ningunavisualización ni posibilidad de entrada del operador. Este el modo típico autilizar por ejemplo para automatizar las tareas repetitivas o acceder ainformación sobre una aplicación contenida en un archivo stx.

• Modo de ejecución con IHM. El PL7 se inicia como PL7 “interactivo”con visualizacióny posibilidad de entrada del operador pero permanece receptivo a los comandosemitidos por su aplicación cliente. Este modo ha sido desarrollado para visualizarelementos de programa o de configuración de una aplicación contenida en unarchivo stx desde herramientas externas como DIAG Viewer.

Notas:Los servicios referentes a la visualización de programas, herramientas, módulos sólo se ejecutanen el modo con IHM.

El PL7 Serveur OLE Automation en su modo con IHM está sometido a los controles de derechosde usuario. Se posiciona en perfil de derecho de usuario “Read Only”, que corresponde a sufunción de visualizador de código y módulos E/S PL7.

El PL7 Serveur OLE Automation en modo sin IHM no está sometido a los controles de derechosde usuario pero los servicios que ofrece no permiten modificar la aplicación.

Page 438: Manual PL7

9/8

___________________________________________________________________________

B9.4 Puntos de entrada: función OLE

Los puntos de entrada se organizan en cuatro tipos:• Contexto de ejecución

Nombre Descripción

OpenStx Abre una aplicación

SaveStx Guarda la aplicación activa

CloseStx Cierra la aplicación activa

SetDriverAndAddress Modifica la dirección y el driver del autómata accedido

SetServerIHM Hace el PL7 Serveur OLE Automation interactivo o no

GetPL7State Da el estado: aplicación abierta o cerrada, modo local - conectado,estado API

GetMessageError Lee el mensaje de error asociado al código de error

• Control API:

Nombre Descripción

ConnectPLC Entra al modo conectado

DisconnectPLC Sale del modo conectado

SendCommandToPLC Inicia un comando en el autómata (RUN, STOP INIT)

DownloadToPLC Carga la aplicación activa en un autómata

UploadFromPLC Copia una aplicación autómata en la aplicación activa

• Lectura de información:

Nombre Descripción

ExportScyFile Exporta símbolos en la aplicación activa en forma de archivo scy

ExportFefFile Exporta la aplicación activa en forma de archivo de tipo fef

GetSymbol Lee el símbolo y el comentario asociado a una variable

GetSTXAppIdentity Lee la información general de una aplicación contenida en unarchivo STX

GetPLCAppIdentity Lee la información general de una aplicación contenida en unautómata

GetServerVersion Lee la versión del servidor

Page 439: Manual PL7

Servidor OLE Automation 9

___________________________________________________________________________

9/9

BVisualización de elemento de aplicación

Nombre Descripción

SetPosPL7Window Modifica las características de visualización del PL7(posición y forma)

ShowProgram Abre un editor en un módulo programa dado

CloseProgram Cierra un editor programa

ShowIOMódulo Abre un editor en módulo de E/S dado

CloseIOMódulo Cierra un editor de módulo de E/S

ShowDFB Abre un editor en el código de un DFB dado

CloseDFB Cierra un editor en el código de un DFB

OpenTool Abre una herramienta MDI cualquiera sin contexto

Nota:Los puntos de entrada referentes a la visualización del elemento de la aplicación no funcionansi el servidor está en modo sin IHM.

Page 440: Manual PL7

9/10

___________________________________________________________________________

B9.5 Descripción de las funciones OLE

9.5-1 OpenStx

Esta función permite abrir un archivo de tipo aplicación stx.Sintaxis: integer OpenStx(String lpAppPathName).

• Entrada:Introducir la cadena de caracteres que contiene el nombre del archivo que el usuariodesea abrir.

• Función llamada:OpenStation: Función de la gestión de estación (gesta.dll).

• Contexto nominalEl PL7 Servidor está activo.

• Caso de error:SRV_ERR_GEN_FILENOTFOUND: El archivo no se encuentra.SRV_ERR_OPEN_BADZIP: Problema de descompresión de

archivo.SRV_ERR_OPEN_BADFILE: Problema de lectura del archivo stxSRV_ERR_OPEN_NOK_COMPATIBLE: El procesador es incompatible con

PL7 abierto.SRV_ERR_OPEN_OPEN: Una aplicación ya está abierta.

SRV_ERR_GEN_PARAM_EMPTY: El Path Name está vació.

SRV_ERR_GEN_ACTION: Error al abrir la aplicación.

SRV_ERR_GEN_DRIVE FULL: No hay más espacio libre en el discopara la abertura de la aplicación.

• Salida:Código de retorno de tipo short. Sea 0 en el caso de una apertura con éxito, o uncódigo de error.

9.5-2 CloseStx

Esta función permite cerrar la aplicación actual.Sintaxis: integer CloseStx( integer p_bWithoutSave).

• Entrada :Si la aplicación ha sido modificada, es posible cerrarla sin advertir al usuario(p_bWithoutSave a TRUE)

• Función llamada:CloseStation: Función de la gestión de estación (gesta.dll).

• Contexto nominal:El PL7 Servidor está activo, una aplicación está abierta.

Page 441: Manual PL7

Servidor OLE Automation 9

___________________________________________________________________________

9/11

B• Caso de error:

SRV_ERR_GEN_NOTOPEN: No hay aplicación abierta.SRV_ERR_CLOSE_NOTSAVE: La aplicación ha sido modificada, hay que

registrarla antes de salir.

• Salida:Código de retorno de tipo short. Sea 0 en caso de cierre con éxito, sea un códigode error.

9.5-3 ExportScyFile

Esta función permite exportar los símbolos contenidos en la aplicación activa en formade archivo de tipo scy.Sintaxis: integer ExportScyFile(String p_psScyFile)

• Entrada:Introducir la cadena de caracteres que contiene el nombre del archivo scy.

• Función llamada:ExportScyFile: Función de la gestión de estación (gesta.dll).

• Contexto nominal:El PL7 Servidor está activo.Una aplicación está abierta.

• Caso de error:SRV_ERR_GEN_ACTION: Error de la creación del archivo fuente

símbolo.SRV_ERR_GEN_NOTOPEN: No hay aplicación abierta.SRV_ERR_GEN_PARAM_EMPTY: p_ psScyFile está vacío.

SRV_EXPORT_ERRFILE Error de escritura del archivo fuente.

• Salida:Código de retorno de tipo short. Sea 0 en caso de una exportación con éxito, seaun código de error.

Page 442: Manual PL7

9/12

___________________________________________________________________________

B9.5-4 ExportFefile

Esta función permite exportar la aplicación activa en forma de archivo de tipo fef.Sintaxis: integer ExportFefFile(String p_psNamefile)

• Entrad a:Introducir la cadena de caracteres que contiene el nombre del archivo fef .

• Función llamada:ExportFefFile: Función de la gestión de estación (gesta.dll).

• Contexto nominal:El Servidor PL7 está activo.Una aplicación está abierta.

• Caso de error:SRV_ERR_GEN_ACTION: Error para la creación del archivo fuente

de la aplicación.SRV_ERR_GEN_NOTOPEN: No hay aplicación abierta.SRV_ERR_GEN_PARAM_EMPTY: p_psNamefile está vacía.

SRV_EXPORT_ERRFILE Error de escritura del archivo fuente.

• Salida:Código de retorno de tipo short. Sea 0 en caso de una exportación con éxito, seaun código de error.

9.5-5 DisconnectPLC

Esta función permite realizar la desconexión entre el autómata y PL7.Sintaxis: integer DisconnectPLC ()

• Función llamada:DisconnectStation: Función de la gestión de estación (gesta.dll).

• Contexto nominal:El Servidor PL7 está activo.

• Salida:Código de retorno de tipo short. Sea 0 en caso de desconexión con éxito, sea uncódigo de error (SRV_ERR_GEN_ACTION).

Page 443: Manual PL7

Servidor OLE Automation 9

___________________________________________________________________________

9/13

B9.5-6 ConnectPLC

Esta función permite conectarse a un autómata.Sintaxis: integer ConnectPLC (String p_lpDriver, String p_lpAddress)

• Entrada :Introducir dos cadenas de caracteres que contengan el driver y la dirección delautómata.

• Función llamada:ConnectStation: Función de la gestión de estación (gesta.dll).

• Contexto nominalEl Servidor PL7 está activo.En el caso en que los parámetros de las cadenas estén vacíos, el servidor ejecutala función con el driver y/o la dirección actual.

• Caso de error:SRV_ERR_GEN_CONNECT: La conexión no ha podido efectuarse.

SRV_ERR_GEN_COMMUNICATION: Problema de comunicación entre elPL7pro y el autómata.

SRV_ERR_GEN_RESERVED: El autómata está reservado y esentonces imposible conectarse a él.

SRV_ERR_PLC_BLANK: El autómata no contiene la aplicación,es imposible entonces conectarse a él.

SRV_ERR_PC_BLANK: No hay aplicación abierta, es entoncesimposible conectarse.

SRV_ERR_DIFFERENCE_PLC_STX: La aplicación abierta y la aplicacióncontenida en el autómata sondiferentes, es entonces imposibleconectarse.

SRV_ERR_GEN_ADDRESS: El parámetro dirección es incorrecto.

SRV_ERR_GEN_ACTION: Error en la ejecución de la función.

SRV_ERR_GEN_DRIVER: El parámetro driver es incorrecto.

SRV_ERR_GEN_NOTOPEN: No hay aplicación abierta.

SRV_ERR_GEN_PROTECTEDAPPLI: Aplicación protegida.

SRV_COMPATIBLE_PLC: Problema de compatibilidad con elautómata.

• SalidaCódigo de retorno de tipo short. Sea 0 en caso de conexión con éxito, sea un códigode error.

Page 444: Manual PL7

9/14

___________________________________________________________________________

B9.5-7 SaveStx

Esta función permite de salvaguardar la aplicación abierta.Sintaxis: integer SaveStx(String p_lpStxFile)

• Entrada:Introducir una cadena de caracteres que contiene el path y el nombre del archivode guardado.

• Función llamada:SaveStx: Función de la gestión de estación (gesta.dll).

• Contexto nominal:El Servidor PL7 está activo.Una aplicación está abierta, PL7 está en local.

• Caso de error:

SRV_ERR_SAVEDENIED: Acceso al archivo rechazadoSRV_ERR_SAVEERRZIP: Error durante el compactado de la

aplicaciónSRV_ERR_SAVEERRREN: Cambio de nombre rechazado

SRV_ERR_GEN_NOTOPEN: No hay aplicación abierta.

SRV_ERR_GEN_PARAM_EMPTY: p_ lpStxFile está vacío.

SRV_ERR_GEN_ACTION: Error al guardar la aplicación.

SRV_ERR_PLC_CONNECT: El guardado sólo se puede efectuar enmodo local.

• Salida:Código de retorno de tipo short. Sea 0 en caso de guardado con éxito, sea un códigode error.

9.5-8 DownloadToPLC

Esta función permite telecargar una aplicación en memoria del autómata.Sintaxis: integer DownloadToPLC(String p_lpDriver, String p_lpAdresse)

• Entrada:Introducir dos cadenas de caracteres que contienen el driver y la dirección delautómata.

• Función llamada:DownloadStation: Función de la gestión de estación (gesta.dll).

• Contexto nominal:El Servidor PL7 está activo.Una aplicación está abierta, PL7 está en local.En el caso en que todos los parámetros son cadenas vacías, el servidor ejecuta lafunción con el driver y/o la dirección actual.

Page 445: Manual PL7

Servidor OLE Automation 9

___________________________________________________________________________

9/15

B• Caso de error:

SRV_ERR_DOWNLOAD_CART: Problema de compatibilidad de la tarjetade memoria entre la aplicación abierta y elautómata,

SRV_ERR_COMPATIBLE_PLC: Problema de compatibilidadentre laaplicación abierta y el autómata,

SRV_ERR_GEN_ADDRESS: El parámetro p_lpAdresse es incorrecto.

SRV_ERR_GEN_DRIVER: El parámetro p_lpDriver es incorrecto.

SRV_ERR_GEN_NOTOPEN: No hay aplicación abierta.

SRV_ERR_GEN_RESERVED: El autómata está reservado.

SRV_ERR_GEN_COMMUNICATION: Problema de comunicación.

SRV_ERR_PLC_CONNECT: El autómata ya está conectado.

SRV_ERR_PLC_ACTION: Error durante el download.

• SalidaCódigo de retorno de tipo short. Sea 0 en caso de una carga con éxito, sea un códigode error.

9.5-9 UploadFromPLC

Esta función permite copiar en memoria una aplicación contenida en un autómata.Sintaxis: integer UploadFromPLC(String p_lpDriver, String p_lpAdresse, integerp_iReservedModo)

• Entrada:Introducir dos cadenas de caracteres que contienen el driver y la dirección delautómata.Un integer (p_iReservedModo) que permite hacer un Upload en un autómatareservado.

• Función llamada:

UploadStation: Función de la gestión de estación (gesta.dll).

• Contexto nominal:El Servidor PL7 está activo.No hay aplicación abierta, y el PL7 está en modo local.Si los parámetros son cadenas vacías, el servidor ejecuta la función con el drivery/o la dirección actual.

• Caso de error:

SRV_ERR_UPLOAD_TRANSFER: Problema durante la transferencia de laaplicación contenida en el autómata

Page 446: Manual PL7

9/16

___________________________________________________________________________

BSRV_ERR_UPLOAD_ABORT: Suspensión de la transferencia.SRV_ERR_UPLOAD_RESERVED: Aplicación reservada.

SRV_ERR_UPLOAD_NOAPPLI: Autómata virgen.

SRV_ERR_GEN_ADDRESS: Dirección incorrecta.

SRV_ERR_GEN_ACTION: Error de ejecución de la función.

SRV_ERR_PLC_CONNECT: Error de conexión.

SRV_ERR_GEN_DRIVER: Driver incorrecto.

SRV_ERR_GEN_COMMUNICATION: Error de comunicación.

SRV_ERR_PLC_CONNECT: El autómata está en modo conectado.

SRV_OPEN_NOT_COMPATIBLE: Problema de compatibilidad.

• Salida:Código de retorno de tipo short. Sea 0 en caso una carga con éxito, sea un códigode error.

9.5-10 GetSymbol

Esta función permite dar el símbolo y el comentario asociado a una variable.Sintaxis: integer GetSymbol(String p_lpRepere, String* p_bsSymbole, String*p_bsComment)

• Entrada:Introducir la cadena de caracteres que contiene la variable a modificar o a completar.

• Función llamada:

GetSymbol: Función de la gestión de estación (gesta.dll).

• Contexto nominal:

El Servidor PL7 está activo.Una aplicación está abierta en modo local.

• Caso de error:

SRV_ERR_ADDRESSSYNTAX: la cadena de caracteres pasada comoparámetro no corresponde a una variable.

SRV_ERR_GEN_NOTOPEN: No hay aplicación abierta.SRV_ERR_GEN_PARAM_EMPTY: p_lpRepere está vacía.

SRV_ERR_GEN_ACTION: Error al ejecutar la función.

Page 447: Manual PL7

Servidor OLE Automation 9

___________________________________________________________________________

9/17

B• Salida:

Código de retorno de tipo short. Sea 0 en caso de una carga con éxito, sea un códigode error.- Dos cadenas de caracteres: El símbolo asociado (p_bsSímbolo). El comentario asociado (p_bsComment).

9.5-11 SetServerIHM

Esta función permite visualizar o no el Servidor PL7. Se realiza el paso de un modode funcionamiento a otro. Es decir, de un PL7Pro servidor sin IHM a un PL7 Pro servidorcon IHM y viceversa.Sintaxis: integer SetServerIHM (integer p_bIHM)

• Entrada:Un booleano (visualización o no visualización IHM).

• Función llamada:SetIHMServer: Función de la Windows aplicación (sawinapp.cpp).

• Contexto nominal:El Servidor PL7 está activo.

• Caso de error:SRV_ERR_GEN_ACTION: Error al ejecutar la función.

SRV_ERR_GEN_MODIFAPPLI: Aplicación en curso de modificación.

• Salida:Código de retorno de tipo short. Sea 0 en caso de una carga con éxito, sea un códigode error.

Page 448: Manual PL7

9/18

___________________________________________________________________________

B9.5-12 GetPL7State

Esta función permite dar el estado del servidor.Sintaxis: integer GetPL7State(String* p_lpStation, String * p_lpConnection)

• Función llamada:GetEtatPL7: Función de la gestión de estación (gesta.dll).

• Contexto nominal:El Servidor PL7 está activo.

• Caso de error:SRV_ERR_GEN_ACTION: Error durante la ejecución de la función.

• Salida:Código de retorno de tipo short. Sea 0 en caso de una carga con éxito, sea un códigode error.Dos cadenas de caracteres informan al usuario sobre:- El estado de la estación (abierta o cerrada).- El estado del modo (local o conectado). En modo conectado, el estado del

autómata run o stop está indicado.

9.5-13 GetSTXAppIdentity

Esta función permite conocer la información general de una aplicación.Sintaxis: integer GetSTXAppIdentity(String p_lpNameStx, VARIANT FAR* p_pVarInfo)

• Entrada:

Introducir la cadena de caracteres (p_lpNameStx) que contiene el nombre de laaplicación.

• Función llamada:

FicheIdentAppli: Función de la gestión de estación (gesta.dll).

• Contexto nominal:

El Servidor PL7 está activo.

• Caso de error:SRV_ERR_GEN_PARAM_EMPTY: p_ lpNameStx est vide.

SRV_ERR_GEN_ACTION: Error durante la ejecución de la función.

SRV_ERR_APPLIINFO_NOK: Información incorrecta.

Page 449: Manual PL7

Servidor OLE Automation 9

___________________________________________________________________________

9/19

B• Salida:

Código de retorno de tipo short. Sea 0 en caso de una carga con éxito, sea un códigode error.Informaciones visualizadas:

0. El nombre de la estación,1. Número de versión de la aplicación,2. Fecha y hora de la modificación,3. La firma de la estación,4. La firma referente a la configuración de las entradas/salidas locales,5. La firma referente a la configuración de las entradas/salidas remotas,6. La firma referente al código PL7,7. La firma referente al grafcet,8. La firma referente a las constantes,9. La firma referente a los símbolos,10. La firma referente a la reservación,11. El comentario asociado a la aplicación.

9.5-14 GetPLCAppIdentity

Esta función permite conocer la información general de una aplicación contenida enun autómata.Sintaxis: integer GetPLCAppIdentity(String p_lpDriver, String p_lpAdresse, VARIANTFAR* p_pvInfoAppli)

• Entrada:Introducir las dos cadenas de caracteres que contienen el driver y la dirección delautómata.

• Función llamada:FicheIdentAppliOnAutómata: Función de la gestión de estación (gesta.dll).

• Contexto nominal:

El Servidor PL7 está activo y en modo local.

• Caso de error:

SRV_ERR_APPLIINFO_NOK: Información incorrecta.

SRV_ERR_GEN_ACTION: Error durante la ejecución de la función.

SRV_ERR_GEN_ADDRESS: Dirección incorrecta.

SRV_ERR_COMPATIBLE_PLC: Problema de compatibilidad entre API y elsoftware PL7.

SRV_ERR_PLC_BLANK: El autómata no contiene aplicación.

SRV_ERR_GEN_ACTION: Problema durante el almacenamiento dela información de aplicación.

SRV_ERR_GEN_DRIVER: El parámetro p_lpDriver es incorrecto.

SRV_ERR_GEN_COMMUNICATION: Error de comunicación.

Page 450: Manual PL7

9/20

___________________________________________________________________________

B• Salida:

Código de retorno de tipo short. Sea 0 en caso de una carga con éxito, sea un códigode error.Informaciones visualizadas:

0. El nombre de la estación,1. Número de versión de la aplicación,2. Fecha y hora de la modificación,3 La firma de la estación,4 La firma referente a la configuración de las entradas/salidas locales,5 La firma referente a la configuración de las entradas/salidas remotas,6 La firma referente al código PL7,7 La firma referente al grafcet,8 La firma referente a las constantes,9 La firma referente a los símbolos,10 La firma referente a la reservación,11 El comentario asociado a la aplicación.

9.5-15 SendCommandToPLC

Esta función permite iniciar un comando en e autómata.Sintaxis: integer SendCommandToPLC(integer p_iCommand)

• Entrada:El tipo del comando que el usuario desea ejecutar.3 tipos posibles:SRV_COMMAND_INIT: Comando de inicialización del autómataSRV_COMMAND_STOP: Comando StopSRV_COMMAND_RUN: Comando Run

• Función llamada:StationCommand: Función de la gestión de estación (gesta.dll).

• Contexto nominalEl Servidor PL7 está activo. Una aplicación está abierta, PL7 está en modoconectado, en STOP.

• Caso de error:

SRV_ERR_GEN_ACTION: Comando incorrecto.

SRV_ERR_GEN_NOTOPEN: No hay aplicación abierta.

SRV_ERR_COMMAND_NOTINLOCAL: El servidor está en modo local.

SRV_COMMAND_ERRINIT: La función INIT es imposible, el autómataestá en RUN.

• Salida:

Código de retorno de tipo short. Sea 0 en caso de una carga con éxito, sea un códigode error.

Page 451: Manual PL7

Servidor OLE Automation 9

___________________________________________________________________________

9/21

B9.5-16 SetDriverAndAdresse

Esta función permite cambiar el driver y la dirección para la estación actual.Sintaxis: integer SetDriverAndAdresse(String p_lpDriver, String p_lpAdresse)

• Entrada:

Introducir las dos cadenas de caracteres que contienen el driver y la dirección delautómata.

• Función llamada:

DriverAndAdresse: Función de la gestión de estación (gesta.dll).

• Contexto nominal:

El Servidor PL7 está activo.Una aplicación está abierta y en modo local.Si los parámetros no se completan o están incorrectos, los valores actuales seintercambian.

• Caso de error:

SRV_ERR_GEN_ADDRESS: la dirección transferida como parámetro esincorrecta.

SRV_ERR_GEN_DRIVER: el driver transferida como parámetro esincorrecto.

SRV_ERR_PLC_CONNECT: El servidor está en modo conectado.

SRV_ERR_PLC_ACTION: Error durante la ejecución de la función.

SRV_ERR_PARAM_EMPTY: Los parámetros están vacíos.

• Salida:

Código de retorno de tipo short. Sea 0 en caso de una carga con éxito, sea un códigode error.

9.5-17 OpenTool

Esta función permite abrir las herramientas presentes en la cadena de caracterestransferida como parámetro.Sintaxis: integer OpenTool(String p_lpListTool))

• Entrada:Cadenas de caracteres que contienen la lista de herramientas que el servidor debeabrir.ejemplo de formato: tools1;tools2;tools3

• Función llamada:OpenTool: Función de la gestión de estación (gesta.dll).

Page 452: Manual PL7

9/22

___________________________________________________________________________

B• Contexto nominal:

El Servidor PL7 con IHM está activo.Una aplicación está abierta.

• Caso de error:

SRV_ERR_GEN_ACTION: Imposible abrir la herramienta.SRV_ERR_GEN_PARAM_EMPTY: Parámetro vacío.SRV_ERR_GEN_NOTOPEN: No hay aplicación abierta.SRV_ERR_GEN_WITHIHM: Función disponible con el Servidor PL7 en

modo IHM.SRV_ERR_GEN_OPENEDTVDATA: La herramienta "Tabla de animación" no

puede ser abierta.• Salida:

Código de retorno de tipo short. Sea 0 en caso de una carga con éxito, sea un códigode error.

9.5-18 SetPosPL7Windows

Esta función permite dimensionar la ventana PL7.Sintaxis: integer PosPL7Windows(integer CoordX, integer CoordY, integer CoordCX,integer CoordCY)

• Entrada:

Las coordenadas x, y de la ventana.

• Función llamada:

MoveWindow: Función mfc.

• Contexto nominal:

El Servidor PL7 con IHM está activo.

• Caso de error:

SRV_ERR_GEN_ACTION: Fracaso del comando.SRV_ERR_GEN_PARAM_EMPTY: Parámetro vacío.

SRV_ERR_GEN_WITHIHM: Función disponible con el Servidor PL7en modo IHM.

• Salida:Código de retorno de tipo short.

Page 453: Manual PL7

Servidor OLE Automation 9

___________________________________________________________________________

9/23

B9.5-19 ShowProgram

Esta función permite abrir los programas presentes en la cadena de parámetrostransferida como parámetro.Sintaxis: integer ShowProgram(String p_lpListProgram)

• Entrada:Introducir las cadenas de caracteres que contienen la lista de programas que elservidor debe abrir.ejemplo de formato: mast\lad1;mast\lit2;evt\evt0;sr1;mast\prl

• Función llamada:ShowProgram: Función de la gestión de estación (gesta.dll).

• Contexto nominal:El Servidor PL7 con IHM está activo.Una aplicación está abierta.

• Caso de error:

SRV_ERR_GEN_ACTION: Fracaso del comando.

SRV_ERR_GEN_NOTOPEN: No hay aplicación abierta.

SRV_ERR_GEN_PARAM_EMPTY: Parámetro vacío.

SRV_ERR_GEN_WITHIHM: Función disponible con el Servidor PL7en modo IHM.

SRV_ERR_GEN_SHOWPROGRAM: Imposible abrir el módulo.

• Salida:Código de retorno de tipo short. Sea 0 en caso de una carga con éxito, sea un códigode error.

• Restricciones:Esta función no es capaz de abrir un DFB sin instancias. Para visualizar el códigode un DFB sin instancias hay que utilizar la función ShowDFB.

9.5-20 CloseProgram

Esta función permite cerrar los programas presentes en la cadena de caracterestransferida como parámetro.Sintaxis: integer CloseProgram(String p_lpListProgram)

• Entrada:Cadenas de caracteres que contienen la lista de programas que el servidor debecerrar.Ejemplo de formato: mast\lad1;mast\lit2;evt\evt0;sr1;mast\prl.

Page 454: Manual PL7

9/24

___________________________________________________________________________

B• Función llamada:

CloseProgram: Función de la gestión de estación (gesta.dll).

• Contexto nominal:El Servidor PL7 con IHM está activo.Una aplicación está abierta.

• Caso de error:SRV_ERR_GEN_NOTOPEN: No haya aplicación abierta.

SRV_ERR_GEN_ACTION: Fracaso de cierre.

SRV_ERR_GEN_PARAM_EMPTY: Parámetro vacío.

SRV_ERR_GEN_WITHIHM: Función disponible con el Servidor PL7 enmodo IHM.

SRV_ERR_GEN_CLOSEPROGRAMM: Imposible cerrar el módulo.

• Salida:Código de retorno de tipo short. Sea 0 en caso de una carga con éxito, sea un códigode error.

• Limitaciones:Esta función no es capaz de cerrar un DFB abierto.

9.5-21 ShowIOMódulo

Esta función permite abrir los módulos de entrada/salida presentes en la cadena decaracteres transferida como parámetro.

• Entrada:Cadenas de caracteres que contienen la lista de módulos que el servidor debe abrir.El formato de la cadena de caracteres es rack,módulo;rack,móduloejemplo de formato: 0,0;0,1;1,2

• Función llamada:ShowIOMódulo: Función de la gestión de estación (gesta.dll).

• Contexto nominal:El servidor PL7pro con IHM está activo.Una aplicación está abierta.

• Caso de error:SRV_ERR_GEN_NOTOPEN: No hay aplicación abierta.

SRV_ACTION_NOK: Problema de activación de los derechos deusuario.

SRV_ERR_GEN_PARAM_EMPTY: Parámetro vacío.

Page 455: Manual PL7

Servidor OLE Automation 9

___________________________________________________________________________

9/25

BSRV_ERR_GEN_WITHIHM: Función disponible con el Servidor PL7

en modo IHM.

• Salida:Código de retorno de tipo short. Sea 0 en caso de una carga con éxito, sea un códigode error.

• Restricciones:La abertura de un módulo IO se realiza en modo local, la pantalla de configuracióndel módulo está abierta. Si el usuario pasa al modo local en modo conectado, elservidor no cambia de la pantalla de configuración a la pantalla de depuración. Elusuario puede sea actuar directamente sobre el PL7 por o realizar un cierre/aperturadel módulo con ayuda del cliente.

9.5-22 CloseIOMódulo

Esta función permite cerrar los módulos de entrada/salida presentes en la cadena decaracteres transferida como parámetro.Sintaxis: integer CloseIOMódulo(String p_lpListIOMódulo).

• Entrada:Cadenas de caracteres que contienen la lista de los módulos que el servidor debeabrir.ejemplo de formato: 0,0;0,1;1,2

• Función llamada:CloseIOMódulo: Función de la gestión de estación (gesta.dll).

• Contexto nominal:El Servidor PL7 con IHM está activo.Una aplicación está abierta.

• Caso de error:SRV_ERR_GEN_ACTION: Fracaso del comando de cierre.SRV_ERR_GEN_PARAM_EMPTY: Parámetro vacío.SRV_ERR_GEN_NOTOPEN: Sin aplicación abierta.SRV_ERR_GEN_WITHIHM: Función disponible con el Servidor PL7 en

modo IHM.• Salida:

Código de retorno de tipo short. Sea 0 en caso de una carga con éxito, sea un códigode error.

• Restricción:Esta función no cierra el editor de configuración abierto con ayuda de la funciónShowIOMódulo.

Page 456: Manual PL7

9/26

___________________________________________________________________________

B9.5-23 ShowDFB

Esta función permite visualizar el código de uno o varios DFB presentes en la cadenade caracteres transferida como parámetro. La apertura de un DFB a través de estafunción no necesita de instanciación.Sintaxis: integer ShowDFB(String p_lpListeDFB).

• Entrada:Cadenas de caracteres que contienen la lista de los DFB que el servidor debe abrir.

• Función llamada:ShowDFB: Función de la gestión de estación (gesta.dll).

• Contexto nominal:El Servidor PL7 con IHM está activo.Una aplicación está abierta.

• Caso de error:SRV_ERR_GEN_PARAM_EMPTY: Parámetro vacío.SRV_ERR_GEN_NOTOPEN: No hay aplicación abierta.SRV_ERR_GEN_ACTION: Problema durante la apertura de un DFB.

SRV_ERR_GEN_WITHIHM: Función disponible con el Servidor PL7en modo IHM.

• Salida:Código de retorno de tipo short. Sea 0 en caso de una carga con éxito, sea un códigode error.

9.5-24 CloseDFB

Esta función permite cerrar uno o varios DFB presentes en la cadena de caracterestransferida como parámetro.Sintaxis: integer CloseDFB(String p_lpListeDFB)

• Entrada:Cadenas de caracteres que contiene la lista de DFB que el servidor debe cerrar.

• Función llamada:CloseDFB: Función de la gestión de estación (gesta.dll).

• Contexto nominal:El Servidor PL7 con IHM está activo.Una aplicación está abierta.

Page 457: Manual PL7

Servidor OLE Automation 9

___________________________________________________________________________

9/27

B• Caso de error:

SRV_ERR_GEN_PARAM_EMPTY: Parámetro vacío.

SRV_ERR_GEN_NOTOPEN: No hay aplicación abierta.

SRV_ERR_GEN_ACTION: Problema durante el cierre de un DFB.

SRV_ERR_GEN_WITHIHM: Función disponible con el Servidor PL7enmodo IHM.

• Salida:Código de retorno de tipo short. Sea 0 en caso de una carga con éxito, sea un códigode error.

9.5-25 GetMessageError

Esta función permite asociar un mensaje de error en función del código de errortransferido como parámetro.Sintaxis: String GetMessageError(integer p_iCodeError)

• Entrada:El código de error de uno de los servicios a devolver.

• Contexto nominal:El Servidor PL7 está activo.

• Salida:Una cadena de caracteres correspondiente a la leyenda del error.

9.5-26 GetServerVersion

Esta función permite conocer el número de versión del servidor PL7pro.String GetServerVersion()

• Contexto nominalEl Servidor PL7 está activo.

• SalidaUna cadena de caracteres que corresponden a la leyenda del número de versióndel servidor PL7pro.

Page 458: Manual PL7

9/28

___________________________________________________________________________

B9.6 Mecanismo de acceso al PL7 Serveur OLE Automation

El PL7 Serveur OLE Automation permite dos modos de acceso a los servicios quesuministra.

• Acceso en local.

La aplicación cliente y PL7 Serveur OLE Automation están en la misma estación.

• Acceso en remoto por intermedio de DCOM.

La aplicación cliente y el PL7 Servidor Automation están en dos estaciones distintas,vinculadas a la red TCP/IP:

Estacióncliente

Estaciónservidor

DCOM

Page 459: Manual PL7

Indice 10

___________________________________________________________________________10/1

B

INDICE10 Indice

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

AABS B1/23Acción A5/17ACOS B2/26Activación simultánea de etapas A5/10Actualización de la fecha sistema B2/79ADD_DT B2/82ADD_TOD B2/83AND B1/6, B1/25AND_ARX B2/95ANDF B1/6ANDN B1/6ANDR B1/6Area de acción A2/1Area de prueba A2/1Aritmética con enteros B1/23Arranque en frío A1/36Asignación B1/20ASIN B2/26ATAN B2/26Aumento B1/23

BBIT_D B2/96BIT_W B2/96

Bits A1/10Bits del sistema B3/1Bits extraídos de palabras A1/18BLK A3/8Bloques de función B1/9Bloques de función de usuario A1/9Bobinas de conexión B1/5Bobinas de desconexión B1/5Bobinas directas B1/5Bobinas inversas B1/5Búsqueda para tablas B2/45Byte A1/16

CCadenas de caracteres A1/21, B2/53CALL A2/3Cíclica A1/41Comentario A2/6, A3/4, A4/7, A5/14Comparación B1/19Comparación alfanumérica B2/55Comparación de tablas B2/43Comparación vertical B2/17Complemento lógico B1/25CONCAT B2/61Concatenación de dos cadenas B2/61CONCATW B2/36Constante A1/16Contactos de apertura B1/4Contactos de cierre B1/4Contactos de flanco ascendente B1/4Contactos de flanco descendente B1/4Contaje B1/14Convergencias en O A5/5Convergencias en Y A5/4Conversión B2/28, B2/31Conversión ASCII ---> Binario B2/58Conversión ASCII --> Flotante B2/60Conversión BCD <--> Binario B2/31Conversión Binario --->ASCII B2/56Conversión Entero <--> Flotante B2/33Conversión Flotante ---> ASCII B2/59Conversión Gray --> Entero B2/35Conversión Palabra <--> Doble palabraB2/36COPY_BIT B2/94Corte de corriente A1/36COS B2/26

Page 460: Manual PL7

10/2___________________________________________________________________________

B

DD_BIT B2/98DATE_TO_STRING B2/88Datos estructurados B4/4DAY_OF_WEEK B2/81DEC B1/23DEG_TO_RAD B2/28DELETE B2/62DELTA_D B2/85DELTA_DT B2/86DELTA_TOD B2/87Desactivación simultánea de etapas A5/10Desbordamiento de índice A1/23Descontaje B1/14Desplazamiento circular B2/19Desplazamiento lógico B2/19DFB A1/9, A6/1DINT_TO_REAL B2/34DINT_TO_STRING B2/56Direccionamiento A1/11Direccionamiento de objetos TSX 37 A1/11Direccionamiento de objetos TSX 57 A1/13Disminución B1/23Divergencias en O A5/5Divergencias en Y A5/4División B1/23Doble longitud A1/17DOWN B1/12, B1/16Drum B2/9DSHL_RBIT B2/100DSHR_RBIT B2/100DSHRZ_C B2/100DT_TO_STRING B2/89Duraciones B2/74

EEjecución cíclica A1/41Ejecución de una red de contactos A2/13Ejecución periódica A1/42Elementos gráficos LD A2/2Encaminamiento A5/10END B1/32END_BLK A3/8ENDC B1/32

ENDCN B1/32Enlaces orientados A5/5, A5/13Enmascarar/Desenmascarar sucesosB1/34Entero <--> Flotante B2/33EQUAL B2/43EQUAL_ARR B2/43EQUAL_STR B2/71Estructuras de control A4/9Etapas A5/4Etiqueta A2/6, A3/4, A4/8EXIT A4/14EXP B2/25Exponenciales B2/25Expresión numérica B1/27EXPT B2/25

FFAST A1/48Fechas B2/74Fin de programa B1/32FIND B2/72FIND_EQD B2/45FIND_EQDP B2/45FIND_EQR B2/45FIND_EQW B2/45FIND_EQWP B2/45FIND_GTD B2/45FIND_GTR B2/45FIND_GTW B2/45FIND_LTD B2/45FIND_LTR B2/45FIND_LTW B2/45Flanco A1/29, B1/2Flotante A1/17, B2/20FOR ... END_FOR A4/13Forzado A1/30FPULSOR B2/111FTOF B2/109FTON B2/107FTP B2/110Funciones para tablas B2/42

Page 461: Manual PL7

Indice 10

___________________________________________________________________________10/3

B

GGET B2/8Grafcet A5/1GRAY_TO_INT B2/35, B2/36

HHALT B1/33Horas B2/74HW B2/36

IIF ... END_IF A4/9INC B1/23Indexación A1/22Inicialización del área de archivado B2/114Inmovilización del Grafcet A5/26INSERT B2/63Instancia DFB A6/8Instrucciones booleanas B1/2Instrucciones de programa B1/28Instrucciones para flotantes B2/20INT_TO_REAL B2/34INT_TO_STRING B2/56

JJMP B1/30JMPC B1/30JMPCN B1/30

LLD B1/4LDF B1/4LDN B1/4LDR B1/4Lectura de la fecha sistema B2/79Lectura del día de la semana B2/81LEFT B2/69LEN B2/73LENGTH_ARD B2/52LENGTH_ARR B2/52LENGTH_ARW B2/52LENGTH_ARX B2/52

Lenguaje de contactos A2/1Lenguaje Grafcet A5/1Lenguaje Lista de instrucciones A3/1Lenguaje Literal estructurado A4/1Lista de instrucciones A3/1LN B2/25LOG B2/25Logarítmicas B2/25Longitud de tablas B2/52LW B2/36

MMacroetapa A5/15MASKEVT B1/34MAST A1/47MAX_ARD B2/47MAX_ARR B2/47MAX_ARW B2/47Memoria de bits A1/26, A1/28, A1/29Memoria de palabras A1/26, A1/31Memoria de usuario A1/26MID B2/67MIN_ARD B2/47MIN_ARR B2/47MIN_ARW B2/47Modos de marcha A1/36, A5/1Módulo funcional A7/1Monoestable B1/11, B2/2Monotarea A1/39MPP A3/7MPS A3/7MRD A3/7Multiplicación B1/23Multitarea A1/45

NNOT B1/25NOT_ARX B2/95

OO exclusiva B1/8

Page 462: Manual PL7

10/4___________________________________________________________________________

B

O lógica B1/7, B1/25Objetos de bloques de función A1/20Objetos DFB A6/3Objetos Grafcet A1/23, A5/6Objetos indexados A1/22Objetos simbolizables A1/24, A1/25OCCUR_ARD B2/48OCCUR_ARR B2/48OCCUR_ARW B2/48OLE B9/2OR B1/7, B1/25OR_ARX B2/95Ordenación para tablas B2/51ORF B1/7ORN B1/7ORR B1/7OUT_BL A3/8

PPalabras comunes A1/18Palabras del sistema B3/9Palabras internas A1/16Paréntesis A3/5PCMCIA B2/113Periódica A1/42Pila FIFO B2/5Pila LIFO B2/5PRESET B1/16Presimbolización A1/25Programador cíclico B2/9PTC B2/80PUT B2/8

RR B1/5RAD_TO_DEG B2/28Raíz cuadrada B1/23READ_PCMCIA B2/118REAL_TO_DINT B2/34REAL_TO_INT B2/34Reanudación en caliente A1/36Rebasamiento B1/24Receptividad A5/20Red de contactos A2/5Registro B2/5Regreso de subprograma B1/29

Reloj-calendario B2/77REM B1/23Remisiones de destino A5/5Remisiones de origen A5/5REPEAT ... END_REPEAT A4/12REPLACE B2/65RESET B1/16, B2/8, B2/11Resta B1/23Resto de la división B1/23RET B1/29RETCN B1/29RIGHT B2/69ROL_ARD B2/49ROL_ARR B2/49, B2/50ROL_ARW B2/49ROR_ARD B2/49ROR_ARR B2/49, B2/50ROR_ARW B2/49ROUND B2/29RRTC B2/79

SS B1/5Salto de programa B1/30SCHEDULE B2/77SCOUNT B2/103Sección A1/4, A1/39Sección Grafcet A5/23Sentencia A3/4Servidor OLE B9/2SET_PCMCIA B2/114Símbolo A1/6, A1/24Símbolos gráficos Grafcet A5/4SIN B2/26SORT_ARD B2/51SORT_ARR B2/51SORT_ARW B2/51SQRT B1/23SRi A1/39ST B1/5START B1/12, B2/3STN B1/5STRING_TO_DINT B2/58STRING_TO_INT B2/58, B2/60SUB_DT B2/82SUB_TOD B2/83

Page 463: Manual PL7

Indic e 10

___________________________________________________________________________10/5

B

Subprograma A1/39, B1/28SUM B2/42SUM_ARR B2/42Suma B1/23

TTablas de bits A1/21, B2/94Tablas de palabras A1/21, B2/37TAN B2/26Tarea maestra A1/47Tarea rápida A1/48Tareas de suceso A1/50Tarjeta de memoria (PCMCIA) A1/26Temporización B1/10, B2/13, B2/107, B2/109

B2/110, B2/111Tiempo B2/74TIME_TO_STRING B2/90Timer B2/13Tipo DFB A6/3TOD_TO_STRIN B2/91TRANS_TIME B2/93, B2/94Transiciones A5/4Tratamiento posterior A5/30Tratamiento preliminar A5/24Tratamiento secuencial A5/28Trigonométricas B2/26TRUNC B2/24

UUNMASKEVT B1/34UP B1/16, B2/11

VValor absoluto B1/23Valores inmediatos A1/18Variables privadas A6/4Variables públicas A6/4Vista estructural A7/2Vista funcional A7/2

WW_BIT B2/98Watchdog A1/44WHILE ... END_WHILE A4/11WRITE_PCMCIA B2/116WRTC B2/80WSHL_RBIT B2/100, B2/105WSHR_RBIT B2/100

XXOR B1/8, B1/25XOR_ARX B2/95XORF B1/8XORN B1/8XORR B1/8

YY lógica B1/6

Page 464: Manual PL7

10/6___________________________________________________________________________

B