Our full technical support staff does not monitor this forum. If you need assistance from a member of our staff, please submit your question from the Ask a Question page.


Log in or register to post/reply in the forum.

Paroscientific 6022 Serial Transmitter Reads NAN after power failure


greyyone Nov 4, 2020 09:52 PM

I have recently upgraded from CR10(x) to CR1000 and CR1000x for my weather stations. I also upgraded my Paroscientific 6022 pressure transmitters from RS232 to Serial communications. I used Paroscientifics document on how to program the CR1000(x) to work with the transmitters. Everything works fine until the station loses power (they are on solar and battery). When the solar kicks in the program is rebooted but the transmitters now read NAN and the only way I can get them to read again is visiting the site and physically disconnecting the wires from C1, C2, Power and Ground. Even then this sometimes doesn't work. I can plug in my laptop and using Paroscientifics software (DQI3) the transmitter reads correctly. 

Using terminal emulator and inputting W, 9, Y the transmit is working correctly but I either get wierd characters for the Receive or nothing at all. 

All dataloggers OS are updated to latest version. Most of the stations have a T107 temp sensor as well as a Cell210 modem connected to the C/S IO port. 

For the transmitter to the datalogger, pin 9 is power, pin 5 is ground and pins 2 and 3 are tx/rx. Everything works fine as long as I don't lose power. As soon as power is lost something locks up in the datalogger I assume. 

Do the newer serial commands work better and if so how do you get to work with a paroscientific transmitter? 

I have the transmitter setup according to their manual for the correct stop bits, parity and ID. Read time 26 seconds. 

This is from Tech Support at Paroscientific:

8.1.5.4.3 Switch Bounce and NAN

NAN will be the result of a TimerIO() measurement if one of two conditions

occurs:

1. timeout expires

2. a signal on the channel is too fast (> 3 KHz) When the input channel experiences this type of signal, the CR1000 operating system disables the interrupt that is capturing the precise time until the next scan is serviced. This is done so that the CR1000 does not get bogged down in interrupts. An small RC filter retrofitted to the sensor switch should fix the problem.

Here is my program.Any help would be appreciated. 

'Program name: C:\tmp\Station Database\PROGRAMS\bryan_1.0.CR1
'Date written: 6/22/2018
'Transform Version: 0.5
'Transform file: C:\Program Files (x86)\Campbellsci\LoggerNet\CR10X.TRN Version: 1.1
'
'This program was converted from C:\tmp\Station Database\PROGRAMS\bryan.dld
'using Campbell Scientific's Transformer application.
Public OutString As String * 100
Public InString As String * 100

'\\\\\\\\\\\\\\\\\\\\\\\\\ DECLARATIONS /////////////////////////
Public Flag(1) As Boolean
Alias Flag(1) = Measure
'Dim i
Public CR10_VOLT
Public TELEM_VOL
Public MOD_TEMP
Public PPT_CORR
Public AIR_TEMP
Public PPT_RAW
Public PPT_STR
Public PPT_MODIFIER
Public STA_ID as long

'\\\\\\\\\\\\\\\\\\\\\\\\ OUTPUT SECTION ////////////////////////

DataTable(Table115,true,-1)
OpenInterval
DataInterval(0,15,Min,10)
CardOut (0 ,-1 )
Average(1, PPT_CORR, FP2, 0)
Average(1, PPT_RAW, FP2, 0)
Average(1, PPT_STR, FP2, 0)
EndTable
DataTable(Table160,true,-1)
OpenInterval
DataInterval(0,60,Min,10)
CardOut (0 ,-1 )
Average(1, PPT_CORR, FP2, 0)
Average(1, AIR_TEMP, FP2, 0)
EndTable
DataTable(Table124,true,-1)
OpenInterval
DataInterval(0,1440,Min,10)
CardOut (0 ,-1 )
'Average(1, STA_ID, FP2, 0)
Sample(1, STA_ID, IEEE4)
Average(1, CR10_VOLT, FP2, 0)
Maximum(1, CR10_VOLT, FP2, 0, False)
Minimum(1, CR10_VOLT, FP2, 0, False)
Average(1, TELEM_VOL, FP2, 0)
Maximum(1, TELEM_VOL, FP2, 0, False)
Minimum(1, TELEM_VOL, FP2, 0, False)
Average(1, MOD_TEMP, FP2, 0)
Average(1, AIR_TEMP, FP2, 0)
Maximum(1, AIR_TEMP, FP2, 0, False)
Minimum(1, AIR_TEMP, FP2, 0, False)
EndTable

'\\\\\\\\\\\\\\\\\\\\\\\\\ SUBROUTINES //////////////////////////

Sub ReadPPT
'Read Pressure Transducer - Paroscientific
OutString = "*0100P3"+CHR(13)+CHR(10)
'Send Pressure string over one communication port C1 (COM1 TX).
SerialOut (Com1,OutString,"",0,500)

'Receive String on port C2 (COM1 RX).
SerialIn (InString,Com1,500,10,100) 'Receive timeout is 5 secs. Change if needed.

SplitStr (PPT_RAW,InString,"*0001",1,4)
PPT_RAW = PPT_RAW * 27.68
PPT_STR = PPT_RAW + PPT_MODIFIER
PPT_CORR = PPT_STR * 0.9077

EndSub

Sub ReadVoltages
Battery(CR10_VOLT)
VoltSe(TELEM_VOL, 1, mV2500, 6, False, 0, 250, 0.01, 0)
EndSub

Sub ReadTemps
PanelTemp(MOD_TEMP, 250)
Therm107(AIR_TEMP,1,3,VX2,0,_60Hz,1,0)

EndSub
'\\\\\\\\\\\\\\\\\\\\\\\\\\\ PROGRAM ////////////////////////////

BeginProg
SerialOpen(Com1,9600,0,0,10000)
Scan(60,Sec, 3, 0)
STA_ID = 30016
PPT_MODIFIER =-18.81
ReadVoltages
ReadTemps
'If TimeIntoInterval(0,5,Min) OR Measure = True
ReadPPT
'Measure = True
'ReadSoilMoisture
'EndIf
CallTable Table115
CallTable Table160
CallTable Table124


NextScan

EndProg

 

Log in or register to post/reply in the forum.