找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
{{itemCategory}}
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
数据定义及代码是经过了测试,数据定义如图所示的情况下代码可以复制粘贴
1、数据定义,如图中的数据块
2、
插入上电初始化组织块,初始化变量值;其代码如下:
"数据块_1".数据量计数 := 0; //计数值初始化为0
"数据块_1".累计值 := 0.0; //累计值初始化为0.0
FOR "数据块_1".当前值数组下标 := 0 TO 99 DO //上电初始化数组元素值为0.0
"数据块_1".DATA["数据块_1".当前值数组下标] := 0.0;
END_FOR;
"数据块_1".当前值数组下标 := 0;
3、
插入 OB30 循环中断组织块,每100MS 产生一次中断,组织块中代码如下:
"数据块_1".数据量计数 := "数据块_1".数据量计数 + 1;
"数据块_1".当前值数组下标:= "数据块_1".当前值数组下标+1;
IF "数据块_1".数据量计数 >= 100 THEN
"数据块_1".数据量计数 := 100;
"数据块_1".平均值 := "数据块_1".累计值 / 100.0;
IF "数据块_1".当前值数组下标 > 99 THEN
"数据块_1".当前值数组下标 := 0;
END_IF;
"数据块_1".累计值 := "数据块_1".累计值 - "数据块_1".DATA["数据块_1".当前值数组下标];
"数据块_1".DATA["数据块_1".当前值数组下标] := "数据块_1".当前模拟值;
"数据块_1".累计值 := "数据块_1".累计值 + "数据块_1".当前模拟值;
END_IF;
4、
参考资料
OB组织块介绍
http://www.ad.siemens.com.cn/productportal/Prods/S7-1200_PLC_EASY_PLUS/SmartSMS/009.html
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!