This support article discusses the most common protocol-specific tokenizer issues and troubleshooting information to resolve them.  


Output:  [exec] ERROR 342: <path>\<file>, line xxx: Comma is missing in the list.

Explanation:  Syntax error due to a comma missing in between two or more members of a list. The line number may point to the start of the object, not the offending line of source.

Solution: Add the comma where appropriate.


Output: [exec] ERROR 425: <path>\<file>, line xxx: Response codes have been changed.

Explanation: All 128 possible Response Codes are defined by FCG TS20307, this error indicates a change to the standard response codes.

Solution: Review the purpose of the modified response code, use the standard response code. 

Note: There are some codes that manufacturers can customize for device-specific commands, see FCG TS20207 multi-definition codes where the notes include the following text "Manufacturers may define another meaning for this code when used by their device specific commands as long as only one meaning is application for a given command.". 


Output: [exec] ERROR 504: C:\HCF\DDL\Library\000000/0010/symbols.txt, line 15:  Item calibration must be imported but was defined. 

Explanation: There are standard symbols already built into the HART Standard Library with the name "calibration". These symbols are located in Symbol table for STANDARD Menu (0010). This error also applies to variables.

Solution: Rename MENU to make the distinction between your "calibration" menu and the Standard library menu.

Additional Information: To preserve existing symbol IDs, prefix the offending variable name in the existing symbols.txt file with "obs_" to mark it obsolete. The Tokenizer will assign a new symbol ID to the new object you created.


Output: [exec] ERROR 610: xxxxxx is a dependent in a_units_relations and b_units_relations. 

Explanation: UNIT relations must contain unique dependent variables (i.e. a variable must only occur once in one of the UNIT relationships defined in the source.) 

Solution: Remove the variable from all but one UNIT relation definition. 


Output:  [exec] ERROR 677: COMMAND xxxxx TRANSACTION z has item reference # n in the REQUEST packet that is missing in the REPLY packet.
Explanation: Commands must be autonomous.

Solution: Resolve by including the missing data in the REPLY packets of each transaction.  This may require a firmware change, if so, the device revision must increment when this change is made.


Output: [exec] WARNING 603: aaaa is the wrong type of item to be used in xxx_refresh It is inadvisable to use CLASS DYNAMIC as a Refresh Variable value.

Explanation: Dynamic variables update frequently and should not trigger a refresh of other variables.   A host has to update CLASS DYNAMIC variables on a regular basis. If they are truly DYNAMIC, then, when the device changes one, the dependents have to be re-read.  If another one changes, the dependents have to be re-read again.  The practice is discouraged because a host could get stuck reading those values and their dependents if they are DYNAMIC and tied to the process.

Solution: Remove dynamic variables from the REFRESH action.



Output: [exec] WARNING 712:  Variable 'aaaa' of CLASS DYNAMIC is discouraged from being used in a download MENU.

Explanation: The identified variable is included in a download menu, it is not recommended to use DYNAMIC variables in a download menu because these variables will be written to the device during a download. The online value may be different than the offline value which will be applied during the download.  Some hosts may ask the user if they wish to override the online value first. If it is truly a DYNAMIC variable then the value will change as soon as the device is put in service, causing the download to consume extra bandwidth (and power on a wireless device).

Solution: Remove dynamic variables from the download menu.