描述:
参数类型 ANY 的字节长度是 10,并包含关于数据类型(字节1),重复因子或需传输的数据类型的长度(字节2 和3),数据块编号(字节4),内存区域(字节6),位和字节的地址。你可以在STEP7的在线帮助中找到相关的更多信息:n
- ANY 参数类型的格式n
- POINTER 参数类型的格式
下表包含一些关于如何配置含有ANY指针的ANY类型参数的功能块的例子:n
- Parameterization of a system function in the function block
- Dynamic supply of a data block to the ANY pointer and transfer of the DB number on an SFC84
- Parameterization of the function FC81 "IBLKMOV"
No. |
示例 |
1 |
功能块中的系统功能的参数化 下面的例子将说明如何为系统功能 SFC50 “RD_LGADR” (读取模块逻辑地址)参数化 ANY 指针。例如对于功能块 FB1,按下述步骤编程:n
- 声明一个输入变量“test”和一个临时变量“test2”为 ANY 类型(图01)。n
- 例如,把 SFC50 的参数“PEADDR”传递给变量“test2”(图02)。n
- 通过判断 ANY 指针“test”,能够传递临时变量“test2”的数据。
 图01n
语句 L P##test 先把地址加载到 Accu1,然后通过语句 LAR1 把地址加载到地址寄存器 AR1 (可简写为:LAR1 P##test)。每次读取地址寄存器 AR1 并存储数据(例如 T LW0)到临时变量“test2”(ANY 指针)中。Network 1 中的语句复制数据传送到功能块 FB1 的 ANY 数据到临时变量“test2”。n
 图 02
|
2 | 动态提供一个数据块给 ANY 指针并传输数据块编号给 SFC84 在下面列出的程序例子中,功能块 FB1 的输入参数(SRCBLK_DB_NO及DSTBLK_DB_NO)将数据块编号赋值给 ANY 指针临时变量(SRCBLK_ANY及DSTBLK_ANY)。这些变量然后被传送给 SFC84 。
图. 03 阐明了如何参数化 ANY 指针(临时变量)并将其传送给 SFC84。
 图. 03
例如,功能块 FB1 在组织块 OB1中被调用,FB1 被相应的 DB 编号参数化。
 图04
|
3 | 功能FC81 "IBLKMOV"的参数化 FC81 "IBLKMOV"功能间接的传送数据区。以下示例说明如何参数化:
- 指针在 OB100 中初始化。在本例中,DB1 的 2 个 WORD(从地址 50.0 开始)到 DB2 (从地址 10.0 开始)。
- 将读出地址的指针装在第一个块中。
- 第二个块是为了初始化传送长度。下一个块中,目标地址被写在数据块中。
- 接下来的两个块与块运行无关,只是为了观察目的地址的数据变化。
 图. 05
- 于是"IBLKMOV"(FC 81) 在 OB1 中被调用。
- 标志位 M0.0 作用是为了只调用一次块。
- 标志位 M10.1 确认数据记录传送无误。
- "S_DATA", "LEN"和 "D_DATA"的变量必须以指针格式输入。 这意味着变量 "P#DB1.DBX0.0"被输入到 "S_DATA" 参数。指针 "P#DB1.dbx10.0" 输入到 "LEN" 参数,而指针符号 ("P#DB1.DBX20.0") 作为在前面的位地址也写到 "D_DATA" 参数输入。在屏幕显示里指针标识 (P#)不是必要的。
- 最后输入的变量是标识传送数据的数据类型。在本例中,以参数B#16#04标识传送 "Word"类型的数据。
 图. 06
在 STEP 7 鼠标点击 FC81 然后按 F1 键以获取在线帮助中 FC 81 的更多信息。 |
注意事项:
为了能够把上述功能块 FB1用作多重背景,按下述步骤替换前两条语句(L P#test;和 LAR1;)。
No. | 程序 | 注释 |
1 | TAR2 | 将 AR2(多重背景)的地址写入 Accu1 |
2 | AD DW#16#00FF_FFFF | 隐藏不重要的信息 |
3 | LAR1 P##test | 把“test”的地址写入 AR1 |
4 | +AR1 | 将 Accu1(来自多重背景)的地址添加到“test”的地址中并最终写入 AR1 |
结果是 #test 变量的地址存入了地址寄存器 AR1 中。但是要注意到 AR1 的增加是有限值范围的 (-32768 ... +32767),所以必须调整上面描述的例子在相应的程序中,更多的信息参考下面的条目:
关键字:
间接寻址,PL (以前的本地数据)
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc333480.html