三菱的浮點運算滿麻煩的,需要先將D轉換為浮點型式才能進行浮點運算,本例為Q系列PLC的運算範例
通常定義單個D為16位元的整數,若要放大整數儲存範圍
可以將儲存空間定義為2D,即兩個D連起來作為一個參數使用,此時整數則為32位元
而要如何定義呢,在你的概念中定義好就好,只要在目標指令掛上一個D,他就是2D
例如16位元的搬移/複製指令是MOV,而32位元的搬移/複製則是DMOV
而在運算的過程中,若直接用整數的D或2D來進行除法運算
只能在運算結果中得到商數(D4-D5)及餘數(D6-D7),如下圖
如果要執行浮點數的運算,那就必須先將D轉換成浮點數的型態,即能得到確切的小數點運算結果
下圖為浮點數運算的2個除法小範例
一開始範例先用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由浮點數型式轉換回整數型式喔
文章標籤
全站熱搜
留言列表