Skip to content

Tcp 通讯 ​

上位机设置 Tcp 通讯参数 ​

命令字: 0x7320

参数列表 ​

字段类型必填说明
clientobject否客户端参数,当 type 为 1 时该节点存在
client.frameHeaderstring否数据帧头,留空为没有
client.ipstring否需要连接的服务器 IP
client.numberSystemint否接收到的数据解析进制:0-十进制,1-十六进制
client.portint否通讯端口,范围 (0, 65535]
client.separatorstring否数据分隔符
client.terminatorstring否数据帧尾,留空为没有
serverobject否服务器参数,当 type 为 0 时该节点存在
server.frameHeaderstring否数据帧头,留空为没有
server.ipstring否当前用作服务器 IP
server.numberSystemint否接收到的数据解析进制:0-十进制,1-十六进制
server.portint否通讯端口,范围 (0, 65535]
server.separatorstring否数据分隔符
server.terminatorstring否数据帧尾,留空为没有
craftint是工艺号,范围 [1, 9]
robotint是当前机器人号,范围 [1, 4]
typeint是TCP 通讯方式:0-服务器,1-客户端,2-配置文件

请求示例 ​

json
{
  "client": {
    "frameHeader": "@",
    "ip": "192.168.1.111",
    "numberSystem": 0,
    "port": 9000,
    "separator": ",",
    "terminator": "!"
  },
  "craft": 1,
  "robot": 1,
  "server": {
    "frameHeader": "@",
    "ip": "192.168.0.229",
    "numberSystem": 0,
    "port": 9001,
    "separator": ",",
    "terminator": "!"
  },
  "type": 1
}

上位机查询 Tcp 通讯参数 ​

命令字: 0x7321

参数列表 ​

字段类型必填说明
craftint是工艺号,范围 [1, 9]
robotint是机器人号,范围 [1, 4]
typeint是TCP 通讯方式:0-服务器,1-客户端,2-配置文件;为 2 时控制器发送服务器参数

请求示例 ​

json
{
  "craft": 1,
  "robot": 1,
  "type": 2
}

控制器回复 Tcp 通讯参数 ​

命令字: 0x7322

参数列表 ​

字段类型必填说明
clientobject否客户端参数,当 type 为 1 时该节点存在
client.frameHeaderstring否数据帧头,留空为没有
client.ipstring否需要连接的服务器 IP
client.numberSystemint否接收到的数据解析进制:0-十进制,1-十六进制
client.portint否通讯端口,范围 (0, 65535]
client.separatorstring否数据分隔符
client.terminatorstring否数据帧尾,留空为没有
serverobject否服务器参数,当 type 为 0 时该节点存在
server.frameHeaderstring否数据帧头,留空为没有
server.ipstring否当前用作服务器 IP
server.numberSystemint否接收到的数据解析进制:0-十进制,1-十六进制
server.portint否通讯端口,范围 (0, 65535]
server.separatorstring否数据分隔符
server.terminatorstring否数据帧尾,留空为没有
craftint是工艺号,范围 [1, 9]
robotint是当前机器人号,范围 [1, 4]
typeint是TCP 通讯方式:0-服务器,1-客户端,2-配置文件

响应示例 ​

json
{
  "client": {
    "frameHeader": "@",
    "ip": "192.168.1.111",
    "numberSystem": 0,
    "port": 9000,
    "separator": ",",
    "terminator": "!"
  },
  "craft": 1,
  "robot": 1,
  "server": {
    "frameHeader": "@",
    "ip": "192.168.0.229",
    "numberSystem": 0,
    "port": 9001,
    "separator": ",",
    "terminator": "!"
  },
  "type": 1
}

上位机请求连接 Tcp 通讯 ​

命令字: 0x7323

参数列表 ​

字段类型必填说明
craftint是工艺号,范围 [1, 9]
robotint是机器人号,范围 [1, 4]

请求示例 ​

json
{
  "craft": 1,
  "robot": 1
}

上位机请求断开 Tcp 通讯 ​

命令字: 0x7324

参数列表 ​

字段类型必填说明
craftint是工艺号,范围 [1, 9]
robotint是机器人号,范围 [1, 4]

请求示例 ​

json
{
  "craft": 1,
  "robot": 1
}

上位机查询 Tcp 通讯连接状态 ​

命令字: 0x7325

参数列表 ​

字段类型必填说明
craftint是工艺号,范围 [1, 9]
robotint是机器人号,范围 [1, 4]

请求示例 ​

json
{
  "craft": 1,
  "robot": 1
}

控制器回复 Tcp 通讯连接状态 ​

命令字: 0x7326

参数列表 ​

字段类型必填说明
craftint是工艺号,范围 [1, 9]
robotint是机器人号,范围 [1, 4]
statusint是连接状态;0-未连接,1-已连接

响应示例 ​

json
{
  "craft": 1,
  "robot": 1,
  "status": 1
}

上位机发送 Tcp 数据 ​

命令字: 0x7327

说明: 上位机通过已建立的 TCP 连接向对端发送字符串数据。发送前需确保 TCP 连接已建立。

参数列表 ​

字段类型必填说明
craftint是工艺号,范围 [1, 9]
robotint是机器人号,范围 [1, 4]
datastring是要发送的字符串数据

请求示例 ​

json
{
  "craft": 1,
  "robot": 1,
  "data": "Hello, this is a test message!"
}

控制器主动推送 Tcp 接收数据 ​

命令字: 0x7328

说明: 当 TCP 连接接收到对端发来的数据时,控制器会主动向上位机推送接收到的数据。

参数列表 ​

字段类型必填说明
craftint是工艺号,范围 [1, 9]
robotint是机器人号,范围 [1, 4]
datastring是接收到的字符串数据

推送示例 ​

json
{
  "craft": 1,
  "robot": 1,
  "data": "Received message from peer"
}

TCP 通讯协议说明 ​

数据帧格式 ​

TCP 通讯支持自定义数据帧格式,通过设置 frameHeader(帧头)、separator(分隔符)和 terminator(帧尾)来定义数据帧的边界:

  • 帧头(frameHeader):数据帧的起始标记,留空表示无帧头
  • 分隔符(separator):数据域之间的分隔字符,用于解析多个数据字段
  • 帧尾(terminator):数据帧的结束标记,留空表示无帧尾
  • 数据进制(numberSystem):接收数据时的解析进制,0 为十进制,1 为十六进制

连接管理流程 ​

  1. 设置参数:通过 0x7320 设置 TCP 通讯参数(服务器/客户端模式、IP、端口等)
  2. 建立连接:通过 0x7323 请求建立 TCP 连接
  3. 数据收发:通过 0x7327 发送数据,通过 0x7328 接收推送数据
  4. 查询状态:通过 0x7325 查询连接状态
  5. 断开连接:通过 0x7324 请求断开 TCP 连接

服务器模式(type=0) ​

当 type 为 0 时,控制器作为 TCP 服务器,绑定 server.ip 和 server.port,等待客户端连接。

客户端模式(type=1) ​

当 type 为 1 时,控制器作为 TCP 客户端,主动连接 client.ip 和 client.port 指定的服务器。

配置文件模式(type=2) ​

当 type 为 2 时,控制器读取配置文件中的 TCP 通讯参数,上位机可通过 0x7321 查询配置。

注意事项 ​

  • 通讯双方的数据帧格式(帧头、分隔符、帧尾)必须保持一致,否则可能导致数据解析错误
  • 进制设置仅影响接收数据的解析,发送数据始终以原始字符串形式发送
  • 同一工艺号同时只能维持一种连接模式(服务器或客户端)