''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''' '' '' '' DECLARATIONS & DEFINITIONS '' '' '' ''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''' ' Set Station Name as: BASEMENT StationName (BASEMENT) 'DECLARE CONSTANTS 'FIXED RESISTOR VALUE FOR GWS THERMISTOR CIRCUITS Const Rf_1 = 1.0 'INSERT FIXED RESISTOR #1 VALUE (kOHM) HERE <---------- 'STEINHART & HART EQUATION CONSTANTS Const a = 0.0014654354 Const b = 0.0002386780 Const c = 0.0000001000 'DECLARE VARIABLES Dim I Dim therm(123) Dim D (123) Dim Station_ID 'DECLARE PUBLIC VARIABLES Public PTemp, batt_volt Public GWS_Therm_kOHM (123), GWS_T_deg_C (123) Public CS616_us (10), CS616_SM (10) 'NOTE: CS616_us IS THE RAW UNCORRECTED SENSOR MEASUREMENT (micro-seconds) ' CS616_SM IS THE MEASUREMENT CONVERTED TO VOL H2O CONTENT 'declare alias for working sensors Alias GWS_T_deg_C(88)=FOUNDEASTBASE_22_2ft_C Alias GWS_T_deg_C(89)=FOUNDEASTBASE_24_2ft_C Alias GWS_T_deg_C(90)=FOUNDEASTBASE_26_2ft_C Alias GWS_T_deg_C(91)=FOUNDEASTBASE_28_2ft_C Alias GWS_T_deg_C(92)=FOUNDEASTBASE_30_2ft_C Alias GWS_T_deg_C(93)=FOUNDEASTBASE_32_2ft_C Alias GWS_T_deg_C(94)=FOUNDEASTBASE_34_2ft_C Alias GWS_T_deg_C(95)=FOUNDEASTBASE_36_2ft_C Alias GWS_T_deg_C(96)=FOUNDEASTBASE_38_2ft_C Alias GWS_T_deg_C(97)=FOUNDEASTBASE_40_2ft_C Alias GWS_T_deg_C(98)=FOUNDEASTBASE_42_2ft_C Alias GWS_T_deg_C(99)=FOUNDEASTBASE_44_2ft_C Alias GWS_T_deg_C(100)=FOUNDEASTBASE_12_7ft_C Alias GWS_T_deg_C(101)=FOUNDEASTBASE_13_2ft_C Alias GWS_T_deg_C(102)=FOUNDEASTBASE_13_7ft_C Alias GWS_T_deg_C(103)=FOUNDEASTBASE_14_2ft_C Alias GWS_T_deg_C(104)=FOUNDEASTBASE_14_7ft_C Alias GWS_T_deg_C(105)=FOUNDEASTBASE_15_2ft_C Alias GWS_T_deg_C(106)=FOUNDEASTBASE_15_7ft_C Alias GWS_T_deg_C(107)=FOUNDEASTBASE_16_2ft_C Alias GWS_T_deg_C(108)=FOUNDEASTBASE_16_7ft_C Alias GWS_T_deg_C(109)=FOUNDEASTBASE_17_2ft_C Alias GWS_T_deg_C(110)=FOUNDEASTBASE_18_2ft_C Alias GWS_T_deg_C(111)=FOUNDEASTBASE_20_2ft_C Alias GWS_T_deg_C(112)=FOUNDEASTBASE_0_5ft_C Alias GWS_T_deg_C(113)=FOUNDEASTBASE_1_0ft_C Alias GWS_T_deg_C(114)=FOUNDEASTBASE_1_5ft_C Alias GWS_T_deg_C(115)=FOUNDEASTBASE_2_0ft_C Alias GWS_T_deg_C(116)=FOUNDEASTBASE_2_5ft_C Alias GWS_T_deg_C(117)=FOUNDEASTBASE_3_0ft_C Alias GWS_T_deg_C(118)=FOUNDEASTBASE_3_5ft_C Alias GWS_T_deg_C(119)=FOUNDEASTBASE_4_0ft_C Alias GWS_T_deg_C(120)=FOUNDEASTBASE_4_5ft_C Alias GWS_T_deg_C(121)=FOUNDEASTBASE_5_5ft_C Alias GWS_T_deg_C(122)=FOUNDEASTBASE_7_0ft_C Alias GWS_T_deg_C(123)=FOUNDEASTBASE_10_0ft_C Alias GWS_T_deg_C(52)=FOUNDICF_INSIDE1_C Alias GWS_T_deg_C(53)=FOUNDICF_INSIDE2_C Alias GWS_T_deg_C(54)=FOUNDICF_INSIDE3_C Alias GWS_T_deg_C(55)=FOUNDICF_OUTINNEREPS1_C Alias GWS_T_deg_C(56)=FOUNDICF_OUTINNEREPS2_C Alias GWS_T_deg_C(57)=FOUNDICF_OUTINNEREPS3_C Alias GWS_T_deg_C(58)=FOUNDICF_CENTER1_C Alias GWS_T_deg_C(59)=FOUNDICF_CENTER2_C Alias GWS_T_deg_C(60)=FOUNDICF_CENTER3_C Alias GWS_T_deg_C(61)=FOUNDICF_INOUTEREPS1_C Alias GWS_T_deg_C(62)=FOUNDICF_INOUTEREPS2_C Alias GWS_T_deg_C(63)=FOUNDICF_INOUTEREPS3_C Alias GWS_T_deg_C(64)=FOUNDICF_OUTOUTEREPS1_C Alias GWS_T_deg_C(66)=FOUNDICF_OUTOUTEREPS2_C Alias GWS_T_deg_C(67)=FOUNDICF_OUTSIDE1_C Alias GWS_T_deg_C(69)=FOUNDICF_OUTSIDE2_C Alias CS616_SM (1)=FOUND_belowfill12_SM Alias CS616_SM (2)=FOUND_belowfill13_SM Alias CS616_SM (3)=FOUND_belowfill14_SM Alias CS616_SM (4)=FOUND_belowfill_SM 'DEFINE DATA TABLES DataTable (FOUNDBbackup_hr,1,-1) DataInterval (0,60,Min,0) Average (1, GWS_Therm_kOHM(88),FP2,False) Average (1, GWS_Therm_kOHM(89),FP2,False) Average (1, GWS_Therm_kOHM(90),FP2,False) Average (1, GWS_Therm_kOHM(91),FP2,False) Average (1, GWS_Therm_kOHM(92),FP2,False) Average (1, GWS_Therm_kOHM(93),FP2,False) Average (1, GWS_Therm_kOHM(94),FP2,False) Average (1, GWS_Therm_kOHM(95),FP2,False) Average (1, GWS_Therm_kOHM(96),FP2,False) Average (1, GWS_Therm_kOHM(97),FP2,False) Average (1,GWS_Therm_kOHM(98),FP2,False) Average (1,GWS_Therm_kOHM(99),FP2,False) Average (1, GWS_Therm_kOHM(100),FP2,False) Average (1,GWS_Therm_kOHM(101),FP2,False) Average (1, GWS_Therm_kOHM(102),FP2,False) Average (1, GWS_Therm_kOHM(103),FP2,False) Average (1,GWS_Therm_kOHM(104),FP2,False) Average (1, GWS_Therm_kOHM(105),FP2,False) Average (1, GWS_Therm_kOHM(106),FP2,False) Average (1,GWS_Therm_kOHM(107),FP2,False) Average (1, GWS_Therm_kOHM(108),FP2,False) Average (1, GWS_Therm_kOHM(109),FP2,False) Average (1, GWS_Therm_kOHM(110),FP2,False) Average (1, GWS_Therm_kOHM(111),FP2,False) Average (1,GWS_Therm_kOHM(112),FP2,False) Average (1,GWS_Therm_kOHM(113),FP2,False) Average (1, GWS_Therm_kOHM(114),FP2,False) Average (1,GWS_Therm_kOHM(115),FP2,False) Average (1, GWS_Therm_kOHM(116),FP2,False) Average (1,GWS_Therm_kOHM(117),FP2,False) Average (1, GWS_Therm_kOHM(118),FP2,False) Average (1, GWS_Therm_kOHM(119),FP2,False) Average (1, GWS_Therm_kOHM(120),FP2,False) Average (1, GWS_Therm_kOHM(121),FP2,False) Average (1, GWS_Therm_kOHM(122),FP2,False) Average (1, GWS_Therm_kOHM(123),FP2,False) Average (1, GWS_Therm_kOHM(52),FP2,False) Average (1, GWS_Therm_kOHM(53),FP2,False) Average (1, GWS_Therm_kOHM(54),FP2,False) Average (1,GWS_Therm_kOHM(55),FP2,False) Average (1, GWS_Therm_kOHM(56),FP2,False) Average (1, GWS_Therm_kOHM(57),FP2,False) Average (1, GWS_Therm_kOHM(58),FP2,False) Average (1, GWS_Therm_kOHM(59),FP2,False) Average (1, GWS_Therm_kOHM(60),FP2,False) Average (1, GWS_Therm_kOHM(61),FP2,False) Average (1, GWS_Therm_kOHM(62),FP2,False) Average (1, GWS_Therm_kOHM(63),FP2,False) Average (1, GWS_Therm_kOHM(64),FP2,False) Average (1, GWS_Therm_kOHM(66),FP2,False) Average (1, GWS_Therm_kOHM(67),FP2,False) Average (1, GWS_Therm_kOHM(69),FP2,False) Average (1,CS616_us (1),FP2,False) Average (1, CS616_us (2),FP2,False) Average (1, CS616_us (3),FP2,False) Average (1,CS616_us (4),FP2,False) EndTable DataTable (FOUNDBEASTBASE_hr,1,-1) DataInterval (0,60,Min,0) Average (1,FOUNDEASTBASE_0_5ft_C,FP2,False) Average (1,FOUNDEASTBASE_1_0ft_C,FP2,False) Average (1,FOUNDEASTBASE_1_5ft_C,FP2,False) Average (1,FOUNDEASTBASE_2_0ft_C,FP2,False) Average (1,FOUNDEASTBASE_2_5ft_C,FP2,False) Average (1,FOUNDEASTBASE_3_0ft_C,FP2,False) Average (1,FOUNDEASTBASE_3_5ft_C,FP2,False) Average (1,FOUNDEASTBASE_4_0ft_C,FP2,False) Average (1,FOUNDEASTBASE_4_5ft_C,FP2,False) Average (1,FOUNDEASTBASE_5_5ft_C,FP2,False) Average (1,FOUNDEASTBASE_7_0ft_C,FP2,False) Average (1,FOUNDEASTBASE_10_0ft_C,FP2,False) Average (1,FOUNDEASTBASE_12_7ft_C,FP2,False) Average (1,FOUNDEASTBASE_13_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_13_7ft_C,FP2,False) Average (1,FOUNDEASTBASE_14_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_14_7ft_C,FP2,False) Average (1,FOUNDEASTBASE_15_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_15_7ft_C,FP2,False) Average (1,FOUNDEASTBASE_16_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_16_7ft_C,FP2,False) Average (1,FOUNDEASTBASE_17_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_18_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_20_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_22_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_24_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_26_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_28_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_30_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_32_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_34_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_36_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_38_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_40_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_44_2ft_C,FP2,False) EndTable DataTable (FOUNDBEASTBASE_day,1,-1) DataInterval (0,1,day,0) Average (1,FOUNDEASTBASE_0_5ft_C,FP2,False) Average (1,FOUNDEASTBASE_1_0ft_C,FP2,False) Average (1,FOUNDEASTBASE_1_5ft_C,FP2,False) Average (1,FOUNDEASTBASE_2_0ft_C,FP2,False) Average (1,FOUNDEASTBASE_2_5ft_C,FP2,False) Average (1,FOUNDEASTBASE_3_0ft_C,FP2,False) Average (1,FOUNDEASTBASE_3_5ft_C,FP2,False) Average (1,FOUNDEASTBASE_4_0ft_C,FP2,False) Average (1,FOUNDEASTBASE_4_5ft_C,FP2,False) Average (1,FOUNDEASTBASE_5_5ft_C,FP2,False) Average (1,FOUNDEASTBASE_7_0ft_C,FP2,False) Average (1,FOUNDEASTBASE_10_0ft_C,FP2,False) Average (1,FOUNDEASTBASE_12_7ft_C,FP2,False) Average (1,FOUNDEASTBASE_13_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_13_7ft_C,FP2,False) Average (1,FOUNDEASTBASE_14_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_14_7ft_C,FP2,False) Average (1,FOUNDEASTBASE_15_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_15_7ft_C,FP2,False) Average (1,FOUNDEASTBASE_16_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_16_7ft_C,FP2,False) Average (1,FOUNDEASTBASE_17_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_18_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_20_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_22_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_24_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_26_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_28_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_30_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_32_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_34_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_36_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_38_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_40_2ft_C,FP2,False) Average (1,FOUNDEASTBASE_44_2ft_C,FP2,False) EndTable DataTable (FOUNDBICF_hr,1,-1) DataInterval (0,60,Min,0) Average (1,FOUNDICF_INSIDE1_C,FP2,False) Average (1,FOUNDICF_INSIDE2_C,FP2,False) Average (1,FOUNDICF_INSIDE3_C,FP2,False) Average (1,FOUNDICF_OUTINNEREPS1_C,FP2,False) Average (1,FOUNDICF_OUTINNEREPS2_C,FP2,False) Average (1,FOUNDICF_OUTINNEREPS3_C,FP2,False) Average (1,FOUNDICF_CENTER1_C,FP2,False) Average (1,FOUNDICF_CENTER2_C,FP2,False) Average (1,FOUNDICF_CENTER3_C,FP2,False) Average (1,FOUNDICF_INOUTEREPS1_C,FP2,False) Average (1,FOUNDICF_INOUTEREPS2_C,FP2,False) Average (1,FOUNDICF_INOUTEREPS3_C,FP2,False) Average (1,FOUNDICF_OUTOUTEREPS1_C,FP2,False) Average (1,FOUNDICF_OUTOUTEREPS2_C,FP2,False) Average (1,FOUNDICF_OUTSIDE1_C,FP2,False) Average (1,FOUNDICF_OUTSIDE2_C,FP2,False) EndTable DataTable (FOUNDBICF_day,1,-1) DataInterval (0,1,day,0) Average (1,FOUNDICF_INSIDE1_C,FP2,False) Average (1,FOUNDICF_INSIDE2_C,FP2,False) Average (1,FOUNDICF_INSIDE3_C,FP2,False) Average (1,FOUNDICF_OUTINNEREPS1_C,FP2,False) Average (1,FOUNDICF_OUTINNEREPS2_C,FP2,False) Average (1,FOUNDICF_OUTINNEREPS3_C,FP2,False) Average (1,FOUNDICF_CENTER1_C,FP2,False) Average (1,FOUNDICF_CENTER2_C,FP2,False) Average (1,FOUNDICF_CENTER3_C,FP2,False) Average (1,FOUNDICF_INOUTEREPS1_C,FP2,False) Average (1,FOUNDICF_INOUTEREPS2_C,FP2,False) Average (1,FOUNDICF_INOUTEREPS3_C,FP2,False) Average (1,FOUNDICF_OUTOUTEREPS1_C,FP2,False) Average (1,FOUNDICF_OUTOUTEREPS2_C,FP2,False) Average (1,FOUNDICF_OUTSIDE1_C,FP2,False) Average (1,FOUNDICF_OUTSIDE2_C,FP2,False) EndTable DataTable (FOUNDBSM_hr,1,-1) DataInterval (0,60,Min,0) Average (1,FOUND_belowfill12_SM,FP2,False) Average (1,FOUND_belowfill13_SM,FP2,False) Average (1,FOUND_belowfill14_SM,FP2,False) Average (1,FOUND_belowfill_SM,FP2,False) EndTable DataTable (FOUNDBSM_day,1,-1) DataInterval (0,1,day,0) Average (1,FOUND_belowfill12_SM,FP2,False) Average (1,FOUND_belowfill13_SM,FP2,False) Average (1,FOUND_belowfill14_SM,FP2,False) Average (1,FOUND_belowfill_SM,FP2,False) EndTable ''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''' '' '' '' BEGIN MAIN PROGRAM '' '' '' ''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''' BeginProg Scan (5,Min,0,0) 'SCAN PROGRAM AT 5-Minute INTERVALS ''''''''''''''''''''''''''''''''''''''''''''''''' '' '' '' READ AM16/32 #2 MULTIPLEXER '' '' '' ''''''''''''''''''''''''''''''''''''''''''''''''' ' READ 39 GWS THERMISTORS - CCHTH46_1 THROUGH CCHTH52_3 PortSet (2 ,1 ) 'TURN ON AM16/32 #2 MULTIPLEXER, SET PORT 1 HIGH 'delay added for AM16/32A multiplexer reset problem Delay(0,150,mSec) I=49 SubScan (0,Sec,13) 'SCAN LOOP -- 13 ITERATIONS PulsePort (4 ,10000) 'ADVANCE AM16/32 #1 GROUP BY 1, PULSE PORT 4 'MEASURE GWS THERMISTORS, (Voltage Ratio X = Rs/(Rs+Rf)) 'CHANGED MeasPEx FROM 1 TO 3 SO ALL REPS ARE EXCITED WITH Ex1 -- PAETZOLD 05/20/06 'CHANGED FROM ONE BrHalf STATEMENT TO THREE WITH I=I+1 INBETWEEN -- PAETZOLD 06/06/06 BrHalf (therm(I),1,mV2500,1,Vx1,1,2500,True ,0,_60Hz,1.0,0) I = I + 1 BrHalf (therm(I),1,mV2500,2,Vx1,1,2500,True ,0,_60Hz,1.0,0) I = I + 1 BrHalf (therm(I),1,mV2500,3,Vx1,1,2500,True ,0,_60Hz,1.0,0) I = I + 1 NextSubScan PortSet (2 ,0 ) 'TURN OFF AM16/32 #2 MULTIPLEXER, SET PORT 1 LOW ''''''''''''''''''''''''''''''''''''''''''''''''' '' '' '' READ AM16/32 #3 MULTIPLEXER '' '' '' ''''''''''''''''''''''''''''''''''''''''''''''''' ' READ 36 GWS THERMISTORS - CCHTH53_1 THROUGH CCHTH55_10 (deg C), ' STRINGS OF 12 THERMISTORS EACH PortSet (3 ,1 ) 'TURN ON AM16/32 #3 MULTIPLEXER, SET PORT 1 HIGH 'delay added for AM16/32A multiplexer reset problem Delay(0,150,mSec) SubScan (0,Sec,12) 'SCAN LOOP -- 12 ITERATIONS PulsePort (4 ,10000) 'ADVANCE AM16/32 #1 GROUP BY 1, PULSE PORT 4 'MEASURE GWS THERMISTORS, (Voltage Ratio X = Rs/(Rs+Rf)) 'CHANGED MeasPEx FROM 1 TO 3 SO ALL REPS ARE EXCITED WITH Ex1 -- PAETZOLD 05/20/06 'CHANGED FROM ONE BrHalf STATEMENT TO THREE WITH I=I+1 INBETWEEN -- PAETZOLD 06/06/06 'CHANGED to read channels SE2 and SE3_ Previously all three statements were reading ' only channel SE1 -- PAETZOLD 12/04/07 BrHalf (therm(I),3,mV2500,1,Vx1,3,2500,True ,0,_60Hz,1.0,0) I = I + 1 BrHalf (therm(I),3,mV2500,2,Vx1,3,2500,True ,0,_60Hz,1.0,0) I = I + 1 BrHalf (therm(I),3,mV2500,3,Vx1,3,2500,True ,0,_60Hz,1.0,0) I = I + 1 NextSubScan PortSet (3 ,0 ) 'TURN OFF AM16/32 #2 MULTIPLEXER, SET PORT 1 LOW '''' CONVERT MEASURED VOLTAGE RATIO TO RESISTANCE (kOHM) FOR 105 GWS THERMISTORS '''' For I=49 To 123 GWS_Therm_kOHM(I) = Rf_1*therm(I)/(1-therm(I)) Next I ''''''' CONVERT GWS THERMISTOR RESISTANCE TO deg C FOR 105 GWS THERMISTORS ''''''' For I=49 To 123 D(I) = LN (1000*GWS_Therm_kOHM(I)) 'ln resistance (ohm) GWS_T_deg_C(I) = (1/(a + b*D(I) + c*(D(I))^3)) - 273.15 'Steinhart & Hart Equation Next I 'READ 10 CS616 SOIL MOISTURE SENSORS CCHSM12, CCHSM13, CCHSM14, CCHSM15, ' CCHSM18, CCHSM20, CCHSM27, CCHSM44, CCHSM45, CCHSM46 (microseconds) I=1 CS616 (CS616_us(),4,5,5,4,1.0,0) For I = 1 To 4 'CONVERT SOIL MOISTURE SENSOR MEASUREMENT (micro-seconds) TO VOLUMETRIC ' SOIL WATER CONTENT CS616_SM(I) = -0.0663+CS616_us(I)*(-0.0063+CS616_us(I)*0.0007) Next I PanelTemp (PTemp,_60Hz) 'MEASURE DATALOGGER PANEL TEMPERATUE (deg C), 'WITH A 60Hz FILTER ''''''''''''''''''''''''''''''''''''''''''''''''' '' '' '' OUTPUT '' '' '' ''''''''''''''''''''''''''''''''''''''''''''''''' 'CALL OUTPUT TABLES CallTable FOUNDBbackup_hr CallTable FOUNDBEASTBASE_day CallTable FOUNDBEASTBASE_hr CallTable FOUNDBICF_day CallTable FOUNDBICF_hr CallTable (FOUNDBSM_hr) CallTable (FOUNDBSM_day) NextScan EndProg