系统功能SFC14、SFC15..

PROFIBUS教程(十三)——系统功能SFC14与SFC15

?

作者: PLC-CNC 发表于: 现场总线 回复 QQ留言 收藏此帖 发表日期: 2010-06-03

18:14

? 关键字:PROFIBUS SFC14 SFC15 教程 PROFIBUS教程

在STEP7中的I/O存取命令不允许用单字节、单字或双字命令去存取具有3个或大于4字节的相连续的DP数据区域(模块)。为了存取这种封闭结构的相连续的数据区域,使用系统功能DPRD_DAT和DPWR_DAT。

一、系统功能SFC14 DPRD_DAT

为了读一个DP从站的相连续的输入数据区域,使用系统功能SFC14 DPRD_DAT,每个读存取涉及一个专用输入模块。如果一个DP从站有若干个相连续的输入模块,则必须为所要读的每个输入模块分别安排一个SFC14调用。表1列出了你必须定义的SFC14的输入和输出参数。

表1 SFC14 DPRD_DAT的参数

参数 LADDR 说明 INPUT 数据类型 存贮器区域 WORD (不变的) RET_VAL OUTPUT RECORD OUTPUT 参数描述 RECORD

参数RECORD描述在S7 CPU上用于从DP从站读取的相连续输入数据的目的区域。在这里你定义的长度必须与用HW Config程序为DP从站的输入模块所定义的长度相一致。请注意,RECORD参数属于数据类型ANY-Pointer。对于ANY-Pointer只允许的数据类型是BYPE。 RET_VAL

表2 中指出了系统功能SFC14的参数RET_VAL的出错代码。

表2 SFC14 DPRD_DAT的参数RET_VAL返回值

INT ANY I,Q,M,D,L I,Q,M,D,L

描述 站的输入模块开始地址规定 (十六进制格式) SFC的返回值 所读用户数据的目的区域 I,Q,M,D,L 用HW Config组态的DP从出错代码 W#16#… 0000 8090 8092 8093 80A0 80B0 80B1 808x 80B2 80B3 80C0 80C2 80Fx 87xy

二、系统功能SFC15 DPWR_DAT

说明 无错误发生 对于指定的逻辑基本地址没有模块被组态或超出对于连续的数据所允许的长度 在数据类型ANY-Pointer参数中指出类型不是BYPE 由LADDR指定的逻辑地址,不存在可以从中读取连续的数据的模块 所选择的模块有缺陷 在外部DP接口上从站故障 指定的目的区域的长度与通过HW Config指定的用户数据长度不一致 对于外部DP接口系统出错 对于外部DP接口系统出错 ‥ ‥ ‥ ‥ ‥ ‥ ‥ ‥ ‥ ‥

从S7 CPU传送一个连续的输出数据到DP从站,使用系统功能SFC15 DPWR_DAT。每个写存取涉及一个专用的输出模块。如果DP从站有若干个连续的数据输出模块,则对每个要写入的输出模块必须分别安排一个SFC15调用。表3指出了必须定义的SFC15的输入和输出参数。

表3 SFC15 DPWR_DAT的参数

参数 说明 数据类型 LADDR INPUT WORD I,Q,M,D,L(不变的) 用HW Config组态的DP从站的输出模块开始地址存贮器区域 描述 的规定(十六进制格式) RECORD RET_VAL 参数描述 RECORD

参数RECORD描述要从S7 CPU写入DP从站的连续的输出数据的源区域。在这里指定的长度必须与用HW Confi组态的DP从站的输出模块的长度相一致。请注意,参数RECORD属于数据类型ANY-Pointer,对于ANY-Pointer只允许是数据类型BYTE。

RET_VAL

表4中列出了SFC15的参数RET_VAL出错代码。

表4 对SFC15 DPWR_DAT规定的返回值

出错代码 W#16#… 0000 8090 8092 8093 80A1 80B0 80B1 80B2 80B3 80C1 未出现错误 对于指定的逻辑基准地址没有模块被组态的模块或超出所允许的连续的数据长度 在数据类型ANY-Pointer参数中指出类型不是BYPE 由LADDR指定的逻辑地址,不存在可以对它写入连续的数据的模块 所选择的模块有缺陷 在外部DP接口上从站故障 所指定的源区域的长度与通过HW Config组态指定的用户数据长度不一致 对于外部DP接口系统出错 对于外部DP接口系统出错 在模块上先前写作业的数据还未被模块处理完 说明 OUTPUT OUTPUT

INT I,Q,M,D,L ANY I,Q,M,D,L 所要写的用户数据的源区域 SFC的返回值

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4