对于一个规模比较大的WinCC项目,如果有很多个归档变量,而这些变量又都需要通过曲线展示怎么办?虽然我们的HwBasicLib中的AI/PID等组件支持在Faceplate中显示曲线。但是对于一个SCADA项目来说,我们还是很有必要做个统一的曲线展示页面。
图1Faceplate中的曲线
那这么多的变量,趋势曲线页面怎么做比较合理、效率更高、操作更人性化呢?我们的做法是在画面上放两个下拉列表框控件(ComboBox)。第一个下拉列表框中可以选择工艺单元。当我们通过下拉列表框选择工艺单元时,第二个下拉列表框中会自动添加该工艺单元对应的归档变量供我们选择。这种方式就是按照工艺单元或者区域对它们各种的归档变量进行分类,再通过下拉列表框选择。下图就是我们设计的趋势变量操作部分。两个按钮分别用于添加及清除曲线。
图2变量操作
添加一个趋势控件到画面上,删除它里面自带的那个趋势。再拖拽一个标尺控件到画面上。一起组合起来如下图所示。
图3趋势曲线页面效果
第一个下拉列表框控件里面的Item是固定的,我们可以按照现有的工艺单元添加进去。比如这个例子中我们添加了两个工艺单元,分别是1站。第二个下拉列表框里面的Item就是动态的了。它需要根据我们选择的工艺单元自动分配,这个功能要用脚本来完成。VBS或者C都可以。因为比较简单,这里就不贴出具体脚本了。下图是展示效果。
图42站及其对应的变量
Setcmb=screenitems("Chart")tag==ScreenItems("thread")SetobjTrWnd=("ThreadWnd")SetobjTimeAxis=("T1")SetobjValAxis=("V1")SetobjTr=(tag)=1====图6动态加载曲线效果
采用这种方法制作的趋势管理画面通用性很强。不同的项目中,我们只需要对两个下拉列表框中的Item进行调整即可。如果我们愿意进一步花功夫研究的话,该趋势画面模块的通用性还可以更强一点,比如我们可以自动从数据库中获取归档信息,这样我们只需要在对变量归档时,按照工艺单元分组即可。画面模板中我们甚至连脚本都不再需要修改了,工程效率大大提高。





