3. 语言环境与区域设置规划

WinCC 多语言项目能否稳定运行,很大程度上取决于运行 HMI 的 Windows 系统本身是否具备对应的语言能力。很多“画面文字变成方框”“中文显示为问号”“输入法打不出汉字”“日期格式与项目不一致”等问题,根源并不在 WinCC 工程,而在操作系统的区域、语言包、字体和输入法没有规划好。本节从工程实施角度,说明如何为多语言 HMI 规划一套可复现的 Windows 语言环境。

一、先理解乱码产生的三条链路

在 Windows 上显示一段文字,需要经过“字符编码 → 字体字形 → 区域格式”三个环节。任何一环缺失,都会表现为显示异常:

  • 编码链路:文本以 Unicode(UTF-16)或本地代码页(如 GBK、Shift-JIS、Windows-1252)存储。若系统缺少对应代码页或“非 Unicode 程序语言”设置不匹配,就会出现乱码。
  • 字体链路:字符编码正确,但当前字体不含该字符的字形(glyph),就会显示为方框(□)或替代符号。例如用只含拉丁字形的字体显示中文。
  • 区域格式链路:日期、时间、小数分隔符、货币符号由“区域格式”决定。若 HMI 项目按德语习惯使用逗号作小数点,而系统区域是中文,数值显示就会与预期不符。

因此,规划语言环境不是“装个语言包”这么简单,而是要让这三条链路同时满足项目涉及的所有语言。

二、Windows 区域与语言包配置

以 Windows 10/11 专业版或 Windows Server 为例,配置路径为“设置 → 时间和语言 → 语言和区域”。关键动作包括:

  1. 添加显示语言:在“语言”中依次添加项目需要的语言,例如“中文(简体,中国)”“英语(美国)”“德语(德国)”。添加后系统会下载对应的语言包与基本字体。
  2. 设置 Windows 显示语言:决定操作系统界面语言。HMI 运行机通常建议设为现场操作员最熟悉的语言,但这与 WinCC 项目语言相互独立。
  3. 配置“管理语言设置”:在“区域”对话框的“管理”选项卡中,设置“非 Unicode 程序的语言”。这一项对老版本 WinCC 和部分第三方控件尤其重要。若项目主要使用中文,应设为“中文(简体,中国)”;若现场以德语为主,则设为“德语(德国)”。
  4. 复制设置到欢迎屏幕和新用户:勾选“欢迎屏幕和系统账户”与“新用户账户”,避免不同登录账户下区域设置不一致。
建议在项目初期就确定“系统区域”和“非 Unicode 程序语言”,并在所有 HMI 运行机上保持一致。后期更改“非 Unicode 程序语言”通常需要重启,且可能影响已安装软件。

三、字体规划:让每种语言都有字形可用

WinCC 画面中的文本、按钮、报警消息最终都由字体渲染。多语言项目应遵循“一套字体覆盖多语言”或“按语言切换字体”两种策略之一。

常用字体覆盖情况如下:

字体适用语言说明
Microsoft YaHei(微软雅黑)中文简体、英文中文项目常用,字形清晰
SimSun(宋体)中文简体兼容性好,但小字号发虚
Arial / Segoe UI英文、德文等拉丁语言不含中文字形
Microsoft JhengHei中文繁体繁体项目使用
Meiryo / MS Gothic日文日文项目使用
Arial Unicode MS多语言覆盖字形全但体积大,需确认授权

在 WinCC 中,字体设置位于画面对象的“属性 → 字体”,以及“图形编辑器 → 选项 → 设置 → 字体”中。建议为每种项目语言定义统一的字体方案,例如中文用“微软雅黑 12pt”,英文用“Segoe UI 12pt”,并在项目文档中记录,避免不同工程师各自为政。

需要特别注意的是:如果画面中使用了自定义字体或第三方字体,必须确认该字体已安装到所有 HMI 运行机,否则运行时会回退到默认字体,导致布局错位或方框。

四、输入法配置

多语言 HMI 往往需要操作员输入不同语言的文本,例如中文注释、英文设备名。输入法规划包括:

  • 为每种需要输入的语言安装对应输入法,如中文拼音、英文键盘、德文键盘布局。
  • 在“语言和区域”中设置默认输入法,并配置“允许我为每个应用窗口使用不同的输入法”选项,避免切换混乱。
  • 若 HMI 运行在触摸屏上,应测试软键盘是否支持目标语言,必要时安装第三方触摸键盘。
  • 对于只读画面,可禁用输入法切换,减少误操作。

五、配置流程与验证

下面用一张图概括从系统区域到 WinCC 项目验证的完整关系。图中左侧是 Windows 系统层,右侧是 WinCC 项目层,中间通过字体、代码页和区域格式连接。

Windows 语言环境与 WinCC 多语言项目关系图 Windows 系统层 区域与语言包 显示语言 / 非 Unicode 程序语言 代码页:GBK / 1252 / 932 字体库 微软雅黑 / Segoe UI / Arial Unicode 字形覆盖:中文、拉丁、日文 输入法 中文拼音 / 英文键盘 / 德文布局 默认输入法 / 触摸软键盘 区域格式 日期:yyyy-MM-dd / dd.MM.yyyy 小数分隔符:. 或 , WinCC 项目层 项目语言设置 运行时语言 / 编辑语言 语言切换按钮 画面文本与字体 对象字体属性 / 字体方案 多语言文本表 报警与消息 报警文本多语言 消息类别 / 字体 运行验证 切换语言 / 检查方框与问号 日期数值格式核对 连接 字体 代码页 区域格式 输入法

验证时,建议按以下顺序检查:

  1. 在 Windows 中切换到每种项目语言,确认系统界面和输入法正常。
  2. 打开 WinCC 项目,切换运行时语言,逐屏检查文本是否显示为方框或问号。
  3. 检查数值显示:例如设定值 1234.56,在中文区域应显示为“1234.56”,在德语区域应显示为“1234,56”。
  4. 检查日期时间:中文区域常用“2025-01-15”,德语区域常用“15.01.2025”。
  5. 在触摸屏上测试软键盘输入,确认能输入目标语言字符。
若发现方框,优先检查字体是否包含该语言字形;若发现问号或乱码,优先检查“非 Unicode 程序语言”和代码页;若数值格式异常,优先检查 Windows 区域格式与 WinCC 项目设置是否一致。

六、工程实施建议

为了让多语言 HMI 项目可维护,建议在项目初期建立一份“语言环境配置表”,记录每台 HMI 运行机的操作系统版本、已安装语言包、非 Unicode 程序语言、默认字体方案和输入法。示例字段如下:

设备编号操作系统显示语言非 Unicode 程序语言默认字体输入法
HMI-01Windows 10 LTSC中文(简体)中文(简体,中国)微软雅黑 12pt中文拼音
HMI-02Windows 10 LTSC德语(德国)德语(德国)Segoe UI 12pt德文键盘

此外,若项目需要在中、英、德三种语言间切换,建议统一使用 Unicode 字体(如 Arial Unicode MS 或微软雅黑),避免为每种语言单独指定字体导致布局差异。对于报警消息,应在 WinCC 报警记录中为每条消息填写所有项目语言的文本,而不是只填默认语言。

最后,语言环境规划不是一次性工作。操作系统更新、语言包升级、字体替换都可能影响显示效果。建议在项目交付前,用一台“干净”的运行机完整走一遍语言切换测试,把结果记录到验收文档中,作为后续维护的基线。