GrabBag/App/StatorPosition/Doc/定子线圈ModbusTCP协议.md
2026-02-23 19:45:47 +08:00

6.5 KiB
Raw Blame History

定子线圈定位 - Modbus TCP 通信协议

1. 系统架构

3D视觉系统提供双通道 Modbus TCP 通信接口,两个通道使用相同的寄存器协议,独立运行。

                    ┌──────────────────┐
                    │                  │
       通道1        │    3D视觉系统     │        通道2
  ┌────────────────►│                  │◄───────────────┐
  │   Modbus TCP    │                  │   Modbus TCP   │
  │                 └──────────────────┘                │
  │                                                     │
  ▼                                                     ▼
┌──────────────────┐                          ┌──────────────────┐
│       PLC        │                          │       外部设备    │
│  192.168.0.88    │                          │                  │
│     端口 502     │                          │     连接端口 502  │
└──────────────────┘                          └──────────────────┘
  • 通道13D视觉系统作为 Modbus TCP 客户端,连接 PLC服务端端口502
  • 通道23D视觉系统作为 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=1PLC发起触发         │
    │◄─────────────────────────────────│
    │                                  │
    │  ③ 写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个floatX,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完成正常时有效
  • 两个通道独立运行,可同时使用