查看: 19384|回复: 65
收起左侧

[H5U应用问题] H5U以太网TCP自由协议应用说明v0.1

朱鹏 2020-2-12 20:35:56 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
本帖最后由 朱鹏 于 2020-2-13 21:02 编辑

一、准备工作

  1. 新建一个功能块,包含TCP_Accept、TCP_Close、TCP_Receive、TCP_Send、TCP_Connect指令。
  2. 功能块包含1个输入参数——TCPStru结构体;1个输入输出参数——20长度的整型数组Socket_INT
  3. PLC做客户端时会用到TCP_Connect、TCP_Close、TCP_Receive、TCP_Send 这4条指令;
    PLC做服务器时会用到TCP_Accept、TCP_Close、TCP_Receive、TCP_Send 这4条指令;
  4. 新建一个TCP_Listen_FB功能块,封装TCP_Listen指令,PLC做服务器时用于PLC开启监听端口

    二、PLC做客户端

    1.以太网自由协议TCP通讯_FB功能块实例化。

    PLC要建立多少个客户端链接就实例化多少个功能块。例如:PLC做客户端需要与2台上位和3台扫码枪进行通信,就实例化5个功能块。

    2.设置每个客户端链接要连接的服务器的IP和端口号

    比如客户端链接1要连接的服务器为IP:10.0.0.6 ,端口号为6000。则IP转换成16进制H0A000006,端口号为10进制K6000。

    3.连接服务器

    将CT1.F.Connect_Execute置ON,

    当收到CT1.F.Connect_Connected为ON时表示连接服务器成功。
    如图中程序,CT1.F.Connect_Connected为ON后,发送H0102给服务器,并开始接收服务器消息。

    如图:上位机调试助手服务器(10.0.0.6:000)收到了客服端PLC(10.0.0.30:50462)发来的消息H0102

    4.收发数据

    根据实际情况写收发数据处理程序。
    接收数据:
    CT1.F.Receive_Execute置ON,开始接收,接收完成后会自动复位。
    接收完成后CT1.F.Receive_Done会置ON,数据处理完成需用户程序复位。CT1.F.Receive_Size为接收到的数据长度,接收到的数据放入CT1.F.Receive_Buffer[512]整型数组中。
    发送数据:
    CT1.F.Send_Size为要发送的数据长度,要发送的数据放入CT1.F.Send_Buffer[512]整型数组中。注意:如果CT1.F.Send_Size设置为0,则自动判断要发送的字符串数组的长度。当判断到数据为0时结束。样例程序中CT1.F.Send_Size设置为0
    将CT1.F.Send_Execute置ON,开始发送,发送完成后会自动复位。
    发送完成后CT1.F.Send_Done会置ON,数据处理完成需用户程序复位。

例如图中程序,当接收到服务器回复H01时,PLC会返回H0102给服务器,当接收到服务器回复H02时,PLC会返回H0304给服务器,

5.掉线判断

掉线后CT1.F.Connect_Connected会变为OFF,此时需要将CT1.F.Connect_Execute置为OFF一个扫描周期后,重新触发后再次与服务器建立链接。

6.其他客户端处理流程相同

如图,PLC做客户端IP为10.0.0.30,端口号自动分配,建立了5个客户端链接,连接PC以太网调试软件服务器IP为10.0.0.6,端口为6000。每个链接独立收发数据

三、PLC做服务器

1.实例化一个TCP_Listen_FB功能块,设置PLC要监听的端口。

将TCP_Listen_1.Execute置ON开始监听,TCP_Listen_1.Active表示监听状态。

2.以太网自由协议TCP通讯_FB功能块实例化

该服务器端口有几个客户端同时访问就实例化几个功能块。例如:PLC的1000端口会有5个客户端同时访问,就实例化5个以太网自由协议TCP通讯_FB功能块。并将TCP_Listen_FB功能块的实例TCP_Listen_1监听1000端口的Socket_INT,传入以太网自由协议TCP通讯_FB功能块的实例中。

3.等待客户端连接

TCP_Listen端口监听成功后(TCP_Listen_1.Active为ON时)开始等待客户端连接(SR1.F.Accept_Execute置ON),当客户端连接过来后(SR1.F.Accept_Connected为ON时)开始接收客户端消息(SR1.F.Receive_Execute)。

用上位机调试软件建立一个客户端链接,连接PLC服务器

连接成功后,SR1.F.Accept_Connected为ON

4.开始收发消息

根据实际情况写收发数据处理程序。
接收数据:
将SR1.F.Receive_Execute置ON,开始接收,接收完成后会自动复位。
接收完成后SR1.F.Receive_Done会置ON,数据处理完成需用户程序复位。SR1.F.Receive_Size为接收到的数据长度,接收到的数据放入SR1.F.Receive_Buffer[512]整型数组中。
发送数据:
SR1.F.Send_Size为要发送的数据长度,要发送的数据放入SR1.F.Send_Buffer[512]整型数组中。注意:如果SR1.F.Send_Size设置为0,则自动判断要发送的字符串数组的长度。当判断到数据为0时结束。
将SR1.F.Send_Execute置ON,开始发送,发送完成后会自动复位。
发送完成后SR1.F.Send_Done会置ON,数据处理完成后需用户程序复位。

例如图中程序,调用FreeTCP命令查询_FB实例来查询客户端发来的命令,获取到对应的回复内容,当接收到客户端发来的是H01时,PLC会返回H01给客户端;当接收到客户端发来的是H02时,PLC会返回H02给客户端;当接收到客户端发来的是H03时,PLC会返回H01020304给客户端,

5.掉线判断

断线后SR1.F.Accept_Connected会变为OFF,此时需要将SR1.F.Accept_Execute置为OFF一个扫描周期重新触发,才能再次允许客户端连接过来。

6.该端口的其它链接流程相同。

如图,PC以太网调试软件客户端IP为10.0.0.6,,建立了5个客户端链接,连接PLC服务器IP为10.0.0.6,端口为1000。

7.PLC再开一个端口做服务器流程相同。

如图将TCP_Listen_FB功能块的实例TCP_Listen_2监听2000端口,并允许同时5个客户端访问2000端口。

H5U程序.rar

359.43 KB, 下载次数: 724

TCP&UDPDebug.rar

954.59 KB, 下载次数: 558

H5U以太网自由协议应用说明 -V0.1.docx

2 MB, 下载次数: 669

评分

参与人数 1水滴 +10 贡献 +10 收起 理由
Inovance版主 + 10 + 10

查看全部评分





上一篇:H5U产品介绍(详细教案)
下一篇:PLC官网没有选型样本?

已有 4 人打赏作者

ycydhlg 赏了楼主1水滴 abchappy_123 赏了楼主1水滴 465610679 赏了楼主1水滴
2 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香! 鲜花榜单
回复 邀请回答送花

使用道具 举报

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

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部