关于台达 DVP48EC 两个16位数据寄存器组成一个16位寄存器的方法
Python-WUKUI
2025年06月29日 17:31
收录于文集
共3篇
自动化PLC编程

1、台达 DVP48EC 和 三菱 FX5U 进行Modbus-RTU通讯时接收回来的数据和发送的数据显示方式不一致?

台达 DVP48EC Modbus-RTU 主站:

定时读取 1# 站 H0 开始的16个寄存器值

三菱 FX5U 从站:

使用SM412 1秒钟定时器 对D0的值+1

2、程序测试 寄存值监视:

FX5U: 16位寄存器 D0 --> H01EF

VP48EC:

程序监控显示 DVP48EC 读取到的FX5U 16位寄存器D0的值被分别保存在 D3 D4 两个16位寄存器内,不方便观察比对数据的正确性。

3、 让读取到的寄存器值显示正确的值

通过监视发现 :

FX5U D0 :高八位的值 H01 → DVP48EC D3:低八位 H01

FX5U D0 :低八位的值 HEF → DVP48EC D4:低八位 HEF

通过程序处理后的数据 DVP48EC D150 : F01EF

数据处理程序:

1、使用BMOV指令 把接收到的数据转存到 D100 开始的20个寄存器内

2、使用 SWAP 高低字节交换指令 使 D103 的值由H01 → H0100

3、使用ADD BIN加法指令 D103 高八位 H0100 + D104 低八位 H00EF = D150 H01EF