Tokens

This component is a BNumericPoint that can be tracked, alarmed, and charted like any other NumericPoint. Using it improves the ability to diagnose certain configuration problems. While the problems may require a site visit to resolve, the metrics may provide a valuable diagnostic starting point.
Image
Type Category/Value Legacy Mode

(Tridium485–2_r06 and earlier)

Coprocessor

Mode (Tridium485–2_r09 and later)

Description
6loBAC_rx_brdcst incrementing count x   Experimental
6loBAC_tx_brdcst incrementing count x   Experimental
apprx incrementing count x x Number of frames containing BACnet data to this node, or broadcast that have been received (EXPECTING_REPLY and NOT_EXPECTING_REPLY)
apprxpermin rate x x Number of BACnet data frames received per minute to this node's address (or broadcast)
apptx incrementing count x x Number of frames containing BACnet data transmitted from this node
apptxpermin rate x x Number of BACnet data frames per minute transmitted from this node (directed and broadcast)
apptxq_full incrementing count   x The number of times that both positions of the 2-deep app tx queue are full in the SAM4S. This is a normal condition.
apptxq_invalid incrementing count   x The number of times that the 2-deep app tx queue is in an invalid state, for example, both buffers are in the "waiting to transmit" state or an undefined state. This should never happen.
apptxq_overflow incrementing count   x The number of times that both positions of the 2-deep app tx queue are full and we attempt to add another message from the host. This is an abnormal condition and should not happen under normal circumstances.
baddatacrc16 incrementing count x x The number of bad data CRC16s (FT_BACNET_DATA_EXPECTING_REPLY and FT_BACNET_DATA_NOT_EXPECTING_REPLY)
baddatacrc32 incrementing count x x The number of bad data CRC32s (FT_BACNET_EXT_DATA_EXPECTING_REPLY and FT_BACNET_EXT_DATA_NOT_EXPECTING_REPLY)
badheadercrc incrementing count x x The number of bad header CRCs
baudrate link layer config x x 9600|19200|38400|57600|76800|115200, default 115200
char time ns calculated from baud rate/nanoseconds per byte x   Used in 40 bit time and 60 bit time calculations
cycle sleep command line arg/defaults to 40, in 1/10ms x   Adjusts time that mstp daemon sleeps when in idle state. Set by "-a" arg to mstp daemon
declaresolemaster incrementing count x x Incremented by MNSM, the number of times this node has entered the "sole master"
emstpinvalcmd incrementing count   x Received a message from the host that is not a request, or an unrecognized command type. All messages from the host should be a emstp request.
emstpinvallen incrementing count   x Number of bytes from the host does not match the size decoded from the emstp header.
emstpinvalproto incrementing count   x In coprocessor mode, if the first byte of a message from the host does not start with 0x01, this count is incremented and the bytes are thrown away.
emstpkeepaliveto incrementing count   x Emstp “keep alives” are sent from SAM4S to host if 30 seconds have expired with no emstp messages from the host.
emstprxqsize Host side metric, snapshot   x The number of messages received from the coprocessor and awaiting processing by the link layer. This queue is 5 messages deep.
emstptxqsize Host side metric, snapshot   x The number of messages in the transmitQueue at any given time. This queue 32 messages deep.
extrxpermin rate x x The messages/minute of FT_BACNET_EXT_DATA_EXPECTING_REPLY or FT_BACNET_EXT_DATA_NOT_EXPECTING_REPLY received
exttxpermin rate x x The messages/minute of FT_BACNET_EXT_DATA_EXPECTING_REPLY or FT_BACNET_EXT_DATA_NOT_EXPECTING_REPLY minute
extframes_rx incrementing count x x The number of FT_BACNET_EXT_DATA_EXPECTING_REPLY or FT_BACNET_EXT_DATA_NOT_EXPECTING_REPLY received
extframes_tx incrementing count x x The number of FT_BACNET_EXT_DATA_EXPECTING_REPLY or FT_BACNET_EXT_DATA_NOT_EXPECTING_REPLY transmitted
framecount MNSM snapshot x x Range: 0 to maxInfoFrames. The number of frames sent by this node during the current token hold. When reaching "max info frames", the node must pass the token.
generatedTokens incrementing count x x Incremented by MNSM, the number of tokens generated by this node
invalidframes incrementing count x x Incremented by RFSM, the total number of frames that could not be properly decoded. Included incomplete frames, frames with bad header or data CRC, frames with invalid length in the header.
ioerrorgetavail Host side metric, incrementing count   x The call to get the number of bytes available from the serial input buffer returning an error
ip_6loBAC_rx incrementing count x   Experimental
ip_6loBAC_tx incrementing count x   Experimental
keepalivesent Host side metric, incrementing count   x The number of times the host has sent a “keep alive”. A keep alive is sent if 5 seconds of elapsed time with no other messages to send. This can happen, for example, on station start-up, long GC cycles, station save when there are not enough CPU cycles for the link layer poll threads.
macaddress Link layer config/ranges from 0-127, defaults to 0 x x  
master_state MNSM snapshot x x 0=init, 1=idle, 2=use token, 3=wait for reply, 4=done with token, 5=pass token, 6=no token, 7=poll for master, 8=answer data request
maxinfoframes Link layer config/ranges from 1-127, defaults to 50 x x  
maxmaster Link layer config/ranges from 0-127, defauts to 127 x x  
n40bitdelay (coprocessor mode) Calculated from baud rate/values 2|3|4|6 ms   x tTurnaround, baud rate dependant: 6ms@9600, 4ms@19200, 3ms@38400, 2ms@57600 and above
n40bitdelay (legacy mode) Calculated from baud rate/nanoseconds for 40 bit delay (40 * 1 billion / baud) x    
nextstation MNSM snapshot x x The MAC address of the node to which this station passes the token. If unknown, Next_Station = this station's MAC address.
pollstation MNSM snapshot x x The MAC address of the node to which this station last sent a PFM.
receive_state RFSM snapshot x x 0=idle, 1=preamble, 2=header, 3=data, 4=skip data, 5=cobs data, 6=cobs crc
receivedTokens incrementing count x x Incremented by MNSM, the number of tokens received while in idle state
retrytokencnt MNSM snapshot/values 0 or 1 x x MS/TP is allowed to resend the FT_TOKEN up to a maximum of 2 total if the first times out after tUsage timeout.
ringbufoverflow incrementing count   x Number of times a received byte was dropped because the 64-byte serial ring buffer (serial rx buffer) was full
rxbytespersec incrementing count x x The bytes per second received over the last 10 seconds
rxbytestotal incrementing count x x The total number of byes received from the RS485 line
rxQ queued msgs MNSM snapshot x   The number of application messages in the rxq awaiting processing by BACnet driver
rxQ_full count incrementing count x   The number of times the MNSM could not put a message into the rxQ, to be processed by upper BACnet layers because the queue was full
serialport Link layer config x x COM1, COM2, etc.
serialTxFailures incrementing count x   The number of times a write() to the serial output stream failed
serrxframingerr incrementing count   x Number of UART character framing errors reported
silencetimer (coprocessor mode) MNSM snapshot   x SAM4S coprocessor mode: incremented every millisecond when there is no tx or rx character on the serial bus, reset on tx or rx of byte. Used to measure and generate silence on the serial bus.
silencetimer (legacy mode) MNSM snapshot x   Legacy mode: elapsed ms time calculated from monotonic clock every RFSM and/or MNSM execution, reset on tx or rx of a byte. Used to measure and generate silence on the serial bus.
skippedframes incrementing count x x The number of data containing frames that are not addressed to this node and are consumed by the RFSM SKIP_DATA state
solemaster MNSM snapshot/range: 0 or 1 x x A boolean flag set to 1 by the MNSM if this node is the only known master node
t_usage_0_5ms incrementing count x x The number of times a remote node responded to a token pass within 5ms
t_usage_5_10ms incrementing count x x The number of times a remote node responded to a token pass within 5-10ms
t_usage_10_15ms incrementing count x x The number of times a remote node responded to a token pass within 10-15ms
t_usage_15_20ms incrementing count x x The number of times a remote node responded to a token pass within 15-20ms
t_usage_20_35ms incrementing count x x The number of times a remote node responded to a token pass within 20-35ms
t_usage_35_85ms incrementing count x x The number of times a remote node responded to a token pass within 35-85ms
t_usage_85_plus incrementing count x x The number of times a remote node responded to a token pass greater than 85ms
t_usage_err incrementing count x   tUsageStart is greater than tUsageEnd, N/A for coprocessor mode
testrequest_rx incrementing count x x The number of FT_TEST_REQUEST frames received
testrequest_tx incrementing count x x The number of FT_TEST_REQUEST frames transmitted
testresponse_rx incrementing count x x The number of FT_TEST_RESPONSE frames received
testresponse_tx incrementing count x x The number of FT_TEST_RESPONSE frames transmitted
tokencount MNSM snapshot/values 0-50 x x The number of tokens received by this node. When 50 tokens have been received, the node must perform PFM cycle.
trunk Link layer config   x mstp1, mstp2, etc.
txbytespersec incrementing count x x The bytes per second transmitted over the last 10 seconds
txbytestotal incrementing count x x The total number of bytes transmitted onto the RS485 line
txmsgbufferfull Host side metric, incrementing count   x The queue which buffers NPDU messages from the link layer is 32 messages deep. This is a count of how many times this queue fills. Indicative of polling faster than messages can be processed.
txQ queued msgs MNSM snapshot x   The number of application messages in the tx queue from the BACnet driver at time of snapshot
txQ_full count incrementing count x   The number of times a message from BACnet layers via DCMD_MSTP_TX_FRAME, could not put a message in the tx queue because it was full
txthrottle Link layer config/range: 0-20ms, defaults to10ms x x Only comes into play when this node owns the token. Inserts a delay between tx'd frames.
unexpectedframes incrementing count x x The number of frames received while the MNSM state was in a state that did not expect them. This may be due to the following:

1) Unexpected frame, such as token or pfm, while waiting for a response to a frame that expects a reply

2) A broadcast frame received while waiting for a response

3) Any frame other than a RPFM while waiting for a reply to poll for master

4) Any frame type other than test response while waiting for a testresponse

5) Receiving a test response while MNSM is in idle state

unknownEmstpMsgs Host side metric, incrementing count   x An unknown protocol byte, command, or inconsistent emstp message length was received from the coprocessor.
unwantedframes incrementing count x x Count of unwanted frames, such as a token pass or pfm to the broadcast address, receive a reply to poll for master while in idle state, or receive a reply postponed while in idle state, or a proprietary frame type directed to this station which this station does not support.
usage timeout: 20 Link layer config/values 20 | 35, defaults to 20 x x The time without a received byte that this node must wait after sending a token or PFM to allow the receiving node to begin replying
usartindex Range: 0 or 1   x The hardware index of the USART used on the coprocessor (sam4s)
usbtxfailures incrementing count   x Count of the number of times that a message from sam4s to host did not send all bytes in one write
validframes incrementing count x x Incremented by RFSM, the total number of all frames properly decoded
version text string x x A version string embedded in the coprocessor firmware, such as "MS/TP Coprocessor 2.249, Jan 12 2022"