#S7200直流步进电机plc控制方法.docx
- 文档编号:27549804
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:13
- 大小:518.80KB
#S7200直流步进电机plc控制方法.docx
《#S7200直流步进电机plc控制方法.docx》由会员分享,可在线阅读,更多相关《#S7200直流步进电机plc控制方法.docx(13页珍藏版)》请在冰豆网上搜索。
#S7200直流步进电机plc控制方法
直流步进电机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.0STEP7MicroWINSP3。
直流步进电机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右下角24VDCOUTPUT不要接。
PLC程序介绍:
PLC程序中主要使用向导生成的电机控制函数来控制电机运动。
此向导使用方法如下:
首先打开软件,新建项目,选择工具->位置控制向导…,如下图
打开如下界面:
选择配置s7-200PLC内置PTO/PWM操作,点击下一步,如下图
根据需要选择Q0.0或Q0.1,点击下一步,如下图
选择线性脉冲串输出 输入电机此应用项目中最高电机速度 输入电机加速和减速时间。 默认均为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 程序流程图如下: (63.74K>该附件被下载次数292
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- S7200 直流 步进 电机 plc 控制 方法