VISA dynamic distribution and net

Hello

I'm learning to use LVOOP. I like to have the abstraction layer HAL for my test for that program she works for various instruments.

Most of the instruments are connected to the computer via GPIB, so I can use VISA. Therefore, I created a class of material abstraction called 'meter' with a VISA as its property. So I have a dynamic dispatch VI called write VISA. This can work if all the instruments of the child are provided with VISA.

However, an instrument is connected via a USB port, and the instrument of the vendor driver is .net. So this one tool will not work with the dynamic dispatch because I can't use write VISA.

What is the best way to handle this situation?

Thank you

Joseph

Why you need to dynamic distribution allows to write the refnum? Somewhere in your code, you must select a specific instrument instance, perhaps using a box structure. At this point, you could also include the initialization code for the specific instrument. In the case of VISA, you could write the refnum, and in the case of .NET, you can call the constructor (that is, create the refnum inside the class, not going outside).

Tags: NI Software

Similar Questions

  • dynamic distribution and an order for various devices of construction

    I have a code that is written on a device. The device will be changed, but perform the same basic (frequency setting, power etc) commands. So, I wrote a dynamic dispatch VI that takes a command string predefined and written to the appropriate device based on what communication mechanism is used (SNMP, VISA, etc.). My question is related to the predefined command string that feeds this VI. I think that the creation of the chain of command VI should also be dynamic distribution and should build the command appropriate for the given device. But some devices might have several parameters required for the construction of this string (for example, snmp) and something like VISA may not be only one parameter. Dynamic distribution screw must have the same connector components, so what is the best way to handle this? I thought about having a class of 'settings' in the connector pane that holds all the specific parameters for a device. But it seems exaggerated to make a class for something like this, when a variant would do the trick as input. However, having a variant as it tends to make me think of distribution dynamic is not necessarily the right choice in the first place because you force a similar connector component.

    I also consider if some necessary inputs are, in fact, the State of the object and that it could be found in the object itself. This would reduce the connector pane entries and can mitigate some of these problems all together.

    Thoughts?

    for (imstuck) wrote:

    I also consider if some necessary inputs are, in fact, the State of the object and that it could be found in the object itself. This would reduce the connector pane entries and can mitigate some of these problems all together.

    That's what I'd do. Make settings of the object data, so when you then call the function to generate the dynamic distribution VI command string has all the right data available to it.

  • Problem with the combination of LabVIEW (dynamic distribution) classes, statechart module and module FPGA

    LOCATION:

    -I am developing a software plugin based on plug-ins based on LabVIEW classes that are instantiated in running. Plugin real classes come from the plug in generic classes that define interfaces to the VI instantiation and can provide basic functionality. This means that many of the methods of the class are dynamic distribution and even methods of child classes can call the parent method.

    -Plugins top level (the ones directly accessible by the main VI) each have a run method that animates a plug-in specific state transitions.

    -Transitions of the plug-in data acquisition (DAQ class) class calls a method of the DAQ class that reads data from an FPGA card OR and transmits to another component via a queue.

    PROBLEM:

    -Higher sampling rate, a FPGA-to-host FIFO overflow occurs after some time. When I "weigh" the system just by moving a window of Firefox browser on the screen, the overflow is triggered immediately. I did not have this kind of problem in older software, where I was also reading a FIFO of FPGA, but made no use of LabVIEW classes or diagrams.

    SOLUTIONS I'VE TRIED (WITHOUT SUCCESS):

    -J' put the transitions in a timed (instead of a simple while loop) loop that I assigned specifically to an own kernel (I have a quad-core processor), while I left all the other loops of my app (there many of them) in any simple loops. FIFO overflow still occurs, however.

    QUESTION:

    -Does anyone have a tip how I could fix this problem? What could be the cause: dynamic distribution methods, the acquisition of data of state transitions or just the fact that I have a large number of loops? However, I cannot change the fact that I have dynamic distribution methods because it is the essence of my architecture...

    Tips are greatly appreciated!

    I've now changed the execution priority of all the screws involved in reading of the FPGA FIFO '(highest) priority critical time '. This seems to be improving the situation much: so far I have not a FIFO overflow, even when I move around the windows on the screen. I hope it stays like that...

  • Summary of functions (two entries) for classes of brother with a dynamic distribution of entry: the static entry retains the type of the parent class.

    Suppose that in a hypothetical example, I have a superclass (number) with two children (real and complex) classes.

    I would define a function of sum for these classes, using dynamic distribution.

    Real or complex would have its own method of the sum (VI) which would be subject to various operations, such as the real and complex numbers are different.

    As I understand it, the normal way to proceed in OOP is for each of these methods to have an entry of dynamic distribution and a static entry of its own type.

    Problem: Labview doesn't let me do this!

    I first define an input method dynamic-shipping dummy for the numberof the parent class, but only the first entry can be dynamic-Envoy while the other is statically typed as number.

    Then, when I create override methods in my two children classes real and complex, the second entry (static) remains under the number (the type of the parent class). This is not fair, because then I can't access the private data of the child class of type real or complex that will be connected to the second input (static).

    What is the solution to this problem (usually)?

    I think that, in LVOOP, you use only a dynamic terminal or a static terminal to the terminal object.

    You can have several other terminals, but all the dynamics VI (methods with the same name) must have the same API (terminals).

    If you have to understand your preferred mode to pass, use multiple terminals, not used by each method, or use a cluster that contains all the numbers to pass (real or complex, both of which are not used in each method) or you can try a Variant, as shown.

  • Combining LVOOP DVR with dynamic distribution class and asynchronous Runtime Preserve

    OK, the title seems like a cornucopia of terms LVOOP.  But there's a reason.  It is sort of an extension of THIS thread.

    Do I have recently created a LVOOP approach to load completely asynchronous user interface elements into sub-panels.  This I have combined with a global repository for objects (which are essentially the singletons with functionality of the user interface) which are shared via DVR, thus eliminating a large number of synchronization headaches).

    This means that I can have a universal framework to initiate a secondary user interface elements.  Changes made to the object there are automatically reflected in the global repository.

    So far so good.

    What I do like is a combination of two buildings of apparently clumsy code that I need to keep things running.

    Construct odd 1:

    I defined a function "Launch UI" in my parent class which is the dynamic distribution (which allows to take care to launch its own UI of each object).  It takes a parent DVR as second entry object which sure is the exact type and the type of object called using the code below.  The Type REAL to two entries for the launch of VI in PEI are identical.  This is guaranteed because I need every new class instead of this function.

    Here I pass the DVR from outside to 'Launch' VI International preliminary examination, but the object obtained within the IPE retains information for DD thereby ensuring that the VI called for the launch of the user interface is identical to the type of object in the DVR REAL.  It works well and putting this bizarre construction within the parent class, abuse is minimized, it works very well and seems to have no major side effects.

    So now we have a VI running asynchronously in the background that belongs to a specific object, but has a DVR which it * thinks * is a parent Type, but because of the measures taken previously, is actually of the same type as the object itself.

    In order to make use of the functionality defined in this kind of real object, I continually have to re - interpret the object within the IPE as described below.  Otherwise only the Parent feature is available.

    If I access only methods of the parent class, then the Preserve feature is not necessary.

    Is there a more elegant way to do it?  I find the net result of this code and cast to be really useful and much easier to manage the road non - DVR since synchronization problems disappear.  Through the use of the near-atomic REI, we remove the chances of blocking.

    All editing in the asynchronous interface user of VI is automatically reflected in all subsequent use of the DVR.  Even if digital recorders are not shared between the screws, this makes it easier (for me) the puzzle of the synchronization.  If you start this expansion beyond the limits of a single VI, the benefits in synchronization becomes really huge.  You can even have several interface user objects based on the same data in the background without additional synchronization needs.  Required only one synchronization is a global 'data updates' for the object in question, in which case the UI elements simply update their indicators and the DVR's controls again.  It is trivial.

    So, I am convinced that the net result of this is very beneficial.

    My question is if there is a better, safer, or more 'official' way to do?

    I was about to start a new idea to combine the 'Preserve Run time class' and Terminal DVR of the International preliminary examination so that the casting is done automatically.  We could then have a double entry in PEI, the DVR (of the base type) as well as the ACTUAL Type of the object, but of course to return an error if the types are incompatible.  It would be like an "imposter" DVR of entry for International preliminary examination which allows a re-interpretation of the object type.

    Would all of this go away if we allowed dynamic distribution work with DVRs?  No doubt.

    Shane

    I agree that the deletion of bizarre construction #1 probably requires a dynamic send on DVR.  Unfortunately, if you look at the post of the exchange of ideas on that, there are a few nasty subtleties concerned by the application, so I wasn't expecting any time soon.

    For bizarre construction #2, you can cast the DVR itself.  Make a constant DVR that refers to the class of the child and lowered it seized goes in PEI.  If you need to return the parent type after the International preliminary examination, branch just the wire DVR before melting and use it as your lead.

  • Best way to check if the VI is dynamic distribution?

    I do a bit of scripting to VI, to create a class of children of a given parent and substituting the dynamic distribution selected screws to create a profile of a class library, I'm iterating over all the screws and check the connector pane to see if there are dynamic terminals. I don't know that there is a smarter method...

    If you have a reference to the class library, you might be able to use the "DynamicMemberVIs" property (there also a "StaticMemberVIs" property).  I have not tried to use it myself, so I can't guarantee that it will do what it takes.

    Chris M.

  • Secondary asynchronous dynamic distribution

    Hello

    A little, I have a problem with the help of screws of class member in a secondary school.  Take a look at this project, I joined to the VI for an example of what I'm trying to do (in LV 2011).

    Basically, I want to decide based on a user selection what Viewer I'll run and throw in a secondary school.  The user can change this during the operation of the program.  I decided to do the various viewers all the members of a class so that I can add new viewers and don't forget that all are compatible.

    Here's the question.  If I want to use the function of VI run asynchronously, I can't do this with dynamic distribution terminals (limitation in LabVIEW).  So, I did a pitcher that incorporates a static distribution terminals.  I call this launcher using the function to run asynchronously, and then the Launcher I runs the specific instances through dynamic distribution.  It works, and I can verify that the screws run with screw open their facades when they are run.  But I can't seem to get a reference to this VI which is launched via the Launcher to put in my main VI high school.

    I have a workaround, you can see in the other method used to launch screws in the example.  Selects directly using the name of the class member.  The data is passed to the VI using the method of control value.

    As I said, I have a solution to the problem.  But I wonder if there is a better way to do it.  So, if anyone knows how I can launch a VI of asynchronously and place its façade in a school I would like to hear about it.  Thanks to LabVIEW gurus.

    BTW, how easy you can solve your problem is to create a temporary queue, pass it in to the call of the CGRA (with static VI passing it in the dynamic), then you have the dynamic VI post its own Ref to the queue.  The calling code will wait in the queue for the reference, and then destroy the queue.

  • Convert static Dispatch VI VI dynamic distribution

    I'm having a slow day, so I hope that someone else is working this Christmas and can answer this for me:

    I want to convert some of my class of LabVIEW static Dispatch screws of dynamic distribution. I thought it would be as simple as changing the types of terminals for the entry class and outputs "Dynamic Dispatch Input" and "Dynamic Dispatch Output (recommended)", but when I try that they are ghosts. I know I'm tired right now and I can't wait to go home for Christmas, but I can't seem to understand this (and I'm sure that I've done it before, so I know it's possible!)

    Can anyone help?

    (Merry Christmas!)

    OK, nevermind, I realized what I was doing wrong. I tried to convert my screws of wrapper, using a type of data without class, and indeed the method called that live inside can be converted to dynamic. Silly me!

  • LV 2009 bug - dynamic distribution selection dialog does not have the VI forward, if it is already open

    In 2009 of LV, if you double-click an implementation in the dynamic distribution selection dialog and VI is already open, it will not be credited toward the front. It worked correctly in earlier versions.

    Have a look at the attached draft for an example.

    Please try to drop the VI attached on top of program NIUninstaller Instruments\LabVIEW XXXX\resource\Framework\Providers\LVClassLibrary\ChooseImplementation\CLSUIP_OpenImplementations.vi and let me know if it works for you.

  • Very weird behavior of LV OOP/classes: wrong dynamic distribution method is called

    I have very strange problem: a Subvi (start_scanning.vi) in my software is supposed to call a method on dynamic distribution (send_trigger.vi) of a class of LV:

    However, instead of calling the send_trigger.vi, a completely different method (with a different name and a component of connector without matching) of a class parent is called. LabVIEW then immediately displays a dialog box indicating "LabVIEW: an input parameter is not valid." For example if the input is a path, the path can contain a character not allowed by the operating system such as? or @. The first level VI "main.vi" was arrested in stranger on the block diagram of the 'GenericPlugin.lvclass:set_current_objective.vi '.

    GenericPlugin.lvclass:set_current_objective.vi (mentioned in the message of the dialog box) is the method that is called instead of the correct method. The input parameter invalid, that the message of the dialog box refers to is probably the enum that I pass to my method of distribution dynamic (this enum of course does not match the input parameter expected by set_current_objective.vi).

    I tried to give LabVIEW an additional clue he's trying to call the wrong way by putting another input to the façade of the set_current_objective.vi control (and plug it into the connector pane). Indeed, this change something: LabVIEW then completely stalls (does not respond to ANY user input more), but the correct method (send_trigger.vi) is not executed (sensors inside the method do not run). What is the case if, rather than add additional control on the front of the set_current_objective.vi Panel, I try to pass another enum value to send_trigger.vi.

    A strange observation is that at some point the VI (e.g., start_scanning.vi) somehow try to call the method of dynamic distribution gets locked (the façade seems that ran the VI; and the block schema cannot be modified more).

    I would be grateful any indication which could help me to solve this problem, because I am really stuck now...

    All of the code-compilation of mass seems to have solved the problem.

  • "due to an unidentified problem, windows cannot display windows firewall settings" fixed but still can not visit some sites and the laptop now turns off the coast on me. What should I do?

    I have an Apire one laptop with Windows xp service pace 3. I had to restore it to factory about 3 years ago. Some time after that the sound system began to slow and the Synaptics mouse stop working properly. I can move the pointer, but the left click does not work. It works in safe mode but not in normal windows. I used the Acer eRecovery for correct, but it did not work. I tried to download the driver for the mouse on the internet, but some how it could stop the download. I gave up at tring to fix. Some time in late March or early April, I couldn't access internet and after 22:30. I ran the diagnosis that is provided by internet explore and he said that the HTTP and HTTPS worked but the FTP did not work. AVG later told me my firewall is disabled and there was the possibility to reactivate it and I did. After internet explore stop allowing you to enter certain sites that I wanted to enter, I ran the Diagnostics again and he told me that a firewall client has been the cause of the problem. I tried to control my firewall setting, but had that "due to a problem not identified, windows cannot display the firewall settings". I thought AVG was the problem, so I have unintalled then he returned and attempted to access the firewall but got the same message. I typed in Google MySapce and found this site. I followed a few directions given to others in the thread started by joecarpenter33 and discovered that my firewall has been deleted and Base filtering engine has been deleted also. I downloaded and ran Malwarebytes ANti-Malware and SUPERAntiSpyware Free Edition and tdsskiller. MBAM has found a Trojan. The results of the analysis is less to:

    Malwarebytes Anti-Malware (Trial) 1.75.0.1300
    www.Malwarebytes.org

    Database version: v2013.04.10.14

    Windows XP Service Pack 3 x 86 NTFS (secure/setting network Mode)
    Internet Explorer 8.0.6001.18702
    Ziadie Berry: BERRY-LAPTOP [Director]

    Protection: disabled

    10/04/2013-17:44:54
    MBAM-log-2013-04-10 (17-44-54) .txt

    Scan type: quick scan
    Analyze the options enabled: memory | Startup | Registry | File system | Heuristic or Extra | Heuristics/Shuriken | PUPPY | PUM
    Analyze the options disabled: P2P
    Objects scanned: 271656
    Time elapsed: 43 minute (s), 42 second (s)

    The process of memory detected: 0
    (No malicious items detected)

    Modules of memory detected: 0
    (No malicious items detected)

    The registry keys detected: 0
    (No malicious items detected)

    The registry values detected: 0
    (No malicious items detected)

    Registry data items detected: 0
    (No malicious items detected)

    Files detected: 0
    (No malicious items detected)

    Files detected: 1
    C:\RECYCLER\S-1-5-21-4674304-3331980883-3375822000-500\$7832f44fdd2ba165f6ea01bec7f363fd\n (Trojan.0Access)-> quarantined and deleted successfully.

    (end)

    Malwarebytes Anti-Malware (Trial) 1.75.0.1300
    www.Malwarebytes.org

    Database version: v2013.04.10.14

    Windows XP Service Pack 3 x 86 NTFS
    Internet Explorer 8.0.6001.18702
    Ziadie Berry: BERRY-LAPTOP [Director]

    Protection: enabled

    10/04/2013 23:43:49
    MBAM-log-2013-04-10 (23-43-49) .txt

    Scan type: quick scan
    Analyze the options enabled: memory | Startup | Registry | File system | Heuristic or Extra | Heuristics/Shuriken | PUPPY | PUM
    Analyze the options disabled: P2P
    Objects scanned: 269636
    Elapsed time: 49 minute (s), 41 second (s)

    The process of memory detected: 0
    (No malicious items detected)

    Modules of memory detected: 0
    (No malicious items detected)

    The registry keys detected: 0
    (No malicious items detected)

    The registry values detected: 0
    (No malicious items detected)

    Registry data items detected: 0
    (No malicious items detected)

    Files detected: 0
    (No malicious items detected)

    Files detected: 1
    C:\WINDOWS\assembly\GAC\Desktop.ini (Rootkit.0access)-> quarantined and deleted successfully.

    (end)

    I ran the Diagnostics today after Internet explore and my other browsers stop allowing me to internet access. That's what came back:

    Diagnosis of last run time: 17/04/13 17:48:14 WinSock Diagnostic
    WinSock status

    attmpting error information to validate the Winsock base providers: 2
    error not all entries could be found in the basic services provider winsock catalog. A reboot is required.
    user redirection of information in support of the appeal

    Diagnosis of network adapter
    Network location detection

    Info to help home Internet connection
    Identification of network adapter

    Info network connection: name = Local, peripheral network connection = Realtek RTL8102E Family PCI - E Fast Ethernet NIC, MediaType = LAN, type = LAN
    Info network connection: name = wireless, peripheral network connection = Atheros AR5007EG Wireless Network Adapter, MediaType = LAN, type = Wireless
    Info both Ethernet connections and wireless available, ask the user for selection
    required user input action: select network connection
    Info Wireless connection selected
    State of the network adapter

    Info network connection status: connected

    HTTP, HTTPS, FTP Diagnostic
    HTTP, HTTPS, FTP connectivity

    WARN HTTPS: error 12029 connecting to www.microsoft.com: a connection with the server could not be established
    warn HTTP: error 12029 connecting to www.microsoft.com: a connection with the server could not be established
    warn HTTP: error 12029 connecting to www.hotmail.com: a connection with the server could not be established
    WARN HTTPS: error 12029 connecting to www.passport.net: a connection with the server could not be established
    WARN FTP (passive): error 12029 connecting to FTP.Microsoft.com: a connection with the server could not be established
    WARN FTP (active): error 12029 connecting to FTP.Microsoft.com: a connection with the server could not be established
    error could not make an HTTP connection.
    error could not make an HTTPS connection.
    error could not make an FTP connection.
     
    Still, he remains connected to the wirelesss connection, but won't let me access the internet. Right now I use a proxy to help, but access to the sites are limited.

    I used the tweaking software and my firewall is back but, I have yet to visit some sites and the laptop now turns off by itself.

    Hello

    Follow these methods.

    Method 1.

    Start the computer in safe mode with network and run a full scan of computer viruses.

    To start the computer in safe mode: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/boot_failsafe.mspx?mfr=true

    Run a full scan of the computer with the Microsoft Safety Scanner to make sure that the computer is virus-free.

    Microsoft safety scanner: http://www.microsoft.com/security/scanner/en-us/default.aspx

    Warning of Security Scanner: there could be a loss of data while performing an analysis using the Microsoft safety scanner to eliminate viruses as appropriate.

    Method 2.

    If the steps above do not help, then try to scan the computer using Windows defender in offline mode and check if that helps.

    Search for spyware and other potentially unwanted software: http://windows.microsoft.com/en-US/windows7/Scan-for-spyware-and-other-potentially-unwanted-software

    What is Windows Defender Offline? : http://windows.microsoft.com/en-US/windows/what-is-windows-defender-offline

    Warning of Security Scanner: there could be a loss of data while performing an analysis using the Microsoft safety scanner to eliminate viruses as appropriate.

    Method 3.

    You can create a new user account and check. Once the new user account works fine, then copy the data from the old user account for the user account.

    How to copy data from a user profile damaged to a new profile in Windows XP: http://support.microsoft.com/kb/811151

    Let us know if you need assistance with any windows problem. We will be happy to help you.

  • difference between VISA READ buffer and chain

    Hello I'm just starting to use the VISA read and write the function in labVIEW

    everyone knows what are the degree between reading VISA and the string buffer? and the comparison of the VISA Write buffer and chain

    Thank you

    Ein salvation,

    "read buffer" is the string given by VISAReadlabel, "write buffer" is the label of the string that is expected by VISAWrite!

    There is no difference...

  • Load a dynamic VI and keep in memory after execution

    Hi guys,.

    I use a strange setting that I have to follow a set of rules.

    My problem is the following:

    I have a main VI (which is compiled into an EXE file) that dynamically loads and executes a Subvi (the Subvi is not compiled into the EXE file). Calls Subvi has overall functional which is called only by dynamic screws, where the global is not a dependency of handmade VI and it is not compiled into the EXE file either. As you can see already, when I call my Subvi dynamic for the first time (for example it behaves like a SET function), it will define the functional global; then, when the dynamic Subvi execution stops, it releases the global functional VI. So if I call another sub - VI dynamic as a function of READING, he will not retain the information specified by SET Subvi.

    I'm not allowed to do the subVIs or global one functional dependence of handmade VI and it can not be compiled into the EXE file, so what I have to do is load the Subvi Dynamics somehow and either keep in memory even when the execution ends, or keep the functional global in memory after the first call.

    Anyone know how I would be able to do this?

    Help is appreciated,

    Drazen

    Drazen,

    When ' a VI dynamic calls functional overall for the first time, launch an another dynamic VI (Holder.vi) who has the functional overall as a Subvi.  Holder.VI does nothing except wait until the hand VI is called dynamic screws as long as Holder.vi is in memory, it will also keep the functional global in memory.

    I have not tried this, but think that it will work.  It of a little awkward, but must have a minimum size and impact on CPU resources.

    Lynn

  • I visit my daughter and they have DSL but it so slow and Facebook does not completely load. How can I know what the problem is and fix it?

    I visit my daughter and they have DSL for the game but not a computer. I can connect to the internet with my laptop very well, but it is so slow and especially never finishes loading. Unable to get Facebook and Farmville to load correctly how to find what is the problem and ffix it? Its driving me crazy!

    Hi DonnaSuttles,

    ·         What operating system is installed on your computer?

    ·         If it works well before?

    ·         Did you do changes on the computer before the show?

    I suggest you to check and clean the boot if the problem persists.

    How to troubleshoot a problem by performing a clean boot in Windows Vista or in Windows 7

    http://support.Microsoft.com/kb/929135

     

    Note: After troubleshooting, be sure to configure the computer to start as usual as mentioned in step 7 in the above article.

    You can also view the article mentioned for more information:

    Why is my Internet connection so slow?

    http://Windows.Microsoft.com/en-us/Windows7/why-is-my-Internet-connection-so-slow

    Let us know the results.

  • VPN IPSEC ASA with counterpart with dynamic IP and certificates

    Hello!

    Someone please give me config the work of the ASA for ASA Site to Site IPSEC VPN with counterpart with dynamic IP and authentication certificates.

    He works with PSK authentication. But the connection landed at DefaultRAGroup instead of DefaultL2LGroup with certificate

    authentication.

    Should what special config I ask a DefaultRAGroup to activate the connection?

    Thank you!

    The ASA uses parts of the client cert DN to perform a tunnel-group  lookup to place the user in a group.  When "peer-id-validate req" is  defined the ASA also tries to compare the IKE ID (cert DN) with the  actual cert DN (also received in IKE negotiation), if the comparison  fails the connection fails. know you could set "peer-id-validate cert"  for the time being and the ASA will try to compare the values but allow  the connection if it cannot. 

    In general I would suggest using option "cert."

    With nocheck, we are simply not strict on IKE ID matchin the certificate, which is normally not a problem of security :-)

Maybe you are looking for