Memory/Port IO in LabView 8

LV 7.1 only offered 8bit Port I/O VI's.  In order to do 32bit memory read/writes I had to download an AccessHW utility.
In LV 8 it looks like this has been fixed...as the Port I/O routines are polymorphic, allowing to switch between 8, 16, or 32 bit use.
However, my application doesn't seem to be responding to this change. 
Are the LV 8 routines really the fix, or should I be looking for another AccessHW utility?

Hello,
The documentation for the In Port and Out Port functions in LabVIEW 8.0 specifically indicates that they only accept 16-bit addresses.  If you have a library of VIs that you were using in a previous version of LabVIEW 7.1 to achieve this, you can try making a copy of that library into a new directory, and then mass-compiling the new directory in LabVIEW 8.0.  Also, I'm not sure what hardware interface you are accessing, but you can use NI-VISA to do register level programming - the following may be a useful tutorial if that's an option for you:
Using the VISA Driver Development Wizard and NI-VISA to Register-Level Program a PXI/PCI Device under Windows
http://zone.ni.com/devzone/conceptd.nsf/webmain/ADF3152837E2B4A486256B5600642AC7?opendocument
If this is an option for you, the related links at the bottom of the document linked above may also be useful!
Thank you,
Best Regards,
JLS
Best,
JLS
Sixclear

Similar Messages

  • Using the In port.vi and Out port.vi in LabVIEW access my the Cards(Home made)

    Hi Everyone,
    I have got the Cards (home made 8 bit and 16 bit ) plug in at slot ISA my PC (I am using the commands inport and outport (addressed with 318-31A Hex) in C language to access very good).This now,I want to use LabVIEW language to access data directly to Port at my the Cards. In LabVIEW, Can I access data to port using the In port.vi and Out port.vi located in the Advance?
    My English is poor, you don't laugh when you read it.
    Thank you a lot.

    SachaE wrote:
    > LabVIEW 7.0 cannot use the built-in In/Out Port VIs with a 32-bit
    > address. Instead, you will have to use the versions of these VIs found
    > in previous versions of LabVIEW.
    Are you talking about physical memory access here? If so that is
    something entirely different. The Intel x86 architecture uses a separate
    IO address range which is entirely separate from memory space.
    And at least up to the first Pentium models it was definitely never
    possible to address more than 16 bits for IO address space.
    This of course has gotten a little more complicated nowadays with many
    PCI boards being actually mapped into memory address space instead of IO
    address space. So eventhough a PCI board is more like an IO device it
    often is accessed in the memory space.
    > Actually, the In Port and Out Port VIs are intended for 16-bit port
    > I/O and not for writing to arbitrary addresses in memory. For this
    > reason, writing to 32-bit addresses never should have been allowed.
    I think the VIs to access physical memory addresses were different than
    the ones to access IO addresses. And yes it is definitely not a good
    idea to have an application poke into physical memory as it could
    completely screw the system to the point where you couldn't start it
    anymore. Also IO devices mapped into memory address space are almost
    always typically plug and play devices, so their address is not really
    fixed and you need to do quite some more work on OS level to enumerate
    your hardware and find the resources used before trying to access it.
    This is something not really suited to try to do in LabVIEW and
    therefore should be at least implemented as DLL but in fact anything but
    a device driver is a very bad kludge.
    > One possible work-around would be to use NI-VISA to perform
    > register-level programming. NI-VISA gives you access to any PXI/PCI
    > board, not only NI boards, and can be used to access the board's
    > registers.
    >
    > http://zone.ni.com/devzone/conceptd.nsf/webmain/ADF3152837E2B4A486256B5600642AC7?opendocument
    Thanks for this. Didn't now this existed in NI-VISA. Will check it out.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Using usb to serial adaptor , how do I select this port from within labview

    Hi
    I am using a usb to rs232 adaptor , how can I select this port within labview as all I can see is the com 0, com 1, lpt ports .
    Any help appreciated
    Brett
    Snr Mining Engineering Technician
    Western Australian School of Mines
    Curtin University of Technology,
    Locked Bag 22, Kalgoorlie Western Australia 6430
    Ph: 08 90886159 Fax: 08 9088 6151 Mobile: 0407441251
    Web http://research.wasm.curtin.edu.au/

    vicky wrote:
    Hi Brett,
    yeah its easier tohandle and i think cheaper also,i found it easier to install also,so better go in for the USB stuff.
    cheers
    vicky
    While the many USB adapters seem to be easier to handle, we have had some bad experiences. Their stability is not always up to the task for industrial applications. This might not be an issue when you only use them to control your RS-232 lab equipment for manual experiments, but in our case we have fully automated lab systems running, where LabVIEW controls sometimes up to 8 serial devices and those applications are supposed to run day and night, if possible for many days in a row without interruption. With many of those noname USB-RS232 adapters we noticed various kind of problems. It could range from intermittent communication errors (which could be handled by additional code in our software to retry communication on such errors) to complete failure of the RS-232 port after some time, which could only got back online by unplugging and replugging the USB adapter.
    For our purpose this was completely unacceptable and we ended up using ENET-RS232 devices instead which are working fine for months in a row.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • I have to send messages through UDP multicast and unicast from same port. In Labview I tried that it throws error. I heard it is possible by means of Datagram (UDP unicast and multicast) Port Sharing. How can it be achieved in Labview?

    I have to send UDP multicast and Unicast messages to a remote port from a single source/local port. I tried by opening UDP unicast and multicast in the same port and got the expected error. I tried by opening a unicast connection and sending unicast messages.After that when multicast messages has to send I closed unicast and opened multicast in the same port.This is not throwing any error. But my requirenment is to comminicate with another application in C ++ which recieves this data, throwing an error of lost connectivity and both the applications are not abled to communicate properly. 
    In the other application with C++ this is implemented using port sharing. So how port sharing can be implemented in labview so that I can send both multicast and unicast messages from the same port?
    Thanks in advance

    UDP is a sessionless protocol, meaning that anyone listening on the specified port CAN receive the data. CAN because as you noted there is no guarantee in the protocol that it will be received. And if you send the data not to a specific address but a multicast address not only one computer can receive it but in fact every computer on the same subnet listening to that multicast address and depending on the TTL of the packet also computers in neighbouring subnets, although that last one is not a very reliable operation since routers can be configured to drop multicast packages anyhow despite of a different TTL saying otherwise.
    Accordingly there is no real way to make sure that a receiving UDP port is not already in use, since you don't build up a connection. UDP is more or less analogous to shouting your messages through a megaphone, and anyone listening on the right frequency (port) can hear it. You do bind the sender socket to a specific port number but that makes little difference.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Parallel port adapter in labview

    I have usb to parallel port adapter . After plug it into my laptop some drivers installed automatically and it is detected in device manager as "parallel port printing support" under "universl serial bus controller".
    I know how to write data to serial port using visa write funtion but, i dont know how to access this adapter from labview 2010
    i am using windows 7.
    Can anyone help me in this regards.
    Thank you

    Please stick to the original post. Thanks.

  • How to deallocate memory used by the labview program?

    Hi,
    I have bulit a large application in labview 2012 that uses a couple of subvis, local and global variables, some uninitialized shift registers (functional global variables) and some c++ and .net dlls as well. When I open my application the memory usage shown at Windows task manager is around 1.4GB. After running the application and enabling all processes used in the application, the memory usage goes up to 1.55GB but when i stop the application, memory is never released/deallocated until i close the application plus exit labview. Can you suggest how to deallocate this memory? and how can i use the request deallocation function for this application? labview help says i have to place it inside a subVI for which i want to deallocate memory. But i have a lot of subVIs used in my application. I tried placing it in the top level VI and called it after stopping all processes but it didn't work... I am also closing references to all of the .net dlls at the end. Any workarounds??
    Thanks

    sandee wrote:
    When I open my application the memory usage shown at Windows task manager is around 1.4GB. After running the application and enabling all processes used in the application, the memory usage goes up to 1.55GB but when i stop the application, memory is never released/deallocated until i close the application plus exit labview.
    You already got some good advice. One thing that was not clear was how you are measuring memory. Since the task manager is capable of showing the memory used by LabVIEW alone (you simply need to look elsewhere), and you said that the memory gets released when you exit LabVIEW, you gave the impression that the 1.4GB was the LabVIEW portion.
    OK, so a couple of hundred MB used by LabVIEW is really nothing to worry about. Are you running into memory or other performance problems? What are the symptoms?
    sandee wrote:
    I have bulit a large application in labview 2012 that uses a couple of subvis, local and global variables, some uninitialized shift registers (functional global variables) and some c++ and .net dlls as well.
    We really need to see some code. It is very well posssible that you have a lots of unecessary data copies in memory due to sloppy programming. How big are the data structures? Do you use local variables for big data structures? What does the program actually do?
    LabVIEW Champion . Do more with less code and in less time .

  • Comment envoyer un fichier depuis port serie avec Labview

    Bonjour,
    Je veux envoyer le fichier de configuration au programmateur avec labview mais j'arrive pas à trouver la commande Labview qui me permet d'envoyer un fichier via un port série.
    Y a t'il une solution?
    Merci.

    Hello,
    Palette : Instrument I/O -> VISA -> Advanced.
    Cdt,
    --Eric
    Eric M. - Application Engineering Specialist
    Certified LabVIEW Architect
    Certified LabWindows™/CVI Developer

  • Emulation d'un port com via un port USB en LabView

    Bonjour,
    Dans le cadre d'un projet, un FPGA (vertex V6) m'envoie des trames de données à interpréter dans LabView. Le soucis qui se pose est le suivant, voulant traiter les données dans LabView, comment est-ce que je peux paramétrer le NI-VISA pour recevoir les trames ?
    Le soucis réside dans le fait que mon matériel FPGA n'a pas d'identifiant propre et que je n'arrive pas à le configurer proprement . Doit-je passer par un adaptateur USB-Série ou bien existe-t'il une solution purement logicielle ?
    Merci d'avance.
    Résolu !
    Accéder à la solution.

    Bonjour Sylvain_j05,
    Le driver VISA propose un jeu de fonctions haut niveau qui permettent d'appeler des fonctions bas niveaux. Si vous utilisez un port USB en partant de votre PC, vous devrez avoir également un port USB disponible sur votre matériel contenant le FPGA et permettant de récupérer ses valeurs. Sinon, un adaptateur Série-USB peut être envisagé s'il n'y a qu'un port série disponible sur votre matériel.
    Vous pouvez également essayer un adaptateur USB-Série sur votre PC (si ce dernier ne dispose pas de port série directement intégré) qui vous permettra d'avoir des ports série directement disponibles depuis votre programme sous LabVIEW.
    Exemple d'adaptateurs existants : NI USB-232, NI USB-232/2, NI USB-232/4
    N'hésitez pas à fournir davantage d'informations et notamment à répondre aux questions d'Helmut O'Brian.
    Cordialement,
    Jérémy C.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Travaux Pratiques d'initiation à LabVIEW et à la mesure
    Du 2 au 23 octobre, partout en France

  • How to optimize the memory for a large labview array?

    I am running LabView on Windows XP with 4 Gb of RAM. The array is 51X256X256 complex numbers, but I want 300x256x256. The program runs out of memory when I use more than 51-53 arrays of 256X256. I do not know how to use the in place element structure to modify the vi below. The unbundled/ bundle structures do not present symmetry. Anyone can help me with this?  Thanks!
    Mariana
    Attachments:
    array3Dc.JPG ‏22 KB
    array3Dc_front.JPG ‏58 KB

    Norbert,
      The full data3Dc array takes about 15.5 MB and the data3Dc comp.vi takes 31 MB. The empty data3Dc comp.vi array takes only 18.2 kB. This array is a variable that modifies at each scanned wavelength. I have a scanning wavelengths software package. For one wavelength I record a hologram followed by the reconstruction of the object field (1x256x256). 3D optical fields are added all together to create a big 3D optical field (Nx256x256). The code data3Dc comp_1.vi is not the only one in the memory. This VI is a subvi for other codes. A few other examples are FFT, IFFT, filtering, phase matching, cross-section, calibration….I did not care about memory optimization until now. So, I want to scan more than 50 wavelengths. By now (N=50) I have to restart the LabView after each scanning, do the reconstruction of the fields, start the LabView again to see the results. I think the problem is caused by this VI that is a subvi for other codes. I already extended the memory to 3GB in boot.ini, but the thing is that I want also a small scanning time. It doesn’t work. Extending the memory to 3GB makes the OS slower than before. My question is how to modify this array (data3Dc) or the VI (data3Dc comp.vi) to access lesser memory. I have tried to attach the full VI but it tells me that it is too big. I attached the empty one.
      Thanks,
    Mariana
    Attachments:
    data3Dc comp.vi ‏19 KB

  • Parallel port updating with labview

    I have a project to do that I will need to control using the parallel port. The problem is that I will need to use more than one pin at a time. An example is, when I press button 1, data pin1 and data pin3 will send a signal, and when I press button 2, data pin2 and data pin4 will send s signal and data pin1 and 3 will stop.
    I tried doing that but stopped at the programming stage.
    I have attached the file I've just did, and I would be most grateful if you kindly pointed me on how to configure this problem.
    note: am using win2000 and the parallel port is working fine and i've tried controlling things with it, to make the question more obvious, how could i control the 8 pins and update them as i like. i've read some articles
    and answers but didn't understand well since am new to labview
    Best regards,
    Attachments:
    semifinaltest.vi ‏39 KB

    Hi,
    find your vi with working parallel port (values should change). You have made a mistake - do not toggle byte/word, the paraport does not support 16bit. In addition I have attached a radio-button selection-vi; this should give an idea, how to select one of xx buttons; maybe the event structure could do the same job for your case. Unfortunately I don't have the time to deliver a complete solution for you....
    Hope this helps already. If you have further questions about paraport - mail simply to my .web-address
    You will find it by double-clicking on wha@atmel
    regards
    wha
    Attachments:
    semifinaltest.llb ‏46 KB
    Simulating_Radio_Buttons.llb ‏47 KB

  • USB TO COM port drivers in LabVIEW..

    Hi Everyone,
                      I have virtual com port equipment (hardware) from STmicroelectronics and i need to communicate it with LabVIEW through USB.
    I have done with NI-VISA Wizard which i have gone through previous posts but am not able to communicate.
    Can i get any drivers for this communication.
    In MAX, i can see it as COM4, COM5 like that but i want it as USB.
    Thanks,
         Sony.
    '' A professional is someone who can do his best work when he doesn't feel like it''...........

    To expand on Sir Dennis' point, it is not uncommon for vendors with USB widgets to sell to implement the interface to them as virtual serial ports, and the reason is simple: Nearly any environment can talk to a serial port, and you don't need any special hardware. In addition, because it is a **virtuall** serial port you don't even have to worry about cables.
    The point to remember is that when you plug in one of these devices you are in essence adding in both the device AND the port to talk to it.
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • Memory Error when installing labview 6.1

    I had labview 6.0, 6.1 and RT installed on my PC (windows 2000). I tried to install application builder but I got Error that I have no labview installed, so I tired to uninstall RT, but I was abe to. Then I found out that I can't install or uninstall any of the Labview versions. So I went and deleted the whole NI directory, all the keys related to NI in the registry file, and Labview.ini. Now I'm trying to install labview 6.1, but I'm getting memory error and setup terminates. What can I do!
    Attachments:
    LB_Setup_Error.gif ‏36 KB

    First, I recommend contacting NI support at ni.com/ask and starting an incident report.
    Second, I recommend either restoring your registry from backup, or wiping your system and starting over. I know it doesn't sound like fun, and it isn't, but it is probably the only way now you can guarantee a good clean registry. Alternatively, go through the registry again and make sure all National Instruments and LabVIEW entries are deleted.
    In the future, and I make this recommendation to everyone, you should, as a safe practice, make a backup of your registry before you install anything, and also periodically. Archive these and label them with the list of programs installed, or with any new programs that have been installed.
    The Windows registry is obsolete,
    and complete hopeless when it comes to a stable system. There is no automated backup of the registry to my knowledge. The registry is the biggest source of problems with Windows, followed of course by DLLs (everyone has their own version, and noone's is alike, much less works right.) The registry can be backed up by using "Export" from the regedit program. Backups can be restored with the "Import" function in regedit of course.
    Good luck.

  • PICO DrDAQ USB Parallel Port setting for labview 8.2

    Hi,
    I have a PICO DrDAQ card (parallel port) and by using USB Parallel Port  (USB)connect to the laptop, and i already install this software. I can run DrDAQ with PicoScope(DrDAQ software) and can produce a result, but when i try to run it in LabVIEW 8.2 there's no result generated from it. Furthermore, i had check through the device manager (in My Computer=>System Properties) and prompt to see the Pico parallel port within the USB controllers. Therefore, i would like to know is there any setting i need to perform so that the problem can be solve.
    Thanks.

    Hi,
    Thanks for your reply. Ya before the driver installed, i specify the USB port for this device to used on and after that i set it to port 101 (for USB) in the LabVIEW.
    and the programming is on the attach file.
    thanks.
    Attachments:
    DrDAQ.vi ‏32 KB

  • Comment acquisitionner un signal d'un oscilloscope tektronix par le port GPIB sous labview?

    Bonjour,
    Je voudrais savoir comment transférer dans mon PC un signal stocké dans un oscilloscope Tektronix TDS340A par le port GPIB avec labview7.1.
    J'ai essayé les drivers de NI mais les drivers réinitialisent mon oscilloscope et effacent mes courbes sur mon oscillloscope!
    Merci

    Salut
    As tu quand même les données sous Labview?
    Kamal
    NIF

  • How can i detect "Memory leak" with large LabVIEW projects.

    Hi,
    I have a huge LabVIEW application that runs out of memory after running continuously for some time. I am not able to find out the VI that is hogging up memory. Is there any tool that dynamically detects the VI that is leaking memory.
    Or, is there a tool or a way to identify the critical areas which can be potential culprits that is leaking memory.
    Regards
    Bharath

    Bdev wrote:
    Thanks Dennis.
    I think Desktop Execution toolkit should solve the problem. 
    Wayne Wrote
    Have you tried Tools»Profile»Performance and Memory ?  http://zone.ni.com/reference/en-XX/help/371361F-01/lvdialog/profile/
    But this will just give me the amount of memory used by the VIs and not the amount of memory that is not getting released.
    And where is the problem about that? Just try to find what VIs keep increasing in memory size. That are the culprits. If you have real memory leaks, meaning there is memory that is not managed by LabVIEW directly but for instance by a DLL somewhere and that DLL looses references to memory, so it goes really lost, then the only way to find that is by successively exclude functionality in your application until you can find the culprit.
    There is no other simple way to find out about who is loosing memory references than by doing debugging by exclusion until the problem disappears. The only way to speed this up, which quite often works for me is doing an educated guess, about what components are most likely to do this misbehaviour.
    Not knowing anything about your application and if you are talking about memory hogs (fairly easily identifiable by the mentioned Performance and Memory monitor) or actual memory leaks, it is hard to tell how to go about it. Memory hogs are usually the first thing I suspect escpecially with software I inherit somehow from people from whom I'm not sure they know all the ins and outs of LabVIEW programming.
    If a leak seems likely the first culprit usually are custom DLLs (yes even DLLs I have written myself), then NI DLLs such as DAQmx, etc. and last there come leaks in LabVIEW itself. This last category is very seldom but it has happened to me. However before going to scream about LabVIEW having a memory leak you really, really should make sure you have very intensivly researched all the other possibilities. The chance that you run into a memory leak in LabVIEW, while not impossible, is so small compared to the other ways of causing either a memory hog or running into a leak in an external component to LabVIEW, that in 99.9% of the cases where someone screams about a LabVIEW memory leak, he is simply wrong.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

Maybe you are looking for