此页面上的内容需要较新版本的 Adobe Flash Player。

获取 Adobe Flash Player

Implementing an SPM controller with LabVIEW

BAI Jiang-hua, John L Freeouf, Andres La Rosa


Physics Department, Portland State University,  Oregon 97201, USA)


 

Abstract: The purpose of this article is to reduce the barrier of developing a house-made scanning probe microscope (SPM). Here in this paper, we cover all the details of programming an SPM controller with LabVIEW. The main controller has three major sequential portions. They are system initialization portion, scan control and image display portion and system shutdown portion. The most complicated and essential part of the main controller is the scan control and image display portion, which is achieved with various parallel tasks. These tasks are scan area and image size adjusting module, Y-axis scan control module, X-axis scan and image transferring module, parameters readjusting module, emergency shutdown module, etc. A NI7831R FPGA board is used to output the control signals and utilize the Z-axis real-time feedback controls. The system emergency shutdown is also carried out by the FPGA module. Receiving the shutdown command from the main controller, the FPGA board will move the probe to its XYZ zero position, turn off all the high voltage control signals and also eliminate the possible oscillations in the system. Finally, how to operate the controller is also briefly introduced. That messy wires fly back and forth is the main drawback of LabVIEW programming. Especially when the program is complicated, this problem becomes more serious. We use a real example to show how to achieve complex functionalities with structural programming and parallel multi-task programming. The actual code showed in this paper is clear, intuitive and simple. Following the examples showed in this paper, readers are able to develop simple LabVIEW programs to achieve complex functionalities.


Key words: scanning probe microscope (SPM); LabVIEW; FPGA; multi-task programming; real-time cntrol


 

CLD number: TN16Document code: A


Article ID: 1674-8042(2018)03-0257-012doi: 10.3969/j.issn.1674-8042.2018.03.008


 

References


1]National Instruments. NI community. [2018-01-12]. http:∥zone.ni.com/reference/en-XX/help/371361N-01/glang/synchronization_vis_funct/.

2]Bai  J H, Chen J W ,  Freeouf  J L, et al.  A 4-layer method of developing integrated sensor systems with LabVIEW.  Journal of Measurement Science & Instrumentation, 2013, 4(4): 307-312.

3]Bai J H, Rosa A L. Essentials of building virtual instruments with LabVIEW and Arduino for Lab automation applications.  International Journal of Science and Research,  2017, 6(5):  640-644.

4]National Instruments. NI community. [2018-03-12]. http:∥zone.ni.com/reference/en-XX/help/371361H-01/glang/local_variable/.

5]National Instruments. NI community. [2018-03-12].  http:∥zone.ni.com/reference/en-XX/help/371361L-01/lvconcepts/block_diagram_feedback/.

6]National Instruments. NI community.  [2018-03-12].   https:∥zone.ni.com/reference/en-XX/help/371361J-01/glang/property_node/.

7]National Instruments. NI community. [2018-03-12].   http:∥zone.ni.com/reference/en-XX/help/371361H-01/glang/invoke_node/.

8]National Instruments. NI community. [2018-03-12].   http:∥www.ni.com/tutorial/14532/en/.

9]National Instruments.  White papers.  [2018-03-12].   http:∥www.ni.com/white-paper/6440/en/.

10]Franklin G. Feedback control of dynamic systems. London: Pearson Higher Education, Inc. 2010.


一个由LabVIEW编写的扫描探针显微镜控制程序


白江华, John L Freeouf, Andres La Rosa


(波特兰州立大学 物理系,  美国 俄勒冈州 97201)


摘要:本文的主要目的是通过具体示例的详细讲解, 来降低自制扫描探针显微镜的门槛。 本文用简约易懂的LabVIEW编程实现了复杂的扫描探针显微镜的控制与图像处理的功能。  本控制程序由三大模块用顺序结构完成。 它们分别是设备初始化模块、 扫描控制与显像模块和设备安全关机模块。  控制程序中最复杂、 最关键的扫描控制与显像模块采用完全并行处理的方式实现。 这种模块化设计, 使主控程序简单明了; 既方便修改又方便维护。  并行处理模块主要有扫描区域调整与像素调整模块、 Y方向扫描控制模块、 X方向扫描控制与图像传输模块、 扫描过程中参数再调整模块、 扫描中断与紧急停机模块等组成。  FPGA模块的主要功能是完成控制信号的输出与Z方向的实时反馈控制, 在主控程序发出紧急停机命令时, FPGA模块将消除系统可能的振荡, 把扫描探针恢复到初始位置以及关闭高压控制信号等等。 文章最后, 介绍了如何使用该控制器。  杂乱无章、 横七竖八的连线是LabVIEW编程中的最大的诟病。 当程序复杂时,  这一问题更加严重。 本文向读者展示了用LabVIEW实现完全结构化与并行编程的方法; 读者可以按照本文描述的编程技巧,  用简单、 易懂、 易维护的模块化程序实现复杂的虚拟仪器应用。  


关键词:扫描探针显微镜; LabVIEW; FPGA; 多任务编程; 实时控制


 

引用格式:BAI Jiang-hua, John L Freeouf, Andres La Rosa. Implementing an SPM controller with LabVIEW. Journal of Measurement Science and Instrumentation, 2018, 9(3): 257-268. [doi:10.3969/j.issn.1674-8042.2018.03.008]


[full text view]