技术论坛

 流量累积例子

返回主题列表
作者 主题
沉默是金
游士

经验值:258
发帖数:155
精华帖:5
楼主    2005-04-30 16:19:28
主题:流量累积例子 精华帖 
我用FB做的带数据块的流量累积功能块。采样累积在毫秒单位内ms_v,满一秒转入是s_v,同时将ms、ms_v清零,满一分钟累积量转入m_v,t同时将s、s_v清零,满一一小时累积量转入h_v,同时将min、m_v清零。这样大概可以持续累积20小时,如果不能满足长时间累计,可以将24小时的累积值(实际单位)累积入天,清空小时量。每一时刻的累积量是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
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
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
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
不足之处,尚请指出。








糊口饭吃
shine
至圣

经验值:19820
发帖数:8803
精华帖:39
    2006-02-28 16:48:22
精华帖  主题:回复:流量累积例子
OB35是中断程序,有可能在程序的任何时候执行。如果没有考虑这点,在OB35中取到的数据可能是中间数据,这样就会出错。
举个例子:
OB1
L PIW256
T MW0

ITD
T MD4
L MD4
DTR
T MD4
OB35:
L MD4
L MD20
+R
T MD20

如果习惯于STL编程,当然不会写出上面那样的程序,但如果用的是LAD,就会可能会出现这种情况。
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。