Solución a las preguntas más habituales
En esta página puedes encontrar respuesta a temas que te pueden interesar. Por ejemplo, cómo configurar las comunicaciones de un CVM, qué hacer si la medida no es correcta, etc.
PowerStudio
Debe comprobar que en el ordenador local haya instalado el navegador Microsoft Internet Explorer, Netscape (Mozilla) o Firefox. Asegúrese de que está instalada la máquina virtual JRE de Java 1.6 (6.0) o superior, aunque en caso de no estar instalada el propio navegador ofrecerá información y guiará en el proceso de instalación de la misma.
Si el Applet aparece pero muestra un mensaje avisando de que “no se pudo comunicar con el servidor” o “no se pudo recuperar la información requerida” asegúrese de que el motor de comunicaciones está en ejecución.
Es posible que algunos tipos de letra que se aplicaron a los controles al diseñar un informe o una pantalla SCADA no existan en la máquina desde que se descarga el Applet y, por lo tanto, el tipo de letra escogido puede ser notablemente distinto al original.
Si el suceso no se produce cuando usted cree que debería producirse, o viceversa, compruebe que la condición puede cumplirse alguna vez y asegúrese de que el suceso está habilitado en algún momento por calendario y que la condición puede cumplirse durante ese intervalo. Compruebe que los dispositivos involucrados en la evaluación de la condición del suceso comunican correctamente y asegúrese que el motor de comunicaciones se ha iniciado. Compruebe que tiene permisos para ver este tipo de sucesos y que ha marcado la casilla de notificar y/o registrar.
Si el suceso parece no haber realizado las acciones que han sido definidas compruebe en la lista de sucesos que realmente se ha producido. Si aun así no se ha producido la acción o acciones programadas compruebe que los equipos sobre los que debería haberse actuado están encendidos y comunican correctamente. En caso de que la acción fuera la ejecución de una aplicación externa compruebe que dicha aplicación está correctamente instalada y que el comando y los parámetros son los correctos (puede poner esta acción en un control de ejecución en una pantalla de SCADA de prueba para ver si se comporta de la forma esperada).
Es posible que un control condicional o una fórmula hagan referencia a alguna variable de un dispositivo que no comunica o que aún no ha podido ser interrogado por primera vez. En una pantalla SCADA, si se trata de una condición no aparecerá nada y si se trata de una fórmula aparecerá un guión (“-”) hasta que pueda inicializarse su valor. En un informe, si no hay datos en ese periodo y no se puede evaluar la condición de un control condicional no aparecerá nada y si no se puede evaluar una fórmula aparecerá la definición de la misma.
Puede ser que al evaluar la fórmula se encuentre alguna operación no válida, como la raíz cuadrada de un número negativo o la división por cero, en ese caso en la pantalla SCADA aparecerá un interrogante (“?”) y en el informe aparecerá la definición de la fórmula. Si lo que no se puede evaluar es la condición de un control condicional no aparecerá nada.
Puede ser que la evaluación de la expresión de una fórmula no sea representable, ya sea porque la configuración del control que la contiene, ya sea porque la evaluación de la misma devolvió un valor fuera de rango. En este caso aparecerá el carácter “#”.
Si a la gráfica parecen faltarle puntos compruebe que esto no sea debido a que se representan variables con periodos diferentes.
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 no ve valores donde cree que debería haberlos asegúrese de que no tiene realizado un zoom en una zona sin valores o de que el eje Y no está forzado a unos niveles para los cuales no existen valores.
Si al poner un control de bote de pintura en una pantalla Scada no se comporta de la manera esperada asegúrese de:
Por cuestiones de seguridad, el software no manda correos si el servidor de correo no tiene activada la opción Transport Layer Security (TSL) y el servidor de correo sólo soporta los protocolos de autentificación Plain, Login o NTLM, ya que estos protocolos son poco seguros para mandar información.
Si éste es su caso:
Por cuestiones de seguridad, los Applet Java tienen unas limitaciones bastante importantes relativas al acceso a los recursos de la máquina local en la que se ejecutan. Una de estas restricciones es la de no poder ejecutar aplicaciones en la máquina local. No obstante, esta restricción puede desactivarse agregando al fichero de permisos java.policy situado en la instalación de la máquina virtual JRE, la siguiente línea:
Hay que señalar, sin embargo, que en el Applet no pueden visualizarse directamente ficheros desde el control de ejecución, como puede hacerse en el SCADA. Así, si quisiéramos mostrar una imagen en el Applet no bastaría con poner el nombre de la imagen en el control de ejecución, sino que deberíamos poner la aplicación que deseamos utilizar para mostrar la imagen y, como parámetro, la imagen a mostrar.
Nota: La opción de lanzar aplicaciones externas es muy dependiente del sistema en el que se ejecute el Applet, de manera que es muy probable que únicamente funcione en el sistema para el que ha sido desarrollada la aplicación.
El Applet puede visualizarse sin realizar ninguna acción especial desde todos los sistemas operativos que dispongan de una implementación de la máquina virtual Java 1.5 (5.0) o superior y un navegador HTML. Entre otros, cumplirían estos requisitos los siguientes sistemas operativos: Windows, Linux, Solaris SPARC, Solaris x86, Solaris AMD64, Linux AMD64, etc.
Aunque no hay una herramienta específica para dibujar líneas, es posible obtener esta prestación de dos maneras distintas:
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: