恭喜,你发布的帖子
发布于 2017-10-19 11:18:49
35楼
按照你的方法导入如下图
测试发现两个问题:
1.诊断出错
2. DB2定义两个REAL的变量,很短时间内修改"数据块_1".Data1的值,"数据块_1".Data2一直和"数据块_1".Data1的值一样,怎么没有求平均值。
是什么原因?求赐教。
定时器确实有问题,当FB_TON_1Second.IN为FALSE的时候,FB_TON_1Second.Q为还能为TURE,这和手册有矛盾.只好改成定时中断,效果还不错,但是移植其他平台相对麻烦了。
(***************************************************************************************)
下面是Cyclic interrupt
(***************************************************************************************)
If "mean".Ctrl = 1 Then
"mean".iSumArrayMean30Seconds := "mean".iSumArrayMean30Seconds - "mean".iArrayMean30Seconds["mean".i];
"mean".iArrayMean30Seconds["mean".i] := REAL_TO_DINT("mean".in * 100);
"mean".iSumArrayMean30Seconds := "mean".iSumArrayMean30Seconds + "mean".iArrayMean30Seconds["mean".i];
"mean".ont := DINT_TO_REAL("mean".iSumArrayMean30Seconds) / ("mean".k * 100);
(*inkrementieren des Array-Index*)
If "mean".i < 30 Then
"mean".i := "mean".i + 1;
Else
"mean".i := 1;
End_If;
(*Anzahl der Werte im Array*)
If "mean".k < 30 Then
"mean".k := "mean".k + 1;
Else
"mean".k := 30;
End_If;
Else
"mean".i := 1;
"mean".k := 1;
"mean".iSumArrayMean30Seconds := 0;
FILL_BLK(IN := 0,
COUNT := 30,
OUT => "mean".iArrayMean30Seconds[1]);
End_If;
请填写推广理由:
分享
只看
楼主