发布于 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中文版的帮助文件,希望对你有用。