回复:wincc按钮太多,可以用全局脚本实现吗?

城外之人

版主

  • 帖子

    8686
  • 精华

    18
  • 被关注

    218

论坛等级:至圣

注册时间:2003-09-23

钻石 钻石 如何晋级?

发布于 2014-05-05 10:04:12

8楼

以下是VBA组态代码

Sub Test()
Dim objButton As HMIButton
Dim objCs cript As HMIs criptInfo
Dim objDynDialog As HMIDynamicDialog
Dim sCode As String
Dim iIndex As Integer

'假设有100个按钮,名称为Button1、Button2、...、Button99、Button100
For iIndex = 1 To 100
'定义按钮对象
Set objButton = ThisDocument.HMIObjects("Button" & Format(iIndex, "#0"))

'鼠标按下动作
Set objCs cript = objButton.Events(2).Actions.AddAction(hmiActionCreationTypeCs cript)
objCs cript.SourceCode = " SetTagBit(" & Chr(34) & "PU0101_cc-on" & Chr(34) & ",1);"

'鼠标释放动作
Set objCs cript = objButton.Events(3).Actions.AddAction(hmiActionCreationTypeCs cript)
objCs cript.SourceCode = " SetTagBit(" & Chr(34) & "PU0101_cc-on" & Chr(34) & ",0);"

'按钮背景颜色
sCode = "'PU0101_yx'"
Set objDynDialog = objButton.BackColor.CreateDynamic(hmiDynamicCreationTypeDynamicDialog, sCode)
With objDynDialog
.ResultType = hmiResultTypeBool
.BinaryResultInfo.PositiveValue = RGB(128, 128, 128) 'Yes - 灰色
.BinaryResultInfo.NegativeValue = RGB(212, 208, 200) 'No - 按钮原来颜色
.Trigger.VariableTriggers(1).CycleType = hmiVariableCycleTypeOnChange
End With
Next iIndex
End Sub
无论成与败,无论甜与苦,我还是我。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32572条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。