Should a dot net Invoke node fill the error cluster?

Situation, a dll called by LabVIEW attempts to communicate with an instrument and can not because the instrument is not present.  The DLL returns a standard LabVIEW error cluster with no error.
Person A says this is wrong : it must return an error.  Further modules in the chain can not succeed with no communication. And that it is possible to return an error by throwing an exception.
Person B says : The program ran and did not die.  This is our module not a LabView function.  The error cluster should return no error.  And that it can not return an error either,
The questions are Who is right A or B? And , since is has already gotten to a ‘is to, is not’ kind of disagreement, Where is any supporting documentation to reference that will authoritatively resolve the issue?
Solved!
Go to Solution.

In order for the dll to produce an error in LabVIEW, it must be programmed to throw an exception if no instrument is available.  LabVIEW will then convert this exception into a generic error with code 1172 (see attached article.)  LabVIEW can be programmed to give a custom error message using the attached example.  In this case, it should be possible to have the .NET dll throw an exception, and then have LabVIEW generate a custom error message to display to the user.  In this instance, it appears that Person A is correct.  Hope this helps resolve the issue.  
LabVIEW and .NET Exceptions
http://digital.ni.com/public.nsf/allkb/B15CE9F2715434C386256D3500601878
Programmatically Generate Custom Error Codes/Messages
https://decibel.ni.com/content/docs/DOC-9557
Regards,
Chris L
Applications Engineer
National Instruments
Certified LabVIEW Associate Developer

Similar Messages

  • How can I add dots after text to fill the remaining space in a table cell?

    What is the most efficient way to add dots after text to fill the remaining space in a table cell? I know it is possible using tabs but is this possible using a table?

    You can put a tab inside a table cell using Option+Tab
    Then just set the right-aligned tab stop and the right edge of the table cell and add the leader.

  • Does the error of the error cluster appear at invoke node?

    I use a "Open VI Reference" with "Invoke Node: Run VI and Wait until Done= True" if the VI run and have an error. Does the error return to the caller/server?

    No, you will need to use a CallByReference node to run the VI and then you can see the error cluster (if it is wired in the called VI's connector pane). Another option is to use the "Get Control Value" VI Server Method on the VI, to return the "error out" cluster of the called VI after the Run method is completed.
    -Jim

  • Can I create different Coherence nodes in the same cluster with defferent?

    Can I create different Coherence nodes in the same cluster with defferent cache-config.xml file ?
    Can a cache be distributed in these deffirent nodes?

    Yes. You can create different Coherence nodes in the same cluster with defferent cache-config.xml files as long as you use the same tangosol-coherence.xml file and the same tangosol-coherence-override.xml file. But you cannot store the cache data in the different nodes (started with different cache-config file). In other word, a node only create caches in their own's modes which are started with the same cache-config.xml file.
    See the following demo:
    I start a cache server using the cache config file examples-cache-server.xml. Then I start a storage-disabled cache console (cache client) using the cache config file coherence-cache-config.xml. Both of them using the same tangosol-coherence.xml file and the same tangosol-coherence-override.xml file.
    The cache server uses a cache service PartitionedPofCache. But the client side is using the Distributedcache service. The cluster address is same 224.3.5.2.
    The cluster name is also samme. They know each other.
    D:\coherence\lib>D:\examples\java\bin\run-cache-server.cmd
    D:\coherence\lib>D:\examples\java\bin\run-cache-server.cmd
    The system cannot find the file D:\coherence.
    The system cannot find the file C:\Oracle\Middleware\jdk160_11.
    2009-12-22 12:09:31.400/4.987 Oracle Coherence 3.5.2/463 <Info> (thread=main, member=n/a): Loaded operational configurat
    ion from resource "jar:file:/D:/coherence/lib/coherence.jar!/tangosol-coherence.xml"
    2009-12-22 12:09:31.450/5.037 Oracle Coherence 3.5.2/463 <Info> (thread=main, member=n/a): Loaded operational overrides
    from resource "jar:file:/D:/coherence/lib/coherence.jar!/tangosol-coherence-override-dev.xml"
    2009-12-22 12:09:31.470/5.057 Oracle Coherence 3.5.2/463 <D5> (thread=main, member=n/a): Optional configuration override
    "/tangosol-coherence-override.xml" is not specified
    2009-12-22 12:09:31.540/5.127 Oracle Coherence 3.5.2/463 <D5> (thread=main, member=n/a): Optional configuration override
    "/custom-mbeans.xml" is not specified
    Oracle Coherence Version 3.5.2/463
    Grid Edition: Development mode
    Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
    2009-12-22 12:09:33.864/7.451 Oracle Coherence GE 3.5.2/463 <Info> (thread=main, member=n/a): Loaded cache configuration
    from "file:/D:/examples/java/resource/config/examples-cache-config.xml"
    2009-12-22 12:09:39.983/13.570 Oracle Coherence GE 3.5.2/463 <D5> (thread=Cluster, member=n/a): Service Cluster joined t
    he cluster with senior service member n/a
    2009-12-22 12:09:43.187/16.774 Oracle Coherence GE 3.5.2/463 <Info> (thread=Cluster, member=n/a): Created a new cluster
    "cluster:0xD3FB" with Member(Id=1, Timestamp=2009-12-22 12:09:38.06, Address=192.168.8.80:8088, MachineId=24656, Locatio
    n=process:144, Role=CoherenceServer, Edition=Grid Edition, Mode=Development, CpuCount=1, SocketCount=1) UID=0xC0A8085000
    000125B75D888C60501F98
    2009-12-22 12:09:43.508/17.095 Oracle Coherence GE 3.5.2/463 <D5> (thread=Invocation:Management, member=1): Service Mana
    gement joined the cluster with senior service member 1
    2009-12-22 12:09:46.582/20.169 Oracle Coherence GE 3.5.2/463 <D5> (thread=DistributedCache:PartitionedPofCache, member=1
    ): Service PartitionedPofCache joined the cluster with senior service member 1
    2009-12-22 12:09:46.672/20.259 Oracle Coherence GE 3.5.2/463 <Info> (thread=DistributedCache:PartitionedPofCache, member
    =1): Loading POF configuration from resource "file:/D:/examples/java/resource/config/examples-pof-config.xml"
    2009-12-22 12:09:46.702/20.289 Oracle Coherence GE 3.5.2/463 <Info> (thread=DistributedCache:PartitionedPofCache, member
    =1): Loading POF configuration from resource "jar:file:/D:/coherence/lib/coherence.jar!/coherence-pof-config.xml"
    2009-12-22 12:09:47.734/21.321 Oracle Coherence GE 3.5.2/463 <Info> (thread=main, member=1): Started DefaultCacheServer.
    SafeCluster: Name=cluster:0xD3FB
    Group{Address=224.3.5.2, Port=35463, TTL=4}
    MasterMemberSet
      ThisMember=Member(Id=1, Timestamp=2009-12-22 12:09:38.06, Address=192.168.8.80:8088, MachineId=24656, Location=process
    :144, Role=CoherenceServer)
      OldestMember=Member(Id=1, Timestamp=2009-12-22 12:09:38.06, Address=192.168.8.80:8088, MachineId=24656, Location=proce
    ss:144, Role=CoherenceServer)
      ActualMemberSet=MemberSet(Size=1, BitSetCount=2
        Member(Id=1, Timestamp=2009-12-22 12:09:38.06, Address=192.168.8.80:8088, MachineId=24656, Location=process:144, Rol
    e=CoherenceServer)
      RecycleMillis=120000
      RecycleSet=MemberSet(Size=0, BitSetCount=0
    Services
      TcpRing{TcpSocketAccepter{State=STATE_OPEN, ServerSocket=192.168.8.80:8088}, Connections=[]}
      ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_JOINED), Id=0, Version=3.5, OldestMemberId=1}
      InvocationService{Name=Management, State=(SERVICE_STARTED), Id=1, Version=3.1, OldestMemberId=1}
      DistributedCache{Name=PartitionedPofCache, State=(SERVICE_STARTED), LocalStorage=enabled, PartitionCount=257, BackupCo
    unt=1, AssignedPartitions=257, BackupPartitions=0}
    2009-12-22 12:12:29.737/183.324 Oracle Coherence GE 3.5.2/463 <D5> (thread=Cluster, member=1): Member(Id=2, Timestamp=20
    09-12-22 12:12:29.541, Address=192.168.8.80:8089, MachineId=24656, Location=process:1188, Role=CoherenceConsole) joined
    Cluster with senior member 1
    2009-12-22 12:12:30.498/184.085 Oracle Coherence GE 3.5.2/463 <D5> (thread=Cluster, member=1): Member 2 joined Service M
    anagement with senior member 1
    2009-12-22 12:12:31.860/185.447 Oracle Coherence GE 3.5.2/463 <D5> (thread=Cluster, member=1): TcpRing: connecting to me
    mber 2 using TcpSocket{State=STATE_OPEN, Socket=Socket[addr=/192.168.8.80,port=8089,localport=2463]}
    2009-12-22 12:12:51.338/204.925 Oracle Coherence GE 3.5.2/463 <D5> (thread=Cluster, member=1): Member 2 joined Service D
    istributedCache with senior member 2The following command starts a cache client.
    D:\coherence\bin>coherence.cmd
    D:\coherence\bin>coherence.cmd
    ** Starting storage disabled console **
    java version "1.6.0_11"
    Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
    Java HotSpot(TM) Server VM (build 11.0-b16, mixed mode)
    2009-12-22 12:12:21.054/3.425 Oracle Coherence 3.5.2/463 <Info> (thread=main, member=n/a): Loaded operational configurat
    ion from resource "jar:file:/D:/coherence/lib/coherence.jar!/tangosol-coherence.xml"
    2009-12-22 12:12:21.355/3.726 Oracle Coherence 3.5.2/463 <Info> (thread=main, member=n/a): Loaded operational overrides
    from resource "jar:file:/D:/coherence/lib/coherence.jar!/tangosol-coherence-override-dev.xml"
    2009-12-22 12:12:21.365/3.736 Oracle Coherence 3.5.2/463 <D5> (thread=main, member=n/a): Optional configuration override
    "/tangosol-coherence-override.xml" is not specified
    2009-12-22 12:12:21.415/3.786 Oracle Coherence 3.5.2/463 <D5> (thread=main, member=n/a): Optional configuration override
    "/custom-mbeans.xml" is not specified
    Oracle Coherence Version 3.5.2/463
    Grid Edition: Development mode
    Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
    2009-12-22 12:12:29.316/11.687 Oracle Coherence GE 3.5.2/463 <D5> (thread=Cluster, member=n/a): Service Cluster joined t
    he cluster with senior service member n/a
    2009-12-22 12:12:29.356/11.727 Oracle Coherence GE 3.5.2/463 <Info> (thread=Cluster, member=n/a): Failed to satisfy the
    variance: allowed=16, actual=20
    2009-12-22 12:12:29.356/11.727 Oracle Coherence GE 3.5.2/463 <Info> (thread=Cluster, member=n/a): Increasing allowable v
    ariance to 17
    2009-12-22 12:12:29.807/12.178 Oracle Coherence GE 3.5.2/463 <Info> (thread=Cluster, member=n/a): This Member(Id=2, Time
    stamp=2009-12-22 12:12:29.541, Address=192.168.8.80:8089, MachineId=24656, Location=process:1188, Role=CoherenceConsole,
    Edition=Grid Edition, Mode=Development, CpuCount=1, SocketCount=1) joined cluster "cluster:0xD3FB" with senior Member(I
    d=1, Timestamp=2009-12-22 12:09:38.06, Address=192.168.8.80:8088, MachineId=24656, Location=process:144, Role=CoherenceS
    erver, Edition=Grid Edition, Mode=Development, CpuCount=1, SocketCount=1)
    2009-12-22 12:12:29.977/12.348 Oracle Coherence GE 3.5.2/463 <D5> (thread=Cluster, member=n/a): Member 1 joined Service
    Management with senior member 1
    2009-12-22 12:12:29.977/12.348 Oracle Coherence GE 3.5.2/463 <D5> (thread=Cluster, member=n/a): Member 1 joined Service
    PartitionedPofCache with senior member 1
    2009-12-22 12:12:30.578/12.949 Oracle Coherence GE 3.5.2/463 <D5> (thread=Invocation:Management, member=2): Service Mana
    gement joined the cluster with senior service member 1
    SafeCluster: Name=cluster:0xD3FB
    Group{Address=224.3.5.2, Port=35463, TTL=4}
    MasterMemberSet
      ThisMember=Member(Id=2, Timestamp=2009-12-22 12:12:29.541, Address=192.168.8.80:8089, MachineId=24656, Location=proces
    s:1188, Role=CoherenceConsole)
      OldestMember=Member(Id=1, Timestamp=2009-12-22 12:09:38.06, Address=192.168.8.80:8088, MachineId=24656, Location=proce
    ss:144, Role=CoherenceServer)
      ActualMemberSet=MemberSet(Size=2, BitSetCount=2
        Member(Id=1, Timestamp=2009-12-22 12:09:38.06, Address=192.168.8.80:8088, MachineId=24656, Location=process:144, Rol
    e=CoherenceServer)
        Member(Id=2, Timestamp=2009-12-22 12:12:29.541, Address=192.168.8.80:8089, MachineId=24656, Location=process:1188, R
    ole=CoherenceConsole)
      RecycleMillis=120000
      RecycleSet=MemberSet(Size=0, BitSetCount=0
    Services
      TcpRing{TcpSocketAccepter{State=STATE_OPEN, ServerSocket=192.168.8.80:8089}, Connections=[]}
      ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_JOINED), Id=0, Version=3.5, OldestMemberId=1}
      InvocationService{Name=Management, State=(SERVICE_STARTED), Id=1, Version=3.1, OldestMemberId=1}
    Map (?):
    2009-12-22 12:12:49.505/31.906 Oracle Coherence GE 3.5.2/463 <Info> (thread=main, member=2): Loaded cache configuration
    from "jar:file:/D:/coherence/lib/coherence.jar!/coherence-cache-config.xml"
    2009-12-22 12:12:51.358/33.729 Oracle Coherence GE 3.5.2/463 <D5> (thread=DistributedCache, member=2): Service Distribut
    edCache joined the cluster with senior service member 2
    <distributed-scheme>
      <!--
      To use POF serialization for this partitioned service,
      uncomment the following section
      <serializer>
      <class-
      name>com.tangosol.io.pof.ConfigurablePofContext</class-
      name>
      </serializer>
      -->
      <scheme-name>example-distributed</scheme-name>
      <service-name>DistributedCache</service-name>
      <backing-map-scheme>
        <local-scheme>
          <scheme-ref>example-binary-backing-map</scheme-ref>
        </local-scheme>
      </backing-map-scheme>
      <autostart>true</autostart>
    </distributed-scheme>But when I try to store data into cache from the client side, it report error message: it's staorage-disabled. It shows that this cache console cannot store the data in the existing cache server because then using different cache config files.
    Map (ca3): cache ca2
    <distributed-scheme>
      <!--
      To use POF serialization for this partitioned service,
      uncomment the following section
      <serializer>
      <class-
      name>com.tangosol.io.pof.ConfigurablePofContext</class-
      name>
      </serializer>
      -->
      <scheme-name>example-distributed</scheme-name>
      <service-name>DistributedCache</service-name>
      <backing-map-scheme>
        <local-scheme>
          <scheme-ref>example-binary-backing-map</scheme-ref>
        </local-scheme>
      </backing-map-scheme>
      <autostart>true</autostart>
    </distributed-scheme>
    Map (ca2): put 1 one
    2009-12-22 14:00:04.999/6467.370 Oracle Coherence GE 3.5.2/463 <Error> (thread=main, member=2):
    java.lang.RuntimeException: Storage is not configured
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$BinaryMap.onMissing
    Storage(DistributedCache.CDB:9)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$BinaryMap.ensureReq
    uestTarget(DistributedCache.CDB:34)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$BinaryMap.put(Distr
    ibutedCache.CDB:22)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$BinaryMap.put(Distr
    ibutedCache.CDB:1)
            at com.tangosol.util.ConverterCollections$ConverterMap.put(ConverterCollections.java:1541)
            at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$ViewMap.put(Distrib
    utedCache.CDB:1)
            at com.tangosol.coherence.component.util.SafeNamedCache.put(SafeNamedCache.CDB:1)
            at com.tangosol.coherence.component.application.console.Coherence.processCommand(Coherence.CDB:581)
            at com.tangosol.coherence.component.application.console.Coherence.run(Coherence.CDB:39)
            at com.tangosol.coherence.component.application.console.Coherence.main(Coherence.CDB:3)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at com.tangosol.net.CacheFactory.main(CacheFactory.java:1400)

  • How to address message to the specific node of the ESB cluster

    Hi!
    We are running ESB on two node active-active cluster configuration. We use custom adapter to communicate with customer legacy system over Socket connection. The point is, that we need to transfer large amount of data from our database into customer system using one open socket connection. Because of memory limitation we had to split data into multiple messages in ESB. This socket connection can be open from any of the active cluster node, but ones it's open all messages must be send within the node which had open the connection.So, the messages should not arrive into another node. The question: How is it possible to address (route) ESB messages into specific node of the cluster?
    Thanks in advance.
    Jaro,

    Muthu92 wrote:
    Thank you for your reply. It is very useful for me.  But i can't give conditional operator in that operator. It is showing error.
    My Test cases
    A[0]+A[1]>150
    A[31]-50 <100.
    If those are your exact statements, then they don't make sense in a formula node.  You have to use them in an if-statement or some other type of control logic.  This mimics text-based programming languages such as C... See here for instructions on formula node syntax: http://zone.ni.com/reference/en-XX/help/371361G-01​/lvhowto/formula_node_syntax/
    For instance, you COULD say something like:
    **In this example, let A[0] == x, A[1] == y, A[31] == z**
    if(x+y>150)
    /* do something if this is true */
    else if(z-50 < 100)
    /* do something else */
    EDIT: 
    It should also be noted that Variable Names MUST be lowercase!! I just discovered this
    EDIT2:
    I stand corrected.  After trying to create an example and digging through the LabVIEW Help, I stumbled across this:
    Differences between the Parser in the Mathematics VIs and the Formula Node
    The parser in the Mathematics VIs supports all elements that Formula Nodes support with the following exceptions:
    Variables—Only a, a0, ..., a9, ... z, z0, ..., z9, are valid.
    Logical, conditional, inequality, equality—?:,, &&, !=, ==, <, >, <=, and >= are not valid.
    Functions—atan2, max, min, mod, pow, rem, and sizeOfDim are not valid. You can use these functions in a Formula Node or use their corresponding LabVIEW functions.
    So it DOES NOT seem like Eval Formula Node can do conditionals like you want.  I would just implement them using a LabVIEW based algorithm after all.  Trying to out smart the formula nodes to avoid simple LabVIEW code is just too much of a hassle
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    If someone helped you out, please select their post as the solution and/or give them Kudos!

  • Used a XI web service in dot net, but cannot access the message types .

    I have created a web reference in dot net for a XI web service. In the front end i have a form which has 4 fields these are the fields of my request msg in XI. But when i compile the project, i get an error 'Reference to a non-shared member requires an object reference.' I'm not able to create a object of the request and response classes.
    Need help.

    Hi,
    Please check on this blog:
    /people/sap.user72/blog/2005/10/21/xi-the-underlying-connection-was-closed-an-unexpected-error-occurred-on-a-send

  • Invoke node: invalid method error

    hi, can someone help me explain what i did wrong or help me try to solve these errors..
    i am trying to work on an example problem and i dont see where i did wrong..
    thanks in advance
    labview 7.0
    Message Edited by krispiekream on 03-14-2008 12:11 PM
    Message Edited by krispiekream on 03-14-2008 12:15 PM
    Best regards,
    Krispiekream
    Attachments:
    doing wrong.PNG ‏51 KB
    cont_mult_vis_rem_pan.zip ‏155 KB

    I'm a little confused, because I'm pretty sure you can't insert a VI into a tab control. 
    I think that's the source of your error, but I have no idea how you got those invoke nodes to appear on the block diagram.
    edit - I see what you did.  When you changed the example, you deleted the subpanels that were originally on each Tab page.  You have to insert the VI into a subpanel which is displayed on a tab page. (Subpanels are on the Control Palette under Containers)
    Message Edited by JeffOverton on 03-14-2008 01:23 PM
    =============
    XP SP2, LV 8.2
    CLAD
    Attachments:
    subpanel.PNG ‏18 KB

  • Invoke node wiring "weird" error

    Greetings NI community,
        I know I have posted a lot about going from I2C to USB communications, and right now I am currently programming another controller in addition to the USB 8451, namely the Diolan DLN-2 - http://www.diolan.com/products/dln2.html.
       Now basically I'm trying to assemble my LabVIEW code that I've written before to work with Diolan, and Diolan has been of tremendous help - same level as NI!
       But I was trying to run this code (attached), but I get an unwired or bad terminal error at both invoke nodes (read and write - 2 errors - 1 for each) - but there's nothing to wire to/from, and the Diolan Engineer assisting me - his works fine (screeshot attached). It's the same exact code, I just cleaned mine up a bit, but didn't make any changes.
       Is there something I have to enable on my end for my code to run?
       Thanks!
        TheLT
    Solved!
    Go to Solution.
    Attachments:
    i2c-master-configure.vi ‏17 KB
    i2c_master-read_write.jpg ‏73 KB

    TheLT wrote:
    Greetings NI community,
        I know I have posted a lot about going from I2C to USB communications, and right now I am currently programming another controller in addition to the USB 8451, namely the Diolan DLN-2 - http://www.diolan.com/products/dln2.html.
       Now basically I'm trying to assemble my LabVIEW code that I've written before to work with Diolan, and Diolan has been of tremendous help - same level as NI!
       But I was trying to run this code (attached), but I get an unwired or bad terminal error at both invoke nodes (read and write - 2 errors - 1 for each) - but there's nothing to wire to/from, and the Diolan Engineer assisting me - his works fine (screeshot attached). It's the same exact code, I just cleaned mine up a bit, but didn't make any changes.
       Is there something I have to enable on my end for my code to run?
       Thanks!
        TheLT
    Can you show us the error messages please?
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • How to fill the error stack

    Hi,
    we want to check the data quality of the source in the start routine, process the good in the target and the bad in the error stack. Have you any idea which exception I have to raise to put it in the error stack?
    regards, Adrian

    Hi Adrian,
    you have to use skip record exception in a transformation routine. If this exception is rissen, the return code of the routine is unequal to zero and the data row is moved to error stack.
    If you create a transformation routine there is a short example given how to rise skip record exception. Skip value exception wont help, it will only clear the result and returns a blank or zero to the target.
    Please be aware of that the exception neither exits in start nor in end routines. There is no errorhandling on row level possible.
    Additionally create monitor entries to describe the error you are creating with calling the exception. It's recommended to create your own message class to do so.
    Regards Michael
    edit
    Remember switching on error handling in DTP configuration
    Edited by: Michael Seifert on Aug 12, 2008 1:46 PM

  • Feedback nodes in Error cluster

    Some time back I
    had posted a VI called Simple StateMachine template. Based on the
    comments from fellow members I have redone it and am attaching it
    herewith. ( LV7.1 + Win_XP Professional )
    If you just open it and check the block diagram, you will notice that
    LV has introduced a feedback node in the error cluster looping between
    DAQMx function Write Digital Output and Read Analog input. I am not
    sure why LV does this even though the two functions have no common
    reference or relevance between them.
    You can also try this : Just remove the data lines to the two Digital
    Out functions, and also the error cluster with Feedback node . Rewire
    the Error cluster but this time without the feedback node. And now if
    you try to connect the Digital Out data lines, you will find that the
    Data lines are drawn with feed back nodes !!
    I am sure LV is trying to tell me something - only that I don't understand what it is. Can some one  elaborate on this ?
    Thanks
    Raghunathan
    Message Edited by Raghunathan on 07-04-2005 08:29 PM
    Raghunathan
    LV2012 to Automate Hydraulic Test rigs.
    Attachments:
    PRP_Main.vi ‏288 KB

    You have an impossible loop in your code (Run it with execution highlighting to verify):
    Dig8-15 relies on data from the case structure.
    analog input 0-7 provides data into the big case structure
    This means that Dig8-15 cannot execute until the case has executed, but the case must wait for data from analog out. LabVIEW is smart enough to insert a feeback node such that AI0-7 gets the error from the previous interation. This is NOT a desirable situration. 
    Without the feedback node, yuor code is broken. AI0-7 cannnot run because it must wait for DO8-15 to execute. DO8-15 cannot execute because it must wait for AI0-7.
    You should:
    Uncheck the diagram option "Auto insert feedback nodes in cycles" to make sure to get broken wires so it is easier to find the problem.
    FIx your dataflow. Please make sure your wires flow left-to-right, it make errors like this less likely. You need to wire the error clusters in the order the subVIS execute.
    I hope this is clear enough, but please ask is you continue to have problems. Good luck!
    Message Edited by altenbach on 07-04-2005 07:18 PM
    LabVIEW Champion . Do more with less code and in less time .

  • How to get a LabVIEW class object to expose an invoke-node method?

    Hi,
          I like the property/invoke-node "paradigm" used for interacting with "objects".  Can LabVIEW-class objects expose their properties and methods this way?  Can one or more LabVIEW-class objects be compiled into a library or "assembly" (or other distrubution format) that allows the property/invoke-node usage?
    I've looked at (but not completely understood) "Creating LabVIEW Classes".  Have also searched for related posts.
    The pic below shows an invoke node wired to a class with a Public VI "VAT.Status.Hello.vi".  I'd like to see VAT.Status.Hello show-up as a Method.  (I just tried "Select Method", and selected "VAT.Status.Hello.vi" but dialog's "OK" button stays greyed-out.)
    Cheers.
    Message Edited by tbd on 03-29-2007 03:15 PM
    "Inside every large program is a small program struggling to get out." (attributed to Tony Hoare)
    Attachments:
    VATStat.JPG ‏54 KB

    Hi Aristos,
          Thanks for the reply!  It was a bit dissappointing, though.
    It appears the LabVIEW-class object will be moving away from (what seems to me) a convenient object-interface presented by the invoke-node/method paradigm - which allows us to interface with a large set of "objects" (.NET, ActiveX, LabVIEW GUI, VISA Resource, ?) in a similar manner and independent of the object's origin.  Being able to read the methods and parameters that appear in these nodes is also helpful for understanding diagram logic!
    I do like the option of dropping a friendly "VI looking" icon on the diagram, but perhaps an optional - even default - VI-icon representation for a class-object invoke-node is feasible - so the LabVIEW class-object could be the more generic object first, but with a traditional-G representation(?)
    Given the answer "We would like, someday, to support the property node"
    and "in the next version of LV, wiring the LV class to the property/invoke nodes will break the wire so we'll avoid confusion in the future",
    ... I guess you'll break the wire in the next version, but (perhaps) allow it again - if support of the property node is ever implemented?
    Regards.
    P.S. For the record, huge THANKS to whoever it was that straightened-out enumerated-types (somewhere) between LV4.1 and LV6.1.  Every time I add or remove an enumeration in a typedef, I silently give thanks to the bright and thoughtful soul(s) who made this valuable tool work so well!
    Hello. This is your friendly neighborhood R&D guy for LabVIEW classes.
    Regarding your request about property and invoke nodes as relates to LV classes....
    Short story: We would like, someday, to support the property node. We have no intention of ever supporting the invoke node.
    Long story: As we were creating LV classes, we had to evaluate the right programming interface for these things. We wanted LV classes to behave as new data types in LV. A developer should be able to create a LV class, then give it to someone who doesn't even know OO programming, and that second programmer could use the new data type without learning a lot of new concepts. From this principle, we held fast to the idea that the programming interface should be subVI calls whereever possible. The invoke node is really nothing more than a VI minus the icon. If you want, you can popup on any subvi node and uncheck the option "View as Icon". This will make the node display in a way that has the terminals listed as text, like the invoke node. So, at the end of the day, the invoke node is simply a subroutine call in LV that is language dependent, as opposed to the language independent iconography of LV generally.
    The property node is a slightly different story -- the functionality of a property node is actually different than an invoke node as its terminals are various subsets of the properties available, not a fixed list of parameters like the invoke node. The property node provides a nice interface for setting multiple properties in a block and only having to check a single error return. Very friendly. Our intent is to allow you to create a VI that has 5 terminals: object in, object out, error in, error out, and either a single input or a single output of your chosen type. VIs with this conpane could be marked as "properties" of the class and would show up when you wire the class wire to the property node. We would call the subVIs behind the scenes as needed to get/set the properties.
    This is on the longer term roadmap because it is "syntactic sugar" -- it sweetens the programming style, but it is not necessary to program effectively. You can get the same effect by writing those same VIs and stringing them along on a block diagram "railroad track" style. We'll probably get around to it in three or four versions of LV -- there are some major user requests that impact functionality that have to get done first.
    PS -- in the next version of LV, wiring the LV class to the property/invoke nodes will break the wire so we'll avoid confusion in the future of people thinking there's a way to use these nodes.
    Message Edited by Aristos Queue on 04-02-2007 09:56 AM
    Message Edited by tbd on 04-03-2007 12:39 PM
    "Inside every large program is a small program struggling to get out." (attributed to Tony Hoare)

  • DES Encryption compatibility between Microsoft dot Net and Java

    Hi,
    I have a situation that a Secret key is shared between two components like Core and the Customer. The customer encrypts a particular data using DES algorithm using the shared secret key. The customer uses Microsoft dot Net framework to do this. The encrypted data comes to core part which has been developed in Java. I want to know whether it is possible to decrypt the data value using DES algorithm which is coming from Dot Net platform. By the way I am getting different values. I want to know whether the byte[] in Java and Dot Net are same. Please provide me relevent answers to this question. Is it possible to make interaction with the cryptography between two differnet environments like Java and Microsoft Dot Net. I mean only DES algorithm.

    DebadattaMishra wrote:
    Hi,
    I have a situation that a Secret key is shared between two components like Core and the Customer. The customer encrypts a particular data using DES algorithm using the shared secret key.Yuk! That is what SSL is for.
    The customer uses Microsoft dot Net framework to do this. The encrypted data comes to core part which has been developed in Java. I want to know whether it is possible to decrypt the data value using DES algorithm which is coming from Dot Net platform. Yes though there are many pitfalls. The devil is in the detail of the .NET code. I would not tackle this without access to the full .NET encryption code.
    By the way I am getting different values.This is not surprising since, as I said above, there are many pitfalls. The.NET documentation is poor at best and in some cases is very very misleading. Some of the .NET methods involved in key generation have obscure semantics and only after a very careful reading of lots of MS documentation did I start to understand the semantics.
    I want to know whether the byte[] in Java and Dot Net are same. You should compare the 'bits' of each byte and not the numeric values since Java uses signed bytes.
    Please provide me relevent answers to this question.This is not your call. Anyone is free to post answers as long as they follow the forum code of conduct.
    Is it possible to make interaction with the cryptography between two differnet environments like Java and Microsoft Dot Net. I mean only DES algorithm.Of course!

  • Invoke Node causes error in VI

    The attached VI is one of numerous VIs in an application that I "inherited".  I am attempting to rebuild the application to incorporate some changes I have made.  This VI has an error, which indicates that there is a bad or unwired terminal at the Invoke Node for the PrintOut method.  According to the Help system, all of the unwired parameters for this node are optional, so the node appears to be wired correctly.  What am I missing?  Thanks.

    Hello,
    Thanks for attaching the VI.  I believe the preview -> lost attachment issue has already been reported to the admins for this discussion forum.
    As for your VI, I'm guessing this problem is happening because you are running a different version of Office than the computer on which this application was originally developed.  On the PrintOut invoke node, try selecting another method in the method list.  Then try selecting "PrintOut" again.  This should re-link the method to the "PrintOut" method specific to the Word version on your computer, and you should be fine.  By the way, the VI opens just fine (no broken run arrow) on my machine, and I'm running Office XP.
    Let me know if this solves the problem.  Oh yeah, here's a tip.  I noticed that in this code, there is a Boolean constant wired to the "Close" method, but it's wired into a "To Variant" function to convert it to a variant.  This explicit conversion is not necessary...for any ActiveX property or invoke node that takes variant inputs, you can just wire the native LabVIEW type directly into the input (without an explicit conversion) and it will work fine...this should save you some time as you write new VIs, or edit this set of VIs you inherited.
    Good luck,
    -D
    Darren Nattinger, CLA
    LabVIEW Artisan and Nugget Penman

  • Invoke node (parallely working VIs in a library)

    Hello everyone,
    I am trying to evaluate a temperature sensor.To do that I have to monitor thermocouple readings.Thermocouple is connected to FP-TC-120 temperature module. Besides, I have to acquire data from an optical spectrum analyzer. I am using 3650.VI to monitor the temperature and 86140B Trace_Screen Capture(2).llb o trace the data from the OSA.
    I am trying to use Invoke Node VI to trace data from spectrum analyzer. To do that I specified the necessary file path as an input to the code. The problem is the necessary VI (Write Trace to File.VI) is inside of a llb. file and needs other codes to completely function.
    That's when I run the code, (and when the stability condition is met) the computer asks me to save the spectrum analyzer data to a file called trace.csv. When I press ok, it just saves an empty file with a header (Power(dbm) Wavelength (nm)). Apparently it works parallely with other VI. How can I make use of the VIs inside of a .llb file with invoke node VI or should I use other VI to do combine temperature monitor VI with data tracing VI.
    The second problem is with the stability criterion of temperature.In the attached VI, I check whether the thermocouple reading stays within 0.8 degree stability range for 900 seconds. I want to change this. I
    want to check the stability of the temperature by comparing the final data with the previous ones. Is there any specific VI that should be exploited to check the fluctuations of waveforms?
     Thanks a lot
    Solved!
    Go to Solution.
    Attachments:
    3650.vi ‏107 KB
    86140B Trace_Screen Capture(2).llb ‏143 KB

    deniz wrote:
    I tried to implement the first method you suggested. But i had trouble since I am just a beginner. Could you please be more specific in explaining the solution? I am stating the problem again. Once the stability criterion is met I want the case structure to execute on the increments of 30 second or so. How can I do that by using shift registers? I tried to do  what you suggested as in the code attached but it did not work. (I could not make the case structure dependent on two conditions)
    I understood what you wanted perfectly fine. You just didn't implement it correctly. See attached. Please revisit my comment regarding the Write To Spreadsheet File that already exists inside of the "Trace Xfer" VI.
    The other proplem is again about timing. The while loop execute only if the temperature value changes since it is dependent on FP Open sub VI.
    The while loop has no dependence on the FP Open VI other than waiting for the error cluster and Fieldpoint refnum. There is no dependence on the while loop executing only if the temperature value changes. The while loop continuously acquires data, so I do not understand your statement. 
    Thus, the elapsed time VIs that are inside of the loop does not progress at 1 second increments. Is there any way to set an elapsed time  that is independent of timestamp of thermocouple reading device? 
    They can't and won't. The Elapsed Time VIs simply tell you ... elapsed time. They have no bearing on how fast the loop runs. It seems as if you have contradictory requirements. Do you want to the loop to run once a second and record, or run at the advise rate and only do something once a second, or run at the advise rate and only do something if the temperature changes?
    Attachments:
    3650.vi ‏116 KB

  • Problem while filling the Setup Table for the DS 2LIS_02_SCL.

    Hi All,
    When I am trying to fill the Setup table for the DataSource 2LIS_02_SCL and only for one specific Purchase Order, it is showing me a message like
    u201CDataSource 2LIS_02_ITM contains data still to be transferredu201D
    I have deleted the Setup Table and I want to delete the entries from SM13, but I do not have Authorization.
    Also, here I am trying to fill the Setup Table for 2LIS_02_SCL and not for 2LIS_02_ITM, but the message displayed above is showing as 2LIS_02_ITM DataSource. I think the Setup Table will be same for both the DataSources.
    Waiting for your valuable inputs.
    Thanks in Advance.

    Hi,
    When you want to fill the setup tables first you need to delete setup tables to avoid the duplicate entires in setup tables ( you can delete the setup tables by using t.code LBWG with application no is 02)
    In your case, the data souce is 2LIS_02_SCL for purchasing.
    when you want to delete the setup tables by using t.code LBWG with 02 application no it will delete all the purchasing related data from all the data sources like
    2LIS_02_SCL
    2LIS_02_ITM
    Before the deletion of setup tables you need to clear the delta Queues and stop the V3 jobs, which loads the data to Delta Queues (RSA7) and Update tables(LBWQ).
    you need to run the V3  jobs manually by using LBWE > Job control > and schedule the jobs until the delta queues will get 0 records. that means no data will be available in RSA7 and LBWQ
    go to SM37 to see the jobs LIS-BW-VB_APPLICATION_02,
    once the delta queues gets 0 records by running V3 Jobs manullay.
    Then remove the released state jobs > remove from schedule means delete the jobs in LBWE > Go to job control > you can delete the released jobs.
    Becuase No postings to be done in application tables, while running setuptable filling you should take some down time to fill the setup tables.( OLI*BW)  *=Application number.
    Once you clear the Queues and delete the v3 jobs, then you need to fill the setup tables after deletion of setup tables.
    once you fill the setup tables , by running intialization to BW side the delta Queue is formed for the data source in R3 side
    Now the postings can be done in R3 side, so you need schedule back the V3 jobs, which you already delted from LBWE to load the data from application tables to RSA7 or LBWQ.
    I hope this may help yoou.
    Regards.
    Rambabu
    Edited by: Rambabu velanati on Jun 9, 2010 4:41 PM
    Edited by: Rambabu velanati on Jun 9, 2010 4:52 PM

Maybe you are looking for

  • How to run BW reports since BI JAVA is not available in 7.4.

    We have Upgrade our BW 7.0 to BW 7.4 on HANA, How to run our BW reports since BI JAVA is not available in 7.4. My scenario: Producer Portal (BW portal ) we are creating/marinating Portal objects ( Folders, roles, work sets --etc.), which replicate in

  • Problem with CustomCellRender && CustomCellEditor....

    Hi to every one, can any one help me to solve this problem. I have a Custom cell renderer and custom cell editor. so the requirement is i want a "Check Box" when the object is of type Boolean else I want "TextField". ->Like mixing of both "Check Box"

  • Delete all and restart again

    Hello, I would like to delete my Lightroom 4 and all the pictures in it and start new again. Is there a way to do that? Thanks for your help. Mo

  • ACS Admin Access

    Hi, Is it possible to have the ACS Software authenticate against external DB's for admin level users administering the box... Thanks, AJ

  • Picking, pick list & TOs

    Hi Experts, I need some advice/help on possible transactions and possibilities for automation for the following functionality/process (steps 2&3). This is for WM. 1. Sales orders are logged and outbound deliveries are created (these deliveries may be