当前位置:首页 > 新型工业化 >tc 编程(tcty编程)

tc 编程(tcty编程)

介绍

在以下示例中,在S7-1500 系列的两个CPU 之间创建编程连接,并将数据记录从CPU 1 发送到CPU 2。

tc 编程(tcty编程)

要求

S7-1500 系列的两个CPU 通过PROFINET 互连,并且尚未组态它们之间的连接。

基于“属性保护”中的低保护级别,确保每个CPU的读写访问。

CPU 1 中的程序:数据存储

对于数据记录,创建以下PLC 数据类型。

对于数据传输,根据创建的PLC 数据类型创建以下数据块(“SLI_plcDB_sendData_TSEND”)。

要存储此数据,请使用以下结构和变量创建全局数据块(“SLI_gDB_TSEND”)。

CPU 1 中的程序:参数互连

创建功能块“SLI_FB_TSEND”并在此数据块中创建以下局部变量。

网络1:互连“TCON”指令的参数如下:

网络2:如果TCON 出现错误,请保存如下所示的状态信息。

网络3:互连“TSEND”指令的参数,如下所示:

网络4:如果TSEND有错误,则保存如下所示的状态信息。

网络5:互连“TDISCON”指令的参数如下:

程序片段6:如果TDISCON出错,则保存状态信息,如下所示。

CPU 1 中的程序:TCON 的配置

要互连输入参数CONNECT,请通过“属性配置”打开“TCON”指令的向导。

对TCON 配置进行以下设置:

输入字段条目Endpoint 在下拉列表中,选择CPU 作为发送方和接收方。

系统将自动输入接口、子网和地址。连接数据在下拉列表中选择“新建”,为每个CPU 创建数据块。

该数据块用于存储连接数据。数据块的名称可以任意设置。

已为CPU 1(本地CPU)建立有效连接。选择条目“ISO-on-TCP”作为连接类型。

这意味着建立连接时将使用使用“ISO-on-TCP”协议的以太网连接。连接ID 输入为此通信连接选择的任何连接ID。

该连接ID 尚未在项目中分配。确保该值与所使用的变量“connectionID”中的值相同。 TSAP ID 当选择“ISO-on-TCP”连接类型时,系统会自动输入详细的地址信息。

CPU 2 中的程序:数据存储

对于数据记录,创建以下PLC 数据类型。

对于数据传输,根据创建的PLC 数据类型创建以下数据块(“SLI_plcDB_rcvData_TRCV”)。

要存储此数据,请使用以下结构和变量创建全局数据块(“SLI_gDB_TRCV”)。

CPU 2 中的程序:参数互连

创建功能块“SLI_FB_TRCV”并在此数据块中创建以下局部变量。

网络1:互连“TCON”指令的参数如下:

网络2:如果TCON 出现错误,请保存如下所示的状态信息。

网络3:互连“TRCV”指令的参数如下:

网络4:如果TRCV出现错误,保存如下所示的状态信息。

网络5:互连“TDISCON”指令的参数如下:

程序片段6:如果TDISCON出错,则保存状态信息,如下所示。

CPU 2 中的程序:TCON 的配置

根据CPU 1/TCON 的示例,对CPU 2/TCON 连接进行以下设置:

阐明

连接数据

完成CPU 1/TCON 的组态后,已使用为相应CPU 存储的连接数据创建数据块(“PLC_Tsend_Connection_DB”、“PLC_Trcv_Connection_DB”)。如果不想创建新数据块并输入连接数据,可以直接使用创建的数据块(“PLC_Tsend_Connection_DB”、“PLC_Trcv_Connection_DB”)。

如果要选择创建的数据块,它们必须位于“项目树”的“程序块系统块”中。

建立连接的步骤

请按照以下顺序执行相关步骤:

1. 对于CPU 2/TCON,将参数REQ 更改为“TRUE”。

2. 对于CPU 1/TCON,将参数REQ 更改为“TRUE”。

3. 对于CPU 2/TCON,将参数REQ 更改为“FALSE”。

4. 对于CPU 1/TCON,将参数REQ 更改为“FALSE”。

终止连接的步骤

请按照以下顺序执行相关步骤:

1. 对于CPU 1/TDISCON,将参数REQ 更改为“TRUE”。

2. 对于CPU 2/TDISCON,将参数REQ 更改为“TRUE”。

3. 对于CPU 1/TDISCON,将参数REQ 更改为“FALSE”。

4. 对于CPU 2/TDISCON,将参数REQ 更改为“FALSE”。

CPU 1 的行为

网络1(TCON):

当输入参数REQ(“TCON.start”)的信号状态为“TRUE”时,启动“TCON”指令。多次调用时,指令“TCON”会创建与伙伴CPU 的通信连接。为此,可以通过输入参数CONNECT(或数据块“PLC_Trcv_Connection_DB”)检索连接数据。

当连接建立成功时,输出参数DONE(“#doneCON”)的信号状态为“TRUE”,输出参数STATUS(“TCON.status”)的值为“0000”。由于输出参数的值只有在有效时才会显示,因此成功状态保存在变量“TCON.done”中。重置所有先前连接终止的成功状态(“TDISCON.done”)。

输出参数ERROR(“TCON.error”)或变量“TCON.memErrStatus”)可用于指示本示例中执行期间是否发生错误。

网络2(TCON):

如果TCON 发出错误信号(“TCON.error”为“TRUE”),则报告的状态(“TCON.status”)将永久存储(“TCON.memErrStatus”)。

程序部分3 (TSEND):

“TSEND”指令根据输入参数ID(“connectionID”)确定要使用的通信连接。

当输入参数REQ(“TSEND.start”)的信号状态为“TRUE”时,启动“TSEND”指令。进行多次调用时,“TSEND”指令传输在输入参数DATA 中检测到的数据记录(“SLI_plcDB_sendData_TSEND”)。

当数据记录传输成功时,输出参数DONE (“#doneSEND”) 的信号状态为“TRUE”,输出参数STATUS (“TSEND.status”) 的值为“0000”。由于输出参数的值只有在有效时才会显示,因此成功状态保存在变量“TSEND.done”中。

输出参数ERROR(“TSEND.error”)或变量“TSEND.memErrStatus”)可用于指示本示例中执行期间是否发生错误。

程序部分4 (TSEND):

如果TSEND 发出错误信号(“TSEND.error”为“TRUE”),则报告的状态(“TSEND.status”)将永久存储(“TSEND.memErrStatus”)。

网络5(TDISCON):

当输入参数REQ(“TDISCON.start”)的信号状态为“TRUE”时,启动“TDISCON”指令。当多次调用时,“TDISCON”指令将终止通信连接。为此,将检索输入参数ID(“connectionID”)中使用的通信连接。

当连接成功终止时,输出参数DONE(“#doneDISC”)的信号状态为“TRUE”,输出参数STATUS(“TDISCON.status”)的值为“0000”。由于输出参数的值只有在有效时才会显示,因此成功状态保存在变量“TDISCON.done”中。重置连接设置(“TCON.done”)和数据传输(“TSEND.done”)的成功消息。

输出参数ERROR(“TDISCON.error”)或变量“TDISCON.memErrStatus”)可用于指示在执行本示例期间是否发生错误。

网络6(TDISCON):

如果TDISCON 发出错误信号(“TDISCON.error”为“TRUE”),则报告的状态(“TDISCON.status”)将永久存储(“TDISCON.memErrStatus”)。

CPU 2 的行为

TCON 和TDISCON 的操作与CPU 1 中相同。

网络3(TRCV):

“TRCV”指令根据输入参数ID(“connectionID”)确定要使用的通信连接。

当输入参数EN_R(“TRCV.start”)的信号状态为“TRUE”时,启动“TRCV”指令。通过多次调用,“TRCV”指令接收传输的数据记录。并在输入参数DATA (“SLI_plcDB_rcvData_TRCV”) 处检查该数据记录。

并通过输出参数LEN(“#length”)确定以BYTE传输的数据记录的实际长度。仅当传输成功时才会显示该值。之后,将检查“0”。当成功接收数据记录时,输出参数DONE (“#doneRCV”) 的信号状态为“TRUE”,输出参数STATUS (“TRCV.status”) 的值为“0000”。

由于输出参数的值仅在有效时才会显示,因此请按照下列步骤操作:

成功状态保存在变量“TRCV.done”中。

BYTE 长度存储在变量“TRCV.readLength”中。

输出参数ERROR(“TRCV.error”)或变量“TRCV.memErrStatus”)可用于指示本示例中执行期间是否发生错误。

网络4(TRCV):

如果TRCV 发出错误信号(“TRCV.error”为“TRUE”),则报告的状态(“TRCV.status”)将永久存储(“TRCV.memErrStatus”)。

审稿人:刘庆

最新资讯

推荐资讯