關(guān)于臺達 DVP48EC 兩個(gè)16位數據寄存器組成一個(gè)16位寄存器的方法
https://www.bilibili.com/opus/1083839760274817028# 關(guān)于臺達 DVP48EC 兩個(gè)16位數據寄存器組成一個(gè)16位寄存器的方法
### 1、臺達 DVP48EC 和 三菱 FX5U 進(jìn)行Modbus-RTU通訊時(shí)接收回來(lái)的數據和發(fā)送的數據顯示方式不一致?
#### 臺達 DVP48EC Modbus-RTU 主站:
定時(shí)讀取 1# 站 H0 開(kāi)始的16個(gè)寄存器值
<img src="C:\Users\WUKUI\AppData\Roaming\Typora\typora-user-images\image-20250629153019926.png" alt="image-20250629153019926" style="zoom:80%;" />
#### 三菱 FX5U 從站:
使用SM412 1秒鐘定時(shí)器 對D0的值+1
<img src="C:\Users\WUKUI\AppData\Roaming\Typora\typora-user-images\image-20250629152141320.png" alt="image-20250629152141320" style="zoom:80%;" />
### 2、程序測試 寄存值監視:
**FX5U: 16位寄存器 D0 --> H01EF**
<img src="C:\Users\WUKUI\AppData\Roaming\Typora\typora-user-images\image-20250629153436707.png" alt="image-20250629153436707" style="zoom:80%;" />
**DVP48EC**:
程序監控顯示 DVP48EC 讀取到的FX5U 16位寄存器D0的值被分別保存在 D3 D4 兩個(gè)16位寄存器內,不方便觀(guān)察比對數據的正確性。

### 3、 讓讀取到的寄存器值顯示正確的值
通過(guò)監視發(fā)現 :
FX5U D0 :高八位的值 H01 → DVP48EC D3:低八位 H01
FX5U D0 :低八位的值 HEF → DVP48EC D4:低八位 HEF
**通過(guò)程序處理后的數據 DVP48EC D150 : F01EF**

**數據處理程序**:
1、使用BMOV指令 把接收到的數據轉存到 D100 開(kāi)始的20個(gè)寄存器內
2、使用 SWAP 高低字節交換指令 使 D103 的值由H01 → H0100
3、使用ADD BIN加法指令 D103 高八位 H0100 + D104 低八位 H00EF = D150 H01EF
<img src="C:\Users\WUKUI\AppData\Roaming\Typora\typora-user-images\image-20250629163334821.png" alt="image-20250629163334821" style="zoom:80%;" />