'CR1000 Series Datalogger 'Example datalogger program for Apogee Instruments S2-442-SS PAR Far-red sensor 'date: April 8, 2020 'program author: John Huber 'For more technical information regarding the S2-442-SS operation as well as default settings and register address lists, please consult the sensor's manual, which can be found online: 'https://www.apogeeinstruments.com/product-manuals/ 'Wiring instructions for this program: 'Sensor White (RS232 TS wire) -> Datalogger C2 (Com1 RX) Port 'Sensor Blue (RS232 RX wire) -> Datalogger C1 (Com1 TX) Port 'Sensor Red (Power wire) -> Datalogger 12V port 'Sensor Green (RS232/RS485 selector wire) -> Datalogger 12V port 'Sensor Black (Ground wire) -> Datalogger Ground port 'If using a datalogger model other than the CR1000, some adjustments to commands will be necessary 'Explanation of Constants and Variables Used in Datalogger Program 'BattV = datalogger battery voltage 'PanelT = datalogger panel temperature 'ModbusRead(2) = Output from the modbus sensor 'PAR = photosynthetic photon flux in umol m-2 s-2 (micromoles per square meter per second) 'FAR = far red photon flux in umol m-2 s-2 (micromoles per square meter per second) 'PARFAR = ratio of PAR and far red light 'Errorcode = modbus error code value (Check CRBasic help menu for a list of error codes) 'Declare Public Variables Public PTemp, Batt_volt Public ModbusRead(2) Public PARFAR Public Errorcode 'Declare Aliases for modbus sensor output Alias ModbusRead(1) = PAR Alias ModbusRead(2) = FAR 'Define Data Tables. DataTable (PAR_Far_red,1,-1) 'Set table size to # of records, or -1 to autoallocate. DataInterval (0,1,Min,10) Minimum (1,Batt_volt,FP2,False,False) Sample (1,PTemp,FP2) Average(1,PAR,IEEE4,False) Average(1,FAR,IEEE4,False) Average(1,PARFAR,IEEE4,False) EndTable 'Main Program BeginProg Scan (1,Sec,0,0) PanelTemp (PTemp,60) Battery (Batt_volt) 'Open modbus serial port in RS232 mode SemaphoreGet(3) SerialOpen(Com1,19200,2,0,256) SerialFlush(Com1) SemaphoreRelease(3) 'Obtain measurements SemaphoreGet(3) ModbusMaster(Errorcode,Com1,19200,1,3,ModbusRead(),1,2,2,100,2) SemaphoreRelease(3) 'Calculate PAR/far red ratio PARFAR = PAR / FAR CallTable PAR_Far_red NextScan EndProg