首页 理论教育 OUC通信指令详解

OUC通信指令详解

时间:2023-07-01 理论教育 版权反馈
【摘要】:TIA博途软件为S7-1200CPU提供了2套OUC通信指令,如图7-20所示。OUC通信指令功能的简介见表7-4。通信结束后,S7-1200CPU可使用“TDISCON”指令释放UDP通信资源。当通信伙伴不存在和不建立连接的条件不满足时,“TCON”指令将会报错并终止本次建立连接请求。LEN:数据发送长度,S7-1200TCP/ISO-on-TCP通信支持最大发送长度为8192字节。

OUC通信指令详解

TIA博途软件为S7-1200CPU提供了2套OUC通信指令,如图7-20所示。

OUC通信指令功能的简介见表7-4。

7-4 OUC通信指令

978-7-111-58391-2-Chapter07-23.jpg

978-7-111-58391-2-Chapter07-24.jpg

图7-20 OUC通信指令

①—不带有自动连接管理的指令 ②—带有自动连接管理的指令

TSEND_C/TRCV_C等带有自动连接管路功能的指令,其内部集成了TCON、TSEND/TRCV(TUSEND/TURCV)和TDISCON等指令。

TCP/ISO-on-TCP是面向连接的通信,数据交换之前首先需要建立连接,S7-1200 CPU可使用“TCON”指令建立通信连接。连接建立后,S7-1200CPU就可使用“TSEND”和“TRCV”指令发送和接收数据了。通信结束后,S7-1200 CPU可使用“TDISCON”指令断开连接释放通信资源。S7-1200 CPU TCP通信流程如图7-21所示。

978-7-111-58391-2-Chapter07-25.jpg

图7-21 TCP通信流程

UDP虽是非面向连接的通信,发送数据之前也需要调用“TCON”指令,该指令并不用于创建与通信伙伴的连接,而用于通知CPU操作系统定义一个UDP通信服务。定义完UDP通信服务后,S7-1200CPU就可使用“TUSEND”和“TURCV”指令发送和接收数据了。通信结束后,S7-1200CPU可使用“TDISCON”指令释放UDP通信资源。

1.TCON指令

“TCON”指令用于建立开放式通信连接,可用于TCP、ISO-on-TCP和UDP通信。连接建立后,CPU将自动持续监视该连接状态。参数CONNECT指定的连接数据用于描述通信连接。参数REQ的上升沿用于启动连接建立操作。成功建立连接后,参数DONE将置位一个扫描周期。“TCON”指令的调用如图7-22所示。

978-7-111-58391-2-Chapter07-26.jpg

图7-22 “TCON”指令调用

参数CONNECT用于描述通信连接,该参数包含建立连接所需全部设置,该参数可以通过单击“TCON”指令右上角“开始组态按钮生成,也可通过在数据块中组态一个结构类型为TCON_IP_v4变量(ISO-on-TCP通信时,该结构类型为TCON_IP_RFC)来实现。参数CONNECT连接描述结构见表7-5和表7-6。

7-5 CONNECT连接描述结构(TCP/UDP)

978-7-111-58391-2-Chapter07-27.jpg

注意:

UDP是非面向连接的通信,因此无须在参数CONNECT描述通信连接结构中设置伙伴方的IP地址端口号,且“ActiveEstablished”也需要设置为FALSE。

7-6 CONNECT连接描述结构(ISO-on-TCP)

978-7-111-58391-2-Chapter07-28.jpg

当参数CONNECT描述通信连接结构中“ActiveEstablished”为TRUE时,则本地CPU为TCP/ISO-on-TCP通信的客户端,其将主动发起建立连接请求。当通信伙伴不存在和不建立连接的条件不满足时,“TCON”指令将会报错并终止本次建立连接请求。如果还需要尝试建立连接,则需要再次触发参数REQ。

参数ID需要与CONNECT描述通信连接结构中“ID”一致。如果CPU需要建立多个OUC通信,则需要调用“TCON”指令多次并给指令分配不同的背景数据块,且需要给参数ID分配不同的数值。

2.TDISCON指令

“TDISCON”指令用于断开“TCON”指令建立的连接或释放“TCON”指令定义的UDP服务,参数ID需要与“TCON”指令的ID相同。参数REQ的上升沿用于启动断开连接建立操作,如果还需要重新建立连接或定义服务,必须再次执行“TCON”指令。

3.TSEND指令

“TSEND”指令用于通过已建立连接发送数据,指令的调用如图7-23所示。

“TSEND”指令主要参数定义如下:

•REQ:上升沿时触发发送作业。

•ID:连接ID,需要与TCON指令ID参数相同。

•LEN:数据发送长度,S7-1200TCP/ISO-on-TCP通信支持最大发送长度为8192字节。LEN=0时,发送长度取决于DATA参数指定的数据发送区。当DATA参数为优化数据块的结构化变量时,建议设置LEN=0。

•DATA:指向发送区的指针,本地数据区域支持优化访问或标准访问。如果数据块为标准访问,则该地址指针还可以采用P#DB4.DBX0.0BYTE100寻址方式。

•STATUS:通信状态字,如果ERROR为TRUE时,可以通过其查看通信错误原因。由于STATUS只在ERROR为TRUE那一个扫描周期时有效,为了有效读取错误代码,可参考图7-23中的程序段4。

4.TRCV指令

“TRCV”指令用于通过已建立连接接收数据,指令的调用如图7-24所示。

978-7-111-58391-2-Chapter07-29.jpg

图7-23 TSEND指令调用

978-7-111-58391-2-Chapter07-30.jpg

图7-24 TRCV指令调用

“TRCV”指令主要参数定义如下:

•EN_R:启用接收功能。

•ID:连接ID,需要与“TCON”指令ID参数相同。

•LEN:数据接收长度,S7-1200 TCP/ISO-on-TCP通信支持最大接收长度为8192字节。LEN=0时,接收长度取决于DATA参数指定的数据接收区。当DATA参数为优化数据块的结构化变量时,建议设置LEN=0。

•DATA:指向接收区的指针,本地数据区域支持优化访问或标准访问。

•RCVD_LEN:实际接收到的字节数,该数值只在NDR为TRUE那个扫描周期有效。

•ADHOC:Ad-hoc模式仅可用于TCP,使用Ad-hoc模式用于接收动态长度的数据。CPU与一些高级语言Socket通信或者与HyperTerminal通信时,通信伙伴发送的数据长度可能不固定,则需要使用Ad-hoc模式接收。

注意:

如果“TRCV”指令采用Ad-hoc模式接收数据时,建议DATA数据区域为标准访问的数据块。如果DATA为优化访问数据块,则只支持ARRAYofBYTE或长度为8位的数据类型(如CHAR、USINT、SINT等)。

使用Ad-hoc模式接收动态长度数据时,一次可接收数据的最大长度应满足以下条件:

1)最大接收长度不能超过1460字节。

2)当LEN=0时,数据的最大长度不能超过DATA指定数据区域长度。

3)当LEN≠0时,数据的最大长度不能大于LEN指定的长度。

5.TUSEND指令

“TUSEND”指令通过已定义的UDP服务向输入参数ADDR指定的通信伙伴方发送数据,“TUSEND”指令的调用如图7-25所示。

978-7-111-58391-2-Chapter07-31.jpg

图7-25 TUSEND指令调用(www.xing528.com)

“TUSEND”指令主要参数定义如下:

•REQ:上升沿时触发发送作业;

•ID:连接ID,需要与“TCON”指令ID参数相同;

•LEN:数据发送长度,S7-1200UDP通信支持最大发送长度为1472字节。LEN=0时,发送长度取决于DATA参数指定的数据发送区。当DATA参数为优化数据块的结构化变量时,建议设置LEN=0;

•DATA:指向发送区的指针,本地数据区域支持优化访问或标准访问。

•ADDR:用于定义通信伙伴的地址信息(IP地址和端口号),其数据结构类型为TADDR_Param。可以通过添加一个数据类型为TADDR_Param的数据块来创建该参数。TADDR_Param结构描述见表7-7。

7-7 TADDR_Param结构描述

978-7-111-58391-2-Chapter07-32.jpg

6.TURCV指令

“TURCV”指令通过已定义UDP服务接收数据,指令的调用如图7-26所示。

978-7-111-58391-2-Chapter07-33.jpg

图7-26 TURCV指令调用

“TURCV”指令主要参数定义如下:

•EN_R:启用接收功能。

•ID:连接ID,需要与“TCON”指令ID参数相同。

•LEN:数据接收长度,S7-1200UDP通信支持最大接收长度为1472字节。LEN=0时,接收长度取决于DATA参数指定的数据接收区。当DATA参数为优化数据块的结构化变量时,建议设置LEN=0。

•RCVD_LEN:实际接收到的字节数,该数值只在NDR为TRUE那个扫描周期有效。

•DATA:指向接收区的指针,本地数据区域支持优化访问或标准访问。

•ADDR:用于存储通信伙伴的地址信息,其数据结构类型为TADDR_Param,详细信息可见表7-7。与“TUSEND”指令不同的是无需预定义通信伙伴的地址信息。

7.TSEND_C指令

“TSEND_C”指令内部集成了“TCON”、“TSEND”/“TUSEND”、“T_RESET”和“TDISCON”等指令,因此该指令可以使用以下功能:

•建立通信连接。

•通过已经建立的连接发送数据。

•断开通信连接。

“TSEND_C”指令的调用如图7-27所示。

“TSEND_C”指令主要参数定义如下:

•REQ:上升沿时触发发送作业。

•CONT:控制连接建立。为0时,断开连接;为1时,建立连接并保持。

•COM_RST:用于复位连接。

•LEN:数据发送长度,TCP/ISO-on-TCP通信最大发送长度为8192字节,UDP通信最大发送长度为1472字节。LEN=0时,发送长度取决于DATA参数指定的数据发送区。当DATA参数为优化数据块的结构化变量时,建议设置LEN=0。

•DATA:指向发送区的指针,本地数据区域支持优化访问或标准访问。

•ADDR:该参数为隐藏参数,只用于UDP通信,用于指定通信伙伴的地址信息,详细信息参考“TUSEND”指令。

•CONNECT:指向连接描述结构的指针,详细信息参考“TCON”指令。

978-7-111-58391-2-Chapter07-34.jpg

图7-27 TSEND_C指令调用

参数CONT、COM_RST和REQ分别用于控制建立连接、复位连接和发送数据,其中参数REQ和COM_RST仅在CONT为TRUE时有效,参数之间关系见表7-8。

7-8 参数REQ、COM_RSTCONT关系

978-7-111-58391-2-Chapter07-35.jpg

8.TRCV_C指令

“TRCV_C”指令内部集成了“TCON”、“TRCV”/“TURCV”、“T_RESET”和“TDIS- CON”等指令,因此该指令可以使用以下功能:

•建立通信连接;

•通过已经建立的连接接收数据;

•断开通信连接。

“TRCV_C”指令的调用如图7-28所示。

“TRCV_C”指令主要参数定义如下:

•EN_R:启用接收功能;

•CONT:控制连接建立。为0时,断开连接;为1时,建立连接并保持。

•COM_RST:用于复位连接;

•LEN:数据接收长度,TCP/ISO-on-TCP通信最大接收长度为8192字节,UDP通信时最大接收长度为1472字节。LEN=0时,接收长度取决于DATA参数指定的数据发送区。当DATA参数为优化数据块的结构化变量时,建议设置LEN=0。

•DATA:指向接收区的指针,本地数据区域支持优化访问或标准访问,本例中接收区MB100~MB199;

•ADHOC:Ad-hoc模式仅可用于TCP,详细信息参考“TRCV”指令。

978-7-111-58391-2-Chapter07-36.jpg

图7-28 TRCV_C指令调用

参数CONT、COM_RST和EN_R分别用于控制建立连接、复位连接和接收数据,其中参数EN_R和COM_RST仅在CONT为TRUE时有效,参数之间关系见表7-9。

7-9 参数REQ、COM_RSTCONT关系

978-7-111-58391-2-Chapter07-37.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈