SM3_Basic.IAxisRef.GetAxisRefPointer 未按预期工作

SM3_Basic.IAxisRef.GetAxisRefPointer not working as expected

运行这里是“CODESYS V3.5 SP16”,有没有人和标题中的方法有同样的问题?

PROGRAM PLC_PRG
VAR
    itfAxisRef : SM3_Basic.IAxisRef;
    pAxisRefSm3 : POINTER TO SM3_Basic.AXIS_REF_SM3;
END_VAR
pAxisRefSm3 := itfAxisRef.GetAxisRefPointer;

尝试编译以上内容会引发以下错误

C0032:  Cannot convert type 'GETAXISREFPOINTER(sm3_basic, 4.10.0.0 (3s - smart software solutions gmbh))' to type 'POINTER TO SM3_Basic.AXIS_REF_SM3'

这让我很困惑,因为我以前从未见过 GETAXISREFPOINTER 类型,.GetAxisRefPointer 的文档指出它 returns POINTER TO AXIS_REF_SM3

https://help.codesys.com/webapp/3dvrBKsuKjYfmeP1KzrJnylfstc%2FGetAxisRefPointer;product=SM3_Basic;version=4.9.0.0

至于我为什么要尝试使用这种方法,我试图遍历 SM3_Robotics.AXIS_GROUP_REF_SM3 中的轴数组并将它们传递给 SM3_Basic.MC_ReadStatus 以获得它们各自的 SM3_Basic.SMC_AXIS_STATE(不仅是SM3_Robotics.SMC_AXIS_GROUP_STATE)用于调试

有没有更好的方法在不使用轴数组的情况下实现上述目标?

GetAxisRefPointer 是一个方法,试试:

pAxisRefSm3 := itfAxisRef.GetAxisRefPointer();