|
步进电机的定位控制
plc输出的集成脉冲可通过步进电机进行定位控制。关于定位控制,调节和控制操作之间存在一些区别。步进电机不需要连续的位置控制,而在控制操作中得到应用。在以下的程序例子中,借助于cpu214所产生的集成脉冲输出,通过步进电机来实现相对的位置控制。虽然这种类型的定位控制不需要参考点,本例还是粗略地描述了确定参考点的简单步骤。因为实际上它总是相对一根轴确定一个固定的参考点,因此,用户借助于一个输入字节的对偶码(dual coding)给cpu指定定位角度。用户程序根据该码计算出所需的定位步数,再由cpu输出相关个数的控制脉冲。
1、 系统结构 如图1所示:
图1 系统结构
2、 硬件配置 如表1所示:
3、软件结构
3.1 plc的输入信号与输出信号
plc的部分输入信号与输出信号,以及标志位如表2所示。
3.2 系统软件设计
plc的程序框图如图2所示。
3.3 初始化
在程序的第一个扫描周期(sm0.1=1),初始化重要参数。选择旋转方向和解除联锁。
3.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开关,便在两个模式之间切换。如果此信号产生,同时电机在运转,那么电机就自动停止。
实际上,一个与驱动器连接的参考点开关将代替手动操作切换开关的使用,所以,参考点标志能解决模式切换。
3.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,以便能够再次起动电机。
3.6 停止电机 按“stop”(停止)按扭(i1.1),可在任何时候停止电机。执行子程序0中与此有关的指令。
4、 程序和注释
//标题:用脉冲输出进行定位控制
//主程序
ld sm0.1 //仅首次扫描周期sm0.1才为1。
r m0.0,128 //md0至md12复位
atch 0,19 //把中断程序0分配给中断事件19(脉冲串终止)
eni //允许中断
//脉冲输出功能的初始化
movw 500,smw68 //脉冲周期t=500us
movw 0,smw70 //脉冲宽度为0(脉冲调制)
movd 429496700,smd72 //为参考点设定的最大脉冲数
//设置逆时针旋转
ldn m0.1 //若电机停止
a i1.5 //且旋转方向开关=1
s q0.2,1 //则逆时针旋转(q0.2=1)
//设置顺时针旋转
ldn m0.1 //若电机停止
an i1.5 //且旋转方向开关=0
r 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 //则调用子程序0
mend //主程序结束
//子程序1
sbr 0 //子程序0停止电机
movb 16#cb,smb67 //激活脉宽调制
pls 0 //停止输出脉冲到q0.0
r 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结束
//子程序2
sbr2 //子程序2,“定位控制”
movb ib0,mb11 //把定位角度从ibo拷到md8的最低有效字节mb11。
r m8.0,24 //mb8至mb10清零
div 9,md8 //角度/9=q1+r1
movw mw8,mw14 //把r1存入md12
mul 25,md8 //q1×25→md8
mul 25,md12
div 9,md12 // r1×25/9= q2+r2
call 3
//在子程序3中循环步数
movw 0,mw12 //删除r2
+d md12,md8 //把步数写入md8
movd md8,smd72 //把步数传到smd72
ret //子程序2结束
//子程序3
sbr3 //子程序3,“循环步数”
ldw≥mw12,5 //如果r2≥5/9,则
incw mw14 //步数增加1。
ret
//子程序3结束
//中断程序0,“脉冲输出终止”
int0 //中断程序0
r m0.1,1 //“电机运行”标志位复位(m0.1=0)
ret //子程序0结束
|
基于PLC的步进电机的开环控制系统设计 一、控制要求:
⑴ 能够实现步进电机的起动和停止、正转和反转及改变转速。
⑵ 能够实现步进电机的单四拍、双四拍、单双八拍运行。
⑶ 当按下按钮SB1时,步进电机以单四拍方式和500MS/步的频率顺时针方向运行30步后停止;
当按下按钮SB2时,步进电机以单四拍方式和500MS/步的频率逆时针方向运行30步后停止;
当按下按钮SB3时,步进电机以双四拍方式和500MS/步的频率顺时针方向运行30步后停止;
当按下按钮SB4时,步进电机以双四拍方式和500MS/步的频率和逆时针方向运行30步后停止;
当按下按钮SB5时,步进电机以单双八拍方式和500MS/步的频率顺时针方向运行30步后停止;
当按下按钮SB6时,步进电机以单双八拍方式和500MS/步的频率逆时针方向运行30步后停止;
任何时刻按下按钮SB7,步进电机停止。
二、设计方案论证及电路图 (PLC的输入输出接线图、编程元件地址分配表、硬件组态、控制程序)
2.1 PLC的输入输出接线图:
附图一 控制两相步进电动机正反转控制线路接线图 2.2编程元件地址分配表:
PlC编程元件的地址分配及相应符号表
2.3硬件组态:
PLC硬件组态表:
2.4控制程序:
※线性化控制程序(双四拍):
|
|
| |
回复引用举报 |
| 玻璃的心 |
个人主页
给TA发消息
加TA为好友 发表于:2010-12-24 20:21:18 8楼 |
| |
以上为线性化编程,有些朋友喜欢结构化编程,这里再给出结构化编程:
|
|
| |
回复引用举报 |
| 玻璃的心 |
个人主页
给TA发消息
加TA为好友 发表于:2010-12-24 20:43:54 9楼 |
| |
② 结构化化控制程序(单四拍):
※结构化化控制程序(单四拍):
@FC1输出符号表
@FC1输入符号表
★结构化OB1主控制程序:
|
|
| |
回复引用举报 |
| Piston |
个人主页
给TA发消息
加TA为好友 发表于:2010-12-24 22:48:48 10楼 |
| |
利用松下FP1可编程序控制器可以方便地实现对电机速度和位置的控制,方便可靠地进行各种步进电机的操作,完成各种复杂的工作,加速了机电一体化的实现。
控制方法及思路:
1、FP1的特殊功能: (1) 脉冲输出 FP1的输出端Y7可输出脉冲,脉冲频率可通过软件编程进行调节,其输出频率范围为360Hz~5kHz。 (2) 高速计数器(HSC) FP1内部有高速计数器,可同时输入两路脉冲,最高计数频率为10kHz,计数范围-8388608~+8388607。 (3) 输入延时滤波 FP1的输入端采用输入延时滤波,可防止因开关机械抖动带来的不可靠性,其延时时间可根据需要进行调节,调节范围为1ms~128ms。 (4) 中断功能 FP1的中断有两种类型,一种是外部硬中断,一种是内部定时中断。
2、步进电机的速度控制: FP1有一条SPD0指令,该指令配合HSC和Y7的脉冲输出功能可实现速度及位置控制。速度控制梯形图见图1,控制方式参数见图2,脉冲输出频率设定曲线见图3,梯形图程序见图4。
3、控制系统的程序运行
关于此控制系统的接线:plc的Y7输出的脉冲作为步进电机的时钟脉冲,经驱动器产生节拍脉冲,控制步进电机运转。同时Y7接至PLC的输入接点X0,并经X0送至PLC内部的HSC。HSC计数Y7的脉冲数,当达到预定值时发生中断,使Y7的脉冲频率切换至下一参数,从而实现较准确的位置控制。实现这一控制的梯形图及外部接线图分别见图4、图5。
控制系统的运行程序:第一句是将DT9044和DT9045清零,即为HSC进行计数做准备;第二句~第五句是建立参数表,参数存放在以DT20为首地址的数据寄存器区;最后一句是启动SPD0指令,执行到这句则从DT20开始取出设定的参数并完成相应的控制要求。
由第一句可知第一个参数是K0,是PULSE方式的特征值,由此规定了输出方式。第二个参数是K70,对应脉冲频率为500Hz,于是Y7发出频率为500Hz的脉冲。第三个参数是K1000,即按此频率发1000个脉冲后则切换到下一个频率。而下一个频率即最后一个参数是K0,所以当执行到这一步时脉冲停止,于是电机停转。故当运行此程序时即可使步进电机按照规定的速度、预定的转数驱动控制对象,使之达到预定位置后自动停止。
|
|
| |
回复引用举报 |
| zhang5114210 |
个人主页
给TA发消息
加TA为好友 发表于:2010-12-26 11:51:15 21楼 |
| |
一台很小的简单设备 利用无锡信捷的XC5-24MT加文本显示屏OP320A控制两台设备四台步进电机的正反转 步进电机选用的是常州合泰的步进电机及驱动器(电机:28BYGH501 驱动器BQM201M 另一个要求比较精确的驱动器采用金坛四海的 SH2034D驱动器)加脚踏开关、电磁铁等。设备动作 两台步进 同时转 同时停 (步进1正转2圈 步进2反转0.5圈)然后电磁铁动作 然后两台步进同时反转回初始位置
|
|
| |
回复引用举报 |
| zhang5114210 |
个人主页
给TA发消息
加TA为好友 发表于:2010-12-26 11:56:55 26楼 |
| |
文本显示屏的 '’'’'’'’'’'’'’
|
S7-200 PLC PTO组态步骤:
1. 为S7-200 PLC选择选项组态板载PTO/PWM操作。
2. 选择Q0.0或Q0.1,组态作为PTO的输出。
3. 从下拉对话框中选择线性脉冲串输出(PTO)。
4. 若您想监视PTO产生的脉冲数目,点击复选框选择使用高速计数器。
5. 在对应的编辑框中输入MAX_SPEED和SS_SPEED速度值。
6. 在对应的编辑框中输入加速和减速时间。
7. 在移动包络定义界面,点击新包络按钮允许定义包络。选择所需的操作模式。
对于相对位置包络:输入目标速度和脉冲数。然后,您可以点击绘制步按钮,查看移动的图形描述。
若需要多个步,点击新建步按钮并按要求输入步信息。
对于单速连续转动:在编辑框中输入单速值。
若您想终止单速连续转动,点击子程序编程复选框,并输入停止事件后的移动脉冲数。
8. 根据移动的需要,您可以定义多个包络和多个步。
9. 选择完成结束向导。
|
|
|
|
|
|
|