回复:关于步进电机的控制。

伊默

西门子1847工业学习平台

  • 帖子

    4267
  • 精华

    118
  • 被关注

    220

论坛等级:至圣

注册时间:2003-10-24

白金 白金 如何晋级?

发布于 2005-08-22 11:54:45

0楼

下面是我在卷绕机上做的一个通用的包络表的子程序. 要求事先算出最小脉冲周期,还有总脉冲个数. 当然也可以自己改成别样的适合自己程序的样子,我仅提供一个参考,不负法律责任 :)
VAR_IN如下
Tk:WORD //最小周期(对应速度最高)
Pulse:DWORD//总脉冲个数
P0:DWORD//包络表的起始地址,指针类型.

VAR_TEMP为P1到P21
LD SM0.0
MOVD #P0, #P1
MOVD #P0, #P3你
MOVD #P0, #P5
MOVD #P0, #P9
MOVD #P0, #P11
MOVD #P0, #P13
MOVD #P0, #P17
MOVD #P0, #P19
MOVD #P0, #P21

LD SM0.0
+D +1, #P1
+D +3, #P3
+D +5, #P5
+D +9, #P9
+D +11, #P11
+D +13, #P13
+D +17, #P17
+D +19, #P19
+D +21, #P21

LD SM0.0
MOVB 3, *#P0 //三段(加速,匀速,减速)

LD SM0.0
MOVW CycInc, *#P3 //第一段周期增量(加速)
MOVW +0, *#P11 //第二段周期增量(匀速)
MOVW CycInc, *#P19
*I -1, *#P19 //第三段周期增量(减速)

LD SM0.0
-I InitCyc, #Tk
/I CycInc, #Tk
ITD #Tk, *#P5 //第一段脉冲个数
ITD #Tk, *#P21 //第三段脉冲个数
MOVD #Pulse, *#P13
-D *#P5, *#P13
-D *#P21, *#P13 //第二段脉冲个数

LDD< *#P13, 0
MOVD 0, *#P13

LDD= *#P13, 0
OD< *#P21, 0
MOVD 0, *#P21

LD SM0.0
MOVW InitCyc, *#P1 //第一段初始周期
MOVW #Tk, *#P9
*I CycInc, *#P9
+I InitCyc, *#P9 //第二段初始周期
MOVW *#P9, *#P17 //第三段初始周期

调用程序可以如下格式(我定义该子程序名为PTOTable)
LD M8.0
O M9.1
CALL PTOTable, VW262, VD200, &VB300
I can do it
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33265条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。