Académique Documents
Professionnel Documents
Culture Documents
INDICE
1. INTRODUCCIÓN…………………………………………………………………………………….. 8
2. INSTALACIÓN........................................................................................................................ 9
2.1 Requisitos de Hardware y Software……………………………………............................ 9
2.1.1 Requisitos de hardware para la instalación…………………………………………. 9
2.1.2 Requisitos de software para la instalación………………………………………….. 11
2.2 Instalación de SQL Server 2000 SP3……………………………………………………….. 12
2.2.1 Instalando Message Queuing Services……………………………………………… 12
2.2.2 Instalando SQL Server 2000 SP3……………………………………………………. 13
2.2.3 Texto Welcome…………………………………………………………………………. 13
2.2.4 Texto Read First…………………………………………………………………......... 13
2.2.5 Texto Display CD-ROM Contents…………………………………………………….. 13
2.2.6 Texto Install SQL Server 2000……………………………………………………….. 13
2.2.7 Texto Exit……………………………………………………………………………….. 13
2.3 Instalación de WinCC V6……………………………………………………………………… 19
2.3.1 Texto Welcome…………………………………………………………………………. 19
2.3.2 Texto Read First……………………………………………………………………….. 19
2.3.3 Texto Display CD-ROM Contents……………………………………………………. 20
2.3.4 Texto Install Simatic WinCC………………………………………………………….. 20
2.3.5 Texto Additional Software………………………………………………………......... 20
2.3.6 Texto Language Selection…………………………………………………………….. 20
2.3.7 Texto Exit……………………………………………………………………………….. 20
2.3.8 Primeros pasos de la instalación…………………………………………………….. 21
2.4 Instalación del Simulador de WinCC……………………………………………………….. 35
3. ESTRUCTURA DE WinCC…………………………………………………………………………. 36
3.1 Estructura del Programa……………………………………………………………………… 36
3.2 Estructura del Proyecto………………………………………………………………………. 43
4. WINCC EXPLORER…………………………………………………………………………………. 45
4.1 Introducción…………………………………………………………………………………….. 45
4.2 Crear un nuevo proyecto……………………………………………………………………… 47
4.2.1 ¿Cómo inicializar la base de datos en Runtime?................................................. 51
4.3 Opciones del Menú del WinCC Explorer…………………………………………………… 51
4.3.1 Print Feedback Doc……………………………………………………………………. 51
4.3.2 Shut Down………………………………………………………………………………. 52
4.3.3 Idioma del WinCC Explorer………………………………………………………....... 53
4.3.4 Status de Conexión……………………………………………………………………. 54
1. INTRODUCCIÓN.
WinCC es un sistema HMI eficiente que trabaja bajo las plataformas de Microsoft Windows
2000 y Windows XP. HMI significa “Human Machine Interface”, o sea las interfaces entre el hombre
(el usuario) y la máquina (el proceso). El control sobre el proceso en si lo tiene el autómata
programable (PLC). Es decir por un lado hay una comunicación entre WinCC y el operador, y por
otro lado entre WinCC y los autómatas programables
2. INSTALACIÓN.
2.1 REQUISITOS DE HARDWARE Y SOFTWARE
WinCC da soporte a todas las plataformas de PC IBM/AT compatibles usuales. Para poder
trabajar de forma eficiente con WinCC debería orientarse a los valores recomendados para una
configuración óptima.
Server: Intel Pentium III 800 Server: Intel Pentium IV, 1400
MHz MHz
¹ La unidad de disco e la que está instalado el sistema operativo necesita para la instalación un
mínimo de 100 MBytes de espacio libre de memoria para archivos del sistema adicionales. La
mayoría de las veces, el sistema operativo se encuentra en la unidad “C”.
² Depende del tamaño del proyecto así como del tamaño de los archivos y de los paquetes. Cuando
se activa un proyecto deben existir adicionalmente por lo menos 100 MByte de memoria libre.
Todos los servidores deben ser usados con Windows 2000 Server o Windows 2000
Advanced Server. Todos los clientes de un proyecto deben ser únicamente con Windows XP
Professional o bien únicamente con Windows 2000.
Tanto para Windows 2000 como para Windows XP Professional son válidas las
restricciones que usted debe tener en cuenta a la hora de escoger el sistema operativo:
• El driver SIMATIC Ethernet TF solo es compatible con Windows 2000.
• Para sistemas monopuesto y clientes, WinCC V6.0 SP1 funciona en Windows XP
Professional y Windows 2000.
Nota:
WinCC no corre en el servidor de terminal de Microsoft. El servidor de terminal de Microsoft se
puede aplicar únicamente en combinación con el WinCC Web Client.
WinCC V6.0 SP1 requiere de los servicios de Microsoft Message Queuing, de Microsoft SQL Server
2000 SP3 y del Microsoft Internet Explorer V6.0 Service Pack 1 o superior. Ud puede instalar el
Internet Explorer V6.0 SP1 del CD suministrado.
Uno de los requisitos para instalar WinCC V6.0, es tener instalado un componente de Windows
llamado “Message Queuing Services”, el cual es instalado desde el Panel de Control en Agregar y
quitar programas.
Mostrar
contenido de
CD desde el
Explorador
Instalar SQL
Server 2000
Salir de la
instalación
Si no dispone del autorun activado ejecute el fichero setup.exe del raíz de su CD. A
continuación veremos las diferentes opciones posibles.
Al presionar este texto se abre una pantalla del Internet Explorer en la cual se muestran dos
enlaces hacia dos documentos que contienen información detallada sobre el SQL Server 2000 para
el usuario.
Este texto se utiliza para examinar el contenido del CD-ROM desde el Explorador de
Windows.
Al presionar este texto se procede a la instalación del SQL Server 2000 SP3.
Al presionar este texto se abandona el proceso de instalación del SQL Server 2000 SP3
Al presionar el texto Install SQL Server 2000 aparecerá esta pantalla en la que se
menciona que se instalará el SQL Server 2000 Service Pack 3 y se dan algunas recomendaciones.
En esta pantalla se deberá presionar el botón “Next” para continuar con la instalación.
En esta pantalla se deberá aceptar el contrato de licencia para continuar con la instalación,
pulsando el botón “Yes”.
Ver video de
información
Ver notas
informativas
Si presiona este texto se abrirá una ventana en la que se mostrará un video de información
de WinCC.
Si se presiona sobre este texto se abrirá una ventana en la que se mostrará toda la
información relacionada con el funcionamiento y herramientas de WinCC.
Mostrar
contenido de
CD desde el
Explorador
Instalar
WinCC V6.0
Instalar
componentes
adicionales
Salir de la Seleccionar
instalación lenguaje de
instalación
Si hace click sobre este texto se podrán instalar herramientas adicionales al programa de
WinCC V6.
Al hacer click sobre este texto se podrá seleccionar el lenguaje de instalación de WinCC V6.
Existen 5 opciones: Ingles, Alemán, Francés, Italiano y Español.
• Botón Yes: Al presionar este botón se indica que se acepta el contrato de licencia del
software y se prosigue con la instalación del mismo.
• Botón No: Al presionar este botón se confirma que no se esta de acuerdo con el contrato de
licencia del software y el proceso de instalación es interrumpido.
A continuación se nos permite elegir si se desea instalar el software en otro idioma a parte
del inglés.
A continuación se nos permite elegir entre los tres tipos de instalación que podemos
realizar:
Instala los drivers de S7 (STEP 7) para poder comunicarse con equipos S7 a través de MPI.
Si dispone ya de Step 7 instalado en su ordenador, no le es necesaria esta opción para
comunicarse con equipos S7 300/400, ya que se instala el software que se encarga de ajustar la
interface MPI.
Esta opción (Servidor Control de Procesos OLE) nos permite instalar las tres herramientas
que se encuentran en la columna de la derecha. En este caso las tres se encuentran seleccionadas.
• User Archive.
• Redundacy
• Server
• Basic Process Control
• Chipcard
Nos aparece por último nuestra ventana resumen de todas nuestras opciones
seleccionadas y comienza el proceso de instalación, que puede durar una media hora
aproximadamente.
Si la instalación ha sido satisfactoria, deberá aparecer una pantalla como la que se muestra
indicándonos que debemos reinicializar el ordenador para que el WinCC pueda arrancar
correctamente.
Con WinCC Simulator se puede probar el proyecto de WinCC, durante la fase de desarrollo sin
tener conectada la periferia de proceso, o con la periferia de proceso conectada pero sin poner en
marcha el proceso.
3 ESTRUCTURA DE WINCC.
3.1 ESTRUCTURA DEL PROGRAMA
Una vez instalado WinCC se nos genera en el disco duro la siguiente estructura de directorios.
Veamos los archivos más importantes y su utilidad.
• Bin:
Apdiag.exe: programa de diagnostico del funcionamiento de la aplicación runtime,
en el que podemos estudiar los procesos internos que se van realizando en el
código de la runtime. Si activa la runtime de un proyecto, puede arrancar a su vez
este programa, que permite observar los mensajes del sistema, la ejecución de
eventos y exportar esta información a un fichero de texto. Incluso es posible que
muestre mensajes automáticamente en la pantalla cuando detecte un error interno
en la ejecución del WinCC.
Apitest.exe: este programa nos permite manejar todos los objetos de un proyecto
desde una sola ventana, modificando sus propiedades y enlaces. Para poder
visualizar los objetos tendremos que introducir el path de nuestro proyecto y el
archivo mcp del mismo.
En esta ventana se muestra como accesar a las herramientas de WinCC, desde el menú de
Inicio.
Vamos a estudiar la estructura que nos genera WinCC en el disco dura al crear un nuevo proyecto.
Directorio raíz:
Directorio GraCs:
Directorio Library:
H declaración de funciones C.
Pxl librería de símbolos.
Fct Project functions (funciones de proyecto definidas por nosotros).
Directorio Pas:
Pas acciones de proyecto que son disparadas por un trigger y corren en background
con respecto el runtime del proyecto.
Directorio Prt:
rpl layouts para realizar reportes a impresora. Los definidos por el sistema comienzan
con el carácter @.
Rp1 line layouts. Definiciones de líneas a impresora para impresión de eventos en
tiempo real.
Archivos opcionales:
Directorio Raíz:
Ini archivo de inicialización del simulador de variables.
Sim variables internas a simular por el simulador de variables.
Csv textos exportados separados por comas.
Txt mensajes exportados separados por comas.
Emf reporte a impresora exportado a un fichero.
Log ficheros de diagnosis de la ejecución del WinCC.
4 WINCC EXPLORER.
4.1 INTRODUCCIÓN
El WinCC Explorer representa el acceso a todas las opciones del WinCC como sistema de
desarrollo para visualización de procesos industriales. Desde el WinCC Explorer podemos disponer
de todos los módulos software para la creación de ventanas gráficas, archivos de proceso, ventanas
de alarmas, y generación de documentos a impresora.
Además de esto, la filosofía abierta del WinCC posibilita la interconexión desde aquí del
sistema con otras aplicaciones, ya sea a través de OLE, DDE o ODBC.
a) Que anteriormente no hubiera ningún proyecto abierto, con lo que se nos abre
automáticamente una caja de diálogo en la que se nos permite crear un nuevo proyecto o
abrir uno existente.
b) Que ya hubiera un proyecto abierto anteriormente, con lo que no nos aparece esta caja de
diálogo, sino el proyecto en cuestión.
c) Que el proyecto ya estuviera abierto y en runtime cuando lo abandonamos la última vez,
con lo que arranca automáticamente la runtime del WinCC.
La estructura que nos genera en el disco duro es la que se muestra en la siguiente figura.
Como se puede observar desde el WinCC Explorer, todo proyecto de WinCC se divide en
una serie de partes bien definidas y siempre iguales, lo que nos permite afrontar cualquier tipo de
proyecto siguiendo siempre las mismas pautas de trabajo.
Graphics Designer: Editor gráfico que nos permite dibujar las pantallas que
componen el WinCC.
Alarm Logging: Editor de alarmas que nos permite configurar las ventanas y
tratamiento de alarmas del proceso.
Text Library: Editor de texto que nos permite asignar diferentes configuraciones de
textos según el idioma seleccionado en el WinCC.
Los datos del proceso son almacenados en la base de datos PROYECTORT.DB siendo
PROYECTO el nombre de nuestro proyecto. A medida que se trabaja en modo runtime el tamaño
de dicha base va aumentando (histórico de alarmas, archivos, etc...). Si en un momento dado es
necesario inicializar dicho archivo, realice una copia de seguridad del mismo y siga los siguientes
pasos:
Vamos a comentar las opciones del menú del WinCC Explorer que no son directamente
autoexplicativas y poseen un especial interés.
Esta opción nos permite generar un reporte para documentar nuestro proyecto. Si
deseamos modificar el formato que nos aparece por defecto, tenemos que ir al report designer y
modificar el reporte @Documentation Control Center.
Esta opción del menú nos permite seleccionar la forma en la que deseamos salir del
WinCC.
• Close project and exit WinCC Explorer: Cerrando el proyecto y saliendo de WinCC
Explorer.
• Exit WinCC Explorer: Cierra el WinCC Explorer.
Si hemos seleccionado algún idioma del inglés en la instalación del WinCC, disponemos en
Tools Language de la posibilidad de cambiar de idioma el WinCC Explorer.
Es importante recordar que estos idiomas son para el WinCC Explorer, no para la runtime.
Por esta razón no aparece la opción en español, ya que el software sólo está disponible en francés,
inglés y alemán. Sin embargo, esto no impide que en la runtime podamos seleccionar los textos
directamente por la referencia Español.
Para actualizar los campos, se puede seleccionar la casilla Cyclic Update, que actualiza
cada segundo el estado de las comunicaciones en la ventana, así como las variables leídas y
escritas.
4.4.1 Introducción
Vamos a repasar todas las opciones que nos ofrece el proyecto recién generado, visto
desde la ventana del WinCC Explorer.
Si nos posicionamos sobre el nombre del proyecto (DUNKER) y presionamos el botón derecho del
ratón, aparece un menú contextual indicándonos las opciones buscar y propiedades. Seleccionamos
esta última teniendo acceso al cuadro de diálogo inferior. Su significado es:
• El tipo de CPU nos permite seleccionar un proyecto para un sistema monopuesto o
multipuesto. Evidentemente es importante tener cuidado en no cambiar este parámetro si
deseamos trabajar en monopuesto.
• Podemos también introducir la versión de nuestro proyecto y un comentario.
• El campo GUID sirve como información para conocer el número ID que se le asigna al
proyecto generado. WinCC asigna un número propio para cada proyecto generado. Este
dato nos será útil a la hora de conocer la base de datos con la que debemos conectarnos a
través de ODBC de manera externa a WinCC, ya que nos permitirá dirigirnos a la base de
datos que corresponda según este indicador.
Ejemplo:
Si deseamos leer un valor de proceso cada 6 segundos, definiremos aquí este tiempo en
base a milisegundos (6000) y posteriormente utilizaremos como ciclo de lectura el user cycle 1.
4.4.4 Hotkeys
Hay que tener en cuenta que para poder realizar un hardcopy con el botón asignado, no
basta con la simple asignación, sino que debemos de arrancar el programa PrtScr.exe que se
encuentra en el subdirectorio C:\Siemens\WinCC\bin, para poder realizar hardcopys de pantalla.
4.5 COMPUTER
Esta opción nos permite seleccionar el nombre de nuestro ordenador. Hay que tener en
cuenta que dicho nombre ha de corresponder al asignado en Windows, ya que de otro modo al
ejecutar la runtime WinCC nos indicará que no encuentra dicho nombre en su lista de servidores.
4.6.2 Startup
En esta solapa podemos seleccionar la parte del runtime que deseamos activar en WinCC.
El runtime del WinCC está dividido en varias partes para poder optimizar el tiempo de respuesta en
el procesamiento de las comunicaciones. Esto es así, ya que si por ejemplo no se dispone de
impresora en la instalación, no es necesario activar la parte de runtime que corresponde a la
impresora, con lo que no pierde tiempo el programa, encargándose de realizar esa parte de
código.Hay que tener en cuenta que con respecto a la runtime del Global Script, su ámbito de
activación no es exclusivamente el de programar funciones en C. Si asignamos un script a un botón
deberemos de tener activado el runtime de Global Script, ya que esta es una acción en C. Esto no
es siempre obligatorio para todas las acciones en C, pero es conveniente ya que algunas no se
ejecutarán si no tiene instalada la parte de Global Script.
A su vez, en Additional Tasks podemos asociar aquéllas aplicaciones que deseamos que
se ejecuten cada vez que arranque la runtime del WinCC.
NOTA: Hay que tener en cuenta que al parar el WinCC no desactiva aquellas tareas que hubiera
arrancado, por lo que si asociamos Excel al arranque del mismo, y lo arrancamos y paramos varias
veces, el resultado será que tendremos varias instancias o copias en memoria del programa, ya
que nos lo arrancará cada vez sin verificar si ya estaba arrancada la aplicación.
4.6.3 Parameter
En esta pestaña podemos seleccionar el lenguaje del runtime del WinCC (por defecto
vienen en inglés). No confundir tonel lenguaje del entorno de desarrollo, que sólo puede ser en
inglés francés y alemán, seleccionándose en el menú, y no en esta opción.
Por defecto sólo aparece un idioma (inglés) para comenzar la aplicación, pero podemos
disponer prácticamente de cualquier idioma en esta solapa, siempre y cuando en el Text Library
añadamos este idioma a la tabla (para más información ver Text Library).
• Window on top: con ésta combinación la ventana de WinCC se coloca en primer plano si
estaba tapada.
• Tab Order/Alpha cursor: El orden en el desplazamiento con el tabulador entre los
diferentes objetos puede ser:
• Tab Order: Orden en tabulación que se asigna desde el graphic editor a los objetos.
• Alpha Cursor: Desplazarse solo por los campos alfanuméricos, en lugar de por todos
los objetos que puedan activarse.
• Runtime Cursor On/Off: Se puede asignar una combinación de teclas para que
aparezca un cursor resaltando el objeto activo actual. Si se desea que siempre este
activa esta opción (ideal en controles por teclado) hay que seleccionar Turn On during
activation.
Además de la asignación de teclas para subir y bajar con el teclado, podemos configurar el
funcionamiento del cursor a la hora de desplazarse, eligiendo las siguientes opciones:
4.7.1 Introducción
Un driver de comunicaciones es una dll, con la extensión *.CHN que posibilita al WinCC
comunicarse con un determinado protocolo con un tipo determinado de PLC industrial o aplicación
software. Un canal de comunicaciones puede soportar varios enlaces de comunicaciones a la vez o
no, dependiendo del tipo de canal. Existen canales de comunicaciones que, pese a encontrarse
dentro del CD de WinCC, necesitan para funcionar una licencia aparte. Para más información
acerca de cuales son, ver apéndice.
Supongamos que deseamos conectar el WinCC a un autómata S7 300 o 400 para obtener
información de él. Primeramente necesitaremos añadir el driver de comunicaciones adecuado. Para
ello, seleccionando con el botón derecho tag management, aparece un menú contextual cuya
primera opción es añadir nuevo driver. Seleccionando esta opción nos aparecen todos aquellos
drivers de que dispone el WinCC.
Seleccionamos PC Adapter si vamos a trabajar a través del cable PC/MPI, y MPI si vamos a
trabajar a partir de una tarjeta interna MPI.
Si volvemos a colocarnos sobre el driver MPI y presionamos el botón derecho, una de las
opciones es new driver connection. Seleccionándola podemos configurar la dirección MPI y el
nombre simbólico que le queremos dar a nuestro enlace MPI.
En la solapa connection podemos definir la dirección MPI del equipo al que vamos a
conectarnos. Los autómatas S7 disponen de un número identificativo comprendido entre 2 y 126
que les identifica dentro de una red MPI. También podemos activar la opción de envío y recepción
de raw datas. Como veremos más adelante, los raw datas son bloques de datos que no reciben
tratamiento a nivel de protocolo ni por parte del PLC ni por parte de WinCC. Es el sistema ideal para
el envío de estructuras de información o telegramas completos, en lugar de variables sueltas de
comunicaciones.
Con esto se ha definido el enlace con un PLC S7 300/400 en la dirección MPI 2. Todas las
variables que se definan a partir de este enlace obtendrán su valor de las comunicaciones con dicho
PLC de manera automática. Para reconocer otros tipos de enlaces a parte del S7.
Todas las variables, tanto las internas como las externas pueden agruparse en groups o
grupos de variables, lo que permite cuando el proyecto crece en tamaño acceder a las variables de
una manera más intuitiva.
Ejemplo:
Supongamos que deseamos realizar un proyecto de una máquina de lavado de coches, que
se compone de cuatro partes bien diferenciadas, entrada al lavadero, enjabonado, lavado y secado.
Definimos cuatro grupos de variables dentro de los cuales crearemos los tags que
correspondan a cada una de las partes de la máquina.
Para ello nos colocamos sobre el nombre de la conexión y presionando el botón derecho
seleccionamos new group. Asignamos un nombre como muestra la figura para cada uno de los
grupos de variables.
Un tag es el elemento de enlace entre la base de datos del WinCC, las variables del PLC y
los objetos del runtime de nuestra aplicación. Los valores de los tags son almacenados en nuestra
base de datos del proyecto. Cuando arranca el WinCC, carga estos valores de la base de datos. A
partir de ese momento se pueden modificar dichos valores, pero hay que tener en cuenta que
dichas dinamizaciones no se almacenan en la base de datos, por lo que utilizamos variables
internas para realizar una receta de valores, y nos salimos de WinCC, cargará al arrancar de nuevo
los valores de las variables internas que tenga asignados en propiedades estáticas, y no el último
valor que hubiésemos introducido.
Para crear una variable de comunicaciones o tag, nos colocamos sobre cualquiera de los
grupos creados seleccionamos con el botón derecho new tag.
La solapa general information nos permite introducir un nombre simbólico para nuestra
variable de comunicaciones.
Presionando en el botón select podemos acceder a un cuadro de diálogo que nos permite definir la
dirección del mapa de memoria del PLC de la que queremos obtener el valor o donde lo deseamos
almacenar.
• Entradas digitales
• Salidas digitales
• Marcas
• DB’s
El poder seleccionar estos mapas de memoria nos permite realizar controles instalaciones
que ya estuvieran funcionando con su propio programa de PLC siempre y cuando las zonas a las
que accedamos para escribir no estén a su vez siendo escritas desde programa de PLC. Con
respecto a la lectura no existe evidentemente ninguna limitación, accediendo a todas ellas
libremente.
• Los límites máximo y mínimo que WinCC debe verificar y como debe comportarse cuando
se alcancen, permitiendo sustituir el valor de comunicaciones por uno substitutivo.
• El valor que la variable de comunicaciones debe de tener al arrancar el WinCC.
• Si el valor substitutivo debe sustituir al valor de comunicaciones frente a un error en las
mismas.
Ejemplo:
Se desea tener un valor analógico que viene de una sonda 0-20mA que dentro del PLC se
almacena tras la conversión analógica digital en un valor de 32 bits. La sonda aporta 0 mA para
10°C y 20 ma para 60°C. Leemos el valor directamente de la entrada del PLC y escalamos al rango
de la sonda, con lo que podemos obtener en el WinCC la representación en °C del valor de la sonda
sin necesidad de más transformaciones dentro del PLC.
En data type podemos seleccionar el tamaño de la variable que vamos a utilizar. Las
posibilidades a la hora de seleccionar el tamaño son:
4.7.10 Adaptar una variable de WincC con respecto al valor del PLC
1. No poseen la funcionalidad del botón select para asociar dicha variable al mapa de
memoria del PLC.
2. Poseen una funcionalidad añadida, que es la opción de poder elegir si dicha variable debe
ser local para el ordenador en el que se genera o debe ser compartida por todos los
ordenadores cuando se trabaja en una red multipuesto.
3. A diferencia de las de comunicaciones, son gratuitas e ilimitadas, en función de la memoria
RAM de que disponga el PC.
En la parte inferior de la ventana principal del WinCC Explorer disponemos de una barra de estado
que nos informa de:
• Variables externas que estamos utilizando en nuestro proyecto. Esto nos permite
dimensionar la runtime que debemos adquirir para la comunicación una vez finalizado el
desarrollo.
• El modo de desarrollo que se está utilizando. En modo demo (sin licencia) se cumple lo
anteriormente mencionado al respecto de los 30 minutos de control.
• CAPS: tecla mayúscula presionada.
• NUM: teclado numérico activado.
• SCRL: la tecla bloq despl del teclado está activada.
5 GRAPHICS DESIGNER.
5.1 INTRODUCCIÓN
5.2 CARACTERÍSTICAS
5.2.1 Tips&Tricks
El editor Graphics Designer posee una opción de Tips&Tricks o ideas que nos proporciona
algunas sugerencias cada vez que entramos al mismo al respecto de alguna funcionalidad del
mismo.
Todos los objetos poseen dentro del Graphics Designer varias características comunes, incluyendo
a la propia superficie en la que vamos a colocar los objetos (picture). Estos son:
• Todo objeto posee una serie de propiedades, cuyo número depende del tipo de objeto en
cuestión. Para acceder a estas propiedades es necesario colocarse sobre el objeto y
presionar el botón derecho del ratón, emergiendo un menú contextual como el de la figura.
Estas propiedades del objeto son visibles de dos modos distintos mediante:
• Customize object: podemos asociar una nueva propiedad a un grupo de objetos para
generar nuevas funcionalidades a las agrupaciones de los mismos. Ejemplos de ello son
los smart objects de la biblioteca de objetos.
• Group objects. Cuando se selecciona más de un objeto se pueden agrupar, de manera
que conforman uno nuevo que posee las características de los dos pero tiene un nuevo
nombre. La mayoría de los objetos de la biblioteca son agrupaciones de objetos más
simples. Las agrupaciones se pueden desagrupar en cualquier momento.
• Configuration Dialog: se accede a un resumen de las propiedades más importantes del
objeto.
• Properties: se accede a una caja de diálogo en la que disponemos por un lado de todas
las propiedades del objeto y por otro de los eventos frente a los cuales reacciona. Dentro
de estos eventos podremos colocar nuestro código programado para que ejecute el
programa ciertas acciones cuando se generen estos eventos del objeto.
• Geometry:
• Colors:
• Miscelaneous:
Con respecto a los eventos, las posibilidades para una picture son:
• Eventos Keyboard:
Press: Se ejecuta al presionar una tecla, siempre y cuando el foco activo sea dicho
objeto.
Release: Se ejecuta al levantar la tecla presionada anteriormente.
• Eventos Miscelaneous:
Object Change: Se ejecuta cada vez que cambia alguna propiedad del objeto.
Open Picture: Se ejecuta al entrar a la picture.
• Property topics:
Copiar propiedades: Copia las propiedades del objeto activo en ese momento en el
portapapeles.
• Nueva Picture
• Abrir Picture
• Guardar imagen
• Visualizar rejilla
• Biblioteca de objetos.
La ventana del Graphics Designer con sus barras de herramientas activadas se presenta
como se muestra.
Para pasar un objeto a nuestra picture basta con arrastrarlo y soltarlo sobre la misma.
5.3.1 Settings
En el menú Tools Settings disponemos de las siguientes opciones para configurar el graphic
designer:
Touching: Los objetos se seleccionan aunque solo una parte de los mismos se encuentre
incluida en la selección.
En esta opción podemos seleccionar las capas que deben estar activas por defecto en una
picture y las que no.
Por último, podemos seleccionar la configuración por defecto de objetos que deseamos y
donde guardarla.
Podemos seleccionar deferentes idiomas para los textos asociados a todos los objetos que
coloquemos en las pantallas del WinCC, de tal manera que simplemente cambiando de página de
idioma podamos modificar completamente el lenguaje del runtime en la aplicación.
Disponemos de una barra de colores para asignar a las propiedades estáticas de los
objetos. Dichos colores pueden personalizarse gracias al último de los iconos de la barra.
Gracias al zoom podemos hacer escalados a la picture hasta 8 aumentos y reducciones hasta ¼
parte.
• Standard Objects: Objetos estándar de dibujo, tales como líneas, polígonos, etc...
• Smart Objects: Objetos inteligentes, cada uno con unas propiedades especiales.
• Windows Objects: Objetos comunes de Windows, tales como botones, cajas de selección,
barras de desplazamiento, etc...
La barra de layers nos indica las capas que actualmente están activas en nuestra ventana.
Todos los objetos poseen una propiedad layer que indica a qué capa pertenecen. Disponemos de
un total de 16 capas, apareciendo por defecto todas activas.
Esta barra se utiliza para poder alinear varios objetos y también para igualarlos en tamaño
tanto en altura como en anchura.
Para que aparezca activa lógicamente deberemos de tener seleccionados por lo menos dos
objetos.
La mayoría de los objetos poseen algún texto asociado. Mediante la barra de fuentes
podemos configurar el tamaño y fuente de los mismos sin tener que entrar en sus propiedades.
Al igual que el anterior, poseemos también una barra de herramientas solo para las líneas
de los objetos, en las que podemos modificar el estilo de la línea, su grosor, su final y el relleno que
deben tener (si poseen un grosor mayor de una simple línea).
5.5.1 Introducción
Los smart objects son la base de construcción de los proyectos de WinCC. Los cuatro
primeros los estudiaremos más adelante, ya que su estudio es más amplio y complicado. Nos
centraremos ahora en los siguientes objetos.
Caja de entrada/salida para visualizar el valor de una variable y poderlo modificar. Las propiedades
estáticas del I/O field son:
Opciones Miscelaneous:
• Operator Control Enable: Indica si el usuario puede tener acceso a la caja par introducir
valores. Esta propiedad es independiente de que tenga o no nivel para poder introducir
valores. Equivale al Locked de los controles de programación de objetos.
• User Level: Nivel que debe disponer el usuario para poder introducir datos en esta caja.
• Display: Si debe ser visible o no la caja.
• Tooltip Text: Texto que debe aparecer en el cursor al posicionarse con el mismo sobre la
caja. Los tooltip dependen también del código de página de idiomas seleccionado en el
runtime.
• Operator activites report: Cuando se activa esta opción, cada vez que se introduzca un
valor en la caja, aparecerá una caja de texto solicitando que introduzcamos una explicación
al respecto de la modificación realizada en el valor del proceso. Este mensaje queda
almacenado en el sistema como seguridad antes posibles fallos debido a los cambios
realizados, o como nota aclaratoria de porque se toma dicha decisión.
• Operator input Message:
• Adapt Border: Ajusta automáticamente el tamaño de la caja al texto o número que
contenga en cada momento.
• Cursor control: Determina se después de realizar una entrada en la caja se debe saltar al
siguiente objeto en el orden de Alpha-cursor seleccionado o se debe continuar en el campo
en el que se acaba de introducir el valor.
• Inmediate input: Indica si la caja al recibir el foco debe ponerse automáticamente en modo
edición para introducir un valor, o no.
Limites:
• Low Limit value: Valor menor que se puede aceptar como válido a la hora de introducir un
valor en proceso.
• High Limit Value: Valor mayor que se puede aceptar como válido a la hora de introducir un
valor en proceso.
Output/Input:
• Field Type: Tipo de valor del campo a representar o introducir. Las diferentes posibilidades
son:
• Output format: Formato de salida del valor a introducir. Cada carácter 9 corresponde a un
dígito. Los dígitos que se coloquen después del punto corresponderán a los decimales a los
que se ajuste el valor a representar.
• Formato binario: Debe estar compuesto por unos y ceros.
• Formato decimal: Debe estar compuesto por:
Ejemplo:
9.9 1.0
s9.9 +1.0
s9.9e +1.0E+00
09.99 01.00
* cualquier cadena.
? un carácter
a cualquier carácter o número
A cualquier carácter en mayúsculas o número
b cualquier carácter en mayúsculas o minúsculas.
B cualquier carácter en mayúsculas.
d signo + o -, punto decimal, espacio en blanco o número.
t separador (:,;) o espacio en blanco.
1 número 0 o 1
2 número 0,1 o 2
h carácter hexadecimal.
Etc.
• Formato hexadecimal:
f carácter hexadecimal
0 cero de relleno a la izquierda de caracteres hexadecimales.
Además de las propiedades, todo objeto (incluyendo el objeto I/O que estamos tratando
ahora) posee un Configuration Dialog, perteneciente a su menú contextual, en el cual se
representan las propiedades más importantes del objeto en cuestión, es decir, un resumen de lo
visto en las páginas anteriores.
En esta caja de diálogo se especifica la tag a la que se va a enlazar el I/O Field, el tiempo
de actualización de la variable, se especifica también si el campo sera de Entrada/Salida, solo de
entrada (introducción de valores) o solo de salida (despliegue de valores).
5.5.3 Bar
La barra es un objeto que nos permite representar un valor analógico y compararlo con
unos límites establecidos para saber en que estado se encuentra el proceso con respecto al valor
deseado.
• Bar direction: dirección en la que debe de crecer la barra (hacia arriba, hacia abajo…).
Colors:
Styles:
Font:
Flashing:
• Flashing Line Active: Se especifica “si” para activar el flasheo de la líne de la barra.
• Flashing Border Color On: Se especifica el color de la línea en “On”.
• Flashing Border Color Off: Se especifica el color de la línea en “Off”.
• Border Flashing Frequency: Se especifica la frecuencia del flasheo, la cual presenta tres
opciones: Baja, Media y rápida.
• Flashing Background Color: Se especifica “si” si se desea que el contenido de la barra
tenga la propiedad de flasheo activa.
• Flashing Background Color On: Se especifica el color de la barra en estado “Off”.
• Flashing Background Color Off: Se especifica el color de la barra en estado “Off”.
• Background Flashing Frequency: Se especifica la frecuencia de flasheo del contenido de
la barra, la cual presenta tres opciones: Baja. Media y Rápida.
Miscelaneous:
• Change Color: Cambia el color de la barra al superar un límite suprior o interior de manera
toral, o solo el trozo que sobrepasa dicho límite.
• Maximum Value: Valor máximo de la escala de la barra.
• Zero point value: Valor del punto cero de la escala.
• Minimum Value: Valor mínimo de la escala de la barra.
• Histeresys: Indica si el valor debe de comportarse según una histéresis al alcanzar el límite
superior o inferior. Si alcanzamos un límite de 100, teniendo activado este parámetro, y
seleccionando un rango de histéresis de 20, hasta que el valor no baja de 80no volverá la
barra a representar modificaciones en su valor. Esto permite evitar las oscilaciones propias
de los fluidos una vez alcanzados los límites precisos.
• Histeresys Range: Valor a tener en cuenta en la histéresis.
• Trend: Indicador del sentido de la barra. Nos indica si el proceso esta aumentando o
disminuyendo, realizando una comparación del valor actual con el anterior.
• Average Value: Seleccionando esta opción se muestra la media de los últimos 15 valores
leídos en el proceso, no el instantáneo. Ideal para procesos muy fluctuantes.
• Process Drive Connection: Valor del proceso a mostrar.
Axis:
Límtis:
• Limit Marker: Marca de límite que aparece a la izquierda de la barra indicándonos donde
se encuentran los límites de control de la barra.
• Monitoring AL: Controlar alarma 1 de mínimo.
• Limit AL: Valor del límite de alarma 1.
• Bar color AL: Color que debe adoptar la barra cuando el valor del proceso este por debajo
de lo especificado en Limit AL.
• Type AL: El valor de Limit AL puede ser expresado en valor absoluto, con lo cual es
necesario conocer a prior el valor máximo de la escala, o en porcentual (mucho más
flexible, ya que ante cualquier modificación de límites continúa manteniendo la
proporcionalidad).
Las demás opciones son idénticas pero para los cuatro siguientes límites de alarma mínima
(La L de AL indica que es un límite de mínimo). Los límites de máximo comienzan con AH, siendo
su funcionamiento y propiedades idéntico al descrito, salvo que la barra cambia de color cuando el
valor del proceso está por encima del valor estipulado como límite de alarma.
El objeto gráfico representa una imagen en pantalla. Su asignación suele ser dinámica, utilizándose
el status display para realizar animaciones de imágenes, aunque puede dinamizarse la imagen que
representa.
Picture:
• Bmp
• Emf
• Wmf
• Dib.
• Jpg
• jpge
Este es el Configuration Dialog del Graphic Object en el que se muestra la imagen. Al hacer
click sobre el botón Find se abre un cuadro de dialogo para buscar un archivo de imagen en una
trayectoria diferente.
El status display es el objeto a utilizar para mostrar animaciones en pantalla. Estas animaciones se
componen de hasta un máximo de 31 imágenes que se van mostrando en función del valor que
adopte una variable asignada.
• Que exista un valor que se va incrementando desde 0 hasta x. Esta opción suele ser una
variable interna, y se incrementa mediante una función en C desde WinCC.
• Que exista un valor de comunicaciones que nos indica en que posición se encuentra la
máquina. Cada bit de la palabra muestra un estado de la máquina. En este caso hay que
utilizar el botón Add que nos irá incrementando el valor a verificar para el cambio de imagen
en potencias de 2.
El objeto textlist es útil a la hora de realizar un control sobre valores numéricos que se
encuentran claramente definidos mediante textos. Suelen ser estadios del proceso de 3 o cuatro
pasos máximo. Por ejemplo, un motor puede estar parado, arrancado en automático, o arrancado
en manual. En estas situaciones el asociar textos o valores numéricos dentro del PLC permite
gobernar variables del proceso simplemente seleccionando un texto de una lista o que un texto nos
describa el estado de un determinado elemento de la instalación.
Output/Input:
• Field Type: Campo de salida (sólo lee el valor), de entradas (sólo modifica el valor en el
PLC) o de ambos (leer y escribir en el PLC).
• Output Value: Valor del proceso relacionado con los textos.
• List Type: Tipo de lista de texto.
• Asignement: Asignación de los textos a los diferentes valores numéricos.
• Bit number:
• Apply on exit:
• Number of visibles lines: Líneas de texto visibles al desplegar la ventana de selección de
valor.
5.5.7 Buttons
• El campo text es el texto que aparece sobre el botón, de tal manera que presionando dicha
tecla se ejecuta la función que se haya asociado al mismo.
• Hotkey es la función del teclado que se asigna a ese botón, de tal manera que presionando
dicha tecla se ejecuta la función que se haya asociado al mismo.
Destacar que la asignación del teclado no se limita a las teclas de función pudiéndose
asignar hasta la tecla ESC o la de ENTER para salirse de las pantallas o entrar a ellas como si se
estuviese en una OP.
Dos opciones no vistas del botón es que podemos definir dos imágenes (picture on y picture
off) para representar los dos estados del botón (presionado o no).
• Selected Boxes: Cajas que están activas por defecto según el array generado (en el
ejemplo solo la primera de las tres).
El objeto option button se utiliza para realizar una entrada en el proceso de un valor que
solo puede adoptarse de entre una serie definida de posibilidades excluyentes entre sí.
Todas las propiedades vistas en check box sirven para option button.
5.5.10 Slider
La barra Slider sirve para poder introducir valores analógicos en el proceso de una manera gráfica.
De las propiedades de slider solo destacar por no haber sido vista aún:
• Extenden operation:
• Operation steps: Incrementos en que aumenta o disminuye la variable de proceso cada
vez que nos desplazamos por la barra.
Podemos asignar también colore a la barra y a los botones de máximo y mínimo de manera
individualizada, así como al fondo con respecto a lo que lleva y lo que queda hasta el máximo.
5.5.11 Round
El objeto round está ideado como pulsador con enclavamiento o como visualizador de
estado (presionado o no presionado).
5.6 ASISTENTES
Los asistentes de programación son pequeños scripts o trozos de código de programa que
se añaden de manera automática al objeto sobre el que se aplican, para realizar una determinada
tarea de programación. Cuando se aplica un Dinamic Wizard a un objeto aparece un asistente que
nos permite seleccionar el evento con el cual deseamos ejecutar el script.
• Exit WinCC:
Sale del runtime de WinCC y del propio WinCC.
Código añadido: ExitWinCC();
• Hardcopy:
Imprime la pantalla actual por la impresora predeterminada de Windows.
Código: WinExec(“PRTSCR.EXE –hardcopy”,SW_SHOWNORMAL);
• Language switch:
Cambia de idioma los textos de la aplicación runtime.
Código: SetLanguage(0x040A); /*SPANISH*/
Un asistente nos permite seleccionar el código de área del lenguaje deseado.
• Add dinamics to the prototype: permite dinamizar una propiedad del objeto seleccionado
a través de un Wizard en lugar de hacerlo directamente en propiedades del objeto.
• Copy tag value: incluye el código que copia una variable en otra.
• Fill object: rellena los objetos que permitan dinamic filling, pero con la ventaja de que a
través del wizard podemos establecer un rango de llenado diferente de 0 a 100 que sería
mediante una conexión directa de la variable de llenado con la propiedad de llenado.
• Make a property dinamic: dinamizar una propiedad.
• Move object: dinamiza las coordenadas de un objeto seleccionado de acuerdo a los
variables definidas de tal manera que en función de las variables definidas de tal manera
que en función de las variables se moverá la posición del objeto.
• Display error: muestra una ventana de error en pantalla. Esta Wizard es muy útil para
sacar mensajes al operario frente a error de manejo.
• Display WinCC dialog: mostrar una ventana de diálogo ya configurada anteriormente. Nos
crea el diálogo necesario para que al presionar sobre el objeto, aparezca la ventana
indicada.
• Single picture change: abrir una ventana. Equivale a Openpicture();
La representación de una asignación directa a una variable se realiza con una bombilla
verde.
La segunda forma sencilla de dinamizar una propiedad es a través del dinamic dialog, una
caja de diálogo que nos permite configurar cual debe ser el valor que controla la propiedad
dependiendo de una fórmula que puede ser el resultado del valor de una variable o de una
operación matemática.
Además de poder dinamizar una propiedad asignándole un valor, ya sea a través de una
variable o del resultado de operaciones matemáticas, podemos realizar una asignación indirecta del
valor de la propiedad.
Supongamos que tenemos una caja de I/O y queremos mostrar la temperatura de la sala.
Dependiendo de una serie de botones, podremos seleccionar una sala u otra. La caja de I/O deberá
cada vez estar asociada a una variable distinta. Para conseguir esto, se asocia una variable de tipo
texto a la propiedad en cuestión (en nuestro caso Output value). Todas las propiedades tienen una
caja de asignación a la derecha llamada indirect. Seleccionándola, el valor de la cadena
VAR_TEXTO cambiamos la variable conectada en dicha propiedad.
Cuando se realiza un Direct connection a un evento queda indicado mediante un rayo azul.
Pero casi siempre hay que recurrir al C para realizar las acciones que deseamos. Cuando
asignamos nuestro código de programación a un evento, se nos indica mediante una bombilla
verde:
6 ALARM LOGGING.
6.1 INTRODUCCIÓN
Alarm Logging es la parte del WinCC que se encarga del tratamiento de los mensajes de
alarma de la instalación, así como del tratamiento del histórico de alarmas y la generación de
alarmas a partir de comparaciones con valores de comunicaciones.
El editor se ejecuta presionando con el botón derecho sobre Alarm Logging del WinCC
Explorer y seleccionando Open.
El editor de alarmas nos permite configurar los mensajes de alarmas, así como la estructura
de la ventana en la que representaremos dichos mensajes.
La apariencia del Alarm Logging es la que presenta la ventana que se esta mostrando.
Como se puede observar, esta dividida en tres partes. La primera es un árbol en que se
representan las diferentes partes en que se divide la construcción de una ventana de alarmas.
La segunda, son los objetos que contiene la parte seleccionada a la izquierda. Por último, la
ventana inferior, es donde se representan todos los mensajes de alarma que pueden existir en
nuestro proyecto, con su bit de comunicaciones asignado.
• System blocks: Bloques de sistema, que contienen datos que son asignados por el sistema,
tales como hora de la alarma, fecha, etc.
• Process value blocks: Bloques que contienen información acerca del valor actual del
proceso (por ejemplo una alarma de temperatura puede tener un bloque de proceso en el
que aparezca el valor de dicha temperatura).
• User text blocks: Bloques de usuario son los que nos dan la información sobre que es esa
alarma (el texto de la alarma), donde se produjo (lugar), etc.
Estos bloques se organizan en una línea, y en esta línea ya configurada con los bloques se
coloca como base de una ventana de alarmas. Una vez configurada la ventana de alarmas, su
emplazamiento en una o varias pantallas del runtime no se realiza desde este editor, sino desde el
graphic designer.
Para poder realizar todos estos bloques y configurar las líneas y ventanas de alarmas
disponemos de un Wizard de alarmas que nos guía paso a paso en su realización. Para arrancarlo
vaya al menú: File Start Message Wizard.
En system blocks definimos. Si los bloques de sistema que deseamos son la fecha, la
hora, el número de alarma..o + la clase de alarma y el tipo de mensaje.
A continuación definimos la línea de alarmas, eligiendo entre una línea con solo los bloques
de hora, fecha y número de alarma, o todos lo s configurados anteriormente.
A continuación se definen las clases de mensajes. Los mensajes pueden agruparse por clases, de
tal manera que WinCC puede determinar un color y funcionamiento diferente ante mensaje de
diferentes clases. Aquí se puede elegir entre crear la clase error, que contiene los tipos de mensajes
alarma, fallo, warning, o además crear la clase operación, con los tipos Check-Back y tipo de
operación.
A continuación se elige el tipo de ventana que necesitamos. Existen tres tipos de ventanas
de alarmas:
Con esto finaliza el Wizard de configuración. Todos estos pasos también se pueden realizar de
manera manual.
En el menú messages disponemos de Import Messages. Esta utilidad nos permita importar
los textos de los mensajes de las alarmas desde un fichero de texto.
El formato que debe poseer el fichero de texto viene especificado en el Manual del WinCC.
Al igual que podemos importar los mensajes, también podemos desde el menú exportarlos
aun fichero de texto. Incluso podemos seleccionar cuales deseamos exportar y cuales no.
Si necesitamos realizar una acción sobre varios mensajes de alarma a la vez (borrarlos,
copiarlos, borrar sus textos), esta opción nos permite trabajar con todos ellos.
Podemos importar los mensajes pre-configurados de sistema del WinCC a nuestro editor de
alarmas, para que cuando ocurra un error en el WinCC podamos mostrar un mensaje en el runtime.
Vamos a configurar los diferentes apartados del alarm logging si utilizar ahora el asistente.
Lo primero que vamos a parametrizar será los bloques de mensajes que necesitemos. Nos
colocamos sobre Message Blocks, y con el botón derecho seleccionamos la opción del menú
Message Blocks.
Si presionamos en esta ventana Add aparecerán todos los bloques de sistema disponibles,
pudiendo añadir o retirar de nuestra configuración aquellos que deseemos. Vamos a ver la
aplicación y características de cada uno de ellos. Los bloques de sistema disponibles son:
Cuando es acusada: el tiempo que el controlador del proceso ha tardado en enterarse del
problema.
El estado de la alarma es un carácter o texto que nos identifica el estado actual de la misma
(aparece, desaparece, es acusada). Por defecto, en el WinCC la simbología es la siguiente:
• Aparece: +
• Desaparece: -
• Acusada *
• Es acusada: +/-
En cualquier caso, estos textos pueden modificarse desde el text library posteriormente par
que sean más descriptivos.
La opción With leading zeros rellena de ceros los campos definidos en number of que no
queden rellenos por número de alarma, comenzando por la izquierda.
Este bloque muestra la clase de mensaje a la que pertenece la alarma. Se pueden generar
diferentes clases de mensajes, cada uno con unas características determinadas (con
reconocimiento o sin él, etc...). Aquí podemos mostrar el texto identificativo de dicha clase (por
ejemplo: Error grave, Advertencia, Información).
Indica si el mensaje de alarma va a salir por impresora o no. Se puede seleccionar para
cada línea de alarma la posibilidad de salir por impresora. Este campo nos indica que esto va a ser
efectivo o no.
Este bloque contiene los comentarios que se han realizado sobre las alarmas. Los
comentarios pueden ser introducidos por el operario después de que se genere la alarma, y se
pueden asociar a la próxima aparición de la alarma mediante este bloque.
Este es uno de los bloques más importantes ya que es el encargado de dar la información
concreta al operador sobre la falla ocurrida.
El bloque loop in alarm indica que la alarma presente posee la funcionalidad de saltar a
una ventana si se presiona el botón loop in alarm.
El primero de los bloques de usuario. Este bloque es el más importante, ya que define el
texto que identifica a la alarma (por ejemplo: Fallo compresor 35).
Podemos definir la cantidad máxima de caracteres que tendrá nuestro mensaje de alarma.
Por defecto son 10, pero es demasiado escaso para los mensajes corrientes. Recomendamos de 25
a 30 caracteres.
Otro bloque de usuario que nos indica donde se ha producido la alarma (por ejemplo: Sector
de entrada).
Podemos definir varios valores de proceso, pero normalmente con uno basta. La asignación
del valor que debe configurarse en este campo es individual para cada una de las alarmas,
lógicamente.
Desde Message line format podemos definir los tipos de líneas de alarmas que deseemos.
• El texto que la identifica (por ejemplo: Línea para mensaje principal, línea para histórico de
alarmas, etc…).
• Los bloques que la componen y en qué orden deben encontrarse.
En la ventana de alarmas podemos definir como debe de configurarse para representar las alarmas
en pantalla.Disponemos aquí también de un pequeño Wizard.
Las opciones a configurar en general information de la ventana de alarmas son:
• Window: Nombre de la ventana identificativo. Por este nombre se llamará después desde el
Graphics Designer a la misma.
• Window Title: Título que puede aparecer arriba de la ventana.
• Font: Fuente de los textos de la ventan de alarmas.
• Window Type: Tipo de ventana de alarmas. Existen tres tipos:
• El botón de selection: Nos permite seleccionar que bloques son los que se deben
almacenar en el histórico, independientemente de los que estemos representando en
pantalla al aparecer la alarma.
Message Line: En esta ventana seleccionamos la línea que debe aparecer en esta ventana de
alarmas.
Parameters:
Status Bar:
• Display status bar: Muestra en la parte inferior de la ventana de alarmas una línea de status
que podemos configurar en la ventana Elements of the status bar.
Toolbar:
Display process message window: Muestra la ventana en la que se representan las alarmas
actuales (la ventana de alarmas propiamente dicha).
Display short term archive: Muestra la ventana en la que se representa el histórico de alarmas
de tipo short term o de tambor.
Display sequence archive: Muestra la ventana en la que se representa el histórico de alarmas
de tipo secuecial.
Horn acknowledgement: Acuse del aviso horn.
Single acknowledgement: Acuse de la alarma actualmente seleccionada.
Group acknowledgement: Acuse del grupo de alarmas al que pertenece la alarma
actualmente seleccionada.
Auto Scroll On/Off: Activa el auto-scroll en la pantalla, para poder desplazarnos por la ventana
de alarmas cuando la cantidad de alarmas es superior a las que se pueden representar en
pantalla.
Selection: Especifica un filtrado de alarmas, de tal forma que nos presenta no todas, sino un
extracto de acuerdo al criterio especificado por nosotros. Las posibilidades del filtrado son:
Number: Mostrar un determinado rango de alarmas (por ejemplo: de la alarma 1 a la alarma 1,
solo muestra el histórico de la alarma 1).
Message Classes: Muestra solo las clases de mensaje que seleccionemos (por ejemplo, crear
una clase que sea alarmas zona 1 y luego filtrar por este tipo de clase).
Text Blocks: Filtrar por un determinado bloque (por ejemplo: todas las alarmas que tengan
texto en el campo point of error).
Process Value: Filtrar por valor de proceso (por ejemplo: todas las alarmas que tengan un valor
de proceso asignado).
Reset: La opción reset en realidad es el botón Emergency Action. Este botón no permite
enviar al PLC un mensaje de sistema para realizar una acción de emergencia.
Set lock: Este botón bloquea un determinado tipo de clase de alarma o grupo definido por
el usuario, de tal manera que si se producen las alarmas que pertenecen a este grupo, no son
mostradas ni en la ventana de alarmas, ni archivadas en el histórico de alarmas. Esta opción es útil
cuando se conoce una alarma que puede producirse, pero que no es actualmente importante para
el proceso, y va a estar apareciendo de manera repetitiva hasta que podamos solucionar el fallo.
Otra posibilidad es bloquear alarmas de manera individual y no por grupo (por ejemplo: un
nivel de depósito se ha roto y da siempre fallo de desbordamiento). Para ello, deberemos de
generar un grupo, User defined, y añadir las alarmas que deseemos que forman parte de dicho
grupo. Posteriormente lo bloquearemos.
Todos los botones de la barra de herramientas poseen una serie de opciones a las que se
accede seleccionando el texto del botón y posteriormente el botón que hay sobre la ventana,
denominado properties.
La última característica que nos queda por ver de la ventana de alarmas es que podemos
visualizar como va a quedar nuestra ventana si pulsamos sobre el icono de la ventana que aparece
en la ventana principal del alarm logging. La primera de las opciones es Window Preview.
6.8.1 Introducción
Una clase de mensaje es una agrupación de alarmas que poseen una determinada
característica. Generalmente se utiliza para disponer de un grupo de alarmas que necesitar ser
acusadas porque son muy graves, y otro grupo de avisos, que no requieren acuse y son solo de
información.
Un tipo de mensajes es un subgrupo de una clase que comparten todas las características,
salvo el color de representación a la hora de aparecer y ser acusadas. Los tipos de mensajes se
gastan para, dentro de una clase de aviso, por ejemplo: poder determinar mediante un código de
colores de que parte de la máquina proviene el aviso, o a que parte del proceso pertenece (creación
de pieza, soldadura, acabado de pieza...).
6.8.2 Clases
• Error
• Sistema, con requerimiento de reconocimiento.
• Sistema, sin requerimiento de reconocimiento.
• Alarma
• Fallo
• Aviso
• Acknowledgement came in: que deba ser acusada una vez aparezca la alarma
perteneciente a dicha clase.
• Acknowledgement Went out: que debe ser acusada la alarma una vez que desaparezca.
• Flashing On: Que parpadeen las alarmas de esta clase cuando estén activas.
• Only Initial Value: Que parpadee solo el primer valor de esta clase que se encuentre
activo.
• Message without status Went Out: Anula el acuse de alarmas al desaparecer.
• Central signal device:
Status text: Podemos definir los caracteres que aparecen el bloque status display a la hora de
mostrar los mensajes al aparecer, al desaparecer y al se acusados.
A su vez, todos los que se definan dentro de una clase de alarmas pueden tener diferentes
colores con respecto a los otros tipos, tanto para:
Dentro de cada tipo perteneciente a una clase podemos definir la cantidad de líneas de
alarma que queremos crear para este tipo. Posteriormente deberemos de rellenar los textos que
lleven asociados.
6.9.1 Introducción
Las alarmas analógicas nos permiten general alarmas a partir de una comparación que se
realiza en el WinCC entre un valor de proceso y un límite generado por nosotros. Esto descarga al
PLC de realizar este tipo de cálculos, pero solo si dicha alarma no tiene ninguna repercusión
posterior sobre el proceso, como tener que arrancar un motor, o hacer sonar una sirena.
Si nos situamos sobre analog alarm, con el botón derecho podemos seleccionar New.
Los datos a rellenar para generar una nueva alarma analógica son:
• La variable a monitorear.
• Podemos elegir seleccionar un único mensaje de alarma para todos los límites que
definamos en una alarma analógica, en cuyo caso debemos indicarle el número de alarma
deseado. Si no elegimos esta opción cada límite posterior que generemos generará un
mensaje de alarma diferente. Por ejemplo, si estamos controlando el nivel de un pozo, nos
interesa dejar desactivada esta casilla, ya que deseamos tener un límite de pozo vacío y
otro de pozo lleno. Sin embargo si vamos a monitorear la temperatura de un motor, puede
ser interesante seleccionar esta opción, ya que solo tendremos un límite de motor
sobrecalentado, no generamos alarma por motor frío.
• Delay time: Tiempo que debe de estar superado el límite que definamos para que haga
saltar la alarma. Esta opción es interesante en valores analógicos que suelen tener una
cierta oscilación permanente, y no nos interesa que dispare hasta que efectivamente no
haya llegado a sobrepasar el límite establecido (los temas de aguas suelen generar este
rizado sobre un valor continuo, al producir pequeñas olas que falsean la señal de nivel).
Una vez generada la variable analógica, podemos comenzar a crear límites asociados a la
misma. Colocándonos sobre ella y con el botón derecho, seleccionamos new.
• Tipo de límite:
Upper limit: hace saltar la alarma si el valor de proceso es superior al valor de
límite definido.
Lower limit: hace saltar la alarma si el valor de proceso es inferior al valor de límite
definido.
• Limit value or tag: podemos crear un límite estático (introduciendo un valor) o un límite
dinámico (introduciendo el nombre de una variable). Si el límite lo hacemos dinámico,
posteriormente podremos cambiando al modificar el valor de la variable.
• Indirect: Esta casilla indica que el valor que pasamos en tag es una variable de tipo texto
que contienen el nombre de la variable que deseamos que sea el límite software.
• Deadband: La banda muerta es un rango de valores en los cuales no se genera alarma bajo
unas ciertas circunstancias. Supongamos que estamos controlando el nivel de un pozo para
que no rebose. Deseamos que salte una alarma cuando el valor del nivel sea superior a
100. Cuando el nivel del pozo es 101, y transcurrido el tiempo definido en delay time, salta
Si deseamos archivar en el disco duro las alarmas que se vayan generando, tenemos que
seleccionar en archivos cuando deseemos guardarlas. Las opciones posibles son:
• Guardar las alarmas en un archivo rotatorio o de tambor (short term archive) y/o
• Guardarlas en un archivo secuencial (sequence archive).
Desde la propia ventana de alarmas tenemos la opción de enviar reporte a impresora para disponer
en papel tanto del histórico de alarmas, como de las últimas alarmas que existen e la instalación.
Para poder imprimir desde la barra de herramientas de la ventana de alarmas, necesitamos activar
en reportes la impresión en:
Desde el icono de archive report podemos acceder a una ventana de selección en la que
podemos definir los bloques que queremos que aparezcan en nuestro report a impresora. Si no
indicamos nada, realizará el reporte predefinido en el apartado reports para archive reports.
En la parte inferior del alarm logging podemos definir las alarmas que deseamos que
existan en nuestro proyecto.
• Number: número de alarma, de solo lectura, que identifica la alarma dentro del array de
alarmas.
• Class: Clase a la que pertenece la alarma. De esta clase se derivan una serie de
propiedades ya descritas anteriormente.
• Type: Tipo de la clase a la que pertenece la alarma. De esta propiedad le derivará su color
de fondo y texto.
• Group: Grupo al que pertenece la alarma. Al agrupar las alarmas en grupos podemos
posteriormente realizar acuses de grupos (acusar varias alarmas a la vez), filtrados (ver solo
las alarms de un grupo) o reportes a impresora (imprimir solo las alarmas de un
determinado grupo).
Trigger horn: Dispara la variable asignada en trigger horn. Recordemos que mediante la
activación de trigger horn, se nos activa un bit de una variable que deseemos una vez que
se dispara alguna alarma. El bit continúa activo independientemente de que nosotros
acusemos las alarmas, hasta que se pulsa el botón horn de la barra de herramientas de la
ventana de alarmas. Estos nos puede servir para poner en marcha un indicador luminoso
que permanecerá activo hasta que lo apaguemos con dicho botón.
• PLC No: Indica el número de PLC del cual se estará tomando el estado de la alarma.
• CPU Number: Indica el número de CPU con el cual se esta estableciendo la comunicación.
• Event tag: Variable y bit de la variable donde se guarda automáticamente si la alarma ha
sido ya acusada o no.
• Acknowledge tag: variable y bit de la variable donde se guarda automáticamente si la
alarma ha sido ya acusada o no.
• Status bit: Variable y bit de la variable en el que se encuentra el valor actual de la señal de
proceso (si aún existe la alarma o no).
• Format DLL.
Los demás bloques se activan si han sido seleccionados a la hora de configurar la línea de
alarmas.
En la ventana tag/action podemos definir:
Una vez que hayamos terminado de definir nuestras alarmas, guardamos nuestra
configuración y nos salimos del alarm logging. Nos resta definir en que ventana o ventanas
queremos colocar nuestras ventanas de alarmas.
Por último, sólo nos queda recordar activar el runtime de alarmas desde computer del
WinCC Explorer. El arranque de una parte de runtime del WinCC solo es efectivo si se para la
runtime y se vuelve a arrancar, por lo que si ya estuviera activado el runtime del WinCCC, en este
punto sería necesario pararlo y rearrancarlo.
7 TAG LOGGING.
7.1 INTRODUCCIÓN
El tag logging es la parte de WinCC que se encarga del almacenamiento de los valores de
proceso en el disco duro, así como de mostrarlos tanto en formato de gráfica como de tabla de
valores. Así mismo, permite editar dichos valores a posteriori de la base de datos.
• T: Fecha y hora de la adquisición del valor. Este campo es de texto y no separa la fecha de
la hora, por lo que su tratamiento es relativamente difícil, requiriendo de una macro que nos
descomponga los campos en celdas separadas si deseamos posteriormente realizar
consultas por fechas o intervalos de tiempo.
• V: Valor del proceso. Este es el valor del proceso que se almacena en el archivo.
• F: Código de error de lectura del valor del proceso. Si el valor es correcto, este campo
estará en cero.
La descomposición del campo de fecha, para separar fecha y hora se deberá realizar a
mano, ya que no se almacena cada valor en un campo de la base de datos. Sin embargo, es posible
su tratamiento debido a que siempre se encuentran los datos de fecha, hora, etc., en las mismas
posiciones de la cadena de texto. Nota: Hay que observar que la notación de la fecha es estilo
americano (año, mes, día) no europeo.
Los predefinidos aparecen en la figura, pero si deseamos uno nuevo, solo necesitamos
rellenar la pantalla de nuevo timer, o modificar uno existente.
En la imagen se puede ver un nuevo temporizador que actuará cada 1 segundo. Las
opciones son:
• Que se dispare el temporizador solo al entrar WinCC, pese a que no le corresponda aún.
• Que se dispare el temporizador al salir del WinCC, pese a que aún no le corresponda.
• Poder seleccionar la fecha exacta de comienzo del ciclo de disparo. A partir de ese minuto
y ese segundo, comenzará cada 1 segundo a dispararse.
La primera ventana que aparece es la que se muestra en la figura, en donde nos advierte
que un archivo será creado y se deberán especificar las características del mismo.
También se nos permite elegir entre los tres tipos de archivos posibles. Los archivos de
WinCC pueden ser:
• Archivos de proceso: archivo que almacena los valores de una o varias variables en el
disco duro.
• Compressed Archives: archivos de valores comprimidos. Se realiza una compresión de
los datos antes de almacenarlos, y una descompresión a la hora de sacarlos de nuevo de la
base de datos. Este tipo de archivos es ideal para el almacenamiento de grandes
cantidades de datos que no requieran un almacenamiento inferior al minuto.
• User Archives: Archivos de usuario.
En el paso 2 del Wizard podemos seleccionar aquellas variables que van a ser
almacenadas en el archivo. Con el botón select podemos ir añadiéndolas a la lista. Estas variables
sólo comparten el lugar de almacenamiento, pero no necesariamente el tiempo de lectura ni el de
almacenamiento, como posteriormente veremos.
En esta ventana al presionar el botón Select, se abre la pantalla del Tag Management en
donde seleccionaremos las tags que conformaran este archivo.
Si presionamos con el botón derecho sobre el nuevo archivo de valores que se nos ha generado en
el Tag Logging podemos editar sus propiedades.
Nota: Hay que tener en cuenta que si no se ha creado por lo menos un usuario en user
administrator, lógicamente no aparecerá la ventana de niveles de usuario al presionar el botón
select. Para poder seleccionar los niveles de lectura, o escritura en archivos de proceso,
primeramente deberá ir al capítulo dedicado a user administrator y generar por lo menos un usuario
nuevo, asignándole unos niveles que sean de leer archivos y otro de escribir en archivos. Al volver a
esta pantalla, ya podrá seleccionar el nivel deseado en la misma.
• Action when archive started/enabled: podemos definir una acción en C que se ejecutará
cada vez que se habilite la lectura y almacenamiento en el archivo.
Las variables que hemos definido en nuestro archivo, aparecen en la ventana inferior en
forma de tabla. Si presionamos el botón derecho sobre cada una de ellas podemos editar sus
propiedades particulares.
• Name of the archive tag: podemos dar un nombre distinto a la variable almacenada que el
respectivo de la variable de proceso.
• Name ot the process tag: valor de proceso que se está almacenando en dicha variable de
archivo. Desde esta ventana también podemos cambiar de variable de proceso a almacenar
posteriormente.
• Comments: Un comentario individualizado para cada variable de archivo.
• Supplying tags: Se puede seleccionar la adquisición de datos desde el administrador de
variables hasta el archivo de manera:
Manual: Los valores requieren de una orden para ser transferidos desde el
administrador hasta el archivo.
Cyclic Selective: Igual que el ciclo continuo con la diferencia de que además se
puede gobernar cuando debe durante el tiempo de habilitación de almacenamiento
mediante una función que determina el comienzo de la lectura y la finalización de la
misma.
Variables Acyclic: Valores que solo deseamos guardar en el disco duro cuando un bit se
active en el PLC (por ejemplo: guardar los valores de presión cuando una pieza pase por el horno).
El problema con este tipo de variables es que almacenan dicho valor cuando aparece el bit
y cuando desaparece (por flanco positivo y por flanco negativo), por lo que nos duplica el valor
deseado, con el agravante de que el valor al aparecer el bit no necesariamente deber ser igual al
que almacena cuando desaparece el bit. La solución esta en almacenar la media de los valores
leídos durante el tiempo que el bit está activo. En cualquier caso, no solventa este tipo de variable
de archivo el problema, ya que el duplicar las variables hace prácticamente ingobernable el posterior
estudio del archivo en el disco duro.
Variables Cyclic Selective: Valores que deseamos guardar en el WinCC solo durante
determinados periodos de tiempo (por ejemplo cada vez que pase un ladrillo por el horno, y
mientras esté dentro, almacenar los valores de presión en el WinCC).
• Also put archived value in tag: determina que variables deben también almacenarse en
esta variable de archive además de la que se indicó al principio.
• Archive upon change: Esta opción permite almacenar el valor exclusivamente al cambiar
dicho valor en el proceso. Es muy interesante, ya que permite substituir las carencias del
tag logging en la adquisición de datos realizando programación en el PLC. Por ejemplo:
ante el fallo del acyclic, que nos archiva valores en el flanco de subida y el de bajada,
podemos programar en el PLC una subrutina que cada vez que un bit esté activo, nos
transfiera un valor del PLC a otra variable de comunicaciones. Si el valor es el mismo que
poseía se le aumenta o disminuye en una cantidad insignificante para su posterior análisis
desde WinCC. Así, solo adquiere el valor el WinCC cuando se modifica, que en realidad es
cuando existe un bit en el PLC.
• Hystéresis: % que debe de variar la variable de proceso con respecto al último valor
almacenado para que se vuelva a considerar su almacenamiento como necesario. Esta
opción es interesante en valores que esta variando ligeramente en el PLC, pero solo nos
interesa almacenarlos cuando su variación sea significativa, ya que en caso contrario se
convertiría en un almacenamiento continuo de la variable.
Para que una de estas funciones realicen la acción deseada, deben devolver un 1. Así, si
deseamos arrancar el almacenamiento de valores en la gráfica con un bit, lo que haremos será
consultarlo dentro de una función. Supongamos que deseamos arrancar la gráfica cuando un bit de
proceso esté a uno y pararlo con ese mismo bit cuando esté a cero.
Tenemos que generar dos funciones, una para el arranque y otra para la parada.
Seleccionamos como tipo Cycle-Selective. El código de las funciones se encuentra abajo indicado.
Int Arrancar_Grafica()
{
if (GetTagBit(“NewTag”)==TRUE)
{
return(1);
}
else
{
return(0);
}
}
Int Parar_Grafica()
{
if(GetTagBit(“NewTag”)==FALSE)
{
return(1);
}
else
{
return(0);
}
}
Todas estas propiedades que hemos definido para cada variable de archivo podemos
preconfigurarlas, para que cada vez que definamos una nueva variable no tengamos que
asignárselas de nuevo.
• Process Archive.
• User Archive.
• Compressed Archive.
• Analog Tag: Preconfiguración de una variable analógica (mayor que un bit).
• Binary Tag: Preconfiguración de una variable digital (0 o 1). Con respecto a las variables
digitales destacar que se puede seleccionar que se almacenen siempre, frente a un flanco
positivo o uno negativo. Lógicamente aquí sólo existe el ciclo de almacenamiento, ya que
nos e pueden hacer medias de valores, ni sumas. Podemos a su vez asignar un texto a el
estado 0 y otro al 1 (por ejemplo 0 = parado y 1 = arrancado) para una mayor claridad en la
gráfica.
• Compressed tag: Preconfiguración para los valores comprimidos dentro de archivos
comprimidos. Las características de los mismos difieren ligeramente de los archivos
normales.
7.6.1 Introducción
Las tendencias de valores son utilizadas para mostrar la evolución de una variable de
proceso en el tiempo de manera gráfica. La limitación más importante es que el eje X siempre
obligatoriamente debe ser de tiempo, por lo que no podemos utilizar las curvas o tendencias (trenes)
para realizar una gráfica en la que comparemos la presión con respecto a la humedad, por ejemplo.
Dentro de una ventana de tendencias podemos tener una o más curvas, cada una con un
color identificativo y que asociaremos a variables de archivo que formarán parte de un archivo
generado anteriormente, como ya vimos.
• Name of the trend: Nombre descriptivo de la curva (por ejemplo presión zona 1).
• Visible: Muestra o no la curva o tendencia definida.
• Color: Podemos definir el color de la tendencia para poder identificarla con respecto a las
demás curvas.
Con respecto a la solapa tag, aquí se puede definir la variable de proceso con la cual
estamos conectados o almacenando dicho valor. Observar que en tiempo de ejecución podemos
desde esta ventana modificar dicha variable, con lo cual es posible realizar la operación de cambiar
la señal de proceso a representar sin modificar el desarrollo de visualización, siempre y cuando se
haya tenido la precaución de almacenar el valor de reserva de proceso en un archivo de valores.
Display Window Title: Se selecciona el check box si se desea mostrar la barra de titulo en
la ventana de tendencies y en el campo en color blanco se introduce el título de la ventana de
tendencia que se desea mostrar.
Ruler visible while opening the picture: La opción regla visible al abrir la ventana nos
presenta en pantalla automáticamente una ventana auxiliar en la que se van visualizando los
valores instantáneos de las tendencias sobre las que se encuentra la regla que aparece en la
ventana de curvas. Esta regla la podemos desplazar para observar los valores de las curvas en un
determinado instante de tiempo.
Background Color: Al hacer click sobre el botón Color aparece la ventana de colores en la
cual se podrá seleccionar el color de fondo de la ventana de tendencias.
Display Status Bar: Se selecciona el check box si se desea mostrar la barra de estado en
la ventana de tendencias.
Display Tool Bar: Se selecciona el check box si se desea mostrar la barra de herramientas
en la ventana de tendencias.
Writer orientation: Se especifica desde donde se desea que se inicie la gráfica, desde la
derecha, izquierda, etc.
Display trends staggered: Muestra las tendencias en gráficas separadas. Esta opción es
interesante en ciertas situaciones en las que los valores de dos o más tendencias van parejo en el
tiempo, por lo que se está solapando y deseamos observarlos o plasmarlos de manera individual.
Common X axis: Si en la primera de las tendencias se selecciona esta casilla, todos los
ejes X de las tendencias serán comunes. Es decir todos los valores representados en un punto del
eje X fueron o están siendo generados en el mismo instante de tiempo. Si no se selecciona, cada
tendencia muestra su propio eje de tiempos, por lo que no se tiene que producir necesariamente
una correspondencia temporal entre dos curvas mostradas en la pantalla a una misma altura del eje
X.
Common Y axis: Ejecuta la misma acción que antes, pero para el eje Y. Esto es
interesante cuando los valores del proceso a mostrar no presentan una correspondencia en
unidades (una es presión y otra es temperatura), pero si en temporalidad (las dos variables es
interesante mostrarlas a la vez en la misma pantalla para compararlas en el tiempo).
Can be closed: Se selecciona esta opción si se desea que en modo runtime la ventana de
tendencias pueda ser cerrada.
Persistence in RT: Si se selecciona esta opción los cambios solo permancerán en modo
runtime, y si el proyecto llega a desactivarse los cambios no permanecerán.
En la solapa X Axis podemos definir todas las propiedades que tiene que ver con dicho eje.
Para que estas propiedades sean modificables deberemos encontrarnos en la primera de las
tendencias de nuestra ventana, si hubiera más de una.
500ms
1 segundo
1 minuto
1 hora
1 día.
• Label: Etiqueta de texto que identifica a este eje (por ejemplo presiones en mbar).
• Trend: Muestra el nombre de la tendencia que se desea configurar.
• Display:
Coarse Scaling: Muestra una línea de división en el eje y cada x valores del eje. El
valor de x se puede introducir por el campo que aparece a la derecha de dicha
opción.
Fine Scaling: Muestra una línea de subdivisión al igual que la línea coarse, pero
con la diferencia de que esta es más estrecha, y no presenta número de escala.
Grid lines: Muestra unas líneas de referencia en pantalla que parten de las líneas
de división coarse. Estas líneas sirven como rejilla de referencia.
Decimal Places: Cantidad de decimales que deben poseer los números de la
escala Y. El valor 0 indica sin decimales.
• Range Selection: Selección del rango del eje Y a mostrar en pantalla. Existen dos
posibilidades: Automático o especificado por el usuario.
Automatic: Muestra un escalado cuyo fondo de escala está en función del valor máximo a
representar. Esta opción es interesante cuando los valores de proceso varía de un valor
muy bajo a uno muy alto, ya que si dejamos la escala en fondo de escala, cuando estemos
intentando representas solo los valores de bajo rango nos aparecerá una línea superpuesta
al eje X, como si estuvieran todos a cero. Si no se desea que el rango de la gráfica sea
automático no se selecciona el check box de Automático y se introducen los límites
manualmente.
Propiedades de color y límites: en esta ventana podemos definir el color que debe
adoptar la tendencia cuando baje o sobrepase unos límites que nosotros estipulamos.
• Límite inferior: Cuando el valor de la tendencia baje de 30, el color de lamisca cambiará a
rojo.
• Límite superior: Cuando el valor de la curva sobrepase 900 cambiará a amarillo.
• Overlamp: Cambio de color de la curva cuando se produce un solapamiento de tiempos (se
vuelve a repetir el mismo tiempo en el Sistema que ya hubo.
• Jump: Salto el tiempo del sistema. Se ha realizado un salto temporal, adelantando el
tiempo del sistema.
• Remplacement Values: Cuando uno de los límites que se ha marcado como máximo o
mínimo para la adquisición de datos por parte del archivo se activa, los valores substitutivos,
que no provienen del proceso propiamente quedan marcados con otro color.
En la ventana choose object podemos añadir y restar las curvas que van a componer
nuestra ventana de tendencias. Con el botón “+” se agrega una curva nueva, con el botón “-“ se
borra una curva de la lista, con el botón “Up”, se desplaza hacia arriba en la lista la curva
seleccionada, y con el botón “Down” se desplaza hacia abajo la curva que actualmente este
seleccionada.
7.7.1 Introducción
Las tablas de valores permiten representar los datos de los archivos en forma de tablas,
para poder comparar los valores numéricos, además de poder editar dichos valores directamente
desde las mismas, lo que posibilita la modificación de los datos de proceso con posterioridad al
desarrollo de los mismos.
Desde table window template del Tag Logging podemos crear una tabla de valores. Dicha
tabla podrá contener una o más columnas, cada una de ellas asociada a un valor de un archivo que
hayamos previamente generado.
Display Window Title: Se selecciona el check box si se desea mostrar la barra de titulo en
la ventana de tendencies y en el campo en color blanco se introduce el título de la tabla de valores
que se desea mostrar.
Background Color: Al hacer click sobre el botón Color aparece la ventana de colores en la
cual se podrá seleccionar el color de fondo de la tabla de valores.
Display Status Bar: Se selecciona el check box si se desea mostrar la barra de estado en
la tabla de valores.
Display Tool Bar: Se selecciona el check box si se desea mostrar la barra de herramientas
en la tabla de valores.
Sizeable: Se selecciona esta opción si se desea que en modo runtime la tabla de valores
permita modificar su tamaño.
Can be closed: Se selecciona esta opción si se desea que en modo runtime la tabla de
valores pueda ser cerrada.
Persistence in RT: Si se selecciona esta opción los cambios solo permancerán en modo
runtime, y si el proyecto llega a desactivarse los cambios no permanecerán.
8 TEXT LIBRARY.
8.1 INTRODUCCIÓN
Text Library es la parte de WinCC que se encarga de gestionar los mensajes de textos.
Cuando necesitamos realizar una aplicación que deba cambiar sustentos según el idioma
seleccionado. Necesariamente deberemos realizar una asignación de dichos textos en un idioma u
otro.
8.2 IDIOMAS
Lo primero que necesitamos en el Text Library es generar un nuevo idioma, ya que por
defecto solo nos genera la columna en inglés. Evidentemente, el hecho de que el idioma sea el
Inglés no implica que podemos poner los textos en castellano, y no tener que cambiar de página de
idioma.
Sin embargo, si deseamos disponer de dos idiomas, lo correcto sería generar nuestros
mensajes en el idioma correspondiente (español o los diferentes dialectos, si así correspondiera en
la provincia)
Vamos a generar dos nuevos idiomas, Español y Catalán. Para ello, en el menú
Options Add language podemos añadir los idiomas que soporta el WinCC.
Nos parecen dos nuevas columnas, cada una con el idioma correspondiente. Ahora, debemos
de rellenar todos los mensajes que aparecen en la columna inglés, traduciéndolos nosotros mismos
al idioma correspondiente.
• Inglés: SetLanguage(0x0409);
• Español: SetLanguage(0x040A);
• Catalán: SetLanguage(0x0403);
9 USER ADMINISTRATOR.
9.1 INTRODUCCIÓN
La principal diferencia que hay que observar en la filosofía de usuarios del WinCC con
respecto al típico control de privilegios por niveles es que en el WinCC el disponer de privilegio o
nivel para realizar algo que los demás no estén autorizados no implica que se permita acceder a
todo lo que los demás usuarios son capaces de realizar.
En los sistemas de privilegios por nivel, si un usuario dispone de nivel 3, podrá realizar todo
lo que pueden realizar los de nivel 2, más aquello que se permite solo a los de nivel 3. Cuando se
bloquea una acción para nivel de password 3, significa que todos los que dispongan de nivel igual o
superior a 3 podrán realizarla. En winCC esto no es así, definiéndose en lugar de niveles,
capacidades de realizar cosas (cambiar valores en archivos, entrar a determinada pantallas,
resetear alarmas, etc...).
Dichas capacidades pueden ser o no compartidas por usuarios. Estos usuarios se pueden
agrupar en grupos, sólo para una más fácil identificación, ya que no es imprescindible que compartir
las mismas capacidades dos usuarios de un mismo grupo.
Vamos a crear un grupo de usuarios que se llame operadores. Para ello, presionando sobre
el grupo de administración el botón derecho, seleccionaremos add group. Introducimos el nombre
del grupo y presionando de nuevo sobre el grupo creado, le añadimos dos usuarios.
• Login: Nombre identificativo del usuario en cuestión (sólo puede ser una palabra, por
ejemplo: Juan_Perez).
• Password: Cadena de texto de un mínimo de 6 caracteres, que puede incluir espacios y
números y letras indistintamente.
• Verify password: La misma cadena del password debemos de repetirla para confirmar que
no hemos introducido ninguna letra por equivocación.
• Copy group settings also: Se puede preestablecer una configuración para todos los
nuevos usuarios que se generen dentro de un grupo. Con esta casilla se activa el hecho de
que un nuevo usuario copia las características predefiidas de su grupo.
Las capacidades que dispone un usuario aparecen con un piloto rojo indicativo
seleccionadas.
Para añadir una capacidad a un usuario, simplemente hay que hacer doble click en el lugar
donde debe aparecer el piloto rojo de la capacidad.
Para deshacer dicha operació es necesario realizar de nuevo doble click en el mismo lugar.
Lógicamente, lo primero que debemos realizar, será estudiar los diferentes bloqueos o límites que
requerimos en nuestro desarrollo para posteriormente asignárselos a los usuarios creados.
Un bloqueo es una acción cuya capacidad de realización diferencia a unos usuarios de otros.
Normalmente se suele bloquear el acceso a determinadas pantallas, la impresión de determinadas
gráficas, la activación de determinados elementos de campo (por ejemplo pasarlos a manual y que
no realicen su actividad en automático) y sobretodo la modificación de los valores de proceso, ya
sea en producción (bloqueo de cajas), o posteriormente (modificación de archivos de proceso).
Para crear un nuevo bloqueo o límite que permita definir una capacidad a un usuario, debemos
seleccionar en el menú Table Add New Authorization Level.
Nos indica un número de nivel de autorización, que debemos aceptar como bueno, ya queno
podemos duplicar dicho número indicado. Esta acción nos lleva a disponer de una línea nueva con
el número de orden indicado, pero que no dispone de ningún texto descriptivo, por lo que será de
difícil asignación dicho nivel si posteriormente olvidamos a que correspondía este bloqueo.
Para añadir un texto descriptivo debemos realizar doble click en la casilla del texto, e introducir un
comentario que nos resulte intuitivo para el bloqueo que realiza dicho nivel. La asignación del
privilegio del bloqueo a los usuarios se realiza como vimos anteriormente.
Los niveles de autorización son comunes para todos los usuarios y grupos, por lo que el
borrar un nivel en un grupo lo borra de los demás.
Para cambiar el login o nombre idetificativo solo es necesario realizar un solo click sobre dicho
nombre y se podrá cambiar, sin necesidad de ningún tipo de clave, por lo que un super usuario
puede modificarlo a su entera voluntad sin ninguna autorización por parte de los mismos usuarios.
Una vez se ha activado un usuario, el sistema dispone de los privilegios derivados del nivel de dicho
usuario. Hasta que dicho usuario no se da de baja en el sistma, los privilegiso continúan activos, por
lo que un usuario deja el sistema activado con su login, un par de horas después puede utilizar el
sistema WinCC cualquier usuario sin necesidad de darse de alta en el mismo y utilizando todos los
accesos habilitados en función del nivel del anterior usuario aún en activo.
Como el olvido de dejar activado el password es muy frecuente con el tiempo, resulta
inservible un sistema de paswords que siempre se encuentra habilitado. Para evitar este punto todo
usuario dispone de una casilla de desonexión automática en base de minutos.
Las acciones a realizar que requieren un password determinado siempre van asociadas a
un objeto. Todos los objetos disponen de una propiedad en miscelaneous que se llama User Level.
Si realizamos doble click sobre ella, nos aparece una ventana en la que se muestran los diferentes
niveles generados anteriormente con el User Administrator. Podemos seleccionar uno, en cuyo caso
todos los usuarios que deseen realizar las acciones asociadas a dicho objeto, deberá disponer
previamente del nivel requerido.
10 GLOBAL SCRIPT.
10.1 INTRODUCCIÓN
El global script es un compilador de C incorporado con el WinCC, que nos permite realizar
compilaciones de código objeto (con un formato un tanto especial, ya que no lo deja en obj) sin
necesidad de sair del propio entorno.
Este código generado puede ser añadido directamente al propio runtime y generarse cada
cierto timepo, o posteriormente asocicarse a un evento de un objeto. Si desde el editor del Graphic
Designer seleccionamos realizar una acción en C, automáticamente se nos activa el global script
para permitirnos editar dicha acción en el compilador de C.
Dentro del compilador de Global Scripts podemos observar que existen cuatro tipos de eclases o
categorías de funciones:
• Project Functions: Funciones de proyecto. Son aquéllas funciones que deben ser llamadas
desde otras partes del programa para devolver valores después de realizar alguna
operación en C. Anteriormente vimos como arrancábamos una gráfica y la parábamos con
dos funciones de proyecto. Las funcines de proyecto quedan alamacenadas
automáticamente en el subdirectorio Library de nuestro proyecto, con la extensió fct. Para
traerse una función de proyecto de un proyecto a otro deberemos de copiar dicho archivo en
dicho subdirectorio del proyecto fuente al destino.
• Standard Functions: Son las funciones Standard del propio WinCC, que no residen en
nuestro proyecto, sino en el subdirectorio aplib de WinCC. Estas funciones estándar se
pueden modificar, pero dicha modificación es permanente hasta que no se reinstale el
WinCC, ya que como se dijo los archivos fct de Standard functions son comunes para todos
nuestros proyectos. Si deseamos generar subrutinas que sean utilizadas por todos los
proyectos en que trabajemos, solo tenemos que copiarlas en el subdirectorio aplib. Cuando
volvamos al global script no nos aparece en el árbol la función hasta que no seleccionamos
en el menú Options Regenerate Header.
• Internal Functions: Funciones que realizan acciones predeterminadas, como son
proporcinar un valor de una variable, o asignar un valor a una variable. Estas funciones son
por supuesto comunes, y no pueden ser modificadas.
• Actions: Una acción es una subrutina que no se ejecuta cuando es llamada por un evento,
sino cuando un trigger o disparo, ya sera por tiempo o por cambio de variable ocurra. Las
actions no se pueden cambiar de nombre (siempre se llaman gscaction), y generan un
fichero de extensión pas que se guarda en el subdirectorio pas, ya sea del ordenador en
cuestión (monopuesto) o de manera global para todos los ordenadores (multipuesto). El
fichero pas por defecto se llama gsccs1.pas, pero se puede renombrar posteriormente.
Vamos a realizar una función de proyecto, que mediante código C nos suma dos valores
enteros y nos devuelve el resultado. El código es el siguiente:
{
int Temporal;
Temporal=Valor_1+Valor_2;
Return(Temporal);
}
#include “apdefap.h”
int Temporal;
int temp1,temp2;
Para utilizar una función generada en otro proyecto, sólo tendremos que copiar el fichero fct
en el subdirectorio indicado, y posteriormente desde el global script seleccionar en el menú
Options Regenerate Header, que nos actualiza el árbol de funciones de la ventana del global
script.
Resumiendo, las funciones de proyecto son las típicas subrutinas de cualquier lenguaje de
programación, dentro de las cuales podemos programar en C y utilizar las funciones incorporadas
en el propio WinCC. Este código se almacena en un fichero de texto de extensión fct y puede ser
llamada la función desde un evento de un objeto, o desde una acción.
La estructura del árbol que cualga de Standard function se basa en los ubdirectorios que
cuelgan del directorio aplib, pudiendo nosotros modificarlo a nuestro gusto, e incluir Project functions
que sean accesibles a todos los proyectos.
Es decir, por un lado podemos acceder al código de las funciones por defecto o Standard
simplemente realizando ckick sobre ellas, modificándolas o borrándolas si no nos interesan (la
modificación será para todos los proyectos, ya que son funciones comunes a los mismos).
Por otro lado, podemos incluir en un directorio nuestro archivo fct y será accesible a todos
los proyectos a partir de ese momento. Se debe recordar que para que se actualice el árbol del
global scripts hay que realizar la acción compile header.
Resumiendo, una función Standard es como una función de proyecto, con la diferencia de
que es accesible a todos los proyectos, ya que existe en un subdirectorio fuera del proyecto actual.
Las funciones internas son las básicas con las que se puede trabajar a la hora de realizar funciones
o acciones en C. Son propiamente las instrucciones de programación de que dispone el WinCC
para poder realizar las subrutinas por código.
Además, no pueden ser editadas las funciones internas, y por lo tanto no se pueden modificar por
parte del usuario.
10.2.4 Actions
Las actions son funciones que son llamadas o disparadas generalmente de manera independiente a
los objetos de las pictures. Se utlizan para realizar acciones frente a cambios de variables (cuando
cambie la variable x o la y, realizar su suma), y para ser llamadas cuando acontecen ciertos eventos
(cuando finalice la gráfica, cuando el valor ha sido superado, etc…).
Existen dos tipos de acciones, ls comunes a todos los ordenadores de nuestro proyecto, que se
agrupan bajo el epígrafe de Global Actions, y las que pertenecen exclusivamente a nuestro
ordenador, que se agrupan bajo el nombre dado a nuestra estación.
Una acción se almacena siempre en un fichero de extensión pas, que suele guardarse en el
subdirectorio pas de nuestro proyecto. Si la generamos como acción local (de nuestra estación), se
almacenará en el pas que cuelgadel subdirectorio generado con el nombre de nuestra estación. Si
por el contrario la generamos global, se almacena en el subdirectorio pas de nuestro proyecto.
• Ni definir el valor de retorno (siempre será un int). Por lo tanto deberemos terminar con un
return que indique si ha finalizado adecuadamente la acción.
• Ni cambiarle el nombre, que por defecto es gscAction.
• Ni pasarle parámetros de entrada, ya que siempre es de tipo void. Por lo tanto, el nombre
por el que luego la identificaremos no será el de la acción (que es gcsAction), sino el del
archivo en el que la almacenamos, que finaliza en extensión pas.
En la solapa trigger definimos el disparo de la acción, disponiendo de tres tipos posibles de disparo
(que no son exclusivamente los unos de los otros).
• Acíclico: El disparo de la acción se realiza sólo una vez un dia y a una hora determinada.
Pulsando sobre Add podemos definir la fecha y hora, así como el nombre del disparo.
En event podemos seleccionar po r ciclo estándar, con lo cual podemos asignar la llamada
a un ciclo de usuario personalizado, o por hora, día, semana, mes o año. En este segundo caso,
nos permite indicar a partir de que fecha y hora debe empezar a realizar dicha acción.
• Tag: Podemos disparar una acción cuando alguna o varias variables cambien de valor.
Si deseamos utilizar funciones ya realizadas por nosotros en alguna de nuestras subrutinas desde
WinCC, deberemos primeramente compilarlas en formato DLL desde nuestro compilador original
(Visual C, Visual Basic, Delphi).
Una vez que dispongamos de dichas funciones a utilizar dentro de una DLL de 32 bits compilada,
deberemos de declarar las funciones en nuestro código C de WinCC para poderlas utilizar.
#pragma code(“NOMBRE_DE_LA_DLL.DLL”)
#include “NOMBRE_DE_LA_CABECERA.h”
#pragma code()
Esta declaración indica al precompilador de C que añada a su biblioteca de funciones las incluídas
en NOMBRE_DE_CABECERA.h, que se encuentran en NOMBRE_DE_LA_DLL.DLL
Una variable local es toda aquella cuyo ámbito de accion se circunscribe a la subrutina en que es
definida, mientras que una variable global es accesible desde cualquier subrutina generada en
WinCC.
En numerosas ocasiones se utilizan en WinCC variables internas para realizar tareas que con
variables globales quedan fácilmente solventadas.
Para definir una variable local, simplemente hay que declararla dentro de una función o evento. Sin
embargo para definir una variable global.
Int variable = 0;
Void subrutina()
{
Void OnProertyChange(…)
{
extern int variable;
Nota: Si declaramos una variable externa sobre una función Standard, esta función existirá en todos
los proyectos que generemos.
11 REPORT DESIGNER.
11.1 INTRODUCCIÓN
El módulo report designer se encarga de todas las tareas relacionadas con la impresión de
datosy documentos desde WinCC, a una impresora o aun archivo de texto. Un reporte es un
documento diseñado previamente que posee una serie de campos, en el momento de enviarse el
documento a impresora o dichero, tomar el valor de los datos con los que están relacionados en la
propia base del WinCC.
Dentro del apartado report designer existen tres subdivisiones, cada una con una finalidad distinta.
11.3 LAYOUT
El WinCC, en el momento de generar el proyecto por primera vez, copia en el subdirectorio prt una
serie delayouts de sistema. Estos layouts pueden ser modificados por el usuario, pero no deben ser
borrados, ya que el WinCC los utiliza a la hora de imprimir la documentación en sus diversas partes
de desarrollo (curiosamente elnombre puede cambiarse sin problemas, el sistema lo identifica
internamente y no por el nombre del layout).
Todos los layouts poseen la extensión rpl y se encuentran en el subdirectorio prt de nuestro
proyecto, por lo que pasar layouts de un proyecto a otro es copiar dicho fichero.
El editor de layouts tiene el aspecto que muestra la figura. Si generamos un nuevo layout, podemos
observar que nuestro documento se divide en dos partes, una de color gris y otra central de blanco.
La parte gris corresponde a la cabecera y pie de página del documento, que puede contener
campos de la base de datos, pero que será común a todas las hojas que compongan el layout. La
parte central será donde se almacenen los datos del reporte.
Si presionamos con el botón derecho sobre el layout, podemos ver sus propiedades.
Repasemos las más importantes:
Layout:
Geometry:
Miscelaneous:
• Cover sheet: Todo layout pude tener una páginainicial, en la que se puede introducer
textos informativos al respecto del tipo de layout, la instalación en la que se genera ,
etc…Aquí se determina si esta página inicial debe de aparecer o no en el documento final.
• Final Page: Lo mismo, pero con una página de finalización del documento.
Visualizar la parte estática del documento. Solo puede modificar la parte cabecera y pie del
documento.
Visualizar parte dinámica del documento. Solo puede modificar la parte central, no la
cabecera ni el pie de página.
Como en el graphic designer, lo más importante dellayout serán los objetos que insertemos
en el mismo. Disponemos de una ventana en el que se nos muestran los mismos por categorías.
• Dynamic Metafile: Realiza una impresión gráfica o de una determinada pantalla que
hayamos diseñado con el graphic designer, o de una gráfica.
Los objetos dinámicos requieren una conexión, que es vínculo con el sistema que determina
que valores del mismo deben plasmarse en el objeto a la hora de la impresión.
11.4 JOBS
Un job o trabajo es un fichero que vincula nuestro layout o documento con la impresora y el
momento en que se debe imprimir dicho documento.
En la ventana podemos observar el nombre del trabajo o job, y el layout al que está
asociado. La P o F que aparecen después del nombre del layout en la columna parametros
significan respectivamente Printer o File, indicando si el trabajo está configurado para salir por
impresora, a un fichero o a ambos.
Al igual que en los layouts, ya existen jobs configurados por el sistema, que nosotros
podemos modificar, pero no debemos borrar, ya que son los que utiliza WinCC.
Si realizamos un Nuevo job, podemos acceder a sus propiedades que son las que se
muestran en la figura.
Printer setup nos permite seleccionar la impresora de todas las que posea el sistema por la
que deseamos imprimir. Podemos indicar hasta 3 impresoras si existen en el sistema para que si
una de ellas actualmente está desconectada o no respnde (falta papel, etc), poder imprimir por la
siguiente que esté en la lista asignada.
Los iconos de un job indican si esta configurado para dispararse a través de un evento de
tiempo de manera automática o no. En la imagen se aprecia que el primero arrancará por tiempo,
mientras que el segundo deberá de ser llamado desde el graphic designer mediante la función en C
de ejecución de reportes.
Existe la posibilidad de poder realizar una visualización previa del reporte sin necesidad de
esperarse al evento de tiempo ni tener que llamarlo desde C. Si presionamos sobre el job con el
botón derecho estando el runtime activado, podemos seleccionar Job Preview, con lo que podremos
observar como nos quedaría la impresión en el momento actual, e incluso imprimir desde esta
ventana el reporte.