FieldPoint Family

cancel
Showing results for 
Search instead for 
Did you mean: 

cFP-1808 shared variables timestamp

Hi,

I need to control and acquire data from a cFP Ethernet module (cFP-1808) to a PXI RT system. I have tested two ways of doing it:

1. Bind shared variables to the Fieldpoint channels. Works great except for the fact that I have to record the timestamp of every single channel in all Fieldpoint modules. I have to avoid this. The reason I have to record all timestamps is that sometimes two consecutive reads are the same in value and in timestamp; so even if I make sure I get a value every 100ms in my real time application I cannot trust  that  the shared variable engine will give a real new value every 100ms, because sometimes one read is the same as the previous one.
My understanding of the technology is that the cFP network interface checks for an updated value of the channels of each module at the Advise Rate. If there’s a new value the cFP transmits it to the Shared Variable Engine running in the PXI controller, but if the value has not changed it doesn’t transmit anything, so more efficiency is achieved in the network communication. This would explain the timestamp behavior of the shared variables bound directly to Fieldpoint channels; since there is no new value the shared variable is not updated so the timestamp of two consecutive reads is the same.


2.  Create a Modbus server and then create shared variables bound to the Modbus server channels. With this method any time my RT application asks for a new value the shared variable engine provides a real new value with an updated timestamp, and all timestamps in the same module are equivalent (in 1usec range).  Therefore, it looks like using the Modbus solution I  only have to record one timestamp per module.


So option 2 probably fixes my problem, but I'd like to understand why. Both methods use the shared variable engine, shouldn't they behave the same way? There's one downside in option 2, which is having to deal with Modbus addresses and not having the ease of use of option 1 that just browses to find the Fieldpoint channel.


Any comments?

A final note, it'd be great to be able to use the Fieldpoint VIs in LV Real-Time! Can this be achieved?


Raimon

0 Kudos
Message 1 of 4
(7,544 Views)
Hi Raimon,

How are you binding to your shared variables?  This KB reviews three methods:

http://digital.ni.com/public.nsf/allkb/FA610367EC62574186257118005089F2?OpenDocument


I don't believe using FieldPoint VIs on a PXI RT target is possible because FieldPoint is not a driver that you are able to install on the PXI RT target.  We do have the cFP-2xxx line of RT controllers for FieldPoint, which can communicate directly to the FieldPoint modules, ensuring determinism.

Trey B
Applications Engineering
National Instruments


0 Kudos
Message 2 of 4
(7,203 Views)
Hi Trey,

Thanks Trey. I'm using Method 1 in the document. Although it says this method uses Logos I'm not aware of it. What does Logos do in this case?

Also, note that there's a 4th method, which I described in my previous post, and that uses the Modbus server.

Thank you,

Raimon
0 Kudos
Message 3 of 4
(7,106 Views)
Logos is an NI proprietary method of interprocess communication.  It is event driven (ie waits for change in value), and that is why you are not seeing the update as quickly as with modbus.

I corrected the KB above which you may recall saying that method 1 may increase network traffic if polled frequently.  Those changes are currently not live, but should be within a couple of weeks.

Trey B
Applications Engineering
National Instruments
0 Kudos
Message 4 of 4
(6,540 Views)