S7-200SMART的UDP通信(下)

200SMART的开放式通信(Open User Communication)包括TCP通信,UDP通信以及ISO-on-TCP通信,支持CPU固件版本V2.2以上,常用于与第三方支持相同协议的设备通信。

上次为大家介绍了200SMART的UDP_CONNECT指令,这次继续介绍UDP_SEND指令和UDP_RECV指令。

首先介绍UDP_SEND指令

EN:使能,对于接收指令,建议常1触发。

Req:发送指令触发发送指令,建议使用上升沿触发。

ConnID:连接标识,与各自的UDP_CONNECT的ConnID相同。

DataLen:发送数据的长度,最多1024个字节。

DataPtr:发送数据的地址指针,发送数据的首地址。

IPaddr1~4: 填写通信伙伴的IP地址

RemPort:远程端口号(通信伙伴的端口号)

其他的Done,Busy等与UDP_CONNECT指令相同。

接下来对这些参数进行一个详细的解释:

如图,是UDP_SEND的调用时序图,蓝色为Req上升沿触发,红色为Req电平触发。

使用Req上升沿触发→Busy=1→完成后DONE=1(一个扫描周期)→Error=1且Status=24,然后等待下一次上升沿触发信号进行循环,这里Status=24表示指令调用但是未触发操作,并不代表错误。

使用Req电平触发→Busy=1→完成后DONE=1(一个扫描周期),然后不停循环Busy和Done。

这里建议使用上升沿触发UDP_SEND指令。

下面介绍UDP_RECV指令

EN:使能,对于接收指令,建议常1触发。

ConnID:连接标识,与各自的UDP_CONNECT的ConnID相同。

MaxLen:允许接收的数据的长度,最多1024个字节。

DataPtr:接收数据的地址指针,接收数据的首地址。

Length:实际接收到的数据长度。

IPaddr1~4: 发送数据的远程设备的IP地址。

RemPort:发送数据的远程设备的端口号。

其他的Done,Busy等与UDP_CONNECT指令相同。

如图,是UDP_RECV的调用时序图,蓝色为EN上升沿触发,红色为EN电平触发。

EN上升沿触发,需要两次触发才可以接收数据,DONE保持为1,直至下次上升沿的到来;而EN电平触发,有数据就接收,大部分时间处于Busy,Done为1一个周期,所以建议EN使用电平触发UDP_RECV指令。

对于UDP_RECV接收长度设置:

MaxLen:填写变量,当前值为0,EN触发后报错1:

Status=1:数据长度输入参数大于允许的最大值1~1024字节。

EN端接通时,不允许修改MaxLen的参数值,否则报错7;

Status=7:实例不符,保存的数据与输入数据不同。

所以建议MaxLen=发送方数据的长度,如果发送方的长度是变化的,则MaxLen按照最大长度进行填写。

最后以下题为例:本地客户端IP为192.168.0.100,ConnID为10,端口号为2000;远程服务器IP为192.168.0.101,ConnID为20,端口号为2001,将本地站从VB200开始的10个字节发送到远程站的VB100开始的10个字节。

首先我们在系统块中设置本地站和远程站的IP地址

然后设置UDP_CONNECT参数,如图

接着分别设置UDP_SEND和UDP_RECV

启用M0.0触发UDP_CONNECT的Req,建立服务

SM0.5不断触发SEND的Req,

如图所示,数据成功发送,通讯成功

S7-200SMART的UDP通信就这些啦,下期为大家讲解S7-200SMART的ISO-ON-TCP通讯。

(0)

相关推荐

  • 200smart

    ST60自身集成36DI,需要扩展2个DI扩展模块:自身集成24个DO,需要扩展1个-2个DO模块,根据预留裕量统筹考虑,至少还能扩展2个其他模块.1个扩展卡. M点32字节,共256个BOOL位,5 ...

  • Python网络编程

    TCP 客户端与服务器之间建立连接需要进行三次握手 客户端--->服务器  服务器--->客户端  客户端--->服务器,这样做的好处是可以保证数据的完整缺点是慢. UDP 是用户数 ...

  • 40.200SMART PLC 逻辑运算指令详解1

    40.200SMART PLC 逻辑运算指令详解1

  • day21 网络编程(下)

    版权声明:本博客转载自路飞学城Python全栈开发培训课件,仅用于学习之用,严禁用于商业用途. 欢迎访问路飞学城官网:https://www.luffycity.com/ 课程目标:学会网络编程开发的 ...

  • Python网络编程 —— 粘包问题及解决方法

    Python网络编程 —— 粘包问题及解决方法

  • S7-1200 和 S7-1200 之间 UDP 通信

    关于启程 启程自动化成立于2012年,培训项目主打西门子PLC编程系统集成.工业机器人编程.EPLAN电气设计.视觉等培训与技术服务的机构.推荐高薪就业,越努力越辛运 S7-1200 与 S7-120 ...

  • 200SMART的PROFINET通信 (2)

    上次为大家介绍了200SMART的PROFINET的概述及组态过程,这次继续介绍PROFINET的通信配置步骤. 1.添加GSD文件,已在上一篇介绍过了.(200SMART之间通信不用添加) 2.PR ...

  • 200SMART的PROFINET通信 (1)

    不点蓝字,我们哪来故事? PROFINET通信是一种开放,标准,具有高实时性的以太网现场总线,从V2.4版本开始,200SMART增加了PROFINET通信的功能,但是仅支持作为IO控制器,在V2.5 ...

  • 【socket笔记】TCP、UDP通信总结

    [温馨提示]这篇笔记比较长,可在后台回复关键词:TCP,获取这篇笔记的PDF及文中代码的下载链接. 一.什么是socket? Socket的英文原义是"孔"或"插座&qu ...

  • S7-200SMART的UDP通信(上)

    200SMART的开放式通信(Open User Communication)包括TCP通信,UDP通信以及ISO-on-TCP通信,支持CPU固件版本V2.2以上,常用于与第三方支持相同协议的设备通 ...

  • 笑笑看到S7八强抽签后立下flag:如果RNG不进四强,我自刎!

    相信很多人都看了昨天S7总决赛八强赛的抽签仪式了吧?不知道对于这个结果你们怎么看呢?而昨天的直播中,德云色的笑笑和西卡也是看了整个抽签仪式的流程,在抽签之前西卡就曾预测,最好的结果就是WE对C9,RN ...

  • TCP与UDP通信的区别

    TCP与UDP通信的区别

  • 案例 | 200SMART的模块与SIMATIC NET 进行 S7 通信

    爱上电气 公众号 去学电气技术 硬件: ①S7-200 SMART 以及 EM DP01 模块(CPU固件版本V 2.1以上才可以使用 EM DP01) ②PC 机 ( PCI-E插槽)  ③CP 5 ...

  • 【瀚海数据说】通信基本原理(下)多址接入,空域处理,交换

    第 273 期 编者按: 作者谢继东教授毕业于中国科大77级无线电子学系(776).继"计算机基本原理系列"后,谢教授继续推出通信基本原理系列,原文分五篇登载在公号"眼睛 ...