该用什么指令可以直接实现呢 如果没有的话 我自己写的这段是否正确
L P##send_buffer
LAR1
L P##m_send_buffer
LAR2
L D [AR1,P#0.0]
T D [AR2,P#0.0]
L D [AR1,P#4.0]
T D [AR2,P#4.0]
L W [AR1,P#8.0]
T W [AR2,P#8.0]
最佳答案
实参到形参赋值的时候是OS自动赋值的!
单独的赋值指令是没有的。
你的 赋值过程是没有错误的,下面是STEP7 手册里的一段示例代码。
FUNCTION FC10: VOID
VAR_TEMP
Source : ANY;
Target : ANY;
END_VAR
BEGIN
LAR1 P#Source;
L B#16#10;
T LB[AR1,P#0.0];
L B#16#02;
T LB[AR1,P#1.0];
L 10;
T LW[AR1,P#2.0];
L 22;
T LW[AR1,P#4.0];
L P#DBX11.0;
T LD[AR1,P#6.0];
LAR1 P#Target;
L B#16#10;
T LB[AR1,P#0.0];
L B#16#02;
T LB[AR1,P#1.0];
L 10;
T LW[AR1,P#2.0];
L 33;
T LW[AR1,P#4.0];
L P#DBX202.0;
T LD[AR1,P#6.0];
CALL SFC 20 (
SRCBLK := Source,
RET_VAL := MW 12,
DSTBLK := Target
);
最后,给个建议,赋值的时候 最好按照ANY 的实际含义来进行赋值,这样看的清楚
L W [AR1,P#0.0] //头文件和数据类型
T W [AR2,P#0.0]
L W [AR1,P#2.0] //循环系数
T W [AR2,P#2.0]
L W [AR1,P#4.0] //DB号
T W [AR2,P#4.0]
L D [AR1,P#6.0] //指针
T D [AR2,P#6.0]
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc211291.html