花了 一金币换来了 ,上传附件的权限》
接口说明(形参)
PulseMode : BOOL ; //使用脉冲计算时,为1
PulseIn : BOOL ; //流量到PLC 发出的脉冲信号
Adjust : BOOL ; //流量校准命令
MassVolumePerPulse : REAL ; //Kg or L//每个脉冲代表多少KG 或者L
FlowrateIn : REAL ; //kg/s 或者 L/s
OBScanTime : INT ; //OB1的上一次扫描周期或者循环中断的中断周期,也就是流量计算的采样周期
CutOffValue : REAL ;//小流量切断数值
N : INT ; //N个OB1或者OB35 调用后进行一次累积
Reset : BOOL ;//流量累积复位信号
由于采用了浮点数作为累积量量,所以还是有精度问题。如果有更高累积量要求,建议还是采用双整数进行累积,小数部分采用浮点数进行累积。
// Total<999999.0 累积分辨率可以达到0.1 kg以上
// Total<9999999.0 累积分辨率可以达到1 kg,新增累积量Z小于1kg,将被忽略,当累积量Z 大于1.0 时,总累积量可以反应出变化
// Total<99999999.0 累积分辨率可以达到10 kg,新增累积量Z小于10kg,将被忽略,当累积量Z 大于10.0 时,总累积量可以反应出变化
// Total<999999999.0 累积分辨率可以达到100 kg,新增累积量Z小于100kg,将被忽略,当累积量Z 大于100.0 时,总累积量可以反应出变化
见如下调用方式 子OB35里面调用
//模拟量累计 注意红色部分必须赋值CALL "ASW_FB_FAccu_Fct" , DB1321
PulseMode :=FALSE //非PULSE 模式PulseIn :=
Adjust :=
MassVolumePerPulse:=
FlowrateIn :=2.000000e-001 // 实际流量OBScanTime :=100 //OB 35 中断周期CutOffValue :=
N :=10
Reset :=
//脉冲计数累计 注意红色部分必须赋值CALL "ASW_FB_FAccu_Fct" , DB1322
PulseMode :=TRUE //PULSE 模式PulseIn :="S7_CPU_Pulse500ms" //模拟脉冲输入点Adjust :=
MassVolumePerPulse:=1.000000e-001 //每个脉冲多少KgFlowrateIn :=
OBScanTime :=
CutOffValue :=
N :=5
Reset :=
N 这个参数 ,本来不想加的,后来还是加上去了,用处是比如我在OB35里调用流量累积程序,OB35中断周期100MS,顾名思义流量累积的采样周期就是100MS,当N=10时,代表的含义是N*100MS 时间间隔内,我进行累加一次重量到T一下的内存中。N<10的时候重量累加在另外的内存里。
我附件里上传的是STL 源文件的压缩文件。解压后可以导入到STEP7中,把FB 名称改成你们喜欢的名称,然后在符号表里 把这个名称分配给一个FB,然后编译就OK了。点击此处查看附件