payfsl
級別: 工控俠客
![]() |
這是三菱 PLC 編程軟件 GX Works3 里的程序,我給你拆解下關鍵部分邏輯,幫你理解: 1. 基礎運行條件 `SM400` 是三菱 PLC 內置的常 ON 特殊繼電器,只要 PLC 正常運行,它就一直為 ON ,相當于程序的“總使能” ,所以這段程序只要 PLC 運行就會執行 。 2. 指令功能解析 - **`ADPRW`** :大概率是和通訊、特殊模塊數據讀寫相關的指令(具體功能得結合模塊配置和手冊,從名字看像 “Advanced Process Read/Write” ,用于讀寫外圍設備數據,比如你程序里的 “通訊讀測高儀數據” ,可能是從測高儀讀取數據到 PLC 內部寄存器 )。`K1` `H4` `H0` `K2` 這些是它的參數,可能指定模塊編號、讀寫地址、數據長度等 ,得結合手冊和實際硬件配置確認。 - **`MOV`** :很基礎的 “傳送” 指令,就是把一個寄存器的數據復制到另一個。比如 `MOV D120 D123` ,就是把 `D120` 里的數據,原封不動放到 `D123` 里 ,用于數據轉移、備份。 - **`DMOV`** :和 `MOV` 類似,但處理的是 32 位數據(`MOV` 是 16 位 )。`DMOV D121 D126` 就是把 `D121 - D122` 組成的 32 位數據(因為三菱 PLC 里 32 位數據占兩個連續寄存器,低 16 位 `D121` ,高 16 位 `D122` ),復制到 `D126 - D127` 里 ,用于處理較大數值或者精度要求高的數據(像測高儀可能輸出的是長整數 )。 - **`DINT2FLT`** :是 “雙整數轉浮點數” 指令 。把 `D126 - D127` 里的 32 位整數(比如 `124630` ),轉換成浮點數(存到 `D128 - D129` ,因為浮點數占 32 位,也是兩個寄存器 ),方便后續做浮點運算(比如除法 )。 - **`DEDIV`** :是 32 位浮點數除法指令 。`DEDIV D128 K1000 D88` 就是用 `D128 - D129` 里的浮點數(比如轉換后的 `1.246e + 005` )除以 `1000` ,結果存到 `D88 - D89` 里(`D88` 顯示 “轉化后實際數值” ),可能是為了把原始數據換算成實際物理量(比如測高儀原始計數換算成毫米、米等實際長度 )。 ### 3. 整體流程邏輯 簡單說,就是 **先通過 `ADPRW` 從外部設備(測高儀)讀數據** → 用 `MOV` `DMOV` 做數據轉移備份 → 用 `DINT2FLT` 把整數轉成浮點數 → 最后 `DEDIV` 做除法運算,把數據轉換成實際能用的物理數值(比如高度值 ),供后續程序判斷、控制使用 。 要是還迷糊,得結合這幾個點深入: - 查 `ADPRW` 具體參數定義(模塊手冊里找 ),確認到底讀了啥數據、存在哪些寄存器。 - 看看 “測高儀” 通訊協議、數據格式,知道原始數據啥含義,才好對應程序里的數據處理。 - 結合整個設備功能(三軸螺絲機,測高儀可能用于檢測螺絲高度、平臺高度等 ),理解為啥要這么處理數據 。 |
|
---|---|---|
|