基于PLC的步进电机多段速控制方法研究
2017-10-23
(山东科技大学机械电子工程学院 山东 青岛 266590)
基于PLC的步进电机多段速控制方法研究
于兰浩董汉政王凤娇王贺
(山东科技大学机械电子工程学院山东青岛266590)
一、引言
在现在自动化生产线中,经常需要对某一器件的位置进行控制,比如上下料机械手的来回移动,我们需要让机械手在指定位置准确停止。在开环控制中,常用的运动执行部件是步进电机,它是一种将电脉冲转换为角位移的执行机构。而运动控制装置一般为PLC,因为PLC可以输出频率非常高的脉冲串,而这是一般单片机所不能的。故选用PLC加步进电机可以实现非常精确的位置控制,在一般工业场合可以满足需要。
二、步进电机(stepping motor)简介
步进电机是一种运动执行部件,它可以将电脉冲信号转换为角位移,其特点是没有积累误差,因而广泛用于各种开环控制。当步进电机接受到一个脉冲信号,它就驱动步进电机按照设定的方向旋转一个固定的角度,因而我们可以通过发送脉冲的个数来控制角位移量,从而达到准确定位的目的。同时可以控制脉冲频率来控制电动机的速度和加速度,从而达到调速目的。
步进电机并不是直接接到PLC上的,而是要有一个电子装置驱动,这个装置称为步进电机驱动器,它把PLC发出的信号进行放大以驱动步进电机。因此典型的步进电机驱动系统由三部分组成:控制器,由单片机或者PLC实现;驱动器;步进电机。
三、PLC控制程序设计
本文我们选用的是西门子s7-200PLC,控制原理是相通的,选用三菱、ABB的PLC同样可以达到控制目的。S7-200晶体管输出型PLC的Q0.0和Q0.1口可以输出高速脉冲串,频率达到20KHz,并不受扫描频率的影响。Q0.0,Q0.1均可以输出PTO或者PWM脉冲,PTO脉冲可以用来输出周期可调、占空比固定为50%的脉冲。
脉冲输出指令格式如图1所示,Q0X端指定Q0.0和Q0.1哪个端口输出脉冲串,并使其普通输出功能失效。相关的特殊标志位寄存器表1:
图1
Q0.0Q0.1功能说明SMB67SMB77控制PTO/PWM脉冲输出基本功能SMB68SMB78控制周期值SMB72SMB82控制输出脉冲数SMB168SMB178多管段PTO包络表起始字节地址SMB67.0SMB77.0PTO/PWM刷新周期值:0=不刷新1=刷新SMB67.1SMB77.1PWM刷新脉冲宽度值:0=不刷新1=刷新SMB67.2SMB77.2PTO脉冲刷新计数值:0=不刷新1=刷新SMB67.3SMB77.3时基选择:0=1us1=1msSMB67.4SMB77.4PWM更新方法:0=异步更新1=同步更新SMB67.5SMB77.5PTO操作:0=单段操作1=多段操作SMB67.6SMB77.6PTO/PWM模式选择0=PTO1=PWMSMB67.7SMB77.7PTO/PWM允许:0=禁止1=允许
要实现N段速度的控制,就要在SMB168或者SMB178中指定包络表起始字节地址,然后根据速度要求设置包络表的相关参数。为简练起见,以1段速为例说明包络结构如表2:
表2 包络表结构
图2
要实现如图2的加速,匀速,减速过程:起始和终止的脉冲频率为2Khz,最大脉冲频率为10KHz,加速段约200个脉冲,匀速段约3600个脉冲,减速段约200个脉冲。需要计算出表2中各个字节的值。以第一段为例,初始周期(1/频率)为500us,脉冲增量为:(结束周期-初始周期)/脉冲数,即为-2us,脉冲数为200个。然后根据表1表2内容即可设置相关寄存器内容,编写程序。采用STL语句表编程,主程序,子程序如下:
主程序:
LD SM0.1
R Q0.0,1
CALL SBR_0:SBR0
子程序:
LD SM0.0 MOVD 200,VD205
MOVB 16#A0,SMB67 MOVW 100,VW209
MOVW 200,VW168 MOVW 0,VW211
PLS 0 MOVD 3600,VD213
MOVB 3,VB200 MOVW 100,VW217
MOVW 500,VW201 MOVW 2,VW219
MOVW -2,VW203 MOVD 200,VD221
四、结束语
经过实验,该方法可以平稳实现步进电机三段速控制,根据该原理可以实现其它多段速控制,在一般工业场合都能满足要求。若要实现闭环控制,可以在电机轴装编码器,进行相应调整。
于兰浩(1993-)男,山东科技大学机械电子工程学院,在读硕士研究生。