当前位置: 主页 > PLC控制

ANY指针

LAR1P##TEMP_Pointer//假设TEMP_Pointer地址是0.0
LW#16#1002//数据类型是字节
TLW[AR1,P#0.0]

L16//长度16
TLW[AR1,P#2.0]

L40//数据块是DB40
TLW[AR1,P#4.0]

L0
SLD3

ODDW#16#84000000
TLW[AR1,P#6.0]//起始指针

//这样就定义了一个ANY指针,指针表示DB40.DBB0——DB40.DBB15的一段数据。
******************************************************************************************************
L1//假如把0改为1,下面指针表示区域的其实地址也随之变化
SLD3

ODDW#16#84000000
TLW[AR1,P#6.0]//起始指针
指针表示DB40.DBB1——DB40.DBB16的一段数据。

******************************************************************************************************

TEMP_Array和TEMP_Pointer都是数组类型的。
下面语句是将TEMP_Array内的数据传递给TEMP_Pointer

CALL"BLKMV"//SFC20
SRCBLK:=#TEMP_Array
RET_VAL:=#TEMP_RetVaLUe
DSTBLK:=#TEMP_Pointer

ANY指针是表示一段长度的数据。
以上是对ANY指针的一些理解,帮忙看看吧。

最佳答案

恭喜你,有很大进步,理解基本无误。
但是有一点,需要注意,最后是
??T?LD[AR1,P#6.0?]?????????????????//LAR1????P##TEMP_Pointer???????
采用这个语句的话,对
TEMP_Pointer?的地址就没有要求了。
假设,如果不采用这个语句,也是可以的,不过赋值必须这样来对ANY分析了。
Lw#16#1002
TLw0
L???16?????????????????????????????????//长度16
T?LW2
L?40??????????????????????????????????????
T?LW4
L?0
SLD?3
OD??DW#16#84000000
T?LD6

提问者对于答案的评价:
谢谢

专家置评

已阅,最佳答案正确。

  • 关注微信

猜你喜欢

微信公众号