请选择 进入手机版 | 继续访问电脑版

Aic-tech BBS

 找回密码
 立即注册

扫一扫,访问微社区

搜索
查看: 1263|回复: 0

实时库重启后恢复上次关闭时的数据

[复制链接]

8

主题

13

帖子

162

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
162
发表于 2017-5-14 10:38:33 | 显示全部楼层 |阅读模式
问题描述:实时库脚本操作的中间变量在实时库重启后没有恢复上次关闭时的数据。
原因分析:该变量在实时库脚本执行过程中赋值,与其他通过API赋值的处理不同,该赋值结果只记录在内存中,即使在DatahubServer配置文件中设置<SaveLiveDataVariableValue> true该实时值也不会被保存下来,所以需要在脚本中单独执行保存。
解决方法:在脚本中写入变量的代码后添加保存命令
scriptContext.AddressSpace.UpdateNode(/*这里是需要保存的节点*/);
即如:
                        var aResult2 = nodebefore.WriteAttribute(systemContext,
                                                                 Attributes.Value,
                                                                 NumericRange.Empty,
                                                                 new DataValue(new Variant(value),
                                                                 StatusCodes.Good,DateTime.UtcNow));  
                        if (ServiceResult.IsGood(aResult2))                                           //如果写入成功
                        {
                            nodebefore.ClearChangeMasks(systemContext,true);
                            scriptContext.AddressSpace.UpdateNode(nodebefore);
                        }
总结:在脚本中对实时库变量写值,如果希望其在实时库关闭时保存实时值,需要通过scriptContext.AddressSpace.UpdateNode()方法来保存实时值到实时数据库中。
针对/Objects/2:System/2lantObjects/2:BZ01/2:BZ_A/2:BZ_B/2:GJJ/2:ZT/2:cl计算
附注其修改后的写法:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|Beijing Advanced Information and Control Co. Ltd.

GMT+8, 2020-1-26 11:45 , Processed in 0.177369 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表