PWM向导控制在步进电机中的应用
2015-06-30马新荣
马新荣
[摘 要]本文介绍了PWM向导控制的设定方法,并阐述了利用PWM实现步进电机控制的系统设计。
[关键词]PWM;控制;步进电机
[DOI]10.13939/j.cnki.zgsc.2015.02.031
1 控制要求
步进电机选用Kinko公司的2S86Q-03080 两相双极微步型电机,驱动器选用KINCO-2M530。设置驱动器细分为10,输出相电流为3.0A。
按下正转启动按钮,步进电机顺时针旋转,转一圈用时5秒,按下反转启动按钮,步进电机逆时针旋转,转一圈用时10秒,并且步进电机在任何时刻都能够从正转变为反转或从反转变为正转,按下停止按钮,步进电机停止。
2 控制方案
步进电机是一种将电脉冲转化为角位移或线位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。通过控制脉冲个数来控制角位移量或线位移量,从而达到准确定位的目的;通过控制脉冲频率来控制电机转动的速度,从而达到调速的目的。
驱动器细分为10,则设定DIP1=OFF、DIP2=OFF、DIP3=OFF、DIP4=ON,输出相电流为3.0A,则设定DIP6=OFF、DIP7=OFF、DIP8=ON。
2S86Q-03080型步进电机的步进角是1.8°,而驱动器细分为10,于是每来一个脉冲,步进电机旋转的角度为0.18°,旋转一圈就需要2000个脉冲。
旋转角=步进角/细分数=1.8°/10=0.18°
旋转一圈脉冲数=2π旋转角=360°0.18°=2000
PWM输出周期=转一圈所需时间/转一圈所需脉冲数
所以本步进电机正转时的PWM输出周期=2500us/脉冲,反转时的PWM输出周期=5000us/脉冲。
使用PWM控制步进电机时必须使用晶体管输出型CPU,于是控制器选用S7-200 Smart,采用开关量控制,输入量有正转启动(I0.0)、反转启动(I0.3)和停止(I0.1),共3个输入点;输出量包括脉冲输出端(Q0.0)、方向控制端(Q0.4),共2个输出点。控制原理如图1所示,图中2k电阻是限流电阻,S7-200 Smart PLC的工作电源是直流24V。
图1 步进电机控制原理
3 PWM向导控制的设定
S7-200 Smart每个向导均显示一个树结构,对于每个向导,都必须完成全部所需组态并生成代码,成功生成代码后,向导将程序块存储在项目树中“程序块”(Program Blocks)文件夹内的“向导”(Wizards)文件夹下。同样,向导将数据块存储在项目树中“数据块”(Data Block)文件夹内的“向导”(Wizards)文件夹下,将符号存储在“符号表”(Symbol Table)文件夹内的“向导”(Wizards)文件夹下。
打开PWM向导有两种方法:①在“工具”(Tools)菜单功能区的“向导”(Wizards)区域单击“PWM” 按钮;②在项目树中打开“向导”(Wizards)文件夹,然后双击“PWM”或选中“PWM”并按 Enter 键。
PWM向导根据输入生成一个指令,然后可将该指令放置到程序中以控制脉宽调制(PWM)输出的占空比,PWM向导的脉冲输出端是固定的也是可选的,脉冲输出端可以选用Q0.0、Q0.1和Q0.3,本控制选用Q0.0作为脉冲输出端,所以选择要组态的脉冲“PWM0”。为了计算出的输出周期和占空比都为整数,输出时基选择“微秒”,设定完成后会自动生成PWMx_RUN 子例程。
3.1 PWMx_RUN 子例程介绍
PWMx_RUN 子例程PWM提供了占空比可变的连续输出,允许用户通过改变脉冲宽度(从0到周期时间的脉冲宽度)来控制输出占空比。PWMx_RUN指令的框图如图2所示。
图2 PWMx_RUN指令框
EN使能端,一般直接接SM0.0。RUN运行端,使输出产生开和关的作用。若RUN的触发端接通,则PWMx_RUN指令有输出。注意:不等于不管就是关。 Cycle 输入是一个字值,定义脉宽调制(PWM)输出的周期。如果时基为毫秒,则允许的范围为2~65535;如果时基为微秒,则允许的范围为10~65535。
Pulse 输入是一个字值,用于定义 PWM 输出的脉宽(占空比)。允许的取值范围为 0~65535 个时基单元,时基是在向导中指定的,单位为微秒或毫秒。
Error 是 PWMx_RUN 子例程返回的字节值,用于指示执行结果。“0”代表无错误,正常完成;“131”代表脉冲发生器已由另一个 PWM 或运动轴使用,或者时基变化非法。
3.2 使用PWMx_RUN 子例程注意事项
(1)为了便于程序编写EN使能端最好接SM0.0,当PWMx_RUN 正在输出的時候断开EN就没法停下来了,EN是产生控制的作用。
(2)Cycle、Pulse的数据类型是字,操作数只能使用IW、QW、VW、MW、SMW、SW、T、C、LW、AC、AIW、*VD、*AC、*LD、常数。
(3)PWM支持的最大脉冲速率为 100kHz。
(4)要改变步进电机的转速只需改变输出周期和占空比,占空比一般都设为50%,使发出的脉冲为方波。
(5)要使步进电机停止就需要断开RUN运行端。
(6)PWM控制步进电机按照预设要求自行停止比较困难和麻烦。
4 控制程序
Q0.4控制步进电机的方向(DIR端口),Q0.4没有输出和有输出分别代表两种方向。参考程序如图3所示。
Always_On代表SM0.0,它始终为常闭触点。当V0.0有输出时,步进电机以400个脉冲/s的速度旋转;当V0.1有输出时,步进电机以200个脉冲/s的速度旋转。
图3 步进电机控制程序
参考文献:
[1]陈瑞阳,席巍,宋柏青.西门子工业自动化项目设计实践[M].北京:机械工业出版社,2009.
[2]张扬.S7-200PLC原理与应用系统设计[M].北京:机械工业出版社,2007.