这个问题是关于倍福产品TE2000 | TwinCAT 3 HMI 工程。 (使用v1.12.760.48)
在 HMI 项目中,我希望能够从 PLC 项目中的实例访问变量,该实例公开为 REFERENCE TO X。假设为 REFERENCE TO MyFB。
根据 Beckhoff 的说法,自 v1.12.748.0 以来,可以在 TwinCAT HMI 中解析引用(我使用的是 1.12.760.48):
1.12.748.0版本,引用、指针和接口指针 可以在HMI中解决。这使得可以访问 通过指针或引用指向的原始变量。这 通过指针或引用访问时可以读写。 已解析的指针或引用照常在下面列出 TwinCAT HMI 配置窗口中的变量
鉴于上面的解释,我怀疑 REFERENCE TO X 类型的变量会出现在 HMI 配置窗口中,并且可以访问 X 的成员。
然而,观察发现这只是部分情况。引用的变量正在显示,但我无法访问其成员,如下图所示:
只有接口指针似乎可以按预期工作,其中原始实例的成员可见(当然只有属性)
在查看 REFERENCE-TO-MyFB 的数据类型模式时,我注意到有一个属性
allowImplicitAccess
设置为 false。这很奇怪,因为我希望这是真的。
{
"allOf": [
{
"allowImplicitAccess": false
},
{
"$ref": "tchmi:server#/definitions/PLC1.MyFB"
}
],
"id": "tchmi:server#/definitions/PLC1.REFERENCE-TO-MyFB"
}
我尝试通过手动调整此文件来将此属性设置为 false:
{solutionFolder}{hmiProjectFolder}\Server\TcHmiSrv\TcHmiSrv.Config.default.json
(因为我找不到其他方法来调整架构。)
将其设置为 true 没有帮助,但删除该属性确实有效:
"PLC1.REFERENCE-TO-MyFB": {
"allOf": [
{
"$ref": "#/definitions/PLC1.MyFB"
}
]
}
引用的变量现在显示如我所料:
但是有一些烦恼:
我的问题是:是否需要启用一项设置才能允许成员访问 REFERENCE-TO-X 类型,或者是否有更好的解决方案来解决此问题?(同样适用于 POINTER-TO-X)为什么是默认情况下不允许访问这些成员,还是这是一个错误?
一些补充说明:
任何有关解决此问题的指导或见解将不胜感激。