Hi Rudy
The described problems refer to dEX-2 version v2.1.18.
With a screenshot the problem cannot be shown properly, because the window is too small to display the program code.
But below you'll find an example of my configuration as it is saved to a file:
BEGIN"config"
'Generated by new dEX-2
password="immi-mnz"
S1=-40,60,0,1000""
S2=0,100,0,1000""
S3=900,1050,0,5000""
'Manual "Init 1"{
10$(W)="Station4"
'Redefine default settings
PROFILE FUNCTION F1_LABEL="Halt"
PROFILE FUNCTION F1_COMMAND="H"
PROFILE FUNCTION F2_LABEL="Resume"
PROFILE FUNCTION F2_COMMAND="G"
PROFILE FUNCTION F3_LABEL="Copy Data to USB"
PROFILE FUNCTION F3_COMMAND="COPYD dest=A:\?(serial)\ format=dbd archive=y src=B; REMOVEMEDIA"
PROFILE FUNCTION F4_LABEL="Create file"
PROFILE FUNCTION F4_COMMAND="XC"
'Manual}
'Manual "Init 2"{
'Port settings
PROFILE HOST_PORT FUNCTION=SERIAL
PROFILE SERSEN_PORT FUNCTION=SERIAL
ph=9600,N,8,1,NOFC 'host port settings (Sonic)
ps=RS485,9600,N,8,1,NOFC 'serial sensor port settings (DA-Modul)
p15=2 'Do not allow sleep
p22=59 'Data delimiter character: Semikolon
p31=3 'Date format: ISO(YYYY/MM/DD)
p38=46 'Decimal point character: ASCII 46 (.)
p41=0 'Time sub-second digits = 0
/D/T/h/C/n/U 'Format settings: free format (/h) with date (/D), time(/T), channel names (/C) and units (/U), verbose mode (/n)
Y10=0,0.1 'Polynom for rain gauge
1HSC(W,R) 'reset rain counter
2SERIAL("{^M}",W) 'send <CR> to clear Sonic receive buffer
2SERIAL("{AT=3600^M}",W) 'set Sonic internal average interval to maximum value
2SERIAL("{OI=0^M}",W) 'do not report instantaneous values
2SERIAL("{OD=1^M}",W) 'define output data
2SERIAL("{DC=2^M}",W) 'report DiffC as numbers
'Manual}
RS5S
RA"Instant Values"("b:",ALARMS:OV:100KB:W60,DATA:OV:1MB)5S
LOGOFFA
1+V("TT~degC",=1001CV,LM,S1,NA)
1*V("RH~%",=1002CV,LM,S2,NA)
2V("PP~hPa",=1003CV,LM,S3,A,GL50V)
RB"Averaging"("b:",ALARMS:OV:100KB:W60,DATA:OV:90D)1M
LOGONB
'Manual "Sonic Data 1"{
'request Sonic data
20..60CV(W)=0 'clear variables
2SERIAL("\e",W) 'clear receive buffer
2SERIAL("{aa^M}",W) 'send data request
'parsing serial data string
2SERIAL("\m[ x =]%8f[20CV]\m[ y =]%8f[21CV]\m[ z =]%8f[22CV]\m[ T =]%8f[23CV]",=60CV,2,W)
if(60CV==0){2SERIAL("\m[ xsig =]%8f[24CV]\m[ ysig =]%8f[25CV]\m[ zsig =]%8f[26CV]\m[ Tsig =]%8f[27CV]",0.25,W)}
if(60CV==0){2SERIAL("\m[xycov =]%8f[28CV]\m[xzcov =]%8f[29CV]\m[xTcov =]%8f[30CV]",0.25,W)}
if(60CV==0){2SERIAL("\m[yzcov =]%8f[31CV]\m[yTcov =]%8f[32CV]\m[zTcov =]%8f[33CV]",0.25,W)}
if(60CV==0){2SERIAL("\m[ psig =]%8f[34CV]\m[ qsig =]%8f[35CV]\m[ rsig =]%8f[36CV]",0.25,W)}
if(60CV==0){2SERIAL("\m[ tp =]%8f[37CV]\m[ tq =]%8f[38CV]\m[ tr =]%8f[39CV]",0.25,W)}
if(60CV==0){2SERIAL("\m[mgust =]%8f[40CV]\m[thsig =]%8f[41CV]\m[phsig =]%8f[42CV]\m[DiffC =]%8f[43CV]",0.25,W)}
if(60CV==0){2SERIAL("\m[ustar =]%8f[44CV]\m[Tstar =]%8f[45CV]\m[ Cd =]%8f[46CV]",0.25,W)}
'Manual}
'Manual "Sonic Data 2"{
if(60CV==0){2SERIAL("\m[ MOs =]%8f[48CV]\m[ mf =]%8f[49CV]\m[ hf =]%8f[50CV]\m[ nrb =]%8f[51CV]",0.25,W)}
if(60CV==0){2SERIAL("\m[ u =]%8f[52CV]\m[ v =]%8f[53CV]\m[ w =]%8f[54CV]",0.25,W)}
if(60CV==0){2SERIAL("\m[ vel =]%8f[55CV]\m[ dir =]%8f[56CV]\m[ svel =]%8f[57CV]\m[ sdir =]%8f[58CV]",0.25,W)}
20CV("x~m/s",FF2)
21CV("y~m/s",FF2)
22CV("z~m/s",FF2)
23CV("T~degC",FF2)
24CV("xsig~m/s",FF4)
25CV("ysig~m/s",FF4)
26CV("zsig~m/s",FF4)
27CV("Tsig~degC",FF4)
28CV("xycov~m^2/s^2",FF4)
29CV("xzcov~m^2/s^2",FF4)
30CV("xTcov~mK/s",FF4)
31CV("yzcov~m^2/s^2",FF4)
32CV("yTcov~mK/s",FF4)
33CV("zTcov~mK/s",FF4)
34CV("psig~m/s",FF4)
35CV("qsig~m/s",FF4)
36CV("rsig~m/s",FF4)
37CV("tp",FF4)
38CV("tq",FF4)
39CV("tr",FF4)
40CV("mgust~m/2",FF2)
41CV("thsig~deg",FF1)
42CV("phsig~deg",FF1)
43CV("DiffC",FF0)
44CV("ustar~m/s",FF4)
45CV("Tstar~K",FF4)
46CV("Cd",FF5)
48CV("MOs~m^-1",FF4)
49CV("mf~kg/ms^2",FF3)
'Manual}
'Manual "Sonic Data 3"{
50CV("hf~W/m^2",FF3)
51CV("nrb~W/m^2",FF3)
52CV("u~m/s",FF2)
53CV("v~m/s",FF2)
54CV("w~m/s",FF2)
55CV("vel~m/s",FF2)
56CV("dir~deg",FF1)
57CV("svel~m/s",FF2)
58CV("sdir~deg",FF1)
'Manual}
'Manual "Sonic Time Sync"{
'setting Sonic RTC
20SV(=1CV,W)
21SV(=2CV,W)
22SV(=3CV,W)
3CV(W)=3CV%100
3ST(=4CV,W)
2ST(=5CV,W)
1ST(=6CV,W)
2SERIAL("{TI=%2.2d[1CV].%2.2d[2CV].%2.2d[3CV] %2.2d[4CV]:%2.2d[5CV]:%2.2d[6CV]^M}",W)
'Manual}
'Manual "TT_AV"{
1001CV("TT~degC",AV,FF2,ND)
'Manual}
'Manual "RH_AV"{
1002CV("RH~%",AV,FF1,ND)
'Manual}
'Manual "PP_AV"{
1003CV("PP~hPa",AV,FF1,ND)
'Manual}
RC"Tagesdatei"("b:",ALARMS:OV:100KB:W60,DATA:OV:1MB)[0:59:23:*:*:*]
LOGONC
'Manual "CSV erzeugen"{
LOGOFFC
DO{COPYD dest=B:\JOBS\CONFIG\CSV\?(timestamp).csv sched=B data=Y alarms=N start=new}
'Manual}
RD"AnalogOut"("b:",ALARMS:OV:100KB:W60,DATA:OV:1MB)1M
LOGOFFD
'Manual "WriteAOut"{
'Messwerte auf 0...100% normieren
2001CV(W)=55CV*2.5
2001CV(W)=(2001CV<0)?0:((2001CV>100)?100:2001CV)
2002CV(W)=56CV*10/36
2002CV(W)=(2002CV<0)?0:((2002CV>100)?100:2002CV)
2003CV(W)=1001CV+40
2003CV(W)=(2003CV<0)?0:((2003CV>100)?100:2003CV)
2004CV(W)=1002CV
2004CV(W)=(2004CV<0)?0:((2004CV>100)?100:2004CV)
2005CV(W)=(1003CV-900)*10/15
2005CV(W)=(2005CV<0)?0:((2005CV>100)?100:2005CV)
'DA-Modul M-7028 ansteuern:
'Empfangsbuffer löschen, Daten schreiben, 250ms warten
1serial("\e{#010+%06.2f[2001CV]^M}\w[250]",W)
1serial("\e{#011+%06.2f[2002CV]^M}\w[250]",W)
1serial("\e{#012+%06.2f[2003CV]^M}\w[250]",W)
1serial("\e{#013+%06.2f[2004CV]^M}\w[250]",W)
1serial("\e{#014+%06.2f[2005CV]^M}\w[250]",W)
'Manual}
END
Regards
Jürgen
Hi Rudy
The described problems refer to dEX-2 version v2.1.18.
With a screenshot the problem cannot be shown properly, because the window is too small to display the program code.
But below you'll find an example of my configuration as it is saved to a file:
````
BEGIN"config"
'Generated by new dEX-2
password="immi-mnz"
S1=-40,60,0,1000""
S2=0,100,0,1000""
S3=900,1050,0,5000""
'Manual "Init 1"{
10$(W)="Station4"
'Redefine default settings
PROFILE FUNCTION F1_LABEL="Halt"
PROFILE FUNCTION F1_COMMAND="H"
PROFILE FUNCTION F2_LABEL="Resume"
PROFILE FUNCTION F2_COMMAND="G"
PROFILE FUNCTION F3_LABEL="Copy Data to USB"
PROFILE FUNCTION F3_COMMAND="COPYD dest=A:\?(serial)\ format=dbd archive=y src=B; REMOVEMEDIA"
PROFILE FUNCTION F4_LABEL="Create file"
PROFILE FUNCTION F4_COMMAND="XC"
'Manual}
'Manual "Init 2"{
'Port settings
PROFILE HOST_PORT FUNCTION=SERIAL
PROFILE SERSEN_PORT FUNCTION=SERIAL
ph=9600,N,8,1,NOFC 'host port settings (Sonic)
ps=RS485,9600,N,8,1,NOFC 'serial sensor port settings (DA-Modul)
p15=2 'Do not allow sleep
p22=59 'Data delimiter character: Semikolon
p31=3 'Date format: ISO(YYYY/MM/DD)
p38=46 'Decimal point character: ASCII 46 (.)
p41=0 'Time sub-second digits = 0
/D/T/h/C/n/U 'Format settings: free format (/h) with date (/D), time(/T), channel names (/C) and units (/U), verbose mode (/n)
Y10=0,0.1 'Polynom for rain gauge
1HSC(W,R) 'reset rain counter
2SERIAL("{^M}",W) 'send <CR> to clear Sonic receive buffer
2SERIAL("{AT=3600^M}",W) 'set Sonic internal average interval to maximum value
2SERIAL("{OI=0^M}",W) 'do not report instantaneous values
2SERIAL("{OD=1^M}",W) 'define output data
2SERIAL("{DC=2^M}",W) 'report DiffC as numbers
'Manual}
RS5S
RA"Instant Values"("b:",ALARMS:OV:100KB:W60,DATA:OV:1MB)5S
LOGOFFA
1+V("TT~degC",=1001CV,LM,S1,NA)
1*V("RH~%",=1002CV,LM,S2,NA)
2V("PP~hPa",=1003CV,LM,S3,A,GL50V)
RB"Averaging"("b:",ALARMS:OV:100KB:W60,DATA:OV:90D)1M
LOGONB
'Manual "Sonic Data 1"{
'request Sonic data
20..60CV(W)=0 'clear variables
2SERIAL("\e",W) 'clear receive buffer
2SERIAL("{aa^M}",W) 'send data request
'parsing serial data string
2SERIAL("\m[ x =]%8f[20CV]\m[ y =]%8f[21CV]\m[ z =]%8f[22CV]\m[ T =]%8f[23CV]",=60CV,2,W)
if(60CV==0){2SERIAL("\m[ xsig =]%8f[24CV]\m[ ysig =]%8f[25CV]\m[ zsig =]%8f[26CV]\m[ Tsig =]%8f[27CV]",0.25,W)}
if(60CV==0){2SERIAL("\m[xycov =]%8f[28CV]\m[xzcov =]%8f[29CV]\m[xTcov =]%8f[30CV]",0.25,W)}
if(60CV==0){2SERIAL("\m[yzcov =]%8f[31CV]\m[yTcov =]%8f[32CV]\m[zTcov =]%8f[33CV]",0.25,W)}
if(60CV==0){2SERIAL("\m[ psig =]%8f[34CV]\m[ qsig =]%8f[35CV]\m[ rsig =]%8f[36CV]",0.25,W)}
if(60CV==0){2SERIAL("\m[ tp =]%8f[37CV]\m[ tq =]%8f[38CV]\m[ tr =]%8f[39CV]",0.25,W)}
if(60CV==0){2SERIAL("\m[mgust =]%8f[40CV]\m[thsig =]%8f[41CV]\m[phsig =]%8f[42CV]\m[DiffC =]%8f[43CV]",0.25,W)}
if(60CV==0){2SERIAL("\m[ustar =]%8f[44CV]\m[Tstar =]%8f[45CV]\m[ Cd =]%8f[46CV]",0.25,W)}
'Manual}
'Manual "Sonic Data 2"{
if(60CV==0){2SERIAL("\m[ MOs =]%8f[48CV]\m[ mf =]%8f[49CV]\m[ hf =]%8f[50CV]\m[ nrb =]%8f[51CV]",0.25,W)}
if(60CV==0){2SERIAL("\m[ u =]%8f[52CV]\m[ v =]%8f[53CV]\m[ w =]%8f[54CV]",0.25,W)}
if(60CV==0){2SERIAL("\m[ vel =]%8f[55CV]\m[ dir =]%8f[56CV]\m[ svel =]%8f[57CV]\m[ sdir =]%8f[58CV]",0.25,W)}
20CV("x~m/s",FF2)
21CV("y~m/s",FF2)
22CV("z~m/s",FF2)
23CV("T~degC",FF2)
24CV("xsig~m/s",FF4)
25CV("ysig~m/s",FF4)
26CV("zsig~m/s",FF4)
27CV("Tsig~degC",FF4)
28CV("xycov~m^2/s^2",FF4)
29CV("xzcov~m^2/s^2",FF4)
30CV("xTcov~mK/s",FF4)
31CV("yzcov~m^2/s^2",FF4)
32CV("yTcov~mK/s",FF4)
33CV("zTcov~mK/s",FF4)
34CV("psig~m/s",FF4)
35CV("qsig~m/s",FF4)
36CV("rsig~m/s",FF4)
37CV("tp",FF4)
38CV("tq",FF4)
39CV("tr",FF4)
40CV("mgust~m/2",FF2)
41CV("thsig~deg",FF1)
42CV("phsig~deg",FF1)
43CV("DiffC",FF0)
44CV("ustar~m/s",FF4)
45CV("Tstar~K",FF4)
46CV("Cd",FF5)
48CV("MOs~m^-1",FF4)
49CV("mf~kg/ms^2",FF3)
'Manual}
'Manual "Sonic Data 3"{
50CV("hf~W/m^2",FF3)
51CV("nrb~W/m^2",FF3)
52CV("u~m/s",FF2)
53CV("v~m/s",FF2)
54CV("w~m/s",FF2)
55CV("vel~m/s",FF2)
56CV("dir~deg",FF1)
57CV("svel~m/s",FF2)
58CV("sdir~deg",FF1)
'Manual}
'Manual "Sonic Time Sync"{
'setting Sonic RTC
20SV(=1CV,W)
21SV(=2CV,W)
22SV(=3CV,W)
3CV(W)=3CV%100
3ST(=4CV,W)
2ST(=5CV,W)
1ST(=6CV,W)
2SERIAL("{TI=%2.2d[1CV].%2.2d[2CV].%2.2d[3CV] %2.2d[4CV]:%2.2d[5CV]:%2.2d[6CV]^M}",W)
'Manual}
'Manual "TT_AV"{
1001CV("TT~degC",AV,FF2,ND)
'Manual}
'Manual "RH_AV"{
1002CV("RH~%",AV,FF1,ND)
'Manual}
'Manual "PP_AV"{
1003CV("PP~hPa",AV,FF1,ND)
'Manual}
RC"Tagesdatei"("b:",ALARMS:OV:100KB:W60,DATA:OV:1MB)[0:59:23:*:*:*]
LOGONC
'Manual "CSV erzeugen"{
LOGOFFC
DO{COPYD dest=B:\JOBS\CONFIG\CSV\?(timestamp).csv sched=B data=Y alarms=N start=new}
'Manual}
RD"AnalogOut"("b:",ALARMS:OV:100KB:W60,DATA:OV:1MB)1M
LOGOFFD
'Manual "WriteAOut"{
'Messwerte auf 0...100% normieren
2001CV(W)=55CV*2.5
2001CV(W)=(2001CV<0)?0:((2001CV>100)?100:2001CV)
2002CV(W)=56CV*10/36
2002CV(W)=(2002CV<0)?0:((2002CV>100)?100:2002CV)
2003CV(W)=1001CV+40
2003CV(W)=(2003CV<0)?0:((2003CV>100)?100:2003CV)
2004CV(W)=1002CV
2004CV(W)=(2004CV<0)?0:((2004CV>100)?100:2004CV)
2005CV(W)=(1003CV-900)*10/15
2005CV(W)=(2005CV<0)?0:((2005CV>100)?100:2005CV)
'DA-Modul M-7028 ansteuern:
'Empfangsbuffer löschen, Daten schreiben, 250ms warten
1serial("\e{#010+%06.2f[2001CV]^M}\w[250]",W)
1serial("\e{#011+%06.2f[2002CV]^M}\w[250]",W)
1serial("\e{#012+%06.2f[2003CV]^M}\w[250]",W)
1serial("\e{#013+%06.2f[2004CV]^M}\w[250]",W)
1serial("\e{#014+%06.2f[2005CV]^M}\w[250]",W)
'Manual}
END
````
Regards
Jürgen