we did nothing special. The shared variable are directly available from the cFP. You have to browse the IP adress of the cFP in signal express and under this IP adress, you will see each of the module in a folder type tree. The name of the folder are a little bit weird, but you can still find the information you need. Please note that our cFP-1808 have been update to firmware 6.06.
I think those shared variable are created when you save the .iak in MAX. I also think that the OPC server is being update too when you update the .iak in MAX. This is why I don't understand why the scaling is not being applied in the shared variable, but are applied in the OPC server.
I noticed the same behavior when I setup SignalExpress to read from my Compact FieldPoint's AI channel. I am currently consulting with R&D to determine whether this is a bug or expected behavior. For now, the workaround that I discovered is detailed below:
I received word from R&D that this is indeed expected behavior. Since the shared variable is bound directly to the FieldPoint Server, we bypass the FieldPoint API and receive raw values via Logos. Please consult the communication diagram below:
For an easier workaround, apply the scaling to the shared variable directly:
I still don't understand why the scales are apply within the OPC server and not via the shared variables. On the last website you sent me (http://digital.ni.com/public.nsf/allkb/FA610367EC62574186257118005089F2?OpenDocument)
It's written :
Using the FieldPoint Read or Write functions and writing or reading to or from a shared variable reference is still a recommended method for using FieldPoint with shared variables because certain options, such as custom scales, are only available using the FieldPoint functions.
However, binding a shared variable directly to a FieldPoint channel is advantageous in certain types of applications such as event driven data logging and monitoring applications, especially those using the LabVIEW DSC Module.
The methods for binding a shared variable directly to a FieldPoint channel are discussed below.
We don't want to create a VI to acquire with scaling in Signal Express. We can do this directly in Signal Express, except that our project in Signal Express countains calculated shared variable that should already be converted to scaled values...
I mean there's no way this can be an expected behaviour... In the website it's written that the connection via the OPC Server is not a recommended option... How come the scaling is apply in it, but not in the shared variables ??
Based on past experience and Pakman's post, this is definitely expected behaviour. The Shared Variable is designed to get data in and out of the cFP as fast a possible. That means bypassing the API. You need to remember that the vast majority of LV users are implementing libraries of custom defined Shared Variables that can be bound directly to cFP I/O and can contain custom scales.
You seem to be trying to use Signal Express in a way that NI did not anticipate. Because Signal Express can only connect to an existing Shared Variable, you probably don't have the option of editing the shared variable and creating the custom scale.
I definitely see your confusion. As you've pointed out in the article, though, the recommended method to retrieve FieldPoint values is with the FieldPoint Read/Write functions (which use the FieldPoint API). This is because "certain options, such as custom scales, are only available using the FieldPoint functions." I demonstrated how you can use this method AND SignalExpress in my first post (12), but I understand why you want to avoid this step.
The scales apply to the OPC items and not to the shared variables bound directly to the FieldPoint server because the values that the OPC server publishes first pass through the FieldPoint API. This means that, internally, the OPC server retrieves its data using functions akin to the FieldPoint Read/Write VIs.
The third method of using the OPC server is not recommended merely for the fact that OPC adds another layer of communication to the process. This potentially decreases performance, unlike the other options.
If you still feel that this is unexpected behavior or if you would like the custom scales applied on the controller itself, then definitely feel free to file a product suggestion. Our development team takes customer input very seriously and will thoughtfully consider your request. Thank you for your time, and please let me know if I can answer any other questions.