高手帮我看看这段指针程序

FB块里的程序。
LAR1  P##CSW_AREA
   L     W [AR1,P#0.0]
      T     #_DB
      L     D [AR1,P#2.0]
#CSW_AREA:为此程序的  IN_OUT  借口参数,他的变量类型还不懂。请看图1
#_DB:为临时变量    word
对寄存器指针还是懂些,但是对这几句一点不懂,个人觉得好像是把临时变量的值存到临时变量,但是后面程序中  #_DB被如下程序用到?
 OPN   DB [#_DB]
      L     P#DBX 0.0
      OD    
      LAR1  
      L     W [AR1,P#0.0]
      T     LW     0
很是不懂,请高手指导下

问题补充:
火麒麟  大侠万分感激您啊!
您的意思就是说这里的这个IN_OUT是指针类型了?
为什么这里不写成 pointer ,而是  Phase_SW,这是什么类型啊,我在下拉表里找不到啊?还有  Phase_StepW,TON 这两个类型又是什么意思?也在下拉表找不到???请大侠讲解下?谢谢了

图片说明:

高手帮我看看这段指针程序    高手帮我看看这段指针程序    高手帮我看看这段指针程序   

最佳答案

#CSW_AREA为Pointer类型参数。


想了解这段程序,需要了解Pointer指针类型的结构。Pointer为6个字节,前面2个字节存储DB的编号,后面4个字节存储具体地址。


LAR1  P##CSW_AREA:将CSW_AREA的首地址存入AR1
L     W [AR1,P#0.0]:取出前面2个字节,即首字。如前述,代表DB编号。
T     #_DB:付给临时变量,留作后用。


详细见附图:

图片说明:

高手帮我看看这段指针程序  

提问者对于答案的评价:
火麒麟- 谢谢您,您是讨论。
其他各位就没看清我问的什么,我如果没用过指针,不懂变量类型,也不会问这个问题,再怎么也做了快两年多设计与程序编制了,虽然不是很精。
关于在临时变量里建立  用户自定义类型的  你可以说说怎么做,不是在DB块里建?
有些复制粘贴的 链接 您也查查,现在还能打开不,但最后还是谢谢你们。

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

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

相关推荐