“工控机+数字采集卡”控制步进电机的相关问题求助

来源:百度知道 编辑:UC知道 时间:2024/09/22 05:32:07
在步进电机位置控制中采用了工控机通过数据采集卡6126和8316向步进电机控制器发脉冲来控制步进电机的运动,可有几个问题我一直想不明白,想向各位大侠请教一下。

原始的控制程序如下:
Private Sub xdd_Click()
Dim k As Integer
Dim i As Integer
Do While i <= 1024
i = i + 1
k = W_6126_DO(DO_LOW_BYTE, 5)
k = W_6126_DO(DO_LOW_BYTE, 5)
k = W_6126_DO(DO_LOW_BYTE, 5)
k = W_6126_DO(DO_LOW_BYTE, 5)
i = i + 1 - 1
k = W_6126_DO(DO_LOW_BYTE, 4)
k = W_6126_DO(DO_LOW_BYTE, 4)
k = W_6126_DO(DO_LOW_BYTE, 4)
i = i
i = i
Loop
k = W_6126_DO(DO_LOW_BYTE, 16)
End Sub

第一个问题是:

对于原始程序根据我的理解是工控机向步进电机控制器发了1024个脉冲,然后我根据步进电机的相关参数计算出步进电机应该运行40um,可我用激光干涉仪测得的实际距离只有2um左右。我想问一下各位大侠,数据卡向步进电机发脉冲的原理是怎样的,这段程序向步进电机驱动器具体发送了多少个脉冲?步进电机按照这个脉冲数准确的运动距离应该是多少?

第二个问题是:
在程序中为什么要重复的给数据卡的数字输出口写入控制字?我曾经试着改变重复写入的次数,发现只写入一次时,步进电机无法运行。我想问一下,只写一次为什么不行呢?

请各位大虾赐教,谢谢各位大侠了

不能重复发出脉冲信号啊
步进电机的基本原理

步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。

步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。
现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)和单相式步进电机等。
永磁式步进电机一般为两相,转矩和体积较小,步进角一般为7.5度 或15度;
反应式步进电机一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。
混合式步进电机是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛,也是本次细分驱动方案所选用的步进电机。
步进电机的一些基本参数:
电机固有步距角:
它表示控制系统每发一个步进脉冲信号,电机所转动的角度。电机出厂时给出了一个步距角的值,如86BYG250A型电机给出的值为0.9°/1.8°(表示半步工作时为0.9°、整步工作时为1.8°),这个步距角可以称之为‘电机固有步距角’,它不一定是电机实际工作时的真正步距角,真正的步距角和驱动器有关。
步进电机的相数:
是指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机。电机相数不同,其步距角也不同,一般二相电机的步距角为0.9°/1.8°、三相的为0.75°/1.5°、五相的为0.36°/0.72° 。在没有细分驱动器时,用户主要靠选择不同相数的步进电机来满足自己步距角