S7-200數(shù)據(jù)形式的轉(zhuǎn)換
發(fā)布于2023-01-03 14:29
20
2
標(biāo)簽:S7-200
S7-200轉(zhuǎn)換指令中的BCD_I、I_BCD、B_I、I_B、I DI、DI_I、DI_R、ROUND、TRUNC只是數(shù)據(jù)形式間的轉(zhuǎn)換,梯形圖編程相似,如將BCD 數(shù)據(jù)(十進(jìn)制數(shù)據(jù))3456轉(zhuǎn)換為整數(shù)(十六進(jìn)制數(shù)據(jù))的程序格式如圖3-76所示。
指令編程時(shí)需要注意以下幾點(diǎn)。
a.數(shù)據(jù)范圍。當(dāng)數(shù)據(jù)形式進(jìn)行轉(zhuǎn)換時(shí),無(wú)論是被轉(zhuǎn)換數(shù)據(jù)還是轉(zhuǎn)換結(jié)果,都不能超過(guò)指令格式規(guī)定的范圍,具體如下:
字節(jié)數(shù)據(jù)的字長(zhǎng)為二進(jìn)制8位,數(shù)據(jù)范圍為0~255;
整數(shù)數(shù)據(jù)的字長(zhǎng)為二進(jìn)制16位(帶符號(hào)),數(shù)據(jù)范圍為-32768~32767;BCD數(shù)據(jù)的字長(zhǎng)為二進(jìn)制16位(帶符號(hào)),數(shù)據(jù)范圍為0000~9999;雙整數(shù)的字長(zhǎng)為二進(jìn)制32位,數(shù)據(jù)范圍為-2147483648~2147483647。例如:整數(shù)轉(zhuǎn)換為字節(jié)的I B指令,整數(shù)取值范圍不能超過(guò)255等。
b.符號(hào)位。當(dāng)整數(shù)轉(zhuǎn)換為雙整數(shù)時(shí),整數(shù)的最高位(bit15)符號(hào)位轉(zhuǎn)換為雙整數(shù)后被移到雙整數(shù)的最高位(bit32),反之亦然。而字節(jié)數(shù)據(jù)、BCD數(shù)據(jù)均無(wú)符號(hào)位,不能使用帶符號(hào)的數(shù)據(jù)。
c.小數(shù)的處理。整數(shù)、雙整數(shù)為無(wú)小數(shù)點(diǎn)的數(shù)據(jù),而浮點(diǎn)數(shù)可以帶小數(shù)點(diǎn)。因此,當(dāng)浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù)或雙整數(shù)時(shí),必須對(duì)小數(shù)后的數(shù)據(jù)進(jìn)行必要的處理。使用指令 ROUND,可以對(duì)小數(shù)位進(jìn)行四舍五人處理;使用指令TRUNC,可以直接舍去小數(shù)位。
例如:執(zhí)行ROUND指令后,數(shù)據(jù)123456.789將成為123457;執(zhí)行ROUND指令后,數(shù)據(jù)123456.785講成為123456。