西门子官网的程序是用德文书写的。必须将语言给位德文才可以使用。现将内部的程序转发。
建立一个FB块
IN中建立
名称 VALUE 数据类型 real
名称 Interval 数据类型 time 计量单位的时间例如:30M3/H 则输入 T#1H
名称 Cycle 数据类型 time 扫描循环的时间 放在OB35中则是T#100ms OB36则是T#50ms
名称 Com_RST 数据类型 bool 复位开关,ON时清零,需要在扫描时间内,需要将此位置位时间大于
//////////////////////////////////OB35的中断扫描时间。
OUT中建立
名称 TOTAL 数据类型 real 累计值
Stat中建立
名称 Accum 数据类型 real
Temp中建立
名称 tInterval 数据类型 real
名称 tCycle 数据类型 real
程序段1中输入
A #COM_RST
JCN NW2
L 0.0
T #ACCUM
T #TOTAL
SET
SAVE
BEU
程序段2中输入
NW2: NOP 0
L #INTERVAL
DTR
T #tINTERVAL
L #CYCLE
DTR
T #tCYCLE
程序段3中输入
L #VALUE
L #tCYCLE
*R
L #tINTERVAL
/R
L #ACCUM
+R
T #ACCUM
T #TOTAL
程序段4中输入
SET
SAVE
BEU
保存为FB功能块
说明:次功能块只能接受real值。直接读取上来的值需要经过fc105的转换后或自行转换为32位浮点数后再使用。
应用实例: