回复:请问一个定时高速计数的问题!

superpi

  • 帖子

    46
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2004-04-23 17:21:03

0楼

贴一下我的程序把,

主程序main:
LD SM0.1
MOVD +0, VD100
MOVD +0, VD104
MOVD +0, VD108
MOVD +0, VD112
MOVD +0, VD116
LDN M0.1
TON T96, +500 //定义对每个端口查询周期为500ms
LD T96
= M0.1 //定义标志位M0.1为T96
R M0.1, 1 //首先置位M0.1
LD M0.1
INCB VB0
AB>= VB0, 5 //如果VB0大于5(选址通道3-1数)
MOVB 0, VB0 //则重新置VB0为0
LD V0.0
= Q0.0
LD V0.1
= Q0.1
LD V0.2
= Q0.2
CALL HSC

子程序HSC:
LD SM0.1
O M0.1
MOVB 16#F8, SMB37 //送控制字给hsc0
MOVD +0, SMD38 //hsc0初始值为0
MOVD +5000, SMD42 //hsc0的预设值为5000(对应的电流为20mA,对应的电压为10v)
HDEF 0, 0 //定义hsc0的工作模式为0
HSC 0
ATCH Stop,12 ATCH time_over, 22
ENI



中断stop:
LD SM0.0
STOP


中断time_over:
LD SM0.0
MOVD HC0, AC0
*D +20, AC0
/D +5000, AC0 //经换算后ac0中存放换算后的模拟值
MOVD +0, SMD38
MOVB 16#D8, SMB37 //送控制字给hsc0
MOVD +0, SMD38 //hsc0初始值为0
MOVD +5000, SMD42
LDB= VB0, 0
MOVD AC0, VD100
LDB= VB0, 1
MOVD AC0, VD104
MOVD +0, SMD38
LDB= VB0, 2
MOVD AC0, VD108
MOVD +0, SMD38
LDB= VB0, 3
MOVD AC0, VD112
MOVD +0, SMD38
LDB= VB0, 4
MOVD AC0, VD116

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33289条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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