Shared variables - is this possible?

Post Author: hafr
CA Forum: Formula
I am trying to design a Crystal XI report that has subreports in a group footer section.  I would like to calculate formulas in the main report using subreport group totals.  The report design looks like this:
Formula1 = Subreport1/5 totals divided by subreport4/8 totals times Value              Subreport1             Subreport5
Formula2 = Subreport2/6 totals divided by subreport4/8 totals times Value              Subreport2             Subreport6
Formula3 = Subreport3/7 totals divided by subreport4/8 totals times Value              Subreport3             Subreport7
Value                                                                                Subreport4             Subreport8
I have successfully used subreports with shared variables before, but I cannot figure out any way to get the correct results in this case.
Thanks in advance for any assistance or suggestions.
hafr

Post Author: V361
CA Forum: Formula
hafr, I have several reports like that.  I take the subreport elements and make them as tiny as possible.   Say font size of 3 or 4 point, make the fields very tiny, and make the subreport as tiny as possible.  I then put it in a section and make the section as small as possible.  This does not eliminate it from showing on the report, but sometime I can hide the subreports behind other objects.

Similar Messages

  • Variable Decimal of Packed Type Variable: is this possible?

    Hi Experts,
    I'd like to ask if we can have a packed variable with the decimal declaration as variable also, like:
    DATA p_pack_var TYPE p DECIMALS g_var_decimal.
    The scenario is there is a field qamv-toleranzun which I want to be displayed like in the output in QP03. The display in QP03 has variable decimals according to the value in qamv-masseinhsw.
    So for example: qamv-masseinhsw = 3 and qamv-toleranzun is a floating type value, the output in QP03 is format with 3 decimals.
    Or if this is not possible, are there any approach to pass the value of the floating point variable to a decimal type variable with an indefinite decimal places.
    Please Help. Points will be rewarded for valid answers.
    Thanks!

    Is this what you want?
    searchComponents( Class a_class) {
    // browse components
    if (a_class.isInstance(component)) {
    // do something
    }

  • Multiple transform/assigns for one variable - is this possible?

    Hi,
    What I am trying to do is read in a complex XML file. Transform some data, add some other data from another source and update a table in the database with all data.
    So currently I read in the XML file.
    Do one big transform to map the majority of data to the input variable of my database adapter.
    I then call a stored procedure to get some ID values.
    I have then been trying to add these ID's to the input variable of my database adapter. Tried both transform and assign, but these seem to overwrite the big transform which I previously did.
    Is it possible to update the same variable in more than one transform without overwriting the values set previously?
    Thanks in advance for any help

    Hi Marc,
    Thanks for your help.
    I've tried playing around with the <bpelx:insertAfter> command referring to your Blog.
    I have a couple of questions, perhaps you could help me with them.
    1. I noticed that once I have added this command into the .bpel file I get an error within the designer view. Is this to be expected or am I doing something wrong?
    2. Is it possible to specify the XML tag which is used and also use an XPath query?
    The code I have added is as follows:
    <assign name="Assign_GlobalsToInsert">
    <bpelx:insertAfter>
    <from variable="InvokeGlobalsGetGlobalsOutputValue"
    part="outputParameters"
    query="/ns1:outputParameters/GET_VALUE"/>
    <to variable="ReceiveFileReadInputVariable"
    part="DATA_FILE"
    query="/ns3:DATA_FILE/ns3:DataLine/ns3:FinalLine"/>
    </bpelx:insertAfter>
    </assign>
    When I tested this it did add and element with the correct value as expected, however the XML tags were <GET_VALUE> as specified in my query section of the from command. Is there anyway to use a different value for the tags?
    I currently get <GET_VALUE>99</GET_VALUE>
    I would like to use <TRANS_ID>99</TRANS_ID>
    Thanks very much for your help

  • Dynamic Shared Object - Is This Possible?

    What I want in my app is to have 2 tilelists and an array collection of items which will populate the first tilelist and these objects can be dragged between both tilelists. Then the user can click a save button which will save the statuses of both tilelists so the items that are present/not present in each tilelist when the app is closed will still be there when the app is restarted.
    The problem is I want my array collection to be populated dynamically from mysql data on a server.
    I have no problem getting dynamic data from a mysql database into an array colllection via http request and I have no problem getting the shared object to work IF the array collection is defined within the app the usual way but I'm having trouble getting these 2 things to work together. 
    Can anybody tell me if it is indeed possible to have a dynamically populated array collection stored as a shared object on the user's system and would anyone be willing to help me out if I post my code so far? Cheers.

    Hi Greg. The way I usually post code is by clicking the small arrows above and then clicking syntax highlighting and then xml. The problem is this seems to remove all of the quotation marks ("") from my code which is what is causing the errors you mentioned. I've posted it below just by simply copying and pasting. I hope that works better. Cheers for your help:-
    <?xml version="1.0" encoding="utf-8"?>
    <mx:WindowedApplication 
    xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="newsService.send(); initprofile1NewsAndSportSO()">
    <mx:Script><![CDATA[
     import mx.rpc.events.ResultEvent; 
    import mx.collections.*; 
    import flash.net.SharedObject; 
    public var profile1NewsAndSportSO:SharedObject; 
    Bindable] 
    private var profile1NewsAndSportaddLinksFullAC:ArrayCollection; 
    Bindable] 
    private var profile1NewsAndSportaddLinksAC:ArrayCollection; 
    private function newsResultHandler(event:ResultEvent):void{
    profile1NewsAndSportaddLinksFullAC=newsService.lastResult.newscategory.news
    as ArrayCollection;profile1NewsAndSportaddLinksAC=newsService.lastResult.newscategory.news
    as ArrayCollection;}
    // private var profile1NewsAndSportaddLinksFullAC:ArrayCollection = new ArrayCollection([
    // {label:"BBC News"},
    // {label:"ITV"},
    // {label:"Sky News"}
    // ]); // private var profile1NewsAndSportaddLinksAC:ArrayCollection = new ArrayCollection([
    // {label:"BBC News"},
    // {label:"ITV"},
    // {label:"Sky News"}
     private function profile1NewsAndSportReset():void{resetprofile1NewsAndSportAC();
    profile1NewsAndSportAddLinksTilelist.dataProvider = profile1NewsAndSportaddLinksAC;
    profile1NewsAndSportLinkChoice.dataProvider =
    new ArrayCollection([]);}
    private function resetprofile1NewsAndSportAC():void{profile1NewsAndSportaddLinksAC.removeAll();
    for each(var obj:Object in profile1NewsAndSportaddLinksFullAC){profile1NewsAndSportaddLinksAC.addItem(obj);
    private function initprofile1NewsAndSportSO():void{profile1NewsAndSportSO = SharedObject.getLocal(
    "profile1NewsAndSport"); 
    if(profile1NewsAndSportSO.size > 0){ 
    if(profile1NewsAndSportSO.data.profile1NewsAndSportaddList){ 
    if(profile1NewsAndSportSO.data.profile1NewsAndSportaddList != "empty"){ 
    var profile1NewsAndSportaddList:Array = profile1NewsAndSportSO.data.profile1NewsAndSportaddList.split(","); 
    var profile1NewsAndSporttempAC1:ArrayCollection = new ArrayCollection(); 
    for each(var str:String in profile1NewsAndSportaddList){ 
    for each(var obj1:Object in profile1NewsAndSportaddLinksAC){ 
    if(str == obj1.label){profile1NewsAndSporttempAC1.addItem(obj1);
    continue;}
    if(profile1NewsAndSporttempAC1.length > 0){profile1NewsAndSportAddLinksTilelist.dataProvider = profile1NewsAndSporttempAC1;
    if(profile1NewsAndSportSO.data.profile1NewsAndSportchoiceList){ 
    var profile1NewsAndSportchoiceList:Array = profile1NewsAndSportSO.data.profile1NewsAndSportchoiceList.split(","); 
    var profile1NewsAndSporttempAC2:ArrayCollection = new ArrayCollection(); 
    for each(var str2:String in profile1NewsAndSportchoiceList){ 
    for each(var obj2:Object in profile1NewsAndSportaddLinksAC){ 
    if(str2 == obj2.label){profile1NewsAndSporttempAC2.addItem(obj2);
    continue;}
    if(profile1NewsAndSporttempAC2.length > 0){profile1NewsAndSportLinkChoice.dataProvider = profile1NewsAndSporttempAC2;
    else{profile1NewsAndSportReset();
    private function saveprofile1NewsAndSport(event:MouseEvent):void{ 
    var profile1NewsAndSportaddList:String = ""; 
    if(profile1NewsAndSportAddLinksTilelist.dataProvider){ 
    if(ArrayCollection(profile1NewsAndSportAddLinksTilelist.dataProvider).length > 0){ 
    for each(var obj1:Object inprofile1NewsAndSportAddLinksTilelist.dataProvider){
    profile1NewsAndSportaddList += obj1.label +
    else{profile1NewsAndSportaddList =
    "empty";}
    profile1NewsAndSportSO.data.profile1NewsAndSportaddList = profile1NewsAndSportaddList;
    var profile1NewsAndSportchoiceList:String = ""; 
    for each(var obj2:Object inprofile1NewsAndSportLinkChoice.dataProvider){
    profile1NewsAndSportchoiceList += obj2.label +
    profile1NewsAndSportSO.data.profile1NewsAndSportchoiceList = profile1NewsAndSportchoiceList;
    profile1NewsAndSportSO.flush();
    ]]>
    </mx:Script>
     <mx:HTTPService id="newsService" resultFormat="object" result="newsResultHandler(event)" url="http://www.coolvisiontest.com/getnews.php"/> 
    <mx:TileList id="profile1NewsAndSportLinkChoice" fontWeight="bold" dragEnabled="true" dragMoveEnabled="true" dropEnabled="true" height="166" width="650" top="5" left="521" columnCount="5" rowHeight="145" columnWidth="125" backgroundColor="#000000" color="#FFFFFF">
     <mx:itemRenderer>
     <mx:Component>
     <mx:Canvas width="125" height="129" backgroundColor="#000000">
     <mx:Image source="{'http://www.coolvisiontest.com/interfaceimages/images/'+ data.icon}" top="5" horizontalCenter="0"/>
     <mx:Label text="{data.label}" bottom="1" horizontalCenter="0"/>
     </mx:Canvas>  
    </mx:Component>
     </mx:itemRenderer>  
    </mx:TileList>
     <mx:TileList id="profile1NewsAndSportAddLinksTilelist" fontWeight="bold" dragEnabled="true" dragMoveEnabled="true" dropEnabled="true" height="166" width="385" top="5" left="128" columnCount="3" rowHeight="145" columnWidth="125" backgroundColor="#000000" color="#FFFFFF">
     <mx:itemRenderer>
     <mx:Component>
     <mx:Canvas width="125" height="129" backgroundColor="#000000">
     <mx:Image source="{'http://www.coolvisiontest.com/interfaceimages/images/'+ data.icon}" top="5" horizontalCenter="0"/>
     <mx:Label text="{data.label}" bottom="1" horizontalCenter="0"/>
     </mx:Canvas>  
    </mx:Component>
     </mx:itemRenderer>  
    </mx:TileList>
     <mx:Button click="profile1NewsAndSportReset()" id="reset" label="Reset" y="5" height="25" x="5"/>
     <mx:Button click="saveprofile1NewsAndSport(event)" id="save" label="Save Changes" x="5" y="38" width="113" height="25.5"/>
     </mx:WindowedApplication>

  • 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

    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

  • Network shared variables reconnecting network dropout

    I've got a cRIO unit communicating with a Laptop using Network Shared Variables, with one of them being a 21 index array that is buffered.
    The system connects and communicates fine, but occassionally the wireless card in the laptop is losing the signal from the WAP attached to the cRIO.
    When this happens the Network Shared Variables never "reconnect" and start receiving values again once the Wireless link is restored.  Is this an expected behavior?
    When I tried using another industrial WAP instead of the laptop wireless card I do not get the drop-outs.
    Ryan Vallieu
    Automation System Architect
    Solved!
    Go to Solution.

    Hello Ryan,
    Thank you for contacting National
    Instruments!  I have looked into the issue you are experiencing and
    wanted to ask you a few more questions.  First of all, do you have a
    time frame in which you allow for the reconnect?  I believe that the
    Shared Variables should regain connection after a short period but it
    will not necessarily be a very quick process.  It may take a few
    minutes for the Shared Variables to reconnect.
    The other
    thing that may be happening is if you have error wires being passed
    through the Shared Variables, it is possible that the error is not
    being cleared and so it will always see the error and therefore never
    reconnect.  In this case you will have to filter this error out and
    then clear the error in order to utilize the shared variables again.
     If
    you have any more specific information about your program that may help
    us determine the reason for this behavior.  Also a screenshot of your
    code would also be helpful.  Please let me know if you have any further
    questions and I will be happy to assist you.  I hope this helps!
    Thanks!
    Bob H
    Applications Engineer
    National Instruments

  • Can not read shared variable on cRIO, error -1950678968 nitaglv

    Hardware setup:
    Laptop
    Laptop connected via USB to a frammer garber. 
    Laptop IP: 192.168.0.2
    NI vision calculating a diameter and setting a network varaible
    cRIO
    cRIO connected to the laptop
    cRIO IP: 192.168.0.1
    Project has the shared variable in the cRIO library
    NI vision writes to the variable on the cRIO.  I can see the variable properly updating in system manager on the cRIO.  I can also run a VI in my computer that shows the variable properly updating.  But......   When I read the variable with a VI running on the cRIO, I get the folowing error and the variable never updates:
    Error -1950678968 occurred at Shared Variable in Main.vi
    Possible reason(s):
    LabVIEW:  Failed to load nitaglv, which is required for Network-Published Shared Variables.
    This error or warning occurred while reading the following Shared Variable:
    \\NI-cRIO-OASIS\cRIOVariableLib\BubbleDiameterFromVision
    \\192.168.0.1\cRIOVariableLib\BubbleDiameterFromVision
    (I do not get any errors at deloyment)
    So everything (NI Vision, a VI deployed on the laptop, NI Distributed System Manager) can see the variable on the cRIO being updated by the NI Vision.... Except for a VI running on the cRIO.
    I have verified that I have Network Variable Engine and Variable Client Support for RT installed on the cRIO.  I have tried reinstalling all s/w on the cRIO.  Tried rebooting all. And talked in a nice, positive, reassuring voice to the chassis.

    Hi!
    I just had the same issue with my cRIO 9073 using NI RIO 3.6.0.
    The problem is not caused by a corrupted project, but the improper installation of the OS on the target. There is nothing you can do using the SW installation wizard in MAX, as it does not matter if you intall a full RIO SW, minimal or custom.
    You have to install the full install or a custom one with Shared Variable support. Then you have to FTP to the cRIO, and manually edit the "ni-rt.ini" file located in the root of the controller.
    Make sure you have a line in the "[MODULE VERSIONS]" section which shows the version of the nitaglv.out file. (The problem is caused because this dll is not loaded when you try to access a SV) Mine looks like nitaglv.out=6.3
    Then you have to insert "nitaglv.out;" without quotes to the [LVRT] section's StartupDLLs key's value. I did it after the taggerrt.out name. So my key entry now looks like this:
    [LVRT]
    StartupDLLs=nisysapirpc.out;NiViSrvr.out;NiRioRpc.out;taggerrt.out;nitaglv.out;sysstatepublisher.out;
    memoryChecking=False
    LABVIEWRTDir=/c/ni-rt/system
    PATH=/c/ni-rt/system/;/c/ni-rt/;
    CDIntervalTicks=55
    WebServer.Enabled=FALSE
    RTTarget.VIPath=/c/ni-rt/startup
    RTTarget.IPAccess=+*
    RTEnetRcvMode=2
    RTCPULoadMonitoringEnabled=True
    RTTarget.ApplicationPath=/c/ni-rt/startup/startup.rtexe
    server.tcp.access="+*"
    RTTarget.LaunchAppAtBoot=True
    RTTarget.EnableFileSharing=True
    server.tcp.serviceName="Main Application Instance/VI Server"
     After you are done with the editing, you have to save the file, and overwrite the original one. You have to reboot the controller for the modification to take effect.
    After this you will be able to host your variables on the cRIO and also read/write them from the application running on that same target.
    I hope this will help for you too.
    Regards,
    Peter

  • Unspecified error when writing variant shared variable

    Hi everybody,
    I'm getting an unspecified error (-2147467259) when trying to write a variant to a shared variable hosted on my cRIO device.
    I'm using a cRIO chassis as a headless controller that dynamically finds remote ScanIO chassis at startup. Similar to the LabVIEW example, the cRIO finds the chassis and generates clusters containing the IO container refnums as well as other information about the modules. I generate two arrays (local and remote) of these clusters, turn them into a variant, and publish it as a network published shared variable so they can be used in a remote PC to add or remove remote channels as needed.
    Has anyone had this sort of issue before? I'm new to real-time so I'm not sure if I have violated some canon here or not Thank you for your help
    -Jordan

    Jnelson,
    There appear to be a few Corrective Action Requests (CARs) associated with using shared variables of the variant data type.  The closest one I could find related to your issue was CAR #291679 where Wiring FieldPoint IO Point into shared variable throws error -2147467259.  All CARs that I could find about using shared variables of the variant type threw the same error you are seeing and are feeding into it less standard datatypes (FieldPoint IO, LVClasses, IMAQ references).
    To get a more general overview of your problem, does this error come up the first time you try to write to this shared variable or does it come up somewhat randomly?  It would help if you could tell us exactly what hardware you are doing and if you can recreate this issue by simply deploying a program that writes a constant cluster with the same data types into that shared variable.
    A possible workaround for you to try would be using the Flatten to String and Unflatten from String functions and pass that through a string shared variable.  This has seemed to work for others in the past.
    Matt J
    Professional Googler and Kudo Addict
    National Instruments

  • Error Reading a Shared Variable Array

    Hi,
    I am having a problem reading an array of 20 unsigned integers from an Allen Bradley ControlLogix PLC with Labview.
    I have set up a shared variable for this purpose.  I have set the Data Type of the shared variable to ArrayOf Unit16.  The Variable Type is Network-Published, and I have check the Bind To Source checkbox.  I think my problem is in the shared variable path.  I have tried the following with no success:
    MyComputer\ControlLogixTags.lvlib\RsLinx\ProjectX\Online\Faults\Faults
    MyComputer\ControlLogixTags.lvlib\RsLinx\ProjectX\Online\Faults\Faults[0]
    MyComputer\ControlLogixTags.lvlib\RsLinx\ProjectX\Online\Faults\Faults[]
    MyComputer\ControlLogixTags.lvlib\RsLinx\ProjectX\Online\Faults\
    MyComputer\ControlLogixTags.lvlib\RsLinx\ProjectX\Online\Faults
    I have created a simple vi for testing.  I have wired the shared variable to an indicator which is an array of UInt16 items.  When I run the vi, I get an error which says "Error 91 occurred at Variant to Data in Text.vi.  Possbile Reason:  The data type of the variant is not compatible with the data type of the input."
    Does anyone have a suggestion as to what I am doing wrong?
    Thanks in advance for your help,
    Phil

    Phil,
    In order to determine that you can correctly communicate with your OPC server, I would suggest creating a shared variable bound to a single tag. It sounds as if you already have an RSLinx I/O Server in your project library. Now you can create a new shared variable and use the browse option to browse the items of your I/O server. Be sure to select a tag that has a known value such that you can verify successful communication.
    Also, does your VI utilize a dynamic data conversion? The error code mentioned (error 91) is normally associated with this data type. Our next step will be to look at this VI once we can establish successful communication. I hope this was useful for you. Please let me know if I can be of further assistance.
    Mike
    National Instruments
    Applications Engineer

  • Shared variable engine OPC delay

    Hello All,
    I've got a bit of a problem with the delay time of updates between a non NI OPC server and a shared variable engine OPC client. I am using the redion OPC software OPCWorx with a database of around 120 tags to monitor and log data from a small pilot plant. The OPCWorx server has been configured with a 500ms update rate and the NI OPC client as the same. So here is my problem; logged updates occur no faster that 2.5s which is fine as we are exporting in 3 sec intervals (would still like to increase the performance of this to around 1 sec) but the main nuisance is the delay in changing control registers in the PLCs. The controls and indicators are directly bound to the shared variable items where by a change in a boolean control on the front panel to the indicated response can range from 5 to sometimes 15 seconds delay. If I bind the same control and indicator directly to the OPC item through the data socket the delay in response is almost unnoticeable at around 1 sec. I have increased the update/logging dead bands of the shared variables which seemed to help but only by a second or so.
    Im wondering what the limitations of using an OPC shared variable engine is and if this is expected or have I gone wrong somewhere. All the variables are configured as non buffered and to have single writers.
    A few changes have been suggested;
    - Upgrading the PC. The current hardware is AMD Phenom 2 3.21GHz processor, 4GB of ram running windows XP.
    - Using Modbus over ethernet instead of OPC.
    This is the first major use of the DSC module and using the shared variable engine as an OPC client so any information or insight to help with this would be much appreciated. 

    Hi Kallen,
    The Shared Variable Engine can become bogged down when there are more than 100 shared variables.  This may be what you are experiencing.  We can check buffering for the variables and disable it, and that should improve performance slightly.  As it is, using datasockets may be the best method for over 100 shared variables.  I apologize for the inconvenience.
    Here are some KnowledgeBase articles that can be of use with regards to this issue:
    How Does Buffering Work for Shared Variables?
    http://digital.ni.com/public.nsf/allkb/5A2EB0E0BC56219C8625730C00232C09?OpenDocument
    Why Is Accessing IO Variables Through The Shared Variable Interface So Slow?
    http://digital.ni.com/public.nsf/allkb/F18AEE4BE7C9496B86257614000C43DF?OpenDocument
    Matt S.
    Industrial Communications Product Support Engineer
    National Instruments

  • Using shared variable not in the project.

    hi all
    I have a project with the 2 RT targets and the development PC which were i currently deploy all my shared variables, But I need to finally deploy these shared variable in a different stand alone windows based machine. To do this I created separate application which does nothing but deploys the shared variables in this PC. but when i tried to bind to this variables (frount panel binding) from my RT targets it woudnt work, the led does not glow, it is always transperent. but when I tried to connect to these variables from my development PC it works fine. I double checked the firewall problem, that is not the case here. Can anyone tell me what am i doing wrong?
    Thanx
    Arun

    Hi Prashanth
    Thanks for the reply. I did realize that the front panle connection would not be supported in RT, now i have the shared variables on my RT machine which has te source as the windows machine. If the windows machine is my development machine the shared variables connect fine, but if its a different PC the shared variables connect for few seconds and with the error info "shared variable value 0" then the connection gets disconnected.
    Also i read a note in the shared variables help, it said to subscribe and publish on a network shared variable all the shared variable which connects to this variable should be active. does this mean that if there are 2 RT targets that subscribe data and one of them is not switched on the shared variable does not work.?
    Thanks again for your support.
    Regards
    Arun

  • Custom data type causing trouble in deploying shared variable to RT target

    I seem to be having some difficulty in using a network published shared variable created from a custom data type when deployed as an executable on an RT cRIO target.  I'll start by describing why I believe this is where the problem lies.  I created my RT VI in the LabVIEW development environment (LV 2012) and everything works fine.  This VI is pretty simple because it rapidly devolved in to a debug exercise.  The RT VI starts by simply blinking the User LED a couple of times and then starts a simple acquisition loop to read a few values off the hardware using the scan engine (while still blinking the User LED).  After reading the hardware, the values are bundled in to a cluster and written to a network-published shared variable defined by a type def custom control.  The custom control contains five dbl precision floats.  If it matters, the cRIO RT system hosts the shared variable in this case.
    So, I deploy this under the development environment and everything works fine.  The LED blinks merrily along, telling me that the program is running properly.  Running a host VI that reads the network-published shared variable yields the desired result.  All is good.
    Now I want the cRIO system to run this simple program autonomously at startup.  I build it, set it as the startup VI, deploy it and then restart the cRIO target.  The LED never starts blinking... the VI does not seem to run.  I will spare you most of the debugging work and jump to the end.  I basically "Diagram Disabled" various sections of code until the VI started running correctly as an executable.  I kept reducing the size of the disabled code until only one thing was disabled:  the write to the custom data type shared variable.
    So, I guess my question is this:  Are custom data types defined by type def'd custom controls allowed in executable RT programs?  I've read through the cRIO Developers Guide, my NI Real Time Development course book and the Using Shared Variables white paper and I didn't see anything that forbade it.  I know that there are some things not allowed in executables that are allowed in the development environment (front panel property nodes, dialog VIs, OS-specific calls, etc), but no mention of custom data type shared variables.  Any ideas as to why my VI runs in the development environment but fails when compiled unless I remove the write to the network published shared variable?
    Thanks in advance for your help!!
    Solved!
    Go to Solution.

    Paolo,
    So I thought that you meant to disconnect them in the build specification.  Under the Additional Exclusions in the build specification, there is a check box for Disconnect Type Defs.  I checked that box, recompiled, redeployed and it did not work.  At this point I had to give and move forward, so I was going to convert the data typed from a cluster to an array.  When I went in to change the data type in the shared variable pop-up from the project explorer, there was a big button under the variable definition that "Disconnect from Type Def".  Clicked that button, recompiled, redeployed, restarted and everything worked great.  Thank You!!
    I suspect that I'll have to be careful if I change the definition of that data type (add an element, etc) since it is no longer connected to the data type.  We'll cross that bridge when we need to.
    Thanks again

  • Shared variable architecture for distributed crio system

    I have a distributed system consisting of 20 cRIOs and one central server running Windows XP. Each cRIO is a mix and match of AI, AO, DO, DI and TC modules. There are around 200 AI and TC channels and close to 100 AO, DO and DI channels. I need to acquire data from all the AI & TC channels at 10 Samples/sec and log them in the Server. In some cRIOs I have 2 to 3 PID loops, in addition to the data acquisition or generation code. Since a cRIO chassis can have only eight modules, certain PID loops will have to use data of channels that are available in other cRIOs. cRIOs can be turned ON and will be running even without the control server, but facility and test will be started only through the control server.
    We have decide to use LabVIEW DSC for this application and shared variable for data transfer, logging and alarm. We are using the following SV architecture.
    1. Each cRIO will have its own RT shared variables for AI, AO, DI, DO and TC parameters
    2. Each AI and AO parameter shared variable in RT will have its corresponding host shared variable which will be bound to the RT Shared variable. In host shared variable we are enabling logging and alarm option for variables corresponding AI parameters.
    3. In cRIO RT, data is read from the FPGA (using FIFO every 500ms, and we get 5 Samples for each channel) in binary format and scaling is done. After scaling we are updating the corresponding AI RT shared variables using DataSocket write in a loop. In any cRIO there will be only a maximum of 32 AI or TC parameters.
    4.  The server has a mimic panel where we need to display the status of DIs and allow the user to turn ON and OFF DOs. For the we decided to use Front panel DataSocket binding. 
    I would like to know whether there is any better shared variable architecture that we can follow. Considering the number of variable that we are using, will the current architecture cause any performance issues?
    Thanks!
    "A VI inside a Class is worth hundreds in the bush"
    യവന്‍ പുലിയാണു കേട്ടാ!!!

    Hi Mike,
    Looks like you are lucky as you can make use of the great feature available in 8.6. Over here I have 8.5.1 so got to do some of the things the 'hard' way But I must say, 8.5.1 is the so far the best version of LabVIEW I have worked after 7.1 as the crashes are less and less frequent. 
    BTW I faced some problems directly dragging and dropping an RT SV node  to Windows. If the RT code is running and if you try to run the Windows code, it was asking to stop the code running in RT. That's one reason I had to duplicate some RT Shared variable in host and bind them to corresponding RT Shared variables.
    This is the first time I am handling this many number of shared variables. In case I come across some issues, I will post them here.
    "A VI inside a Class is worth hundreds in the bush"
    യവന്‍ പുലിയാണു കേട്ടാ!!!

  • Error -196736204 occurs when deploying shared variables?????

    When I try to deploy shared variables contained in a library named 'DAQ_sv.lvlib' I get the following message for each shared variable in the library.
    Deploying DAQ_sv.lvlib:exit \\192.168.1.100\DAQ_sv\exit deployment failed (error: -1967362041, IAK_SHARED:  (Hex 0x8ABC7007) Out of range.).
    this paticular message was generated by the shared variable 'exit'.
    Does anyone know what caused this?

    Hello Steve,
    You probably have a shared variable in this library that has the "Bind to Source" option checked in its properties but the path for that binding is either incorrect or empty. Make sure all the variables in this library have valid bindings. Also try deploying a new library to new variables make sure that there is nothing else wrong.
    Regards,
    Chetan K
    Application Engineering
    National Instruments

  • Labview on Shared Variable

    Hi,
    In our application we want share the some IO's in Tablet PC(remote PC) and HOST PC.
    We are using real time controller in our application.
    For this purpose we have create shared variables in *.lvproj. While we craeting shared variables we can not assign DATA type as a cluster of different elements to the shared variables.
    Due to this we created *.ctl file of that cluster and then tried to assign the same cluster to the particular shared variable.
    There are nuamber of shared variables in this application with different cluster of elements.The problem is that the same *.ctl file assign to two different shared varialbles which we not required. Because we have created different *.ctl files for two different shared variables.
    Is our apporach is right?
    Can we use *.ctl file as a data type as cluster of different elements for shared variable?
    Please suggest ....
    Thanks in advance

    I believe your approach is correct.
    Share Variables use the data type. So if you have a number of controls with the same type of cluster, e.g. Cluster1 is String & Numeric, Cluster2 is String and Numeric, then when you assign the Shared Variable to Cluster2 it will be identified as Cluster1.
    This is a reported bug in shared variables.
    One workaround would be to change the data type e.g. Numeric in Cluster1 may be INT16 while Numeric in Cluster2 may be INT32.
    Then the Shared Var's will identify them as different data types.
    DOK

Maybe you are looking for

  • Photoshop CC "Damaged or incomplete"

    I downloaded photoshop but when I open it I get the message that it may be damaged or incomplete.  Creative Cloud won't let me reinstall.  Any advice would be fantastic. I've tried the direct download, but cannot access it, and I'm peeved that I'm be

  • How to see Special G/L Indicator when do MIRO

    Dear friends, Would you please let me konw how to make the fields 'Special G/L Indicator' required entry when we do MIRO? IN our system I can't see this field when I do MIRO.thank you for your kind help! Regards! Wendy

  • B550 Fn-key doesnt work

    hi i recently bought a lenovo b550. but i got a problem with the function, which you can use by pressing fn + the key with the right orange icon. for example the upper keys on the F1-F12 buttons dont work. the sound +/- on the cursor keys do work, bu

  • Report that can take the system: (users, utilization, T-CODE)

    I need a report that can take the system: How many times a user logged into the system in the last month Most used transactions Changes passwords. Etc., all you have to do with a user-level tuning. thanks, VLopes

  • Can't turn on Group.

    I have a project in Logic, where I made a Group to put all the drums into it. Don't know how it happened, but now I cannot turn on a Group. It is greyed and nothing happenes, when I choose the group name. Seems like it is not active.