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.

FTP Streaming with High frequency table


FedeJack Oct 30, 2025 07:44 AM

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

 

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