维纶触摸屏程序实际项目,威纶通界面UI,复制可用,威伦通触摸EB Pro6.00以上版本均可用,ip和ie系列4.3寸7寸10寸均复制可用电子档
项目里用维纶通触摸屏做HMI开发,最头疼的就是不同尺寸屏幕适配和控件复用。最近在工业现场折腾了几个通宵,终于摸出一套靠谱的UI复用方案。直接上干货——先看这段屏幕尺寸自适应宏:
Sub Screen_OnLoad()
Dim baseWidth = 800 '基准分辨率宽度
Dim baseHeight = 480 '基准分辨率高度
ratioX = HMI.ScreenWidth / baseWidth
ratioY = HMI.ScreenHeight / baseHeight
For Each obj In Screen.Objects
obj.Left = obj.OriginalLeft * ratioX
obj.Top = obj.OriginalTop * ratioY
obj.Width = obj.OriginalWidth * ratioX
obj.Height = obj.OriginalHeight * ratioY
Next
End Sub
这个骚操作的关键在于每个控件都要预先保存OriginalXXX属性值。实测在EB Pro里,用VBScript遍历所有控件自动缩放,7寸切到10寸屏不用重新排布,特别是那些复杂的阀门动画组态,缩放后位置完全对得上。
遇到多台设备IP不同的情况,推荐用宏处理IP切换:
Sub SetPLC_IP(ip)
SmartTags("PLC_IP") = ip
If SmartTags("ConnectionStatus") = 0 Then
PLC.Connect
End If
End Sub
配合前端做个IP地址选择菜单,现场换设备直接点选就行,不用进菜单折腾。注意SmartTags要提前绑定好对应的PLC驱动参数。
元件库复用才是真生产力工具。建议把常用控件打包成自定义元件:
- 在元件属性里勾选"允许动态属性绑定"
- 导出成.ectl文件
- 新项目直接拖进来用
比如这个报警指示灯模板:
<CustomComponent>
<Property Name="AlarmTag" Type="Tag" Bindable="True"/>
<Script>
Sub Update()
If AlarmTag.Value Then
SetFillColor RGB(255,0,0)
Else
SetFillColor RGB(0,255,0)
End If
End Sub
</Script>
</CustomComponent>
跨项目拖拽使用时,只需要重新绑定下PLC标签地址,动画效果和交互逻辑都不用重写。实测在IP系列和IE系列触摸屏上通用,4.3寸屏的触控区域自动适配得很稳。
最后说个坑:用高版本EB Pro(比如V6.05)做完工程,如果要给低版本设备用,记得导出时选"兼容模式"。上周就因为这个,现场10寸屏死活不认工程文件,差点被甲方吊起来打。
工业现场摸爬滚打过的工程师都知道,维纶通触摸屏的界面开发总有些野路子。今天分享几个实战中验证过的UI模板,适用于EB Pro6.00及以上版本,从4.3寸的小屏到10寸大屏都能无缝迁移。先上硬货——直接可复用的控件脚本。
比如这个动态按钮的脚本,直接抄走不谢:
Sub UpdateButtonColor(buttonName As String, status As Integer)
If status = 1 Then
SetProperty(buttonName, "PenColor", 16711935) ' 骚紫色报警
SetProperty(buttonName, "FillColor", 255) ' 填充红色
Else
SetProperty(buttonName, "PenColor", 32768) ' 正常绿色边框
SetProperty(buttonName, "FillColor", 8454143) ' 浅灰填充
End If
End Sub
这脚本的精髓在颜色值的选取。维纶通的调色板用起来反人类,直接记RGB数值反而更实在。16711935这个魔数其实是#FF00FF的十进制值,比在里选色快得多。建议把常用颜色做成宏,全局调用省时省力。
多尺寸适配的秘诀藏在变量里。在画面属性里勾选"自动调整窗口大小",然后全局脚本里加这段:
Dim screenWidth As Integer
Dim screenHeight As Integer
Sub Screen_OnLoad()
screenWidth = GetSystemInfo("ScreenWidth")
screenHeight = GetSystemInfo("ScreenHeight")
SetProperty("MainWindow", "Width", screenWidth)
SetProperty("MainWindow", "Height", screenHeight)
End Sub
实测在MT8071iE(4.3寸)和MT8102iE(10寸)上都能完美铺满。注意控件位置要用百分比定位,别用固定坐标。比如把按钮的X设成screenWidth*0.2,比写死200px靠谱得多。
数据展示推荐用趋势图搭配透明背景。这个技巧很多老司机都不知道:
SetProperty("TrendView1", "BackStyle", 0) ' 背景透明
SetProperty("TrendView1", "GridColor", &H404040) ' 网格深灰色
SetProperty("TrendView1", "AxisColor", &H808080) ' 坐标轴中灰色
重点是把网格和坐标轴调成低饱和度颜色,这样叠加在设备背景图上不违和。实测在光照强的现场,这种灰阶显示比默认的黑色系更耐看。
最后送个调试神技——在任意位置插入调试信息输出:
Sub DebugLog(message As String)
WriteDataToFile "USB:\\debug.log", Now() & " - " & message & vbCrLf
End Sub
插U盘直接抓日志,比在线模拟器靠谱。遇到现场死机时,这招能救命。注意路径里的双反斜杠,维纶通的文件有时候会抽风。
这些代码块都是真实项目里抠出来的,直接复制到你的工程里改改就能跑。下次聊聊怎么用间接窗口实现五十个设备参数的复用界面,那才是真正的生产力核弹。
维纶触摸屏程序实际项目,威纶通界面UI,复制可用,威伦通触摸EB Pro6.00以上版本均可用,ip和ie系列4.3寸7寸10寸均复制可用电子档










被折叠的 条评论
为什么被折叠?



