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]
typeintTCP 通讯方式: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]
typeintTCP 通讯方式: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]
typeintTCP 通讯方式: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)

type0 时,控制器作为 TCP 服务器,绑定 server.ipserver.port,等待客户端连接。

客户端模式(type=1)

type1 时,控制器作为 TCP 客户端,主动连接 client.ipclient.port 指定的服务器。

配置文件模式(type=2)

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

注意事项

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