三菱的浮點運算滿麻煩的,需要先將D轉換為浮點型式才能進行浮點運算,本例為Q系列PLC的運算範例

通常定義單個D為16位元的整數,若要放大整數儲存範圍

可以將儲存空間定義為2D,即兩個D連起來作為一個參數使用,此時整數則為32位元

而要如何定義呢,在你的概念中定義好就好,只要在目標指令掛上一個D,他就是2D

例如16位元的搬移/複製指令是MOV,而32位元的搬移/複製則是DMOV

而在運算的過程中,若直接用整數的D或2D來進行除法運算

只能在運算結果中得到商數(D4-D5)及餘數(D6-D7),如下圖

undefined

如果要執行浮點數的運算,那就必須先將D轉換成浮點數的型態,即能得到確切的小數點運算結果

下圖為浮點數運算的2個除法小範例

undefined

一開始範例先用DMOV將整數丟入2D中

透過執行DFLT指令,可以將32位元的整數變數轉換為32位元的浮點變數

而運算這邊需要特別注意使用:

【/】為16位元D整數除法

【D/】為32位元2D整數除法

【E/】為32位元2D浮點數除法

【ED/】為64位元4D浮點數除法

雖然在整數變數運算時,指令掛上D為2D的整數變數運算

但當使用浮點數運算時,【ED/】為64位元的浮點數運算

所以參數若為2D的32位元,於浮點數運算時要使用指令【E/】,不可以掛上D喔!

最後如果要再轉換回2D的整數常數,可以用DINT指令,將2D由浮點數型式轉換回整數型式喔

arrow
arrow
    文章標籤
    三菱 PLC
    全站熱搜
    創作者介紹
    創作者 sppgcl0342 的頭像
    sppgcl0342

    馬夫馬妻の生活旅遊日常

    sppgcl0342 發表在 痞客邦 留言(0) 人氣()