回复:两行连续的M代码同时执行

已锁定

工控一阳指King

  • 帖子

    183
  • 精华

    2
  • 被关注

    19

论坛等级:侠士

注册时间:2010-08-13

普通 普通 如何晋级?

发布于 2022-03-24 22:29:21

4楼

西门子的M代码是不需要等待复位的,NC程序中写入执行M16只需要对相应的PLC地址进行输出,不会检查M代码是否执行完成。所以,你 的M16和M33直接只差一个指令执行周期。个人建议可以再NC程序中编写一个等待循环,比如:

M16

WHILE ($A_IN[1]==0)

G4F0.1

ENDWHILE

M33

在PLC中,当M16对应的PLC地址等于1时,对$A_IN[1]对应的地址进行复位,当M16执行完后,对$A_IN[1]对应的PLC地址进行置位。

如果不想在NC程序中看到上面这样的等待指令,可以把M16定义成一个子程序调用,把类似的等待功能放到子程序中,比如一个L16的子程序:

$A_OUT[1]=1

WHILE ($A_IN[1]==0)

G4F0.1

ENDWHILE

STOPRE

M17

PLC中,$A_OUT[1]=1时,对$A_IN[1]复位,M16对应的工作完成后,对$A_IN[1]置位。这样M33就会在M16执行完后才执行。

当然应该还有其他的解决方案,以上内容供你参考,希望有所帮助。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SINUMERIK

共有25545条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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