帮忙分析一下下面2块代码的含义

1.SFC20前面的数据传递起什么作用呢?加入我定义 #CommuDB_Num为100;
2.SFC20中源数据为#SenderBuffer,它是32个BYTE的ARRAY, 目标数据位#TargetData,它的类型为10个BYTE的ANY数据;它们长度不一致,可以传递??
3.注意#TargetData是临时变量,它获得#SenderBuffer送来的数据后怎么和具体的实际地址联系对应?(程序里#TargetData就这一处)

问题补充:
1.阿鸣回答的不对,#TargetData就此一处,说白了这段程序我想问的是#SenderBuffer的数据传递给了#TargetData,#TargetData又怎么传递给实际的变量地址呢?????
程序里其他的地方再无和#TargetData相关联的地方

图片说明:

帮忙分析一下下面2块代码的含义   

最佳答案

首先需明白ANY结构,它有十个字节组成,具体看手册。
(byte0 固定为10h for S7;byte 1为数据类型;byte2及byte 3
此数据类型数量;byte4及byte5表示如果存储区为DB块则
表示块号,其它类型为0;byte6表示存储区类别(I,Q,DB,M,DI,P,L,V)
byte7,8,9表示地址,地址以格式Byte.Bit存储,此处字节寻址存储在
字节7的位0 – 2,节字8的位0 – 7,节字9的位3 – 7。位地址存储在字
节9的位0 – 2。
#TargetData临时变量从LB26开始


程序解读:
L  16#10
T  LB 26  //#TargetData起始地址即byte0 为10h 
L  B#16#2
T  LB27   //  数据类型为BYTE型
L   32
T  LW28  //32个byte
L #COMMDB_NUM  
T  LW30    //即DB号,DB100
L  P#DBX0.0
T  LW32   //即复制的目标数据区为DB100.DBX0.0开始,32个字节
故长度是一致。

提问者对于答案的评价:
回答的太对了,太精彩了,虽然你的级别是新生,可是您的水平与态度是超过超级顾问的,希望专家们回答问题有针对性的回答,阿鸣是论坛里的2号人物,回答的简直是驴头不对马嘴,可能太忙了吧

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc243947.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日
下一篇 2018年12月1日

相关推荐