前面的文章我们介绍了西门子开放式用户通信(Open User Communication)中用于建立连接的指令—TCON;用于TCP、ISO-ON-TCP数据接收的指令—TRCV、用于UDP协议数据接收的指令—TURCV。今天这篇文章,我们来谈谈基于TCP、ISO-ON-TCP协议的数据发送指令:TSEND。
在使用TSEND指令发送数据之前,要首先使用TCON指令来建立连接。TSEND指令基于已经建立好的连接来发送数据,使用的协议为TCP或者ISO-ON-TCP。“DATA”参数用来指向要发送的数据的地址,发送数据类型不能是“位(bit)”或者“位(bit)”的数组,其它类型都可以。
下面来介绍下“TSEND”指令的用法:
首先在指令列表中找到TSEND指令,如下图:
将其拖拽到程序块中,系统会自动提示添加背景数据块(Instance DB)。可以选择独立背景数据块(Single Instance DB)或者多重背景数据块(Mutil instance DB),也可以修改DB块的名称。这里,我们使用独立背景数据块,采用默认的名称“TSEND_DB”,如下图:
点击【OK】确认后,TSEND指令就被添加到程序块中了,如下图:
TSEND指令中各参数的含义如下:
REQ:请求发送数据,需要信号的上升沿(rising edge);
ID:使用TCON建立的连接ID;
LEN:发送数据的最大长度;对于S7-1200系列PLC,“LEN”最大为8192个字节;对于S7-1500系列PLC,“LEN”最大为65536个字节;
DATA:指向发送数据的指针;可以是数据输入/输出缓存区、位存储区或者数据块;
DONE:发送任务是否完成;1=任务已经完成;0=任务没有开始或者没有结束;
BUSY:是否正在发送;1=正在发送数据;0=任务没有开始或已经结束;
ERROR:发送过程是否有错误发送;1=有错误发生;0=没有错误发生;
STATUS:指令的执行状态;
当发送过程产生错误时,可以根据STATUS的值来判断错误的类型,参考下面这张表格:
完整的TSEND指令如下图:
好了,关于西门子开放式用户通信用于TCP和ISO-ON-TCP协议的数据发送指令-TSEND就先介绍到这里,欢迎扫描下方的二维码关注我们的微信公众号。
小程序【李工谈工控】提供方便的文章检索功能,欢迎扫描右侧的卡片体验。
发表评论