Introducción
Una vez tenemos nuestro modelo de datos creado, nuestro objetivo es explotar los datos que somos capaces de obtener desde nuestra infraestructura.
Toda la definición del modelo ha estado pensada para que finalmente los puntos vayan recibiendo los valores al ritmo exacto que nosotros hayamos diseñado.
Lectura de valores
Existen distintas formas de visualizar los valores que tienen los puntos según el criterio de clasificación de los mismos.
La forma mas simple de ver el valor de todos los puntos es la siguiente:
admin> scada point list
Id Alarm Point path Qlt P.Type Antiquity Value
------ ----- ------------------------------- ---- ------- ---------- --------------------
1 false /POINT-01-RO GOOD INT 36334 0
2 false /POINT-02-RO GOOD BOOLEAN 36334 false
3 false /POINT-03-RW GOOD BOOLEAN 36334 false
4 false /GROUP-A/POINT-04-RO GOOD INT 36334 4109
5 false /GROUP-A/POINT-05-RO GOOD INT 36334 8218
6 false /GROUP-A/POINT-06-RO GOOD INT 36334 12327
7 false /GROUP-A/POINT-07-RO GOOD INT 36334 16436
10 false /GROUP-A/POINT-10-RO GOOD INT 36334 24654
8 false /GROUP-A/SUB/POINT-08-RO GOOD INT 36334 20545
9 false /GROUP-A/SUB/POINT-09-RW GOOD INT 36335 0
11 false /GROUP-B/POINT-11-RO GOOD INT 36335 28763
12 false /GROUP-B/POINT-12-RO GOOD INT 36335 32872
13 false /GROUP-B/POINT-13-RO GOOD INT 36335 36981
14 false /GROUP-B/POINT-14-RO GOOD INT 36335 41090
15 false /GROUP-B/POINT-15-RW GOOD INT 36335 0
16 false /GROUP-B/POINT-16-RO GOOD INT 36335 45199
17 false /GROUP-C/POINT-17-RO GOOD INT 36335 49308
18 false /GROUP-C/POINT-18-RO GOOD INT 36335 53417
19 false /GROUP-C/POINT-19-RO GOOD INT 36335 57526
20 false /GROUP-C/POINT-20-RO GOOD INT 36336 208
21 false /GROUP-D/POINT-21-RO GOOD INT 36336 4301
22 false /GROUP-D/POINT-22-RO GOOD INT 36336 8424
23 false /GROUP-D/POINT-23-RO GOOD INT 36336 12521
24 false /GROUP-E/POINT-24-RO GOOD INT 36336 16640
25 false /GROUP-E/POINT-25-RO GOOD INT 36336 20748
admin>
Podemos obtener también el valor concreto de un punto.
admin> scada point get point=/GROUP-D/POINT-21-RO
Time Stamp.......: 2011-04-19T18:13:00.063+0200
Quality..........: GOOD
Point type.......: INT
Value............: 9401
admin>
También podemos obtener todos los detalles de un punto
admin> scada point show point=/GROUP-D/POINT-21-RO
Point path.....: /GROUP-D/POINT-21-RO
Node...........: simu-sample
Point ID.......: 21
PLC type.......: TWO_BYTE_INT_UNSIGNED
Point type.....: INT
Scale..........: 1.0
Initial value..: 0.0
Bit number.....: 0
Loggin mode....: DO_NOT_LOG
Writable.......: false
Address........: 17
Bank...........: INPUT_REGISTER
Enabled........: true
Time Stamp.....: 2011-04-19T18:15:00.070+0200
Quality........: GOOD
PointType......: INT
Value..........: 11951
Escritura de valores
Si un punto está declarado para acceder a un banco de memoria que es de escritura, podremos escribir un valor en él. En nuestro modelo de pruebas hemos declarado tres puntos mediante los cuales podemos escribir nuestros valores.
Veamos un ejemplo.
admin> scada point get point=/GROUP-A/SUB/POINT-09-RW
Time Stamp.......: 2011-04-19T18:30:00.022+0200
Quality..........: GOOD
Point type.......: INT
Value............: 0
admin> help scada point set
SCADA POINT SET POINT=pointName .....
Asigna un nuevo valor a un punto.
Los parametros para este comando son:
[Req] [Parametro] [Tipo] [Description]
* POINT String Nombre del punto.
BOOLEANVALUE Boolean Valor boolean.
BYTEVALUE Byte Valor byte.
SHORTVALUE Short Valor short.
INTVALUE Int Valor Int.
LONGVALUE Long Valor Long.
FLOATVALUE Float Valor float.
DOUBLEVALUE Double Valor double.
admin> scada point set point=/POINT-03-RW booleanvalue=true
admin> scada point set point=/GROUP-A/SUB/POINT-09-RW intvalue=12345
admin>
admin> scada point get point=/GROUP-A/SUB/POINT-09-RW
Time Stamp.......: 2011-04-19T18:32:00.029+0200
Quality..........: GOOD
Point type.......: INT
Value............: 12345
admin>
En este ejemplo los valores son escritos sobre una pasarela de simulación que solo los mantendrá mientras la pasarela esté en ejecución. Por ese motivo si desinstalamos la pasarela o detenemos el servidor estos valores se perderán.
Almacenamiento de valores
El servidor utiliza una base de datos para gestionar el modelo de adquisición y también para almacenar los valores de los puntos de los cuales nos interese mantener un historial.
En el modelo de ejemplo que hemos cargado no hemos activado esta funcionalidad para ningún punto así que vamos a ver como se activa.
admin> scada point update currentpoint=/GROUP-B/POINT-14-RO loggingmode=ALL_DATA READSYNC=DO_SYNC PERIODUNIT=SECONDS READPERIOD=10 LOGATPERIOD=3
Con esta configuración el punto leerá un valor desde la pasarela cada 10 segundos y cada 30 segundos (cada 3 lecturas) almacenará un valor en la base de datos.
Además las lecturas desde la pasarela se realizarán empezando en el segundo 0 de cada día y por tanto de cada hora también, lo cual producirá que los valores que se escribirán en la base de datos lo harán a las 0:00:00, 0:00:30, 0:01:00, 0:01:30, 0:02:00 y así siempre en el segundo 0 y 30 de cada minuto (puede existir un retraso de milisegundos aunque no es acumulativo).
No habrá ninguna restricción respecto a los valores y siempre se almacenarán con independencia de que el valor sea el mismo que la última vez.
Aunque los datos se almacenan en la base de datos, el servidor no proporciona de momento ningún comando para ver estos datos y deberán ser explotados por aplicaciones externas.