I'm having trouble with above sensor when trying to communicate via SDI-12 on my CR1000; I can only acquire and change the address - and nothing else. It works fine on a CR6 where I can use all common commands but I've tried on 2 different CR1000's (One with the latest OS and one with "almost latest OS") - also tried different C-ports all with the same result: I can aquire the address (?!) and change it (aAb!) - So I'm pretty sure I have it wired up correctly but I can't do any measurements.
I'm mainly using the Terminal Emulator but I've tried CRBasic programming.
Any ideas?
Hi Mathias
The same thing happened to me with an SDI level sensor and that has the same programming characteristics as the APOGEE SN-500.
I send you the program with which I could see the values, Diver is the name of my level sensor, I hope it helps you
Regards
Public Diver(4)
Alias Diver(1)=Presion_Diver '0D0!
Alias Diver(2)=PresionDCX '0D3!
Alias Diver(3)=Nivel_Corregido '0D4! (0D0!-0D3!)
Alias Diver(4)=TempAgua '0D1!Units Presion_Diver=[cmH2O]
Units PresionDCX=[cmH2O]
Units Nivel_Corregido=[cm]
Units TempAgua=[c]DataTable(DAT10Min,1,-1)
DataInterval (0,10,Min,10)
Average (1,Presion_Diver,FP2,False)
Average (1,PresionDCX,FP2,False)
Average (1,TempAgua,FP2,False)
EndTable
SlowSequence
Scan (60,Sec,0,0)
SDI12Recorder (Diver(),1,0,"M!",1.0,0)
SDI12Recorder (Presion_Diver,1,0,"D0!",1.0,0)
SDI12Recorder (Diver(2),1,0,"D3!",1.0,0)
SDI12Recorder (Diver(3),1,0,"D4!",1.0,3.8)
SDI12Recorder (Diver(4),1,0,"D1!",1.0,0)
CallTable DAT10Min
NextScan
EndProg
Hello Mathias:
Here is an additional alternative:
In the Apogee Instruments model SN-500-SS sensor manufacturer's manual, there is a detail regarding the sensor wiring, but first you would have to verify the serial number of your sensor by the terminal emulator with the command "aI!”, where a = address current:
a) Wiring for SN-500 with Serial Numbers rango 0 to 1085:
Black ---> SDI-12 (Data line)
Red ---> Power in (4.5 – 24 vdc)
Clear ---> Shiel Wire (G)
b) Wiring for SN-500 with Serial Numbers 1086 and above:
White ---> SDI-12 (Data line)
Red ---> Power in (4.5 – 24 vdc)
Black ---> Ground (G)
Clear ---> Shiel Wire (G)
Then you can check the sensor with the following program for an address "0" (zero), also consider the wiring on the CR1000 datalogger based on the sensor serial number:
Data Line ----> C1
Power In (Red) -----> 12V
Clear / Ground -----> G
I recommend you update your operating system to the current version and do the tests.
'CR1000 datalogger 'SN-500 Net Radiometer sensor 'SWin = Incoming_SW - downwelling shortwave radiation in Watts per square meter 'SWout = Outgoing_SW - upwelling (reflected) shortwave radiation in Watts per square meter 'LWin = Incoming_LW - downwelling longwave radiation in Watts per square meter 'LWout = Incoming_LW - upwelling (emitted) longwave radiation in Watts per square meter 'Net SW = Net Shortwave Radiation in Watts per square meter 'Net LW = Net Longwave Radiation in Watts per square meter 'SWalbedo = Albedo in Watts per square meter 'NR = Net Radiation in Watts per square meter 'Declare Variables and Units Public BattV Public PTemp_C Public SN500Data1(4) Public SN500Data2(2) Public SWalbedo Public NR Alias SN500Data1(1)=SWin Alias SN500Data1(2)=SWout Alias SN500Data1(3)=LWin Alias SN500Data1(4)=LWout Alias SN500Data2(1)=SWnet Alias SN500Data2(2)=LWnet Units BattV=Volts Units PTemp_C=Deg C Units SWalbedo=W/m^2 Units NR=W/m^2 Units SWin=W/m^2 Units SWout=W/m^2 Units LWin=W/m^2 Units LWout=W/m^2 Units SWnet=W/m^2 Units LWnet=W/m^2 'Define Data Tables DataTable(Test,True,-1) DataInterval(0,05,Min,10) Average(1,BattV,FP2,False) Average(1,PTemp_C,FP2,False) Average(1,SWin,FP2,False) Average(1,SWout,FP2,False) Average(1,LWin,FP2,False) Average(1,LWout,FP2,False) Average(1,SWnet,FP2,False) Average(1,LWnet,FP2,False) Average(1,SWalbedo,FP2,False) Average(1,NR,FP2,False) EndTable 'Main Program BeginProg 'Main Scan Scan(1,Sec,1,0) 'Default CR1000 Datalogger Battery Voltage measurement 'BattV' Battery(BattV) 'Default CR1000 Datalogger Wiring Panel Temperature measurement 'PTemp_C' PanelTemp(PTemp_C,_60Hz) 'Call Data Tables and Store Data CallTable Test NextScan SlowSequence 'The scan rate should NOT BE less than 5 seconds, faster rates cause the data table to fail to populate for this sensor model. Scan (5,Sec,3,0) 'SN-500S-S Net Radiometer measurements 'SWin', 'SWout', 'LWin', and 'LWout' SDI12Recorder(SN500Data1(),1,"0","M!",1,0,-1) 'SN-500-SS Net Radiometer measurements 'SWnet' and 'LWnet' SDI12Recorder(SN500Data2(),1,"0","M1!",1,0,-1) 'SN-500-SS Net Radiometer measurement 'SWalbedo' SDI12Recorder(SWalbedo,1,"0","M4!",1,0) 'Calculate Net Radiation 'NR' NR=SWnet+LWnet NextScan EndProg
Good luck and tell us how it goes.
Regards,
Juan Caycho B.
Cheers; both your programs work fine on my CR6 (With changes only to the name of the C-port) but still no luck on my CR1000. I have other SDI-sensors working fine on my CR1000 so it's a bit of a mystery still (Currently I have 2 Gill-sensors with adresses 0 and 1 on C1 and using the GMX500 on C3 with the address 1).
I have borrowed a CR1000X for the project on which it also works fine so I'll continue with that logger. Still strange why the sensor will not work on a CR1000 non-X.
I've been dealing with the SN-500 lately and I feel it's worth re-iterating the sensor needs at least five seconds between queries. One minute is much better, especially if the sdi bus is shared
More specific to your problem: have you used the Terminal Emulator via the Connect screen to monitor SDI-12 comms in real-time?
Hi pokeeffe,
Cheers for the input. Yes; used that Terminal Emulator so I'm sure I haven't stressed the sensor. Gave up using the CR1000 since it works just fine on the CR6 and CR1000X
Mathias