Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Do PCI-73 series motion control cards support interrupt event under Windows2000?

In our real time motion control system, we'd like to use interrupt upon motion complete or high-speed catch etc events. But based on the FlexMotion software reference manual, "Interrupts are supported under only Windows NT/98/95", now my questions are:
1. Does this "WindowsNT" just mean for OS WindowsNT(ie. NT4.0), in other word our host OS Windows2000 will not able to handle them?
2. Assume Win2000 still can handle it, then how can I implement it in our application?
3. And how can we handle it under WindowsNT OS?
0 Kudos
Message 1 of 5
(3,728 Views)
Hey Zhijun,
I will have to look into these questions of yours a little more. I will let you know the answers to your questions as soon as I can. Thanks for your patience.

Regards,
DJ
Applications Engineer
National Instruments
0 Kudos
Message 2 of 5
(3,715 Views)

Hey Zhijun,

The manual that you are referring to is an old manual, from 1998 or 1999, and it was written before there was support for Windows 2000. This manual also refers to the old Flexmotion Driver, and not the newest NI-Motion driver that is available. We recomend that you download and install the newest driver which can be found at Motion Control driver page. Also, when you install the driver, you will get the newest Motion Software Reference Manual with it. This new driver and manual will have support for your Windows2000 operating system. Something to point out about the new driver is that it does not handle Interrupts like the old driver did, but it will still be able to do what you need it to do. When you said you would like to "use an interrupt upon motion complete", you can use the Wait Until Move Complete function in the new driver. Another function you can use to check if motion is complete is to read the status of your move (polling it) and check to see if the move is complete. Now if you are wanting to check for a move complete in order to know when you can start your next move, then you will want to use Blending. You can read more about blending at the following Blending Tutorial page. When you said you would like to use the "high-speed catch event", I am assuming you mean the High Speed Capture with the new driver which is basically the same function, and it is an input trigger to the motion controller to see where the motion is currently at. With the old manual that you are looking at, the Interrupts are not supported under Win2000. So in conclusion, we recommend that you upgrade to the newest NI-Motion driver (currently NI-Motion 7.0) and use those functions in your application.
I hope this answers your questions. Please let me know if you have any further questions. Thanks.

Regards,
DJ

0 Kudos
Message 3 of 5
(3,651 Views)
Thanks DJ L!
Yes I downloaded the latest driver already and they did mention no more support for the interrupt functions. In fact what we want to do it's writing some on-board programs to do the motions and release host CPU as possible as we can, as host need handle the other tasks and sync them altogether. Polling can help us know the motion status but we are afraid of some delay caused by windows' thread scheduling. It may vary from 1ms to 10ms or even more, cause our system slow down or out of sync. So instead of interrupt, we are considering put high priority for the polling thread and using some high resolution timer events. Any other suggestion you can offer us?

BTW, how many on-board variables we can use in NI 735X? Is it still remain 120? And if I want to use flex_wait_reference(...) during homing axes in on-board mode, do I need pass an indirect variable(ie.V120_GP_POINTER+128 where V120_GP_POINTER was defined as 120) as the last parameter in the function? Then I can get the found result from V96_GP_VALUE assume I called "flex_load_var(NI7358_BOARD_XY, 96, V120_GP_POINTER)" before?

Last, I found it's a bit difficult for me to find the help on certain function while I'm doing the coding inside Visual Studio, I need manually keep switching between VC and NI-Function Help program. Could you provide a compiled help(HxS) file on MotionCReferenceHelp.chm so we can easily get the help collection and integrate it to VS.NET environment?

Thanks and Best Regards,
Zhijun
0 Kudos
Message 4 of 5
(3,651 Views)

Hi Zhijun,

As you know, interrupts were replaced in favor of DMA transfers.  This was overall a great improvement to the board.

Though priority of an onboard program is relatively low, the processing is done on the CPU of the motion controller - completely free from Windows scheduling.  This makes an onboard program a possibility, but it will work best if you do not have a great deal of calls to the motion controller. 

On the 735X series boards, we have upto 120 variables.  I cannot think of a situation in which you would need to pass an indirect variable. 

As far as help goes, what kind of compiled help file are you looking for?  The NI Motion function reference and something else..?

Can you tell me more about your application?  Its possible that the controller has other features available to it that might take the place of these interrupts you are looking for. 

Thanks,

Robert
Applications Engineering
National Instruments

0 Kudos
Message 5 of 5
(3,613 Views)