Hi, I'm streaming data from 3 table to a server via SFTP, with CR6-WiFi. Slow and Stat table update every 1 sec. Sonic table updates every 50msec (Sonic anemometer data).
With this three different slowsequence the filename on server changes correctly at Midnight and the file starts with 00:00:00 and end with 23:59:59.95 as I want. I obtain one file a day for each table.
BeginProg
sftp_flag = True
Scan (50,mSec,1200,0)
VoltSe(u_1,1,mV5000,U1,False,200,15000,0.02,-50) '-20)
VoltSe(v_1,1,mV5000,U2,False,200,15000,0.02,-50) '-20)
VoltSe(w_1,1,mV5000,U3,False,200,15000,0.02,-50) '-20)
VoltSe(Ts_1,1,mV5000,U4,False,200,15000,0.022,-40)
VoltSe(u_2,1,mV5000,U5,False,200,15000,0.02,-50) '-20)
VoltSe(v_2,1,mV5000,U6,False,200,15000,0.02,-50) '-20)
VoltSe(w_2,1,mV5000,U7,False,200,15000,0.02,-50) '-20)
VoltSe(Ts_2,1,mV5000,U8,False,200,15000,0.022,-40)
CallTable Sonic
NextScan
SlowSequence
Scan(1,Sec,10,0)
'Default CR6 Datalogger Battery Voltage measurement 'BattV'
Battery(BattV)
VoltSe(AirTC1,1,mV1000,U10,False,0,15000,0.1,-40)
VoltSe(RH1,1,mV1000,U9,False,0,15000,0.1,0)
If RH1>100 AND RH1<103 Then RH1=100
VoltSe(AirTC2,1,mV1000,U12,False,0,15000,0.1,-40)
VoltSe(RH2,1,mV1000,U11,False,0,15000,0.1,0)
If RH2>100 AND RH2<103 Then RH2=100
CallTable Slow
CallTable Stat
CallTable Avg
NextScan
EndSequence
SlowSequence
Scan(30,Min,10,0)
If sftp_flag Then
date_sonic = Mid(Sonic.Timestamp(5,12000),1,10)
FTPResult3=FTPClient(IPAddress,UserName,Password,"Sonic","Sonic_" & date_sonic & ".dat",28,0,0,Min,-1008)
EndIf
NextScan
EndSequence
SlowSequence
Scan(30,Min,10,0)
If sftp_flag Then
date_slow = Mid(Slow.Timestamp(5,600),1,10)
FTPResult=FTPClient(IPAddress,UserName,Password,"Slow","Slow_" & date_slow & ".dat",28,0,0,Min,-1008)
EndIf
NextScan
EndSequence
SlowSequence
Scan(30,Min,10,0)
'Send to server
If sftp_flag Then
date_stat = Mid(Stat.Timestamp(5,600),1,10)
FTPResult2=FTPClient(IPAddress,UserName,Password,"Stat","Stat_" & date_stat & ".dat",28,0,0,Min,-1008)
EndIf
NextScan
EndSequence
EndProg
But there is bug: sometimes, only the Sonic table file on server looks like (look at datetime column):
"2025-10-23 20:54:01.7",114807,0.234,0.217,0.473,23.86,0.02,0.193,0.241,25.09 "2025-10-23 20:54:01.75",114808,0.266,0.209,0.159,23.84,0.025,0.187,0.244,25.09 "2025-10-23 20:54:01.8",114809,0.15,0.183,0.154,23.78,0.026,0.185,0.247,25.1 "2025-10-23 20:54:01.85",114810,0.093,0.178,0.103,23.86,0"2025-10-23 20:30:00",85973,0.216,0.182,0.161,23.81,0.024,0.193,0.245,25.09 "2025-10-23 20:30:00.05",85974,0.394,0.18,0.168,23.83,0.026,0.189,0.24,25.09 "2025-10-23 20:30:00.1",85975,0.062,0.178,-0.032,23.85,0.018,0.193,0.239,25.09 "2025-10-23 20:30:00.15",85976,-0.027,0.199,0.476,23.82,0.025,0.187,0.244,25.09 "2025-10-23 20:30:00.2",85977,0.158,0.224,0.127,23.81,0.027,0.193,0.244,25.09 "2025-10-23 20:30:00.25",85978,0.36,0.196,0.143,23.82,0.019,0.192,0.25,25.08
I think is due to the high frequency of callTable Sonic. I have tried using TriggerSequence to enter the FTPClient() sequence, insteas using Scan. It didn't risolve the bug. What can I do?
Scan (50,mSec,1200,0)
VoltSe(u_1,1,mV5000,U1,False,200,15000,0.02,-50) '-20)
VoltSe(v_1,1,mV5000,U2,False,200,15000,0.02,-50) '-20)
VoltSe(w_1,1,mV5000,U3,False,200,15000,0.02,-50) '-20)
VoltSe(Ts_1,1,mV5000,U4,False,200,15000,0.022,-40)
VoltSe(u_2,1,mV5000,U5,False,200,15000,0.02,-50) '-20)
VoltSe(v_2,1,mV5000,U6,False,200,15000,0.02,-50) '-20)
VoltSe(w_2,1,mV5000,U7,False,200,15000,0.02,-50) '-20)
VoltSe(Ts_2,1,mV5000,U8,False,200,15000,0.022,-40)
CallTable Sonic
If TimeIntoInterval(0,30,Min) Then
TriggerSequence (2,0)
EndIf
NextScan
'slowsequence 1
SlowSequence 'Slowseq 2
Do
WaitTriggerSequence
date_sonic = Mid(Sonic.Timestamp(5,12000),1,10)
FTPResult3=FTPClient(IPAddress,UserName,Password,"Sonic","Sonic_" & date_sonic & ".dat",28,0,0,Min,-1008)
Loop
EndSequence