北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章545 浏览8665901

西门子PLC以太网开放式用户通信连载(4)-TSEND

前面的文章我们介绍了西门子开放式用户通信(Open User Communication)中用于建立连接的指令—TCON;用于TCP、ISO-ON-TCP数据接收的指令—TRCV、用于UDP协议数据接收的指令—TURCV。今天这篇文章,我们来谈谈基于TCP、ISO-ON-TCP协议的数据发送指令:TSEND。

cover.png

在使用TSEND指令发送数据之前,要首先使用TCON指令来建立连接。TSEND指令基于已经建立好的连接来发送数据,使用的协议为TCP或者ISO-ON-TCP。“DATA”参数用来指向要发送的数据的地址,发送数据类型不能是“位(bit)”或者“位(bit)”的数组,其它类型都可以。

下面来介绍下“TSEND”指令的用法:

首先在指令列表中找到TSEND指令,如下图:

TSEND_List.png

将其拖拽到程序块中,系统会自动提示添加背景数据块(Instance DB)。可以选择独立背景数据块(Single Instance DB)或者多重背景数据块(Mutil instance DB),也可以修改DB块的名称。这里,我们使用独立背景数据块,采用默认的名称“TSEND_DB”,如下图:

TSEND_DB.png

点击【OK】确认后,TSEND指令就被添加到程序块中了,如下图:

TSEND_init.png

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_STATUS.png

完整的TSEND指令如下图:

TSEND_Complete.png

好了,关于西门子开放式用户通信用于TCP和ISO-ON-TCP协议的数据发送指令-TSEND就先介绍到这里,欢迎扫描下方的二维码关注我们的微信公众号。

小程序【李工谈工控】提供方便的文章检索功能,欢迎扫描右侧的卡片体验。



已经过安全软件检测无毒,请您放心下载。

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论