James Brooks, 5/20/2010, Revision 0

advertisement
James Brooks, 5/20/2010, Revision 0
This file is a COM port sniffer session record during Vaisala MI70 Link (SW) communication with Vaisala
HM70 instrument/HMP70 probe.
Key:
Yellow = Send
Green = Receive
Blue = Notes
Serial Port Settings:
Termination: \n, (LF, &H0A, ASC(10))
Timeout: 100 ms
Baud: 19200 (default is 9600)
Data bits: 8
Parity: none
Stop bits: 1
Flow control: Xon/Xoff
Communication:
1.) Loop send [SUB][CR] up to 200 times. Monitor receive register. Received data always ends with [SUB].
ÿ<CR>
...loop <=200 times &H255+&H13 to get HM70 attention...
ÿ<CR>
<CR><LF>
line opened for operator commands<BEL><CR><LF>
0><SUB>
2.) Send “echo off” command to disable copy of sent data to receive buffer.
ECHO OFF<CR> ...disable COM port echo
<CR>
ECHO OFF<CR><LF>
Echo is:<HT>OFF<CR><LF>
<SUB>
3.) Get instrument and sensor model numbers.
VERS<CR> ...get instrument & sensor model numbers
MI70 2.05<CR><LF>
HMP70<STX>Bc<SOH> 3.09<CR><LF>
<SUB>
4.) Get instrument and sensor serial numbers.
SNUM<CR> ...get instrument & sensor serial numbers
Serial nr:<HT>C3610021<CR><LF>
Probe snr:<HT>C3140010<CR><LF>
<SUB>
5.) Get sensor last calibration date & by who.
CAL<CR> ...query calibration data
Probe cal:<HT>8/17/2007 (Vaisala/HEL)<CR><LF>
<SUB>
6.) Close communications with instrument.
EXIT<CR> ...close communications
line closed<CR><LF>
James Brooks, 5/20/2010, Revision 0
7.) Get or Set instrument measurement configuration.
Commands:
UNIT[CR] (reads current measurement status)
UNIT X X X X X X X X X X X X [CR] (sets measurement status, see table below)
Response:
place:/option: (Option 0 means measurement is disabled, value after 2nd tab is current setting, only three (3) can
be active at a time.)
place 1
option 1
place 2
option 2
place 3
option 3
place 4
option 4
place 5
option 5
place 6
option 6
place 7
option 7
place 8
option 8
place 9
option 9
place 10
option 10
place 11
option 11
place 12
option 12
RH[TAB]RH[TAB]1[TAB]%[CR][LF]
1
T[TAB]T[TAB]1[TAB]°C[TAB]°F[CR][LF]
1
2
T[02]d/f[01][TAB]T[02]d/f[01][TAB]0[TAB]°C[TAB]°F[CR][LF]
1
2
T[02]d[01][TAB]T[02]d[01][TAB]0[TAB]°C[TAB]°F[CR][LF]
1
2
a[TAB]a[TAB]0[TAB]g/m³[TAB]gr/ft³[CR][LF]
1
2
x[TAB]x[TAB]0[TAB]g/kg[TAB]gr/lb[CR][LF]
1
2
Tw[TAB]Tw[TAB]0[TAB]°C[TAB]°F[CR][LF]
1
2
H[02]2[01]O[TAB]H[02]2[01]O[TAB]0[TAB]ppm[CR][LF]
1
pw[TAB]pw[TAB]0[TAB]hPa[TAB]psi[CR][LF]
1
2
pws[TAB]pws[TAB]0[TAB]hPa[TAB]psi[CR][LF]
1
2
h[TAB]h[TAB]0[TAB]kJ/kg[TAB]Btu/lb[CR][LF]
1
2
a[02]w[01][TAB]a[02]w[01][TAB]0[TAB][A0][CR][LF]
1
Position
1
2
3
4
5
6
7
8
9
10
11
12
UNIT Command Table:
Command
Option 0
RH (Relative Humidity)
Off
T (Temperature)
Off
Td/f (Frostpoint Temperature)
Off
Td (Dewpoint Temperature)
Off
a (absolute humidity)
Off
x (mixing ratio)
Off
Tw (wet-bulb temperature)
Off
H (humid air volume/dry air volume)
Off
pw (vapor pressure)
Off
pws (saturated vapor pressure)
Off
h (enthalpy [heat content])
Off
aw (water activity)
Off
Option 1
%
Celsius
Celsius
Celsius
g/m³
g/kg
Celsius
ppm
hPa
hPa
kJ/kg
unitless
Option 2
N/A
Fahrenheit
Fahrenheit
Fahrenheit
gr/ft³
gr/lb
Fahrenheit
N/A
psi
psi
Btu/lb
N/A
James Brooks, 5/20/2010, Revision 0
UNIT Command Examples:
UNIT<CR> ...get configuration settings (in this case: RH %, T °F, x gr/lb)
RH<HT>RH<HT>1<HT>%<CR><LF>
T<HT>T<HT>2<HT>°C<HT>°F<CR><LF>
T<STX>d/f<SOH><HT>T<STX>d/f<SOH><HT>0<HT>°C<HT>°F<CR><LF>
T<STX>d<SOH><HT>T<STX>d<SOH><HT>0<HT>°C<HT>°F<CR><LF>
a<HT>a<HT>0<HT>g/m³<HT>gr/ft³<CR><LF>
x<HT>x<HT>2<HT>g/kg<HT>gr/lb<CR><LF>
Tw<HT>Tw<HT>0<HT>°C<HT>°F<CR><LF>
H<STX>2<SOH>O<HT>H<STX>2<SOH>O<HT>0<HT>ppm<CR><LF>
pw<HT>pw<HT>0<HT>hPa<HT>psi<CR><LF>
pws<HT>pws<HT>0<HT>hPa<HT>psi<CR><LF>
h<HT>h<HT>0<HT>kJ/kg<HT>Btu/lb<CR><LF>
a<STX>w<SOH><HT>a<STX>w<SOH><HT>0<HT> <CR><LF>
<SUB>
UNIT 1 1 0 0 0 1 0 0 0 0 0 0 <CR> ...set configuration settings (in this case: RH %, T
°C, x g/kg)
RH<HT>RH<HT>1<HT>%<CR><LF>
T<HT>T<HT>1<HT>°C<HT>°F<CR><LF>
T<STX>d/f<SOH><HT>T<STX>d/f<SOH><HT>0<HT>°C<HT>°F<CR><LF>
T<STX>d<SOH><HT>T<STX>d<SOH><HT>0<HT>°C<HT>°F<CR><LF>
a<HT>a<HT>0<HT>g/m³<HT>gr/ft³<CR><LF>
x<HT>x<HT>1<HT>g/kg<HT>gr/lb<CR><LF>
Tw<HT>Tw<HT>0<HT>°C<HT>°F<CR><LF>
H<STX>2<SOH>O<HT>H<STX>2<SOH>O<HT>0<HT>ppm<CR><LF>
pw<HT>pw<HT>0<HT>hPa<HT>psi<CR><LF>
pws<HT>pws<HT>0<HT>hPa<HT>psi<CR><LF>
h<HT>h<HT>0<HT>kJ/kg<HT>Btu/lb<CR><LF>
a<STX>w<SOH><HT>a<STX>w<SOH><HT>0<HT> <CR><LF>
<SUB>
9.) Set MI70 date/time. This command is used to synchronize MI70 date/time with PC date/time.
TIME 10 5 10 14 46 0<CR> ...set MI70 date/time, yy mm dd HH mm ss
<SUB>
10.) Set measurement interval.
SEND 60<CR> ...set for 60 second measurement interval, starts & returns first data
1<HT>RH<HT>T<HT>x<CR><LF>
<HT>%<HT>°C<HT>g/kg<CR><LF>
10-05-10 13:50:24<HT>18.60<HT>23.44<HT>3.33<HT><CR><LF>
<SUB>
SEND 5<CR> ...set for 5 second measurement interval, returns first data
2<HT>RH<HT>T<HT>x<CR><LF>
<HT>%<HT>°F<HT>gr/lb<CR><LF>
10-05-10 13:52:50<HT>18.60<HT>74.15<HT>23.29<HT><CR><LF>
10-05-10 13:52:55<HT>18.59<HT>74.13<HT>23.26<HT><CR><LF>
<SUB>
11.) Get measurement results. Send every measurement period.
SEND<CR> ...get periodic reading
10-05-10 13:51:24<HT>18.59<HT>23.41<HT>3.32<HT><CR><LF>
<SUB>
James Brooks, 5/20/2010, Revision 0
12.) Full Example.
12.1.) Initialize & get model/serial number & sensor calibration data.
ÿ<CR>
...loop <=200 times &H255+&H13 to get HM70 attention...
ÿ<CR>
<CR><LF>
line opened for operator commands<BEL><CR><LF>
0><SUB>
ECHO OFF<CR> ...disable COM port echo
<CR>
ECHO OFF<CR><LF>
Echo is:<HT>OFF<CR><LF>
<SUB>
VERS<CR> ...get instrument & sensor model numbers
MI70 2.05<CR><LF>
HMP70<STX>Bc<SOH> 3.09<CR><LF>
<SUB>
SNUM<CR> ...get instrument & sensor serial numbers
Serial nr:<HT>C3610021<CR><LF>
Probe snr:<HT>C3140010<CR><LF>
<SUB>
CAL<CR>...query calibration data
Probe cal:<HT>8/17/2007 (Vaisala/HEL)<CR><LF>
<SUB>
EXIT<CR> ...close communications
line closed<CR><LF>
12.2.) Initialize & set instrument measurement settings.
ÿ<CR>
...loop <=200 times &H255+&H13 to get HM70 attention...
ÿ<CR>
<CR><LF>
line opened for operator commands<BEL><CR><LF>
0><SUB>
ECHO OFF<CR> ...disable COM port echo
<CR>
ECHO OFF<CR><LF>
Echo is:<HT>OFF<CR><LF>
<SUB>
UNIT 1 2 0 0 0 2 0 0 0 0 0 0 <CR> ...set configuration settings
RH<HT>RH<HT>1<HT>%<CR><LF>
T<HT>T<HT>2<HT>°C<HT>°F<CR><LF>
T<STX>d/f<SOH><HT>T<STX>d/f<SOH><HT>0<HT>°C<HT>°F<CR><LF>
T<STX>d<SOH><HT>T<STX>d<SOH><HT>0<HT>°C<HT>°F<CR><LF>
a<HT>a<HT>0<HT>g/m³<HT>gr/ft³<CR><LF>
x<HT>x<HT>2<HT>g/kg<HT>gr/lb<CR><LF>
Tw<HT>Tw<HT>0<HT>°C<HT>°F<CR><LF>
H<STX>2<SOH>O<HT>H<STX>2<SOH>O<HT>0<HT>ppm<CR><LF>
pw<HT>pw<HT>0<HT>hPa<HT>psi<CR><LF>
pws<HT>pws<HT>0<HT>hPa<HT>psi<CR><LF>
h<HT>h<HT>0<HT>kJ/kg<HT>Btu/lb<CR><LF>
a<STX>w<SOH><HT>a<STX>w<SOH><HT>0<HT> <CR><LF>
<SUB>
EXIT<CR> ...close communications
line closed<CR><LF>
James Brooks, 5/20/2010, Revision 0
12.3.) Initialize & start measurement, get periodic measurement data, stop measurement.
ÿ<CR>
...loop <=200 times &H255+&H13 to get HM70 attention...
ÿ<CR>
<CR><LF>
line opened for operator commands<BEL><CR><LF>
0><SUB>
ECHO OFF<CR> ...disable COM port echo
<CR>
ECHO OFF<CR><LF>
Echo is:<HT>OFF<CR><LF>
<SUB>
TIME 10 5 10 14 47 57<CR> ...measurement start date/time, yy mm dd HH mm ss
<SUB>
SEND 5<CR> ...set for 5 second measurement interval
2<HT>RH<HT>T<HT>x<CR><LF>
<HT>%<HT>°F<HT>gr/lb<CR><LF>
10-05-10 13:52:50<HT>18.60<HT>74.15<HT>23.29<HT><CR><LF>
10-05-10 13:52:55<HT>18.59<HT>74.13<HT>23.26<HT><CR><LF>
<SUB>
SEND<CR> ...get periodic reading
10-05-10 13:53:00<HT>18.59<HT>74.13<HT>23.27<HT><CR><LF>
<SUB>
SEND<CR> ...get periodic reading
10-05-10 13:53:05<HT>18.59<HT>74.13<HT>23.27<HT><CR><LF>
<SUB>
SEND<CR> ...get periodic reading
10-05-10 13:53:10<HT>18.60<HT>74.14<HT>23.29<HT><CR><LF>
<SUB>
SEND<CR> ...get periodic reading
10-05-10 13:53:15<HT>18.58<HT>74.15<HT>23.27<HT><CR><LF>
<SUB>
EXIT<CR> ...close communications
line closed<CR><LF>
13.) List of saved files in MI70 memory. List of files is zero-based, listed in order of newest first. Below
represents file #0, #1 and #2. If a new recording is initiated, then it will replace file #0 and the existing file
numbers will increment by +1.
DIR<CR> ...get list of files in MI70 memory
5/20/2010 1:31<ETX>PM<SOH><HT>10-05-20 13:31:09<HT>1<HT>0801<CR><LF>
5/20/2010 1:25<ETX>PM<SOH><HT>10-05-20 13:25:42<HT>80<HT>040F<CR><LF>
5/20/2010 1:18<ETX>PM<SOH><HT>10-05-20 13:18:51<HT>19<HT>0205<CR><LF>
<SUB>
James Brooks, 5/20/2010, Revision 0
14.) Download file from MI70 memory. Below downloads data from file #0.
14.1.) First line is date/time [TAB] date/time [TAB] # of data points [TAB] 2-byte hex, first 2 digits
represent interval unit of measure (02=seconds, 04=minutes, 08=hours), second 2 digits represent
interval timing (&H05=DEC5, &H0F=DEC15, &H01=DEC1). Example: “040F”=15 minute
measurement increment.
14.2.) Second and third lines show what is being measured, and the unit of measure. RH in % and
Temperature in °C in this case.
14.3.) Remainder is the measured data points for the indicated file.
PLAY 0<CR> ...download data from file #0 in MI70 memory
5/19/2010 12:45<ETX>PM<SOH><HT>10-05-19 12:45:29<HT>40<HT>040F<CR><LF>
<HT>RH<HT>T<CR><LF>
<HT>%<HT>°C<CR><LF>
10-05-19 12:45:29<HT>89.31<HT>84.26<HT><CR><LF>
10-05-19 13:00:29<HT>79.93<HT>87.14<HT><CR><LF>
10-05-19 13:15:29<HT>79.70<HT>87.20<HT><CR><LF>
10-05-19 13:30:29<HT>79.58<HT>87.23<HT><CR><LF>
10-05-19 13:45:29<HT>79.56<HT>87.20<HT><CR><LF>
10-05-19 14:00:29<HT>79.54<HT>87.21<HT><CR><LF>
10-05-19 14:15:29<HT>79.61<HT>87.21<HT><CR><LF>
10-05-19 14:30:29<HT>79.64<HT>87.17<HT><CR><LF>
10-05-19 14:45:29<HT>79.58<HT>87.16<HT><CR><LF>
10-05-19 15:00:29<HT>79.60<HT>87.17<HT><CR><LF>
10-05-19 15:15:29<HT>79.61<HT>87.17<HT><CR><LF>
10-05-19 15:30:29<HT>79.47<HT>87.17<HT><CR><LF>
10-05-19 15:45:29<HT>79.43<HT>87.19<HT><CR><LF>
10-05-19 16:00:29<HT>84.33<HT>85.20<HT><CR><LF>
10-05-19 16:15:29<HT>84.50<HT>85.16<HT><CR><LF>
10-05-19 16:30:29<HT>84.60<HT>85.21<HT><CR><LF>
10-05-19 16:45:29<HT>84.53<HT>85.22<HT><CR><LF>
10-05-19 17:00:29<HT>84.55<HT>85.23<HT><CR><LF>
10-05-19 17:15:29<HT>84.74<HT>85.23<HT><CR><LF>
10-05-19 17:30:29<HT>84.76<HT>85.23<HT><CR><LF>
10-05-19 17:45:29<HT>84.77<HT>85.24<HT><CR><LF>
10-05-19 18:00:29<HT>85.02<HT>85.23<HT><CR><LF>
10-05-19 18:15:29<HT>84.97<HT>85.24<HT><CR><LF>
10-05-19 18:30:29<HT>85.02<HT>85.24<HT><CR><LF>
10-05-19 18:45:29<HT>85.13<HT>85.23<HT><CR><LF>
10-05-19 19:00:29<HT>85.07<HT>85.25<HT><CR><LF>
10-05-19 19:15:29<HT>85.10<HT>85.23<HT><CR><LF>
10-05-19 19:30:29<HT>85.09<HT>85.24<HT><CR><LF>
10-05-19 19:45:29<HT>85.17<HT>85.24<HT><CR><LF>
10-05-19 20:00:29<HT>85.07<HT>85.25<HT><CR><LF>
10-05-19 20:15:29<HT>85.17<HT>85.26<HT><CR><LF>
10-05-19 20:30:29<HT>85.16<HT>85.25<HT><CR><LF>
10-05-19 20:45:29<HT>85.21<HT>85.26<HT><CR><LF>
10-05-19 21:00:29<HT>85.15<HT>85.25<HT><CR><LF>
10-05-19 21:15:29<HT>85.25<HT>85.25<HT><CR><LF>
10-05-19 21:30:29<HT>85.35<HT>85.22<HT><CR><LF>
10-05-19 21:45:29<HT>85.33<HT>85.24<HT><CR><LF>
10-05-19 22:00:29<HT>85.39<HT>85.21<HT><CR><LF>
10-05-19 22:15:29<HT>85.30<HT>85.24<HT><CR><LF>
10-05-19 22:30:29<HT>85.40<HT>85.24<HT><CR><LF>
<SUB>
James Brooks, 5/20/2010, Revision 0
15.) Delete file from MI70 memory. Below deletes file #0.
DEL 0<CR> ...delete file #0 from MI70 memory
OK<CR><LF>
<SUB>
Download