发布时间: 2026-03-12

与外部设备通过TCPIP通讯(插件)


1. 简介

机器人本身的TCPIP通讯只有脚本这一种方式,用户编写脚本通讯耗时较多,不能开机自动连接。此插件提供用户以图形化的形式编写、提供开机自启动,能自动连接的服务端或打开服务器监听,并且提供数据处理的图形化指令。

2. 操作流程

2.1. 环境准备

版本信息:

●  机器人应用版本v2.11及以上

●  扩展socket插件 exsocket-5.9.8.elico

2.2. 插件导入

下载插件安装包后,按插件安装流程章节安装插件。

2.3. 插件使用

2.3.1. 机器人设置IP

该插件适用于本机器人的FB1网口,在机器人设置→网络→FB1网络里的IP地址

2.3.2. socket配置

点击新建,可以建立多个socket配置。

点击下拉按键,可以选择已建立的socket配置

点击下拉按键后,可以在选择框内选择不需要的socket配置,点击删除按钮删掉

2.3.3. 机器人做客户端

2.3.3.1. 客户端连接

方法1:自启动

在导入拓展socket插件之后,在“配置”-“socket配置”里可以设置客户端的参数。

“类型” 选择CLIENT,输入对应的 “”地址、“端口”,点击 “连接” 按钮界面上会有连接状态反馈。

socket插件的“socket配置”中我们可以一些便捷功能能使用。

“自启动”(只需勾选上),机器人开机后,会自动连接对应地址的服务器。

“信号” 选择指定的输出(DO(0)-DO(15))。连接服务器成功后,对应的DO会对外输出信号。

此图-表示已经连接上对应服务器

 

方法2:通过任务连接

指令栏选择 “插件”,1. 点击"Socket Client" 2. 勾选“连接” 3. 选择对应的socket配置

1. 点击右侧的运行按钮。运行任务时,通过该行指令,连接至对应地址的服务器

2. 点击左侧的“连接”按钮,在任务运行前,先连接至对应地址的服务器。已连接后,不影响该行指令的正常运行

2.3.3.2. 客户端发送

指令栏选择“插件”,1. 点击"Socket Client" 2. 选择对应的socket配置 3. 勾选“发送” 4. 输入需要发送的内容

可以手动点击”发送“(必须是已连接的状态),也可以直接”运行任务“来发送

可以选择“输入”或 “变量”。选择变量,可以在任务中,给变量赋不同的值,动态调整发送的内容

针对服务端的需求,可以选择发送不同类型的数据

2.3.3.3. 客户端接收

指令栏选择“插件”,1. 点击"Socket Client" 2. 勾选“接收” 3. 选择对应的变量 4. 选择接收的数据类型。

可以手动点击”接收“(必须是已连接的状态),也可以直接”运行任务“来接收。

超时时间,默认:0表示一直等待接收值。

接收到的值的数据类型,如果如果发送的数据,无法变成对应选择类型会弹出错误弹窗。

比如;发送的值为[1,2,3]数组,选择的是整数类型就会发生弹窗错误。

注:无论是发送还是接收,都要选择对应的socket配置

2.3.4. 机器人做服务端

2.3.4.1. 服务端开启监听

方法1:自启动

在导入拓展socket插件之后,在“配置”-“socket配置”里可以设置服务端的参数。

“类型” 选择CLIENT,输入对应的 “”地址、“端口”,点击 “监听” 按钮,界面上会有监听状态反馈。

socket插件的“socket配置”中我们可以一些便捷功能能使用。

“自启动”(只需勾选上),机器人开机后,会自动打开监听。

“信号” 选择指定的输出(DO(0)-DO(15))。打开监听后,对应的DO会对外输出信号。

方法2:在任务里直接添加

指令栏选择 “插件”,点击"Socket Server"-勾选“监听”-选择对应的socket配置,“运行任务”或点击"监听"

注:每次任务运行监听指令会让客户端连接断开,所以无特殊需求方法2不建议使用。

2.3.4.2. 服务端发送

指令栏选择“插件”,1. 点击"Socket Server" 2. 选择对应的socket配置 3. 勾选“发送” 4. 输入需要发送的内容。

可以手动点击”发送“(必须客户端已连接的状态),也可以直接”运行任务“来发送

可以选择“输入”或 “变量”。选择变量,可以在任务中,给变量赋不同的值,动态调整发送的内容

针对客户端的需求,可以选择发送不同类型的数据

2.3.4.3. 服务端接收

指令栏选择“插件”,1. 点击"Socket Server" 2. 勾选“接收” 3. 选择对应的变量 4. 选择接收的数据类型。

可以手动点击”接收“(必须是已连接的状态),也可以直接”运行任务“来接收。

超时时间,默认:0表示一直等待接收值。

接收到的值的数据类型,如果如果发送的数据,无法变成对应选择类型会弹出错误弹窗。比如;发送的值为[1,2,3]数组,选择的是整数类型就会发生弹窗错误。

注:无论是发送还是接收,都要选择对应的socket配置

2.3.5. socket插件便捷指令

2.3.5.1. 字符串拆分

该指令可以把接收的字符串型数据用符号进行分割。

指令栏选择“插件”。1. 点击"字符串拆分" 2. 选择需要处理的字符串变量 3. 选择处理后,用于接收结果的变量 4. 选择分割符。

字符串中的数字,会自动转换成整型或者浮点型,可以直接用于计算等操作。

2.3.5.2. 字符串拼接

该指令可以将两串字符串,拼接成一串字符串。

指令栏选择“插件”。1. 点击"字符串拼接" 2. 选择需要拼接的字符串变量 3. 选择需要拼接的字符串变量 4. 选择拼接后,用于接收结果的变量。

拼接后的效果

2.3.5.3. 数组赋值

该指令可以直接把数组里的数据拆分赋值到变量里,下标代数组里的第几位数据(从0开始计算)

指令栏选择“插件”。1. 点击"数组赋值" 2. 选择对应的数组变量 3. 用于接收结果的变量 4. 填写下标

赋值后的效果

2.3.5.4. 清除缓存

该指令用于“服务器” 或 “客户端”发送数据后,清除未接收处于缓存区的数据。

指令栏选择“插件”。1. 点击"“Flush Socket" 2. 选择对应socket配置

假设机器人处于未运行状态,通讯助手作为客户端,向机器人发送了数据

在这种情况下,未接收的数据会保存在缓存区。机器人一但执行任务,立刻就会收到保存在缓存区的数据。

执行“清除缓存”指令后,会清除掉处于缓存区的数据,就不会出现刚执行任务,客户端还没发送数据,机器人这边就已经接收到数据的情况。

机器人会一直处于运行状态,等待客户端发送数据。

2.3.5.5. 检查连接状态

该指令用于检测 “客户端” 或 “服务端” 的连接状态

指令栏选择“插件”,点击"Check Socket"-选择对应的socket配置-选择需要赋值的变量

该指令会反馈对应socket配置的连接状态,会返还 “True” 或 “False”,并赋值到对应的变量

“True”是已连接,“False”是未连接。

 3. socket日志解析

socket插件版本必须要5.9.8以上

socket插件在运行时,会生成一个日志文件,该日志如果通过备份导出则文件路径:CS_BACKUP\EliRobot\log\extend_socket_(server或client).log客户端和服务器的日志分开。

也可以通过Win SCP等途径直接登录机器人并读取,路径为:

/home/elite/user/log/extend_socket_(server或client).log

注意:该日志无法通过支持文件导出。

日志文件打开如下:日志中会显示端口的连接状态以及发送接收数据的日志。

该日志可以保存4万条以上。

4. 常见问题解答

4.1.客户端/服务端连接不上?

机器人为客户端时查看对应的IP地址是否填错,是否是同一网段,是否可以ping通,是否网线插在在FB1网口。

 

4.2.常见的报错

报错码:socket.timeout

原因:接收数据超时,在接收里设定了超时时间。超时时间等于0,该指令会一直等待,直到接收到数据为止

报错码:ValueError

原因:数据类型不一致。图中的案例,“接收”设定的“数据类型”是整形,实际收到的数据是字符串“abc”

 

 

 

提交反馈