<object id="ir2le"></object>
  • 加入收藏 在線留言 聯系我們
    關注微信
    手機掃一掃 立刻聯系商家
    全國服務熱線15267534595
    公司新聞
    PLC功能指令使用基礎:數據類型與尋址方式,你學會了嗎
    發布時間: 2023-09-14 14:27 更新時間: 2024-12-27 09:10

    1

    數據類型



    1.字長

    S7-200 SMART PLC的存儲單元(即編程元件)存儲的數據都是二進制數。數據的長度稱為字長,字長可分為位(1位二進制數,用b表示)、字節(8位二進制數,用B表示)、字(16位二進制數,用W表示)和雙字(32位二進制數,用D表示)。



    2. 數據的類型和范圍

    S7-200 SMART PLC的存儲單元存儲的數據類型可分為布爾型、整數型和實數型(浮點數)。


    1)布爾型布爾型數據只有1位,又稱位型,用來表示開關量(或稱數字量)的兩種不同狀態。當某編程元件為1時,稱該元件為1狀態,或稱該元件處于ON狀態,該元件對應的線圈“通電”,其常開觸點閉合,常閉觸點斷開;當該元件為0時,稱該元件為0狀態,或稱該元件處于OFF狀態,該元件對應的線圈“失電”,其常開觸點斷開,常閉觸點閉合。例如,輸出繼電器Q0.0的數據為布爾型。
    2)整數型

    整數型數據不帶小數點,它分為無符號整數和有符號整數,有符號整數需要占用1個Zui高位表示數據的正負,通常規定Zui高位為0表示數據為正數,為1表示數據為負數。表1列出了不同字長的整數表示的數值范圍。


    表1不同字長的整數表示的數值范圍

    圖片



    3)實數型

    實數型數據也稱為浮點型數據,是一種帶小數點的數據,它采用32位來表示(即字長為雙字),其數據范圍很大,正數范圍為+1.175495E-38~+3.402823E+38,負數范圍為-1.175495E-38~-3.402823E+38。



    3.常數的編程書寫格式

    常數在編程時經常要用到。常數的長度可為字節、字和雙字,常數在PLC中也是以二進制數形式存儲的,但編程時常數可以十進制、十六進制、二進制、ASCII碼或浮點數(實數)形式編寫,然后由編程軟件自動編譯成二進制數下載到PLC中。、

    常數的編程書寫格式見表2。

    表2常數的編程書寫格式

    圖片



    2

    尋址方式


    在S7 -200 SMART PLC中,數據是存于存儲器中的,為了存取方便,需要對存儲器的每個存儲單元進行編址。在訪問數據時,只要找到某單元的地址,就能對該單元的數據進行存取。S7 -200 PLC的尋址方式主要有兩種:直接尋址和間接尋址。


    1.直接尋址

    1)編址

    要了解存儲器的尋址方法,須先掌握其編址方法。S7 -200 SMART PLC的存儲單元編址有一定的規律,它將存儲器按功能不同劃分成若干個區,如I區(輸入繼電器區)、Q區(輸出繼電器區)、M區、SM區、V區、L區等,由于每個區又有很多存儲單元,因而這些單元需要進行編址。PLC存儲區常采用以下方式編址。

    ①I、Q、M、SM、S區按位順序編址,如I0.0~I15.7、M0.0~M1.7。

    ②V、L區按字節順序編址,如VB0~VB2047、LB0~LB63。

    ③AI、AQ區按字順序編址,如AIW0~AIW30、AQW0~AQW30。

    ④T、C、HC、AC區直接按編號大小編址,如T0~T255、C0~C255、AC0~AC3。


    2)直接尋址方法

    直接尋址通過直接指定要訪問存儲單元的區域、長度和位置來查找到該單元。S7 -200 SMART PLC直接尋址方法主要有:

    ①位尋址。位尋址格式為:位單元尋址=存儲區名(元件名)+字節地址。位地址例如,尋址時給出I2.3,要查找的地址是I存儲區第2字節的第3位,如圖1所示。


    圖片

    圖1 位尋址舉例


    可進行位尋址的存儲區有I、Q、M、SM、L、V、S。字節/字/雙字尋址。


    ②字節/字/雙字尋址是以字節、字或雙字為單位進行的,尋址格式為:

    字節/字/雙字尋址=存儲區名(元件名)+字長(字節、字或雙字)+首字節地址


    例如,尋址時給出VB100,要查找的地址為V存儲區的第100字節;若給出VW100,則要查找的地址為V存儲區的第100、101兩個字節;若給出VD100,則要查找的地址為V存儲區的第100~103四個字節。VB100、VW100、VD100之間的關系如圖2所示,VW100即為VB100和VB101,VD100即為VB100~VB103。當VW100單元存儲16位二進制數時,VB100存高字節(高8位),VB101存低字節(低8位);當VD100單元存儲32位二進制數時,VB100存Zui高字節,VB103存Zui低字節。


    圖片

    圖2 VB100、VW100、VD100之間的關系


    可進行字節尋址的存儲區有I、Q、M、SM、L、V、AC(僅低8位)、常數;可進行字尋址的存儲區有I、Q、M、SM、L、V、T、C、AC(僅低16位)、常數;可進行雙字尋址的存儲區有I、Q、M、SM、L、V、AC(32位)、常數。



    2.間接尋址

    間接尋址是指不直接給出要訪問單元的地址,而是將該單元的地址存在某些特殊存儲單元中,這個用來存儲地址的特殊存儲單元稱為指針,指針只能由V、L或AC(累加器)來承擔。采用間接尋址方式在訪問連續地址中的數據時很方便,使編程非常靈活。


    間接尋址存取數據一般有三個過程:建立指針、用指針存取數據和修改指針。

    1)建立指針

    建立指針必須用雙字傳送指令(MOVD),利用該指令將要訪問單元的地址存入指針(用來存儲地址的特殊存儲單元)中。指針建立舉例如下。


    MOVD &VB200, AC1 //將存儲單元VB200的地址存入累加器AC1中指令中操作數前的“&”為地址符號,“&VB200”表示VB200的地址(而不是VB200中存儲的數據),“//”為注釋符號,它后面的文字用來對指令進行注釋說明,軟件不會對其后面的內容進行編譯。在建立指針時,指令中的第2個操作數的字長必必須是雙字存儲單元,如AC、VD、LD。


    2)用指針存取數據

    指針建立后,就可以利用指針來存取數據。舉例如下。

    MOVD &VB200,AC0 //建立指針,將存儲單元VB200的地址存入累加器AC0中

    MOVW *AC0, AC1 //以AC0中的地址(VB200的地址)作為首地址,將連續兩個字節(一個字,即VB200、VB201)單元中的數據存入AC1中

    MOVD*AC0, AC1 //以AC0中的地址(VB200的地址)作為首地址,將連續四個字節(雙字,即VB200~VB203)單元中的數據存入AC1中

    指令中操作數前的“*”表示該操作數是一個指針(存有地址的存儲單元)。下面通過圖3來說明上述指令的執行過程。


    圖片

    圖3 間接尋址說明圖

          

    “MOVD &VB200, AC0”指令執行的結果是AC0中存入存儲單元VB200的地址;“MOVW *AC0, AC1”指令執行的結果是以AC0中的VB200地址作為首地址,將連續兩個字節單元(VB200、VB201)中的數據存入AC1中,如果VB200、VB201單元中的數據分別為12、34,則該指令執行后,AC1的低16位就存入了“1234”;“MOVD *AC0, AC1”指令執行的結果是以AC0中的VB200地址作為首地址,將連續四個字節單元(VB200~VB203)中的數據存入AC1中,該指令執行后,AC1中就存入了“12345678”。


    3)修改指針

    指針(用來存儲地址的特殊存儲單元)的字長為雙字(32位),修改指針值需要用雙字指令。常用的雙字指令有雙字加法指令(ADDD)和雙字加1指令(INCD)。在修改指針值、存取字節時,指針值加1;存取字時,指針值加2;存取雙字時,指針值加4。修改指針值舉例如下。

    MOVD &VB200, AC0 //建立指針

    INCD AC0      //將AC0中的值加1(即地址值增1)

    INCD AC0      //將AC0中的地址值再增1

    MOVW *AC0, AC1 //讀指針


    以AC0中的新地址作為首地址,將它所對應連續兩個字節單元中的數據存入AC1中。


    以圖6-3為例,上述程序執行的結果是以AC0中的VB202單元地址為首地址,將VB202、VB203單元中的數據56、78存入AC1的低16位。


    聯系方式

    • 電  話:18126392341
    • 聯系人:梁濤
    • 手  機:15267534595
    • 微  信:15267534595