Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cr1000 Loggernet Castellano PDF Free
Cr1000 Loggernet Castellano PDF Free
CR1000 / LoggerNet
Rev: 2/05
Sección 1. Hardware CR1000.....................................................1-1
1.1 Cartucho del CR1000............................................................................ 1-1
1.2 Panel de conexiones.............................................................................. 1-1
1.3 Batería de respaldo................................................................................ 1-1
1.4 Fuente de alimentación ......................................................................... 1-1
1.5 Sensores Analógicos ............................................................................. 1-3
Sensor conectado a canal #2 Single-Ended........................................... 1-4
Sensor conectado a canal #1 Diferencial............................................... 1-4
1.6 Sensores tipo puente ............................................................................. 1-5
Potenciómetro de una veleta conectado al canal excitación #1............. 1-5
Sensores salida analógica a 2, 3, y 4 hilos. ........................................... 1-6
1.7 Sensores tipo pulsos.............................................................................. 1-7
Anemómetro conectado a canal #1 de pulsos ....................................... 1-7
Tipos de entradas de pulsos................................................................... 1-7
1.8 Puertos digitales I/O.............................................................................. 1-7
Puertos digitales I/O usados para controlar/monitorizar bomba ........... 1-8
1.9 Sensores RS-232 ................................................................................... 1-8
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
II
Sección 14. Redes PakBus® ................................................... 14-1
14.1 Introducción...................................................................................... 14-1
14.2 Terminología 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 Creación 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 Instrucción SendVariables .................................................. 14-13
14.11.2 Instrucción SendData .......................................................... 14-15
14.12 Neighbor List ................................................................................ 14-16
14.13 Beaconing ..................................................................................... 14-19
III
Sección 1. Hardware CR1000
1.1 Cartucho del CR1000
El CR1000 está montado dentro de un cartucho hermético, pequeño y muy
robusto. Tiene un puerto RS-232 y un puerto CS I/O.
1-1
Sección 1. Hardware CR1000
Entradas Analógicas
Voltaje
VoltDiff
VoltSE
Termopar
TCDiff Salidas Excitación
TCSE (Ex)
Puentes de medida Excite
(usa Ex) BrFull
BrFull BrFull6w
BrFull6W BrHalf Tierra analógica
BrHalf BrHalf3W
BrHalf3W Toma de tierra
BrHalf4W
BrHalf4W RS-232
Otras
PanelTemp
PeriodAvg CS I/O
Entradas Pulsos
AM25T DSP4 (Tablas de
PulseCount
datos y salida)
PulseCountReset
Entrada
Alimentació
SE 1 2 3 4 5 6 7 8
CR1000 G 12V MADE IN USA
DIFF 1 2 3 4 WIRING PANEL
EX1
P2
P1
H L H L H H H H CAUTION
G
DC ONLY
G 12V
POWER IN
SE 9 10 11 12 13 14 15 16
DIFF 5 6 7 8
EX2
EX3
H L H L H L H L GROUND
G
LUG
RS-232
POWER OUT
COM1 COM2 COM3 COM4
SW-12
Tx Rx Tx Rx Tx Rx Tx Rx CS I/O
12V
12V
C1
C2
C3
C4
C5
C6
C7
C8
5V
G
PERIPHERAL PORT
SN:
SDM
1-2
Sección 1. Hardware CR1000
Canal Canal
Diferencial Single-Ended
1H 1
1L 2
2H 3
2L 4
3H 5
3L 6
4H 7
4L 8
5H 9
5L 10
6H 11
6L 12
7H 13
7L 14
8H 15
8L 16
1-3
Sección 1. Hardware CR1000
L
2
H
3
+
2
L
1 Sensor
1
-
DIFF
SE
L
2
H
3
-
2
Sensor
1
1
+
DIFF
SE
1-4
Sección 1. Hardware CR1000
EX1
8
L
4
7
H
DIFF
SE
1-5
Sección 1. Hardware CR1000
2 Single-Ended or Termopares
Thermocouples
Differential Termopilas
Thermopiles
4-20 mA con
4-20ma res. shunt
w/shunt
+
Vout
Vou t
AG
Vout
Vout+ +
Vout
Vout- -
AG
1-6
Sección 1. Hardware CR1000
Los sensores en que hay que hacer promediado de periodos (frecuencia) Period
Averaging se conectan en los canales analógicos single-ended.
Sensor
EX1
0V
HIGH FREQUENCY PULSE
0V
LOW LEVEL AC
1-7
Sección 1. Hardware CR1000
110 VAC
CR1000
CR10
C1
ACL1
Line Pump
Monitor
G
C2
1-8
Sección 2. Especificaciones
2.1 Precisión
La precisión 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 Resolución
La resolución es el menor incremento detectable en una medida.
Higher Resolution
100 g 101 g 100 g 106.2
2-1
Sección 2. Especificaciones
2.3 Repetibilidad
La repetibilidad es la cantidad de coincidencias entre medidas repetidas para un
mismo valor.
99.9
18 times
100.0
12 times
105.2 100.1
70 times 19 times
2.4 Histéresis
La histéresis es la respuesta retardada de una medida.
Hysteresis
}
100.0
100.1
Reading
Changes
99.9
100 g 100.0
2-2
Sección 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
50 g
100 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.
2-3
Sección 2. Especificaciones
± 16 Vdc máximo
Rango de entrada (mV) Resolución básica (uV) 250 uS Int 50/60 Hz Int
± 5000 1330 385 192
± 2500 667 192 95.9
± 250 66.7 19.2 9.6
± 25 6.7 2.3 1.9
± 7.5 2 0.62 0.58
± 2.5 0.67 0.34 0.19
Precisión
Contadores de pulsos
2-4
Sección 2. Especificaciones
Requerimientos de la alimentación
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
2-5
Sección 2. Especificaciones
2-6
Sección 3. Memoria del CR1000
3.1 Memoria del CR1000
El CR1000 estándar dispone de 2 Mbytes de SRAM, con la opción de 4 Mbytes.
La memoria SRAM está salvaguardada por una pila interna; por tanto, datos y
programas permanecen en la memoria aun cuando el CR1000 pierda la
alimentación eléctrica.
3-1
Sección 3. Memoria del CR1000
3-2
Sección 4. Generador de programas
Short Cut
4.1 Programación 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 más simple es usar el
generador de programas Short Cut. Para una programación más avanzada
utilizaremos el editor CRBasic.
Short Cut está basado en menús conducidos, y permite crear el programa en cuatro
pasos. Proporciona también un diagrama de conexiones de los sensores al
datalogger y el fichero .CR1 que hay que cargar al CR1000.
Shortcut.lnk
4.3 Ejercicio 1
Mediante Short Cut crear un programa que mida sensores y almacene datos.
Paso 1 New/Open
• Program name
• Datalogger type (CR1000)
• Scan interval (1 second)
4-1
Sección 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 según 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
Sección 5. LoggerNet
5.1 LoggerNet
LoggerNet es un exhaustivo paquete informático de soporte para datalogger que
proporciona comunicaciones, edición de programas de datalogger (más complejos
que los que pueda generar ShortCut), procesamiento de datos y visualización.
5-1
Sección 5. LoggerNet
5.3 EZSetup
EZSetup permite con pocos clics configurar las comunicaciones entre un CR1000
y el PC.
Conforme va avanzando por el asistente, verá que cada pantalla contiene campos
que debe completar con la información adecuada a su estación. 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 botón Ayuda.
Una vez completados todos los pasos del asistente, presione el botón Finalizar
para guardar la configuración y volver a la ventana principal de EZSetup. Si desea
cambiar algo en la configuración del datalogger, seleccione ese datalogger de la
ventana principal de EZSetup, y presione el botón Edit. El asistente se abrirá, y
usted podrá avanzar por los pasos usando el botón Next, o ir directamente a una
página en particular del asistente.
5-2
Sección 5. LoggerNet
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.
Envíe el nuevo programa – C:\Campbellsci\SCWin\EX1.CR1 al CR1000
5-3
Sección 5. LoggerNet
5.6 View
La aplicación View de LoggerNet permite visualizar archivos de datos
almacenados y proporciona además posibilidades gráficas limitadas.
5-4
Sección 6. Introducción a la
programación 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
►► 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 están asociados a un tipo específico
de datalogger.
►► Abra la plantilla CR1000. Haga clic en File | New | CR1000 Program File.
6-1
Sección 6. Introducción a la programación con CRBasic
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 matemáticas se
escriben igual a como serían de forma algebraica.
6-2
Sección 6. Introducción a la programación con CRBasic
Pulsando F1 o seleccionando “Help” aparece ayuda adicional junto con una lista
de posibles opciones.
►► Elimine y cambie algunas de las comillas para ver como las líneas pasan de
comentarios a activas.
6-3
Sección 6. Introducción a la programación con CRBasic
Aparece una ventana de diálogo cuando se añade una instrucción que tenga uno o
más parámetros o cuando se coloca el cursor encima de una instrucción y se hace
clic con el botón derecho. Esta ventana de diálogo contiene un campo para cada
parámetro de la instrucción. Rellene estos campos y haga clic en el botón Insert (o
Alt-I) para pegar la instrucción dentro del programa.
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 batería, y almacene la
media minutal, la temperatura máxima y mínima del aire y el voltaje mínimo de la
batería.
6-4
Sección 6. Introducción a la programación 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 monitorización numérica o el display de gráficos. Las variables
declaradas en Dim no se pueden visualizar. Las variables asignadas a un valor fijo
se usan como Constantes. También se pueden crear Alias, que permitirán
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 título de documentación. 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 números y guión bajo (_); no pueden contener
espacios. CRBasic no distingue mayúsculas y minúsculas. Se pueden declarar
varias variables en una sola línea, separándolas por comas. Por ejemplo:
►► Ejercicio 2 continuación
6-5
Sección 6. Introducción a la programación con CRBasic
DataTable
DataInterval
Optional export data
Output Processing
EndTable
Una tabla de datos está formada por filas y columnas. El tamaño de la DataTable
determina el número de registros (o filas) a reservar para esa tabla en la memoria
del CR1000. El número de valores (o columnas) en la DataTable es determinado
por las instrucciones de procesado de salida contenidas en la declaración de la
DataTable.
6-6
Sección 6. Introducción a la programación 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 instrucción CallTable.
Típicamente, los datos de las series temporales (medias, totales, máximos, etc.)
que se graban en una tabla basada en un intervalo, únicamente incluyen medidas
del intervalo actual. Después de cada intervalo de salida (output interval), se borra
la memoria que contenía las medidas de los datos de la serie temporal. Si se pierde
un intervalo de salida (porque no se cumplen los criterios de validación), la
memoria se limpia en el inicio del siguiente intervalo. Si la declaración
DataTable contiene la instrucción 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
múltiples output intervals).
►► Ejercicio 2 continuación
Declare una tabla de datos minutal: temperatura del aire media, máxima y mínima,
voltaje mínimo de batería.
Sub
otras instrucciones
opcional ExitSub
otras instrucciones
EndSub
6-7
Sección 6. Introducción a la programación con CRBasic
BeginProg
Scan
Medidas
Proceso
Control
CallTable
NextScan
EndProg
Todas las instrucciones del programa principal están entre las sentencias
BeginProg y EndProg. Las variables del programa, tablas de datos y subrutinas
deben definirse antes del programa principal.
La instrucción Scan determina con que frecuencia se hacen las medidas que están
dentro de la estructura Scan…NextScan, controla la capacidad del buffer, y
determina el número de veces a hacer el bucle de scan. El scan interval mínimo es
de 10 milisegundos; y el máximo es de 30 minutos. La resolución es de 10
milisegundos.
►► Ejercicio 2 continuación
6-8
Sección 6. Introducción a la programación con CRBasic
Cada instrucción tiene un nombre clave y una serie de parámetros que contienen la
información necesaria para completar la medida. Por ejemplo, la instrucción para
medir la temperatura del panel de conexiones del CR1000 es: PanelTemp (Dest,
Integ)
PanelTemp(RefTemp, 250)
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 continuación
Medidas:
Battery
PanelTemp
TCDiff
CallTable
6-9
Sección 6. Introducción a la programación con CRBasic
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 continuación
Añada 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
Sección 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.
“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 matemáticas con enteros más rápido que con
FLOATs, y (2) resolución, dado que el LONG tiene 31 bits comparado a los 24
bits del FLOAT. Una buena aplicación para la sentencia AS LONG es un
contador que se espere vaya a ser muy grande.
7-1
Sección 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.
7-2
Sección 7. Tipos de datos y formatos
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
Sección 7. Tipos de datos y formatos
a) ASCII Table Data, Long header (TOA5) – Este es el formato por defecto y el
más común para importar en bases de datos y hojas de cálculo. Los datos se
almacenan separados por coma. La información de cabecera para cada
columna está incluida, junto con los nombres de los campos y unidades de
medida si estas están disponibles.
7-4
Sección 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
7-5
Sección 7. Tipos de datos y formatos
"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
7-6
Sección 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
"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 líneas de datos en binario dado que son ilegibles.)
Si uno o más valores medidos están fuera del rango de voltaje permitido (NAN),
se almacenará también NAN en cálculos que incluyan Average y Total. Las
instrucciones Maximum y Minimum hacen caso omiso de valores NAN y
devuelven el valor máximo o mínimo de medidas válidas.
7-7
Sección 7. Tipos de datos y formatos
7-8
Sección 7. Tipos de datos y formatos
7-9
Sección 7. Tipos de datos y formatos
7-10
Sección 8. Detalle de las instrucciones
8.1 Categorías de las instrucciones
Las instrucciones del datalogger se pueden agrupar en ocho categorías: data tables,
declaración de variables, medidas/control, operadores, salida, procesado
matemático, control, y serie RS232.
El panel de instrucciones del CRBasic tiene una lista desplegable con todas las
categorías de instrucciones.
8-1
Sección 8. Detalles de instrucción
8-2
Sección 8. Detalles de instrucción
Multiplier, Offset – Los parámetros Multiplier y Offset son cada uno una
constante, variable, array, o expresión 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
Sección 8. Detalles de instrucción
Suponiendo que:
rango del sensor (valores de y) -> 200 a 700 psi
rango de salida (valores de x) -> 400 a 2000mV
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
8-4
Sección 8. Detalles de instrucción
La resolución de una medida es una parte en 7500 sobre rango fondo escala
(FSR). Cuanto más pequeño sea el voltage range seleccionado, mejor será la
resolución absoluta. En general, una medida debe usar un voltage range fijo lo
más pequeño posible y que admita el fondo de escala del sensor a medir.
Los rangos seleccionados que terminan en C (por Ej. mV2_5C) chequean posible
circuito abierto y al mismo tiempo llevan la señal dentro del rango en modo
común.
Conectar brevemente las entradas a los voltajes internos del CR1000 también sirve
para llevar una señal diferencial flotante dentro del rango en modo común. Estas
opciones de voltaje range deberían usarse en la medida diferencial de termopares
(instrucción TCDiff) y para otros sensores con salidas diferenciales flotantes (por
Ej. sensores de radiación solar).
SE 1 2
Diff 1
H L
4000 mV
3000 mV
Medida = 1000 mV
Sensor
Sin embargo, si la entrada del canal H está a 5.8V y la entrada del canal L está en
4.8V, la medida no se puede realizar dado que el voltaje en H está fuera del rango
en modo común de ±5V.
8-5
Sección 8. Detalles de instrucción
Opciones Descripción
250 Integración de 250 microsegundos.
_60Hz Integración de 16.667 milisegundos; filtro ruido 60 Hz.
_50Hz Integración de 20 milisegundos; filtro ruido 50 Hz.
8-6
Sección 8. Detalles de instrucción
RevDiff – Una entrada ‘true’ o ‘false’ para determinar si las entradas se invierten
y se hace una segunda medida. Esta función elimina cualquier error de offset de
voltaje debido a la propia circuitería de medida del datalogger, incluyendo errores
de modo común. Habilitando este parámetro se dobla el tiempo de la medida.
False (0) = no hacer la segunda medida; True (1) = invertir entradas y hacer la
segunda medida.
8-7
Sección 8. Detalles de instrucción
DataType – se utiliza para seleccionar el formato con el que guardar los datos. Las
opciones para esta instrucción de salida son IEEE4 y FP2. También está
disponible, escribiéndolo 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 más rápido operaciones con enteros que con coma flotante, y (2)
resolución, 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
Sección 8. Detalles de instrucción
Los sensores tipo puente requieren un voltaje de excitación preciso para dar una
medida precisa. La excitación está activa sólo durante la medida.
La configuración del sensor y las salidas determinan que instrucción tipo puente
utilizar. El CR1000 dispone de cinco instrucciones de medida de puente. Cada
instrucción 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 instrucción utilizar. Alternativamente, las
especificaciones del sensor y las fórmulas de cálculo pueden sugerir que
instrucción utilizar.
8-9
Sección 8. Detalles de instrucción
8-10
Sección 8. Detalles de instrucción
Dest: WindDir
Reps: 1
Range: mV2500
SEChan: 1
ExChan: 1
MeasPEx: 1
ExmV: 2500
RevEx: True
Settling Time: 0
Integ: 60Hz
Mult: 355
Offset: 0
BrHalf(WindDir,1,mV2500,1,1,1,2500,True,0,_60Hz,355,0)
8-11
Sección 8. Detalles de instrucción
8-12
Sección 9. Programación para control
9.1 Representación de los números
Hay 4 maneras de representar números en un programa: base 10, notación
científica, binario, y hexadecimal.
El formato binario hace fácil visualizar operaciones donde los unos y los ceros se
traducen en comandos específicos. Por ejemplo, utilizando la instrucción
WriteIO, se puede prefijar con un número 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 número entrado en CRBasic es &B00101101. El bit menos
significativo está a la derecha y representa el puerto 1. Este es mucho más fácil de
visualizar que entrando 72, que es el decimal equivalente.
AirTemp2_F = AirTemp_C*1.8 + 32
9-1
Sección 9. Programación para control
Si DeltaT_C es mayor o igual que 3 entonces poner Flag1 high, sino ponerlo low.
9-2
Sección 9. Programación para control
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 instrucción 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 mínimo a 3.5 V).
►► Ejercicio 3 continuación
Declare otra Data Table: cada 5 minutos, máxima y mínima temperatura del aire,
mínimo voltaje de batería.
9-3
Sección 9. Programación para control
9-4
Sección 9. Programación para control
9-5
Sección 9. Programación para control
9-6
Sección 9. Programación para control
SecsPerRecord – Intervalo de salida (output interval) para una tabla. Cada tabla
tiene su propia entrada en este array.
DataFillDays – Tiempo en días para llenar una tabla. Cada tabla tiene su propia
entrada en este array.
9-7
Sección 9. Programación para control
9-8
Sección 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 través de la pantalla Connect de
LoggerNet o se puede hacer de forma automática mediante una recogida
programada. LoggerNet debe estar ejecutándose para que la recogida de datos
programada se lleve a cabo, pero se puede ejecutar en segundo plano
(background).
10-1
Sección 10. Recogida de datos automatizada
10-2
Sección 10. Recogida de datos automatizada
LoggerNet puede hacer reintentos si fallan las llamadas programadas (por Ej. En
casos que la línea de teléfono está ocupada, o la radio tenga interferencias).
10.2 Status
10-3
Sección 10. Recogida de datos automatizada
10-4
Sección 10. Recogida de datos automatizada
10-5
Sección 10. Recogida de datos automatizada
10-6
Sección 11. RTMC – Control y
Monitorización en Tiempo Real
RTMC se utiliza para crear pantallas de presentación de datos en tiempo real con
los datos recogidos de los dataloggers mediante LoggerNet.
2. Los datos mostrados son datos recogidos mediante la opción de Recogida Programada
de LoggerNet.
3. Permite cambiar el estado de los ports y flags del datalogger, y cambiar variables.
10. En la pantalla se pueden colocar imágenes con formato de fichero gráfico estándar
que estén almacenadas en el PC.
13. Las pantallas no se pueden exportar de forma automática a ficheros que puedan
incorporarse en páginas 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
Sección 11. RTMC –Control y Monitorización 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 aplicación Setup, escoja el
CR1000 en el mapa de red y seleccione la pestaña 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 información actual, tiene sentido seleccionar Sobrescribir Fichero
Existente (Overwrite Existing File) en Opción Fichero Salida (File Output
Option). También No Output File.
11-2
Sección 11. RTMC – Control y Monitorización en Tiempo Real
11-3
Sección 11. RTMC –Control y Monitorización en Tiempo Real
11-4
Sección 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.
Enviar (Send) – Muestra una ventana de diálogo desde la cual se puede enviar un
fichero al dispositivo seleccionado.
12-1
Sección 12. Control Ficheros (File Control), Sistemas Operativos y Transformer
Refrescar (Refresh) – Pulse este botón 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 botón para mostrar una ventana de diálogo donde podrá entrar la ruta y
nombre del fichero descargado.
Run Options – Permite determinar la forma de ejecución de un programa. Run
Now empieza a ejecutar el programa de forma inmediata; tiene la opción 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 botón para parar la ejecución del
programa actual ejecutándose en el datalogger. Use esta opción 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 perderán.
El sistema operativo del CR1000 está continuamente siendo mejorado, y tal como
aparecen nuevas prestaciones, puede necesitar actualizar el SO. Generalmente, los
nuevos SO están disponibles en nuestra Web, en Downloads. Existen dos formas
de cargar el SO al CR1000; a) vía la aplicación Connect de LoggerNet, y b) vía la
aplicación Device Configuration Utility.
Haga clic en Enviar (Send) y localice la carpeta del ordenador donde tiene
guardado el Nuevo SO. El SO debería tener el formato: CR1000.Std.XX.obj
donde XX es la versión. Recibirá un aviso de que se perderán todos los datos, y
tendrá la opción de seguir con el proceso o no.
12-2
Sección 12. Control Ficheros (File Control), Sistemas Operativos y Transformer
Otro beneficio de hacerlo por Connect y Enviar es que se puede hacer de forma
remota. Sin embargo, no es recomendable, dado que el SO es un fichero grande
comparado con ficheros de datos o programas.
►► Cargue un SO al CR1000.
12-3
Sección 12. Control Ficheros (File Control), Sistemas Operativos y Transformer
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
debería transformarse razonablemente bien. Cuantos más loops, lógica, medidas
especiales, subrutinas, salidas condicionales, y medidas condicionales, mayor será
la posibilidad de que algo no se transforme.
12-4
Sección 12. Control Ficheros (File Control), Sistemas Operativos y Transformer
Los programas para CR1000 creados por Transformer deben ser revisados y
probados antes de poner en funcionamiento en campo.
12-5
Sección 12. Control Ficheros (File Control), Sistemas Operativos y Transformer
12-6
Sección 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 ingeniería.
El datalogger desconoce la precisión del sensor, y por tanto podría mostrar una
resolución de la medida irreal – genere sólo 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 debería ser mostrada a la centésima de
grado – aun cuando el datalogger puede proporcionar ese número.
Medidas
Voltaje batería
CS500 T aire en ºC
CS500 HR en %
13-1
Sección 13. Ejercicio Exhaustivo
2. Los anemómetros a menudo generan una señal tipo pulsos, pero esta puede
ser tipo cierre de contactos (switch closure), voltaje AC, o onda cuadrada de
5Vdc. Las especificaciones del sensor determinarán que opción de
configuración seleccionar, y que multipliers y offsets son necesarios para la
adecuada conversión a unidades de ingeniería. Para la determinación de
offset, el sensor debería haber sido calibrado en un túnel de viento. (Usuarios
avanzados añadirán código al programa para poner a cero la VV si la medida
es igual al offset.)
Medidas
Voltaje batería
CS500 T aire en ºC
CS500 HR en %
03001 dirección viento
03001 velocidad viento
13-2
Sección 14. Redes PakBus®
14.1 Introducción
PakBus® es el término de Campbell Scientific usado para describir nuestro propio
protocolo de comunicaciones por paquetes. Los paquetes de información
transmitidos entre dispositivos PakBus contienen datos de usuario e información
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 más pequeños, o paquetes, para su transmisión. 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-envían 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 pequeños, los
enlaces de comunicación entre dispositivos PakBus están únicamente activos por
un corto período de tiempo durante la transmisión de cada paquete. Mensajes más
largos requiere que se envíen una serie de paquetes, pero no que el enlace esté
dedicado entre la transmisión 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 más eficiente. Hasta el momento, “más eficiente” significa la ruta con menor
número de dispositivos manejando el paquete.
En una red PakBus cada dispositivo que envía, recibe o enruta paquetes, tiene que
tener su propia dirección PakBus (PakBus address), única dentro de su red. Las
cabeceras de los paquetes PakBus incluyen no sólo el origen y destino, sino
también la dirección del siguiente dispositivo intermedio que está enrutando el
paquete.
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 (también 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
Sección 14. Redes PakBus®
Static Routes, entre LoggerNet y un dispositivo, existen en virtud del device map
en el Setup de LoggerNet. Las Static Routes aparecen como líneas rojas en el
PakBus Graph.
14-2
Sección 14. Redes PakBus®
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 podría también mostrar con dataloggers
leaf node que no han sido configurados en LoggerNet, pero que LoggerNet server
ha "learned about" interrogando la PakBus network.
14-3
Sección 14. Redes PakBus®
PC
PC
CR1000 CR1000
CR1000 CR1000
PC
PC
En la red descrita, los PCs están conectados a los CR1000 mediante sus puertos
RS-232. Todas las demás conexiones son mediante MD485s por protocolo RS-
485. El funcionamiento de los MD485 es transparente al usuario. Otros
dispositivos como los RF416 actuarían de la misma forma.
14-4
Sección 14. Redes PakBus®
Parámetros 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
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.
14-5
Sección 14. Redes PakBus®
• Conecte un cable serie entre el puerto serie del PC al puerto RS232 del
CR1000.
14-6
Sección 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á también 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, también se
desbloqueará. Desbloqueando el Level 1 (entrando el security code del Level 1)
también desbloquea Level 2 y Level 3.
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 también 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, están 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.
14-7
Sección 14. Redes PakBus®
Los parámetros PakBus, como la PakBus address, forman parte de la tabla Status.
Activando la Level 1 Security queda restringido que otros puedan modificar estos
ajustes vitales de la red.
14-8
Sección 14. Redes PakBus®
Haciendo clic con botón derecho del ratón encima de un dispositivo de la red
puede visualizar y cambiar los parámetros de los dispositivos PakBus de la red.
14-9
Sección 14. Redes PakBus®
14-10
Sección 14. Redes PakBus®
Cuando un CVI expira, el CR1000 iniciará hasta 4 Hello messages que intentarán
re-establecer contacto con el neighbor. Esos mensajes en el CR1000 son enviados
a intervalos aleatorios de 2 a 12 segundos. Si la comunicación fuera inválida
después de los 4 intentos, se quita el neighbor.
14-11
Sección 14. Redes PakBus®
14-12
Sección 14. Redes PakBus®
14.11 Instrucciones
Un datalogger PakBus puede contener instrucciones en su programa que envíe
mensajes a otros dispositivos PakBus. Esos dispositivos pasan a ser neighbors.
La instrucción RealTime llena un array con los valores de la hora actual del reloj
del datalogger, en el siguiente orden: (1) año, (2) mes, (3) día del mes, (4) hora del
día, (5) minutos, (6) segundos, (7) microsegundos, (8) día de la semana (1-7;
domingo = 1), y (9) día del año. 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
instrucción RealTime.
Public Result(2)
Public SendToggle as Boolean
Public SendTime(9)
Public RxToggle as Boolean
Public RxTime(6)
14-13
Sección 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
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.
14-14
Sección 14. Redes PakBus®
Esta es una información de sólo lectura que muestra las routes que eran conocidas
por el CR1000 en el momento que ello fue leído. La sintaxis es: (Port Number,
PakBus Address, Via Neighbor Address, Response Time).
Code Description
1 RS232 port of the datalogger
2 Datalogger's CS I/O port; modem enabled
3 Datalogger's CS I/O port; COM 310 modem
4 Datalogger's CS I/O port; SDC7
5 Datalogger's CS I/O port; SDC8
6 Datalogger's COM1 - control ports 1 & 2
7 Datalogger's COM2 - control ports 3 & 4
8 Datalogger's COM3 - control ports 5 & 6
9 Datalogger's COM4 - control ports 7 & 8
Public Temp
DataTable (Table1,True,-1)
DataInterval (0,1,Sec,10)
Sample (1,Temp,FP2)
EndTable
14-15
Sección 14. Redes PakBus®
BeginProg
Scan (1,Sec,3,0)
PanelTemp (Temp,250)
IF TimeIntoInterval (0,1,Min) Then
SendData (ComRS232,0,4094,Table1)
EndIf
CallTable (Table1)
NextScan
EndProg
14-16
Sección 14. Redes PakBus®
Este parámetro también está disponible en el Show Settings del PakBus Graph.
La sintaxis para este parámetro es: (rango inicio, rango final). Por tanto, para
entrar neighbors potenciales con direcciones 2 y 5 la sintaxis es (2,2) (5,5).
14-17
Sección 14. Redes PakBus®
Ahora que la red sabe de esos sitios, deben ser añadidos al mapa de red de
LoggerNet mediante las pantallas EZSetup o Setup. La pantalla Setup dispone de
una herramienta para añadir dispositivos al mapa de red. La pestaña PakBus
Nodes de PakBus Port muestra todos los dispositivos PakBus encontrados en la
red que no están mostrados todavía en el mapa de red.
Note que tal como los dispositivos se añaden 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 configuración tipo “árbol”.
14-18
Sección 14. Redes PakBus®
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
Sección 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.
(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
Sección 15. Conceptos Programación
Avanzada
15.1 Tipo Parámetros en una Instrucción
Los parámetros de una instrucción admiten diferentes tipos de entradas. Pulsando
F1 para ayuda en los parámetros de la instrucción, muestra el tipo de entrada
requerida; por Ej. Constante, Variable, Array, o Expresión.
15-1
Sección 15. Conceptos Programación Avanzada
Típicamente, los datos de las series temporales (medias, totales, máximos, etc.)
que son grabados en una tabla basada en un intervalo de tiempo, sólo incluyen
medidas del intervalo actual. Después 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 instrucción OpenInterval se incluye en la
declaración DataTable, la memoria no se borra. Ello resulta en que todas las
medidas se incluyen en las series temporales desde la última grabación de datos
(aunque los datos hayan saltado múltiples output intervals).
Ejemplo:
DataTable(Table1,true,-1)
OpenInterval
DataInterval(0,1,Min,10)
…. Instrucciones de salida adicionales
15-2
Sección 15. Conceptos Programación Avanzada
15-3
Sección 15. Conceptos Programación 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
Apéndice A.
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 más antiguos.
15-4
Sección 15. Conceptos Programación Avanzada
For I=1 to 10
TCTemp(I)=TCTemp(I)*1.8+32
Next I
Los arrays se pueden usar como factores de calibración de los sensores. Cuando
variables tipo array se usan como el multiplier y offset en medidas que utilizan
repetitions, la instrucción automáticamente incrementará los arrays del multiplier
y offset conforme incrementa los canales. Nota: para usar esta capacidad debe
empezar con elemento número 1. Esto permite a una única instrucción de medida
medir una serie de sensores con calibraciones individuales, aplicando los factores
de calibración correctos a cada sensor. Si el multiplier y offset no son arrays, se
usará el mismo en cada repetition.
'Factores de calibración:
Mult(1)=0.123 : Offset(1)= 0.23
Mult(2)=0.115 : Offset(2)= 0.234
Mult(3)=0.114 : Offset(3)= 0.224
VoltSE(Pressure(5),3,mV2500,1,False,0,100,Mult,Offset) ‘ se aplicará el
mismo multiplier y offset a las 3 medidas.
15-5
Sección 15. Conceptos Programación Avanzada
►► 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 notación array para aplicar los multipliers y
offsets.
15-6
Sección 15. Conceptos Programación 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 instrucción 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 cálculos 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
Todas las subrutinas deben ser definidas en el área de declaraciones del programa
(antes de la sentencia BeginProg).
Nota: las líneas de programa en una subrutina no pueden estar dentro del código
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.
15-7
Sección 15. Conceptos Programación Avanzada
15-8