发表于:2013/10/29 8:54:37
#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]
[/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]
我是廖常初,是一个高校的老师,曾在企业从事机械、电气技术工作,长期从事工业控制和PLC应用的教学、科研和工程应用工作。博客中的日志除注明外均为原创。愿意在此与大家探讨工控的问题!
廖常初工控博客地址:http://blog.gkong.com/blog.asp?name=liaochangchu
我曾写过几本小书: 《PLC编程及应用》第3版(S7-200)、《S7-300/400 PLC应用技术》第3版、《FX系列PLC编程及应用》第2版、《S7-200 PLC编程及应用》、《PLC基础及应用》第2版(FX系列大专教材)、《西门子人机界面(触摸屏)组态与应用技术》、《西门子工业通信网络组态编程与故障诊断》、《S7-1200 PLC编程及应用》第2版、《跟我动手学S7-300/400 PLC》、《跟我动手学FX系列PLC》
机械工业出版社廖常初图书专题:http://www.gkong.com/zt/liaochangchu/
廖常初工控博客地址:http://blog.gkong.com/blog.asp?name=liaochangchu
我曾写过几本小书: 《PLC编程及应用》第3版(S7-200)、《S7-300/400 PLC应用技术》第3版、《FX系列PLC编程及应用》第2版、《S7-200 PLC编程及应用》、《PLC基础及应用》第2版(FX系列大专教材)、《西门子人机界面(触摸屏)组态与应用技术》、《西门子工业通信网络组态编程与故障诊断》、《S7-1200 PLC编程及应用》第2版、《跟我动手学S7-300/400 PLC》、《跟我动手学FX系列PLC》
机械工业出版社廖常初图书专题:http://www.gkong.com/zt/liaochangchu/