矩形中-事件-属性-几何,如何触发

在做一个矩形时,在其属性-几何中,对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
 

提问者对于答案的评价:
很详细,谢谢了,对下楼的,也表示感谢!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午9:51
下一篇 2019年6月11日 上午9:51

相关推荐

  • wincc脚本如何计时

    我有一个氧气电磁阀,我在wincc里做一个按钮,在做一个内部变量和I/O域,点击按钮,电磁阀工作,I/O域开始计时间,在点击按钮,时间停止并复位,但不知道怎么做。 最佳答案 最好是…

    SIMATIC WinCC 2019年6月11日
  • wincc遇到的变量连接问题

    要在wincc6.0中点击一个按钮使输入输出域加1,该怎么办呢? 最佳答案 WinCC全局库->Operation->IncrDecr-Buttons->Incr…

    SIMATIC WinCC 2019年6月10日
  • WInCC 7.0 改动项目移植后,怎么使用旧的变量记录?

    你好,请高手帮我看看。wincc 单独拷贝项目文件到另外的电脑进行修改,这期间的停止历史记录。修改外后再考到上位机时,怎么使用旧的历史记录文件呢? 最佳答案 数据文件直接…

    SIMATIC WinCC 2018年12月7日
  • WINCC报警记录

    在WINCC报警记录系统中,我想在一条消息中对应两个时间列,一个为消息到达时间,另一个则为消息离开时间,刚怎么样做才能达到了? 问题补充:长(短)期归档中,保存有该故障达到和离开的…

    SIMATIC WinCC 2019年6月11日
  • 报表编辑器得问题

    我在报表编辑器中用变量记录表格显示数据,但是发现我就算是添加2个变量,他总会跑到页面得最上面,页眉部分不动,这样得话,数据多得话,就会遮挡住了页眉。奇怪,在动态部分的变量记录表格怎…

    SIMATIC WinCC 2019年6月11日
  • 两个不同wincc系统之间的远程opc访问实现

    1.我将一台装有wincc的电脑作为opc服务器,另有一台装有wincc的电脑作为客户机,客户机远程通过opc访问服务器可以实现么,需要注意什么?2.如果可以,那一台opc客户机可…

    SIMATIC WinCC 2019年6月10日
  • 求wincc控制三盏灯顺序亮灭的脚本编程

    想要用wincc做一个用两个开关顺序控制三盏灯亮灭,按下点亮开关小灯依次点亮时间间隔为3s,按下熄灭开关小灯依次熄灭时间间隔为2s,求一个脚本的编程,最好C脚本和VBS脚本两种编程…

    2021年7月5日
  • wincc多个变量连接问题

    比如是这个情况:我的一个二进制开关变量连接一个流动水管,是可以用的;2,3个流动水管连接这个二进制开关变量也是可以用的,但是多个流动水管连接这个二进制变量,就会出现卡死,不能动,或…

    SIMATIC WinCC 2018年12月6日
  • VB脚本读取系统时钟

    定义Data&Time为内部变量,类型为8位文本,全局脚本如下Dim MyvalueSet MyValue = HMIRuntime.Tag…

    SIMATIC WinCC 2017年11月18日
  • wincc7.0怎么把“输入输出域”在画面上做成凹进去的感觉

    我每次做“输入/输出域”时只是改一下颜色,连接一下变量,然后放在位置上显示出来就ok了。可我上次见老外做成的感觉是凹进去的,挺好看的,我不知道怎么做出来这种效果,求指导啊~~Tha…

    SIMATIC WinCC 2019年6月11日