Hi, Stephanie
I now got my problem sorted out.
Firstly, I used Functional Globals VI ( i.e. action engine as you mentioned) to pass my data struct around subVIs.
Secondly, and most importantly, I used OpenG's Cluster-to-ArrayOfVariant with GetTypeInfo.vi ( inside .. vi.lib\Utility\VariantDataType) to gain access to each item of the cluster, This is similar to use Property Node/control[] as GetClsuterNameValues.vi shown in my testRTcRIO.zip, but has the advantage of being able to run on both HostPC and RT target. I have tested the modified application on my RT target, it works fine.
It looks that I can still use shared variables ( single process) once I have got the read/write cluster item issue resolved, although I have not tested this again on the RT target.
many thanks again for your time and support.
Xiaofeng