Manual del SCADA SPGN
Rubén Palomino
MANUAL DEL SCADA SPGN, UN SCADA DE USO LIBRE DESARROLLADO ENTERAMENTE EN ESPAÑOL.
INDICE
1 INTRODUCCIóN
Las motivaciones que llevaron a cabo el desarrollo del Scada Spgn fueron principalmente tres.
-
Que fuera un software que se pudiera ejecutar en cualquier sistema operativo.
-
Que no tuviera licencias por su uso ni por la cantidad de tags.
-
Que estuviera realizado en español.
En base a estos principios se gestó SPGN.
Posiblemente el mejor SCADA en idoma Español.
El lenguaje de programación elegido fue JAVA. Ya que permite su ejecución en cualquier sistema operativo.
El uso de licencias se ha eliminado , siendo un software totalmente de uso libre.
Como IDE, SPGN utiliza eclipse, es un software de programación libre y sobre el se ha montado el Scada.
Eclipse tiene gran variedad de herramientas incorporadas, desde editores de la mayoría de los lenguales de programación a herramientas de manipulación comparación y otras operaciones sobre los archivos.
La versión en el momento de escribir este manual es la 3.2
2 DESCARGA
El link para la descarga del software es la siguiente Descarga.
En la página de descarga se encuentran las instrucciones mas actualizadas de como descargarlo.
Una vez que lo has descargado sigue las siguientes instrucciones.
2.1 SCADA
El primer archivo a descargar es el runtime o SCADA.
Despues de descargado hay que descomprimirlo, una vez hecho navegamos hasta hasta la carpeta pgn y dentro de ese mismo directorio encontramos los archivos necesarios para hacer funcionar nuestro Scada:
El archivo startSPGN.exe es un ejecutable windows que permite iniciar el Scada directamente.
Lo ejecuta directamente sin instalar nada. Permite probar el SCADA sin ensuciar el ordenador.
Al ejecutarlo se abre una ventana de MS-DOS que nos indica que el scada está funcionando.
tenemos que tener instalado las librerías de Microsoft Visual C++ Redistributable , eso se hace desde la página web de microsoft
Para cerrarlo basta con cerrar la ventana y ya está.
Si se quiere que el Scada funcione en modo automático hay que ejecutar el archivo install.exe.
Aunque se llama install este archivo no instala nada en el equipo, lo único que hace es crear un servicio que se encarga de iniciar el Scada al arrancar.
Para instalar hay que pulsar la letra “I”.
Para desinstalar hay que pulsar la letra “D”. Como no registra nada ni copia nada en el sistema, para eliminar completamente la aplicación basta con borrar los archivos que descomprimimos y ya está.
Cuando SPGN se borra, no deja ningún rastro.
Al ser un Scada totalmente portable, permite desarrollar todo el sistema en un ordenador de desarrollo y basta copiar la carpeta en el equipo de producción para dejarlo funcionando
Dependiendo de cómo este el sistema operativo configurado es aconsejable ejecutar el archivo de instalación como Administrador.
Seguramente tengas crear una regla en en firewall para java la primera vez que lo ejecutes.
2.2 IDE
El entorno de desarrollo para SPGN es eclipse.
Eclipse es un IDE (Entorno de Desarrollo Integrado en Español) multipropósito. Como es multipropósito permite programar más de un lenguaje de programación y muchas más características que aquí no vamos a desarrollar.
Nosotros vamos a utilizar su potencia para programar en JAVA (Todo en SPGN se programa en JAVA).
Al igual que con el SCADA tenemos que descargarlo de descargas.
El archivo que nos interesa es eclipse IDE (contiene una version de eclipse configurada para trabajar con SPGN). Se descomprime y se ejecuta eclipse.exe.
Aunque eclipse puede funcionar en linux y en windows, no se ha probado su perfecto funcionamiento para el SCADA SPGN en linux.
Así que para desarrollar aconsejamos que utilice windows, a ser posible una versión igual o mayor que W10.
En el momento de escribir este manual la versión de eclipse era la version 25, puede que si estás trabajando en un sistema recién descargado tengas una versión superior a la 25.
Lo primero que nos va a preguntar eclipse es nuestro workspace.
Un workspace en eclipse es un contenedor de proyectos, en el vamos a tener los proyectos de nuestro Scada y los datos de configuración necesarios.
Por poner un ejemplo
Sistema típico de instalación, en el que el SCADA SPGN se instala en un ordenador en la planta conectado a los dispositivos de campo, y ECLIPSE se instala en un PC de desarrollo.
3 ARBOL DE NAVEGACION
Para trabajar con Spgn lo hacemos a través de nuestro árbol de navegación en el panel lateral
Los ítems del árbol nos abren los editores o herramientas con las que vamos a trabajar.
En el momento de escribir este manual las herramientas eran.
- Conexión (Ajustamos los parámetros de la conexión con el Scada).
- Tags (Las variables del Scada en local o en dispositivos remotos).
- Módulos (En otros Scadas se llaman Script, pero como son compilados, en SPGN se llaman módulos ).
- Dispositivos (Los diferentes aparatos remotos con los que nos vamos a conectar).
- Bases de Datos (Para configurar las conexiones con las Bases de Datos).
- Temporizadores (Para configurar los módulos que se ejecutarán a intervalos regulares).
- Alarmas (Definimos las alarmas niveles, reglas de avisos).
- Correo (Configuramos las cuentas de correo electrónico).
- Publicar (Donde publicamos los HMI para que sean sincronizados por los clientes).
- HMI (Creamos y configuramos los diferentes hmi del sistema).
- Usuarios (para dar de alta usuarios de manejo del sistema a través de los HMI).
- Logs (Visor de archivos de log que también me permite descargarlos).
Eclipse tiene la ventana de trabajo dividida en zonas.
- Vistas (1)
- Editores (2)
- Vistas de consola y herramientas (3)
3.1 VISTAS
La sección de vistas en eclipse se sitúa por norma general en la parte izquierda de la ventana.
Las vistas se presentan en forma de pestañas, las vistas principales y con las cuales tendremos que trabajar son :
-
NAVEGADOR SCADA (Que contiene nuestro árbol de navegación). Es en esta vista donde se situa el arbol de navegación de las herrmaientas del SCADA.
-
PROJET EXPLORER (Donde se muetran los proyectos del workspace). En esta vista estará el proyecto de módulos y los proyectos HMI.
3.2 EDITORES
La sección de editores es la sección central de eclipse, todas las herramientas que abramos en nuestro árbol de navegación se van a abrir en la sección de editores.
3.3 CONSOLAS
Las consolas se situan en la parte inferior de la ventana de trabajo, entre las mas comunes está la consola de salida, consola de errores y busqueda.
4 CONEXIÓN
Para abrir el editor de conexión hay que pulsar en el item del arbol de navegación conexion en la vista del NAVEGADOR SCADA.
Una vez abierto la ventana de trabajo de eclipse queda :
La vista de Navegación siempres va a mostrar en su barra de estado como está la conexión con el SCADA.
El SCADA puede estar en tres estados desde el punto de vista de la conexión.
CONTECTADO – CONECTANDO – DESCONECTADO
Para conectar y desconectar el editor al Scada hay que pulsar sobre el botón (1) de la vista de navegación que está simbolizado con un cable de red.
Los campos a configurar se encuentran en el editor de conexión
- USUARIO : Nombre del usuario con el que nos vamos a conectar al Scada, por defecto es “adiministrador”.
- CLAVE : Clave del usuario, por defecto la clave es “admin”.
- IP : El host donde está funcionando nuestro Scada. Aquí podemos poner la dirección IP o el nombre del equipo.
- PUERTO : Puerto donde escucha el Scada (No se puede cambiar).
Es aconsejable cambiar el usuario y la clave para evitar intrusiones de terceros en la configuración de nuestro Scada.
Una vez cambiemos el usuario y clave el Scada nos desconectará y tendremos que conectarnos con las nuevas credenciales.
En el mismo editor de conexiones hay una tabla de eventos o avisos del estado de la conexión. Conexiones, desconexiones problemas encontrados, caracteristicas del SCADA al que estamos conectados etc.
Los eventos mas importantes son:
- Login
- Estado del Servidor
- Versión del Scada
- Version de Java en la máquina de Scada
- Path en la máquina del Scada donde se está ejecutando el mismo
- Mensajes relativos a errores
5 TAGS
Para abrir el editor de tags debemos de pulsar en el item Tags situado en el arbol de navegación.
Las Tags son variables situadas en la memoria del Scada. Existen dos tipos de variables.
- Locales: Ocupan un espacio en la memoria del Scada.
- Red: Ocupan un espacio en la memoria del Scada y además sincronizan su valor con un dispositivo externo definido en la sección de dispositivos.
- Las Tag en SPGN se organizan en directorios de forma que no pueden crearse tags si no estan en directorios.
Para llamar a una tag dentro del scada se realizará en base a su path o ruta.
controltemp/reg06/SpAlto : En el ejemplo la tag a la que llamamos es una tag que esta en el directorio reg06 que a su vez esta en el directorio controltemp y se llama SpAlto
Hay reglas para los nombres de las tags.
- Nombre: Debe de comenzar siempre por Mayusculas y puede contener números solo al final
- Directorios: siempre en minúsculas y puede contener números solo al final.
5.1 EDITOR DE TAGS
El editor de tags está divido en tres secciones.
- Barra de herramientas
- Explorador de Tags
- Detalle de Tags
5.1.1 BARRA DE HERRAMIENTAS
- Botón de refrescar : Para mejorar el rendimiento de las comunicaciones el Scada no refresca automáticamente el estado de las tags por lo que será necesario pulsar este boton para poder ver los cambios realizados
- Boton de filtrar : Busca en las tags según lo escrito en el cuadro de búsqueda.
- Cuadro de búsqueda : Texto a buscar dentro de las tags, tanto en el path como en el dispositivo
5.1.2 EXPLORADOR DE TAGS
-
Navegador de directorios
-
Columna de tipo , los tipos soportados por el SCADA son:
- bool.
- Byte.
- Word.
- Dword
- Lword
- Sint
- Uint
- Udint
- Ulint
- Int
- Dint
- Lint
- Real
- Dreal
- Bloque
- String
- UintBCD
- UdintBCD
-
Fiablidad de lectura
-
Valor
-
Dispositivo
5.1.3 DETALLE DE TAGS
En el detalle de tag se detallan todas las caracteristicas que definen una tag.
- Boton para crear una nueva Tag.
- Boton para modificar una Tag existente.
- Boton para cargar Tags de forma Masiva mediante archivo csv.
- Área de valores generales (4).
- NOMBRE
- DIRECTORIO
- DESCRIPCION
- LOG
- Área de Registro (5).
- ACTIVAR.
- FRECUENCIA CON LA QUE ACTIVAR EL REGISTRO.
- UNIDADES DE CUANDO ACTIVAR EL REGISTRO (s,m,h).
- Área de ESCRITURA Y EVENTOS
- ESCRITURA: Si queremos modificar el valor de la tags desde el Scada, si no lo marcamos estamos protegiendo el tag frente a escrituras involuntarias.
- EVENTOS: Si se activa, cada vez que cambie el valor de la tag lanzara la ejecución de un modulo con el mismo nombre que el path de la tag.
- Área de OPC (6).
- DISPOSITIVO AL QUE PERTENECE: Debe de coincidir con uno de los conectados en el área de dispositivos.
- TIPO DE DATOS
- MEMORIA
- POSICION
- LONGITUD (Este valor solo se aplica en los tipos bloque o String)
- BIT (Este valor solo se aplica en las tags de tipo BOOL)
- TAG INDIRECTA (Si queremos que tome su valor de otra tag ya definida, muy útil en dispositivos cruzados).
- Área de Escala (8): El área de escala ejecuta escalas directas a partir de dos puntos (x,y) de una recta.
- X1: Valor del primer punto en el dispositivo
- Y1: Valor del primer punto en el Scada
- X2: Valor del segundo punto en el dispositivo
- Y2: Valor de segundo punto en el Scada.
5.2 OPERACIONES CON LAS TAGS
Las operaciones se muestran al pulsar con el botón derecho encima de una tag. dependiendo si es tag o directorio aparecerán unas operaciones u otras.
- PATH: Copia al portapapeles el path de este directorio o tag
- ELIMINAR: Elimina el directorio completo con todas las tags incluidas
- DESCARGAR CSV: Descarga un archivo en formato CSV que puede usarse como plantilla para cargar tags masivamente.
5.2.1 CREACIÓN DE TAGS
Los botones de CREAR, MODIFICAR Y CARGAR CSV está situado en el lateral del area de detalle.
- Para crear una tag tengo que rellenar todos los campos del área de detalle de tags y posteriormente pulsar el botón.
- Para modificar una tag, primero debo seleccionar una y con ella seleccionada, cambio los campos que quiera en el detalle y pulso el botón.
- Para cargar un archivo de tags utilizo uno descargado según se ha mostrado en el apartado anterior, lo edito a mi gusto y los cargo pulsando el boton.
5.3 ESTADO DE LAS TAGS
Los colores de la tags así como los iconos nos dan información del estado de la tags.
6 MÓDULOS
Los módulos en el SCADA SPGN son programas de ejecución interna. Se ejecutan en el servidor (En otros SCADAS se llaman SCRIPT).
La diferencia entre un módulo y un script es que el módulo es compilado y el script es interpretado.
Al ser compilado, el SCADA SPGN es posiblemente uno de los mas rápidos del mercado.
Los módulos se modifican y compilan en ECLIPSE. Para ello se utiliza el editor JAVA incorporados en ECLIPSE.
El editor java permite programar en JAVA, con herramientas de compilación en tiempo real, detección de fallos y autocompletado de palabras clave.
Una vez que se ha compilado sin errores el módulo hay que cargarlo en el SCADA.
Para cargar los Modulos en el SCADA abrimos el editor de módulos pulsando en el item Modulos del arbol del NAVEGADOR SCADA.
Las areas en las que está dividido el editor de módulos son:
- Barra de Herramientas.
- Arbol de Navegación.
- Estado de la comparación entre los archivos en el SCADA y los archivos en el PC (WORKSPACE del proyecto).
- Indicador de presencia en el PC.
- Indicador de presencia en el SCADA.
6.1 BARRA DE HERRAMIENTAS
Las herramientas nos permiten operar sobre el las descargas y el estado de sincronización de los archivos
Las herramientas son por orden:
- Refrescar el estado de los módulos, cada vez que se pulsa compara los módulos del SCADA con los del PC y nos muestra la información.
- Boton para recomponer el proyecto en caso de ser necesario.
- Cancela las descargas pendientes del PC al SCADA o viceversa.
- Botón de forzar la recarga de los módulos aunque sean iguales en el PC y el SCADA.
6.2 ARBOL DE NAVEGACIÓN
El árbol de navegación muestra como se organizan los archivos de programa de módulos en nuestro proyecto. En él podemos navegar y realizar opciones de carga y descarga de nuestros módulos en el Scada.
Atendiendo al estado de las columnas podemos conocer el estado de los módulos y si estan en el Scada y en el PC de desarrollo.
Cuando se pone en marcha el Scada por primera vez y nos conectamos a él, los indicadores serán:
- COLOR DEL TEXTO: Nos da información de la ubicación del módulo
- Gris Claro : El módulo está solo en el PC (No está en el SCADA).
- Negro : eL Módulo está tanto en el SCADA COMO EN EL
- Naranja : el módulo solo está en el Scada.
- ESTADO: Icono rojo y pulgar abajo (indica que son distintos).
- PC: Indica si está o no está el módulo en el PC.
- SCADA: Indica si está o no está cargado el módulo en el SCADA.
Los módulos que no están en el SCADA, no se ejecutan
El primer paso es descargarse todos los módulos del Scada al PC.
Para ello pulsamos con el boton derecho en el item raíz del árbol de navegación (marcado con una taza de la cartuja de cafe).
Pulsamos en la opción Scada (Descargar).
Esto descargará todos los módulos en el PC (Distintos e Iguales indistintamente).
Aparecerá una barra de progreso que vuelve a desaparecer cuando los módulos se han descargado.
Hecho esto,al terminar la descarga el arbol de navegación muestra un aspecto como el de la imagen.
Los archivos ejecutables que se ejecutan en el SCADA son los situados en la carpeta /bin.
Los archivos fuente tienen la extensión .java
Los archivos ejecutables tienen la extensión .class
En la imagen se muestra que los archivos .class no están cargados en el SCADA, por lo que no se van a ejecutar hasta que no se cargen de vuelta e el mismo.
Para operar sobre la carga y descarga de los módulos hay que pulsar con el boton derecho encima de cualquier carpeta o módulo.
La carga por si sola de binarios no esta permitida, hay que cargar de nuevo el fuente para que se carguen los binarios.
SPGN permite cargas parciales tanto de directorios como de módulos individualmente Las posibles opciones son :
- Descarga DEL SCADA HACIA EL PC todos los módulos que existan en el Scada independientemente si son iguales a los de PC o no.
- Descarga DEL SCADA HACIA EL PC los módulos distintos, dejando sin descargar los que son iguales.
- Carga DEL PC HACIA EL SCADA los módulos distintos, dejando sin cargar los que son iguales.
- Carga DEL PC HACIA EL SCADA todos los módulos que existan en el PC independientemente si son iguales a los del SCADA o no.
Un ejemplo de como queda un arbol totalmente sincronizado se muestra en la siguiente imagen. En ella todos los archivos y directorios tienen el icono VERDE con pulgar arriba y los indicadores de PC y SCADA tienen la esfera verde (que indica que está presente).
Los archivos fuente se pueden abrir directamente desde el arbol de navegación de módulos (Mediante doble pulsación), o desde el project Explorer en el proyecto módulos.
Cuando se abren los archivos de módulos, estos se muestran en el editor de archivos java de eclipse.
Se muestra un archivo fuente abierto de un módulo definido como evento de Tag .
Se ejecuta cuando cambia de valor una tag y se ha activado el evento en la definición de la tag.
Dicho archivo tiene tres métodos :
- Codigo(): Se ejecuta siempre que cambia el valor de la tag
- flancoAscendente(): Se ejecuta siempre que cambia el valor de la tag a un valor mayor, si es de tipo texto se comparan los caracteres.
- flancoDescendente(): Se ejecuta siempre que cambia el valor de la tag a un valor menor. El tema de programación de los eventos se trata en otro manual.
7 DISPOSITIVOS
Un SCADA es un software que está diseñado para comunicarse con diferentes dispositivos, esos dispositivos en la industria se conocen como dispositivos de campo.
Para crear conexiones entre el SCADA y los dispositivos de campo hay que definirlas en el editor de DISPOSITIVOS. Este editor se abre pulsando en el item Dispositivos del arbor del NAVEGADOR DE SCADA.
El editor de dispositivos se compone de un arbol de navegación, en el cual se muestran los dispositivos que están en la misma red ethernet del SCADA.
7.1 CREAR DISPOSITIVO
Para crear un disposivo hay que pulsar con el botón derecho sobre el item Red del arbol de navegación de dispositivos según se muestra en la imagen.
Cuando seleccionamos el crear un dispositivo, se muestra un dialogo que solicita que ingresemos un nombre para el nuevo dispositivo.
El nombre de los dispositivos sigue las mismas reglas de los nombres de las tags (Deben comenzar en mayusculas, no se permiten caracteres no alfanumericos y los números solo al final).
El SCADA esta diseñado para conectarse con diferentes dispositivos, para selecciona con que tipo de dispositivos se puede conectar hay que indicarlo en la propiedad conector del mismo. Los dispositivos soportados a la hora de escribir este manual son:
- Local: Se crea un dispositivo en la memoria local del plc
- FINSTCP: Compatible con la mayoría de los PLC de Omron
- MODBUSTCP: Dispositivos que utilicen este protocolo como conector
- S7: Plc de la gama S71200 y s71500 de SIEMENS
Cuando cambiamos cualguier propiedad de un dispositivo, nos aparece un indicador rojo con pulgar abajo indicandonos que hay cambios sin guardar en el dispositivo.
Esto indica que el dispositivo que se muestra en eclipse es distinto del que está configurado en el SCADA.
Para cargarlo en el SCADA hay que sacar el menu contextual del dispositivo y pulsar en GUARDAR CAMBIOS.
Se saca el menu contextual pulsando con el boton derecho en el nombre del disositivo.
Cada dispostivos tiene una serie de caracteristicas según el tipo de conector que tenga configurado. No son las mismas propiedades de un dispositivo S7 que las de un dispositivo MODBUS.
7.1.1 MODBUS TCP
Una vez que se ha creado el dispositivo con tipo de conector MODBUS, se procede a crear tags que pertenecen a ese dispositivo. Los tipos de memorias que se pueden crear en un dispositivo MODBUS son:
- H : Holding Register
- C : Coil
- ID : Input
- IR Input Register
Dependiendo de que tipo sea en el apartado mermoria se escribirá H,C,ID o IR seguida del numero de memoria.
En el ejemplo se crea una tag que apunta a un HOLDING REGISTER del dispositivo con nombre Plc03 en la posición 2000 y de tipo real.
7.1.2 FINS TCP
Los disposivos FINS TCP son plc de la marca OMRON.
Al igual que el dispositivo MODBUS, tendremos que indicar el nombre de la memoria. Pero a diferencia del modbus las memorias no tienen número.
- CIO
- W o WR
- H o HR
- A o AR
- T o TIM
- C o CNT
- D o DM
7.1.3 Step7
El protocolo Step7 es el protocolo utilizado por los PLC de la marca siemens.
Es importante que antes de realizar las comunicaciones con cualquier PLC de siemens se active el acceso sin protección o PUT/GET en el apartado de seguridad del TIA PORTAL.
También para permitir la lectura de memorias pertenecientes a los bloques de datos DB hay que desmarcar la casilla de acceso optimizado al bloque. Si no las comunicaciones darán error.
La creación de tags de este disposivo es similar a la indicada en los dipositivos anteriores.
Segun se muestra en la imagen la creación de una variable de tipo real perteneciente al DB2 poscición 222.
8 BASES DE DATOS
Para administrar y gestionar las bases de datos hay que seleccionar e item Bases de Datos del navegador Scada.
Una vez abierto el editor de Bases de Datos se aparecerá un arbol de navegación con todas las Bases de Datos configuradas en la red.
8.1 CREAR UNA BASE DE DATOS
Para la creación de una conexión del SCADA con una Base de Datos existente hay que pulsar con el botón derecho del ratón encima del item raiz Red.
Se nos mostrará un menú desplegable con la opción de CREAR BBDD, se pulsa, y se le asigna un nombre.
El nombre de las Bases de Datos sigue las mismas reglas de los nombres de las tags (Deben comenzar en mayusculas, no se permiten caracteres no alfanumericos y los números solo al final).
Como al crear la base de datos la crea sin driver de comunicaciones o tipo de Bases de Datos con la que se va a conectar, nos aparecerá el nombre de la misma en rojo y con un aspa sobre su item en el arbol de Bases de Datos.
Es normal, hay que configurar la base de datos para poder conectarnos a ella.
El parametro tipo es el mas importante, ya que definirá el tipo de Base de Datos.
Luego dependiendo del tipo seleccionado se mostrarán unas opciomes u otras. Hay que mirar el manual o la ayuda de cada una de ellas.