台达 DVP-EH3 变址寄存器
台达 EH3 的 F 是 16 位专用 变址寄存器,专门给 D、K、M、X、Y 做偏移寻址,用法和三菱的 V/Z 不一样!
一、EH3 的 F 到底是什么?
1. EH3 只有 F0 ~ F7 共 8 个变址寄存器
F = 变址偏移量
用法:
D0F0= D(0 + F0)例如:
F0 = 5
D0F0 = D5
D10F2 = D(10+F2)
2. 最重要规则(EH3 独有)
F 只能存放「偏移值」,不能直接当普通寄存器用!
二、你 90% 遇到的问题:F 赋值 / 使用方式错误
错误 1:直接把 F 当成普通 D 寄存器
plaintext
MOV K10 F0 ❌ 错误!EH3 不支持
正确写法:必须用 D 中转赋值
plaintext
MOV K10 D0 MOV D0 F0 ✅ 正确
错误 2:32 位指令用 F 变址(EH3 不支持)
plaintext
DMOV K100 D0F0 ❌ EH3 不支持 32 位变址
正确:只支持 16 位指令 变址
plaintext
MOV K100 D0F0 ✅
错误 3:变址写法写错
plaintext
D F0 或 D(F0) ❌
正确写法(台达 EH3 固定格式)
plaintext
D0F0 D10F1 M0F2 Y0F3 ✅
三、EH3 变址 F 正确用法示例
示例 1:让 D10 → D20
plaintext
MOV K10 D0 MOV D0 F0 F0=10 MOV K123 D0F0 相当于 MOV K123 D10
示例 2:循环赋值(最常用)
plaintext
MOV K0 F0 LOOP: MOV F0 D0F0 D0=0,D1=1,D2=2... INCF F0 CMP F0 K10 END JMP LOOP END:
示例 3:变址访问 M、Y、X
plaintext
MOV K5 F0 OUT M0F0 等于 OUT M5 LD X0F1 等于 LD X1
四、1. 赋值 F 报错
→ 必须用 D 中转,不能直接给 F 赋值
2. D0F0 不是预期地址
→ F 的值不是你想的那样→ 先把 F0 写到 D100 监控:MOV F0 D100
3. 32 位指令(DMOV、DDIV)不能变址
→ EH3 不支持 32 位变址!
4. 程序监控看不到 F 值
→ 台达必须在 监控表手动输入 F0~F7 才能看.


