lpszPictureName,lpszObjectName 和 lpszPropertyName是什么意思?

n

描述:
在WinCC中可以集成用户可自定义的功能。其脚本语言在Kernighan/Ritchie编著的“Programming in C”一书中有描述。该语言的定义是ANSI C定义的基础。n

用户功能可用如下的脚本方式表示:n

  • 对象功能:
    建立到一个图形显示中,并且十分典型的,被附到一个图形对象属性中。n
  • 全局功能:
    以受运行时间控制或事件控制的方式编制的例程,不受被调用图片的影响。

创建对象功能时,会对相关的脚本创建一个标准标题。它包含有图片系统供脚本在运行时可用的接口信息。n

lpszPictureName,lpszObjectName 和 lpszPropertyName是什么意思? Fig. 1 Parameterization of Graphics Designer ( 25 KB ) n

这里是简写符 lpszPictureName, lpszObjectNamelpszPropertyName出现的地方。这三个简写符均给出有关脚本运行位置的信息。因此在以运行系统中,图形系统提供如下信息:n


  • lpszPictureName 图片名
  • lpszObjectName 对象名
  • lpszPropertyName 对象属性名

比如说,如果:n


  • 在一幅图片中"SAMPLE_PICTURE"
  • 在I/O域中 放有“IO Field1”,“IO Field2”和“IO Field3”并且
  • 在属性中脚本I/O域的“OutputValue”为简单的脚本

当你在运行系统中选择图片“BEISPIELBILD”时,return lpszPictureName;‘, ‘return lpszObjectName;‘ 或 ‘return lpszPropertyName;‘运行,在I/O域中显示输出值"SAMPLE_PICTURE","IO Field2"或“OutputValue”:n

lpszPictureName,lpszObjectName 和 lpszPropertyName是什么意思? Fig. 2 Runtime ( 2 KB ) n

这里需注意,图片名和对象名可在组态中按所希望的预先组态好,但属性名由系统预定义并以英文显示。(这就是为何在I/O域 3 中为英文输出值而非德文)n

注意事项:

在实例中所示的德文术语“BILDFENSTER”,“EA-Feld1”“BEISPIELBILD”其含义分别为:“图像窗口”,“I/O域”和“实例图片”。n

如果现在将简单的对像动作 'return lpszPictureName' 附到一个I/O域的对象属性输出中,就可以把它储存到库中并且,再从那里不做任何改变的将它插入到任何想要插入的图片中。然后在运行系统中,每次所选图片的名字将被显示。n

脚本函数的寻址
通过浏览器,WinCC图形编辑器提供了大量的 C 函数,在那里可以将其标记,选择,参数化及建立到一个脚本中。在下面的实例中,画面中有一个按钮,这个按钮用来在点击鼠标时改变对象的背景色。完成这一步可采用的函数是 SetBackColor(..),把它从功能浏览器中选出然后传送到“鼠标单击脚本”。如果是标准参数,则函数开始看来象:n

SetBackColor(lpszPictureName,lpszObjectName,lBackColor);

第一个参数指出要改变背景色的对象位于哪一幅图片。第二个参数指出对象名,第三个参数则为颜色值,在这个实例中,颜色值已被设置为CO_RED:n

lpszPictureName,lpszObjectName 和 lpszPropertyName是什么意思? Fig. 3 Addressing in the script ( 28 KB ) n

现在,在本例中,前面的两个参数保持不变。脚本被附到图片中的按钮上,使系统可在运行时传送按钮对象名及用lpszObjectNamelpszPictureName 传送图片名。这样,改变颜色的名称通过按钮本身可完成。如果用一个不同的对象名替换第二个参数 lpszObjectName,那么那个对象的颜色就会随它而改变(见图4):n

lpszPictureName,lpszObjectName 和 lpszPropertyName是什么意思? Fig. 4 Addressing to other objects ( 9 KB ) n

在图像边界外寻址

在函数 SetBackColor( lpszPictureName, "IO Field2", CO_RED )中,当然可以给图片指定任何想要的名字,这个名字以后会替换 lpszPictureName 的缺省参数。如果在一个图片窗口中放了一幅图片,而该图片中又调用了另一个图片的话,这种做法很有用。n

例如,如果在指定的第二幅图片中(这里是“SAMPLE_PICTURE2”),里面放置了一个I/O域。该I/O域的输出值附有对象动作'return lpszPictureName;' ,而且该图片以后被在图片窗口中的 "SAMPLE_PICTURE"图中调用。那么在运行时你可看到:n

lpszPictureName,lpszObjectName 和 lpszPropertyName是什么意思? Fig. 5 Addressing in picture windows ( 4 KB ) n

现在在SAMPLE_PICTURE2 的 I/O 域中可看到图片名SAMPLE_PICTURE.SAMPLE_PICTURE1:SAMPLE_PICTURE2。这就是lpszPictureName,是图片在图片窗口中被调用时图形系统将它返回到输出值中。 这里可看到寻址时创建的路径。

假定在图像中有一个图片窗口,在这个窗口中通过同样的输出脚本 'return lpszPictureName'调用了另一幅名为SAMPLE_PICTURE3 的图片,那么就会显示出简写符SAMPLE_PICTURE.SAMPLE_PICTURE1:SAMPLE_PICTURE2.SAMPLE_PICTURE1: SAMPLE_PICTURE3。因此,命名的一般规则为:

[图像名 1].[图像窗口名 1]:[图像名 2].[图像窗口名 2]: ... .[图像窗口名(n-1)]:[图像名(n)]

如果现在想用SAMPLE_PICTURE 图片中的按钮来改变SAMPLE_PICTURE2 图片中I/O域的颜色,可选择脚本命令:
SetBackColor("SAMPLE_PICTURE.PICTURE_WINDOW1:SAMPLE_PICTURE2","IO Field1",CO_RED);

另一个选件显示在图6中。

lpszPictureName,lpszObjectName 和 lpszPropertyName是什么意思? Fig. 6 Addressing acquired function parameters ( 10 KB )

这里脚本中目标由发出调用的图像的名,图像窗口的名和被 GetPictureName()所采集到的,并被在该图像窗口里调用的图像名所组成。该目标是图像窗口的一个对象属性。这是在运行时首先采集函数参数,然后又执行它们的一个实例。

函数 SetBackColor()只是使用 lpszPictureName, lpszObjectNamelpszPropertyName这些缺省参数的众多函数中的一个。

步骤是相同的:

  • SetOutputValueDouble(lpszPictureName,lpszObjectName,dValue) ? 将浮点值写入一个I/O域中。
  • SetLeft(lpszPictureName, lpszObjectName,dwValue) ? 设置一个对象的 X 轴位置。
  • 通过函数浏览器还可以在脚本中使用其它许多的函数。要操作的属性已包含在这些函数的名字中。如:SetOutputValueDouble() 中的OutputValueSetLeft()Left

通过 SetPro.(..) 函数中的浏览器,也可找到他们的一般形式:

SetPropBOOL (lpszPictureName, lpszObjectName, lpszPropertyName, Value);
SetPropChar (lpszPictureName, lpszObjectName, lpszPropertyName, Value);
SetPropWord (lpszPictureName, lpszObjectName, lpszPropertyName, Value);
SetPropDouble(lpszPictureName, lpszObjectName, lpszPropertyName, Value);

这些函数总是跟在询问:在哪幅图片中的哪个对象上,应该写哪一种属性(或通过GetProp读取哪一种属性)之后。因此函数调用
SetBackColor("PICTURE_WINDOW", "IO Field1", "CO-RED");

具有同SetPropWord("PICTURE_WINDOW", "IO Field1", "BackColor", "CO-RED")完全一样的含义。

关键词
对象寻址

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc332070.html

(6)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论