Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual Completo Wincc
Manual Completo Wincc
Version 5.1
CON EL GUAPERAS
INDICE
Cap1. Introduccin a WinCC
28
47
112
138
216
233
251
Aprende WinCC
C
Caappttuulloo 1
IInnttrroodduucccciinn aa W
WiinnC
CC
C..
Notaciones.
Significado
Indica un click con el botn izquierdo del ratn.
Indica un click con el botn derecho del ratn.
Indica doble-click con el botn izquierdo del ratn.
Indica una entrada desde teclado.
Aprende WinCC
Requisitos.
Los requisitos mnimos y recomendables para trabajar con el WinCC a nivel
hardware y software del PC son:
CPU
Memoria principal/
RAM
RAM en caso de
configuracin online
Disco duro
(sin datos del proyecto)
Memoria de
trabajo virtual
Memoria de trabajo
para spooler de
impresoras Windows
Grficos
Resolucin
Mnimo
Intel Pentium II
400 MHz
256 MBytes (para servidores)
Recomendado
Intel Pentium III
> 400 MHz
> 256 MBytes
100 MBytes
SVGA (4 MBytes)
800 * 600
XGA (8 MBytes)
1024 * 768
Windows
2000
Configuracin
Observaciones
Windows NT 4.0
Service Pack 6a o
superior
Sistema operativo
Servidor de Windows NT 4.0
Servidor de Windows 2000
Windows 2000 Advanced Server
Configuracin
Service Pack 6a
Service Pack 2 con Hotfix Q300972
Service Pack 2 con Hotfix Q300972
2
Aprende WinCC
Licencias en WinCC.
Si no se dispone de autorizacin de desarrollo para WinCC, se podr desarrollar
durante aproximadamente una hora. Pasada la misma, pueden darse dos situaciones:
Que est arrancado el runtime: en este caso aparece un mensaje de finalizacin de
la demo. No podremos realizar ninguna accin hasta que validemos dicho mensaje.
Sin embargo, el sistema runtime continua funcionando pese a no validar el mensaje,
con lo que se continan registrando las tendencias y aparecen los mensajes de
alarmas, as como refresco de variables en pantalla. A partir de este momento, cada
aproximadamente 10 minutos vuelve a aparecer el mensaje.
Que no est arrancado el runtime: en este caso automticamente se cierra el
WinCC, permitindonos antes guardar los cambios que hubisemos realizado.
Pero, cmo sabemos las licencias que tenemos instaladas en un determinado
momento?. La de desarrollo lo podemos saber de una manera inmediata, ya que en la
barra de estado de WinCC aparece la palabra DEMO cuando no disponemos de ella
para desarrollar.
Para conocer si disponemos de todas las dems (en especial necesitaremos una
licencia de runtime de tantas variables como nos indique la barra de estado de WinCC)
las podremos observar mediante una aplicacin llamada CCAuthorInformation, que
se encuentra en el subdirectorio WinCC\bin. Lo que nos indica la ventana son las
licencias de las cuales no disponemos y que nos son necesarias con nuestra
configuracin actual. Con el botn view podemos ver si disponemos de una licencia en
concreto.
Tambin podemos saber el estado de las licencias actuales observando el fichero
license.log que se encuentra en WinCC\diagnose. El fichero license.bak es la copia del
fichero log con el estado de las licencias de la vez anterior que arrancamos el WinCC.
Un ejemplo del fichero license.log sera:
10/06/2001 11:18:51 InitLicense CS | AppName = AppCS:Mcp | CycleCheck = yes | NameForMessageBox = | Name of License =
A9WRC330 | Text of License = SIK/SIMATIC WINCC RC 1024 PowerTags |
10/06/2001 11:18:51 InitLicense ED | AppName = AppEd:Mcp | CycleCheck = own | NameForMessageBox = | Name of License =
A9WRC330 | Text of License = SIK/SIMATIC WINCC RC 1024 PowerTags |
10/06/2001 11:19:00 InitLicense RT | AppName = OptRT:CHIPCARD | CycleCheck = no | NameForMessageBox = | Name of
License = A1WPC412 | Text of License = |
10/06/2001 11:19:08 InitLicense CS | AppName = DMAso:Mcp | CycleCheck = yes | NameForMessageBox = | Name of License =
A9WRC330 | Text of License = SIK/SIMATIC WINCC RC 1024 PowerTags |
10/06/2001 11:31:51 ExitLicense CS | AppName = DMAso:Mcp | CycleCheck = yes | Name of License = A9WRC330 | Text of
License = SIK/SIMATIC WINCC RC 1024 PowerTags |
10/06/2001 11:32:30 InitLicense CS | AppName = DMAso:Mcp | CycleCheck = yes | NameForMessageBox = | Name of License =
A9WRC330 | Text of License = SIK/SIMATIC WINCC RC 1024 PowerTags |
Aprende WinCC
Entrar a WinCC.
A la hora de entrar al Windows Control Center V5.1 pueden darse tres
circunstancias:
Que no hubiera ningn proyecto abierto anteriormente, con lo que se nos pedir
crear o abrir un nuevo proyecto.
Que anteriormente hubiese ya abierto un proyecto, pero no se hubiese
arrancado el runtime, con lo que entraremos al modo de desarrollo de WinCC.
Que anteriormente hubiese un proyecto y que estuviese arrancado el runtime,
con lo que automticamente entraremos al modo runtime.
Esto puede ser un problema en determinadas circunstancias, como p. Ej. Que no se
haya habilitado ninguna forma de salir del runtime y adems se haya deshabilitado la
combinacin Alt+Tab, con lo que no tenemos manera de ir al software de desarrollo
para solucionar este error. En estos casos, para evitar que al arrancar el WinCC entre
automticamente al modo runtime, se debe de presionar la combinacin de teclas
Ctrl+Shift durante el arranque del software, con lo que se detendr en el modo de
desarrollo.
Esta combinacin funciona en proyectos locales, y en un servidor, pero no en un
cliente que est conectado a uno o varios servidores en sistema multiusuario.
Aprende WinCC
Salir de WinCC.
Para salir de WinCC, en el men Archivo->Salir disponemos de dos opciones:
9 Salir de WinCC Explorer y cerrar el proyecto: Si ha seleccionado esta opcin
se sale de WinCC Explorer y la runtime se cerrar previamente. La siguiente vez
que entremos a WinCC Explorer abrir el proyecto y arrancar la runtime
automticamente.
9 Salir de WinCC Explorer : Si ha seleccionado esta opcin, se sale de WinCC
Explorer pero la runtime se queda activada. El proyecto abierto en ltimo lugar
se abrir en el siguiente inicio de WinCC.
Aprende WinCC
Aprende WinCC
A partir de ahora, para poder trasladar o copiar el proyecto a otro ordenador, bastar
con copiar este subdirectorio completo, normalmente comprimindolo con Winzip o
Winrar en discos previamente (herramientas no suministradas con el software). Pero
hay un dato importante: el proyecto est configurado para un ordenador en concreto,
cuyo nombre indicativo aparece en el apartado Equipo->Propiedades. Si el nuevo
ordenador no posee el mismo nombre, al intentar arrancar el runtime, aparecer el
siguiente mensaje:
Aprende WinCC
Aprende WinCC
Aprende WinCC
Lo que queremos es que cuando se pulse dicho boton, aparezca una ventana en
la que podamos seleccionar el tipo de salida que deseamos. Para ello hacemos una
nueva pdl llamada salir.pdl, de 300x300. En ella ponemos los siguientes botones:
10
Aprende WinCC
Aprende WinCC
parmetro de la funcin SetPropBOOL un valor fijo, debe ser variable. Dicha variable
es el valor que devuelve la funcin GetParentPicture. Esta funcin devuelve el nombre
de la ventana en la que est contenida la ventana desde la que es llamada.
Ya s que es lioso (me lo vas a contar a m). Por eso, vamos por partes. Nosotros
estamos en un botn (el de salir), que est contenido en una pdl que se llama
bottom.pdl, que a su vez est contenida dentro de otra, que en este momento es
start.pdl, pero que ms adelante vete tu a saber como se llama. La variable
lpszPictureName nos devuelve la ventana de bottom.pdl. Y como queremos la ventana
padre que contiene a la misma ponemos GetParentPicture(lpszPictureName), que nos
devolver ahora mismo start, que es nuestra ventana en la que tenemos nuestro objeto
ventana_salir.
En este punto deberias de poder abrir en la runtime la ventana con el botn de
salir, y cerrarla con la x de la derecha de la ventana emergente.
Ahora nos queda darle funcionalidad a los botones de salir.pdl. Para ello
utilizamos los asistentes de WinCC.
12
Aprende WinCC
Les ponemos una salida de sesin automtica, para que si no se desactivan ellos,
los desactive el sistema pasados 10 minutos.
Bien, hemos aadido un ususario, queda asignar el nivel de proteccin al botn
de salir de la ventana start.pdl . Observa al salir que el User Administrator realiza las
modificaciones en tiempo real, por lo que al salir no te pide grabar, ya que lo va
ehaciendo sobre la marcha. Vamos, que no hay que equivocarse (como el regedit, ser
13
Aprende WinCC
Ahora ya no podr salir de WinCC cualquiera, sino solo los que tengan el
permiso de salir. Pero vamos a definir tambin quien puede parar el WinCC y quien
solo apagar el ordenador o reiniciarlo.
Para ello en la pdl salir.pdl, a los dos primeros botones les asignamos el permiso
de parar el WinCC, mientras que a los dos siguientes el de apagar el pc.
Pero: cmo se logan 1 los usuarios?. Hay dos maneras, una cutre salchichera y
otra guay y complicada. Vamos con la cutre. En el control center, pinchando con el
botn derecho sobre el nombre del proyecto, aparece la ventana en la que se puede
asignar una combinacin de teclas a login (logarse) y otra a logoff (deslogarse)
Pero claro, se debe de recordar cual era esa combinacin, y siempre aparece el
listo que quiere un botn para activar a los usuarios. Ya la hemos liado, pensars (y
ests en lo cierto), ya que la otra va a travs de C. Quita las asignaciones que acabamos
de hacer, que no vamos a hacerlo por ese camino, sino por el del botn. Nos
1
Aprende WinCC
colocaremos un botn en la pdl bottom.pdl (recuerda, bottom ser nuestra ventana para
los botones de funciones, mientras que top ser nuestra ventana para los botones de
entrar a las diferentes partes en las que se muestra la instalacin). El botn lo cogemos
de la biblioteca:
Luego vamos al evento del botn que hemos puesto antes (la llave), y le
asociamos la funcin login();
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
login (); //Tipo de retorno :void
}
15
Aprende WinCC
Con esta funcin te logas y deslogas con el mismo botn (ha sido fcil, eh?).
Es mejor hacerlo en una funcin de proyecto para poder reutilizar dicho cdigo
en otros proyectos copindonos simplemente el fichero login.fct que nos ha creado
dentro del subdirectorio library de nuestro proyecto.
Para acabar de rematar la faena, pondremos en bottom.pdl una I/O box de solo
lectura, que va asociada a la variable @current_user. Esta variable la genera le sistema
y es una cadena de texto que posee el texto del usuario que actualmente est logado.
Con ello podremos saber en todo momento si estamos activados en el sistema o no.
La cosa va cogiendo color. Pero nos falta un detalle. Nosotros estamos poniendo
los usuarios en el sistema desde el User Administrator, y quitamos, ponemos y
cambiamos passwords los que queremos y mas. Pero, y cuando nos vayamos de la
instalacin?. quin podr cambiar los passwords, o aadir un usuario?. Tenemos que
poner un segundo botn en la pantalla bottom.pdl. Ese botn nos acceder al User
Administrator. Cmo?, fcil, as:
ProgramExecute("c:\\SIEMENS\\WINCC\\BIN\\PASSCS.EXE");
El texto que aparece en medio del botn solo lo puedes quitar si cambias e
idioma en el menu del Graphics Designer, en ver->idioma, a cualquiera, y vuelves a
espaol. Luego vas a la propiedad fuente->texto del botn (un fallo de WinCC, me
parece a m).
16
Aprende WinCC
Por supuesto, a este botn (el de las dos cabecitas) deberemos de colocarle el
password administrar usuarios.
Aprende WinCC
Observa que lo que hacemos es decirle de manera dinmica que la picture a mostrar
es salir.pdl, que va a tener como ttulo salir de WinCC y luego la hacemos visible.
Ahora en el botn de usuarios (el de las ods cabecitas), en el evento clicl de ratn,
escribimos el siguiente cdigo:
SetPropChar(GetParentPicture(lpszPictureName),"VENTANA_SALIR","PictureName","USUARIO
S.PDL");
SetPropChar(GetParentPicture(lpszPictureName),"VENTANA_SALIR","CaptionText","Ventana
Usuarios");
SetPropBOOL(GetParentPicture(lpszPictureName),"VENTANA_SALIR","Visible",TRUE);
Es lo mismo de antes, solo que esta vez llamamos a la pdl usuarios.pdl, con un
ttulo llamado usuarios y posteriormente hacemos visible la ventana.
Pero, quin es usuarios.pdl?. Tranquilo, que an no la hemos hecho.
Es la pdl siguiente, tambin de 300x300:
Aprende WinCC
Vamos a dar por hecho que conoces como trabajar con alarmas en el WinCC.
Primeramente nos vamos al Alarm Loggin, y en bloques de sistema aadimos los
siguientes:
19
Aprende WinCC
Dentro de esta clase creamos un tipo de clase que llamamos usuario, y con el botn
derecho sobre la clase de aviso usuarios definimos los textos para cuando aparezca y
desaparezca la alarma:
Con el botn derecho sobre el tipo de clase usuario seleccionamos el color con
que queremos mostrar la lnea de alarmas de logado y deslogado de usuarios.
20
Aprende WinCC
Con esto ya podemos crear nuestra primera alarma, que tendr las siguientes
propiedades:
La variable Login_Usuarios es una variable interna de tipo bool que hemos creado
previamente.
21
Aprende WinCC
Aprende WinCC
Esta accin lo que hace es copiar el nombre del usuario actual (contenido dentro de
la variable interna @CurrentUser dentro de la variable interna usuario que hemos
definido previamente, y activar el bit interno Login_Usuarios.
Una de las cosas que te habrn extraado al leer el cdigo es porqu he definido la
funcin Sleep. Como sabes la funcin Sleep lo que hace es parar la ejecucin del
programa durante los milisegundos que le pasemos como parmetro. Esta funcin es
necesaria debido a que si activamos inmediantamente el bit de alarma, el WinCC no
tiene tiempo a actualizar el valor de la variable usuario con el nuevo valor del usuario
que se est logando, por lo que aparecera vaco dicho campo al logarse, y relleno al
deslogarse. Es un problema de refresco interno de la base de datos de variables de
WinCC, el cual genera antes el evento de la alarma que el de refresco de la variable
usuario. Si no te ha quedado claro con esta explicacin prueba mas tarde a quitar la
lnea de Sleep y comprueba cual es su efecto.
Ya estamos acabando. Solo nos queda disparar esta accin con un disparo que
vendr dado por el cambio de la variable @CurrentUser, o lo que es lo mismo, que se
active o desactive un usuario.
23
Aprende WinCC
Adems deberemos de filtrar las alarmas en esta ventana para que nicamente
aparezcan las del tipo usuarios, ya que ahora mismo solo exite esta, pero ms adelante
crearemos ms alarmas, y no deseamos que nos aparezcan como si fuesen usuarios
logandose.
Ya podemos guardar la pdl. Nos queda hacer que se muestre dicha pdl al pulsar el
botn Registro de usuarios, que habamos puesto en la pdl usuarios.pdl. La funcin en c
que asociaremos a dicho botn ser la siguiente:
OpenPicture("REGISTRO_USUARIOS.PDL");
24
Aprende WinCC
Nos queda nicamente sacar por impresora un informe con los el histrico de
usuarios, igual que lo estamos sacando por pantalla. Para ello, nos vamos a ir al Report
Designer. En formato de pgina tenemos un Report que se llama @alrtuma.rpl, y que lo
editamos y grabamos como registro_usuarios.rpl.
Vamos a modificar la cabecera del mismo para que tenga el siguiente aspecto:
La parte dinmica del mismo la editamos, y modifcamos los bloques que deseamos
mostrar en el Report.
25
Aprende WinCC
Solo nos queda activar la parte de runtime referida a la impresin y las alarmas
dentro de equipo en el explorador de WinCC:
26
Aprende WinCC
El resultado final al presionar el botn debe de ser algo como lo que muestra la
figura:
27
Aprende WinCC
C
Caappttuulloo 2..
C
Coom
muunniiccaacciinn ccoonn S
S77..
Modos de comunicacin.
Para el ejemplo que nos concierne vamos a realizar varios ejemplos de
comunicacin con S7. Lgicamente en una instalacin real nicamente utilizaremos uno
de ellos, por lo que te aconsejo vayas al captulo en el que se explica el tipo de
comunicacin que debes de realizar.
Comunicacin por MPI.
Insertamos el canal Simatic S7, y dentro del protocolo MPI, con el botn derecho,
seleccionamos una nueva conexin.
28
Aprende WinCC
Si volvemos a presionar con el botn derecho sobre el canal MPI podemos determinar
los parmetros del sistema del protocolo de comunicaciones.
29
Aprende WinCC
30
Aprende WinCC
Tambin deberemos de ajustar el punto de acceso del perfil de WinCC para que sea a
travs de nuestra tarjeta de comunicaciones.
Nuestra tarjeta de comunicaciones TCP del PC por supuesto deber de poseer una
direccin y submscara de red apropiada para que pueda encontrarse en el mismo nodo
de TCP que nuestro PLC (no podemos utilizar DHCP, sino que deberemos de
configurar una direccin fija de red). Para ello vamos en Windows 2000 a Inicio>Configuracin->Conexiones de red y acceso telefnico y en las propiedades de nuestra
red de rea local, seleccionamos el protocolo TCP/IP.
Editamos las propiedades del protocolo, y le asignamos una direccin compatible con
nuestra tarjeta del PLC.
31
Aprende WinCC
Una vez tengamos definidas nuestras dos tarjetas de TCP (la del PC y la del PLC),
podemos comprobar si efectivamente las tenemos bien configuradas realizando un ping
a la tarjeta del PLC, desde Inicio->Ejecutar y escribimos:
Ping 192.80.0.2 (para nuestra tarjeta de PLC del ejemplo)
y
Ping 192.80.0.1 (para nuestra tarjeta de PC del ejemplo)
Ya podemos ir a nuestro proyecto de WinCC y definimos nuestro enlace con el plc.
La nueva conexin define tanto la direccin IP del PLC al que nos vamos a conectar,
como el puesto de la CPU dentro del bastidor del PLC para que la tarjeta TCP sepa
donde se encuentra y pueda suministrarle los datos (en nuestro caso el 400 tiene la CPU
en el slot 3).
32
Aprende WinCC
En parmetros del sistema del canal TCP/IP podemos seleccionar la tarjeta por la que
vamos a comunicar, en nuestro caso ya definida anteriormente en el perfil de WinCC
desde ajustar interface PG/PC. En esta ventana tambin podemos definir si las
peticiones de escritura poseen prioridad sobre las lecturas a la hora de comunicar con el
PLC.
Llegados a este punto ya tenemos definida la comunicacin con la 443-1 del 400. Ya
podemos arrancar el runtime de nuestro proyecto y observar el estado de las
comunicaciones en el menu del WinCCExplorer Herramientas->Estado de las
conexiones.
33
Aprende WinCC
34
Aprende WinCC
35
Aprende WinCC
Tambin Podemos hacer lo mismo, pero a travs de textos, que nos indiquen si la
comunicacin es correcta o no.
Para ello vamos a colocar un campo de E/S al lado del piloto anterior en bottom.pdl
como muestra la figura:
Las propiedades las definimos como muestra la figura inferior, teniendo en cuenta que
vamos a asignar un cuadro dinmico en el que vamos a definir los textos que deseamos
que aparezcan en funcin de que tengamos conexin (RUN) o no (STOP).
36
Aprende WinCC
De esta manera estamos obteniendo una indicacin del estado de las comunicaciones,
pero a un nivel muy simple (sin indicarnos el tipo de error, y sin poder determinar
siquiera si el problema es de que tenemos la CPU en stop o que nos falla el cable de
comunicaciones). Podemos obtener una informacin mucho mas precisa utilizando un
objeto denominado WinCC Chanel Diagnosis Control, que se encuentra en controles del
Graphic Designer.
37
Aprende WinCC
Lo vamos a insertar en una pdl que haremos nueva. Para ello abrimos start.pdl y la
renombramos como diagnosis_comunicaciones_pdl. En esta nueva pdl, en la zona
central de la pantalla insertamos el objeto como muestra la figura:
Ahora tendremos que entrar a dicha pdl. Lo haremos con el evento clic del
rectngulo que colocamos anteriormente, de tal manera que cuando el operario pinche
sobre el indicador saltar automticamente a una ventana de diagnosis ms detallada,
38
Aprende WinCC
como es esta que acabamos de realizar. Para ello, colocaremos la siguiente sentencia en
el evento clic del raton del rectngulo indicador:
OpenPicture("DIAGNOSIS_COMUNICACIONES.PDL");
Ya podemos comprobar el resultado, que ser algo como lo que muestra la figura:
En esta pantalla, pinchando con el botn derecho del ratn podemos obtener ayuda
online sobre la causa del error de comunicaciones. Mediante esta utilidad s que es
posible distinguir entre cpu en stop y fallo de comunicaciones.
39
Aprende WinCC
Aprende WinCC
#include "apdefap.h"
int gscAction( void )
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
DWORD *estado;
estado=SysMalloc(sizeof(DWORD));
GetTagByteState("MB0",estado); //Tipo de retorno :BYTE
if(estado>0)
{
SetTagDWord("FALLO_COMUNICACIONES_EQUIPO_1",1);
}
else
{
SetTagDWord("FALLO_COMUNICACIONES_EQUIPO_1",0);
}
return 0;
}
Una veza tenemos compilada la accin, salimos del Global Script y activamos la
parte de golbal script runtime si no lo estuviese. Nos queda ir al alarm loggin para
definir las alarmas de comunicaciones.
41
Aprende WinCC
42
Aprende WinCC
Tambin definimos los colores con los que debe de aparecer la alarma de
comunicaciones.
Definimos acto seguido una alarma con los siguientes parmetros:
43
Aprende WinCC
44
Aprende WinCC
En estos botones vamos a introducir un cdigo que nos permita mostrar las dos
ventanas solapadas. En el botn de la izquierda, teclearemos:
SetPropBOOL(lpszPictureName,"ALARMAS_COMUNICACIONES","Visible",FALSE);
SetPropBOOL(lpszPictureName,"COMUNICACIONES","Visible",TRUE);
45
Aprende WinCC
46
Aprende WinCC
C
Caappttuulloo 3
G
Grraapphhiiccss D
Deessiiggnneerr..
47
Aprende WinCC
48
Aprende WinCC
49
Aprende WinCC
Customize object: podemos asociar una nueva propiedad a un grupo de objetos para
generar nuevas funcionalidades a las agrupaciones de los mismos. Ejemplos de ello
son los smart objects de la biblioteca de objetos.
Group objects: cuando se selecciona ms de un objeto se pueden agrupar, de manera
que conforman uno nuevo que posee las caractersticas de los dos pero tiene un
nuevo nombre. La mayora de los objetos de la biblioteca son agrupaciones de
objetos ms simples. Las agrupaciones se pueden desagrupar en cualquier momento.
Linking: Cuando copiamos varios objetos, se copian tambin sus enlaces a
variables. Imaginemos que hacemos un I/O asignado a una variable y lo copiamos
10 veces. Entrando en la ventana linking podemos observar el resumen de las
propiedades que se encuentran dinamizadas y modificarlas rpidamente.
Aprende WinCC
Geometry:
Picture Width: Ancho de la pantalla (en pixels).
Picture Height: Alto de la pantalla (en pixels).
Grid On: Activar la rejilla de puntos
Grid Width: Ancho de la rejilla de puntos
Grid Height: Alto de la rejilla de puntos
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
51
Aprende WinCC
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.
52
Aprende WinCC
Eventos Mouse:
o Mouse Action: Se ejecuta al presionar cualquier botn del ratn.
o Press Left: Se ejecuta al bajar el botn izquierdo del ratn.
o Release Left: Se ejecuta al levantar el botn izquierdo del ratn.
o Press Rigth: Se ejecuta al bajar el botn derecho del ratn.
o Release Rigth: Se ejecuta al levantar el botn derecho del ratn.
53
Aprende WinCC
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 Focus: Se ejecuta cuando el objeto recibe o pierde el foco (la posibilidad
de actuarsobre el mismo desde el teclado).
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.
54
Aprende WinCC
55
Aprende WinCC
Nueva picture
Abrir picture
Guardar imagen
Arrancar el runtime desde la picture actualmente abierta en el Graphics
Designer.
Traer objeto al frente. Util cuando existen varios objetos que se solapan.
Enviar objeto al fondo. Util cuando el objeto est tapando a otros.
Visualizar rejilla
Forzar objetos a rejilla
Aumentar zoom de la ventana
Disminuir zoom de la ventana
Realizar zoom a la seleccin. Realiza un zoom a una seleccin que
hagamos.
Copiar las propiedades del objeto en el portapapeles
Pegar las propiedades en el portapapeles
56
Aprende WinCC
Biblioteca de objetos.
La ventana del Graphics Designer con sus barras de herramientas activadas se
presenta as:
Biblioteca de objetos
La biblioteca de objetos es el lugar donde disponemos de imgenes preconfiguradas que podemos utilizar en nuestras picture. Algunos de estos objetos en
realidad son agrupaciones de varios de ellos y llevan ya asociado cdigo C de tal
manera que estn preparados para realizar una tarea determinada (smart objects).
La
biblioteca
se
compone
de
dos
57
partes:
Aprende WinCC
Para pasar un objeto a nuestra picture basta con arrastrarlo y soltarlo sobre la misma.
58
Aprende WinCC
59
Aprende WinCC
Save settings on exit: Grabar los cambios cuando se sale del Graphic Designer o
no.
Display performance warnings: avisar cuando se detecte por el sistema un error
de diseo, p. Ej., cuando se asigne una actualizacin crtica a un parmetro que
pudiese sobrecargar la cpu del ordenador.
El tipo de seleccin de los objetos:
o Surrounding: Los objetos se seleccionan si se encuentran
completamente dentro de la seleccin realizada.
o Touching: Los objetos se seleccionan aunque solo una parte de los
mismos
se
encuentre
incluida
en
la
seleccin.
Nota: para seleccionar varios objetos basta con mantener presionada la
tecla maysculas mientras se realiza un click sobre ellos.
Object Tree: mostrar siempre igual el rbol de objetos, independientemente de
cmo se qued la ltima vez al salir.
Edit properties: Edita las propiedades al realizar clic sobre el dibujo.
Configuration Dialog: usar el dialog box para configurar los objetos al
insertarlos en la picture o no.
Display tops and tricks: Mostrar la ventana de tips and tricks al arrancar de
manera automtica o no.
60
Aprende WinCC
En esta opcin podemos seleccionar las capas que deben estar activas por
defecto en una picture y las que no.
61
Aprende WinCC
Flat style for: El estilo de la barra de herramientas del Graphics Designer (botones
planos o con relieve, mostrar la linea lateral de la toolbar para desplazamiento o no,
mostrar color en los botones o no).
Standard toolbar: podemos definir si se pueden configurar los botones de la toolbar
o no. Para configurar los botones, basta con presionar la tecla ALT y seleccionando
un icono de la misma, arrastrarlo fuera de la barra de herramientas.
Display Buttons in Menu: podemos seleccionar si deben aparecer iconos al lado de
los textos del menu o no.
62
Aprende WinCC
63
Aprende WinCC
Idioma de la pantalla:
Podemos seleccionar diferentes idiomas para los textos asociados a todos los
objetos que coloquemos en las pantallas de 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
Cmo poder modificar el idioma actual de la pantalla activa?
En el men del Graphic Designer, en la opcin View->Language aparece una
ventana como la de la figura y podemos seleccionar nuestro idioma.
Cmo hacer una misma pantalla en Ingls y en Espaol?
Seleccione al principio el idioma Espaol (tradicional), coloque todos los objetos
que desee que aparezcan, escriba todos los textos, y grabe la pantalla. Ahora cambie de
idioma al ingls y ver como todos los textos aparecen en interrogantes. Vuelva a
escribirlos, esta vez en ingls.
64
Aprende WinCC
Si seleccionamos en el menu edit la opcin Tab sequence->Alpha cursor>sequence->edit podremos modificar el orden de alternancia entre los distintos campos
de entrada/salida de nuestra picture actual. Para modificar el orden basta con clickear en
el cuadrado de secuencia de uno de ellos. Si al realizar click se presiona la tecla shift el
objeto seleccionado adquiere el orden 1 de tabulacin automticamente.
Para modificar el tab order deberemos seleccionar en el menu edit la opcin Tab
sequence->tab order->sequence->edit
Para eliminar un objeto de la secuencia de tab deberemos de seleccionar de
nuevo tab order, y manteniendo presionadas las teclas shift+ ctrl seleccionar el objeto
65
Aprende WinCC
que se desea eliminar del orden de tabulacin. Su nmero ser sustituido por un
asterisco.
Para volver a insertar un objeto en el orden de tabulacin manteniendo
presionadas las teclas shift+ ctrl seleccionar el objeto que se desea insertar en el orden
de tabulacin. Su asterisco ser sustituido por un nmero.
Barras de herramientas.
Barra de colores
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.
Barra de zoom
Gracias al zoom podemos hacer escalados a la picture hasta de 8 aumentos y
reducciones hasta 1/4 parte. Podemos acceder al zoom sin necesidad de ratn
presionando Alt+z y las teclas de subir y bajar.
66
Aprende WinCC
Barra de objetos
Los objetos de la barra de objetos se dividen en tres categoras:
Standard Objects: Objetos estndar de dibujo, tales como lneas, polgonos, etc..
Smart Objects: Objetos inteligentes, cada uno con unas propiedades especiales.
67
Aprende WinCC
Barra de layers:
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.
Barra de alineacin.
Esta barra se utiliza para poder alinear varios objetos y tambin para igualarlos
en tamao tanto en altura como en anchura.
Aprende WinCC
Es muy importante saber cual va a ser el objeto que se tome como referencia para
las acciones. Si se han seleccionado los objetos por el mtodo...:
de abrir una ventana de seleccin: se toma como referencia el que est ms al
extremo de la ventana.
utilizando el ratn y teniendo presionada la tecla maysculas: el primero que se
seleccion.
Barra de fuentes
Barra de estilos
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).
69
Aprende WinCC
70
Aprende WinCC
Smart Objects
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.
I/O Field:
71
Aprende WinCC
72
Aprende WinCC
73
Aprende WinCC
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: Cuando el nuevo valor ha sido llevado a cabo por el
sistema se alamacena dicho mensaje en el sistema para su posterior estudio.
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.
74
Aprende WinCC
Limits:
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.
75
Aprende WinCC
76
Aprende WinCC
compuesto
por:
Formato
->
->
->
->
1.0
+1.0
+1.0E+00
01.00
string:
compuesto
por:
Formato
hexadecimal:
77
Aprende WinCC
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:
78
Aprende WinCC
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...)
79
Aprende WinCC
Colors:
Border Color: Color del borde de la barra.
Border Background Color: Color del fondo del borde de la barra. Solo es
visible si el estilo del borde de la barra no es slido.
Background color: Color del fondo de la ventana de la barra.
Fill Pattern color: Color de rellenado de la ventana de la barra. Solo es
visible si el estilo del fondo de la ventana no es slido.
Bar color: Color de la barra.
Scale color: Color de la escala.
Bar Background color: Color del fondo de la barra.
Trend color: Color de la tendencia. La tendencia es un indicador que aparece
en la esquina inferior de la barra indicndonos el sentido del proceso
(creciente o decreciente).
Styles:
o Border Weight: Anchura del borde de la ventana de la barra.
o Border Style: Estilo del borde de la ventana.
o Fill Pattern: Estilo de rellenado del fondo de la ventana de la barra.
o Bar Pattern: Estilo de rellenado de la barra.
80
Aprende WinCC
Font:
o Font: Fuente de la escala e la barra.
o Font Size: Escala de la fuente de la escala de la barra.
o Bold: Si dicha fuente debe aparecer en negrita.
81
Aprende WinCC
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.
82
Aprende WinCC
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.
83
Aprende WinCC
LINEAL
LOGARIT.
NEG. LOGARIT.
AUTOMATIC TANGENT
CUADRATIC
CUBIC
Aprende WinCC
Limits:
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
85
Aprende WinCC
que la barra cambia de color cuando el valor del proceso est por encima del valor
estipulado como lmite de alarma.
Como ya dijimos, todo objeto tiene su Configuration dialog, o resumen de
propiedades. En el caso de la barra son:
86
Aprende WinCC
Graphic Object.
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:
87
Aprende WinCC
88
Aprende WinCC
Status display.
El status display es el objeto a utilizar para mostrar animaciones en pantalla.
Estas animaciones se componen de hasta un mximo de 31 imgenes que se van
mostrando en funcin del valor que adopte una variable asignada.
El Configuration Dialog del status display es el siguiente:
89
Aprende WinCC
90
Aprende WinCC
Text list.
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 tres 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.
Aprende WinCC
92
Aprende WinCC
Buttons.
El objeto button es el encargado de la asignacin de las funciones tpicas de
manejo por el programa de la aplicacin (cambio de pantalla) y realizacin de funciones
predefinidas (activar una determinada bomba, etc...).
La ventana de configuration dialog de button es la siguiente:
93
Aprende WinCC
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).
94
Aprende WinCC
Check box.
El control checkbox es la manera de seleccionar opciones no excluyentes entre s
dentro de una seleccin requerida al usuario.
95
Aprende WinCC
Selected Boxes: Cajas que estn activas por defecto segn el array generado (en el
ejemplo solo la primera de las tres).
La visualizacin del control tal como lo hemos configurado es la siguiente:
96
Aprende WinCC
Option button.
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.
97
Aprende WinCC
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: Si se pincha copn el ratn en cualquier parte de la barra que no
sean los botones de subir y bajar, el valor se va directamente al mnimo o al mximo
98
Aprende WinCC
99
Aprende WinCC
Round.
El objeto round est ideado como pulsador con enclavamiento o como
visualizador de estado (presionado o no presionado).
100
Aprende WinCC
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.
Dinamic Dialogs System Functions:
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:
Exit Windows without restart:Apaga el sistema Windows NT, cerrando
todas las aplicaciones.
Cdigo: DMExitWinCCEx(DM_SDMODE_SYSTEM);
Exit WinCC: Sale de WinCC.
Cdigo:DMExitWinCCEx (DM_SDMODE_WINCC);
Exit WinCC and logon again: Sale de WinCC y vuelve a solicitar un nuevo
usuario de Windows NT.
Cdigo:DMExitWinCCEx (DM_SDMODE_LOGOFF);
Exit WinCC and restart Win dows: Sale de WinCC y rearranca Windows
NT.
Cdigo: DMExitWinCCEx (DM_SDMODE_REBOOT);
101
Aprende WinCC
102
Aprende WinCC
Standard Dinamics:
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.
Color Dinamics:
Color Dinamics with table:
Copy tag value: incluye el cdigo que copia una variable en otra. El cdigo asociado
es el siguiente:
double VarInh;
{ VarInh=GetTagDouble(TAG_0);
SetTagDouble(TAG_1,VarInh);
}
103
Aprende WinCC
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.
104
Aprende WinCC
105
Aprende WinCC
Display error: muestra una ventana de error en pantalla. Este Wizard es muy til
para sacar mensajes al operario frente a error de manejo.
106
Aprende WinCC
El resultado es el siguiente:
107
Aprende WinCC
108
Aprende WinCC
Dinamizacin de propiedades
Dinamizacin a travs de una variable
Las dinamizacin de las propiedades de un objeto se puede realizar de diferentes
maneras. La ms sencilla de todas reside en conectar la propiedad a una variable de
manera directa, de tal forma que el valor que posea la variable ser el que tenga la
propiedad, y viceversa.
Aprende WinCC
Programacin de eventos
Los eventos de un objeto deben de programarse en C. Sin embargo, existe un
pequeo asistente que nos puede evitar en algunas circunstancias tener que recurrir a la
programacin para realizar nuestras acciones en los eventos.
En WinCC este asistente se denomina Direct connection y tiene el aspecto
inferior:
110
Aprende WinCC
Programacin en C de eventos
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:
111
Aprende WinCC
C
Caappttuulloo 4..
A
Allaarrm
maass:: A
Allaarrm
m LLooggggiinngg
Diferentes tratamientos de las alarmas.
Las alarmas en WinCC las podemos utilizar para enterarnos de ms cosas que
exclusivamente si ha saltado un diferencial. Esto ya lo pusimos en prctica al principio,
utilizndolas para almacenar un histrico de usuarios con el que poder determinar que
operarios tenan el control del sistema en cada intervalo de tiempos del da.
En el presente captulo las vamos a utilizar para lo que estn principalmente
diseadas:
9 Deteccin de alarmas actuales en la instalacin.
9 Histrico de alarmas de la misma, y
9 Deteccin de fallos internos de programacin y mensajes internos del
compilador del sistema WinCC.
El almacenamiento del histrico de alarmas puede realizarse en formato de
tambor, o de manera ilimitada. En este segundo caso, ser necesario a la larga borrar a
mano el histrico de la base de datos runtime. Como existe la limitacin de que
nicamente se permiten visualizar en WinCC 1000 alarmas en la ventana de alarmas,
nos encontraramos si utilizsemos el segundo tipo de almacenamiento con el problema
de tener un histrico muy potente, pero tener que realizar filtros de seleccin por fechas
para poder observar dichos valores constantemente, a la vez que estar obligados a borrar
el histrico cada cierto tiempo.
Es por esto que en el ejemplo vamos a utilizar el almacenamiento por tambor,
que es mas prctico y produce casi el mismo resultado. La perdida de alarmas con el
paso del tiempo se puede solventar a travs de Access si lo deseamos, como veremos
ms adelante.
Diseo de las alarmas.
Una alarma se compone de bloques como sabemos, por lo que vamos a definirlos en
primer trmino. Entramos al Alarm Logging y definimos los siguientes bloques de
sistema:
112
Aprende WinCC
Pasamos a las clases de aviso. Esta vez no vamos a crear una nueva clase de aviso, sino
que utilizaremos la que ya viene prediseada en el WinCC, llamada Error. En las
propiedades de la clase definiremos los textos que deseamos que identifiquen sus
diferentes apariciones y desapariciones.
Vamos a utilizar el tipo de alarma Alarma, por lo que entramos a sus propiedades y
realizamos la siguiente asignacin de colores:
Aprende WinCC
De nuevo en el Alarm Logging definimos una nueva alarma, que posee las siguientes
caractersticas:
Observemos que la hemos asignado al tipo alarma de la clase Error, que deseamos que
se archive (para que aparezca posteriormente en el histrico de alarmas), y que active
una accin. Qu es activar una accin y para qu lo vamos a utilizar?. Bien, mas
adelante vamos a desear que suene un sonido por los altavoces del pc cada vez que
aparezca una nueva alarma en la instalacin. Luego necesitaremos que se ejecute una
accin en c ante la llegada de una nueva alarma. El activar esta casilla indica a WinCC
que ante cualquier evento de dicha alarma (que aparezca, desaparezca, sea reconocida),
entre a un funcin ya definida en WinCC que se llama gmsgfunc.fct.
Un tema muy importante sobre esto que estamos comentando es el hecho de que dicha
funcin no reside dentro de nuestro proyecto, sino en el subdirectorio
c:\Siemens\WinCC\aplib\alarm. Y qu importa?. Nada, si tenemos esto en cuenta a la
hora de llevarnos la aplicacin a otra instalacin, o de nuestra oficina al ordenador de la
fbrica. Cuando copiamos todo el subdirectorio de nuestro proyecto, deberemos de tener
la precaucin de copiar este archivo tambin, para posteriormente copiarlo en le mismo
subdirectorio de WinCC del pc destino de nuestro proyecto, o no servir para nada que
tengamos activada la opcin activa un accin, ya que acudir al gmscgfunc.fct, pero
no tendr cdigo, estar vaco.
114
Aprende WinCC
Continuando con la explicacin, vemos tambin que hemos asignado la variable interna
alarmas, y que deseamos que el bit 0 de la misma active la presente alarma.
Los textos de la alarma los introducimos de lo ms clarificadores para este ejemplo:
Y en el bloque usuario esta vez no vamos a colocar nada, ya que para esta alarma no lo
vamos a gastar.
Definimos dos alarmas ms, una con el bit 1 y otra con el 2 de la variable
alarmas, cambiando los textos para poder posteriormente identificarlas de una manera
sencilla. Recuerda que puedes seleccionar la que acabas de realizar copiarla y pegarla
para crear las dos nuevas.
115
Aprende WinCC
Histrico de alarmas.
Copiamos la pdl start.pdl y la renombramos como alarmas.pdl.
En bottom.pdl introducimos el siguiente botn de la biblioteca:
Observemos que en cuanto ejecutemos este cdigo nos vamos a ir a la pdl alarmas,
abandonando la pdl start. Y luego como volvemos?. Es necesario en este punto poseer
un sistema de navegacin por ventanas. Para ello diseamos al principio top.pdl, para
colocar en ella botones de acceso a las diferentes pantallas de nuestra instalacin. Pero
ahora mismo no vamos a utilizar este mtodo de navegacin, sino unas funciones en c
que nos permite ir a la pantalla inicial a la de la que venamos, o regresar a la que
fuimos, fuese en cada momento la que fuese. Para observar esta funcionalidad en
bottom introduciremos los siguientes botones de la biblioteca a la izquierda de la pdl:
116
Aprende WinCC
Te estars preguntando que qu son los botones de la derecha que aparecen sobre la
ventana de alarmas. Vamos a colocarlos, para poder activar y desactivar bits de la
117
Aprende WinCC
Para poder activar o desactivar bits utilizaremos un wizard de WinCC como muestra la
figura:
118
Aprende WinCC
119
Aprende WinCC
120
Aprende WinCC
Por ltimo definimos los bloques que compondrn nuestra lnea de alarmas y el
orden que poseern en la misma
121
Aprende WinCC
Alarmas Actuales.
Nuestro siguiente objetivo es poder mostrar en bottom.pdl una ventana en la que
aparezca reflejada la ltima alarma que ha aparecido en la instalacin. Para ello
introduciremos un WinCC alarm control como muestra la figura:
122
Aprende WinCC
123
Aprende WinCC
124
Aprende WinCC
El truco est en asociar en acuse del sealizador central la variable anterior. Adems de
realizar este proceso, es necesario que las alarmas de dicha clase (error) tengan activada
la opcin activa el sealizador central.
125
Aprende WinCC
126
Aprende WinCC
Ya podemos pasar al Report del histrico de alarmas. Creamos un nuevo Report con
la siguiente tabla dinmica:
Las propiedades de bloques de lnea y seleccin son las mismas que anteriormente
para la de alarmas actuales. Tambin realizamos una orden de impresin como la
siguiente:
127
Aprende WinCC
128
Aprende WinCC
Esto mismo que estamos realizando por la ventana de seleccin tambin lo podemos
realizar a travs de cdigo C. Veamos este mismo ejemplo, pero a travs de un botn
que nos filtra las alarmas de nmero 4 (igual que el ejemplo anterior, pero esta vez en
C).
BOOL ret;
MSG_FILTER_STRUCT Filter;
CMN_ERROR Error;
( &Filter, 0, sizeof( MSG_FILTER_STRUCT ) );
( Filter.szFilterName, " Ventana_Alarmas ");
Filter.dwFilter = MSG_FILTER_NR_FROM | MSG_FILTER_NR_TO;
Filter.dwMsgNr[0] = 4;
Filter.dwMsgNr[1] = 4;
ret = AXC_SetFilter(lpszPictureName,"Ventana_Alarmas",&Filter,&Error);
Si queremos mediante un botn volver a mostrar todas las alarmas de clase error el
cdigo sera:
char cadena[200];
strcpy(cadena,"MSGNR >= 4 AND MSGNR <= 4 AND CLASS IN( 1 ) AND TYPE IN( 1 ,2 ,3 )");
SetPropChar(lpszPictureName,"Ventana_Alarmas","MsgFilterSQL",cadena);
En la primera parte del cdigo creo que queda claro como se define el rango de
seleccin. La pregunta surge con la segunda parte, con la asignacin a la cadena de
texto cadena. Cmo podemos saber que cadena de texto es la que realiza el filtrado
que nosotros deseamos. Es bastante sencillo. Unicamente tenemos que realizar dicho
129
Aprende WinCC
filtrado con la ventana de seleccin de WinCC (como al principio del presente captulo),
aceptar dicha ventana y volver a abrirla. En la parte inferior, seleccionamos la consulta
que nos indica y la copiamos al portapapeles con ctrl.+c, para despus pegarla en
nuestra subrutina.
130
Aprende WinCC
En esta carpeta copiamos el wav que deseamos que suene. Ya podemos volver a
WinCC. Ahora necesitamos recordar un concepto que vimos anteriormente: cuando
se activa una alarma podemos hacer que entre automticamente el WinCC a una
funcin del sistema llamada gmsgfunc.fct.
Vamos al Global Script, y en funciones estndar->alarm disponemos de esta
funcin.
Deberemos de introducir el siguiente cdigo en la misma:
BOOL GMsgFunction( char* pszMsgData)
{
MSG_RTDATA_STRUCT mRT;
memset( &mRT, 0, sizeof( MSG_RTDATA_STRUCT ) );
if( pszMsgData != NULL )
{
sscanf( pszMsgData, "%ld,%ld,%04d.%02d.%02d,%02d:%02d:%02d:%03d,%ld, %ld,
%ld, %d,%d",
&mRT.dwMsgNr,
// mensaje de alarma
&mRT.dwMsgState,
&mRT.stMsgTime.wYear,
// ao
&mRT.stMsgTime.wMonth,
// Mes
&mRT.stMsgTime.wDay,
// dia
&mRT.stMsgTime.wHour,
// hora
&mRT.stMsgTime.wMinute,
// Minuto
&mRT.stMsgTime.wSecond,
// Segundo
131
Aprende WinCC
&mRT.stMsgTime.wMilliseconds,
&mRT.dwTimeDiff,
&mRT.dwCounter,
&mRT.dwFlags,
&mRT.wPValueUsed,
&mRT.wTextValueUsed );
// Milisegundo
// Diferencia de tiempo
// Contador interno de alarmas
// Marca interna
}
printf("Alarma Nr : %d, Estado: %x, Fecha:%d-%d-%d Hora:%d:%d:%d.%d, Dur: %d, Cnt
%d, Fl %d\r\n" ,
mRT.dwMsgNr, mRT.dwMsgState, mRT.stMsgTime.wDay, mRT.stMsgTime.wMonth,
mRT.stMsgTime.wYear,
mRT.stMsgTime.wHour,
mRT.stMsgTime.wMinute,
mRT.stMsgTime.wSecond,
mRT.stMsgTime.wMilliseconds, mRT.dwTimeDiff,
mRT.dwCounter, mRT.dwFlags ) ;
if (mRT.dwMsgState==MSG_STATE_COME)
// Si la alarma aparece sonar
{
#pragma code("Winmm.dll");
VOID WINAPI PlaySoundA(char* pszSound, char* hmode, DWORD dwFlag);
#pragma code();
unsigned long nummer=mRT.dwMsgNr;
if(nummer==3)
{
PlaySoundA("C:\\siemens\\WinCC\\WinCCProjects\\dunkerdemo_v51\\Wave\\Sound136.wa
v",NULL,1);
}
if(nummer==4 )
{
PlaySoundA("C:\\siemens\\WinCC\\WinCCProjects\\dunkerdemo_v51\\Wave\\ringin.wav",N
ULL,1);
}
}
return( TRUE );
}
Como podemos apreciar, utilizamos una funcin API que declaramos llamada
PlaySoundA para hacer sonar el wav cuando aparezca la alarma. En este ejemplo
hacemos sonar el wav sound136.wav cuando aparece la alarma 3, y el ringin.wav
cuando aparece la alarma 4.
Si no queremos complicarnos la vida podemos modificar el ejemplo para que
siempre que aparezca cualquiera suene el mismo wav.
Aunque parece un poco complicado, si estudias el cdigo vers que no tiene mayor
complicacin que hacerlo una vez para tu proyecto y te valdr para siempre.
132
Aprende WinCC
133
Aprende WinCC
Nos aparece una tabla de Access en la que vemos el histrico de alarmas de nuestra
runtime. Ahora ya podemos borrarlas, o hacer lo que deseemos con ellas utilizando las
herramientas de Access. No es conveniente realizar esta operacin con el runtime en
marcha, ya que puede que WinCC intente generar una alarma mientras estamos
borrando el histrico y tengamos problemas, por lo que sera conveniente para
previamente la parte de runtime.
134
Aprende WinCC
Los mensajes son creados a partir del nmero de alarma 1.000.000 para que no nos
machaque alguno que hubiesemos generado nosotros previamente.
Aprende WinCC
Para poder visualizar las alarmas del sistema en nuestra ventana de alarmas vamos a
colocar los siguientes botones en la misma:
136
Aprende WinCC
Con esto ya podemos observar nuestras alarmas, o las del sistema interno de errores de
windows de una manera sencilla con dos simples botones. La cuestin que se habr
preguntado es: cmo conozco el color que debo de pasar como parmetro a la funcin
SetBackColor?. WinCC posee una serie de colores ya predefinidos con unas constantes
(hemos utilizado ya dos de ellos). La tabla completa de dichos colores es la siguiente:
Color
VALOR COLOR (Hex)
ROJO
0x000000FF
ROJO OSCURO
0x00000080
VERDE
0x0000FF00
VERDE OSCURO
0x00008000
AZUL
0x00FF0000
AZUL OSCURO
0x00800000
CYAN
0x00FFFF00
CYAN OSCURO
0x00808000
AMARILLO
0x0000FFFF
AMARILLO OSCURO
0x00008080
MAGENTA
0x00FF00FF
MAGENTA OSCURA
0x00800080
GRIS CLARO
0x00C0C0C0
GRIS
0x00808080
NEGRO
0x00000000
BLANCO
0x00FFFFFF
CONSTANTE
CO_RED
CO_DKRED
CO_GREEN
CO_DKGREEN
CO_BLUE
CO_DKBLUE
CO_CYAN
CO_DKCYAN
CO_YELLOW
CO_DKYELLOW
CO_MAGENTA
CO_DKMAGENTA
CO_LTGRAY
CO_DKGRAY
CO_BLACK
CO_WHITE
Si no desea uno des estos colores sino uno personalizado, asignelo previamente a un
botn, y consulte su valor con GetBackColor, asocindolo a una variable y
observndola. Nos devolver un doble entero que identifica a dicho color personalizado.
137
Aprende WinCC
C
Caappttuulloo 5
TTaagg LLooggggiinngg..
138
Aprende WinCC
Aprende WinCC
140
Aprende WinCC
Aprende WinCC
142
Aprende WinCC
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
143
Aprende WinCC
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.
Propiedades de los archivos de valores
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.
144
Aprende WinCC
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.
Hay que tener en cuenta que si no se ha creado por lo menos un usuario en el
User Administrator, lgicamente no aparecer la ventana de niveles de usuario al
presionar el botn select. Para poder seleccionar los niveles de lectura, o
escritura en archivos de proceso, primeramente deber ir al captulo dedicado a
User Administrator y generar por lo menos un usuario nuevo, asignndole unos
niveles que sean de leer archivos y otro de escribir en archivos. Al volver a esta
pantalla, ya podr seleccionar el nivel deseado en la misma.
145
Aprende WinCC
Aprende WinCC
147
Aprende WinCC
148
Aprende WinCC
149
Aprende WinCC
150
Aprende WinCC
151
Aprende 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.
Cycle acquisition: Este tiempo indica cada cuanto debe ser ledo el valor de proceso
del administrador de variables para pasar a la variable de archivo.
Cycle Archiving: Este tiempo indica cada cuanto debe ser almacenada la variable
de archivo en el disco duro (o en la memoria de WinCC, si as se decidi). El valor
que se almacena depende del mtodo que se utilice para su procesamiento (vase
Processing).
Aprende WinCC
por el propio WinCC. El botn select permite seleccionar que accin es la que se
realizar.
Minimum value: Almacena el valor menor de todos los adquiridos durante el
perodo de tiempo entre el ltimo almacenamiento y ste.
Unit: The unit for the entered time value is either entered here directly or the
associated unit of the tag is selected via a structure element. This entry is used
primarily for tag display.
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.
153
Aprende WinCC
154
Aprende WinCC
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.
155
Aprende WinCC
int Arrancar_Grafica()
{
if (GetTagBit("NewTag")==TRUE)
{
return(1);
}
else
{
return(0);
}
}
Process 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
156
Aprende WinCC
157
Aprende WinCC
158
Aprende WinCC
Archivos comprimidos.
Los archivos comprimidos son como los archivos normales, salvo que se realiza
una compresin de la informacin antes de ser almacenada.
La nica diferencia es que en ellos vamos a poder determinar:
El tipo de compresin de los datos.
El tiempo de que se dispone para comprimir los datos (compresin cada da, cada
hora, etc..).
Se permite indicar un mensaje cuando el disco duro est lleno de datos.
Los archivos comprimidos son siempre long-term, por lo que no se permite realizar
tambor en los datos.
159
Aprende WinCC
Curvas de valores
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.
Cmo crear una curva de valores.
En esta versin de WinCC las curvas de valores, a diferencia de versiones
anteriores, no se realiza desde el Tag Logging, sino desde el Graphic Designer,
insertando un objeto WinCC online trend.
160
Aprende WinCC
Las
propiedades
de
general
information
son:
Window title: nombre descriptivo de la curva (p. Ej: presin zona 1).
Display: Muestra o no la curva o tendencia definida.
Open screen:
Display ruler: mostrar la regla de posicin al entrar a la picture donde est la
ventana de curvas.
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.
Common X axis: Si en la primera de las tendencias se selecciona esta casilla,
todos los ejes X de las tendencias sern comunes. Es decir todos los valores
representados en un punto del eje X fueron o estn siendo generados en el
mismo instante de tiempo. Si no se selecciona, cada tendencia muestra su
propio eje de tiempos, por lo que no se tiene que producir necesariamente
una correspondencia temporal entre dos curvas mostradas en la pantalla a
una misma altura del eje X.
Common Y Axis: Ejecuta la misma accin que antes, pero para el eje Y. Esto
es interesante cuando los valores del proceso a mostrar no presentan una
correspondencia en unidades (una es presin y otra es temperatura), pero s
en temporalidad (las dos variables es interesante mostrarlas a la vez en la
misma pantalla para compararlas en el tiempo).
Sizeable: la ventana puede ser dimensionada durante el runtime.
Can be closed: la ventana puede ser cerrada durante el runtime.
Data source: Los datos a mostrar en la grfica pueden proceder de un archivo en el
disco duro, o no, con lo que tal como se lean del proceso se mostrarn en pantalla.
161
Aprende WinCC
162
Aprende WinCC
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 visualizacin, siempre y cuando se haya tenido la precaucin de almacenar
el valor reserva de proceso en un archivo de valores.
163
Aprende WinCC
En este pestaa podremos crear las curvas que van a componer nuestra ventana
de curvas. Podemos configurar:
Name: nombre de cada una de las curvas.
Display: mostrar o no la curva en cuestin.
Color: color asignado a la curva actual.
Selection of archives: seleccionar el archivo o la variable de la que tomaremos el
valor a representar.
Display type: tipo de unin entre los valores representados (barras, lineas,
puntos,).
164
Aprende WinCC
En esta solapa definiremos las propiedades del eje X de tiempos. Recordar que
no es posible otro tipo de grfica que no sea temporal.
Display:
o Coarse Grid: muestra una lnea de divisin en el eje y cada x valores del eje.
El valor de x se puede introducir por el campo que aparece a la derecha de
dicha opcin.
o Fine grid: muestra una lnea de subdivisin al igual que la lnea coarse, pero
con la diferencia de que esta es ms estrecha, y no presenta nmero de
escala.
o Time:
o Selection: Seleccin del rango del eje X a mostrar en pantalla. Existen dos
posibilidades:
Seleccionar un time range, con lo cual veremos elltimo x tiempo,
siendo x el valor de factor x rea.
O seleccionar una cantidad de puntos de medida a visualizar.
165
Aprende WinCC
166
Aprende WinCC
167
Aprende WinCC
168
Aprende WinCC
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.
169
Aprende WinCC
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:
Aprende WinCC
Barra de herramientas
Mediante la opcin configure podemos configurar la barra de herramientas que
nos aparece en la ventana de curvas.
Aprende WinCC
172
Aprende WinCC
Curva previa al frente: esta opcin trae la curva que tengamos en segundo plano
al primero y viceversa.
Deshacer Curva previa al frente: Esta opcin deshace la accin anterior.
Start/Stop: arranque/parada de la actualizacin de los datos en la ventana.
Destacar que la parada no significa que se deje de guardar los valores en la base
de datos. Estos continan siendo almacenados de igual manera.
173
Aprende WinCC
Tablas de valores
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.
Crear una tabla de valores
Como pasaba con las grficas, para generar tablas en la versin 5.1 de WinCC es
necesario acceder al Graphic Designer donde podremos insertar un objeto de tipo
Online table control.
174
Aprende WinCC
En esta ventana podremos generar las columnas que deseemos para nuestra tabla
de valores. A su vez, podemos determinar cual va a ser la fuente de datos (de un fichero
o de una variable) de la que adquiriremos los datos paramostrarlos en cada una de las
columnas.
En esta solapa podemos definir las propiedades de nuestra ventana, como son el
ttulo, si debe cargar los datos automticamente al entrar a la picture donde se encuentre,
si es dimensionable durante el runtime, etc..
El parmetro common time determina si se utiliza un timepo comn para los valores
mostrados en las columnas.
175
Aprende WinCC
176
Aprende WinCC
177
Aprende WinCC
Grficas.
Grficas continuas.
Nuestro siguiente paso en la realizacin del proyecto ejemplo que estamos
desarrollando ser trabajar con grficas continuas. Las graficas continuas se basan en
adquirir de proceso unos valores y almacenarlos al disco duro cada cierto tiempo. Existe
un tiempo de adquisicin y otro (mayor por lo general) de almacenamiento. Se suele
gastar un tiempo de adquisicin de segundos y otro de almacenamiento de minutos, para
no sobrecargar al sistema con los frecuentes accesos al disco duro del PC.
178
Aprende WinCC
Dicho botn nos servir para entrar a un men que el desarrollo del presenta
captulo nos permitir navegar por las pantallas que tienen que ver con los diferentes
tipos de grficas. De momento vamos a comenzar renombrando la pdl salir.pdl, como
graficas.pdl, y dejndola con el siguiente aspecto:
179
Aprende WinCC
Vamos a crear un fichero de valores de proceso, en que incluiremos 3 curvas, cada una
asignada a las variables internas definidas previamente.
Si pulsamos con el botn derecho sobre el nombre de nuestro proyecto, podremos
seleccionar sus propiedades. En dichas propiedades podemos activar la exportacin de
los valores que vamos a lmacenar en nuestra runtime automticamente a ficheros
externos en formato csv. Esto nos permitir ms adelante poder trabajar desde Access
con dichos valores de una manera sencilla. Si esta operacin la efectuaramos a
posteriori perderamos el histrico de valores que se hubiese realizado hasta ese
momento.
180
Aprende WinCC
En las propiedades de nuestro fichero de curvas podremos definir el tamao del tambor
de nuestro archivo circulante. Cul debera de ser dicho valor?. Bien, para ello vamos a
poner un ejemplo, y cada uno podr sustituir sus propios parmetros por los que aqu se
muestran.
Supongamos que deseo alamacenar la temperatura de una sala, y deseo tener un
histrico de 1 ao. La temperatura la alamacenar cada hora. Como en 1 da hay 24
horas, y en 1 ao hay 365 das, el resultado ser:
24 valores por da * 365 das =8760 datos de archivo circulante.
Las curvas para esta instalacin de ejemplo, deberan de guardarse cada hora, pero
podemos realizar una lectura del valor cada minuto, y alamacenar al disco duro la media
de los 60 valores obtenidos durante la hora para obtener un valor mas estable de
evolucin.
181
Aprende WinCC
Clickeando dos veces sobre dicho objeto en el Graphic Designer podemos editar sus
propiedades, y definir tres curvas (procedentes de nuestro archivo anterior). Para ello,
iremos seleccionndolas con el botn de seleccin que nos muestra la base de datos
creada y las tendencias de que dispone.
182
Aprende WinCC
183
Aprende WinCC
En la solapa del eje de tiempos vamos a realizar una asignacin orientada a poder
mostrar una grfica lo ms rpidamente ahora que se encuentra parendiendo las
nociones de WinCC. La idea es mostrar en 1 minuto valores que van evolucionando.
Evidentemente, en una instalacin real, generalmente definiremos como intervalo de
tiempo 1 da o ms, para poder percibir una evolucin de datos significativos. Es
importante observar como en formato deberemos de seleccionar el formato de tiempos
adecuados (milisegundos carecen de sentido en instalaciones reales).
Pasamos ahora al eje y de la grfica. Como hemos indicado que deseamos un eje y
comn, el WinCC nos va a mostrar un nico eje, pero en realidad el continua con un eje
y diferente para cada curva. Es por esto que cuando copie los valores que va a ver en la
siguiente imagen, deber de repetirlos volviendo a seleccionar cada una de las curvas en
esta pantalla, y volviendo a introducir dichos valores.
184
Aprende WinCC
Si no introduce los mismos valores para los tres ejes y de las tres curvas, no le
funcionarn correctamente las parametrizaciones de cdigo c que posteriormente vamos
a realizar.
Con esto ya hemos finalizado nuestra ventana de grficas. Si arrancramos ahora el
runtime, veramos que ya disponemos de la misma, pero no poseemos valores, y por lo
tanto las curvas se encuentran en el punto 0. Para tener datos que visualizar, a la hora de
aprender a manejar el WinCC, es muy til utilizar el simulador de variables que lo
acompaa. Dicho simulador de variables es una opcin de la instalacin, por lo que si
no dispone del mismo en Inicio->Simatic->WinCC->Tools->WinCC variable simulator
deber de recurrir al cd-rom de WinCC para instalarlo.
Suponemos que ya se encuentra instalado en nuestro disco duro, por lo que podramos
ejecutarlo a travs del men inicio de windows. Pero en nuestro ejemplo vamos a incluir
un botn en nuestra pdl de graficas que permita ejecutar el simulador desde nuestro
proyecto directamente. Incluimos a la drecha de nuestra pdl el siguiente objeto de la
biblioteca:
Aprende WinCC
186
Aprende WinCC
}
else
{
SetPropBOOL(lpszPictureName,"GRAFICA","RelayCurves",FALSE);
//Tipo de retorno :BOOL
SetPropBOOL(lpszPictureName,"GRAFICA","CommonX",TRUE); //Tipo de retorno :BOOL
SetPropBOOL(lpszPictureName,"GRAFICA","CommonY",TRUE); //Tipo de retorno :BOOL
SetPropChar(lpszPictureName,"BOTON_SEPARAR","Text","SEPARAR"); //Tipo de retorno :BOOL
}
187
Aprende WinCC
3 . Si se encuentran separadas las junta y coloca los ejes x e y comunes, a la vez que
coloca el texto de separar al botn para que sepamos que la siguiente vez que lo
pulsemos se van a juntar las curvas.
El resultado de cada una de las pulsaciones podemos apreciarlo en las siguientes
pantallas:
188
Aprende WinCC
Igual que anteriormente, cambiamos el texto del botn para saber que accin es la que
realizar el botn en cada una de las pulsaciones.
Las guas del fondo de la pantalla nos permitirn referencias nuestros datos de una
manera ms sencilla.
189
Aprende WinCC
190
Aprende WinCC
SetPropChar(lpszPictureName,"BOTON_MOSTRAR2","Text","OCULTAR CURVA
2");
}
else
{
SetPropBOOL(lpszPictureName,"GRAFICA","ItemVisible",FALSE);
//Tipo de retorno :BOOL
SetPropChar(lpszPictureName,"BOTON_MOSTRAR2","Text","MOSTRAR CURVA 2");
//Tipo
de retorno :BOOL
}
Con esta funcionalidad podemos abrir por ejemplo una ventana al operario en la que
decida que curvas deben de visualizarse en cada momento.
191
Aprende WinCC
Aprende WinCC
El Report finaliza introduciendo una parte esttica con nuestro logotipo de empresa y el
nombre de nuestro proyecto y formulario.
Ya podemos salir y crear una orden de impresin como la que muestra la figura:
193
Aprende WinCC
194
Aprende WinCC
195
Aprende WinCC
196
Aprende WinCC
Por lo tanto, asignando una variable interna de tipo unsigned int a dicha
propiedad, podremos realizar adiciones y extracciones de bits en funcin de qu botn
deseamos o no mostrar en la barra de toolbar de la ventana de grficas.
197
Aprende WinCC
Rellenar superficie curva interpolada: igual que la anterior pero rellenando el rea.
Rellenar superficie curva escalonada: igual que la primera pero rellenado el rea.
Teniendo claros los tipos, vamos a hacer que podamos cambiar de tipo desde
unos botones externos a la ventana de grficas. Para ello vamos a utilizar una variable
interna de tipo unsigned 8 bits value, que denominaremos tipo_de_curva.
Teniendo esta variable, accedemos a la ventana de grficas, y en las propiedades
de la misma asignamos la variable tipo_de_curva a la propiedad curveform. Dicha
propiedad de una ventana de grficas permite cambiar de tipo e curva segn el siguiente
baremo (atencin, los valores se muestran en hexadecimal):
198
Aprende WinCC
199
Aprende WinCC
Mostrar la regla.
Aunque ya sabemos que hay un botn en la barra de herramientas de la ventana
de grficas que nos permite mostrar una regla con la que podemos desplazarnos por la
misma y observar de qu valores disponemos en cada momento en cada una de las
curvas, puede ser que deseemos mostrarla a travs de un botn externo (uno de los
motivos puede ser para poder protegerlo con un nivel de usuario, cosa que de otra
manera no es posible).
Esto es bastante sencillo incluyendo en el botn las siguientes instrucciones C:
Set_Focus(lpszPictureName,"ventana_grafica");
TlgTrendWindowPressLinealButton("TITULO_GRAFICA");
200
Aprende WinCC
Set_Focus(lpszPictureName,"Ventana_grafica");
SetPropWord(lpszPictureName,"Ventana_grafica","Index",0);
TlgTrendWindowPressNextButton("TITULO_GRAFICA ");
Sleep(5000);
TlgTrendWindowPressNextButton("TITULO_GRAFICA ");
Retroceder en la grfica.
#pragma code ("Kernel32.dll");
void WINAPI Sleep(DWORD dwMilliseconds);
#pragma code();
Set_Focus(lpszPictureName,"Ventana_grafica");
SetPropWord(lpszPictureName,"Ventana_grafica","Index",0);
TlgTrendWindowPressPrevButton("TITULO_GRAFICA ");
Sleep(5000);
TlgTrendWindowPressPrevButton("TITULO_GRAFICA ");
201
Aprende WinCC
Es por este motivo que ser necesario realizar una funcin de telerruptor en el
plc en el caso de que se desee almacenar nicamente por flanco positivo. Un ejemplo
tpico de este tipo de almacenamiento acclico sera el caso de un transfer de piezas.
nicamente cuando una pieza se encuentra frente a la sonda de medida tiene sentido el
almacenar una de sus propiedades (el tamao de la pieza, p. Ej). Una barrera
fotoelctrica o un detector inductivo podran ser esta variable de control que nos dispara
el almacenamiento de dicho valor.
La funcin del telerruptor necesaria en el plc podra tener el siguiente aspecto en
Step 7 (atencin, esto es un ejemplo de programacin para sep 7, no para programar en
el WinCC):
202
Aprende WinCC
203
Aprende WinCC
204
Aprende WinCC
Lo que deseamos es que cuando pulsemos una vez dicho botn se active la
variable ACICLICA, y cuando pulsemos de nuevo se desactive, para poder realizar la
simulacin acclica.
El cdigo para realizar esto es el siguiente:
BOOL valor;
valor=GetTagBit("ACICLICA");
if (valor==TRUE)
{
SetTagBit("ACICLICA", FALSE);
}
else
{
SetTagBit("ACICLICA",TRUE);
}
205
Aprende WinCC
Aprende WinCC
return(valor);
}
Cerramos el Global Script y acudimos al Tag Logging. Igual que hicimos antes, vamos
a trabajar sobre la curva 1, que editamos y cambiamos su forma de archivado a ciclo
selectiva.
Aprende WinCC
Lgicamente tendremos que poner un botn en graficas.pdl para que podamos acceder a
esta nueva pdl generada. Ya podemos probar el ejemplo y controlar el almacenamiento
desde el botn generado.
208
Aprende WinCC
Archivado al cambiar.
Existe un ltimo mtodo de almacenamiento denominado al cambiar. Es igual al
ciclo continuo (el primero que vimos), salvo por dos diferencias:
1. El tiempo de adquisicin de la variable de proceso est asignado a 1 segundo.
2. No se almacenan valores si no cambia el valor de proceso.
Es por este motivo que este tipo de almacenamiento es muy interesante para la
mayora de las adquisiciones de una instalacin, ya que libera al sistema de tener que
almacenar valores repetidos con el ahorro de tiempo al acceder al disco duro, y de
espacio en el mismo.
209
Aprende WinCC
Aprende WinCC
Vamos a seleccionar 1 minuto para el clculo, para poder observar en tiempo real una
evolucin dentro de dicho archivo sin tener que esperar das para obtener resultados.
Ya podemos hacernos una nueva pdl, renombrando grafica_continua.pdl, que
denominaremos historial.pdl, y cuya nica modificacin importante es la asignacin de
la variable a mostrar en la ventana grfica:
Solo tenemos que poner un botn de acceso en graficas.pdl, y podremos observar como
hasta que no pasa 1 minuto no obtenemos valores en dicho fichero.
211
Aprende WinCC
Es importante tener en cuenta que al activar esta opcin se borran todos los datos
del histrico de la base de datos de runtime, por lo que es aconsejable realizar dicha
seleccin al principio del proyecto, en la puesta en marcha.
Los datos nos los almacena en el subdirectorio de nuestro proyecto PDE,
generando un subdirectorio por cada archivo, y un fichero por cada tendencia.
Cada uno de los archivos 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 control interno. Sin relevancia para nosotros.
212
Aprende WinCC
213
Aprende WinCC
AR_SEND.
Existen situaciones en las cuales la lectura y almacenamiento de valores de proceso se
realiza en un determinado instante y posteriormente deben ser adquiridos por el scada
dichos valores mostrndolos en el instante en que fueron adquiridos, y no en el que son
ledos desde el scada. Dos casos podran ser:
9 Un valor que es almacenado en una db cada medio segundo durante 1 minuto y
que no va a recibir ms valores hasta pasadas unas horas. Si adquiriramos los
valores en tiempo real desde el scada correramos el riesgo de perder valores o
ralentizar durante ese minuto en demasa el PC al estar guardando en el disco
duro cada tan corto espacio detiempo.
9 En sinaut, una remota almacena valores que son requeridos por la maestra cada x
horas. Dichos valores son adquiridos por el scada desde la maestra un par de
horas despus de haber sido generados en la remota.
En estas situaciones es necesario recurrir a la funcin AR_SEND, que se encarga de
enviar dichos valores a un archivo en el scada guardndolos en el tiempo en que
indiquemos en dicha funcin, y no en la hora actual del pc del scada.
Esta funcin AR_SEND nicamente est disponible en los equipos S7 400, no
siendo posible generarla en los equipos S7 300.
Supongamos que tenemos un proyecto de S7 con un equipo 400 conectado al scada
por TCP/IP. Nuestro objetivo es transferir 100 valores que han sido almacenados
cada hora a partir de una fecha y hora determinada al scada de una sola vez, y que
este los guarde en el orden correcto.
Lo primero que necesitamos es una DB con una estructura de datos determinada por
el tipo de utilidad que le vamos a dar a la funcin ar_send. Dicha estructura es la
siguiente:
214
Aprende WinCC
Tiempo de referencia
AR_ID Subnumero
215
Aprende WinCC
C
Caappttuulloo 6
R
Reeppoorrtt D
Deessiiggnneerr..
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 de 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.
Partes del Report Designer
Dentro del apartado Report Designer existen tres subdivisiones, cada una con una
finalidad distinta.
Aprende WinCC
Layout
Caractersticas generales
217
Aprende WinCC
rea no impimible.
rea imprimible (donde se encuentra la parte esttica del documento).
Cuerpo del documento (donde se encuentra la parte dinmica del Report).
La parte esttica del documento est compuesta por campos cuyo valor va a ser
comn para todo el Report o son aportados por el sistema, como son la fecha, hora, el
nombre del proyecto o el nmero de pgina actual. La parte dinmica est compuesta
por los datos a mostrar en dicho Report, e ir en funcin del tipo de datos dinmicos que
deseemos mostrar.
218
Aprende WinCC
Geometry:
o Width: ancho de la pgina.
o Height: alto de la pgina.
o Paper size: formato de tamao del papel en que se imprime el layout (carta,
A4,etc..)
o Orientacin: Vertical o apaisado.
o Left print margin: margen izquierdo a partir del que se empieza a imprimir.
o 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).
219
Aprende WinCC
Miscelaneous:
o 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.
o Final page: lo mismo, pero con una pgina de finalizacin de documento.
220
Aprende WinCC
221
Aprende WinCC
Dynamic metafile: realiza una impresin grfica o de una determinada pantalla que
hayamos diseado con el Graphic Designer, o de una grfica.
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.
222
Aprende WinCC
223
Aprende WinCC
Tag 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.
224
Aprende WinCC
con
los
objetos
que
podemos
utilizar
tenemos:
Aprende WinCC
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.
226
Aprende WinCC
227
Aprende WinCC
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.
228
Aprende WinCC
229
Aprende WinCC
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).
230
Aprende WinCC
All jobs.
Muestra el estado de todos los Reports en una sola pantalla.
231
Aprende WinCC
232
Aprende WinCC
C
Caappttuulloo 7
G
Glloobbaall S
Sccrriipptt..
Project functions: funciones de proyecto. Son aquellas funciones que deben ser
llamadas desde otras partes del programa para devolver valores despus de realizar
alguna operacin en C. Anteriormente vimos como arrancbamos una grfica y la
parbamos con dos funciones de proyecto. Las funciones de proyecto quedan
almacenadas automticamente en el subdirectorio Library de nuestro proyecto, con
la extensin fct. Para traerse una funcin de proyecto de un proyecto a otro
deberemos de copiar dicho archivo en dicho subdirectorio del proyecto fuente al
destino.
233
Aprende WinCC
Standard Functions: Son las funciones standard del propio WinCC, que no residen
en nuestro proyecto, sino en el subdirectorio aplib de WinCC. Estas funciones
estndar se pueden modificar, pero dicha modificacin es permanente hasta que no
se reinstale el WinCC, ya que como se dijo los archivos fct de standard functions
son comunes para todos nuestros proyectos. Si deseamos generar subrutinas que
sean utilizadas por todos los proyectos en que trabajemos, solo tenemos que
copiarlas en el subdirectorio aplib. Cuando volvamos al Global Script no nos
aparece en el rbol la funcin hasta que no seleccionamos en el men Options->
Regenerate Header.
Internal Functions: Funciones que realizan acciones predeterminadas, como son
proporcionar un valor de una variable, o asignar un valor a una variable. Estas
funciones son por supuesto comunes, y no pueden ser modificadas.
Actions: Una accin es una subrutina que no se ejecuta cuando sea llamada por un
evento, sino cuando un trigger o disparo, ya sea por tiempo o por cambio de variable
ocurra. Las actions no se pueden cambiar de nombre (siempre se llaman gscaction),
y generan un fichero de extensin pas que se guarda en el subdirectorio pas, ya sea
del ordenador en cuestin (monopuesto) o de manera global para todos los
ordenadores (multipuesto). El fichero pas por defecto se llama gsccs1.pas, pero se
puede renombrar a posteriori.
Project Functions
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 Suma_Dos_Valores(int Valor_1, int Valor_2)
{
int Temporal;
Temporal=Valor_1+Valor_2;
return(Temporal);
}
234
Aprende WinCC
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
int Temporal;
int temp1,temp2;
temp1=GetTagSWord("CANTIDAD_1"); //Return-Type :short int
temp2=GetTagSWord("CANTIDAD_2"); //Return-Type :short int
Temporal=Suma_Dos_Valores(temp1,temp2);
SetTagSWord("VAR_1",Temporal);
//Return-Type :BOOL
235
Aprende WinCC
Standard Functions
Las funciones standard son funciones de proyecto (subrutinas de programacin
en C) tambin de extensin fct, pero con la particularidad de que vienen generadas por
el propio sistema, y no se encuentran en nuestro proyecto, sino en el subdirectorio aplib
de WinCC.
La estructura del rbol que cuelga de standard function se basa en los
subdirectorios que cuelgan del directorio aplib, pudiendo nosotros modificarlo a nuestro
gusto, e incluir project functions que sean accesibles a todos los proyectos.
Es decir, por un lado podemos acceder al cdigo de las funciones por defecto o
standard simplemente realizando click sobre ellas, modificndolas o borrndolas si no
nos interesan (la modificacin ser para todos los proyectos, ya que son funciones
comunes a los mismos).
Por otro lado, podemos incluir en un directorio nuestro archivo fct y ser
accesible a todos los proyectos a partir de ese momento. Se debe recordar que para que
se actualice el rbol del Global Script hay que realizar la accin compile header, como
se vio anteriormente.
Resumiendo, una funcin standard es como una funcin de proyecto, con la
diferencia de que es accesible a todos los proyectos, ya que existe en un subdirectorio
fuera del propio del proyecto actual.
Internal functions
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.
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
236
Aprende WinCC
almacena en el subdirectorio pas de nuestro proyecto. Esto significa que las acciones
locales solo se ejecutarn cuando el proyecto sea multiusuario en el equipo donde se
crearon, y no ser posible realizar dicha accin en otro equipo del proyecto.
Cada dez que se genera una nueva accin, el fichero apdefap.h es integrado
automticamente en el subdirectorio library 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.
237
Aprende WinCC
Funciones en C.
Partes de las acciones.
Declaracin de constantes para tags: En estas lneas se definen constantes para las
variables que vayamos a utilizar. En la versin 5.1 de WinCC estas constantes y el
lugar donde se declaran son necesarias para posteriormente poder realizar una
sustitucin completa de una variable por otra mediante cross reference.
// WINCC: TAGNAME_SECTION_START
// syntax #define Tagnameinaction Tagname
#define Variable_1 MW10_TiempoPresion
// next TagID: 1
// WINCC: TAGNAME_SECTION_END
Declaracin de variables:
Int pepe=0;
BOOL juan=FALSE;
Retorno de la funcin:
Return pepe;
Printf.
La instruccin printf posee la siguiente estructura:
238
Aprende WinCC
239
Aprende WinCC
Definicin de variables en C.
Los tipos de variables que podemos definir en C son los siguientes:
Data Type
Value
Range
Int
unsigned int
short
unsigned short
long
unsigned long
char
unsigned char
float
double
Operadores matemticos en C.
Los operadores que podemos utilizar para nuestras operaciones matemticas y
lgicas son los siguiente:
Operaciones
+
*
/
%
++
--
matemticas:
Suma
Resta
Multiplicacion
Divisin
Modulo (resto de una divisin)
Incrementar
Decrementar
valor=uno+dos
valor=uno-dos
valor=uno*dos
valor=uno/dos
valor=uno%dos
++valor
--valor
Bit-a-Bit AND
Bit-a-Bit OR
Bit-a-Bit XOR
Bit-a-Bit inversion
Mueve los bits a la izquierda
Mueve los bits a la derecha
valor=uno&dos
valor=uno|dos
valor=uno^dos
valor=uno~dos
valor=uno<<8
valor=uno>>8
Mayor que
Mayor o igual que
Igual que
Distinto de
Menor o igual que
if(uno>dos)
if(uno>=dos)
if(uno==dos)
if(uno!=dos)
if(uno<=dos)
240
Aprende WinCC
<
&&
||
!
Menor que
AND lgica
OR lgica
inversion lgica
241
if(uno<dos)
if(uno&&dos)
if(uno!!dos)
if(!uno)
Aprende WinCC
Disparo de acciones
242
Aprende WinCC
243
Aprende WinCC
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.
244
Aprende WinCC
Tag: Podemos disparar una accin cuando alguna o varias variables cambien de
valor.
Aprende WinCC
Para definir una variable local, simplemente hay que declararla dentro de una
funcin o evento. Sin embargo para definir una variable global:
Nota: Si declaramos una variable externa sobre una funcin standard, esta
funcin existir en todos los proyectos que generemos.
Exportar acciones.
A veces puede ser interesante exportar una accin de un proyecto a otro, p. Ej.,
en el caso de haber realizado una funcin que nos calcule cuando debemos de salvar
datos a una grfica, y queremos implementarla en un nuevo proyecto que hayamos
realizado (si copiramos el cdigo C a travs del portapapeles los datos de disparo,
autor, password, etc se deberan de volver a crear).
Para ello, pulsamos en el botn de esportacin en la barra de herramientas del
Global Script, grabando la accin con la extensin act.
Para importar la accin, cerramos el proyecto fuente y abrimos el proyecto
destino. Dentro del Global Script tenemos el botn de importar y capturamos el fichero
anteriormente generado.
246
Aprende WinCC
Diagnstico de funciones C.
Una de las tareas ms importantes a la hora de trabajar con funciones C es poder
realizar diagnstico de las mismas durante su ejecucin, ya que a menudo las acciones
que realizan no poseen un control visual de su ejecucin, y no podemos saber si se
estn ejecutando bien, y porqu en el caso de que lo realicen mal.
Vamos a estudiar las posibilidades de diagnstico que soporta WinCC V5.1.
Global Script runtime.
Durante el runtime, podemos colocar un objeto Global Script runtime en
cualquier picture, que nos indicar que funciones se estn ejecutando, el tiempo de
proceso que se est dedicando a cada una de ellas, cuando arrancaron y los valores de
retorno y de error que estn devolviendo las mismas en el momento actual.
247
Aprende WinCC
Funciones standard.
A continuacin repasaremos las funciones standard que acompaan a WinCC.
Standard Alarm.
Las funciones disponibles para el manejo de la ventana de alarmas son las
siguientes:
248
Aprende WinCC
Standard Graphics.
249
Aprende WinCC
Standard Reports.
Siendo:
*PCMN_ERROR;
250
Aprende WinCC
C
Caappttuulloo 8
TTeexxtt LLiibbrraarryy..
Text Library es la parte de 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 de
WinCC en modo runtime cambiamos de cdigo de idioma, automticamente sustituye
los textos asignados a un nmero en un idioma por el correspondiente.
251
Aprende WinCC
Idiomas
Cmo crear un nuevo idioma?
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.
Cmo borrar un idioma?
Para borrar un idioma, en el men Options->Delete language podemos
deshacernos de un idioma no deseado. Hay que tener en cuenta que se pierden todos los
mensajes configurados bajo ese idioma de manera irrevocable.
252
Aprende WinCC
253
Aprende WinCC
C
Caappttuulloo 9
U
Usseerr A
Addm
miinniissttrraattoorr..
El apartado de WinCC denominado User Administrator se encarga de la
administracin de los usuarios que van a trabajar en el runtime del sistema WinCC.
La principal diferencia que hay que observar en la filosofa de usuarios de
WinCC con respecto al tpico control de privilegios por niveles es que en el WinCC el
disponer de privilegio o nivel para realizar algo que los dems no estn autorizados no
implica que se permita acceder a todo lo que los dems usuarios son capaces de realizar.
Aprende WinCC
Usuarios.
Cmo crear un nuevo grupo de usuarios?
255
Aprende WinCC
Passwords.
Cmo asignar un nivel de password a un nuevo usuario?
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.
Cmo crear una nueva capacidad?
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.
256
Aprende WinCC
Aprende WinCC
Nota: si se habilita la opcin Chipcard, aparece una casilla que nos permite
realizar los logins de los operarios a travs de la tarjeta chipcard.
Cmo asignar un nivel de password a una accin?
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.
Passwords estndar.
El WinCC al crear un nuevo proyecto ya genera por defecto una serie de niveles
de password estndar. El significado de los mismos es el siguiente:
User administration: si este nivel est activo, se permite la entrada al mdulo user
administration y realizar cambios en el mismo.
Tag entering: cuando est activo este nivel, se permite introducir valores de manera
manual en los campos de I/O.
Process controlling: permite al operario realizar cambios del tipo
manual/automtico.
Picture editing: Permite ejecutar el grapich Designer para realizar cambios en las
pantallas.
Change Picture: Permite al operario realizar cambios en las pantallas durante el
runtime.
Windows Selection: Permite al operario cambiar a las aplicaciones Windows que se
estuvieran ejecutando en background junto con el WinCC.
Hardcopy: Habilita que se puedan realizar hardcopys de la pantalla.
Confirm alarm: Habilita que el operario pueda confirmar alarmas.
258
Aprende WinCC
Lock alarms: Habilita que el operario pueda bloquear alarmas para que no vuelvan
a aparecer.
Free alarms: Habilita que el operario pueda liberar alarmas que estuviesen
bloqueadas previamente.
Project alarms: Permite al operario acceder al Alarm Logging para cambiar
alarmas.
Start archive: Permite al operario arrancar un archivo de proceso.
Stop archive: Permite al operario parar un archivo de proceso.
Edit archive value: Permite al operario editar un valor de un archivo desde una
tabla.
Project archive value: Si st activa, permite al operario configurar los archivos en el
Tag Logging.
Project manager: Habilita al operario para poder salir al Explorador de WinCC.
259
Aprende WinCC
Addons.
Variable login.
La opcin variable login permite asignar un valor concreto a una variable de
usuario. De esta manera esposible asignar un nivel de password de manera directa
simplemente presionando una tecla.
Los pasos a seguir para realizar esta accin son los siguientes:
Asignar a un ordenador una variable de usuario.
Especificar un valor mnimo y mximo para dicha variable de usuario.
Asignar una tag a la variable de usuario.
Si se asigna el valor logout a la tag asignada a la variable de usuario se podr dar de
baja un operario de manera directa. En el momento que un operario se da de alta en el
sistema mendiante el metodo variable login no es posible que otro lo haga con la
ventana de user dialog que aparece al presionar la hotkey de login. Esto ser as hasta
que el usuario primero se d de baja con logout.
Asignar un ordenador a una tag.
La opcin del men Computer assignement perimte realizar esta accin.
El tipo de variable debe de ser entero, para comprender un valor que ir desde 0
a 10.
Configuration
En la opcin configurationpodremos seleccionar el valor mnimo y mximo
que puede adoptar la variable seleccionada como variable login.
260
Aprende WinCC
Chipcard.
Es posible dar de alta a operarios mediante tarjetas magnticas que se pasan por
un aparato denominado chipcard que se conecta al puerto serie del PC. Este software
ms hardware es una opcin de WinCC, cuyo funcionamiento se explica a continuacin.
Suponemos que se ha instalado el software opcional Chipcard y conectado el
lector/escritor al puerto serie del PC.
Parametrizar el Chipcard.
En el panel de control de Windows NT disponemos de un icono
denominadoChipcard que nos permite configurar el modo de funcionamiento de la
lectora chipcard.
261
Aprende WinCC
262