首页 > 技术文章 > 搬家第一天-8.WinccV7.3多语言项目制作方法

fishingsriver 2021-01-29 11:24 原文

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,可以分配国旗图片使界面好看一点。

推荐阅读