老师,你们好,我在用西门子-200驱动一个步进电机。我现在能让他动起来了,我想用向导让它进行一个加速 匀速 减速的过程,NETWORK 1 // 用于多段脉冲串操作的主程序(PTO)
// 首次扫描时,将映像寄存器位设为低
// 并调用子程序0
LD SM0.1
R Q0.0 1
CALL SBR_0
NETWORK 1 // 子程序0开始
// 预载PTO轮廓表
LD SM0.0
MOVB 3 VB500 // 将轮廓表段数设为3
// 段1:
MOVW +500 VW501 // 将段1的初始周期设为500毫秒
MOVW -2 VW503 // 将段1的闹芷谏栉?2毫秒
MOVD +200 VD505 // 将段1中的脉冲数设为200
// 段2:
MOVW +100 VW509 // 将段2的初始周期设为100毫秒
MOVW +0 VW511 // 将段2的闹芷谏栉?毫秒
MOVD +3400 VD513 // 将段2中的脉冲数设为3400
// 段3:
MOVW +100 VW517 // 将段3的初始周期设为100毫秒
MOVW +1 VW519 // 将段3的闹芷谏栉?毫秒
MOVD +400 VD521 // 将段3中的脉冲数设为400
NETWORK 2
LD SM0.0
MOVB 16#A8 SMB67 // 设置控制字节:
// - 选择PTO操作
// - 选择多段操作
// - 选择毫秒增加
// - 启用PTO功能
MOVW +500 SMW168 // 将轮廓表的该起始地址
// 指定为V500。
ATCH INT_0 19 // 将中断例行程序0定义为
// 处理PTO完成中断的中断。
ENI // 全局中断启用
PLS 0 // 激活PTO操作,PLS0 => Q0.0
MOVB 16#89 SMB67 // 预载控制字节,用于随后的
// 周期改动。
NETWORK 1 // 中断0开始
// PTO输出轮廓完成时,打开输出Q0.5
LD SM0.0
= Q0.5
这是实验程序, 但是运行起来很慢。我在向导中设置加速时间为500ms 最大速度为2000 最小为800 步进4000 但是运行起来根本行,我弄了好几天了 ,怎么都找不到问题。请老师傅帮帮忙? 我的QQ422679828
问题补充:
程序我看过了,我整整弄了10天了。 真找不出什么毛病。但是停不下来。现在弄的我头都大了。老师,谁有步进的电机的控制程序啊。我想看看我的问题倒地处在哪里。QQ422679828
最佳答案
你的速度太慢了,而设定的结束位置太大了,所以要把你所要的脉冲发送完需要很长的时间,给你的错觉就是一直停不下来。
提问者对于答案的评价:
谢谢你的,指点!我是新手,麻烦你的时间 你帮我把程序修改一下吧! 谢谢您了,老师
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc313248.html