From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

FieldPoint Family

cancel
Showing results for 
Search instead for 
Did you mean: 

How do MAX configurations get saved on cFP?

I need to find out how the MAX configuration gets saved on a cFP-2200 module so I can read from it dynamically. I need to do this in order to make installations of my software more generic, allowing dynamic reading of input channels without having to know things like the DNS name ahead of time. I already understand how to create dynamic paths with LabVIEW but it seems that changing the DNS name to something other than what the original install was under makes any paths using the new name useless. I am using RT "Get target info" to dynamically see the target's name. Working this name into the path for looking up input on the cFP-AI-102 channels only seems to work if the name stays the same as it was originally.

0 Kudos
Message 1 of 7
(6,802 Views)

Below is a snippet of some code which behaves differently according to what the bank name is in MAX (it builds a path array to all of my AI-102 modules):

 

 

 

bank_name_behavior.png

 

Here's the VI which obtains the bank name:

 

get_bank_name.png

 

It seems that when I compile and deploy this app with the bank name set to "Bank0" in the project explorer, the path array builder VI works fine. But when I change the bank name in MAX to something like "Bank9," I get 32812 errors (specified tag name was not found). So it seems I can look up a bank name as changed in max using "Target Information" but the FP Create Tag does not work if the name fed to it is something other than what was originally deployed with the application.

0 Kudos
Message 2 of 7
(6,790 Views)

I found a workaround for this problem finally but I don't think it's supposed to be working this way as it's not very intuitive. If I take my path builder and hard code the bank name it is using to whatever I had in the project I used to create the build, I can change the DNS name as I please in MAX and the path still works well. So, the fact that the name of the fieldpoint module in the project is worked into

the path has nothing to do with the name created in MAX even though the name in the project defaults to whatever you have in max when you create the project! Is that working as designed or should I report this as a bug?

 

Here's a snippet of the workaround:

 

generic_bank_path_builder.png

0 Kudos
Message 3 of 7
(6,786 Views)

Hello,

 

Would you mind clarifying what you mean by DNS. If you are directly connected to your cFP via crossover cable, a Domain Name Server is non-essential. How are you connecting to the cRIO?

 

Regards,

National Instruments
Applications Engineer
0 Kudos
Message 4 of 7
(6,778 Views)

I am connected to the cFP-2200 over a LAN. I can have several of these at a given site which is why the name needs to be flexible. I also use the name in some VIs for various purposes, such as configuring dynamic TCP listeners on a server application.

 

When I say "DNS name," I'm referring to the "RT Get Target Information.VI" under the RT toolkit's output cluster and specifically, the element "IP Settings.DNS Name." This is also the name I would set for the target in max and when I do this, the output of "IP Settings.DNS Name" changes with it. Also, when I click "find devices" on the cFP in max, the default comm resource name for the device in the iak file is whatever I had set for the "name" at the time.

 

The "FP Create Tag.VI" which I am using to create paths to the inputs of the target has an input called "comm resource name." Since this was set to the same thing as the "name" in max, my expectation was that changing the name for a device in max would also change its comm resource name. However, my example above shows my expectation does not match what is actually happening. While the DNS Name is tied to the name set in max, the "comm resource name" is not even though during the initial creation of the iak file in MAX, they are the same.

 

To make a long story short, I am able to get my software to work by making sure that the comm_resource_name is hard coded to the value originally set in the project which created the build. This solution is adaquate but not optimal because I would rather be looking this up dynamically for the sake of maintainability. If the comm_resource name and DNS Name are separate entities, that is fine. There just needs to be a way to look both up dynamically if they are separate.

 

I guess this has become more of a suggestion than a problem I'm reporting... unless of course the behavior I'm describing is not what NI intended, in which case it's a bug.

0 Kudos
Message 5 of 7
(6,773 Views)

kgolden,

 

When MAX is used to update the configuration on the cFP, the settings from the .IAK file are spread out across several .INI files.  Take a look at a file named /ni-rt/system/fpbank.ini on the cFP

Message 6 of 7
(6,767 Views)

 


@Wayne.C wrote:

kgolden,

 

When MAX is used to update the configuration on the cFP, the settings from the .IAK file are spread out across several .INI files.  Take a look at a file named /ni-rt/system/fpbank.ini on the cFP


 

Ah yes, I see it:

 

!CommRes0="Generic_Bank"

 

I also see I can look up the names of the modules and channel resources there as well. Thanks!

0 Kudos
Message 7 of 7
(6,760 Views)