程序中模拟量计算瞬时流量,由瞬时流量计算累计流量,以1ms采样周期,A=瞬时/3600+c,下面程序中两个SM0.5不是1S吗?为什么除以7200呢?实数比较指令VD180>=1.0是精度吗?这个1.0是如何计算的呢?那位师傅能多给几个瞬时流量计算累计流量的例子,多谢了。
图片说明:
86ea2068629f6d6ca3d52424cc586dFC
5ebbc2e8d335c11b7956576169BF5f94
最佳答案
首先来说这个SM0.5系统时钟标志位,“该脉冲在1秒钟的周期时间内OFF(关闭)0.5秒,ON(打开)0.5秒。该位提供便于使用的延迟或1秒钟时钟脉冲。”所以按你的控制要求SM0.5在1秒钟内有2次状态的变化,又按你采样周期为1mS计算就变为7200了。如果去除其中的一个SM0.5标志位和沿,则只需要除3600。
注意!你这个采样如果精度要求高的话就需要调用中断方式进行。
这个确实是精度的需要,这个数值是根据现场实际情况,编程人员加上的,没有实际经验公式可寻。
采用中断的瞬间流量例子程序:
主程序:
//初始化中断(250mS)
LDSM0.1
MOVB250,定时中断:SMB34
ATCHint_0:INT0,10
ENI
中断程序:
LDSM0.0
DTR脉冲频率:VD0,脉冲频率:VD0
MOVR脉冲频率:VD0,霎间流量:VD8
/R脉冲当量:VD4,霎间流量:VD8
提问者对于答案的评价:
小弟明白了1S=X/36000.5S=X/7200程序中相当于每0.5S采集一次,VD180就理解为精度吧,谢谢各位师傅了。