S7-300/400整數(shù)、浮點(diǎn)數(shù)轉(zhuǎn)換指令
發(fā)布于2023-01-03 14:40
39
2
標(biāo)簽:轉(zhuǎn)換指令
S7-300/400的數(shù)據(jù)形式轉(zhuǎn)換指令I(lǐng) DI、DI R用于16位整數(shù)與32位整數(shù)、32位整數(shù)與浮點(diǎn)數(shù)之間的轉(zhuǎn)換;ROUND和TRUNC的作用與意義與S7-200相同,用于對浮點(diǎn)數(shù)的小數(shù)部位處理;CEIL、FLOOR是當(dāng)浮點(diǎn)與整數(shù)相差很大時(shí)的兩種不同處理方式。
I_DI指令可以將16位整數(shù)轉(zhuǎn)換為32位整數(shù),其實(shí)質(zhì)只是將符號位從原16位整數(shù)的bit15移到32位整數(shù)的bit31上,其余數(shù)據(jù)不變或增補(bǔ)0而已。
ROUND指令是將浮點(diǎn)數(shù)的小數(shù)部分四舍五人轉(zhuǎn)換成雙整數(shù);TRUNC指令是將浮點(diǎn)數(shù)的小數(shù)部分舍去轉(zhuǎn)換成雙整數(shù)。
由于浮點(diǎn)數(shù)的數(shù)據(jù)表示范圍要遠(yuǎn)遠(yuǎn)大于雙字長整數(shù)。當(dāng)浮點(diǎn)數(shù)的值大于整數(shù)時(shí),通過CEIL指令,可以將浮點(diǎn)數(shù)轉(zhuǎn)換為大于等于該浮點(diǎn)數(shù)的最小整數(shù);通過FLOOR指令,可以將浮點(diǎn)數(shù)轉(zhuǎn)換為小于等于該浮點(diǎn)數(shù)的最大整數(shù)。