WinCC技巧复习课程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
W i n C C技巧
在 WinCC 中如何在一个画面中显示不同的趋势图?
显示订货号
描述
在同一个 WinCC 在线趋势控件中,通过不同的按钮来选择显示不同测量点的曲线,有两种方法。
•选择 1: 用脚本分配变量
•选择 2: 画中画技术
两种方法都是在 "Trend_Function_Main.PDL", "Trend_Function_1.PDL" 和
"Trend_Function_2.PDL" 画面中实现的。这几个画面可以在例子中找到。
准备:
变量“testvar1”和“testvar2”分别显示在两个在线控件 Trend 1 和 Trend 2 中。
No.步骤
1 在变量记录中,新建过程值归档“TestArchive”。
2 在归档中建立相应的变量归档(testvar1 and testvar2)。
Fig. 01
选择1:WinCC V7.0 中脚本分配变量
Set objCon1 = HMIRuntime.ActiveScreen.ScreenItems("PictureWindow1")
'configuration
objCon1.Visible = 1
objCon1.PictureName= "Trend_Function_1.PDL"
7 现在可以通过 Picture Tree Manager 将画面“Trend_Function_Main.PDL”合并到画面图
层。
例子:
为了在项目中可以使用这些图片,必须按照前面“准备”中提到方式建立归档变量“testvar1”和“testvar2”。此外,将下面三个 PDL 文件拷贝到项目文件夹下的“GraCS”中。
(...Siemens\WinCC\WinCCProjects\
此例是在 WinCC V.0.中建立的。
ZIP 文件中包含了三个 PDL 文件(WinCC 画面)和两个 TXT 文件(VBS and C 脚本)。
如何使用 C 或 VBS 脚本通过新变量提供 WinCC 在线趋势控件的单个趋势?
显示订货号
说明:
例如,在初始条件下,过程值归档 "TestArchive" 中的变量 "testvar1" 被分配给趋势控件的曲线1(图01)。
图. 01
C 脚本:
现在按下面的步骤利用 C 脚本将过程值归档中的变量 "testvar2" 分配给趋势控件的曲线1。
No.步骤
1 首先,将在线趋势控件的 "Index" 属性设置为对应曲线号的数值。
WinCC V6.x 和 WinCC V7.0
SetPropWord(lpszPictureName,"Control1","TrendIndex",0);
2 将WinCC在线趋势控件(= Control1)中选择出的曲线的 "TagName" 属性或者
TrendTagName 设置为新的变量:
WinCC V6.x
SetPropChar(lpszPictureName,"Control1","TagName","TestArchive\\testvar2");
WinCC V7.0
SetPropChar(lpszPictureName,"Control1","TrendTagName","TestArchive\\testvar2");
3 将WinCC 在线趋势控件(= Control1) 中选择出的曲线的 "Command" 属性设置为
"Reload":
WinCC V6.x
如何使用 Tag Prefix 的属性?
显示订货号
说明:
在 WinCC Online Help 中,通过路径“WinCC Information System > Working with WinCC > VBS for Creating Procedures and Actions > VBS Reference > Characteristics > T > TagPrefix Property”,可以看到关于 Tag Prefix 属性的描述。
只有重新加载画面后,对 Tag Prefix 属性的任何更改才生效。这在画面更改时自动发生;若不然,可以重新指定“Picture Name”属性。下面两个图提供了可能的 C 和 VBS 脚本。
如何使用一个通用的C函数来动态的获得对象属性的连接变量?
显示订货号
介绍:
使用"GetLinkedVariable()"函数您可以读取连接到对象属性上的变量名称,"GetLinkedVariable()"函数返回的变量名称首先需要检查,检查正确之后您可以利用该变量名称在您的子程序段中根据需要进一步处理,如读写该变量或者修改其他对象的属性。
例子:
读取连接到IO域对象的上“输出值”属性的例子。
{
char* pszVarName = NULL;
char szVarName[_MAX_PATH+1];
//
//Read tag name of a direct connection
//
pszVarName = GetLinkedVariable(lpszPictureName,lpszObjectName,"OutputValue");
//
//检查返回值
//
if (strlen(pszVarName) <= 0){