S7200PLC在步进电机定位控制中的应用文档格式.docx
《S7200PLC在步进电机定位控制中的应用文档格式.docx》由会员分享,可在线阅读,更多相关《S7200PLC在步进电机定位控制中的应用文档格式.docx(7页珍藏版)》请在冰豆网上搜索。
PLC的部分输入信号与输出信号,以及标志位如表2所示。
4.2系统软件设计
PLC的程序框图如图2所示。
4.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程序和注释
//标题:
用脉冲输出进行定位控制
//主程序
LDSM0.1
//仅首次扫描周期SM0.1才为1。
RM0.0,128
//MD0至MD12复位
ATCH0,19
//把中断程序0分配给中断事件19(脉冲串终止)
ENI
//允许中断
//脉冲输出功能的初始化
MOVW500,SMW68
//脉冲周期T=500us
MOVW0,SMW70
//脉冲宽度为0(脉冲调制)
MOVD0,SMD72
//为参考点设定的最大脉冲数
//设置逆时针旋转
LDNM0.1//若电机停止
AI1.5//且旋转方向开关=1
SQ0.2,1//则逆时针旋转(Q0.2=1)
//设置顺时针旋转
ANI1.5//且旋转方向开关=0
RQ0.2,1//则逆时针旋转(Q0.2=0)
//联锁
LDI1.1
//若按“STOP”(停止)按钮
SM0.2,1//则激活联锁(M0.2=1)
//解除联锁
LDNI1.1
//若“START”(启动)按钮松开
ANI1.0
//且“STOP”(停止)按钮松开
RM0.2,1//则解除联锁(M0.2=0)
//确定操作模式(参考点定位控制)
LDI1.4
//若按“设置/取消参考点”按钮
EU//上升沿
CALL1//则调用子程序1
//启动电机
LDI1.0
//若按“START”(启动)按钮
ANM0.1//且电机停止
ANM0.2//且无联锁
AD≥SMD72,1
//且步数≥1,则
MOVB16#85,SMB67
//置脉冲输出功能(PTO)的控制位
PLS0//启动脉冲输出(Q0.0)
SM0.1,1
//“电机运行”标志位置位(M0.1=1)
//定位控制
LDM0.3
//若已激活“定位控制”操作模式
CALL2//则调用子程序2
//停止电机
AM0.1//且电机运行,则
CALL0//则调用子程序0
MEND//主程序结束
//子程序1
SBR0//子程序0停止电机
MOVB16#CB,SMB67
//激活脉宽调制
PLS0//停止输出脉冲到Q0.0
RM0.1,1
//“电机运行”标志位复位(M0.1=0)
RET//子程序0结束
SBR1
//子程序1,“确定操作模式”
LDM0.1//若电机运行
CALL0
//则调用子程序0,停止电机
//申请“参考点曲线”
//若已激活“定位控制”,则
RM0.3,1
//参考点标志位;
复位(M0.3=0)
RQ1.0,1
//取消“定位控制激活”信息(Q1.0=0)
//为新的“参考点曲线”设定最大的脉冲数。
CRET
//条件返回到主程序。
//申请“定位控制”
LDNM0.3
//若未设置参考点(M0.3=0),则
SM0.3,1
//参考点标志位置位(M0.3=1)
SQ1.0,1
//输出“定位控制激活”信息(Q1.0=1)
RET//子程序1结束
//子程序2
SBR2//子程序2,“定位控制”
MOVBIB0,MB11
//把定位角度从IBO拷到MD8的最低有效字节MB11。
RM8.0,24
//MB8至MB10清零
DIV9,MD8
//角度/9=q1+r1
MOVWMW8,MW14
//把r1存入MD12
MUL25,MD8
//q1×
25→MD8
MUL25,MD12
DIV9,MD12
//r1×
25/9=q2+r2
CALL3
//在子程序3中循环步数
MOVW0,MW12//删除r2
+DMD12,MD8
//把步数写入MD8
MOVDMD8,SMD72
//把步数传到SMD72
RET//子程序2结束
//子程序3
SBR3//子程序3,“循环步数”
LDW≥MW12,5//如果r2≥5/9,则
INCWMW14//步数增加1。
RET
//子程序3结束
//中断程序0,“脉冲输出终止”
INT0//中断程序0
6结束语
通过对硬件和软件的合理设计,用较为价廉的西门子S7-200系列PLC作为核心控制部件,构成的定位系统能够达到精确定位的目的。
特别应指出的是通过灵活、巧妙的应用PLC的指令系统,可使系统实现高精度定位。