回复:求高手解答 step7 语句“ LAR1 P##T_DSTBLK”的作用??

n次看你的背影

  • 帖子

    2321
  • 精华

    73
  • 被关注

    53

论坛等级:奇侠

注册时间:2008-03-11

普通 普通 如何晋级?

发布于 2012-12-18 21:41:43

3楼

楼主:我是这样理解的,仅供参考:

LAR1 P##T_DSTBLK //在OB内紧接着声明表向下将T_DSTBLK 声明为any形参指针,
//此种用法系统会默认P#L20.0为any形参指针的首地址
L W#16#1002 //装载16#1002到ACCU1,16#10系统保留数值,16#02表示字节
T W [AR1,P#0.0] //将ACCU1里的内容16#1002写入LW20
L DW#16#140001 //装载16#140001到ACCU1,16#14表示20个数据,16#0001表示DB1
T D [AR1,P#2.0] //将16#140001写入LD22
L #OB10_OB_NUMBR //装载当前OB10的号码(10)到ACCU1
DEC 1 //当前ACCU1里面的内容减去1(10-1=9)
L 20 //将9移入ACCU2,装载20到ACCU1
*D //ACCU1×ACCU2=20×9=180存储在ACCU1
SLD 3 //将ACCU1的内容左移三位,能得到(16#5A0)=常数指针P#180.0
L DW#16#84000000 //将P#180.0移入ACCU2,装载16#84000000到ACCU1
XOD //ACCU1异或ACCU2,结果存入ACCU1=16#840005A0
T D [AR1,P#6.0] //将ACCU1的内容写入LD26

// --------------此时any形参指针P##T_DSTBLK赋值完成,它的内容为P#DB1.DBX180.0 BYTE 20--------------

CALL "BLKMOV"
SRCBLK :=P#L 0.0 BYTE 20
RET_VAL:=LW30
DSTBLK :=#T_DSTBLK

//此段程序的主要作用是将当前OB块声明表20个字节复制到DB1中,根据OB号码的不同,目标首地址会以20个字节作为偏移量。
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54621条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。