gk-auto 发表于 2018-12-19 19:31:33

西门子S7-200在步进电机定位控制中的应用

01 引言PLC输出的集成脉冲可通过步进电机进行定位控制。关于定位控制,调节和控制操作之间存在一些区别。步进电机不需要连续的位置控制,而在控制操作中得到应用。在以下的程序例子中,借助于CPU214所产生的集成脉冲输出,通过步进电机来实现相对的位置控制。虽然这种类型的定位控制不需要参考点,本例还是粗略地描述了确定参考点的简单步骤。因为实际上它总是相对一根轴确定一个固定的参考点,因此,用户借助于一个输入字节的对偶码(Dual coding)给CPU指定定位角度。用户程序根据该码计算出所需的定位步数,再由CPU输出相关个数的控制脉冲。02系统结构如图1所示。http://5b0988e595225.cdn.sohucs.com/images/20181219/93e709a0377a43b48847046558c455b2.jpeg图1 系统结构03硬件配置如表1所示。http://5b0988e595225.cdn.sohucs.com/images/20181219/6c290e6008cb46d1b22d944c2ac4ce89.jpeghttp://5b0988e595225.cdn.sohucs.com/images/20181219/97e65d94c54c423b861a324ff16c3a71.jpeg04软件结构4.1 PLC的输入信号与输出信号PLC的部分输入信号与输出信号,以及标志位如表2所示。4.2 系统软件设计PLC的程序框图如图2所示。http://5b0988e595225.cdn.sohucs.com/images/20181219/43c6b8e2de6f47d09f7e973f7acb1850.jpeg4.3 初始化在程序的第一个扫描周期(SM0.1=1),初始化重要参数。选择旋转方向和解除联锁。4.4 设置和取消参考点如果还没有确定参考点,那么参考点曲线应从按“START”按扭(I1.0)开始。CPU有可能输出最大数量的控制脉冲。在所需的参考点,按“设置/取消参考点”开关(I1.4)后,首先调用停止电机的子程序。然后,将参考点标志位M0.3置成1,再把新的操作模式“定位控制激活”显示在输出端Q1.0。如果I1.4的开关已激活,而且“定位控制”也被激活(M0.3=1),则切换到“参考点曲线”参考点曲线。在子程序1中,将M0.3置成0,并取消“定位控制激活”的显示(Q1.0=0)。此外,控制还为输出最大数量的控制脉冲做准备。当再次激活I1.4开关,便在两个模式之间切换。如果此信号产生,同时电机在运转,那么电机就自动停止。实际上,一个与驱动器连接的参考点开关将代替手动操作切换开关的使用,所以,参考点标志能解决模式切换。4.5 定位控制如果确定了一个参考点(M0.3=1)而且没有联锁,那么就执行相对的定位控制。在子程序2中,控制器从输入字节IBO读出对偶码方式的定位角度后,再存入字节MB11。与此角度有关的脉冲数,根据下面的公式计算:N=φ/360°×S式中:N-控制脉冲数φ-旋转角度S-每转所需的步数该程序所使用的步进电机采用半步操作方式(S=1000)。在子程序3中循环计算步数,如果现在按“START”按钮(I1.0),CPU将从输出端Q0.0输出所计算的控制脉冲个数,而且电机将根据相应的步数来转动,并在内部将“电机转动”的标志位M0.1置成1。在完整的脉冲输出之后,执行中断程序0,此程序将M0.1置成0,以便能够再次起动电机。4.6 停止电机按“STOP”(停止)按扭(I1.1),可在任何时候停止电机。执行子程序0中与此有关的指令。5 程序和注释//标题:用脉冲输出进行定位控制//主程序LD SM0.1//仅首次扫描周期SM0.1才为1。R M0.0,128//MD0至MD12复位ATCH 0,19//把中断程序0分配给中断事件19(脉冲串终止)ENI//允许中断//脉冲输出功能的初始化MOVW 500,SMW68//脉冲周期T=500usMOVW 0,SMW70//脉冲宽度为0(脉冲调制)MOVD 429496700,SMD72//为参考点设定的最大脉冲数//设置逆时针旋转LDN M0.1 //若电机停止A I1.5 //且旋转方向开关=1S Q0.2,1 //则逆时针旋转(Q0.2=1)//设置顺时针旋转LDN M0.1 //若电机停止AN I1.5 //且旋转方向开关=0R Q0.2,1 //则逆时针旋转(Q0.2=0)//联锁LD I1.1//若按“STOP”(停止)按钮S M0.2,1 //则激活联锁(M0.2=1)//解除联锁LDN I1.1//若“START”(启动)按钮松开AN I1.0//且“STOP”(停止)按钮松开R M0.2,1 //则解除联锁(M0.2=0)//确定操作模式(参考点定位控制)LD I1.4//若按“设置/取消参考点”按钮EU //上升沿CALL 1 //则调用子程序1//启动电机LD I1.0//若按“START”(启动)按钮EU //上升沿AN M0.1 //且电机停止AN M0.2 //且无联锁AD≥ SMD72,1//且步数≥1,则MOVB 16#85,SMB67//置脉冲输出功能(PTO)的控制位PLS 0 //启动脉冲输出(Q0.0)S M0.1,1//“电机运行”标志位置位(M0.1=1)//定位控制LD M0.3//若已激活“定位控制” 操作模式AN M0.1 //且电机停止CALL 2 //则调用子程序2//停止电机LD I1.1//若按“STOP”(停止)按钮EU //上升沿A M0.1 //且电机运行,则CALL 0 //则调用子程序0MEND //主程序结束//子程序1SBR 0 //子程序0停止电机MOVB 16#CB,SMB67//激活脉宽调制PLS 0 //停止输出脉冲到Q0.0R M0.1,1//“电机运行”标志位复位(M0.1=0)RET //子程序0结束SBR1//子程序1,“确定操作模式”LD M0.1 //若电机运行CALL 0//则调用子程序0,停止电机//申请“参考点曲线”LD M0.3//若已激活“定位控制”,则R M0.3,1//参考点标志位;复位(M0.3=0)R Q1.0,1//取消“定位控制激活”信息(Q1.0=0)MOVD 429496700,SMD72//为新的“参考点曲线”设定最大的脉冲数。CRET//条件返回到主程序。//申请“定位控制”LDN M0.3//若未设置参考点(M0.3=0),则S M0.3,1//参考点标志位置位(M0.3=1)S Q1.0,1//输出“定位控制激活”信息(Q1.0=1)RET //子程序1结束//子程序2SBR2 //子程序2,“定位控制”MOVB IB0,MB11//把定位角度从IBO拷到MD8的最低有效字节MB11。R M8.0,24//MB8至MB10清零DIV 9,MD8//角度/9=q1+r1MOVW MW8,MW14//把r1存入MD12MUL 25,MD8//q1×25→MD8MUL 25,MD12DIV 9,MD12// r1×25/9= q2+r2CALL 3//在子程序3中循环步数MOVW 0,MW12 //删除r2+D MD12,MD8//把步数写入MD8MOVD MD8,SMD72//把步数传到SMD72RET //子程序2结束//子程序3SBR3 //子程序3,“循环步数”LDW≥MW12,5 //如果r2≥5/9,则INCW MW14 //步数增加1。RET//子程序3结束//中断程序0,“脉冲输出终止”INT0 //中断程序0R M0.1,1//“电机运行”标志位复位(M0.1=0)RET //子程序0结束6 结束语通过对硬件和软件的合理设计,用较为价廉的西门子S7-200系列PLC作为核心控制部件,构成的定位系统能够达到精确定位的目的。特别应指出的是通过灵活、巧妙的应用PLC的指令系统,可使系统实现高精度定位。

淡然_q31Nx 发表于 2018-12-19 19:40:18

感恩无私的分享与奉献 :)

japan2046 发表于 2018-12-19 19:48:14

大家都不容易!

cocokona 发表于 2018-12-19 19:53:21

看完楼主的帖子,我的心情竟是久久不能平息,受教了

Abercormfus 发表于 2018-12-19 19:53:26

楼主加油,我们都看好你哦。

章一文 发表于 2018-12-19 20:10:11

真是难得给力的帖子啊。

Hz20160713 发表于 2018-12-19 20:11:54

看完楼主的帖子,我的心情竟是久久不能平息,受教了

奔跑的迷鹿 发表于 2018-12-19 20:22:32

感恩无私的分享与奉献 :)

惠临编织 发表于 2018-12-19 20:25:21

好东西一定要看看!

刘1990 发表于 2018-12-19 20:27:06

我顶,我顶,我顶顶顶
页: [1] 2 3 4
查看完整版本: 西门子S7-200在步进电机定位控制中的应用