Siemens Manual Wincc
Siemens Manual Wincc
Siemens Manual Wincc
Sistemas
Manual WinCC V4.02 Indice General
Indice:
1 INTRODUCCIN ............................................................................................................ 10
INSTALACION ....................................................................................................................... 13
2.1 Instalacin de WinCC V4.02..................................................................................... 13
2.2 Primeros pasos de instalacin .................................................................................. 14
2.2.1 Pestaa Seleccionar opcin instalacin:................................................................ 15
2.2.2 Botn Instalar aplicaciones: .................................................................................. 15
2.2.3 Botn Notas de instalacin:................................................................................... 15
2.2.4 Botn Diapositivas Powerpoint.............................................................................. 15
2.2.5 Botn Gua de iniciacin rpida............................................................................. 16
2.2.6 Botn Instalar Simulador de Variables................................................................... 16
2.2.7 Botn Cambio de idioma:...................................................................................... 16
2.2.8 Botn Salir de la instalacin: ................................................................................. 16
2.3 Desinstalacin de WinCC ......................................................................................... 23
2.4 Instalacin de la Demo de WinCC. ........................................................................... 24
2.5 Instalacin del simulador de WinCC. ........................................................................ 25
2.5.1 Cmo asignar variables al simulador?................................................................. 32
3 Estructura de WinCC....................................................................................................... 35
3.1 Estructura del programa ........................................................................................... 35
3.2 Estructura del proyecto............................................................................................. 42
4 CONTROL CENTER ....................................................................................................... 46
4.1 Introduccin. ............................................................................................................ 46
4.2 Crear un nuevo proyecto. ......................................................................................... 48
4.2.1 Cmo inicializar la base de datos de runtime?..................................................... 50
4.3 Base de datos SQL AnyWhere ................................................................................. 52
4.4 Opciones del men del Control Center ..................................................................... 53
4.4.1 Print FeedBack Doc.. ............................................................................................ 53
4.4.2 Shut Down ............................................................................................................ 53
4.4.3 Idioma del Control Center ..................................................................................... 54
4.4.4 Status de conexin ............................................................................................... 55
4.5 Datos del Proyecto ................................................................................................... 57
4.5.1 Introduccin .......................................................................................................... 57
4.5.2 General Information. ............................................................................................. 57
4.5.3 Update cycles. ...................................................................................................... 58
4.5.4 Hotkeys: ............................................................................................................... 59
4.6 Computer: ................................................................................................................ 60
4.7 Computer Properties ................................................................................................ 61
4.7.1 General Information. ............................................................................................. 61
4.7.2 Startup:................................................................................................................. 63
4.7.3 Parameter:............................................................................................................ 65
4.7.4 Graphics-Runtime................................................................................................. 66
4.8 Tag Management ..................................................................................................... 69
4.8.1 Introduccin. ......................................................................................................... 69
4.8.2 Qu es un driver o canal de comunicaciones? .................................................... 69
4.8.3 Adicin de un driver de comunicaciones................................................................ 69
4.8.4 Adicin de una nueva conexin............................................................................. 71
4.8.5 Qu es un group? ............................................................................................... 73
4.8.6 Qu es un tag? ................................................................................................... 74
4.8.7 Control de lmites en variables de comunicaciones................................................ 76
4.8.8 Escalado de variables por software ....................................................................... 77
4.8.9 Tamao de las variables o tags............................................................................. 78
4.8.10 Adaptar una variable de WinCC con respecto al valor del PLC .......................... 78
4.8.11 Generacin de variables internas (internal tags) ................................................ 78
4.9 Data Types............................................................................................................... 80
4.9.1 Introduccin .......................................................................................................... 80
4.10 Barra de estado de Control Center ........................................................................... 82
GRAPHICS DESIGNER ......................................................................................................... 85
5.1 Introduccin ............................................................................................................. 85
5.2 Caractersticas ......................................................................................................... 85
5.2.1 Tips&Tricks........................................................................................................... 85
5.2.2 Propiedades de los objetos ................................................................................... 86
5.2.3 Propiedades del objeto Picture.............................................................................. 86
5.2.4 Iconos de la ventana propiedades......................................................................... 91
5.2.5 Barra de herramientas del Graphic Designer......................................................... 92
5.2.6 Biblioteca de objetos ............................................................................................. 94
5.3 Opciones del men .................................................................................................. 99
5.3.1 Settings ................................................................................................................ 99
5.3.2 Idioma de la pantalla:...........................................................................................102
5.4 Barras de herramientas ...........................................................................................103
5.4.1 Barra de colores ..................................................................................................103
5.4.2 Barra de zoom .....................................................................................................103
5.4.3 Barra de objetos ..................................................................................................103
5.4.4 Barra de layers: ...................................................................................................105
5.4.5 Barra de alineacin. .............................................................................................105
5.4.6 Barra de fuentes ..................................................................................................106
5.4.7 Barra de estilos....................................................................................................106
5.5 Smart Objects .........................................................................................................107
5.5.1 Introduccin .........................................................................................................107
1 INTRODUCCIN
El paquete de software WinCC constituye el entorno de desarrollo de Siemens en el marco de
los scadas1 para visualizacin y control de procesos industriales. Sus caractersticas ms
importantes se pueden resumir en:
El presente manual tiene como objeto explicar de la manera ms prctica posible todas las
posibilidades que dicho scada dispone, comenzando con una descripcin de todas las
opciones del paquete para posteriormente adentrarse en los captulos sobre comunicaciones,
finalizando con la realizacin de un proyecto que utiliza las ms importantes caractersticas
descritas.
2 Driver: Cdigo que implementa el protocolo de comunicaciones con un determinado equipo inteligente.
INSTALACION
DE WINCC V4.02
2 INSTALACION
Seleccionar
opcin
Instalar
seleccin
Notas de
instalacin
Diapositivas
Powepoint
Gua
iniciacin
Simulador de
variables
Cambio
de idioma
Salir de la
instalacin
Si no dispone del autorun activado, ejecute el fichero setup.exe del raz de su CD.
A continuacin veremos las diferentes opciones posibles.
Esta gua en formato Word le permite adentrarse en el mundo del WinCC mediante la
explicacin de un ejemplo claro y sencillo. Es muy recomendable que se imprima dicha gua en
papel y realice el ejercicio descrito antes de comenzar a desarrollar un proyecto en WinCC, ya
que se describen los casos ms usuales de manejo del paquete.
Este software nos permite simular un valor peridico (seno, coseno, etc..) en unas
variables internas de WinCC. Esto es til cuando necesitamos dinamizar algn proceso (p. Ej.
Para visualizar grficas de curvas o animar una barra analgica) y, o no disponemos de ningn
PLC con el que poder animar la propiedad, o el PLC no dispone de ningn valor que se
encuentre variando de manera constante.
Podemos cambiar el idioma del software de la instalacin de WinCC, pero slo entre
ingls, alemn y francs. Este cambio de idioma corresponde a los textos del men del
programa de desarrollo, no confundir con los textos de la aplicacin que vamos a desarrollar
con WinCC.
A continuacin se nos pide el path donde deseamos guardar el software (por defecto
C:\Siemens\WinCC), as como si deseamos instalar el software en otro idioma adems de en
ingls.
A continuacin se nos permite elegir entre los tres tipos de instalacin que podemos
realizar:
Los datos del WinCC se almacenan en un fichero de extensin DB, que posee un
formato SQL Server, y puede optimizarse para velocidad en acceso a los datos, con lo cual la
base de datos generada ocupar 4 Mb, o optimizarlo para espacio en el disco duro, con lo cual
la base de datos se reduce a la mitad de tamao pero el tiempo de acceso a la misma
aumenta. Seleccionamos optimizada para velocidad en acceso a datos (4 Mb.)
Podemos:
Quitar/poner partes del programa.
Quitar/poner un lenguaje del programa.
Desinstalar completamente el software del disco duro.
El software que se encarga de realizar esto se debe instalar a parte del WinCC,
seleccionando la opcin del men principal de la instalacin de WinCC. El asistente nos
permite modificar el subdirectorio en el que se va a instalar la aplicacin.
Si no se modifica, el programa instala en el subdirectorio C:\Siemens\Sim, los
archivos Simeng.exe y Simdeu.exe. Ambos son el mismo programa, pero en versiones inglesa
y alemana del simulador de variables. Para arrancar el simulador desde el men inicio vamos
a:
Inicio->Simatic->WinCC->WinCC Simulator
carga una instancia en memoria del programa, que posteriormente al arrancar la runtime de
WinCC bloquea el PC. Para comprobarlo, ejecute el simulador sin tener el WinCC arrancado y
posteriormente presione Ctrl+Alt+Supr. Ver como aparece una instancia de Simulation que
anteriormente no exista.
Este fallo se encuentra corregido en la versin 4.02. En cualquier caso, si intenta
ejecutar el simulador sin tener activado el runtime de WinCC aparecer el siguiente mensaje:
Funcin seno:
Random: valor aleatorio entre unos lmites mximo y mnimo. El ideal para simulacin de
grficas y valores dinmicos.
Inc: Rampa incremental que al llegar a un valor comienza formando dientes de sierra.
Dec: Rampa decremental que va disminuyendo hasta un valor cero, formando dientes de
sierra invertidos.
Slider: en funcin de nuestros desplazamientos por la barra que nos habilita el simulador
podremos definir el valor de la variable. Ideal para simular valores estticos.
ESTRUCTURA
DEL WINCC
3 Estructura de WinCC
Bin:
Apdiag.exe: programa de diagnosis del funcionamiento de la aplicacin runtime, en el
que podemos estudiar los procesos internos que se van realizando en el cdigo 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 ejecucin de eventos y exportar esta
informacin a un fichero de texto. Incluso es posible que muestre mensajes
automticamente en la pantalla cuando detecte un error interno en la ejecucin del
WinCC.
Directorio GraCS:
Pdl -> las imgenes del proyecto.
Sav -> ficheros backup de las imgenes. Si se realiza una modificacin errnea en una
picture y se salva se puede recuperar renombrando el fichero sav como pdl.
Bmp, wmf, emf: ficheros de imgenes.
Act -> acciones C. Un cdigo C se puede almacenar en uno de estos ficheros para
luego ser importado desde otro proyecto sin disponer del proyecto original en donde
resida el cdigo.
Pdd -> parmetros por defecto del graphic designer.
Directorio Library:
H -> declaracin de funciones C.
Pxl -> librera de smbolos.
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 al runtime del proyecto.
Directorio Prt:
rpl -> layouts para realizar reports a impresora. Los definidos por el sistema comienzan
con el carcter @.
Rp1 -> line layouts. Definiciones de lneas a impresora para impresin de eventos en
tiempo real.
Archivos opcionales:
Directorio raz:
Ini -> archivo de inicializacin 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 -> report a impresora exportado a un fichero.
Log -> ficheros de diagnosis de la ejecucin del WinCC.
CONTROL CENTER
4 CONTROL CENTER
4.1 Introduccin.
Control Center representa el acceso a todas las opciones del WinCC como sistema de
desarrollo para visualizacin de procesos industriales. Desde el Control Center podemos disponer
de todos los mdulos software para la creacin de ventanas grficas, archivos de procesos,
ventanas de alarmas, y generacin de documentos a impresora.
Adems de esto, la filosofa abierta del WinCC posibilita la interconexin desde aqu del
sistema con otras aplicaciones, ya sea a travs de OLE, DDE o ODBC.
Al arrancar el WinCC, existen tres posibilidades:
a) Que anteriormente no hubiera ningn proyecto abierto, con lo que se nos abre
automticamente una caja de dilogo 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
dilogo, sino el proyecto en cuestin.
c) Que el proyecto ya estuviera abierto y en runtime cuando lo abandonamos la ltima vez, con lo
que arranca automticamente la runtime del WinCC.
La estructura que nos genera en el disco duro es la que se muestra en la figura superior.
De toda esta estructura, el nico subdirectorio que ya contiene inicialmente archivos es el
de Prt, en el cual se encuentran los reports a impresora pre-configurados.
Como se puede observar desde el Control Center, 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.
Un proyecto est compuesto por:
El nombre del proyecto, en este caso Dunker,
Computer: Todos los parmetros relacionados con el entorno de trabajo de la aplicacin en
general.
Tag Management: Administrador de comunicaciones (tener en cuenta a partir de ahora que
tag equivale en el proyecto a una variable, sea de comunicaciones con el PLC o interna del
proyecto).
Data Types: Agrupacin de las variables del WinCC por tamao, sin distincin de origen de
los datos (comunicaciones o internos).
Editors: Editores de las diferentes partes en que se subdivide el runtime del WinCC. Dentro
de este apartado nos encontramos con:
Graphics Designer: Editor grfico 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.
Tag Logging: Editor de archivos y grficas que e encarga de configurar el
almacenamiento de datos y su posterior visualizacin en forma de curvas o de tablas.
Report Designer: Editor de informes a impresora. Se encarga de configurar todo lo
referente al envo a impresora de informes.
Global Script: Compilador en C que nos permite programar nuestras propias acciones y
ejecutarlas de manera peridica o mediante eventos de cambio de variables.
Text Library: Editor de texto que nos permite asignar diferentes configuraciones de textos
segn el idioma seleccionado en el WinCC.
User Administrator: Administrador de usuarios que nos permite activar o desactivar
usuarios mediante activacin de passwords.
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 tamao
de dicha base va aumentando (histrico 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:
borre el archivo PROYECTORT.DB
copie el archivo WINRT.DB del subdirectorio WinCC\bin en su proyecto.
Renmbrelo como PROYECTORT.DB.
Esta opcin nos permite generar un report para documentar nuestro proyecto. Si
deseamos modificar el formato que nos aparece por defecto, tenemos que ir al report designer y
modificar el report @Documentation Control Center.
Esta opcin del men nos permite seleccionar la forma en la que deseamos salir del
WinCC.
Las opciones disponibles son:
Salir de Windows, cerrando todas las aplicaciones que estuvieran abiertas (apagar el
ordenador en una instalacin).
Si hemos seleccionado algn idioma adems del ingls en la instalacin del WinCC,
disponemos en Tools->Languaje de la posibilidad de cambiar de idioma el Control Center.
Es importante recordar que estos idiomas son para el Control Center, no para la runtime.
Por esta razn no aparece la opcin en espaol, ya que el software slo est disponible en
francs, ingls y alemn. Sin embargo, esto no impide que en la runtime podamos seleccionar los
textos directamente por la referencia Espaol.
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 ledas y escritas.
4.5.1 Introduccin
Vamos a repasar todas las opciones que nos ofrece el proyecto recin generado, visto
desde la ventana del Control Center.
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.5.4 Hotkeys:
4.6 Computer:
Esta opcin nos permite seleccionar el nombre de nuestro ordenador. Hay que tener en
cuenta que dicho nombre ha de corresponder al asignado en Windows 95, 98 o NT, ya que de otro
modo al ejecutar la runtime WinCC nos indicar que no encuentra dicho nombre en su lista de
servidores.
4.7.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 instalacin, no es necesario activar la parte de runtime que corresponde a la
impresora, con lo que no pierde tiempo el programa, encargndose de realizar esa parte de
cdigo.
Hay que tener en cuenta que con respecto a la runtime del Global Script, su mbito de
activacin no es exclusivamente el de programar funciones en C. Si asignamos un script a un
botn deberemos de tener activado el runtime de Global Script, ya que de facto esto es una accin
en C. Esto no es siempre obligatorio para todas las acciones en C, pero es conveniente ya que
algunas no se ejecutarn si no tiene instalada la parte de Global Script.
A su vez, en Additional Tasks podemos asociar aquellas aplicaciones que deseamos que
se ejecuten cada vez que arranque la runtime del WinCC.
4.7.3 Parameter:
En esta pestaa podemos seleccionar el lenguaje del runtime del WinCC (por defecto
viene en ingls). No confundir con el lenguaje del entorno de desarrollo, que slo puede ser en
ingls, francs y alemn, seleccionndose en el men, y no en esta opcin.
Por defecto slo aparece un idioma (ingls) para comenzar la aplicacin, pero podemos
disponer prcticamente de cualquier idioma en esta solapa, siempre y cuando en el Text Library
aadamos este idioma a la tabla (para ms informacin ver Text Library).
A su vez, tambin podemos seleccionar la prioridad de acceso al microprocesador de la
cpu de nuestra aplicacin. Si seleccionamos prioridad alta, nuestra tarea ser la nica que podr
acceder de una manera gil al micro, por lo que cualquier tarea que se desee realizar en paralelo
se ver ralentizada al mximo.
Tambin podemos deshabilitar algunas combinaciones de teclas. Las diferentes
posibilidades son:
Ctrl+Alt+Del: Impide cerrar el WinCC realizando un reset por software.
4.7.4 Graphics-Runtime
Con respecto a los atributos de ventana que se pueden bloquear, las posibilidades son:
Alt+F4: Impide que se pueda cerrar la ventana de runtime con la combinacin Alt+F4.
Change Size: Impide que se pueda modificar el tamao de la ventana de runtime desde el
propio runtime.
Move: Impide que se pueda mover la ventana de runtime.
Minimize: Impide que se pueda minimizar la ventana de runtime.
Maximize: Impide que se pueda maximizar la ventana de runtime.
Close: Impide que se pueda cerrar la ventana de runtime desde la X de la esquina superior
derecha de la ventana.
Optimized View: Deshabilita la optimizacin del redibujado de los objetos en pantalla. Por
defecto, los objetos de la pantalla no se redibujan de manera individual, sino todos a la vez en
el denominado Windows Cycle. Si deseamos que cada objeto se redibuje de manera
independiente seleccionaremos esta opcin, teniendo en cuenta que esto nos puede producir
parpadeos en la pantalla y retardos en el redibujado de la misma.
Adems de la asignacin de teclas para subir y bajar con el teclado, podemos configurar el
funcionamiento del cursor a la hora de desplazarse, eligiendo entre las siguientes opciones:
Normal: El cursor al llegar al extremo de una fila de controles si nos desplazamos en
horizontal, comienza de nuevo por la izquierda (pasa de 3 al 1).En vertical exactamente igual
(pasa del 4 al 1).
Normal Whitout Rollback: El cursor al llegar a un extremo de la fila o columna de controles
no contina desplazndose (al llegar a 3 se queda en el 3 aunque sigamos intentando
desplazarnos hacia la derecha).
Expanded: El cursor al llegar a un extremo de una fila o columna, contina por el principio de
la siguiente fila o columna (al llegar a 3 pasa a 4, al llegar al 6 pasa al 1).
4.8.1 Introduccin.
Un driver de comunicaciones es una dll, con la extensin *.CHN que posibilita al WinCC
comunicarse con un determinado protocolo con un tipo determinado de PLC industrial o aplicacin
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
entro del CD de WinCC, necesitan para funcionar una licencia aparte. Para ms informacin
acerca de cuales son, ver apndice.
Es posible generar un nuevo canal de comunicaciones si se dispone de la herramienta
CDK, paquete de desarrollo de WinCC para canales de comunicaciones.
Supongamos que deseamos conectar el WinCC a un autmata S7 300 o 400 para obtener
informacin de l. Primeramente necesitaremos aadir el driver de comunicaciones adecuado.
Para ello, seleccionando con el botn derecho tag management, aparece un men contextual
cuya primera opcin es aadir nuevo driver. Seleccionando esta opcin nos aparecen todos
aquellos drivers de que dispone el WinCC.
Si volvemos a colocarnos sobre el driver MPI y presionamos el botn derecho, una de las
opciones es new driver connection. Seleccionndola podemos configurar la direccin MPI y el
nombre simblico que le queremos dar a nuestro enlace MPI (en nuestro caso AUTOMATA_314).
En la solapa connection podemos definir la direccin MPI del equipo al que vamos a
conectarnos. Los autmatas S7 disponen de un nmero identificativo comprendido entre 2 y 126
que les identifica dentro de una red MPI. Tambin podemos activar la opcin de envo y recepcin
de raw datas. Como veremos ms 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 envo de estructuras de informacin 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 direccin MPI 2. Todas las
variables que se definan a partir de este enlace obtendrn su valor de las comunicaciones con
dicho PLC de manera automtica. Para conocer otros tipos de enlaces a parte del S7 ver apndice
al final del libro.
4.8.5 Qu es un group?
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 tamao acceder a las variables
de una manera ms intuitiva.
Ejemplo:
Supongamos que deseamos realizar un proyecto de una mquina 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 mquina.
4.8.6 Qu es un tag?
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 aplicacin. Los valores de los tag 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 si 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 estticas, y no el
ltimo valor que hubisemos introducido.
Para crear una variable de comunicaciones o tag, nos colocamos sobre cualquiera de los
grupos creados y seleccionamos con el botn derecho new tag.
La solapa general information nos permite introducir un nombre simblico para nuestra
variable de comunicaciones.
Presionando en el botn select podemos acceder a un cuadro de dilogo que nos permite
definir la direccin del mapa de memoria del PLC de la que queremos obtener el valor o donde lo
deseamos almacenar.
El poder seleccionar estos mapas de memoria nos permite realizar controles de instalaciones
que ya estuvieran funcionando con su programa de PLC siempre y cuando las zonas a las que
accedamos para escribir no estn a su vez siendo escritas desde programa de PLC. Con respecto
a la lectura no existe evidentemente ninguna limitacin, accediendo a todas ellas libremente.
Ejemplo
Se desea leer un valor analgico que viene de una sonda 0-20 mA que dentro del PLC se
almacena tras la conversin analgica digital en un valor de 32 bits. La sonda aporta 0 mA para
10 C y 20 mA para 60C. 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 representacin en C del valor de
la sonda sin necesidad de ms transformaciones dentro del PLC.
4.8.10 Adaptar una variable de WinCC con respecto al valor del PLC
b) Poseen una funcionalidad aadida, que es la opcin 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.
c) A diferencia de las de comunicaciones, son gratuitas e ilimitadas, en funcin de la memoria
RAM de que disponga el PC.
4.9.1 Introduccin
Data types, agrupa las variables en lugar de por origen de los valores de las mismas, por
tamao. As las agrupaciones posibles son:
Desde esta opcin podemos generar estructuras de variables que luego pueden ser
utilizadas en el Tag Management. Para generar una nueva estructura, sobre Structure Tag,
pulsamos el botn derecho y seleccionamos New...
Generamos una estructura de PID como la de la figura de abajo. Esto nos permite ir al Tag
Management, y cuando generemos una nueva variable, podemos asociarle esta estructura, con lo
que en lugar de estar definiendo una sola variable, definimos un grupo de variables, direccionando
de una sola vez todas dentro del PLC..
Una estructura puede contener tanto variables internas como de comunicaciones. Al crear
una variable en el Tag Management de tipo Struct se puede asignar el tipo definido en este punto,
con lo que se generan tantas variables nuevas como tenga la estructura, siguiendo la siguiente
regla:
Variable_nueva.dato_estructura
Variables externas que estamos utilizando en nuestro proyecto. Esto nos permite
dimensionar la runtime que debemos adquirir para la comunicacin 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 maysculas presionada.
NUM: teclado numrico activado.
SCRL: la tecla bloq despl del teclado est activada.
GRAPHIC DESIGNER
5 GRAPHICS DESIGNER
5.1 Introduccin
El editor Graphics designer se encarga de la confeccin de las pantallas del WinCC.
Bsicamente es un entorno de dibujo con la caracterstica de que los objeto poseen la
capacidad de asociar sus propiedades a variables de comunicaciones que son proporcionadas
por el Tag Management.
5.2 Caractersticas
5.2.1 Tips&Tricks
El editor Graphics designer posee una opcin 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 caractersticas 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 nmero depende del tipo de objeto en
cuestin. Para acceder a estas propiedades es necesario colocarse sobre el objeto y
presionar el botn derecho del ratn, emergiendo un men contextual como el de la figura.
Geometry:
Picture Width: Ancho de la pantalla (en pixels).
Picture Height: Alto de la pantalla (en pixels).
Colors:
Background Color: Color del fondo de la picture
Fill Pattern Color: Color de la mscara de dibujado sobre el fondo de la picture.
Grid color: Color de los puntos de la rejilla
Miscelaneous:
Operator-Control Enabled: la picture se encuentra habilitada.
User Level: Nivel de usuario al que le est permitido entrar en esta ventana. Para
conocer como realizar la asignacin de niveles de usuario, vea captulo User Administrator.
Display: Mostrar la picture.
Update cycle: Ciclo de actualizacin de la picture.
Date of the last change: fecha de la ltima modificacin que se hizo a la picture.
Cursor Mode: Tipo de modo de desplazamiento con el cursor (alpha o tab).
Con respecto a los eventos, las posibilidades para una picture son:
Eventos Mouse:
Mouse Action: Se ejecuta al presionar cualquier botn del ratn.
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:
Objetc Change: Se ejecuta cada vez que cambia alguna propiedad del objeto.
Open Picture: Se ejecuta al entrar al picture.
Property topics:
Se ejecutan cuando la propiedad seleccionada cambia en el objeto.
Copiar Propiedades: Copia las propiedades del objeto activo en ese momento
en el portapapeles.
Visualizar rejilla
Biblioteca de objetos.
Veamos
5.3.1 Settings
En esta opcin podemos seleccionar las capas que deben estar activas por defecto en
una picture y las que no.
Por ltimo, podemos seleccionar la configuracin por defecto de objetos que deseamos
y donde guardarla.
Podemos seleccionar diferentes idiomas para los textos asociados a todos los objetos
que coloquemos en las pantallas del WinCC, de tal manera que simplemente cambiando de
pgina de idioma podamos modificar completamente el lenguaje del runtime en la aplicacin.
Para conseguir esto, primeramente deberemos definir el lenguaje de la pantalla en la
que estamos.
Cmo saber el idioma actual de la pantalla que estamos editando?
Aparece en la barra de status, en la parte de debajo de la pantalla
Disponemos de una barra de colores para asignar a las propiedades estticas de los
objetos. Dichos colores pueden personalizarse gracias al ltimo de los iconos de la barra.
Smart Objects: Objetos inteligentes, cada uno con unas propiedades especiales.
Windows Objects: Objetos comunes de Windows, tales como botones, cajas de seleccin,
barras de desplazamiento, etc..
La barra de layers nos indica las capas que actualmente estn 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 tambin para igualarlos en
tamao tanto en altura como en anchura.
Para que aparezca activa lgicamente deberemos de tener seleccionados por lo menos
dos objetos.
La mayora de los objetos poseen algn texto asociado. Mediante la barra de fuentes
podemos configurar el tamao y fuente de los mismos sin tener que entrar en sus propiedades.
Al igual que el anterior, poseemos tambin una barra de herramientas solo para las
lneas de los objetos, en las que podemos modificar el estilo de la lnea, su grosor, su final y el
relleno que deben tener (si poseen un grosor mayor de una simple lnea).
5.5.1 Introduccin
Los smart objects son la base de construccin de los proyectos de WinCC. Los cuatro
primeros los estudiaremos ms adelante, ya que su estudio es ms amplio y complicado. Nos
centraremos ahora en los siguientes objetos.
Text Flashing frequency: Frecuencia del parpadeo del texto. Disonemos de tres
velocidades: lenta, media y rpida.
Opciones Miscelaneous:
Operator Control Enable: Indica si el usuario puede tener acceso a la caja para introducir
valores. Esta propiedad es independiente de que tenga o no nivel para poder introducir
valores. Equivale al Locked de los controles de programacin 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 tambin del cdigo de pgina de idiomas seleccionado en el
runtime.
Operator activites report: Cuando se activa esta opcin, cada vez que se introduzca un
valor en la caja, aparecer una caja de texto solicitando que introduzcamos una explicacin
al respecto de la modificacin realizada en el valor del proceso. Este mensaje queda
almacenado en el sistema como seguridad antes posibles fallos debidos a los cambios
realizados, o como nota aclaratoria de porqu se toma dicha decisin.
Operator Input Message:
Adapt Border: Ajusta automticamente el tamao de la caja al texto o nmero que
contenga en cada momento.
Cursor Control: Determina si despus de realizar una entrada en la caja se debe saltar al
siguiente objeto en el orden de Alpha-cursor seleccionado o se debe de 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 automticamente en modo
de edicin para introducir un valor, o no.
Lmites:
Low Limit Value: Valor menor que se puede aceptar como vlido a la hora de introducir un
valor en proceso.
High Limit Value: Valor mayor que se puede aceptar como vlido a la hora de introducir un
valor en proceso.
Si se sobrepasa cualquiera de estos valores, automticamente aparece una caja
indicndonos dicho suceso.
Output/Input:
Field Type: Tipo de valor del campo a representar o introducir. Las diferentes posibilidades
son:
Output: Solo leer el valor en el PLC, sin poder escribir.
Input: Solo escribir el valor en el PLC sin poder leer.
I/O field: leer el valor en el PLC y poder modificarlo tambin.
Output Format: formato de salida del valor a introducir. Cada carcter 9 corresponde a un
dgito. Los dgitos que se coloquen despus del punto correspondern a los decimales a
los que se ajuste el valor a representar.
Formato hexadecimal:
f -> carcter hexadecimal.
0 -> cero de relleno a la izquierda de caracteres hexadecimales.
Adems 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 ms importantes del objeto en cuestin, es decir, un resumen de
lo visto en las pginas anteriores. El Configuration dialog de la caja I/O es:
5.5.3 Bar.
La barra es un objeto que nos permite representar un valor analgico y compararlo con
unos lmites establecidos para saber en que estado se encuentra el proceso con respecto al
valor deseado.
Bar direction: direccin en la que debe de crecer la barra (hacia arriba, hacia abajo...)
Colors:
Styles:
Border Weight: Anchura del borde de la ventana de la barra.
Border Style: Estilo del borde de la ventana.
Fill Pattern: Estilo de rellenado del fondo de la ventana de la barra.
Bar Pattern: Estilo de rellenado de la barra.
Font:
Font: Fuente de la escala e la barra.
Font Size: Escala de la fuente de la escala de la barra.
Bold: Si dicha fuente debe aparecer en negrita.
Miscelaneous:
Change color: Cambia el color de la barra al superar un lmite superior o inferior de
manera total, o solo el trozo que sobrepase dicho lmite.
Maximum value: Valor mximo de la escala de la barra.
Zero point value: Valor del punto cero de la escala.
Minimun value: Valor mnimo de la escala de la barra.
Histeresys: Indica si el valor debe de comportarse segn una histresis al alcanzar el
lmite superior o inferior. Si alcanzamos un lmite de 100, teniendo activado este parmetro,
y seleccionando un rango de histresis de 20, hasta que el valor no baja de 80 no volver
la barra a representar modificaciones en su valor. Esto permite evitar las oscilaciones
propias de los fluidos una vez alcanzados los lmites precisos.
Histeresys Range: Valor a tener en cuenta en la histresis.
Trend: Indicador del sentido de la barra. Nos indica si el proceso est aumentando o
disminuyendo, realizando una comparacin del valor actual con el anterior.
Average Value: Seleccionando esta opcin se muestra la media de los ltimos 15 valores
ledos en el proceso, no el instantneo. Ideal para procesos muy fluctuantes.
Process Drive Connection: Valor del proceso a mostrar.
Axis:
Scale: Mostrar o no la escala de referencia de la barra.
Alignment: Lugar en el que colocar la escala (derecha o izquierda).
Long Axis Section: La escala se compone de barras largas y cortas. Esta opcin dibuja
las barras largas de la escala en negrita.
Label Each: Indica cada cuantas barras largas de la escala hay que colocar un valor
numrico.
Only long axis sections: Mostrar solo las barras largas de la escala, no las intermedias
cortas.
Lenght of axis section: Longitud en pixels de las barras divisoras de la escala de la barra.
Exponent display: Mostrar la escala en valor exponencial o lineal.
Bar Scaling: Tipo de escala de la barra.
CUBIC
Zero point: Lugar donde se encuentra el punto cero en la escala.
Axis Section: Cada cuantas unidades queremos poner un indicador numrico de escala.
Por ejemplo, cada 20 unidades, con lo que la cantidad de marcadores numricos en la
escala ser de 100/20=6.
Scale marcs: La distancia en las divisiones de la escala.
Digits to the left of the decimal: Dgitos del valor entero de la escala.
Digits to the rigth of the decimal: Cantidad de decimales del valor del a escala.
Limits:
Limit Marker: Marca de lmite que aparece a la izquierda de la barra indicndonos donde
se encuentran los lmites de control de la barra.
Monitoring AL: Controlar alarma 1de mnimo.
Limit AL: Valor del lmite de alarma 1.
Bar color AL: Color que debe adoptar la barra cuando el valor del proceso est 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 priori el valor mximo de la escala, o en porcentual (mucho ms
flexible, ya que ante cualquier modificacin de lmites contina manteniendo la
proporcionalidad).
Las dems opciones son idnticas pero para los cuatro siguientes limites de alarma
mnima (La L de AL indica que es un lmite de mnimo). Los lmites de mximo comienzan con
AH, siendo su funcionamiento y propiedades idntico al descrito, salvo que la barra cambia de
color cuando el valor del proceso est por encima del valor estipulado como lmite de alarma.
El objeto grfico representa una imagen en pantalla. Su asignacin suele ser dinmica,
utilizndose el status display para realizar animaciones de imgenes, aunque puede
dinamizarse la imagen que representa.
Picture:
Picture: Imagen actual a representar.
Picture referenced: Indica si se debe almacenar en el objeto la imagen o solo la referencia
a la misma, para que al cambiar esta en el disco duro, cambie tambin en el objeto.
Picture transparent color: Color que se considera transparente en la imagen.
Picture transparent color on: Activar el color transparente, con lo que todos los pixels de
dicho color sern reemplazados por la imagen que se encuentre por debajo del objeto.
El objeto textlist es til a la hora de realizar un control sobre valores numricos que se
encuentran claramente definidos mediante textos. Suelen ser estadios del proceso de 3 o
cuatro pasos mximo. Por ejemplo, un motor puede estar parado, arrancado en automtico, o
arrancado en manual. En estas situaciones el asociar textos a valores numricos 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 instalacin.
Output/Input:
Field Type: Campo de salida (solo leer el valor), de entradas (solo modificar 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.
5.5.7 Buttons.
Dos opciones no vistas del botn es que podemos definir dos imgenes (picture on y
picture off) para representar los dos estados del botn (presionado o no).
Selected Boxes: Cajas que estn activas por defecto segn 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.
La nica diferencia entre l y checkbox, visto anteriormente es precisamente esta
caracterstica de exclusin, lo que hace que seleccionando cualquiera de las opciones del
objeto option automticamente dejan de estar seleccionadas todas las dems.
Todas las propiedades vistas en checkbox sirven para option button.
5.5.10 Slider.
La barra slider sirve para poder introducir valores analgicos en el proceso de una
manera grfica.
De las propiedades de slider solo destacar por no haber sido vista an:
Extended operation:
Operation steps: incrementos en que aumenta o disminuye la variable de proceso cada
vez que nos desplazamos por la barra.
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 programacin son pequeos scripts o trozos de cdigo de programa
que se aaden de manera automtica al objeto sobre el que se aplican, para realizar una
determinada tarea de programacin.
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.
Cdigo aadido: ExitWinCC();
Exit WinCC or Windows:
Nos permite seleccionar la forma de salir de WinCC. Las opciones posibles son:
HardCopy:
Imprime la pantalla actual por la impresora predeterminada de Windows.
Cdigo: WinExec("PRTSCR.EXE -hardcopy",SW_SHOWNORMAL);
Language switch:
Cambia de idioma los textos de la aplicacin runtime.
Cdigo: SetLanguage(0x040A); /* SPANISH */
Un asistente nos permite seleccionar el cdigo de rea del lenguaje deseado.
Add dinamics to the prototype: permite dinamizar una propiedad del objeto seleccionado
a travs de un Wizard en lugar de hacerlo directamente en propiedades del objeto.
Copy tag value: incluye el cdigo que copia una variable en otra.
Fill object: rellena los objetos que permitan dinamic filling, pero con la ventaja de que a
travs del wizard podemos establecer un rango de llenado diferente de 0 a 100 que sera
mediante una conexin directa de la variable de llenado con la propiedad de llenado.
Display error: muestra una ventana de error en pantalla. Este Wizard es muy til para
sacar mensajes al operario frente a error de manejo.
El resultado es el siguiente:
Display WinCC dialog: mostrar una ventana de dilogo ya configurada anteriormente. Nos
crea el cdigo necesario para que al presionar sobre el objeto, aparezca la ventana
indicada.
La representacin de una asignacin directa a una variable se realiza con una bombilla
verde.
La segunda forma sencilla de dinamizar una propiedad es a travs del dinamic dialog,
una caja de dilogo que nos permite configurar cual debe ser el valor que controla la propiedad
dependiendo de una frmula que puede ser el resultado del valor de una variable o de una
operacin matemtica.
El dinamic dialog lo veremos ms adelante en los ejemplos de programacin, pero es
conveniente saber que se representa su asignacin a una propiedad mediante un rayo rojo.
Pero casi siempre hay que recurrir al C para realizar las acciones que deseamos.
Cuando asignamos nuestro cdigo de programacin a un evento, se nos indica mediante una
bombilla verde:
ALARM LOGGING
6 ALARM LOGGING
6.1 Introduccin
Alarm Logging es la parte del WinCC que de se encarga del tratamiento de los
mensajes de alarma de la instalacin, as como del tratamiento del histrico de alarmas y la
generacin de alarmas a partir de comparaciones con valores de comunicaciones.
El tratamiento de alarmas de WinCC proporciona:
Informacin sobre el error que se ha producido en la instalacin.
Detecta situaciones crticas del sistema.
Reduce los tiempos de parada de la instalacin.
El editor se ejecuta presionando con el botn derecho sobre Alarm Logging del
Control Center y seleccionando Open
que era el responsable del ulterior mensaje de alarmas. Mediante esta opcin esto no es
necesario, siempre y cuando la alarma no tenga ninguna repercusin en el proceso (activar p.
Ej. una sirena), descargando de esta tarea al PLC y permitiendo realizar modificaciones de este
estilo sin modificar el PLC.
Como se puede observar, esta dividida entres partes. La primera es un rbol en que se
representan las diferentes partes en que se divide la construccin 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 todas los mensajes de alarma que pueden existir en
nuestro proyecto, con su bit de comunicaciones asignado.
Estos bloques se organizan en una lnea, y esta lnea 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 lneas y ventanas de alarmas
disponemos de un Wizard de alarmas que nos gua paso a paso en su realizacin. 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 nmero de alarma...o + el status de la alarma y la duracin de la misma...o + la clase
de alarma y el tipo de mensaje.
En User text blocks definimos si no queremos ninguno, si queremos el teto de la
alarma y el lugar donde se produjo, o todos los posibles.
En process value blocks definimos si no queremos bloques de proceso, si queremos
solo 2 o todos.
A continuacin definimos la lnea de alarmas, eligiendo entre una lnea con solo los
bloques de hora, fecha y nmero de alarma, o todos los configurados anteriormente.
A continuacin 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
mensajes de diferentes clases. Aqu se puede elegir entre crear la clase error, que contiene los
tipos de mensajes alarma, fallo, warning, o adems crear la clase operacin, con los tipos
Check-Back y tipo de operacin.
Con esto finaliza el Wizard de configuracin. Todos estos pasos tambin se pueden
realizar de manera manual.
El formato que debe poseer el fichero de texto viene especificado en el Manual del
WinCC.
Esta opcin se encuentra en Messages->Import single messages.
Al igual que podemos importar los mensajes, tambin podemos desde el men
exportarlos a un fichero de texto. Incluso podemos seleccionar cuales deseamos exportar y
cuales no.
Esta opcin se encuentra en Messages->Export single messages.
Vamos a configurar los diferentes apartados del alarm logging sin utilizar ahora el asistente. Lo
primero que vamos a parametrizar sern los bloques de mensajes que necesitemos. Nos
colocamos sobre Message Blocks, y con el botn derecho seleccionamos la opcin del men
Message Blocks.
Aparece: +
Desaparece: -
Es acusada: +/-
En cualquier caso, estos textos pueden modificarse desde el text library a posteriori para
que sean ms descriptivos.
La opcin With leading zeros rellena de ceros los campos definidos en number of que
no queden rellenos por nmero de alarma, comenzando por la izquierda.
Indica si el mensaje de alarma va a salir por impresora o no. Se puede seleccionar para
cada lnea 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 a posteriori de que se genere la alarma, y
se pueden asociar a la prxima aparicin de la alarma mediante este bloque.
El bloque loop in alarma indica que la alarma presente posee la funcionalidad de saltar
a una ventana si se presiona el botn loop in alarm.
Otro bloque de usuario que nos indica donde se ha producido la alarma (p. Ej: Sector
de entrada).
Podemos definir varios valores de proceso, pero normalmente con uno basta. La
asignacin del valor que debe configurarse en este campo es individual para cada una de las
alarmas, lgicamente.
indica que alarma acaba de saltar, con un botn que accede a la ventana en la que ya
se encuentra la ventana de alarmas con el histrico de alarmas.
Short Term Archive Window: Ventana que almacena las alarmas en un histrico para
que posteriormente podamos observarlas. El tambor de alarmas puede ser
configurado.
Sequence Archive Window: Archivo secuencial de alarmas. Las alarmas se van
almacenando en l sin lmite de almacenamiento.
El botn selection nos permite seleccionar que bloques son los que se deben almacenar
en el histrico, independientemente de los que estemos representando en pantalla al
aparecer la alarma.
Message Line: En esta ventana seleccionamos la lnea de alarmas que debe aparecer
en esta ventana de alarmas.
Parameters:
Lneas de separacin: horizontales y/o verticales.
Title line: Ttulo de la lnea.
Selection: Tipo de seleccin de la alarma dentro de la ventana. Podemos decidir si la
seleccin es por celda, o por lnea.
Column title: Coloca encima de cada columna un ttulo descriptivo de la misma.
Change column Width: Poder cambiar el ancho de las columnas desde el runtime. Si se
realiza click sobre la lnea de separacin de una columna en el runtime, la columna se
autoajusta al ancho de la misma.
Shortem Title: Si el ttulo de la columna no se puede representar entero en la columna
debido a que no cabe, seleccionando esta opcin se aaden unos puntos suspensivos,
para indicarnos que existe texto oculto.
Shortem cell content: Si el texto de una celda de un bloque de la lnea de alarmas no se
puede representar entero debido a que no cabe, seleccionando esta opcin se aaden
unos puntos suspensivos, para indicarnos que existe texto oculto.
Auto Scrolling: Cuando esta opcin est activada, al entrar a la ventana de alarmas, si la
cantidad de alarmas es superior a la que cabe en la ventana de alarmas, salta
automticamente al final de la pila de alarmas. En caso contrario (opcin no seleccionada),
nos muestra desde la primera alarma en pantalla.
Status bar:
Display status bar: Muestra en la parte inferior de la ventana de alarmas una lnea de
status que podemos configurar en la ventana Elements of the status bar.
Las opciones a configurar en la lnea de status son:
Date: muestra la fecha actual.
Time: muestra la hora actual.
Number of the messages in the list: muestra el nmero de alarmas DIFERENTES
actuales en la ventana.
Number of messages in the window: muestra el nmero de alarmas actuales en la
ventana, independientemente de que se repitan.
Number of messages not yet acknowledged: cantidad de alarmas no acusadas an,
y que deben serlo.
Lock: Algn tipo de alarmas est siendo bloqueado actualmente, por lo que puede
producirse y no ser representado en la pantalla.
Selection: Se est aplicando una seleccin o filtrado al histrico de alarmas, de tal
manera que las que se estn representando actualmente no son todas las que hay.
Toolbar:
Display toolbar: muestra la barra de herramientas en la ventana de alarmas.
Alignement: posicin de la barra de herramientas (izquierda, derecha, arriba, abajo).
Message classes: muestra solo las clases de mensaje que seleccionemos (p.
Ej: crear una clase que sea alarmas zona 1 y luego filtrar por este tipo de clase).
Text blocks: filtrar por un determinado bloque (p. Ej: todas las alarmas que
tengan texto en el campo point of error).
Process Value: filtrar por valor de proceso (p. Ej: todas las alarmas que tengan
un valor de proceso asignado).
Otra posibilidad es bloquear alarmas de manera individual y no por grupo (p. Ej: un
nivel de depsito se ha roto y da siempre fallo de desbordamiento). Para ello, deberemos de
generar un grupo, User defined, y aadir las alarmas que deseemos que formen parte de dicho
grupo. Posteriormente lo bloquearemos.
Loop in alarm: permite saltar a una pantalla relacionada con la alarma que
actualmente se est seleccionando (p. Ej: Alarma compresor enfriadora 1 temperatura alta, y
un loop a la ventana en la que se encuentra el compresor, para poder arrancar el motor de
reserva y reducir la temperatura).
Todos los botones de la barra de herramientas poseen una serie de opciones a las que
se accede seleccionando el texto del botn y posteriormente el botn que hay sobre la ventana,
denominado properties.
La ltima caracterstica 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. La representacin se puede apreciar en la imagen inferior.
6.8.1 Introduccin
Una clase de mensaje es una agrupacin de alarmas que poseen una determinada
caracterstica. Generalmente se utiliza para disponer de un grupo de alarmas que necesitan ser
acusadas porque son muy graves, y otro grupo de avisos, que no requieren acuse y son solo
de informacin.
6.8.2 Clases
Acknowledgement Went out: que deba ser acusada la alarma una vez desaparezca.
Flashing On: que parpadeen las alarma de esta clase cuando estn 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 devices:
Separate Ack. Key: asignar una segunda opcin de acuse, independiente de la de
hacer desaparecer de la pantalla de alarmas la actual alarma. Las alarmas del grupo
seleccionado, al aparecer habilitan el botn Horn de la barra de herramientas. Se
puede asignar una variable de proceso como alarmas no acusadas, de tal manera que
hasta que no presionemos el botn horn, aunque la alarma se haya acusado,
continuaremos teniendo constancia de que se ha producido alguna alarma en la
instalacin. Como el botn horn puede tener una prioridad distinta que el de acuse, se
puede dejar esta opcin para que un responsable de control sepa que se ha producido
una alarma pese a que se hayan acusado todas y no haya histrico.
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 ser acusados.
A su vez, todos los tipos que se definan dentro de una clase de alarmas pueden tener
diferentes colores con respecto a los otros tipos, tanto para:
El color de texto y fondo cuando aparece la alarma
El color de texto y fondo cuando desaparece la alarma
El color de texto y fondo cuando es acusada la alarma.
Dentro de cada tipo perteneciente a una clase podemos definir la cantidad de lneas de
alarma que queremos crear para este tipo. Posteriormente deberemos de rellenar los textos
que lleven asociados.
6.9.1 Introduccin
Las alarmas analgicas nos permiten generar alarmas a partir de una comparacin que
se realiza en el WinCC entre un valor de proceso y un lmite generado por nosotros. Esto
descarga al PLC de realizar este tipo de clculos, pero solo si dicha alarma no tiene ninguna
repercusin posterior sobre el proceso, como tener que arrancar un motor, o hacer sonar una
sirena.
Si nos situamos sobre analog alarm, con el botn derecho podemos seleccionar New.
Los datos a rellenar para generar una nueva alarma analgica son:
La variable a monitorizar.
Podemos elegir seleccionar un nico mensaje de alarma para todos los lmites que
definamos en una alarma analgica, en cuyo caso debemos indicarle el nmero de alarma
deseado. Si no elegimos esta opcin cada lmite 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 lmite de pozo vaco y
otro de pozo lleno. Sin embargo si vamos a monitorizar la temperatura de un motor, puede
ser interesante seleccionar esta opcin, ya que solo tendremos un lmite de motor
sobrecalentado, no generamos alarma por motor fro.
Delay Time: Tiempo que debe de estar superado el lmite que definamos para que haga
saltar la alarma. Esta opcin es interesante en valores analgicos que suelen tener una
cierta oscilacin permanente, y no nos interesa que dispare hasta que efectivamente no
haya llegado a sobrepasar el lmite establecido (los temas de aguas suelen generar este
rizado sobre un valor continuo, al producir pequeas olas que falsean la seal de nivel).
Una vez generada la variable analgica, podemos comenzar a crear lmites asociados a la
misma. Colocndonos sobre ella y con el botn derecho, seleccionamos new..
Si deseamos archivar en el disco duro las alarmas que se vayan generando, tenemos
que seleccionar en archives cuando seamos 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 (sequencer archive).
Desde el icono de archive report podemos acceder a una ventana de seleccin en la que
podemos definir los bloques que queremos que aparezcan en nuestro report a impresora. Si no
indicamos nada, realizar el report 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.
Class: Clase a la que pertenece la alarma. De esta clase le derivarn 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 alarmas de un grupo) o reports a impresora (imprimir solo las alarmas de un
determinado grupo).
Propiedades del mensaje:
Is single acknowledged: la alarma debe ser reconocida de manera individual y no en
un grupo de alarmas.
Trigger horn: Dispara la variable asignada en trigger horn. Recordemos que mediante
la activacin de trigger horn, se nos activa un bit de una variable que deseemos una
vez se dispare alguna alarma. El bit contina activo independientemente de que
nosotros acusemos las alarmas, hasta que se pulsa el botn 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
botn.
Will be archived: la alarma se guardar en el histrico de alarmas.
Will be reported: la alarma se imprimir por impresora con el report de alarmas.
Create with a negative edge: la alarma aparece con un flanco negativo, no cuando aparece la
seal, sino cuando desaparece.
Triggers an action: la alarma dispara una accin en C que debe ser asignada.
Event tag: Variable y bit de la variable que activa la alarma.
Acknowledge tag: variable y bit de la variable donde se guarda automticamente 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 seal de
proceso (si an existe la alarma o no).
Format DLL:
Los dems bloques de usuario se activan si han sido seleccionados a la hora de configurar
la lnea de alarmas.
TAG LOGGING
7 TAG LOGGING
7.1 Introduccin
El tag logging es la parte del WinCC que se encarga del almacenamiento de los valores
de proceso en el disco duro, as como de mostrarlos tanto en formato de grfica como de tabla
de valores. As mismo, permite editar dichos valores a posteriori desde la base de datos.
La presentacin del tag logging en pantalla es la siguiente:
Si activamos esta casilla, todas las variables que definamos en los archivos de nuestro
proyecto generarn en el subdirectorio Pde\archivo_de_valores un archivo en el que
almacenan su valor de proceso, componindose dicho archivo del nombre de la variable, con la
extensin DBF. El formato Dbase III es exportable por la mayora de las aplicaciones. El
archivo que genera posee 3 columnas:
T: Fecha y hora de la adquisicin del valor. Este campo es de texto y no separa la fecha de
la hora, por lo que su tratamiento es relativamente difcil, 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 almacena en el archivo.
F: Cdigo de error de lectura del valor del proceso. Si el valor es correcto, este campo est
a cero.
Los predefinidos aparecen en la figura, pero si deseamos uno nuevo, solo necesitamos
rellenar la pantalla de nuevo timer, o modificar un o existente.
En la imagen se puede ver un nuevo temporizador que actuar cada 3 segundos. Las
opciones son:
Que se dispare el temporizador solo entrar al WinCC, pese a que no le corresponda an.
Que se dispare el temporizador al salir del WinCC, pese a que an no le corresponda.
Poder seleccionar la fecha exacta de comienzo del ciclo de disparo. A partir de ese minuto
y ese segundo, comenzar cada 3 segundos a dispararse.
Tambin 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 compresin de
los datos antes de almacenarlos, y una descompresin 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 botn select podemos ir aadindolas a la lista. Estas
variables slo comparten el lugar de almacenamiento, pero no necesariamente el tiempo de
lectura ni el de almacenamiento, como posteriormente veremos.
Si presionamos con el botn derecho sobre el nuevo archivo de valores que se nos ha
generado en el Tag Logging podemos editar sus propiedades.
Las opciones que podemos modificar son:
Archive name: podemos cambiar su nombre a posteriori.
Comment: podemos aadir un comentario sobre dicho archivo.
Archiving at system starts: Indica si el almacenamiento en el disco duro debe de
comenzar solo entrar en la runtime de WinCC, o cuando nosotros se lo indiquemos con una
funcin. La opcin enabled comienza a almacenar nada ms entrar en la runtime, la opcin
locked no.
Archive type: Esta funcin de solo lectura nos indica de que tipo es nuestro archivo. Esto
quiere decir que una vez generado un tipo de archivo no podr ser modificado
posteriormente, por lo que tendremos que generar otro y borrar el actual si deseamos
cambiar de tipo de archivo nuestros valores.
Authorization level: Nivel de autorizacin requerido para poder leer los valores del
archivo, y para poder editarlos. Hay que tener en cuenta que estos datos son variables
dependiendo del archivo en cuestin, luego se puede hacer archivos protegidos (nivel
elevado de proteccin) y otros desprotegidos. Tambin se puede dejar desprotegida la
lectura, y proteger la escritura para que solo el responsable pueda modificar los datos en el
archivo.
Action during start/enabled: podemos definir una accin en C que se ejecutar cada vez
que se habilite la lectura y almacenamiento en el archivo.
Memory location: donde guardar los valores ledos. Se pueden guardar en la memoria
RAM del ordenador o en el disco duro. Si se selecciona en la memoria del ordenador, el
clculo para saber cuanta RAM estamos consumiendo es:
Las variables que hemos definido en nuestro archivo, aparecen en la ventana inferior
en forma de tabla. Si presionamos el botn derecho sobre cada una de ellas podemos editar
sus propiedades particulares.
Variables Cyclic Selective: Valores que deseamos guardar en el WinCC solo durante
determinados perodos de tiempo (p. Ej: cada vez que pase un ladrillo por el horno, y mientras
est dentro, almacenar los valores de presin en el WinCC).
Also put archived value in tag: determina que variables deben tambin almacenarse en
esta variable de archivo adems de la que se indic al principio.
Unit:
Save on error: permite determinar que valor almacenar ante la aparicin de un error en la
lectura de la variable desde el proceso. Las opciones posibles son:
Last value: Almacena el ltimo valor ledo desde el administrador de variables.
Substitute value: toda variable dispone de un valor de substitucin. Podemos
determinar el almacenar dicho valor frente a un error de comunicaciones.
Archive upon change: Esta opcin permite almacenar el valor exclusivamente si cambia
dicho valor en el proceso. Es muy interesante, ya que permite substituir las carencias del
tag logging en la adquisicin de datos realizando programacin 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
posea se le aumenta o disminuye en una cantidad insignificante para su posterior anlisis
desde WinCC. As, solo adquiere el valor el WinCC cuando se modifica, que en realidad es
cuando existe un bit en el PLC.
Hysteresis: % 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
opcin es interesante en valores que est variando ligeramente en el PLC, pero slo nos
interesa almacenarlos cuando su variacin sea significativa, ya que en caso contrario se
convertira en un almacenamiento continuo de la variable.
Para que una de estas funciones realicen la accin deseada, deben devolver un 1. As, si
deseamos arrancar el almacenamiento de valores en la grfica con un bit, lo que haremos ser
consultarlo dentro de una funcin. Supongamos que deseamos arrancar la grfica 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 cdigo 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
asignrselas de nuevo. Las posibles preconfiguraciones son:
Process Archive.
User archive.
Compressed archive
Analog tag: Preconfiguracin de una variable analgica (mayor que un bit).:
Binary tag: Preconfiguracin 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. Lgicamente aqu slo
existe el ciclo de almacenamiento, ya que no se pueden hacer medias de valores, ni
sumas. Podemos as su vez asignar un texto a el estado 0 y otro al 1 (p. Ej 0=parado y
1=arrancado) para una mayor claridad en la grfica.
7.6.1 Introduccin
Las tendencias de valores son utilizadas para mostrar la evolucin de una variable de
proceso en el tiempo de manera grfica. La limitacin ms importante es que el eje X siempre
obligatoriamente debe ser de tiempo, por lo que no podemos utilizar las curvas o tendencias
(trends) para realizar una grfica en la que comparemos la presin con respecto a la humedad,
por ejemplo.
Dentro de una ventana de tendencias podemos tener una o ms curvas, cada una con
un color identificativo, y que asociaremos a variables de archivo que formarn parte de un
archivo generado anteriormente, como ya vimos.
Ruler visible while opening the picture: La opcin regla visible al abrir la ventana nos
presenta en pantalla automticamente una ventana auxiliar en la que se van visualizando los
valores instantneos 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.
Display trends staggered: Muestra las tendencias en grficas separadas. Esta opcin
es interesante en ciertas situaciones en las que los valores de dos o ms tendencias van
parejos en el tiempo, por lo que se estn solapando, y deseamos observarlos o plasmarlos de
manera individual.
Color: podemos definir el color de la tendencia para poder identificarla con respecto a
las dems 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 ejecucin
podemos desde esta ventana modificar dicha variable, con lo cual es posible realizar la
operacin de cambiar de seal de proceso a representar sin modificar el desarrollo de
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 ms de una.
Label: etiqueta de texto que identifica el eje X (generalmente la unidad de tiempo).
Update: Actualizar o no la ventana de curvas.
Autorange: Realiza un escalado del eje x, mostrando los ltimo n valores en dicho eje. El
nmero n es el valor que estipulemos nosotros en el apartado measured.
Si no seleccionamos autorange, entonces se nos pide una fecha a partir de la cual se
quiere presentar los datos almacenados. Si no seleccionamos la casilla time period,
entonces tenemos que introducir una fecha final, y nos muestra todos los datos en ese
intervalo de tiempo.
Si por el contrario seleccionamos la casilla time period, se nos pide el tamao del periodo
de tiempo. Las opciones posibles son:
500 ms.
1 segundo.
1 minuto.
1 hora.
1 da.
cuando estemos intentando representar slo los valores de bajo rango nos aparecer
una lnea superpuesta al eje X, como si estuvieran todos a cero.
Trend display: La unin de los puntos de la variable de archivo se puede realizar de varias
maneras en la pantalla:
Stepped trend: mediante escalones cuadrados que unen nuestros puntos.
Fill area interpolated trend: muestra los puntos como un rea que rellena del color de
la tendencia. Este tipo impide que otras tendencias se puedan apreciar. En la figura se observa
como la tendencia 2 queda oculta tras la tendencia 1 debido a que sta ltima se presenta bajo
el tipo rea rellena. Slo es aconsejable este tipo para una sola curva, o cuando la curva a la
que se le aplica este estilo ocupa la ltima posicin.
Fill area stepped trend: Igual que el anterior pero la unin se realiza mediante
cuadrados y no de manera lineal.
Propiedades de color y lmites: en esta ventana podemos definir el color que debe
adoptar la tendencia cuando baje o sobrepase unos lmites que nosotros estipulemos.
Lmite inferior: Cuando el valor de la tendencia baje de 30, el color de la misma cambiar
a rojo.
Lmite superior: Cuando el valor de la curva sobrepase 900 cambiar a amarillo.
El ejemplo de abajo muestra esto mismo, con lmite inferior de 200 y superior de 800.
En la ventana choose object podemos aadir y restar las curvas que van a componer
nuestra ventana de tendencias. A su vez podemos seleccionndolas editar mediante el botn
Template las caractersticas de la ventana. Estas son:
Status bar: Barra de estado en la que se indica el proceso que est teniendo lugar
actualmente.
Toolbar: Barra de herramientas con opciones accesibles desde botones ya
preconfigurados.
Read data from archive inmediately: Leer los datos del archivo al entrar en la ventana.
Cuando existe en el archivo una gran cantidad de datos, puede ser interesante desactivar
esta opcin y que no pierda tiempo leyndolos. Unicamente cuando rebobinemos marcha
atrs en el histrico, leer los datos del disco duro.
Font: Fuente de los textos de la escala.
Color: Color del fondo de la grfica.
Set parameters: Esta ventana posibilita que un usuario de WinCC parametrice sus
ventana de curvas a su gusto, despus de haber configurado el programador la
instalacin. Las modificaciones que se realicen, pueden ser de tres tipos:
Voltiles, que se pierden en cuanto se sale de la ventana actual. Esta situacin se
produce si en la ventana Persistence no se selecciona nada.
Primer dato: si la grfica est detenida, se desplaza al primer elemento del archivo.
Dato anterior: muestra el dato anterior del archivo, hasta llegar al primero.
Dato siguiente: muestra el dato siguiente del archivo hasta llegar al ltimo.
Mostrar curvas: mediante esta opcin podemos seleccionar que curvas deseamos
observar en la ventana La ventana de dilogo aparece abajo indicada..
Curva previa al frente: esta opcin trae la curva que tengamos en segundo plano al
primero y viceversa.
7.7.1 introduccin
Las tablas de valores permiten representar los datos de los archivos en forma de
tablas, para poder comparar los valores numricos, adems de poder editar dichos valores
directamente desde las mismas, lo que posibilita la modificacin 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 ms columnas, cada una de ellas asociada a un valor de un
archivo que hayamos previamente generado.
Editar una columna: Presionando este botn y seleccionando una celda de una
columna, si dicha columna tiene activada la opcin Can be edited, ser posible
modificarla.
Enviar la columna previa a la primera posicin.
TEXT LIBRARY
8 Text Library
8.1 Introduccin
Text Library es la parte el WinCC que se encarga de gestionar los mensajes de textos.
Cuando necesitamos realizar una aplicacin que deba cambiar sus textos segn el idioma
seleccionado, necesariamente deberemos realizar una asignacin de dichos textos en un
idioma u otro.
Mediante text library se consigue enlazar a travs de un nmero identificativo cadenas
de texto de diferentes idiomas. Dicho nmero se asigna automticamente a los controles que
utilizamos en el Graphic Designer. De esta manera, cuando dentro del WinCC en modo runtime
cambiamos de cdigo de idioma, automticamente sustituye los textos asignados a un nmero
en un idioma por el correspondiente.
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 Ingls. Evidentemente, el hecho de que el idioma sea el
Ingls no implica que podemos poner los textos en castellano, y no tener que cambiar de
pgina de idioma.
Sin embargo, si deseamos disponer de dos idiomas, lo correcto sera generar nuestros
mensajes en el idioma correspondiente (espaol o los diferentes dialectos, si as
correspondiera en la provincia).
Vamos a generar dos nuevos idiomas, Espaol y Cataln. Para ello, en el men
Options->Add language podemos aadir 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 ingls, traducindolos
nosotros mismos al idioma correspondiente.
U SE R
ADMINISTRATOR
9 User Administrator
9.1.1 Introduccin
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, ms aquello que se permite solo a los de nivel 3.
Cuando se bloquea una accin para nivel de password 3, significa que todos los que dispongan
de nivel igual o superior a 3 podrn realizarla.
En WinCC esto no es as, definindose en lugar de niveles, capacidades de realizar
cosas (cambiar valores en archivos, entrar a determinadas pantallas, resetear alarmas, etc..).
Dichas capacidades pueden ser o no compartidas por usuarios. Estos usuarios se
pueden agrupar en grupos, slo para una ms fcil identificacin, ya que no es imprescindible
que compartan 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 administracin el botn derecho, seleccionaremos add group. Introducimos
el nombre del grupo y presionando de nuevo sobre el grupo creado, le aadimos dos usuarios.
Las capacidades que dispone un usuario aparecen con un piloto rojo indicativo
seleccionadas.
Para aadir 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 operacin es necesario realizar de nuevo doble click en el mismo
lugar.
Lgicamente, lo primero que debemos realizar, ser estudiar los diferentes bloqueos o
lmites que requerimos en nuestro desarrollo para posteriormente asignrselos a los usuarios
creados.
Un bloqueo es una accin cuya capacidad de realizacin diferencia a unos usuarios de
otros. Normalmente se suele bloquear el acceso a determinadas pantallas, la impresin de
determinadas grficas, la activacin de determinados elementos de campo (p. Ej. pasarlos a
manual y que no realicen su actividad en automtico) y sobretodo la modificacin de los valores
de proceso, ya sea en produccin (bloqueo de cajas), como a de manera posterior
(modificacin de archivos de proceso).
Para crear un nuevo bloqueo o lmite que permita definir una capacidad a un usuario,
debemos seleccionar en el men Table-> Add New Authorization Level.
Nos indica un nmero de nivel de autorizacin, que debemos aceptar como bueno, ya
que no podemos duplicar dicho nmero indicado. Esta accin nos lleva a disponer de una lnea
nueva con el nmero de orden indicado, pero que no dispone de ningn texto descriptivo, por lo
que ser de difcil asignacin dicho nivel si posteriormente olvidamos a que corresponda este
bloqueo.
Para aadir 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
asignacin del privilegio del bloqueo a los usuarios se realiza como vimos anteriormente.
Para cambiar el login o nombre identificativo solo es necesario realizar un solo click
sobre dicho nombre y se podr curiosamente cambiar, sin necesidad de ningn tipo de clave,
por lo que un superusuario puede modificarlo a su entera voluntad sin ninguna autorizacin 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 sistema, los privilegios
continan activos, por lo que si un usuario deja el sistema activado con su login, un par de
horas despus puede utilizar el sistema WinCC cualquier usuario sin necesidad de darse de
alta en el mismo y utilizando todos los accesos habilitados en funcin del nivel del anterior
usuario an en activo.
Como el olvido de dejar activado el password es muy frecuente con el tiempo, resulta
inservible un sistema de passwords que siempre se encuentra habilitado. Para evitar este
punto, todo usuario dispone de una casilla de desconexin automtica 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, debern disponer previamente del nivel requerido.
GLOBAL SCRIPT
10 Global Script
10.1 Introduccin
El global script es un compilador de C incorporado con el WinCC, que nos permite
realizar compilaciones de cdigo objeto (con un formato un tanto especial, ya que no lo deja en
obj) sin necesidad de salir del propio entorno.
Este cdigo generado puede ser aadido directamente al propio runtime y generarse
cada cierto tiempo, o posteriormente asociarse a un evento de un objeto. Si desde el editor del
Graphic Designer seleccionamos realizar una accin en C, automticamente se nos activa el
global script para permitirnos editar dicha accin en el compilador de C.
Vamos a realizar una funcin de proyecto, que mediante cdigo C nos suma dos
valores enteros y nos devuelve el resultado. El cdigo es el siguiente:
int Temporal;
Temporal=Valor_1+Valor_2;
return(Temporal);
#include "apdefap.h"
int Temporal;
int temp1,temp2;
Las funciones internas son las bsicas con las que se puede trabajar a la hora de
realizar funciones o acciones en C. Son propiamente las instrucciones de programacin de que
dispone el WinCC para poder realizar las subrutinas por cdigo.
Dichas funciones tambin son comunes y se encuentran en el subdirectorio aplib, pero
se diferencian de las anteriores en la extensin, que en este caso es icf.
Adems, 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 utilizan para realizar disparos de acciones por
tiempo (cada 10 segundos hacer x), 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 grfica, cuando el valor ha sido superado, etc..).
Existen dos tipos de acciones, las comunes a todos los ordenadores de nuestro
proyecto, que se agrupan bajo el epgrafe de Global Actions, y las que pertenecen
exclusivamente a nuestro ordenador, que se agrupan bajo el nombre dado a nuestra estacin.
En sistemas monopuesto la diferencia es inexistente, dando igual en qu apartado se
genere la accin para luego poder ser llamada.
Una accin se almacena siempre en un fichero de extensin pas, que suele guardarse
en el subdirectorio pas de nuestro proyecto. Si la generamos como accin local (de nuestra
estacin), se almacenar en el pas que cuelga del subdirectorio generado con el nombre de
nuestra estacin. Si por el contrario la generamos global, se almacena en el subdirectorio pas
de nuestro proyecto.
Una accin no es una funcin, por lo que no podemos:
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 accin.
Ni cambiarle el nombre, que por defecto es gscAction.
Ni pasarle parmetros 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 accin (que es
gcsAction), sino el del archivo en el que la almacenamos, que finaliza en extensin pas.
En event podemos seleccionar por ciclo standard, con lo cual podemos asignar la
llamada a un ciclo de usuario personalizado, o por hora, da, semana, mes o ao. En este
segundo caso, nos permite indicar a partir e que fecha u hora debe empezar a realizar dicha
accin.
Tag: Podemos disparar una accin cuando alguna o varias variables cambien de valor.
#pragma code(NOMBRE_DE_LA_DLL.DLL)
#include NOMBRE_DE_LA_CABECERA.h
#pragma code()
Una variable local es toda aquella cuyo mbito de accin 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 fcilmente solventadas.
Para definir una variable local, simplemente hay que declararla dentro de una funcin o
evento. Sin embargo para definir una variable global:
si estamos declarndola en una accin de C, se debe declarar antes de la
declaracin de la funcin:
int variable=0;
void subrutina()
{
si estamos declarndola en una propiedad o evento, deberemos de antecederla de
la instruccin extern:
void OnProertyChange()
{
extern int variable;
a=0;
Nota: Si declaramos una variable externa sobre una funcin standard, esta
funcin existir en todos los proyectos que generemos.
REPORT DESIGNER
11 REPORT DESIGNER
11.1 Introduccin
El mdulo report designer se encarga de todas las tareas relacionadas con la impresin
de datos y documentos desde WinCC a una impresora o a un archivo de texto. Un report es un
documento diseado previamente que posee una serie de campos, en el momento de enviarse
el documento a impresora o fichero, toman el valor de los datos con los que estn relacionados
en la propia base del WinCC.
La finalidad lgica de dicho reports a impresora es permitir al usuario tener constancia
en papel de un resumen organizado de los valores del proceso, alarmas, o estado de la
instalacin en un momento determinado.
Dentro del apartado report designer existen tres subdivisiones, cada una con una
finalidad distinta.
11.3 Layout
Si presionamos con el botn derecho sobre el layout, podemos ver sus propiedades.
Repasemos las ms importantes:
Layout:
Name: nombre del objeto layout.
Context: a que contexto debe relacionarse este layout. Desde el graphic designer existen
asignaciones a layouts de sistema a la hora de imprimir determinadas acciones (p. Ej., el
botn de impresin de alarmas desde la ventana de alarmas est asignado a un contexto.)
Geometry:
Width: ancho de la pgina.
Height: alto de la pgina.
Paper size: formato de tamao del papel en que se imprime el layout (carta, A4,etc..)
Orientacin: Vertical o apaisado.
Left print margin: margen izquierdo a partir del que se empieza a imprimir.
Top dinamic margin: margen entre la parte superior de la pgina y el comienzo de la parte
dinmica del documento. Estas distancias determinan la anchura de la parte gris del layout
(cabecera y pie de pgina).
Miscelaneous:
Cover sheet: Todo layout puede tener una pgina inicial, en la que se puede introducir los
textos informativos al respecto del tipo de layout, la instalacin en la que se genera,
etcAqu se determina si esta pgina inicial debe de aparecer o no en el documento final.
Final page: lo mismo, pero con una pgina de finalizacin de documento.
Visualizar parte esttica del documento. Solo puede modificar la parte cabecera y
pierde del documento.
Visualizar parte dinmica del documento. Solo se puede modificar la parte central, no la
cabecera ni el pie de pgina.
Como en el graphic designer, lo ms importante del layout sern los objetos que
insertemos en el mismo. Disponemos de una ventana en el que se nos muestran los mismos
por categoras.
Los objetos dinmicos requieren una conexin, que es el vnculo con el sistema que
determina que valores del mismo deben plasmarse en el objeto a la hora de la impresin. En
este caso, si queremos imprimir:
las pictures de WinCC: deberemos seleccionar General Display de picture. Nos
mostrar todas las imgenes diseadas, con el tamao que le demos a dicho objeto.
Archive data selection: archivo del que hay que sacar los datos y tendencias a mostrar en
la grfica.
Dynamic Table: tabla de datos cuyas celdas se rellenan de los datos indicados
mediante connect. Se utiliza para mostrar todo tipo de datos numricos y de texto, en oposicin
a la anterior que mostraba dibujos y grficas. Las posibilidades dentro de connect son muy
amplias, por lo que ejemplificaremos creando una lista de valores de proceso en impresora.
Dentro de tag logging runtime, tag table se encarga de mostrar una tabla con los
valores de variables de proceso durante un periodo de tiempo determinado. Asignamos esta
conexin a la tabla creada.
De esta manera se pueden realizar tablas de datos por impresora, listados de alarmas,
y en general cualquier representacin de datos durante el tiempo o listas almacenadas en la
base de datos, ya sea del desarrollo CS o de runtime RT.
La impresin por lneas se utiliza para mostrar generalmente las alarmas o eventos de la
instalacin en tiempo real por impresora.
Podemos definir la cantidad de lneas que queremos que ocupe una hoja, los
mrgenes, y los textos de cabecera y pie de pgina. Todas estas opciones evidentemente
estn ideadas para una impresora matricial que solo utilizaremos para caracteres de texto.
Definidos estos parmetros, no queda determinar el formato del mensaje que vamos a
sacar en la lnea de layout. Para ello, si seleccionamos el botn Selection de esta ventana,
podemos acceder a los bloques que hayamos creado en la parte de Alarm logging. Mediante
estos bloques confeccionamos nuestra lnea.
Los archivos de line printer poseen la extensin rp1 y se almacenan en el subdirectorio
Prt de nuestro proyecto.
11.5 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 despus del nombre del layout significan respectivamente
Printer y 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 le 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:
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 responde (falta de papel, etc..),
poder imprimir por la siguiente que est en la lista asignada.
Tambin podemos exportar el documento o report a un fichero emf en el disco duro. En
este caso, se genera en nuestro proyecto un subdirectorio llamado Prt_Out, dentro del cual se
genera otro directorio con el nombre del job ms la fecha y la hora en que se imprime, donde
se almacena cada pgina de nuestro documento en formato EMF (grfico).
Los iconos de un job indican si est configurado para disparase a travs de un evento
de tiempo de manera automtica 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
funcin en C de ejecucin de reports.
Existe la posibilidad de poder realizar una visualizacin previa del report sin necesidad
de esperarse al evento de tiempo ni tener que llamarlo desde C. Si presionamos sobre el job
con el botn derecho estando el runtime activado, podemos seleccionar Job Preview, con lo
que podremos observar como nos quedara la impresin en el momento actual, e incluso
imprimir desde esta ventana el report.
EJEMPLO BSICO
12 EJEMPLO BSICO
12.1 Introduccin
Para ejemplificar todo lo visto hasta ahora vamos a realizar un ejemplo de las diferentes
posibilidades a la hora de configurar las pantallas del WinCC. Comenzaremos por las
caractersticas bsicas a la hora de realizar una instalacin de control, para posteriormente
introducirnos en el posibilidades ms particulares.
Comenzaremos creando un nuevo proyecto de nombre DUNKER. Lo primero que
necesita nuestro proyecto es un botn para desactivar la runtime desde la propia runtime de
WinCC.
Creamos una picture desde el graphic designer que se llame MAIN.PDL. Colocamos
un botn como muestra la figura, y tenemos dos opciones:
utilizar el asistente de Exit WinCC Runtime
o colocar la instruccin DeactivateRTProject (); en el evento Mouse action.
Comprobamos que podemos saltar de una a otra con el teclado o con el ratn.
Vamos a ver como podemos activar un piloto en pantalla que cambie al color verde
cuando se active un bit en el PLC. Para ello, crearemos una caja I/O, con una variable interna
de nombre CONFIRMACION_MARCHA de 32 bits unsigned. Creamos tambin un crculo
quedando la imagen siguiente:
En este caso nos interesa que cambie de color cuando cambie dicha variable
nicamente, aunque no siempre ser as.
Este tipo de configuracin nos permite chequear el estado de un bit de una variable de
comunicaciones. Por lo tanto, lo ms interesante ser agrupar todas las variables binarias
(confirmaciones de marcha, estados manual/automtico, etc..) en variables lo ms grandes
posibles. En el caso de S7 el tamao ser de 32 bits, mientras que en el caso de S5 de 16 bits.
Si seleccionamos evaluate status of tag podemos indicar un color especial frente a
errores de comunicaciones, fallo en la conversin de datos y dems errores que indican que el
valor a representar no corresponde al estado real de la variable asociada.
Esta opcin est pensada para las variables de comunicaciones. Con esto cuando el bit
0 de la variable.
Como sabemos WinCC tiene una biblioteca de imgenes y botones. Existen algunos
ellos que ya vienen preconfigurados para representar un estado binario (pilotos de aviso).
Seleccionamos la biblioteca y en Global Library->Smart Objects->Toggle Buttons
elegimos el botn de la figura.
En las propiedades del piloto, asignamos a tag assignement la variable igual que hicimos
anteriormente.
Con esto, cuando el bit valga uno aparece un piloto amarillo, y cuando valga cero es
rojo.
Puede ser que la imagen de un piloto amarillo no sea la ideal para representar el
estado del motor en marcha y deseemos modificarla para introducir nuestra propia imagen.
Para ello, en el men contextual del objeto seleccionamos Customize Object->Edit. Ahora
seleccionamos Configuration Dialog, y nos aparece la asignacin de imgenes que realiza el
objeto. Simplemente tenemos que asignar la que nosotros deseemos. Una vez funcione el
objeto segn nuestros deseos, debemos volver a la opcin Customize Object->Finish
Editing.
En realidad, WinCC crea un nuevo objeto al que asigna dos wmf y el siguiente cdigo:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
BOOL value;
LINKINFO plink;
PDLRTGetPropEx(0,lpszPictureName,lpszObjectName,"Toggle",VT_BOOL,&value,NULL,
NULL,0,NULL,NULL);
if(value) value =FALSE;
else value = TRUE;
PDLRTGetLink(0,lpszPictureName,lpszObjectName,"Toggle",&plink,NULL,NULL,NULL);
//Rckgabe-Typ :BOOL
A veces nos interesa representar imgenes dependiendo del estado del bit de una
variable (compuerta abierta o cerrada).
Para ello, lo primero que necesitamos son dos imgenes. En la biblioteca disponemos
dentro de global library->Valve 3D de una vlvula de paso. La aadimos a nuestra picture y la
desagrupamos.
Los objetos de la biblioteca generalmente son un grupo de otros objetos. Para
desagrupar el objeto seleccionamos del men group object->Ungroup. Ahora modificamos el
color de la tubera para que adquiera el color azul (paso de agua).
Por ltimo volvemos a agrupar el objeto disponiendo del de la biblioteca y el
modificado.
Mediante este sistema podemos animar imgenes en relacin a un bit de una variable.
Ya tenemos configurado el text list para que cuando cambie el bit nos represente dicho
estado con un texto.
Los valores analgicos en S7 ya pueden ser tratados mediante nmeros reales, por lo
que vamos a elegir esta opcin en el ejemplo para obtener mayor resolucin. Creamos una
variable interna denominada VALOR_ANALOGICO de tipo Floating point 32. Seleccionamos la
caja I/O y realizamos la siguiente parametrizacin:
Tambin podemos definir la frecuencia de flashing como fast y el color de flashing off
igual al del fondo de la caja. Esto dar sensacin de desaparecer de la pantalla y volver a
aparecer.
Ahora ya puede guardar los cambios y comprobar el resultado introduciendo valores
entre 0 y 21 dentro de la caja I/O en el runtime.
Representar valores analgicos mediante barras es muy sencillo. Basta con asignar el
valor a representar (que en nuestro caso contina siendo el de la caja I/O) y parametrizar unos
mximo y mnimo de barra.
Nosotros realizaremos un ejercicio en que estos valores mximos sean a su vez
parametrizables.
En la picture CONSULTA_ANALOGICA, introducimos una barra, Y tres cajas de I/O
para controlar los valores de mnimo, mximo y fondo de escala, como muestra la figura.
Con esto podemos modificar la escala y observar la tendencia del valor (crece o
disminuye). Seleccionamos change color en segment, para que cambie de color por segmentos
la barra.
Adems de las barras, podemos representar los valores analgicos mediante un control
que existe en WinCC llamado gauge control. En realidad el gauge control es un control OCX
suministrado por WinCC, por lo que para poder crear un objeto gauge debemos insertar un
OLE Control. De la lista que se nos suministra elegimos WinCC gauge control. La apariencia
del control es la siguiente.
Vamos a repasar las propiedades de dicho control, ya que algunas de ellas son muy
interesantes a la hora de representar los valores analgicos en un proceso.
En OLE control properties tenemos:
backcolor: color de fondo del circulo indicador.
Background picture: podemos indicar un bitmap como fondo del indicador.
BevelInner: Tamao del borde del cuadro que rodea al indicador por su cara interior.
BevelOuter: Tamao del borde del cuadro que rodea al indicador por su cara exterior.
BevelWidth: Tamao del propio cuadro que rodea al indicador.
Center Color: color del crculo central de la aguja del indicador.
NeedleColor: color de la aguja del indicador.
Show danger: mostrar el trozo de la escala que indica zona peligrosa superior (color rojo
escala).
Show warning: mostrar el trozo de la escala que indica zona peligrosa inferior (color
amarillo escala).
Tic color: color de las divisiones de la escala.
ShowNormal: Mostrar la parte de la escala que esta entre los lmites mximo y mnimo
(parte verde).
Show DecimalPoint: Mostrar los nmeros de la escala con un decimal o no.
ShowPeak: Muestra una lnea indicando el lmite que ha alcanzado el valor por arriba o por
debajo (el pico mximo o mnimo que alcanz el proceso).
El control sobre los bits de una variable del PLC es una de las facetas fundamentales
en la configuracin de un sistema scada. La mayora de las acciones que implican dicho control
se basan en activar o resetear bits que conforman una palabra dentro de la memoria del PLC.
La variable de comunicaciones a controlar puede ser directamente una salida de PLC,
aunque lo ms comn es utilizar un estado de manual para el control por ordenador y un
estado de automtico para el control a travs del programa de PLC.
Nuestra intencin es activar un bit en una variable interna a travs de un botn. Para
ello, creamos una picture llamada ACTIVACION_BIT.PDL, que posee el siguiente aspecto:
Por ltimo debemos indicar el bit sobre el que se debe realizar la accin. Estos pasos
son idnticos para el segundo botn, salvo que en lugar de elegir setear el bit se elige resetear
el bit. Slo queda guardar las modificaciones realizadas y probar el runtime.
DWORD dwHelp1,dwHelp2;
dwHelp1=GetTagDWordWait("MOTORES");
dwHelp2=dwHelp1|4096;
SetTagDWordWait("MOTORES",dwHelp2);
Para que al levantar la presin sobre la tecla desaparezca el bit el cdigo debe de
asignarse en el evento keyboard->release y es el siguiente:
DWORD dwHelp1,dwHelp2;
dwHelp1=GetTagDWordWait("MOTORES");
dwHelp2=dwHelp1&(0xFFFFFFFF^4096);
SetTagDWordWait("MOTORES", dwHelp2);
Nota:
Si vamos a trabajar slo con el teclado, debemos
recordar siempre que:
se debe asignar una hotkey al objeto.
En el evento mouse action del mismo se debe
realizar una llamada setfocus, ya que es el nico
evento que realiza la tecla hotkey , por lo que si en
el mismo no tomamos el foco a nuestro objeto, no
se realizarn los eventos de teclado anteriormente
descritos.
Otra posibilidad es activar o desactivar varios bits de una misma palabra a la vez. Los
pasos a seguir son similares al primer caso, salvo que el Wizard ser distinto. Creamos dos
nuevos botones segn la figura:
Adems de poder activar bits mediante botones estndar de Windows, en los sistemas
de control se utiliza la superposicin de dos imgenes que simulan interruptores de parado y
arrancado. Mediante la pulsacin sobre esta imagen se activa el elemento y se visualiza su
estado. Con una nueva pulsacin se desactiva el bit y se vuelve al estado inicial.
En WinCC, esta posibilidad ya esta contemplada en la biblioteca dentro de Smart
Objects. Todos los Toggle Buttons poseen dos imgenes, y lo nico que tenemos que hacer
es asignar a la propiedad Tag Assignement la variable que se debe controlar desde estos
botones.
if (GetTagBit("VARIABLE_BOOL")==TRUE)
{
dwHelp1=GetTagDWord("CONFIRMACION_MARCHA"); //Return-Type :DWORD
dwHelp2=dwHelp1|8;
SetTagDWordWait("CONFIRMACION_MARCHA",dwHelp2);
}
else
{
dwHelp1=GetTagDWord("CONFIRMACION_MARCHA"); //Return-Type :DWORD
dwHelp2=dwHelp1&(0xFFFFFFFF^8);
SetTagDWordWait("CONFIRMACION_MARCHA",dwHelp2);
}
WinCC dispone de un objeto propio adems del ya visto de Windows para poder
introducir y visualizar a la vez valores analgicos en el proceso. Este objeto se encuentra en
Ole Control->Slider Control. La imagen es la siguiente:
El problema que tiene este objeto es que al asignar la propiedad position, solo es de
lectura, pero no modifica el valor de proceso al que se asigna al modificar la posicin del slider
el usuario.
Esto se solventa aadiendo el siguiente cdigo C en el evento Miscelaneous del
objeto slider.
#include "apdefap.h"
void Change(char* lpszPictureName, char* lpszObjectName , long Position)
{
SetTagDWord("CONFIRMACION_MARCHA",Position); //Return-Type :BOOL
}
Algunos objetos, como un cuadrado, poseen la propiedad Dynamic Filling, que les
permite rellenar su fondo en funcin de un valor de proceso. El nico inconveniente es que el
valor es escalado entre 0 y 100, de tal manera que si el valor de proceso pasa de 100, el objeto
queda completamente rellenado, sin mostrar nuevos incrementos.
Para solucionar esto, se puede utilizar el escalado de variables que permite el Tag
Management, pasando del valor de proceso a un valor entre 0 a 100.
EJEMPLO AVANZADO
13 Ejemplo avanzado
Nota: todas las variables del canal DDE se consideran variables de comunicaciones,
por que es necesario tenerlas en cuenta a la hora de comprar una runtime de un determinado
nmero de tags.
Si deseamos acceder a variables que se encuentren en la hoja 1 de un libro de excel,
basta con realizar la parametrizacin del enlace que aparece en la imagen siguiente.
Setup attemps: veces que se debe de permitir realizar la comunicacin DDE entre las
aplicaciones:
Infinite: se permitir comunicar mientras est activo el canal DDE entre las
aplicaciones (ninguna de las dos se cierre).
Quantity: se permitir comunicar un nmero determinado de veces entre las
aplicaciones.
Sin embargo, para asignar un enlace a otra hoja que no sea la primera, en el apartado
Topic es necesario indicar el siguiente acceso:
[ejemplo.xls]Hoja2
Los botones Leer() y Ecribir() poseen asociadas dos macros (que en el ejemplo se
llaman setvalue() y getvalue(), pero que podemos denominar como deseemos.
En realidad dichas macros son unas pequeas instrucciones en visual basic, que
vamos a explicar de manera personalizada (simplificando el ejemplo suministrado por
DemoV4).
Sub GetValue()
Rem----------------------------------------------------------------------
Rem Leer valores de WinCC desde Excel
Rem----------------------------------------------------------------------
ActiveCell.FormulaR1C1 = Str(value)
End Sub
Rem///// end /////////////////////////////////////////////////////
La macro setvalue para activar las dos primeras variables del ejemplo puede ser la
siguiente:
Sub SetValue()
Rem----------------------------------------------------------------------
Rem ESCRITURA DE VALORES DESDE EXCEL A WINCC
Rem----------------------------------------------------------------------
End Sub
Una de las grandes ventajas de utilizar la comunicacin OLE entre aplicaciones es que
no consume variables de comunicaciones, a diferencia de DDE, por lo que son gratutas,
mientras que las segundas deben de comprarse.
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char*
lpszPropertyName, UINT nFlags, int x, int y)
{
ProgramExecute("ISQL.EXE -q -b -c
UID=DBA;PWD=SQL;DBF=C:\\exportar\\exportarRT.DB;DBN=CC_Exportar_99-01-
29_21:17:03R; read C:\\exportar\\DB\\CONSULTA.SQL");
Volvemos al WinCC y activamos en COMPUTER la parte del runtime del tag logging, y
definimos como imagen inicial esta picture creada (en nuestro ejemplo como siempre la hemos
denominado MAIN.PDL).
En realidad lo que hemos hecho antes ha sido llamar a una utilidad de SQL Anywhere
llamada ISQL que se ha encargado de realizar la exportacin.
Tambin podemos llamar directamente desde Windows al ejecutable isql.exe. En la
conexin deberemos de pasar los parmetros DBA y como password SQL:
Podemos desde la ventana del interactive SQL realizar las consultas que deseemos
cargando nuestro fichero *.sql en que realizamos la consulta.
Creamos otra picture denominada AYUDA_1.PDL que estar compuesta por un static
text y un botn como se aprecia en la figura inferior. Es importante recordar que en el static text
el poder introducir diferentes lneas de texto se consigue presionando la tecla ENTER + SHIFT.
Asignamos a la picture Window que hemos creado la picture AYUDA_1.PDL con las
siguientes propiedades (adems de DISPLAY=NO):
Queremos que presionando con el botn derecho del ratn sobre el botn AYUDA
CON EL BOTON OK aparezca esta ventana de ayuda, y que desaparezca al presionar el
botn ACEPTAR. El cdigo en el botn AYUDA CON EL BOTON OK en el evento Press
Rigth es el siguiente:
SetVisible("AYUDAS.PDL","Picture Window1",1);
SetVisible("AYUDAS.PDL","Picture Window1",0);
Otra posibilidad a la hora de plasmar ayudas contextuales es que con el botn derecho
pinchado sobre el objeto seleccionado aparezca una ventana de ayuda que desaparece
automticamente despus de un tiempo predeterminado.
Para realizar esto, utilizaremos la picture AYUDA_1.PDL pero borrndole el botn
ACEPTAR, con lo que para que desaparezca tendremos que programar una accin en C.
SetVisible("AYUDAS.PDL","Picture Window1",1);
La idea es activar una variable interna de tipo bit al mostrar la ventana de ayuda. Esta
variable interna, activar una accin en C que ir contando automticamente hasta llegar a 5
segundos, tiempo en que ocultar la ventana de ayuda.
En la picture AYUDA_1.PDL, en el evento Open picture programamos:
SetTagBit("TRIGGER_AYUDA_1",TRUE);
TRIGGER_AYUDA_1 es una variable interna que nos hemos definido de tipo BOOL y
que debe de disparar una accin en C. Nos vamos al Global Script y creamos una nueva
accin de tipo global que contenga el siguiente cdigo:
#include "apdefap.h"
return(lpszPictureName);
Esta funcin nos devuelve el nombre de la ventana desde la que ha sido llamada.
Para ejemplificar esto ltimo vamos a crear una nueva picture llamada
INTRODUCCIN.PDL que posee el siguiente aspecto:
Las variables asociadas a los campos de I/O van a ser las conocidas
VARIABLE_ANALOGICA, VALOR_MINIMO y VALOR_MAXIMO.
Ahora creamos otra nueva picture llamada CAJA_INTRODUCCION.PDL con un tamao de
300*400 y el siguiente aspecto:
SetTagFloat("TEMP_VARIABLE_ANALOGICA",GetTagFloat("VARIABLE_ANALOGICA"));
SetTagFloat("TEMP_VALOR_MINIMO",GetTagFloat("VALOR_MINIMO"));
SetTagFloat("TEMP_VALOR_MAXIMO",GetTagFloat("VALOR_MAXIMO"));
Y el de aceptar:
SetTagFloat("VARIABLE_ANALOGICA",GetTagFloat("TEMP_VARIABLE_ANALOGICA"));
SetTagFloat("VALOR_MINIMO",GetTagFloat("TEMP_VALOR_MINIMO"));
SetTagFloat("VALOR_MAXIMO",GetTagFloat("TEMP_VALOR_MAXIMO"));
float valor,minimo,maximo;
if (valor<minimo)
{
valor=minimo;
MessageBox(NULL,"El valor analgico debe ser mayor que el valor minimo.","Error de
introduccin",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMO
DAL);
}
if (valor>maximo)
{
valor=maximo;
MessageBox(NULL,"El valor analgico debe ser menor que el valor maximo.","Error de
introduccin",MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMO
DAL);
}
En las propiedades de los botones podemos asignar tanto el incremento que van a
realizar, como la variable a incrementar/decrementar, como el lmite que no se puede rebasar.
13.7 Animacin
La animacin de los procesos a travs de la lectura de un bit es la forma ms visual de
mostrar el funcionamiento del proceso. En WinCC es el status display el que se encarga de
realizar esta accin, ya que es un objeto que contiene hasta un mximo de 31 imgenes, y que
en funcin de un ndice ir mostrndolas.
El principal problema reside en el hecho de que en los procesos, el movimiento debe de
producirse cuando el bit de una variable est activado. Por lo tanto, deberemos de mediante
una funcin en C, animar una variable interna mientras dicho bit se encuentre activo.
Creamos una picture llamada ANIMACION.PDL. Vamos a utilizar unas imgenes que se
encuentran en la demo de WinCC, en el subdirectorio GraCS y que son 29 imgenes BMP
llamadas DMP00000 a DMP00029.
Asignamos a un objeto status display las 29 imgenes como muestra la figura:
Hay que observar que a partir de la imagen 14 desde esta ventana no permite
introducir los valores, por lo que deberemos ir a properties->state->Current status y asignar a
mano el nmero y la imagen en Basis Picture.
La pantalla resultante, con un botn para parar la animacin y otro para arrancarla
debe quedar aproximadamente as:
#include "apdefap.h"
if (indice>28)
{
indice=0;
}
else
{
indice++;
}
return(0);
}
Solo queda comprobar que la animacin funciona. Recordar que es necesario poner un
botn que acceda a la ventana ANIMACION.PDL.
13.8.1 Introduccin
Vamos a crear una nueva picture llamada OLE, con un campo I/O asignado a la
variable VARIABLE_ANALOGICA. Introducimos desde Smart Objects->Ole Control el objeto
ProgressBar que es la barra de progresin que aparece cuando arranca el runtime de WinCC.
Observar que en la parte inferior nos indica a que OCX pertenece el control OLE.
El insertar un objeto nos permite acceder a sus propiedades, que irn en funcin de lo
que realice el mismo. En este caso nos interesa dinamizar el valor que debe representar.
El resultado es que tenemos una barra de progresin para mostrar valores analgicos
que WinCC no posea anteriormente. El nico inconveniente de utilizar OCX externos es que
no basta con instalar el WinCC en otro ordenador y copiar el subdirectorio de nuestro proyecto
para que la aplicacin funcione. Es necesario registrar en el sistema el control. En caso
contrario donde apareca el control mostrar una imagen en blanco.
Digital/Analog Clock
Creamos dos objetos iguales de OLE control, asignndole el objeto reloj en nuestra
picture OLE, y repasamos los parmetros de que dispone dicho objeto.
diagnosis, y poder retroceder en los mensajes para estudiarlos con calma, a la vez que poder
imprimirlos en papel.
Para poder enviar mensajes de aviso a la pantalla de diagnosis desde nuestra propia
aplicacin, creamos un botn y en el evento action mouse escribimos:
Diagnose Control
El objeto diagnose control nos indica que aplicacin de qu ordenador est enviando
un mensaje de error. En instalaciones en las cuales disponemos de varios ordenadores esta
ventana se vuelve bastante til a la hora de informar si uno de los ordenadores de la red est
teniendo problemas.
WinCC Webbrowser
WinCC dispone de un control para poder navegar a travs de internet sin necesidad de
salir del mismo ni utilizar el Explorer ni Netscape. Dicho objeto se denomina Webbrowser, y lo
nico que requiere es habilitar la direccin home en la que debe de arrancar.
13.9 Multimedia
Hay que observar que para que suene, deberemos de tener el fichero FRTRAIN.WAV
que est disponible en la Demo de WinCC copiado en el raz. Tambin destacar que como la
funcin pertenece a la API del sistema primeramente deberemos de declararla, incluyendo la
dll a la que pertenece, lo cual realizamos en las primeras tres lneas de cdigo.
13.10 Instancias
13.10.1 Introduccin
Vamos a seguir los pasos necesarios para generar una instancia de un prototipo de
ventana mediante la pulsacin de un botn.
Creamos una nueva picture llamada INSTANCIA.PDL, y que posee el siguiente
aspecto:
Las cajas I/O no poseen de momento ninguna variable asignada, as que vamos a
generarlas. Primeramente vamos a generar una estructura prototipo. En data types, en la
opcin structure tag, creamos una nueva segn la siguiente imagen:
Creamos tres nuevas variables (PID_1, PID_2 y PID_3) en Tag management una
nueva variable interna, del tipo que acabamos de definir (PID), con lo que veremos que se nos
generan tantas variables como elementos posee la estructura.
Volvemos a la picture anterior, y asignamos las variables creadas a cada una de las
cajas de I/O.
Ahora vamos a crear una nueva picture llamada VENTANA.PDL, con un tamao de
300x400 y el siguiente aspecto:
Teniendo creada esta ventana, el siguiente paso es asignar a cada propiedad de esta
ventana una variable de la estructura tipo (PID). Para ello podemos utilizar el Wizard llamado
Picture Modul Template del Wizard Picture Moduls.
Se nos solicita la picture de la cual se deben generar instancias (creada con el wizard
anterior.
Adems disponemos de cuatro tipos de generacin de instancias:
Crear una ventana para cada instancia.
Crear una sola ventana y con varios botones seleccionar la instancia que se carga en dicha
ventana.
Igual que la anterior, pero el botn no solo muestra la instancia, sino que con una segunda
pulsacin la oculta.
Una sola ventana que puede modificar su instancia cambiando el nombre que posee en la
parte superior, y que corresponde con la estructura a cargar.
En esta ventana podemos elegir la cantidad de instancias que deseamos generar (en
nuestro caso 3, una para cada estructura generada).
Adems, podemos asignar ya una posicin para la instancia de manera absoluta, o con
respecto a la posicin del botn que har visible la instancia.
En la esquina superior se nos generar una window picture y tres botones amarillos.
Cada uno de estos botones cargar una instancia diferente en la picture window generada. El
resultado es el siguiente:
Con esto, estaremos archivando en la base de datos de WinCC valores dentro del
archivo donde se almacenan dichas variables.
Arrancamos Access 97, y creamos una nueva base de datos en blanco. Con el botn
derecho, seleccionamos Importar. La ventana de Access nos muestra por defecto solo las
bases de datos de tipo mdb. Seleccionamos desplegando la solapa de tipos de archivo la
opcin bases de datos ODBC.
Con estos pasos hemos conseguido importar no solo los datos de la base con su fecha
y hora de adquisicin, sino tambin en la tercera columna el cdigo de error (si lo hubiera) que
se pueda producir en la adquisicin del valor.
Hay que tener en cuenta que la columna T es un campo de la base de datos en formato
fecha/hora, que habr que descomponer para su posterior tratamiento.
Copiamos dicho cuadrado varias veces, realizando en cada una de las copias un
desplazamiento de los colores que se muestran en el dinamic dialog superior.
La variable VALOR_1 es una variable interna de tipo unsigned int que utilizaremos para
desplazar los colores, de tal manera que se genere el efecto de desplazamiento de lquido.
Solo queda realizar una accin en C que vare el valor de VALOR_1 de 0 a 3
dependiendo de si se encuentra activado un bit.
En global script crearemos la siguiente accin:
#include "apdefap.h"
if (GetTagBit("bit")==1)
{
if(temporal>2)
{
temporal=0;
}
else
{
temporal++;
}
SetTagWord("VALOR_1",temporal); //Return - Type :BOOL
}
return(0);
}
El trigger de dicha accin ser el siguiente:
Con esto, la animacin deber quedar como muestra la figura inferior. Es importante
destacar que se debe de tener en cuenta el sentido que se da al corrimiento de los colores de
los rectngulos ya que en funcin del mismo ser el efecto de desplazamiento del fluido.
Por ltimo se debe de rodear con varias lneas negras el borde de los rectngulos para
que se d el efecto de tubera.
13.13.1 Introduccin
El manejo de recetas supone uno de los inconvenientes del paquete bsico WinCC. Tal
como est diseado el scada, el almacenamiento de valores importantes para el proceso que
no sean histricos debe de realizarse en el PLC.
Cualquier sistema que se base en variables internas, depende de conseguir que no se
pare nunca la runtime, ya que al volver a arrancar carga los valores que se hayan definido en el
apartado valor inicial para cada variable interna (por defecto 0).
La nica manera de conseguir utilizar el WinCC como un sistema de almacenamiento y
manejo de recetas pasa por la utilizacin de ficheros en el disco duro programados en C y que
nos permitan guardar los valores internos, y posteriormente ser cargados para su envo al
proceso.
Este apartado se ocupa de la programacin en C necesaria para poder llevar a cabo el
manejo de ficheros.
La ventana en blanco que aparece en la parte inferior es el control OLE Global Script
Diagnose Control ya visto anteriormente.
Definimos las variables anteriormente citadas y las asignamos a las cajas I/O.
Vamos a asociar el siguiente cdigo C al botn ESCRIBIR VALORES A FICHERO
DUNKER.DAT:
FILE *DATOS;
long L;
float FP;
int I;
DATOS=fopen("C:\\DUNKER.DAT","w+");
if(DATOS!=NULL)
{
L=GetTagDWord("VALOR_1"); //DWORD
FP=GetTagFloat("VALOR_3"); //float
I=GetTagWord("VALOR_2"); //WORD
fprintf(DATOS,"%ld\r\n%d\r\n%f\r\n",L,I,FP);
fclose(DATOS);
FILE *DATOS;
long L;
float FP;
int I;
int a;
char CADENA[20];
char* z;
DATOS=fopen("C:\\DUNKER.DAT","r");
if(DATOS!=NULL)
{
z=fgets(CADENA,20,DATOS);
printf("CADENA 1:%s\r\n",CADENA);
L=atol(CADENA); //Return-Type :long int
z=fgets(CADENA,20,DATOS);
printf("CADENA 2:%s\r\n",CADENA);
FP=atof(CADENA); //Return-Type :double
z=fgets(CADENA,20,DATOS);
printf("CADENA 3:%s\r\n",CADENA);
I=atoi(CADENA); //Return-Type :long int
fclose(DATOS);
printf("VALORES LEIDOS:%ld %f %d\r\n",L,FP,I);
printf("DATOS LEIDOS DE C:\\DUNKER.DAT\r\n");
}
else
{
printf("ERROR LEYENDO DATOS EN DUNKER.DAT");
}
Para poder apreciar que ha cargado los valores, lgicamente deberemos de modificar
anteriormente los que ya poseen las cajas de I/O, y presionar el botn, con lo que cargar los
valores que hubiramos introducido anteriormente.
Menos frecuente puede ser la siguiente posibilidad, pero tal vez pueda resultar
interesante al lector: disponer de un fichero ya creado, y aadirle un valor de una variable
interna que anteriormente no se hubiese almacenado, sin tener que generarlo de nuevo.
El cdigo que asociaremos al botn AADIR VALORES AL FICHERO DUNKER.DAT
es el siguiente:
FILE *DATOS;
float FP;
DATOS=fopen("C:\\DUNKER.DAT","a");
if(DATOS!=NULL)
{
fprintf(DATOS,"%f",FP);
fclose(DATOS);
printf("DATO VALOR_3 AADIDO A C:\\DUNKER.DAT\r\n");
}
else
{
printf("ERROR AADIENDO DATOS A DUNKER.DAT");
}
Por ltimo, solo nos queda explicar como se borra un fichero de datos desde WinCC. El
cdigo asociado al botn BORRAR EL FICHERO DUNKER.DAT es el siguiente:
remove("C:\\DUNKER.DAT");
printf("FICHERO C:\\DUNKER.DAT BORRADO.\r\n");
anteriormente). El problema reside en que hay que realizar un cambio de escala, ya que los
valores del eje X en el proceso representar la frecuencia entre 0 y 140 Hz, mientras que en la
grfica son pxels desde el 60 al 560.
Con respecto al eje Y, los valores del proceso son Intensidades que van desde 0
amperios a 120, mientras que la grfica va desde 480 pxels a 340.
En el global script creamos una nueva accin denominada GRAFICA_NO_TEMPORAL
que posee el siguiente cdigo C:
#include "apdefap.h"
TEMP_X=60 + ((GetTagWord("VAL_X_1")*560)/140);
TEMP_Y=480- ((GetTagWord("VAL_Y_1")*250)/120);
TEMP_X=60 + ((GetTagWord("VAL_X_2")*560)/140);
TEMP_Y=480- ((GetTagWord("VAL_Y_2")*250)/120);
TEMP_X=60 + ((GetTagWord("VAL_X_3")*560)/140);
TEMP_Y=480- ((GetTagWord("VAL_Y_3")*250)/120);
SetActualPointLeft("grafica_no_temporal","Lnea",TEMP_X); //Rckgabe-Typ
:BOOL
SetActualPointTop("grafica_no_temporal","Lnea",TEMP_Y); //Rckgabe-Typ
:BOOL
TEMP_X=60 + ((GetTagWord("VAL_X_4")*560)/140);
TEMP_Y=480- ((GetTagWord("VAL_Y_4")*250)/120);
TEMP_X=60 + ((GetTagWord("VAL_X_5")*560)/140);
TEMP_Y=480- ((GetTagWord("VAL_Y_5")*250)/120);
return(0);
}
Destacar el cambio de escala (una simple regla de tres) para ajustar la posicin de la
polilnea, y como vamos cambiando el ndice para cada vez asignar la posicin de un vrtice
diferente.
Por ltimo, esta accin deber realizarse siempre que cambie alguna variable del
proceso que tenga que ver con la grfica. La asignacin se realiza en el trigger de la siguiente
manera:
Es importante recordar que para que se ejecute el cdigo de la accin la parte del
runtime global script runtime debe estar asignada antes de arrancar la runtime.
Con esto dispondremos de una grfica de 5 puntos que muestra la funcin x=f(y).
#pragma code("kernel32.dll");
void GetLocalTime(SYSTEMTIME * lpst);
#pragma code();
SYSTEMTIME datos;
GetLocalTime(&datos);
SetTagWord("ao",datos.wYear); //Return-Type :BOOL
SetTagWord("mes",datos.wMonth); //Return-Type :BOOL
SetTagWord("da_de_la_semana",datos.wDayOfWeek); //Return-Type :BOOL
SetTagWord("da",datos.wDay); //Return-Type :BOOL
SetTagWord("Horas",datos.wHour); //Return-Type :BOOL
SetTagWord("minutos",datos.wMinute); //Return-Type :BOOL
SetTagWord("segundos",datos.wSecond); //Return-Type :BOOL
SetTagWord("Milisegundos",datos.wMilliseconds); //Return-Type :BOOL
Muchos procesos deben de realizarse en una determinada franja de tiempo que debe
de ser parametrizable. La lubricacin de motores, el arranque y parada del alumbrado, etc.. son
tareas que requieren de la comparacin de la hora actual del PLC con una hora de arranque, y
posteriormente con una de parada.
En estos casos, no es posible realizar la comparacin en WinCC (que sera mucha ms
sencillo), debido a que si el ordenador se desconectara no arrancara o parara el proceso
temporal.
Vamos a realizar un ejemplo en el que queremos arrancar una salida del PLC de
acuerdo a una franja horaria. Creamos una picture en WinCC llamada HORARIO.PDL y que
presenta el siguiente aspecto:
Las variables asignadas a las cajas I/O son una estructura definida por nosotros en
data types->struct como HORARIO y que presenta el siguiente aspecto de la imagen inferior.
Destacar que es necesaria en la solapa de conversin realizar una conversin de byte a BCD,
ya que en los PLCs S7 300/400 el horario se almacena en un formato denominado
date_and_time.
Este formato se describe en la ayuda de Step 7, pero bsicamente cada valor de ao,
mes, etc.. se encuentra en un byte en formato BCD.
Por ltimo solo queda crear una comparacin dentro del PLC de dichas variables con la
hora del mismo. El programa de S7 en AWL a programar dentro de una FC es el siguiente:
CALL SFC 1
RET_VAL:=#ERROR
CDT :="HORARIOS".FECHA_HORA_ACTUAL
CALL FC 14
DT1 :="HORARIOS".FECHA_HORA_ACTUAL
DT2 :="HORARIOS".INICIO
RET_VAL:=M0.0
CALL FC 23
DT1 :="HORARIOS".FECHA_HORA_ACTUAL
DT2 :="HORARIOS".FIN
RET_VAL:=M0.1
U M 0.0
U M 0.1
= A 124.0
La SCF1 lee la hora actual del PLC. La FC14 realiza la comparacin de arranque,
mientras que la FC23 la de finalizacin. Estas FCs se encuentran en la librera stdlib de Step
7.
Uno de los inconvenientes del teleservicio es que para poder instalar dicho software se
necesita tener instalado el software de Step 7 en dicho ordenador. Sin embargo, si se dispone
de dicho software, la desventaja se convierte en ventaja ya que no solo es posible visualizar y
controlar con WinCC, sino que adems podremos acceder a todos los PLCs que se
encuentren conectados en MPI y pogramarlos como si nos encontrramos en la misma
instalacin.
La velocidad de transferencia se reduce lgicamente de 187000 baudios a 19200
debido a la lnea telefnica.
Una gran cualidad de la conexin en teleservicio desde WinCC es que no son
necesarias grandes modificaciones de nuestro proyecto inicial con respecto al que existir en el
ordenador remoto. Basta con seleccionar en el enlace MPI, en lugar de por PC Adapter o
Tarjeta MPI por TS Adapter. El resto del proyecto nos sirve sin realizar ninguna modificacin.
INSTALACION DEMO
14 Instalacin Demo.
14.1 Introduccin.
Vamos a realizar una instalacin de demostracin en la que trataremos de utilizar la
mayor cantidad posible de tcnicas de programacin para que sirvan como base de ejemplos a
otras aplicaciones.
Comenzaremos creando un nuevo proyecto llamado INSTALACION.
Lo primero que haremos ser crear nuestra estructura de usuarios del sistema. Tendremos:
2 operarios (OPERARIO_1 y OPERARIO_2) que podrn manejar el sistema.
1 responsable (RESPONSABLE_1) que tendr el mismo acceso que nosotros a todas las
posibilidades del scada.
Los operarios de momento solo podrn salirse de WinCC para apagar el ordenador. Los
passwords de cada uno de ellos sern igual a su nombre pero sin el guin inferior (ej.
RESPONSABLE_1 es RESPONSABLE1).
A continuacin creamos una pantalla MAIN.PDL con un botn de la biblioteca para salir de
la aplicacin. Seleccionamos en el graphic designer como idioma el Espaol. En el text
library, aadimos el Espaol como idioma, y en Computer, seleccionamos el Espaol como
idioma del runtime.
Nos queda asignar el cdigo a los botones aceptar y cancelar. Para el botn aceptar el
cdigo ser:
DeactivateRTProject ();
Y para el botn cancelar:
SetVisible("MAIN.PDL","Ventana Salir",0); //Return-Type :BOOL
Por ltimo nos queda en Computer asignar las hotkeys control+q para activar
usuarios y control+a para desactivar usuarios.
Vamos a crearnos una variable interna de 32 bits denominada ALARMAS. Cada uno de
los bits de la misma activar un mensaje de alarma.
En el alarm logging configuramos una ventana de alarmas, y 10 mensajes de alarmas
para los 10 primeros bits de la palabra de alarmas. En propiedades de Error activamos la
opcin horn.
Creamos una nueva picture que se denomine ALARMAS.PDL y que posea el siguiente
aspecto:
Deberemos crear dos tipos de ventanas, la anterior del tipo short-term y otra del estilo
message windows que colocaremos en la pantalla main, y que nos avisar del ltimo evento
acaecido en la instalacin.
El botn superior forma parte de una serie de botones que van a ser comunes a la
mayora de las pantallas, y que nos van a permitir acceder y controlar el proceso
independientemente de donde nos encontremos. El botn ALARMAS, adems de saltar a la
ventana del histrico de alarmas, cambia el color de fondo de gris a rojo cuando existe alguna
alarma en la instalacin, y el texto parpadea.
Para conseguir esto creamos una variable de tipo BOOL llamada ALARMA_ACTIVA, y
vamos a generar una accin en C llamada alarma.pas y que tiene el siguiente cdigo:
#include "apdefap.h"
return(0);
}
Supongamos que deseamos que cuando aparezca una alarma podamos sacarle al
operario una ventana de aviso indicando qu alarma ha disparado, la fecha o la hora de su
aparicin o desaparicin.
Para ello, toda alarma dispone de una propiedad denominada Trigger an action que
permite asociar una subrutina de C a los eventos de aparicin de una alarma. Esta funcin se
llama GMSGFUNC.FCT y se encuentra dentro del global script en standard functions\alarm.
Podemos editarla y modificar su cdigo a nuestra voluntad. Si no realizamos ningn
cambio en la misma, lo que ejecuta es una salida por la ventana de diagnosis de C en la que se
refleja la alarma, fecha, hora y estado de la misma. Podemos leer los valores de la estructura
que nos devuelve la funcin para asociarlos a una ventana de mensajes personalizada, o
asignar un sonido particularizado para cada alarma, etc
En concreto aadimos el cdigo de activar un fichero wav al principio de esta funcin
standard, de tal manera que cuando aparece una alarma, suena por los altavoces de nuestra
instalacin.
Llegados a este punto se vuelve interesante el control de los usuarios de nuestro sistema
desde la runtime. Para ello tomamos dos botones de la biblioteca, como muestra la figura:
PWRTLogin('c');
PWRTLogout();
MessageBox(NULL,"Desactivacin de usuario","Desactivar
usuario",MB_OK|MB_ICONSTOP|MB_SETFOREGROUND);
Podemos mostrar en una cadena de texto el usuario actual que est activo en el
sistema. Para conocer quin esta activo y su login seguimos los siguientes pasos:
creamos una variable de tipo text 8 bits con 40 caracteres llamada
USUARIO_ACTUAL.
Creamos una caja de I/O de slo lectura y de tipo string y le asociamos la variable
anterior.
Insertamos el siguiente cdigo en un evento temporal:
PWRTGetCurrentUser(cadena, 20);
SetTagChar("USUARIO_ACTUAL",cadena); //Return-Type :BOOL
Vamos a controlar en nuestro proyecto demo unos tanques de llenado utilizando tres
vlvulas proporcionales y tres electrovlvulas. Disponemos de dos depsitos de llenado que
confluyen en un tercero en el que se realiza una mezcla de dos lquidos.
Creamos una nueva picture llamada ZONA_1.PDL en la que utilizando los objetos de la
librera del graphic designer dibujamos lo siguiente:
Los contenedores de lquido los asignaremos a tres variables float (se recomienda
utilizar el asistente para dynamic filling, ya que permite escalar la variable de proceso
automticamente, no restringindonos a un valor entre 0 y 100).
El siguiente paso es mover las electrovlvulas de acuerdo a bits de una variable interna
llamada CONFIRMACION_MARCHA de 32 bits. Tomamos de la biblioteca el dibujo de la
electrovlvula horizontal y vertical, las superponemos (por comodidad, cada una en una capa
distinta) y a la horizontal le asignamos en la propiedad display el siguiente dinamic dialog:
Nos queda ahora asignar tres PIDs, una a cada electovlvula proporcional que van a
regular la dosificacin del producto.
Podramos hacer tantas ventanas como PIDs y asignarle a cada botn amarillo
(PID_X) la opcin de displya de la ventana. En este ejemplo, esto es posible. Sin embargo, si
queremos realizar el control de 20 motores con manual/automtico y marcha/paro,
necesitaremos recurrir a la generacin de instancias, ya vistas anteriormente, y que ahora
trataremos en algo ms de profundidad.
Comencemos por crearnos una estructura que contenga los parmetros de un PID:
En el graphic designer, creamos una nueva picture denominada PID.PDL, que posee el
siguiente aspecto:
Las cajas I/O de este prototipo no las asignamos a ninguna variable de momento, tan
solo les asignamos nombres que nos permitan identificarlas claramente, al igual que las barras
y los botones.
Terminado el Wizard se nos genera un picture window object y tres botones. Estos
botones al ser presionados, hacen visible el objeto picture window que muestra la ventana
PID.PDL, pero en cada llamada se lincan las variables asignadas a cada estructura del PID.
El cdigo que se genera en los botones de llamada es el siguiente:
#include "PicBlck.h"
CalledTypePicture "Pid";
Position_x xPositionOfButton + (100);
Position_y yPositionOfButton + (-200);
LinkPrototypeInstance;
EnableTemplateInstance(TemplateTypePicture,InstanceName,TemplateHeight);
Con esto hemos visto la asignacin de un lincado o enlace entre los valores de la
estructura que es relativamente sencillo utilizando los wizard existentes. Pero si lo que
deseamos es modificar un valor de la variable enlazada mediante cdigo, es necesario
comprender detenidamente el cdigo que vamos a asociar a los botones M y A de la picture
PID.PDL.
Deseamos con el botn M poner el PID en manual y con el A en automtico, o lo que
es lo mismo, modificar el bit MAN_ON de la estructura del PID. El cdigo a asociar al botn M
es el siguiente:
Para el botn de automtico sera lo mismo salvo la instruccin settagbit con parmetro
final a 1.
Si deseramos cambiar el valor de un bit de una estructura con un solo botn, de
manera que cada vez que pulsamos una vez el PID se pone en manual y con otra pulsacin en
automtico, la ltima lnea debera de sustituirse por la siguiente:
SetTagBit(par4.szLinkName,1-GetTagBit(par4.szLinkName));
Este cdigo realiza la alternancia entre 0 y 1 cada vez que se pulsa el botn.
Por ltimo, terminada la instancia, nos quedan los indicadores analgicos, a los que le
asignamos directamente la variable PV_IN de su correspondiente estructura de PID.
El resultado es el siguiente:
FILE *DATOS;
int L[5];
DATOS=fopen("C:\\RECETA_1.DAT","w+");
if(DATOS!=NULL)
{
L[0]=GetTagWord("RECETA_1");
L[1]=GetTagWord("RECETA_2");
L[2]=GetTagWord("RECETA_3");
L[3]=GetTagWord("RECETA_4");
L[4]=GetTagWord("RECETA_5");
fprintf(DATOS,"%d\r\n%d\r\n%d\r\n%d\r\n%d\r\n",L[0],L[1],L[2],L[3],L[4]);
fclose(DATOS);
Para los dems botones de grabar valdr el mismo cdigo, simplemente modificando el
nombre del fichero RECETA_1.DAT por RECETA_2.DAT y as sucesivamente.
FILE *DATOS;
int L[5];
char CADENA[20];
char* z;
DATOS=fopen("C:\\RECETA_1.DAT","r");
if(DATOS!=NULL)
{
z=fgets(CADENA,20,DATOS);
L[0]=atoi(CADENA); //Return-Type :long int
z=fgets(CADENA,20,DATOS);
L[1]=atoi(CADENA); //Return-Type :long int
z=fgets(CADENA,20,DATOS);
L[2]=atoi(CADENA); //Return-Type :long int
z=fgets(CADENA,20,DATOS);
L[3]=atoi(CADENA); //Return-Type :long int
z=fgets(CADENA,20,DATOS);
L[4]=atoi(CADENA); //Return-Type :long int
z=fgets(CADENA,20,DATOS);
L[5]=atoi(CADENA); //Return-Type :long int
fclose(DATOS);
printf("DATOS LEIDOS DE C:\\RECETA_1.DAT\r\n");
}
else
{
printf("ERROR LEYENDO DATOS EN RECETA_1.DAT");
}
Por ltimo esta carga de valores debe ser enviada mediante el botn ENVIAR RECETA
A PLC que copia los valores internos a los de proceso. Lo contrario realiza el botn LEER
RECETA DEL PLC.
Antes de crear una nueva trend y una nueva table, acudimos al user administrator,
donde definimos un nuevo nivel de password al que solo puede acceder el RESPONSABLE_1.
Volviendo al tag logging creamos una nueva trend y una nueva tabla. En las
propiedades del archivo de lectura le asignamos el nivel creado anteriormente. De esta
manera, a la hora de editar los datos de la tabla, solo podr realizar dicha accin el
RESPONSABLE_1, quedando inhabilitada para los dems usuarios.
Creamos una nueva picture llamada GRAFICA.PDL y que posea una aplication window
de trend y una aplication window de table.
Para finalizar una instalacin, se suelen realizar los reports que deben de plasmar los
resultados anteriores del proceso en el formato deseado por el cliente. Se suele aadir un
logotipo, nombre de instalacin, etc Lo que ser comn en todas las instalaciones es la
necesidad de mostrar las grficas de la instalacin en hojas separadas, al igual que las tablas
de datos.
Nuestro ejemplo modificar (para simplificar los pasos a seguir) el report ya existente en el
WinCC por defecto, pero recomendamos crear un nuevo report (basndonos en este que nos
genera WinCC) y lo personalicemos completamente.
Necesitaremos un report y un layout asignado por cada grfica o tabla diferente que
deseemos imprimir.
El report para imprimir una grfica se denomina Report Tag Logging RT Curves y el
layout asignado a dicho report tlrtkur.rpl. Sin embargo, necesitaremos asignar a dicho layout la
grfica que debe de mostrar, por lo que entramos en el mismo y sobre el objeto central tag-
logging runtime curve editando su conexin, modificamos:
time selection: seleccionamos el intervalo de tiempo que debe de imprimirse.
Archive data selection: seleccionamos el archivo y del mismo las curvas que deben
de imprimirse.
Para las tablas de valores, utilizaremos el report Report Tag Logging RT Tables
asociado al layout tlrttab.rpl que deberemos tambin que asignar a un archivo, e indicar el
periodo de tiempo que deseamos que imprima. Asignamos el siguiente cdigo a otro botn en
la ventana GRAFICA.PDL:
El resultado es el siguiente:
Con esto damos por concluida nuestra instalacin demo, confiando en que junto con
los ejemplos bsicos y avanzados vistos en los diferentes captulos de este libro sirvan como
cimientos para la construccin de desarrollos de autnticas instalaciones que intenten
aprovechar al mximo las mltiples cualidades de este sistema de visualizacin.
15 APENDICE A
CONFIGURACIONES
DE WINCC
Max. 1000m
SIMATIC S5-95/100/115/135/155U
max. 1000m
SIMATIC S5-115/135/155U
SIMATIC MPI
SIMATIC S7-300
SIMATIC S7-400
CP 1411
6GK1141-1AA00 Manual de WinCC en Ingles
SOFT NET 8 Conexiones 6GK17041CW22-3AA0
SOFTNET 64 Conexiones 6GK1704-1CX22-3AA0 6AV6392-1XA04-0AB0
Manual de ejemplos de WinCC en Ingles
6AV6392-1CA04-0AB0
Max. 1000m
SIMATIC S5-95/100/115/135/155U
max. 1000m
SIMATIC S5-115/135/155U
Adaptador 6ES7901-2BF00-0AA0
SIMATIC MPI
SIMATIC S7-300
SIMATIC S7-400
CP 1411
6GK1141-1AA00 Manual de WinCC en Ingles
SOFT NET 8 Conexiones 6GK17041CW22-3AA0
SOFTNET 64 Conexiones 6GK1704-1CX22-3AA0 6AV6392-1XA04-0AB0
Manual de ejemplos de WinCC en Ingles
6AV6392-1CA04-0AB0
C WinCC C
S
+ Windows NT4.0
+ 64 MB- Cliente
+WinCC RC o RT
+Opcin Server
6AV6371-1CA03-0AX0
+Conexin a TCP/IP TCP/IP
NetBEUI
Bus de Terminales
Estacin de Operador WinCC Cliente
TF
TF-NET 1413/Windows NT 4.0 (ab V 3.10)
- Solamente necesario para comunicacin S5TF
o S/R
Ethernet Industrial (SINEC H1)
con (como mnimo) licencia Run timel RT 128 Variables
Windows95 o Windows NT
+Conexin a TCP/IP
SR-NET 1413/Windows NT 4.0 (a partir V 3.30)
6GK1141-3TB01
Comprende: 6GK1141-3CB11
comprende:
* Procesador de comunicaciones CP 1413
* Software para Funciones TF S5/TI505 Nivel 4 * Procesador de comunicaciones CP 1413
* Software para S5/TI505 nivel 7
Ethernet Industrial (SINEC H1)
C WinCC C
S
+ Windows NT4.0
+ 64 MB- Cliente
+WinCC RC o RT
+Opcin Server
6AV6371-1CA03-0AX0
+Conexin a TCP/IP TCP/IP
NetBEUI
Bus de Terminales
Estacin de Operador Wincc Cliente
PROFIBUS SIMATIC NET con (como mnimo) licencia Run timel RT 128 Variables
CP 5412 (A2) Windows95 o Windows NT
6GK1541-2BA00 +Conexin a TCP/IP
Software para S7-5412 (Windows NT4.0)
6GK1702-5CB41-3AA0
(a partir V 2.01)
C WinCC C
S
+ Windows NT4.0
+ 64 MB- Client
+WinCC RC o RT
+Opcin Server
6AV6371-1CA03-0AX0
+Conexin a TCP/IP TCP/IP
WinCC/FMS (Canal-DLL)
NetBEUI
6AV6371-1CD03-1CX0 Bus de Terminales
Estacin de Operador WinCC Cliente
con (como mnimo) licencia Run timel RT 128 Variables
PROFIBUS SIMATIC NET Windows95 o Windows NT
CP 5412 (A2) +Conexin a TCP/IP
GK1541-2BA00
Software para FMS-5412/Windows
NT 4.0 (a partir V2.50)
GK1702-5FB41-3AA0
SIMATIC NET PROFIBUS
16 APENDICE B
CANALES DE
COMUNICACIONES
CANAL AS 511
El canal AS 511 implementa el protocolo de comunicaciones que poseen los PLCs de
la serie S5 en el puerto de programacin de las CPUs.
Podemos definir diferentes puertos para cada uno de los enlaces S5 que deseemos
realizar.
La velocidad de transferencia vendr limitada a 9600 baudios.
El cable de comunicaciones de S5 nos servir para realizar el enlace entre el PLC y el
WinCC.
SIMATIC S7 PROFIBUS.
Para realizar una conexin en Profibs, necesitamos disponer de una tarjeta de
comunicaciones para Profibs y de su correspondiente driver de comunicaciones
implementado.
En la ventana de Device deberemos de seleccionar el dispositivo lgico que debe de
haber sido definido al parametrizar el driver de la tarjeta.
SIPART DR.
Podemos definir una red de reguladores Sipart que dispongan de la tarjeta serie, para
que WinCC a travs de uno de sus puertos pueda leer los valores de los mismos, y modificar
cualquier valor a travs de dicho puerto.
PROFIBUS FMS.
A la hora de realizar una red de PLCs la opcin ms frecuente es la utilizacin de
Profibs FMS, que integra tanto S5 como S7 en la misma red.
Para poder conectar el WinCC, deberemos tener primeramente la tarjeta de
comunicaciones con su driver correspondiente integrado.
Dicho driver nos genera un nombre de conexin. Los enlaces de dicha conexin
podremos definirlos en esta pantalla, de tal manera que estaremos a travs del driver
accediendo al PLC en cuestin.
OMRON SERIE C.
Adems de los propios autmatas de Siemens, WinCC dispone de drivers opcionales
para comunicarse con otros PLCs del mercado. El driver para los autmatas de Omron
(CQM1, CPM1 y C200H) se encuentra en WinCC en forma de add-on.
Las nicas particularidades del driver se basan en definir el puerto de comunicaciones
por el que vamos a enlazar con el PLC.
En la solapa HostLink Options definiremos si deseamos realizar un enlace punto a
punto o en formato HostLink (en red) en cuyo caso seleccionaremos el participante al que
estamos accediendo por este enlace que configuramos.
GE FANUC.
Otro autmata del mercado son los Fanuc de General Electric. Mediante este driver se
pueden realizar hasta 4 enlaces diferentes (uno por cada puerto del PC) en acoplamiento punto
a punto.
A D
Bar, 115 F
Barra de estado, 82
Barras de herramientas, 103 fuentes, 106
Biblioteca de objetos, 94 Full Screen, 67
Bin, 35
Buttons, 129 G
PC Adapter, 70
I
Presettings, 221
Job, 275 S
Settings, 99
L
Shut Down, 53