写了段高速计数的程序,请教各位老师!

已锁定

JetY

  • 帖子

    286
  • 精华

    2
  • 被关注

    4

论坛等级:侠客

注册时间:2009-09-25

普通 普通 如何晋级?

写了段高速计数的程序,请教各位老师!

623

6

2010-03-11 09:37:29

请指正其中的错误,
另外我一直不明白,是否一定要使用中断和中断程序?
这样编的原因是,HSC0的零位是在0位置,HSC4的零位是一个固定的值,也是最大位置,运动是向内减小的


初始化子程序(调用一次)
网络1
LD Always_On:SM0.0
MOVB 16#D8, HSC0_Ctrl:SMB37 //设置控制位:增计数;复位有效逻辑 HIGH (高);4X 速率;已使能;
HDEF 0, 10 //外部复位
MOVD M_Pos_Imp_Carr:VD116, HSC0_CV:SMD38 //装载 PV ,VD116是上次停机前记忆的当前值,从HC0中读取
HSC 0

网络2
LD Always_On:SM0.0
MOVB 16#D8, HSC4_Ctrl:SMB147 //设置控制位:增计数;复位有效逻辑 HIGH (高);4X 速率;已使能;
HDEF 4, 9 //使用内部复位
MOVD M_Pos_Imp_C:VD416, HSC4_CV:SMD148 //装载 PV
HSC 4


以下为子程序(我不用中断程序,主程序中调用子程序)

子程序1:
网络1
LD Always_On:SM0.0
MOVB 16#B8, HSC0_Ctrl:SMB37 //设置控制位:增计数;复位有效逻辑 HIGH (高);4X 速率;已使能;
MOVD S_Pos_Imp_Carr:VD112, HSC0_PV:SMD42 //装载 CV
HSC 0 //装载 PV
网络2
根据读取HC0,并为设定值设置前后一定范围,HC0在这个范围内,则显示位置到达


子程序2:
网络1
LD Always_On:SM0.0
LPS
AN C_P_Zero:I0.5 //零位传感器
MOVB 16#D8, HSC4_Ctrl:SMB147 //非零位,写控制字16#D8,不更新初始值,更新预置值
LRD
A C_P_Zero:I0.5 //零位传感器
MOVB 16#F8, HSC4_Ctrl:SMB147 //零位,写控制字16#F8,更新初始值,更新预置值
MOVD Z_Pos_Cover:VD436, HSC4_CV:SMD148 //更新初始值
LPP
MOVD S_Pos_Imp_C:VD412, HSC4_PV:SMD152 //更新预置值
HSC 4

网络2
根据读取HC0,并为设定值设置前后一定范围,HC0在这个范围内,则显示位置到达
写了段高速计数的程序,请教各位老师! 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33294条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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