Pci-7342, onboard dsp and pid

Hi
I am currently working on a system where we use the PWM capability of the pci-7342 board to set the speed of a motor.
In theory it is fairly simple, I sample the encoder position every n ms, compare the speed to the setpoint value, and feeds it to a PID controller (home-made in labview). This gives me a PWM duty cycle, and it works ok.
The problem is that, using labview, I use a timed loop and it is hooked to the standard 1 kHz timer. That gives me a minimum loop time of 1 ms, and I would like it to be faster.
The pci-7342 board has several axes, which may be programmed and tuned using the onboard dsp. For the axes the are posibilities of doing profiles and controling the movement using a PID controler. I would like to know if it is possible to use these controller to output something else than the signals for the servo/stepper channels.
It seems that I could build my own pid-loop using register and basic arithmetics. Does anyone have a link to an example program for an onboard pid controller?
Also, I have been unable to find the clockfrequency of the internal dsp. Is it fixed or does it just run as fast as possible?
Links, comments or code samples would be appriciated.
Regards
Morten

Morten,
it looks like you are a little bit on the wrong track here. The 73xx boards run the trajectory generation and the PID loops on the DSP. This ensures deterministic and stable system behavior, as the DSP has direct access to the IOs.
In your case you are using the motion board as a simple I/O-board, bypassing all the onboard intelligence. This is not the intended use case for these boards and the system behavior will be everything but fast and deterministic, as all the I/O operations need to run through a low priority process on the onboard CPU. With a timed loop running at 1 kHz you will get a jitter that is in the millisecond range, destroying the deterministic behavior that is required for a stable PID loop.
I understand that you are doing this because you need to generate a PWM signal instead of a +/-10 V DC signal, but this approach won't work.
Unfortunately onboard programming will not result in better behavior, as onboard programs run also in a low priority thread on the onboard CPU without direct access to the IOs. In terms of jitter onboard programs don't perform better than host PC applications and loop rates may be even slower.
So here are some alternative approaches:
For the case that you are working with motors from PI (Physikinstrumente), there is a drive available from PI, that converts the +/- 10 V signals of a NI motion control board to PWM signals required by PI motors. Here is the link.
Use an NI multifiunction board, like a PCI-6221 instead of a motion control board. Even if you use this board under Windows, you will get much better I/O performance, as you can access the I/Os directly through the NI-DAQmx driver interface. Still this is not a really good option, as Windows introduces a significant amount of jitter to your control loop, which will make your system unreliable.
Same idea as in 2.) but run the system in a real time environment (LabVIEW RT). This will greatly improve the performance (timed loop with µs-resolution timer or hardware timing) and system reliability (jitter in the lower µs range). Additionally you could use the NI softmotion development module, that provides all the functionality of a motion board (e. g. trajectory generation, advanced PID algorithms, spline engine,...) in a convenient LabVIEW library.
As a very high performance option you could consider using an NI CompactRIO system, that allows you to run the motion control on a combination of a LV RT controller and an FPGA, both programmed with LabVIEW.
I hope this helps,
Jochen Klier
National Instruments

Similar Messages

  • PCI 7342 digital output

    I am using PCI 7342 motion controller and UMI7772. There are 6 relays in my system, which are 24Vdc coil voltage and 37mA coil current for each. Can I use digital output on PCI 7342 through UMI7772 to drive these relays?
    PCI7342's digital output is 0-5V, 24mA, but through UMI7772, I can get 5-30Vdc, 100mA output. Am I right? I am not sure 100mA is total or for each output.
    Thanks for reply.

    Don't forget that a relay is basically an inductor and therefore the inrush current can be somewhat higher than the rated current. But I don't think that this might cause problems in this application.
    In any case you should connect a breakdown diode in parallel with the relay coil to keep off inducted voltage from the 734x outputs, or some other snubber circuitry.

  • TTl output PCI-7342 & SCB 68

    Hello,
    In my application, I have to control a servomotor. For that, I have the PCI 7342 with the UMI 7764 interface... Also,I would like to use the 32 DIO of the PCI 7342 for send and receive data...( I use the SCB68)
    In the SCB 68, I have connected on the port 1 bit 0 an electronic chart to control brakes...But I have to send on this port a +5V signal....
    My problem is that I don't know sufficiently Labview to know which is the VI adapted that would allow me to realize this...
    I am completely blocked. I would like that you help me.
    THANK YOU .
    Cordially
    Murat

    Murat-
    You should be able to use the "Set I/O Port MOMO" VI which is under "Analog and Digital I/O" in the Flexmotion palette.

  • NI PCI 7342 and UMI 7764

    Hello All,
    I am using the PCI-7342 to control 2 servos for co-ordinated motion. I am using UMI7764 to breakout Motion IO to connect to my Servo Amplifiers. I am confident that the system will work fine because I have used a similar setup before. The issue I have now is that the UMI 7764 unit is farther than 2meters from the PC. I called NI and the tech said that NI doesn't have any cables longer than 2M to solve my problem. So she directed me to this forum. I was little disappointed that NI doesn't have any option or may be she is just not aware of it.
    I have following questions here. First, is it OK to have the UMI 7764 mounted farther than 2 meters from the PCI card? (I need one extra meter here) Has any one used a setup where he or she needed to mount the Break Out Board farther than 2 meters and if so than was there any issues with the signal degradation that was observed? Is there any limitation on distance mentioned any where on NI documentation ?
    Secondly if it's Ok technically to be farther than 2 m than who is the cable manufacturer? I was starting to search L-com.com. Is there any other source besides L-com.
    Thanks

    I have a testing machine (which permits to stretch or to compress samples) that I have to analyze with an aim to re-do the processing part (command part).
    I send to you a diagram of the machine and a diagram with the connection to the UMI 7764.
    I have to do moving the horizontal part, obtained thanks to the rotate of the two long screws.
    This screw turns thanks to the speed that supplies the motor (gearwheel + driving belt).
    To control the motor, I have to apply to the terminals AOUT and AGND, the consign voltage (є [-10V; +10V]), image of the motor speed rotate.
    +10V → 3000 rpm
        0V → 0 rpm
    -10V  → -3000 rpm
    Cordially
    Murat
    Attachments:
    diagram.doc ‏292 KB

  • How to choose connector and cable of NI PCI-7342

    I want to buy NI PCI-7342 motion controller card of NI but i don't know How to choose connector and cable of NI PCI-7342. My objective is just control the servo motor. What 're connector and cable I need to buy together ?

    Hi bkk -
    The choice of accessory equipment will depend on the drive and feedback method you plan to use.  If you would like to use an NI servomotor drive (the MID-7652 would be appropriate for your controller), the cable that will connect your controller and drive is the SHC68-C68-S.  If you plan to use a third-party motor drive, you'll need a breakout unit to make the appropriate connections with your controller.  The UMI-7772 is our two-axis breakout unit, and the same cable will connect to it.
    David Staab, CLA
    Staff Systems Engineer
    National Instruments

  • Kollmorgen Motors with PCI-7342 and UMI-7772

    Hi,
    I am trying to connect a pair of third-party servo-motors (Kollmorgen AKM11B-ANCNC-00) and drives (Kollmorgen AKD P00306-NBAN-0000) using a National Instrument motion controller NI PCI-7342 and motion interface NI UMI-7772.
    Ever since the setup has been connected to a new computer, the motors aren't moving even though they are connected. The motors are detected by the GUI for the motors (Kollmorgen Workbench) but the program shows that the hardware is not enabled.
    It has also been noticed that the LED indicating 'Interlock' shows red, and so do the LEDs indicating the 'Disabled' for both the axes on the UMI.
    The 'Axis Configuration' for both axes on the NI MAX program indicate 'Enabled'.
    Since only the PCI board has been switched from the old computer (where the setup was working well) to the new one, most cable connections have been left untouched.
    Any help/suggestions on why the motors aren't working is welcome.
    Thanks in advance,
    Subhabrata

    Could you explain a little more on what you mean by 'current settings on limit switches' ? Anyway in accordance to the link you attached to the previous reply, we changed the settings on the NI MAX program to correspond that on the switch (on the UMI) and now we don't get the error (70119). Thanks for that.
    But we still cannot get the motors to work. The 'interlock' light is still on. We took out the 'control' and 'feedback' ports that go into the UMI for the two axes and probed the voltage between pin 6 and pin 9 on the control port. One link (from the Knowledgebase) had suggested that we would get a voltage around 24V, but we did not. It was the same for both the axes. Does that suggest anything ? Should we look into replacing the cables connecting the UMI and the motion controller (even though the they were working fine before we moved set-up) ? Or could it even have something to do with the motion controller itself ?
    Thanks in advance,
    Subhabrata

  • Use PCI-e video card and onboard video at same time

    This is going to be really annoying if i cant use both at the same time. I am trying to get 3 monitors running and want to use the onboard display port or vga port alongside my PCI-E video card and it seems in the bios that only one can work at a time. I am assuming this means i have to use a PCI card with my PCI-e one to get more than the 2 i have at a time.
    Has anyone gotten onboard working alongside a PCI or PCI-E card? Seems like a silly thing to not enable in the Board as businesses have a need for more than 2 sometimes.
    Any assistance would be great.

    lead_org wrote:
    this is only possible with selected versions of the Thinkcentre equipped with AMD processors using SurroundView.
    Intel equipped motherboard does not allow this.
    Actually, a number of later Intel based systems allow for concurrent internal and PCI card-based graphics:
    ThinkCentre M71e, M81, M82, M83/p (Small Form Factor) SFF/Tower, M91, M91p SFF/Tower, M92/p,M93/p SFF/Tower
    ThinkCentre Edge 71, Edge 72, Edge 91, Edge 92
    ThinkStation E30/E31/E32
    http://support.lenovo.com/en_NL/downloads/detail.page?DocID=HT062228
    I myself use a M91p with 3 monitors on a AMD HD 6670 plus a 4th on the DP motherboard (Intel HD2000) port.  

  • How to enter bios, disable onboard sound, and install a sound card

    How do I enter bios, disable onboard sound, and install a sound card?

    Hi,
    You may also have to disable, security for the PCIE x1 slot.
    Windows 8.1 - Accessing the UEFI (BIOS) Setup
    Regrads

  • PCI-7342 Digital I/O example

    Does anyone have an example of reading/writing to the Digital I/O ports on a PCI-7342? (2-Axis Stepper/Servo Controller with Digital I/O) I'm very new to Labview and am having difficulties using the labview environment commands.
    Right now I have a simple setup where I have a framed sequence where I do the following in this order:
    1. Configure port 1 as output
    2. Write $FF to port 1
    3. Configure port 1 as input
    4. Display value of port 1
    Of course, nothing lights up at all. I've tried changing the polarity and the MOMO values, but still no signs of life.
    Can anyone help? Examples are preferrable :-}
    Thanks,
    Jeff

    Dennis,
    Good point. At the time, I was thinking that if I wrote to the port then immediately read it, the value would still be there. But now, I see what you mean.
    But I still have some problems... Using the attached VI I don't know what the right sequence is for writing to the port. The problem is that the "Set I/O port MOMO" function doesn't seem to have any effect. However, when I flip the bits on the "Set I/O Port polarity" function it outputs to the port!
    I though that the polarity function just determined what ON meant(i.e ON=0v or ON=+5V). Is this true? No matter how I set the MOMO, it doesn't seem to have any effect on the output. Only the polarity controls it.
    Any ideas?
    Jeff
    Attachments:
    Motor_IO_Test.vi ‏42 KB

  • K9NGM3 how to enable both onboard video and video card NVidia GeForce 6600

    My previous mainboard was K9NGM2 (GeForce 6150 onboard video) and I've used both onboard and external video at same time under Vista.
    Now I've upgraded the mainboard and it's now a K9NGM3-FIH (with nVidia 7050 chip). Onboard graphic works as well if there is no external PCIe video card. When I plug an external one (GeForce 6600), internal one disappears. I both tried BIOS settings; primary card is Onboard / or PCIe. No luck!
    If there is an external card, onboard video doesn't work at boot and under Vista. There is no Video graphic adapter named 7050 : ( When I unplug it then reboot there is the 7050 under device manager...
    What's wrong with them?
    Thanks.

    when you have a stand alone video card, why would you want to use on board video at the same time? stand alone video card is much much better than those one on board.

  • Programatically configure PCI 7342

    I need to configure motion controller card PCI 7342 programmatically. How about the configuration in MAX? Not sure how 7342 handle it, does it ingore the configuration in MAX?
    Thanks.

    From the help of Initialize Controller.flx :
    Settings Name is the name of the configuration settings as specified in Measurement & Automation Explorer (MAX). To use the current configuration settings, leave Settings Name unwired or pass NULL for the Settings Name parameter. The current settings are the setting that are configured in MAX.
    So this error occurs when the configuration does not exist in MAX.
    There can be 2 cases :
    1) The application runs on the same computer than the one that was used for developement.
    In this case it is not necessary to export the settings. Wire the name of an existing motion configuration to Initialize controller.flx to use one of the existing settings.
    2) Once the developement is finis
    hed, the application is installed and runs on another computer.
    In this case, instead of retyping the whole configuration on the target computer, you can export it to a file. But what I missed to say is that you must then import it on the other computer. Than, same as 1).
    Sorry for my incomplete previous answer.

  • PXI-6534, Load onboard memory and enable looping

    I would like to program the PXI-6534 from a Linux application. I can talk to the card and set the registers. However, the Hardware DDK only contains information on the PXI-6533 (not the 6534), and there are two differences.
    The PXI-6534 has onboard memory, and a onboard looping mode that I need to use. The register map for the 6533 (from the DDK) does not include any information about these features (because they don't exist on the 6533).
    I found information on how to do it from a windows platform using NI-DAQ, but I need to do it from Linux. I have a driver, but need information on what registers to talk to and their formats.
    1. How do I load the PXI-6534 onboard memory and enable it (what registers and f
    ormats do I use)?
    2. How do I enable the PXI-6534 onboard memory looping mode (what registers and formats do I use)?
    Thanks in advance !

    Please contact your local field sales representative to discuss your application and possible Linux solutions using the 6534 card. Programming the 6534 card is considerably more complex than the 6533 and NI currently does not have register level programming information available for this card.
    Click here to find you local field sales person.
    Christian L
    NI Consulting Services
    Christian Loew, CLA
    Principal Systems Engineer, National Instruments
    Please tip your answer providers with kudos.
    Any attached Code is provided As Is. It has not been tested or validated as a product, for use in a deployed application or system,
    or for use in hazardous environments. You assume all risks for use of the Code and use of the Code is subject
    to the Sample Code License Terms which can be found at: http://ni.com/samplecodelicense

  • LabVIEW PCI-7342-SCB-68

    Bonjour,
    Dans mon application je dois commander un servomoteur.Pour cela, je me suis dotée d'une carte PCI 7342 avec  l'interface UMI 7764 qui va avec... Je veux aussi utiliser les 32 entrées sorties numériques de ma carte pour envoyer et recevoir des données.(j'utilise pour cela le boitier SCB 68).
    Sur le boitier SCB 68, j'ai relié sur le port 1 bit0 une carte de gestion de freins. Pour commander les freins, il faut que j'envoie sur le port 1 bit 0 un signal de 5V...
    Mon probleme est que je ne connais pas suffisamment Labview  pour savoir quel est le VI adapté que me permettrait de réaliser ceci....
    Je suis totalement bloquée.
    J'aimerais que vous m'aidiez. MERCI
    Cordialement
    Murat

    Bonjour Karlito,
    La série des cartes 734x dispose du driver motion. Dans celui-ci, vous pouvez accéder à la fonction "Write Digital I/O Data" (voir image jointe) afin de paramétrer vos E/S numériques. Référez-vous à l'aide NI-Motion au sujet de cette fonction afin de pouvoir la paramétrer correctement.
    Vous aurez besoin du cluster "data in", de "board in", de "line in" afin de choisir et de configurer votre ligne. Vous ferez varier "attribute" pour changer d'état.
    Cordialement, 
    BRAUD Jean-Philippe
    Field Sales Engineer - Nord et Centre France
    LabVIEW Certified Developper
    Attachments:
    motion IO.jpg ‏33 KB

  • PCI 7342 position feedback

    how many encoder inputs  does PCI 7342 have?
    may i use all four encoder inputs? 

    As you might have read on the PCI7342 data sheet you can connect two quadrature encoders to the board - just as many axes you can control.
    Probably there is some kind of misunderstanding: QUADRATURE encoder means that it is an encoder with a two-phase output. Both outputs have a phase shift of 90 deg. This makes it possible to detect the direction of rotation. Also, in many cases (as on the 7342 boards) by detecting rather the edges of the output signal than their levels, you can get 4 pulses for each encoder step, hence QUADRATURE.
    If you are not familiar with quadrature encoders or rotation encoders in general the tutorials on the NI website might be helpful.

  • PCI 7342 exist in MAX as 7340, why?

    Hi,
    I have a PCI-7342 device, but why it show in max is 7340. not 7342??
    MY

    Hi My,
    The type of board is a 7340 so if you have a 7342, 7344, or 7348 it will show up in MAX as a 7340.  The last two numbers indicate how many axis are available on your board.  In MAX it will have the option to configure 2 axis if you are using the 7342.  I hope this helps.
    Regards,
    GG

Maybe you are looking for