STEP7中编程采集温度数据,采样周期为10s,能实现当前采样值与上一采样值之差的计算吗?
请各位大侠们的帮助,最好有程序实例,谢谢! STL和LAD语言皆可。
最佳答案
1、在OB100中编程第一次读温度数据:
OB100中编程:
L PIW256//例如读温度数据
L 10
/I //一般采集值除以10为实际温度。
T MW100//保存数据
OB100 程序在CPU 执行Warm Restart 时执行,且只执行一次,可用于变量的初始化‘。有关OB100详见《组织块使用说明》下载:
http://218.93.112.166/ec/C23/dl/xxzl/%E7%BB%84%E7%BB%87%E5%9D%97%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.pdf
2、采样周期为10s,可应用循环中断组织块(OB35)。设置OB35每10秒中断一次。
OB35设置方法:
在硬件组态中双击CPU属性,选择Cyclic Interrupts 选项,修改OB35 的执行周期(Execution(ms),范围是1-60000ms)。本例设为10000ms,即10秒。
有关OB35详见上述《组织块使用说明》。
3、在OB35中编程:
L PIW256//例如读温度数据
L 10
/I //一般采集值除以10为实际温度。
T MW102//保存当前数据。
L MW100//取上一次的数据。
-I//计算当前采样值与上一采样值之差
T MW104//保存差数据。
L MW102//取当前数据
T MW100//作为上一次的数据。
4、程序是信手而写,例如温度模拟量转换及温度值的数据类型(是整型还是实数型)要根据实际来编写。在细节上可能有误,但程序结构上是曾经用过的。
提问者对于答案的评价:
非常感谢!问题已经解决, 谢谢大家的解答。
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc236843.html