admin管理员组

文章数量:1532525

2024年5月3日发(作者:)

WinCC flexible组态多国语言的切换

刘青华

【摘 要】该文主要介绍了使用VB脚本代码,通过TXT文本文件对人机界面的语言

进行字符替换,也就是使用TXT文本文件进行字符替换,以达到人机交换界面的多国

语言信息切换功能,同时该文也简单描述了在WinCC flexible基本实现代码.

【期刊名称】《中国新技术新产品》

【年(卷),期】2019(000)008

【总页数】2页(P24-25)

【关键词】WinCCflexible;脚本控制;TXT文本

【作 者】刘青华

【作者单位】华晨宝马汽车有限公司,辽宁 沈阳 110143

【正文语种】中 文

【中图分类】TP311

随着科学技术的进步和国际化的发展,自动化生产线的进出口逐年增加,由此促进

了制造业技术的升级,同时增加了自动化行业国内外之间的交流。在自动化生产线

的日常使用过程中,触摸屏作为重要的人机交互界面,在生产线上得到了广泛的应

用。尤其在复杂程度较高的设备上,触摸屏具有不可替代的地位,其灵活、方便、

直观等特点,可以显示丰富的内容。

但是由于操作者使用的语言不同,就需要将不同的语言信息显示在人机界面上。这

样,人机界面显示信息的多国语言切换问题就摆在了我们面前。笔者接下来将会把

在工作的过程中遇到的多国语言切换的几种方法介绍给大家,为大家在工作中遇到

同样问题时提供一些提示。

1 WinCC flexible自带切换功能

WinCC flexible本身是自带多国语言切换功能的。在日常工作中,如果需要切换

多国语言的话,就可以直接使用。具体操作步骤为:

首先,将需要的项目语言添加到项目里,在WinCC flexible项目的“语言设置”

中选择“项目语言”选项。

然后,在WinCC flexible所支持的语言列表里,选择需要添加的项目语言。象需

要在项目中添加英语,那么就在“英语(英国)”前面打上对勾。

第三,在“设备设置”中的“语言和字体”选项中就可以找到英语(英国)的选项,

在英语(英国)前面打上对勾,这样就可以在HMI设备上加载英语了。

当然这只是为了添加多国语言,在这之后我们需要在“项目文本”中输入对应的翻

译文本,从而完成多国语言用户界面的设置。

2 脚本控制语言切换

上面介绍的方法大部分的WinCC flexible的使用者都用过,这里只作简单的介绍。

在日常使用中还有一种情况是需要解决的,那就是I/O域的字符处理。因为有时

候,为了灵活的处理信息,有人习惯使用I/O域来显示报警信息和提示信息。这

样做的原因有很多,其中一点就是所有的信息编辑都是在PLC端完成的,这样修

改或添加信息只需要在PLC程序中完成,而不用修改HMI组态,这样有利于程序

的结构化编程。但是由于各种原因,经典的WinCC flexible I/O域配合DB块,

并不能很好的支持中文字符与ASCII之间的切换,遇到这种情况我们就可以使用

WinCC flexible的脚本编写一些代码,实现中外文信息文本的切换,这也是该文

详细介绍的一种方法。

3 脚本控制语言切换的代码实现

这种方法的具体想法是通过定义信息代码,然后根据信息代码将报警信息字符以固

定的格式保存在文本文件中,HMI通过脚本以信息代码为索引在相应的文本文件

中进行查询,并把与信息代码对应的文本信息显示在I/O域上。象我们把英语信

息保存在中,中文信息保存在中,这些文本文件中需要显示的信息

文本在*.TXT中,中文文件显示格式:“0001;气压报警”;英文文件显示格式:

“0001;Pressair alarm”。这样就可以根据HMI上选择的语言,通过WinCC

flexible的脚本功能,将文本信息显示在触摸屏I/O域内。下面将具体介绍实现这

个功能的WinCC flexible脚本代码。

首先,得到当前语言类型代码,这里 LanguageNumber为变量名,作用是获取

语言类型代码。一般情况下,使用前一定要在先定义好,定义变量的语句为:

“Dim LanguageNumber”。在后面的程序中,还会使用一些变量,因为篇幅有

限这里就不一一写出变量定义语句了。

LanguageNumber=ge

然后,根据得到的语言类型代码,确定当前runtime运行的语言类型。如果是

2052则代表当前显示语言为中文,2057则是英文。Language是字符串变量,

“CN”或者“EN”就是保存文本信息的文件名,后面会使用这个变量调用文件。

If LanguageNumber=2052 Then

Language="CN"

ElseIf languageNumber=2057 Then

Language="EN"

End If

准备文件操作,fileStream和filesystem的变量类型为文件。

Set fileStream=CreateObject("")

parator=-1

t="unicode"

Set fileSystem=CreateObject("stemObject")

在更新字符前,先删除显示的内容,TXT_Display是在WinCC中定义的字符串变

量,用以显示字符信息。

SmartTags("TXT_Display")=""

检查多国语言信息文件是否存在,如果文件不存在则退出脚本程序。

fileName_FixedText="C:"& language &".txt"

If (Not (ists(fileName_DetailledText)))Then

S m a r t T a g s("T X T_D i s p l a y")=f i l e N a m e_DetailledText&"

does not exist"

Exit Sub

End If

判断文件已经存在后,就可以查找并替换字符以完成文本的翻译。具体实现想法为,

将文本文件读出,然后使用Split函数将文本分隔为报警信息数组,然后对数组进

行操作,使用REPLACE函数根据报警编号进行字符替换。

读取翻译文件,将文本文件分割成字符串数组、分隔固定字符(报警号),分隔符

为换行回车。

omFile(fileName_DetailledText)

detailledTextArray=Split(xt(-1),vbCrLf)

这里detailledTextArray为已经分隔为每一条报警信息的字符串数组,这个数组

里包含报警号及报警信息。然后是处理信息显示的部分,"PLC_Message"为

PLC中的变量,保存的是当前需要显示的信息。首先得到的是需要显示信息的序

号。然后作循环,在信息文本中找到相应的信息号,然后将原有的信息替换为需要

显示的语言的信息文本。

plcMessage=SmartTags("PLC_Message")

Do Until(i>(UBound(detailledTextArray)-1))

If StrComp(Mid(plcMessage,1,4),Trim(Split(detailledTextAr

ray(i),";")(0)),0)=0

ThenmessageTranslated=Replace(plcMessage,Mid(plcMessage,5,20),Trim(S

plit(detailledTextArray(i),";")(1))

End If

i=i+1

Loop

然后将HMI的变量赋值,得到需要显示的结果。

SmartTags("TXT_Display")=translatedMessage

最后,关闭TXT文件流,这样程序的一些基本功能就实现了。

以上,就是使用TXT文本文件进行字符替换,以达到多国语言信息切换的一种实

现方法。该文介绍的是如果按照这种方式实现,则需要使用VB脚本代码。如果要

在WinCC flexiblee中完整实现功能,还需要一些错误的处理程序代码,才能保

证程序的稳定性及完整功能的实现。

参考资料

【相关文献】

[1]Guy 从入门到精通[M].北京:电子工业出版社,2008.

[2]何文雪.PLC编程与应用[M].北京:机械工业出版社,2010.

本文标签: 语言信息需要代码显示