0

在这里运行“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的状态的文档.GetAxisRefPointerPOINTER 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)进行调试

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

4

1 回答 1

1

GetAxisRefPointer 是一个方法,试试:

pAxisRefSm3 := itfAxisRef.GetAxisRefPointer();
于 2021-12-28T16:51:02.353 回答