PLC編程基礎(chǔ):數(shù)值在CPU是如何存儲(chǔ)
王曾
發(fā)布于2023-05-18 11:06
67
4
標(biāo)簽:PLC基礎(chǔ)
導(dǎo)讀
我們都知道PLC是一臺(tái)工業(yè)微型計(jì)算機(jī),因此所有的數(shù)據(jù)在PLC中都是以二進(jìn)制數(shù)的形式存儲(chǔ),因此不同的數(shù)據(jù)類型所存儲(chǔ)的數(shù)據(jù)不同,同時(shí)根據(jù)不同的數(shù)據(jù),所能表示的二進(jìn)制位也有所不同。 免費(fèi)試學(xué)PLC精品教程
應(yīng)用舉例
下面通過(guò)一個(gè)例子充分理解數(shù)據(jù)的存儲(chǔ)方式。
例:若V3.5=1,V1.0=1 VB2=10 VB0=5
求V0.1=?、V2.3=?、VB1=?、VB3=?、VW0=?、 VD0=?
(1)求V0.1的值
VB0有V0.0-V0.7八個(gè)位組成,其中V0.0為低位,V0.7為高位;根據(jù)已知條件VB0=5,因此把每個(gè)位以二進(jìn)制格式展開后,再采用位權(quán)的方法以十進(jìn)制的形式進(jìn)行展開排列,此時(shí)便知道每個(gè)位的值是多少,VB0=5,則V0.0和V0.2為1。如圖1-35所示得知V0.1=0。
圖1-35 數(shù)據(jù)排列
(2)求V2.3的值
V2.3為VB2中的一個(gè)位,VB2有V2.0-V2.7八個(gè)位組成,根據(jù)已知條件VB2=10,因此把每個(gè)位以二進(jìn)制格式展開后,再采用位權(quán)的方法以十進(jìn)制的形式進(jìn)行展開排列,此時(shí)便知道每個(gè)位的值是多少,VB0=10,則V2.0和V2.3為1。如圖1-35所示得知V2.3=1。
(3)求VB1的值
VB1有V1.0-V1.7八個(gè)位組成,根據(jù)已知條件V1.0=1,因此把每個(gè)位以二進(jìn)制格式展開后,再采用位權(quán)的方法以十進(jìn)制的形式進(jìn)行展開排列,此時(shí)便知道每個(gè)位的值是多少,V1.0=1,則只有V1.0一個(gè)位為1。如圖1-36所示得知VB1=1。
圖1-36 VB1數(shù)據(jù)排列
(4)求VB3的值
VB3有V3.0-V3.7八個(gè)位組成,根據(jù)已知條件V3.5=1,因此把每個(gè)位以二進(jìn)制格式展開后,再采用位權(quán)的方法以十進(jìn)制的形式進(jìn)行展開排列,此時(shí)便知道每個(gè)位的值是多少,V3.5=1,則只有V3.5一個(gè)位為1。如圖1-36所示得知VB3=32。
(5)求VW0的值
VW0有VB0和VB1兩個(gè)字節(jié)組成,已知條件VB0=5、V1.0=1,根據(jù)上述的結(jié)果把每個(gè)字節(jié)中的每個(gè)位以二進(jìn)制格式展開,再采用位權(quán)的方法以十進(jìn)制的形式進(jìn)行展開排列,此時(shí)便知道每個(gè)位的值各是多少,如圖1-37所示得知VW0由1024 256 1組合,最終VW0=1281。
圖1-37 VW0數(shù)據(jù)排列
注意:當(dāng)涉及到多字節(jié)組合尋址時(shí),遵循“高地址,低字節(jié)”的規(guī)律。因此VB0是高地址、低字節(jié)。
(6)求VD0的值
VD0有VB0、VB1、VB2、VB3四個(gè)字節(jié)組成,已知條件V3.5=1,V1.0=1 VB2=10 VB0=5,根據(jù)上述的結(jié)果把每個(gè)字節(jié)中的每個(gè)位以二進(jìn)制格式展開,再進(jìn)行4個(gè)二進(jìn)制為一組進(jìn)行8421BCD碼換算成十進(jìn)制數(shù),如圖1-38所示得知最終VD0=16#5010A20。
圖1-37 VD0數(shù)據(jù)排列
總結(jié):
1. 通過(guò)上面的示例我們能夠發(fā)現(xiàn),一個(gè)32位的存儲(chǔ)器中會(huì)包含16位的字、8位的字節(jié)、以及一個(gè)BOOL位,因?yàn)樵谑褂眠^(guò)程中需要特別注意地址的重疊。
2. 當(dāng)我們想導(dǎo)通某一個(gè)位或幾個(gè)位時(shí),寫入對(duì)應(yīng)字至存儲(chǔ)器中就會(huì)有相應(yīng)的輸出。
3. 在西門子的尋址方式中,遵循的是高地址低字節(jié),比如VW0,VB0是低字節(jié),但是屬于高地址。