需求
- 在调试时,某参数需要以较快的是速度显示在曲线上。在调试完成后,该参数需要以一定的时间存储。
- 让客户自己决定某一组数据的存储频率。
现状
通常我们通过设置组对象的存盘属性,定时存储到磁盘或内存,存储周期设置为N*0.1秒。 但这种方法无法做到任意修改存储频率。
解决方法
思路
通过 “计时器函数"和"循环策略"解决。
具体步骤
在实时数据库中,添加一个变量
数据统计频率,“对象类型"为整数。“基本属性”→“对象初值” 为120。勾选 “变化时自动保存初值”。表示数据的统计频率。默认为120秒。在实时数据库中,新建一个组对象
组对象A, 设置"属性”→“存盘属性”→“存盘方式”→“勾选定时存储到磁盘”;“存盘参数”→“存储周期"为:0。[!TIP] 存储周期必须为0。
在"启动策略"中,运行一个计时器,并设置计时器最大值,和运行模式为0(运行到上限值后重新循环运行)。如下所示代码
1 2!TimerRun(127) !TimerSetLimit(127,数据统计频率,0)新建一个"循环策略”,“策略属性”→“勾选定时循环执行”,时间为
1000ms。在此策略上新增一个"策略行”。 “表达式条件”→“策略行条件属性”→“表达式” 为:!TimerValue(127)。 “条件设置”→勾选 “为0时条件成立”。 “脚本程序"为
1!SaveData(数据对象.组对象A)新增一个"用户窗口”,添加一个"输入框",“操作属性"为
数据统计频率。 添加一个"标准按钮”,“基本属性”→“文本"内容为:保存,脚本程序为:
1 2数据统计频率.SaveDataInitValue() !TimerSetLimit(127,数据统计频率,0)
- 输入一个大于0的整数。点击"保存按钮”。就可以任意更改组对象的保存时间。