PCI6602

Helo, plz help me in installing counterpallets for PCI 6602..I was working in LV 6.1..somehow some programs are opened in LV 7.0 and after that i couldn't drag DIO pallets displaying the error "version 7.0 is newer than 6.2.".how i can I get out of this problem..Plz help me...

To save a VI (and its hierarchy) for a previous version of LabVIEW, complete the following steps:
Using LabVIEW 7.0 or earlier:
For the top-level VI in your hierarchy of VIs, select File»Save with Options to display the Save with Options dialog box.
Select Save for Previous to save the VI hierarchy for the previous version.
Click the Save button to display the Choose a Directory dialog box.
Select the directory where you want to save the VI hierarchy.
Click the Save button.
Source
Ian S
Applications Engineer CLD
National Instruments UK&Ireland

Similar Messages

  • PCI6602 functions in DAQmx

    I have been using PCI6602 in NI-DAQ for a long time. Recently I upgraded to DAQmx. The standard tasks such as frequency measurement is very simple in DAQmx. But for special needs, I can't find the corresponding functions as in NI-DAQ such as selecting source and gate signal. Furthermore, I can't find the detail explanations of DAQmx functions in DAQmx Help, such DAQmxCfgSampClkTiming() in the ANSI C examples.

    I am glad that you decided to upgrade to DAQmx!  You will be very happy about it once you get used to the new functions available.  The C reference help is located in:
    Start>>Programs>>National Instruments>>NI-DAQ>>NI-DAQmx C Reference Help
    This is where you can find all the information on the functions and properties in DAQmx.  Also, there are C examples for DAQmx located in:
    C:\Documents and Settings\All Users\Documents\National Instruments\NI-DAQ\Examples\DAQmx ANSI C
    Regards,
    Jordan F
    National Instruments

  • Unable to use sample clock digital filter - PCI6602

    I can't seem to get digital filtering of the sample clock to work on my PCI6602. I'm using DAQmx 7.4, with one of the counters configured for buffered-edge counting. Whenever I try to configure digital filtering on the sample clock (coming in on pfi10):
    counterTask.Timing.SampleClockDigitalFilterEnable = true;
    counterTask.Timing.SampleClockDigitalFilterMinimumPulseWidth = 0.000005;
    I get the following error message when I start the task:
    Additional information: Digital filtering is not available for the given terminal.
    Device: Dev3
    Property: NationalInstruments.DAQmx.Timing.SampleClockSource
    Corresponding Value: /dev3/pfi10
    Channel Name: phaseLockOscillator
    Task Name: PhaseLock task
    Status Code: -200772
    I thought digital filtering was supported on all pfi inputs on the 6602 - so can anybody give me a hint as to what I'm doing wrong !?
    Many thanks in advance,
    Jony Hudson

    I have the same problem with the PCI-6280., help me please!

  • Timing pulses after a trigger using a pci6602 card

    Hi,
    I am currently trying to design a program to determine the number of clock cycles which have passed between a trigger and a series of signal pulses  i.e. n signal pulses arrive after the trigger and I want to output an array which contains the time each arrive at, after a certain time another trigger arrives and the process is repeated.
    I am currently using a pci6602 card and would prefer it if the program used daqmx.

    Your recent idea is right on target.  Using the trigger pulses as data acq task triggers would require you to anticipate the next trigger so you can perform software calls that stop and restart your task in time to react to the next trigger signal.  If there's no way of knowing which pulse is the last one before the next trigger (or you have only a few msec to react between the last pulse and the next trigger), a triggered task really isn't the best option.
    You can leave all the timing in the hardware if you go ahead and simply timestamp both the trigger pulses and the signal pulses using 2 simultaneous tasks.  Then some fairly simple post-processing will get you the data in the form you want.  To get their zero times in sync, both should be configured to use the same digital "Arm Start" trigger, which is found only in the DAQmx Trigger Property Node.   I've often created my own trigger signal using either another counter or a digital output bit. 
    -Kevin P.

  • Getting 2nd TIO of the PCI6602 to perform buffered event counting via register-level programming

    I got the first PCI6602 TIO to perform buffer event counting using interrupt. However, I could not get the second TIO working. I think I have initialized the proper registers in order to work with the second TIO, i.e.
    1. Addressing all registers of the second TIO at 0x800 offset.
    2. Binding the clock to counter 4-7 (set 0x00200000 to the Clock Configuration register). I am using the internal Timebase_3 clock which is 80MHz.
    3. Tried setting 0x8000 to the Global Interrupt Control register at both its offset location (with 0 offset) and with 0x800 offset (2nd TIO offset location).
    Am I missing something here? I got no interrupts from the PCI bus and I got 0xff
    ff when I tried to read the Status register.

    Al,
    I have been experimenting with the 6602, but I have not been able to see any of the interrupts generated by the counters. I have tried both TC mode and an external signal on a single GATE (G0). The Gi_Status_Register indicates that the interrupts are occuring (appropriately for each mode), but I can't see them on the bus (my interrupt handler is never invoked; cat /proc/interrupts shows 0 interrupts).
    Could you pass along any tips on how you did it?
    Thanks!
    -Rob

  • How to use PCI6602 4-5 cards run simultaneous via RSTI?

    I use them as a simple event counter all of them must start and stop count at the same interval of time.
    Now I write my VI as attachment,I already have RSTI bus,but don't know how to use it.
    Every one who know please help.
    Attachments:
    PCI6602 Count(4card 32CH) R8.vi ‏345 KB

    Hi credo,
    First here's a few comments on what I see in your vi:
    1. The loops to configure the counters are the right idea. You need those 32 distinct task id's to perform 32 channels of counting. You've already gotten over one key hurdle!
    2. There's quite a bit of duplicated code to handle each of the 4 boards separately. You could make sub-vi's out of these code chunks and clean up your diagram considerably.
    3. You're programming the counters for "simple" (unbuffered) event counting but are then reading them as though they are buffered. This won't work.
    I can't tell whether you need buffering or not. It doesn't look like you are trying to use most of the buffered data. However, buffering *can* still help make sure that all the counter values you read represent the same instant in time. Can you describe your needs more exactly?
    4. If you buffer the reads, you'll need to supply a "Gate" signal, i.e., a sampling clock. If you can spare a counter to generate one, then this alone can synchronize all your readings. Otherwise, you'll also need to configure all the counters to start on a digital trigger.
    5. You've got some issues with dataflow, local variables, and race conditions. For example: inside your big loop you read from the D1,D2,D3,D4 local variables to create a graph and stuff. However, you don't write new values into those indicators until the inner reading loops end. It is very likely that they will be read before they are written. This would be a good place to simply route wires instead of using local variables.
    That's plenty enough to look into for now. I would strongly recommend that you first try to work out the programming syntax and flow using several counters from 1 board. When you get it working, you can create a sub-vi from it and reuse it for the other boards. Then we can start talking about RTSI...
    One little-known fact about RTSI is that it can actually be handy even when programming a single board under traditional NI-DAQ. I've used it frequently to avoid the need to hardwire connections for timing signals. I'd again recommend that when you're ready to deal with RTSI, that you first try it out on a single board. If it works for 1 it'll work for the others.
    Finally, you may want to consider migrating to DAQmx. Especially if you don't have a lot of code invested into counters under traditional NI-DAQ yet. NI has been nudging us toward DAQmx for quite a while now, and it'll handle the RTSI stuff pretty much auto-magically.
    -Kevin P.

  • Gleichzeitiges Auslesen mehrerer Kanäle einer PCI6602-Zählerkarte

    Hallo.
    Ich möchte gleichzeitig die Frequenz dreier veränderlicher digitaler TTL-Signale über die Methode der Periodendauermessung bestimmen. Der Ausgangsfrequenzbereich beträgt 8...19kHz. Dazu setze ich eine PCI6602, NIDAQmx und LabVIEW 7.1 ein.
    Im DAQ Assistent erstelle ich einen Task und ordne den physikalischen Kanal 0 zu (Counter-Eingang>>Periode>>Dev1/ctr0). Dann nehme ich die Einstellungen vor:
    Eingangsbereich max: 130µs
    Eingangsbereich min: 50µs
    Startflanke: Steigend
    Messmethode: 2 Counter (Großer Bereich)
    Teiler: 18
    Erfassungsmodus: N Abtastwerte
    Zu lesende Abtastwerte: 1000
    Der Test läuft problemlos ab.
    Wenn ich dem Task jedoch weitere Kanäle hinzufügen möchte, erhalte ich bereits
    beim Test im DAQ Assistenten Fehlermeldungen. Im ersten Fall habe ich die physikalischen Kanäle Dev1/ctr1 und Dev1/ctr2 mit denselben Einstellungen wie bei Dev1/ctr0 hinzugefügt. Beim Test tritt dann der Fehler 50103 auf:
    "Die angegebene Ressource ist reserviert. Der Vorgang konnte nicht wie geplant abgeschlossen werden."
    Wenn ich aber die Kanäle Dev1/ctr2 und Dev1/ctr4 hinzufüge, erhalte ich den Fehler 200523:
    "Read cannot be performed because this version of DAQmx Read only returns data from a single channel, and there are multiple channels in the task.
    Use the multichannel version of DAQmx Read.
    Number of Channels in Task: 3
    Number of Channels in Data: 1"
    Für Analog I/O und Digital I/O bietet DAQmx Read aus der Funktionenpalette in LabVIEW Instanzen zum Lesen mehrerer Kanäle. Das ist bei Countern aber leider nicht der Fall. Wo finde ich die im Fehlerbericht erwähnte "multichannel version" von DAQmx Read? Oder muss ich für jeden Kanal einen extra Task einrichten und
    diese einzeln auslesen? Ist das für drei Tasks gleichzeitig möglich?
    Gibt es andere Möglichkeiten das Problem zu lösen?
    Ich bin für Hinweise sehr dankbar und freue mich über jede Antwort!

    Hallo!
    Ein anderer Forumuser hatte bereits das gleiche Problem bzw. die gleiche Frage gestellt!
    http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RPAGEID=135&HOID=506500000008000000F0FD0000&USEARCHCONTEXT_CATEGORY_0=_32_%24_12_&USEARCHCONTEXT_CATEGORY_S=0&UCATEGORY_0=_32_%24_12_&UCATEGORY_S=0
    Gruß
    Thomas Sandrisser
    http://www.newgistics.com

  • Synchronization between PCI6722 and PCI6602

    I plan to synchronize counter PCI6602 and analog out PCI6722。6602 shares 6722’s ao/SampleClock as external clock and arm start triggered by 6722’s ao/StartTrigger。The master device is 6722, which refered as Dev1, and the slave device is 6602, which refered as Dev2. A RTSI line is used to connect the two devices correctly.
    I use C API to finish my program and my code is as follows:
    //config 6722 analog out task
    1、DAQmxCreateTask("NI6672", &hAOTask);
    2、DAQmxCreateAOVoltageChan(hAOTask, "Dev1/ao0", "", -10.0, 10.0, DAQmx_Val_Volts, "" );
    3、DAQmxCfgSampClkTiming(hAOTask, "", 1000.0, DAQmx_Val_Rising, DAQmx_Val_ContSamps, 1000);
    4、DAQmxWriteAnalogF64(hAOTask, 1000, 0, 10.0, DAQmx_Val_GroupByChannel, data, NULL, NULL);
    //config 6602 counter task
    5、DAQmxCreateTask("NI6602", &hCounterTask);
    6、DAQmxCreateCICountEdgesChan(hCounterTask, "Dev2/ctr0", "", DAQmx_Val_Rising, 0, DAQmx_Val_CountUp);
    //use /Dev1/ao/SampleClock for external clock
    7、DAQmxCfgSampClkTiming(hCounterTask, "/Dev1/ao/SampleClock", 1000.0, DAQmx_Val_Rising, DAQmx_Val_ContSamps, 1000);
    //use /Dev1/ao/StartTrigger
    8、DAQmxSetTrigAttribute (hCounterTask, DAQmx_ArmStartTrig_Type, DAQmx_Val_DigEdge);
    9、DAQmxSetTrigAttribute (hCounterTask, DAQmx_DigEdge_ArmStartTrig_Src, "/Dev1/ao/StartTrigger");
    10、DAQmxSetTrigAttribute (hCounterTask, DAQmx_DigEdge_ArmStartTrig_Edge, DAQmx_Val_Rising);
    //start counter task first
    11、DAQmxStartTask(hCounterTask);
    //start 6722 task
    12、DAQmxStartTask(hAOTask);
    I run it on the MAX virtual Device, and the Step 11 always returned error -89120。I try to slove this problem by changing the Step 7, use /Dev2/PFI9  instead of /Dev1/ao/SampleClock.
    7. 
    DAQmxCfgSampClkTiming(hCounterTask, "/Dev2/PFI9", 1000.0, DAQmx_Val_Rising, DAQmx_Val_ContSamps, 1000);
    The code runs well, but I don’t know which terminal is connected by /Dev2/PFI9. Does it connect to /Dev1/ao/SampleClock?After that, I use another API DAQmxConnectTerms to ensure that, I add a Step before Step 11.
    DAQmxConnectTerms( "/Dev1/ao/SampleClock", "/Dev2/PFI9", DAQmx_Val_DoNotInvertPolarity );
    The program also run well. But I am still not sure that 6602 is sharing /Dev1/ao/SampleClock。If not, which terminal of Dev1 is connected by /Dev2/PFI9?
    Is my code right? If not, where's the problem? Is there any example code for me? Thanks!

    Hi Shokey,
    You may want to check into the DAQmxExportSignal function in the NI-DAQmx C Reference Help.  You can take a look at this post for more info on how to get there.  John explains, on this linked forum post, why this function is preferred to DAQmxConnectTerms.  Functionally, they work similarly, but DAQmxExportSignal is a little more convenient.
    That error may mean that you are trying to route something that is not available for routing, or that you may just have the name of your device mis-typed (based on what I've found.)  Searching the error code alone on ni.com, I found this KnowledgeBase online, which you may find helpful (whenever you are searching for an error code like -89210, type it in without the negative sign, as in "89120" into the search bar on ni.com)
    Using a Valid Terminal Produces Error -89120 at DAQmxStartTask
    To see where your device can and cannot route to, you can always look at the "Device Routes" tab in your Measurement and Automation Explorer   See this KB for information on how to do that:
    How Can I Know What Internal Routes are Available on My Device?
    Let me know if using these resources helps, or if I can clarify anything for you.
    Regards,
    Andrew
    National Instruments

  • Timebase of the pci6602

    Hello.
    I employ a PCI6602 for period measurement using the two counter (wide range) measurement method. The task is created with the DAQ Assistent but unfortunately there I have no access to some properties, e.g. timebase. What's the default timebase and how can I read and/or change the properties that can't be cofigured with the DAQ Assistent?
    Thanks a lot!

    Depending on the settings of the DAQ-Assistant (Min & Max Period), the timebase is calculated, and set to the optimal timebase the hardware provides. So there is no default timebase. You can read the selected timebase by wiring the DAQmx Channel Property Node (Found in the DAQmx Functions Palette) to the Task-Output of the DAQ-Assistant VI and Selecting the Property "Counter-Input-->General Properties-->Counter Timebase-->Rate". You can then read the value, and with the same property node you can also write a new value to this property and set a new timebase.
    Hope this helps.

  • PCI6602, Time limit?

    hola  a todos,
    tengo una PCI6602 que estoy usando para hacer imagenes. Uso 1 contador como gate (tipicamente 10ms) y en el otro conecto la salida de mi PMT. Es decir cuneto la cantidad de fotones que me llegan en 10ms. Hago eso para distintas posiciones de la muestra y despues reconstruyo la imagen. Mi dudad es la siguiente:
    No se si estoy entendiendo que es el time limit que me aparece cuando hago buffered event counting. Yo estoy integrando cada 10ms pero no puedo reducir el time limit por debajo de 1seg!!!! Eso hace que este posicionada 1 seg en cada lugar de mi muestra y eso lo hace supèr lento!!!! Alguien tiene alguna idea de como hacer para reducirlo?
    gracias.
     lala

    Hola,
    Tu conteo de eventos necesita ser "buffered"? ya intentaste hacer un conteo de eventos simple? Este parametro que mencionas de "time limit" con que funcion lo estas manejando? utilizas DAQmx para hacer la programacion?
    Saludos

  • PCI6602 to detect TTL output from single photon counter

    Dear all,
    I am learning how to use Labview.
    Here is the system I try to set up.
    1.   Single photon counting module, 2.5v TTL output, 20MHz light source
    2. BNC-2121 block
    3. PCI6602
    4. Labview 7.0, NI-DAQmx
    The aim of this system is to counts the number of the detected photons from the light source.
    I have problem to start this task. Can you guys help to creat a sample which i can start from?  
    Your help will be greatly appreciated.
    Frankie

    Hi Frankie,
    I would suggest using the NI-DAQmx counter shipping examples to get
    started.  The Count Digital Events VI would be a good starting
    point. 
    You can open it through:
     Help >>
    Find Examples >>
    Hardware Input and Output >>
    DAQmx >>
    Counter Measurements >>
    Count Digital Events >>
    Count Digital Events.
    Hope this helps!
    Micaela N
    National Instruments

  • PCI6602 for motion control?

    Hi, I am wondering if it is possible to use the pulse generation of the
    PCI6602 to control a stepper motor
    driver, the problem is that I need aceleration and deceleration in the
    pulse train.
    I'm using the PCI6602 for event counting (~ MHz), and I need to
    synchronize the data acquisition to the stepper motor pulses at a rate
    of ~10 KHz. It would be nice to use a single card for both acquisition
    and motion control.
    thanx,
    Stefano

    Stefano,
    Yes, you could use the PCI-6602 to control a stepper motor. This will require two counters per stepper axis to control the step/dir or CW/CCW lines, or one counter per axis if you only want to move in one direction. You would need to programmatically ramp up the pulse rate to control acceleration. However, since updating the output pulse train frequency is software timed, acceleration may not be very smooth and you risk losing step. Also, you would need to manually handle any pull in moves.
    While you could achieve reasonable stepper control with the counter board with some trial and error, the PCI-7334 would probably be a better solution. This controller easily handles acceleration and deceleration and allows you to route the encoder signals over the
    RTSI bus to control the data acquisition process.
    Regards,
    Brent Runnels
    Applications Engineer
    National Instruments

  • Counter Questions Using PCI6602

    I have a couple of questions regarding the operation of the PCI6602. I am programming in VB.NET.
    Can you have multiple tasks that each correspond to one Counter Input Channel being used at the same time (i.e. trying to read a small angle inside another larger angle using encoders)?
    Is there any way to setup a trigger based on a counter count value (i.e. once the count value hits 180 degrees raise a digital bit)?

    Justin,
    You cannot have two tasks running simultaneously that are using the same counter input channel. You can, however, connect the same signal to two of your counter channels and have two tasks monitoring the two different channels.
    As far as triggering off of a counter value. The best that you can do is a software trigger. In DAQmx, in LV 7.1 you can do a timed loop that waits for the event to occur (i.e. counter reaching a value). I am not aware of this implementation in VB, but it is still nothing more than a fancy software trigger. You would need to poll the counter and then run the DIO task when it reaches its value.

  • Revised: Do I need to use a PCI6602 or a simpler DIO card?

    Sorry, the signals only have to be delayed in 1 ms increments... not .0001s... too many zeroes.
    "I have to delay a signal for about 1 ms from a sensor to trigger a vision camera taking pics at a rate of ~15 parts/sec. We will have 10 cameras running off one PC (equipped w/ several PCI8252's)... so 10 signals have to be delayed... the delay has to be adjustable (in .0001s increments) from the front panel too. Do I need to get a timer card (like a PCI6602) or will software based timing using a DIO card (like a PCI6503) suffice?"

    To be able to adjust the delay of your acquisition from your start trigger in DAQmx you should use the DAQmx Trigger property node. There are two values you would need to set in order to achieve this functionality: Start.Delay and Start.DelayUnits (See attached delaySettings.GIF and delaySettingsWhere.GIF for the location of the different options). By using a control for at least the Start.Delay, you will be able to change the delay from the front panel.
    The Delay Units can be set to be Seconds, Ticks or Sample Clock Periods. The attached file shows how I used Seconds as my Delay units. You'll probably want to use Sample Clock Periods, and that will mean you'll need to do some arithmetic to get the millisecond accuracy. For example, if you have
    a Sample Clock Rate of 1MHz, a user would need to enter in 1000 to get a millisecond delay. This also means that my previous response wasn't quite correct. Even though you don't need the microsecond accuracy, you could achieve a microsecond delay using the Trigger property node with a fast enough board.
    Attachments:
    delaySettings.GIF ‏3 KB
    delaySettingsWhere.GIF ‏5 KB

  • Do I need to use a PCI6602 or a simpler DIO card?

    I have to delay a signal for about 1 ms from a sensor to trigger a vision camera taking pics at a rate of ~15 parts/sec. We will have 10 cameras running off one PC (equipped w/ several PCI8252's)... so 10 signals have to be delayed... the delay has to be adjustable (in .0001s increments) from the front panel too. Do I need to get a timer card (like a PCI6602) or will software based timing using a DIO card (like a PCI6503) suffice?

    Thanks for the reply... I think we're steering towards Real Time... in that case, will the non-timer DAQ cards be sufficient to handle all this timing (in the millisecond range)?
    Also, I realized that the input for the timer MAY go high again (depending on how many parts we wind up dispensing per second) while it is already running from the previous signal. I suppose that this would require more than one timer allocation per input, taking our count up to 20 timers. Still okay? Am I making the correct assumption here? Thanks for your advice, it's much appreciated.

  • Crashing while runing appl to test PCI6602

    I am testing PCI6602 with P4+Win2K+SP4, after installed driver V6.9.3, no resource conflict. everyting is OK.
    However, when I run my simple application(just setup I/O and initializion for counters.), it crashed everytime!
    say "Stop ... Address ... DRIVER_IRQL_NOT_LESS_OR_EQUAL... nidaq32k.sys"
    But if I run the application line by line use breakpoints, it is fine.
    It looks like something relateed to the sriver's speed.
    So I updated the driver to V7.1, it looks better, but still crashs ocassionally when I continuously re-run application quickly. the driver's name changed to "swmidi.sys" in the Blue Screen. If I wait some time to re-run my application, it looks OK.
    Does anybody know why this crash happens and how to preve
    nt/solve the problem?
    Our machine is medical equipment, if something like that crashed, it would be disaster!
    Youe help will be greatly appreciated!
    James

    Hey James,
    Normally, crashes like this are related to your default settings in your application. You didn't mention what programming language you are using, but if you are using LabVIEW, make sure all of your shift registers have default values wired into the left side. In addition, if you are programming in text-base I would suggest setting every parameter with a default value. Don't ever rely on the default of any value to be zero.
    Once a program has executed it will still reside in memory for a short period of time, or until the OS over writes that location. If the program is executed again while all the values still reside in memory, then the new default values will be the last value that was written to that integer, float, pointer or shift register.
    If your program was assuming the value would be zero you can run into some serious problems.
    You can run one of our shipping examples designed for the 6602 to verify the driver is working correctly and it is not a driver problem.
    I hope this helps out.
    Joshua P.
    Application Engineering
    National Instruments

Maybe you are looking for