技术频道

西门子PLC的流量累积原码

我用FB做的带数据块的流量累积功能块。采样累积在毫秒单位内ms_v,满一秒转入是s_v,同时将ms、ms_v清零,满一分钟累积量转入m_v,t同时将s、s_v清零,满一一小时累积量转入h_v,同时将min、m_v清零,可以累积入天…….。每一时刻的累积量是ms_v+s_v+m_v+h_v。Rest为零累积量清零。
在OB35中调用即可,如OB35中断周期为100ms,流量输入单位方/H,Unilt_c就是36000,Hz就为10,unilt_v对应流量记满量程值。
In pv word 瞬时流量
In Unit_c Real 瞬时流量单位转换为采样时间流量单位
In Rest int 为零时,累加器清零
In Hz int 每秒采样次数
In unilt_v Real 流量计最大流量单位
Out ov Real 流量累积输出
In_out ms int 毫秒记数
In_out s int 秒记数
In_out min int 分钟记数
In_out h int 小时记数
In_out ms_v dint 毫秒流量累积
In_out s_v dint 秒流量累积
In_out m_v dint 分钟流量累积
In_out h_v dint 小时流量累积
In_out in_v dint 将输入瞬时流量变为长整型
流量累积功能块
毫秒流量累积
L #PV
T #iv_c
L #iv_c
L #ms_v
+D
T #ms_v
L #ms
L 1
+I
T #ms
L #Hz
<I
JC ol
秒流量累积
L #ms_v
L #s_v
+D
T #s_v
L #s
L 1
+I
T #s
L 0
T #ms
T #ms_v
L #s
L 60
<I
JC ol
分钟流量累积
L #m_v
L #s_v
+D
T #m_v
L #min
L 1
+I
T #min
L 0
T #s
T #s_v
L #min
L 60
<I
JC ol
小时流量
L #h_v
L #m_v
+D
T #h_v
L #h
L 1
+I
T #h
L 0
T #min
T #m_v
清零
ol: L #Rest
L 0
<>I
JC end
L 0
L 0
T #ms
T #s
T #min
T #h
T #ms_v
T #s_v
T #m_v
T #h_v
累积量
end: L #ms_v
L #s_v
+D
L #m_v
+D
L #h_v
+D
DTR
L #Unit_c
/R
L #unilt_v
*R
L 2.764800e+004
/R
T #ov
不足之处,尚请指出。

文章版权归西部工控xbgk所有,未经许可不得转载。