Solució a les preguntes més habituals
En aquesta pàgina pots trobar resposta a temes que et poden interessar. Per exemple, com configurar les comunicacions d’un CVM, què fer si la mesura no és correcta, etc.
PowerStudio
Heu de comprovar que en l’ordinador local hi hagi instal·lat el navegador Microsoft Internet Explorer, Netscape (Mozilla) o Firefox. Assegureu-vos de tenir instal·lada la màquina virtual JRE de Java 1.6 (6.0) o superior, tot i que en cas de no estar instal·lada el propi navegador oferirà informació i guiarà en el procés de la seva d’instal·lació.
Si l’Applet apareix però mostra un missatge avisant de que “no s’ha pogut comunicar amb el servidor” o “no s’ha pogut recuperar la informació requerida” assegureu-vos de que el motor de comunicacions està en execució.
És possible que alguns tipus de lletra que es van aplicar als controls al dissenyar un informe o una pantalla SCADA no existeixin en la màquina des de que es descarrega l’Applet i, per tant, el tipus de lletra escollit pot ser notablement diferent a l’original.
Si el succés no es produeix quan creieu que s’hauria de produir, o viceversa, comproveu que la condició es pot complir alguna vegada i assegureu-vos que el succés està habilitat en algun moment per calendari i que la condició es pot complir durant aquest interval. Comproveu que els dispositius involucrats en l’avaluació de la condició del succés comuniquen correctament i assegureu-vos que el motor de comunicacions s’ha iniciat. Comproveu que teniu permisos per veure aquest tipus d’esdeveniments i que heu marcat la casella de notificar i/o registrar.
Si el succés sembla no haver realitzat les accions que han estat definides comproveu a la llista d’esdeveniments que realment s’ha produït. Si tot i així no s’ha produït l’acció o les accions programades comproveu que els equips sobre els quals s’hauria d’haver actuat estan encesos i comuniquen correctament. En cas que l’acció fos l’execució d’una aplicació externa comproveu que aquesta aplicació està correctament instal·lada i que l’ordre i els paràmetres són els correctes (podeu posar aquesta acció en un control d’execució a una pantalla de SCADA de prova per veure si es comporta de la manera esperada).
És possible que un control condicional o una fórmula facin referència a alguna variable d’un dispositiu que no comunica o que encara no s’ha pogut interrogar per primera vegada. En una pantalla SCADA, si es tracta d’una condició no apareixerà res i si es tracta d’una fórmula apareixerà un guió (“-”) fins que se’n pugui inicialitzar el valor. En un informe, si no hi ha dades en aquest període i no es pot avaluar la condició d’un control condicional no apareixerà res i, si no es pot avaluar una fórmula, apareixerà la seva definició.
Pot ser que a l’avaluar la fórmula es trobi alguna operació no vàlida, com l’arrel quadrada d’un nombre negatiu o la divisió per zero, en aquest cas a la pantalla SCADA apareixerà un interrogant (“?”) i a l’informe apareixerà la definició de la fórmula. Si el que no es pot avaluar és la condició d’un control condicional no apareixerà res.
Pot ser que l’avaluació de l’expressió d’una fórmula no sigui representable, ja sigui per la configuració del control que la conté, ja sigui perquè l’avaluació d’aquesta fórmula ha tornat un valor fora de rang. En aquest cas apareixerà el caràcter “#”.
Si a la gràfica semblen faltar-hi punts comproveu que això no sigui pel fet que es representen variables amb períodes diferents.
Si las gráficas de barras tienen anchos que no son correctos asegúrese de que los valores están separados por la distancia que marca el periodo del driver. Así, por ejemplo, si un dispositivo guarda datos cada 5 minutos y cambiamos el periodo a 15 minutos, al visualizar las gráficas de barras de los valores anteriores al cambio de periodo (cada 5 minutos) las barras se sobrepondrán unas a otras. Si cambiamos el periodo a un valor menos, las barras antes del cambio aparecerán más estrechas de lo que sería necesario. En cualquier caso las gráficas de barras de valores separados por la distancia marcada en el periodo de registro del Driver aparecerán siempre correctamente.
Si les gràfiques de barres tenen amplades que no són correctes assegureu-vos que els valors estan separats per la distància que marca el període del driver. Així, per exemple, si un dispositiu guarda dades cada 5 minuts i canviem el període a 15 minuts, en visualitzar les gràfiques de barres dels valors anteriors al canvi de període (cada 5 minuts) les barres se sobreposaran les unes a les altres. Si canviem el període a un valor menys, les barres abans del canvi apareixeran més estretes del que caldria. En qualsevol cas, les gràfiques de barres de valors separades per la distància marcada en el període de registre del Driver apareixeran sempre correctament.
Si no veieu valors on creieu que hauria d’haver-ne assegureu-vos que no teniu cap zoom en una zona sense valors o que l’eix Y no està forçat a uns nivells per als quals no hi ha valors.
Si al posar un control de pot de pintura en una pantalla Scada no es comporta de la manera esperada assegureu-vos de:
Per qüestions de seguretat, el programari no envia correus si el servidor de correu no té activada l’opció Transport Layer Security (TSL) i el servidor de correu només suporta els protocols d’autenticació Plain, Login o NTLM, ja que aquests protocols són poc segurs per enviar informació.
Si aquest és el vostre cas:
Per qüestions de seguretat, els Applet Java tenen unes limitacions força importants relatives a l’accés als recursos de la màquina local on s’executen. Una d’aquestes restriccions és la de no poder executar aplicacions a la màquina local. No obstant això, aquesta restricció es pot desactivar afegint al fitxer de permisos java.policy situat a la instal·lació de la màquina virtual JRE, la següent línia:
Cal assenyalar, però, que a l’Applet no es poden visualitzar directament fitxers des del control d’execució, com es pot fer a l’SCADA. Així, si volguéssim mostrar una imatge a l’Applet no n’hi hauria prou amb posar el nom de la imatge al control d’execució, sinó que hauríem de posar l’aplicació que volem utilitzar per mostrar la imatge i, com a paràmetre, la imatge a mostrar.
Nota: L’opció de llançar aplicacions externes és molt dependent del sistema en què s’executi l’Applet, de manera que és molt probable que només funcioni en el sistema per al qual ha estat desenvolupada l’aplicació.
L’Applet es pot visualitzar sense fer cap acció especial des de tots els sistemes operatius que disposin d’una implementació de la màquina virtual Java 1.5 (5.0) o superior i un navegador HTML. Entre d’altres, complirien aquests requisits els sistemes operatius següents: Windows, Linux, Solaris SPARC, Solaris x86, Solaris AMD64, Linux AMD64, etc.
Tot i que no hi ha una eina específica per dibuixar línies, és possible obtenir aquesta prestació de dues maneres diferents:
Debe recordar que las imágenes que se pueden incluir en las pantallas Scada y en los informes deben haberse añadido anteriormente a través del gestor de imágenes. Así que es necesario antes de empezar a diseñar una pantalla o informe añadir las imágenes que vaya a necesitar a través del gestor de imágenes.
Cualquier suceso añadido al sistema contiene una variable que indica cuantas veces se ha activado, cuantas veces se ha reconocido, cuantas veces se ha desactivado, cuanto tiempo ha estado activo, si está activo en este momento y cuanto tiempo lleva activo desde la última vez que se activó.
Puede contarse también cuantas veces se ha producido algo durante la hora en curso, el día en curso, etc. Para ello re creará una variable calculable forzable inicializada a 0 y un suceso que cuando se cumpla una condición realice la acción de forzar esa variable a su mismo valor más una unidad.
[R$CAL_FORZABLES.CONTADOR1]=[R$CAL_FORZABLES.CONTADOR1]+1
Sólo nos faltaría añadir un suceso que hiciera un reset de ese contador a 0 cuando la fecha fuera las XX/XX/XXXX 00:00:00 (las 00:00:00 horas de cada día) con lo cual el contador tendría el número de activaciones del día en curso. El reset de este contador podría hacerse con un control de forzado de variable en una pantalla Scada, siendo en este caso manual en vez de automático.
Los datos que se muestran en un informe son datos históricos agrupados por el periodo del informe, por lo tanto tenemos un valor por periodo (en caso de ser una expresión en la que están involucradas varias variables se recupera el valor de cada variable para el periodo del informe y se evalúa la expresión).
A efectos prácticos, los valores de las variables que se usan en los informes pueden ser consultados mediante la petición /services/user/records.xml (que está documentada en la sección de peticiones XML de usuario).
Imaginemos entonces que tenemos un informe con el siguiente aspecto:
El informe está agrupado por día, en concreto estamos visualizando el día 11 de junio. Se muestra que hay una serie de valores en rojo, dentro de unas cajas, el primer valor de arriba a la izquierda corresponde a la variable “CVM K 2.VI1”.
Para poder consultar ese valor mediante una petición HTTP/XML al servidor podemos hacer lo siguiente:
Esta petición, si la realizamos con el navegador, devolverá algo como lo siguiente:
Resultado de la petición en el navegador Internet Explorer
Donde, en el campo “value“ tenemos el valor que queremos. Esta petición puede realizarse directamente desde, por ejemplo, la hoja de cálculo Excel, simplemente escribiendo esta petición en el diálogo de “Abrir” (en vez del nombre de un fichero). Excel interpretará el XML anterior y generará una tabla con los datos:
Petición “abierta” con Excel 2003. En D1 tenemos el dato
El cliente es una aplicación Java. Como aplicación Java se ejecuta en una máquina virtual que le asigna por defecto un límite de memoria para ejecutarse. Normalmente esa cantidad de memoria asignada por defecto es suficiente para la ejecución del programa. No obstante es posible que para realizar tablas muy extensas esta memoria sea insuficiente.
Para estos casos es posible ejecutar el cliente forzando a la máquina virtual a que le asigne más memoria al programa. Esto se consigue ejecutando el programa desde la línea de comandos con un parámetro indicando el máximo y el mínimo de memoria disponibles para el programa.
Como puede verse los parámetros -Xm y -Xmx asignan una cantidad mínima y máxima al programa.
Para simular el comportamiento de un interruptor (por ejemplo para actuar sobre una salida digital) necesita un control condicional y dos controles para forzar variable. El control condicional contendría dos imágenes, una con una representación de un interruptor abierto, con la condición de que la variable digital sea 1, y otra con la representación de un interruptor cerrado, con la condición de que la variable digital sea 0.
Luego sobre la parte izquierda del control se coloca un control para forzar variable que ponga el valor de la salida digital a 1, y sobre la parte derecha se coloca otro control para forzar variable que ponga el valor de la salida a 0.
Para poder añadir una pequeña imagen animada podrá utilizar el control condicional combinado con la función “second” en la condición. En primer lugar, guarde las imágenes que componen la animación mediante el gestor de imágenes. Supongamos que su animación consta de una secuencia de 3 imágenes. Supongamos también que queremos que nuestra animación cambie cada segundo. Para ello deberemos crear una fórmula en la lista de fórmulas de la pantalla SCADA que nos devuelva el módulo 3 de la función “second” (variará entre los valores, 0, 1 y 2). La función es como sigue:
mod(second,3)
Supongamos que a esta función la llamamos MOD. Ahora ya podemos definir un control condicional con 3 condiciones donde cada condición se muestra una de las imágenes que forman la animación. A continuación podemos ver las propiedades del control:
Así conseguiremos que cada segundo se muestre una de las imágenes que forman la animación. Como puede intuirse, existen múltiples combinaciones a realizar y una gran variedad de posibilidades a explotar mediante esta técnica.
Existen dos formas de realizar un control de nivel en una pantalla SCADA. La primera de ellas consiste en utilizar un control condicional, donde cada control es una imagen con un nivel diferente y donde cada condición indica qué debe cumplirse para alcanzar ese nivel. A continuación se muestrán algunas imágenes de un ejemplo concreto con sus condiciones:
[CVM K 1.VI1] == 215
[CVM K 1.VI1] == 221
[CVM K 1.VI1] == 224
Otra opción sería dibujar el control de nivel en el fondo de la pantalla SCADA y utilizar diversos controles de bote de pintura para pintar la zona deseada. Así pues, podríamos dibujar en el fondo de pantalla algo como lo siguiente:
La parte interna, aunque parezca toda del mismo color (blanco), no lo es y está dividida en cuadrículas con diferentes blancos indistinguibles entre si por el ojo humano (por ejemplo, es imposible distinguir entre el blanco RGB 255,255,255 y el blanco RGB 254,255,255).
Luego ponemos sobre cada cuadro el bote de pintura con la condición deseada y tolerancia 0 para evitar que pinte los cuadros adyacentes, que son muy semejantes en color.
Con esto conseguimos una barra de progreso (o control de nivel) que podemos configurar a nuestro antojo.
Las propiedades de un control no pueden cambiarse dependiendo de una condición. No obstante, puede simularse el cambio de dichas propiedades mediante un control condicional. Así, por ejemplo, si queremos que un texto cambie de color dependiendo de una condición añadiremos un control condicional con dos controles de tipo texto totalmente iguales pero con color diferente y especificaremos que condiciones han de cumplirse para que se muestre cada uno. Igualmente puede cambiarse la orientación, el tipo de letra, el tamaño, etc.
También puede hacerse que in control sea una imagen o un texto dependiendo de una condición usando, como en el caso anterior, el control condicional.
Todos los dispositivos tienen una variable denominada STATUS que muestra el estado del dispositivo mediante un valor numérico (por ejemplo, [CVM144.STATUS]) El significado de esta variable es el mismo para todos los dispositivo y puede utilizarse en las expresiones condicionales (ver apéndice de los tipos de variables para consultar sus posibles valores).
Para mostrar documentos previamente almacenados en el PC puede utilizar el control de ejecución. Sí desea mostrar un fichero PDF puede poner directamente el nombre del mismo (incluyendo la ruta completa) en el campo de programa de manera que al ejecutarse la pantalla y hacer clic sobre el control se abrirá dicho fichero mediante el programa relacionado y definido en el sistema. Igualmente puede hacerse para cualquier tipo de fichero que tenga asociado algún programa que lo abra (DOC, TXT, HTML, WAV, MP3, MPG, AVI, etc.)
Nota: Esta opción no funcionará en sistemas que no sean Windows ni a través del Applet.
Para poder producir un suceso en función de algún estado de uno o varios dispositivos utilice la variable STATUS de dichos dispositivos en la condición de activación del suceso. Para consultar los posibles valores de la variable STATUS lea el apéndice de tipos de variables.
Dado que los sucesos generan una serie de variables asociadas al mismo, podrá incluso consultar cuantas veces se activó un suceso, cuantas se desactivó, cuantas se reconoció y cuanto tiempo estuvo activado.
Para producir un sonido en respuesta a un suceso puede añadir una acción de ejecutar un programa externo e introducir en el campo de programa el fichero de sonido a reproducir (WAV, MP3, etc.) con su ruta correspondiente. Para que la acción surja efecto deberá tener un programa que reproduzca este tipo de ficheros instalado en el sistema (por ejemplo, Windows Media Player, Sonique, Winamp, etc.)
Si lo que se necesita es simplemente reproducir un pitido en el cliente, puede añadir una acción asociada a dicho suceso que realice esta acción. Asimismo esta acción puede producirse al activarse, al reconocerse, al desactivarse o mientras está activo.
Ayuda para la acción de la alarma sonora en el cliente en respuesta a un suceso
De manera similar al punto anterior, añada una acción de ejecutar un programa externo e introduzca en el campo de programa el documento que desee mostrar (PDF, TXT, DOC, etc.) con la ruta correspondiente. Para que la acción surja efecto deberá tener un programa que reproduzca este tipo de ficheros instalado en el sistema (por ejemplo, Microsoft Word, Adobe Acrobat Reader, etc.)
La aplicación cliente de PowerStudio realiza muchas conexiones al servidor de forma continuada. En Windows se limitan los sockets (puertos) abiertos para establecer las conexiones y, además, se mantienen inutilizables durante un tiempo determinado después de ser liberados (WAIT). Así, por ejemplo, en Windows XP se permite por defecto a las aplicaciones de usuario disponer de los puertos que van del 1024 al 5000 y, también por defecto, un puerto queda en estado TIME_WAIT durante 4 minutos una vez cerrado antes de ser definitivamente liberado por el sistema operativo.
En Windows es posible modificar esta política modificando o creando dos claves del registro que definen este comportamiento. Para ello debe ejecutar la aplicación regedit suministrada con todas las versiones de Windows. Las claves son:
MaxUserPort
TcpTimedWaitDelay
Situadas en:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
Ambas claves son de tipo DWORD y deben ser creadas si no se encuentran en la ruta especificada. En la primera asignamos el número de puerto máximo, que por defecto está en 5000, y lo ponemos por ejemplo a 20000 (en notación decimal) y en la segunda ponemos el tiempo en segundos que queremos que un puerto se mantenga reservado después de cerrarlo (lo ponemos a 30 por ejemplo, en notación decimal). Hay que comprobar estos parámetros tanto en el ordenador servidor como en el cliente. Recuerde que debe reiniciar el PC para que los cambios tengan efecto.
En otros sistemas operativos debe consultarse la forma particular de configurar este comportamiento.
Usted tiene una versión de PowerStudio estándar. Póngase en contacto con su distribuidor para adquirir una versión SCADA o Deluxe.
Compruebe que el equipo está encendido y en un modo en el que puede comunicar, en particular asegúrese de que no está en modo de configuración o iniciándose. Compruebe que el equipo está conectado al PC o a un conversor compatible y que el conexionado es correcto. Compruebe que no haya posibilidad de ningún tipo de interferencias en el camino que siguen los cables desde el dispositivo al PC o entre el dispositivo y el conversor. Si está conectado a un conversor compruebe que este último se encuentre correctamente conectado al PC. Compruebe que la red no está sobrecargada con un número excesivo de dispositivos. Si el equipo se conecta mediante un conversor 232-485 asegúrese de que los interruptores del mismo están en la posición correcta. Asegúrese de que en el mismo bus de equipos no hay aparatos que comunican a distintas velocidades o con el mismo número de dispositivo. Compruebe que el puerto del PC funciona correctamente.
Compruebe que el equipo está encendido y conectado a la red de comunicaciones. Compruebe que no haya posibilidad de ningún tipo de interferencias en el camino que siguen los cables desde el conversor al PC. Compruebe que el PC esta conectado correctamente a la red de comunicaciones y puede comunicar con otros equipos conectados a la red (por ejemplo con otro PC). Si esta utilizando un router, compruebe que el puerto de comunicaciones este redireccionado, en el router, a la dirección del conversor.
Para comunicar con un conversor TCP2RS que se encuentra en una subred diferente de la red en la que se encuentra el software utilizando un router como elemento de conexión entre las dos redes como muestra la siguiente imagen:
Se deberá añadir el conversor TCP2RS de la siguiente manera: