我们的完整技术支持人员不会监控此论坛。如果您需要员工成员的帮助,请从询问页面提交您的问题


登录或者注册在论坛中发布/答复。

filerename与多个TableFile和RTime(x)标记


Benjamin.vial. 2019年4月16日02:31 PM

你好,

我不能成功让一个节目做一个比较简单的事情:

记录TableFile每x时间(在现实生活中24小时,在我的测试1分钟内)并制作表文件,然后使用包含时间制作者的特定格式重命名此表文件。

这是我的代码:

CR1000声明变量和常量QL单位= 90的队列缓冲区大小- 1文件/的90天时间de缓冲公共Outstat布尔常量LoggerID =“avon”公共rTime(9)别名rTime(1) =一年'分配别名年rTime(1)别名rTime (9) = Day_of_Year '分配别名Day_of_Year rTime(9)公共BattV Pubbyelic PTemp_C公共T107_C_1Public T107_C_2 Public T107_C_3 Public T107_C_4 Public T107_C_5 Public T107_C_6 Public T107_C_7 Public SR50A(2) Public TCDT Public DBTCDT Public BP_kPa Public Rain_mm Public WS_ms Public WindDir Public LCount Public DiffV(9) Public Mult(9)={1,1,1,1,1,1,1,1,1} Public Offs(9)={0,0,0,0,0,0,0,0,0} Alias SR50A(1)=DT Alias SR50A(2)=Q Units BattV=Volts Units PTemp_C=Deg C Units T107_C_1=Deg C Units T107_C_2=Deg C Units T107_C_3=Deg C Units T107_C_4=Deg C Units T107_C_5=Deg C Units T107_C_6=Deg C Units T107_C_7=Deg C Units BP_kPa=kPa Units Rain_mm=mm Units WS_ms=meters/second Units WindDir=degrees Units DiffV=mV 'Define Data Tables DataTable(meteo,True,-1) RealTime( rTime ) DataInterval(0,1,Min,10) Average(1,PTemp_C,FP2,False) Average(1,T107_C_1,FP2,False) Sample(1,DT,FP2) Sample(1,Q,FP2) Sample(1,TCDT,FP2) Sample(1,DBTCDT,FP2) Average(1,BP_kPa,FP2,False) Totalize(1,Rain_mm,FP2,False) Average(1,WS_ms,FP2,False) Maximum(1,WS_ms,FP2,False,True) WindVector(1,WS_ms,WindDir,FP2,False,10,0,0) FieldNames("WS_ms_S_WVT,WindDir_D1_WVT,WindDir_SD1_WVT") TableFile ("USR:meteo",8,-1,0,1,Min,Outstat,0) FileRename("USR:meteo0.dat","USR:"+Year+"_"+Day_of_Year+"_"+rTime(4)+"_"+rTime(5)+"_meteo_"+LoggerID+".dat") EndTable DataTable(hydro,True,-1) 'RealTime( rTime ) DataInterval(0,1,Min,10) Minimum(1,BattV,FP2,False,False) Average(1,T107_C_1,FP2,False) Average(1,T107_C_2,FP2,False) Average(1,T107_C_3,FP2,False) Average(1,T107_C_4,FP2,False) Average(1,T107_C_5,FP2,False) Average(1,T107_C_6,FP2,False) Average(1,T107_C_7,FP2,False) Average(1,DiffV(1),FP2,False) Average(1,DiffV(2),FP2,False) Average(1,DiffV(3),FP2,False) Average(1,DiffV(4),FP2,False) Average(1,DiffV(5),FP2,False) Average(1,DiffV(6),FP2,False) Average(1,DiffV(7),FP2,False) Average(1,DiffV(8),FP2,False) Average(1,DiffV(9),FP2,False) TableFile ("USR:hydro",8,-1,0,1,Min,Outstat,0) FileRename("USR:hydro0.dat","USR:"+Year+"_"+Day_of_Year+"_"+rTime(4)+"_"+rTime(5)+"_hydro_"+LoggerID+".dat") EndTable DataTable(soh,True,-1) 'RealTime( rTime ) DataInterval(0,1,Min,10) Average(1,BattV,FP2,False) Maximum(1,BattV,FP2,False,False) Minimum(1,BattV,FP2,False,False) Average(1,PTemp_C,FP2,False) Maximum(1,PTemp_C,FP2,False,True) TableFile ("USR:soh",8,-1,0,1,Min,Outstat,0) FileRename("USR:soh0.dat","USR:"+Year+"_"+Day_of_Year+"_"+rTime(4)+"_"+rTime(5)+"_soh_"+LoggerID+".dat") EndTable 'Main Program BeginProg SetStatus("USRDriveSize",1000000) 'pour CR1000 uniquement 'Main Scan Scan(10,Sec,1,0) 'Default Datalogger Battery Voltage measurement 'BattV' Battery(BattV) 'Default Wiring Panel Temperature measurement 'PTemp_C' PanelTemp(PTemp_C,_60Hz) '107 Temperature Probe (CSL) measurement 'T107_C_1' Therm107(T107_C_1,1,1,1,0,_60Hz,1,0) '107 Temperature Probe (CSL) measurement 'T107_C_2' Therm107(T107_C_2,1,2,1,0,_60Hz,1,0) '107 Temperature Probe (CSL) measurement 'T107_C_3' Therm107(T107_C_3,1,3,1,0,_60Hz,1,0) '107 Temperature Probe (CSL) measurement 'T107_C_4' Therm107(T107_C_4,1,4,1,0,_60Hz,1,0) '107 Temperature Probe (CSL) measurement 'T107_C_5' Therm107(T107_C_5,1,5,2,0,_60Hz,1,0) '107 Temperature Probe (CSL) measurement 'T107_C_6' Therm107(T107_C_6,1,6,2,0,_60Hz,1,0) '107 Temperature Probe (CSL) measurement 'T107_C_7' Therm107(T107_C_7,1,7,2,0,_60Hz,1,0) 'SR50A Sonic Ranging Sensor (SDI-12 Output) measurements 'DT', 'Q', 'TCDT', and 'DBTCDT' SDI12Recorder(SR50A(),7,"0","M1!",1,0) TCDT=DT*SQR((PTemp_C+273.15)/273.15) DBTCDT=1.60-TCDT 'CS106 Barometric Pressure Sensor measurement 'BP_kPa' If TimeIntoInterval(59,60,Min) Then PortSet(3,1) If TimeIntoInterval(0,60,Min) Then VoltSE(BP_kPa,1,mV2500,10,1,0,_60Hz,0.240,591.7104) BP_kPa=BP_kPa*0.1 PortSet(3,0) EndIf '52202/52203 Rain Gage (CSL) measurement 'Rain_mm' PulseCount(Rain_mm,1,1,2,0,0.1,0) '05103 Wind Speed & Direction Sensor (CSL) measurements 'WS_ms' and 'WindDir' PulseCount(WS_ms,1,2,1,1,0.098,0) BrHalf(WindDir,1,mV2500,11,2,1,2500,True,0,_60Hz,355,0) If WindDir>=360 Or WindDir<0 Then WindDir=0 'Turn AM16/32 Multiplexer On PortSet(2,1) Delay(0,150,mSec) LCount=1 SubScan(0,uSec,9) 'Switch to next AM16/32 Multiplexer channel PulsePort(1,10000) 'Generic Differential Voltage measurements 'DiffV()' on the AM16/32 Multiplexer VoltDiff(DiffV(LCount),1,mV250,7,True,0,_60Hz,Mult(LCount),Offs(LCount)) LCount=LCount+1 NextSubScan 'Turn AM16/32 Multiplexer Off PortSet(2,0) Delay(0,150,mSec) 'Call Data Tables and Store Data CallTable meteo CallTable hydro CallTable soh NextScan SlowSequence Scan (10,Sec,3,0) NetworkTimeProtocol ("51.255.197.148",0,100) 'ntp.pool... RealTime(rTime) ' Call Rename EndSequence NextScan EndProg

我试图将“filerename”函数放在sub序列中,在主要的慢速序列中,既不工作。

我想念的东西?

谢谢,

再见。


jdavis. 2019年4月17日03:50 PM

在扫描中使用outstat触发何时重命名该文件。在TableFile中使用String变量进行最后一个文件名。使用作为filerename中的旧文件名。

代码应该进入扫描。

如果outstat然后filerename(lastfilename,“usr:”+年+“_”+ day_of_year +“_”+立方(4)+“_”+立方(5)+“_ soh _”+ loggerid +“。dat”)结束


Benjamin.vial. 2019年4月18日07:38 AM

你好,

是的,很完美,现在可以用了。

我做了3个最后的芬太名(1,2和3)和3 outstat(相同)变量,对于我的3 tablefile,我'不确定这是更好的方式,但至少有效!

谢谢Jdavis。


Benjamin.vial. 2019年11月12日02:09 PM

你好,

嗯,我已经收回了另一个坎贝尔:CR310。

这是工作,但只用于创建的第一个文件。在这些文件之后,只需获取一个要递增的数字(file2.dat, file3.dat,等等)。

这是我的代码:

'声明变量和单位公共Battv public ptemp_c public buct fons bult poggerid =“har2”public outstat1作为布尔公共outstat2作为boolean public lastfilename1作为字符串* 20 prose lastfilename2作为字符串* 20公共立方(9)单位battv = volts单位ptemp_c = degC单位Halfbr = MV / MV'定义数据表DataTable(Extenso,True,-1)Datainerval(0,1,Min,10)平均(1,Battv,FP2,False)平均(1,HAPRBR,FP2,FALSE)Stddev(1,halfbr,fp2,false)tablefile(“cpu:exten”,8,-1,0,10,min,outstat1,lastfilename1)可结转DataTable(SOH,True,-1)Datainerval(0,1,Min,10)最小(1,battv,fp2,false,false)最小(1,ptemp_c,fp2,false)tablefile(“cpu:soh”,8,-1,0,10,min,outstat2,lastfilename2)最终的“主程序BeginProg”主扫描扫描(10,SEC,1,0)'默认CR300 Datalogger电池电压测量'Battv电池(Battv)'默认CR300 Datalogger处理器温度测量'PTEMP_C'PanelTemp(PTEMP_C,4000)'通用半桥测量'Brhalf(Halfbr,1,MV2500,1,VX1,1,2500,False,500,50,1,0)'呼叫数据表和存储数据呼叫数据呼叫extenso Soh如果outstat1然后filerename(lastfilename1,“cpu:”+立方(1)+“_”+立方(9)+“_“+立方(4)+”_“+立方(5)+”_ extenso _“+ loggerid +”。dat“)结束如果outstat2然后filerename(lastfilename2,”cpu:“+立方(1)+”_“+立方(9)+“_”+立方(4)+“_”+立方(5)+“_ soh _”+ loggerid +“。dat”)结束nextscan strequence扫描(10,sec,3,0)NetworkTimeProtocol(“51.255。197.148“,0,100)'ntp.pool ...实时(运行时间)结束序列NextScan EndProg

我在哪里错了?

再次,我每10分钟投入唱片,但在该领域将是24小时。

再见。


Benjamin.vial. 2019年11月13日01:37 PM

小补充:

如果我在CR3100中使用Device Configuration Utility删除数据文件,则下一个文件很好地创建,下一个文件错误。

我无法弄清楚Prog中出现了什么问题。


Benjamin.vial. 2019年11月13日01:58 PM

好吧,我找到了。非常偷偷摸摸,它是结束程序前的三行:我在旁边之前关闭了慢速序列。

只是颠倒这两条线,它的工作。

有时……


andreadale. 9月23日,2021年09:14 AM

这篇职位正在审查。

登录或者注册在论坛中发布/答复。
Baidu