西門子S7-200間接尋址指令的應用
發布時間:2019-08-01 10:49:49來源:
西門子S7-200間接尋址指令的應用
S7-200的間接尋址需要通過數據塊中的數組來實現。指令FieldRead通過索引(又稱為下標)變量從數組中讀取數值,指令FieldWrite 通過索引變量向數組中寫數值,使用這兩條指令可以實現間接尋址。索引變量是間接尋址中的地址指針,它的值是要讀寫的數組元素的索引值。地址指針就像收音機調臺的指針,改變指針的位置,指針指向不同電臺。改變地址指針中的索引值,指針“指向”數組不同的元素。間接尋址的優點是可以在程序處理期間,通過改變指針的值動態地修改指令中的地址。
首先生成一個名為“數據塊1”的全局數據塊DB2,在數據塊中生成名為“數組1”的數組Array[1..10] of Int,其元素的數據類型為Int。
這兩條指令沒有列入指令列表和高級指令列表,編程時將收藏夾中的空邏輯框插入程序,點擊其中紅色的“??”,打開下拉式列表框,可以看到列表框底部的指令FieldWrite或FieldRead。點擊生成的指令框中的“???”,用列表設置要寫入或讀取的數據類型為Int(見下圖)。兩條指令的參數MEMBER的實參必須是數組的第一個元素“數據塊1”.數組1[1]。
指令的輸入參數索引值“INDEX”是要讀寫的數組中的元素的下標,數據類型為DINT(雙整數)。參數“VALUE”是要寫入數組元素的值或要讀取的數組元素的值。
下圖中的FieldWrite指令將常數25寫入數組1中的元素“數組1[3]”。FieldRead指令讀取數組元素“數組1[3]”的值,將它保存到MW20。改變INDEX的值,可以讀寫別的數組元素的值。