登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:ANY指针可以这么用么?(一)

点击:329 回复:0

最近看到有个下面的帖子:
[/URL]
各位好,最近学习一下ANY指针,写了段测试代码,但是无法执行,请问是不是ANY指针不能这么使用呢?谢谢!
代码如下:    
      L     P##TEMP0
      LAR1  
      L     W#16#1001
      T     W [AR1,P#0.0]
      L     W#16#0
      T     W [AR1,P#2.0]
      L     W#16#0
      T     W [AR1,P#4.0]
      L     DW#16#81000000
      T     D [AR1,P#6.0]

      SET  
      A      [AR1,P#0.0]
      =     Q      0.0
下面是我的分析:
楼主上面这段代码实际上是在填写ANY的10个字节的值,虽然辛苦,做的却是无用功。问题在于他没有理解ANY的使用方法。
ANY是参数类型,只是用来作块的输入、输出参数。在调用逻辑块时, ANY用于将任意的数据类型传递给声明的形参。ANY的实参可以是单个的任意地址,也可以是一片连续的地址区,例如P#DB1.DBX0.0 INT 50(DB1中从DW0开始的50个整数)。但是ANY的10个字节的值是操作系统根据块的实参的值自动生成的,而不是用户生成的。我们可以用寄存器间接寻址读取ANY的10个字节中包含的大量信息,例如实参的基本数据类型,数据块的编号,重复因子(变量的个数),地址区的起始地址等等。
[/URL] [/URL]
13-10-29 08:54

工控新闻

更多新闻资讯