您的位置:控制工程论坛网论坛 » 人机界面 » 使用FB63 "TSEND", FB64 "TRCV", FB65 "TCON" 和FB66 "TD

wj321

wj321   |   当前状态:离线

总积分:1211  2025年可用积分:0

注册时间: 2003-05-12

最后登录时间: 2009-11-05

空间 发短消息加为好友

使用FB63 "TSEND", FB64 "TRCV", FB65 "TCON" 和FB66 "TD

wj321  发表于 2008/12/10 21:20:18      4212 查看 0 回复  [上一主题]  [下一主题]

手机阅读

描述:
可以通过集成的PROFINET接口使用OPEN IE的通信方式进行数据交换,下列通信协议支持数据交换:

  • TCP
  • ISO-on-TCP
  • UDP

通过工业以太网OPEN IE通信方式下的ISO-on-TCP 协议进行数据交换,需要使用下列程序块:

  • FB65 "TCON" 用于建立连接
  • FB66 "TDISCON" 用于断开连接
  • FB63 "TSEND" 用于发送数据
  • FB64 "TRCV" 用于接收数据

这些通信功能块可以在函数库 Standard Library -> Communication Blocks中找到. 用于建立ISO-on-TCP连接的参数存储于一个数据结构体中 .在这个例子中,数据结构 UDT65 "TCON_PAR"将被使用,用户将对这个数据结构进行参数化.  ISO-on-TCP 通信连接不能在 NetPro中配置.

注意:
通过工业以太网OPEN IE通信方式得到详细信息可以参考手册"System software for S7-300/400 system and standard functions"

示例程序的描述
S7程序中包括FB65 "TCON的调用及带有ISO-on-TCP 连接参数的数据结构 UDT65 "TCON_PAR".S7程序中还包含函数库Standard Library -> Communication Blocks中函数FB63 "TSEND" 和 FB64 "TRCV" 的调用,通过调用FB63 "TSEND" 块,可以将数据发送给一个S7站,一个S5站,一个PC站或第三方系统.调用FB64 "TRCV" 块,可以接收一个S7站,一个S5站,一个PC站或第三方系统发送的数据.

首先在硬件配置中生成S7-300站,在这里将MB10作为脉冲时钟,通过脉冲时钟发送数据.存盘编译并将硬件配置下载到CPU中.

STEP 7 程序包含程序块OB100, OB1, FB400, DB400, FB420, UDT65 , FB63, FB64, FB65 及FB66.

OB100:
 OB100 在CPU重新运行时执行一次(暖起动). 在这个OB块中第一次的通信通过M0.3 "START-UP"触发.

OB1:
OB1循环执行, FB400  (背景数据块: DB400)在OB1中调用,使用 M0.3 "START-UP" 对 INIT_COM 赋值,在OB1结束前将 M0.3 "START-UP" 复位.


图. 01: OB1 

FB400:
 FB400在OB1中循环调用 . 在这个 FB中, 调用 FB420 "T_ISO-ON-TCP_IDB" , FB65 "TCON", FB63 "TSEND", FB64 "TRCV" 及FB66 "TDISCON".

ISO-on-TCP 连接本地和远程的参数通过FB420 "SET_ENDPOINT"设置,下列参数需要考虑:

  • ID: 连接 ID
  • DEV_ID
    DEV_ID = B#16#0 用于 CP443-1 Adv
    DEV_ID = B#16#1 用于  IM151-8 PN/DP CPU 或
    DEV_ID = B#16#2 用于 CPU31x-2PN/DP,IM154-8 CPU  或
    DEV_ID = B#16#3 用于CPU319-3PN/DP 或
    DEV_ID = B#16#5 用于 CPU41x-3PN/DP
  • ACTIVE: 连接主动或被动建立
  • TSAP: CPU本地TSAP 及远端通信方的TSAP
  • IP_ADDR1 ... IP_ADDR4: 通信方的IP地址.


图. 02:FB420 的调用

注意:
 ISO-on-TCP 连接需要两个首字节 E0.02 用于本地CPU31x-2PN/DP 或CPU319-3PN/DP的TSAP (连接节点) ,CPU的机架和槽号在TSAP首字节中被定义为 "02" ,定义本地TSAP作为通信方的远程TSAP.在这个示例中下列TSAP被定义:
 

 CPU中本地TSAP
通信方中的远端 TSAP
ASCIITCP-1TCP-1
十六进制E0.02.54.43.50.2D.3154.43.50.2D.31

在接口参数中根据配置改变本地及远端的TSAP.


图. 03: FB400 接口参数

通过赋值FB65 "TCON"输入参数"REQ" 一个上升沿触发连接的建立.数据结构 UDT65 "TCON_PAR"中的连接参数包含在FB400的背景数据块中.在FB65 "TCON"的输入参数"CONNECT"定义了连接参数的数据区,连接在系统起动时建立并保持,通过FB66 "TDISCON"或CPU停止及断电可以断开通信连接.


图. 04:  FB65 "T_CON" 的调用

通过赋值FB63 "TSEND"输入参数REQ的上升沿触发发送请求,发送请求通过脉冲时钟M10.6及变量"C1.SEND_BUSY"控制,如果发送请求正在运行,"C1.SEND_BUSY"被置位,新的发送不能执行.(参考图6).

在输入参数 "DATA"定义数据发送区. 在输入参数"LEN"中定义发送的字节数. 通过输出参数 "DONE", "ERROR" 及 "STATUS" 可以查询请求状态.


图 05: FB63 "TSEND" 的调用 

如果发送请求成功完成, "C1.SEND_BUSY" 被复位. 新的发送请求可以被再次触发.

如果发送请求完成但是有错误, "C1.SEND_BUSY" 同样被复位,FB63的输出参数 "STATUS"存储故障代码用于故障分析.


图. 06: 上升沿触发发送请求/复位 "C1.SEND_BUSY"

 
图. 07: FB63 "TSEND" 的输出参数 STATUS 存储发送状态

一旦 ISO-on-TCP连接建立即可接收数据. 在输入参数  "DATA"定义接收数据区的地址和长度用于存储接收数据.


图. 08:  FB64 "TRECV"的调用

输出参数 "NDR"用于显示接收新的数据.  输出参数 "LEN"指示接收数据的长度. 如果接收数据不成功,可以评估输出参数"STATUS"存储的状态字.


图. 09: FB64 "TRECV" 的输出参数 STATUS 存储发送状态

可以调用FB66 "TDISCON"断开 ISO-on-TCP 连接. 通过赋值FB66 "TDISCON"的输入参数"REQ"一个上升沿触发断开 ISO-on-TCP连接.


图. 10: 调用 FB66 "TDISCON"

 

1楼 0 0 回复