官术网_书友最值得收藏!

2.3.3 數(shù)據(jù)類(lèi)型

1.數(shù)據(jù)類(lèi)型

數(shù)據(jù)類(lèi)型用來(lái)描述數(shù)據(jù)的長(zhǎng)度(即二進(jìn)制的位數(shù))和屬性。本節(jié)主要介紹基本數(shù)據(jù)類(lèi)型,其他數(shù)據(jù)類(lèi)型主要在2.3.4和4.2.1節(jié)介紹。

很多指令和代碼塊的參數(shù)支持多種數(shù)據(jù)類(lèi)型。不同的任務(wù)使用不同長(zhǎng)度的數(shù)據(jù)對(duì)象,例如位邏輯指令使用位數(shù)據(jù),MOVE指令使用字節(jié)、字和雙字。字節(jié)、字和雙字分別由8位、16位和32位二進(jìn)制數(shù)組成。表2-4給出了基本數(shù)據(jù)類(lèi)型的屬性。

2.位

位數(shù)據(jù)的數(shù)據(jù)類(lèi)型為Bool(布爾)型,在編程軟件中,Bool變量的值1和0用英語(yǔ)單詞TRUE(真)和FALSE(假)來(lái)表示。

位存儲(chǔ)單元的地址由字節(jié)地址和位地址組成,例如I3.2中的區(qū)域標(biāo)識(shí)符“I”表示輸入(Input),字節(jié)地址為3,位地址為2(見(jiàn)圖2-10)。這種存取方式稱(chēng)為“字節(jié).位”尋址方式。

3.位字符串

數(shù)據(jù)類(lèi)型Byte、Word、Dword統(tǒng)稱(chēng)為位字符串。它們不能比較大小,它們的常數(shù)一般用十六進(jìn)制數(shù)表示。

1)字節(jié)(Byte)由8位二進(jìn)制數(shù)組成,例如I3.0~I(xiàn)3.7組成了輸入字節(jié)IB3(見(jiàn)圖2-10),B是Byte的縮寫(xiě)。

2)字(Word)由相鄰的兩個(gè)字節(jié)組成,例如字MW100由字節(jié)MB100和MB101組成(見(jiàn)圖2-11)。MW100中的M為區(qū)域標(biāo)識(shí)符,W表示字。

3)雙字(DWord)由兩個(gè)字(或4個(gè)字節(jié))組成,雙字MD100由字節(jié)MB100~MB103或字MW100、MW102組成(見(jiàn)圖2-11),D表示雙字。需要注意以下兩點(diǎn):

①用組成雙字的編號(hào)最小的字節(jié)MB100的編號(hào)作為雙字MD100的編號(hào)。

②用組成雙字MD100的編號(hào)最小的字節(jié)MB100為MD100的最高位字節(jié),編號(hào)最大的字節(jié)MB103為MD100的最低位字節(jié)。字也有類(lèi)似的特點(diǎn)。

表2-4 基本數(shù)據(jù)類(lèi)型

圖2-10 字節(jié)與位

圖2-11 字節(jié)、字和雙字

4.整數(shù)

一共有6種整數(shù)(見(jiàn)表2-4),SInt和USInt分別為8位的短整數(shù)和無(wú)符號(hào)短整數(shù),Int和UInt分別為16位的整數(shù)和無(wú)符號(hào)整數(shù),DInt和UDInt分別為32位的雙整數(shù)和無(wú)符號(hào)的雙整數(shù)。所有整數(shù)的符號(hào)中均有Int。符號(hào)中帶S的為8位整數(shù)(短整數(shù)),帶D的為32位雙整數(shù),不帶S和D的為16位整數(shù)。帶U的為無(wú)符號(hào)整數(shù),不帶U的為有符號(hào)整數(shù)。有符號(hào)整數(shù)的最高位為符號(hào)位,最高位為0時(shí)為正數(shù),為1時(shí)為負(fù)數(shù)。有符號(hào)整數(shù)用補(bǔ)碼來(lái)表示。

5.浮點(diǎn)數(shù)

32位的浮點(diǎn)數(shù)(Real)又稱(chēng)為實(shí)數(shù),最高位(第31位)為浮點(diǎn)數(shù)的符號(hào)位(見(jiàn)圖2-12),正數(shù)時(shí)為0,負(fù)數(shù)時(shí)為1。規(guī)定尾數(shù)的整數(shù)部分總是為1,第0~22位為尾數(shù)的小數(shù)部分。8位指數(shù)加上偏移量127后(0~255),放在第23~30位。

圖2-12 浮點(diǎn)數(shù)的結(jié)構(gòu)

浮點(diǎn)數(shù)的優(yōu)點(diǎn)是用很小的存儲(chǔ)空間(4B)可以表示非常大和非常小的數(shù)。PLC輸入和輸出的數(shù)值大多是整數(shù),例如AI模塊的輸出值和AQ模塊的輸入值。用浮點(diǎn)數(shù)來(lái)處理這些數(shù)據(jù)需要進(jìn)行整數(shù)和浮點(diǎn)數(shù)之間的相互轉(zhuǎn)換,浮點(diǎn)數(shù)的運(yùn)算速度比整數(shù)的運(yùn)算速度慢一些。

在編程軟件中,用十進(jìn)制小數(shù)來(lái)輸入或顯示浮點(diǎn)數(shù),例如50是整數(shù),而50.0為浮點(diǎn)數(shù)。

LReal為64位的長(zhǎng)浮點(diǎn)數(shù),它的最高位(第63位)為符號(hào)位。尾數(shù)的整數(shù)部分總是為1,第0~51位為尾數(shù)的小數(shù)部分。11位的指數(shù)加上偏移量1023后(0~2047),放在第52~62位。浮點(diǎn)數(shù)Real和長(zhǎng)浮點(diǎn)數(shù)LReal的精度最高為十進(jìn)制6位和15位有效數(shù)字。

6.時(shí)間與日期

Time是有符號(hào)雙整數(shù),其單位為ms,能表示的最大時(shí)間范圍為24天多。Date(日期)為16位無(wú)符號(hào)整數(shù),TOD(TIME_OF_DAY)為從指定日期的0時(shí)算起的毫秒數(shù)(無(wú)符號(hào)雙整數(shù))。其常數(shù)必須指定小時(shí)(24小時(shí)/天)、分鐘和秒,ms是可選的。

數(shù)據(jù)類(lèi)型DTL的12個(gè)字節(jié)分別為年(占2B)、月、日、星期的代碼,和小時(shí)、分、秒(各占1B)、納秒(占4B),均為BCD碼。星期日、星期一~星期六的代碼分別為1~7。可以在塊的臨時(shí)存儲(chǔ)器或者DB中定義DTL數(shù)據(jù)。

7.字符

每個(gè)字符(Char)占一個(gè)字節(jié),Char數(shù)據(jù)類(lèi)型以ASCII格式存儲(chǔ)。字符常量用英語(yǔ)的單引號(hào)來(lái)表示,例如'A'。WChar(寬字符)占兩個(gè)字節(jié),可以存儲(chǔ)漢字和中文的標(biāo)點(diǎn)符號(hào)。

主站蜘蛛池模板: 南昌县| 乌鲁木齐市| 原阳县| 平陆县| 鹤岗市| 建始县| 靖西县| 潞西市| 墨玉县| 渭源县| 博湖县| 常州市| 呼伦贝尔市| 鸡西市| 永胜县| 都江堰市| 澄城县| 白朗县| 平昌县| 济阳县| 塔河县| 石棉县| 沁阳市| 中卫市| 三台县| 屏东市| 保靖县| 呼和浩特市| 丽江市| 河间市| 宣恩县| 梅州市| 富民县| 如皋市| 宿松县| 华容县| 闵行区| 东源县| 陆良县| 安丘市| 宁乡县|