'CR1000X Series Datalogger 'Example datalogger program for Apogee Instruments Modbus infrared radiometers (SI-500 series) 'For more technical information regarding the SI-500 IR sensor series' operation as well as default settings and register address lests, please consult the sensor's manual, which can be found online at: 'https://www.apogeeinstruments.com/product-manuals/ 'Wiring instructions for this program: 'Sensor White (RS485 + wire) -> C6 Comm port 'Sensor Blue (RS485 - wire) -> C5 Comm port 'Sensor Red (Input Power) -> Datalogger 12V port 'Sensor Green (RS232/RS485 selector wire) -> Datalogger ground port (Powered = RS232, Grounded = RS485) 'Sensor Black (ground wire) -> Datalogger ground port 'If using a datalogger model other than the CR1000X, some adjustments to commands will be necessary 'Explanation of constants and variables used in datalogger program 'BattV = Datalogger battery voltage 'PanelT = Datalogger panel temperature 'IRR(2) = Array to hold output from IR sensor modbus registers: location 1 = target temperature in degrees C, location 2 = detector temperature in degrees C 'DetectorTC = Detector (sensor body) temperature in degrees C 'TargetTC = Target temperature in degrees C 'Errorcode = See CRBasic Editor help for the ModbusMaster function for a list error codes and associated causes (0 = normal operation) 'Declare Public Variables Public PanelT, BattV Public IRR(2) Public Errorcode 'Rename variables Alias IRR(1) = TargetTC Alias IRR(2) = DetectorTC 'Define Data Tables. DataTable (SurfaceT,1,-1) DataInterval (0,1,Min,10) Minimum (1,BattV,FP2,False,False) Sample (1,PanelT,FP2) Average(1,DetectorTC,IEEE4,False) Average(1,TargetTC,IEEE4,False) EndTable 'Main Program BeginProg Scan (1,Sec,0,0) PanelTemp (PanelT,_60Hz) Battery (BattV) 'Open modbus serial port in RS485 mode SemaphoreGet(3) SerialOpen(ComC5,19200,2,0,256,3) SerialFlush(ComC5) SemaphoreRelease(3) 'Read sensor modbus registers. SemaphoreGet(3) ModbusMaster(Errorcode,ComC5,19200,1,3,IRR(),1,2,2,100,2) SemaphoreRelease(3) CallTable SurfaceT NextScan EndProg