找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
小程序查看
手机扫码追踪该问题
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
你的目的是判断3S之内温度是否出现大于15度的变化,假设你的温度值100ms采集一次,那么3秒钟就可以采集300次。使用100ms中断。建立一个数据块存放最近300次的数据,并将数据从小到大排序,判断最大值和最小值之间的差值是否大于15度。第301个温度采集进来就将第一次的数据去掉,数据值一次向前覆盖,我按照你的要求写了一下,用随机数测试没问题
"数据块_1".Save_Temp[301] := "数据块_1".Current_Temp;//当前温度值,OB1中生成的随机数
FOR #i := 1 TO 300 BY 1 DO
"数据块_1".Save_Temp[#i] := "数据块_1".Save_Temp[#i + 1];
END_FOR;
FOR #i := 1 TO 300 BY 1 DO
"数据块_1".Order_Temp[#i] := "数据块_1".Save_Temp[#i];
END_FOR;
FOR #j := 1 TO 300 BY +1 DO
;
FOR #i := 1 TO 299 BY 1 DO
IF "数据块_1".Order_Temp[#i] > "数据块_1".Order_Temp[#i + 1]
THEN
#temp0 := "数据块_1".Order_Temp[#i];
"数据块_1".Order_Temp[#i] := "数据块_1".Order_Temp[#i + 1];
"数据块_1".Order_Temp[#i + 1] := #temp0;
END_IF;
END_FOR;
END_FOR;
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!