合信论坛

快捷导航
查看: 294|回复: 0

Socket TCP样例指导

[复制链接]

2

主题

2

帖子

108

积分

注册会员

Rank: 1

积分
108
发表于 2025-12-18 15:52:36 | 显示全部楼层 |阅读模式
Socket TCP 在工业控制中是一种 “通用可靠的传输底座”,相比传统串口 / 总线,它传输更快、扩展性更强;相比 UDP,它更可靠;相比专用工业以太网协议,它更灵活。
PLCSocket TCP 通讯中,既可以做服务器,也可以做客户端。服务器-客户端与主从站不同,服务器-客户端是通用网络连接架构:客户端发起连接请求,服务器监听并建立连接。连接建立后,双方地位对等,均可主动发送/接收数据。
在本次的样例中,使用两个plc,分别作为客户端和服务器,首先来介绍一下plc作为客户端时的需要配置的指令:
SOCK_Open:建立Socket连接,创建一个UDP连接/TCP客户端连接
  SockTy 链接类型,UDP(0)和TCP-CLIENT(1)不支持TCP服务器连接。 DestIP0 目标IP地址的第1个字节。DestIP1 目标IP地址的第2个字节。DestIP2 目标IP地址的第3个字节。DestIP3 目标IP地址的第4个字节。
  Lport 本地端口,Rport 目标端口,与远程服务器端口号一致。超时报警。Timeout 超时时间,单位:100ms。
  Enable 使能位,输入输出类型,M0.0会自复位Done 读写功能完成位。SockID 输出连接号,底层分配,应用要提供一个全局内存保存连接号。
  Error 错误代码。
       SOCK_Send/SOCK_Recv:使用指定的连接给发送或接收数据
  SockID 输出连接号底层分配,应用要提供一个全局内存保存连接号。
  SndPtr/RcvPtr:数据缓冲区指向待发送数据的指针,可以指向I、Q、M或V存储器的指针。
  Len待发送字节数范围为1~512字节。
  Timeout 超时时间,单位:100ms。
  Enable 使能位
  Done 读写功能完成位,使能后自动清零。
  Error 错误代码
       SOCK_Close:关闭指定的连接
图片1.png

需要注意的是,在发送和接收数据时都需要触发发送和接收指令块的Enable位,再触发之后会自动复位。
作为socket服务器时,则只需要确定客户端端口号,不需要再根据IP,链接建立成功后的客户端IP会在TCP_CONNECT的输出引进显示。指令块ServerID和ConnertID需要完全对应,便可实现服务器的链接。需要注意的是,在创建服务器以及链接时,enable使能位是输入类型的变量,需要常通,如果使能位为0则会导致链接中断。发送与接收指令块与客户端不同,Enable位都为输入类型,发送数据需要每次发送新数据时都触发一次Enable,但是接收数据库时只需要常通就可以一直接收数据。
图片2.png

本样例程序使用触摸屏来对两个PLC进行监控,按照顺序,先创建tcp服务器,然后启动tcp服务器连接,再启动客户端连接。

图片3.png

图片4.png
图片5.png



TCP样例.rar

1.05 MB, 下载次数: 57

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

客服热线
400-700-4858 周一至周五:09:00 - 18:00
深圳市南山区打石一路深圳国际创新谷6栋A座9层

深圳市合信自动化技术有限公司(简称“合信技术”)成立于2003年,高新技术企业,专注于工业自动化产品的研发、生产、销售和技术服务,依靠高质量、高性能的自动化控制产品与方案为客户创造最大价值,立志于成为全球领先的工业自动化解决方案供应商。

Archiver|手机版|小黑屋|COTRUST Inc. ( 粤ICP备13051915号 )

GMT+8, 2026-2-6 13:50 , Processed in 1.241081 second(s), 23 queries .

快速回复 返回顶部 返回列表