大侠帮忙看看程序,为何总是需要在先反转使能一次之后,才能正转?

已锁定

蝴蝶

西门子1847工业学习平台

  • 帖子

    365
  • 精华

    2
  • 被关注

    9

论坛等级:侠士

注册时间:2004-04-28

普通 普通 如何晋级?

大侠帮忙看看程序,为何总是需要在先反转使能一次之后,才能正转?

939

2

2013-05-24 11:20:09

最近总是碰上奇怪的问题,也不知是个人编程习惯的问题还是怎么了。为什么编的程序只能在反转使能一次之后,正转才有效。先按正转是无效的。M0.0控制正转(开)脉冲(Q0.1),M0.1控制(关)脉冲(Q0.0)。先接通M0.1是无效的,Q0.0不发脉冲,Q0.0的灯也不亮,但是在软件中监视确实Q0.0变蓝了。只有在M0.0接通一次后,就变得正常了,正转也行,反转也行。好像几年前也在其他系统上发现这个问题,只不过没有注意,但是现在引起了我的重视。请各位大侠帮忙看看是哪里出了问题。谢谢!
程序:
TITLE=程序注释
Network 1
// 初始化
LD SM0.1
R M0.0, 8
R Q0.0, 16
Network 2 // 关
// 设置SMB67为16#85,表示脉冲周期的基准为微秒,设置SMB67为16#8C,表示脉冲周期的基准为毫秒,SMW68为脉冲周期,SMD72为脉冲个数。
//
LD M0.0
MOVB 16#85, SMB67 // 设置控制字节:

// - 选择PTO操作
// - 选择单段操作
// - 选择微秒增加
// - 设置脉冲计数和周期数值
// - 启用PTO功能
MOVW 1000, SMW68 // 将周期设为1毫秒。

MOVD +100, SMD72 // 将脉冲计数设为100次脉冲。


// 处理PTO完成中断的中断。

PLS 1 // 全局中断启用
// 激活PTO操作,PLS0 => Q0.0
// 预载控制字节,用于随后的

// 周期改动。
Network 3 // 开。
// 设置SMB77为16#85,表示脉冲周期的基准为微秒,设置SMB77为16#8C,表示脉冲周期的基准为毫秒,SMW68为脉冲周期,SMD72为脉冲个数。
LD M0.1
MOVB 16#85, SMB77
MOVW 1000, SMW78
MOVD +100, SMD82
PLS 0
大侠帮忙看看程序,为何总是需要在先反转使能一次之后,才能正转? 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33276条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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