今天有群友在QQ上咨询怎么在wincc上实现点动效果,就是鼠标按下画面上的按钮,数值增加/减少,鼠标一松开就停止增加/减少;鼠标按下按钮bool变量就置位,鼠标一松开就复位(就像现场点动设备一样)。其实这个还是很好实现的,本例子是在下位机和上位机结合实现效果。
新建一个S7 300的PLC,启用时钟存储器,建立以下符号表,允许操作员监视:
OB1写入以下程序:
插入PC Station,编译将变量传送到wincc,在wincc中将逻辑设备设置为PLC模拟器。新建wincc画面,插入三个按钮,分别用于点动增加TestINT、点动减少TestINT、点动置位Start。
点动增加TestInt按钮的鼠标左键按下vbs脚本为:
Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim btn_up
Set btn_up=hmiruntime.Tags("S7$程序(1)/btn_up")
btn_up.Write 1
End Sub
释放左键vbs脚本为:
Sub OnLButtonUp(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim btn_up
Set btn_up=hmiruntime.Tags("S7$程序(1)/btn_up")
btn_up.Write 0
End Sub
点动减少TestINT按钮的鼠标左键按下脚本为:
Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim btn_dn
Set btn_dn=hmiruntime.Tags("S7$程序(1)/btn_dn")
btn_dn.Write 1
End Sub
释放左键vbs脚本为:
Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim btn_dn
Set btn_dn=hmiruntime.Tags("S7$程序(1)/btn_dn")
btn_dn.Write 0
End Sub
点动Start按钮的左键按下vbs脚本为:
Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim btn_Start
Set btn_Start=hmiruntime.Tags("S7$程序(1)/Start")
btn_Start.Write 1
End Sub
释放左键vbs脚本为
Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim btn_Start
Set btn_Start=hmiruntime.Tags("S7$程序(1)/Start")
btn_Start.Write 0
End Sub
画面上放置一个输入输出域,绑定TestInt变量,放置一个圆,背景颜色绑定Start,保存运行,通过点击几个按钮就可以看到效果了。如果希望点动的步伐快/慢一点,可以通过下位机程序调整增加/减少量或者使用其他时钟存储器改变变化频率来实现。