數(shù)據(jù)類(lèi)型
1.字長(zhǎng)
S7-200 SMART PLC的存儲(chǔ)單元(即編程元件)存儲(chǔ)的數(shù)據(jù)都是二進(jìn)制數(shù)。數(shù)據(jù)的長(zhǎng)度稱(chēng)為字長(zhǎng),字長(zhǎng)可分為位(1位二進(jìn)制數(shù),用b表示)、字節(jié)(8位二進(jìn)制數(shù),用B表示)、字(16位二進(jìn)制數(shù),用W表示)和雙字(32位二進(jìn)制數(shù),用D表示)。
2. 數(shù)據(jù)的類(lèi)型和范圍
S7-200 SMART PLC的存儲(chǔ)單元存儲(chǔ)的數(shù)據(jù)類(lèi)型可分為布爾型、整數(shù)型和實(shí)數(shù)型(浮點(diǎn)數(shù))。
1)布爾型
布爾型數(shù)據(jù)只有1位,又稱(chēng)位型,用來(lái)表示開(kāi)關(guān)量(或稱(chēng)數(shù)字量)的兩種不同狀態(tài)。當(dāng)某編程元件為1時(shí),稱(chēng)該元件為1狀態(tài),或稱(chēng)該元件處于ON狀態(tài),該元件對(duì)應(yīng)的線圈“通電”,其常開(kāi)觸點(diǎn)閉合,常閉觸點(diǎn)斷開(kāi);當(dāng)該元件為0時(shí),稱(chēng)該元件為0狀態(tài),或稱(chēng)該元件處于OFF狀態(tài),該元件對(duì)應(yīng)的線圈“失電”,其常開(kāi)觸點(diǎn)斷開(kāi),常閉觸點(diǎn)閉合。例如,輸出繼電器Q0.0的數(shù)據(jù)為布爾型。
2)整數(shù)型
整數(shù)型數(shù)據(jù)不帶小數(shù)點(diǎn),它分為無(wú)符號(hào)整數(shù)和有符號(hào)整數(shù),有符號(hào)整數(shù)需要占用1個(gè)最高位表示數(shù)據(jù)的正負(fù),通常規(guī)定最高位為0表示數(shù)據(jù)為正數(shù),為1表示數(shù)據(jù)為負(fù)數(shù)。表6-1列出了不同字長(zhǎng)的整數(shù)表示的數(shù)值范圍。
表6-1 不同字長(zhǎng)的整數(shù)表示的數(shù)值范圍
3)實(shí)數(shù)型
實(shí)數(shù)型數(shù)據(jù)也稱(chēng)為浮點(diǎn)型數(shù)據(jù),是一種帶小數(shù)點(diǎn)的數(shù)據(jù),它采用32位來(lái)表示(即字長(zhǎng)為雙字),其數(shù)據(jù)范圍很大,正數(shù)范圍為+1.175495E-38~+3.402823E+38,負(fù)數(shù)范圍為-1.175495E-38~-3.402823E+38。
3.常數(shù)的編程書(shū)寫(xiě)格式
常數(shù)在編程時(shí)經(jīng)常要用到。常數(shù)的長(zhǎng)度可為字節(jié)、字和雙字,常數(shù)在PLC中也是以二進(jìn)制數(shù)形式存儲(chǔ)的,但編程時(shí)常數(shù)可以十進(jìn)制、十六進(jìn)制、二進(jìn)制、ASCII碼或浮點(diǎn)數(shù)(實(shí)數(shù))形式編寫(xiě),然后由編程軟件自動(dòng)編譯成二進(jìn)制數(shù)下載到PLC中。
常數(shù)的編程書(shū)寫(xiě)格式見(jiàn)表6-2。
表6-2 常數(shù)的編程書(shū)寫(xiě)格式
尋址方式
在S7 -200 SMART PLC中,數(shù)據(jù)是存于存儲(chǔ)器中的,為了存取方便,需要對(duì)存儲(chǔ)器的每個(gè)存儲(chǔ)單元進(jìn)行編址。在訪問(wèn)數(shù)據(jù)時(shí),只要找到某單元的地址,就能對(duì)該單元的數(shù)據(jù)進(jìn)行存取。S7 -200 PLC的尋址方式主要有兩種:直接尋址和間接尋址。
1.直接尋址
1)編址
要了解存儲(chǔ)器的尋址方法,須先掌握其編址方法。S7 -200 SMART PLC的存儲(chǔ)單元編址有一定的規(guī)律,它將存儲(chǔ)器按功能不同劃分成若干個(gè)區(qū),如I區(qū)(輸入繼電器區(qū))、Q區(qū)(輸出繼電器區(qū))、M區(qū)、SM區(qū)、V區(qū)、L區(qū)等,由于每個(gè)區(qū)又有很多存儲(chǔ)單元,因而這些單元需要進(jìn)行編址。PLC存儲(chǔ)區(qū)常采用以下方式編址。
①I(mǎi)、Q、M、SM、S區(qū)按位順序編址,如I0.0~I(xiàn)15.7、M0.0~M1.7。
②V、L區(qū)按字節(jié)順序編址,如VB0~VB2047、LB0~LB63。
③AI、AQ區(qū)按字順序編址,如AIW0~AIW30、AQW0~AQW30。
④T、C、HC、AC區(qū)直接按編號(hào)大小編址,如T0~T255、C0~C255、AC0~AC3。
2)直接尋址方法
直接尋址通過(guò)直接指定要訪問(wèn)存儲(chǔ)單元的區(qū)域、長(zhǎng)度和位置來(lái)查找到該單元。S7 -200 SMART PLC直接尋址方法主要有:
①位尋址。位尋址格式為:位單元尋址=存儲(chǔ)區(qū)名(元件名)+字節(jié)地址。位地址
例如,尋址時(shí)給出I2.3,要查找的地址是I存儲(chǔ)區(qū)第2字節(jié)的第3位,如圖6-1所示。
圖6-1 位尋址舉例
可進(jìn)行位尋址的存儲(chǔ)區(qū)有I、Q、M、SM、L、V、S。字節(jié)/字/雙字尋址。
②字節(jié)/字/雙字尋址是以字節(jié)、字或雙字為單位進(jìn)行的,尋址格式為:
字節(jié)/字/雙字尋址=存儲(chǔ)區(qū)名(元件名)+字長(zhǎng)(字節(jié)、字或雙字)+首字節(jié)地址
例如,尋址時(shí)給出VB100,要查找的地址為V存儲(chǔ)區(qū)的第100字節(jié);若給出VW100,則要查找的地址為V存儲(chǔ)區(qū)的第100、101兩個(gè)字節(jié);若給出VD100,則要查找的地址為V存儲(chǔ)區(qū)的第100~103四個(gè)字節(jié)。VB100、VW100、VD100之間的關(guān)系如圖6-2所示,VW100即為VB100和VB101,VD100即為VB100~VB103。當(dāng)VW100單元存儲(chǔ)16位二進(jìn)制數(shù)時(shí),VB100存高字節(jié)(高8位),VB101存低字節(jié)(低8位);當(dāng)VD100單元存儲(chǔ)32位二進(jìn)制數(shù)時(shí),VB100存最高字節(jié),VB103存最低字節(jié)。
圖6-2 VB100、VW100、VD100之間的關(guān)系
可進(jìn)行字節(jié)尋址的存儲(chǔ)區(qū)有I、Q、M、SM、L、V、AC(僅低8位)、常數(shù);可進(jìn)行字尋址的存儲(chǔ)區(qū)有I、Q、M、SM、L、V、T、C、AC(僅低16位)、常數(shù);可進(jìn)行雙字尋址的存儲(chǔ)區(qū)有I、Q、M、SM、L、V、AC(32位)、常數(shù)。
2.間接尋址
間接尋址是指不直接給出要訪問(wèn)單元的地址,而是將該單元的地址存在某些特殊存儲(chǔ)單元中,這個(gè)用來(lái)存儲(chǔ)地址的特殊存儲(chǔ)單元稱(chēng)為指針,指針只能由V、L或AC(累加器)來(lái)承擔(dān)。采用間接尋址方式在訪問(wèn)連續(xù)地址中的數(shù)據(jù)時(shí)很方便,使編程非常靈活。間接尋址存取數(shù)據(jù)一般有三個(gè)過(guò)程:建立指針、用指針存取數(shù)據(jù)和修改指針。
1)建立指針
建立指針必須用雙字傳送指令(MOVD),利用該指令將要訪問(wèn)單元的地址存入指針(用來(lái)存儲(chǔ)地址的特殊存儲(chǔ)單元)中。指針建立舉例如下。
MOVD &VB200, AC1 //將存儲(chǔ)單元VB200的地址存入累加器AC1中指令中操作數(shù)前的“&”為地址符號(hào),“&VB200”表示VB200的地址(而不是VB200中存儲(chǔ)的數(shù)據(jù)),“//”為注釋符號(hào),它后面的文字用來(lái)對(duì)指令進(jìn)行注釋說(shuō)明,軟件不會(huì)對(duì)其后面的內(nèi)容進(jìn)行編譯。在建立指針時(shí),指令中的第2個(gè)操作數(shù)的字長(zhǎng)必必須是雙字存儲(chǔ)單元,如AC、VD、LD。
2)用指針存取數(shù)據(jù)
指針建立后,就可以利用指針來(lái)存取數(shù)據(jù)。舉例如下。
MOVD &VB200,AC0 //建立指針,將存儲(chǔ)單元VB200的地址存入累加器AC0中
MOVW *AC0, AC1 //以AC0中的地址(VB200的地址)作為首地址,將連續(xù)兩個(gè)字節(jié)(一個(gè)字,即VB200、VB201)單元中的數(shù)據(jù)存入AC1中
MOVD*AC0, AC1 //以AC0中的地址(VB200的地址)作為首地址,將連續(xù)四個(gè)字節(jié)(雙字,即VB200~VB203)單元中的數(shù)據(jù)存入AC1中
指令中操作數(shù)前的“*”表示該操作數(shù)是一個(gè)指針(存有地址的存儲(chǔ)單元)。下面通過(guò)圖6-3來(lái)說(shuō)明上述指令的執(zhí)行過(guò)程。
圖6-3 間接尋址說(shuō)明圖
“MOVD &VB200, AC0”指令執(zhí)行的結(jié)果是AC0中存入存儲(chǔ)單元VB200的地址;“MOVW *AC0, AC1”指令執(zhí)行的結(jié)果是以AC0中的VB200地址作為首地址,將連續(xù)兩個(gè)字節(jié)單元(VB200、VB201)中的數(shù)據(jù)存入AC1中,如果VB200、VB201單元中的數(shù)據(jù)分別為12、34,則該指令執(zhí)行后,AC1的低16位就存入了“1234”;“MOVD *AC0, AC1”指令執(zhí)行的結(jié)果是以AC0中的VB200地址作為首地址,將連續(xù)四個(gè)字節(jié)單元(VB200~VB203)中的數(shù)據(jù)存入AC1中,該指令執(zhí)行后,AC1中就存入了“12345678”。
3)修改指針
指針(用來(lái)存儲(chǔ)地址的特殊存儲(chǔ)單元)的字長(zhǎng)為雙字(32位),修改指針值需要用雙字指令。常用的雙字指令有雙字加法指令(ADDD)和雙字加1指令(INCD)。在修改指針值、存取字節(jié)時(shí),指針值加1;存取字時(shí),指針值加2;存取雙字時(shí),指針值加4。修改指針值舉例如下。
MOVD &VB200, AC0//建立指針
INCD AC0//將AC0中的值加1(即地址值增1)
INCD AC0//將AC0中的地址值再增1
MOVW *AC0, AC1 //讀指針,以AC0中的新地址作為首地址,將它所對(duì)應(yīng)連續(xù)兩個(gè)字節(jié)單元中的數(shù)據(jù)存入AC1中
以圖6-3為例,上述程序執(zhí)行的結(jié)果是以AC0中的VB202單元地址為首地址,將VB202、VB203單元中的數(shù)據(jù)56、78存入AC1的低16位。
審核編輯 :李倩
-
繼電器
+關(guān)注
關(guān)注
132文章
5333瀏覽量
148811 -
線圈
+關(guān)注
關(guān)注
14文章
1820瀏覽量
44430 -
plc
+關(guān)注
關(guān)注
5010文章
13271瀏覽量
463068
原文標(biāo)題:【知識(shí)】PLC功能指令使用基礎(chǔ)
文章出處:【微信號(hào):設(shè)備維修屋,微信公眾號(hào):設(shè)備維修屋】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論