如何在 TwinCAT HMI TE2000 中翻译 PLC 字符串变量值

问题描述 投票:0回答:1

这个问题是关于倍福产品TE2000 | TwinCAT 3 HMI 工程。 (使用 v1.12.760.48 | 4024.47)

在 TwinCAT 3 HMI Engineering 中,可以使用按键定义转换。然后,这些键根据当前选择的语言解析为可读字符串,如下所述:

https://infosys.beckhoff.com/english.php?content=../content/1033/te2000_tc3_hmi_engineering/2669763595.html&id=88912909674610308

我的问题是如何对动态字符串值进行这些翻译。

给出一个用例:

我们的PLC代码的设置方式是一个模块有多个参数。参数是一种数据结构,具有该参数可用的所有数据(值/最小值/最大值/默认值/等...),因此可以轻松以统一的方式定义这些数据。这样,当从 PLC 代码(而不是从 HMI)设置参数时,我们还可以保证最小值和最大值的保护。

此参数实例还公开一个规范化 ID,它基本上是该上下文中该参数的名称。

这样做,也可以非常方便地为此创建用户控件,如下所示。 (该示例显示了 4 个 ParameterView 类型的用户控件) 请注意,箭头指向可视化 ID。

这个ID本质上是一个字符串参数,我不知道如何定义这个“动态”字符串的翻译。据我所知,没有内置的方法可以做到这一点。

对此问题的有效解决方案可能如下:

  • 定义本地化中每个参数的键,
  • 然后创建一个函数
    LocalizeParameter(parameterId) : Localization
    将参数键映射到本地化键。
  • 使用
    LocalizeParameter(binding to parameter.ID)
  • 创建函数绑定

在走这条路之前,我想讨论一下这是否是正确的前进方向,以及我是否忽略了某些内置机制。

对此的任何帮助将不胜感激。

plc twincat
1个回答
0
投票

我通过使用内置函数 GetLocalizedText 解决了这个问题,然后提供参数的名称作为键。 如果本地化表中存在该键,则返回本地化参数名称。

我不知道这是否是最好的方法,但它确实有效。

© www.soinside.com 2019 - 2024. All rights reserved.