回复:FC1、FC2 ,FC5,FC6,FC50,FC60是干什么用的?

呛水的鱼

  • 帖子

    215
  • 精华

    0
  • 被关注

    4

论坛等级:侠客

注册时间:2008-06-27

普通 普通 如何晋级?

发布于 2009-02-11 15:37:46

0楼

FC1:含义

DP_SEND功能(FC)可将数据传送给PROFIBUS CP。根据PROFIBUS CP的不同模式,DP_SEND可能为下列含义:

?在DP主站上
该块将一个指定DP输出区的数据传送到PROFIBUS CP,以便将它输出到分布式I/O系统。

?在DP从站上
该块将在CPU中指定的一个DP数据区上的数据传送到PROFIBUS DP的发送缓冲区,以便将它传送到DP主站。

所指定的数据区可以是一个过程映像区、位存储区或数据块区。
当PROFIBUS CP可以接受整个DP数据区时,指示DP_RECV FC正确执行。
请牢记必须在用户程序中至少调用一次DP从站上的DP_SEND功能。(注意:这不适用于较新的CP类型!请注意CP手册中的信息)。

调用接口

一个STL表达式的调用实例:

STL 解释
========================================= ====================================
CALL FC 1
CPLADDR := W#16#0120
SEND := P#db17.dbx0.0 byte 103
DONE := M 98.1
ERROR := M 98.2
STATUS := MW 104
//调用DP_SEND功能

FC2:含义

DP_RECV功能(FC)接收PROFIBUS上的数据。根据PROFIBUS CP的不同模式,DP_RECV可能为下列含义:

?在DP主站上
DP_RECV接收状态信息和来自分布式I/O的过程数据,然后将它们输入到一个指定的DP输入区。

?在DP从站上
DP_RECV接收由DP主站从PROFIBUS CP的接收缓冲区发送的DP数据,然后将它们输入到CPU的一个DP数据区。

为接收数据所指定的数据区可以是一个过程映像区、存储位区或数据块区。
当PROFIBUS CP可以传送整个DP数据输入区时,执行无错执行该功能。
请牢记必须在用户程序中至少调用一次DP主站和DP从站上的DP_RECV功能。因此,在DP主站上,只需要调用该功能来接收数据。(注意:这不适用于较新的CP
类型!请注意CP手册中的信息)。

附加任务:输入状态字节

DP_RECV功能具有下列附加任务:

?更新DP状态字节DPSTATUS。在此,DP_RECV接管DP_DIAGnostics的任务。

如果没有组态任何接收数据,那么必须以255的长度调用DP_RECV,以更新DPSTATUS状态字节(这只适用于DP主站;对于DP从站,在没有数据时,不能读取状态字节)。
注意:对于较新的CP类型(请注意手册中的信息),还可以指定长度1。请牢记在执行作业时,将覆盖所指定的整个范围。

调用接口

STL表达式的实例:

STL 解释
========================================= ====================================
call fc 2
CPLADDR := W#16#0120
RECV := P#db18.dbx240.0 byte 103
NDR := M 99.1
ERROR := M 99.2
STATUS := MW 105
DPSTATUS:= MB 0 //调用DP_RECV功能

FC5:块的含义

AG_SEND / AG_LSEND功能将数据传送到PROFIBUS CP,用于在已组态的FDL连接上进行传输。
指定的数据区可以是一个位存储器区或一个数据块区。
当可以在PROFIBUS上发送整个FDL数据区时,指示无错执行该功能。
注意:
下面的信息均适用于FC AG_SEND和FC AG_LSEND。

调用接口

STL表达式的实例:

STL 解释
==================================== =========================================
CALL FC 5
ACT := M 20.0
ID := MW 22
LADDR := W#16#0100
SEND := P#db99.dbx10.0 byte 240
LEN := MW 24
DONE := M 20.1
ERROR := M 20.2
STATUS := MW 26
//调用AG_SEND块
//由存储位触发作业
//根据组态,连接ID
//=硬件配置中的LADDR 256(十进制数)
//带发送数据的缓冲区
//发送数据的长度信息
//已执行代码
//错误代码
//状态代码

FC6:块的含义

AG_RECV/AG_LRECV功能接收来自PRFIBUS CP的在已组态FDL连接上传送的数据。
为接收数据指定的数据区可以是一个位地址区或一个数据块区。
当可以从PROFBISU CP上接收数据时,指示无错执行。
注意:
下面信息均适用于FC AG_RECV和AG_LRECV。

调用接口

STL表达式的实例:

STL 解释
========================================= ====================================
call fc 6

ID := MW 30
LADDR := W#16#0100
RECV := P#M 10.0 BYTE 100
NDR := DB 100.DBX 0.6
ERROR := DB 100.DBX 0.7
STATUS := DB 100.DBW 2
LEN := DB 100.DBW 4
//调用AG_RECV功能

FC50:块的含义

AG_SEND / AG_LSEND功能将数据传送到PROFIBUS CP,用于在已组态的FDL连接上进行传输。
指定的数据区可以是一个位存储器区或一个数据块区。
当可以在PROFIBUS上发送整个FDL数据区时,指示无错执行该功能。
注意:
下面的信息均适用于FC AG_SEND和FC AG_LSEND。

调用接口

STL表达式的实例:

STL 解释
==================================== =========================================
CALL FC 5
ACT := M 20.0
ID := MW 22
LADDR := W#16#0100
SEND := P#db99.dbx10.0 byte 240
LEN := MW 24
DONE := M 20.1
ERROR := M 20.2
STATUS := MW 26
//调用AG_SEND块
//由存储位触发作业
//根据组态,连接ID
//=硬件配置中的LADDR 256(十进制数)
//带发送数据的缓冲区
//发送数据的长度信息
//已执行代码
//错误代码
//状态代码

FC60:块的含义

AG_RECV/AG_LRECV功能接收来自PRFIBUS CP的在已组态FDL连接上传送的数据。
为接收数据指定的数据区可以是一个位地址区或一个数据块区。
当可以从PROFBISU CP上接收数据时,指示无错执行。
注意:
下面信息均适用于FC AG_RECV和AG_LRECV。

调用接口

STL表达式的实例:

STL 解释
========================================= ====================================
call fc 6

ID := MW 30
LADDR := W#16#0100
RECV := P#M 10.0 BYTE 100
NDR := DB 100.DBX 0.6
ERROR := DB 100.DBX 0.7
STATUS := DB 100.DBW 2
LEN := DB 100.DBW 4
//调用AG_RECV功能

以上内容摘录自STEP7 V5.4中文版的帮助文件,希望对你有用。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54615条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。