使用 LabVIEW 实现对CC-M3H040-NN14伺服电机的控制
惠昊
使用 LabVIEW 实现对伺服电机的控制
本次要控制的伺服驱动器的型号是:CC-D3P040A2-A
;伺服电机是:CC-M3H040-NN14
。
labview control to read motor position
1. 控制器地址设置
在需要使用多个控制器的情况下,需要设置好控制器的地址,用以在发送控制码的情况下区分不同的控制器。控制器的地址位发生改变相应的代码上的地址位也要改变,那么代码最后的校验码也要重新进行计算。
例如 01
即为地址位;最后两位为校验码。
2. 使能控制与通讯模式设置
在单独使用 LabVIEW 控制不开启上位机软件的情况下,要在发送距离、速度、启动和启动复位代码前发送使能开的代码,或者其他用于控制通讯模式的代码。例如本次所控制的驱动,不仅要使能开,且要额外增加两个代码,让其控制模式从 I/O 变为通讯模式:
写入两个代码让其都变为通讯模式(使用 485 控制是通讯模式)。
3. 电子齿轮比设置
要开始设置电机的移动量,在此之前要知道电机的电子齿轮比为多少。例如在这个电机的默认齿轮比下,我发送 1000 个脉冲它只能旋转 0.1 圈,因此想要让其在一次动作下旋转一圈,就要发送 10000 个脉冲或者改变它的齿轮比。
上图即为需要改变的参数的图片,例如我输入是 1000 个脉冲,但我想让其旋转 1/5 圈,但是在现在齿轮比下只能旋转 1/10 圈;现在齿轮比分母为 2500,则我要将其改变为 1250。
4. 转速设置
设置好转速。
5. 启动与复位设置
在设置启动,需要多次连续启动的情况下,同时也要设置启动复位,确保连续启动的顺利。
6. 多段代码写入延时
另一个问题是在 LabVIEW 写入时写入多段代码时,使用多个写入 VISA 中间要加入延时的程序(试过顺序结构写入但是感觉还是会崩溃),确保写入的代码不会混乱。
7. 多电机控制方式
要控制多个电机时可以有多种方式进行选择,首先最简单的你想要实时读取两个电机的参数可以使用轮询的方式,将两个电机的 485 通讯线的 AB 口分别接到一起(这种方式在别的控制方式选择下依然是较好的方式,因为可以不用反复选择不同的 COM 口,且在设置好不同的地址位的情况下,并不会相互影响),选择一个条件结构,将其的条件设置好,分别发送两个对应不同电机的问询码,控制器读到与自己相对应的码时会反馈,这样两个控制器便会轮流反馈其的位置。
这是可以选择不同的电机进行问询,如果将选择是非的布尔控件换为一个可以实时发送是非的结构则可实现上述的轮询。例如选择 while 结构由于其会自动计数生成 0,1,2…则可以将生成的数与 2 相除取余与 0 比较来判断是非。
8. VISA 读取设置
在读取 VISA 使用过程中要选择所要读取的代码的位数,在你不知道想要几位代码或者你不知道它要反馈的代码有几位的情况下,最简单的方式就是让反馈的代码全都读到。
9. 反馈代码处理
对于反馈代码的处理就如 1 中所显示,反馈的代码中只有一段是包含我们想要的信息的因此需要将其截取出来然后在进行处理,本电机从第四位开始截取一共截取四位:
然后可以进行强制转化,将其转化为 10 进制数字显示。