TwinCAT PLC Control

TwinCAT PLC Control: Introducción Introducción Qué es TwinCAT PLC Control? TwinCAT PLC Control es un completo entorno d

Views 151 Downloads 3 File size 3MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

TwinCAT PLC Control: Introducción

Introducción Qué es TwinCAT PLC Control? TwinCAT PLC Control es un completo entorno de desarrollo para funciones de PLC. Permite al programador una entrada sencilla mediante los eficaces recursos del lenguaje basado en IEC. El uso de los editores y de las funciones de Debugging tiene como modelo los entornos de desarrollo perfeccionados de lenguajes de programación superiores.. Introducción general del funcionamiento de TwinCAT PLC Control Cómo se estructura un proyecto? Un proyecto se guarda en un archivo que lleva el nombre del proyecto. El primer módulo (POU) que se crea en un nuevo proyecto se llamará automáticamente MAIN y recibirá otro nombre mediante la Tarea estándar (Task Standard) especificada. TwinCAT PLC Control distingue varios tipos de objetos en un proyecto: módulos, tipos de datos y recursos. En el "Object Organizer" se encuentra la lista de todos los objetos de su proyecto. Cómo se crea un proyecto? Primero debería seleccionar un sistema de destino y especificar una Tarea (Task). A continuación puede crear los módulos (POUs) necesarios para su aplicación. Ya puede pasar a programar los módulos (POUs) necesarios en los lenguajes deseados. Tras finalizar la programación, puede controlar el proyecto y corregir los eventuales errores que se indiquen. Cómo se verifica un proyecto? Una vez que todos los errores estén corregidos, conéctese al PLC y cargue su proyecto en él. Ahora, TwinCAT PLC Control se encuentra en el modo On-line. Compruebe que su proyecto haga la maniobra correcta. Para este fin, introduzca manualmente las entradas y observe si las salidas se activan de la forma deseada. Asimismo puede observar en los módulos (POUs) los diferentes valores de las variables locales. En el Visor de Variables o de Fórmulas puede configurar los datos cuyos valores quiere visualizar. En caso de un error de programación puede fijar Breakpoints. Si la ejecución se detiene en uno de estos Breakpoints, puede consultar los valores de todas las variables del proyecto en este instante. Mediante la ejecución Paso a Paso puede comprobar la corrección lógica de su programa.

Función de Debugging adicional de TwinCAT PLC Control: puede prefijar variables de programa y entradas/salidas a determinados valores. Con el control de procesos puede comprobar qué líneas de programa se han ejecutado. El Sampling Trace le ofrece la posibilidad de registrar y visualizar el seguimiento cíclico de las variables durante un tiempo prolongado. Un Registro procesos / los paseos de usuario y los procesos internos durante el en línea - modo cronológicamente sobre. El proyecto se puede documentar en todo momento o exportar a un archivo de texto. Sumario TwinCAT PLC Control es una completa herramienta de desarrollo para la programación de su PLC que le aporta un considerable ahorro de tiempo en la creación de sus aplicaciones.

Componentes de un proyecto Un proyecto contiene todos los objetos de un programa PLC. El proyecto se guarda en un archivo con el mismo nombre. Un proyecto incluye los siguientes objetos: Módulos (POUs), Declaración de datos (Data Types), Recursos (Resources) y Librerías (Libraries).

Módulo (POUs)

Funciones, Bloques de Funciones y programas son Módulos, ellos pueden ser completados por la vía de paseos. Cada Módulo se compone de una parte de declaración y una parte de programa. La parte de programa está escrita en uno de los lenguajes de programación permitidos por la norma IEC (IL, ST, SFC, FBD, LD o CFC). TwinCAT PLC Control soporta todos los Módulos compatibles con la norma IEC. Si quiere incorporar estos módulos en su proyecto, tiene que cargar la librería standard.lib en su proyecto. Los Módulos (POUs) pueden llamar a otros módulos, pero no se permite recursividad. Función Una Función es un módulo que, cuando se ejecuta, suministra exactamente un dato (que puede ser de varios elementos, como por ejemplo, campos o estructuras) y cuya llamada puede realizarse en lenguajes de texto como operador en expresiones. En la declaración de una Función se le ha de asignar un tipo de dato. Es decir que, después del nombre de la Función, se tienen que introducir dos puntos, seguido por un tipo de dato.

Un ejemplo de declaración de función, sería: FUNCTION Fct: INT Además, se tiene que asignar un resultado a la Función. El nombre de la Función se utiliza como una variable de salida. Ejemplo en IL para una Función que tiene tres variables de entrada y devuelve como resultado el producto de las dos primeras, dividido por la última:

La llamada a una Función puede aparecer en lenguaje ST como operando en expresiones. Las Funciones no tienen estados internos. Es decir, las llamadas de una función con los mismos argumentos (parámetros de entrada) devuelven siempre el mismo valor (salida).

Ejemplos de la llamada de la función antes descrita en lenguaje IL: LD 7 Fct 2,4 ST Ergebnis

en lenguaje ST: Ergebnis := Fct(7, 2, 4); en lenguaje FBD:

En lenguaje FBD, una llamada a Función sólo puede tener lugar dentro de un paso o una transición. Nota: si define en su proyecto una Función con el nombre CheckBounds, puede comprobar automáticamente la superación de márgenes en su proyecto. El nombre de la Función está especificado y debe poseer únicamente esta denominación. El siguiente ejemplo de programa para la comprobación de la Función CheckBounds interviene fuera de los límites de un Array definido. La Función CheckBounds garantiza que el valor TRUE no se asigne a la posición A[10], sino al límite superior aún válido del área A[7]. La Función CheckBounds permite, por lo tanto, corregir intervenciones fuera de los límites del Array.

Nota: Si en su proyecto define funciones con los nombres CheckDivByte, CheckDivWord, CheckDivDWord y CheckDivReal, con la utilización del operador DIV puede comprobar el valor del divisor, por ejemplo para evitar una división entre 0. El nombre de la función está especificado y debe mostrar únicamente esta denominación. Si define las funciones CheckRangeSigned y CheckRangeUnsigned, en el modo online puede interceptar automáticamente la superación de márgenes en las variables declaradas con tipos de subárea. Los nombres de funciones mencionados se reservan a causa de la posibilidad de utilización descrita aquí.

Bloque de Funciones

Un Bloque de Funciones es un Módulo que, al ejecutarse, suministra uno o varios valores. A diferencia de una Función, un Bloque de Funciones no proporciona ningún valor de devolución.

Se pueden crear reproducciones, denominadas instancias (copias), de un Bloque de Funciones. Ejemplo en IL de un Bloque de Funciones con dos variables de entrada y dos variables de salida. Una salida es el producto de las dos entradas ; la otra es una comparación de igualdad.

Instancias de Bloques de Funciones

Se pueden crear reproducciones, denominadas instancias (copias), de un Bloque de Funciones. Cada instancia posee su propio identificador (nombre de instancia) y una estructura de datos que contiene sus entradas, salidas y variables internas. Al igual que las variables, las instancias se declaran como locales o globales, indicando como tipo de un identificador el nombre del Bloque de Funciones.

Ejemplo de una instancia con el nombre INSTANZ del Bloque de Funciones FUB:

INSTANZ: FUB;

Las llamadas a Bloques de Funciones se realizan siempre a través de las instancias arriba descritas. Sólo se puede acceder a los parámetros de entrada y salida desde fuera de una instancia de un bloque de funciones, pero no se puede acceder a sus variables internas. Ejemplo del acceso a una variable de entrada:

El Bloque de Funciones fb tiene una variable de entrada in1 del tipo int.

PROGRAM prog VAR inst1:fb; END_VAR LD 17 ST inst1.in1 CAL inst1 END_PROGRAM

Las partes de declaración de los Bloques de Funciones y Programas no pueden contener declaraciones de instancia. Las declaraciones de instancia no se admiten en las Funciones. El acceso a la instancia de un Bloque de Funciones está limitado al Módulo en el cual se ha creado la instancia, a no ser que haya sido declarada como global. El nombre de una instancia de un Bloque de Funciones se puede utilizar como entrada de una Función o un Bloque de Funciones. Nota: se conservan todos los valores después de cada ejecución del Bloque de Funciones. Por esta razón, las llamadas a un Bloque de Funciones con los mismos argumentos no suministran siempre los mismos valores de salida. Llamada a un Bloque de Funciones

Se puede acceder a las variables de entrada y salida de un bloque de funciones desde otro módulo, creando una instancia del bloque de funciones e indicando la variable deseada mediante la siguiente sintaxis: . Si se desean fijar los parámetros de entradas, es decir, valores de variables de entrada, en una llamada, esto se realiza en los lenguajes de texto IL y ST, asignando entre paréntesis valores a los parámetros después del nombre de instancia del bloque de funciones (la asignación se realiza con ":=", como en la inicialización de variables en el punto de declaración). Tenga en cuenta que las variables de entrada / salida (VAR_IN_OUT) de un bloque de funciones se entregan como Pointer (puntero). Por ello, no se les puede asignar ninguna constante durante la llamada y no se puede

acceder a ellas desde fuera para lectura o escritura. Ejemplo para la llamada de una VAR_IN_OUT variable inout1 del bloque de funciones en un módulo ST: VAR inst:fubo; var1:int; END_VAR var1:=2; inst(inout1:=var1); No se permite: inst(inout1:=2); o inst.inout1:=2;

Ejemplos de la llamada al Bloque de Funciones FUB arriba descrito. El resultado de la multiplicación se guarda en la variable ERG y el resultado de la comparación, en QUAD. Se declararía una instancia de FUB con el nombre INSTANZ. En IL, el Bloque de Funciones se implementa como sigue:

En el ejemplo siguiente, la llamada se reproduce en el lenguaje ST. La parte de declaración es igual que en IL:

En lenguaje FBD se presentaría como sigue (parte de declaración también como en IL):

En SFC, las llamadas a bloques sólo se pueden realizar en pasos.

Programa

Un programa es un Módulo que, al ejecutarse, suministra uno o varios valores. Los programas están incluidos en todo el proyecto de forma global. Después de cada ejecución del programa, se conservan todos los valores.

Los programas pueden recibir llamadas de otros programas y Bloques de Funciones. Una función no admite llamadas a programas. Tampoco existen instancias de programas. Si un Módulo llama a un programa y en el proceso se modifican valores del programa, estas modificaciones se conservan en la próxima llamada al programa, aunque ésta se realice desde un Módulo distinto. No ocurre igual con la llamada a un Bloque de Funciones. En ese caso, sólo se modifican los valores de la

correspondiente instancia de un Bloque de Funciones. Por lo tanto, estas modificaciones únicamente son relevantes si se llama la misma instancia. Ejemplos de llamadas del programa arriba descrito:

En lenguaje IL: CAL PRGbeispiel LD PRGbeispiel.PAR ST ERG

En lenguaje ST: PRGbeispiel; Erg := PRGbeispiel.PAR; En lenguaje FBD:

Si la variable PAR del programa RPGbeispiel se inicializa en primer lugar con 0 desde un programa principal y, a continuación, se realizan llamadas a los sucesivos programas mediante las citadas llamadas a programas, el resultado Erg de los programas incluirá los valores 1, 2 y 3. Si se cambia el orden de las llamadas, también se modificarán, en consecuencia, los valores de los correspondientes parámetros de resultado. Acción Se pueden definir acciones para bloques de funciones y programas. La acción representa otra implementación que se puede crear en otro lenguaje distinto al de la implementación 'normal'. Cada acción contiene

un

nombre.

Una acción funciona con los datos del bloque de funciones o el programa al cual pertenece. La acción utiliza las mismas variables de entrada / salida y las variables locales, como la implementación 'normal'.

En este ejemplo se aumentan o se reducen las variables de salida out durante la llamada del bloque de funciones Counter, dependiendo de las variables de entrada in. Durante la llamada de la acción Reset del bloque de funciones la variable de salida out se fija en cero. En ambos casos se describe la misma variable out.

Una acción se llama con . o . (. o .). Si la acción se llama desde dentro del módulo propio, en los editores de texto sólo se utilizan los nombres de acción y en los gráficos la llamada del bloque de funciones sin datos de instancia. Ejemplos para llamadas de la acción anterior: Declaración para todos los ejemplos: PROGRAM PLC_PRG VAR Inst : Counter; END_VAR

En LI: CAL Inst.Reset(In := FALSE) LD Inst.out ST ERG

En ST:

Inst.Reset(In := FALSE); Erg := Inst.out;

En FBD:

Nota: En los módulos en el diagrama secuencial de funciones (SFC) las acciones juegan un papel especial. Consulte el capítulo Diagrama secuencial de funciones.

Nota: La norma IEC no reconoce ninguna acción aparte del diagrama secuencial de funciones. Recursos

Los recursos se necesitan para la configuración y organización del proyecto y para el seguimiento de valores de variables: 

Variables globales que se pueden utilizar en todo el proyecto



Configuraciones del PLC para configurar su hardware



Configuración de tareas para controlar su programa a través de tareas



Sampling Trace para el registro gráfico de valores de variables



Visor de Variables y de Fórmulas para la visualización e introducción por defecto de valores de variables.

Véase al respecto el capítulo 'Los recursos'. Librerías

Puede incorporar en su proyecto una serie de librerías cuyos Módulos, tipos de datos y variables globales podrá utilizar como si fuesen de creación propia. La librería 'standard.lib' está disponible a nivel estándar.

Véase al respecto el capítulo 'Administrador de librería'.

Tipos de datos

Aparte de los tipos de datos estándar, el usuario puede definir sus propios tipos de datos. Se pueden crear estructuras, tipos de enumeraciones y referencias.

Véase al respecto 'Tipos de datos estándar' y 'Tipos de datos definidos' en el Apéndice

Lenguajes de programación TwinCAT PLC Control admite todos los lenguajes descritos en IEC 61131-3. Existen dos lenguajes para texto y tres lenguajes para gráficos. Lenguajes para texto 

Lista de instrucciones (IL)



Texto estructurado (ST)

Lenguajes para gráficos 

Diagrama de bloques funcionales (FBD)



Plano de contactos (LD)



El editor gráfico de planos de funciones (CFC)



Diagrama secuencial de funciones (SFC)

TwinCAT PLC Control: Lenguajes

Lista de instrucciones (IL) Una lista de instrucciones (IL) se compone de una serie de instrucciones. Cada instrucción empieza en una nueva línea, contiene un operador y, según sea el tipo de operación, incluye uno o varios operandos separados

por

comas.

Delante de una instrucción se puede encontrar una marca de identificación seguida por dos puntos (:).

Un comentario ha de ser el último elemento de una línea. Se pueden insertar líneas vacías entre las instrucciones.

Ejemplo:

LD 17 ST lint (* Comentario *) GE 5 JMPC next LD idword EQ istruct.sdword STN test next: Modificadores y operadores en lenguaje IL

En

el

lenguaje

IL

se

pueden

utilizar

los

siguientes

operadores

y

modificadores.

Modificadores: 

C en JMP, CAL, RET: la instrucción sólo se ejecuta si el resultado de la expresión anterior es TRUE.



N en JMPC, CALC, RETC: la instrucción sólo se ejecuta si el resultado de la expresión anterior es FALSE.



N en el resto: negación del operando (no del acumulador)

A continuación aparece una tabla de todos los operadores en lenguaje IL con sus posibles modificadores y su correspondiente significado: Métodos en el orden Vtable

Operador

Modificadores

Significado

LD

N

Establecer resultado actual igual al operando

TE

N

Guardar resultado actual en la

posición del operando

S

Ajustar el operando de Bool en TRUE cuando el resultado actual es TRUE

R

AND

N, (

AND por bits

OR

N, (

OR por bits

XOR

(

OR exclusivo por bits

ADD

(

Suma

SUB

(

Resta

MUL

(

Multiplicación

DIV

(

División

GT

(

>

EQ

(

=

NE

(

LE

(

"alarmlog0.alm", "alarmlog1.alm). El formato del archivo de memoria puede ser definido a través del diálogo 'Configuraciones del marco de documentación'. Evento de cambio de archivo: Introduzca aquí las condiciones, bajo las cuales se debe crear un archivo nuevo. Posibles condiciones: Jamás, tras una hora, tras un día, tras una semana, tras un mes, tras un flanco ascendente de una variable indicada bajo 'Variable de impulso de disparo', tras alcanzar una determinada cantidad de entradas definido bajo 'Cantidad máxima de entradas'. Variable de impulso de disparo o bien Cantidad máxima de registros: véase Evento de cambio de archivo: Borrar datos antiguos tras .. horas: Cantidad de días tras la fecha de creación, tras las cuales se borran todos los archivos de memoria de alarma excepto el actual. El archivo de memoria (historial) contiene los siguientes registros:

EJEMPLO:

TwinCAT PLC Control: Recursos

Menú Herramientas: Configuración Categoría

fecha/hora:

Aquí define, en que formato deben ser reproducidas las indicaciones de fecha y hora para las alarmas en el archivo de memoria. Introduzca los formatos de acuerdo a la siguiente sintaxis, guiones y dos puntos se colocan entre comillas sencillas: para fecha: dd'-'mm'-'aaaa -> p.ej. "12.Ene.1993" para hora: hh':'mm':'ss -> p.ej. "11:10:34"

Idioma: Seleccione aquí el archivo de idioma, que debe ser empleado para la conmutación de idioma, o sea también los textos que debe contiene la configuración de alarmas. Véase para ello las siguientes descripciones: 

Visualización, configuración de idioma



'Proyecto' 'Traducir en otros idiomas'

TwinCAT PLC Control: Recursos

Configuración del PLC

Configuración del PLC.

La configuración del PLC depende del hardware que vaya a configurarse en cada caso. Con TwinCAT PLC Control se pueden programar las siguientes plataformas de hardware. 

PC (i386): programa de PLC que funciona en el PC (p.e. CX10x0)



PC (ARM): programa de PLC que funciona en el PC (p.e.CX9000)



BCxxxx: programa de PLC que funciona en un controlador de bus (MPA de bornes)

Si el programa de PLC va a utilizarse en el MPA de bornes BCxxxx, existen dos posibilidades distintas de cargar el programa: 

el programa se carga a través de AMS (BC3100)



el programa se carga a través de una interfaz de serie (BCxxxx)

TwinCAT PLC Control: Recursos

Configuración de tareas La configuración de tareas se encuentra como objeto en la ficha Recursos del Object Organizer. En el editor de tareas puede especificar un máximo de cuatro tareas. La declaración de tarea se compone del nombre de la tarea, una entrada para la prioridad de la tarea y una entrada para la condición de ejecución de la tarea. Esta condición es el intervalo de tiempo tras el cual se ejecutará la tarea. Para cada tarea tiene que indicar un programa de arranque de la tarea. Si la tarea va a ejecutarse en el ciclo actual, se ejecutan estos programas. Nota: No se deben utilizar las mismas funciones de cadena en varias tareas (ver anexo), dado que en este caso durante la ejecución de las tareas existe peligro de sobrescritura. La configuración de tareas se representa en la siguiente forma: 

en la primera línea se encuentra el texto Configuración de tareas



por debajo y con sangría, se incluye una serie de entradas de tarea (con nombre, prioridad e intervalo)



debajo de cada entrada de tarea, aparece de nuevo una llamada de programa.

Ejemplo de una configuración de tareas

En este ejemplo de configuración de tareas, la Tarea2 tiene una prioridad inferior que la Tarea1. No obstante, la Tarea1 sólo se ejecuta cada dos segundos. Por lo tanto, la Tarea1 se ejecuta cada dos segundos en esta configuración de tareas y entre tanto siempre se puede ejecutar la Tarea2.

¿Qué tarea se está ejecutando? Para la ejecución se aplican las siguientes reglas: 

Se ejecuta la tarea cuya condición es válida, es decir, cuyo tiempo indicado ha finalizado.



Si varias tareas tienen una condición válida, se ejecuta la tarea con la prioridad más alta.

Los principales comandos se encuentran en el menú de contexto (botón derecho del ratón o +.

Trabajar en la configuración de tareas En el encabezamiento de la configuración de tareas aparece la palabra "Configuración de tareas"; si delante de la palabra se muestra un signo Más, significa que la siguiente lista está cerrada. Si hace doble clic en la lista o pulsa la tecla , la lista se desplegará. A continuación, se mostrará un signo Menos y si vuelve a hacer doble clic, la lista se cerrará. 

Con el comando 'Insertar' 'Insertar tarea' se inserta una tarea.



Con el comando 'Insertar' 'Insertar llamada de programa' se inserta una llamada de programa para una tarea.



Con el comando 'Herramientas' 'Editar entrada' puede editar, según el elemento seleccionado, las características de la tarea o la llamada de programa.



Al hacer clic en el nombre de tarea o de programa o al pulsar , se sitúa un marco de edición alrededor del nombre. A continuación, podrá modificar la identificación directamente en el editor de tareas.

'Insertar' 'Insertar tarea' o 'Insertar' 'Agregar tarea' Con este comando se añade una nueva tarea a la configuración de tareas. Si se ha seleccionado una tarea, estará disponible el comando 'Insertar tarea'. La nueva tarea se inserta delante del cursor. Si la palabra Configuración de tareas está seleccionada, estará disponible el comando 'Agregar tarea' y la nueva tarea se añadirá al final de la lista existente. Se abre el diálogo para determinar las características de tareas.

Diálogo para determinar las características de tareas

En el diálogo, podrá introducir los atributos que desee: el nombre, la prioridad (un número entre 0 y 3, siendo 0 la prioridad más alta y 3 la más baja) y el intervalo de tiempo transcurrido el cual se reiniciará la tarea.

'Insertar' 'Agregar llamada de programa' o 'Insertar' 'Insertar llamada de programa' Con estos comandos se abre el diálogo que permite introducir una llamada de programa para una tarea de la configuración de tareas. Con 'Insertar llamada de programa', la nueva llamada de programa se inserta delante del cursor y con 'Agregar llamada de programa', se añade al final de la lista existente.

Diálogo para la introducción de una llamada de programa

En el campo que aparece, introduzca un nombre de programa válido del proyecto o abra la ayuda de entrada para la selección de nombres de programa válidos con el botón Seleccionar. Si el programa seleccionado exige variables de entrada, introdúzcalas en la forma habitual y del tipo declarado (por ejemplo, prg(invar:=17)).

'Herramientas' característica' Con este comando se abre, según el elemento seleccionado en la configuración de tareas, el diálogo para la determinación de las características de tarea (ver 'Insertar tarea') o el diálogo para la introducción de la llamada de programa (ver 'Insertar llamada de programa'). Si el cursor se encuentra en una entrada de tarea que todavía no incluye ninguna lista de llamadas de programa, puede abrir el diálogo para determinar las características de tarea, hacer doble clic en la entrada o pulsar la tecla . Si el cursor se encuentra en una entrada para una llamada de programa, haciendo doble clic en la entrada podrá abrir el diálogo de edición de la entrada de programa. Al hacer clic en el nombre de tarea o de programa o al pulsar , aparece un marco de edición alrededor del nombre. A continuación, podrá modificar la identificación directamente en el editor de tareas.

'Herramientas' 'Establecer tarea Debug' En el modo Online de la configuración de tareas, este comando permite determinar una tarea para el Debug. De este modo, el texto [DEBUG] se muestra detrás de la tarea determinada . Las funciones de Debug sólo harán referencia a esta tarea, es decir que el programa únicamente se detendrá en un breakpoint si se está ejecutando el programa de la tarea ajustada.

TwinCAT PLC Control: Recursos

Sampling Trace Sampling Trace implica el registro de la curva de valores de variables durante un determinado tiempo. Estos valores se escriben en una memoria circular (Tracebuffer). Cuando la memoria está llena, los valores más "antiguos" se vuelven a sobrescribir desde el principio de la memoria. Se puede registrar un máximo de 20 variables a la vez. Dado que el tamaño del Trace Buffer en el PLC posee un valor fijo, se pueden registrar menos valores si existen muchas variables o variables muy extensas (DWORD). Para poder efectuar un Sampling Trace, abra el objeto Sampling Trace en la ficha Recursos del Object Organizer. A continuación, habrá que introducir las variables de Trace que van a registrarse (ver 'Herramientas' 'Configuración Trace'). Después de enviar la configuración con 'Definir Trace' al PLC e iniciar el registro en el PLC ('Iniciar Trace'), se inician los valores de las variables. Con 'Leer Trace' se leen los últimos valores registrados y se representan en un gráfico en forma de curvas.

'Herramientas' 'Configuración Trace' Con este comando se obtiene el diálogo para la introducción de las variables que van a registrarse, así como diversos parámetros de Trace para Sampling Trace.

Diálogo para la configuración Trace

En un primer momento, la lista de las variables que van a registrarse está vacía. Para insertar una variable, ésta se tiene que introducir en el campo situado debajo de la lista para, a continuación, añadirla a la lista con el botón Insertar o con . También puede utilizar la ayuda de entrada. Para borrar una variable de la lista, selecciónela y pulse el botón Borrar. En el campo Frecuencia de exploración, se puede indicar el tiempo entre dos registros en milisegundos. El valor por defecto "0" implica la existencia de un proceso de exploración por ciclo. En el campo Variable de trigger se puede introducir una variable de Bool. Asimismo, se puede utilizar la ayuda de entrada. La variable describe la condición de cancelación del Trace. Si en la definición del Trace se ha seleccionado un flanco ascendente (como en el ejemplo anterior), el proceso de trigger se lleva a cabo después de un flanco ascendente de la variable de trigger; de lo contrario, después de un flanco descendente. Después del proceso de trigger, se registra un determinado número de valores; a continuación, el trigger se cancela. Esta cantidad se introduce en el campo Número de valores en forma de porcentaje después del proceso de trigger. Si el campo Variable de trigger está vacío, el Sampling Trace tiene que cancelarse explícitamente ('Herramientas' 'Detener Trace'). Con el botón Guardar se guarda la configuración trace creada en un archivo. Se abre la ventana estándar ‚Guardar archivo como'. Con el botón Cargar se puede volver a cargar una configuración trace guardada. Se abre la ventana estándar ‚Abrir archivo'. Nota: Tenga en cuenta que las opciones Guardar y Cargar del diálogo de configuración sólo afecta a la configuración, no a los valores de un grabación Trace (contrariamente a los comandos de menú 'Herramientas' 'Guardar trace' y 'Herramientas' 'Cargar trace'). Si el campo Variable de trigger está vacío, grabación trace se ejecuta de forma infinita y se puede interrumpir de forma implícita con 'Herramientas' 'Parar trace'.

'Herramientas' 'Iniciar Trace' Con este comando se inicia el Sampling Trace en el PLC.

'Herramientas' 'Leer Trace' Con este comando se lee el Trace Buffer actual del PLC y se representan los valores de las variables seleccionadas.

'Herramientas' 'Lectura automática Trace' Con este comando, el Trace Buffer actual del PLC se lee automáticamente y los valores se representan de forma continua. Si el Trace Buffer se lee automáticamente, aparece un símbolo de corrección delante del comando de menú.

'Herramientas' 'Detener Trace' Este comando detiene el Sampling Trace en el PLC. Antes de realizar un nuevo registro, es necesario cargar la definición del Trace y reiniciar el Trace.

Selección de variables a representar Los cuadros combinados situados a la derecha de la ventana para la representación de las curvas contienen todas las variables de Trace definidas en la configuración Trace. Si se selecciona una variable de la lista, ésta se emite, tras la lectura del Trace Buffer, en el correspondiente color (Var 0 verde, etc.). Las variables también se pueden seleccionar si ya se han emitido curvas. Se pueden visualizar un máximo de ocho variables a la vez en la ventana de Trace.

Representación del Sampling Trace de ocho variables distintas sin trigger

Si se ha cargado un Trace Buffer, se leen y se representan los valores de todas las variables que van a representarse. Si no hay ajustada ninguna frecuencia de exploración, el eje X se marca con el número correlativo del valor registrado. En la indicación de estado de la ventana de Trace (1ª línea) se indica si el Trace Buffer todavía no está lleno y cuándo lo está. Si se ha indicado un valor para la frecuencia de exploración, el eje X indica el tiempo del valor. Al valor registrado más "antiguo" se asigna el tiempo 0. En el ejemplo, se indican los valores de los últimos 25s. El eje Y se rotula con valores enteros. La escala está configurada de modo que el valor más bajo y el más alto estén incluidos en el área de imagen. En el ejemplo, Var5 tiene el valor más bajo 6 y como valor máximo, se indica 11; de ahí el ajuste de la escala en el borde izquierdo. Cuando se cumple la condición de trigger, la interfaz presenta una línea vertical de puntos entre los valores anteriores y posteriores al cumplimiento de la condición de trigger . Se conserva una memoria de lectura hasta que se cambie de proyecto o se abandone el sistema.

'Herramientas' 'Emitir cursor'

Con este comando aparece en el Sampling Trace una línea vertical, que puede desplazarse con el ratón o con las teclas de dirección a la derecha o la izquierda. Pulsando + o + aumenta la velocidad del movimiento. Por encima de la ventana de gráficos puede visualizarse la posición X actual del cursor. Junto a Var0,.Var1, ...,VarN se representa el valor de la variable en cuestión. Si se sitúa el puntero del ratón en la ventana de gráficos y se pulsa el botón izquierdo del ratón, también se muestra un cursor.

'Herramientas' 'Multicanal' Con este comando se puede conmutar entre la representación del Sampling Trace con uno o varios canales. En la representación de varios canales, aparece un signo de corrección delante del comando de menú. El ajuste por defecto es la representación de varios canales. De este modo, la ventana de representación se divide entre un máximo de ocho curvas. El valor máximo y el valor mínimo de cada curva se indica en el borde. En la representación de un canal, todas las curvas se representan con el mismo factor de escala y se sobreponen. Esto puede resultar útil para representar desviaciones de curvas.

'Herramientas' 'Escala Y' Con este comando puede modificar la escala Y especificada de una curva en la representación Trace. Indique en el diálogo el número de la curva (canal), el nuevo valor máximo (valor Y máx.) y el nuevo valor mínimo (valor Y mín.) que desee en el eje Y. Para acceder al diálogo también puede hacer doble clic en una curva. El canal y los valores anteriores tienen valores por defecto.

Diálogo para el ajuste de la escala Y

'Herramientas' 'Expandir' Con este comando se pueden expandir los valores emitidos del Sampling Trace (zoom). La posición inicial se ajusta con la barra de desplazamiento horizontal. En caso de que existan varios

tramos consecutivos, se muestra un sector Trace cada vez más corto en la ventana. Este comando es el opuesto a 'Herramientas''Comprimir'.

'Herramientas' 'Comprimir' Con este comando se pueden comprimir los valores emitidos del Sampling Trace; es decir que, después de este comando se puede observar el desarrollo de las variables Trace en un intervalo de tiempo más largo. Es posible la ejecución repetida del comando. Este comando es el opuesto a 'Herramientas''Expandir'.

'Herramientas' 'Guardar Trace' Con este comando se puede guardar un Sampling Trace. De este modo, se abrirá el diálogo para guardar archivos. El nombre de archivo recibe la extensión "*.trc". El Sampling Trace guardado se puede volver a cargar con 'Herramientas' 'Cargar Trace'.

'Herramientas' 'Cargar Trace' Con este comando se puede volver a cargar un Sampling Trace guardado. De este modo, se abrirá el diálogo de apertura de archivos. Seleccione el archivo que desee con la extensión "*.trc". Con 'Herramientas' 'Guardar Trace', se puede guardar un Sampling Trace.

'Herramientas' 'Trace en fichero ASCII' Con este comando se puede guardar un Sampling Trace en un archivo ASCII. De este modo, se abrirá el diálogo para guardar un archivo. El nombre de archivo recibe la extensión "*.txt". En el archivo los valores se guardan según el siguiente esquema: TwinCAT PLC Control Trace D:\TWINCAT PLC CONTROL\PROJECTS\AMPEL.PRO Zyklus PLC_PRG.ZAEHLER PLC_PRG.LIGHT1 021 121

221 ..... Si en la configuración Trace no se ha ajustado ninguna frecuencia de exploración, permanece así en la primera columna el ciclo; es decir, que se ha registrado un valor por ciclo. De lo contrario, es introduce el momento en ms en el que se guardaron los valores de las variables a partir del inicio del Sampling Trace. En las siguientes columnas se guardan los correspondientes valores de las variables Trace. Los valores están separados con un espacio. Los correspondientes nombres de variable se representan ordenadamente uno tras otro en la tercera línea (PLC_PRG.ZAEHLER, PLC_PRG.LIGHT1).

TwinCAT PLC Control: Recursos

Visor de Variables o de Fórmulas Con la ayuda del Visor de Variables o de Fórmulas se pueden visualizar los valores de variables seleccionadas. Este Visor también permite asignar a las variables determinados valores y transferirlos al PLC ('Escribir fórmula') de una sola vez. Asimismo, los valores actuales del PLC también se pueden cargar y guardar como valores por defecto en el Visor de Variables o de Fórmulas ('Leer fórmula'). Estas funciones son útiles, por ejemplo, para el ajuste y el registro de parámetros de regulación. Todas las listas Watch generadas ('Insertar' 'Nueva lista Watch') se muestran en la columna izquierda del Visor de Variables o de Fórmulas y se pueden seleccionar haciendo clic con el ratón o mediante las teclas de dirección. En el área derecha del Visor de Variables o de Fórmulas, se muestran las correspondientes variables. Para trabajar con el Visor de Variables y de Fórmulas, abra el objeto del mismo nombre en la ficha Recursos del Object Organizer.

En el modo Offline del Visor de Variables o de Fórmulas, se pueden crear varias listas Watch con el comando 'Insertar' 'Nueva lista Watch'. Para introducir las variables, se puede activar una lista de todas las variables con la ayuda de entrada, o bien introducir las variables según la siguiente anotación: . utilizando el teclado. En las variables globales no se incluye el nombre del Módulo, sino que empiezan por un punto. Por otro lado, el nombre de variable puede tener varios niveles. Las direcciones se pueden introducir directamente. Ejemplo de una variable de varios niveles: PLC_PRG.Instanz1.Instanz2.Struktur.Komponentenname

Ejemplo de una variable global: .global1.component1

Visor de Variables o de Fórmulas en el modo Offline

Las variables de la lista Watch pueden contener por defecto valores constantes; es decir, en el modo Online, estos valores se pueden escribir en las variables con el comando 'Herramientas' 'Escribir fórmula'. Para este fin, el valor constante se tiene que asignar a la variable con: Ejemplo: PLC_PRG.TIMER:=50 En el ejemplo, la variable PLC_PRG.ZAEHLER tiene el valor 6.

'Insertar' 'Nueva lista Watch' Con este comando se inserta una nueva lista Watch en el Visor de Variables o de Fórmulas. En el diálogo que aparece, introduzca el nombre que de la lista Watch que desee.

'Herramientas' 'Renombrar lista Watch' Con este comando se puede modificar el nombre de una lista Watch en el Visor de Variables o de Fórmulas. En el diálogo que aparece, introduzca el nuevo nombre de la lista Watch.

'Herramientas' 'Guardar lista Watch' Con este comando se puede guardar una lista Watch y, para ello, se abrirá el diálogo de almacenamiento de archivos. El nombre de archivo tiene asignado por defecto el nombre de la lista

Watch y recibe la extensión "*.wtc". La lista Watch guardada se puede volver a cargar con 'Herramientas' 'Cargar lista Watch'.

'Herramientas' 'Cargar lista Watch' Con este comando se puede volver a cargar una lista Watch guardada. Se abrirá el diálogo de apertura de archivos. Seleccione el archivo que desee con la extensión "*.wtc". En el diálogo que aparece a continuación puede renombrar la lista Watch. El valor por defecto es el nombre de archivo sin extensión. Con 'Herramientas' 'Guardar lista Watch' se puede guardar una lista Watch.

Visor de Variables o de Fórmulas en el modo Online En el modo Online se indican los valores de las variables introducidas. Los valores estructurados (arrays, estructuras o instancias de Bloques de Funciones) están marcados con un signo Más delante del identificador. Al hacer clic con el ratón en el signo Más o al pulsar la tecla se abre o se cierra la variable. Para introducir nuevas variables, la indicación se puede desactivar con el comando 'Herramientas''Monitorización activa'. Tras la introducción de las variables, el uso del mismo comando permitirá visualizar los valores.

Visor de Variables o de Fórmulas en el modo Online

En el modo Offline, las variables pueden tener valores constantes por defecto (introduciendo := después de la variable). En el modo Online, estos valores se pueden escribir en las variables con los comandos 'Herramientas' 'Escribir fórmula'. Con el comando 'Herramientas' 'Leer fórmula', el valor por defecto de la variable se sustituye por el valor actual de la misma.

Nota: en el Visor de Variables o de Fórmulas sólo se cargan los valores de una lista Watch seleccionada.

'Herramientas' 'Monitorización activa' Con este comando se activa y desactiva la visualización del Visor de Variables o de Fórmulas en el modo Online. Cuando la visualización está activa, aparece un símbolo de corrección delante del comando de menú. Para introducir nuevas variables o asignar un valor defecto (consulte el modo Offline), la visualización tiene que desconectarse con el comando. Después de introducir las variables, el uso del mismo comando permitirá volver a activar la visualización de los valores.

'Herramientas' 'Escribir fórmula' Con este comando se pueden escribir los valores por defecto (ver modo Offline) en las variables en el modo Online del Visor de Variables y de Fórmulas.

'Herramientas' 'Leer fórmula' Con este comando, el valor por defecto de las variables (ver modo Offline) se sustituye por el valor actual de las mismas en el modo Online del Visor de Variables o de Fórmulas. Ejemplo: PLC_PRG.Zaehler [:= ] =

Forzar valores: en el Visor de Variables o de Fórmulas también se pueden 'Forzar valores' y 'Escribir valores'. Al hacer clic en el correspondiente valor de variable, se abre un diálogo para introducir el nuevo valor de la variable. Las variables modificadas aparecen de color rojo en el Visor de Variables o de Fórmulas.

TwinCAT PLC Control: Library Manager

Administración de librerías

El administrador de librerías muestra todas las librerías conectadas al proyecto actual. Los Módulos, los tipos de datos y las variables globales de las librerías se pueden utilizar como Módulos, tipos de datos y variables globales de definición propia. El administrador de librerías se abre con el comando 'Ventana''Administrador de librerías'.

Administrador de librerías

Uso del administrador de librerías La ventana del administrador de librerías se divide en tres o cuatro áreas mediante una división de pantalla. En el área superior izquierda se muestra una lista las librerías anexadas al proyecto. En la parte inferior, aparece la lista de los Módulos, los tipos de datos o las variables globales de la librería seleccionada en el área superior en función de la ficha seleccionada. Las carpetas se abren y se cierren haciendo doble clic en la línea o pulsando la tecla . Delante de las carpetas cerradas, aparece un signo Más y, delante de las abiertas, un signo Menos. Si un Módulo se selecciona haciendo clic con el ratón o utilizando las teclas de dirección, en la parte superior del área derecha del administrador de librerías aparece la declaración del Módulo y, en la parte inferior, la representación gráfica con entradas y salidas en forma de cuadro negro (Black Box). En lo que respecta a tipos de datos y variables globales, la declaración se muestra en el área derecha del administrador de librerías.

Librería estándar La librería 'standard.lib' está disponible de forma estándar y contiene todas las Funciones y Módulos de Funciones exigidos por IEC61131-3 como Módulos estándar para un sistema de programación IEC. La diferencia entre una Función estándar y un operador radica en que mientras el operador es reconocido implícitamente por el sistema de programación, los Módulos estándar tienen que vincularse con el proyecto como librería (standard.lib).

Librerías definidas por el usuario Cuando un proyecto está terminado y compilado correctamente, se puede guardar en una librería con el comando 'Guardar como' del menú 'Archivo'. El proyecto propiamente dicho permanece inalterado. A continuación , al igual que la librería estándar, lo encontrará disponible con el nombre introducido.

'Insertar' 'Librería adicional' Con este comando puede vincular una librería adicional con el proyecto. En el diálogo de apertura de archivos, seleccione la librería que desee con la extensión "*.lib". De este modo, la librería aparecerá incluida en el administrador de librerías y los objetos de la librería podrán utilizarse igual que los de definición propia.

Quitar librería Con el comando 'Edición' 'Borrar' puede eliminar una librería de un proyecto y del administrador de librerías.

TwinCAT PLC Control: Engineering Interface (ENI)

Engineering Interface (ENI) The ENI interface ('Engineering Interface') allows to connect the Programming system to an external data base. There the data which are needed during creation of an automation project can be stored. The usage of an external data base guarantees the consistency of the data, which then

can be shared by several users, projects and programs. Also it extends the functionality by making possible the following items: 

Revision control for projects and associated resources (shared objects): If a object has been checked out from the data base, modified and checked in again, then in the data base a new version of the object will be created, but the older versions will be kept also and can be called again on demand. For each object and for a whole project the version history will be logged. Two versions can be checked for differences. (This does not apply to the using of a local data system as data base.)



Multi-User Operation: The latest version of a sample of objects, e.g. of POUs of a project, can be made accessible for a group of users. Then the objects which are currently checked out by one of the users will be marked as "in the works" and not editable by the other users. Thus several users can work in parallel on the same project without risking to overwrite versions mutually.



Access by external tools: Besides the TwinCAT PLC Control also other tools, which have an ENI too, can access the common data base. These might be e.g. external visualizations, ECAD systems etc., which need the data created in TwinCAT PLC Control or which also produce data.

The ENI is composed of a client and a server part. So it is possible to hold the data base on a remote computer, which is required for multi-user operation. The TwinCAT PLC Control is a client of the independent ENI Server Process as well as another application, which needs access to the data base (Please see the separate documentation on the ENI Server). Currently the ENI supports the data base systems 'Visual SourceSafe 5.0' and 'Visual SourceSafe 6.0' and a local file system. Objects can be stored there in different ' folders' (data base categories with different access properties ). The objects can be checked out for editing and thereby will get locked for other users. The latest version of an object can be called from the data base. Furtheron in parallel you can store any objects just locally in the project as usual for projects without source control. The *.pro file is the local working copy of an project managed by the data base. Preconditions for Working with an ENI project data base If you want to use the ENI in TwinCAT PLC Control in order to manage the project objects in an external data base, the below mentioned preconditions must be fulfilled:

Please regard: For a guide concerning installation and usage of the ENI Server please see the separate server documentation resp. online help. There you will also find a quickstart guide. Also consider the possibility of using the ENI Explorer which allows to perform data base actions independently from the currently used data base system. 

the communication between TwinCAT PLC Control and the ENI Server requires TCP/IP, because the ENI Server uses the HTTP protocol.



an ENI Server (ENI Server Suite)) must be installed and started locally or on a remote computer. A license is required to run it with the standard database drivers which are installed with the server. Just the driver for a local file system can be used with a nonlicensed ENI Server version.



in the ENI Server administration tool (ENI Admin) the following must be configured: 

the user must be registered and have access rights (User Management)



the access rights concerning the data base folders must be set correctly (Access Rights)



Recommendation: the administrator password for the access to ENIAdmin.exe and ENIControl.exe should be defined immediately after the installation



in the ENI Server service control tool (ENI Control) the connection to the desired data base must be configured correctly (Data base). You will automatically be asked to do this during installation, but you can modify the settings later in ENI Control.



a project data base for which an ENI-supported driver is available, must be installed. It is reasonable to do this on the same computer, where the ENI Server is running. Alternatively a local file system can be used, for which a driver will be provided by default.



in the data base administration possibly the user (Client) as well as the ENI Server must be registered as valid users with access rights. Anyway this is required for the 'Visual SourceSafe', if you use another data base system, please see the corresponding documentation for information on the user configuration.



for the current project the ENI interface must be activated (to be done in the TwinCAT PLC Control dialog 'Project' 'Options' 'Project data base').



for the current project the connection to the data base must be configured correctly; this is to be done in the TwinCAT PLC Control dialogs 'Project' 'Options' 'Project data base'.



in the current project the user must log in to the ENI Server with user name and password; this is to be done in the Login dialog, which can be opened explicitely by the command 'Project' 'Data Base Link' 'Login' resp. which will be opened automatically in case you try to access the data base without having logged in before.

Working with the ENI project data base The data base commands (Get Latest Version,Check Out, Check In, Version History, Label Version etc.) which are used for managing the project objects in the ENI project data base, will be available in the current project as soon as the connection to the data base has been activated and configured correctly. See for this Preconditions for Working with an ENI project data base. The commands then are disposable in the submenu 'Data Base Link' of the context menu or of the 'Project' menu and refer to the object which is currently marked in the Object Organizer. The current assignment of an object to a data base category is shown in the Object Properties and can be modified there. The properties of the data base categories (communication parameters, access rights, check in/check out behaviour) can be modified in the option dialogs of the project data base ('Project' 'Options' 'Project Source Control'). Object categories concerning the project data base There are four categories of objects of a TwinCAT PLC Control project concerning the project source control: 

The ENI distinguishes three categories ("ENI object categories") of objects which are managed in the project data base: Project objects, Shared objects, Compile files.



If an object should not be stored in the data base, it will be assigned to category 'Local', which means that it will be handled as it is known for projects without any source control.

Thus in the programming system an object can be assigned to one of the categories 'Project objects', 'Shared objects' or 'Local'; the 'Compile files' do not yet exist as objects within the project. Assigning an object to one of the categories is done automatically when the object is created, because this is defined in the project options dialog 'Project source control', but it can be modified anytime

in

the

'Object

Properties'

dialog.

Each ENI object category will be configured separately in the settings for the ' ENI settings' ('Project' 'Options', category project data base). That means that each category gets defined own parameters for the communication with the data base (directory, port, access right, user access

data etc.) and concerning the behaviour at calling the latest version, checking out and checking in. These settings then will be valid for all objects belonging to the category. As a result you will have to log in (username, password) to each data base category separately; this will be done via the 'Login' dialog ('Project' 'data base agssignment' 'Login'). It is advisable to create a separate folder for each object category in the data base, but it is also possible to store all objects in the same folder. (The 'category' is a property of an object, not of a folder.) See in the following the three ENI object categories:

Description

Project

Objects which contain project specific source information, e.g. POUs which are shared in a multi-user operation. The command 'Get all latest versions' automatically will call all objects of this category from the data base to the local project; even those, which have not been there so far.

Shared objects

Objects which are not project specific, e.g. POU libraries which normally are used in several projects. Attention: The command 'Get all Latest Versions' only will copy those objects of this category from the project folder to the local project, which are already part of the project !

Compile files

Compile information (e.g. symbol files) which is created by TwinCAT PLC Control for the current project and which may be needed by other programs too. Example: An external visualization may need not only the project variables, but also the assigned addresses. The latter will not be known until the project is compiled.

Please note:

Alternatively any objects of the project can be excluded from the project source control and can be assigned to category 'Local', which means that they are just stored with the project as usual for projects without any source control.

Visualización TwinCAT PLC

Introducción Para visualizar los datos de un mando programable con TwinCAT PLC Control, o sea poder observar y manejar, se requiere una herramienta adicional. El sistema de programación contiene un editor de visualización integrado, de manera que el usuario puede generar en una o la misma superficie las máscaras de visualización en el contexto con los desarrollos de la aplicación. La integración ofrece en estos casos muchas ventajas: La visualización integrada en TwinCAT PLC Control no necesita de ninguna lista de etiquetas y puede acceder directamente a las variables del mando. La capa OPC, frecuentemente difícil de configurar, se omite, por que la comunicación se realiza a través del mismo mecanismo que se emplea también para el sistema de programación. De esta manera se reduce considerablemente el esfuerzo de ingeniería para la realización de visualizaciones. Variantes de desarrollo 1. Directamente en el sistema de programación Para comprobar las máscaras de visualización creadas, pero también para fines de diagnóstico y asistencia técnica directamente en combinación con el mando, no necesita ninguna otra herramienta: en modo online obtiene inmediatamente la representación real de la visualización dentro del sistema de programación. 2. Visualización de objetivo Para mandos con display integrado, las informaciones de visualización pueden ser cargadas del sistema de programación con la aplicación al sistema de destino. Estas se visualizan automáticamente. Esta solución puede ser portada con reducido esfuerzo, a cualquier aparato programable con TwinCAT PLC Control.

El alcance de las funciones en una visión: •

Elementos

-

Rectángulo,

-

Línea,

-

elipse, polígono,

Mapa Botón,

-

trazo

de

tabla,

histograma,

Animaciones

Indicación

-

Cambio

por

barra,

a

otras del

Rotación

-

Escala de

un

objeto

Botón

-

Línea



actual

(sólo

-

Cambio

gráficos

indicación

de

barra)

de

texto)

entrada:

booleano

Entrada

(para

de

Valor

-

elemento):

activo/inactivo

Posibilidades

-

aguja

color

-

-

de

de

individuales

de

texto

Desplazamiento

cantos

instrumento

de

-

sobre

WMF

tipo

Visible/Invisible

Offset

curvo

visualizaciones

-

-

trazo

archivo

indicación

(dependiente

-

redondeado

lineal,

bits,

Referencia



rectángulo

alternar/pulsar de

texto

de

imagen

- Acciones especiales (abandonar visualización, leer/escribir fórmula, conmutar idioma, llamar EXE externo

etc.)

-

Seleccionar



indicación

Tooltips

de

Mapa

(información)

-

de

para bits

Escala Operaciones

de

texto)

idioma todos

Importación/Exportación

-

de

características

Conmutación

-

-

(sólo

Otras

-

línea

los

elementos

ASCII de

segundo

plano

automática delineado:

alinear,

disponer,

agrupar

- Concepto de marcadores de posición para generación de módulos de elementos gráficos complejos - Expresiones de visualización programadas

Visualización TwinCAT PLC Control

Resumen La visualización TwinCAT PLC Control sirve para la observación y manejo de un programa de control creado con la visualización TwinCAT PLC Control. El editor de visualización pone a disposición para este fin, elementos gráficos, que pueden ser adecuadamente dispuestos y ser enlazados con variables de proyecto. En servicio online se modifica la representación de los elementos dependiendo de los valores de variables.

Ejemplo sencillo:

Se delinea una barra para representación de un nivel de llenado que se evalúa en el programa, que dependiendo de la variable de proyecto correspondiente, modifica su longitud o color, debajo una indicación de texto del valor de medición actual y un botón para iniciar o detener el programa.

Ejemplo de una visualización Las características de un elemento de visualización así como una visualización como objeto completo, se determinan en diálogos de configuración apropiados. Se pueden realizar tanto determinadas configuraciones básicas, como también proceder a la entrada de variables de proyectos para una parametrización dinámica. La capacidad de programación abre especialmente posibilidades adicionales de las propiedades de elementos a través de variables de estructura. La opción, de emplear marcadores de posición en la configuración, ahorra tiempo y trabajo, cuando un objeto de visualización debe ser empleado de forma múltiple. Esto vale especialmente para el empleo de instancias de módulos funcionales. Observe también la posibilidad de definir diferentes ocupaciones de teclas para visualizaciones individuales.

Visualización TwinCAT PLC Control

Crear objeto de visualización Un objeto de visualización es un objeto TwinCAT PLC Control, que se administra en la hoja de registro Visualización. Este contiene la disposición de elementos de visualización y puede recibir determinadas propiedades como objeto completo. Se pueden crear y enlazar entre si uno o varios objetos de visualización en un proyecto TwinCAT PLC Control. Para crear un objeto de visualización en el Object Organizer, seleccione la tarjeta de registro Visualización y la orden 'Proyecto' 'Insertar objeto'. El diálogo 'Nueva visualización' se abre,

introduciendo el nombre de la nueva visualización. Tras una entrada válida, esto es no fue empleado ningún nombre ya adjudicado o caracteres especiales, puede cerrar el diálogo con Aceptar. Se abre una ventana, en la que puede editar la nueva visualización. Para la denominación del objeto de visualización observe por favor lo siguiente: Una visualización no debe llevar el mismo nombre que otro módulo en el proyecto. Pueden presentarse si no, problemas ante un cambio de visualización.

Visualización TwinCAT PLC Control

Insertar elementos de visualización

Un elemento de visualización es un elemento gráfico, que se emplea al crear un objeto de visualización. Los posibles elementos se ofrecen en la barra de menú de TwinCAT PLC Control. Cada elemento recibe una configuración separada. Puede insertar en su visualización, diferentes formas geométricas así como mapas de bits, metarchivos, botones y visualizaciones existentes. Vaya al punto de menú 'Insertar' y seleccione según necesidad las órdenes 'Rectángulo', 'Rectángulo redondeado', 'Elipse', 'Polígono'‚ 'Trazo de línea', 'Curva', 'Sector circular', 'Mapa de bits', 'Visualización', 'Botón', 'Tabla', 'Instrumento de aguja', 'Indicación por barra', 'Histograma',

'Tabla

de

alarmas',

'Tendencia',

'Archivo

WMF'.

Delante de la orden seleccionada aparece una marca de verificación. También puede emplear los símbolos de la barra de herramientas. El elemento seleccionado aparece aquí oprimido (p.ej.

).

Si ahora se desplaza con el ratón sobre la ventana de edición, verá que el puntero del ratón está identificado con el símbolo correspondiente (p.ej.

). Haga clic sobre el punto inicial deseado

de su elemento y con la tecla izquierda del ratón oprimida desplace el puntero hasta que el elemento tenga las dimensiones deseadas. Si desea crear un polígono o una línea, haga clic primero con el ratón en la posición de la primera vértice del polígono o bien el punto inicial de la línea y a continuación los siguientes puntos de vértice. A través de un doble-clic en el último punto de vértice, el polígono se cierra y se delinea completamente o bien finaliza la línea. Quiere crear una curva (curva de Beziers), indique mediante clic del ratón el punto de inicio y dos siguientes, que definen un rectángulo circunscrito. Tras el tercer clic del ratón se delinea el arco de curva. A continuación puede aún modificar el punto final de curva mediante desplazamiento con el ratón y cerrar con doble-clic o enlazar mediante clics de posicionamiento adicionales directamente otro arco. Observe también la barra de estado y el cambio de modo de selección a modo de inserción. 'Insertar' 'Rectángulo'

Símbolo: Con la orden puede insertar un rectángulo como elemento en su visualización actual.

'Insertar' 'Rectángulo redondeado'

Símbolo: Con la orden puede insertar un rectángulo con vértices redondeadas como elemento de su visualización actual. 'Insertar' 'Elipse'

Símbolo: Con la orden puede insertar un círculo o una elipse como elemento en su visualización actual. 'Insertar' 'Polígono'

Símbolo: Con la orden puede insertar un polígono como elemento en su visualización actual. 'Insertar' 'Trazo de línea'

Símbolo: Con la orden puede insertar una línea como elemento en su visualización actual. 'Insertar' 'Curva'

Símbolo: Con la orden puede insertar una curva de Beziers como elemento en su visualización actual. 'Insertar' 'Sector circular'

Símbolo: Con la orden puede insertar un sector de círculo como elemento en su visualización actual. Con la tecla izquierda del ratón oprimida abra un área de la medida deseada. Se indica un óvalo con una línea de radio delineada, que mediante el movimiento del ratón cambia de forma y tamaño. El pequeño cuadrado fuera del elemento da el punto de vértice de un rectángulo virtual, que rodea el elemento. Para determinar el ángulo inicial y final del sector circular, haga clic tras insertar el

elemento sobre el punto final de la línea de radio sobre el arco circular. Si mueve el puntero del ratón con la tecla oprimida, aparecen dos pequeños cuadrados negros, que indican ambas posiciones angulares. Estos a partir de ahora pueden ser seleccionados y desplazados también por separado. Si los ángulos deben definirse de forma dinámica, abra el diálogo de configuración de la categoría 'Ángulos' para introducir las variables correspondientes. Para modificar nuevamente la forma y tamaño del elemento, haga clic sobre el punto de centro, de manera que el cursor indique flechas cruzadas oblicuamente y mueva el ratón con la tecla derecha oprimida o con ayuda de las teclas de flecha. O seleccione y desplace la posición del vértice del cuadrado fuera del elemento. Para desplazar el elemento, haga clic en la superficie libre del elemento de manera que se indiquen así flechas cruzadas verticales. 'Insertar' 'Mapa de bits'

Símbolo: Con la orden puede insertar mapas de bits como elemento en su visualización actual. Con la tecla izquierda del ratón oprimida abra un área de la medida deseada. Se abrirá el diálogo de apertura de archivos. Después de haber seleccionado el mapa de bits deseado, se inserta el la zona abierta. Si debe ser guardado un enlace al archivo de mapa de bits, o el mapa de bits debe ser insertado como elemento fijo, puede ser definido en el diálogo de configuración de mapas de bits. 'Insertar' 'Visualización'

Símbolo: Con la orden puede insertar una visualización existente en su visualización actual. Con la tecla izquierda del ratón oprimida abra un área de la medida deseada. Se abre una lista de selección de visualizaciones existentes. Tras haber seleccionado la visualización deseada, esta se inserta en la zona abierta. Una visualización insertada también se denomina como referencia. 'Insertar' 'Botón'

Símbolo: Con la orden puede insertar un botón en su visualización actual. Abra el elemento con la tecla izquierda del ratón oprimida hasta el tamaño deseado. Si sobre el botón se configura una variable alternada (Toggle), visualiza el estado de esta variable, representándola ópticamente como oprimida o bien no oprimida. A la inversa la variable naturalmente se alterna "oprimiendo" el botón.

'Insertar' 'Archivo WMF'

Símbolo: Con la orden puede insertar un metarchivo Windows. Se abre el diálogo estándar para abrir archivo, en el que se pueden buscar archivos con la extensión *.wmf. Tras la selección del archivo y cierre del diálogo a través de Aceptar el archivo se inserta como elemento en la visualización actual. En este caso no se memoriza ningún enlace sobre un archivo, con en los mapas de bits, sino los elementos contenidos del archivo wmf se insertan como grupo. 'Insertar' 'Tabla'

Símbolo: Con la orden puede insertar una tabla en la visualización actual, que sirve como representación de los elementos de un matriz. Abra el elemento con la tecla izquierda del ratón oprimida hasta el tamaño deseado. Aún antes que el elemento se visualice con su apariencia definitiva, aparece el diálogo de configuración 'Configurar tabla'. Junto a las categorías disponibles en otros elementos Tooltip (información) y derechos de acceso, se dispone aquí de las categorías 'Tabla', 'Columnas' y 'Tabla especial' para definir el contenido y el modo de representación de la tabla. 'Insertar' 'Instrumento de aguja'

Símbolo: Con

la

orden

puede

insertar

un

instrumento

de

aguja

en

su

visualización

actual

Visualisierungselementeeinf.gen2>Proc. Ofrece una escala, que se encuentra sobre una sección de arco circular, y una aguja, que tiene su origen en el centro del círculo virtual. Abra el elemento con la tecla izquierda del ratón oprimida hasta el tamaño deseado. Aún antes que el elemento sea representado en su apariencia definitiva, aparece el diálogo de configuración Configurar instrumento de aguja. Aquí puede definir diferentes parámetros y observar el efecto sobre la representación en una vista previa, antes que el elemento sea insertado definitivamente tras confirmar con Aceptar: 'Insertar' 'Indicación por barra'

Símbolo:

Con la orden puede insertar indicación por barra en su visualización actual. Esta sirve para la representación de un valor de variable en forma de una barra, que se mueve a lo largo de una escala horizontal. Abra el elemento con la tecla izquierda del ratón oprimida hasta el tamaño deseado. Aún antes que el elemento sea representado en su apariencia definitiva, aparece el diálogo de configuración Configurar indicación por barra. Aquí puede definir diferentes parámetros y observar el efecto sobre la representación en una vista previa, antes que el elemento sea insertado definitivamente tras confirmar con Aceptar: 'Insertar' 'Histograma'

Símbolo: Con la orden puede insertar un histograma en su visualización actual. Con este elemento puede ser representada una matriz una junto a la otra como barras, que modifican la altura de acuerdo al valor de la variable. Abra el elemento con la tecla izquierda del ratón oprimida hasta el tamaño deseado. Aún antes que el elemento sea representado en su apariencia definitiva, aparece el diálogo de configuración Configurar histograma. Aquí puede definir diferentes parámetros y observar el efecto sobre la representación en una vista previa, antes que el elemento sea insertado definitivamente tras confirmar con Aceptar. 'Insertar' 'Tabla de alarmas'

Símbolo: Con la orden puede insertar tabla de alarmas en su visualización actual. Abra el elemento con la tecla izquierda del ratón oprimida hasta el tamaño deseado. Aún antes que el elemento sea representado en su apariencia definitiva, aparece el diálogo de configuración 'Configurar tabla de alarmas'. Junto a las categorías disponibles en otros elementos Tooltip (información) y derechos de acceso, se dispone aquí de las categorías 'Tabla de alarmas', 'Propiedades de clasificación', 'Columnas' y 'Propiedades de selección' para definir el contenido y el modo de representación. Puede emplear la tabla de alarmas para visualizar las alarmas configuradas en la configuración de alarmas del proyecto. 'Insertar' 'Tendencia'

Símbolo: Con la orden puede insertar un elemento de tendencia en su visualización actual. Abra el elemento con la tecla izquierda del ratón oprimida hasta el tamaño deseado. La configuración del modo de

representación (ejes, variables, historial) se realiza en el diálogo de configuración de la categoría 'Tendencia'. La tendencia o también elemento de osciloscopio sirve para la representación de variables a través de un determinado horizonte de tiempo. El elemento de tendencia memoriza los datos sobre la página de cliente y los representa como gráficos. En el momento que un valor se modifica dentro del gráfico, se realiza un nuevo registro en el archivo, el cual contiene fecha/hora de los nuevos valores de la variable. El elemento de tendencia se delinea transparente. De este modo es posible seleccionar cualquier fondo (color, mapa de bits).

Visualización TwinCAT PLC Control

Posicionamiento de elementos de visualización Selección de elementos de visualización El modo de selección está activado como estándar. Para seleccionar un elemento, haga clic con el ratón sobre el elemento. Asimismo oprimiendo la tecla puede seleccionar el primer elemento de la lista de elementos y oprimiendo una vez más seleccionar el siguiente correspondiente. Si emplea el oprimiendo simultáneamente la tecla , saltará en la lista de elementos adecuadamente hacia atrás. Para marcar elementos que se encuentran debajo de otro, marque primero con un clic de ratón el elemento superior. Con la tecla oprimida ejecute los siguientes clic de ratón, para alcanzar los elementos que se encuentran por debajo. Para marcar varios elementos, mantenga oprimida la tecla y haga clic sucesivamente sobre los elementos correspondientes o con la tecla izquierda del ratón oprimida abra una ventana sobre los elementos a ser marcados. Para seleccionar todos los elementos, emplee la orden 'Herramientas' 'Marcar todo'. Si se encuentra en la lista de elementos, también puede desde allí mediante selección de una línea, seleccionar el elemento afectado a la visualización. Cambiar entre modo de selección e inserción Tras insertar un elemento de visualización, se conmuta automáticamente de nuevo al modo de selección. Si ahora se desea insertar otro elemento del mismo tipo, se puede seleccionar

nuevamente la orden correspondiente en el menú o el símbolo en la barra de herramientas. Entre el modo de selección y de inserción además de con la orden de menú (‚Herramientas' ‚Seleccionar') o símbolo

también se puede cambiar oprimiendo simultáneamente la tecla - y le

tecla derecha del ratón. En el modo de inserción aparece el símbolo correspondiente en el puntero del ratón y en la barra de estado el nombre se indica en negro. 'Herramientas' 'Seleccionar' Con esta orden se conecta o bien desconecta el modo de selección. Esto asimismo es posible a través del símbolo

o mediante la tecla derecha del ratón oprimiendo simultáneamente la tecla

. Copia de elementos de visualización Puede copiar uno o varios elementos seleccionados con la orden 'Edición' 'Copiar', la combinación de teclas + o copiar con el símbolo correspondiente e insertar con 'Edición' 'Pegar'. Otra posibilidad es, seleccionar los elementos y con la tecla oprimida hacer clic una vez más en un elemento. Con la tecla izquierda del ratón oprimida, puede retirar ahora los elementos copiados de los originales. Modificación de elementos de visualización Puede seleccionar un elemento ya insertado mediante clic del ratón sobre el elemento o bien a través de un paso por clic de teclas. En los vértices de los elementos aparece en cada caso un cuadrado negro (en elipses en los vértices del rectángulo circunscrito). Excepto en polígonos, líneas y curvas aparecen otros cuadrados en el centro de los cantos de elementos dentro los puntos de vértice.

Con el elemento seleccionado se indica simultáneamente el punto de rotación (centro de gravedad). Alrededor de este punto rota entonces el elemento con movimiento/ángulo configurado. El punto de rotación se representa como un círculo pequeño negro con una cruz blanca (

). Con

la tecla izquierda del ratón oprimida puede desplazar el punto de rotación. Se puede modificar el tamaño del elemento, haciendo clic sobre uno de los cuadrados negros y con la tecla izquierda del ratón oprimida controlar los nuevos contornos. En la selección de un polígono, una línea o una

curva, de este modo se pueden desplazar cada vértice individual. Si al mismo tiempo se oprime la tecla , se inserta en el punto de vértice un punto de vértice adicional, que puede ser movido desplazando el ratón. Con las teclas + oprimidas, se puede quitar un punto de vértice. Desplazamiento de elementos de visualización Puede desplazar uno o varios elementos seleccionados con la tecla izquierda del ratón oprimida o las teclas de flecha. Agrupamiento de elementos Los elementos se agrupan, seleccionando varios elementos y ejecuta el punto de menú 'Herramientas' 'Agrupar'. El grupo creado se comporta como un elemento individual: • Los elementos a ser agrupados reciben un marco común, con „desplazar" en este marco todos los elementos se estiran o bien contraen simultáneamente, los movimientos sólo son posibles como grupo. • Los elementos agrupados reciben propiedades comunes: esto quiere decir las entradas actúan sobre el grupo y no sobre los elementos individuales. Por esta razón los elementos también tienen un diálogo de configuración común. La característica „Cambio de color" no puede ser asignada para un grupo. Para configurar nuevamente un elemento individual, el agrupamiento debe ser levantado con la orden 'Herramientas' 'Desagrupar', en este caso, la configuración de agrupamiento se pierde. 'Herramientas' 'Traer al frente' Con esta orden trae los elementos de visualización seleccionados al primer plano. 'Herramientas' 'Poner atrás' Con esta orden pone los elementos de visualización seleccionados en segundo plano. 'Herramientas' 'Alinear' Con esta orden puede alinear varios elementos de visualización seleccionados. Se dispone de las siguientes posibilidades de alineación: • Izquierda: Todos los elementos se alinean en cada caso con su canto izquierdo, con relación al elemento que más a la izquierda se encuentra

• Adecuadamente Derecha / Arriba / Abajo • Centro horizontal: Todos los elementos son alineados por su centro de gravedad, en cada caso en el centro horizontal • Centro vertical: Todos los elementos son alineados por su centro de gravedad, en cada caso en el centro vertical 'Herramientas' 'Lista de elementos' Con esta orden se abre un diálogo, que realiza un listado de todos los elementos de visualización por su Número, Tipo y Posición. La posición se refiere a la posición X e Y del vértice superior izquierdo

(x1,

y1)

y

el

derecho

abajo

(x2,

y2)

del

elemento.

Cuando selecciona una o varias entradas, los elementos correspondientes en la visualización se marcan para un control óptico y en caso dado la indicación se despliega a la sección en la que se encuentran

los

elementos.

Con el botón Uno hacia delante se desplaza el elemento de visualización seleccionado un nivel en dirección del primer plano. Uno hacia atrás desplaza el elemento un nivel en dirección del segundo

plano.

Con el botón Hacia delante coloca el elemento de visualización seleccionado en primer plano. Con el botón Hacia atrás lo coloca en segundo plano. Debajo de la lista de elementos obtiene dependiendo del elemento marcado una de las siguientes posibilidades de entrada para modificación de tamaño y posición del elemento: • Si se trata de un rectángulo, rectángulo redondeado, elipse, mapa de bits, una visualización, botón o metarchivo, aparecen junto al texto Rectángulo (x1, y1, x2, y2) cuatro campos de entrada, en los que están indicadas las posiciones actuales x/y y pueden ser editadas. • En caso de un trazo lineal, polígonos o una curva, aparece una tabla, que indica para cada punto de posición (que se indican como pequeños cuadrados negros, en el momento que el elemento está marcado) la posición X y la posición Y en sendas líneas. También estas pueden ser aquí editadas. Para asumir en la lista de elementos y en la visualización los nuevos valores de posición colocados, oprima el botón Poner rectángulo (en 1.) o bien Poner polígono (en 2.). Con el botón Borrar se eliminan todos los elementos de visualización seleccionados en la lista de elementos. Con Deshacer y Restaurar puede deshacer y restaurar las modificaciones realizadas como en 'Edición' 'Deshacer' y 'Edición' 'Restaurar'. Los procedimientos puede observarlos en el diálogo. Para abandonar el diálogo confirme las modificaciones con Aceptar.

Diálogo Lista de elementos

Barra de estado en la visualización Cuando la focalización se encuentra sobre una visualización, se indica en la barra de estado, la posición X e Y actual del puntero del ratón en píxeles relativamente al vértice superior izquierdo de la imagen. Si el puntero del ratón se encuentra sobre un elemento o se está editando un elemento, se indica el número del mismo. En caso que haya seleccionado un elemento para insertar, este aparece asimismo (p.ej. Rectángulo).

Visualización TwinCAT PLC

Resumen

Se pueden configurar tanto los elementos gráficos individuales de una visualización como también un objeto de visualización en su totalidad. Según la unidad seleccionada se dispone de diferentes diálogos de configuración, que pueden ser llamados desde el menú 'Herramientas' o bien del menú contextual a través de la orden 'Configurar'. Allí se ponen alternativamente configuraciones fijas o bien se indican variables de proyecto, cuyos valores entonces determinan las características correspondientes dinámicamente en modo online. Además estas también pueden ser activadas a través de componentes de variables de estructura, que se ponen por elemento de visualización. Nota: Observe

la

secuencia

de

evaluación,

que

más

tarde

vale

en

modo

online:

- Los valores dinámicos, o sea suministrados a través de variables de proyecto normales o a través de variables de estructura, sobrescriben las configuraciones fijas de las configuraciones de elemento. - Cuando una propiedad de elemento se aborda tanto a través de una variable de proyecto registrada directamente en el diálogo de configuración como también a través de un componente de una variable de estructura, en modo online se evalúa primero el valor de las variables de proyecto. Se debe observar también la posibilidad del empleo de marcadores de posición así como las posibilidades especiales de entrada con miras al empleo de una visualización con el TwinCAT PLC Control, o sea como interfaz de manejo exclusiva para un programa de control. Marcador de posición En cada punto de un diálogo de configuración, en las que se introducen variables o texto, se puede colocar en lugar de variables o del texto, también un marcador de posición. Esto es conveniente, cuando el objeto de visualización no debe ser empleado inmediatamente en el programa, sino se crea para ser insertado como referencia en otros objetos de visualización. Al configurar una referencia de este tipo, los marcadores de posición pueden entonces ser reemplazados por nombres de variables o textos. Véase para ello el capítulo sobre Concepto de marcadores de posición.

Visualización TwinCAT PLC Control

Configurar elementos de visualización

'Herramientas' 'Configurar' Con esta orden se abre el diálogo 'Configurar elemento' para configurar el elemento de visualización seleccionado. El diálogo también lo obtiene mediante doble-clic sobre el elemento. Seleccione una categoría en el área izquierda del diálogo y complete en el área derecha las indicaciones deseadas. Esto se realiza ya sea a través de activación de determinadas opciones o mediante introducción de variables válidas, cuyos valores determinan la propiedad. Para los diferentes tipos de elementos, se dispone de diversas categorías de configuración. Nota: También para un grupo de elementos se dispone de diálogos de configuración. Las propiedades se refieren entonces sin embargo sólo al grupo "Elemento". Para poder configurar los elementos individuales se debe disolver el grupo. Nota: En propiedades, que se determinan tanto sobre una configuración fija, como también a través de una variable, vale más tarde en el modo online, que el valor de la variable sobrescribe aquel de la configuración fija (Ejemplo: "Color de alarma interior" puede ser definido estático en la categoría 'Colores', y adicionalmente dinámico a través de una variable en la categoría 'Variables de color'). Si la configuración se controla adicionalmente a través de un variable estructural, su valor se sobrescribe asimismo por la variable de proyecto registrada en el diálogo de configuración.

Advertencia: Instrumento de aguja, indicación de barra e histograma deben ser agrupados nuevamente antes de la configuración. En los puntos en los elementos de configuración, en los que se tornan efectivas las variables, son posibles las siguientes Entradas: • Nombre de variables, en donde se dispone de la ayuda de entrada () • Expresiones, compuestos de accesos a componentes, accesos a campos con índice constante, variables y direcciones directas • Operadores y constantes, que junto con las expresiones existentes hasta el momento pueden ser combinados a voluntad • Marcadores de posición en lugar de nombres de variables o cadenas de texto Ejemplos para expresiones admisibles: x+y 100*PLC_PRG.a TRUE NOT PLC_PRG.b 9*sin(x + 100)+cos(y+100) No son posibles llamadas de funciones. Expresiones inadmisibles conducen durante el login a un mensaje de error ("Expresión Watch errónea .."). Ejemplos de expresiones inadmisibles: fun(88) a := 9 RETURN. Para Variables globales son posibles dos modos de escritura en estos diálogos de configuración: ".globvar" y "globvar" tienen el mismo significado. El modo de escritura con punto (corresponde a

aquel que se emplea en el administrador Watch y de fórmula) sin embargo no es posible dentro de una expresión ensamblada. Ángulo En el diálogo para 'Configurar sector circular' puede registrar en cada caso en la categoría Ángulo un valor o una variable de proyecto y definir los ángulos iniciales y ángulos finales del elemento de sector circular en grados angulares. Cuando está activada la opción Mostrar sólo arco de círculo,

se

representa

sólo

el

arco

del

círculo.

Ejemplo: Entrada para ángulo inicial: "90", ángulo final: "180"

Diálogo para configurar sectores circulares

Forma En el diálogo para configurar elementos de visualización, puede seleccionar en la categoría Forma entre rectángulo, rectángulo redondeado, elipse y línea o bien polígono, trazo de línea y curva. La forma cambia al tamaño ya determinado. Diálogo para configurar elementos de visualización

Texto Diálogo para configurar elementos de visualización (Categoría Texto)

En el diálogo para configuración de elementos de visualización puede determinar un texto para el elemento en la categoría Texto. Este se introduce directamente y/o se determina una variable que lo suministra. En este caso es posible el empleo de marcadores de posición. Se definen asimismo las configuraciones básicas de fuente y orientación.

Nota: Cuando se suministran parámetros de texto, que en el diálogo presente están definidos como estáticos, adicionalmente dinámicos, esto es a través de variable (v.b. Categoría 'Variables de texto' o bien 'Capacidad de programación'), las definiciones estáticas se sobrescriben. Observe por regla general la secuencia de evaluación en modo online de definiciones múltiples de una propiedad de elemento Introduzca el texto directamente en el campo Contenido. A través de la combinación de teclas + puede introducir los saltos de línea, con + marcas de tabulaciones. Adicionalmente a la pura entrada de texto tiene las siguientes posibilidades de formateado: • Si en el texto introduce "%s", en el modo online se representa como cadena en este punto, el valor de las variables del campo 'Emisión de texto' de la categoría 'Variables'. También puede emplear una indicación de formato, que se corresponda con la función sprintf de la biblioteca C estándar: Posibles formateados de caracteres:

Carácter

Argumento / Emisión como

d,i

Número decimal

o

Número octal sin signo (sin ceros precedidos)

x

Número hexadecimal sin signo (sin 0x precedido)

u

Número decimal sin signo

c

Carácter individual

s

Cadena de caracteres

f

Valor REAL [-]m., donde se fija la exactitud de la

cantidad de d (valor predeterminado es 6). El signo positivo o negativo define alineación derecha (valor predeterminado) o bien izquierda, m define la cantidad de lugares tras la coma.

El valor de la variable se representa adecuadamente en modo online. Como entrada están permitidos todos los formateados conformes a IEC, que se adaptan al tipo correspondiente de variable. Advertencia: No se realiza ninguna comprobación, si el tipo indicado en el formato se adapta a las variables registradas en 'Presentación de texto'. Ejemplo: Introducción Introducción

en en

el el

campo campo

Contenido:

Presentación

Nivel de

texto

de p.ej.:

llenado fvar1

%2.5f (variable

cm REAL)

-> Presentación en modo online p.ej.: Nivel de llenado 32.48999 cm • Si introduce en el texto "%t", seguido de una determinada secuencia de marcadores especiales de posición, en modo online este punto se sustituye por la indicación del sistema de tiempo: Los marcadores de posición definen el formato de la presentación; vea la tabla indicada abajo. Advertencia: Delante de %t no se puede entrar ningún otro carácter ( a diferencia de p.ej. "%s", v.a.)

Marcador de posición

Formato

%a

Nombre del día de la semana, abreviado, p.ej. "Mie"

%A

Nombre del día de la semana, largo completo, p.ej. "Miércoles"

%b

Nombre de mes, abreviado, p.ej. "Feb"

%B

Nombre del mes, largo completo, p.ej. "Febrero"

%c

Fecha y hora en el formato // ::, p.ej. "08/28/02 16:58:45"

%d

Día del mes como número (01-31), p.ej. "24"

%H

Indicación de horas, formato 24 horas (01-24), p.ej. "16"

%I

Indicación de horas, formato de 12 horas (01-12), p.ej. "05" para 17 h

%J

Indicación del día (001 - 366), p.ej. "241

%m

Mes (01 - 12), p.ej. "3" para marzo

%M

Minutos (00 - 59), p.ej. "13

%p

Indicador actual AM (horas 12) para indicación en formato de 12 horas, p.ej. "AM", si en ese momento son las 9 h de la mañana.

%S

Segundos (00 - 59)

%U

Indicación de semanas como número, donde el domingo se cuenta como el primer día de la semana) (00 - 53 para 53 posibles semanas de un año)

%w

Día de la semana como número (0 - 6; domingo = 0)

%W

Indicación de semana en número, en donde lunes se considera el primer día de la semana) (00 - 53 para 53 posibles semanas de un año)

%x

Fecha en formato //, p.ej. "08/28/02"

%X

Hora en formato ::, p.ej. "16:58:45"

%y

Indicación del año sin siglos (00 - 99), p.ej. "02"

%Y

Indicación del año con siglos, p.ej. "2002"

%z, %Z

Indicación de la zona horaria (ninguna indicación en caso que la zona horaria no sea conocida), p.ej. "Hora de verano de Europa Occidental"

%%

Signo de por ciento

Ejemplo: %t%a

%b

%d.%m.%y

%H:%M:%S

-> Emisión en modo online: Mie Ago 28.08.02 16:32:45 Entre los marcadores de posición también se puede introducir un texto: %tHoy

es

el

%d.%m.%y

-> Emisión en modo online: Hoy es el 28.08.02 Nota: Si una cadena de texto debe ser asumida en un archivo de traducción, que después en el modo online posibilite una conmutación al idioma de otro país, debe ser limitada al inicio y al final con #. Ejemplo: „#Bomba 1#" o también „#Bomba# 1" Este último caso por ejemplo ahorra ante la reiterada aparición en la traducción del texto Bomba (Bomba 1, Bomba 2, etc.). • Si en el texto introduce "%", puede introducir en lugar de "PREFIJO" una secuencia de letras cualquiera, que sirve como identificador para el empleo de textos dinámicos. El prefijo se emplea además en combinación con una ID, que a su vez se determina a través de la entrada en categoría 'Variables' en el campo 'Emisión de texto'. La combinación hace referencia a una determinada versión de texto, disponible en un archivo XML, la cual define los posibles textos dinámicos. De este modo durante la marcha se indica en cada caso en texto correspondiente a la combinación actual.

El texto configurado aparecerá online según la orientación indicada horizontal izquierda, centrado

o

derecha

y

vertical

arriba,

centrado

o

abajo

en

el

elemento.

Con el botón Fuente aparece el diálogo para la selección del tipo de fuente. Seleccione el tipo de fuente deseado y confirme el diálogo con Aceptar. Con el botón Fuente estándar se configura el tipo de fuente que está seleccionado en las opciones de proyecto ('Proyecto' 'Opciones' 'Editor'). Si se modifica allí, se indican en todos los elementos este tipo de fuente, con excepción de elementos, en los que explícitamente se haya seleccionado otra a través del botón Fuente. Variables de texto Diálogo para configuración de elementos de visualización (Categoría Variables de texto)

En el diálogo para configurar elementos de visualización, puede definir en la categoría Variables de texto, para la secuencia de caracteres introducidas en la categoría 'Texto', a través de que variables de proyecto deben ser determinadas dinámicamente el color y las propiedades de la fuente. Para ello introduzca el nombre de la variable de preferencia a través de la ayuda de entrada . Las configuraciones aquí posibles, también son posibles a través de componentes de la estructura VisualObjectType. Véase para ello la descripción en la categoría "Capacidades de programación" de un elemento de visualización; allí encontrará los valores válidos y los efectos correspondientes de cada uno de los componentes de la estructura. Nota: Cuando en la categoría 'Texto' se dispone de definiciones fijas adecuadas para los parámetros de texto,

estas

se

sobrescriben

a

través

de

los

valores

de

variables

corrientes.

Observe por regla general la secuencia de evaluación en modo online de definiciones múltiples de una propiedad de elemento Los parámetros del diálogo:

Corresponde al componente Ejemplo de una

de la

entrada de una

Ejemplo-Empleo de

estructura

Parámet

Significad

variable de

las variables en el

VisualObjectT

ro

o:

proyecto:

programa:

ype:

Color de

Color de

"plc_prg.var_textc

var_textcolor=16#FF

dwTextColor

texto:

texto

olor"

00FF -> color

Indicador

Posición

"plc_prg.textpos"

textpos:=2 -> Texto

de texto:

de texto

alineado a la

(derecha,

derecha

dwTextFlags

izquierda, centrada...)

Altura de

Altura de

fuente:

fuente en

".fonth"

fonth:=16; -> Altura

ntFontHeight

de fuente 16 pt

píxeles

Nombre

Denominac

de

ión de la

fuente:

fuente

Indicador

Estilo de

es de

fuente

texto se representa

fuente:

(negrita,

en negrita

subrayado, cursiva...)

"vis1.fontn"

fontn:=arial; -> Se

stFontName

emplea Arial

"plc_prg.fontchar"

fontchar:=2 -> El

dwFontFlags

Ancho de línea En el diálogo para configurar los elementos de visualización, puede seleccionar en la categoría Ancho de línea para un elemento. Como opciones están predeterminados anchos de 1 a 5 píxeles, adicionalmente se puede introducir otro valor (Otros:), o una variable de proyecto (Variable para ancho de línea:) , esto último también a través de la ayuda de entrada (). Nota: ¡Cuando el parámetro adicionalmente se define a través de una variable de estructura (v.b. Categoría 'Capacidades de programación'), en el servicio online se evalúa de momento la variable de

proyecto

eventualmente

indicada

bajo

'Variable

para

ancho

de

línea'!

Observe por regla general la secuencia de evaluación en modo online de definiciones múltiples de una propiedad de elemento

Diálogo para configuración de elementos de visualización (Categoría Ancho de línea)

Colores

Diálogo para configuración de elementos de visualización (Categoría Colores) En el diálogo para configuración de elementos de visualización puede seleccionar en la categoría Colores, colores básicos y colores de alarma para la superficie interior y el marco de un elemento. Las opciones Sin color interior y Sin color de marco posibilitan la concepción de un elemento transparente. Nota: Cuando parámetros de colores deben ser suministrados también dinámicos, esto es, a través de una variable de sistema o bien variable de estructura (v.b. Categoría 'Variables de colores' o bien 'Capacidad de programación'), se sobrescriben las definiciones estáticas aquí realizadas. Observe por regla general la secuencia de evaluación en modo online de definiciones múltiples de una propiedad de elemento. Si en la categoría Variables en el campo Cambiar color ahora introduce una variable booleana, el elemento se representa en el color configurado, mientras que la variable sea FALSE (falso). Si la variable es TRUE (verdadero), el elemento se representa en su color de alarma. Nota: ¡La función de cambiar color recién está activa, cuando el mando se encuentra en modo online! Si desea modificar el color para el borde, oprima el botón Marco, por lo demás Interior. En cada caso se

abre

el

diálogo

para

selección

de

color.

Aquí puede seleccionar la tonalidad de color deseada, entre colores básicos y colores de definición propia. Oprimiendo el botón Definir colores puede modificar los colores de definición propia. Variables de color

Diálogo para configuración de elementos de visualización (Categoría Variables de color) Aquí puede entrar las variables de proyecto (p.ej. PLC_PRG.color_inside), cuyo valor determinan después en modo online la correspondiente propiedad: Las configuraciones aquí posibles, también son posibles a través de componentes de la estructura VisualObjectType. Por esta razón, vea la descripción para la categoría "Capacidad de programación" de un elemento de visualización; allí encontrará los valores válidos y el efecto correspondiente de cada uno de los parámetros. Nota: Cuando en la categoría 'Color' se dispone de definiciones fijas sobre parámetros de color, estas se sobrescriben en modo online con los valores de las variables aquí definidas; asimismo los valores adicionales suministrados eventualmente a través de una variable de estructura. Observe por regla general la secuencia de evaluación en modo online de definiciones múltiples de una propiedad de elemento Los parámetros del diálogo:

Parámetr o

Significado:

Ejemplo de una

Ejemplo-

Corresponde al

entrada de una

Empleo de

componente de

Color

Color de

interior:

relleno

las variables

la estructura

variable de

en el

VisualObjectTyp

proyecto:

programa:

e:

"plc_prg.var_fillcol"

var_fillcol:=

dwFillColor

16#FF00FF -> Color de relleno rosa

Color de

Color de

"plc_prg.var_fillcol_

var_fillcol_a:=

alarma

relleno en

a"

16#FF00FF

interior:

caso de

-> Color de

alarma

alarma rosa

Color

Color de

"plc_prg.var_frame

var_framecol:

marco:

marco

col"

= 16#FF00FF

dwFillColorAlarm

dwFrameColor

-> Color de marco rosa

Color de

Color del

"plc_prg.var_frame

var_framecol:

dwFrameColorAla

alarma

marco en

col"

= 16#FF00FF

rm

marco:

caso de

-> Color de

alarma

alarma rosa

Indicador

La

"plc_prg.var_col_off

var_col_off:=

es de

configuración

"

1 -> Las

relleno:

de color

asignaciones

realizada

de color para

para 'interior'

el relleno del

puedes ser

elemento no

activada

se ejecutan,

(FALSE) o

el marco

bien

permanece

desactivada

dwFillFlags

(TRUE).

Indicador

Representaci

"plc_prg.var_linetyp

var_linetype:

es de

ón del marco

e"

=2; -> El

marco:

(continuo, de

marco se

guiones, ....)

representa en

dwFrameFlags

guiones

Movimiento absoluto En el diálogo para configuración de elementos de visualización se pueden registrar variables en la categoría Movimiento absoluto en los campos Offset-X o bien Y, que desplazan el elemento en dirección X o bien Y dependiendo del valor de variable correspondiente. Una variable en el campo Escala modifica el tamaño del elemento de forma lineal al valor de la variable. El valor actual de la variable que sirve como factor de escala, se divide implícitamente por 1000, para que no deban ser utilizadas por necesidad variables reales para alcanzar una reducción del elemento. La modificación del tamaño del elemento parte siempre del punto de rotación de este. Una variable en el campo Ángulo provoca una rotación del elemento sobre su punto de giro dependiendo del valor de la variable (valor positivo = matemáticamente positivo = sentido de las agujas del reloj). El valor se evalúa en grados. En polígonos rota cada punto, esto quiere decir que el polígono gira. En todos los demás elementos rota el objeto, en donde siempre el canto superior permanece arriba. El punto de rotación aparece tras hacer clic una vez sobre el elemento y se representa con un pequeño círculo negro con una cruz blanca (

). Con la tecla izquierda del ratón oprimida puede

desplazar el punto de rotación. Nota: Cuando el parámetro se suministra adicionalmente a través de una variable de estructura (v.b. Categoría 'Capacidad de programación'), en servicio online se evalúa de momento la variable aquí indicada. Observe por regla general la secuencia de evaluación en modo online de definiciones múltiples de una propiedad de elemento

Diálogo para configuración de elementos de visualización (Categoría Movimiento absoluto) Movimiento relativo

Diálogo para configuración de elementos de visualización (Categoría Movimiento relativo) En el diálogo para configuración de elementos de visualización puede asignar en la categoría Movimiento relativo a los cantos de elementos individuales. Los cantos se mueven entonces dependiendo de los valores de variable. La posibilidad más sencilla de entrar variables en los campos

es

la

ayuda

de

entrada

().

Las cuatro introducciones indican los cuatro lados de su elemento. La posición básica de los cantos

está siempre en cero, un nuevo valor de las variables en la columna correspondiente, desplaza los límites con este valor en píxeles. Las variables introducidas deben por lo tanto ser del tipo INT. Nota: ¡Valores positivos desplazan los cantos horizontales hacia abajo o bien los cantos verticales hacia la derecha! Nota: Cuando el parámetro se suministra adicionalmente a través de una variable de estructura (v.b. Categoría 'Capacidad de programación'), en servicio online se evalúa de momento la variable aquí indicada. Observe por regla general la secuencia de evaluación en modo online de definiciones múltiples de una propiedad de elemento Variables Diálogo para configuración de elementos de visualización (Categoría Variables)

En el diálogo para configuración de elementos de visualización pueden indicar variables en la categoría Variables (como en las categorías 'Variables de texto' 'Variables de color'), que describan el estado del elemento de visualización. Utilice para ello de preferencia la ayuda de entrada (). Nota: Cuando un parámetro se suministra adicionalmente a través de una variable de estructura (v.b. Categoría 'Capacidad de programación'), en servicio online se evalúa primero las variables de

proyecto

aquí

indicada.

Observe por regla general la secuencia de evaluación en modo online de definiciones múltiples de una propiedad de elemento. Las posibilidades de configuración: Invisible: Cuando la variable booleana aquí registrada tiene el valor FALSE (falso), el elemento de visualización está visible. Si la variable posee el valor TRUE (verdadero), entonces el elemento es invisible. Desactivar entrada: Cuando la variable booleana aquí registrada tiene el valor TRUE (verdadero), todas las configuraciones de la Categoría 'Entrada' no son consideradas. Cambiar color: Cuando la variable booleana aquí registrada tiene el valor FALSE (falso), el elemento de visualización se representa en su color básico. Si la variable es TRUE (verdadero), el elemento se visualiza en su color de alarma. Presentación

de

texto:

• Si en el campo Contenido de la categoría Texto ha introducido adicional al texto o exclusivamente "%s", en modo online se representa en la visualización el valor de la variable entrada aquí en la emisión de texto. El "%s" se sustituye entonces por el valor. • Si en el campo Contenido de la categoría Texto adicionalmente introduce "%" al texto, en donde "PREFIJO" es una determinada secuencia de caracteres (véase ), entonces se interpreta la variable entrada aquí para la emisión de texto o bien el valor numérico aquí registrado como ID, que en combinación con el prefijo, sirve como referencia sobre un texto, que está descrito en un archivo XML. Este texto se indica entonces en modo online en lugar del "%". De este modo es posible una modificación dinámica del texto a ser indicado. Véase para ello también la descripción para el diálogo 'Herramientas' 'Configuraciones', Categoría Idioma, así como para la conmutación de idioma en la visualización. • Si desea que el valor de las variables sea editado en modo online por teclado, active la opción 'Entrada de texto de variable' 'Emisión de texto' en la Categoría Entrada. Emisión Tooltip: Aquí puede indicar una variable del tipo STRING (cadena), cuyo valor actual aparece como Tooltip (información) del elemento en la visualización.

Entrada

Diálogo para configuración de elementos de visualización (Categoría Entrada) Alternar variable: Cuando esta opción está activada, alterna en modo online con cada clic de ratón sobre el elemento, el valor de las variables que se encuentran indicadas detrás en el campo de entrada. Para la entrada puede llamar la ayuda de entrada a través de . El valor de la variable booleana se modifica con el primer clic del ratón al valor TRUE (verdadero) o FALSE (falso) seleccionado y al soltar retorna nuevamente al contravalor FALSE o TRUE correspondiente en cada caso. Pulsar variable: Cuando esta opción está activada, puede hacer cambiar en modo online el valor de variables booleanas, indicadas detrás en el campo de entrada entre TRUE (verdadero) y FALSE (falso). Ubique el puntero del ratón sobre el elemento, oprima la tecla del ratón y manténgala oprimida. Si está activada la opción Pulsar FALSE, al oprimir el valor se pone en FALSE (falso), en caso contrario sobre TRUE. En el momento que vuelve a soltar la tecla, el valor de la variable retorna al valor de partida. Zoom to vis...: Cuando esta opción está activada, puede indicar en el campo siguiente, a que visualización debe cambiarse en modo online, mientras que se hace clic con el ratón sobre el elemento. En este caso recién se abre la ventana de la visualización de objetivo y a continuación se cierra la actual. Tiene

las

siguientes

posibilidades

de

entrada:

• El nombre de un objeto de visualización del proyecto actual (véase Object Organizer) • Si se debe saltar a una visualización de referencia que contiene marcadores de posición, estos

pueden ser sustituidos por nombres de variables o bien textos directamente a la llamada. Siga para ello

la

siguiente

sintaxis:

(:=, :=,..., :=) En este modo de escritura se omiten los símbolos ‚$‘. Al traducir la visualización se comprueba, si el texto entrado se corresponde con la cantidad de valor fijada, en caso negativo se emite una advertencia

adecuada.

Ejemplo: Llamada de la visualización visu1, en donde los marcadores de posición empleados en la visu1 $var_ref1$ y $var_ref2$ se sustituyen por las variables PLC_PRG.var1 o bien PROG.var1: visu1(var_ref1:=PLC_PRG.var1,

var_ref2:=PROG.var1)

• Una variable de programa del tipo STRING (cadena) (p.ej. PLC_PRG.xxx), a través de la cual se puede especificar el nombre del objeto de visualización (p.ej. ‚visu1'), al que debe cambiarse tras hacer

clic

con

el

ratón

(p.ej.

xxx

:=

‚visu1').

• La orden ‚ZOOMTOCALLER': En este caso mediante clic del ratón sobre el elemento en modo online, se logra un retroceso en la visualización llamada, en caso que se haya configurado una constelación de este tipo. Nota: La variable implícita CurrentVisu (tipo STRING (cadena), véase también en el Apéndice A sobre variable implícitas (de sistema)), describe el nombre del objeto de visualización actualmente abierto. Esta puede por ejemplo ser empleada en una aplicación, para controlar que visualización debe ser abierta, o bien para comprobar, cuales son las que están abiertas en ese momento. No obstante esto sólo es posible, cuando el nombre de los objetos de visualización está definido en mayúsculas. (véase "Crear un objeto de visualización"). Ejemplo: CurrentVisu:='TC_VISU'; Ejecutar programa: Cuando esta opción está activada, puede entrar en el campo de entrada detrás uno o varios programas ejecutables, ASSIGN u "órdenes INTERNAS" especiales, que entonces haciendo clic en el ratón sobre el elemento se ejecutan en modo online. Para ello recibe a través del botón "..." un diálogo en los que las ordenes pueden ser seleccionadas (Agregar) y ubicadas en la secuencia deseada (antes, después). Por ejemplo existe una orden para la Conmutación de idioma en una visualización. Véase para aclaración de las posibles órdenes: 'Posibilidades especiales de entrada para TwinCAT PLC HMI'. Ejemplo: notepad C:/help.txt (se inicia el programa del bloc de notas notepad y se abre el archivo de ayuda help.txt)

Nota: Entrada de texto de la variable 'Emisión de texto': Cuando esta opción está activada, obtendrá en esta visualización en modo online la posibilidad de entrar un valor, que se escribe en la variable tras oprimir la , que se encuentra en el campo Emisión de texto de la categoría Variables. Seleccione de la lista de selección, de que modo entonces, esta entrada puede ser realizada en modo online: Texto: Se abre un marco de edición, en el que se teclea el valor. Numpad o bien Keypad: Se abre una ventana con la reproducción del teclado numérico o bien alfanumérico, sobre la cual mediante activación de los correspondientes elementos de tecla, se puede entrar un valor. Esto por ejemplo es conveniente para la visualización, que debe ser operada a través de pantallas táctiles. Numpad para entrada del valor en modo online:

El rango de valor para la entrada de valores para variables no-STRING puede ser restringido mediante indicación del mínimo y máximo valor posible en los campos Min: y Max:. Observe la secuencia de evaluación en modo online ante definición múltiple de una propiedad de elemento Tooltip En el diálogo Texto para Tooltip (información) obtendrá un campo de entrada para texto, que aparece en una ventana de texto, en el momento que el cursor del ratón en modo online se conduce sobre el elemento. El texto puede ser provisto con saltos de línea mediante la combinación de teclas +.

Observe la secuencia de evaluación en modo online ante definición múltiple de una propiedad de elemento Derechos de acceso Las posibilidades de operación y la vista de una visualización en modo online, pueden ser concebidas de forma diferente para distintos grupos de usuarios, asignándoles por elemento diferentes derechos de acceso. Se dispone de ocho grupos de trabajo previstos en la administración de usuarios del proyecto (véase también 'Proyecto' 'Objeto' 'Propiedades' o bien 'Proyecto' 'Contraseñas para grupos de trabajo'). La asignación de derechos se realiza a través de la activación del derecho de acceso correspondiente en el siguiente diálogo en la categoría Derechos de acceso de la configuración de un elemento de visualización: Diálogo para configurar los derechos de acceso para un elemento de visualización (Categoría Derechos de acceso)

Los derechos de acceso para elementos de visualización tienen el siguiente significado: Ningún

acceso

El

elemento

no

es

visible

Acceso de lectura El elemento es visible pero no operable (no es posible ninguna introducción) Acceso completo El elemento es visible y operable Para los derechos de acceso asignados a un elemento de visualización se asumen inmediatamente para todos los elementos restantes en todas las visualizaciones contenidas en el proyecto, cuando se activa la opción Asumir para todos los elementos de visualización.

¡Observe, que los derechos de acceso asignados a través de 'Proyecto' 'Objeto' 'Propiedades' para un módulo de visualización completo (objeto de visualización) son independientes de aquellos de los elementos de visualización individuales! Capacidad de programación de una visualización Junto a la posibilidad de realizar configuraciones fijas para el aspecto de un elemento en los diálogos de configuración, también se puede realizar un control dinámico a través de variables. Para ello los elementos de visualización pueden ser enlazados con variables de proyecto normales, no obstante se le puede asignar también al elemento una variable de estructura dirigida, que se emplea exclusivamente para la programación de las propiedades: Observe

la

secuencia

de

evaluación,

que

más

tarde

vale

en

el

modo

online:

- Los valores dinámicos, o sea suministrados a través de variables de proyecto normales o a través de variables de estructura, sobrescriben las configuraciones fijas de las configuraciones de elemento. - Cuando una propiedad de elemento se aborda tanto a través de una variable de proyecto registrada directamente en el diálogo de configuración como también a través de un componente de una variable de estructura, en modo online se evalúa primero el valor de las variables de proyecto. Para la configuración de las propiedades de elementos a través de una variable de estructura, proceda de la siguiente manera: Entre en el diálogo de configuración de la categoría Capacidad de programación en el campo Nombre de objeto: un nombre de variable nuevo, inequívoco (!) en el proyecto. Para ello debe activar la opción a través de un clic de ratón sobre el cuadro. La variable recibe automáticamente el tipo de la estructura VisualObjectType, que es parte integrante de una biblioteca. La declaración se realiza implícita y no es inmediatamente visible en el proyecto. Tras la siguiente ejecución de traducción se pueden emplear en el proyecto las variables de estructura asignadas al elemento de visualización. (Sugerencia para ello: Active la función Intellisense 'Listar componentes' en las opciones de proyecto, categoría Editor, para que tras la entrada del nombre de variable, seguido de un punto, se obtengan los elementos de estructura en una lista de selección). Si por ejemplo ha entrado un nombre de objeto "visu1_line" para un elemento de visualización, puede determinar en el programa p.ej. con visu1_line.nLIneWidth:=4 el ancho de línea para este elemento.

Diálogo para configuración de la capacidad de programación de un elemento de visualización (Categoría Capacidad de programación) La estructura VisualObjectType: La siguiente tabla muestra todos los elementos disponibles en la estructura VisualObjectType y la posibilidad de configuración correspondiente en los diálogos de las diferentes categorías: Al inicio del nombre del componente está integrado el tipo de dato. En este caso significa: n

INT

dw

DWORD

b

BOOL

st STRING

Posibilidade Ejemplo

s adecuadas de ajuste en

Componente

(para el elemento fue

el diálogo de

definido el nombre de

configuració

(+tipo de dato)

Significado

objeto "vis1".) )

n:

nXOffset:INT;

Desplazar el

vis1.nXOffset:=val2;

- Cat.

elemento en

(El elemento se coloca en

Movimiento

dirección X

posición X=val2)

absoluto:

Offset X

nYOffset:INT;

Desplazar el

vis1.nYOffset:=22;

- Cat.

elemento en

(El elemento se coloca en

Movimiento

dirección Y

posición Y=val2)

absoluto: Offset Y

nScale:INT;

Modificación

vis1.nScale:=plc_prg.scale_v

- Cat.

de tamaño

ar;

Movimiento

(El tamaño del elemento se

absoluto:

modifica linealmente con la

Escalonamien

modificación de la variable

to

plc_prg.scale_var)

nAngle:INT;

Girar el

vis1.anglevar:=15;

- Cat.

elemento

(El elemento rota15 grados

Movimiento

alrededor de

en el sentido de las agujas

absoluto:

su punto de

del reloj)

Ángulo

Ejemplo

Posibilidades

rotación

Componente

Significado

(+tipo de dato)

adecuadas de (para el elemento fue definido el nombre de objeto "vis1".) )

ajuste en el diálogo de configuración:

nLeft:INT;

Desplazar el

vis1.nLeft:=val2;

- Cat.

canto del

(El canto del elemento se

Movimiento

elemento

mueve a posición X=val2)

absoluto:

izquierdo en

Offset X

dirección X

nTop:INT;

Desplazar el

vis1.nTop:=val2;

- Cat.

canto superior

(El canto del elemento se

Movimiento

del elemento

mueve a posición Y=val2)

en dirección Y

absoluto: Offset X

(pos.n.abaj o)

nRight:INT;

Desplazar el

vis1.nRight:=val2;

- Cat.

canto del

(El canto del elemento se

Movimiento

elemento

mueve a posición X=val2)

absoluto:

derecho en

Offset X

dirección X

nBottom:INT;

Desplazar el

vis1.nBottom:=val2;

- Cat.

canto inferior

(El elemento se mueve a

Movimiento

del elemento

posición X=val2)

absoluto:

en

Offset X

dirección Y (pos.  

bInvisible:BOOL;

Provoca

vis1.visible:=TRUE;

- Cat.

cambio entre

(El elemento es invisible)

Colores:

visible e

ningún color

invisible por

interior +

cambio de

ningún

TRUE y

color de

FALSE

marco - Cat. Variables de color: Indicadores de relleno+Indica dores de marco

stTextDisplay:

Texto, que

STRING;

aparece en el elemento

vis1.TextDisplay:='ON / OFF';

- Cat. Texto: Entrada en

El elemento se rotura con

'Contenido'

este texto

bToggleColor:

Provoca

vis1.bToggleColor:=alarm_var

- Cat.

BOOL;

cambio de

;

Entrada:

color por

(Cuando el indicador de

Alternar

cambio de

alarma alarm_var se torna

variable:

TRUE y

TRUE, el elemento cambia al

- Cat.

FALSE

color que recibe a través de

Variables:

los componentes

Cambio de

dwFillColorAlarm,

color

dwFrameColorAlarm o bien por configuración en el dialogo de config. cat. Colores.

bInputDisabled:

Entradas de

vis1.bInputDisabled:=FALSE;

- Cat.

BOOL;

categoría

(ninguna posibilidad de

Variables:

Entrada se

entrada sobre este elemento)

Desactivar

observan con

entrada:

TRUE, con FALSE no

stTooltipDisplay:S

Texto del

vis1.stTooltipDisplay:=

- Cat. Texto

TRING;

Tooltip

'Interruptor para .....';

para Tooltip:

(información)

Entrada en 'Contenido'

Componente

Significado

Ejemplo

(+tipo de dato)

Posibilidades adecuadas de

(para el elemento fue definido el nombre de objeto "vis1".) )

ajuste en el diálogo de

configuración:

dwTextFlags:

Posición del

vis1.dwTextFlags:=24;

- Cat. Texto:

DWORD;

texto:

(El texto se ubica en el centro

Opciones de

del elemento (4 + 20)

horizontal y

1 alineado a

vertical

la izquierda

- Cat.

2 alineado a

Variables de

la derecha:

texto:

4 centrado

Indicadores

horizontal: 4

de texto

8 arriba 10 abajo 20 centrado vertical Advertencia: ¡Debe estar siempre puesto tanto el posicionamien to horizontal como el vertical (adición de los valores)!

dwTextColor :

Color de texto

vis1.dwTextColor :=

- Cat. Fuente

DWORD;

(para entrada

16#00FF0000;

de texto |

de los valores

(El texto se representa en

Color- Cat.

de color

azul)

Colores:

véase a

- Cat.

continuación

Variables de

de la tabla)

texto: Color de texto

nFontHeight : INT;

Altura de

vis1.nFontHeight:=16;

- Cat. Texto:

fuente en

(Altura de texto es 16 pt)

Fuente |

píxeles.

Grado'

Debe estar en

- Cat.

el rango de

Variables de

10-96.

texto: Altura de fuente

dwFontFlags :

Representaci

vis1.dwFontFlags:=10;

- Cat. Texto:

DWORD;

ón de fuentes.

(El texto se representa en

Fuente |

Se pueden

negrita y tachado)

Estilo

poner los

- Cat.

siguientes

Variables de

indicadores:

texto: Indicadores

1 cursiva

de fuente

2 negrita 4 subrayado 8 tachado + Combinacione s por adición de valores

stFontName :

Nombre de

vis1.stFontName:=’Arial’;

- Cat. Texto:

STRING;

fuente

(Arial como tipo de fuente

Fuente |

para el texto)

Tipo de fuente - Cat. Variables de texto: Nombre de fuente

nLineWidth : INT;

Ancho de

vis1.nLWidth:=3;

- Cat. Ancho

línea del

(El marco es de 3 píxeles de

marco del

ancho)

de línea

elemento (Cantidad de píxeles)

dwFillColor :

Color de

vis1.dwFillColor":=

- Cat.

DWORD;

relleno.

16#00FF0000;

Colores:

(para entrada

(El elemento en "estado

Colores |

de los valores

normal" es azul)

Interior

Componente

de color

- Cat.

véase a

Variables de

continuación

color: Color

de la tabla)

interior

Significado

Ejemplo

(+tipo de dato)

Posibilidades adecuadas de

(para el elemento fue definido el nombre de objeto "vis1".) )

ajuste en el diálogo de configuración:

dwFillColorAlarm

Color de

vis1.dwFillColorAlarm:=

- Cat.

: DWORD;

relleno en

16#00808080;

Colores:

caso de

(cuando la variable togglevar

Color de

alarma (por

se pone en TRUE, elemento

alarma |

TRUE de

se pone en gris)

Interior

componente

- Cat.

bToggleColor,

Variables de

véase arriba)

color:

(para entrada

Color de

de los valores

alarma

de color

interior

véase a continuación de la tabla)

dwFrameColor:

Color de

vis1.dwFrameColor:=

- Cat.

DWORD;

marco

16#00FF0000; (El marco en

Colores:

"estado normal" es azul)

Color |

(para entrada

Marco

de los valores

- Cat.

de color

Variables de

véase a

color: Color

continuación

para el marco

de la tabla)

dwFrameColorAla

Color del

vis1.dwFrameColorAlarm:=16

- Cat.

rm: DWORD;

marco en

#00808080; (cuando la

Colores:

caso de

variable vis1.bToggleColor se

Color de

alarma (por

pone en TRUE, el marco del

alarma

TRUE de

elemento se pone gris)

Marco

componente

- Cat.

bToggleColor,

Variables de

véase arriba)

color:

(para entrada

Color de

de los valores

alarma para

de color

marco

véase a continuación de la tabla)

dwFillFlags:

Color, como

vis1.dwFillFlags:=1;

- Cat.

DWORD;

definido por

(el elemento se torna

Colores:

variable de

invisible)

ningún color

color, puede

interior +

ser conectado

ningún

y

color de

desconectado

marco

.

- Cat. Variables de

0= conectado, >0

color: Indicadores

=

de relleno

desconectado

dwFrameFlags:

Representaci

vis1.FrameFlags:=1;

- Cat.

DWORD;

ón del marco

(el marco se representa de

Variables de

guiones)

color:

0 línea

Indicadores

continua

de marco

1 de guiones ( --- ) 2 punteada ( ) 3 de guiónpunto ( _._) 4 de guiónpunto-punto (_.. ) 8 desactivar línea

La introducción de valores de colores: Ejemplo: e1.dwFillColor := 16#00FF00FF ; Un color se indica como número hexadecimal, que resulta de las proporciones de azul/verde/rojo (RGB). Los primeros dos ceros tras "16#" deben ser puestos, para completar el tamaño DWORD. Para cada valor de color se dispone de 256 (0-255) colores FF

Proporción

azul

00

Proporción

verde

FF Proporción rojo Ejemplo para un elemento de visualización intermitente: Para un elemento rectangular se crea una variable global "intermitente" del tipo "VisualObjectType". En un programa o módulo de funciones se puede modificar entonces el valor de un elemento dentro de la estructura. PROGRAM PLC_PRG

VAR n:INT:=0; bMod:BOOL:=TRUE; END_VAR (* Elemento intermitente *) n:=n+1; bMod:= (n MOD 20) > 10; IF bMod THEN blinker.nFillColor := 16#00808080; (* Gris *) ELSE blinker.nFillColor := 16#00808080; (* Azul *) END_IF

Visualización TwinCAT PLC Control

Configurar tabla En el momento que se inserta en la visualización una tabla para representación de una matriz, se abre el diálogo 'Configurar tabla'. Junto a las categorías conocidas para otros elementos para configuración de Tooltip (información) y derechos de acceso, se dispone de las siguientes categorías para definir la apariencia y contenido de la tabla:

Categoría Tabla:

Diálogo para configurar una tabla, categoría Tabla Indique aquí las siguientes configuraciones de tabla: Matriz de datos: Entre un arreglo de su proyecto, cuyos campos deben ser representados en la tabla. Utilice la ayuda de entrada () o bien la función Intellisense. Título de columnas, Título de filas: Active esta opción, cuando en la tabla deban ser indicados los títulos de columnas o bien de filas. El título de filas (en el borde izquierdo del campo de la tabla) corresponde al índice de la matriz, el título de columnas puede ser definido en la categoría 'Columnas'.

Categoría Columnas:

Diálogo para configurar una tabla, categoría Columnas Aquí define los Títulos de columnas para los elementos de la matriz. En la parte izquierda de la ventana encontrará los elementos disponibles por índice de la matriz. Por ejemplo para la matriz de una estructura de todos los elementos de estructura. A través de las teclas de flecha (>, > se transfieren todos simultáneamente. Para modificar ahora la representación predefinida en la columna de tabla para uno de los elementos, seleccione la entrada y oprima el botón Propiedades de columnas.. Se abre el diálogo Configurar columnas:

Diálogo para configurar una tabla, categoría Columnas, Propiedades de columnas En el campo de texto Título de columna aparece primero el título asignado automáticamente (en la matriz de una estructura p.ej. "PLC_PRG.arr1[INDEX].iNo" para la columna, que representará el

elemento de estructura "iNo"), que puede editar. Además se puede definir el Ancho de columna (cantidad de caracteres). Editar la configuración para todos los campos de una columna: Como estándar se representan los campos de las tablas como sencillos rectángulos, las entradas no son editables. Sin embargo si activa el botón Emplear plantilla, se puede seleccionar ellos también como una representación de mapa de bits o botones y se pueden modificar los parámetros de la plantilla. Una plantilla significa un registro predefinido de configuraciones, p.ej. una determinada definición de ancho de línea, posibilidad de entrada de texto, etc. Si desea modificar estos, puede hacerlos a través del conocido diálogo de configuración para Rectángulo, Mapa de bits, Botón, que obtendrá a través del botón Editar plantilla. Como estándar se representan los campos de las tablas como sencillos rectángulos, las entradas no son editables. Sin embargo si para la columna actualmente marcada marca el botón Editar plantilla, se pueden modificar las propiedades de los campos de esta columna, p.ej. una determinada definición de ancho de línea, posibilidad de entrada de texto etc. La plantilla (Template) vale para todos los campos de la columna actualmente seleccionada y puede ser editado a través del conocido diálogo de configuración para un elemento de visualización. En caso que en la plantilla sólo se deben poner propiedades o bien entradas para celdas individuales, se pueden emplear los siguientes marcadores de posición, que definen fila y columna: $ROWCONST$, $COLCONST$, INDEX. (INDEX tiene el mismo efecto que $ROWCONST$).

Ejemplo para el empleo de marcadores de posición en las plantillas de columnas Puede visualizar una matriz "arr1 [0..2] of BOOL" (-> Tabla con 1 columna) con una tabla y en servicio online al hacer clic con el ratón sobre un campo de la tabla este debe cambiar al color de alarma rojo y ante el siguiente de vuelta al color básico. A la vez el correspondiente parámetro de la matriz

tiene

que

ser

alternado.

Para ello active 'Emplear plantilla' en el diálogo de configuración para la columna de la tabla y defina

la

Categoría

'Entrada',

Categoría

plantilla 'Colores':

acción

de 'Alternar Color

la

siguiente

variable': de

"PLC_PRG.arr1[INDEX]. alarma

Categoría 'Variables', acción 'Cambiar color': "PLC_PRG.arr1[INDEX]. Categoría líneas: En el diálogo líneas puede definir la Altura de líneas en píxeles.

manera: rojo.

Diálogo para configurar una tabla, categoría Líneas Categoría Selección:

Diálogo para configurar una tabla, categoría Selección En el diálogo Selección pueden realizarse las siguientes configuraciones para representación y comportamiento de selección en la tabla: Tipo de selección: Aquí determina por su parte, que selección se realiza, cuando en modo online hace clic sobre una celda: Seleccionar celdas individuales: Sólo se selecciona la celda que se ha marcado con clic. Sólo Sólo

seleccionar seleccionar

línea: columna:

Se Se

selecciona selecciona

la la

línea columna

completa. completa.

Seleccionar Enmarcar

línea celdas

y

columna:

Se

seleccionadas:

selecciona Una

celda

la

línea

y

la

seleccionada

columna recibe

completa. un

marco.

Variable Selección X, Variable Selección Y: Aquí puede registrar siempre una variable de proyecto, que indique el índice X o bien el Y del campo de la tabla seleccionado. Ejemplo: Tabla para indicación de la matriz de una estructura: Cree en su proyecto la siguiente estructura: TYPE strucTab : STRUCT iNo: INT; bDigi : BOOL; sText:STRING; byDummy: BYTE; END_STRUCT END_TYPE Defina en PLC_PRG la siguiente matriz: arr1:ARRAY [1..5] OF strucTab; y las siguientes variables: selX:INT; selY:INT; Inserte en la visualización una tabla y configúrela de la siguiente manera: Cat. Tabla: Matriz de datos: PLC_PRG.arr1 Cat. Columnas: (Responsa la pregunta del diálogo que aparece con SI) - Transfiera los elementos iNo, bDigi, sText a la ventana derecha - Seleccione en la ventana derecha la primera entrada (PLC_PRG.arr1[INDEX].iNo), oprima el botón Propiedades de columnas y modifique el título de la columna a "Número". Confirme con Aceptar y defina también nuevos títulos de columna para las

otras dos entradas (p.ej. "Valor" y "Texto"). – En la categoría 'Tabla espec.' entre en Variable Selección X: "PLC_PRG.selX" y en Variable Selección Y: "PLC_PRG.selY". Active la opción 'Enmarcar celdas seleccionadas'. Oprima el botón 'Color de selección' y elija un color. Cierre el diálogo de configuración con Aceptar. El elemento de tabla ahora debería presentar el siguiente aspecto.

En el borde izquierdo la numeración del índice de la matriz, arriba el título de la columna de los tres elementos de estructura seleccionados para la indicación. Puede modificar los anchos de columna, llevando con el ratón las líneas separadoras hacia la izquierda o hacia la derecha, cuando el puntero

del

ratón

aparece

como

doble

flecha

horizontal.

En modo online aparecen en los campos de la tabla los valores actuales de elementos de matriz. Cuando hace clic con el ratón sobre un campo de tabla, se rodea con un marco y en el color seleccionado aparece. Por ejemplo:

Configurar instrumento de aguja

Diálogo para configurar un instrumento de aguja Este diálogo abre automáticamente, en el momento que se inserta un instrumento de aguja en la visualización. Una vista previa muestra en cada caso inmediatamente la apariencia del elemento de acuerdo a los parámetros configurados: Tipo de aguja: Seleccione entre 'Flecha normal', 'Flecha estrecha', ''Flecha ancha' y 'Aguja fina', que debe mostrar en cada caso el valor actual sobre la escala indicadora. Ángulo inicial, Ángulo final: Introduzca aquí en ° grados (grados angulares) la posición para el inicio y el final de la escala indicadora sobre un arco circular (Por ejemplo defina un ángulo inicial de 180° y un ángulo final de 0° que representa la escala indicadora en un semicírculo curvado hacia arriba). Color de la aguja: Este botón abre el diálogo estándar para selección de un color para la aguja. Variable/Escala: Este botón abre el diálogo Configurar escala indicadora:

Diálogo para configurar la división de escala de un instrumento de aguja Inicio de escala, Final de escala: Valor inferior y superior sobre la escala indicadora, p.ej. "-4" y "4". División principal de la escala: Indicación, en cuantos pasos deben ser plenamente indicados los valores de escala desde el inicio de la escala hasta el final de ella (esto es, rotulación + trazo de escala). Por ejemplo con la introducción de "2" se indica cada segundo número entero de la escala. División de la escala: Adicionalmente a la escala principal (rotulación + trazos largos de escala) se puede definir aquí la indicación de una subescala, que consiste sólo de trazos cortos adicionales de escala sin rotulación. Unidad: Se puede introducir la unidad de la escala, p.ej. "cm" o "seg". La unidad se indica en el origen de la aguja. Formato de escala (Sintaxis C): De acuerdo a la sintaxis C se puede indicar aquí el formato de representación de indicación de la rotulación de la escala; véase para ello bajo categoría 'Texto'. Por ejemplo una entrada de %1.1f suministra una indicación de valores de escala como número decimal con un lugar delante y uno detrás de la coma (p.ej. "12.0") Variable: La variable aquí entrada define la posición de la aguja (p.ej. "PLC_PRG.posvar") Elección de fuente: Este botón abre el diálogo estándar para determinación de la representación de la fuente en el instrumento de aguja

Áreas de color: Este botón abre el diálogo Configuración de áreas de color: Aquí puede determinar un color para cada área de la escala indicadora: Inicio de área, Final de área: Introduzca aquí el valor inicial y final del área de la escala, que debe contener el color a ser definido a continuación: Selección de color: Este botón conduce al diálogo estándar para selección de un color. Confirme su selección con Aceptar, con lo que el diálogo se cierra nuevamente y oprima el botón Agregar, con lo que el color y el área de la escala seleccionados se visualizan en la ventana de las áreas activas. Para eliminar un área de color, marque este en la ventana y oprima el botón Quitar.

Diálogo para configurar un área de color Cuando está activada la opción Áreas de color permanente, las áreas de color definidas se visualizan siempre, en caso contrario en el modo online, sólo se indica el color en el que se encuentra

el

valor

de

la

variable

actual.

Rotulación: Según la opción interior o exterior activada la rotulación de la escala indicadora se representa sobre el lado interior o exterior del arco de la escala. Otras configuraciones: Marco interior, Marco exterior: Cuando está activada la opción, la escala indicadora recibe una línea delimitadora interior y/o exterior.

Flecha adicional: Adicionalmente a la aguja se representa una pequeña flecha directamente sobre la escala indicadora. Configurar indicación por barra

Diálogo para configurar una indicación por barra Este diálogo se abre automáticamente, en el momento que se inserta un elemento de indicación por barra en la visualización, para representar un valor de variable a través de la longitud de una barra a lo largo de una escala horizontal o vertical. Una vista previa muestra en cada caso inmediatamente la apariencia del elemento de acuerdo a los parámetros configurados: Tipo de diagrama: Seleccione entre 'Escala junto a la barra', 'Escala en la barra' y 'Barra en la escala'. Alineación: Seleccione, si la indicación debe ser realizada a través de una barra horizontal o vertical. Dirección de marcha: Seleccione, si los valores de la escala indicadora deben aumentar de izquierda a derecha o de derecha a izquierda. Color de la barra: Este botón abre el diálogo estándar para la selección de un color para la barra fuera del estado de la alarma (véase color de alarma). Cuando está activada la opción 'Emplear áreas de color' (véase abajo), no es posible aquí ninguna entrada, o bien estas están desactivados. Color de alarma: Este botón abre el diálogo Configurar alarma, en el que determina ante que valor cambia la barra al color de alarma y cual es este. Para ello introduzca en el campo de entrada de

texto el valor límite deseado y active una condición mayor o menor para definir si el valor debe activar un estado de alarma al sobrepasar o estar por debajo de ese valor. Oprima el botón Color de alarma, para elegir el color de alarma en el diálogo estándar de selección de color. Cierre ambos diálogos con Aceptar para confirmar las entradas y para retornar al diálogo principal de configuración para la indicación por barra. Cuando está activada la opción 'Emplear áreas de color' (véase abajo), no es posible aquí ninguna entrada, o bien estas están desactivados. Variable/Escala: Este botón abre el diálogo Configurar escala indicadora y variable, que se corresponde con el de un elemento de instrumento de aguja. Marco de elemento: Cuando esta opción está activada, la indicación por barra recibe un marco. Fondo de la barra: Cuando esta opción está activada, se representan el área de indicación completa definida como barra negra detrás de la actualmente representada, en caso contrario se indica sólo la barra que muestra el valor actual. Emplear áreas de color: Cuando esta opción está activada, no valen las configuraciones realizadas bajo Color de barra y Color de alarma, sino las configuraciones de área de color que han sido definidas a través del botón Definir áreas de color. De forma análoga al procedimiento con el elemento de instrumento de aguja, se abre para ello el diálogo 'Configuración de áreas de color'. Configurar histograma Un elemento de histograma puede ser empleado para visualizar una matriz. Los valores del elemento de matriz pueden ser representados uno junto al otro como barra vertical o trazos.

Diálogo para configurar un histograma El diálogo de configuración se abre automáticamente, en el momento que se inserta el elemento de histograma en la visualización. Una vista previa muestra en cada caso inmediatamente la apariencia del elemento de acuerdo a los parámetros configurados: Representación: Seleccione aquí una de las opciones Barra o Trazos. Indicar trazos horizontales: Cuando esta opción está activada, se ponen líneas horizontales de acuerdo a la división de la escala entre las escalas dispuestas a la izquierda y a la derecha. Color de la barra: Este botón abre el diálogo estándar para la selección de un color para la barra fuera del estado de la alarma (véase color de alarma). Cuando está activada la opción 'Emplear áreas de color' (véase abajo), no es posible aquí ninguna entrada, o bien estas están desactivados. Color de alarma: Este botón abre el diálogo Configurar alarma, en el que determina ante que valor cambia la barra al color de alarma y cual es este. Para ello introduzca en el campo de entrada de texto el valor límite deseado y active una condición mayor o menor para definir si el valor debe activar un estado de alarma al sobrepasar o estar por debajo de ese valor. Oprima el botón Color de alarma, para elegir el color de alarma en el diálogo estándar de selección de color. Cierre ambos diálogos con Aceptar para confirmar las entradas y para retornar al diálogo principal

de configuración para la indicación por barra. Cuando está activada la opción 'Emplear áreas de color' (véase abajo), no es posible aquí ninguna entrada, o bien estas están desactivados. División de la escala: Este botón abre el diálogo Configurar escala indicadora, que se corresponde con la de un elemento de instrumento de aguja. Áreas de color: Este botón abre el diálogo Configuración de áreas de color: Aquí puede determinar de acuerdo al procedimiento con el elemento de instrumento de aguja, un color para cada área de la escala indicadora. Cantidad de barras: Indique aquí la cantidad deseada de barras. Ancho de barra: Introduzca aquí el ancho de la barra en porcentaje del ancho total disponible para la barra. Ejemplo Vea en la siguiente ilustración un ejemplo de la representación online de un histograma en representación como 'Trazos' o bien 'Barra' para por ejemplo una matriz [0..4] of INT. Para ello fueron configurados una cantidad de barras de "5", el inicio de la escala "-4", el final "24", la división principal fue puesta en "2", la subdivisión en "1" y el rango de escala de 0 - 8 con fondo de color diferente que el resto. Además las barras deben asumir el color de alarma azul a partir de un valor de variable 8.

Visualización TwinCAT PLC Control

Configurar la tabla de alarmas El elemento tabla de alarmas sirve para la visualización de alarmas, que deben estar adecuadamente

configuradas

en

la

configuración

de

alarmas.

En el momento que se inserta un objeto de visualización, se abre el diálogo 'Configurar tabla de alarmas'. Junto a las categorías para configuración de Tooltip (información) y derechos de acceso conocidas de otros elementos, se pueden realizar los siguientes ajustes para representación y comportamiento de selección en la tabla: Categoría Tabla de alarma:

Diálogo para configurar una tabla de alarmas, Categoría Tabla de alarmas Defina, que es lo que debe ser representado en la tabla: Modificar el grupo de alarma: Seleccione del árbol de selección la configuración de alarma que se abre a través de este botón, el grupo a ser indicado (que también puede contener una única alarma). Se ofrecen todos los grupos definidos en la configuración de alarmas. Prioridad: Defina, las alarma cuyas prioridades deben ser indicadas. El ancho de banda máximo posible: de: 0 a: 255.

Clases de alarmas seleccionadas: Marque un clase deseada para la indicación el la lista de selección a la derecha del campo 'Clases de alarma seleccionadas' y oprima el botón Agregar, de manera que la clase sea transferida al campo. Ejecute esto para todas las clases necesarias. A través de Quitar puede quitar nuevamente una entrada marcada en una ventana. Active las opciones Título de columna o bien Título de línea, cuando se deban indicar los títulos de la tabla. Categoría Columnas:

Diálogo para configurar una tabla de alarmas, categoría Columnas Defina aquí, cuales de las siguientes columnas (parámetros de alarma) deben ser indicados: Los parámetros con excepción de fecha y hora (momento de presentarse la alarma) y el estado de la alarma en la configuración del grupo de alarmas se define en la configuración del grupo de alarmas: Mapa de bits, Fecha, Hora, Expresión, Valor, Aviso, Prioridad, Tipo, Clase de alarma, Estado de alarma, Valor de objetivo (para los tipos de alarma DEV+ y DEV-), Tolerancia. A través de los botones ">", ">>", puede transferir parámetros individuales o todos de la ventana izquierda (Columnas disponibles) a la ventana derecha (Columnas seleccionadas). La selección allí indicada se visualiza entonces en la tabla de alarmas. A través de los botones ""

texto:

PLC_PRG.ivar

(3) Configure otro elemento de visualización para emisión del texto de error actual: a.

Introduzca

en

la

categoría

Texto

en

el

campo

de

texto:

"%"

b. Introduzca en la categoría Variables en la emisión de texto: "PLC_PRG.errnum“ (4) Confeccione un archivo XML, p.ej. con el nombre dynamictextsample.xml, de acuerdo a la sintaxis arriba descrita, que para este ejemplo presenta la siguiente apariencia:

deutsch

deutsch Arial 0,0,0 -13

700 false false false 0

english Arial 0,0,0 -13 700 false false false 0



Fehler an Position 4711 Error at position 4711



Fehler an Position 815 Error at position 815







(5) Abra en la visualización el diálogo ‚Configuraciones’, categoría Idioma: Active la opción ‚Textos dinámicos’; Agregue la lista de archivos el archivo dynamictextsample.xml, que ahora está

disponible (6)

en Pase

con

su el

proyecto

ordenador. al

modo

online.

(7) Ponga en las configuraciones de la visualización el idioma a "deutsch" (alemán). Ponga PLC_PRG.ivar en "1" y PLC_PRG.errnum en "4711". En los elementos de visualización deben aparecer ahora

los siguientes textos:

"Vorschub"

o bien

"Fehler an Position

4711".

(8) Ponga PLC_PRG.ivar en 2 y PLC_PRG.errnum en "2000". Los textos cambian a "Beschleunigung" y "Das ist ein Fehlertext über mehrere Zeilen". El texto se representa en cada caso

en

Arial

13.

(9) Ponga en las configuraciones de la visualización el idioma a "english" (inglés). Ahora se visualizan los siguientes textos: "Acceleration" y "This is a error text over more than one line".

Visualización TwinCAT PLC

Llamada de ayuda online dependiente del idioma Según el idioma configurado para la visualización actual, se puede enlazar la llamada de un archivo de ayuda específico para un idioma con un elemento de visualización. Para ello debe estar entrado para este elemento la orden INTERN HELP en el diálogo 'Configurar elemento' en 'Ejecutar programa' y en el archivo PlcControl.ini debe estar disponible una sección [Visu-Helpfiles]. Bajo esta se tienen que asignar los archivos de ayuda correspondientes de los idiomas configurables en la visualización: p.ej.: [Visu-Helpfiles] German=C:\PROGRAMME\HELP_D.HLP English=C:\PROGRAMME\HELP_E.HLP

Visualización TwinCAT PLC

Resumen En cada punto de un diálogo de configuración, en las que se introducen variables o texto, se puede colocar en lugar de variables o del texto, también un marcador de posición. Esto es conveniente, cuando el objeto de visualización no debe ser empleado inmediatamente en el programa, sino se crea para ser insertado como referencia en otros objetos de visualización. Al configurar una

referencia de este tipo, los marcadores de posición pueden entonces ser reemplazados por nombres de variables o textos. Como marcador de posición vale cualquier secuencia de caracteres, encerrada entre dos signos de dólar ($) (p.ej. $variable1$, variable$x$). Para cada marcador de posición ya se puede predefinir en el diálogo 'Lista de marcadores de posición' (llamada a través de 'Herramientas' 'Lista de marcadores de posición'), con que valores este puede ser reemplazado en la referencia. La sustitución de marcadores de posición se realiza allí asimismo a través de una lista de marcadores de posición. 'Herramientas' 'Lista de marcadores de posición' La lista de marcadores de posición se emplea en dos puntos diferentes, para administración y configuración de los marcadores de posición: • En principio en la configuración de un elemento de visualización, de donde más tarde se deben crear referencias en otros módulos de visualización y en el que por esta razón registra marcadores de posición en lugar de variables y cadenas. En este caso obtendrá el diálogo a través de la orden 'Herramientas' 'Lista de marcadores' o el menú contextual. Este contiene tres columnas:

Lista de marcadores de posición para entrada de posibles valores de sustitución para marcadores de posición • En la columna Marcadores de posición se listan todos los marcadores de posición, que se emplean en la configuración de esta visualización. La columna Número de elemento indica, en que elemento ha sido configurado un marcador de posición. En la columna Sustituciones se

puede ahora para estos marcadores de posición introducir una selección de cadenas (textos, expresiones, nombres de variables), que más tarde al configurar una referencia del módulo Visu, sea posible como introducción en lugar del marcador de posición. Los elementos de la selección deben ser entrados separados por comas. Si aquí no se especifica una cadena de sustitución o una no válida, el marcador de posición, durante la configuración de la referencia que lo contiene, puede ser sustituido por cualquier secuencia de caracteres/nombre de variable. • Entonces al configurar una referencia del módulo de visualización arriba mencionado, o sea después que este haya sido insertado en otra visualización con 'Insertar' 'Visualización'. Llame para este fin el diálogo de la siguiente manera: Marque la visualización insertada, seleccione la orden 'Configurar' del menú contextual o del menú 'Herramientas' y oprima el botón Marcador de posición en la categoría 'Visualización': El diálogo contiene en este caso sólo dos columnas:

• En la columna Marcadores de posición aparecen nuevamente los marcadores de posición empleados en el módulo, como fueron asignados en la visualización original. Cuando para ellos (como se describe arriba) está predefinida una magnitud de valor de sustitución, esta ahora se ofrece en la columna Sustitución en una lista de selección. Seleccione uno de los valores, que ahora en la presente referencia debe ser empleado en lugar del marcador de posición. Si no se ha definido ninguna magnitud de valor, puede a través de un clic de ratón abrir un campo de entrada en el correspondiente campo de la columna 'Sustitución' y teclear un valor de sustitución deseado.

Visualización TwinCAT PLC

Resumen Observe los siguientes puntos para la visualización en modo online:

Secuencia de evaluación: - Los valores dinámicos para definición de elementos de visualización, o sea suministrados a través de variables de proyecto o variables de estructura, sobrescriben las configuraciones fijas (estáticas) de

las

configuraciones

de

elementos.

- Cuando una propiedad de elemento se activa tanto a través de una variable de proyecto entrada directamente en el diálogo de configuración, como también a través del componente de la variable de estructura, se evalúa primero el valor de las variables de proyecto. • Tiene la posibilidad, de configurar un manejo por teclado puro para la visualización. • Las categorías de configuración Representación, Marco e Idioma también pueden ser editadas en modo online. • Los elementos individuales de referencias de visualización se comportan en modo online de forma idéntica con las correspondientes a la visualización, que es referenciada. • Al conmutar el idioma empleado, este sólo cambia en modo online. • La visualización puede ser impresa en modo online. Nota: Aclaraciones sobre el manejo online de determinados elementos de visualización como p.ej. Tendencia y Tabla de alarmas, véalas por favor en el capítulo correspondiente sobre la configuración del elemento. Manejo por teclado - en modo online Para en el manejo online de una visualización ser independiente de ratón y pantalla táctil, se recomienda configurar la visualización de tal manera, que sea posible un manejo puro de los elementos

por

teclado:

Sin tener que configurarlo explícitamente, funcionan en modo online por omisión las siguientes (combinaciones de) teclas: • Oprimiendo la tecla se marca el primer elemento de la lista de elementos, para el que está configurada una entrada. Con cada siguiente confirmación de la tecla se cambia en cada caso al siguiente elemento de la lista de elementos. Oprimiendo simultáneamente cambia la marcación para el elemento anterior.

• Con las teclas de flecha puede cambiar desde un elemento seleccionado al inmediatamente siguiente en cualquier dirección. • Con la puede ejecutar un accionamiento al siguiente elemento de visualización seleccionado. Si se trata de un elemento con variables de emisión de texto, de este modo se abre el campo de entrada de texto, que muestra el contenido de texto de estas variables. Oprimiendo este valor se escribe. (Combinaciones de)teclas adicionales para el manejo online pueden ser definidos en la configuración de la visualización en el diálogo 'Manejo por teclado...'. En este caso también las teclas , y pueden ser provistas con otra función que la descrita arriba. Los elementos individuales de referencias, se comportan en modo online de forma idéntica como las correspondientes de la visualización que es referenciada. O sea reaccionarán del mismo modo que elementos individuales a entradas y manejo pro ratón y teclado, también la indicación de Tooltips (información) en referencias está referida a elementos. En un procesamiento de la lista de elementos, como por ejemplo se produce al saltar de un elemento de entrada al siguiente mediante el tabulador, el procesamiento de todos los elementos individuales de una referencia se produce a partir del punto, en el que la referencia se encuentra en la lista de elementos, antes de saltar al siguiente elemento de la lista. Imprimir visualización en modo online A través de 'Archivo' 'Imprimir' puede imprimir el contenido de la ventana de visualización en modo online. Visualizaciones que van más allá de los bordes laterales, pueden en este caso mostrar inconsistencias, ante todo, cuando los elementos movidos se encuentran en la visualización.

Visualización TwinCAT PLC

Resumen Las visualizaciones también pueden ser guardadas en bibliotecas y de ese modo estar disponibles en proyectos como módulos de biblioteca. Estas pueden, como las visualizaciones existentes en el proyecto, ser insertadas como referencia o a través de la orden "Zoom to vis." ser llamadas en la configuración de entrada de otra visualización.

Nota: Las visualizaciones que se emplean en un proyecto, deben llevar nombres inequívocos. Puede conducir a problemas, si por ejemplo se llama o referencia una visualización de la biblioteca que tiene el mismo nombre que una existente en el proyecto. Debido a que durante el procesamiento de referencias o llamadas de visualizaciones en el programa, primero se tienen en cuenta las visualizaciones en el proyecto y sólo después las bibliotecas cargadas.

Visualización TwinCAT PLC

Resumen La visualización de objetivo es una de las posibles aplicaciones de una visualización creada en TwinCAT. El sistema de programación de TwinCAT puede crear códigos ST (texto estructurado) para los objetos de visualización de un proyecto que se hayan cargado en el mando con los demás módulos del programa. Si el sistema de tiempo de funcionamiento admite la funcionalidad y el equipamiento de monitor es adecuado, la visualización se puede iniciar directamente en el mando. No es necesario que funcione el sistema de programación para poder utilizar la visualización, lo cual reduce considerablemente la memoria principal necesaria. Nota: Las funciones de la biblioteca SysLibTargetVisu.lib permiten, entre otros, obtener información sobre las últimas entradas del usuario (botón izquierdo del ratón, número de clics existentes) en el programa o consultar textos de listas dinámicas de texto para utilizar esos valores directamente en el programa.

Visualización TwinCAT PLC

Requisitos • El sistema de destino debe admitir la funcionalidad, es decir, en las opciones del sistema de destino (Proyecto->Opciones->TwinCAT), debe estar activada la opción 'Enable CE TargetVisualization' (Habilitar visualización de objetivo CE). Según cómo esté establecido en el archivo de destino, el usuario también puede activar y desactivar esta opción.

• La biblioteca SysLibTargetVisu.lib se necesita para implementar las funciones de visualización en el sistema de tiempo de funcionamiento. Se añade automáticamente en el administrador de librerías si está activada la opción "Enable CE Target-Visualization'' (Habilitar visualización de objetivo CE) en las opciones del sistema de destino. En el sistema de tiempo de funcionamiento también debe estar implementada SysLibTargetVisu.lib. Tenga en cuenta que, además, cuando se activa la opción 'Enable CE Target-Visualization' (Habilitar visualización de objetivo CE), se carga automáticamente

en

el

proyecto

la

siguiente

biblioteca,

utilizada

implícitamente:

SysLibAlarmTrend.lib. • Sistema operativo del ordenador de control: Windows CE • El ordenador de control precisa un equipamiento de monitor y manejo adecuados para poder representar o utilizar la visualización.

Visualización TwinCAT PLC

Preparación de una visualización de objetivo 1. Cree una visualización en TwinCAT PLC. Para mejorar el rendimiento del tiempo de funcionamiento, envíe hacia atrás todos los elementos posibles que sean estáticos en la representación (que no contengan movimiento, modificación del texto

o

del

color,

etc.).

Consejo: Con ayuda de 'Herramientas' 'Lista de elementos" podrá desplazar elementos "Hacia

delante“ y "Hacia atrás“. La razón es la siguiente: los elementos estáticos sólo se designan una vez en un mapa de bits de fondo. Por tanto, se reduce drásticamente la necesidad cíclica de dibujar. Esta opción es especialmente útil en el caso de mapa de bits o polígonos complejos. Si existe un módulo de visualización con el nombre TC_VISU, la visualización de objetivo se inicia más tarde en la llamada con ese módulo. De lo contrario, se cargará el módulo que se encuentre en la primera posición en la lista de objetos del registro 'Visualizaciones' de TwinCAT PLC Control. Si en su proyecto las variables de visualización implícitas se tienen que tratar como variables remanentes, efectúe las correspondientes Declaraciones de variables globales. Nota: Los mapas de bit de la visualización se transfieren como archivos. 2. Desactive la opción 'Visualización' de cada módulo de visualización que no desea que figure en la visualización de objetivo, en las Propiedades objeto ('Proyecto' 'Objeto' 'Propiedades') de la hoja de registro 'Visualización':

3. Configure en las opciones del sistema de destino, en la categoría "TwinCAT" (la disponibilidad de las opciones depende del sistema de destino), la opción de que el proyecto esté previsto para la visualización de objetivo: active la opción "Enable CE Target Visualization" (Habilitar visualización

de

objetivo

CE).

Además, también se puede elegir si las entradas del usuario y la nueva representación de los elementos

de

visualización

objetivo...

... se deben controlar mediante tareas VISU creadas automáticamente o a través de programación individual: ...

opción

se

deben

Deshabilitar

procesar

en

la

un

creación

módulo

o

de

tarea,

o

tareas

en

dos:

Utilice la opción VISU_INPUT_TASK. (el término "..._TASK" tiene su sentido, ya que la opción también es relevante

cuando

está

desactivada

la

creación automática

de tareas).

Por tanto, aparte de la opción de desactivación del manejo por teclado para tablas, también son posibles las siguientes configuraciones:

Mando

mediante

que

llaman

tareas

los

VISU

programas

creadas

automáticamente

MAINTARGETVISU_PAINT

_CODE

y

MAINTTARGETVISU_INPUT_CODE: Caso A: Deshabilitar la creación de tareas está desactivado: Utilizar VISU_INPUT_TASK está activado:

Con -

cada

llamada

VISU_TASK

de

llama

programa el

se

módulo

crean de

automáticamente

programa

dos

disponible

tareas:

implícitamente

MAINTARGETVISU_PAINT_CODE, que toma el nuevo dibujo de los elementos de visualización. -

VISU_INPUT_TASK

llama

el

módulo

de

programa

disponible

implícitamente

MAINTARGETVISU_INPUT_CODE, que toma la ejecución de entradas del usuario. Configuración VISU_INPUT_TASK:

predeterminada cíclica,

de prioridad

VISU_TASK: cíclica, prioridad 3, intervalo t#200ms Tenga en cuenta lo siguiente:

las 2,

intervalo

tareas: t#50ms;

Obviamente, estos parámetros se pueden modificar, pero: VISU_INPUT_TASK siempre se debe procesar con prioridad frente a VISU_TASK para garantizar la interacción adecuada de las entradas

y

la

actualización

de

la

representación.

La tarea que llama el programa principal (p. ej., PLC_PRG) debería procesarse como mínimo con la misma frecuencia que VISU_INPUT_TASK, idealmente con más prioridad si fuera posible. Sin embargo, no puede añadirse directamente a VISU_INPUT_TASK. Caso B: Deshabilitar la creación de tareas está desactivado: Utilizar VISU_INPUT_TASK está desactivado:

Sólo se crea automáticamente la tarea VISU_TASK, pero además contiene la función de VISU_INPUT_TASK. En ese caso, el programa implícito MAINTARGETVISU_ PAINT_CODE contiene adicionalmente la funcionalidad del programa MAINTTARGET VISU_ INPUT_CODE. Esta configuración es adecuada para aquellos sistemas que no admiten opciones de multitarea. La desventaja es que no se pueden configurar tiempos de ejecución diferenciados para procesar entradas del usuario y el nuevo dibujo de elementos (véase arriba). Mando los

sin módulos

tareas de

programa

establecidas implícitos

automáticamente;

MAINTARGETVISU_PAINT_CODE

y

MAINTTARGETVISU_INPUT_CODE se pueden llamar individualmente en el programa de aplicación o vincularse a tareas: Caso C: Desactivar la creación de tareas está activado: Utilizar VISU_INPUT_TASK está activado:

Los dos módulos de programa implícitos están disponibles y se pueden llamar por separado o vincularse a una determinada tarea (tenga en cuenta los consejos del caso A). Ejemplo del control de los módulos de programa Visu de destino en el programa de aplicación: PROGRAM visu_control VAR n: INT; END_VAR

n:=n+1; IF (n MOD 4) =0 THEN MAINTARGETVISU_PAINT_CODE(); END_IF; MAINTARGETVISU_INPUT_CODE();

En el programa visu_control, el módulo que procesa las entradas sólo se puede llamar cada cuatro llamadas del módulo que se va a dibujar, con el fin de evitar el riesgo de que una entrada de usuario interrumpa la nueva designación. Nota: Asegúrese de que evita el riesgo de indicaciones incorrectas al crear el programa. Caso D: Desactivar la creación de tareas está activado: Utilizar VISU_INPUT_TASK está desactivado:

Sólo hay disponible un módulo de programa implícito, MAINTARGET VISU_PAINT_CODE, pero además

contiene

la

funcionalidad

de

MAINTARGETVISU_

INPUT_

CODE.

Se puede llamar en el programa de aplicación o vincularse a una tarea determinada. 4. Cargue el proyecto en el mando ("Online" "Loggin").

Visualización TwinCAT PLC

Llamada desde el sistema de destino Inicie el proyecto cargado en el mando. La visualización comienza con el módulo TC_VISU o, en caso de que no exista, con el objeto de visualización que se encuentra en la primera posición de la lista de objetos de la hoja de registro "Visualizaciones" de TwinCAT PLC Control.

Visualización TwinCAT PLC

Interfaz para la consulta de acciones del usuario y textos dinámicos La biblioteca que se carga automáticamente al activar la configuración del sistema de destino ‚Visualización de objetivo’, SysLibTargetVisu.lib, ofrece las siguientes funciones para la consulta de entradas de usuarios haciendo clic con el ratón o entradas en listas dinámicas de texto: Función GetText : BOOL Esta función suministra un texto dependiente del idioma de entre los que figuran en la lista dinámica de texto actual. Parámetros de transferencia:

stResult:

Sirve como parámetro IN_OUT y se le asigna el texto que se

STRING(256);

encontraba en la cadena de prefijo "stPrefix“ y la identificación "dwID“.

nResultLength:INT;

En este caso, se debería transferir la longitud máxima de la

cadena "stResult“ si contiene menos de 256 caracteres.

stPrefix: STRING;

Prefijo de la entrada de texto en la lista dinámica de texto actual.

dwID: DWORD;

ID de la entrada de texto en la lista dinámica de texto actual.

Valor FALSE

de -

No

se

ha

encontrado

ningún

devolución: texto

compatible

con

"stPrefix“

y

"dwID“.

TRUE - Se ha encontrado un texto compatible con "stPrefix“ y "dwID“. Función GetTextByStringId: BOOL Esta función, al igual que la función GetText, puede ofrecer un texto dependiente del idioma de las listas dinámicas de texto. La diferencia entre ellas estriba en el parámetro "stID“, mediante el cual la identificación de la entrada de texto se puede transferir como cadena de texto en lugar de valor numérico. Esto permite utilizar también identificaciones definidas como cadenas en el fichero de texto xml como, por ejemplo, "Text123“. Parámetros de transferencia:

stResult:

Sirve como parámetro IN_OUT y se le asigna el texto que se

STRING(256);

encontraba en la cadena de prefijo "stPrefix“ y la identificación "dwID“.

nResultLength:INT;

En este caso, se debería transferir la longitud máxima de la cadena "stResult“ si contiene menos de 256 caracteres.

stPrefix: STRING;

Prefijo de la entrada de texto en la lista dinámica de texto actual.

stID: STRING;

ID de la entrada de texto en la lista dinámica de texto actual.

Valor

de

devolución:

FALSE



No

se

ha

encontrado

ningún

texto

compatible

con

"stPrefix“

y

"stID“.

TRUE - Se ha encontrado un texto compatible con "stPrefix“ y "stID“. Función GetLastLeftMouseDownEvent : BOOL o función GetLastRightMouseDownEvent : BOOL Esta función ofrece información sobre el último evento MouseDown que se ha activado, "Left" o "Right". Contiene un indicador (pMouseEvent : POINTER TO MOUSEEVENT;) en la estructura MouseEvent, que abarca los siguientes parámetros:

dwCounter :

Número de eventos MouseDown desde el inicio del sistema. Con

DWORD;

este parámetro se puede evaluar si se han activado un evento, varios eventos o ninguno desde la última consulta.

nXPos : INT;

Última posición del ratón en las coordenadas X/Y.

nYPos : INT;

Valor

de

devolución:

No se devuelve ningún valor. Función GetLastMouseMoveEvent : BOOL Esta función ofrece información sobre el último evento MouseMove que se ha activado. Contiene un indicador (pMouseEvent : POINTER TO MOUSEEVENT;) en la estructura MouseEvent. Véase arriba Función GetLastMouseDownEvent. Valor

de

devolución:

No se devuelve ningún valor. Función GetLastLeftMouseUpEvent : BOOL o función GetLastRightMouseUpEvent: BOOL Esta función ofrece información sobre el último evento MouseUp que se ha activado, "Left" o "Right". Contiene un indicador (pMouseEvent : POINTER TO MOUSEEVENT;) en la estructura MouseEvent. Véase arriba Función GetLastLeftMouseDownEvent o Función GetLastRightMouseDownEvent.

Valor

de

devolución:

No se devuelve ningún valor.

Visualización TwinCAT PLC

Limitaciones Órdenes internas PRINT Esta orden de impresión de la visualización actual no se puede utilizar para la visualización de objetivo. EXITPROGRAM Esta orden para finalizar el programa no se puede utilizar para la visualización de objetivo. TRACE Esta orden para abrir la ventana para el registro trace no se puede utilizar para la visualización de objetivo. SAVEPROJECT Esta orden para guardar el proyecto no se puede utilizar para la visualización de objetivo. Formatos de gráficos Actualmente, dentro de la visualización de objetivo sólo se admiten mapas de bits sencillos. Los formatos .jpg, .tif, .ico aún no son compatibles. El formato .jpg será compatible a partir de la versión 1.0.9 de TargetVisu DLL. Otros Control

deslizante

en

la

tabla

Actualmente no se puede visualizar el control deslizante de desplazamiento. Textos La función de recorte de textos que sobrepasan el límite del elemento todavía no está disponible. Tratamiento

de

las

Por el momento, la alarma no es compatible con la visualización de objetivo.

alarmas

Tendencia La visualización de objetivo admite la tendencia online (sin historial) a partir de la versión 1.0.8. Marcador

de

posición

La visualización de objetivo no admite la transferencia de parámetros para sustituir marcadores de posición

en

la

llamada.

Ejemplo: (:=, :=,..., :=) VAR_IN_OUT It is not possible to use VAR_IN_OUT variables in TwinCAT HMI CE.

Visualización TwinCAT PLC

Resumen Las siguientes variables de sistema creadas implícitamente, están a disposición para la programación de visualizaciones:

Variable generada

Tipo de

implícitamente

datos

Función

CurrentVisu

String[40]

Contiene el nombre de la visualización actual. Si se modifica el nombre, se ejecuta un cambio de visualización. Se debe observar, que la cadena para el nombre de la visualización siempre tiene que ser indicada en mayúsculas. Dependiendo del sistema de destino, esta variable puede ser activada/desactivada en las configuraciones de sistema de destino, categoría Visualización.

CurrentCaller

String[40]

Contiene el nombre de la visualización anterior. Se emplea para la funcionalidad de ZOOMTOCALLER .

CurrentLanguage

String[40]

Contiene el idioma actualmente seleccionado, que se encuentra a disposición dentro del archivo de idioma. Esta tiene que ser indicada en mayúsculas.

CurrentUserLevel

INT

Contiene el nivel de usuario actualmente seleccionado 0..7

CurrentPasswords[

ARRAY

Contiene todas las contraseñas las cuales han

0 .. 7]

[0..7] OF

sido registradas dentro de TwinCAT PLC Control

STRING[20

bajo „Opciones“ „Contraseñas para grupo de

]

trabajo“.

TwinCAT PLC Control: Teclado

Operaciones con el teclado Para manejar TwinCAT PLC Control únicamente con el teclado, han de utilizarse algunos comandos que no se hallan en el menú. 

Con la tecla de función se conmuta entre la parte de declaración y la parte de instrucción de un Módulo abierto.



Con + se cambia de un objeto abierto al Object Organizer y, desde ahí, a la ventana de mensajes si está abierta. Si está abierto un diálogo de búsqueda, con + se pasa del Object Organizer al diálogo de búsqueda y, desde allí, al objeto.



Con el se salta por los campos de entrada y los botones del diálogo.



Con las teclas de dirección, es posible desplazarse dentro del Object Organizer y del administrador de librerías a través de las fichas y los objetos. Todas las demás acciones se pueden realizar con los comandos de menú o con los accesos directos que aparecen junto a los comandos de menú.



Con (elemento

El elemento de visualización no contiene ninguna

#):

nombre de la variable y las sustituciones de los

Expresión watch

marcadores de posición.

'' no

válida

1801

Entrada imposible

En la configuración del objeto de visualización está

en la expresión.

utilizando una expresión combinada como destino de una acción de entrada. Sustitúyala mediante una variable individual.

1900

'' POU

El módulo de entrada (por ejemplo, PLC_PRG) no

(función de

está disponible al utilizar la biblioteca.

entrada) no está disponible en la biblioteca

1901

las variables de

Las variables de acceso y de configuración no se

acceso y de

guardan en la biblioteca.

configuración no se han guardado en una biblioteca.

1902

'':

El archivo .obj de la biblioteca se ha creado para

¡Biblioteca no

otros tipos de máquinas.

apropiada para el tipo de máquina actual!

1903

:

El archivo no corresponde al formato de archivo

Biblioteca no válida

necesario del sistema de destino.

Errores de compilación

Número

Mensaje de error

Posible causa

3100

el código es demasiado

Se ha superado el tamaño máximo del

extenso. Tamaño máximo:

programa. Reduzca el tamaño del programa.

'' Bytes ( K)

3101

el volumen de datos es

Se ha agotado la memoria de datos.

demasiado grande.

Reduzca la necesidad de archivos de su

Tamaño máximo:

aplicación.

'' Bytes ( K)

3110

3111

Error en el archivo de

El archivo .hex no corresponde al formato

biblioteca ''.

INTEL Hex.

La biblioteca '' es

El archivo .hex supera el tamaño máximo

demasiado grande.

posible.

Tamaño máximo: 64K

3112

No se puede reubicar la

El archivo.hex contiene una instrucción no

instrucción en la biblioteca.

reubicable. El código de la biblioteca no se puede enlazar.

3113

El código de biblioteca

Los ámbitos para el código y para las tablas

sobrescribe las tablas de

de información se solapan.

función.

3114

3115

La biblioteca utiliza más de

Las tablas y códigos contenidos en el archivo

un segmento.

.hex utilizan más de un segmento.

La constante no se puede

El formato interno del indicador para

asignar a VAR_IN_OUT.

constantes de cadenas no se puede

Tipos de datos

convertir al formato interno del indicador de

incompatibles.

VAR_IN_OUT, porque los datos se han definido como "near" y las constantes de cadenas como "huge" o "far". Si es posible,

modifique estas opciones del sistema de destino.

3120

El segmento de código

El código de sistema generado es superior a

actual sobrepasa los 64K.

los 64K. Eventualmente se precisan demasiados códigos de inicialización.

3121

El módulo es demasiado

Un módulo no puede tener más de 64K.

grande.

3122

3130

3131

Inicialización demasiado

El código de inicialización para un módulo de

grande. Tamaño máximo:

función o una estructura no puede superar

64K

los 64K.

Stack de aplicación

La profundidad del juego de la llamada del

demasiado pequeña: Se

módulo es demasiado grande. Amplíe el

necesitan ''

tamaño del stack en las opciones del sistema

DWORD, hay ''

de destino o compile el programa sin la

DWORD disponibles.

opción de compilación del proyecto 'Debug'.

Stack de usuario

Póngase en contacto con el fabricante de su

demasiado pequeña: Se

mando.

necesitan '' WORD, hay '' WORD disponibles.

3132

Stack de sistema

Póngase en contacto con el fabricante de su

demasiado pequeña: Se

mando.

necesitan '' WORD, hay '' WORD disponibles.

3150

Parámetro %d de la función '' : El

Utilice una variable intermedia en la cual se

resultado de una función

deposite el resultado dela función IEC.

IEC no se puede transferir como parámetro de cadena de una función C.

3160

No se puede abrir el

El archivo '' necesario para la

archivo de biblioteca

biblioteca no existe.

''.

3161

La biblioteca ''

Un archivo .obj de una biblioteca debe

no contiene ningún

contener como mínimo una función C.

segmento de código

Inserte una función dummy en el archivo .obj que no esté definida en el archivo .lib.

3162

No se puede resolver la

El archivo .obj contiene una referencia que

referencia en la biblioteca

no se puede resolver en otro símbolo.

'' (símbolo

Compruebe las opciones del compilador C.

'' , clase '' , tipo '' )

3163

Tipo de referencia

El archivo .obj contiene un tipo de referencia

desconocido en la

que no puede resolver el generador de

biblioteca ''

códigos. Compruebe las opciones del

(símbolo '' ,

compilador C.

clase '' , tipo '' )

3200

(%d): expresión

La memoria temporal del sistema de destino

lógica demasiado

no es suficiente para el tamaño de la

compleja.

expresión. Divida la expresión en varias expresiones parciales con asignaciones a variables intermedias.

3201

3202

(): una

Los saltos internos no se pueden resolver.

red no debe crear más de

Active la opción "Utilizar offset de salto de 16

512 bytes de código

bits " en las opciones de destino de 68k.

Desbordamiento de stack

Utiliza una llamada de función entrelazada

con llamadas de función de

de formato CONCAT(x, f(i)). Esto puede

cadena

provocar la pérdida de datos. Divida la

entrelazada/array/estructur

llamada en dos expresiones.

a

3203

Expresión demasiado

Divida la asignación en varias asignaciones.

compleja (se han usado demasiados registros de dirección)

3204

3205

3206

3207

Un salto excede los 32k

Las distancias entre saltos no deben superar

bytes

los 32767 bytes.

Error interno: demasiadas

En un módulo se pueden utilizar como

constantes de cadenas

máximo 3000 constantes de cadenas.

Bloque de función

Un bloque de función debe dar como

demasiado grande

resultado un código máximo de 32767 bytes.

Optimización del array

La optimización de los accesos de array ha fallado porque se ha llamado una función durante el cálculo del índice.

3208

No se ha implementado la

Está utilizando una función de conversión

transformación

que no se ha implementado para el generador de códigos actual.

3209

Operador no implementado

Utiliza un operador que no se ha

implementado para este tipo de datos en el generador de códigos actual: MIN(string1,string2).

3210

3211

La función '' no

Está llamando a una función que no está

existe

disponible en el proyecto.

La variable de cadenas se

Una variable del tipo cadena sólo se puede

utiliza demasiadas veces

utilizar 10 veces en una expresión en el generador de códigos de 68K.

3250

3251

Real no se soporta en el

Actualmente el sistema de destino no está

controlador de 8 bits

soportado.

Los tipos 'date of day' no

Actualmente el sistema de destino no está

se soportan en el

soportado.

controlador de 8 bits

3252

3253

3254

El tamaño del stack

Actualmente el sistema de destino no está

sobrepasa los %ld bytes

soportado.

No se ha encontrado el

Actualmente el sistema de destino no está

archivo hex: ''

soportado.

No se pudo resolver la

Actualmente el sistema de destino no está

llamada a la función de

soportado.

biblioteca externa.

3400

Se produjo un error al

El archivo .exp contiene una sección de

importar las variables de

variables de acceso incorrecta.

acceso.

3401

Se produjo un error al

El archivo .exp contiene una sección de

importar la configuración

variables de configuración incorrecta.

de variables

3402

Se produjo un error al

El archivo .exp contiene una sección

importar las variables

incorrecta para las variables globales.

globales

3403

3404

El no se ha

La sección del archivo .exp para el objeto

podido importar

indicado es incorrecta.

Se produjo un error al

La sección en el archivo .exp para la

importar la configuración

configuración de tareas es incorrecta.

de tareas

3405

Se produjo un error al

La sección en el archivo .exp para la

importar la configuración

configuración de mando es incorrecta.

de mando

3406

Hay dos pasos con el

La sección incluida en el archivo .exp del

nombre '' . No se

módulo SFC contiene dos pasos con el

importó el segundo paso

mismo nombre. Cambie el nombre de uno de los pasos en el archivo de exportación.

3407

El paso de entrada

En el archivo .exp falta el paso mencionado.

'' no existe

3408

El paso subsiguiente

En el archivo .exp falta el paso mencionado.

'' no existe

3409

No hay ninguna transición

En el archivo .exp falta una transición que el

sucesiva para el paso

paso mencionado necesita como paso de

''

entrada.

3410

No hay ninguna transición

En el archivo .exp falta un paso que es

sucesiva para la transición

necesario para la transición mencionada

''

3411

El paso '' no es

En el archivo .exp falta el vínculo entre el

alcanzable por el paso

paso mencionado y el paso inicial.

inicial (Init)

3450

3451

PDO: del módulo

- ¡Falta el

e introduzca un ID de

ID de COB!

COB para el PDO .

Error al cargar: ¡El archivo

El archivo de dispositivo necesario para la

EDS '' no existe,

configuración CAN eventualmente no se

pero se utiliza en la

encuentra en el directorio correcto.

configuración!

Compruébelo de acuerdo con la entrada de directorio para los archivos de configuración en 'Proyecto' 'Opciones' 'Directorios'.

3452

El módulo '' no

El archivo de dispositivo para el módulo

se ha podido crear!

ya no coincide con la configuración existente. Eventualmente se ha modificado desde la creación de la configuración o bien está corrupto.

3453

El canal '' no se

El archivo de dispositivo para el canal

ha podido crear!

ya no coincide con la configuración existente. Eventualmente se ha modificado desde la creación de la configuración o bien está corrupto.

3454

¡La dirección ''

Ha activado la opción 'Comprobar

se refiere a un área de

intersecciones de dirección’ en el diálogo de

memoria ocupada!

Opciones de la configuración de mando y se ha detectado una intersección. ¡Tenga en cuenta que la base de la comprobación del área es el tamaño que se obtiene según el tipo de datos del módulo y no el valor de la entrada 'size' en el archivo de configuración!

3455

Error al cargar: ¡El archivo

El archivo de dispositivo necesario para la

GSD '' no existe,

configuración del Profibus eventualmente no

pero se utiliza en la

se encuentra en el directorio correcto.

configuración!

Consulte la entrada para los archivos de configuración en 'Proyecto' 'Opciones' 'Directorios'.

3456

El dispositivo Profibus

El archivo de dispositivo para el dispositivo

'' no se ha

ya no coincide con la

podido crear!

configuración existente. Eventualmente se ha modificado desde la creación de la configuración o bien está corrupto.

3457

3500

Descripción de módulo

Compruebe el archivo de dispositivo

errónea: ''!

perteneciente al módulo.

Ningún VAR_CONFIG para

Inserte una declaración para la variable

''

mencionada en la lista de variables global que contiene la 'configuración de variables'.

3501

3502

Ninguna dirección en

Inserte una dirección para la variable

VAR_CONFIG para

mencionada en la lista de variables global

''

que contiene la 'configuración de variables'.

Tipo de datos de

La variable mencionada está declarada en la

'' erróneo en

lista de variables globales que contiene la

VAR_CONFIG

configuración de variables con un tipo de datos distinto al del módulo de funciones.

3503

Tipo de dirección erróneo

La variable mencionada está declarada en la

de '' en

lista de variables globales que contiene la

VAR_CONFIG

configuración de variables con un tipo de dirección distinto al del módulo de funciones.

3504

”No se admiten valores

Una variable de la configuración de variables

iniciales para las variables

se ha declarado con dirección y valor inicial.

VAR_CONFIG

Sin embargo, los valores iniciales sólo se pueden definir en variables de entrada sin asignación de dirección.

3505

El no es

En la configuración de variables se ha

ninguna ruta de instancia

indicado una variable que no existe.

válida

3506

Ruta de acceso esperada

En la lista global de variables para las variables de acceso falta una ruta de acceso correcta para una variable: :'':

3507

Sin especificación de

En la lista global de variables para las

dirección para variables

variables de acceso existe una asignación de

VAR_ACCESS

dirección para una variable. Definición válida: :'':

3550

El nombre de tarea

Ha definido dos tareas con el mismo nombre.

'' se ha utilizado

Cambie el nombre de una de ellas.

dos veces

3551

La tarea '' debe

Inserte una llamada de programa o borre la

contener como mínimo una

tarea.

llamada de programa

3552

Variable de evento

En la configuración de la tarea mencionada

'' no definida en

ha utilizado una variable de evento que no se

la tarea ''

ha declarado globalmente en el proyecto. Utilice otra variable o defina la variable introducida de forma global.

3553

La variable de evento

Utilice una variable del tipo booleano como

'' de la tarea

variable de evento.

'' debe ser del tipo booleano

3554

La entrada de tarea

En el campo llamada de programa ha

'' debe ser un

introducido una función o un módulo no

programa o una instancia

definido.

de bloque de funciones global

3555

3600

La entrada de tarea

En el campo llamada de programa ha

'' está mal

indicado unos parámetros que no coinciden

parametrizada

con la declaración del módulo.

La variable implícita no

Utilice primero el comando 'Compilar todo'.

existe.

Si vuelve a aparecer el mensaje de error, póngase en contacto con el fabricante de su mando.

3601

es un nombre

Ha declarado una variable en el proyecto

de variable reservado

que ya está reservada para el generador de códigos. Cambie el nombre de esta variable.

3610

'' no se soporta

La prestación indicada no se soporta en esta versión.

3611

3612

El directorio de

Ha introducido un directorio no válido para

compilación '' no

los archivos de compilación en las opciones

es válido

de proyecto/directorios.

¡Se ha superado la

Está utilizando demasiados módulos y tipos

cantidad máxima de

de datos en el proyecto. Modifique la

módulos ()! Se

cantidad máxima de módulos en las

cancela la compilación.

opciones del sistema de destino / distribución de memoria.

3613

Compilación cancelada

Compilación cancelada por el usuario.

3614

El proyecto no contiene

Un proyecto necesita una función de entrada

ningún módulo ''

del tipo Programa (por ejemplo, PLC_PRG) o

(función de entrada) ni

una configuración de tareas.

configuración de tareas

3615

(función de

Está utilizando una función de entrada (p.ej.

entrada) debe ser del tipo

PLC_PRG) que no es del tipo Programa.

Programa

3616

3617

Los programas de las

La biblioteca a guardar contiene un

bibliotecas externas no se

programa. Este programa no está disponible

soportan

cuando se utiliza la biblioteca.

Memoria insuficiente

Aumente la capacidad virtual de la memoria de su ordenador.

3618

Los accesos de bits no

El generador de códigos del sistema de

están soportados por el

destino instalado actualmente no soporta

generador de códigos

ningún acceso de bits para las variables.

actual

3700

3701

Ya hay un módulo con el

Está utilizando un nombre de módulo que ya

nombre '' en la

está adjudicado para un módulo de

biblioteca '< nombre >'

biblioteca. Cambie el nombre del módulo.

El nombre de módulo en el

Renombre su Módulo mediante el comando

nombre de declaración no

de menú 'Proyecto' 'Renombrar objeto', o

coincide con el de la lista

modifique el nombre de la parte de

de objetos

declaración del Módulo. El nombre se tiene que situar directamente después de las claves PROGRAM, FUNCTION o FUNCTIONBLOCK.

3702

3703

Demasiados

Por cada declaración de variable se pueden

identificadores

indicar como máximo 100 identificadores.

Hay varias declaraciones

En la parte de declaración del objeto existen

con el mismo identificador

varios identificadores con el mismo nombre.

'< nombre >'

3704

Recursión de datos:

Se ha utilizado una intancia de módulo de

->

funciones que se necesita a sí misma.

-> .. ->

3720

Después de 'AT' debe

Inserte una dirección válida después de la

haber una dirección

palabra clave AT o modifique la palabra clave AT.

3721

Sólo VAR y VAR_GLOBAL

Copie la declaración a un área VAR o

pueden ubicarse en

VAR_GLOBAL.

direcciones

3722

Sólo se permiten variables

Modifique la dirección o el tipo de variable

booleanas en direcciones

indicado en la declaración.

de bit

3729

Tipo '' no

El tipo de esta variable no se puede ubicar

permitido en la dirección:

en la dirección indicada. Ejemplo: Para un

''

sistema de destino que trabaja con Alignment 2, la siguiente declaración no es válida: var1 AT %IB1:WORD;

3740

3741

3742

Tipo desconocido:

Está utilizando un tipo no válido para la

''

declaración de variables.

Denominador de tipo

Está utilizando una clave o un operador en

esperado

vez de un denominador de tipo válido.

Valor de enumeración

En la definición del tipo de enumeración falta

esperado

un denominador tras el paréntesis abierto o tras una coma dentro del paréntesis.

3743

Número entero esperado

Los valores de enumeración sólo se pueden iniciar con números enteros del tipo INT.

3744

Constante Enum

Compruebe si se han tenido en cuenta las

'' ya definida

siguientes reglas en la adjudicación de valores de enumeración: - Dentro de una definición Enum todos los valores deben ser unívocos. - Dentro de todas las definiciones Enum globales todos los valores deben ser unívocos. - Dentro de todas las definciones Enum locales de un módulo todos los valores

deben ser unívocos.

3745

Los límites de área sólo se

Sólo se pueden definir tipos de subárea

permiten para los tipos de

sobre la base de tipos de datos enteros.

datos enteros

3746

El límite de área

Un límite del área indicada para los tipos de

'' no es

subárea se encuentra fuera de los límites

compatible con el tipo de

permitidos para los tipos básicos.

datos ''

3747

3748

Longitud de cadena

Está utilizando una constante desconocida

desconocida: ''

para la definición de la longitud de la cadena.

No se permiten más de 3

Está utilizando más de las 3 dimensiones

dimensiones para un array

permitidas para un array. Utilice en caso necesario un ARRAY OF ARRAY.

3749

Límite inferior ''

Está utilizando una constante no definida

desconocido

como límite inferior de un tipo de subárea o de array.

3750

Límite superior ''

Está utilizando una constante no definida

desconocido

como límite superior de un tipo de subárea o de array.

3760

Valor inicial erróneo

Utilice un valor inicial que coincida con la definición de tipo. Puede utilizar el diálogo de declaración de variable (Mayús/F2 o 'Edición 'Declaración de variables').

3761

Las variables

Elimine la inicialización en la declaración de

VAR_IN_OUT no deben

variables.

tener un valor inicial.

3780

3781

3782

VAR, VAR_INPUT,

La primera línea después del nombre de un

VAR_OUTPUT o

módulo tiene que contener una de estas

VAR_IN_OUT esperado

palabras clave.

END_VAR o identificador

Escriba un identificador válido o END_VAR al

esperado

principio de la línea de declaración.

Fin inesperado

En la parte de declaración: inserte al final de la parte de declaración la palabra clave END_VAR. En el editor de texto: inserte instrucciones que terminen la última secuencia de instrucciones (por ejemplo, END_IF).

3783

3800

END_STRUCT o

Asegúrese de que la declaración del tipo

denominador esperado

está bien cerrada.

Las variables globales

Aumente la cantidad de segmentos

necesitan demasiada

configurada en las opciones del proyecto, en

memoria. Aumente la

el ámbito de las opciones de compilación.

memoria disponible en las opciones del proyecto

3801

La variable '' es

La variable utiliza un tipo que es mayor que 1

demasiado grande.

segmento de datos. El tamaño del segmento

( Bytes)

se puede configurar, dependiendo del sistema de destino, en las opciones del sistema de destino / la distribución de memoria. Si no encuentra ninguna posibilidad de entrada en estos puntos, póngase en contacto con el fabricante de su

mando.

3802

Sin memoria para variable

El espacio de memoria disponible para las

Retain. Variable

variables Retain está agotado. Dependiendo

'', %u Bytes.

del sistema de destino, se puede configurar en las opciones del sistema de destino / la distribución de la memoria. Si no encuentra ninguna posibilidad de entrada en estos puntos, póngase en contacto con el fabricante de su mando. (Tenga en cuenta que en las instancias de bloques de funciones en las que se utiliza una variable Retain toda la instancia se administra en la memoria Retain!)

3803

Se ha agotado la memoria

El espacio de memoria disponible para las

para las variables globales.

variables globales se ha agotado.

Variable '',

Dependiendo del sistema de destino, se

'' bytes.

puede configurar en las opciones del sistema de destino / la distribución de la memoria. Si no encuentra ninguna posibilidad de entrada en estos puntos, póngase en contacto con el fabricante de su mando.

3820

No se permite

No puede definir ningún parámetro de

VAR_OUTPUT ni

referencia/de salida en una función.

VAR_IN_OUT en funciones

3821

3840

Se requiere al menos una

No puede definir ningún parámetro de

entrada para las funciones

referencia/de salida en una función.

Variable '' global

Está utilizando en el módulo una variable

desconocida!

VAR_EXTERNAL para la cual no hay

ninguna variabla global declarada.

3841

3900

3901

La declaración de

La indicación del tipo de declaración de la

'' no coincide con

variable VAR_EXTERNAL no coincide con la

la declaración global

de la declaración global.

Varios guiones bajos en el

Elimine varios guiones del nombre del

identificador

identificador.

Se admiten máx. 4 campos

Está utilizando una asignación de dirección

de dirección

directa para una dirección que tiene más de cuatro niveles (p.ej. %QB0.1.1.0.1).

3902

3903

3904

Las palabras clave se

Escriba la palabra clave en mayúsculas o

tienen que escribir con

active la opción 'Formatear

mayúscula

automáticamente'.

Constante de tiempo no

La constante no se ha indicado según el

válida

formato IEC61131-3.

Desbordamiento en

Está utilizando un valor para la constante de

constante de duración

tiempo que ya no se puede representar en el formato interno. El valor máximo representable es t#49d17h2m47s295ms.

3905

3906

Constante de fecha no

La constante no se ha indicado según el

válida

formato IEC61131-3.

Constante de día no válida

La constante no se ha indicado según el formato IEC61131-3.

3907

Costante de fecha/tiempo

La constante no se ha indicado según el

3908

4000

no válida

formato IEC61131-3.

Constante de cadena no

La constante de cadena contiene un carácter

válida

no válido.

Identificador esperado

Indique un identificador válido en esta posición.

4001

Variable '' no

Declare la variable de forma local o global.

declarada

4010

Tipos incompatibles: El

Compruebe los tipos necesarios del

'' no se puede

operador (busque el operador en su archivo

convertir en ''.

de ayuda) y modifique el tipo de variable que ha producido el error a un tipo permitido, o seleccione otra variable.

4011

Tipo no permitido en

El tipo del parámetro actual no se puede

parámetro de

transferir en el del parámetro formal. Utilice

'' : El ''

una conversión de tipo o utilice el

no se puede convertir en

correspondiente tipo de variable.

''.

4012

Tipo no permitido para la

A la variable ‘’ se le asigna un

entrada '< nombre >' de '
' : El ''

Modifique la variable o la constante de una

no se puede convertir en

variable o constantes con el tipo o

''.

utilice una conversión de tipo o una constante con prefijo de tipo.

4013

Tipo no permitido para la

A la variable ‘’ se le asigna un

salida '< nombre >' de '
' : El ''

Modifique la variable o la constante de una

no se puede convertir en

variable o constantes con el tipo o

''.

utilice una conversión de tipo o una constante con prefijo de tipo.

4014

La constante con prefijo de

El tipo de las constantes no es compatible

tipo: '' no se

con el tipo del prefijo.

puede convertir en

Ejemplo: SINT#255

''

4015

Tipo de datos no permitido

La adjudicación directa de direcciones de

'< nombre >' para un

bits sólo está permitida para tipos de datos

acceso de bit directo

enteros y de cadenas de bits. Está utilizando en el acceso de bits . una variable var1 del tipo REAL/LREAL o una constante.

4016

Índice de bits '' fuera

Ha intentado acceder a un bit que no está

del ámbito válido para la

definido para el tipo de datos de la variable.

variable del tipo ''

4017

4020

MOD no está definido en

El operador MOD sólo puede utilizarse para

REAL

tipos de datos enteros y de cadenas de bits.

Los operandos de TE,

Sustituya los primeros operandos con una

STN, S, R tienen que ser

variable en la que se pueda escribir.

variables con acceso de escritura

4021

4022

Ningún acceso de escritura

Sustituya la variable por una con acceso de

a ''

escritura.

Operando esperado

Complete un operando detrás del comando existente.

4023

Después de '+' o '-' se

Introduzca un número.

espera un número

4024

esperado o

Introduzca un operador válido en la posición

o ... antes

indicada.

de ''

4025

4026

Esperado ':=' o '=>' antes

Introduzca uno de los dos operadores en la

de ''

posición indicada.

BITADR espera una

Utilice una dirección de bits válida (p.ej.

dirección de bits o una

%IX0.1).

variable de una dirección de bits

4027

4028

Número entero o constante

Inserte un número entero o el identificador

simbólica esperados

de una constante válida.

El operador INI necesita

Compruebe el tipo de la variable en la cual

una instancia de bloque de

utiliza el operador INI.

funciones o una variable de estructura

4029

No se admiten llamadas

En los sistemas de destino no reentrantes y

entrelazadas de la misma

en el modo de simulación, una llamada de

función.

función no puede contener ninguna llamada a sí misma como parámetro. Ejemplo: fun1(a,fun1(b,c,d),e); Utilice una variable intermedia.

4030

Como operandos de ADR

Sustituya la constante o la expresión por una

no se permite ninguna

variable o una dirección directa.

constante ni expresión

4031

4032

¡El operador de dirección

Utilice BITADR. Recuerde: BITADR no

no se permite en bits! En

devuelve ninguna dirección de memoria

vez de ello, utilice BITADR

física

'' operandos

Compruebe cuántos operandos del operador

son demasiado pocos para

'' se necesitan, y agregue los que

''. Como mínimo

falten.

se necesitan ''

4033

'' operandos

Compruebe cuántos operandos necesita el

son demasiados para

operador '', y elimine los que

''. Se necesitan

sobren.

sólo ''

4034

División entre 0

Está utilizando una división entre 0 en una expresión constante. Utilice en caso necesario una variable con el valor 0 para forzar un error de tiempo de ejecución.

4035

ADR no se puede utilizar

No es posible un acceso de dirección a

en 'VAR CONSTANT' si

constantes para las cuales se utilizan valores

'Sustituir constantes' está

directos. En caso necesario, desactive la

activado

opción 'Sustituir constantes' en las opciones de proyecto, categoría de opciones de compilación.

4040

La etiqueta

Defina una marca con el nombre

no está definida

o modifique de una marca definida.

4041

Definición múltiple de la

La etiqueta '' tiene una definición

etiqueta ''

múltiple en el módulo. Cambie el nombre de una definición o elimínela.

4042

4043

Como máximo puede

La cantidad de etiquetas por instrucción se

haber ''

limita a ''. Inserte una instrucción

etiquetas en una secuencia

dummy.

Formato de etiqueta no

El nombre utilizado para la etiqueta no es un

válido. Una etiqueta debe

identificador válido o bien faltan dos puntos

ser un identificador que

en la definición.

puede ir seguido de dos puntos.

4050

El módulo '' no

Defina un módulo con el nombre ''

existe en el proyecto

mediante el comando de menú 'Proyecto' 'Agregar objeto' o modifique el '' en el nombre de un módulo definido

4051

'' no es ninguna

Utilice uno de los nombres de función

función

definidos en el proyecto o en las bibliotecas para ''.

4052

4053

4054

''

Para utilice una

debe ser una instancia

instancia definida en el proyecto del tipo

declarada del bloque de

'' o modifique el tipo de a ''.

no es un

Sustituya '' por el nombre de un

módulo u operador válido

módulo u operador definido en el proyecto.

Nombre de módulo

El parámetro indicado no es un nombre de

esperado como parámetro

módulo válido.

de 'INDEXOF'

4060

El parámetro VAR_IN_OUT

Se deben transferir variables con acceso de

'' de ''

escritura al parámetro VAR_IN_OUT, dado

precisa una variable con

que estas variables se pueden modificar

acceso de escritura como

dentro del módulo.

entrada.

4061

El parámetro VAR_IN_OUT

Los parámetros VAR_IN_OUT deben

'' de ''

ocuparse con variables con acceso de

debe estar ocupado.

escritura, porque se pueden modificar dentro del módulo.

4062

4063

Ningún acceso al

Los parámetros VAR_IN_OUT sólo pueden

parámetro VAR_IN_OUT

escribirse o leerse desde dentro del módulo,

'' de ''

porque se trata de una transferencia de

desde fuera.

referencias.

El parámetro VAR_IN_OUT

Una dirección de bits no es ninguna

'' de ''

dirección física. Transfiera una variable o una

no se puede ocupar con

dirección no de bits directa.

direcciones de bits.

4064

4070

VAR_IN_OUT no se puede

Borre la ocupación de la variable

sobrescribir en la llamada

VAR_IN_OUT para la llamada de acción

de acción local!

local.

Un módulo contiene una

Reduzca la profundidad del juego,

expresión demasiado

redistribuyendo la expresión en varias

compleja.

expresiones con la ayuda de asignaciones de variables intermedias.

4071

La red es demasiado

Divida la red en varias redes.

compleja

4100

'^' necesita un tipo de

Ha intentado diferenciar una variable que no

puntero

esté declarada como POINTER TO.

4110

4111

'[]' sólo se admite

Está utilizando [] para una variable

para variables de array

que no esté declarada como ARRAY OF.

La expresión en el índice

Utilice una expresión del tipo

de un array tiene que tener

correspondiente o una conversión de tipos.

un resultado del tipo INT

4112

Demasiados índices de

Compruebe el número de índices (1, 2 ó 3)

array

para el que se ha declarado el array y quite los que sobran.

4113

Demasiados pocos índices

Compruebe el número de índices (1, 2 ó 3)

de array

para el que se ha declarado el array y complete los que faltan.

4114

Uno de los índices de

Asegúrese de que el índice utilizado se

constantes no está dentro

encuentra dentro de los límites del array.

del rango de array

4120

Antes de '.' se tiene que

El identificador a la izquierda del punto debe

encontrar una variable de

ser una variable del tipo STRUCT o

estructura

FUNCTION_BLOCK o debe ser un nombre de FUNCTION o de PROGRAM.

4121

4122

'' no es ningún

El componente '' no está contenido

componente de .

no es un

Compruebe las variables de entrada del

parámetro de entrada del

bloque de funciones al que se ha llamado y

bloque de funciones

modifique ‘’ de una de estas

llamado

variables

4200

‘LD’ esperado

Inserte como mínimo una instrucción LD en la ventana del editor del módulo IL o tras la etiqueta.

4201

Operador IL esperado

Cada instrucción IL debe empezar con un operador o una etiqueta.

4202

Fin inesperado de la

Inserte el paréntesis de cierre.

expresión entre paréntesis

4203

entre paréntesis

El operador indicado no está permitido

no está permitido

dentro de una expresión IL entre paréntesis. (no se permiten: 'JMP', 'RET', 'CAL', 'LDN', 'LD', 'TIME')

4204

Paréntesis de cierre sin su

Inserte el paréntesis inicial o borre el final.

correspondiente paréntesis de apertura

4205

Después de ')' no se

Elimine la coma detrás del paréntesis final.

admite ninguna coma

4206

No se permiten etiquetas

Desplace la etiqueta de forma que quede

dentro de expresiones

fuera de la expresión entre paréntesis.

entre paréntesis

4207

El modificador 'N' requiere

El modificador N requiere un tipo de datos

un operando del tipo

para el cual se pueda ejecutar una negación

BOOL,BYTE,WORD o

booleana.

DWORD

4208

La expresión delante de un

Asegúrese de que la expresión devuelve un

operador condicional tiene

resultado booleano o utilice una conversión

que dar un resultado del

de tipos.

tipo booleano

4209

4210

En este punto no se admite

Sustituya la llamada a funciones por una

ningún nombre de función

variable o una constante.

'CAL', 'CALC' y 'CALN'

Declare una instancia del bloque de

precisan una instancia de

funciones al que desea llamar.

bloques de función como operando

4211

4212

Comentario en IL sólo se

Desplace el comentario al final de la línea o

admite al final de la línea

a una línea propia.

El acumulador no es válido

El contenido del acumulador no está

antes de una instrucción

definido. Esto ocurre después de

condicional

instrucciones que no devuelven ningún resultado (p.ej. 'CAL').

4213

4250

4251

'S' y 'R' amplían un

Utilice una variable booleana en esta

operando del tipo BOOL

posición.

Ningún inicio correcto para

La línea no empieza con una instrucción ST

una instrucción ST.

válida.

La función ''

Se han indicado más parámetros que los

tiene demasiados

declarados en la definición de la función.

parámetros

4252

La función ''

Se han indicado menos parámetros que los

tiene demasiado pocos

declarados en la definición de la función.

parámetros

4253

'IF' y 'ELSIF' precisan una

Asegúrese de que la condición posterior a un

expresión booleana como

'IF' es una expresión booleana.

condición

4254

'WHILE' precisa como

Asegúrese de que la condición posterior a un

condición una expresión

'WHILE' es una expresión booleana.

booleana

4255

'UNTIL' precisa como

Asegúrese de que la condición posterior a un

condición una expresión

'UNTIL' es una expresión booleana.

booleana

4256

4257

4258

‘NOT’ exige un operando

Asegúrese de que la condición posterior a un

booleano

'NOT' es una expresión booleana.

El contador de la

Asegúrese de que la variable de conteo es

instrucción 'FOR' debe ser

un tipo de datos entero o de cadena de bits

del tipo INT

(p.ej. DINT, DWORD).

El contador en la

Sustituya la variable de conteo por una

instrucción 'FOR' no es

variable con acceso de escritura.

una variable con acceso de escritura

4259

4260

4261

El valor inicial de la

El valor inicial de la instrucción 'FOR' debe

instrucción 'FOR' debe ser

ser compatible con el tipo de la variable de

del tipo INT

conteo.

El valor final de la

El valor final de la instrucción 'FOR' debe ser

instrucción 'FOR' debe ser

compatible con el tipo de la variable de

del tipo INT

conteo.

El valor de incremento de

El valor de incremento de la instrucción

4262

4263

la instrucción 'FOR' debe

'FOR' debe ser compatible con el tipo de la

ser del tipo INT

variable de conteo.

'EXIT' sólo se permite

Utilice 'EXIT' sólo dentro de instrucciones

dentro de un bucle

'FOR', 'WHILE' o 'UNTIL'.

Número, 'ELSE' o

Dentro de un 'CASE' sólo se puede indicar

'END_CASE' esperado

un numéro o una instrucción 'ELSE' o la instrucción final 'END_CASE'.

4264

4265

El selector de la instrucción

Asegúrese de que el selector es un tipo de

CASE tiene que ser del

datos entero o de cadena de bits (p.ej. DINT,

tipo INT

DWORD).

Después de ',' se espera

En la enumeración de selectores CASE se

un número

debe indicar otro selector después de una coma.

4266

4267

Se necesita por lo menos

Introduzca una instrucción, como mínimo un

una instrucción

punto y coma.

Una llamada de un módulo

El identificador de la llamada del módulo de

de funciones tiene que

función no es ninguna instancia. Declare una

empezar con el nombre de

instancia del módulo de funciones deseado o

una instancia

utilice el nombre de una instancia ya declarada.

4268

Se espera una expresión

En esta posición se debe introducir una expresión.

4269

Tras la rama 'ELSE' se

Cierre la instrucción 'CASE' tras la rama

espera 'END_CASE'

'ELSE' con 'END_CASE'.

4270

4271

4272

La constante 'CASE' '%ld'

Un selector 'CASE' sólo se puede utilizar una

ya se utiliza

vez dentro de una instrucción 'CASE'.

El margen inferior del

Corrija los márgenes de los selectores de

rango es mayor que el

forma que el límite inferior no sea mayor que

margen superior.

el límite superior.

Se espera el parámetro

Si utiliza el parámetro de función en la

'' en la posición

llamada de función indicando los nombres de

en la llamada

parámetros, la posición del parámetro

de ''

(secuencia) debe coincidir con la de la definición de la función.

4273

El área CASE '' se interfiere con el

indicados en la instrucción CASE no se

área ya utilizada ''

4274

4300

Rama 'ELSE' múltiple en

Una instrucción CASE no puede contener

instrucción CASE

más de una rama 'ELSE'.

Salto o Return necesitan

Asegúrese de que la entrada para el salto o

una entrada booleana

la instrucción de Return es una expresión booleana.

4301

El módulo ''

La cantidad de entradas no coincide con la

solicita exactamente

cantidad de variables VAR_INPUT y

'' entradas

VAR_IN_OUT indicadas en la definición del módulo.

4302

El módulo ''

La cantidad de entradas no coincide con la

solicita exactamente

cantidad de variables VAR_OUTPUT

'' salidas

indicadas en la definición del módulo.

4303

no es ningún

Sustituya '' por un operador válido.

operador

4320

Expresión no booleana

La señal de contacto para un contacto debe

'' utilizada en el

ser una expresión booleana.

contacto

4321

Expresión no booleana

La variable de salida de una bobina debe ser

'' utilizada en

del tipo BOOL.

bobina

4330

Se espera una expresión

Conecte la entrada EN del módulo

en la entrada 'EN' del

'' con una entrada o una expresión.

módulo ''

4331

Se espera una expresión

La entrada del módulo del operador no se ha

en la entrada

conectado.

''%d del módulo ''

4332

Se espera una expresión

La entrada del módulo es del tipo

en la entrada ''

VAR_IN_OUT y no está conectada.

del módulo ''

4333

4334

Identificador en salto

El destino del salto no es un identificador

esperado

válido.

Se espera una expresión

Conecte la entrada del salto con una

en la entrada del salto

expresión booleana. Si es TRUE, se ejecuta el salto.

4335

Se espera una expresión

Conecte la entrada de la instrucción Return

en la entrada de Return

con una expresión booleana. Si es TRUE, se

ejecuta el salto.

4336

4337

4338

Se espera una expresión

Vincule la salida con la expresión que se

en la entrada de la salida

pueda asignar a esta salida.

Identificador para entrada

Inserte una expresión o identificador válidos

esperado

en el box de entrada.

El módulo '' no

Ninguna de las entradas del módulo del

tiene ninguna entrada real

operador '' está conectada con una expresión válida.

4339

Tipos incompatibles en la

La expresión del box de salida no tiene un

salida: El '' no se

tipo compatible con la expresión que se le

puede convertir en

debe asignar.

''.

4340

4341

El salto requiere una

Asegúrese de que la entrada para el salto es

entrada booleana

una expresión booleana.

Return requiere una

Asegúrese de que la entrada para la

entrada booleana

instrucción Return es una expresión booleana.

4342

La entrada 'EN' del box

Vincule la entrada EN del módulo con una

requiere una entrada

expresión booleana válida.

booleana

4343

Valores de constantes:

Ha declarado la entrada '' del

Tipo no permitido para

módulo '' como VAR_INPUT

parámetro '' de

CONSTANT. Pero le ha asignado una

'': No se puede

expresión en el diálogo 'Edición parámetros'

convertir '' en

que tiene un tipo no compatible.

''.

4344

4345

'S' y 'R' precisan

Fije una expresión booleana válida detrás de

operandos booleano

la instrucción Set o Reset.

Tipo no permitido para

Ha asignado una instrucción a la entrada

parámetro '' de

'' del módulo '' que tiene

'': No se puede

un tipo no compatible.

convertir '' en ''.

4346

Una salida no puede ser

El objetivo de una asignación debe ser una

una constante

variable o una dirección directa con acceso de escritura.

4347

El parámetro VAR_IN_OUT

Se deben transferir variables con acceso de

precisa una variable con

escritura al parámetro VAR_IN_OUT, dado

acceso de escritura

que estas variables se pueden modificar dentro del módulo.

4350

Una acción SFC no puede

Las acciones SFC sólo pueden llamarse

llamarse desde fuera

dentro del módulo SFC en las que están definidas.

4351

El nombre de paso no es

Cambie el nombre del paso y seleccione un

un identificador admisible:

identificador válido para el nombre.

''

4352

Caracteres no permitidos

Borre los caracteres no permitidos en el

tras el nombre de paso

nombre del paso.

permitido:''

4353

Nombres de paso dobles:

Cambie el nombre de uno de los pasos.

''

4354

Salto a paso no definido:

Seleccione como destino del salto un

''

nombre de paso existente o inserte un paso con el nombre todavía no definido.

4355

Una transición no debe

Una transición sólo puede contener una

tener efectos secundarios

expresión booleana.

(asignaciones, llamadas FB, etc.)

4356

4357

Salto sin nombre de paso

Utilice un identificador válido como destino

válido: ''

del salto.

No se encontró la

Compruebe si en el administrador de la

biblioteca IEC

biblioteca se ha incluido la biblioteca iecsfc.lib y si las rutas de las bibliotecas introducidas en las opciones del proyecto son correctas.

4358

Acción no declarada:

Ocúpese de que la acción del paso IEC se

''

haya insertado en el Object Organizer bajo el módulo SFC y el nombre de la acción se introduce en la casilla a la derecha del cualificador.

4359

Cualificador no válido:

Introduzca un cualificador para la acción IEC

''

en la casilla a la izquierda junto al nombre de la acción.

4360

Constante de tiempo

Introduzca una constante de tiempo para la

esperada después de

acción IEC en la casilla a la izquierda detrás

cualificador: ''

del cualificador.

4361

El identificador ''

Introduzca el nombre de una acción definida

no define ninguna acción

en el proyecto o una variable booleana para la acción IEC en la casilla a la derecha del cualificador.

4362

Expresión no booleana

Introduzca una variable booleana o un

utilizada en la acción:

nombre de acción válido.

''

4363

El nombre del paso IEC ya

Cambie el nombre del paso o de la variable.

está en uso para la variable: ''

4364

4365

4366

Una transición debe ser

El resultado de la expresión de la transición

una expresión booleana

debe ser del tipo BOOL.

El paso '' tiene

Abra el diálogo de atributos de pasos para el

un valor de límites de

paso '' e introduzca las variables o

tiempo incorrecto

constantes de tiempo válidas.

La marca para el paso

Introduzca un identificador permitido junto al

paralelo no es un

triángulo que señala la etiqueta.

identificador permitido: ''

4367

4368

4369

La marca '' ya

Ya ha identificado una etiqueta o un paso

existe

con este nombre. Cambie el nombre.

La acción '' se

Está utilizando la acción '' tanto en

utiliza en varios niveles

el módulo como en una o varias acciones de

SFC superpuestos!

este módulo.

Se necesita exactamente

Ha utilizado varias redes FBD o LD para la

4370

una red para una transición

transición. Utilice sólo una red.

Se han encontrado líneas

Borre las líneas no necesarias al final de la

adicionales después de la

transición.

transición IL correcta

4371

Caracteres adicionales tras

Borre los caracteres no necesarios al final de

una expresión válida:

la transición.

''

4400

Módulo ''

El módulo no se puede convertir

incompleto / importado o

completamente según IEC 61131-3.

convertido con errores.

4401

Constante de tiempo S5

En el acumulador no hay ningún tiempo

'' segundos

codificado BCD válido.

demasiado grande (máx. 9990s).

4402

4403

4404

4405

Las direcciones directas no

Asegúrese de que sólo accede a una

son válidas para E/S.

variable definida como entrada o salida.

Commando STEP5/7 no

No todos los comandos STEP5/7 son

válido o no convertible en

convertibles según IEC 61131-3, por ejemplo

IEC 61131-3.

comandos CPU como MAS.

Operando STEP5/7 no

No todos los operandos STEP5/7 son

válida o no convertible

convertibles según IEC 61131-3 o falta un

según IEC 61131-3.

operando.

Reset de un temporizador

Los correspondientes temporizadores IEC no

STEP5/7-no se puede

tienen ninguna entrada de Reset.

convertir según IEC 61131-

3.

4406

Constante de contador

En el acumulador no hay ninguna constante

STEP5/7 fuera de rango

de contador codificada BCD válido.

(máx. 999).

4407

4408

Instrucción STEP5/7 no

No todas las instrucciones STEP5/7 son

convertible según IEC

convertibles según IEC 61131-3, por ejemplo

61131-3.

DUF.

Acceso de bit de WORD

Los comandos de temporizador/contador

de temporizador o

especiales no son convertibles según IEC

contador no convertible en

61131-3.

IEC 61131-3.

4409

4410

Contenido de ACCU1 o

Un comando que vincula los dos

ACCU2 no definido, no

acumuladores no se puede convertir porque

convertible según IEC

los contenidos del acumulador son

61131-3.

desconocidos.

El módulo llamado no

Importe primero el módulo llamado.

existe en el proyecto.

4411

Error en lista de variables

Compruebe el archivo SEQ.

globales.

4412

Error interno No 11

Póngase en contacto con el fabricante de su mando.

4413

Formato de línea

El código a importar contiene una fecha

incorrecto en módulo de

incorrecta.

datos

4414

Falta nombre FB/FX

En el archivo S5D de salida falta el nombre simbólico de un módulo de función (ampliado).

4415

Instrucción después de fin

No se puede importar un módulo protegido.

de módulo no permitida

4416

No es una instrucción

El comando S5/S7 no se puede desmontar.

válida

4417

Comentario no cerrado

Cierre el comentario con "*)".

4418

Nombre FB/FX demasiado

El nombre simbólico de un módulo de

largo (máx. 8 caracteres)

funciones (ampliado) es demasiado largo.

Formato de línea esperado

Corrija la línea.

4419

""(* Nombre: *)""

4420

Falta nombre de parámetro

Compruebe los módulos de funciones.

FB/FX

4421

Nombre de tipo de

Compruebe los módulos de funciones.

parámetro FB/FX no válido

4422

Falta tipo de parámetro

Compruebe los módulos de funciones.

FB/FX

4423

Operando actual no valido

Compruebe la interfaz del módulo de función.

4424

Advertencia: falta FB/FX

El módulo de función llamado no se ha

para llamada o los

importado, es incorrecto o no tiene ningún

parámetros no son válidos

parámetro (en el último caso puede ignorar

o tiene 0 parámetros

el mensaje).

4425

Falta definición de etiqueta

No se ha indicado el destino de un salto.

4426

El módulo no dispone de

Modifique el nombre del módulo.

un nombre de módulo STEP5 válido, p.ej. PB10

4427

4428

Tipo de temporizador no

Inserte una declaración del temporizador en

declarado

la lista de variables global.

Se ha sobrepasado el

No se pueden tener más de siete paréntesis

número máximo de

abiertos.

paréntesis abiertos STEP5/7

4429

4430

Error en el nombre del

El nombre de parámetro no puede ser mayor

parámetro formal

de cuatro caracteres.

Tipo de parámetro formal

El temporizador, el contador y los módulos

no convertible en IEC

no se pueden convertir como parámetros formales en IEC 61131-3.

4431

Demasiados parámetros

Un módulo no puede tener más de dieciséis

VAR_OUTPUT para una

parámetros formales como salidas.

llamada en STEP5/7-IL

4432

4434

No se permiten etiquetas

En IEC 61131-3 las etiquetas no pueden

dentro de una expresión

estar en cualquier posición.

Demasiadas etiquetas

Un módulo no puede contener más de 100

etiquetas.

4435

Después de salto/llamada,

Después de un salto o llamada debe haber

debe iniciarse una

un comando de carga.

expresión nueva

4436

4437

4438

Resultado de bit no

Un comando que utiliza el VKE no se puede

definido, no convertible en

convertir porque el valor de VKE es

IEC 61131-3.

desconocido.

Tipo de comando y

Se ha utilizado un comando de bits en un

operando no compatibles

operando Word o viceversa.

No hay módulo de datos

Inserte una instrucción A DB.

abierto (introduzca antes una instrucción A DB)

4500

Variable o dirección

Esta variable Watch no está declarada en el

desconocida

proyecto. Pulsando obtendrá la ayuda de entrada para las variables declaradas.

4501

Una expresión Watch

Elimine los caracteres sobrantes.

válida es seguida por caracteres no autorizados

4520

4521

Error en la directiva de

La entrada del pragma no es correcta.

compilación: Se espera un

Compruebe que '' sea un indicador

flag antes de ''!

correcto.

Error en la directiva de

Compruebe que pragma esté compuesto

compilación: Elemento

correctamente.

'' inesperado!

4522

4550

Directiva 'flag off'

Ha fallado la desconexión del pragma,

esperada!

inserte una instrucción 'flag off'.

Índice en área no

Asegúrese de que el índice se encuentra en

permitida: Variables OD

el área especificada en las opciones del

, línea .

4551

Subíndice en área no

Asegúrese de que el subíndice se encuentra

permitida: Variables OD

en el área especificada en las opciones del

, línea .

4552

Índice fuera del rango

Asegúrese de que el índice se encuentra en

definido: Parámetro OD

el área especificada en las opciones del

, línea .

4553

Subíndice fuera del rango

Asegúrese de que el subíndice se encuentra

definido: Parámetro OD

en el área especificada en las opciones del

, línea .

4554

4555

Nombre de variable no

Introduzca una variable de proyecto en el

válido: Variables OD

campo variable. Utilice la escritura .

variables globales.

El campo de tabla está

Se debe realizar una entrada para este

vacío, la entrada no es

campo.

opcional: parámetro OD %d, línea %d

4556

El campo de tabla está

Se debe realizar una entrada para este

vacío, la entrada no es

campo.

opcional: variable OD %d, línea %d

TwinCAT PLC Control: Instrucciones de líneas de comandos

Instrucciones de líneas de comandos / archivos de comandos Instrucciones de líneas de comandos Durante el inicio el usuario tiene la posibilidad de introducir en el control TwinCAT PLC determinados comandos que entran en operación durante la ejecución. Estas instrucciones de líneas de comandos comienzan con "/". No hay diferenciación entre mayúsculas y minúsculas. La ejecución se verifica en forma secuencial de izquierda a derecha.

Comando

Descripción

/debug

/online

/run

/show ...

Se puede ajustar la representación de Frame-Windows del control del TwinCAT PLC.

/show hide

La ventana no se mostrará ni tampoco aparece en la lista de tareas.

/show icon

La ventana se mostrará minimizada.

/show max

La ventana se mostrará maximizada.

/show normal

La ventana se mostrará en el estado que estaba la última vez que se cerró.

/out

Además en la ventana de mensajes, todos los mensajes aparecerán también en el archivo .

/cmd

Después del inicio se ejecutarán las instrucciones del archivo de comandos .

La

entrada

de

una

línea

de

comando

se

realiza

de

la

siguiente

forma:

"" "" / / . Ejemplo

de

una

línea

de

comandos:

"D:\dir1 TwinCAT PLC Control" "C:\projects\ampel.pro" /show hide /cmd command.cmd Se abre el archivo ampel.pro, la ventana no se muestra. Se elabora el contenido del archivo de comandos (cmdfile) command.cmd. Instrucciones del archivo de comandos A continuación encontrará un listado de las instrucciones que se pueden usar en un archivo de comandos (), que puede llamar individualmente mediante las líneas de comandos (vea arriba). No hay diferenciación entre mayúsculas y minúsculas. La línea de comando se entrega como mensaje en la ventana de mensajes y en ocasiones en el archivo de mensajes (vea abajo), fuera de la instrucción se antepone una "@". Todos los caracteres después del punto y coma (;) serán ignorados (comentario). Instrucciones de los menús en línea:

Instrucciones

Descripción

online login

Conexión con el proyecto cargado ('En línea' 'Inicio de sesión')

online logout

Desconexión ('En línea' 'Fin sesión')

online run

Inicio del programa de aplicación ('En línea' 'Iniciar')

online sim

Activación de la simulación ((*) 'En línea' 'Simulación')

online sim off

Desactivación de la simulación. ('En línea' 'Simulación')

Instrucciones del menú archivo:

Instrucciones

Descripción

file new

Crea un nuevo proyecto ('Archivo' 'Nuevo').

file open

Carga el proyecto indicado ('Archivo' 'Abrir').

file close

Cierra el proyecto cargado ('Archivo' 'Cerrar').

file save

Guarda el proyecto cargado ('Archivo' 'Guardar').

file saveas

El proyecto cargado se guarda con el nombre especificado

('Archivo' 'Guardar como').

file quit

Sale del Control TwinCAT PLC ('Archivo' 'Salir').

Instrucciones del menú Proyecto:

Instrucciones :

Descripción

project compile

El proyecto cargado se compila con "Compilar todo" ('Proyecto'

'Compilar todo').

project check

El proyecto cargado se verifica ('Proyecto' 'Verificar todo').

project build

El proyecto cargado se compila ('Proyecto' 'Compilar').

project import

Los archivos especificados ... se importan en el

...

proyecto cargado ('Proyecto' 'Importar').

project export

El proyecto cargado se exporta al archivo especificado

('Proyecto' 'Exportar').

project expmul

Los objetos del proyecto cargado son exportados a un archivo

separado que lleva el respectivo nombre del objeto.

Instrucciones para el manejo de archivos de mensajes

Instrucciones

Descripción

out open

Abre el archivo especificado como salida de mensajes. Los mensajes nuevos se anexan.

out close

Cierra el archivo de mensajes abierto en ese momento.

out clear

Borra todos los mensajes de los archivos de mensajes abiertos en ese momento.

Instrucciones para el manejo de las salidas de mensajes

Instrucciones

Descripción

echo on

Las líneas de instrucciones se entregan también como mensaje.

echo off

Las líneas de comandos no se entregan como mensaje.

echo

se entrega como mensaje.

Instrucciones para el manejo del reemplazo de objetos o archivos en la importación, exportación, reemplazo:

Instrucciones

Descripción

replace ok

Reemplazar

replace yes

replace no

No reemplazar.

replace noall

No reemplazar nada

replace yesall

Reemplazar todo.

Instrucciones para el manejo del funcionamiento predeterminado de los cuadros de diálogo:

Instrucciones

Descripción

query on

Se muestra el cuadro de diálogo y se espera el ingreso de datos del usuario.

query off ok

Todos los cuadros de diálogo funcionan como cuando el usuario ha hecho clic en Aceptar.

query off no

Todos los cuadros de diálogo funcionan como cuando el usuario

ha hecho clic en No.

query off cancel

Todos los cuadros de diálogo funcionan como cuando el usuario ha hecho clic en ”Cancelar”.

Instrucción debug:

Instrucción

Descripción

debug

corresponde a /debug en la línea de comandos.

Instrucción para llamar a archivos de comandos como subrutinas:

Instrucción

Descripción

call

Los archivos de comando se llaman como subrutinas. Se

...

pueden pasar hasta 10 parámetros. En los archivos invocados

se puede acceder a los parámetros con $0 - $9.

Instrucciones para definir los directorios utilizados:

Instrucciones

Descripción

dir lib

Defina como directorio de librería.

dir compile

Defina como directorio para los archivos de

compilación.

Instrucción para el retardo de la procesamiento de CMDFILE:

Instrucción

Descripción

delay 5000

Espera 5 segundos.

Instrucciones para el manejo del administrador Watch y de fórmulas:

Instrucciones

Descripción

watchlist load

Carga la lista Watch guardada en y abre la ventana correspondiente ('Herramientas' 'Cargar lista de watch').

watchlist save

Guarda la lista Watch en ('Herramientas' 'Guardar lista de

watch').

watchlist set

Da a una lista Watch cargada con anterioridad el nombre ('Herramientas' 'Renombrar lista de watch').

watchlist read

Actualiza el valor de las variables Watch ('Herramientas' 'Leer fórmula').

watchlist write

Usa las variables Watch con los valores que se encuentran en la lista Watch > ('Herramientas' 'Escribir fórmula').

Comandos para incorporar bibliotecas:

Instrucciones

Descripción

library add

Agrega los archivos de biblioteca indicados a la lista de bibliotecas

relativa, el directorio de biblioteca configurado en el proyecto se

..

library delete

Borra las bibliotecas indicadas de la lista de bibliotecas del proyecto

actual abierto, o todas las bibliotecas si no se indica ningún nombre

.

de biblioteca

. ]

Comandos para copiar objetos:

Instrucciones

Descripción

object copy

Copia objetos de la ruta indicada del archivo del proyecto de origen



Si la ruta de origen es el nombre de un objeto, se copia. Si se trata de una carpeta, se copian todos los objetos debajo de esta carpeta. En este caso se toma la estructura de carpeta de la carpeta de origen. Si la ruta de destino todavía no existe, se creará.

Comandos para la llamada del sistema:

Instrucciones

Descripción

system

Ejecuta el comando del sistema operativo indicado.

Comandos para el accionamiento En línea:

Instrucciones

Descripción

Reset

Ejecuta un Reset del mando.

ResetAll

Ejecuta un Reset All del mando. También se borran los datos

permanentes.

CreateBootprojec

Se crea un proyecto de arranque.

t

ChooseRuntime

Se puede seleccionar un sistema de tiempo de funcionamiento

determinado. Como se debe indicar el ID de red y el número de puerto separado con ':': Ejemplo: ChooseRuntime 172.16.77.23.1.1:811 o ChooseRuntime 5.2.122.255.1.1:801

Ejemplo de archivo cmdfile: El siguiente archivo de comando abre el archivo de proyecto ampel.pro, carga una lista Watch cargada en w.wtc, inicia el programa de aplicación, escribe después de un segundo los valores de variable en la lista Watch watch.wtc, que se guardará y cierra el proyecto. file

open

C:\work\projects\ampel.pro

query watchlist

off load

ok c:\work\w.wtc

online

login

online

run

delay

1000

watchlist

read

watchlist

save

online

c:\work\watch.wtc logout

file close

TwinCAT PLC Control: Data Types

Descripción general El usuario puede utilizar tipos de datos estándar o de definición propia para la programación. A cada identificador se le asigna un tipo de datos de datos que establece la cantidad de memoria que se reserva y los valores que corresponden al contenido de la memoria.

Tipos de datos estándar

Tipos de datos definidos

BOOL

ARRAY (campos)

BYTE

POINTER

WORD

ENUM (tipo de enumeración)

DWORD

STRUCT (estructuras)

SINT

ALIAS (tipo de referencias)

USINT

Sub-range data types

INT

UINT

DINT

UDINT

REAL

LREAL

STRING

TIME

TIME_OF_DAY (TOD)

DATE

DATE_AND_TIME (DT)

TwinCAT PLC Control: Standard Data Types

BOOL Las variables del tipo BOOL pueden tomar los valores lógicos TRUE y FALSE.

Type

Memory use

BOOL

8 Bit

Note: A BOOL type variable is true, if the least significant bit in the memory is set (e.g. 2#00000001 ). If no bit is set in the memory, the variable is FALSE (2#00000000). All other values can´t be interpeted accurately and be displayed (***INVALID: 16#xy *** in the Online View). Such problems may appear, if for example overlapped memory ranges are used in the PLC program. Example: The boolean variable is in the same memory range as the byte variable. PROGRAM MAIN VAR bBool AT%MB0

: BOOL;

nByte AT%MB0

: BYTE := 3;

bIsTRUE

: BOOL;

END_VAR IF bBool THEN bIsTRUE := TRUE; ELSE bIsTRUE := FALSE; END_IF Online display after program start

TwinCAT PLC Control: Standard Data Types

BYTE Integer data type.

Type

Lower bound

Upper bound

Memory use

BYTE

0

255

8 Bit

TwinCAT PLC Control: Standard Data Types

WORD

Integer data type.

Type

Lower bound

Upper bound

Memory use

WORD

0

65535

16 Bit

TwinCAT PLC Control: Standard Data Types

DWORD Integer data type.

Type

Lower bound

Upper bound

Memory use

DWORD

0

4294967295

32 Bit

TwinCAT PLC Control: Standard Data Types

SINT (Short) signed integer data type.

Type

Lower bound

Upper bound

Memory use

SINT

-128

127

8 Bit

TwinCAT PLC Control: Standard Data Types

USINT Unsigned (short) integer data type.

Type

Lower bound

Upper bound

Memory use

USINT

0

255

8 Bit

TwinCAT PLC Control: Standard Data Types

INT Signed integer data type.

Type

Lower bound

Upper bound

Memory use

INT

-32768

32767

16 Bit

TwinCAT PLC Control: Standard Data Types

UINT Unsigned integer data type.

Type

Lower bound

Upper bound

Memory use

UINT

0

65535

16 Bit

TwinCAT PLC Control: Standard Data Types

DINT Signed integer data type.

Type

Lower bound

Upper bound

Memory use

DINT

-2147483648

2147483647

32 Bit

TwinCAT PLC Control: Standard Data Types

UDINT Unsigned integer data type.

Type

Lower bound

Upper bound

Memory use

UDINT

0

4294967295

32 Bit

TwinCAT PLC Control: Standard Data Types

REAL 32 Bit floating point data type. It is required to represent rational numbers.

Type

Lower bound

Upper bound

Memory use

REAL

~ -3.402823 x 1038

~ 3.402823 x 1038

32 Bit

TwinCAT PLC Control: Standard Data Types

LREAL 64 Bit floating point data type. It is required to represent rational numbers.

Type

Lower bound

Upper bound

Memory use

LREAL

~

~

64 Bit

-1.79769313486231E3

1.79769313486232E30

08

8

TwinCAT PLC Control: Standard Data Types

STRING Una variable del tipo STRING puede contener cualquier cadena de caracteres. La indicación de tamaño para la capacidad de memoria reservada en la declaración hace referencia a la cantidad de caracteres y se puede incluir entre paréntesis o corchetes. Si no se indica ningún tamaño (1..255), el valor estándar es de 80 caracteres. Todas las variables String terminan en cero. Ejemplo de una declaración String: str:STRING(35):='Esto es una declaración String';

Type

Memory use

STRING



If no size specification is given, the default size of 80 characters will be used: Memory use [Bytes] = 80 + 1 Byte for string terminated Null character;



If string size specification is given: Memory use [Bytes] = String Size + 1 Byte for string terminated Null character);

TwinCAT PLC Control: Standard Data Types

TIME Time is given in milliseconds and handled internally like DWORD.

Type

Lower bound

Upper bound

Memory use

TIME

T#0ms

T#71582m47s295m

32 Bit

s

TwinCAT PLC Control: Standard Data Types

TIME_OF_DAY TOD Time of day is given in seconds and handled internally like DWORD.

Type

Lower bound

Upper bound

Memory use

TIME_OF_DAY

TOD#00:00

TOD#1193:02:47.29

32 Bit

5 TOD

TwinCAT PLC Control: Standard Data Types

DATE Date is handled internally like DWORD. The most significant digit is one second.

Type

Lower bound

Upper bound

Memory use

DATE

D#1970-01-01

D#2106-02-06

32 Bit

TwinCAT PLC Control: Standard Data Types

DATE_AND_TIME DT Date and time. The most siginificant digit is one second. The data type is handled internally lika DWORD.

Type

Lower bound

Upper bound

Memory use

DATE_AND_TIME

DT#1970-01-01-

DT#2106-02-06-

32 Bit

00:00

06:28:15

DT

TwinCAT PLC Control: User Data Types

Arrays Se admiten campos de una, dos y tres dimensiones (arrays) de tipos de datos elementales. Los arrays se pueden definir en la parte de declaración de un Módulo o en las listas globales de variables. Sintaxis: :ARRAY [..,..] OF LowLim1, LowLim2 indican el límite inferior de la gama del campo y UpLim1, UpLim2 el límite superior. Los valores límite se tienen que expresar en números enteros. Ejemplo: Card_game : ARRAY [1..13, 1..4] OF INT; Inicialización de arrays Siempre se inicializan todos los elementos de los arrays o ninguno de ellos. Ejemplos para la inicialización de arrays:

arr1 arr2

: :

ARRAY

ARRAY [1..2,3..4]

[1..5] OF

INT

OF :=

1,3(7);

INT (*

:=

abreviado

para

1,2,3,4,5; 1,7,7,7

*)

arr3 : ARRAY [1..2,2..3,3..4] OF INT := 2(0),4(4),2,3; (* abreviado para 0,0,4,4,4,4,2,3 *) Ejemplo para la inicialización de un array de una estructura: TYPE

STRUCT1

STRUCT p1:int; p2:int; p3:dword; END_STRUCT arr1

:

ARRAY[1..3]

OF

STRUCT1:=

(p1:=1,p2:=10,p3:=4723),

(p1:=2,p2:=0,p3:=299),

(p1:=14,p2:=5,p3:=112); Ejemplo para la inicialización parcial de un array: arr1 : ARRAY [1..10] OF INT := 1,2; Los elementos para los cuales no se indica ningún valor se inicializan con el valor inicial del tipo básico por defecto. En el ejemplo anterior se inicializan los elementos arr1[3] hasta arr1[10] con 0. Para acceder a los componentes de arrays en un campo bidimensional, se utiliza la siguiente sintaxis: [Index1,Index2] Ejemplo: Card_game[9,2] Nota: Si en su proyecto define una función con el nombre CheckBounds puede comprobar automáticamente interferencias de área en el array! El nombre de la función está especificado y debe mostrar únicamente esta denominación

TwinCAT PLC Control: User Data Types

Puntero (POINTER) En los punteros se guardan las direcciones de variables o bloques de funciones para el tiempo de ejecución

de

un

programa.

Las declaraciones de puntero tienen la siguiente sintaxis: : POINTER TO ; Un puntero puede indicar cualquier tipo de datos y bloque de funciones, incluso de definición propia. Con el operador de dirección ADR se asigna al puntero una dirección de una variable o bloque de función. La desreferenciación de un puntero se produce mediante el operador de contenidos "^" tras el identificador del puntero. Tenga en cuenta lo siguiente: Los punteros se incrementan en un byte. Mediante la instrucción p=p+SIZEOF(p^) puede conseguirse un contador positivo como en el compilador de C. Advertencia: Si se utiliza ”Online Change”, es posible que se desplace el contenido de las direcciones. Téngalo en cuenta cuanto utilice punteros a direcciones. Ejemplo: pt:POINTER

TO

INT;

var_int1:INT

:=

5;

var_int2:INT; pt

:=

ADR(var_int1);

var_int2:= pt^; (* var_int2 es ahora 5 *)

Ejemplo 2 (Puntero incrementar): ptByCurrDataOffs

:

POINTER

TO

BYTE;

udiAddress : UDINT; (*--udiAddress

pointer

increment :=

---*) ptByCurrDataOffs;

udiAddress

:=

udiAddress

ptByCurrDataOffs

+

SIZEOF(ptByCurrDataOffs^);

:=

udiAddress;

(* -- end of pointer increment ---*)

TwinCAT PLC Control: User Data Types

ENUM (Tipo de enumeración) Un tipo de enumeración es un tipo de datos de definición propia compuesto de una serie de constantes de string. A estas constantes se les denomina valores de enumeración. Los valores de enumeración siempre están accesibles en todo el proyecto. Conviene crear tipos de enumeración propios como objetos en la ficha Tipos de datos del Object Organizer. Empiece con la palabra clave TYPE y termine con END_TYPE. Sintaxis: TYPE

:(

,,

...,);

END_TYPE puede tomar uno de los valores de enumeración y se inicializa con el primero. Los valores son compatibles con números enteros, es decir, se pueden efectuar con ellos operaciones como con INT. Es posible asignar un número x a . Si los valores de enumeración no están inicializados, el conteo empieza con 0. Al inicializar, cerciórese de que los valores iniciales sean ascendentes. La validez del número se comprueba en función del tiempo de funcionamiento. Ejemplo: SEMAFORO: (rojo, amarillo, verde:=10); (*Rojo tiene el valor inicial 0, amarillo 1, verde 10 *) SEMAFORO_1 : SEMAFORO; SEMAFORO_1:=0; (* el semáforo muestra el valor Rojo*) FOR i:= Rojo TO Verde DO i := i + 1; END_FOR; El mismo valor de enumeración no se debe utilizar dos veces.

Ejemplo: SEMAFORO:

(rojo,

amarillo,

verde);

COLOR: (azul, blanco, rojo); Error: rojo no se debe utilizar para AMPEL y FARBE.

TwinCAT PLC Control: User Data Types

Estructuras (STRUCT) Las estructuras se guardan como objetos en la ficha Tipos de datos del Object Organizer. Empiece con la palabra clave TYPE y termine con END_TYPE. Las declaraciones de estructura tienen la siguiente sintaxis: TYPE : STRUCT . . END_STRUCT END_TYPE es ahora un tipo accesible en todo el proyecto que se puede utilizar como un tipo de datos estándar. Se admiten estructuras intercaladas. La única limitación es que las variables no pueden incluirse en direcciones (¡no se admite la declaración AT!). Ejemplo para una definición de estructura con el nombre Polygon: TYPE Polygon: STRUCT Start

:ARRAY [1..2] OF INT;

Point1

:ARRAY [1..2] OF INT;

Point2

:ARRAY [1..2] OF INT;

Point3

:ARRAY [1..2] OF INT;

Point4

:ARRAY [1..2] OF INT;

Ende

:ARRAY [1..2] OF INT;

END_STRUCT END_TYPE A los componentes de estructuras se accede con la siguiente sintaxis: . Si tenemos, por ejemplo, una estructura con el nombre "Semana" que contiene un componente con el nombre "Lunes", podemos acceder a ella de la siguiente manera: Semana.Lunes Nota: Estructuras y Arrays pueden ser diferentes sobre distintas plataformas de hardware (por ejemplo CX1000 y CX90xx) en función de diferentes alineamientos en la estructura y tamaño. ¡En el intercambio de datos se debe observar el tamaño idéntico y las estructuras de similar orientación! Ejemplo para una definición de estructura con nombre ST_ALIGN_SAMPLE: TYPE

ST_ALIGN_SAMPLE:

STRUCT _diField1

:

DINT;

_byField1

:

BYTE;

_iField

:

INT;

_byField2

:

BYTE;

_diField2

:

DINT;

_pField

:

POINTER

TO

BYTE;

END_STRUCT END_TYPE De este modo resultan para los componentes del miembro de la estructura ST_ALIGN_SAMPLE sobre CX90xx (RISC) los siguientes tamaños y Offsets: _diField1

(DINT),

_byField1

(BYTE),

_iField _byField2

(INT), (BYTE),

Offset

=

Offset Offset Offset

= =

0

(16#0),

Size

=

4

4

(16#4),

Size

=

1

6 =

(16#6), 8

(16#8),

Size Size

= =

2 1

_diField2

(DINT),

Offset

=

12

(16#C),

Size

=

4

_pField (POINTER TO BYTE), Offset = 16 (16#10), Size = 4 Tamaño total por alineamiento natural con Pack(4) y con los así llamados Paddingbytes: 20 De este modo resultan para los componentes del miembro de la estructura ST_ALIGN_SAMPLE sobre CX10xx los siguientes tamaños y Offsets: _diField1

(DINT),

_byField1

(BYTE),

_iField

Offset Offset

(INT),

_byField2

(BYTE),

_diField2

(DINT),

=

Offset

0

(16#0),

Size

=

4

4

(16#4),

Size

=

1

= =

Offset Offset

5

(16#5),

= =

Size

=

2

7

(16#7),

Size

=

1

8

(16#8),

Size

=

4

_pField (POINTER TO BYTE), Offset = 12 (16#C), Size = 4 Tamaño total: 16 Vista de la estructura ST_ALIGN_SAMPLE con plataformas CX90xx (RISC) con representación de los Paddingbytes: TYPE

ST_ALIGN_SAMPLE:

STRUCT _diField1

:

DINT;

_byField1

:

BYTE;

_byPadding

:

BYTE;

_iField

:

INT;

_byField2

:

BYTE;

_a_byPadding

:

_diField2 _pField

ARRAY[0..2]

OF

: :

POINTER

BYTE; DINT;

TO

BYTE;

END_STRUCT END_TYPE

TwinCAT PLC Control: User Data Types

Referencias (tipos de alias) El tipo de datos de definición propia Referencia sirve para crear un nombre alternativo para una variable, una constante o un Bloque de Funciones. Cree sus referencias como objetos en la ficha

Tipos de datos del Object Organize . Empiece con la palabra clave TYPE y termine con END_TYPE. Sintaxis: TYPE

:

;

END_TYPE Ejemplo: TYPE

message:STRING[50];

END_TYPE;

TwinCAT PLC Control: User Data Types

Tipos de subáreas Un tipo de subárea es un tipo cuya área de valores sólo abarca una subcantidad de un tipo básico. La declaración se puede realizar en el registro de tipos de datos, pero una variable también puede ser

declarada

directamente

con

un

tipo

de

Sintaxis para la declaración en el registro 'tipos de datos': TYPE : (..) END_TYPE;

Tipo

Descripción

Debe ser un identificador IEC válido.

Es uno de los tipos de datos SINT, USINT, INT, UINT, DINT, UDINT, BYTE, WORD, DWORD.

Es una constante que debe ser compatible con los tipos básicos y que especifica el límite inferior del tipo de área. El límite inferior pertenece a esta área

Es una constante que debe ser compatible con los tipos básicos y que

subárea:

especifica el límite superior del tipo de área. El límite superior pertenece a este tipo básico.

Ejemplo: TYPE SubInt

:

INT

(-4095..4095);

END_TYPE Declaración directa de una variable con un tipo de subárea (tenga en cuenta la introducción correcta de un valor inicial si la subárea no contiene el '0'): VAR i1

:

i2: ui

INT INT

:

(-4095..4095); (5..10):=5;

UINT

(0..10000);

END_VAR Si se asigna una constante a un tipo de subárea (en la declaración o en la implementación) que no se encuentra en este área (p.ej. i:=5000), se edita un mensaje de error. Para comprobar el cumplimiento de los límites de área en el tiempo de ejecución, se deben añadir las funciones CheckRangeSignedo CheckRangeUnsigned. En ellas se pueden capturar las violaciones de área en la forma adecuada (por ejemplo, el valor se puede recortar o se puede fijar un indicador de error). Se llaman de forma implícita en cuanto se escribe sobre una variable que es de un tipo de subárea que se ha creado de un tipo con signo o sin signo.

TwinCAT PLC Control: IEC Operators

Descripción general TwinCAT PLC Control admite todos los operadores IEC. A diferencia de las funciones estándar, están accesibles implícitamente en todo el proyecto. En la implementación de Módulos, los operadores se utilizan como Funciones.

TwinCAT PLC Control: IEC Operators

Resumen de los operadores IEC La siguiente tabla muestra los operadores en ST y IL con los modificadores disponibles en IL. La columna '¿dónde?' indica en qué biblioteca está contenido el operador o bien si está integrado como operador IEC en el sistema de programación. Tenga en cuenta lo siguiente para la columna 'Operador IL': Sólo se representa la línea en la que se utiliza el operador. Como condición previa se requiere una carga correcta del (primer) operando necesario en la línea anterior (p.ej. LD in). La columna 'Mod.IL' muestra los modificadores posibles en IL:

C

la instrucción sólo se ejecuta si el resultado de la expresión anterior es TRUE.

N

en JMPC, CALC, RETC: la instrucción sólo se ejecuta si el resultado de la expresión anterior es FALSE

N

en caso contrario: negación del operando (no del acumulador)

(

El operador está entre paréntesis; tras llegar al paréntesis final se ejecuta la operación indicada delante del paréntesis

La descripción detallada de la aplicación puede consultarse en los correspondientes anexos de los operadores IEC integrados o de las bibliotecas.

Mod. Operador ST

'

Operador IL

IL

Significado

Limitación de cadena (p.ej. 'cadena')

[..]

Array: Representación del área de array (p.ej.

Array[0..3] OF INT)

:

Signo de división entre operando y tipo en la declaración (p.ej. var1 : INT;)

;

Instrucción de cierre (p.ej. a:=var1;)

^

Desreferencia puntero (p.ej. pointer1^)

LD var1

N

Carga de valor de var1 en acumulador

:=

TE var1

N

Guardar resultado actual en posición de operando var1

S boolvar

Ajustar el operando booleano boolvar exactamente en TRUE cuando el resultado actual es TRUE

R boolvar

Ajustar el operando booleano exactamente en FALSE cuando el resultado actual es TRUE

JMP marke

CN

Saltar a la marca



de la instancia inst1

vx,vy,..

RETURN

RET

CN

Llama la función y transfiere los parámetros vx, vy

CN

Sale del módulo y vuelve al emisor en caso necesario

(

El valor posterior a los paréntesis se ve como operando, la operación anterior se reinicia hasta que se cierra el paréntesis

)

Evaluar operación de repuesta

AND

AND

N, (

AND por bits

OR

OR

N, (

OR por bits

XOR

XOR

N, (

OR exclusivo por bits

NOT

NOT

+

ADD

(

Suma

-

SUB

(

Resta

NOT por bits

*

MUL

(

Multiplicación

/

DIV

(

División

>

GT

(

Mayor

>=

GE

(

Mayor/igual

=

EQ

(

Igual


40 > 50 > 60 > 70; Ejemplo en lenguaje FBD:

TwinCAT PLC Control: IEC Operators

LT Menor que Un operador de Bool con el resultado TRUE si el primer operando es menor que el segundo. Los operandos pueden ser del tipo BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME y STRING. Ejemplo en lenguaje IL: LD

20

LT

30

ST Var1 (* El resultado es TRUE *) Ejemplo en lenguaje ST: VAR1 := 20 < 30; Ejemplo en lenguaje FBD:

TwinCAT PLC Control: IEC Operators

LE Menor o igual que Un operador de Bool con el resultado TRUE si el primer operando es menor o igual que el segundo operando. Los operandos pueden ser del tipo BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME y STRING. Ejemplo en lenguaje IL: LD

20

LE

30

ST Var1 (* El resultado es TRUE *) Ejemplo en lenguaje ST: VAR1 := 20 = 40; Ejemplo en lenguaje FBD:

TwinCAT PLC Control: IEC Operators

EQ Igual que Un operador de Bool con el resultado TRUE si los operandos son iguales. Los operandos pueden ser del tipo BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME y STRING. Ejemplo en lenguaje IL: LD

40

EQ

40

ST Var1 (* El resultado es TRUE *) Ejemplo en lenguaje ST: VAR1 := 40 = 40; Ejemplo en lenguaje FBD:

TwinCAT PLC Control: IEC Operators

NE No igual a Un operador de Bool con el resultado TRUE si los operadores no son iguales. Los operandos pueden ser del tipo BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME y STRING. Ejemplo en lenguaje IL: LD

40

NE

40

ST Var1 (* El resultado es FALSE *) Ejemplo en lenguaje ST: VAR1 := 40 40; Ejemplo en lenguaje FBD:

TwinCAT PLC Control: Other Operators

INDEXOF Esta Función suministra como resultado el índice interno de un Módulo. Ejemplo en lenguaje ST: var1 := INDEXOF(myFB2);

TwinCAT PLC Control: Other Operators

SIZEOF Esta función suministra como resultado el número de bytes que necesita el tipo de datos indicado. Ejemplo en lenguaje IL: arr1:ARRAY[0..4]

OF

INT;

var1:INT; LD

arr1

SIZEOF ST var1 (* El resultado es 10 *)

TwinCAT PLC Control: Other Operators

ADR (Función de dirección) ADR suministra la dirección de su argumento en DWORD. Esta dirección puede enviarse a funciones de fabricante y gestionarse allí como un pointer o asignarse a un pointer dentro del proyecto. Advertencia: Si se utiliza ”Online Change”, es posible que se desplace el contenido de las direcciones. Téngalo en cuenta cuanto utilice punteros a direcciones. Ejemplo en lenguaje IL: LD ADR ST var2

TwinCAT PLC Control: Other Operators

ADRINST(Instance address operator)

var1

The ADRINST operator delivers the address of a program instance or function block instance (ADRINST is about equivalent to C++ this operator ).

TwinCAT PLC Control: Other Operators

^ (Operador de contenido) La desreferenciación de un puntero se produce mediante el operador de contenidos "^" tras el identificador del puntero. Ejemplo en lenguaje ST: pt:POINTER

TO

INT;

var_int1:INT; var_int2:INT; pt

:=

ADR(var_int1);

var_int2:=pt^;

TwinCAT PLC Control: Other Operators

CAL (Operador de llamada) Llamada a un Bloque de Funciones Con CAL se llama en lenguaje IL a la instancia de un Bloque de Funciones. El nombre de la instancia de un Bloque de Funciones va seguido, entre paréntesis, del valor de la variable de entrada del Bloque de Funciones. Ejemplo: Llamada de la instancia Inst de un Bloque de Funciones con introducción de la variable de entrada Par1, Par2 en 0 o TRUE. Ejemplo: CAL INST(PAR1 := 0, PAR2 := TRUE)

TwinCAT PLC Control: Other Operators

BITADR BITADR returns the bit address of allocated variable. Example in ST: bOFF

AT%QX10.1

:

BOOL;

iBitAdr : BYTE; iBitAdr := BITADR( bOFF ); (* returns 81 *)

TwinCAT PLC Control: IEC Operators

Conversiones BOOL_TO Conversión del tipo BOOL a otro tipo: en tipos numéricos, el resultado es 1 si el operando es TRUE y 0 si el operando es FALSE. En el tipo STRING, el resultado es 'TRUE' o 'FALSE'. Ejemplos en lenguaje ST: i:=BOOL_TO_INT(TRUE);

(*

El

str:=BOOL_TO_STRING(TRUE);

(*

t:=BOOL_TO_TIME(TRUE); tof:=BOOL_TO_TOD(TRUE);

El

(*

El

(*

dat:=BOOL_TO_DATE(FALSE);

resultado

El (*

es

resultado

es

resultado resultado

El

1 'TRUE'

es es

resultado

T#1ms

*) *) *)

TOD#00:00:00.001

*)

D#1970-01-01

*)

es

dandt:=BOOL_TO_DT(TRUE); (* El resultado es DT#1970-01-01-00:00:01 *)

TwinCAT PLC Control: IEC Operators

Conversiones TO_BOOL Conversión de un tipo al tipo BOOL: el resultado es TRUE si el operando no es igual a 0. El resultado es FALSE cuando el operando es igual a 0. En el tipo STRING, el resultado es TRUE si el operando es 'TRUE'; de lo contrario, el resultado es FALSE. Ejemplos en lenguaje ST: b b

:= :=

BYTE_TO_BOOL(2#11010101); INT_TO_BOOL(0);

(*

(* El

El

resultado

resultado

es es

TRUE FALSE

*) *)

b

:=

TIME_TO_BOOL(T#5ms);

(*

El

resultado

es

TRUE

*)

b := STRING_TO_BOOL('TRUE'); (* El resultado es TRUE *)

TwinCAT PLC Control: IEC Operators

Conversiones STRING_TO Conversión del tipo STRING a otro tipo: El operando del tipo STRING ha que tener un valor válido del tipo de destino; de lo contrario, el resultado es 0. Ejemplos en lenguaje ST: b

:=STRING_TO_BOOL('TRUE');

w

(*

:=STRING_TO_WORD('abc34');

El (*

resultado El

es

resultado

es

TRUE

*)

0

*)

'TRUE'

*)

'T#12ms'

*)

t :=STRING_TO_TIME('T#127ms'); (* El resultado es T#127ms *)

TwinCAT PLC Control: IEC Operators

Conversiones TO_STRING Conversión del otro tipo a tipo STRING. Ejemplos en lenguaje ST: str:=BOOL_TO_STRING(TRUE); str str

(*

:=TIME_TO_STRING(T#12ms);

El

resultado

(*

:=DATE_TO_STRING(D#2002-08-18);

El (*

El

str:=TOD_TO_STRING(TOD#14:01:05.123);

(*

El

str:=DT_TO_STRING(DT#1998-02-13-14:20);

(*

El

k := LREAL_TO_STRING(); (* El resultado es '1.4' *)

TwinCAT PLC Control: IEC Operators

Conversiones TIME_TO

es

resultado resultado resultado resultado

es es

es es

'D#2002-08-18'

'TOD#14:01:05.123' 'DT#1998-02-13-14:20'

*) *) *)

Conversión del tipo TIME a otro tipo: a nivel interno, el tiempo se guarda en DWORD en milisegundos. Este valor se convierte. En la conversión de tipos más grandes a otros más pequeños, se puede perder información. En el tipo STRING, el resultado es la constante de tiempo. Ejemplos en lenguaje ST: str

:=TIME_TO_STRING(T#12ms);

(*

El

resultado

es

'T#12ms'

*)

dw:=TIME_TO_DWORD(T#5m); (* El resultado es 300000 *)

TwinCAT PLC Control: IEC Operators

Conversiones DATE_TO Conversión del tipo DATE a otro tipo: a nivel interno, la fecha se guarda en DWORD en segundos desde el 1 de Enero de 1970. Este valor se convierte. En la conversión de tipos más grandes a otros más pequeños, se puede perder información. En el tipo STRING, el resultado es la constante de fecha. Ejemplos en lenguaje ST: b

:=DATE_TO_BOOL(D#1970-01-01);

i

:=DATE_TO_INT(D#1970-01-15);

str

:=DATE_TO_STRING(D#2002-08-18);

vdt:=DATE_TO_DT(D#2002-08-18);

(*

(* (*

resultado

El (*

El

El El

resultado resultado

resultado

es

es

FALSE

*)

es

29952

*)

es

'D#2002-08-18'

*)

DT#2002-08-18-00:00

*)

udw:=DATE_TO_DWORD(D#2002-08-18); (* El resultado es 16#3D5EE380 *)

TwinCAT PLC Control: IEC Operators

Conversiones TOD_TO Conversión del tipo TIME_OF_DAY a otro tipo: a nivel interno, el tiempo se guarda en DWORD en milisegundos (en TIME_OF_DAY, desde las 00:00 horas). Este valor se convierte. En la conversión de tipos más grandes a otros más pequeños, se puede perder información. En el tipo STRING, el resultado es la constante de tiempo. Ejemplos en lenguaje ST:

si:=TOD_TO_SINT(TOD#00:00:00.012);

(*

str:=TOD_TO_STRING(TOD#14:01:05.123);

(*

tm:=

(*

TOD_TO_TIME(TOD#14:01:05.123);

El El

resultado resultado

El

es

resultado

es

12

*)

'TOD#14:01:05.123'

*)

T#841m5s123ms

*)

es

udi:= TOD_TO_UDINT(TOD#14:01:05.123); (* El resultado es 16#03020963 *)

TwinCAT PLC Control: IEC Operators

Conversiones DT_TO Conversión del tipo DATE_AND_TIME a otro tipo: a nivel interno, la fecha se guarda en DWORD en segundos desde el 1 de Enero de 1970. Este valor se convierte. En la conversión de tipos más grandes a otros más pequeños, se puede perder información. En el tipo STRING, el resultado es la constante de fecha. Ejemplos en lenguaje ST: byt

:=DT_TO_BYTE(DT#1970-01-15-05:05:05);

str:=DT_TO_STRING(DT#1998-02-13-14:20);

(*

vtod:=DT_TO_TOD(DT#1998-02-13-14:20);

(*

vdate:=DT_TO_DATE(DT#1998-02-13-14:20);

(* El

(*

El

resultado

resultado es

El

resultado

El

resultado

es

129

'DT#1998-02-13-14:20' es es

*) *)

TOD#14:20

*)

D#1998-02-13

*)

vdw:=DT_TO_DWORD(DT#1998-02-13-14:20); (* El resultado es 16#34E45690 *)

TwinCAT PLC Control: IEC Operators

Conversiones REAL_TO / LREAL_TO Conversión del tipo REAL o LREAL a otro tipo: se redondea hacia arriba o hacia abajo a un valor de números enteros y se convierte a los correspondientes tipos. Quedan exceptuados los tipos STRING, BOOL, REAL y LREAL. En la conversión de tipos más grandes a otros más pequeños, se puede perder información. Durante la conversión al tipo CADENA, tenga en cuenta que el número total de posiciones con coma se limita a 16. Si el número (L)REAL contiene más posiciones, la posición dieciseisava se redondea y se visualiza en la cadena. Si la CADENA para el número es demasiado corta, se corta por la derecha. Ejemplo en lenguaje ST:

i

:=

REAL_TO_INT(1.5);

(*

El

resultado

es

2

*)

j := REAL_TO_INT(1.4); (* El resultado es 1 *) Ejemplo en lenguaje IL: LD

2.7

REAL_TO_INT GE %MW8

TwinCAT PLC Control: IEC Operators

Conversiones entre tipos de números enteros Conversión de un tipo de números enteros a otro tipo de número: en la conversión de tipos más grandes a otros más pequeños se puede perder información. Si el número a convertir sobrepasa el límite del rango, no se tienen en cuenta los primeros bytes del número. Ejemplo en lenguaje ST: si := INT_TO_SINT(4223); (* El resultado es 127 *) Si guarda el número entero 4223 (16#107f en representación hexadecimal) en una variable SINT, éste contiene el número 127 (16#7f en representación hexadecimal). Ejemplo en lenguaje IL: LD INT_TO_REAL MUL 3.5

TwinCAT PLC Control: IEC Operators

TRUNC

2

Conversión del tipo REAL al tipo INT. Sólo se toma la parte del número expresada en números enteros. En la conversión de tipos más grandes a otros más pequeños, se puede perder información. Ejemplos en ST: i:=TRUNC(1.9); (* El resultado es 1 *). i:=TRUNC(-1.4); (* El resultado es 1 *). Ejemplo en lenguaje IL: LD

2.7

TRUNC GE %MW8 Similar Functions LTRUNC FLOOR

TwinCAT PLC Control: Operands

Constantes de Bool Constantes de Bool son los valores lógicos TRUE y FALSE.

TwinCAT PLC Control: Operands

Constantes TIME En TwinCAT PLC Control se pueden declarar constantes TIME. ßstas se utilizan en especial para manejar los temporizadores de la librería estándar. Una constante TIME se compone siempre de una "t" o una "T" inicial (o "time" o "TIME" en la forma explícita) y un símbolo de almohadilla "#". A continuación, aparece la declaración de tiempo propiamente dicha, que puede estar formada por días (denominados con "d"), horas (denominadas con "h"), minutos (denominados con "m"), segundos (denominados con "s") y milisegundos (denominados con "ms"). Es preciso tener en cuenta que las indicaciones de tiempo han de ordenarse en función de su magnitud (d antes que h,

h antes que m, m antes que s y s antes que ms), aunque no es preciso que aparezcan todos los tiempos. Ejemplos de constantes TIME correctas en una asignación ST: TIME1 TIME1

:= :=

T#100S12ms;

(*Se

permite

T#14ms;

un

exceso

en

el

componente

más

alto*)

TIME1 := t#12h34m15s; Sería incorrecto: TIME1

:=

TIME1

t#5m68s;

(*Exceso

:=

en 15ms;

una

posición (*Falta

más

baja*) T#*)

TIME1 := t#4ms13d; (*Orden incorrecto de las indicaciones de tiempo*)

TwinCAT PLC Control: Operands

Constantes DATE Con este tipo se pueden realizar indicaciones de fecha. Una constante DATE se declara con una "d", "D", "DATE" o "date" inicial y el símbolo "#" a continuación. Después, puede introducirse cualquier fecha en el orden de Año-Mes-Día. Ejemplo: DATE#1996-05-06 d#1972-03-29

TwinCAT PLC Control: Operands

Constantes TIME_OF_DAY Con este tipo puede memorizar horas. Una declaración TIME_OF_DAY empieza por "tod#", "TOD#", "TIME_OF_DAY#" o "time_of_day#"; a continuación, puede indicar una hora en la sintaxis: Hora:Minuto:Segundo. Los segundos se pueden emitir como números reales; por lo tanto, también se pueden indicar fracciones de segundos. Ejemplo:

TIME_OF_DAY#15:36:30.123 tod#00:00:00

TwinCAT PLC Control: Operands

Constantes DATE_AND_TIME Las constantes de fecha y las horas también se pueden combinar en las constantes denominadas DATE_AND_TIME.

Las

constantes

DATE_AND_TIME

empiezan

por

"dt#",

"DT#",

"DATE_AND_TIME#" o "date_and_time#". La indicación de la fecha va seguida un guión y de la hora. Ejemplo: DATE_AND_TIME#1996-05-06-15:36:30 dt#1972-03-29-00:00:00

TwinCAT PLC Control: Operands

Constantes numéricas Los valores numéricos pueden aparecer como números duales, octales, decimales y hexadecimales. Si un valor entero no es un número decimal, su base, seguida del símbolo (#), ha de escribirse delante de la constante entera. Los valores numéricos para los números del 10 al 15 en números hexadecimales se indican, como de costumbre, mediante las letras A-F. Se admite el uso de guiones bajos dentro de un valor numérico. Ejemplo: 14 2#1001_0011 8#67

(número (número (número

decimal) dual) octal)

16#A (número hexadecimal) El tipo de estos valores numéricos puede ser BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL o LREAL. No se permiten conversiones implícitas de tipos "más grandes" a tipos "más pequeños". Es decir, una variable DINT no se puede utilizar como variable INT. Para este fin, se utilizan las funciones de conversión de tipo.

TwinCAT PLC Control: Operands

Constantes REAL / LREAL Las constantes REAL y LREAL se pueden indicar como fracciones decimales y en representación exponencial. Para este fin, se utiliza la sintaxis americana con punto. Ejemplo: 7.4

en

lugar

de

7,4

1.64e+009, en lugar de 1,64e+000

TwinCAT PLC Control: Operands

Constantes STRING Una constante String es cualquier cadena de caracteres. Las constantes STRING se delimitan por delante y por detrás con comillas simples. También se pueden introducir espacios y vocales modificadas, que se interpretan exactamente igual que todos los demás caracteres. En secuencias de caracteres, la combinación del símbolo de dólar ($) seguido de dos números hexadecimales se interpreta como representación hexadecimal del código de caracteres de 8 bits. Además, si aparecen en una cadena de caracteres, las combinaciones de dos caracteres que empiezan por el símbolo de dólar se interpretan como sigue:

Carácter especial

Descripción

$$

Símbolo de dólar

$'

Coma alta

$L or $l

Avance de línea

$N or $n

Nueva línea

$P or $p

Avance de página

$R or $r

Cambio de línea

$T or $t

Tabulador

Ejemplo: 'w1Wüß?' 'Susi

y

Claus'

':-)'

TwinCAT PLC Control: Operands

Constantes tipadas (Typed Literals) Durante la utilización de constantes IEC se utiliza el tipo de datos más pequeño posible. Si se debiera utilizar otro tipo de datos, se puede hacer con la ayuda de Typed Literals sin que la constante se deba declarar de forma explícita. Se añade un prefijo a la constante que determina el tipo: La escritura es: # indica el tipo de datos deseado, posibles entradas: BOOL, SINT, USINT, BYTE, INT, UINT, WORD, DINT, UDINT, DWORD, REAL, LREAL. El tipo debe escribirse en mayúsculas. indica la constante. La entrada debe coincidir con el tipo de datos indicado en . Ejemplo:

var1:=DINT#34; Si la constante no se puede transferir al tipo de destino sin perder datos, se edita un mensaje de error: Los typed literals se pueden utilizar en todos los lugares donde se pueden utilizar constantes normales.

TwinCAT PLC Control: Operands

Variables Las variables se declaran a nivel local en la parte de declaración de un Módulo o en las listas de variables globales. Es preciso tener en cuenta que el identificador de variables no debe contener espacios ni vocales modificadas, debe declararse doblemente y no puede coincidir con las palabras clave. En las variables no se tienen en cuenta las mayúsculas y minúsculas; es decir que VAR1, Var1 y var1 no son variables distintas. Los guiones bajos del identificador son significativos; por ejemplo, "A_BCD" y "AB_CD" se interpretan como identificadores diferentes. No se admite el uso de varios guiones bajos seguidos al principio o dentro de un identificador

TwinCAT PLC Control: Operands

Direcciones La representación directa de células de memoria individuales se realiza mediante secuencias de caracteres especiales. ßstas se forman a partir de la concatenación del signo "%", un prefijo de área, un prefijo de magnitud y uno o varios números naturales separados por espacios. Se admiten los siguientes prefijos de área:

Carácter de identificación

Descripción

I

Entrada

Q

Salida

M

Marcador

Se admiten los siguientes prefijos de magnitud:

Prefijo

Descripción

X

Bit individual

B

Byte (8 bits)

W

Palabra (16 bits)

D

Palabra doble (32 bits)

*

Config variables (VAR_CONFIG)

Ejemplos: %QX75.1 (*bit 1 del byte de salida 75*) %IW215 (*palabra de entrada 215*) %QB7 (*byte de salida 7*) %MD48 (*palabra doble en el punto de memoria 48 del área de marcador*)

Los valores booleanos se adjudican byte a byte si no se les indica Nota

de forma implícita una dirección de bit individual.

Ejemplo: Una modificación de valor de varbool1 AT %QW0 afecta al área de QX0.0 a QX0.7. Marcador

Para acceder al marcador, se pueden utilizar todas las magnitudes admitidas. Por ejemplo, la dirección %MD48 direccionaría los bytes nº 48, 49, 50 y 51 en el área de marcador. El primer byte es el nº 0. Asimismo, se puede acceder a palabras y bytes e incluso a bits: Con %MX5.0, por ejemplo, se accede al primer bit de la quinta palabra.

Note for using other platforms:

For a CX9xxx and CP with ARM platform, the 4-byte alignment is Nota

obligatory to be complained.

Ejemplo: rMyVar1

AT %MW0

: REAL;

rMyVar2

AT %MW4

: REAL;

TwinCAT PLC Control: Operands

Acceso a variables de arrays, estructuras y Módulos El acceso a los componentes de arrays de dos dimensiones se realiza con la siguiente sintaxis: [Index1, Index2] El acceso a las variables de estructura se realiza con la siguiente sintaxis: . El acceso a las variables de Bloques de Funciones y programas se realiza con la siguiente sintaxis: .

TwinCAT PLC Control: Operands

Adjudicación de direcciones de bits a variables

En las variables de números enteros se puede acceder a bits individuales. Para ello se añade a la variable, separado con un punto, el índice del bit al cual se debe adjudicar una dirección. El índice de bit se puede indicar con la constante que se desee. La indexación se basa en 0. Ejemplo: a

:

b

:

INT; BOOL;

... a.2 := b;

El tercer bit de la variable a se fija con el valor de la variable b. Si el índice es mayor que el ancho de bit de la variable se emite el siguiente error: Índice '' fuera del área permitida para la variable ''! La adjudicación de direcciones de bits es posible para los siguientes tipos de variables: SINT, INT, DINT, USINT, UINT, UDINT, BYTE, WORD, DWORD. Si el tipo de la variable no está permitido, se emite el siguiente mensaje de error: Tipo de datos '' no permitido para la indexación directa". Un acceso de bit no puede asignarse a una variable VAR_IN_OUT!

TwinCAT PLC Control: Operands

Funciones En ST, una llamada a funciones también puede aparecer como operando. Ejemplo: Result := Fct(7) + 3;

TwinCAT PLC Control: Operands

Indicadores del sistema

Los indicadores del sistema son variables declaradas de forma implícita que dependen de su mando específico. Para descubrir qué indicadores de sistema posee su sistema, seleccione el comando 'Insertar''Operando'; aparecerá el diálogo de ayuda de entrada; seleccione la categoría Variable de sistema.

TwinCAT PLC Control: System flags

SYSTEMINFO VAR_GLOBAL SystemInfo

AT%MB32768(*The real address may differ!*) : SYSTEMINFOTYPE;

END_VAR En Variables del sistema de la ayuda de entrada, encontrará la variable Información del sistema del tipo SYSTEMINFOTYPE. Este tipo está declarado en la librería systema.

Development environment

Target system type

PLC libraries to include

TwinCAT v2.7.0

PC (i386)

PLCSystem.Lib

TwinCAT v2.8.0

PC (i386)

TcSystem.Lib

TwinCAT PLC Control: System Flags

SYSTEMTASKINFOARR VAR_GLOBAL SystemTaskInfoArr AT%MB32832(*The real address may differ!*) OF SYSTEMTASKINFOTYPE; END_VAR

:

ARRAY[1..4]

Otra variable del sistema llamada SystemTaskInfoArr es un campo de cuatro estructuras del tipo SYTEMTASKINFOTYPE. La definición de estructura se encuentra nuevamente en PlcSystem.lib. El índice de este campo es Task-Id. El módulo de función GETCURTASKINDEX sirve para determinar en MPA el Task-Id para el tiempo de funcionamiento.

Development environment

Target system type

PLC libraries to include

TwinCAT v2.7.0

PC (i386)

PLCSystem.Lib

TwinCAT v2.8.0

PC (i386)

TcSystem.Lib

TwinCAT PLC Control: System Functions

FUNCTION CheckBounds

Si en su proyecto define una función con el nombre CheckBounds puede comprobar automáticamente interferencias de área en el array! El nombre de la función está especificado y debe mostrar únicamente esta denominación. Nota: CheckBounds function may cause increased system load. Please use CheckBounds only for test purposes. FUNCTION CheckBounds : DINT VAR_INPUT index, lower, upper : DINT; END_VAR

A continuación se muestra un ejemplo para una implementación de esta función: IF indexupper THEN CheckBounds := upper; ELSE CheckBounds := index; END_IF El siguiente ejemplo de programa para la comprobación de la función CheckBounds interviene fuera de los límites de un array definido. La Función CheckBounds garantiza que el valor TRUE no se asigne a la posición A[10], sino al límite superior aún válido del área A[7]. La función CheckBounds permite, por lo tanto, corregir intervenciones fuera de límites de array.

TwinCAT PLC Control: System Functions

FUNCTION CheckDivByte

Si en su proyecto define funciones con los nombres CheckDivByte, con la utilización del operador DIV puede comprobar el valor del divisor, por ejemplo para evitar una división entre 0. El nombre de la función está especificado y debe mostrar únicamente esta denominación. Note: CheckDivByte function may cause increased system load. Please use CheckDivByte only for test purposes. FUNCTION CheckDivByte : BYTE VAR_INPUT divisor : BYTE; END_VAR Ejemplo: IF divisor = 0 THEN CheckDivByte := 1;(**) ELSE CheckDivByte := divisor; END_IF

TwinCAT PLC Control: System Functions

FUNCTION CheckDivReal

Si en su proyecto define funciones con los nombres CheckDivReal, con la utilización del operador DIV puede comprobar el valor del divisor, por ejemplo para evitar una división entre 0. El nombre de la función está especificado y debe mostrar únicamente esta denominación.

Nota: CheckDivReal function may cause increased system load. Please use CheckDivReal only for test purposes. FUNCTION CheckDivReal : REAL VAR_INPUT divisor : REAL; END_VAR Ejemplo: IF divisor = 0 THEN CheckDivReal := 1; ELSE CheckDivReal := divisor; END_IF El resultado de la función CheckDivReal se usa como divisor por el operador DIV. Con ello, en el programa de ejemplo mostrado a continuación se evita que se pueda dividir entre 0, porque el divisor (d) se fija de 0 a 1. El resultado erg de la división, pues, es 799.

TwinCAT PLC Control: System Functions

FUNCTION CheckDivWord

Si en su proyecto define funciones con los nombres CheckDivWord, con la utilización del operador DIV puede comprobar el valor del divisor, por ejemplo para evitar una división entre 0. El nombre de la función está especificado y debe mostrar únicamente esta denominación. Nota: CheckDivWord function may cause increased system load. Please use CheckDivWord only for test purposes. FUNCTION CheckDivWord : WORD VAR_INPUT divisor : WORD; END_VAR Ejemplo: IF divisor = 0 THEN CheckDivWord := 1; ELSE CheckDivWord := divisor; END_IF

TwinCAT PLC Control: System Functions

FUNCTION CheckDivDWord

Si en su proyecto define funciones con los nombres CheckDivDWord, con la utilización del operador DIV puede comprobar el valor del divisor, por ejemplo para evitar una división entre 0. El nombre de la función está especificado y debe mostrar únicamente esta denominación. Nota: CheckDivDWord function may cause increased system load. Please use CheckDivDWord only for test purposes. FUNCTION CheckDivDWord : DWORD VAR_INPUT divisor : DWORD; END_VAR Ejemplo: IF divisor = 0 THEN CheckDivDWord := 1; ELSE CheckDivDWord := divisor; END_IF

TwinCAT PLC Control: System Functions

FUNCTION CheckRangeSigned

Para comprobar el cumplimiento de los límites de área en el tiempo de ejecución, se deben añadir las funciones CheckRangeSigned. En ellas se pueden capturar las violaciones de área en la forma adecuada (por ejemplo, el valor se puede recortar o se puede fijar un indicador de error). Se llaman de forma implícita en cuanto se escribe sobre una variable que es de un tipo de subárea que se ha creado de un tipo con signo. FUNCTION CheckRangeSigned : DINT VAR_INPUT value, lower, upper: DINT; END_VAR Ejemplo: En el caso de una variable de un tipo de subárea con signo (como en el caso i anterior) se llama la función CheckRangeSigned, que podría programarse como sigue, para recortar un valor en el área permitida: FUNCTION

CheckRangeSigned

:

DINT

VAR_INPUT value,

lower,

upper:

DINT;

END_VAR IF

(value




THEN lower;

upper)

THEN

:=

upper;

:=

value;

ELSE CheckRangeSigned END_IF

Para una llamada automática es obligatorio el nombre de función CheckRangeSigned y la configuración

de

la

interfaz:

valor

de

devolución

y tres

parámetros

del tipo

DINT.

La función se parametriza en la llamada como sigue:

value

Recibe el valor que se debe asignar al tipo de área

lower

El límite inferior del área

upper

El límite superior del área

Valor de

El valor que se asigna al tipo de área

devolución

A partir de una asignación i := 10*y; en este ejemplo se crea lo siguiente de forma implícita: i := CheckRangeSigned(10*y, -4095, 4095); Si por ejemplo y tiene el valor 1000, tras esta asignación i sólo tendrá el valor 4095. Nota: 

Si no están disponibles las dos funciones CheckRangeSigned y CheckRangeUnsigned, en el tiempo de ejecución no se realiza ninguna comprobación de tipos de los tipos de subárea. ¡La variable i podría tener cualquier valor entre -32768 y 32767!



Si se implementa una función CheckRangeSigned o CheckRangeUnsigned según lo mostrado anteriormente, durante la utilización del tipo de subárea en un bucle FOR puede aparecer un bucle infinito. Esto ocurre si el área indicada para el bucle FOR es igual o mayor que la del tipo de subárea!

Ejemplo: VAR ui

:

UINT

(0..10000);

END_VAR FOR

ui:=0

TO

10000

DO

... END_FOR No

sale

el

bucle

FOR

porque

ui

no

puede

ser

mayor

que

10000.

¡También se debe tener en cuenta el contenido de las funciones CheckRange durante la utilización de valores de incremento en los bucles FOR!

TwinCAT PLC Control: System Functions

FUNCTION CheckRangeUnsigned

Para comprobar el cumplimiento de los límites de área en el tiempo de ejecución, se deben añadir las funcione CheckRangeUnsigned. En ellas se pueden capturar las violaciones de área en la forma adecuada (por ejemplo, el valor se puede recortar o se puede fijar un indicador de error). Se llaman de forma implícita en cuanto se escribe sobre una variable que es de un tipo de subárea que se ha creado de un tipo sin signo. FUNCTION CheckRangeUnsigned : UDINT VAR_INPUT value, lower, upper: UDINT; END_VAR Ejemplo: En el caso de una variable de un tipo de subárea con signo (como en el caso i anterior) se llama la función CheckRangeUnsigned, que podría programarse como sigue, para recortar un valor en el área permitida:

FUNCTION

CheckRangeUnsigned

:

UDINT

VAR_INPUT value,

lower,

upper:

UDINT;

END_VAR IF

(value




lower; upper)

CheckRangeUnsigned

THEN

:=

upper;

:=

value;

ELSE CheckRangeUnsigned END_IF Para una llamada automática es obligatorio el nombre de función CheckRangeUnsigned y la configuración

de

la

interfaz:

valor

de

devolución

y tres

parámetros

del tipo

DINT.

La función se parametriza en la llamada como sigue:

value

Recibe el valor que se debe asignar al tipo de área

lower

El límite inferior del área

upper

El límite superior del área

Valor de

El valor que se asigna al tipo de área

devolución

Nota: 

Si no están disponibles las dos funciones CheckRangeSigned y CheckRangeUnsigned, en el tiempo de ejecución no se realiza ninguna comprobación de tipos de los tipos de subárea. ¡La variable i podría tener cualquier valor entre -32768 y 32767!



Si se implementa una función CheckRangeSigned o CheckRangeUnsigned según lo mostrado anteriormente, durante la utilización del tipo de subárea en un bucle FOR puede aparecer un bucle infinito. Esto ocurre si el área indicada para el bucle FOR es igual o mayor que la del tipo de subárea!

Ejemplo: VAR ui

:

UINT

(0..10000);

END_VAR FOR

ui:=0

TO

10000

DO

... END_FOR No

sale

el

bucle

FOR

porque

ui

no

puede

ser

mayor

que

10000.

¡También se debe tener en cuenta el contenido de las funciones CheckRange durante la utilización de valores de incremento en los bucles FOR!

Beckhoff Automation: Prólogo

Indicaciones sobre la documentación Esta documentación está dirigida exclusivamente al personal profesional con conocimiento de la técnología de control y automatización, familiarizado con las normas nacionales vigentes. Para la instalación y puesta en marcha de los componentes es imprescindiblemente necesaria la observación de las siguientes indicaciones. El personal profesional debe asegurar, que la aplicación y el empleo de los productos documentados cumplen todos los requisitos de seguridad, incluyendo todas las leyes, especificaciones, reglamentaciones y normas aplicables. Nota legal Esta documentación ha sido cuidadosamente elaborada. No obstante, los productos documentados están

en

continuo

desarrollo.

Por esta razón no podemos garantizar la absoluta coincidencia de la documentación conlas especificaciones

documentadas,

normas

u

otras

características.

En caso de que contenga errores técnicos o de redacción, nos reservamos el derecho a realizar modificaciones

en

cualquier

momento

sin

previo

aviso.

De las indicaciones, ilustraciones y descripciones de esta documentación, no se puede hacer valer ningún derecho a modificaciones de los productos ya suministrados. Marcas

Beckhoff®, TwinCAT®, EtherCAT®, Safety over EtherCAT®, TwinSAFE® y XFC® son marcas registradas y licenciadas de Beckhoff Automation GmbH. La utilización de marcas o distintivos incluidos en esta documentación por parte de terceros puede constituir una violación de los derechos del titular de las correspondientes denominaciones. Patentes La tecnología TwinCAT está protegida mediante patente, en particular por las siguientes solicitudes y

patentes:

EP0851348, US6167425 con los registros y inscripciones correspondientes en varios otros países. Copyright © Beckhoff Automation GmbH. Sin nuestra expresa autorización, queda terminantemente prohibida la reproducción total o parcial de este documento, asi como su uso indebido y/o su exhibición o comunicación a terceros. De los infractores se exigirá el correspondiente resarcimiento de daños y perjuicios. Quedan reservados todos los derechos inherentes, en especial los de patentes, de modelos registrados y estéticos.

TwinCAT PLC Control: Standard Library

Descripción general La librería estándar contiene todos los Módulos previstos en la norma IEC61131-3. Los Módulos se pueden dividir en las siguientes clases: 

Bloques de Funciones de estabilidad doble



Detección de flancos



Contador



Temporizador



Funciones de cadena

TwinCAT PLC Library: Standard

FUNCTION_BLOCK F_TRIG

Detector para un flanco descendente. VAR_INPUT VAR_INPUT CLK

: BOOL; (* Signal to detect *)

END_VAR VAR_OUTPUT VAR_OUTPUT Q

: BOOL; (* Edge detected *)

END_VAR VAR M

: BOOL;

END_VAR Siempre que la variable de entrada CLK suministre TRUE, la salida será Q y la variable auxiliar M, FALSE. Tan pronto como CLK suministre FALSE, Q suministrará primero TRUE y, después, M tendrá el valor TRUE. Es decir: en cada nueva llamada de la función, Q volverá a suministrar FALSE hasta que CLK muestre un flanco ascendiente y un nuevo flanco descendente.

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION_BLOCK R_TRIG

Detector para un flanco ascendente. VAR_INPUT VAR_INPUT CLK

: BOOL; (* Signal to detect *)

END_VAR VAR_OUTPUT VAR_OUTPUT Q END_VAR

: BOOL; (* Edge detected *)

VAR M

: BOOL;

END_VAR Siempre que la variable de entrada CLK suministre FALSE, la salida será Q y la variable auxiliar M, FALSE. Tan pronto como CLK suministre TRUE, Q suministrará primero TRUE y, después, M tendrá el valor TRUE. Es decir: en cada nueva llamada de la función, Q volverá a suministrar FALSE hasta que CLK muestre un flanco descendiente y un nuevo flanco ascendente.

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION_BLOCK RS

Restablecer el bloque de funciones de doble estabilidad: Q1 = RS (SET, RESET1) significa: Q1 = NOT RESET1 AND (Q1 OR SET)

VAR_INPUT VAR_INPUT SET

: BOOL;

RESET1 : BOOL; END_VAR VAR_OUTPUT VAR_OUTPUT Q1

: BOOL;

END_VAR Internal implementation of fb:: Q1: = NOT RESET1 AND (Q1 OR SET);

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION_BLOCK SR

Establecer bloque de funciones de doble estabilidad como dominante: Q1 = SR (SET1, RESET) significa: Q1 = (NOT RESET AND Q1) OR SET1; VAR_INPUT VAR_INPUT SET1

: BOOL;

RESET

: BOOL;

END_VAR VAR_OUTPUT VAR_OUTPUT Q1

: BOOL;

END_VAR Internal implementation of fb: Q1 := (NOT RESET AND Q1) OR SET1;

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION_BLOCK SEMA

Un semáforo de software (con posibilidad de interrupción). VAR_INPUT VAR_INPUT CLAIM

: BOOL;

RELEASE

: BOOL;

END_VAR VAR_OUTPUT VAR_OUTPUT BUSY

: BOOL;

END_VAR Si se llama SEMA y BUSY es TRUE, significa que SEMA ya está ocupado (se ha llamado a SEMA con CLAIM = TRUE). Si BUSY es FALSE, todavía no se ha llamado a SEMA o se ha liberado (llamada con RELEASE = TRUE). Internal implementation of fb:

BUSY

:=

X;

IF

CLAIM

THEN X:=TRUE; ELSIF

RELEASE

THEN BUSY

:=

FALSE;

X:=

FALSE;

END_IF

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION_BLOCK CTD

Contador descendente VAR_INPUT VAR_INPUT

CD

: BOOL; (* Count Down on rising edge *)

LOAD

: BOOL; (* Load Start Value *)

PV

: WORD; (* Start Value *)

END_VAR VAR_OUTPUT VAR_OUTPUT Q

: BOOL; (* Counter reached 0 *)

CV

: WORD; (* Current Counter Value *)

END_VAR Si LOAD es TRUE, la variable de conteo CV se inicializa con el límite superior PV. Si CD tiene un flanco ascendente de FALSE a TRUE, CV se reduce en 1 mientras CV sea mayor que 0 (es decir, mientras no supere el mínimo). Q suministra TRUE si CV es menor o igual que 0.

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION_BLOCK CTU

Contador ascendente VAR_INPUT VAR_INPUT CU

: BOOL; (* Count Up *)

RESET

: BOOL; (* Reset Counter to 0 *)

PV

: WORD; (* Counter Limit *)

END_VAR VAR_OUTPUT VAR_OUTPUT Q

: BOOL; (* Counter reached the Limit *)

CV

: WORD; (* Current Counter Value *)

END_VAR Si RESET es TRUE, la variable de conteo CV se inicializa con 0. Si CU tiene un flanco ascendente de FALSE a TRUE, el Bloque de Funciones CV aumentan en 1 mientras CV sea menor que PV (es decir, mientras no se produce ningún exceso). Q suministra TRUE si CV es mayor o igual que límite superior PV.

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION_BLOCK CTUD

Contador ascendente y descendente VAR_INPUT VAR_INPUT CU

: BOOL; (* Count Up *)

CD

: BOOL; (* Count Down *)

RESET

: BOOL; (* Reset Counter to Null *)

LOAD

: BOOL; (* Load Start Value *)

PV

: WORD; (* Start Value / Counter Limit *)

END_VAR VAR_OUTPUT VAR_OUTPUT

QU

: BOOL; (* Counter reached Limit *)

QD

: BOOL; (* Counter reached Null *)

CV

: WORD; (* Current Counter Value *)

END_VAR Cuando se aplica RESET, la variable de conteo CV se inicializa con 0. Cuando se aplica LOAD, CV se inicializa con PV. Si CU tiene un flanco ascendente de FALSE a TRUE, CV aumenta en 1 mientras CV no cause ningún exceso. Si CD tiene un flanco ascendente de FALSE a TRUE, CV se reduce en 1 mientras CV supere el mínimo. QU suministra TRUE cuando CV ha pasado a ser mayor o igual que PV. QD suministra TRUE cuando CV ha pasado a ser menor o igual que 0.

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION_BLOCK TOF

Timer off-delay.

VAR_INPUT VAR_INPUT IN

: BOOL; (* starts timer with falling edge, resets timer with rising edge *)

PT

: TIME;

(* time to pass, before Q is set *)

END_VAR VAR_OUTPUT VAR_OUTPUT Q

: BOOL; (* is FALSE, PT seconds after IN had a falling edge *)

ET

: TIME;

(* elapsed time *)

END_VAR Si IN es TRUE , las salidas son TRUE o 0. En cuanto IN sea FALSE, se el tiempo de ET se cuenta en milisegundos hasta que el valor se iguale con el de PT y se mantiene así. Q es FALSE si IN es FALSE y ET igual a PT. De lo contrario, es TRUE. Por lo tanto, Q tiene un flanco descendente cuando ha finalizado el tiempo de PT indicado en milisegundos. Representación gráfica del comportamiento del tiempo de TOF:

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION_BLOCK TON

Timer on-delay VAR_INPUT VAR_INPUT IN

: BOOL; (* starts timer with rising edge, resets timer with falling edge *)

PT

: TIME;

(* time to pass, before Q is set *)

END_VAR VAR_OUTPUT VAR_OUTPUT Q

: BOOL; (* is TRUE, PT seconds after IN had a rising edge *)

ET

: TIME;

(* elapsed time *)

END_VAR Si IN es FALSE, las salidas son FALSE o 0. Tan pronto como IN sea TRUE, el tiempo de ET se cuenta en milisegundos hasta que el valor se iguale con el de PT y se mantiene así. Q es TRUE si IN es TRUE y ET igual a PT. De lo contrario, es FALSE. Por lo tanto, Q tiene un flanco ascendente cuando ha finalizado el tiempo de PT indicado en milisegundos. Representación gráfica del comportamiento del tiempo de TON:

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION_BLOCK TP

Transmisor de impulsos. VAR_INPUT VAR_INPUT IN

: BOOL; (* Trigger for Start of the Signal *)

PT

: TIME; (* The length of the High-Signal in ms *)

END_VAR VAR_OUTPUT VAR_OUTPUT Q

: BOOL; (* The pulse *)

ET

: TIME; (* The current phase of the High-Signal *)

END_VAR Si IN es FALSE, las salidas son FALSE o 0. Tan pronto como IN sea TRUE, el tiempo de ET se cuenta en milisegundos hasta que el valor se iguale con el de PT y se mantiene así. Q es TRUE si IN es TRUE y ET inferior a PT. De lo contrario, es FALSE. Por lo tanto, Q suministra una señal durante el período de tiempo indicado en PT. Representación del transcurso de TP en el tiempo:

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

Bloques de cadena Tenga en cuenta lo siguiente: Las funciones de cadena no son seguras durante el cambio de tarea: Durante la utilización de tareas sólo se pueden utilizar funciones de cadena en una tarea. Si la misma función se utiliza en diferentes tareas, existe peligro de sobrescritura.

TwinCAT PLC Library: Standard

FUNCTION CONCAT

Concatenación (anexión) de dos cadenas. FUNCTION CONCAT :STRING(255) VAR_INPUT STR1:STRING(255); STR2:STRING(255); END_VAR Ejemplo en lenguaje IL: LD 'SUSI' CONCAT 'WILLI' ST Var1 (* El resultado es 'SUSIWILLI' *) Ejemplo en lenguaje ST: Var1 := CONCAT ('SUSI','WILLI');

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION DELETE

DELETE borra una cadena parcial de una cadena a partir de una determinada posición. Significado DELETE(STR, L, P): borrar L caracteres de STR empezando por el carácter P. FUNCTION DELETE :STRING(255) VAR_INPUT STR

:STRING(255);

LEN

:INT;

POS

:INT;

END_VAR Ejemplo en lenguaje IL: LD

'SUXYSI'

DELETE

2,3

ST Var1 (* El resultado es 'SUSI' *) Ejemplo en lenguaje ST: Var1 := DELETE ('SUXYSI',2,3);

Development

Target system type

PLC libraries to include

environment

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION FIND

FIND busca una cadena parcial en una cadena. Significado de FIND(STR1, STR2): encontrar la posición del primer carácter de la primera aparición de STR2 en STR1. Si STR2 no aparece en STR1, se aplica OUT := 0. FUNCTION FIND :INT VAR_INPUT STR1

:STRING(255);

STR2

:STRING(255);

END_VAR Ejemplo en lenguaje IL:

LD

'SUXYSI'

FIND

'XY'

ST Var1 (* El resultado es 3 *) Ejemplo en lenguaje ST: Var1 := FIND ('SUXYSI','XY');

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >= 2.10.0

CX (ARM)

Standard.lib

Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION INSERT

INSERT inserta una cadena en otra a partir de una determinada posición. Significado de INSERT(STR1, STR2, POS): insertar STR2 en STR1 después de la posición POS. FUNCTION INSERT :STRING(255)

VAR_INPUT STR1

:STRING(255);

STR2

:STRING(255);

POS

:INT;

END_VAR Ejemplo en lenguaje IL: LD

'SUSI'

INSERT

'XY',2

ST Var1 (* El resultado es 'SUXYSI' *) Ejemplo en lenguaje ST: Var1 := INSERT ('SUSI','XY',2);

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION LEFT

Left suministra una cadena inicial izquierda de una cadena. Significado de LEFT (STR, SIZE): toma los primeros caracteres SIZE desde la izquierda de la cadena STR. FUNCTION LEFT :STRING(255) VAR_INPUT STR

:STRING(255);

SIZE

:INT;

END_VAR Ejemplo en lenguaje IL: LD

'SUSI'

LEFT

3

ST Var1 (* El resultado es 'SUS' *) Ejemplo en lenguaje ST: Var1 := LEFT ('SUSI',3);

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION LEN

Emite la longitud de cadena (string). FUNCTION LEN : INT VAR_INPUT STR

:STRING(255);

END_VA Ejemplo en lenguaje IL: LD

'SUSI'

LEN ST Var1 (* El resultado es 4 *) Ejemplo en lenguaje ST: Var1 := LEN ('SUSI');

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION MID

Mid suministra una cadena parcial de una cadena. Significado de MID (STR, LEN, POS): buscar caracteres LEN de la cadena STR empezando por el carácter de la posición POS. FUNCTION MID :STRING(255) VAR_INPUT STR

:STRING(255);

LEN

:INT;

POS

:INT;

END_VAR Ejemplo en lenguaje IL: LD MID ST Var1 (* El resultado es 'US' *) Ejemplo en lenguaje ST: Var1 := MID ('SUSI',2,2);

'SUSI' 2,2

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION REPLACE

REPLACE sustituye una cadena parcial de una cadena por otra. Significado de REPLACE(STR1, STR2, L, P): sustituir L caracteres STR1 por STR2 empezando por el carácter P. FUNCTION REPLACE :STRING(255) VAR_INPUT STR1

:STRING(255);

STR2

:STRING(255);

L

:INT;

P

:INT;

END_VAR Ejemplo en lenguaje IL: LD

'SUXYSI'

REPLACE

'K',2,2

ST Var1 (* El resultado es 'SKYSI' *) Ejemplo en lenguaje ST: Var1 := REPLACE ('SUXYSI','K',2,2);

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

TwinCAT PLC Library: Standard

FUNCTION RIGHT

Right suministra una cadena inicial derecha de una cadena. Significado de RIGHT (STR, SIZE): toma los primeros caracteres SIZE desde la derecha de la cadena STR. FUNCTION RIGHT :STRING(255)

VAR_INPUT STR

:STRING(255);

SIZE

:INT;

END_VAR Ejemplo en lenguaje IL: LD

'SUSI'

RIGHT

3

ST Var1 (* El resultado es 'USI' *) Ejemplo en lenguaje ST: Var1 := RIGHT ('SUSI',3);

Development environment

Target system type

PLC libraries to include

TwinCAT Version >= 2.6.0

PC or CX (x86)

Standard.Lib

TwinCAT Version >= 2.6.0

BC (165)

Standard.Lb6

TwinCAT Version >= 2.9.0

BCxx50 or BX

Standard.lbx

TwinCAT Version >=

CX (ARM)

Standard.lib

2.10.0 Build >= 1301

Bibliotecas PLC TwinCAT

Convenciones de programación para la creación de las Las siguientes convenciones de programación sirven para nombrar de forma uniforme los objetos, las variables y las instancias de objetos y variables. De este modo el código y especialmente las interfaces de los bloques de funciones y funciones (por ejemplo en las bibliotecas PLC) resultan

fácilmente descifrables y comprensibles para nosotros y para los demás, y se facilita el mantenimiento del código. Este documento sólo se refiere a la creación de bibliotecas PLC nuevas. Las bibliotecas ya existentes, por motivos de compatibilidad, no se modifican.Para el usuario TwinCAT y el programador PLC este documento se debe considerar como una ayuda orientativa, dado que en la norma IEC61131-3 no se describen estas convenciones de programación. Nombrar las bibliotecas PLC Todas las bibliotecas que se suministran con TwinCAT o que se pueden instalar con el Supplement CD, empiezan con el prefijo Tc.. Ejemplo: TcUtilities.Lib Las bibliotecas para el sistema de tiempo de funcionamiento en el PC poseen la extensión del nombre de archivo *.Lib, mientras que las bibliotecas controladores de bus (BC) poseen la extensión del nombre de archivo *.Lb6 y las letras adicionales BC al final del nombre de la biblioteca. Ejemplo: TcTempCtrl.Lib TcTempCtrlBC.Lb6 Identificador Los identificadores se deben nombrar con un prefijo unifome para que el tipo de objeto se pueda reconocer fácilmente. A continuación se detallan las convenciones recomendadas: Definición de nombres de objetos

Objeto

Prefijo

Descripción

Ejemplo

FUNCTION_BLOC

FB_

Bloque de

FB_GetData

K

STRUCT

Funciones

ST_

Estructura

ST_BufferEntry

ENUM

E_

Tipo de

E_SignalStates

enumeración

TYPE

T_

Referencia

T_Nibble

PROGRAM

P_

Programa

P_Axis

FUNCTION

F_

Función

F_Convert

Generación de las instancias de objetos

Ejemplo para la Objeto

Prefijo

Descripción

Instancia

llamada

function

fb

Nombre de

fbGetData

fbGetData();

stBufferEntry

stBufferEntry.nCounte

block

instancia de bloque de funciones

struct

st

Nombre de instancia de la

r := 5;

estructura

enum

e

Instancia de una

eSignalState

enumeración

alias type

ninguno

Nombre de instancia de un tipo de referencia

eSignalState := E_STOP;

Nibble

Nibble := 1;

Generación de las instancias de variables

Tipo

Prefijo

Descripción

Ejemplo

SINT, USINT, …,

n, i

numeric /

nCount, iError

DINT, UDINT,

integer

BYTE, WORD, DWORD, LWORD....

BOOL

b

bit

bSwitch

REAL, LREAL

f

float

fValue

STRING

s

string

sName

TIME

t

time

tDelay

DATE

d

date

dMonday

DATE_AND_TIM

dt

date and time

dtNewYear

ARRAY[...] OF ...

arr

arrays

arrMessages

p

p

pointer

pData

E

Otros prefijos que se pueden utilizar

Prefijo

Descripción

Ejemplo

cb

count of bytes

cbLength

cw

count of words

cwRead

Mayúsculas/minúsculas En el nombre de objeto el prefijo se escribe en mayúsculas. El carácter de separación entre el prefijo y el nombre de objeto es el guión bajo (_). En los nombres de variables e instancias el prefijo siempre se escribe en minúsculas. La primera letra del identificador siempre se escribe en mayúsculas. Si un identificador tiene varias palabras, la primera letra de cada palabra siempre se escribirá en mayúscula. No se debe utilizar ningún carácter de separación (por ejemplo: _ ) entre las palabras (véase ejemplo más arriba). Caracteres válidos Los identificadores sólo pueden contener las siguientes letras, números y caracteres especiales: 0...9, A...Z, a...z, Anotaciones Todos los identificadores deben indicarse en inglés. Comprobación de la versión Cada biblioteca debe contener una función en la cual esté almacenada la siguiente información: 

Número de versión



Versión TwinCAT en la cual se ha creado la Library



Fecha (formato americano)



Programador



Observaciones

El número de versión debe poderse leer durante el tiempo de ejecución del programa. El número de versión está formado por tres valores numéricos. Cada valor se puede leer individualmente (ver

ejemplo). Para que el nombre de la versión sea exclusivo, este nombre contiene el nombre de la biblioteca. Ejemplo de la biblioteca TcBABasic.lib: FUNCTION F_GetVersionTcBABasic : UINT VAR_INPUT nVersionElement:INT;END_VARVAREND_VAR(* Version history:Date|Version| created under|Author|Remark----------------------------------------------------------------------------------------10/01/2001| 1.0.0|V2.7.0 (Build 402) | S. Mustermann| first release*)CASE nVersionElement OF1: (* major number *)F_GetVersionTcBABasic := 1;2: (* minor number *)F_GetVersionTcBABasic := 0;3: (* revision

number

*)F_GetVersionTcBABasic

:=

0;ELSEF_GetVersionTcBABasic

:=

16#FFFF;END_CASE

TwinCAT PLC bibliotecas PC

Vista de conjuncto PC La lista siguiente proporciona a una descripción de la distinción existente del PLC libraries con el target system PC(i386). Se traza una distinción entre 

"Estándares Bibliotecas": provisto como componentes de los varios niveles de TwinCAT



"Otras bibliotecas": cada uno disponible como separado producto

Estándares Bibliotecas

Provisto de

Descripción

TwinCAT PLC

TwinCAT PLC

Biblioteca que contiene varios servicios, por

Library:

ejemplo ADS bloques, file handling, NT logbook

Sistema

handling, definición de las estructuras del sistema, del etc.

TwinCAT PLC

TwinCAT PLC

Library: Math

TwinCAT PLC

Library containing extended mathematical functions

TwinCAT PLC

Biblioteca que contiene varios servicios E/S, por

Library: IO

ejemplo Reset E/S o localización del punto de

Functions

fractura de la fibra óptica para dispositivos Lightbus.

TwinCAT PLC

TwinCAT PLC

Library:

Biblioteca que contiene varios servicios útiles, por ejemplo Iniciar/Parar PLC o Cerrar NT.

Utilities

TwinCAT PLC

TwinCAT PLC

Biblioteca que contiene varios bloques de

Library:

funciones para acceder a los registros de terminal

Coupler

y funciones de acoplador.

TwinCAT PLC

TwinCAT PLC

Library:

Library containing function blocks for access EtherCAT master and slave devices.

EtherCAT

TwinCAT PLC

TwinCAT NC

Library: Drive

TwinCAT PLC

Library containing functions function blocks for access SoE drives.

TwinCAT NC

Library: NC

Library containing functions function blocks for access SoE drives.

Drive

TwinCAT PLC

TwinCAT NC

Library: NC

Biblioteca para manejar ejes PTP, por ejemplo la definición de estructuras de ejes, comandos de inicio, parada y Reset.

TwinCAT PLC Library: MC

TwinCAT NC

Biblioteca contiene bloques de funciones PLCOpen estandarizados.

TwinCAT PLC

TwinCAT NC

Library: MC

Biblioteca contiene bloques de funciones PLCOpen estandarizados.

(Version 2)

TwinCAT PLC

TwinCAT NC

Library: MC

Library containing various function blocks for SoE drives accessing to the drive via axis structure.

Drive (Version 2)

TwinCAT PLC

TwinCAT NC-

Bloques para el uso del intérprete (por ejemplo el

Library: NC

I

cargar, empezando, etc.)

TwinCAT PLC

TwinCAT NC-

Bloques para la configuración del grupo de la

Library: NC

I

interpolación (por ejemplo creación 3D del grupo)

TwinCAT PLC

Biblioteca que contiene varios bloques de

Interpreter

Configuration

TwinCAT PLC Library: Event

funciones para el intercambio de datos entre PLC

driven Data

y otros dispositivos ADS.

Exchange blocks

TwinCAT PLC

TwinCAT PLC

Library:

Library containing various function blocks for using special features on Embedded PC CX.

SystemCX

TwinCAT PLC Library: SystemCX1000

TwinCAT PLC

Library containing various function blocks for using special features on Embedded PC CX1000.

TwinCAT PLC

TwinCAT PLC

Library:

Library containing various function blocks for using special features on Embedded PC CX1010.

SystemCX1010

TwinCAT PLC

TwinCAT PLC

Library:

Library containing various function blocks for using special features on Embedded PC CX1020.

SystemCX1020

TwinCAT PLC

TwinCAT PLC

Library:

Library containing various function blocks for using special features on Embedded PC CX1030.

SystemCX1030

TwinCAT PLC

TwinCAT PLC

Library:

Library containing various function blocks for using special features on Embedded PC CX9000.

SystemCX9000

TwinCAT PLC

TwinCAT PLC

Library:

Library containing various function blocks for using special features on Embedded PC CX9010.

SystemCX9010

TwinCAT PLC

TwinCAT PLC

Library:

Library containing various function blocks for using special features on PC C69xx.

SystemC69xx

TwinCAT PLC

TwinCAT PLC

Library:

Library containing various function blocks for using special features on Control Panel PC CP66xx.

SystemCP66xx

Otras bibliotecas

Descripción

TwinCAT PLC Library:

Biblioteca que contiene bloques básicos para

Building Automation

automatización de edificio.

TwinCAT PLC Library:

Biblioteca que contiene bloques básicos para

Building Automation DALI

automatización de edificio.

TwinCAT PLC Library: HVAC

Library containing blocks for automation of heating, ventilation, air conditioning and sanitary systems.

TwinCAT PLC Library: M-Bus

Library containing blocks for reading M-Bus devices.

TwinCAT PLC Library:

Library containing blocks to represent automatic

Controller Toolbox

control engineering transfer elements.

TwinCAT PLC Library:

Library containing blocks and functions about

Hydraulics

hydraulic axes.

TwinCAT PLC Library: RFID

Library for communication with RFID readern from

Reader Communication

PLC.

TwinCAT PLC S5/S7

Library with function blocks for serial

Communication

communication between local TwinCAT PLC and S5/S7 controller via Ethernet.

TwinCAT PLC Library:

Libraries containing blocks for communication

IEC60870-5-10x

according to IEC60870-5-10x.

TwinCAT PLC Library: Modular

Library for access to MDP (Modular Device Profile)

Device Profile

device information.

TwinCAT PLC Library: MC

Biblioteca que contiene bloques para operaciones

Camming ( Version 2)

NC de mesa de leva.

TwinCAT PLC Library: MC

Library for SoE drives. The access to the drive is

Drive (Version 2)

done via MC2 axis structure.

TwinCAT PLC Library: MC

Biblioteca que contiene bloques para utilizar NC

Flying Saw (Version 2)

Sierra volante

TwinCAT PLC Library: MC XFC

Library containing blocks for precisely timed acquisition of axis positions and output of digital signals at precise positions in conjunction with EtherCAT XFC terminals.

TwinCAT PLC Library: NC

Biblioteca que contiene bloques para operaciones

Camming

NC de mesa de leva.

TwinCAT PLC Library: NC

Library for SoE drives. The access to the drive is

Drive

done via NC axis structure.

TwinCAT PLC Library: NC

Biblioteca que contiene bloques para funciones de

FIFO Axis

ejes NC FIFO.

TwinCAT PLC Library: NC

Biblioteca que contiene bloques para utilizar NC

Flying Saw

Sierra volante

TwinCAT PLC Library: PID

Biblioteca que contiene controlador PID y bloque PWM.

TwinCAT PLC Library: Raid

Library containing blocks for RAID Controller.

Controller

TwinCAT PLC Library:

Library containing blocks to synchronize distributed

RemoteSync

systems.

TwinCAT PLC Library: Serial

Biblioteca que contiene los bloques para la

Communication

comunicación serial a través de las estaciones de los terminales de bus o del acceso serial de la PC.

TwinCAT PLC Library: Serial

Biblioteca que contiene los bloques para la

Communication 3964R

comunicación serial usando el protocolo 3964R a través de los terminales de bus o del acceso serial de la PC.

TwinCAT PLC Library: Serial

Biblioteca que contiene bloques para la

Communication RK512

comunicación en serie utilizando el protocolo RK512 a través de terminales de bus o el puerto serie del PC.

TwinCAT PLC Library: Serial

Biblioteca que contiene bloques para la

Communication Modbus RTU

comunicación en serie utilizando el protocolo Modbus RTU a través de terminales de bus o el puerto serie del PC.

TwinCAT PLC Library: Serial

Library containing blocks for controlling the

Communication EnOcean

wireless adapter KL6023 (EnOcean technology).

TwinCAT PLC Library: Solar

Library with function blocks for determination of the

Position Algorithm

position of the sun.

TwinCAT PLC Library:

Biblioteca para el control de temperatura con

Temperature Controller

ajuste automático.

Beckhoff Automation: Prólogo

Indicaciones sobre la documentación Esta documentación está dirigida exclusivamente al personal profesional con conocimiento de la técnología de control y automatización, familiarizado con las normas nacionales vigentes.

Para la instalación y puesta en marcha de los componentes es imprescindiblemente necesaria la observación de las siguientes indicaciones. El personal profesional debe asegurar, que la aplicación y el empleo de los productos documentados cumplen todos los requisitos de seguridad, incluyendo todas las leyes, especificaciones, reglamentaciones y normas aplicables. Nota legal Esta documentación ha sido cuidadosamente elaborada. No obstante, los productos documentados están

en

continuo

desarrollo.

Por esta razón no podemos garantizar la absoluta coincidencia de la documentación conlas especificaciones

documentadas,

normas

u

otras

características.

En caso de que contenga errores técnicos o de redacción, nos reservamos el derecho a realizar modificaciones

en

cualquier

momento

sin

previo

aviso.

De las indicaciones, ilustraciones y descripciones de esta documentación, no se puede hacer valer ningún derecho a modificaciones de los productos ya suministrados. Marcas Beckhoff®, TwinCAT®, EtherCAT®, Safety over EtherCAT®, TwinSAFE® y XFC® son marcas registradas y licenciadas de Beckhoff Automation GmbH. La utilización de marcas o distintivos incluidos en esta documentación por parte de terceros puede constituir una violación de los derechos del titular de las correspondientes denominaciones. Patentes La tecnología TwinCAT está protegida mediante patente, en particular por las siguientes solicitudes y

patentes:

EP0851348, US6167425 con los registros y inscripciones correspondientes en varios otros países. Copyright © Beckhoff Automation GmbH. Sin nuestra expresa autorización, queda terminantemente prohibida la reproducción total o parcial de este documento, asi como su uso indebido y/o su exhibición o comunicación a terceros. De los infractores se exigirá el correspondiente resarcimiento de daños y perjuicios. Quedan reservados todos los derechos inherentes, en especial los de patentes, de modelos registrados y estéticos.

TwinCAT PLC Library: Sistema

Estado No todos los módulos de función y las funciones que a menudo se requieren en las aplicaciones PLC están normalizadas en IEC61131-3. La librería system incluye las funciones y módulos de función del Sistema TwinCAT que no están incluidas en la norma IEC61131-3 y que, por consiguiente, son específicas de cada fabricante.Biblioteca adicional. Módulos de función Módulos de función ADS

Nombre

Descripción

ADSREAD

Lectura de datos mediante ADS.

ADSWRITE

Escritura de datos mediante ADS.

ADSRDWRT

Escritura y lectura de datos mediante ADS

ADSRDSTATE

Lectura del estado de un dispositivo mediante ADS.

ADSWRTCTL

Escritura de términos de control en un dispositivo mediante ADS.

ADSRDDEVINFO

Lectura de la información de un dispositivo mediante ADS.

ADSREADEX

Lectura de datos mediante ADS. Devuelve el número de bytes de datos leídos realmente.

ADSRDWRTEX

Escritura y lectura de datos mediante ADS. Devuelve el número de bytes de datos leídos realmente.

Módulos de función ADS ampliados

Nombre

Descripción

ADSREADIND

ADSREAD-Indication

ADSWRITEIND

ADSWRITE-Indication

ADSRDWRTIND

ADSRDWRT-Indication

ADSREADRES

ADSREAD-Response

ADSWRITERES

ADSWRITE-Response

ADSRDWRTRES

ADSRDWRT-Response

Módulos de función generales

Nombre

Descripción

DRAND

Generador de números aleatorios.

GETCURTASKINDEX

Determinación de la lista de tareas actual.

Módulos de funciones de tiempo

Nombre

Descripción

GETSYSTEMTIME

Tiempo del sistema operativo.

GETTASKTIME

Reads target start time of the task.

GETCPUCOUNTER

Ciclo de la CPU.

GETCPUACCOUNT

Ciclo de la PLC tarea (task)

Módulos de función de archivos Con los siguientes módulos de función se pueden editar localmente en los archivos del PC desde el PLC. Mediante la dirección de red AMS se identifica el sistema de destino TwinCAT. Con este mecanismo es posible, entre otras cosas, crear o editar archivos en otros sistemas TwinCAT conectados. El acceso a los archivos consta de tres fases consecutivas: 1. Abrir el archivo. 2. Acceder al archivo abierto para lectura o escritura. 3. Cerrar el archivo. La apertura del archivo sirve para generar una conexión temporal entre los archivos externos, de los que de momento sólo se conoce el nombre, y el programa en ejecución. El cierre del archivo sirve para indicar el término de la edición y para poner los archivos en un estado de salida definido para la edición con otros programas.

Nombre

Descripción

FB_FileOpen

Apertura de un archivo.

FB_FileClose

Cierre de un archivo.

FB_FileWrite

Escritura en un archivo.

FB_FileRead

Lectura de un archivo.

FB_FileSeek

Posición del puntero de archivo.

FB_FileTell

Consiga la posición del puntero de un archivo.

FB_FilePuts

Cadena puesta a un archivo.

FB_FileGets

Consiga la cadena de un archivo.

FB_EOF

Controle el extremo de un archivo.

FB_FileDelete

Suprima de un archivo.

FB_FileRename

Retitule de un archivo.

FB_CraeteDir

Create new folder.

FB_RemoveDir

Remove a folder.

TwinCAT 2.7 módulos de función para el acceso a archivos Estos módulos de función son contenidos únicos para la compatibilidad razonan en la biblioteca y no deber no ser usados en nuevos proyectos.

Nombre

Descripción

FILEOPEN

Apertura de un archivo.

FILECLOSE

Cierre de un archivo.

FILEWRITE

Escritura en un archivo.

FILEREAD

Lectura de un archivo.

FILESEEK

Posición del puntero de archivo.

Funciónes IEC / SFC Este función / módulo de función se precisa para poder utilizar los pasos IEC o flags de SFC en los programas / proyectos de SFC.

Nombre

Descripción

SFCActionControl

El módulo de función se precisa en los proyectos PLC que utilizan flags de SFC

AnalyzeExpression

La función se precisa en los proyectos PLC que utilizan flags de SFC

AppendErrorString

La función se precisa en los proyectos PLC que utilizan flags de SFC.

Funciónes Eventlogger The TwinCAT Eventlogger manages all occuring messages (events) in the TwinCAT System. It transfers the data and writes them into the TwinCAT log file.

Nombre

Description

ADSLOGEVENT

Sending and acknowledgement of messages to the TwinCAT Eventlogger.

ADSCLEAREVENTS

Sending and acknowledgement of messages to the TwinCAT Eventlogger.

Funciónes Funciónes generales

Nombre

Descripción

F_SplitPathName

Break a path name into components.

F_CreateIPv4Addr

Converts address bytes to IPv4 address string.

F_ScanIPv4AddrIds

Converts IPv4 address string to address bytes.

SETBIT32

Definición de un bit en DWORD.

CSETBIT32

Definición/eliminación de un bit en DWORD.

CLEARBIT32

Eliminación de un bit en DWORD.

GETBIT32

Lectura de un bit de DWORD.

LPTSIGNAL

Salida de una señal en un pin del puerto paralelo.

F_GetStructMemberAlignmen

Reads data struct member alignment information.

t

F_GetVersionTcSystem

Devuelve a la información de versión de librería.

I/O port access

Nombre

Descripción

F_IOPortRead

Lee del puerto E/S

F_IOPortWrite

Escribe al puerto E/S

Funciónes ADS A continuación se describen las funciones a las que se puede acceder con la ayuda de las subfuncionalidades de la interfaz ADS del sistema operativo Windows-NT (por ejemplo, la presentación de cuadros de mensajes) mediante las posibilidades de llamada en PLC.

Nombre

Descripción

ADSLOGDINT

Definición de un bit en DWORD.

ADSLOGLREAL

Eliminación de un bit en DWORD.

ADSLOGSTR

Lectura de un bit de DWORD.

F_CreateAmsNetId

Crea cadena AmsNetId.

F_ScanAmsNetIds

Convierte la cadena AmsNetId a matriz de bytes de dirección

Funciónes memory El número de funciones que provee acceso directo a áreas de memoria en el PLC runtime sistema. Commentario El hecho que estas funciones permiten acceso directo la físico memoria significan que los especiales cuidado es requerido en los aplicar! Los valores los de incorrectos parámetro pueden resultar en un choque de sistema, o en el acceso a prohibido memoria áreas.

Nombre

Descripción

MEMCMP

Comparar los valores de variables en dos áreas de memoria.

MEMCPY

Copiar varlores de las variables de un área de memoria a otra.

MEMSET

Ajustar con un valor determinado en un área de memoria.

MEMMOVE

Copiar varlores de las variables de un área de memoria a otra.

Funciones de carácter

Nombre

Descripción

F_ToASC

Convierte carácter de cadena a número ASCII

F_ToCHR

Convierte número ASCII a carácter de cadena

TwinCAT PLC Library: Sistema

FUNCTION_BLOCK ADSREAD

El módulo de función permite la ejecución de un comando de lectura ADS para solicitar datos de un dispositivo ADS. VAR_INPUT VAR_INPUT NETID

: T_AmsNetId;

PORT

: T_AmsPort;

IDXGRP

: UDINT;

IDXOFFS

: UDINT;

LEN

: UDINT;

DESTADDR

: DWORD;

READ

: BOOL;

TMOUT

: TIME;

END_VAR NETID : Es una cadena que incluye la identificación de la red AMS del dispositivo de destino al que se dirige el comando ADS. PORT : Incluye el número de puerto del dispositivo ADS. IDXGRP : Incluye el número de grupo de grupo índice (32 bits, sin signo) del servicio ADS solicitado. Este valor se debe tomar de la tabla ADS del dispositivo solicitado. IDXOFFS : Incluye el número Offset índice ( 32 bits, sin signo) del servicio ADS solicitado. Este valor se debe tomar de la tabla ADS del dispositivo solicitado. LEN : Este valor se debe tomar de la tabla ADS del dispositivo solicitado. DESTADDR : Incluye la dirección del búfer que debe guardar los datos leídos. El programador es responsable de dimensionar el búfer a un tamaño en que se puedan guardar los bytes ”LEN”. El búfer puede ser una variable única, un array o una estructura cuya dirección se pueda determinar con el operador ADR.

READ : El comando ADS se inicia por un lado creciente en esta entrada. TMOUT : Indica el tiempo hasta la cancelación de la función. VAR_OUTPUT VAR_OUTPUT BUSY

: BOOL;

ERR

: BOOL;

ERRID

: UDINT;

END_VAR BUSY : Esta salida permanece en TRUE hasta que el módulo ejecuta la petición de un comando, por lo menos durante el tiempo especificado en la entrada ”Timeout”. Mientras el parámetro Busy = TRUE, no se recibe ningún comando nuevo en las entradas. Tenga en cuenta que no es la ejecución del servicio lo que se debe observar oportunamente, sino solamente su aceptación. ERR : Esta salida cambia a TRUE, si aparece un error en la ejecución de un comando. El código de error específico está contenido en ”ErrorId”. Cuando el módulo detecta un error de Timeout, 'Error' = TRUE y 'ErrorId' = 1861 (hexadecimal 0x745). Se vuelve a cambiar a FALSE mediante la ejecución de un comando en las entradas. ERRID : Incluye el código de error específico del último comando ejecutado. Se vuelve a cambiar a 0 mediante la ejecución de un comando en las entradas. Ejemplo de la llamada del módulo en FBD:

De este modo, el estado de error del eje N° 6 es leído como un elemento de 4 bytes y escrito en el búfer dataArr. IDXGRP 00004006(hex) y IDXOFFS 00000001(hex) se obtienen de la documentación NC-ADS.

Entorno de desarrollo

Plataforma de destino

Bibliotecas PLC a integrar

TwinCAT v2.7.0

PC or CX (x86)

PLCSystem.Lib

TwinCAT v2.8.0

PC or CX (x86)

TcSystem.Lib

TwinCAT v2.10.0 Build

CX (ARM)

TcSystem.Lib

>= 1301