Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Neg Feedback / Analog Circuitry Wiring / STM Raster Scan

Dear all,

Hope this message finds all well.

About a year ago my university wanted to try constructing a scanning tunneling microscope from scratch. The project was adjourned and recently revived with less time but a bigger budget.

My past experience as a novice LV-user was that I got too much amatuerish coding out before realising it was all wrong, albeit too late. And hence this time I would like to set out on the right footing, and would appreciate all help possible. Many thanks in advance for that.

The analog-control components consists of the 4 AO channels on the NI 6230 DAQ, voltage outputs control XY motion (scanning), sample bias (fixed DC voltage), and a Z-motion (negative feedback loop required); and 1 Voltage input (which is associated with the negative feedback loop).

First of all, may I refer to the NI 6230 pinouts:

1) Are the AI or AO ground pins strictly coupled tper channels, or is one free to use any? If it is strictly coupled, how do I identify which for which?
2) We are using a DIY preamp which is running off batteries (for fear of AC noise). Are there any ways of 'assigning' a common ground point which is common for all inputs and outputs with respect to the batteries?

In essence, the Labview program needs to accomplish the following (in a somewhat chronological order):

3) Automated Tip Approach control
(with reference to http://link.aip.org/link/?RSINAK/60/181/1) (Purchase order for a motorized actuator underway)
the program will have to drive the linear translation by the smallest possible increment, then extend the Z-piezo from most contracted to the fullest extension in (relatively) coarse steps. If there is no voltage read on the AI channel, the Z-piezo is contracted, and the cycle repeated, until AI channel reads a voltage.

4) When (3) is achieved, a PID loop controlling Z-piezo must kick in, doing fine motion (smaller voltage increment/decrement as compared to the coarse approach in 3) while trying to maintain AI constant. This part is rather mission critical; while the windows environment be sufficiently fast? Will the PID example be sufficient as a start point?

5) a raster scan in XY motion will record the Z-voltage value at each data point. A (array or matrix? not sure of these stuff you see..) of variable size (32X32, 256X256 etc) should form a 3D representation of the data desired.

Sorry if the post has been lengthy and amateurish, but I will definitely be thoroughly grateful to any form of help rendered.

Best regards,
Ngiam



0 Kudos
Message 1 of 3
(3,796 Views)
Hello swngiam,

Thanks for your post! Glad to hear that your univeristy is uisng LV for your projects.

I would like to first address your NI 6230 DAQ general questions.

Your question "
Are the AI or AO ground pins strictly coupled per channel, or is one free to use any?" The AI and AO grounds are not coupled per channel so you are free to use them as you choose.

For connecting your "
DIY preamp" I might suggest to use RSE for the inputs or Single-Ended-Ground Referenced. This way you hook up the positive signal coming from your preamp to the AI channel + input and then the (-) signal or ground signal to the the AI ground. Also take a look at the link below as it shows how to deal with noise and hooking different devices to DAQ boards.

Field Wiring and Noise Considerations for Analog Signals

I want to refer you to table 1 in the link above as it shows the different recomended connections to daq cards for analog inputs. Specifically columb 1 which shows connections for battery operated devices.

LabVIEW PID Control Toolkit User Manual

Above is the LabVIEW PID manual that I would use as a reference on how to make your feedback loop. However we have reached my knowledge of PID control.

As for your PID and motion (motor) questions, I would like to suggest for you to post on the "Motion Control and Motor Drives" Forums as customers that are familiar with motors and PID control are more likely to see your post and be able to make some good suggestions for your program. 

Please post if you have any more questions and Good Luck!

Corby_B
http://www.in.com/support
0 Kudos
Message 2 of 3
(3,774 Views)
Ngiam,

I would like to comment on the following question:

This part is rather mission critical; while the windows environment be sufficiently fast? Will the PID example be sufficient as a start point?

I believe the answer is no, unless your movement is slow enough and over a small enough range that a PID loop running in Windows LabVIEW can respond quickly enough.  Using a while loop with a PID loop in LabVIEW, you could achieve a fairly reliable 1000 Hz loop rate that would be subject to all of the interruptions that might happen in Windows.  To give you a ballpark, NI Motion boards default to 4000 Hz.

I would suggest looking at one of the following options:

1. NI-Motion boards
NI makes plug-in PCI boards that have a variety of capabilites, with the one of interest to you being the PID loop that will run on the card independently of the host computer.  You can find more information on these at ni.com/motion.

2. Real-Time System
You can use a Real-Time system that will give you two things, determinism and a more accurate clock.  This would allow to specify reliable timing, and also allow you to use a microsecond clock rather than the millisecond clock used by Windows. You can find more information on these at ni.com/realtime.

3. FPGA System
This is where you will head if you need the absolute fastest response.  You will be able to create a PID system that will respond orders of magnitude faster than realtime or Windows. You can find more information on these at ni.com/fpga.

With both the Real-Time and FPGA based solutions, you will be able to use PID toolkit VI's to execute your PID loop.  With NI-Motion, this is taken care of for you by the driver and you will be able to specify settings.

Thanks,
Luke H
Message 3 of 3
(3,742 Views)