Industrial Communications

cancel
Showing results for 
Search instead for 
Did you mean: 

AM-9898 Difference between RX Data out and Command Data

This was originally posted on general discussion forum. Below is the original post

 

I am working with an AM-9898 for the first time. What is the difference between RX Data OUT the array and Command Data inside RX Data OUT in the cluster? These are outputs to Query HART Device. Below is a screen capture of the context help.

Query Hart Device Context Help.png 

 
 
 
 

Hi LJHerskowitz,

 

Thanks for posting on the discussion forums to get help with your 9898 programming! To get the best support with this module/driver, I would recommend making a new post on the Industrial Communications forum (http://forums.ni.com/t5/Industrial-Communications/​bd-p/260); that forum is posted on more consistently by the Industrial Comms supporters.

 

As far as your immediate question, you should be using the Command Data from the RX Data OUT cluster. The Array of the same name is the raw data from the device, while the data in the cluster has been parsed to some degree in software. The attached image is from the AM-9898 HART Module.lvproj project in the LabVIEW tools network. You can see the Query vi being called and then the unbundle function used to access the command data from the cluster.

 

Hope this helps!

 

 

Austin H.
Applications Engineering
National Instruments
 
0 Kudos
Message 1 of 5
(4,140 Views)

Thank you Austin H.,

When I send a universal command I can use the Rx Data OUT cluster, but when I send a Common Practice Command that array in the cluster is empty, but the Rx Data  OUT array has elements. I still don't know how to parse the data from my specific Hart Device, but is this common practice? I'm guessing based on your answer that if the subVI doesn't know the structure it just sends an empty array and I'll have to deal with the raw bytes myself.

0 Kudos
Message 2 of 5
(4,139 Views)

Do you get any errors? Or is it just the empty cluster that shows up? Like you said, it's possible that the driver doesn't know the structure of the command you sent or the data it received back. Do only certain commands return empty? Can you see data when you write other commands to it? Or tangentially, are you able to parse through the 'raw' data that it gives you?

Austin H.
Applications Engineering
National Instruments
0 Kudos
Message 3 of 5
(4,122 Views)

I have tested 3 common practice commands and 2 device specific commands. All of them send an emtpy array in the cluster, but the Rx Data OUT has elements. There isn't an error, the code is 0, but the message says Cannot find this command selection. So I am guessing it is because it isn't formatted a certain way. I don't know how to parse the raw data yet. I asked the manufacturer a couple of days ago but they haven't responded yet. The cluster itself isn't empty in fact the Status Byte -1 Bit 0 - Undefined is True. So is Bit 2- Reserved, and in Status Byte - 2, Bit 0, Bit 1, Bit 4, Bit 6 and Bit 7 are all true. I don't know what any of these bits mean though. Also Valid Mesage boolean is true. Is there documentation on this cluster that I missed?

 

0 Kudos
Message 4 of 5
(4,117 Views)

LJHerskowitz

 

The best way to understand how to use these VIs is to look at the 9898 Hart Module example project.

In LabVIEW go to Help>>Search tab>> searh for '9898'>> AM-9898 Hart Module.lvproj

 

I'm not sure how you connecting your slave/s (single point or multi-drop) but you can look at the AM-9898 HART Multidrop Example.vi. There you should be able to see how Query_HART_Device.vi is used and what needs to be its input.

 

What is your HART slave? What commands have worked for you and which commands do not work?

 

 

0 Kudos
Message 5 of 5
(4,106 Views)