设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
西门子 S7-1200 系列十九:干货!通过TCP调试助手仿真测 ...
返回列表
发新帖
[西门子]
西门子 S7-1200 系列十九:干货!通过TCP调试助手仿真测试...
[复制链接]
859
|
0
|
2024-6-13 19:06:28
|
显示全部楼层
|
阅读模式
前面两期内容,我们详细介绍了如何使用西门子 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 V17
TCP/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发送数据,结果如下所示:
image-20240613180726950
五
总结
通过上面配置,可以看出对于西门子S7-1200 、1500 PLC来讲TCP通讯客户端和服务端差别实际并不大,主要看谁主动(客户端),谁被动(服务端);实际应用中,字节错位的问题影响较大,所以在应用时会约定起始字符和结束字符;
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
工控系统百科
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』