广东湘恒智能科技有限公司
主营产品: 西门子PLC代理商,plc变频器,伺服电机,人机界面,触摸屏,线缆,DP接头
SIEMENS西门子云南省红河哈尼族彝族自治州(授权)伺服电机一级代理商——西门子西南总代理

(字节4),内存区域(字节6),位和字节的地址。

·        ANY 参数类型的格式

·        POINTER 参数类型的格式

下表包含一些关于如何配置含有ANY指针的ANY类型参数的功能块的例子:


No.

示例

1

功能块中的系统功能的参数化
 下面的例子将说明如何为系统功能 SFC50 “RD_LGADR” (读取模块逻辑地址)参数化 ANY 指针。例如对于功能块 FB1,按下述步骤编程:

1.      声明一个输入变量“test”和一个临时变量“test2”为 ANY 类型(图01)。

2.      例如,把 SFC50 的参数“PEADDR”传递给变量“test2”(图02)。 

3.      通过判断 ANY 指针“test”,能够传递临时变量“test2”的数据。

    
                                                           
 图01

语句 L P##test先把地址加载到 Accu1,然后通过语句 LAR1把地址加载到地址寄存器 AR1 (可简写为:LAR1 P##test)。每次读取地址寄存器 AR1 并存储数据(例如 T  LW0)到临时变量“test2”(ANY 指针)中。Network 1 中的语句复制数据传送到功能块 FB1 的 ANY 数据到临时变量“test2”。



 图 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" 功能间接的传送数据区。以下示例说明如何参数化:

1.      指针在 OB100 中初始化。在本例中,DB1 的 2 个 WORD(从地址 50.0 开始)到 DB2 (从地址 10.0 开始)。

2.      将读出地址的指针装在第一个块中。

3.      第二个块是为了初始化传送长度。下一个块中,目标地址被写在数据块中。

4.      接下来的两个块与块运行无关,只是为了观察目的地址的数据变化。

图. 05

5.      于是"IBLKMOV" (FC 81) 在 OB1 中被调用。

6.      标志位 M0.0 作用是为了只调用一次块。

7.      标志位 M10.1 确认数据记录传送无误。

8.      "S_DATA", "LEN" 和 "D_DATA"的变量必须以指针格式输入。这意味着变量 "P#DB1.DBX0.0" 被输入到 "S_DATA" 参数。 指针 "P#DB1.dbx10.0"  输入到 "LEN" 参数,而指针符号 ("P#DB1.DBX20.0")  作为在前面的位地址也写到  "D_DATA" 参数输入。 在屏幕显示里指针标识  (P#) 不是必要的。

9.      最后输入的变量是标识传送数据的数据类型。在本例中,以参数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),所以必须调整上面描述的例子在相应的程序中。


展开全文
相关产品
拨打电话 微信咨询 发送询价