步进电机,是一种将电脉冲转化为角位移的执行机构。一步一步的,步进式前进运行。步进电机需要脉冲控制。通常控制器发出脉冲信号,电压是3.3V、5V或24V。24V时需要串联2K左右电阻。
细分步数是指多少步数/转,就是控制器发多少个脉冲,步进电机转一圈。在通常情况下步进电机通过联轴器接减速器或者丝杠,接丝杠将旋转运动转变为直线运动。设PLC或控制器发出x个脉冲丝杠滑块前进y (mm),则表达公式为:
通过给控制器编程序就可以实现滑块的精确定位。我以西门子S7-200 PLC为例,利用Q0.0口进行步进电机的旋转控制。西门子S7-200 224XP晶体管输出类型的PLC有两路高速输出(继电器输出的PLC不具有此功能,选型时要注意)。输出口为Q0.0和Q0.1,可实现对步进电机的控制。首先PLC Q0.0口接2K欧电阻接入PUL+ ,PLC负极接PUL-。Q0.2接驱动器DIR+ ,PLC负极接DIR-。
下面我们进行PLC 224xp为例进行程序编写:以224XP晶体管输出型, Q0.0 进行高速脉冲输出。首先,我们要先了解s7 200关于Q0.0口脉冲输出的参数意义:PLS0_Cycle_Update | SM67.0 | PTO0/PWM0 更新周期值:1 = 写入新周期 |
PWM0_PW_Update | SM67.1 | PTO0/PWM0 更新脉冲宽度值:1 = 写入新脉冲宽度 |
PTO0_PC_Update | SM67.2 | PTO0 更新脉冲计数值:1 = 写入新脉冲计数 |
PLS0_TimeBase | SM67.3 | PTO0/PWM0 时间基准:0 = 1us,1 = 1ms/tick |
PWM0_Sync | SM67.4 | 同步更新 PWM0:0 = 异步更新;1 = 同步更新 |
PTO0_Op | SM67.5 | PTO0:0 = 单段操作;1 = 多段操作 |
PLS0_Select | SM67.6 | PTO0/PWM0 模式选择:0 = PTO;1 = PWM. |
PLS0_Enable | SM67.7 | PTO0/PWM0 启用:1 = 启用 |
编写PTO输出程序
子程序主要用于脉冲输出的监控、中断的开启、计数器的启动,为程序后续运行做准备工作。
3、下面程序是Q0.0口输出设置,主要是对SM67、SMW68、SMD72这几个特殊寄存器进行赋值。对SM67进行赋值,2#10000101,PTO输出,对应设置如下表: SM67.0 | PTO0/PWM0 更新周期值:1 = 写入新周期 |
SM67.1 | PTO0/PWM0 更新脉冲宽度值,主要用PWM输出,为PTO时,1或0 都无所谓。 |
SM67.2 | PTO0 更新脉冲计数值: 1 = 更新脉冲计数 |
SM67.3 | PTO0/PWM0 时间基准: 0 = 1us |
SM67.4 | 同步更新 PWM0:0 = 异步更新 |
SM67.5 | PTO0:0 = 单段操作 |
SM67.6 | PTO0/PWM0 模式选择:0 = PTO |
SM67.7 | PTO0/PWM0 启用:1 = 启用 |
设定脉冲周期,给SMW68赋值500,即周期是500us设定输出脉冲数,给SMD72赋值,即脉冲个数,当脉冲个数设置为-1时,即输出无限个脉冲。
4、当I0.0输入信号,Q0.0输出脉冲,以无限个脉冲输出,输出频率为20K。当I0.1输入信号,SM67赋值2#1010 0000,SM67.7为0,不启用,脉冲不输出。
现在将PLC、驱动器、步进电机线路接好,开始运行电机吧!I0.0接通,电机运转。I0.1接通停止。I0.0和I0.1通过安装旋转开关按钮进行控制。如果你想改变电机转速,在程序中改变SMW68的值(周期us),如果你想改变电机转向,通过PLC给DIR输入信号即可换向。在实际中,PLC根据传感器发来的信号,经过CPU内部程序加工计算,发出脉冲信号,不断改变脉冲数、脉冲频率、方向来实现对电机的转动角度、速度、方向的控制,这样可以实现对设备执行机构的控制。
在实际使用中,步进电机速度控制要经历缓起缓停这个过程,忽然以很大的速度启动、停止会造成冲击大,损伤电机、驱动器等设备。大家可以在step 7中的位置控制向导里进行设置包络线,这个会更加方便,省却自己一步一步写梯形图的时间。
位置控制向导使用起来相当方便。只要设置好后,生产一个子程序。只要调用子程序就可以按照包络线的设置进行步进电机的控制,这里不在详细说明。