菜单

TCPIP Client操作手册

概述

使用场景

  • TCP/IP作为一种标准的网络通信协议,提供了可靠的连接和数据传输能力,使得各种工业设备能够实现互联互通,数据共享和远程监控。

整体架构

主要功能及产品组件

注: 本手册中用到的中科时代的软件包,均可以从官网的子页面获取。官网提供的版本可能比本手册中提到的版本更高,一般情况下这不会影响您按照本手册的例子执行相应的操作

  • 将搭建的客户端工程下载到工智机中运行,通过工智机里面的后台TCP/IP Client 和第三方的设备通过TCP/IP Server进行数据交互。

  • 与第三方的TCP/IP服务端建立连接,收发数据,实现通信,当长时间不需要通信时,关闭建立的连接。

  • TCPIP Client产品包括两部分组件

产品组件 描述说明
sf4200_0.0.5_amd64.deb TCPIP RTE组件
CmpTcpIp.library 上位机程序使用的库文件

安装卸载

安装要求

  • 中科时代出厂的工智机;

  • 工智机可以访问互联网;

  • 熟悉基础的Linux操作命令

安装过程

  • TCPIP Client产品有两个组件,所以要使用TCPIP Client需要从安装这两个组件开始,下面将详细介绍:

1、工智机端安装TCPIP RTE组件

  • 上传deb包到工智机Linux环境的/home/sinsegye目录下

  • 上传完成后在工智机上执行命令安装(参考下方截图,如果模块文件名发生变化则命令行中的文件名做相应更改)

  • 修改RTE的配置文件,ComponentManger模块下加入SF4200

  • 重启RTE服务,使新加入的SF4200被调用

2、IDE侧部署TCPIP Server的library

  • MetaFacture中点击最上面的菜单栏 ”工具“ -- ”库存储“ ;

  • 弹出的对话窗中点击”安装“ -- 选中CmpTcpIp.library -- 点击“打开”;

  • 工程中双击“库管理器” -- “添加库” -- 双击“Sinsegye Tcp/Ip” ,加载库完成;

更新安装

1、升级工智机TCPIP Server RTE组件

  • 上传升级版deb包到工智机Linux环境的/home/sinsegye目录下,上传方法参考附录;

  • 上传完成后在工智机上执行命令安装(参考下方截图,如果模块文件名发生变化则命令行中的文件名做相应更改)

  • 重启RTE服务,使新升级的的SF4200被调用

2、升级IDE侧DataBase的library

  • MetaFacture中点击最上面的菜单栏 ”工具“ -- ”库存储“ ;

  • 弹出的对话窗中点击”安装“ -- 选中CmpTcpIp.library -- 点击“打开”;

  • 工程中双击“库管理器” -- “添加库” -- 双击“Sinsegye Tcp/Ip” ,加载库完成;

卸载过程

1、卸载工智机TCPIP Server RTE组件

  • 工智机上执行命令卸载

  • 修改RTE的配置文件,ComponentManger模块下去掉SF4200

  • 重启RTE服务

2、卸载IDE侧的TCPIP library

  • MetaFacture界面点击“工具” -- “库存储”

  • 对话框中选中安装的的TCPIP库,点击“卸载”


技术说明

快速启动

(一)本例软、硬件配置

硬件:

  1. SX5100工智机 MetaOS V24.08.15_SX5

  2. Win10 PC

软件:

  1. MetaFacutre V1.0.6.2

  2. 第三方TCPIP Clinet工具TCP/UDP Socket调试工具 V2.3

(二)本例实验要求及原理

  • 实验要求:按照“安装卸载”部分中的“安装过程”配置完成TCPIP Client环境

1、实验原理

  • 通过FB_SocketConnect和第三方的TCP/IP服务端建立连接,返回连接句柄,根据连接句柄结合FB_SocketSend和FB_SocketReceive进行数据的收发,从而实现通信,当长时间不需要通信时,可以根据FB_SocketClose关闭建立的连接。

  • 上位机和工智机使用EtherNet连接。

  • 上位机上,MetaFacture下装工程到工智机。工程中会包含下面的试验操作步骤中的配置。

  • 工智机与第三方TCPIP服务端通过EtherNet连接。

(三)本例实验操作步骤

1、TCPIP Client与第三方TCPIP Server建立连接的实验步骤如下:

  • POU中声明区域调用TCPIP库的功能块FB_SocketConnect

  • POU中程序区域调用fbSocketConnect,配置TCPIP Server的ip、端口

  • 第三方TCPIP Server启用监听后,触发TCPIP CLient的fbSoccketConnect的bExecute上升沿触发连接;连接成功后,查看第三方TCPIP Server状态变为已连接;

2、TCPIP Client发送数据实验步骤如下:

  • POU中声明区域调用TCPIP库的功能块FB_SocketSend

  • POU中程序区域调用fbSocketSend,设置要写入的数据;

  • 触发TCPIP CLient的fbSoccketSend的bExecute上升沿触发发送数据;第三方TCPIP Server接收到数据;

3、TCPIP Client接收第三方server数据实验步骤如下:

  • POU中声明区域调用TCPIP库的功能块FB_SocketReceive

  • POU中程序区域调用fbSocketReceive,设置接收数据的地址;

  • 第三方TCPIP Server发送数据后,触发TCPIP Client的fbSoccketReceive的bExecute上升沿触发接收数据;

4、TCPIP Client断开与第三方TCPIP Server的连接

  • POU中声明区域调用TCPIP库的功能块FB_SocketClose

  • POU中程序区域调用fbSocketClose

  • 触发SocketClose的bExecute上升沿触发断开动作;查看第三方TCPIP Server状态由“已连接”变为“已启动监听”

(四)实验注意点

  • 部分实验有先后顺序要求,建议按照文档中的顺序依次实验

功能介绍

建立与TCPIP的连接

功能块FB_SocketConnect介绍

参数介绍

  • 输入参数
参数名称 参数类型 描述
sRemoteHost STRING 远程服务器的 IP 地址(IPv4),格式为字符串
nRemotePort UDINT 远程服务器的 IP 端口号
bExecute BOOL 通过该输入的上升沿触发功能块
tTimeout TIME 该功能块执行允许的最大超时时间,即从触发到 到达该时间,如果还没有执行,就不执行,超时报警
  • 输出参数
参数名称 参数类型 描述
bBusy BOOL 当功能块被激活时,被置为True,一直保持到收到确认信号
bError BOOL 如果在命令传输过程中发生错误,则在 bBusy 输出被重置后,此输出将被设置成True
nErrId UDINT 如果 bError 输出被设置成True,则此参数返回 MetaFacture TCP/IP 连接服务器的错误编号
hSocket ST_HSOCKET 新打开的本地客户端套接字的 TCP/IP 连接句柄;结构体变量 :句柄号、本地IP、远端IP

发送数据

功能块FB_SocketSend介绍

参数介绍

  • 输入参数
参数名称 参数类型 描述
hSocket ST_HSOCKET 要发送数据的通信伙伴的连接句柄
cbLen UDINT 要发送的数据字节数
pSrc POINTER TO BYTE 传输缓冲区的地址(指针)
bExecute BOOL 通过该输入的上升沿触发功能块
tTimeout TIME 该功能块执行允许的最大超时时间,即从触发到 到达该时间,如果还没有执行,就不执行,超时报警
  • 输出参数
参数名称 参数类型 描述
bBusy BOOL 当功能块被激活时,被置为True,一直保持到收到确认信号
bError BOOL 如果在命令传输过程中发生错误,则在 bBusy 输出被重置后,此输出将被设置成True
nErrId UDINT
如果 bError 输出被设置成True,则此参数返回 MetaFacture TCP/IP 连接服务器的错误编号

接收数据

功能块FB_SocketReceive介绍

参数介绍

  • 输入参数
参数名称 参数类型 描述
hSocket ST_HSOCKET 要接收数据的通信伙伴的连接句柄
cbLen UDINT 可用于读取数据的最大缓冲区大小(以字节为单位)
pDest POINTER TO BYTE 接收缓冲区的地址(指针)
bExecute BOOL 上升沿触发TCPIP Server接收数据
tTimeout Time 该功能块执行允许的最大超时时间,即从触发到 到达该时间,如果还没有执行,就不执行,超时报警
  • 输出参数
参数名称 参数类型 描述
bBusy BOOL 忙碌状态,True为忙碌,Flase不忙碌
bError BOOL 报错状态,True报错,Flase无报错
nErrId UDINT
如果 bError 输出被设置成True,则此参数返回 MetaFacture TCP/IP 连接服务器的错误编号
nRecBytes UDINT 最后成功接收的数据字节数

关闭连接

功能块FB_SocketClose介绍

参数介绍

  • 输入参数
参数名称 参数类型 描述
hSocket ST_HSOCKET 要关闭的监听器、远程或本地客户端套接字的连接句柄。
bExecute BOOL 通过该输入的上升沿触发功能块
tTimeout TIME 该功能块执行允许的最大超时时间,即从触发到 到达该时间,如果还没有执行,就不执行,超时报警
  • 输出参数
参数名称 参数类型 描述
bBusy BOOL 当功能块被激活时,被置为True,一直保持到收到确认信号
bError BOOL 如果在命令传输过程中发生错误,则在 bBusy 输出被重置后,此输出将被设置成True
nErrId UDINT 如果 bError 输出被设置成True,则此参数返回 MetaFacture TCP/IP 连接服务器的错误编号

错误

断开连接后再次连接,无法连接

  • Client断开与TCPUDP Socket调试工具的连接后,再次去连接,无法连上;

  • 需要重新下装TCPIP Client的工程,或者重新启动RTE才能再次连上;(已提交bug)

最近修改: 2025-05-06