今天在热线上碰到一个奇怪的趋势控件显示问题,觉得挺有意思的,在这里跟大家分享一下。
项目的基本信息:
用户现场的项目为服务器/客户机结构(1台服务器,3台客户机)。在服务器项目中建了一个画面,画面中插入了一个趋势控件,用于显示一条归档的曲线。客户机上有自己的项目,并通过装载服务器数据包的方式显示服务器上的所有过程画面,当然也包括这条曲线所在的画面。
问题是这样的:
在客户机上显示服务器的这个趋势画面一切正常。但突然某一天,在其中的一台客户机上打开这个趋势画面时,发现显示的趋势窗口中莫名其妙的多出来两条曲线。而另外两台客户机上显示的这个趋势画面就没有这个问题。用户觉得很纳闷,为什么来自同一个服务器的同一个画面会显示不同的曲线??但他又不知道什么原因。于是,就在线打开这个趋势控件的组态对话框,将额外多余的两条曲线手动删除掉了。更奇怪的是,如果用户切换一下过程画面,再重新切换回来并显示这个趋势画面后,发现刚才明明已经删除的那两条曲线又回来了。整个趋势窗口中还是显示刚才看到的三条曲线。
用户百思不得其解!!怪事!怪事!
当我听到这个奇怪的问题时,我也只挠头。
所有通过服务器数据包方式组态的客户机项目显示的画面信息等都是来自服务器的,服务器是什么样,客户机上就会显示什么样,无一例外。除非用户组态了客户机的PDLCache功能。
关于PDLCache功能可以参考如下链接的文档:
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=F0135
于是建议用户检查项目并做了如下尝试:
1. 参考上面链接的文档检查这台客户机上是否设置了PDLCache的功能。
用户反映,项目中根本就没有设置PDLCache功能。
2. 在服务器上通过画面编辑器打开这个趋势画面,检查该画面的趋势控件离线组态信息。
这个趋势控件确实只组态了一条曲线。因此,排除服务器上画面文件本身的问题。其他客户机上显示正常,也说明了这点!
3. 在这台有问题的客户机上,手动删除其服务器数据,并重新从服务器装载服务器数据包。
老样子!基本排除客户机装载了老服务器数据包的可能。
4. 服务器上删除并重新生成服务器数据包,重复上述第2步。
还是老样子!排除服务器本身的数据包过旧的问题。
5. 重新下载有问题的客户机项目。
还是老样子!可以排除客户机项目的问题。
基本上所有的可能都排除了,那究竟问题出在那里呢???真是快黔驴技穷了!但在我心里却始终坚持的一个真理是:凡事有果必有因!所谓的莫名其妙,只是你还没有发现其中的缘由而已!!
找!掘地三尺找问题!就在找问题的过程中,我突然记起来趋势控件的一个设置,如下图中标红圈和蓝圈的位置。

这两个选项用于设置:在线修改趋势控件的组态时,是否保存这些修改信息。
如果选择第一个In RT and CS,则保存修改到运行环境和离线文件中,会在项目文件夹中生成后缀名为.TCS的文件,用于保留这些信息。
如果选择了In RT,则只保存在运行环境下,WinCC激活情况下有效,当WinCC退出后就自动清除了。会在项目文件夹中生成.TRT文件,用于保存在线信息,WinCC关闭后会自动删除。
基于这点原因,我让用户在这台有问题的客户机上的项目文件夹中搜索是否有后缀名为上述两种的文件。
结果,用户发现,项目文件夹GraCS文件夹下确实有一个以这个过程画面命名的后缀为TCS的文件。删除掉后,问题解决啦!!^_^
恍然大悟!哦,原来如此,是保存修改信息选项“惹的祸”!
用户回忆,前几天确实有另外一个工程师在现场添加并查看过那两条多余的曲线,有可能无意中激活了这个选项,导致了这个问题。
嗨,好的功能也一定要明明白白的用,用在正确的地方啊!!