广东湘恒智能科技有限公司
主营产品: 西门子PLC,西门子模块,西门子触摸屏,西门子变频器,西门子伺服电机驱动,电缆,西门子全系列
广东西门子一级总代理PLC

前面两期内容,我们详细介绍了如何使用西门子 s7-1200 T-block(TCON,TSEND,TRCV)指令实现CPU与CPU之间的TCP通讯。在实际应用中,我们往往需要与第三方设备或者软件(例如:MES)等通讯,西门子s7-1200/1500均支持标准TCP协议,可以作为客户端和服务器与其他设备或软件进行TCP通信,同样是通过T-block指令实现。本期内容将分享使用网络调试助手在PC上模拟实现与s7-1200/1500 建立TCP通讯,实现TCP简单调试;

TCP客户端和服务端的区别

TCP客户端(TCP Client)和TCP服务端(TCP Server)是网络通信中的两个基本角色,它们在网络通信中扮演不同的角色,并具有不同的行为和功能。以下是它们之间的主要区别:

连接的发起者:TCP客户端:是连接的发起者。它会主动向服务器发起连接请求。TCP服务端:等待来自客户端的连接请求。在收到请求后,它会接受连接并开始与客户端通信。端口号:TCP客户端:通常使用临时端口号,这些端口号由操作系统随机分配。TCP服务端:使用预先定义的端口号(熟知端口号),以便客户端知道连接到哪个端口。例如,HTTP服务通常监听80端口,FTP服务监听21端口。通信模式:TCP客户端:在需要与服务器通信时发起连接,通信完成后断开连接。TCP服务端:持续监听指定的端口,等待客户端的连接,可以同时与多个客户端通信。设计和实现:TCP客户端:通常实现较为简单,因为它只需要知道服务器的IP地址和端口号,然后发起连接。TCP服务端:实现较为复杂,需要处理来自客户端的连接请求,管理多个并发连接,以及可能的并发控制。状态:TCP客户端:在通信过程中,客户端通常处于较短的活动状态,一旦通信完成,客户端可能会关闭连接。TCP服务端:通常处于长时间运行的状态,以便不断地接受新的客户端连接。资源消耗:TCP客户端:通常消耗较少的资源,因为它只需要在发起连接时消耗资源。TCP服务端:可能需要更多的资源,因为它需要持续监听端口,并可能同时处理多个连接。
测试环境说明

硬 件:

CPU 1515-2 PN,固件版本V 2.9.4((S7-1200使用一致)(手头没有实物1200,使用1500测试)(IP:192.168.0.80)

软件:

TIA Portal V17TCP/UDP Socket调试工具 或 NetAssist(网络调试助手)(IP:192.168.0.64)

需要完成的通信任务:

S7-1500作为客户端和调试助手进行数据通信S7-1500作为服务器和调试助手进行数据通信
S7-1500作为客户端和调试助手进行数据通信

s7-1500作客户端程序配置,需要使用TCON,TSEND,TRCV三条指令,配置方式可参见上两篇内容(本处不再赘述),配置结果如下:

调用TCON指令,并配置CONNECT参数,及状态参数;

图片vmware_a97WAwK8j3

注:客户端,即主动发起连接一侧,因此需要PLC勾选“建立主动连接”

调用TSEND指令,并配置接口参数

图片image-20240613164000001

注:程序中使用1HZ脉冲发送数据(REQ),实际应用中根据需求发送;

调用TRCV指令,并配置接口参数

图片image-20240613164055520

注:一般TRCV中EN_R接口时钟置一,随时接收服务端数据,也可根据需求使用;

打开NetAssist软件,配置TCP Server,并点击开始监听;

图片image-20240613165042483

TCP Server配置完成后,在TIA Portal中触发TCON请求,建立通讯连接;在TSEND激活数据发送,NetAssist中即可接收PLC数据;

图片image-20240613165343026

注:NetAssit中显示数值以ASCII和16进制两种类型显示;

从NetAssist中发送数据,并监控TRCV中数据存储区的值;

图片image-20240613170616205

注:细心的朋友可能会发现,发送出去的字节与接收到的字节存在错位,小编没搞懂什么原因,有知道的朋友可以留言;

S7-1500作为客户端和调试助手进行数据通信,配置及测试完成;

S7-1500作为服务端和调试助手进行数据通信

s7-1500作服务端程序配置,需要使用TCON,TSEND,TRCV三条指令,配置方式可参见s7-1500作客户端程序配置;只需要将主动连接修改为被动连接即可;

调用TCON指令,并配置CONNECT参数,及状态参数;

图片image-20240613171916021

注:同一项目中不能有相同的连接ID,因此本处连接ID修改为2,同理TSEND和TRCV同样修改为2;

激活TCON中REQ请求,打开NetAssist并配置TCP 客户端,建立通讯连接如下:

图片vmware_nHTldUvrIw

激活TSEND(REQ上升沿触发)发送数据,NetAssist接收区接收数据如下所示:

图片

激活TRCV(EN_R=1)接收收据,并再NetAssist发送数据,结果如下所示:

图片



展开全文
相关产品
拨打电话 微信咨询 发送询价