You are on page 1of 114

Manual Curso CR1000 / LoggerNet

Traduccin (Febrero 2006): Campbell Scientific Spain Rev: 2/05

Seccin 1. Hardware CR1000.....................................................1-1


1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 Cartucho del CR1000............................................................................ 1-1 Panel de conexiones.............................................................................. 1-1 Batera de respaldo................................................................................ 1-1 Fuente de alimentacin ......................................................................... 1-1 Sensores Analgicos ............................................................................. 1-3 Sensor conectado a canal #2 Single-Ended........................................... 1-4 Sensor conectado a canal #1 Diferencial............................................... 1-4 Sensores tipo puente ............................................................................. 1-5 Potencimetro de una veleta conectado al canal excitacin #1............. 1-5 Sensores salida analgica a 2, 3, y 4 hilos. ........................................... 1-6 Sensores tipo pulsos.............................................................................. 1-7 Anemmetro conectado a canal #1 de pulsos ....................................... 1-7 Tipos de entradas de pulsos................................................................... 1-7 Puertos digitales I/O.............................................................................. 1-7 Puertos digitales I/O usados para controlar/monitorizar bomba ........... 1-8 Sensores RS-232 ................................................................................... 1-8

Seccin 2. Especificaciones ......................................................2-1


2.1 2.2 2.3 2.4 2.5 2.6 Precisin ............................................................................................... 2-1 Resolucin ............................................................................................ 2-1 Repetibilidad......................................................................................... 2-2 Histresis............................................................................................... 2-2 Linealidad ............................................................................................. 2-3 Especificaciones ................................................................................... 2-3

Seccin 3. Memoria del CR1000 ................................................3-1


3.1 Memoria del CR1000............................................................................ 3-1 3.2 Tablas de datos ..................................................................................... 3-1

Seccin 4. Generador de programas Short Cut .......................4-1


4.1 Programacin del CR1000.................................................................... 4-1 4.2 Short Cut............................................................................................... 4-1 4.3 Ejercicio 1............................................................................................. 4-1

Seccin 5. LoggerNet .................................................................5-1


5.1 5.2 5.3 5.4 5.5 5.6 5.7 LoggerNet ............................................................................................. 5-1 Barra de aplicaciones LoggerNet.......................................................... 5-1 EZSetup ................................................................................................ 5-2 Pantalla Connect ................................................................................... 5-3 Grficos evolucin................................................................................ 5-3 View...................................................................................................... 5-4 Otras caractersticas .............................................................................. 5-4

Seccin 6. Introduccin a la programacin con CRBasic.......6-1


6.1 CRBasic ................................................................................................ 6-1 6.2 Plantilla ................................................................................................. 6-1 6.3 Editor CRBasic ..................................................................................... 6-2 6.4 Ayuda On-line ...................................................................................... 6-3 6.5 Aadiendo comentarios ......................................................................... 6-3 6.6 Programa tpico de CR1000.................................................................. 6-4 6.6.1 Declaraciones de variables .......................................................... 6-4 6.6.2 Tablas de datos (data tables) ....................................................... 6-6 6.6.3 Declarar subrutinas ..................................................................... 6-7 I

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 7. Tipos de datos y formatos ...................................... 7-1


7.1 7.2 7.3 7.4 7.5 7.6 Descriptores de variables ...................................................................... 7-1 Almacenamiento de datos ..................................................................... 7-3 Recogida de datos ................................................................................. 7-4 Not-A-Number (NAN) e Infinity (INF) ................................................ 7-7 Recogida personalizada......................................................................... 7-7 Resetear tablas....................................................................................... 7-9

Seccin 8. Detalle de las instrucciones.................................... 8-1


8.1 Categoras de las instrucciones.............................................................. 8-1 8.2 Personalizando CRBasic ....................................................................... 8-2 8.3 Parmetros de las instrucciones............................................................. 8-2 8.3.1 Ejemplo de instruccin de medida................................................ 8-3 8.3.2 Ejemplo de instruccin de proceso de salida (output processing) 8-8 8.4 Medidas con puente de resistencias....................................................... 8-9 Ejemplo de una veleta potenciomtrica ................................................ 8-10 8.5 Cambio de los valores por defecto en los parmetros ......................... 8-11

Seccin 9. Programacin para control ...................................... 9-1


9.1 Representacin de los nmeros .............................................................. 9-1 9.2 Expresiones matemticas ...................................................................... 9-1 9.3 True y False........................................................................................... 9-2 9.4 Puertos de control.................................................................................. 9-3 9.5 Tabla Status........................................................................................... 9-4

Seccin 10. Recogida de datos automatizada. ...................... 10-1


10.1 10.2 10.3 10.4 Recogida programada (Scheduled Collection) .................................. 10-1 Status................................................................................................. 10-3 Status Log Tool ................................................................................. 10-4 Integridad de los datos....................................................................... 10-5

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

Seccin 13. Ejercicio Exhaustivo............................................ 13-1


13.1 Manuales de los sensores .................................................................. 13-1 13.2 Usando las especificaciones del sensor ............................................. 13-1

II

Seccin 14. Redes PakBus ................................................... 14-1


14.1 Introduccin...................................................................................... 14-1 14.2 Terminologa PakBus ....................................................................... 14-1 14.3 Herramientas PakBus........................................................................ 14-2 14.3.1 Device Configuration Utility................................................... 14-2 14.3.2 PakBus Graph ......................................................................... 14-2 14.4 Creacin de una red .......................................................................... 14-3 14.5 Configurar la PakBus Address del CR1000...................................... 14-5 14.6 Seguridad en el CR1000 ................................................................... 14-6 14.7 LoggerNet Setup ............................................................................... 14-8 14.8 Ver la red con PakBus Graph............................................................ 14-9 14.9 Discovery y Un-Discovery.......................................................... 14-10 14.10 PakBus Ardes de LoggerNet......................................................... 14-11 14.11 Instrucciones ................................................................................. 14-13 14.11.1 Instruccin SendVariables .................................................. 14-13 14.11.2 Instruccin SendData .......................................................... 14-15 14.12 Neighbor List ................................................................................ 14-16 14.13 Beaconing ..................................................................................... 14-19

Seccin 15. Conceptos Programacin Avanzada ..................15-1


15.1 Tipo Parmetros en una Instruccin.................................................. 15-1 15.2 Modificadores de la DataTable ......................................................... 15-2 15.2.1 Instruccin OpenInterval......................................................... 15-2 15.2.2. Instruccin DataEvent............................................................ 15-2 15.2.3. Instruccin CardOut ............................................................... 15-3 15.3 Acceso a Datos y Propiedades .......................................................... 15-3 15.4 Notacin Array ................................................................................. 15-4 15.5 Instruccin SubScan ......................................................................... 15-6 15.6 Instrucciones mltiples ScanNextScan ......................................... 15-6 15.7 Subrutinas ......................................................................................... 15-7 15.8 Instrucciones datos Serie RS232....................................................... 15-7

III

Seccin 1. Hardware CR1000


1.1 Cartucho del CR1000
El CR1000 est montado dentro de un cartucho hermtico, pequeo y muy robusto. Tiene un puerto RS-232 y un puerto CS I/O.

1.2 Panel de conexiones


El datalogger se conecta en un panel de conexiones provisto de terminales para conexin de los sensores, la alimentacin elctrica y perifricos para comunicaciones; as mismo, protecciones contra descargas elctricas.

1.3 Batera de respaldo


Una batera de litio salvaguarda el reloj, programas y memoria de datos, en caso que el datalogger pierda la alimentacin elctrica.

1.4 Fuente de alimentacin


El datalogger se puede alimentar por cualquier fuente de 12Vdc. El rango permitido es de 9.6 a 16 voltios.

1-1

Seccin 1. Hardware CR1000

Entradas Analgicas Voltaje VoltDiff VoltSE Termopar TCDiff TCSE Puentes de medida (usa Ex) BrFull BrFull6W BrHalf BrHalf3W BrHalf4W Otras PanelTemp PeriodAvg AM25T

Salidas Excitacin (Ex) Excite BrFull BrFull6w BrHalf BrHalf3W BrHalf4W

Tierra analgica Toma de tierra RS-232 CS I/O DSP4 (Tablas de datos y salida) Entrada Alimentaci
MADEINUSA CAUTION DCONLY G 12V POWERIN

Entradas Pulsos PulseCount PulseCountReset

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

5V Salida 12V conmutable SW-12 PortSet SW12

12 V

Conexiones SDM CS7500 CSAT3 SDMINT8 SDMSpeed SDMTrigger

Control I/O PortGet PortSet ReadIO TimerIO WriteIO SDI-12

Tierra Alimentacin (G)

Puerto para Perifricos CardOut (Tablas de datos y salida)

1-2

Seccin 1. Hardware CR1000

1.5 Sensores Analgicos


Los sensores analgicos se conectan en los terminales analgicos. Los terminales analgicos se pueden configurar tanto en single-ended (medida respecto a tierra) como en diferencial (medida respecto a otro canal de entrada). Los canales analgicos se pueden configurar individualmente; hay 8 canales diferenciales o 16 canales single ended. Canal Diferencial 1H 1L 2H 2L 3H 3L 4H 4L 5H 5L 6H 6L 7H 7L 8H 8L Canal Single-Ended 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

1-3

Seccin 1. Hardware CR1000

Sensor conectado a canal #2 Single-Ended


4

2
H 3

+
L

Sensor

DIFF SE

Sensor conectado a canal #1 Diferencial


4 L H

2 L

Sensor
H

+
DIFF SE
1-4

Seccin 1. Hardware CR1000

1.6 Sensores tipo puente


Los sensores tipo puente cambian el valor de la resistencia respecto al cambio medioambiental. El datalogger suministra un voltaje de excitacin preciso a travs de los terminales de excitacin y la salida de los sensores es medida en los terminales analgicos.

Potencimetro de una veleta conectado al canal excitacin #1


EX1 8 7 SE

4
DIFF H

1-5

Seccin 1. Hardware CR1000

Sensores salida analgica a 2, 3, y 4 hilos.


Number of Wires from Sensor 2 Measurement Type Single-Ended or Differential
+ -

Examples
Termopares Thermocouples Termopilas Thermopiles 4-20 mA con res. shunt 4-20ma w/shunt

Puente completo 3-hilos Single-Ended Vin Vi n Vout Vou t


AG

Potencimetros Potentiometers Veletas Wind Vanes Termistores Thermisters

Puente complete 4-hilos Differential Vin Vin Vout ++ Vout

Presin Pressure Galgas extensiomtricas o Strain Gages or PRTs en puente completo PRT's in full Bridge

Vout -Vout

AG

Vin = canal de excitacin Vout = canal analgico

1-6

Seccin 1. Hardware CR1000

1.7 Sensores tipo pulsos


Los sensores tipo pulsos se conectan en los terminales tipo pulso. El datalogger puede medir cierre de contactos, seales AC, o pulsos digitales (0 a 5Vdc).

Los sensores en que hay que hacer promediado de periodos (frecuencia) Period Averaging se conectan en los canales analgicos single-ended.

Anemmetro conectado a canal #1 de pulsos


P2 P1

Sensor

Tipos de entradas de pulsos


5V 0V SWITCH CLOSURE HIGH FREQUENCY PULSE

EX1
0V

LOW LEVEL AC

1.8 Puertos digitales I/O


El CR1000 tiene 8 puertos I/O configurables bajo control de programa, tanto entradas digitales como salidas de control. Estos puertos son multifuncionales e incluyen: determinacin tiempos entre flancos, interrupciones para activacin de dispositivos, conteo de cierre de contactos, conteo de pulsos de alta frecuencia, comunicaciones asncronas RS232, comunicaciones SDI-12 y comunicaciones SDM.

1-7

Seccin 1. Hardware CR1000

Puertos digitales I/O usados para controlar/monitorizar bomba


110 VAC
CR1000 CR10

C1

ACL1 Line Monitor

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.9 Sensores RS-232


Los sensores RS-232 pueden conectarse tanto al conector RS-232 como en los puertos digitales I/O.

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

100.0 100.1 100.2

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

Seccin 3. Memoria del CR1000


3.1 Memoria del CR1000
El CR1000 estndar dispone de 2 Mbytes de SRAM, con la opcin de 4 Mbytes. Para el almacenamiento de tablas de datos estn disponibles aproximadamente 1400 Kbytes (1.4Mb) de memoria. El resto de la memoria se utiliza para los programas de usuario y comunicaciones. Adicionalmente, se pueden guardar tablas de datos opcionalmente en una tarjeta Compact Flash y su mdulo. La memoria SRAM est salvaguardada por una pila interna; por tanto, datos y programas permanecen en la memoria aun cuando el CR1000 pierda la alimentacin elctrica.

3.2 Tablas de datos


Los datos se almacenan en formato tabla en la memoria SRAM; las tablas se borran cuando se carga y se ejecuta un programa.

3-1

Seccin 3. Memoria del CR1000

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

Seccin 4. Generador de programas Short Cut


4.1 Programacin del CR1000
Para que el datalogger pueda tomar medidas o almacenar datos se debe generar un programa para el CR1000. Hay varias formas de escribir un programa para CR1000. La ms simple es usar el generador de programas Short Cut. Para una programacin ms avanzada utilizaremos el editor CRBasic.

4.2 Short Cut


Short Cut es una aplicacin simple para el PC que genera programas de datalogger, pudiendo escoger los sensores, intervalos de integracin de datos y clculos a realizar. Short Cut est basado en mens conducidos, y permite crear el programa en cuatro pasos. Proporciona tambin un diagrama de conexiones de los sensores al datalogger y el fichero .CR1 que hay que cargar al CR1000. Short Cut se puede ejecutar desde la barra principal de programas de LoggerNet o instalarse de forma autnoma.

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.2 Barra de aplicaciones LoggerNet


La barra de aplicaciones LoggerNet es configurable por el usuario.

5-1

Seccin 5. LoggerNet

Utilice Opciones | Configurar Botones para aadir o quitar botones de aplicaciones.

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.4 Pantalla Connect


La pantalla Connect contiene herramientas para inicializar o comprobar el funcionamiento de un datalogger y para recogida manual de datos. La pantalla Connect proporciona comunicaciones en tiempo real con el datalogger. Dispone de utilidades para enviar o recuperar programas de un datalogger, para comprobar o ajustar el reloj, y para obtener informacin del estado del datalogger. Hay ventanas para mostrar datos grfica o numricamente, al igual que la posibilidad de modificar valores de variables y flags. Puede recoger datos manualmente en varios formatos, y comunicarse con el datalogger en modo emulacin terminal. Utilice la pantalla Connect de LoggerNet para monitorizar medidas. Haga clic en Conectar para conectar con el CR1000. Haga clic en Numrico 1, despus en el botn Aadir, y seleccione la tabla Public. Seleccione y arrastre hasta la tabla de monitorizacin numrica. Haga lo mismo con la tabla OneMin. Haga clic en el botn Recoger Ahora, en la seccin Recogida Datos de la pantalla Connect, y fjese en el nombre y la localizacin de los archivos de datos recogidos. El nombre del archivo es, por defecto, nombredeldatalogger_nombredelatabla.dat

5.5 Grficos evolucin


Utilizar la capacidad grfica de LoggerNet dentro de la aplicacin Connect. Los valores recogidos del datalogger se pueden representar en un grfico de lneas en Grficos, dentro de la pantalla Connect. Pueden estar activas hasta tres pantallas de displays grficos. Se pueden visualizar simultneamente hasta doce campos por grfico.

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.7 Otras caractersticas


LoggerNet tiene muchas otras caractersticas que demostraremos y usaremos ms adelante.

5-4

Seccin 6. Introduccin a la programacin con CRBasic


6.1 CRBasic
CRBasic es el editor de programas usado para escribir programas para el CR1000; se puede ejecutar desde la barra de aplicaciones de LoggerNet.

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

Seccin 6. Introduccin a la programacin con CRBasic

6.3 Editor CRBasic


La ventana principal del editor CRBasic est dividida en tres partes para facilitar la creacin y edicin de programas. Las tres partes de la ventana principal de CRBasic Editor son: la ventana de entrada de programa, el panel de instrucciones y el rea de mensajes. En el lado derecho, el panel de instrucciones es una lista con las instrucciones para el CR1000. Las instrucciones se pueden seleccionar de esta lista o se pueden entrar directamente a la izquierda en la ventana de entrada de programa. El rea de mensajes normalmente no est visible hasta que se compila un programa. Aparece en la parte inferior y muestra los resultados de la compilacin junto con cualquier error detectado. El rea de mensajes tambin le dar avisos de posibles errores de sintaxis en el programa. Haciendo doble clic en el error o aviso, se remarcar la lnea de programa que ha generado el error o aviso.

Ventana de entrada de programa

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

Seccin 6. Introduccin a la programacin con CRBasic

6.4 Ayuda On-line


Se puede acceder a la ayuda On-line usando diferentes mtodos; haciendo clic con el botn derecho, con el botn izquierdo, con F1 y F2. Haciendo clic con el botn derecho aparecen las opciones relevantes de la posicin en que se encuentre el cursor. Haciendo clic con el botn derecho o presionando F2 en un parmetro aparecer una lista de valores que pueda tomar el parmetro, variables disponibles, opciones o ayuda. Haciendo clic con el botn izquierdo dentro de un parmetro de la instruccin aparece un comentario indicando de qu trata el parmetro. Pulsando F1 o seleccionando Help aparece ayuda adicional junto con una lista de posibles opciones. Segn avancemos con el ejemplo 2, pruebe de hacer clic con el botn derecho, con F1 y F2 en distintas posiciones del cursor.

6.5 Aadiendo comentarios


Es una buena prctica aadir comentarios en su programa para indicar el autor, funcionalidad del programa, lgica del programa, fechas revisin, etc. A menudo es til poner comentarios en el programa de su datalogger porque cuando usted vuelva a ver el programa en el futuro, sabr que hace cada seccin del programa. Los comentarios se pueden insertar en el programa precediendo el texto con una comilla. Cuando el programa se compila, el compilador del datalogger ignorar todo texto que est precedido de una comilla. Un comentario se puede poner al principio de la lnea o a continuacin de la instruccin. Se pueden convertir varias lneas en comentarios (o lo contrario) seleccionndolas con el cursor, haciendo clic con el botn de la derecha y escogiendo la opcin Comment (o Uncomment) del men. La plantilla por defecto para CR1000 contiene comentarios, e instrucciones comentadas para mostrar ejemplos de sintaxis vlida. Eliminando la comilla que los precede haremos que la lnea pase a ser activa. El editor CRBasic, por defecto, remarca diferentes tipos de elementos en el programa utilizando diferentes estilos de fuente y colores. Los comentarios, nombres de instrucciones y otros elementos de texto tienen cada uno una apariencia diferente, haciendo que el programa sea ms fcil de leer y editar. Usted puede personalizar o deshabilitar completamente la sintaxis cambiando las preferencias de su editor (Options | Editor Preferences | Syntax Highlighting). Elimine y cambie algunas de las comillas para ver como las lneas pasan de comentarios a activas.

6-3

Seccin 6. Introduccin a la programacin con CRBasic

6.6 Programa tpico de CR1000


Un programa tpico de CR1000 contiene: a) Declaracin de variables de programa b) Definiciones de las tablas de datos c) Definiciones de las subrutinas (El uso de subrutinas es opcional) d) Programa(s) incluyendo el scan interval, medidas, procesado, control, y llamadas a las tablas de datos La estructura de un programa CR1000 requiere que las variables y subrutinas se definan antes de ser usadas. La mejor manera de hacerlo es poniendo al principio todas las declaraciones de variables y todas las definiciones de tablas de salida, seguidas de las subrutinas y luego el programa principal. La mayora de los programas no necesitan subrutinas; de forma que generalmente no se usan las definiciones de subrutinas. A continuacin se muestra la distribucin tpica de un programa. La ayuda on-line tiene un ejemplo para cada instruccin para demostrar su uso dentro de un programa. Aparece una ventana de dilogo cuando se aade una instruccin que tenga uno o ms parmetros o cuando se coloca el cursor encima de una instruccin y se hace clic con el botn derecho. Esta ventana de dilogo contiene un campo para cada parmetro de la instruccin. Rellene estos campos y haga clic en el botn Insert (o Alt-I) para pegar la instruccin dentro del programa. Ejercicio 2 Programando con CRBasic Objetivo: Utilice CRBasic para crear un programa similar al que hicimos con SCWin. Mida la temperatura del panel de conexiones del CR1000, la temperatura del aire en grados C con un termopar tipo T, el voltaje de la batera, y almacene la media minutal, la temperatura mxima y mnima del aire y el voltaje mnimo de la batera.

6.6.1 Declaraciones de variables


Declaraciones Haga una lista de variables que se utilizaran para las medidas y los clculos del programa. Las declaraciones de variables incluyen: Public hace la variable, o la variable tipo array, disponible en la tabla Public. Dim declara variables y variables tipo arrays. Const declara constantes para usar en lugar de entradas numricas. Alias asigna un segundo nombre a una variable. Units asigna una etiqueta para identificar las unidades a una variable.

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

Seccin 6. Introduccin a la programacin con CRBasic

6.6.2 Tablas de datos (data tables)


Tablas de datos Definir que datos a almacenar y ms tarde recoger al PC. DataTable DataInterval Optional export data Output Processing EndTable La instruccin DataTable se usa para definir: el nombre, las condiciones de disparo, y tamao de una tabla de salida. La sentencia EndTable designa el fin de la tabla de salida. Todas las instrucciones de salida deben aparecer entre las instrucciones DataTable/EndTable. El nombre de la DataTable puede ser de hasta 8 caracteres de longitud. Debe empezar con una letra y puede contener nmeros y guiones bajos (_); no puede contener espacios. El CRBasic no distingue entre maysculas y minsculas. En un programa para CR1000 se pueden declarar hasta 32 DataTables. Una tabla de datos est formada por filas y columnas. El tamao de la DataTable determina el nmero de registros (o filas) a reservar para esa tabla en la memoria del CR1000. El nmero de valores (o columnas) en la DataTable es determinado por las instrucciones de procesado de salida contenidas en la declaracin de la DataTable. Si se introduce un nmero negativo en el parmetro size de la DataTable, toda la memoria que quede disponible despus de crear tablas de tamao fijo, se destinar a esa tabla. Si se introduce un nmero negativo en varias DataTables en su parmetro size, la memoria disponible se dividir entre las tablas. El datalogger intentar dimensionar la memoria de las tablas de forma que todas ellas se llenen al mismo tiempo. La instruccin DataInterval se usa para configurar el intervalo de tiempo de almacenamiento de datos, basado en el reloj del datalogger. La instruccin DataInterval es opcional. Para usar la memoria del datalogger de la forma ms eficiente, no se guarda la fecha y hora en cada registro generado; se calcula en la recogida de datos al PC. Si se pierde un registro, se genera un lapse, y entonces se guarda la fecha y hora junto al registro. El parmetro lapses de la instruccin DataInterval configura el mximo nmero de lapses a registrar. Las instrucciones CardOut, DSP4, y GOESData son opcionales y se usan para almacenar datos en otro hardware. Las instrucciones de proceso de salida almacenan los resultados de las medidas o valores calculados. Estas instrucciones incluyen: Average, Maximum, Minimum, Sample, StdDev, Totalize, y Wind Vector entre otras.

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.6.3 Declarar subrutinas


Declarar subrutinas El uso de subrutinas es opcional. Las subrutinas son tiles para hacer la misma cosa mltiples veces. Sub otras instrucciones opcional ExitSub otras instrucciones EndSub Una subrutina es un procedimiento a parte que es llamado por el programa principal usando la declaracin Call. Una subrutina puede definir variables, llevar a cavo una serie de instrucciones, y cambiar el valor de sus variables. Discutiremos el uso de subrutinas ms adelante. En el ejercicio 2 no se utilizan subrutinas. Todas las subrutinas deben estar definidas en el rea de declaraciones del programa (antes de la sentencia BeginProg).

6-7

Seccin 6. Introduccin a la programacin con CRBasic

6.6.4 Programa principal


Programa principal Incluir las instrucciones de medida, de proceso y control dentro del cuerpo principal del programa. BeginProg Scan Medidas Proceso Control CallTable NextScan EndProg Todas las instrucciones del programa principal estn entre las sentencias BeginProg y EndProg. Las variables del programa, tablas de datos y subrutinas deben definirse antes del programa principal. Las medidas, procesado, y llamadas a tablas de datos dentro de las instrucciones ScanNextScan determinan la secuencia y temporizacin del programa del datalogger. La instruccin Scan determina con que frecuencia se hacen las medidas que estn dentro de la estructura ScanNextScan, controla la capacidad del buffer, y determina el nmero de veces a hacer el bucle de scan. El scan interval mnimo es de 10 milisegundos; y el mximo es de 30 minutos. La resolucin es de 10 milisegundos. Las instrucciones de medida indican al hardware de medicin realizar una medida y colocar los resultados en una variable o array.

Ejercicio 2 continuacin Configure el scan interval a 1 segundo.

6-8

Seccin 6. Introduccin a la programacin con CRBasic

6.7 Instrucciones de programa


Cada instruccin de programa tiene un nombre clave y parmetros que personalizan cmo ser ejecutada la instruccin. Cada instruccin tiene un nombre clave y una serie de parmetros que contienen la informacin necesaria para completar la medida. Por ejemplo, la instruccin para medir la temperatura del panel de conexiones del CR1000 es: PanelTemp (Dest, Integ) PanelTemp es la palabra clave de la instruccin. Los dos parmetros asociados con PanelTemp son: Destination, el nombre de la variable donde colocar la temperatura; e Integration, el tiempo de integracin de la medida. Para poner esta temperatura en la variable RefTemp (usando un tiempo de integracin de medida de 250 microsegundos) el cdigo es: PanelTemp(RefTemp, 250) El uso de estas instrucciones quedar ms claro conforme vayamos avanzando en los prximos ejercicios. Nota: Las palabras clave son todas las palabras usadas en instrucciones, y mostradas en el panel de instrucciones. Las palabras clave no se pueden declarar como variables. Ejercicio 2 continuacin Medidas: Battery PanelTemp TCDiff CallTable

6.8 Salvar y Compilar (save and compile)


Cuando finalice, guarde y compile para comprobar si hay errores de programa. El CRBasic dispone de un precompilador para el CR1000. Puede no detectar todos los errores. Los que no detecte pueden ser identificados cuando el programa sea enviado al datalogger.

6-9

Seccin 6. Introduccin a la programacin con CRBasic

6.9 Multiplicadores y offsets (multipliers and offsets)


Cada instruccin de medida tiene una salida especfica. Utilice multiplicadores y offsets para cambiar los resultados a unidades de ingeniera u otras unidades. La instruccin TCDiff realiza la medida de un termopar en un canal diferencial y convierte la medida a grados Celsius. Los dos ltimos parmetros de la instruccin son el multiplicador y el offset. En el siguiente ejemplo los resultados son en grados Celsius: TCDiff(AirTemp_C,1,mV2_5C,1,TypeT,PTemp_C,True,0,_60Hz,1,0) Para convertir grados Celsius a grados Fahrenheit hay que multiplicar por 1.8 y sumar 32. En el siguiente ejemplo el resultado es en grados Fahrenheit: TCDiff(AirTemp_F,1,mV2_5C,1,TypeT,PTemp_C,True,0,_60Hz,1.8,32) Ejercicio 2 continuacin Aada una medida adicional de termopar (en el mismo canal) pero saque los resultados en grados Fahrenheit. Declare una nueva variable, AirTemp_F. Modifique la Data Table para incluir la temperatura del aire media en grados F. Guarde y compile. Use la pantalla Connect para enviar el programa revisado al datalogger y vea las variables.

6-10

Seccin 7. Tipos de datos y formatos


Es importante entender los diferentes formatos de datos, rangos, y donde se usan. Hablaremos sobre como se crean y manipulan los datos en el CR1000, sobre como se muestran en LoggerNet y sobre como se graban en un archivo del PC. Tipo de dato FLOAT LONG BOOLEAN STRING IEEE4 FP2 Binary Descripcin IEEE four byte floating point 4 byte signed integer 4 byte signed integer ASCII String IEEE four byte floating point Campbell Scientific floating point Binary Tamao 4 bytes 4 bytes 4 bytes Set by program 4 bytes 2 bytes Rango De 1.8 *10^-38 a 1.7 *10^38 De -2,147,483,648 a +2,147,483,647 -1, 0 Resolucin 24 bits (sobre 7 dgitos) 32 bits Verdadero (-1) o Falso (0) 24 bits (sobre 7 dgitos) 13 bits (sobre 4 dgitos Donde se usa variables, display variables, display variables, display variables, display Clculos internos, salida Salida Internal, output

De 1.8 *10^-38 a 1.7 *10^38 De -7999 a +7999

7.1 Descriptores de variables


La declaracin de variables (usando las declaraciones DIM o PUBLIC) permite un descriptor de tipo opcional, AS, que especifica el tipo de datos. Los tipos de datos son FLOAT, LONG, BOOLEAN, y STRING. El tipo de datos por defecto es FLOAT. AS FLOAT es el tipo de datos por defecto. Si no se especifica explcitamente el tipo de datos con la sentencia AS, entonces se utiliza FLOAT por defecto. Tanto las variables de las medidas como los clculos, se realizan internamente en IEEE 4 byte floating point con algunas operaciones calculadas en doble precisin. Una buena regla es que la resolucin ser mejor de 1 en el sptimo dgito. AS LONG define la variable como 32 bit integer. Hay dos posibles razones para que uno quiera hacer esto: (1) velocidad, dado que el sistema operativo del CR1000 pueden realizar operaciones matemticas con enteros ms rpido que con FLOATs, y (2) resolucin, dado que el LONG tiene 31 bits comparado a los 24 bits del FLOAT. Una buena aplicacin para la sentencia AS LONG es un contador que se espere vaya a ser muy grande.

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

Seccin 7. Tipos de datos y formatos

7.2 Almacenamiento de datos


Los datos se pueden almacenar (grabar) tanto en IEEE4 como en FP2. El formato lo determina la instruccin de programa (output instruction) que graba el dato, por Ej. mnimo, mximo, etc. Mientras que FLOAT (IEEE 4 byte floating point) se utiliza en variables y clculos internos, FP2 es adecuado para la mayora de datos almacenados. El formato Campbell Scientific 2 byte floating point FP2 proporciona 3 o 4 dgitos significativos de resolucin, y requiere la mitad de espacio en memoria que el IEEE4 (2 bytes por valor contra 4 bytes). Resolucin y lmites de rango de datos FP2 Cero 0.000 Magnitud mnima 0.001 Magnitud mxima 7999.

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

Seccin 7. Tipos de datos y formatos

7.3 Recogida de datos


La recogida de datos consiste en copiar datos desde el datalogger a un archivo en el PC. Los datos tanto almacenados internamente en el CR1000 como los recogidos, estn en formato binario. Cuando LoggerNet graba los datos en el archivo del PC puede convertir el formato binario, por ejemplo a ASCII. Cada DataTable recogida utilizando LoggerNet tiene su propio fichero en el PC. LoggerNet puede convertir el formato binario del CR1000 en algo legible (ASCII) cuando almacena los datos en el fichero. Existen cuatro tipos de Formato de salida disponibles con LoggerNet | Setup | Ficheros.

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

Seccin 7. Tipos de datos y formatos


"TOA5","CR1000_on_desk","CR1000","-1","0.0.15","CPU:EX2.CR1","29702","OneMin" "TIMESTAMP","RECORD","AirTemp_C_Avg","AirTemp_C_Max","AirTemp_C_Min","Batt_Volt_Min" "TS","RN","deg C","deg C","deg C","volts" "","","Avg","Max","Min","Min" "2004-05-04 07:28:00",0,24.01,24.02,24.01,13.19 "2004-05-04 07:29:00",1,23.99,24.01,23.97,13.19 "2004-05-04 07:30:00",2,23.96,23.97,23.95,13.19

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

CR1000 1022 CR1000.Std.01 CPU:EX2.CR1 27664 OneMin TS RN AirTemp_C_Avg, AirTemp_C_Max, etc.

Field Units Field Processing

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)

Field Data Optional Field Data Type

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

Seccin 7. Tipos de datos y formatos


"TOACI1","CR1000_on_desk","OneMin" "TMSTAMP","RECNBR","AirTemp_C_Avg","AirTemp_C_Max","AirTemp_C_Min","Batt_Volt_Min" "2004-05-04 08:29:00",10,24.48,24.5,24.46,13.17 "2004-05-04 08:30:00",11,24.47,24.48,24.46,13.17 "2004-05-04 08:31:00",12,24.48,24.5,24.46,13.16 "2004-05-04 08:32:00",13,24.46,24.48,24.45,13.17 "2004-05-04 08:33:00",14,24.48,24.49,24.45,13.17 "2004-05-04 08:34:00",15,24.42,24.45,24.41,13.17 "2004-05-04 08:35:00",16,24.42,24.44,24.41,13.16 "2004-05-04 08:36:00",17,24.42,24.44,24.4,13.17

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.4 Not-A-Number (NAN) e Infinity (INF)


NAN, not-a-number es mostrado y utilizado en valores de medidas que exceden el rango de voltaje del canal. Para valores IEEE4 que excedan el rango numrico permitido se mostrar o grabar INF o INF. Si uno o ms valores medidos estn fuera del rango de voltaje permitido (NAN), se almacenar tambin NAN en clculos que incluyan Average y Total. Las instrucciones Maximum y Minimum hacen caso omiso de valores NAN y devuelven el valor mximo o mnimo de medidas vlidas.

7.5 Recogida personalizada


LoggerNet permite la recogida de datos personalizada utilizando el botn Personalizada de la pantalla Connect. Haciendo clic en el botn Personalizada y conectado al CR1000, le permite recoger datos especficos. Cada tabla se guarda en un archivo independiente en el PC, por lo que habr un archivo por cada tabla que seleccione.

7-7

Seccin 7. Tipos de datos y formatos

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.6 Resetear tablas


Las tablas del datalogger CR1000 se pueden resetear (borrar) a travs de una opcin en la pantalla Recogida personalizada. La funcin Resetear tablas elimina los datos de la tabla seleccionada tanto de la memoria del CR1000 como de la memoria cach de LoggerNet. Asegrese por tanto de que no necesita esos datos o gurdelos previamente.

7-9

Seccin 7. Tipos de datos y formatos

7-10

Seccin 8. Detalle de las instrucciones


8.1 Categoras de las instrucciones
Las instrucciones del datalogger se pueden agrupar en ocho categoras: data tables, declaracin de variables, medidas/control, operadores, salida, procesado matemtico, control, y serie RS232. El panel de instrucciones del CRBasic tiene una lista desplegable con todas las categoras de instrucciones.

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

Seccin 8. Detalles de instruccin

8.2 Personalizando CRBasic


El editor CRBasic Editor se puede personalizar en su aspecto y remarcado de la sintaxis. Las opciones del men CRBasic Editor Options son: Editor Preferences que incluye espaciado y remarcado Instruction Panel Preferences Edit Instruction Categories Font Background Color Wrap Text When Printing Display Last Window Used

8.3 Parmetros de las instrucciones


Cada instruccin tiene parmetros que personalizan como se ejecutar la instruccin. Aparecer en pantalla una ventana dilogo de parmetros cuando se inserte una instruccin en el programa que tenga uno o ms parmetros o cuando el cursor se ponga encima de la instruccin y se presione el botn derecho del ratn. Esta ventana de dilogo contiene un campo para cada parmetro de la instruccin. Es necesario editar estos campos segn convenga y despus hacer clic en Insert para pegar la instruccin al programa.

8-2

Seccin 8. Detalles de instruccin

8.3.1 Ejemplo de instruccin de medida


Debajo tenemos un ejemplo de una ventana de dilogo de parmetros para la instruccin de voltaje diferencial (VoltDiff). La instruccin VoltDiff se usa para hacer una medida de voltaje diferencial en uno o ms canales analgicos.

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

Seccin 8. Detalles de instruccin

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

Sensor cableado en canal 1 Diff

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

8.3.2 Ejemplo de instruccin de proceso de salida (output processing)


A continuacin hay un ejemplo de ventana de parmetros para la instruccin Average. La instruccin Average guarda en la Data Table el valor medio de la variable analizada sobre el intervalo de salida (output interval).

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.

8.4 Medidas con puente de resistencias


Los puentes de medida combinan una excitacin con medidas de voltaje, y se utilizan para medir sensores en que su resistencia vara en funcin del fenmeno que se est midiendo. Los sensores que cambian su resistencia se miden insertndolos en un puente de resistencias. Puede que el sensor incluya el mismo las resistencias del puente, y si no, habr que implementarlo. Los sensores tipo puente requieren un voltaje de excitacin preciso para dar una medida precisa. La excitacin est activa slo durante la medida. La configuracin del sensor y las salidas determinan que instruccin tipo puente utilizar. El CR1000 dispone de cinco instrucciones de medida de puente. Cada instruccin tiene una salida particular. Esta puede ser un voltaje simple (normalmente expresado en mV) o un ratio. Los manuales de sensores de Campbell Scientific indican que instruccin utilizar. Alternativamente, las especificaciones del sensor y las frmulas de clculo pueden sugerir que instruccin utilizar. BrHalf X = result w/mult = 1, offset = 0
X= V1 Vx = Rs Rs + Rf Rs = Rf Rf = X 1 X Rs (1 X ) X

Result units: mV/mV BrHalf3W X = result w/mult = 1, offset = 0


X= 2 V2 V1 VX V1 = Rs Rf Rs = Rf X Rf = Rs / X

Result units: mV/mV BrHalf4W


H L H L

X = result w/mult = 1, offset = 0


X= V2 V1 = Rs Rf

Rs = Rf X Rf = Rs / X

Result units: mV/mV

8-9

Seccin 8. Detalles de instruccin


X1 = X / 1000 + R 3 / ( R 3 + R 4 ) X1 R 1 X1 R2 = 1 X1 R1 = R 2 (1 X 1 )

BrFull

X = result w/mult = 1, offset = 0


X = 1000

H L

R3 V1 R2 = 1000 Vx R3 + R4 R1 + R2

Result units: 1000*V/V OR mV/V BrFull6W


H L H L

X = result w/mult = 1, offset = 0


R V R2 3 X = 1000 2 = 1000 V1 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

Result units: 1000*V/V OR mV/V

Ejemplo de una veleta potenciomtrica


La instruccin BrHalf se utiliza para medir la direccin de viento del sensor 03001 RMYoung Wind Sentry. Con un multiplier de 1 y un offset de 0 el resultado es el ratio del voltaje medido dividido entre el voltaje de excitacin. Especificaciones: potencimetro de 10K Ohm con banda muerta 5 grados entre 355 y 360 grados.

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.5 Cambio de los valores por defecto en los parmetros


Cada instruccin tiene valores por defecto para cada uno de sus parmetros. Por ejemplo, en la casilla de parmetros de la instruccin VoltDiff, el valor por defecto de VoltageRange es mV5000. Si quiere cambiar esto para que cada vez que inserte la instruccin VoltDiff el valor por defecto de VoltageRange sea mV1000, tiene que seleccionar la instruccin en el Panel de Instrucciones y hacer clic en Instruction | Edit Instruction Defaults del men, y hacer los cambios en el cuadro de dilogo.

8-11

Seccin 8. Detalles de instruccin

8-12

Seccin 9. Programacin para control


9.1 Representacin de los nmeros
Hay 4 maneras de representar nmeros en un programa: base 10, notacin cientfica, binario, y hexadecimal.

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.2 Expresiones matemticas


Dentro del cdigo de un programa, se pueden entrar expresiones matemticas de forma algebraica, y as realizar clculos sobre las propias medidas o variables. Las expresiones algebraicas se pueden utilizar en el programa CRBasic para realizar fcilmente clculos en variables. Las expresiones deben seguir las reglas de lgebra estndar, tal como operar primero las funciones dentro de parntesis. Aada una expresin matemtica al ejemplo 3 para convertir la temperatura del aire de grados Celsius a grados Fahrenheit. AirTemp2_F = AirTemp_C*1.8 + 32 Y calcule la diferencia entre la temperatura del aire y la temperatura del panel. DeltaT_C = AirTemp_C PTemp_C Guarde el programa como Ejemplo 4.

9-1

Seccin 9. Programacin para control

9.3 True y False


En la evaluacin de instrucciones condicionales, donde el resultado puede ser True (verdadero) o False (falso). Las palabras true y false son constantes predefinidas en CRBasic. La expresin, X>5, puede ser true o false. El CR1000 evala la condicin, parmetro o expresin y devuelve un nmero; 0 si es false, -1 es true. Las palabras true y false son constantes predefinidas en CRBasic, y pueden ser usadas como tales en su programa. Sin embargo, al describir el estado de un puerto o flan, on u off , o high o low es ms representativo. Cuando utilice una de esas otras palabras es til declararlas como Constants. Una sentencia condicional puede incluir mltiples enlaces and y or. Aada una sentencia condicional para poner un Flag high basado en la diferencia entre las temperaturas del aire y la de referencia. Public Flag(4) AS Boolean Const high = true Const low = false Si DeltaT_C es mayor o igual que 3 entonces poner Flag1 high, sino ponerlo low. 'poner Flag1 high cuando DeltaT_C es >= 3 If DeltaT_C>=3 then Flag(1)=high Else Flag(1)=low EndIf El formato de la estructura de control If...Then que acabamos de ver, es el recomendado porque es ms estructurado y flexible que el formato de una sola lnea (mostrado debajo), y es normalmente ms fcil de leer, mantener, y corregir. Para cerrar el bloque de una estructura de control IfThen se debe utilizar una declaracin EndIf. El formato de una sola lnea de la estructura de control IfThen: If condicin Then declaraciones [Else declaraciones] Este formato a menudo es til en condicionales cortas y simples. En este caso, la declaracin EndIf no es necesaria. If DeltaT_C>=3 Then Flag(1)=high Else Flag(1)=low

9-2

Seccin 9. Programacin para control

9.4 Puertos de control


Los ocho puertos de control se pueden utilizar para controlar dispositivos. Cada uno de los ocho puertos digitales I/O (puertos de control) se pueden configurar como un puerto de salida y ponerlo low o high (0 V low, 5 V high) utilizando la instruccin PortSet. Normalmente se utiliza un puerto de salida digital para actuar sobre un circuito de un rel externo, dado que el puerto por s mismo tiene una capacidad limitada de carga (2.0 mA mnimo a 3.5 V). La instruccin PortSet pondr el puerto especfico en high o low. El primer parmetro indica el puerto de control (1-8) y el segundo el estado (distinto a cero = high, 0 = low) Utilice la instruccin PortSet para activar el Puerto1 cuando Flag 1 sea high. Conecte un LED a C1 (cable rojo en C1, cable negro en G). 'Encender el LED conectado al Puerto1 cuando Flag 1 sea high If Flag(1)=true then PortSet (1,1) ' alternativamente: PortSet (1,high) Else PortSet (1,0) ' alternativamente: PortSet (1,low) EndIf Ejercicio 3 continuacin Declare otra Data Table: cada 5 minutos, mxima y mnima temperatura del aire, mnimo voltaje de batera. Utilice un table size de -1 para maximizar el nmero de registros a almacenar.

9-3

Seccin 9. Programacin para control

9.5 Tabla Status


El CR1000 tiene la tabla Status con un nico registro que contiene informacin actual del datalogger. Se puede tambin, ver y cambiar sus valores a travs de Connect Screen Numeric Monitor y | Tools | Status Table.

9-4

Seccin 9. Programacin para control

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

Seccin 9. Programacin para control This is a blank page.

9-8

Seccin 10. Recogida de datos automatizada.


10.1 Recogida programada (Scheduled Collection)
La recogida de datos consiste en copiar datos del datalogger a un archivo en el PC. Este proceso se puede hacer manualmente a travs de la pantalla Connect de LoggerNet o se puede hacer de forma automtica mediante una recogida programada. LoggerNet debe estar ejecutndose para que la recogida de datos programada se lleve a cabo, pero se puede ejecutar en segundo plano (background). Utilice EZSetup o la pestaa Programacin (Schedule) para configurar LoggerNet para una recogida de datos programada. EZSetup tiene dos pantallas:

10-1

Seccin 10. Recogida de datos automatizada

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

Seccin 10. Recogida de datos automatizada

Tambin se pueden recoger los datos manualmente desde la pantalla Status utilizando el botn Recoger Ahora.

10.3 Status Log Tool


Log tool permite monitorizar las transacciones, comunicaciones, y estado de objetos, igual que el trfico I/O a bajo nivel. Todos los mensajes y trfico I/O de bajo nivel se pueden guardar en archivos log. Los alrchivos log estn limitados en tamao y normalmente se sobrescribirn (vea la ayuda de LoggerNet para ms detalles).

10-4

Seccin 10. Recogida de datos automatizada

10.4 Integridad de los datos


Los punteros de recogida de datos se guardan en el PC; por tanto, mltiples usuarios pueden comunicar con un datalogger y tener sus propios punteros sin interferirse. Conserve los archivos originales de datos recogidos (*.dat) mediante LoggerNet. Si abre y guarda con una hoja de clculo o editor de textos los archivos .dat, puede hacerlos inutilizables a LoggerNet.

10-5

Seccin 10. Recogida de datos automatizada This is a blank page.

10-6

Seccin 11. RTMC Control y Monitorizacin en Tiempo Real


RTMC se utiliza para crear pantallas de presentacin de datos en tiempo real con los datos recogidos de los dataloggers mediante LoggerNet.

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

Seccin 11. RTMC Control y Monitorizacin en Tiempo Real

11-3

Seccin 11. RTMC Control y Monitorizacin en Tiempo Real La pantalla puede tener el siguiente aspecto:

11-4

Seccin 12. Control Ficheros (File Control), Sistemas Operativos y Transformer


12.1 Control Ficheros (File Control)
El CR1000 tiene aproximadamente 95 kbytes de memoria disponible para almacenamiento de programas. Cada nuevo programa enviado al CR1000 queda almacenado hasta que la memoria se llena o los programas se borrar manualmente. Estando conectado al CR1000, seleccione Herramientas | File Control en la pantalla principal de Connect.

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.

12.2 Sistemas Operativos


El sistema operativo del datalogger (SO) es el conjunto de instrucciones y procesos necesarios para que el datalogger haga su trabajo. El sistema operativo del CR1000 est continuamente siendo mejorado, y tal como aparecen nuevas prestaciones, puede necesitar actualizar el SO. Generalmente, los nuevos SO estn disponibles en nuestra Web, en Downloads. Existen dos formas de cargar el SO al CR1000; a) va la aplicacin Connect de LoggerNet, y b) va la aplicacin Device Configuration Utility.

12.2.1 Cargar SO mediante aplicacin Connect de LoggerNet


Dentro del rea de pantalla Programa y Enviar (Send):

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

Seccin 12. Control Ficheros (File Control), Sistemas Operativos y Transformer

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.2.2 Cargar SO mediante Device Configuration Utility


La aplicacin Device Configuration Utility (DevConfig) permite configurar los dispositivos Campbell Scientific. DevConfig permite cargar un Nuevo SO a dispositivos con memoria FLASH, configurar diversos parmetros PakBus en los dataloggers, y configurar perifricos de comunicaciones como el MD485 y RF416. DevConfig solo puede funcionar cuando LoggerNet est apagado, y viceversa. Ejecute DevConfig desde Windows Inicio | Todos los Programas | LoggerNet | Device Configuration Utility.

12-3

Seccin 12. Control Ficheros (File Control), Sistemas Operativos y Transformer

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

Seccin 13. Ejercicio Exhaustivo


13.1 Manuales de los sensores
Los sensores adquiridos a Campbell Scientific se entregan con manuales que incluyen ejemplos de programas para el datalogger, con sus multipliers y offsets para diferentes unidades de ingeniera. Los sensores tienen especificaciones que indican los lmites de la medida, la precisin de la medida, requerimientos de alimentacin, etc. El datalogger desconoce la precisin del sensor, y por tanto podra mostrar una resolucin de la medida irreal genere slo informes de datos con resoluciones que puedan ser soportadas por el datalogger y el sensor. Por ejemplo, la medida de temperatura del sensor de T/HR CS500 no debera ser mostrada a la centsima de grado aun cuando el datalogger puede proporcionar ese nmero. Los manuales de los sensores tambin dan consejos de programacin en caso de tener distancias largas de cable, mantenimiento del sensor, etc. Ejercicio Exhaustivo Parte 1 - Use el manual del sensor de T/HR CS500 para que le ayude a generar un programa para medir T aire en C y HR en intervalos de 1 segundo. Almacene datos cada minuto, incluyendo T aire media y la ltima muestra de HR. Medidas Voltaje batera CS500 T aire en C CS500 HR en % Guardar datos cada 1 minuto: T aire media HR ltima muestra Scan Interval (1 segundo)

13.2 Usando las especificaciones del sensor


Los sensores adquiridos a Campbell Scientific deberan entregarse con su manual, que incluye especificaciones elctricas y gua de conexionado al datalogger. 1. Las veletas son a menudo simples potencimetros el valor total de la resistencia no es relevante, pero la linealidad es crtica. La direccin de viento, como ratio de toda la orientacin posible (0-360 grados) sugiere un puente de medida con una salida tipo ratio y un multiplier apropiado. Puede existir una banda muerta en el sensor.

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

Seccin 14. Redes PakBus


14.1 Introduccin
PakBus es el trmino de Campbell Scientific usado para describir nuestro propio protocolo de comunicaciones por paquetes. Los paquetes de informacin transmitidos entre dispositivos PakBus contienen datos de usuario e informacin administrativa (una cabecera) que los dispositivos con capacidad de enlutar (routers) utilizan para mover los paquetes hasta su ltimo destino. Los mensajes se pueden romper en mensajes ms pequeos, o paquetes, para su transmisin. Los paquetes, cada uno con su cabecera, se transmiten individualmente por la red (network). Los dispositivos PakBus examinan la cabecera y luego tanto quitan la cabecera (en el destino final del paquete) como re-envan el paquete a otro dispositivo PakBus. El dispositivo destino PakBus recompone los paquetes en el orden apropiado. En redes PakBus (PakBus networking), dado que los paquetes son pequeos, los enlaces de comunicacin entre dispositivos PakBus estn nicamente activos por un corto perodo de tiempo durante la transmisin de cada paquete. Mensajes ms largos requiere que se enven una serie de paquetes, pero no que el enlace est dedicado entre la transmisin de cada paquete. Por tanto, otros paquetes (relacionados o no) pueden utilizar virtualmente al mismo tiempo, el mismo enlace de comunicaciones. Los paquetes son enrutados a su destino final por la ruta ms eficiente. Hasta el momento, ms eficiente significa la ruta con menor nmero de dispositivos manejando el paquete. En una red PakBus cada dispositivo que enva, recibe o enruta paquetes, tiene que tener su propia direccin PakBus (PakBus address), nica dentro de su red. Las cabeceras de los paquetes PakBus incluyen no slo el origen y destino, sino tambin la direccin del siguiente dispositivo intermedio que est enrutando el paquete.

14.2 Terminologa PakBus


Neighbors son dispositivos que se pueden comunicar entre ellos directamente (no va router). Cada dispositivo PakBus mantiene su propia Neighbor List. Leaf nodes solo tienen un nico neighbor. No pueden enrutar paquetes; solo pueden enviarlos y recibirlos. El datalogger serie CR200 es siempre un leaf node. Router nodes (tambin llamados routers) pueden tener muchos neighbors. Los routers pasan su neighbor lists a otros routers de la red para construir el routing system.

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.3 Herramientas PakBus


14.3.1 Device Configuration Utility
La aplicacin Device Configuration Utility (DevConfig) ayuda a configurar el hardware de Campbell Scientific. DevConfig permite cargar nuevos sistemas operativos a dispositivos con memoria FLASH, configurar varios parmetros PakBus en dataloggers, y editar parmetros de perifricos de comunicaciones como el MD485 y RF416. Para evitar conflictos en el puerto COM, DevConfig se utiliza cuando LoggerNet est apagado, y viceversa. Ejecute DevConfig desde Windows Inicio | Todos los Programas | LoggerNet | Device Configuration Utility.

14.3.2 PakBus Graph


PakBus Graph es una utilidad de LoggerNet que muestra grficamente los dispositivos y conexiones en red PakBus. En el PakBus graph, LoggerNet server se representa habitualmente con la PakBus address 4094, y cada uno de los dataloggers se mostrarn por su nombre y direccin. Algunos parmetros PakBus son visibles y modificables mediante el PakBus Graph.

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.4 Creacin de una red


Los dataloggers PakBus pueden conectarse a perifricos de comunicaciones mediante los siguientes protocolos: modem enable (ME), concurrent synchronous device communications (CSDC), synchronous device communications (SDC), y RS-232. Adicionalmente, los dispositivos SDC tienen direcciones SDC especficas (0-9). El tipo preferido en comunicaciones PakBus es el CSDC, puesto que utiliza menos recursos de CPU del datalogger que ME. Los dataloggers PakBus no pueden comunicar con dispositivos SDC9. El protocolo de comunicacin (Active Interface) se configura generalmente en el dispositivo (MD485, RF400, NL100 etc.) basado en el dispositivo PakBus a que est conectado (CR1000, etc.) tomando en consideracin cualquier otro dispositivo de comunicacin tambin conectado el dispositivo PakBus. El CR1000 puede tener mltiples dispositivos conectados a el (y comunicar con ellos al mismo tiempo) siempre y cuando usen diferentes Active Interfaces. Puede ser til pensar en un Active Interface como en un puerto de perifrico. El MD485 tiene 3 Ports, 2 de los cuales pueden designarse como Active Interfaces (Active Ports).

14-3

Seccin 14. Redes PakBus

Configuracin final del hardware de la red:


PC

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 Configurar la PakBus Address del CR1000


Cada dispositivo PakBus en una red debe tener una nica PakBus Address. Cada dispositivo PakBus necesita una PakBus Address para que pueda recibir, enviar, o enlutar paquetes PakBus. La PakBus Address por defecto de Loggernet es 4094 y el rango permitido de 1 a 4094. Otros dispositivos PakBus tienen PakBus Addresses por defecto que pueden modificarse. El rango de direcciones es de 1 a 3999. Direcciones PakBus por defecto en Software Campbell Scientific Software (Server) LoggerNet PC400 PC200 PConnect Direccin por defecto 4094 4093 4092 4091

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 Seguridad en el CR1000


El CR1000 dispone de varias formas para activar la seguridad y limitar el acceso a partes especficas del datalogger. Hay disponibles tres niveles de seguridad. Los cdigos vlidos son del 1 a 65535 (0 es sin seguridad). Cada nivel debe tener un cdigo distinto.

14-6

Seccin 14. Redes PakBus

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

Prohibidas todas las comunicaciones

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.7 LoggerNet Setup


En Setup de LoggerNet cambie los ajustes en PakBus Port para permitir comunicaciones en red. Parmetros PakBus Port active casilla PakBus Port Always Open. Maximum baud rate a 115200. Renombre el CR1000 a CR1000_sunombre; por Ej. CR1000_Instructor En la pestaa hardware cambie la PakBus Address para que coincida con la que ha configurado en el CR1000. Guarde los cambios con Guardar o Apply.

14-8

Seccin 14. Redes PakBus

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.

14.8 Ver la red con PakBus Graph


Ejecute PakBus Graph desde la barra de LoggerNet; Herramientas | PakBus Graph.

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

Seccin 14. Redes PakBus

14.9 Discovery y Un-Discovery


Para un enrutado con xito, los dispositivos de la red deben mantener una lista precisa de los enlaces viables disponibles (neighbors). Cuando un neighbor se aade o quita, la red comparte esta informacin con otros routers. Este comportamiento controla el proceso de enrutamiento de la red. Conecte el puerto CS I/O de su CR1000 al puerto CS I/O del MD485. Su vecino (neighbor) se conectar de la misma forma. Los dispositivos PakBus de la red todava no se han descubierto entre ellos, porque no estn buscando. Discovery se realiza con hello-exchanges. Existen tres dispositivos PakBus que pueden iniciar un hello-exchange, y as generar neighbors; si el dispositivo es un router, los neighbors descubiertos sern tambin aadidos a la routing table. 1) Instrucciones Un datalogger PakBus puede tener instrucciones en su programa, que enve mensajes a otros dispositivos PakBus. Con ello, esos dispositivos se convierten en neighbors.

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.10 PakBus Ardes de LoggerNet


La PakBus address por defecto de LoggerNet server es 4094; el rango permitido es de 1 a 4094. Se recomienda dejarla en 4094 a menos que haya mltiples servers en su red. Si hay varios servers en la misma red, deben tener PakBus addresses diferentes. El mismo server, en otro puesto de trabajo; por Ej. un porttil en la oficina y en el campo, deben tener diferentes PakBus address temporalmente. En la mayora de redes tambin es recomendable mantener la PakBus address del server >= 4000. Poniendo las server addresses a valores inferiores a 4000 limitamos los neighbors potenciales a esos especficamente identificados en los Neighbor Filters. Nosotros utilizamos en la clase server PakBus addresses <4000 para de alguna forma tener control de la red.

14-11

Seccin 14. Redes PakBus

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

Guarde los cambios con Guardar o Apply

14-12

Seccin 14. Redes PakBus

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.

14.11.1 Instruccin SendVariables


La instruccin SendVariables se usa en un datalogger para enviar variable(s) a un datalogger remoto. Las variables slo se pueden mandar a las tablas Public o Status del datalogger remoto. El datalogger remoto no necesita declarar ninguna instruccin, tan slo declarar correctamente la variable o array donde recibir los datos. La sintaxis es: SendVariables ( ResultCode, RemotePakBusAddr, Security, TimeOut, RemoteFieldName, VariableToSend, Swath) ComPort, RouterAddr, RemoteTableName,

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.11.2 Instruccin SendData


La instruccin SendData se utiliza para enviar el registro ms reciente de una tabla a un dispositivo PakBus remoto. Esta instruccin se puede usar para enviar datos a un PC con LoggerNet server funcionando. Cuando es recibido, LoggerNet almacenar los datos en un fichero bajo el nombre que se haya definido en Setup. La sintaxis es: SendData (ComPort, RouterAddr, PakBusAddr, DataTable) El siguiente ejemplo usa la instruccin SendData para enviar el registro ms reciente de la Table1 al dispositivo con PakBus ID 4094 una vez por minuto. Si el dispositivo con PakBus ID 4094 es el LoggerNet server, los datos se almacenarn en un fichero del PC. Public Temp DataTable (Table1,True,-1) DataInterval (0,1,Sec,10) Sample (1,Temp,FP2) EndTable

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.12 Neighbor List


Construya la red de cuatro CR1000s. Conecte un cable RS-485 entre dos MD485s. Aada comentarios a las instrucciones SendVariables de sus programas. Cargue el programa revisado al CR1000. Que una persona de la red cambie los parmetros de su CR1000 designando dos neighbors concretos. La forma ms fcil de hacerlo es en Port Settings de Device Configuration Utility.

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

Seccin 15. Conceptos Programacin Avanzada


15.1 Tipo Parmetros en una Instruccin
Los parmetros de una instruccin admiten diferentes tipos de entradas. Pulsando F1 para ayuda en los parmetros de la instruccin, muestra el tipo de entrada requerida; por Ej. Constante, Variable, Array, o Expresin. Un ejemplo de esto es la salida condicional; en la instruccin DataTable la condicin de trigger se puede entrar como una expresin. Modifique el Ejemplo 4 para que incluya una output table condicional. Haga el trigger de la DataTable solo cuando la diferencia de temperatura (DeltaT_C) sea mayor o igual a 3. Antes de la instruccin BeginProg, declare una nueva DataTable: ' Data Table condicional que almacena datos solo cuando Delta T >=3 DataTable (Cond,DeltaT_C>=3,1000) DataInterval (0,1,Min,10) opcional Sample (1,DeltaT_C,FP2) Average (1,AirTemp_C,FP2,0) EndTable La instruccin DataInterval es opcional. Sin ella, los datos se almacenarn en el Scan interval (cuando se cumpla la condicin). Con la instruccin DataInterval crea una condicin and (si DeltaT>=3 and es el minutes exacto, grabar datos). El tamao de la DataTable en condicionales, no debera ser auto-dimensionado; debe especificarse el nmero de registros. Si se usa auto-dimensionado en una data table condicional se asume que la condicin de trigger se cumplir en cada scan, y por tanto reservando una gran parte de la memoria del CR1000 para esa tabla en particular. Nota: la instruccin CallTable Cond no estara en una sentencia condicional. Estara en el cuerpo del programa principal junto con otras instrucciones CallTable. NO DEBE en este caso, poner la instruccin CallTable dentro de una condicin como la siguiente: If DeltaT_C >=3 then CallTable Cond Endif Esto resultara en un procesamiento de salida incorrecto. La instruccin CallTable, debe ser ejecutada en cada scan de programa.

15-1

Seccin 15. Conceptos Programacin Avanzada

15.2 Modificadores de la DataTable


Dentro de una DataTable se pueden usar opcionalmente modificadores del trigger de salida. Hemos usado hasta ahora un output trigger modifier. La instruccin DataInterval se utiliza para grabar los resultados en funcin del tiempo y especifica cada cuanto tiempo la data table es guardada.

15.2.1 Instruccin OpenInterval


La instruccin OpenInterval se usa para modificar que medidas se incluyen en las instrucciones de las series temporales de una DataTable. Cuando esta instruccin se inserta en una declaracin 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 son grabados en una tabla basada en un intervalo de tiempo, slo incluyen medidas del intervalo actual. Despus de cada output interval, la memoria que contiene las medidas de las series temporales, es borrada. Si se pierde un output interval (por que no se han cumplido todos los criterios), la memoria se borra al inicio del siguiente intervalo. Si la instruccin OpenInterval se incluye en la declaracin DataTable, la memoria no se borra. Ello resulta en que todas las medidas se incluyen en las series temporales desde la ltima grabacin de datos (aunque los datos hayan saltado mltiples output intervals). Ejemplo: DataTable(Table1,true,-1) OpenInterval DataInterval(0,1,Min,10) . Instrucciones de salida adicionales

15.2.2. Instruccin DataEvent


Otro modificador output trigger es la instruccin DataEvent. Se usa para iniciar y parar de forma condicional la grabacin de datos en una DataTable. Los eventos trigger permiten especificar cuando el datalogger empieza o termina de grabar datos. Adicionalmente, puede especificarse grabar un nmero de registros antes y/o despus del evento. Nota: Para reducir el tiempo del procesado, la instruccin DataInterval, con al menos 1 lapse, debe siempre preceder la instruccin DataEvent. En el siguiente ejemplo, los datos solo se almacenan cuando la diferencia de temperature (DeltaT_C) es mayor o igual a 3. 'Event Driven Data Table DataTable(Event,True,-1) DataInterval (0,5,Sec,10) DataEvent (0,DeltaT_C>=3,DeltaT_C<3,0) Maximum (1,AirTemp_C,FP2,0,False) Minimum (1,AirTemp_C,FP2,0,False) Sample (1,DeltaT_C, FP2) EndTable

15-2

Seccin 15. Conceptos Programacin Avanzada Ntese que la instruccin CallTable (Event) debe estar en el programa principal.

15.2.3. Instruccin CardOut


El CFM100, Compact Flash Module, es un perifrico opcional que permite expandir la memoria del CR1000. La instruccin CardOut se utiliza para redireccionar los datos a grabar de la tabla a la tarjeta compact flash. La instruccin CardOut debe ser entrada dentro de cada declaracin DataTable que se quieran guardar los datos en la tarjeta CF. 'Event Driven Data Table DataTable(Table1,True,-1) DataInterval (0,1,Min,10) CardOut (0,-1) . Instrucciones de salida adicional

15.3 Acceso a Datos y Propiedades


Los datos almacenados en una tabla, y las propiedades de una tabla, pueden ser accedidos desde programa. El CR1000 dispone de varias formas de acceder a los datos de una DataTable, o de acceder a informacin relacionada con las propiedades de la DataTable. Debido al formato de este cdigo de programa, no estn incluidas en la lista de instrucciones (excepto GetRecord). Para mas detalles ver CRBasic Help | Index and search on DataTable access. La instruccin GetRecord se usa para almacenar el contenido de un registro de una DataTable en una array. El array destino debe ser dimensionado suficientemente grande como para albergar todos los campos (columnas) del registro. El parmetro Records Back indica el nmero de registros que hay que ir hacia atrs, a partir del almacenado ms reciente, para coger el registro (1 record back es el ms reciente). Las propiedades de la DataTable se listan debajo. El formato usado es: Tablename.PropertyName(fieldname index, records back) Donde Tablename es el nombre de la DataTable donde est almacenado el valor deseado. PropertyName es el nombre de la propiedad (listada debajo), con la excepcin de la propiedad FieldName. El fieldname index especifica la variable array de la cual recoger datos. Habitualmente el fieldname index es un 1, otra vez con la excepcin de FieldName. Records back es el nmero (n) de registros hacia atrs que hay que ir en la data table a partir del momento actual (1 es el registro almacenado mas reciente, 2 es el registro almacenado antes del ms reciente). Nota: las DataTable properties pueden usarse en la parte derecha de expresiones. Para incluir una property particular en una output table, debe ponerla igual a una variable declarada previamente. As es, no puede usar el cdigo de nombre de propiedad dentro de una output instruction. Por ejemplo, esto NO ES vlido: Sample (1,Event.EventCount(1,1), FP2). TableName.FieldName accede a los datos de un campo concreto del registro de una DataTable. El formato es: Tablename.FieldName(fieldname index, records back). Donde, fieldname es el nombre del campo (columna) de la tabla. El formato de fieldname es el nombre de la variable, seguido de (_) y tres caracteres sufijos que indican el tipo de output processing, por Ej. AirTemp_C_Max (un Sample no tiene este sufijo de 3 caracteres). El fieldname index especifica la

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 Notacin Array


El uso de la notacin array en la declaracin de variables permite compactar el cdigo de programa para efectuar operaciones en todas las variables del array. En el CR1000 podra haber 2 o 20 medidas de temperatura (u otras). En lugar de tener 20 nombres diferentes, se puede usar una variable array con un nombre y 20 elementos. La temperatura de un termopar la podramos llamar TCTemp. Con un array de 20 elementos (por Ej. TCTemp(20)) los nombres de las temperaturas individuales son TCTemp(1), TCTemp(2), TCTemp(3), ... TCTemp(20).

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

Seccin 15. Conceptos Programacin Avanzada

15.5 Instruccin SubScan


La instruccin SubScan se utiliza para controlar multiplexores. La instruccin SubScan se utiliza para controlar multiplexores o medir algunas entradas analgicas a una velocidad superior que el scan de programa. Las instrucciones SubScan/NextSubScan se ponen dentro de las instrucciones Scan/NextScan de un programa. Sintaxis: SubScan (SubInterval, Units, Count) NextSubScan La instruccin SubScan tiene los siguientes parmetros: El parmetro SubInterval es una constante que designa el intervalo de tiempo entre SubScans. Entre 0 para que no haya retardo entre SubScans. El parmetro Units es la unidad de tiempo a usar en el parmetro SubInterva. Las opciones son: microseconds, milliseconds, y seconds. El parmetro Count es una constante entera que es el nmero de veces que SubScan se ejecutar en cada scan. El nmero mximo es 65,535. Notas: SubScans no puede ser nested o colocada dentro de SlowSequence. Medidas PulseCount o SDM no pueden usarse dentro de SubScan. Cree un programa que use la temperature del panel del CR1000 como referencia, medir 5 termopares tipo T en el mismo CR1000, y 5 termopares tipo T en un AM16/32. Use la notacin array para aplicar los multipliers y offsets. Vea el programa EX-Mux.CR1 del Apndice A.

15.6 Instrucciones mltiples ScanNextScan


Estn permitidas las instrucciones mltiple ScanNextScan. Use una instruccin SlowSequence antes de ScanNextScan que haga (mltiple) scan intervals como en la Table 2. Nota: las DataTables que son llamadas desde SlowSequence se pueden declarar despus de la instruccin SlowSequence. Es posible tener hasta cuatro diferentes SlowSequence scans para medidas en que no es necesaria la velocidad del scan interval principal. Vea el programa EX-Table2.CR1 en el Apndice A. Use mltiple ScanNextScans con un nmero en el parmetro Count. El parmetro Count ajusta el nmero de veces que el bucle ScanNextScan ser ejecutado. Poniendo 0 har el bucle indefinidamente, o hasta que se encuentre la condicin ExitScan. Esto puede usarse en muestreos logartmicos como pump test. Vea el programa EX-log.CR1 y EX-log_subroutine.CR1 en el Apndice A.

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.

15.8 Instrucciones datos Serie RS232


Los puertos COM y RS-232 del CR1000 se pueden utilizar para comunicaciones serie RS232.

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

You might also like