[WinXP/Lab​View7.0]Re​ading parallel port is too slow...

Hi,
First I would like to apologize for my English. I'm from Switzerland....
I'm trying to read out a 16Bit A/D in 1us steps. Serial Communication over a PIC is too slow, so I was looking for a faster option. I found out there is possibility to read from the parallel port:
I downloaded and installed the AccessHW drivers. I found 2 Vi's (see attached files) to read and write to the port. But this works only very slow. (100Hz read frequency).
By the way I need some advice how to use 16 bits in minimum as inputs. When I set the bit 5 in Baseregister+2 I can read the Baseregister. I can read the whole byte except bit 3. This bit stays always high (3.4 VDC).
The 5 status bits from Baseregister+1 I can
read with no problems but the read frequency is around 100Hz too...
The 4 control bits from Baseregister+2 I can't access. I followed the instructions in this link: http://zone.ni.com/devzone/conceptd.nsf/webmain/72​C6FC6CE4AD4D1386256B1800794596?opendocument#4 to make this 4 bits inputs, but it doesn't work. I set the Baseregister+2 00100100 (all of the 4 bits are high) and then I start to read out the Baseregister+2, but there are no changes, when I connect one of the 4 pins to ground.
Hope there is anyone who can help me..!
Greets
Attachments:
Input_Byte_From_Port.vi ‏20 KB
Output_Byte_To_Port.vi ‏12 KB

If you're trying to acquire a 16-bit sample at 1MS/s, using the parallel port, it will not work. In fact, many full-fledged DAQ cards do not support this high sampling-rate/resolution combination. Look at what NI has available here, in the S and E series DAQ boards--this should give you a feel for what's out there and what a professionally manufactured piece of equipment is capable of:
http://sine.ni.com/apps/we/nioc.vp?cid=10955〈=US
http://sine.ni.com/apps/we/nioc.vp?cid=1038〈=US
As you noted already, a parellel port is going to be extremely slow for your needs, and likely not only be slow, but also have a pretty fair amount of timing jitter, since the timing of your read calls will be indeterminate. I would definitely recommend you look into som
e other hardware acquisition option besides your parallel port... it won't get you very far unfortunately, because that isn't what it's really designed for.

Similar Messages

  • My parallel port cannot work on win2000 and new pc

    I was troubled by the reading/writing from parallel port on win2000 for a long time. I had made my programs work on win2000/OLD PC, but i failed with the same programs on win2000/new PC. I tried with the method from the forum, that is, install accessHW and other method from my colleagues. Allways failed. I have to return to an old pc, it work! I think not only win2000/winxp will influence parallel port work, but also pc hardware. My new PC is Dell's GX260SMT with p4 2.4G. Dell's FAE told me that i can not install win98 on the pc due to some limitation of mainboard. Who met the smae issue as mine? How to fix it? Thanks for any help.

    I typically stay away from Dell PC's. I always have problems with them..
    I'm surprised to read that a new PC doesn't support Win-98. Have you / can you try Win-NT 4?
    I can't understand why Win2K would be different with a newer PC. The OS assigns the base address of the parallel port to a typical value of 0378h. This is for LPT1.
    My question would be: Are you having problems with LPT1 or do you have a PCI-based Parallel Port (to add ports)? If so, you cannot change the base address with Win-2K or Win-XP which assigns a PCI base address to the port.
    Can you provide more details as what exactly changes between the 2 PC's. Other than the motherboard and typical hardware (of course).
    How is the parallel port configured?
    What are you doing
    with it, etc?
    Any information that can help figure out a solution.
    Regards,
    JLV

  • Labview cant see parallel port

    We have this old computer in the lab and when I tried to test a new program
    on it I found that labview cannot seem to see the serial port. The port
    works fine in hyperterminal, but in labview the serial control which usually
    has a dropdown box to choose com1, com2, etc, now cannot dropdown.
    Measurement and Automation also does not list serial and parallel ports
    after a refreshview. The computer has both 6.02 and 6.1 installed on it, so
    I suspect that maybe I need to uninstall and reinstall but I hate to go
    through all that trouble if it's something simple. Has anyone seen this
    kind of thing before?

    Hi Adam,
    You can have both Labview 6.0.2 and 6.1 on the same machine without problems. But you should have only one version of the drivers on the machine. You may have multiple versions of the drivers since the basic drivers get installed with labview. You can uninstall the old drivers by going to add/remove programs. Choose the older labview version (6.0.2 in this case)and hit change. Select Modify on the next window, on the drivers section in the next window right click on drivers and select 'Do not Install this feature'.
    This should leave you with only one version of labview installed drivers. Also look into add/remove programs for multiple versions of Measurement and Automation Explorer (MAX)and NI-VISA.
    You must have VISA 2.5 (or higher) for this. MAX needs
    the NI-VISA driver in order to access the COM ports on your system. Without NI-VISA installed, you will be unable to access or create serial, GPIB-VXI, or TCP/IP interfaces.
    Note: Though you mention parallel port in the title, since you refer to COM1, COM2 i guess you are refering to serial ports.
    Hope this helps,
    Pravin

  • Servo motor using parallel port

    Hello,
            I have a XY mirror scan Servo motor used for optical scanning experiment.
    The question I have is:
          I already have a program to control stepper motor via parallel port. Can I use the same to control servo motor ?
    Or is the SERVO motor concept different to that of a STEPPER motor ...
    Thank you
    Abhilash S Nair
    Research Assistant @ Photonic Devices and Systems lab
    [ LabView professional Development System - Version 11.0 - 32-bit ]
    LabView Gear:
    1. NI PXI-7951R & NI 5761
    2. The Imaging Source USB 3.0 monochrome camera with trigger : DMK 23UM021
    OPERATING SYSTEM - [ MS windows 7 Home Premium 64-bit SP-1 ]
    CPU - [Intel Core i7-2600 CPU @ 3.40Ghz ]
    MEMORY - [ 16.0 GB RAM ]
    GPU - [ NVIDIA GeForce GT 530 ]

    You will need a DAQ card that can generate the voltage needed to send a command signal to the 671.  The 671 will need to be tuned to the 6880 with whatever sized mirror is attached.  (If you bought the galvo and servo driver as a package it should already be tuned.)
    CTI systems take in an analog command from -10 to +10 Volts.  Almost all the NI DAQ cards (and many other brands) output +/- 10 Volts so that will be easy.
    Then you will need to decide how to scan your target.  A ramp pattern or triangle wave is the usual choice for scanning objects so you need to generate that in LabVIEW code along with the code that will read your sensor.  This should be done simultaneously but you really don't need a very expensive DAQ card to accomplish that.  Look on the NI website for options in your price range and do some research...
    Is your system one axis (one 6880 and one 671)?  If so you will scan a raster (ramp or triangle) to measure a single line of light intensity, move the stage a tiny distance and scan another line.  When you put all the lines together into a 2D image you will have a representation of one face of your object.  Many people use a rotary stage to spin the object while scanning to assemble a 3D model of the object.  This is a bit more complex of course.
    Using LabVIEW: 7.1.1, 8.5.1 & 2013

  • 2nd Parallel Port address problem

    I bought a PCI parallel card and install in the computer. After installation, computer(window XP) automatic assign the 2nd parallel port to 0xC8C8 (which is virtual memory). I have software directly talked to Parallel port. It works fine with 1st port (0x378). When I change to address 0xC8C8, it could not work.
    There is something related to address. I use outport8.vi to talk to port. In this vi, address is I16. It only works with I/O memory range. My question is
    1. How do I change the address 0xC8C8 to Legacy address, such as 0x278? It does not work in XP.
    2. If I could not change port address, how do I talk to parallel port using some available vis?
    Thanks,
    Lucy

    Hello Lucy,
    find attached a simple Test-Program .... your Address 0xC8C8 is selected, if you choose LPT3.
    I had in the past the same problems on different Lab-PC's and additional PCI-cards. I solved it with "LPT.vi" - in example used as sub.vi - I think, this should be an acceptable workaround.
    Regards
    Werner
    Attachments:
    printer_port_test.zip ‏57 KB

  • Problem with JNI and Parallel Port dll

    Hi. I'm doing some testes with JNI. Firs i followed the netbeans tutorial for doing a C programa that prints somthing for java.. like.. "Hello java from C".
    So i tried to load a dll from my dll. Like, I have this dll to use the parallel port on windows Xp. So i created a dll to access it an comunicates eoth java.
    I did everything just fine.
    When I start my Java app, the first thing it does is to load this parallel port dll and configure the functions of it.
    After that .. I get this error
    EXCEPTION_FLT_STACK_CHECK (0xc0000092) at pc=0x0093d269, pid=2284, tid=3000
    Can someone explain why ?
    (Sorry if i wasn't clear enough, english is not my native language, so ask if you don't understand something.. )

    hi ,
    I met the same problem this morning, and searched the www.google.com in order to solve it, as a result, your article was shown on my screen. :)
    Till now I have read some technical information and solved my problems. Maybe the solution be useful to you:
    ==============================
    error message : (Environment : Tomcat 5, Windows 2003, Mysql5)
    2006-3-29 11:53:48 org.apache.catalina.core.StandardWrapper unload
    message: Waiting for 2 instance(s) to be deallocated
    ==============================
    cause: the number of connection to database exceeded.another word,too many connections.
    ==============================
    solution: close the connection when it becomes useless for your program. :)
    ==============================
    ps. Sorry for my weak English . hehe ....

  • Control parallel port (data and control lines)

    I need to control the output on the parallel port (LPT1) - Both data and control lines.  Once the data is written (Pins2-9), I then need to toggle the Sprocket signal (PIN1) - on the parallel port. The sprocket signal is also referred to as the Data Strobe Output.
    The required method is as follows:
    1. Lower the sprocket signal on PIN1
    2. Send the data (Pins2-9) and wait
    3. Raise the sprocket signal and wait.
    4. Repeat.
    I am looking for a method to control the data on LPT1 pins 2-9 and then be able to toggle PIN1 - Strobe signal - without the data falling from the other pins. What I have found is that whenever the state is changed on the strobe - the data that was written to Pin2-9 falls to zero. This will not work for my application - the strobe tells the hardware device that the data is ready. If it falls to zero when I toggle the strobe - that will not work.
    Regards,
    Guy

    Hello Adam,
    I am familiar with both references.  If you look more closely at the library reference - it allows me to communicate using VISA across the parallel port pins 2-9.  It does not permit direct communication to pin1 (the strobe signal) - property nodes don't allow the strobe to be refereced either (similar to control lines/signals for COM ports).
    Worse, I have also located examples using OUT PORT that does enable pin1 to be toggled.  The problem is, when those VIs are used, the data falls from the data pins when the strobe signal is written, even if its value is not changed.  For example, if the strobe is already high, if another high value is passed, the data falls from the data lines.  The other issue, when using VISA, as soon as the data is writen, the strobe signal automatically goes high even though I need a wait before setting the strobe high.  This is in complete contradiction to the second article you referenced which clearly discusses writing data to pins2-9 then taking the strobe high to indicate to the printer that new data is available.  It must be possible since this is the typical handshake.
    I am still looking for a more complete answer/solution.
    Regards,
    Guy

  • Parallel Ports vs. Trashing Printers

    Recently bought 3 new workstations:  2 w/Windows 7 - - 1 w/Windows XP Pro... Question is:  my old HP Laserjet 2100tn will not work with these computers due to their not being a paralel port on the back of the computer.  
    Do they make converters for the cables to make them work? Or is the printer basically worthless at this point?
    This question was solved.
    View Solution.

    You can purchase and install parallel port adapter cards and the printer will work. I can't specify which cards as you haven't stated what the specs are on your workstations. There are also usb to parallel port converter cables available.
    Best regards,
    erico
    ****Please click on Accept As Solution if a suggestion solves your problem. It helps others facing the same problem to find a solution easily****
    2015 Microsoft MVP - Windows Experience Consumer

  • Connecting a HP LaserJet 4000 parallel port to Windows 7 USB port

    I have been using a HP LaserJet 4000 via a parallel port for years on a variety of machines / Operating systems without issue. However, having purchased a new Laptop (Windows 7  64bit), there is no parallel port (unsurprisingly). So the question is 'How do I connect my legacy parallel printer to the USB port ?
    Regards
    John Bennett

    Hi,
    You need something like this:
      http://www.shopbot.com.au/pp-belkin-usb-parallel-printer-adapter-f5u002-price-106075.html
    Regards.
    BH
    **Click the KUDOS thumb up on the left to say 'Thanks'**
    Make it easier for other people to find solutions by marking a Reply 'Accept as Solution' if it solves your problem.

  • How can I write to the parallel port using LabVIEW 6.0.2

    I have tried updating the labview.ini file and also using the parallel.llb available on the site. When I execute the program it gives me error 37 saying,"device not found". I am running this code on windows 98. I tried to use VISA write,serial port write (using port 10) but nothing seems to work. I also tried to develop a sample code using inPort and outPort, but no success, it is not able to read the data back from the parallel port, even if it seems (????i don't know any way to cross-check it though????) to write.
    Does anybody know the problem here?
    THanks.
    Pari.

    Thanks Brian.
    Well here is the next problem. I got a VI (attatched) off ni.com and it works fine on a windows98 platform. But quits working on NT.
    I can write perfectly (which i checked by hooking an LED display unit at the other end of the parallel port cable). I observed that the LEDs respond to the toggling of individual bits (data bits). But the error occures at the "out port.vi", when I try to run it on a NT machine (where I actually wanna use it). Are you aware of any changes to be made in order to run a VI on NT that works on 98?
    Thanks again.
    Pari.
    Attachments:
    parallelPortSwitcher.vi ‏124 KB

  • How to Install a parallel port printer to usb port of Pavilion dv5 Notebook

    In trying to install my HP DeskJet 610C Parallel Port printer to my HP Pavilion dv5-1235dx Notebook PC with Windows Vista Home Premium 64-bit, I followed instructions given by HP Support some two years back.
    I connected up the two units through a Parallel-to-USB ports cable. The PC loaded and confirmed suitable driver. (Following advice from sites on the Internet, I have made repeated attempts to carefully install the printer, but to no avail).
    Upon my issuing the Print instruction, the printer invariably prints two copies of what appears to be 'gibberish' in two lines at the start of the sheet. Thereafter it picks up and then ejects 6-8 sheets of blank paper.
    Any help in resolving this anomalous situation will be be most welcome and much appreciated.
    I might add that the printer works normally when connected in parallel to an older, Compaq Armada 1750 Notebook (XP OS). In this instance too, the Parrallel/USB worked as in the Pavilion PC, above.  
    This question was solved.
    View Solution.

    Hi khalidem, 
    Sounds like you have a communication problem with the printer cables. Have you tried a new parallel to USB cable or adapter?
    I am an HP employee.
    Say Thanks by clicking the Kudos Star in the post that helped you.
    Please mark the post that solves your problem as "Accepted Solution"

  • Using XP software with a parallel port dongle in windows 7 professional

    Please help...  Looking to have my parallel port dongle recognized for my older version software (XP) in Windows 7 under the XP PC mode.  Help in figuring out if LPT1 is set correctly or what I am doing wrong.
    Thanks

    Hello,
    I have W7 Professional 64 bit with Windows Virtual PC/Windows XP Mode installed. I have some older programs installed in XP Mode and they are working properly.
    Unfortunately, I have one older program that I currently have working on an older XP Machine and that program requires a Sentinel dongle to be seen on the LPT1 Parallel Port. Since my W7 computer has an LPT1 Header on the mother board, I have purchased and
    installed a PCI-Express Parallel Port and I have the ribbon cable connected to the LPT1 Header.
    After I enabled the parallel port in the bios, I could see LPT1 in the W7 Device Manager and in the Windows XP Mode Device Manager. However, when I click on
    Windows Virtual PC, highlight Windows XP Mode.vmcx and click on Settings, LPT1 does not appear.
    I have installed my old program in Windows XP Mode and it starts to run but, when it gets to the point where it must see the Sentinel dongle on the LPT1, the
    program does not find the dongle.
    I also purchased a Manhattan MHUSB to DB25 Parallel Converter and plugged it in. It said that it found new hardware and installed drivers for it but that didn’t
    work either.
    I am not married to any particular solution. So, I would use a USB Adapter or LPT1 connected to the mother board but there must be some code editing or changes
    in settings to make the dongle work in XP Mode.
    Can you tell me how to get W7 Professional 64 bit with Windows Virtual PC/Windows XP Mode to find the Sentinel dongle 
    on LPT1?
    Thank you,
    Dan
    Dan

  • Problem in sending data to parallel port

    Hello,
    I can open a parallel port (LPT1) using java comm api i,e javax.comm.
    but problem in sending data to parallel port,
    I choose the appropriate port(LPT1), it is in bi-directional mode according to BIOS configuration.
    but according to the java program the mode is SSP.
    when i write data to parallel port the volt-meter give a reading of high state for all data pin (pin1 to 9) i,e the parallel port doesnot change state. I am using windows XP.
    What is the solution?

    try it on Open Solaris 10 or Linux platform.
    also just try using the new FileWriter("LPT1").write("Hello");
    on windows platform
    Pravin

  • Sending trigger through parallel port, C++, Visual Studio 2010, Windows 7

    Hi, I have a problem that I am really stuck with, and I am novice to the task so any help would be extremely helpful.
    I an trying to write to parallel port on my PC in order to send a trigger to EEG recording machine every time the new goal appears in a Virtual Reality game that I wrote in C++ (I want to record EEG brain signals while subjects are playing the game).
    I tried to follow the instructions from here: http://msdn.microsoft.com/en-us/library/ff802693.aspx
    I wrote the following code:
    BOOL FileExists(LPCTSTR szPath)
    DWORD dwAttrib = GetFileAttributes(szPath);
    return (dwAttrib != INVALID_FILE_ATTRIBUTES && 
    !(dwAttrib & FILE_ATTRIBUTE_DIRECTORY));
    BOOL WriteABuffer(char * lpBuf, DWORD dwToWrite)
    OVERLAPPED osWrite = {0};
    DWORD dwWritten;
    DWORD dwRes;
    BOOL fRes;
    // Create this write operation's OVERLAPPED structure's hEvent.
    osWrite.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
    if (osWrite.hEvent == NULL)
    // error creating overlapped event handle
    return FALSE;
    // Issue write.
    if (!WriteFile(ghComm, lpBuf, dwToWrite, &dwWritten, &osWrite)) {
    if (GetLastError() != ERROR_IO_PENDING) {
    // WriteFile failed, but isn't delayed. Report error and abort.
    fRes = FALSE;
    else
    // Write is pending.
    dwRes = WaitForSingleObject(osWrite.hEvent, INFINITE);
    switch(dwRes)
    // OVERLAPPED structure's event has been signaled.
    case WAIT_OBJECT_0:
    if (!GetOverlappedResult(ghComm, &osWrite, &dwWritten, FALSE))
    fRes = FALSE;
    else
    // Write operation completed successfully.
    fRes = TRUE;
    break;
    default:
    // An error has occurred in WaitForSingleObject.
    // This usually indicates a problem with the
    // OVERLAPPED structure's event handle.
    fRes = FALSE;
    break;
    else
    // WriteFile completed immediately.
    fRes = TRUE;
    CloseHandle(osWrite.hEvent);
    return fRes;
    I get none of the specified errors, but game fails to start and it seems nothing gets written to parallel port. Any suggestions on how to proceed from here would be more than appreciated.
    Thank you, Joanna

    Hi, I have a problem that I am really stuck with, and I am novice to the task so any help would be extremely helpful.
    I an trying to write to parallel port on my PC in order to send a trigger to EEG recording machine every time the new goal appears in a Virtual Reality game that I wrote in C++ (I want to record EEG brain signals while subjects are playing the game).
    I tried to follow the instructions from here: http://msdn.microsoft.com/en-us/library/ff802693.aspx
    I wrote the following code:
    BOOL FileExists(LPCTSTR szPath)
    DWORD dwAttrib = GetFileAttributes(szPath);
    return (dwAttrib != INVALID_FILE_ATTRIBUTES && 
    !(dwAttrib & FILE_ATTRIBUTE_DIRECTORY));
    BOOL WriteABuffer(char * lpBuf, DWORD dwToWrite)
    OVERLAPPED osWrite = {0};
    DWORD dwWritten;
    DWORD dwRes;
    BOOL fRes;
    // Create this write operation's OVERLAPPED structure's hEvent.
    osWrite.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
    if (osWrite.hEvent == NULL)
    // error creating overlapped event handle
    return FALSE;
    // Issue write.
    if (!WriteFile(ghComm, lpBuf, dwToWrite, &dwWritten, &osWrite)) {
    if (GetLastError() != ERROR_IO_PENDING) {
    // WriteFile failed, but isn't delayed. Report error and abort.
    fRes = FALSE;
    else
    // Write is pending.
    dwRes = WaitForSingleObject(osWrite.hEvent, INFINITE);
    switch(dwRes)
    // OVERLAPPED structure's event has been signaled.
    case WAIT_OBJECT_0:
    if (!GetOverlappedResult(ghComm, &osWrite, &dwWritten, FALSE))
    fRes = FALSE;
    else
    // Write operation completed successfully.
    fRes = TRUE;
    break;
    default:
    // An error has occurred in WaitForSingleObject.
    // This usually indicates a problem with the
    // OVERLAPPED structure's event handle.
    fRes = FALSE;
    break;
    else
    // WriteFile completed immediately.
    fRes = TRUE;
    CloseHandle(osWrite.hEvent);
    return fRes;
    I get none of the specified errors, but game fails to start and it seems nothing gets written to parallel port. Any suggestions on how to proceed from here would be more than appreciated.
    Thank you, Joanna

  • Push button signal to parallel port to trigger a process

    I just need to connect a push button to the parallel port to set it as a trigger signal for a process.
    When push button is pressed, labview executes a process.
    Kindly help me how to do this, the wiring please
    Regards
    Grugh Mike
    Success is Everything !!
    Solved!
    Go to Solution.

    Data Lines to be used as inputsSome parallel ports can be configured to use the data lines as inputs. It depends a great deal on the way the manufacturer designed the parallel port. With some models the data lines can be read the same way we read the control lines, by driving them to high logic so they will take on the value of an external signal. However, most parallel ports require that you set the direction bit for input. This is bit 5 in the Control register (base+2). If the port is capable of it, setting the direction bit high has the effect of making the lines tri-state so it can be driven externally. Sometimes it is also necessary to toggle bit 6 high or low. However, it should be noted that some manufacturers actually lock these bits so that software cannot change them. An example is shown below in Figure 7.
    To test whether your data lines can be used for input, try the following:
    Set bit 5 of the control register high (at base address+2).
    With nothing connected to the port, write a couple of values to the data port, and read each back after you write it.
    If the reads DON'T match the writes, your port is probably bidirectional. Setting C5 disabled the data outputs and you're reading the open inputs of the data-port buffer. If the reads DO match the writes, your port isn't bidirectional. The data outputs are still enabled, you're reading back what you wrote, and you won't be able to read external signals. If it is possible to use your data lines for input, then you just need to set control register bit 5 high and read from the value of the data lines at the base address.

Maybe you are looking for