发布于 2012-07-25 11:46:30
9楼
根据方案2,我做了一个程序:
1)对输入的模拟量做“滤波”(或求平均值、或先滤波再求平均值)等处理;
2)标定瞬时流量;
3)使用两个“模拟算术”功能块,分别计算积累流量为1升及0.1升时所需的时间,再减去100(毫秒)。单位为:毫秒;
4)使用2个“异步脉冲”及一个“异步脉冲”,将上一条中“1升及0.1升时所需的时间,再减去100(毫秒)”等数据,转换为两路以1升为单位的脉冲;(注1)
5)使用2个“模拟量阀值触发器”分别控制两路“1升脉冲”的工作及流量为0时关闭积累流量的记录、及关闭瞬时流量标定(防止使瞬时流量显示为负值,使值为0);
6)将受控的两路“1升脉冲”脉冲合并后,利用“计数器”记录1000升以内的积累流量,每1000升输出一个脉冲,复位、重新计数;再用一个“计数器”等记录1~1000000立方米的积累流量,每1000000立方米输出一个脉冲、同时复位、重新记录,然后再用一个“计数器”等记录1000001~1000000000000立方米的积累流量,记录达到1000000000000立方米后复位。。。
7)文本显示:瞬时流量及积累流量!
注1:为了提高积累流量分辨率,采用1个脉冲=1升。为提高计算精度,一个脉冲所需时间以毫秒为单位计算,当流量125升/小时的时候,积累流量流过1升所需的时间是28700毫秒。如果流量再减小,模拟算术的计算结果就会溢出。因此,采用分段计算。
书山有路勤为径,学海无涯苦作舟;三人行,必有我师;森林之外的树木也能成才