西门子200系列PLC直流步进电机控制方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

直流步进电机plc控制方法
系统功能概述:
本系统采用PLC通过步进电机驱动模块控制步进电机运动。

当按下归零按键时,电机1和电机2回到零点(零点由传感器指示)。

当按下第一个电机运行按键时,第一个电机开始运行,直到运行完固定步数或到遇到零点停止。

当按下第二个电机运行按键时,第二个电机开始运行,运行完固定步数或遇到零点停止。

两电机均设置为按一次按键后方向反向。

电机运行时有升降速过程。

PLC输入点I0.0为归零按键,I0.1为第一个电机运行按键,I0.2为第二个电机运行按键,I0.3为第一个电机传感器信号反馈按键,I0.4为第二个电机传感器信号反馈按键。

PLC输出点Q0.0为第一个电机脉冲输出点,Q0.1为第二个电机脉冲输出点,Q0.2为第一个电机方向控制点,Q0.3为第二个电机方向控制点,Q0.4为电机使能控制点。

所用器材:
PLC:西门子S7-224xpcn及USB下载电缆。

编程及仿真用软件为V4.0 STEP 7 MicroWIN SP3。

直流步进电机2个,微步电机驱动模块2个。

按键3个。

24V开关电源一个。

导线若干。

各模块连接方法:
PLC与步进电机驱动模块的连接:
驱动模块中EN+、DIR+、CP+口均先接3k电阻,然后接24V 电源。

第一个驱动模块CP-接PLC的Q0.0,DIR-接PLC的Q0.2,EN-接PLC的Q0.4
第二个驱动模块CP-接PLC的Q0.1,DIR-接PLC的Q0.3,EN-接PLC的Q0.4
注意:
1、PLC输出时电压为24V,故和驱动器模块连接时,接了3k 电阻限流。

2、由于PLC处于PTO模式下只有在输出电流大于140mA时,才能正确的输出脉冲,故在输出端和地间接了200欧/2w下拉电阻,来产生此电流。

(实验室用的电阻功率不足,用200欧电阻时功率至少在24*24/200=2.88w,即用3w的电阻)
3、PLC与驱动模块连接时,当PLC输出低电平时不能将驱动模块电平拉低,故在EN-和DIR-上接了200欧/2W下拉电阻
驱动模块与电机接法:
驱动模块的输出端分别与电机4根线连接
电机传感器与PLC连接:
传感器电源接24v,信号线经过240欧电阻(试验中两个470电阻并联得到)与24v电源上拉后,信号线接到PLC的I0.3和I0.4
将各模块电源、地线接好。

PLC中输入输出各路M对应点均接地,
L+对应点均要接24V电源。

注意PLC右下角24V DC OUTPUT不
要接。

PLC程序介绍:
PLC程序中主要使用向导生成的电机控制函数来控制电机运动。

此向导使用方法如下:
首先打开软件,新建工程,选择工具->位置控制向导…,如下图
打开如下界面:选择配置s7-200PLC内置PTO/PWM操作,点击下一步,如下图
根据需要选择Q0.0或Q0.1,点击下一步,如下图
选择线性脉冲串输出(PTO),将下方使用高速计数器HSC0前的勾点上,点击下一步,如下图
输入电机此应用项目中最高电机速度(MAX_SPEED)和电机的启动/停止速度(SS_SPEED),默认是100000和5000,修改好了点击
下一步,如下图
输入电机加速和减速时间。

默认均为1000ms。

点击下一步,如下图
然后出现如下界面,选择新包络。

选项中可以选择相对位置和单速连续旋转,由于步进电机有加减速过程,故选择相对位置。

输入步0的目标速度,即运动时的限速,在下方的框中输入结束位置,由于是相对位置,故此处位置即为所要走的距离。

电机绘制包络,右方出现的梯形的图即为速度线。

改变左
下角的保罗定义符号名为MOTOR1,点击确认,
然后选择V存储区的地址范围,一般默认即可,点击下一步
点击完成。

这样,通过位置控制向导就生成了4个PTO函数,分别是
PTOx_CTRL、PTOx_RUN、PTOx_MAN、PTOx_LDPOS。

PTOx_CTRL子程序(控制)使能和初始化步进电机或伺服电机的PTO输出。

在程序中仅能使用该子程序一次,并保证每个扫描周期该子程序都被执行。

一直使用SM0.0作为EN输入的输入。

I_STOP(立即STOP)输入量为一个布尔量输入。

当输入为低电平时,PTO功能正常操作。

当输入变为高电平时,PTO立即终止脉冲输出。

D_STOP(减速STOP)输入量为一个布尔量输入。

当输入为低电平时,PTO功能正常操作。

当输入变为高电平时,PTO产生一个脉冲串将电机减速到停止。

DONE输出是一个布尔量输出。

高电平表示CPU已经执行完子程序。

当Done位为高电平时,Error字节以一个无错误代码或错误代码来报告是否正常完成。

若在向导中启用了HSC,则C_Pos参数包含以脉冲数表示的模块当前位置。

否则,当前位置将一直为0
PTOx_RUN子程序(运行包络)命令PLC在一个制定的保罗中执行运动操作,此包络存储在组态/包络表中。

接通EN位,使能该子程序。

确保EN位保持接通,直至Done 位指示该子程序完成。

接通START参数以初始化包络的执行。

对于每次扫描,当START参数接通且PTO当前未激活时,指令激活PTO。

要保证该
命令只发一次,使用边沿检测命令以脉冲触发START参数接通。

接通参数Abort,命令位控模块停止当前的包络,并减速直至电机停下。

PTOx_MAN子程序(手动模式)使PTO置为手动模式。

这可以是
电机在向导中制定的范围内以不同的速度启动、停止和运行。

如果启用了PTOx_MAN子程序,则不应执行其他任何PTOx_RUN指令。

允许RUN参数,命令PTO加速到指定速度。

即使电机在运行时,也可改变速度参数的值。

禁止参数RUN择命令PTO减速,直
至电机停止。

PTOx_LDPOS指令(装载位置)改变PTO脉冲计数器的当前位置
值为一个心智。

可以通过该指令为一个运动命令建立一个新的零位置。

本系统将电机1的PTO设置为Q0.0输出,使用高速计数器HSC0,最高电机速度2000HZ,启动/停止速度100HZ,加速500ms,减速500ms,步0的目标速度2000HZ,总位移8000脉冲,分配存储区为VB0到VB69。

可得到PTO0的包络表如下所示:
//----------------------------------------------------------------
//输出Q0.0 的PTO 包络表
//----------------------------------------------------------------
VB0 'PTOA' //
VW4 54 //FREQ
VD6 204800 //SS_SPEED
VD10 4096000 //MAX_SPEED
VD14 16#04000939 //K_ACC
VD18 16#84FFF6C7 //K_DEC
VB22 1 //NUMPROF
VW23 25 //OFFS_0
VB25 4 //包络0 的NUM_SEGS VB26 0 //保留。

VB27 0 //段0 的S_STEP
VB28 16#08 //S_PROP
VD29 +204800 //SFREQ
VD33 525 //加速的脉冲数VB37 0 //段1 的S_STEP VB38 16#04 //S_PROP
VD39 +4098089 //SFREQ
VD43 6948 //恒速的脉冲数
VB47 0 //段2 的S_STEP VB48 16#00 //S_PROP
VD49 -1 //SFREQ
VD53 526 //减速的脉冲数VB57 0 //段3 的S_STEP VB58 16#10 //S_PROP
VD59 +204800 //SFREQ
VD63 1 //最终减速的脉冲数
VB67 0 //保留。

VB68 0 //保留。

VB69 0 //保留。

由上表可知加速脉冲数为75057,存于VD33中。

恒速脉冲为49881,存于VD43中。

减速脉冲为75061,存于VD53中。

最终的减速的脉冲数为1,存于VD63中。

我们控制步进电机可以通过PTOx_CTRL和PTOx_RUN两个子程序。

电机控制过程中,加减速脉冲数不方便修改,因为线性加减速的指令并不清楚,所以只好修改恒速段的脉冲数。

唯一的限制是,总的脉冲数,必须大于加减速段+最终减速段脉冲数之和,也即恒速段的脉冲
不能小于1。

此处总的脉冲数,最小值应为525+526+1+1=1053个脉冲。

当然电机加减速时间如果较小,此脉冲数会变小。

电机2的PTO设置为Q0.1输出,使用高速计数器HSC3,最高电机速度20000HZ,启动/停止速度100HZ,加速500ms,减速500ms,步0的目标速度2000HZ,总位移10000脉冲,分配存储区为VB70到VB139。

可得到PTO0的包络表如下所示:
//----------------------------------------------------------------
//输出Q0.1 的PTO 包络表
//----------------------------------------------------------------
VB70 'PTOA' //
VW74 54 //FREQ
VD76 204800 //SS_SPEED VD80 40960000 //MAX_SPEED VD84 16#03000C13 //K_ACC
VD88 16#83FFF3ED //K_DEC VB92 1 //NUMPROF
VW93 25 //OFFS_0
VB95 4 //包络0 的NUM_SEGS VB96 0 //保留。

VB97 0 //段0 的S_STEP
VB98 16#08 //S_PROP
VD99 +204800 //SFREQ
VD103 100 //加速的脉冲数
VB107 0 //段1 的S_STEP
VB108 16#04 //S_PROP
VD109 +4111824 //SFREQ
VD113 9797 //恒速的脉冲数VB117 0 //段2 的S_STEP VB118 16#00 //S_PROP
VD119 -1 //SFREQ
VD123 102 //减速的脉冲数
VB127 0 //段3 的S_STEP VB128 16#10 //S_PROP
VD129 +204800 //SFREQ
VD133 1 //最终减速的脉冲数VB137 0 //保留。

VB138 0 //保留。

VB139 0 //保留。

电机1和电机2参数可根据实际需要修改。

使用步骤:
(1)在启动PTO0_RUN之前,计算出恒速段的脉冲数=目标脉数数-加减速脉冲数之和-1,填入包络表中的恒速位置;此系统中电机1恒速脉冲保存在VD43,电机2恒速脉冲数保存在VD113中。

(2)启动PTO0_RUN。

具体程序见附件中步进电机PLC控制.xps
程序流程图如下:。

相关文档
最新文档