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