Professional Documents
Culture Documents
6.6.4 Programa principal ....................................................................... 6-8 6.7 Instrucciones de programa .................................................................... 6-9 6.8 Salvar y Compilar (save and compile) .................................................. 6-9 6.9 Multiplicadores y offsets (multipliers and offsets).............................. 6-10
Seccin 11. RTMC Control y Monitorizacin en Tiempo Real.......................................................................................... 11-1 Seccin 12. Control Ficheros (File Control), Sistemas Operativos y Transformer......................................................... 12-1
12.1 Control Ficheros (File Control)......................................................... 12-1 12.2 Sistemas Operativos .......................................................................... 12-2 12.2.1 Cargar SO mediante aplicacin Connect de LoggerNet ........... 12-2 12.2.2 Cargar SO mediante Device Configuration Utility................... 12-3 12.3 Transformer....................................................................................... 12-4
II
III
1-1
Entradas Analgicas Voltaje VoltDiff VoltSE Termopar TCDiff TCSE Puentes de medida (usa Ex) BrFull BrFull6W BrHalf BrHalf3W BrHalf4W Otras PanelTemp PeriodAvg AM25T
Tierra analgica Toma de tierra RS-232 CS I/O DSP4 (Tablas de datos y salida) Entrada Alimentaci
MADEINUSA CAUTION DCONLY G 12V POWERIN
EX1
P1
P2
SE DIFF
1 1
3 2
5 3
7 4
CR1000
WIRINGPANEL
G 12V
EX2
EX3
SE DIFF
9 5
10
11 12 6 H L
13 14 7 H L
15 16 8 H L
G
GROUND LUG RS-232
POWEROUT
SW-12
12V
12V
COM1 COM2 Tx Rx Tx Rx
COM3 COM4 Tx Rx Tx Rx
CSI/O
C1
C2
C3
C4
C5
C6
C7
5V
C8
SN: SDM
PERIPHERALPORT
12 V
1-2
1-3
2
H 3
+
L
Sensor
DIFF SE
2 L
Sensor
H
+
DIFF SE
1-4
4
DIFF H
1-5
Examples
Termopares Thermocouples Termopilas Thermopiles 4-20 mA con res. shunt 4-20ma w/shunt
Presin Pressure Galgas extensiomtricas o Strain Gages or PRTs en puente completo PRT's in full Bridge
Vout -Vout
AG
1-6
Los sensores en que hay que hacer promediado de periodos (frecuencia) Period Averaging se conectan en los canales analgicos single-ended.
Sensor
EX1
0V
LOW LEVEL AC
1-7
C1
Pump
C2
C1 - Usado como entrada para ver el estado del monitor de bomba. C2 - Usado como salida para aplicar tensin a la bomba mediante un rel de estado slido
1-8
Seccin 2. Especificaciones
2.1 Precisin
La precisin es la capacidad de una medida de proporcionar un resultado tan cercano al valor real como sea posible.
Accuracy = 0.1 g
100 g
100.1 g
2.2 Resolucin
La resolucin es el menor incremento detectable en una medida.
Higher Resolution
100 g 101 g 100 g 106.2
2-1
Seccin 2. Especificaciones
2.3 Repetibilidad
La repetibilidad es la cantidad de coincidencias entre medidas repetidas para un mismo valor.
More Precise
More Accurate
22 times
99.8 99.9
18 times
12 times
70 times
105.2 105.3
19 times
100 g
30 times
100 g
21 times
2.4 Histresis
La histresis es la respuesta retardada de una medida.
Hysteresis
100.0 100.1 99.9 100 g 100.0
Reading Changes
2-2
Seccin 2. Especificaciones
2.5 Linealidad
La linealidad es la cualidad de ofrecer la misma sensibilidad a lo largo de la medida.
Linearity
0g
50 g
50 g
100 g
50 g 50 g 100 g
2.6 Especificaciones
Es importante saber las especificaciones y limitaciones de los sensores y del datalogger a la hora de tomar medidas. Las especificaciones detalladas del CR1000 estn en el manual del datalogger. Consultar al fabricante de los sensores para sus especificaciones. Rangos de temperatura funcionamiento Standard: -25 a +50 C Extendido: -55 a +85 C Velocidad en las comunicaciones 300 bps a 115.2 kbps Voltaje en modo comn Rango 5.0 Vdc
2-3
Seccin 2. Especificaciones Voltaje de entrada permanente soportado por el CR1000 sin que se produzcan daos 16 Vdc mximo Rangos de medida y resolucin Rango de entrada (mV) 5000 2500 250 25 7.5 2.5 Precisin La precisin de una medida va desde aproximadamente 0.1% a 0.4% de la lectura, dependiendo de la temperatura. Salidas analgicas (Excitacin) Tres salidas excitacin individuales, slo activas durante la medida. Rango - programable entre 2.5 Vdc Mxima corriente = 25 mA. Contadores de pulsos Cierre de contacto 11 ms mnimo Alta frecuencia mx. 400 kHz AC bajo nivel Resolucin bsica (uV) 1330 667 66.7 6.7 2 0.67 250 uS Int 385 192 19.2 2.3 0.62 0.34 50/60 Hz Int 192 95.9 9.6 1.9 0.58 0.19
2-4
Seccin 2. Especificaciones Puertos digitales I/O (Control) Alta frecuencia mx. 400 kHz Frecuencia mx. de cierre de contacto 150 Hz Voltaje de entrada (para monitorizar estado de un dispositivo, Ej. on o off) Alto 3.8 a 5.3 Vdc Bajo -0.3 a 1.2 Vdc Voltaje de salida (para activar o desactivar un dispositivo) Alto 5.0 0.1 Vdc Bajo < 0.1 Vdc Corriente mx. de salida 1 mA Mxima corriente en salida SW12V SW12V 12V + SW12V < 900 mA depende de la temperatura < 1.85 A depende de la temperatura
Requerimientos de la alimentacin Voltaje 9.6 a 16 Vdc Consumo corriente Reposo ............................................................................................. ~0.5 mA Muestreo 1 Hz (una medida SE fast) .............................................. ~0.6 mA Muestreo 100 Hz (una medida SE fast) ............................................ ~7.0 mA Muestreo 100 Hz con comunicaciones RS-232 ................................ ~20 mA Precisin del reloj 3 minutos por ao (-30 a 85 C) 15 minutos por ao (-55 a 85 C, rango de temperatura extendido)
2-5
Seccin 2. Especificaciones
2-6
3-1
El nmero y el tamao de las tablas de datos se definen en el programa del CR1000. El nmero de registros (o filas) se define en cada tabla de datos. El nmero de valores (o columnas) de la tabla de datos se determina mediante las instrucciones de procesado de salida (output processing instructions). Se pueden definir mltiples tablas de datos para almacenar datos en diferentes intervalos de integracin.
El CR1000 puede auto dimensionar sus tablas de datos; la memoria es tipo anillo y por tanto los datos ms nuevos sobrescriben los datos ms antiguos. Hay un campo en la tabla Status que indica cuanto tiempo se tardar en sobrescribir el dato ms antiguo con el dato ms nuevo. Ms tarde analizaremos la tabla Status.
3-2
Shortcut.lnk
4.3 Ejercicio 1
Mediante Short Cut crear un programa que mida sensores y almacene datos. Ejercicio 1 Programando con Short Cut Objetivo: Medir la temperatura del aire en grados C con un termopar tipo T, y almacenar la media minutal de la temperatura del aire. Paso 1 New/Open Program name Datalogger type (CR1000) Scan interval (1 second)
4-1
Seccin 4. Generador de programas Short Cut Paso 2 Sensors Default measurement (Battery Voltage) Add Wiring Panel Temperature Add one Differential Thermocouple (Degrees C) Cablear sensor segn el wiring diagram Home Paso 3 Output Seleccionar one minute output en Table 1 Renombrar Table 1 OneMin Almacenar Average Thermocouple Temperature Home Paso 4 Finish De un nombre al programa y recuerde donde ha sido almacenado. Lea detenidamente el Summary y los Results.
4-2
Seccin 5. LoggerNet
5.1 LoggerNet
LoggerNet es un exhaustivo paquete informtico de soporte para datalogger que proporciona comunicaciones, edicin de programas de datalogger (ms complejos que los que pueda generar ShortCut), procesamiento de datos y visualizacin. LoggerNet permite programacin, comunicaciones, y recogida de datos entre los dataloggers Campbell Scientific y un PC. LoggerNet est formado por una aplicacin server (servidor) y varias aplicaciones cliente (client) integradas en un solo producto. El LoggerNet server almacena los datos en una memoria cach y graba datos en archivos ASCII. Cuando la barra de aplicaciones est activa, el LoggerNet server est activo, y por tanto, se llevarn a cabo todas las comunicaciones programadas con los dispositivos de la red. Se puede acceder a la ayuda on-line con la tecla F1 o seleccionando Ayuda en el men de aplicaciones. Tambin aparecen consejos en la parte inferior de la mayora de ventanas dependiendo de la posicin del cursor del ratn.
5-1
Seccin 5. LoggerNet
5.3 EZSetup
EZSetup permite con pocos clics configurar las comunicaciones entre un CR1000 y el PC. El asistente EZSetup se ha diseado para paso a paso ayudarle en la configuracin de su red de dataloggers. Los tipos de conexiones soportadas son: directa, telfono, IP, y RF400. Conforme va avanzando por el asistente, ver que cada pantalla contiene campos que debe completar con la informacin adecuada a su estacin. Siga las instrucciones y use los botones Next y Previous para navegar por el asistente. En cada paso del asistente tiene disponible una ayuda. Para acceder a ella haga clic en el botn Ayuda. Una vez completados todos los pasos del asistente, presione el botn Finalizar para guardar la configuracin y volver a la ventana principal de EZSetup. Si desea cambiar algo en la configuracin del datalogger, seleccione ese datalogger de la ventana principal de EZSetup, y presione el botn Edit. El asistente se abrir, y usted podr avanzar por los pasos usando el botn Next, o ir directamente a una pgina en particular del asistente.
5-2
Seccin 5. LoggerNet Utilice EZSetup de LoggerNet para configurar la conexin de su datalogger. Elija un CR1000 y asgnele un nombre. Utilizaremos una conexin directa en el puerto COM1. Utilice los datos por defecto: Velocidad: 115200 Direccin PakBus: 1 Security Code: 0 Extra Response Time: 0 s Max Time Online: 0 d 0 h 0 m Conecte el cable de serie desde el puerto COM1 hasta el puerto RS-232 del CR1000. Compruebe comunicaciones. Ponga en hora el reloj del datalogger. Enve el nuevo programa C:\Campbellsci\SCWin\EX1.CR1 al CR1000
5-3
Seccin 5. LoggerNet
5.6 View
La aplicacin View de LoggerNet permite visualizar archivos de datos almacenados y proporciona adems posibilidades grficas limitadas. View se usa para consultar archivos de datos. Los datos se muestran en forma de registros, y sus campos tanto en formato separados por coma como de forma tabulada. El grfico slo puede mostrar hasta dos columnas (campos). Visualice los datos recogidos del datalogger mediante View.
5-4
Crbasic.lnk
CRBasic est diseado para programadores que necesiten ms flexibilidad y control de lo que puede ofrecer SCWin en la funcionalidad del datalogger. Este lenguaje de programacin es similar en sintaxis, flujo de programa y lgica, al lenguaje de programacin BASIC. Ejecute CRBasic
6.2 Plantilla
CRBasic ofrece una plantilla para crear programas de cada tipo de datalogger. Cada datalogger tiene su propio conjunto de instrucciones que puede ser diferente a los otros dataloggers. Cuando empiece un programa para CR1000 elija la plantilla CR1000. Los archivos de plantillas estn asociados a un tipo especfico de datalogger. Abra la plantilla CR1000. Haga clic en File | New | CR1000 Program File.
6-1
Panel de instrucciones
rea de mensajes
CRBasic tiene instrucciones especiales para tomar medidas y para crear tablas de salida de datos. Los resultados de todas las medidas se almacenan en variables (definidas previamente) o en variables tipo array. Las operaciones matemticas se escriben igual a como seran de forma algebraica.
6-2
6-3
6-4
Seccin 6. Introduccin a la programacin con CRBasic Las variables deben ser declaradas antes de usarse en el programa. Las variables declaradas como Public pueden ser monitorizadas por LoggerNet mediante la pantalla de monitorizacin numrica o el display de grficos. Las variables declaradas en Dim no se pueden visualizar. Las variables asignadas a un valor fijo se usan como Constantes. Tambin se pueden crear Alias, que permitirn referirse a un elemento de un array u otro resultado con un nombre diferente. Las declaraciones Units se usan para asignar una etiqueta a una variable en el programa para identificar las unidades en las que est almacenada la medida asociada. Las unidades son nicamente a ttulo de documentacin. Las etiquetas de Units aparecen en la cabecera de los archivos de salida. Las variables pueden tener hasta 16 caracteres de longitud. Deben empezar con una letra y pueden contener nmeros y guin bajo (_); no pueden contener espacios. CRBasic no distingue maysculas y minsculas. Se pueden declarar varias variables en una sola lnea, separndolas por comas. Por ejemplo: Public RefTemp, AirTemp, batt_volt Ejercicio 2 continuacin Declare variables Public y asocie Units: RefTemp, AirTemp, batt_volt Public Batt_Volt, PTemp, AirTemp Units batt_volt = volts Units PTemp = deg_C Units AirTemp = deg_C
6-5
6-6
Seccin 6. Introduccin a la programacin con CRBasic Todas las tablas de datos se deben definir en el rea de declaraciones del programa (antes de la sentencia BeginProg). Nota: para que los datos se escriban a una DataTable, la tabla debe ser llamada desde el programa mediante la instruccin CallTable. La instruccin OpenInterval se puede utilizar para modificar que medidas se incluyen en las instrucciones de proceso de las series temporales dentro del intervalo de la DataTable. Cuando se introduce esta instruccin en una declaracin de DataTable, el procesado de las series temporales incluir todas las medidas desde la ltima vez que se almacenaron datos. Tpicamente, los datos de las series temporales (medias, totales, mximos, etc.) que se graban en una tabla basada en un intervalo, nicamente incluyen medidas del intervalo actual. Despus de cada intervalo de salida (output interval), se borra la memoria que contena las medidas de los datos de la serie temporal. Si se pierde un intervalo de salida (porque no se cumplen los criterios de validacin), la memoria se limpia en el inicio del siguiente intervalo. Si la declaracin DataTable contiene la instruccin OpenInterval, la memoria no se limpia. Esto resulta en que se incluyen todas las medidas en los datos de la serie temporal desde la ltima vez que se grabaron datos (aunque los datos puedan abarcar mltiples output intervals). Ejercicio 2 continuacin Declare una tabla de datos minutal: temperatura del aire media, mxima y mnima, voltaje mnimo de batera. Utilice un table size de -1 para almacenar el mximo nmero de registros.
6-7
6-8
6-9
6-10
7-1
Seccin 7. Tipos de datos y formatos AS BOOLEAN define la variable como 4 byte Boolean. Las variables Boolean se usan normalmente para flags y para representar condiciones o hardware que solo puede tener dos estados (Ej. On/Off, High/Low). Una variable Boolean utiliza el mismo formato de 32 bit long integer que el LONG pero solo puede tomar dos valores: true, que se representa con 1, y false, que se representa con 0. Cuando un FLOAT o LONG integer se convierte a BOOLEAN, cero es false (0), cualquier valor que no sea cero pondr el Boolean a True (-1). Los datos Boolean se pueden mostrar como On/Off, True/False, Red/Blue, etc. AS STRING * size especifica la variable como una cadena de caracteres (string) ASCII, terminada con un NULL, con un size opcional especificando el mximo nmero de caracteres en la cadena. La cadena es utilizada al trabajar con sensores RS232, cadenas de marcacin, mensajes de texto, etc. Cuando no se especifica el size, se usan 16 caracteres por defecto. La cadena ms pequea es tambin de 16 caracteres. Ejercicio 3 declaraciones con AS Modifique el ejemplo 2 para usar las declaraciones tipo AS: Public Batt_Volt AS FLOAT, PTemp_C, AirTemp_C, AirTemp_F Public counter AS LONG Public SiteName AS STRING * 16 Incluya las siguientes sentencias en el programa principal: SiteName = "CR1000_username" Counter = counter +1 Guarde el programa como Ejemplo 3.
7-2
La resolucin del FP2 se reduce a 3 dgitos significativos cuando el primer dgito (el de ms a la izquierda) es 8 o mayor. Por tanto, puede ser necesario utilizar IEEE4 o un aadir un offset para mantener la resolucin deseada en la medida. Por ejemplo, si hay que medir un nivel de agua con diferencias de 0.01, el nivel debe ser inferior a 80 para poder utilizar FP2 y obtener incrementos de 0.01. Si el nivel de agua se espera que pueda variar entre 50 y 90 podemos grabar el dato en IEEE4 o aadirle un offset de 20 (transformando el rango de 30 a 70). Posicin punto decimal en el FP2 Valor absoluto Posicin del punto decimal 0 - 7.999 X.XXX 8 - 79.99 XX.XX 80 - 799.9 XXX.X 800 - 7999. XXXX. Nota: Las variables STRING y BOOLEAN pueden utilizarse con la instruccin Sample. Modifique el ejemplo 3 para grabar datos en formato FP2 y IEEE4. Incluya tambin un Sample del contador y el SiteName. DataTable(OneMin,True,-1) DataInterval(0,1,Min,0) Average(1,AirTemp_C,IEEE4,0) Maximum (1,AirTemp_C,IEEE4,0,False) Minimum (1,AirTemp_C,FP2,0,False) Minimum (1,Batt_Volt,FP2,0,False) Sample (1,counter,Long) Sample (1,SiteName,String) EndTable
7-3
Cada fichero en el PC puede tener al principio una cabecera ASCII. La cabecera da informacin del formato, datalogger, y programa utilizado para generar y almacenar los datos. a) ASCII Table Data, Long header (TOA5) Este es el formato por defecto y el ms comn para importar en bases de datos y hojas de clculo. Los datos se almacenan separados por coma. La informacin de cabecera para cada columna est incluida, junto con los nombres de los campos y unidades de medida si estas estn disponibles.
7-4
El siguiente es un ejemplo de cmo los datos de arriba podran aparecer al ser importados a un a hoja de clculo:
TOA5 TIMESTAMP TS 2004-05-04 07:28:00 2004-05-04 07:29:00 2004-05-04 07:30:00 CR1000_on _desk RECORD RN 0 1 2 CR1000 AirTemp_C_ Avg deg C Avg 24.01 23.99 23.96 1022 AirTemp_C_ Max Deg C Max 24.02 24.01 23.97 CR1000.Std .01 AirTemp_C_ Min deg C Min 24.01 23.97 23.95 CPU:EX2.CR 1 Batt_Volt_ Min volts Min 13.19 13.19 13.19 27664 OneMin
La aplicacin View de LoggerNet puede mostrar la informacin de la cabecera abriendo el fichero y haciendo clic en File | Properties.
7-5
Seccin 7. Tipos de datos y formatos La informacin contenida en la cabecera se describe aqu debajo. Nombre genrico File Format Station Name Ejemplo TOA5 CR1000_on_desk Descripcin El formato del fichero en disco. TOA5 es un formato ASCII. Nombre de estacin entrado en el Setup de LoggerNet de donde se han recogido los datos. Nota: Esta no es la informacin generada por la sentencia opcional StationName. Modelo de datalogger del que se han recogido los datos. El nmero de serie del logger del que se han recogido los datos. Es el nmero de serie de la CPU del CR1000. La versin del sistema operativo del logger del que se han recogido los datos. El nombre del programa que estaba ejecutndose en el CR1000 cuando se recogieron los datos. La firma del programa. El nombre de la data table. Fecha y hora del registro. Indica la hora, de acuerdo con el reloj del logger. El nmero de registro. El nmero aumentar hasta 2E32 y entonces volver a empezar desde cero. El nmero de registro tambin empezar desde cero si se resetea la tabla. El nombre del campo en la data table. Este nombre es creado por el CR1000 aadiendo un guin bajo (_) y un mnemnico de tres caracteres con el clculo realizado. Los nombres de campo se asignan segn la instruccin DataTable. Las unidades del campo en la data table. Las unidades se asignan en el programa con la declaracin Units. El procesado de salida (clculo) que fue utilizado cuando se grab el campo. Valor de cada campo del registro. Esta lnea de cabecera solo est en el formato binario TOB1 e identifica el tipo de dato para cada uno de los campos de la tabla de datos.
Logger Model Logger Serial Number Operating System Version Program file Program Signature Table Name Timestamp Record Number Field Names
deg C, volts Smp = Sample Max = Maximum Min = Minimum Avg = Average 24.01, 24.02, etc. ULONG = Unsigned 4 byte integer IEEE4 = 4 byte floating point b)
ASCII Table Data, No Header Los datos se almacenan separados por coma. No se incluye informacin de la cabecera en el archivo. Por ejemplo: "2004-05-04 08:26:00",7,24.46,24.48,24.44,13.17 "2004-05-04 08:27:00",8,24.46,24.48,24.43,13.17 "2004-05-04 08:28:00",9,24.46,24.47,24.44,13.17
c)
ASCII Table Data, Short Header, (TOACI1) Los datos se almacenan separados por coma. Incluye una versin reducida de la cabecera para cada columna.
7-6
d)
Binary Table Data (TOB1) Los datos se almacenan en formato binario. Aunque este formato ahorra espacio de almacenamiento del disco, se debe convertir antes de poderse usar en otros programas.
"TOB1","CR1000_on_desk","CR1000","-1","0.0.15","CPU:EX2.CR1","23213","OneMin" "SECONDS","NANOSECONDS","RECORD","AirTemp_C_Avg","AirTemp_C_Max","AirTemp_C_Min","Batt_Volt_Min" "SECONDS","NANOSECONDS","RN","deg C","deg C","deg C","volts" "","","","Avg","Max","Min","Min" "ULONG","ULONG","ULONG","FP2","FP2","FP2","FP2" (No se muestran las lneas de datos en binario dado que son ilegibles.)
7-7
Los datos recogidos con Recogida Personalizada se almacenan en diferentes sitios, y tienen diferentes punteros de recogida a los que se recogen mediante Recogida Manual en Connect o con Recogida Programada Activada. Por ejemplo: Datos desde la ltima recogida ser desde la ltima recogida dentro de esta ventana, y no lo que se pueda hacer desde la pantalla Connect. Opciones de Modo Recogida: a) b) c) d) e) Nmero registros ms nuevos. Registros especficos. Datos desde la ltima recogida. Todos los datos. Datos de fecha y hora seleccionada.
7-8
Seccin 7. Tipos de datos y formatos Opciones Modo fichero: a) Aadir al final del fichero. b) Sobrescribir fichero actual. c) Crear fichero nuevo. Opciones Formato fichero: a) ASCII Table Data, cabecera corta (TOACI1). b) ASCII Table Data, cabecera larga (TOA5). c) Binary Table Data, (TOB1).
7-9
7-10
Haga clic en el desplegable para ver la lista de categoras de instrucciones. Esta lista contiene todas las categoras definidas en el editor CRBasic, y las categoras creadas por el usuario. Cuando se selecciona una categora, solo se muestran las instrucciones de esa categora. Para crear Categoras personalizadas, haga clic en Options | Edit Instruction Categories | Add New Category | Edit (new) Category.
8-1
8-2
Cuando se inserta en el programa esta instruccin se ve as: VoltDiff( Dest, Reps, Range, DiffChan, RevDiff, SettlingTime, Integ, Mult, Offset ) La mayora de las instrucciones de medida incluyen los siguientes parmetros: Destination variable en donde almacenar el resultado de la medida. Repetitions el nmero de veces que debe realizarse la medida. Las medidas se hacen en canales consecutivos. Si el parmetro Repetitions es mayor que 1, el parmetro Destination debe ser un array. Channel (DiffChan) el nmero del canal diferencial donde hacer la primera medida. Si el parmetro Repetitions es mayor que 1, las medidas adicionales se harn en canales consecutivos. Si el valor entrado en DiffChan es negativo, todas las Reps se harn en el mismo canal. Multiplier, Offset Los parmetros Multiplier y Offset son cada uno una constante, variable, array, o expresin que escala los resultados de la medida. Con un multiplier de 1 y un offset de 0, la salida es en la unidad de medida.
8-3
Determinacin de la pendiente (multiplier) y Offset Ecuacin de la recta: y=mx + b Donde: x = punto en el eje x y = punto en el eje y m = multiplier (pendiente) b = offset (punto de corte en el eje y) Suponiendo que: rango del sensor (valores de y) -> 200 a 700 psi rango de salida (valores de x) -> 400 a 2000mV
Clculo del multiplier (pendiente) m = (y2-y1)/(x2-x1) m = (700-200)psi/(2000-400)mV m = 0.3125 psi/mV Sustituir los valores conocidos para calcular b, el offset (punto de corte con el eje y) y=mx+b; despejando b b = y-mx b = 200-(0.3125*400) = 75 psi
Voltaje Range el rango de voltaje del sensor de entrada al CR1000. Entrada mV5000 mV2500 mV250 mV25 mV7_5 mV2_5 Autorange mV250C mV25C mV7_5C mV2_5C autorangeC Rango Fondo Escala 5000 mV 2500 mV 250 mV 25 mV 7.5 mV 2.5 mV mV2_5 to mV5000; el datalogger determina el rango ms conveniente 250 mV, chequea circuito abierto 25 mV, chequea circuito abierto 7.5 mV, chequea circuito abierto 2.5 mV, chequea circuito abierto mV2_5 to mV250; el datalogger chequea posible circuito abierto, y determina el rango ms conveniente. Entradas >250 mV estarn fuera de rango.
8-4
Seccin 8. Detalles de instruccin La resolucin de una medida es una parte en 7500 sobre rango fondo escala (FSR). Cuanto ms pequeo sea el voltage range seleccionado, mejor ser la resolucin absoluta. En general, una medida debe usar un voltage range fijo lo ms pequeo posible y que admita el fondo de escala del sensor a medir. El AutoRange permite al CR1000 elegir automticamente el rango de voltaje a utilizar. El AutorRange del CR1000 hace dos medidas. La primera medida determina el rango a usar. Lo hace con una integracin de 250S y en el rango de 2500mV. La segunda medida se hace en un rango ajustado utilizando la integracin especificada en la instruccin. AutoRange optimiza la resolucin pero tarda ms tiempo, y ms consumo, que una medida en un rango fijo debido a la necesidad de realizar dos medidas. Los rangos seleccionados que terminan en C (por Ej. mV2_5C) chequean posible circuito abierto y al mismo tiempo llevan la seal dentro del rango en modo comn. El circuito abierto detecta trabajos conectando brevemente (50 S) el voltaje de entrada a 300 mV dentro del CR1000. Despus de desconectar, se deja estabilizar la seal, y se hace la medida del voltaje. Si el sensor est en circuito abierto (entradas no conectadas y flotantes) las entradas permanecern flotantes cerca del voltaje al que estaban conectadas, y la medida devolver Not-A-Number (NAN). Si el sensor est bien, la seal del sensor conectar las entradas al valor correcto. Conectar brevemente las entradas a los voltajes internos del CR1000 tambin sirve para llevar una seal diferencial flotante dentro del rango en modo comn. Estas opciones de voltaje range deberan usarse en la medida diferencial de termopares (instruccin TCDiff) y para otros sensores con salidas diferenciales flotantes (por Ej. sensores de radiacin solar). El rango en modo comn (common mode range) es el rango de voltaje, relativo a la tierra del CR1000, dentro del cual deben estar los voltajes de cada entrada en una medida diferencial, para que la medida diferencial se pueda llevar a cabo.
SE 1 2 Diff 1 H L 4000 mV 3000 mV Medida = 1000 mV
Sensor
Sin embargo, si la entrada del canal H est a 5.8V y la entrada del canal L est en 4.8V, la medida no se puede realizar dado que el voltaje en H est fuera del rango en modo comn de 5V.
8-5
Seccin 8. Detalles de instruccin Adicionalmente, las medidas single ended tienen: MeasOff Determina si el voltaje de offset de tierra hay que medirlo antes de realizar la medida en el canal analgico. Si se mide, se resta a la medida del sensor y el resultado almacenado en Dest. Entrando 0, el offset de tierra es corregido, a partir de la calibracin en background. Entrando 1, se mide el offset de tierra en cada scan, lo cual incrementa la duracin de la medida; y utilizado cuando el offset cambia rpidamente.
SettlingTime la cantidad de tiempo a retardar desde la orden de medir hasta que la medida se realiza. Consultar la siguiente tabla para ver los SettlingTimes por defecto. Entrada 0 0 0 >100 Rango All All All All Integracin 250 us _50Hz _60Hz All Settling Time 450 us (default) 3 ms (default) 3 ms (default) ms entered
Integ la cantidad de tiempo, en microsegundos, para integrar una seal en el canal que est siendo medido. Opciones 250 _60Hz _50Hz Descripcin Integracin de 250 microsegundos. Integracin de 16.667 milisegundos; filtro ruido 60 Hz. Integracin de 20 milisegundos; filtro ruido 50 Hz.
8-6
Seccin 8. Detalles de instruccin Las Medidas Diferenciales tambin incluyen: RevDiff Una entrada true o false para determinar si las entradas se invierten y se hace una segunda medida. Esta funcin elimina cualquier error de offset de voltaje debido a la propia circuitera de medida del datalogger, incluyendo errores de modo comn. Habilitando este parmetro se dobla el tiempo de la medida. False (0) = no hacer la segunda medida; True (1) = invertir entradas y hacer la segunda medida.
Los Puentes de Medida incluyen: RevEx Determina si el voltaje de excitacin se debe invertir y aplicar al sensor despus de que se haya hecho la primera medida. Se usa cuando un sensor puede polarizarse, o daarse con una excitacin DC constante. False (0) = no invertir el voltaje de excitacin; True (1) = invertir el voltaje de excitacin y hacer una segunda medida (requiere ms tiempo en completarse). El uso de RevEx elimina offsets debidos al sensor, cableado, circuitera de excitacin, pero no compensa errores de modo comn.
Cuando el CR1000 invierte la entrada diferencial o la polaridad de la excitacin, retarda el mismo settling time despus de la inversin, igual que hace antes de la primera medida. As, hay dos retardos por canal tanto cuando se utiliza RevDiff o RevEx. Si se utilizan las dos, hay cuatro segmentos en la medida, excitaciones positiva y negativa con las entradas colocadas de una forma y excitacin positiva y negativa con las entras invertidas. El CR1000 se coloca en el canal:
8-7
Seccin 8. Detalles de instruccin Excita, retarda, mide Invierte excitacin, retarda, mide Invierte excitacin, invierte entradas, retarda, mide Invierte excitacin, retarda, mide
Cuando se inserta esta instruccin en el programa se ve as: Average (Reps, Source, DataType, DisableVar) La instruccin Average se pone dentro de una sentencia DataTable. La medida o medidas con las que se calcula una media se especifican utilizando los parmetros Repetitions y Source. Repetitions el nmero de medias a calcular. Si el parmetro Repetitions es mayor que 1, se debe especificar un array para Source. Si no, cuando se compile el programa este dar un error Variable Out of Bounds. Source el nombre de la variable donde guardar la media. DataType se utiliza para seleccionar el formato con el que guardar los datos. Las opciones para esta instruccin de salida son IEEE4 y FP2. Tambin est disponible, escribindolo directamente, un tercer tipo de datos, LONG. El tipo de datos LONG configura la salida a 32-bit long integer. Hay dos posibles razones para que un usuario quiera utilizar este formato: (1) velocidad, dado que el SO realiza ms rpido operaciones con enteros que con coma flotante, y (2) resolucin, Long tiene 31 bits comparado a los 24-bits en IEEE4. Sin embargo, no es adecuado en muchos casos dado que la parte fraccionaria se pierde.
8-8
Seccin 8. Detalles de instruccin DisableVar - una constante, variable, o expresin utilizada para determinar si la medida actual debe incluirse en la media. False (0) = Procesar la medida actual True (no-cero) = No procesar la medida actual. Normalmente es el resultado de la evaluacin de una expresin, por Ej. HR>100.
Rs = Rf X Rf = Rs / X
8-9
BrFull
H L
R3 V1 R2 = 1000 Vx R3 + R4 R1 + R2
X 2 = X / 1000 + R 2 / ( R 1 + R 2 ) R3 = R4 = R 4 X2 1 X2
R 3 (1 X 2 ) X2
8-10
Seccin 8. Detalles de instruccin BrHalf( Dest, Reps, Range, SEChan, ExChan, MeasPEx, ExmV, RevEx, SettlingTime, Integ, Mult, Offset ) Dest: WindDir Reps: 1 Range: mV2500 SEChan: 1 ExChan: 1 MeasPEx: 1 ExmV: 2500 RevEx: True Settling Time: 0 Integ: 60Hz Mult: 355 Offset: 0 BrHalf(WindDir,1,mV2500,1,1,1,2500,True,0,_60Hz,355,0)
8-11
8-12
Formatos de entrada de nmeros en CRBasic Formato Standard, base 10 Notacin cientfica Binario Hexadecimal Ejemplo 6.832 5.67E-8 &B1101 &HFF Valor 6.832 5.67X10-8 13 255
El formato binario hace fcil visualizar operaciones donde los unos y los ceros se traducen en comandos especficos. Por ejemplo, utilizando la instruccin WriteIO, se puede prefijar con un nmero el estado de un conjunto de puertos de control, la forma binaria con la cual representar el estado de los puertos (1=high, 0=low). Para configurar high los puertos 1, 3, 4, y 6 y low los puertos 2, 5, 7, y 8 como bajo; el nmero entrado en CRBasic es &B00101101. El bit menos significativo est a la derecha y representa el puerto 1. Este es mucho ms fcil de visualizar que entrando 72, que es el decimal equivalente.
9-1
9-2
9-3
9-4
La tabla Status contiene un nico registro. Debajo se incluye alguna informacin. En el Apndice A del manual del CR1000 puede encontrar la lista completa y detalles. OSVersion Versin actual del sistema operativo. OSDate Fecha en la cual el sistema operativo fue compilado. OSSignature Firma del sistema operativo. SerialNumber Nmero de serie del CR1000. RevBoard Nmero de revisin de hardware. StationName Cadena almacenada en Station Name (utilizando la sentencia StationName) del CR1000. ProgName Nombre del programa actualmente en ejecucin. StartTime Hora en que el programa empez a funcionar. RunSignature Firma del programa que se est ejecutando. ProgSignature Firma de la estructura de datos binaria compilada del programa que se est ejecutando. Battery Valor actual del voltaje de la batera. Esta medida se hace en la calibracin en background.
9-5
Seccin 9. Programacin para control PanelTemp Temperatura actual del panel de conexiones. Esta medida se hace en background. WatchdogErrors Nmero de errores Watchdog que han sucedido mientras se ejecutaba este programa. Este valor se puede resetear entrando un cero. Tambin se resetea al compilar un nuevo programa. LithiumBattery Voltaje de la pila de litio. Low12VCount Nmero de veces que la alimentacin de 12V ha cado. Este valor se puede resetear entrando un cero. Low5VCount Nmero de veces que la alimentacin de 5V ha cado. Este valor se puede resetear entrando un cero. CompileResults Contiene mensajes de error que se hayan generado en la compilacin o durante la ejecucin. ProgErrors Nmero de errores de compilacin (o de ejecucin) en el programa actual. VarOutOfBound El nmero de veces que un array ha sido accedido out of bounds. SkippedScan Nmero de scans saltados mientras se ejecutaba el scan actual. SkippedSlowScan Nmero de scans saltados en esta slow sequence. SkippedRecord - Variable que representa cuantos registros se han saltado en una tabla. Cada tabla tiene su propia entrada en este array. ErrorCalib Contador que se incrementa cada vez que se produce un valor de calibracin malo. El valor se descarta (no incluido en el filter update) y ErrorCalib es incrementado. Security Un array con los parmetros de la Security (no se mostrar si la Security est activada). MemorySize Cantidad total de SRAM en el CR1000. MemoryFree Cantidad (en bytes) de memoria SRAM no utilizada. El usuario puede que no sea capaz de destinar toda la memoria libre para tablas de datos dado que el rea de almacenamiento final debe ser contiguo. Conforme la memoria se ocupa y libera, se generan agujeros que no estn disponibles para almacenamiento final, pero que se mostrarn como bytes libres. ProgMemFree Cantidad de espacio libre en la SRAM que es utilizado para almacenar programas. FullMemReset Introduciendo el valor 98765 se har un reset completo de la memoria.
9-6
Seccin 9. Programacin para control DataRecordSize Nmero de registros en una tabla. Cada tabla tiene su propia entrada en este array. SecsPerRecord Intervalo de salida (output interval) para una tabla. Cada tabla tiene su propia entrada en este array. DataFillDays Tiempo en das para llenar una tabla. Cada tabla tiene su propia entrada en este array. PortsStatus Array de valores Boolean que indican el estado de los puertos de control. PortsConfig - Array de strings detallando el uso de los puertos de control. Entradas vlidas : Input, Output, SDM, SDI-12, Tx, y Rx.
9-7
9-8
10-1
10-2
Seccin 10. Recogida de datos automatizada En la pantalla Setup se puede introducir la misma informacin:
LoggerNet puede hacer reintentos si fallan las llamadas programadas (por Ej. En casos que la lnea de telfono est ocupada, o la radio tenga interferencias).
10.2 Status
Una vez configurada la recogida programada de datos, utilice la aplicacin Status de LoggerNet para monitorizar el progreso de la recogida de datos. Estn disponibles estadsticas sobre tasa de errores, cantidad de datos recogidos, y hora de las llamadas.
10-3
Tambin se pueden recoger los datos manualmente desde la pantalla Status utilizando el botn Recoger Ahora.
10-4
10-5
10-6
Las pantallas grficas personalizadas pueden incluir grficos de evolucin, tablas, diales, alarmas, valores digitales y otros elementos grficos. Estas pantallas se actualizan automticamente cuando LoggerNet recoge nuevos datos.
1. 2. Combina datos de mltiples dataloggers en una nica pantalla. Los datos mostrados son datos recogidos mediante la opcin de Recogida Programada de LoggerNet. Permite cambiar el estado de los ports y flags del datalogger, y cambiar variables. Puede mostrar variables de la tabla Public y datos almacenados en data tables. Los components grficos se colocan en el workspace, tal y como aparecern en la pantalla final. Una vez se han colocado en el workspace los components grficos, se muestran en la component list del panel izquierdo. Esto proporciona un acceso rpido a los components del workspace. Los componentes se muestran en el panel derecho. Seleccionando un componente y hacienda clic en el workspace, coloca el componente y aparece la ventana de Properties para ese componente. Para cambiar la apariencia de un componente grfico, haga doble clic en el componente para que aparezca la ventana Properties. Se pueden combinar diferentes tipos de components grficos y as obtener atractivas pantallas de presentacin de datos en tiempo real. En la pantalla se pueden colocar imgenes con formato de fichero grfico estndar que estn almacenadas en el PC.
3. 4. 5.
6.
7.
8.
9.
10.
11. La pantalla se actualiza automticamente a la hora programada en la opcin Recogida Programada (Scheduled Collection) o despus de una recogida de datos personalizada. 12. RTMC incluye un intrprete de expresiones que permite al usuario definir condiciones en los datos o crear displays en funcin de un determinado clculo.
13. Las pantallas no se pueden exportar de forma automtica a ficheros que puedan incorporarse en pginas Web. Nuestro paquete opcional RTDM (Real Time Data Monitor), no incluido en LoggerNet, si dispone de esta posibilidad. 14. El Run-time puede ejecutarse en otros ordenadores de la red (con licencias adicionales de RTMC Runtime).
11-1
Seccin 11. RTMC Control y Monitorizacin en Tiempo Real Para poder mostrar datos de las tablas Public o Status, debe incluir esas tablas en la Recogida Programada (scheduled collection). En la aplicacin Setup, escoja el CR1000 en el mapa de red y seleccione la pestaa Ficheros (Data Files). Haga clic en Incluido para Recogida Programada (Included for Scheduled Collection). Dado que las tablas Public y Status solo contienen un registro, es decir, que solo contienen la informacin actual, tiene sentido seleccionar Sobrescribir Fichero Existente (Overwrite Existing File) en Opcin Fichero Salida (File Output Option). Tambin No Output File.
Con los datos generados en el Ejercicio 4 Program Control, cree una pantalla RTMC que muestre: Temperatura termopar en C. Estado del LED (on o off). Los ltimos 15 minutos de las medias minutales de temperatura. Hora de la ltima recogida de datos. Otro grfico. 1) 2) 3) 4) Escoja un componente grfico. Haga clic en el workspace. Browse para seleccionar dato. Edite las properties del componente.
11-2
11-3
Seccin 11. RTMC Control y Monitorizacin en Tiempo Real La pantalla puede tener el siguiente aspecto:
11-4
Esta herramienta se utiliza para manipular los ficheros almacenados en el CR1000 y otros dispositivos que tenga conectados, como una tarjeta Compact Flash. En la parte izquierda de la ventana se muestran los dispositivos a los que est conectado. Cuando selecciona un dispositivo, en la parte derecha se listan los ficheros de ese dispositivo. El campo File Name indica el nombre del fichero almacenado en el dispositivo. Run Options indica si el fichero est en modo Run on Power up, Run Now, o ambos (Run Always). Enviar (Send) Muestra una ventana de dilogo desde la cual se puede enviar un fichero al dispositivo seleccionado. Format Formatea el dispositivo seleccionado. Esta opcin debe usarse con cuidado, dado que todos los ficheros almacenados en ese dispositivo sern borrados.
12-1
Seccin 12. Control Ficheros (File Control), Sistemas Operativos y Transformer Refrescar (Refresh) Pulse este botn para refrescar los dispositivos y la lista de ficheros del datalogger. Si se ha realizado algun cambio desde un dispositivo externo como el teclado-display, o por control de programa, no quedar reflejado en esta ventana hasta que se haya refrescado.. Descargar (Retrieve) Seleccione un fichero en Nombre Fichero (File Name) y pulse este botn para mostrar una ventana de dilogo donde podr entrar la ruta y nombre del fichero descargado. Run Options Permite determinar la forma de ejecucin de un programa. Run Now empieza a ejecutar el programa de forma inmediata; tiene la opcin de borrar o mantener los ficheros de datos. Run on Power-up har que el programa se ejecute cuando el datalogger sea apagado y encendido de nuevo. Borrar (Delete) Borra el fichero del dispositivo seleccionado. Parar Programa (Stop Program) Pulse este botn para parar la ejecucin del programa actual ejecutndose en el datalogger. Use esta opcin con cuidado. Para arrancar de Nuevo el programa, vaya a Run Options y Run Now. El programa se compilar y todos los datos del CR1000 se perdern.
Haga clic en Enviar (Send) y localice la carpeta del ordenador donde tiene guardado el Nuevo SO. El SO debera tener el formato: CR1000.Std.XX.obj donde XX es la versin. Recibir un aviso de que se perdern todos los datos, y tendr la opcin de seguir con el proceso o no.
12-2
Cargando el SO de esta forma, el programa y otros parmetros de configuracin internos del CR1000, se mantienen. El programa que se ejecutaba continuar una vez completada la carga. Otro beneficio de hacerlo por Connect y Enviar es que se puede hacer de forma remota. Sin embargo, no es recomendable, dado que el SO es un fichero grande comparado con ficheros de datos o programas. Cargue un SO al CR1000.
12-3
DevConfig proporciona instrucciones para cargar el Nuevo SO. Cargando el nuevo SO mediante DevConfig, el CR1000 resetear y borrar toda su memoria incluyendo programas, configuracin y datos almacenados. Use DevConfig, para cargar un SO al CR1000.
12.3 Transformer
El Transformer es una utilidad de LoggerNet que convierte programas de datalogger CR10X tipo array, a programas de CR1000. Un programa simple debera transformarse razonablemente bien. Cuantos ms loops, lgica, medidas especiales, subrutinas, salidas condicionales, y medidas condicionales, mayor ser la posibilidad de que algo no se transforme. En la mayora de los casos, el Transformer generar un programa con una estructura bsica, sintaxis, y cdigo ejemplo equivalente al programa CRBasic. En la medida de lo posible, el Transformer aadir mensajes al log indicando los principales problemas encontrados. El usuario debe tener en cuenta que todo y que el programa CRBasic se compile bien, puede que no haga exactamente lo que el programa CR10X haca.
12-4
Seccin 12. Control Ficheros (File Control), Sistemas Operativos y Transformer Ejecute el Transformer en Windows Inicio | Todos los Programas | LoggerNet 3.0 | Utilities | Transformer. Se abrir una ventana de dilogo donde podr escoger el programa CR10X con extensin .dld o .csi que quiera transformar.
El programa CR1000 transformado se crear automticamente en la misma carpeta que el programa original del CR10X. Haciendo doble clic en una instruccin de la Source rea (del programa CR10X) se remarcar la instruccin correspondiente en el nuevo programa para CR1000. Vea el Action Log con los posibles errores de conversin que hayan ocurrido. El Action Log puede salvarse o imprimirse y usar como referencia cuando se edite con CRBasic el programa del CR1000. El Transformer no dispone de capacidad de edicin; todos los cambios en el programa se deben hacer mediante CRBasic. Los programas para CR1000 creados por Transformer deben ser revisados y probados antes de poner en funcionamiento en campo.
12-5
Seccin 12. Control Ficheros (File Control), Sistemas Operativos y Transformer This is a blank page.
12-6
13-1
Seccin 13. Ejercicio Exhaustivo 2. Los anemmetros a menudo generan una seal tipo pulsos, pero esta puede ser tipo cierre de contactos (switch closure), voltaje AC, o onda cuadrada de 5Vdc. Las especificaciones del sensor determinarn que opcin de configuracin seleccionar, y que multipliers y offsets son necesarios para la adecuada conversin a unidades de ingeniera. Para la determinacin de offset, el sensor debera haber sido calibrado en un tnel de viento. (Usuarios avanzados aadirn cdigo al programa para poner a cero la VV si la medida es igual al offset.) El procesado de salida (output processing) para datos de viento es ms complicado que una simple media. El CR1000 incluye una instruccin de proceso de salida exclusive para viento.
3.
Ejercicio Exhaustivo Parte 2 - Use las especificaciones del manual del sensor CSI 03001 Wind Sentry para aadir medidas de viento al programa de la Parte 1. Guarde datos cada 1 minuto que incluya T aire media, VV y DV; y cada 5 minutos, T aire media, ltima muestra de HR, y media de la VV y DV. Medidas Voltaje batera CS500 T aire en C CS500 HR en % 03001 direccin viento 03001 velocidad viento Guardar datos cada 1 minuto: T aire media VV media y DV media Guardar datos cada 5 minutos: Voltaje batera mnimo T aire media HR ltima muestra VV media y DV media Scan Rate (1 segundo)
13-2
14-1
Seccin 14. Redes PakBus Los routers son dispositivos PakBus configurados para aceptar paquetes destinados a otros dispositivos y reenviarlos a ese dispositivo. Un router solo acepta paquetes destinados a direcciones PakBus de las cuales tenga una ruta. Un CR1000, CR10X, CR510, NL100, RF416 o incluso LoggerNet pueden ser routers. Hello-Exchange es como dos dispositivos PakBus se establecen entre ellos como neighbors. Un dispositivo PakBus (A) enva un hello command packet a otro dispositivo (B). El dispositivo (B) enva entonces una hello response a (A); la recepcin de este paquete los determina como neighbors. Slo un hello exchange puede establecer dos dispositivos como neighbors. Beacon es un paquete de aviso con el propsito de descubrir dispositivos neighbor PakBus. Los dispositivos que responden al beacon lo hacen iniciando un helloexchange con el dispositivo que emite el beacon, en caso de que todava no sean neighbors. Un dispositivo con un neighbor filter ignorar los beacons de las direcciones que no estn en su neighbor list, a menos que la beacon address sea >= 4000 (tpicamente un server). Static Routes, entre LoggerNet y un dispositivo, existen en virtud del device map en el Setup de LoggerNet. Las Static Routes aparecen como lneas rojas en el PakBus Graph. Dynamic Routes, entre LoggerNet y un dispositivo, son aprendidas a travs de un hello-exchange. Una dynamic route se puede establecer mediante beaconing o mediante conexin de LoggerNet va una static route. Las Dynamic Routes aparecen como lneas negras en el PakBus Graph. Communications Verification Interval es un intervalo de tiempo que un dispositivo PakBus usa para determinar cuando es hora de enviar un hello message a otro dispositivo para ver si ellos todava pueden comunicar.
14-2
Seccin 14. Redes PakBus El botn PakBus Graph se puede aadir a la barra de LoggerNet, Options | Configure Buttons. Puede tambin ser ejecutado desde la barra de LoggerNet, Tools | PakBus Graph, o va el botn Troubleshooter. PakBus Graph muestra dos tipos de enlaces con los dispositivos PakBus desde LoggerNet: los static links y los dynamic links. Los static links son los enlaces con dataloggers que han sido configurados en el device map, pero no confirmados para comunicar con el datalogger(s). Ver esos dataloggers listados en la pantalla Setup de LoggerNet. Los dynamic links son enlaces de comunicaciones con dataloggers que han sido confirmados. PakBus Graph podra tambin mostrar con dataloggers leaf node que no han sido configurados en LoggerNet, pero que LoggerNet server ha "learned about" interrogando la PakBus network.
14-3
PC CR1000 CR1000
CR1000
CR1000 PC
PC
En la red descrita, los PCs estn conectados a los CR1000 mediante sus puertos RS-232. Todas las dems conexiones son mediante MD485s por protocolo RS485. El funcionamiento de los MD485 es transparente al usuario. Otros dispositivos como los RF416 actuaran de la misma forma.
14-4
Seccin 14. Redes PakBus La aplicacin Device Configuration Utility fue utilizada para configurar cada MD485, con los mismos parmetros. Parmetros MD485 Setting Name Setting Value Active Ports CS I/O and RS-485 Protocol Configuration PakBus Networking CS I/O Mode SDC Address 7 RS-485 Baud Rate 115.2 k bytes Los ajustes PakBus por defecto en el CR1000 son: Default CR1000 PakBus Settings Setting Value Description 1 0 0=No, 1=Yes 50 Mximo nmero de dispositivos en la routing table del CR1000. 115200 Con un nmero negativo, la deteccin de velocidad es automtica. 0 0 <blank>
Setting Name PakBus Address Is Router PakBus Nodes Allocation Baud Rate * Beacon Interval * Verify Interval * Neighbors *
* Nota: existen campos independientes para los distintos Active Interfaces (RS232, ME, COM310, SDC7, SDC8, COM1, COM2, COM3, y COM4).
14-5
Seccin 14. Redes PakBus Use Device Configuration Utility para configurar la PakBus Address en el CR1000 y configurarlo como Router. Si LoggerNet est ejecutndose; apguelo. Ejecute Device Configuration Utility. Conecte un cable serie entre el puerto serie del PC al puerto RS232 del CR1000. Use la PakBus address asignada a su puesto particular de la clase. Asignacin PakBus Address CR1000 2 5 9 Parte frontal de la clase 3 Instructor 4 6 7 10 11 1 Not Used 8 12
En la pestaa Advanced, cambie el parmetro Is Router Setting a Yes indicando que debe actuar como un Router. Haga Apply para guardar cambios y cierre Device Configuration Utility.
14-6
Level 1 debe configurarse antes que el Level 2 pueda configurarse, y Level 2 debe configurarse antes que Level 3. Si un level se configura con 0, cualquier level mayor que ese, se pondr tambin a 0 (Ej. si Level 2 es 0, Level 3 es 0). Los levels se desbloquean en orden inverso, Level 3 antes que Level 2 antes que Level 1. Cuando un level es desbloqueado, cualquier level mayor que ese, tambin se desbloquear. Desbloqueando el Level 1 (entrando el security code del Level 1) tambin desbloquea Level 2 y Level 3. Las funciones afectadas por cada nivel de seguridad son: Security1 cuando este nivel es activo, se permite recoger datos, ajustar reloj, modificar variables de la tabla Public, sin necesidad de entrar el security code. Si el usuario entra el Security1 code, los valores non-read-only de la Status Table pueden modificarse y el programa del datalogger puede ser descargado y modificado. Security2 cuando este nivel es activo, se permite recoger datos, sin necesidad de entrar el security code. Si el usuario entra el Security2 code, el reloj del datalogger se puede ajustar y tambin modificar las variables de la tabla Public. Si el usuario entra el Security1 code, los valores non-read-only de la tabla Status pueden modificarse y el programa del datalogger puede ser descargado y modificado. Security3 cuando este nivel es activo, estn prohibidas todas las comunicaciones con el datalogger, excepto que se haya entrado el security code. Si el usuario entra el Security3 code, los datos pueden ser recogidos del datalogger. Si el usuario entra el Security2 code, los datos pueden ser recogidos, las variables de la tabla Public modificadas, y ajustar el reloj. Si el usuario entra el Security 1 code, todas las funciones son permitidas. Function Programa CR1000 Tabla Status Ajustar Reloj Tabla Public Level 1 activo Level 2 activo Level 3 activo
No se puede recoger ni modificar Las variables de escritura no se pueden modificar Sin restriccin Sin restriccin No se puede modificar/ajustar Las variables de escritura no se pueden modificar Sin restriccin
Recoger datos
Sin restriccin
14-7
Seccin 14. Redes PakBus Los parmetros PakBus, como la PakBus address, forman parte de la tabla Status. Activando la Level 1 Security queda restringido que otros puedan modificar estos ajustes vitales de la red.
14-8
En CRBasic, abra y modifique el programa blink.cr1. Entre su nombre en la cadena EnterNameHere. Guarde el programa como blinkyourname.cr1. Conecte con el datalogger CR1000 y cargue el programa.
Haciendo clic con botn derecho del ratn encima de un dispositivo de la red puede visualizar y cambiar los parmetros de los dispositivos PakBus de la red.
14-9
14-10
Seccin 14. Redes PakBus 2) Neighbor List Se puede generar una lista de acceptable neighbors, donde el dispositivo PakBus espera or de ellos a intervalos predefinidos (el Verify Interval). Si no los oye en ese intervalo, intentar contactar con ellos por s mismo. Ignorar los dispositivos que oye pero que no estn en esa lista, excepto si la PakBus address es >= 4000. Los hellos de dispositivos con PakBus addresses >=4000 se aceptan automticamente como neighbors. Beaconing Un dispositivo PakBus puede transmitir un beacon, y si cualquier dispositivo responde, incluye sus direcciones como un neighbor y lo aade a la routing table.
3)
Los dispositivos PakBus tienen tambin la capacidad de un-discover entre ellos. Cuando un neighbor no responde nunca ms, los dispositivos de la red pueden determinar eliminarlo de la red. El Communications Verification Interval (CVI) o Verify Interval es el intervalo de tiempo que un dispositivo PakBus usa para determinar cuando es hora de enviar un mensaje hello a un neighbor para ver si todava responde y mantiene como neighbor. Bajo condiciones de comunicacin normales, los dispositivos PakBus no necesitan enviar mensajes hello en el CVI. Los CR1000 comparten CVIs durante los hello-exchanges. Cuando un CVI expira, el CR1000 iniciar hasta 4 Hello messages que intentarn re-establecer contacto con el neighbor. Esos mensajes en el CR1000 son enviados a intervalos aleatorios de 2 a 12 segundos. Si la comunicacin fuera invlida despus de los 4 intentos, se quita el neighbor.
14-11
En la pantalla Setup de LoggerNet, haga clic en Options | LoggerNet PakBus Settings. Cambie la PakBus Address de su PC en funcin de su localizacin en la clase. Asignacin de las PakBus Address de LoggerNet server 101 105 109 Parte frontal de la clase 102 Instructor 103 106 107 110 111 104 Not Used 108 112
14-12
14.11 Instrucciones
Un datalogger PakBus puede contener instrucciones en su programa que enve mensajes a otros dispositivos PakBus. Esos dispositivos pasan a ser neighbors. Las comunicaciones datalogger a datalogger son directas con los dataloggers PakBus. Algunas de las instrucciones para transferir informacin entre dataloggers son GetVariable, SendData, SendGetVariables, SendVariables, y SendTableDef.
En el PakBus Graph, selecciones su CR1000, haga clic derecho del ratn para modificar los parmetros. Ajuste el CVI (Verify SDC7) a 25 segundos. Modifique su programa blinkyourname.cr1 para enviar y recibir variables a/de su tabla de neighbor: 1) Enve una variable Toggle y el real time, 2) Reciba una variable Toggle y el real time, y 3) Encienda un LED basado en el estado de la variable Toggle recibida. La instruccin RealTime llena un array con los valores de la hora actual del reloj del datalogger, en el siguiente orden: (1) ao, (2) mes, (3) da del mes, (4) hora del da, (5) minutos, (6) segundos, (7) microsegundos, (8) da de la semana (1-7; domingo = 1), y (9) da del ao. El array destino se debe dimensionar a 9. La hora devuelta es la hora del reloj del datalogger al inicio del scan en que se ejecuta la instruccin RealTime. Aada las siguientes instrucciones: Public Result(2) Public SendToggle as Boolean Public SendTime(9) Public RxToggle as Boolean Public RxTime(6) 'Cargar hora en array SendTime RealTime SendTime
14-13
Seccin 14. Redes PakBus 'Control remoto del LED en Port2, RxToggle es recibido del datalogger remoto If RxToggle=true Then PortSet (2,1) Else PortSet (2,0) EndIf 'enviar variable al datalogger PakBus remoto SendVariables (Result(1),-ComSDC7,0,2,0000,0,"Public","RxToggle",SendToggle,1) SendVariables (Result(2),-ComSDC7,0,2,0000,0,"Public","RxTime",SendTime,6) Esta es la address del neighbor con el que intercambia variables. El PakBus Graph debera ser algo parecido a:
Desconecte
la
alimentacin
un
CR1000.
Que
ocurre?
En aproximadamente 73 segundos (25 segundos + 4*12 segundos) la red PakBus descubrir que se ha perdido ese datalogger y lo quitar. Esto puede observarse en el PakBus Graph. Los 4 * 12 segundos es el mximo tiempo en un intento para re-establecer comunicaciones de los Hello messages espaciados aleatoriamente. En el CR1000, estos mensajes se envan a intervalos aleatorios de 2 a 12 segundos. Conecte la alimentacin a los CR1000. Que ocurre?
In aproximadamente 5 segundos (el scan interval de su programa) la red PakBus descubrir ese datalogger y lo aadir. Mire la Routing Table. En el PakBus Graph seleccione su CR1000, haga clic en botn derecho del ratn y Show Settings. Vaya hacia abajo de la lista de Routes. Debera parecerse a: (4, 2, 2, 1000) (4, 102, 2, 6000)
14-14
Seccin 14. Redes PakBus Esta es una informacin de slo lectura que muestra las routes que eran conocidas por el CR1000 en el momento que ello fue ledo. La sintaxis es: (Port Number, PakBus Address, Via Neighbor Address, Response Time). Port Number es el cdigo numrico utilizado por el router. Code 1 2 3 4 5 6 7 8 9 Description RS232 port of the datalogger Datalogger's CS I/O port; modem enabled Datalogger's CS I/O port; COM 310 modem Datalogger's CS I/O port; SDC7 Datalogger's CS I/O port; SDC8 Datalogger's COM1 - control ports 1 & 2 Datalogger's COM2 - control ports 3 & 4 Datalogger's COM3 - control ports 5 & 6 Datalogger's COM4 - control ports 7 & 8
PakBus Address especifica la address que la ruta va a alcanzar. Via Neighbor Address especifica la address del neighbor/router que se usar para enviar mensajes en esta route. Si la route es para un neighbor, este valor ser el mismo que la address. Response Time es la cantidad de tiempo en mseg permitido para la route. Pasando a palabras las CR1000 routing tables de arriba: (4, 2, 2, 1000) - El CR1000 puede comunicar va SDC7 con Address 2, y el CR1000 y Address 2 son neighbors. La comunicacin con este dispositivo tardar aproximadamente 1000 ms. (4, 102, 2, 6000) El CR1000 puede comunicar va SDC7 con Address 102 a travs de Address 2 el cual es un router. La comunicacin con este dispositivo tardar aproximadamente 6000 ms.
14-15
Seccin 14. Redes PakBus BeginProg Scan (1,Sec,3,0) PanelTemp (Temp,250) IF TimeIntoInterval (0,1,Min) Then SendData (ComRS232,0,4094,Table1) EndIf CallTable (Table1) NextScan EndProg
14-16
Seccin 14. Redes PakBus Este parmetro tambin est disponible en el Show Settings del PakBus Graph. La sintaxis para este parmetro es: (rango inicio, rango final). Por tanto, para entrar neighbors potenciales con direcciones 2 y 5 la sintaxis es (2,2) (5,5).
En el siguiente PakBus Graph, el CR1000 con Address 2 design 3 y 5 como neighbors. Parece como si [2] est actuando como un router, pero haciendo clic en varios nodos nos mostrar que no lo es. El camino muestra que es desde 105 a travs de 5 a 2, o desde 103 a travs de 3 a 2.
14-17
Seccin 14. Redes PakBus Ahora que la red sabe de esos sitios, deben ser aadidos al mapa de red de LoggerNet mediante las pantallas EZSetup o Setup. La pantalla Setup dispone de una herramienta para aadir dispositivos al mapa de red. La pestaa PakBus Nodes de PakBus Port muestra todos los dispositivos PakBus encontrados en la red que no estn mostrados todava en el mapa de red. En Setup seleccione PakBus port, seleccione la pestaa PakBus Nodes. Seleccione un Node y haga clic en el botn Get Device Type. Una vez es mostrado el tipo de dispositivo, haga clic en el botn Add Device.
Note que tal como los dispositivos se aaden al mapa de red, el mapa permanece plano al contrario de rbol. Si construye el mapa con dispositivos remotos reconocidos como hijo del dispositivo previo, es una configuracin tipo rbol.
Mapa plano
Mapa rbol
14-18
Seccin 14. Redes PakBus La configuracin que escoja (plano o rbol) establece la diferencia en trminos de cmo son producidas las static routes de LoggerNet. Cuando la configuracin es de rbol, y se est usando una static route, LoggerNet enrutar va un dispositivo padre hacia el dispositivo hijo. Las static routes solo gobiernan el primer hop en redes PakBus, por tanto es pequea la diferencia entre el mapa plano y rbol. Una vez que una dynamic route ha sido establecida, LoggerNet utiliza esta preferentemente en lugar de la static route.
14.13 Beaconing
Mediante el PakBus Graph, borre los Neighbors. Ponga los Beacon Intervals del RS-232 y SDC7 de su CR1000 a 10 (segundos).
14-19
Seccin 14. Redes PakBus Si un dispositivo PakBus est beaconing el CVI es, por defecto, 2.5 veces el beacon interval. Poniendo el CVI a un valor mayor que 2.5 veces el beacon interval, har de este el valor del CVI. Para un CR1000 con beacon interval de 10 segundos, su CVI ser de 25 segundos. Ahora el PakBus Graph debera ser algo similar a:
Ahora la routing list ser: (4, 2, 2, 1000) (4, 102, 2, 6000) (4, 5, 5, 1000) (4, 4, 4, 1000) (1, 103, 103, 5000) (4, 105, 5, 5000) (4, 104, 4, 6000)
14-20
15-1
15-2
Seccin 15. Conceptos Programacin Avanzada Ntese que la instruccin CallTable (Event) debe estar en el programa principal.
15-3
Seccin 15. Conceptos Programacin Avanzada variable array de la cual recoger datos. Ser diferente a 1 cuando el registro haya sido generado por output instructions que incluyeran repetitions. Esto se puede usar para copiar el valor de la tabla Status a una variable definida por el usuario. Por Ej. SrlNum = Status.SerialNumber(1,1) donde SrlNum es una variable Public declarada previamente. Vea el programa EX-Status.CR1 en el Apndice A. TableName.EventCount accede al nmero de veces que se han almacenado datos en una DataTable. Para que EventCount funcione, la instruccin DataEvent debe aparecer en la declaracin DataTable. El evento se registra en el datalogger despus que DataEvent ha finalizado, y el valor especificado por el parmetro RecAfter se ha cumplido. Ejemplo: HowMany = Event.EventCount(1,1) donde HowMany es una variable public. TableName.EventEnd se usa para determinar cuando se ha enviado el ltimo registro de un evento a la DataTable. TableName.Output se usa para determinar si se escribieron datos en la DataTable la ltima vez que la DataTable fue llamada. TableName.Record devuelve el nmero de registro del n records back. TableName.Tablefull devuelve 1 o 0 para indicar si una tabla fill and stop est llena o si una tabla ring-mode ha empezado a sobrescribir los datos ms antiguos. TableName.TableSize devuelve el tamao dimensionado, en nmero de registros, de la DataTable seleccionada. TableName.TimeStamp(m,n) devuelve el tiempo, en microsegundos, dentro del intervalo especificado por m, del time stamp del registro, n records ago.
15-4
Seccin 15. Conceptos Programacin Avanzada Para convertir diez temperaturas de una variable array de C a F, use un bucle For Next. En la declaracin de variables tendramos: Public TCTemp (10) For I=1 to 10 TCTemp(I)=TCTemp(I)*1.8+32 Next I Hay muchas instrucciones que permiten el uso de repetitions. Para usar repetitions con un valor superior a 1, las variables afectadas deben ser declaradas como arrays. Los arrays se pueden usar como factores de calibracin de los sensores. Cuando variables tipo array se usan como el multiplier y offset en medidas que utilizan repetitions, la instruccin automticamente incrementar los arrays del multiplier y offset conforme incrementa los canales. Nota: para usar esta capacidad debe empezar con elemento nmero 1. Esto permite a una nica instruccin de medida medir una serie de sensores con calibraciones individuales, aplicando los factores de calibracin correctos a cada sensor. Si el multiplier y offset no son arrays, se usar el mismo en cada repetition. Declarar variables tipo arrays: Public Pressure (3) Dim Mult (3), Offset (3) 'Factores de calibracin: Mult(1)=0.123 : Offset(1)= 0.23 Mult(2)=0.115 : Offset(2)= 0.234 Mult(3)=0.114 : Offset(3)= 0.224 Nota: en la misma lnea se pueden declarar mltiples sentencias; separadas por (:), como se muestra arriba. Aplicar multipliers y offsets: VoltSE(Pressure(),3,mV2500,1,False,0,100,Mult(),Offset()) Nota: cuando el elemento de un array no est especficamente identificado, con (), se asume como (1). Pressure() es lo mismo que Pressure(1) y lo mismo que Pressure. Cuando se usan repetitions en una instruccin, puede especificar un elemento distinto a (1) como punto de inicio, pero slo para destination. Para escribir Pressure(5) a (7): VoltSE(Pressure(5),3,mV2500,1,False,0,100,Mult,Offset) se aplicar el mismo multiplier y offset a las 3 medidas.
15-5
15-6
Seccin 15. Conceptos Programacin Avanzada Hay casos en que un Scan que nunca se ejecute sea til. Por ejemplo para desactivar la background calibration (para velocidad) el usuario puede crear un scan que incluya la instruccin Calibrate. El CR1000 asume que esto significa que el usuario quiere controlar cuando llevar a cabo la calibration. Es responsabilidad del usuario si a ese scan realmente se hace o no.
15.7 Subrutinas
Se pueden usar subrutinas en medidas, procesos, o series de clculos que requieran ser repetidos varias veces dentro del programa. La subrutina se puede llamar cuando se necesite evitando tener que repetir conjuntos de instrucciones. Sub otras instrucciones optional ExitSub otras instrucciones EndSub Una subrutina es un procedimiento independiente que es llamado por el programa principal con la sentencia Call. Una subrutina puede tomar variables, ejecutar un conjunto de instrucciones, y cambiar el valor de sus variables. Todas las subrutinas deben ser definidas en el rea de declaraciones del programa (antes de la sentencia BeginProg). Nota: las lneas de programa en una subrutina no pueden estar dentro del cdigo de otra subrutina; sin embargo, una subrutina puede ser llamada por otra subrutina. Si una subrutina llama a otra, la segunda subrutina debe estar colocada antes de la que le llama. Las subrutinas no pueden ser usadas en expresiones. Cree una subrutina para convertir de C a F las lecturas de termopares. Guarde los datos en C en una tabla y los datos en F en otra tabla. Vea el programa EX-Subroutine.CR1 en el Apndice A.
La instruccin SerialOut se utiliza para transmitir una cadena a travs de uno de los puertos de comunicaciones del datalogger.
15-7
Seccin 15. Conceptos Programacin Avanzada La instruccin SerialIn configura el puerto de comunicaciones para la recepcin de de datos serie RS232. El parmetro destination especifica la variable donde los datos entrantes sern almacenados. La variable debe ser declarada como string. La instruccin SplitStr devuelve un array de cadenas o nmeros a partir de un search string (cadena de bsqueda). Los parmetros FilterString y SplitOption ayudan a definir el array devuelto por la instruccin SplitStr. El programa EX-Serial.CR1 del Apndice A, enva varias cadenas de un puerto COM a otro y luego los separa en varias variables.
15-8