加入收藏 在線留言 聯系我們
        關注微信
        手機掃一掃 立刻聯系商家
        全國服務熱線13185520415
        公司新聞
        西門子S7-200smart間接尋址的使用方法
        發布時間: 2024-03-21 17:57 更新時間: 2024-11-22 08:00
        觀看西門子S7-200smart間接尋址的使用方法視頻

        01指令講解1.創建指針使用間接尋址就必須先創建指針,那么指針怎么創建呢?使用MOV_DW指令把指針地址存放到OUT輸出的變量,MOV_DW不是普通的32位數傳送指令嗎,怎么就是指針了呢?其實當MOV_DW指令IN引腳使用&VBxxx、&IBxxx、&MBxxx、&QBxxx時為創建指針的格式。如圖1所示,&VB0為創建指針指向vb0,其中&為創建指針的符號,VB為V存儲區的字節,0代表指向的地址是從字節0開始的,指針地址放在OUT輸出變量地址中,VD100為創建指針存放的指針地址。圖12.引用指針引用指針使用字符“*”帶表示引用指針,如圖2所示,*VD100代表引用指針,把vd0的數據傳送到vd200中。圖2那么如何判斷指向的地址使用的是字節、字、雙字呢?其實和指令有關系??梢酝ㄟ^數據類型判斷,如圖3所示,把光標放在指令塊處不動2S左右,會彈出一個指令塊引腳指令使用的數據類型。這里可以看到IN:DWORD,輸入為DWORD的32位數據類型,也就是雙字,那么這時候引用的是VD0,指針沒有偏移過,還是指向VB0地址起始的,指令使用的是雙字,所以引用的是VD0地址中的數據,把VD0賦值給VD200。圖33. 指針偏移初學者使用指針時,對于指針偏移的理解Zui容易亂的。指針偏移是通過對指針存放的地址進行運算得到一個新的指針地址。如圖4所示,按下M0.0把指針指向VB0的指針地址放在VD100中,如果這時候沒有接通I0.0,那么程序段3就會把VD0的數據傳送給VD200,如果接通了I0.0,那么程序段3就會把VD4的數據傳送給VD200。指針地址加多少就是向上偏移多少,也可以減去一個偏移量,一般字節偏移1,字偏移2,雙字偏移4。如圖4中的程序段2,指針地址VD100+4=VD100,程序段中Zui開始的創建的指針是指向VB0,指針+4以后,指針指向偏移指向VB4。圖402案例應用案例1如表1所示,按下M0.0的按鈕,把賦值數據傳送給賦值地址,例如第一次把VB0傳送給VB100,當第四次以后,按下M0.0按鈕,指針重新指向VB0,重新開始。次數賦值數據賦值地址1VB0VB1002VB1VB1003VB2VB1004VB3VB100表1程序編寫如圖5所示,字節與字節之間地址相差1,編寫VD1000+1=VD1000的運算程序,每次向上偏移1。圖5案例2如表2所示,按下M0.0的按鈕,把賦值數據傳送給賦值地址,例如第一次把VW0傳送給VW100,當第四次以后,按下M0.0按鈕,指針重新指向VB0,重新開始。次數賦值數據賦值地址1VW0VBW002VB2VW1003VB4VW1004VB6VW100表2程序編寫如圖6所示,字與字之間地址相差2,編寫VD1000+2=VD1000的運算程序,每次向上偏移2。圖6案例3如表3所示,按下M0.0的按鈕,把賦值數據傳送給賦值地址,例如第一次把VD0傳送給VD100,當第四次以后,按下M0.0按鈕,指針重新指向VB0,重新開始。次數賦值數據賦值地址1VD0VD1002VD4VD1003VD8VD1004VD12VD100表3程序編寫如圖7所示,雙字與雙字之間地址相差4,編寫VD1000+4=VD1000的運算程序,每次向上偏移4。圖7案例4如表4所示,按下M0.0的按鈕,把賦值數據傳送給賦值地址,例如第一次把VD0傳送給VD100,當第四次以后,按下M0.0按鈕,賦值地址清零,然后下一次重新開始賦值。次數賦值數據賦值地址1VD0VD1002VD4VD1083VD8VD1164VD12VD124表4程序編寫如圖8所示,不管是輸入和輸出都可以通過指針做間接尋址,通過地址偏移可以給不通的地址賦值。圖803總結本文章舉例了簡單的IN和OUT的間接尋址,間接尋址的使用方式還有很多,可以用在形參子程序中使用,例如求多個數值的平均值,利用for循環和間接尋址就可以輕松解決這個需要多次運算的問題,現在西門子200smart v2.8的CPU支持平均值指令,可以不需要自己寫程序。

        聯系方式

        • 電  話:13510737515
        • 聯系人:董海波
        • 手  機:13185520415
        • 微  信:13185520415