欢迎来到西门子工业支持中心网站!
欢迎来到西门子工业支持中心网站!
悬赏:5分 | 解决时间:2009-06-03 18:53
产品版区:
SIMATIC WinCC
tshli
在做一个矩形时,在其属性-几何中,对X/Y宽度、高度做了动态,用的C脚本,问如何触发这些动作。谢谢。
小程序:
最佳答案
在WinCC实例中有以下对象被引用:
描述 对象名称 属性
填充变量 "Level" 无符号8位数值, 下限: 0, 上限: 100
边界矩形 "Border" 几何: X=19, Y=39, 宽度=402, 高度=32
填充矩形 "LevelRect" 几何: X=20, Y=40, 宽度=400, 高度=30
颜色: 线颜色 = 背景颜色
注意:
对所有的动态都使用变量触发:
变量: "Level"
更新: "一旦改变"
选择1:动态值的范围
为下面的填充矩形设置动态效果。
图 01
位置X: 公式: 420 - (400/100 * 'Level')
宽度: 公式: 400/100 * 'Level'
图 02: 动态位置X
选择2:用C脚本作动态化
编号 描述:
1 属性"位置 X"的C脚本
#include "apdefap.h"
long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
int level;
level = GetTagByte("Level");
return 420 - ( orgWidth / 100 * level );
}
2 属性"宽度"的C脚本
#include "apdefap.h"
long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
int level;
level = GetTagByte("Level");
return 400 / 100 * level;
}
选择3: 用VB脚本作动态化
编 号 描述:
1 属性"位置 X"的VB脚本
Function Left_Trigger(Byval Item)
Dim level
Set level = HMIRuntime.Tags("Level")
Item.Left = 420-(400/100 * level.Read)
End Function
2 属性"宽度"的VB脚本
Function Width_Trigger(Byval Item)
Dim level
Set level = HMIRuntime.Tags("Level")
Item.Width = 400/100 * level.Read
End Function
结果:
图 03
条目号:12730269 日期:2008-05-15
http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&lang=zh&siteid=cseus&objid=12730269
回答者:
SG9
回答时间:2009-06-02 22:21
提问者对于答案的评价:
很详细,谢谢了,对下楼的,也表示感谢!
触发这些动作:
1.PLC里连接变量,做一段程序来触发动作。
2.wincc中在全局脚本中用C或VBS脚本触发变量。
WINCC全局脚本下:
http://download.gongkong.com/file/2007/4/15/WINCCquanjiaobenshouce.PDF
现赠您1张1847体验会员卡,可免费领取,畅学1847会员内容,是否领取?
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!