background image

号,然后输入 PCI-1780 计数卡,再由工控机读取间
接计算得出。

2

系统监测程序设计

若采用 VB、VC、Delphi 等作为软件开发平台,

会有很大一部分时间花在程序主界面的编写上,而且
要编写复杂的信号处理程序及设备驱动程序

[7]

此,作者采用具有强大的界面编辑和信号处理能力的
LabVIEW

作为软件开发平台。LabVIEW 是一种目前

广泛应用于仪器控制、数据采集、数据分析与显示等
领域的图形化软件开发平台

[8]

,它提供了丰富的功能

函数和设备驱动程序,用户无需花费大量的时间在功
能函数的实现上,而把主要精力集中在程序架构的思

图 2 直线电机监测

程序流程图

考上

[9 - 10]

图 2 是直线电机监测程

序流程图。

程序 先 对 硬 件 初 始 化,

然后通过一个循环结构循环
地调用速度与位移监测程序、
温度监测程序及推 /拉力监测
程序来监测直线电机的速度、
位移、方向、推 /拉力及绕组
温度等参数,当硬件发生故
障时退出循环结构,显示驱
动程序反馈回来的故障信息
并结束程序。

2. 1

速度与位移监测程序设计

该系统要求能监测的最大位移量是 1 m,由于计

数卡内部计数器为 16 位,只可计 2

16

= 65 536

个脉

冲,而一个脉冲对应着直线电机的位移量为 0. 005 mm,
即一个计数器能监测的最大位移量如式 ( 1)

65 536 × 0. 005 /1 000≈ 0. 33 m

( 1)

达不到该系统的要求,所以该系统采用两个计数器级
联的方式,组成 32 位的计数器组,分别对正 /反向位
移脉冲 计 数。直 线 电 机 的 运 动 方 向 可 以 通 过 调 用
PCI-1780

计数卡的读数字输入端口位函数取得四倍频

及鉴向电路输入的方向信号,这里不作详述。图 3 是
直线电机正向运行时速度与位移监测核心程序。

程序主要调用了 PCI-1780 计数卡的读计数器函

数,LabVIEW 基础软件包的时间计数器、条件结构、
移位寄存器等。程序先通过读计数器函数读取两个计
数器的数值,然后通过运算计算出正向脉冲数及正向
运行距离,再结合时间计数器计算出直线电机的运行
速度。移位寄存器的功能是把当前循环完成时的某个
数据传递给下一次循环的开始,在这里的作用是记录
上一次循环监测到的位移和时间,与当前循环监测到
的位移和时间做差值计算,再计算出运行速度。程序
中用到了两个条件结构,外面那个条件结构通过直线

图 3 速度与位移监测核心程序

电机速度是否为 0 来判断其是否静止,里面那个条件
结构的作用是判断累计正 /反向运行距离是否为负数,
若为负数则将其置为 0,因为在该程序设计中累计
正 /反向运行距离采用绝对值形式表示。

2. 2

串口驱动程序介绍

VISA

( Virtual Instrument Software Architecture )

是一个 I /O 接口软件库及其规范的总称,本身不具备
编程能力,通过调用底层驱动程序来实现对仪器的编
程,它的 I /O 接口实现了与各种仪器的通信连接,包
括 VXI、GPIB、RS232,以太网及其他类型仪器

[11]

LabVIEW

可以通过调用 VISA 库的串口驱动程序来实

现与下位工控模块通讯,读取温度值和推 /拉力数值。
该监测程序主要调用了串口的初始化函数、写操作函
数和读操作函数等。

2. 3

温度监测程序设计

图 4 温度监测核心程序

·

1

8

·

第 20 期

梁永忠 等: 基于 LabVIEW 的直线电机监测系统设计