'CR1000 'Created by Sergio Pezoa '9/17/08 'Two pyranometers K & Z 'Two pyrgeometer K & Z 'channels used as: '---------- '1H= 10K RESISTOR TO E1 PIR1 -NOAA '1L= THERMISTOR yellow 'AG= THERMISTOR green '2H= +THERMOPILE PIR '2L= -THERMOPILE PIR '----------- '5H= 10K RESISTOR TO E2 PIR2 -WHOI '5L= THERMISTOR yellow 'AG= THERMISTOR green '6H= +THERMOPILE PIR '6L= -THERMOPILE PIR '----------- '3H= +THERMOPILE PSP1 pin3-NOAA '3L= -THERMOPILE PSP1 pin1 '----------- '7H= + THERMOPILE PSP2 -WHOI '7L= - THERMOPILE PSP2 'Declare Variables and Units Public Batt_Volt public PIR1_R public PIR2_R public PIR1_RR public PIR2_RR public PIR1_V public PIR2_V public PSP1_V public PSP2_V Public PIR1_Wm2 public PIR2_Wm2 public PIR1_C public PIR2_C Public PSP1_Wm2 Public PSP2_Wm2 Public Outnum(15) Public OutString1 as string * 100 Public OutString2 as string * 100 Public OutString3 as string * 100 public OutString4 as string * 100 Public outputflag public Flag(1) as boolean 'Public Count(4), null as long Units Batt_Volt=Volts 'Declare Other Variables 'Declare Constants Const high= true Const low= false 'Coefficients fot YSI 44031 PIR1 0 to 40 C ' to calculate thermistor temp Const c1=0.001017394 Const c2=0.000241046 Const c3=0.000000149 'PIR cte 9.8 uV/W/m2 K&Z CG4 s/n 50770 Const PIR_1_Cte = 0.00980 'PIR cte 9.8 uV/W/m2 K &Z s/n??? Const PIR_2_Cte = 0.00980 'PSP1 cte 9.02 uV/W/m2 K&Z CM22 s/n 50122 WH Const PSP_1_Cte = 0.00876 'PSP2 cte 8.76 uV/W/m2 K&Z CM22 s/n 70020 PSD Const PSP_2_Cte = 0.00902 'Define Data Tables DataTable(KippZone,outputflag,-1) DataInterval(0,1,Min,-1) 'averages Average(1,PIR1_RR,FP2,0) Average(1,PIR2_RR,FP2,0) Average(1,PIR1_R,FP2,0) Average(1,PIR2_R,FP2,0) Average(1,PIR1_V,FP2,0) Average(1,PIR2_V,FP2,0) Average(1,PSP1_V,FP2,0) Average(1,PSP2_V,FP2,0) Average(1,PIR1_Wm2,FP2,0) Average(1,PIR2_Wm2,FP2,0) Average(1,PIR1_C,FP2,0) Average(1,PIR2_C,FP2,0) Average(1,PSP1_Wm2,FP2,0) Average(1,PSP2_Wm2,FP2,0) Average(1,Batt_Volt,FP2,0) EndTable 'Main Program BeginProg SerialOpen (ComRS232,9600,0,100,10000) Scan(1,Sec,0,0) If TimeIntoInterval (0,60,sec) then Flag(1) = high 'Default Datalogger Battery Voltage measurement Batt_Volt: Battery(Batt_Volt) 'Half bridge measurements PIR1 thermistor: BrHalf (PIR1_R,1,mV2500,1,Vx1,1,500,False,0,250,1.0,0) PIR1_RR=10002*(PIR1_R/(1-PIR1_R)) 'Half bridge measurements PIR2 thermistor: BrHalf (PIR2_R,1,mV2500,9,Vx2,1,500,False,0,250,1.0,0) PIR2_RR=9995*(PIR2_R/(1-PIR2_R)) 'calculated thermistor temperature PIR1_C =1/(c1+c2*Ln(PIR1_RR)+c3*PWR(Ln(PIR1_RR),3))+(-273.16) PIR2_C =1/(c1+c2*Ln(PIR2_RR)+c3*PWR(Ln(PIR2_RR),3))+(-273.16) 'Generic Differential Voltage measurements PIR1_V() thermopile: VoltDiff(PIR1_V,1,mV2_5C,2,False,0,_60Hz,1.0,0) PIR1_Wm2=(1/PIR_1_Cte)*PIR1_V 'Generic Differential Voltage measurements PIR2_V() thermopile: VoltDiff(PIR2_V,1,mV2_5C,6,False,0,_60Hz,1.0,0) PIR2_Wm2=(1/PIR_2_Cte)*PIR2_V 'Generic Differential Voltage measurements PSP1_V thermopile: VoltDiff(PSP1_V,1,mV7_5,3,False,0,_60Hz,1.0,0) PSP1_Wm2=(1/PSP_1_Cte)*PSP1_V 'Generic Differential Voltage measurements PSP2_V thermopile: VoltDiff(PSP2_V,1,mV7_5,7,False,0,_60Hz,1.0,0) PSP2_Wm2=(1/PSP_2_Cte)*PSP2_V 'Call Data Tables and Store Data If TimeIntoInterval(0,60,sec) then outputflag=high If Flag(1)= true then GetRecord (Outnum(),KippZone,1) OutString1 = Outnum(1)+CHR(44)+Outnum(2)+CHR(44)+Outnum(3)+CHR(44)+Outnum(4)+CHR(44)+Outnum(5)+CHR(44)+Outnum(6)+CHR(44) OutString2 = Outnum(7)+CHR(44)+Outnum(8)+CHR(44)+Outnum(9)+CHR(44)+Outnum(10)+CHR(44)+Outnum(11)+CHR(44)+Outnum(12)+CHR(44) OutString3 = Outnum(13)+CHR(44)+Outnum(14)+CHR(44)+Outnum(15)+CHR(13)+CHR(10) SerialOut (ComRS232,OutString1+OutString2+OutString3,"",0,100) 'Send data string over ComRS232 Flag (1)= false Endif CallTable(KippZone) NextScan EndProg