找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
根据您说的“流量计每2ML发出一个脉冲信号”,首先要知道此信号是有源,还是无源,如有源高电平是多少V,如是无源那就是一个开关量;这一点关系到流量计信号该如何接入PLCs7200。因这一点您没说清,我暂且把它当作高电平为15-24VDC的脉冲信号。具体做法如下:
把流量计脉冲信号输出高电平端接入s7200I0.0端子,而流量计脉冲信号输出低电平端接入s7200输入端的“1M”端子。编程时使用“向导”中高速计数器指令向导,选“HC0”计数器,选模式6,“PV”设置10000(如每秒脉冲数比它大可加大此数由实际情况而定),“CV”设置0;在子程序中选中断事件“21”(定时器 T32 CT=PT 中断)。按此程序,每秒开始计数,在一秒的最后1ms(999ms)把计的数存入VD90,再把1ms的计量数存入VD94,VD90+VD94的数(即1秒钟流量计所计的ML数)存入VD100。第二秒再从新开始计数;如此不间断循环。您就可以把s7200存储器VD100的数据送到触摸屏相应画面中,实时显示出流量计每秒流过的ML数。我在检测流量、速度时都用过此类程序,只要根据实际物理量纲加以统一即可。具体程序如下:
主程序
网络1
LD SM0.1
CALL HSC_INIT:SBR1 //调用并初始化子程序HSC_INIT
网络2
LD SM0.0
LPS
AN M0.0
TON T32, 1000 //设置秒脉冲发生器
LRD
A T32
= M0.0
LPP
AW>= T32, 999
AW< T32, 1000
MOVD HC0, VD90
*D 2, VD90 //把999ms流量计所计量的ML数存入D90存储器
LRD
MOVR VD90, VD94
*R 0.001, VD94 //1ms流量计的ML数
LPP
+R VD94, VD100 //1秒钟流量计所计量的ML数存入D100
子程序:HSC_INIT
网络1 HSC 指令向导
LD SM0.0
MOVB 16#F8, SMB37 //设置控制位:增计数;已使能;
MOVD +0, SMD38 //装载 CV
MOVD +10000, SMD42 //装载 PV
HDEF 0, 6
ATCH INT_0:INT0, 21 //定时器T32=1000ms时调用中断程序INT_0:INT0
ENI
HSC 0 //使能高速计数器HC0
中断程序:INT_0:INT0
网络1 HSC 指令向导
LD SM0.0
MOVB 16#C8, SMB37 //设置控制位:改变计数值;
MOVD +0, SMD38 //每秒复位高位计数器当前值
HSC 0 //使能高速计数器HC0
东方探索
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城