'CR1000 'Created by Short Cut (4.4) 'Declare Variables and Units Dim ModSecsInt As Long Public BattV Public PTemp_C Public WS Public WD Public AT Public P Public SW12State As Boolean Units BattV=Volts Units PTemp_C=Deg C Units WS=meters/second Units WD=degrees Units AT=Deg C Units P=mm 'Define Data Tables DataTable(HrlyMet,True,-1) DataInterval(0,60,Min,10) Sample(1,AT,FP2) Average(1,AT,FP2,False) Sample(1,WS,FP2) Maximum(1,WS,FP2,False,False) Sample(1,WD,FP2) WindVector(1,WS,WD,FP2,False,0,0,0) FieldNames("WS_S_WVT,WD_D1_WVT,WD_SD1_WVT") Totalize(1,P,FP2,False) Average(1,BattV,FP2,False) EndTable DataTable(HrlyDiag,True,-1) DataInterval(0,60,Min,10) Minimum(1,BattV,FP2,False,False) Sample(1,BattV,FP2) Average(1,BattV,FP2,False) Sample(1,PTemp_C,FP2) Average(1,PTemp_C,FP2,False) EndTable 'Main Program BeginProg 'Main Scan Scan(5,Sec,1,0) 'Default CR1000 Datalogger Battery Voltage measurement 'BattV' Battery(BattV) 'Default CR1000 Datalogger Wiring Panel Temperature measurement 'PTemp_C' PanelTemp(PTemp_C,250) '05103 Wind Speed & Direction Sensor measurements 'WS' and 'WD' PulseCount(WS,1,1,1,1,0.098,0) BrHalf(WD,1,mV2500,1,1,1,2500,True,20000,250,355,0) If WD>=355 Or WD<0 Then WD=0 '107 Temperature Probe measurement 'AT' Therm107(AT,1,2,1,0,250,1,0) 'TE525MM/TE525M Rain Gauge measurement 'P' PulseCount(P,1,2,2,0,0.1,0) 'SW12 Timed Control 'Get seconds since 1990 and do a modulo divide by the interval period (60 minutes or 3600 seconds) ModSecsInt=Public.TimeStamp(1,1) MOD 3600 'Turn ON SW12 for 15 minutes every 60 minutes If (ModSecsInt>=0 And ModSecsInt<900) Then SW12State=True 'Turn OFF SW12 only if time runs out and RS232 is not active ElseIf (ComPortIsActive(ComRS232)=False) Then SW12State=False EndIf 'Always turn OFF SW12 if battery drops below 11.5 volts If BattV<11.5 Then SW12State=False 'Set SW12 to the state of 'SW12State' variable SW12(SW12State) 'Call Data Tables and Store Data CallTable HrlyMet CallTable HrlyDiag NextScan EndProg