From f82f468a6b5c1e7fc90200eae61ddde79346c9df Mon Sep 17 00:00:00 2001 From: yiyi Date: Mon, 23 Feb 2026 19:45:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E5=AD=90=E7=BA=BF=E5=9C=88=E7=9A=84?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...S_PROTOCOL.md => 定子线圈ModbusTCP协议.md} | 278 +++++++++--------- 1 file changed, 139 insertions(+), 139 deletions(-) rename App/StatorPosition/Doc/{MODBUS_PROTOCOL.md => 定子线圈ModbusTCP协议.md} (97%) diff --git a/App/StatorPosition/Doc/MODBUS_PROTOCOL.md b/App/StatorPosition/Doc/定子线圈ModbusTCP协议.md similarity index 97% rename from App/StatorPosition/Doc/MODBUS_PROTOCOL.md rename to App/StatorPosition/Doc/定子线圈ModbusTCP协议.md index 6ac9825..e91fa7e 100644 --- a/App/StatorPosition/Doc/MODBUS_PROTOCOL.md +++ b/App/StatorPosition/Doc/定子线圈ModbusTCP协议.md @@ -1,139 +1,139 @@ -# 电机定子定位 - Modbus TCP 通信协议 - -## 1. 系统架构 - -3D视觉系统提供双通道 Modbus TCP 通信接口,两个通道使用相同的寄存器协议,独立运行。 - -``` - ┌──────────────────┐ - │ │ - 通道1 │ 3D视觉系统 │ 通道2 - ┌────────────────►│ │◄───────────────┐ - │ Modbus TCP │ │ Modbus TCP │ - │ └──────────────────┘ │ - │ │ - ▼ ▼ -┌──────────────────┐ ┌──────────────────┐ -│ PLC │ │ 外部设备 │ -│ 192.168.0.88 │ │ │ -│ 端口 502 │ │ 连接端口 502 │ -└──────────────────┘ └──────────────────┘ -``` - -- **通道1**:3D视觉系统作为 Modbus TCP 客户端,连接 PLC(服务端,端口502) -- **通道2**:3D视觉系统作为 Modbus TCP 服务端(监听端口502),等待外部设备连接 - -## 2. 寄存器定义 - -每次检测输出1个目标位置(6个float值 = 12个寄存器)。 - -### 2.1 寄存器地址表 - -| 地址 | 类型 | 说明 | -|------|------|------| -| 0 | uint16 | 触发信号(边沿检测 0→1 触发) | -| 1 | uint16 | 工作状态 | -| 2-13 | float × 6 | 目标位姿数据(X, Y, Z, Roll, Pitch, Yaw) | - -### 2.2 工作状态值(地址1) - -| 值 | 含义 | -|----|------| -| 0 | 正在工作 | -| 1 | 完成(正常) | -| 2 | 完成(异常) | - -### 2.3 目标位姿数据布局(地址2-13) - -| 地址 | 类型 | 说明 | -|------|------|------| -| 2-3 | float | X坐标 (mm) | -| 4-5 | float | Y坐标 (mm) | -| 6-7 | float | Z坐标 (mm) | -| 8-9 | float | Roll角度 (°) | -| 10-11 | float | Pitch角度 (°) | -| 12-13 | float | Yaw角度 (°) | - -> **float编码**:IEEE 754 单精度浮点数,每个float占2个保持寄存器,默认大端序(高位字在低地址)。 - -## 3. 通信流程 - -### 3.1 通道1 时序(3D视觉系统 → PLC) - -3D视觉系统主动轮询PLC的触发寄存器,检测到触发后执行检测并回写结果。 - -``` -3D视觉系统 PLC - │ │ - │ ① 轮询读取地址0 │ - │◄─────────────────────────────────│ - │ │ - │ ② 地址0=1(PLC发起触发) │ - │◄─────────────────────────────────│ - │ │ - │ ③ 写0到地址0(清除触发) │ - │─────────────────────────────────►│ - │ │ - │ ④ 写0到地址1(状态=正在工作) │ - │─────────────────────────────────►│ - │ │ - │ [3D视觉系统执行检测] │ - │ │ - │ ⑤ 写位姿数据到地址2-13 │ - │─────────────────────────────────►│ - │ │ - │ ⑥ 写1到地址1(状态=完成正常) │ - │─────────────────────────────────►│ - │ │ -``` - -### 3.2 通道2 时序(外部设备 → 3D视觉系统) - -外部设备作为 Modbus 客户端连接到3D视觉系统(端口502),通过写寄存器触发检测,通过读寄存器获取结果。 - -``` -外部设备 3D视觉系统(:502) - │ │ - │ ① 写1到地址0(触发) │ - │─────────────────────────────────►│ - │ │ - │ [3D系统清除地址0、置地址1=0] │ - │ [3D系统执行检测] │ - │ [3D系统写位姿到地址2-13] │ - │ [3D系统置地址1=1或2] │ - │ │ - │ ② 轮询读取地址1(查询状态) │ - │─────────────────────────────────►│ - │ 返回: 1=完成正常 / 2=异常 │ - │◄─────────────────────────────────│ - │ │ - │ ③ 读取地址2-13(获取位姿) │ - │─────────────────────────────────►│ - │ 返回: 6个float(X,Y,Z,R,P,Y) │ - │◄─────────────────────────────────│ - │ │ -``` - -### 3.3 流程说明 - -1. **触发**:地址0写入1,采用边沿检测(0→1变化时触发),重复写1不会重复触发 -2. **工作中**:触发后3D系统立即清除地址0并将地址1置为0(正在工作) -3. **结果输出**:检测完成后,位姿数据写入地址2-13,然后地址1置为1(完成正常) -4. **异常处理**:检测失败时,地址1置为2(异常),位姿数据无效 -5. **双通道联动**:任一通道触发检测后,结果会同时写入两个通道的寄存器 - -## 4. 使用建议 - -### 4.1 触发方检查流程 - -1. 写1到地址0,触发检测 -2. 轮询读取地址1,等待值变为非0 - - 值为1:检测成功,读取地址2-13获取位姿 - - 值为2:检测异常,可重新触发 -3. 处理完毕后可再次触发下一次检测 - -### 4.2 注意事项 - -- 3D系统工作期间(地址1=0),请勿重复触发 -- 位姿数据仅在地址1=1(完成正常)时有效 -- 两个通道独立运行,可同时使用 +# 定子线圈定位 - Modbus TCP 通信协议 + +## 1. 系统架构 + +3D视觉系统提供双通道 Modbus TCP 通信接口,两个通道使用相同的寄存器协议,独立运行。 + +``` + ┌──────────────────┐ + │ │ + 通道1 │ 3D视觉系统 │ 通道2 + ┌────────────────►│ │◄───────────────┐ + │ Modbus TCP │ │ Modbus TCP │ + │ └──────────────────┘ │ + │ │ + ▼ ▼ +┌──────────────────┐ ┌──────────────────┐ +│ PLC │ │ 外部设备 │ +│ 192.168.0.88 │ │ │ +│ 端口 502 │ │ 连接端口 502 │ +└──────────────────┘ └──────────────────┘ +``` + +- **通道1**:3D视觉系统作为 Modbus TCP 客户端,连接 PLC(服务端,端口502) +- **通道2**:3D视觉系统作为 Modbus TCP 服务端(监听端口502),等待外部设备连接 + +## 2. 寄存器定义 + +每次检测输出1个目标位置(6个float值 = 12个寄存器)。 + +### 2.1 寄存器地址表 + +| 地址 | 类型 | 说明 | +|------|------|------| +| 0 | uint16 | 触发信号(边沿检测 0→1 触发) | +| 1 | uint16 | 工作状态 | +| 2-13 | float × 6 | 目标位姿数据(X, Y, Z, Roll, Pitch, Yaw) | + +### 2.2 工作状态值(地址1) + +| 值 | 含义 | +|----|------| +| 0 | 正在工作 | +| 1 | 完成(正常) | +| 2 | 完成(异常) | + +### 2.3 目标位姿数据布局(地址2-13) + +| 地址 | 类型 | 说明 | +|------|------|------| +| 2-3 | float | X坐标 (mm) | +| 4-5 | float | Y坐标 (mm) | +| 6-7 | float | Z坐标 (mm) | +| 8-9 | float | Roll角度 (°) | +| 10-11 | float | Pitch角度 (°) | +| 12-13 | float | Yaw角度 (°) | + +> **float编码**:IEEE 754 单精度浮点数,每个float占2个保持寄存器,默认大端序(高位字在低地址)。 + +## 3. 通信流程 + +### 3.1 通道1 时序(3D视觉系统 → PLC) + +3D视觉系统主动轮询PLC的触发寄存器,检测到触发后执行检测并回写结果。 + +``` +3D视觉系统 PLC + │ │ + │ ① 轮询读取地址0 │ + │◄─────────────────────────────────│ + │ │ + │ ② 地址0=1(PLC发起触发) │ + │◄─────────────────────────────────│ + │ │ + │ ③ 写0到地址0(清除触发) │ + │─────────────────────────────────►│ + │ │ + │ ④ 写0到地址1(状态=正在工作) │ + │─────────────────────────────────►│ + │ │ + │ [3D视觉系统执行检测] │ + │ │ + │ ⑤ 写位姿数据到地址2-13 │ + │─────────────────────────────────►│ + │ │ + │ ⑥ 写1到地址1(状态=完成正常) │ + │─────────────────────────────────►│ + │ │ +``` + +### 3.2 通道2 时序(外部设备 → 3D视觉系统) + +外部设备作为 Modbus 客户端连接到3D视觉系统(端口502),通过写寄存器触发检测,通过读寄存器获取结果。 + +``` +外部设备 3D视觉系统(:502) + │ │ + │ ① 写1到地址0(触发) │ + │─────────────────────────────────►│ + │ │ + │ [3D系统清除地址0、置地址1=0] │ + │ [3D系统执行检测] │ + │ [3D系统写位姿到地址2-13] │ + │ [3D系统置地址1=1或2] │ + │ │ + │ ② 轮询读取地址1(查询状态) │ + │─────────────────────────────────►│ + │ 返回: 1=完成正常 / 2=异常 │ + │◄─────────────────────────────────│ + │ │ + │ ③ 读取地址2-13(获取位姿) │ + │─────────────────────────────────►│ + │ 返回: 6个float(X,Y,Z,R,P,Y) │ + │◄─────────────────────────────────│ + │ │ +``` + +### 3.3 流程说明 + +1. **触发**:地址0写入1,采用边沿检测(0→1变化时触发),重复写1不会重复触发 +2. **工作中**:触发后3D系统立即清除地址0并将地址1置为0(正在工作) +3. **结果输出**:检测完成后,位姿数据写入地址2-13,然后地址1置为1(完成正常) +4. **异常处理**:检测失败时,地址1置为2(异常),位姿数据无效 +5. **双通道联动**:任一通道触发检测后,结果会同时写入两个通道的寄存器 + +## 4. 使用建议 + +### 4.1 触发方检查流程 + +1. 写1到地址0,触发检测 +2. 轮询读取地址1,等待值变为非0 + - 值为1:检测成功,读取地址2-13获取位姿 + - 值为2:检测异常,可重新触发 +3. 处理完毕后可再次触发下一次检测 + +### 4.2 注意事项 + +- 3D系统工作期间(地址1=0),请勿重复触发 +- 位姿数据仅在地址1=1(完成正常)时有效 +- 两个通道独立运行,可同时使用