定子线圈的文档

This commit is contained in:
yiyi 2026-02-23 19:45:47 +08:00
parent 1ebc11020f
commit f82f468a6b

View File

@ -1,139 +1,139 @@
# 电机定子定位 - Modbus TCP 通信协议 # 定子线圈定位 - Modbus TCP 通信协议
## 1. 系统架构 ## 1. 系统架构
3D视觉系统提供双通道 Modbus TCP 通信接口,两个通道使用相同的寄存器协议,独立运行。 3D视觉系统提供双通道 Modbus TCP 通信接口,两个通道使用相同的寄存器协议,独立运行。
``` ```
┌──────────────────┐ ┌──────────────────┐
│ │ │ │
通道1 │ 3D视觉系统 │ 通道2 通道1 │ 3D视觉系统 │ 通道2
┌────────────────►│ │◄───────────────┐ ┌────────────────►│ │◄───────────────┐
│ Modbus TCP │ │ Modbus TCP │ │ Modbus TCP │ │ Modbus TCP │
│ └──────────────────┘ │ │ └──────────────────┘ │
│ │ │ │
▼ ▼ ▼ ▼
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ PLC │ │ 外部设备 │ │ PLC │ │ 外部设备 │
│ 192.168.0.88 │ │ │ │ 192.168.0.88 │ │ │
│ 端口 502 │ │ 连接端口 502 │ │ 端口 502 │ │ 连接端口 502 │
└──────────────────┘ └──────────────────┘ └──────────────────┘ └──────────────────┘
``` ```
- **通道1**3D视觉系统作为 Modbus TCP 客户端,连接 PLC服务端端口502 - **通道1**3D视觉系统作为 Modbus TCP 客户端,连接 PLC服务端端口502
- **通道2**3D视觉系统作为 Modbus TCP 服务端监听端口502等待外部设备连接 - **通道2**3D视觉系统作为 Modbus TCP 服务端监听端口502等待外部设备连接
## 2. 寄存器定义 ## 2. 寄存器定义
每次检测输出1个目标位置6个float值 = 12个寄存器 每次检测输出1个目标位置6个float值 = 12个寄存器
### 2.1 寄存器地址表 ### 2.1 寄存器地址表
| 地址 | 类型 | 说明 | | 地址 | 类型 | 说明 |
|------|------|------| |------|------|------|
| 0 | uint16 | 触发信号(边沿检测 0→1 触发) | | 0 | uint16 | 触发信号(边沿检测 0→1 触发) |
| 1 | uint16 | 工作状态 | | 1 | uint16 | 工作状态 |
| 2-13 | float × 6 | 目标位姿数据X, Y, Z, Roll, Pitch, Yaw | | 2-13 | float × 6 | 目标位姿数据X, Y, Z, Roll, Pitch, Yaw |
### 2.2 工作状态值地址1 ### 2.2 工作状态值地址1
| 值 | 含义 | | 值 | 含义 |
|----|------| |----|------|
| 0 | 正在工作 | | 0 | 正在工作 |
| 1 | 完成(正常) | | 1 | 完成(正常) |
| 2 | 完成(异常) | | 2 | 完成(异常) |
### 2.3 目标位姿数据布局地址2-13 ### 2.3 目标位姿数据布局地址2-13
| 地址 | 类型 | 说明 | | 地址 | 类型 | 说明 |
|------|------|------| |------|------|------|
| 2-3 | float | X坐标 (mm) | | 2-3 | float | X坐标 (mm) |
| 4-5 | float | Y坐标 (mm) | | 4-5 | float | Y坐标 (mm) |
| 6-7 | float | Z坐标 (mm) | | 6-7 | float | Z坐标 (mm) |
| 8-9 | float | Roll角度 (°) | | 8-9 | float | Roll角度 (°) |
| 10-11 | float | Pitch角度 (°) | | 10-11 | float | Pitch角度 (°) |
| 12-13 | float | Yaw角度 (°) | | 12-13 | float | Yaw角度 (°) |
> **float编码**IEEE 754 单精度浮点数每个float占2个保持寄存器默认大端序高位字在低地址 > **float编码**IEEE 754 单精度浮点数每个float占2个保持寄存器默认大端序高位字在低地址
## 3. 通信流程 ## 3. 通信流程
### 3.1 通道1 时序3D视觉系统 → PLC ### 3.1 通道1 时序3D视觉系统 → PLC
3D视觉系统主动轮询PLC的触发寄存器检测到触发后执行检测并回写结果。 3D视觉系统主动轮询PLC的触发寄存器检测到触发后执行检测并回写结果。
``` ```
3D视觉系统 PLC 3D视觉系统 PLC
│ │ │ │
│ ① 轮询读取地址0 │ │ ① 轮询读取地址0 │
│◄─────────────────────────────────│ │◄─────────────────────────────────│
│ │ │ │
│ ② 地址0=1PLC发起触发 │ ② 地址0=1PLC发起触发
│◄─────────────────────────────────│ │◄─────────────────────────────────│
│ │ │ │
│ ③ 写0到地址0清除触发 │ ③ 写0到地址0清除触发
│─────────────────────────────────►│ │─────────────────────────────────►│
│ │ │ │
│ ④ 写0到地址1状态=正在工作) │ │ ④ 写0到地址1状态=正在工作) │
│─────────────────────────────────►│ │─────────────────────────────────►│
│ │ │ │
│ [3D视觉系统执行检测] │ │ [3D视觉系统执行检测] │
│ │ │ │
│ ⑤ 写位姿数据到地址2-13 │ │ ⑤ 写位姿数据到地址2-13 │
│─────────────────────────────────►│ │─────────────────────────────────►│
│ │ │ │
│ ⑥ 写1到地址1状态=完成正常) │ │ ⑥ 写1到地址1状态=完成正常) │
│─────────────────────────────────►│ │─────────────────────────────────►│
│ │ │ │
``` ```
### 3.2 通道2 时序(外部设备 → 3D视觉系统 ### 3.2 通道2 时序(外部设备 → 3D视觉系统
外部设备作为 Modbus 客户端连接到3D视觉系统端口502通过写寄存器触发检测通过读寄存器获取结果。 外部设备作为 Modbus 客户端连接到3D视觉系统端口502通过写寄存器触发检测通过读寄存器获取结果。
``` ```
外部设备 3D视觉系统(:502) 外部设备 3D视觉系统(:502)
│ │ │ │
│ ① 写1到地址0触发 │ ① 写1到地址0触发
│─────────────────────────────────►│ │─────────────────────────────────►│
│ │ │ │
│ [3D系统清除地址0、置地址1=0] │ │ [3D系统清除地址0、置地址1=0] │
│ [3D系统执行检测] │ │ [3D系统执行检测] │
│ [3D系统写位姿到地址2-13] │ │ [3D系统写位姿到地址2-13] │
│ [3D系统置地址1=1或2] │ │ [3D系统置地址1=1或2] │
│ │ │ │
│ ② 轮询读取地址1查询状态 │ ② 轮询读取地址1查询状态
│─────────────────────────────────►│ │─────────────────────────────────►│
│ 返回: 1=完成正常 / 2=异常 │ │ 返回: 1=完成正常 / 2=异常 │
│◄─────────────────────────────────│ │◄─────────────────────────────────│
│ │ │ │
│ ③ 读取地址2-13获取位姿 │ ③ 读取地址2-13获取位姿
│─────────────────────────────────►│ │─────────────────────────────────►│
│ 返回: 6个floatX,Y,Z,R,P,Y │ 返回: 6个floatX,Y,Z,R,P,Y
│◄─────────────────────────────────│ │◄─────────────────────────────────│
│ │ │ │
``` ```
### 3.3 流程说明 ### 3.3 流程说明
1. **触发**地址0写入1采用边沿检测0→1变化时触发重复写1不会重复触发 1. **触发**地址0写入1采用边沿检测0→1变化时触发重复写1不会重复触发
2. **工作中**触发后3D系统立即清除地址0并将地址1置为0正在工作 2. **工作中**触发后3D系统立即清除地址0并将地址1置为0正在工作
3. **结果输出**检测完成后位姿数据写入地址2-13然后地址1置为1完成正常 3. **结果输出**检测完成后位姿数据写入地址2-13然后地址1置为1完成正常
4. **异常处理**检测失败时地址1置为2异常位姿数据无效 4. **异常处理**检测失败时地址1置为2异常位姿数据无效
5. **双通道联动**:任一通道触发检测后,结果会同时写入两个通道的寄存器 5. **双通道联动**:任一通道触发检测后,结果会同时写入两个通道的寄存器
## 4. 使用建议 ## 4. 使用建议
### 4.1 触发方检查流程 ### 4.1 触发方检查流程
1. 写1到地址0触发检测 1. 写1到地址0触发检测
2. 轮询读取地址1等待值变为非0 2. 轮询读取地址1等待值变为非0
- 值为1检测成功读取地址2-13获取位姿 - 值为1检测成功读取地址2-13获取位姿
- 值为2检测异常可重新触发 - 值为2检测异常可重新触发
3. 处理完毕后可再次触发下一次检测 3. 处理完毕后可再次触发下一次检测
### 4.2 注意事项 ### 4.2 注意事项
- 3D系统工作期间地址1=0请勿重复触发 - 3D系统工作期间地址1=0请勿重复触发
- 位姿数据仅在地址1=1完成正常时有效 - 位姿数据仅在地址1=1完成正常时有效
- 两个通道独立运行,可同时使用 - 两个通道独立运行,可同时使用