在采集电表数据的时候,可以发现有些电表设备读数会发生回滚。这时候,如果单纯的累加计算用电量,就会出现负值。当然,这也许和电表的质量有关系。
“RTQty”(当前读到的读数)、“LastQty”(上次读数)、“PrecedingQty”(前次读数)、”ErrorFlag”(错误标示)、”IncreaseQty”(增量读数)、“IncreaseQtyOlder”(前次增量读数)。
--判断错误发生标示位
if @ErrorFlag=0
begin
--错误标示位为0,那么计算本次的增量值
set @[email protected] RTQty [email protected] LastQty;
end
else
begin
--错误标示位为1,
--计算当前值和上次值的增量@IncreaseQty,
--计算当前值和前次值的增量[email protected]
set @IncreaseQty= RTQty - LastQty;
set @IncreaseQtyOlder= RTQty [email protected];
if @IncreaseQtyOlder>=0
begin
set @[email protected]
end
end
if @IncreaseQty>=0 ---如果增量不为负数
begin
--更新指定设备的数据点位,上次数值为当前值,更新前次数值为当前值,设置错误标示为0。
update Meter set LastQty [email protected], PrecedingQty [email protected] RTQty,ErrorFlag=0 where [email protected]
--进行数据的其它计算
end
else
begin
--更新指定设备的数据点位,上次数值为当前值,设置错误标示为1。
update Meter set LastQty [email protected],ErrorFlag=1 where [email protected]
--错误信息插入到警报表
end