260915.LS雷赛电机.ModbusTcp回零和PR模式冲突.导致回零又触发限位.解决办法

  1. 解决办法
    1. 回零触发,PR设置参数为0禁用
    2. 到原点,设置位置为0,PR设置参数为0禁用
  2. DB.点表整理

问题描述: 电机设置了PR 路径的配置,回原点就出问题了,没有设置PR路径就正常

你现在的现象是:

1
2
3
4
5
6
7
8
9
10
没有配置 PR 路径
→ 写 32 回零
→ 正常停在原点

配置 PR 路径以后
→ 写 32 回零
→ 到原点
→ 停一下
→ 又继续运动
→ 最后跑到限位

这和手册里的 P08.26 IO组合触发模式 高度吻合。

手册明确写了:

1
2
3
4
5
6
P08.26
地址:0x601A

0 = 关闭 IO 组合触发
1 = 开启 IO 组合触发,HOME-OK 有效时生效
2 = 开启 IO 组合触发,不需要 HOME-OK

并且 ADD0~ADD3 的组合直接选择 PR1~PR15。

所以很可能实际上发生的是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
写32 HOME

电机回原点

HOME-OK = ON

P08.26 = 1

驱动器读取 ADD0~ADD3

当前 ADD 组合 = 某个 PR 路径

自动触发该 PR

电机又跑了

而且 PR 组合触发不需要 CTRG 信号,只要 ADD 电平组合变化成非零路径,就会触发对应路径。手册明确说明“IO组合触发是不通过触发信号,直接使用
IO 电平组合触发动作”。

这就能解释你看到的:

原点停一下,然后马上自己又走。

解决办法

回零触发,PR设置参数为0禁用

1
2
3
4
5
6
7
8
9
return [{
field: "4_25096",
type: "int16",
value: 0
},{
field: "4_24578",
type: "int16",
value: 32
}];

到原点,设置位置为0,PR设置参数为0禁用

1
2
3
4
5
6
7
8
9
return [{
field: "4_25096",
type: "int16",
value: 0
}, {
field: "4_24578",
type: "int16",
value: 33
}];

DB.点表整理

数据区域 点位 名称 数据类型 备注
03 Holding Register(4x) 1027 电机使能参数 int16
03 Holding Register(4x) 24576 PR 控制设置 int16
03 Holding Register(4x) 24577 路径数量 int16
03 Holding Register(4x) 24578 控制操作 int16 0x010 16 写 启动 P0 段
0x011 17 写 启动 P1 段
0x012 18 写 启动 P2 段
0x020 32 写 回零
0x021 33 写 手动设零
0x040 64 写 急停
0 0 读 定位完成
16 16 读 未响应
32 32 读 回零中
64 64 读 急停中
256 256 读 P0 运行中
257 257 读 P1 运行中
512 512 读 等待定位
03 Holding Register(4x) 25096 PR1 模式 int16
03 Holding Register(4x) 25097 PR1 位置 H int16
03 Holding Register(4x) 25098 PR1 位置 (L) int16
03 Holding Register(4x) 25099 PR1 速度 int16
03 Holding Register(4x) 25100 PR1 加速时间 int16
03 Holding Register(4x) 25101 PR1 减速时间 int16
03 Holding Register(4x) 25102 PR1 停顿时间 int16
03 Holding Register(4x) 24620 当前位置 int32 运行状态(当前位置)
03 Holding Register(4x) 2833 物理IO输入状态(DI) bit 4_2833_2 : DI3
4_2833_3 : DI4
4_2833_4 : DI5
03 Holding Register(4x) 2834 物理IO输出状态(DO) bit 4_2834_0 : DO1
4_2834_1 : DO2
4_2834_2 : DO3
03 Holding Register(4x) 2821 P0B.05:0x0B05 Bit4:INP 定位完成 bit Bit4 是定位完成状态,
Bit0 是准备完成,
Bit1 是运行状态,
Bit2 是故障状态。
归档 GitHub