找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
实现的方法以采集到单个温度数据为例。
定义了一个数组,数组的大小可由你来定义,我定义的是 温度数组,下标从 0-9;
思路是,每次存储新数据前,先将
温度数组[8]存储到 温度数组[9]
温度数组[7]存储到 温度数组[8]
依此类推,直到
温度数组[1]存储到 温度数组[2]
温度数组[0]存储到 温度数组[1]
这部分工作可以用循环实现;
循完成后,空出了最前面的 温度数组[0] 用于存储最新数据;
如图是完整的测试,为了测试方便,在 OB1中调用 FC 时用了沿触发,你可以根据实际改触发记录的条件;
数据定义如图,FC 的接口变量、在 OB1 中的调用,以及监控表测试如图;
在FC 的接口变量如图的情况下,FC中完整代码可以直接复制粘贴,方便你测试;我是测试过的。
#数组下标 := DINT_TO_INT(LOWER_BOUND(ARR := #温度数据数组, DIM := 1));
#数组上标 := DINT_TO_INT(UPPER_BOUND(ARR := #温度数据数组, DIM := 1));
//本循环将 温度数据数组 的数据元素向后平移一个位置,目的是将空出最前面的 #温度数据数组[#数组下标] 位置用于存储最新的温度;
//移位次数是 温度数据数组 元素个数减1;
FOR #循环变量 := #数组上标 TO #数组下标+1 BY -1 DO
#温度数据数组[#循环变量] := #温度数据数组[#循环变量 - 1];
END_FOR;
//将新的 当前温度值存储在 #温度数据数组[#数组下标],即存储在数组的最前面位置
#温度数据数组[#数组下标] := #当前温度值;
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城