The NMEA 0183 query messages do not contain device address information. Individual query commands cannot be directed to different transmitters. Instead, a specific time slot method can be used for receiving data from several transmitters on the bus, just with a single query command.
To generate different time slots, each transmitter is given an individual delay for its query response, by using the RS-485 line delay parameter aXU,L. The parameter defines the time (in milliseconds) between the last character of the query and the first character of the response from the transmitter.
Example (a bus with 3 transmitters):
WXT530 #1 communication settings:
WXT530 #2 communication settings:
WXT530 #3 communication settings:
When the query command
$--WIQ,XDR*2D<cr><lf> is sent, WXT530 #1 responds after 25 ms,
WXT530 #2 after 1000 ms, and WXT530 #3 responds after 2000 ms. The sufficient delays depend on
the maximum number of characters in the response messages and the baud rate. Note that all the
transmitters are assigned with the same address. The data logger, after sending the query,
sorts out the response messages on the basis of the individual response times.
To gain more addressability transducer ID
information provided in the XDR response messages can be used. If WXT530
address is set to 0 (aXU,A=0) and all
parameters are chosen except Rain peak intensity and Hail peak intensity in the precipitation
message, the response to the XDR query
$WIXDR,A,316,D,0,A,326,D,1,A,330,D,2,S,0.1,M,0,S,0.1,M,1,S,0.1, M,2*57<cr><lf> $WIXDR,C,24.0,C,0,C,25.2,C,1,H,47.4,P,0,P,1010.1,H, 0*54<cr><lf> $WIXDR,V,0.000,I,0,Z,10,s,0,R,0.01,I,0,V,0.0,M,1,Z,0,s,1,R,0.0,M, 1*51<cr><lf> $WIXDR,C,25.8,C,2,U,10.7,N,0,U,10.9,V,1,U,3.360,V,2*7D<cr><lf>
For the transducer IDs, see NMEA 0183 v3.0 protocol.
The maximum transducer ID is 3 when the
transmitter address is 0. Assigning address 4 for the second and address 8 for the third
transmitter on the bus the following responses to the XDR query
$--WIQ,XDR*2D<cr><lf> are obtained from the transmitters (same
message parameter configuration):
The second transmitter (address 4):
$WIXDR,A,330,D,4,A,331,D,5,A,333,D,6,S,0.1,M,4,S,0.1,M,5,S,0.2, M,6*55<cr><lf> $WIXDR,C,23.5,C,4,C,24.3,C,4,H,49.3,P,4,P,1010.1,H, 3*59<cr><lf> $WIXDR,V,0.000,I,4,Z,0,s,4,R,0.00,I,4,V,0.0,M,5,Z,0,s,5,R,0.0,M, 5*67<cr><lf> $WIXDR,C,25.8,C,6,U,10.6,N,4,U,10.9,V,5,U,3.362,V,6*78<cr><lf>
The third transmitter (address 8):
$WIXDR,A,341,D,8,A,347,D,9,A,357,D,10,S,0.1,M,8,S,0.2,M,9,S,0.2,M,10*53<cr><lf> $WIXDR,C,23.5,C,8,C,24.3,C,9,H,49.3,P,8,P,1010.1,H, 8*5F<cr><lf> $WIXDR,V,0.000,I,8,Z,0,s,8,R,0.00,I,8,V,0.0,M,9,Z,0,s,9,R,0.0,M, 9*61<cr><lf> $WIXDR,C,25.8,C,10,U,10.6,N,8,U,10.9,V,9,U,3.360,V, 10*7C<cr><lf>
Now the response messages of all 3 transmitters can be recognized and parsed by the data logger.
|The transmitter address may consist of letter characters but the transducer IDs in the NMEA XDR messages can only be numbers. The addresses given in letters show in the transducer IDs in the following way: transmitter address = A => transducer ID = 10, B => 11, a => 36, b => 37, and so on.|