上一篇教程,,我們?yōu)榇蠹医榻B了二進(jìn)制數(shù)據(jù) 【極課工控】小型PLC系列教程之2.2數(shù)值存儲(chǔ)與二進(jìn)制.. 。 位數(shù)少的CPU,,并非不能處理大的數(shù)值,,只不過需要多次運(yùn)算,有時(shí)還需要編程人員熟悉算法,。就像大車一次可以搬運(yùn)的貨物,,用小車就需要往返多次才能搬完,車越小,,需要的次數(shù)越多,,耗時(shí)也越多,。 H1U/H2U系列PLC元件中,常用的數(shù)據(jù)寬度是1Word(即16bit),;部分計(jì)數(shù)器為2Word(32bit),。對(duì)于16bit的無符號(hào)數(shù)據(jù),用2進(jìn)制表示的最大值為1111,,1111,,1111,1111,,換算為十進(jìn)制就是65,,535。 本篇博文將為大家詳細(xì)介紹一下其他的數(shù)據(jù)進(jìn)制,,其中我們?cè)赑LC編程中用的比較多的是十進(jìn)制和十六進(jìn)制數(shù)據(jù),,BCD碼一般用在數(shù)碼管顯示的用途中。 十進(jìn)制十進(jìn)制數(shù)據(jù)就是我們?nèi)祟愂褂玫?2345678910 11 12這樣的數(shù)據(jù),,逢十進(jìn)一,。咱們上小學(xué)就開始學(xué)的數(shù)學(xué),都是基于10進(jìn)制的,。十進(jìn)制數(shù)據(jù)在編程中用的比較多,。 小型PLC中十進(jìn)制數(shù)據(jù)用K開頭標(biāo)識(shí),如: MOV K20 D200 將20這個(gè)十進(jìn)制數(shù)據(jù)賦值給D200數(shù)據(jù)寄存器 十六進(jìn)制十六進(jìn)制,,逢十六進(jìn)一,。
對(duì)于十進(jìn)制500而言,用十進(jìn)制表示出來是500,,用十六進(jìn)制表示是HEX: 01F4,,用二進(jìn)制表示:1 1111 0100。 每個(gè)十六進(jìn)制位相當(dāng)于4個(gè)二進(jìn)制位:
每一個(gè)十六進(jìn)制位對(duì)應(yīng)的4個(gè)二進(jìn)制位,,F(xiàn)F對(duì)應(yīng)的二進(jìn)制位就是1111 1111. 八進(jìn)制:八進(jìn)制數(shù)據(jù)用的稍微少一點(diǎn),逢八進(jìn)一,。具體不詳細(xì)說,,和上面差不多,,用的并不多 BCD碼(數(shù)碼管顯示-摘自手冊(cè)P20)最符合人們閱讀習(xí)慣的數(shù)字格式是十進(jìn)制,在人們監(jiān)控或設(shè)置工作參數(shù)時(shí),,往往需要采用十進(jìn)制格式進(jìn)行數(shù)據(jù)顯示,,而計(jì)算機(jī)內(nèi)部使用的是HEX格式,故需采用一種底層為每4個(gè)二進(jìn)制位組成一個(gè)數(shù)字位,,而每個(gè)數(shù)字位只能為十進(jìn)制數(shù)的0~9,,由此組成的數(shù)值,這種格式數(shù)字在存儲(chǔ)器中的編碼稱為BCD碼(Binary-Coded Decimal),。 在PLC內(nèi)部,,原理上用4位二進(jìn)制數(shù)代表1位十進(jìn)制數(shù),在每一位BCD碼中,,不存在HEX格式中的A~F,。對(duì)于一個(gè)8bit寬度的寄存器單元,能存儲(chǔ)的最大BCD數(shù)只能是99,,因此將HEX格式轉(zhuǎn)換為BCD碼后,,會(huì)占用更大的存儲(chǔ)空間。 PLC內(nèi)部總是按HEX格式進(jìn)行數(shù)據(jù)計(jì)算的,,在驅(qū)動(dòng)非智能的顯示設(shè)備(如數(shù)碼管)顯示數(shù)據(jù)之前,,往往需要將PLC內(nèi)部的十六進(jìn)制( HEX)格式數(shù)據(jù)先轉(zhuǎn)換為BCD碼,然后進(jìn)行顯示輸出,;將用戶以十進(jìn)制方式設(shè)置的參數(shù)存入PLC內(nèi)存之前,,則往往需要將該BCD碼轉(zhuǎn)換為十六進(jìn)制( HEX)格式。 H1U/H2U系列PLC內(nèi)部提供了HEX與BCD兩種格式相互轉(zhuǎn)換的命令,,在需要進(jìn)行顯示輸出,,或設(shè)置開關(guān)讀取的時(shí)候,執(zhí)行該格 人們?cè)陔娔X顯示器上看到的十進(jìn)制讀數(shù),,都是經(jīng)過了計(jì)算機(jī)自動(dòng)作BCD轉(zhuǎn)換后才顯示的;監(jiān)控時(shí)修改的參數(shù),,則是電腦軟件作了HEX轉(zhuǎn)換后寫入的,,無需人為干預(yù)而已。 進(jìn)制轉(zhuǎn)換一般都不要自己手動(dòng)算,,但是還是應(yīng)該知道手動(dòng)怎么算的,。我們實(shí)際應(yīng)用中都是使用轉(zhuǎn)換工具的,微軟自帶的計(jì)算器,,就帶這個(gè)功能,。下面給大家介紹一下微軟自帶的計(jì)算器如何進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換: Windows鍵+R,然后輸入“calc”回車,,就能打開系統(tǒng)自帶的計(jì)算器,。 點(diǎn)擊左上角的查看,,然后選擇程序員模式,就能進(jìn)行各個(gè)數(shù)進(jìn)制之間的轉(zhuǎn)換了,。 可以自行選擇各種數(shù)據(jù)進(jìn)制進(jìn)行嘗試: 要將(無符號(hào))二進(jìn)制數(shù)10110101換算為十進(jìn)制數(shù),,則計(jì)算要復(fù)雜很多,一般這么算:
1乘2^7 + 0乘2^6 + 1乘2^5 + 1乘2^4 + 0乘2^3+1乘2^2+0乘2^1 + 1乘2^0 = 181(無符號(hào)類型的算法) 如果有符號(hào)類型,,最高位表示的是符號(hào)位,,算法和這個(gè)不一樣,還要考慮補(bǔ)碼,,反碼特別麻煩,。。,。 數(shù)據(jù)轉(zhuǎn)換手算方法在手冊(cè)P21上有詳細(xì)講解
|
|