Wincc 提供了多语言功能,此文本介绍了 Wincc 常用控件的双语言制作方法。项目在中文版wincc V7.3 平台开发,wincc 安装时,选择了英文(美国)和中文。程序只是实验多语言功能,不对单词拼写和语法做讨论。
1. 全项目语言修改
界面上放置两个按钮,一个用于转换成英文,一个用于转换成中文。转换为英文的 vbs 脚本 。
Sub OnClick(ByVal Item)
Dim objTrend,slider
Set objTrend=ScreenItems("OT") ‘在线趋势控件 HMIRuntime.Language =&H0409 ‘设置项目运行语言为英文 objTrend.TrendIndex =0
objTrend.TrendReName ="water flow" ‘设置趋势 1 文字显示 objTrend.TrendIndex =1
objTrend.TrendReName ="air water" ‘设置趋势 2 文字显示 Set slider=ScreenItems("slider1")
slider.caption="Water Flow" ‘设置滑块 1 头部文字显示 Set slider=ScreenItems("slider2")
slider.caption="Air Flow" ‘设置滑块 2 头部文字显示
Set objTrend=Nothing
Set slider=Nothing
End Sub
转换为中文的 vbs 脚本
Sub OnClick(ByVal Item)
Dim objTrend,slider
Set objTrend=Screenitems("OT") ‘在线趋势控
HMIRuntime.Language =&H0804 ‘设置项目运行语言为中文 objTrend.TrendIndex =0
objTrend.TrendRename ="水流量" ‘设置趋势1 文字显示 objTrend.TrendIndex =1
objTrend.TrendRename ="空气流量" ‘设置趋势 2 文字显示 Set objTrend=Nothing
Set slider=ScreenItems("slider1")
slider.caption="水流量" ‘设置滑块1 头部文字显示
Set slider=ScreenItems("slider2")
slider.caption="空气流量" ‘设置滑块 2 头部文字显示
Set objTrend=Nothing
Set slider=Nothing
End Sub
. 按钮控件
页面上添加按钮控件后,按钮属性‐字体‐文本,填写中文文字,然后页面菜单视图‐语言,选择英语(美国),按钮上文字会变成?,然后在按钮属性‐字体‐文本,填写英文文字。
3. 静态文本控件
页面上添加静态文本控件后,按钮属性‐字体‐文本,填写中文文字,然后页面菜单视图‐语言,选择英语(美国),静态文本文字会变成?,然后在静态文本属性‐字体‐文本,填写英文文字。
4. 滑块控件
滑块控件界面上只有顶部的文字标识涉及语言转换,这个转换不能仿照按钮和静态文本进行,需要编程(见 1.脚本)。
5. 弹出消息
在按钮的点击事件中加入以下VBS 脚本
Sub OnClick(ByVal Item)
If HMIRuntime.Language =&H0409 Then ‘如果是英文
Msgbox "this is a english message"
Else If HMIRuntime.Language =&H0804 Then ‘如果是中文
Msgbox "这是一条中文信息"
End If
End if
End Sub
其中HMIRuntime.Language 获取当前运行项目语言环境,&H0409为7.3 版本Wincc 英文语言代码,&H0804 为7.3 版本Wincc 中文语言代码,&H0804 为7.3 版本Wincc 中文语言代码,&H0804 为7.3 版本Wincc 中文语言代码,重要事件说三遍,因为网上查询不少结果说&H0404 是中文语言代码,那可能指的是是以前版本wincc。
6. 趋势和标尺表格控件
趋势控件运行时界面上无需修改参数,主要是标尺表格控件,其界面语言文字通过脚本修改。
7.. 在线表格控件和报警控件
在控件说在页面打开事件中,写入一下vbs 脚本Sub OnOpen()
Dim objtable
Set objtable=ScreenItems("OT")
If HMIRuntime.Language =&H0804 Then '如果当前是中文 '设置在线表格控件界面语言
objtable.valuecolumnindex =0 ‘设置在线表格控件数值列第 1 列
objtable.valuecolumnrename ="水流量" ‘数值列第1 列文字显示
objtable.valuecolumnindex =1 ‘设置在线表格控件数值列第2 列
objtable.valuecolumnrename ="空气流量" ‘数值列第 2 列文字显示
objtable.TimeColumnIndex=0 ‘设置在线表格控件时间列第1 列
objtable.TimeColumnRename ="日期/时间" ‘时间列第 1 列文字显示
Set objtable=Nothing
Else If HMIRuntime.Language =&H0409 Then '设置在线表格控件界面语言
objtable.valuecolumnindex =0 ‘设置在线表格控件数值列第1 列
objtable.valuecolumnrename ="Water Flow" ‘数值列第 1 列文字显示 objtable.valuecolumnindex =1 ‘设置在线表格控件数值列第 2 列
objtable.valuecolumnrename ="air Flow" ‘数值列第2 列文字显示
objtable.TimeColumnIndex=0 ‘设置在线表格控件时间列第1 列
objtable.TimeColumnRename ="Date/Time" ‘时间列第 1 列文字显示
Set objtable=Nothing
End If
End If
End Sub
报警控件需要在编辑状态下中英文两种语言环境输入消息文本信息,如下图。
8. 菜单控件
菜单控件做界面语言切换功能需要借助编程,新建一个项目模块,使用VBS 脚本添加动作脚本如下
Sub SwitchLanguage (Byval Item)
Dim language language=Item.userdata
HMIRuntime.Language =language
End Sub
设置英文的菜单项,用户数据填入&H0409,设置英文的菜单项,用户数据填入&H0804,,二者的脚本项为 SwitchLanguage,可以分配国旗图片使界面好看一点。