回复:用于200Smart控制V90PN的仿博图轴工艺对象MC指令

Phil_Wang

  • 帖子

    47
  • 精华

    3
  • 被关注

    8

论坛等级:游侠

注册时间:2018-11-02

普通 普通 如何晋级?

发布于 2019-04-23 14:20:31

3楼

        各运动控制功能块都存在几个共性问题,下面一一介绍。

        1、CmdAct:运行已激活。这是一个bool变量,可从Sina_Pos块的“Status_table”中的"Epos_zsw2"中读取。当驱动器正在执行运行任务时,该位置的状态是1。在本例程中,出于安全因素考虑,不允许在运行中切换运动模式,即仅当当前运动任务完成后,才允许切换模式。如有特殊应用需要,可删去此限制。

        2、AxisPosOk:定位完成。这个bool变量也是从“Status_table”中读取。只要轴使能,且伺服未处于运动状态,该位一直为1。仅当伺服开始运动时,才会置0,运动完成后又一直为1。因此为判断某一运动是否完成,取其上升沿。如在子程序中使用上升沿,在多次调用时会出错,所以取AxisPosOk的上升沿放到功能块外操作。

        3、AxisRef:已设置参考点。这个bool变量从"Status_table"中读取。当伺服执行了寻找参考点任务后会一直置1,执行寻找参考点任务时为0。我在程序中用"RefOk"表示,同AxisPosOk,取RefOk的上升沿放到功能块外操作。

        4、Enabled:已使能。bool型变量,从"Status_table"中读取。伺服使能时为1,未使能为0。本例程中所有的运动控制命令的前提是使能,否则,运动命令复位并报错。

        5、ActMode:当前操作模式。Int型变量,从"Status_table"中读取。这个我重点说明一下,这个ActMode把我狠狠坑了一把。开始在调试的时候,经常出现发出“跨模式”的运动命令,伺服不动作的情况,比如我刚刚执行了寻找参考点命令,这时操作模式是“4”,接下来想执行相对定位,模式是“1”,在发出相对定位命令后,伺服不动作,得再置位一次相对定位命令才会动作。后来我请教了一位前辈,他说V90伺服在切换模式后需要延时一小段时间模式才会生效。具体原因可能有两个:1、Profinet通信需要时间;2、V90驱动器切换模式需要时间。这两个原因,不管哪一个,都暴露出来一个小问题,就是从Sina_Pos块里读出的“当前模式”并不一定是驱动器中已经生效的操作模式。在此提个建议,希望西门子的技术专家能看到,就是让“ActMode”这个变量反映出来的是驱动器中的的确确已经生效的操作模式,这样能避免写很多延时程序。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8944条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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