水电电工知识
如何在STEP7中将IN、OUT和IN-OUT参数的ANY指针地址参数载入地址寄存器AR1?
2024-10-30  浏览:86
例如,语句“LAR1  P##PointerInput”在一个函数(FC)中是无效的(图. 01)。当输入一个命令或者试图保存一个块时将会得到如下错误信息:
30:9: "Compilation of the Network 1 is not possible, because it still contains invalid statements."

然而,同样的语句在一个功能块(FB)中是有效的。此错误信息只是次要信息,如果语句在保存时被标记成红色此信息就总是被显示出来。当将ANY指针载入到地址寄存器AR1和AR2 时,必须注意以下功能块和函数:

  • 在FB情况下,传输的ANY指针被保存到为其分配的情景数据块中。
  • 在FC情况下,传输的ANY指针被保存到调用的本地数据栈中。

ANY指针样例程序


图. 01

对于FB语句“LAR1 P##PointerInput”是有效的。

图. 02

在FC中,地址必须首先通过语句“L P#PointerInput”载入到Accu1中并从那里通过语句LAR1载入到AR1寄存器中。 FB和FC之间的不同之处是语句“LAR1 P##VariableName”

  • 在FC中只能访问TEMP变量(本地数据堆栈)。
  • 在FB中也能访问IN, OUT, IN-OUT和STAT变量。

图.03给出了在FC中如何访问一个TEMP变量的样例。

图. 03

图.04 给出了一个在FC中ANY变量(IN变量)的数据是如何传送的 样例。数据从地址寄存器AR1中传送到临时变量以作进一步的处理。例如,IN变量“Input”(类型 :ANY)的地址首先载入到Accu1并从那里再载入到AR1寄存器。基本地址能从地址寄存器AR1传送到临时变量“bit_adr”(类型:DWORD)。

 
图. 04

更多»您可能感兴趣的文章:
更多»有关 水电 电工维修 的产品:
  • 水电电工资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 陶瓷头条 空调头条 卫浴头条 洁具头条 油漆头条 涂料头条 地板头条 吊顶头条 衣柜头条 家居头条 老姚之家 灯饰之家 电气之家 全景头条 陶瓷之家 照明之家 防水之家 防盗之家 博一建材 卫浴之家 区快洞察 建材 深圳建材 香港建材 佛山建材 广州建材 东莞建材 惠州建材 南宁建材 崇左建材 来宾建材 河池建材 贺州建材 百色建材 玉林建材 贵港建材 钦州建材 防城港建材 北海建材 梧州建材 桂林建材 柳州建材
    (c)2015-2017 BO-YI.COM SYSTEM All Rights Reserved