该用什么指令可以直接实现呢如果没有的话我自己写的这段是否正确
LP##send_buffer
LAR1
LP##m_send_buffer
LAR2
LD[AR1,P#0.0]
TD[AR2,P#0.0]
LD[AR1,P#4.0]
TD[AR2,P#4.0]
LW[AR1,P#8.0]
TW[AR2,P#8.0]
最佳答案
实参到形参赋值的时候是OS自动赋值的!
单独的赋值指令是没有的。
你的赋值过程是没有错误的,下面是STEP7手册里的一段示例代码。
FUNCTioNFC10:VOID
VAR_TEMP
SourCE:ANY;
Target:ANY;
END_VAR
BEGIN
LAR1P#Source;
LB#16#10;
TLB[AR1,P#0.0];
LB#16#02;
TLB[AR1,P#1.0];
L10;
TLW[AR1,P#2.0];
L22;
TLW[AR1,P#4.0];
LP#DBX11.0;
TLD[AR1,P#6.0];
LAR1P#Target;
LB#16#10;
TLB[AR1,P#0.0];
LB#16#02;
TLB[AR1,P#1.0];
L10;
TLW[AR1,P#2.0];
L33;
TLW[AR1,P#4.0];
LP#DBX202.0;
TLD[AR1,P#6.0];
CALLsfC20(
SRCBLK:=Source,
RET_VAL:=MW12,
DSTBLK:=Target
);
最后,给个建议,赋值的时候最好按照ANY的实际含义来进行赋值,这样看的清楚
LW[AR1,P#0.0]//头文件和数据类型
TW[AR2,P#0.0]
LW[AR1,P#2.0]//循环系数
TW[AR2,P#2.0]
LW[AR1,P#4.0]//DB号
TW[AR2,P#4.0]
LD[AR1,P#6.0]//指针
TD[AR2,P#6.0]
提问者对于答案的评价:
谢谢