西門子S7-1200的間接尋址功能(1)
林慧玲
發(fā)布于2018-03-26 15:35
23
0
標(biāo)簽:西門子S7-1200
馬上注冊,免費學(xué)習(xí)超過100課時視頻教程,免費下載海量學(xué)習(xí)資料
前面給大家介紹了西門子S7-200系列PLC的間接尋址功能,接下來給大家介紹下西門子S7-1200系列PLC的間接尋址的功能,S7-1200系列的PLC間接尋址功能不同于S7-200系列PLC的間接尋址功能,S7-1200系列PLC的間接尋址功能主要是對DB塊中所建立的數(shù)組進行尋址,根據(jù)對數(shù)組下標(biāo)值的訪問和修改來實現(xiàn)對數(shù)組中元素值的讀取或?qū)懭搿?
在S7-1200PLC中,若需要根據(jù)數(shù)組下標(biāo)值來對數(shù)組中元素的訪問有兩種方式可以實現(xiàn),一是通過大家熟悉的梯形圖來編寫程序?qū)崿F(xiàn),二是可以通過SCL的編程方式來編寫這樣的程序?qū)崿F(xiàn)。這里通過一個簡單的例子為例,分別通過這兩種方式如何實現(xiàn)通過索引數(shù)組的下標(biāo)值來實現(xiàn)對數(shù)組中元素的訪問。
例子說明:
假設(shè)需要從一組數(shù)據(jù)中找出一個大值,并記錄這個大值是這組數(shù)據(jù)中的第幾個數(shù)據(jù)。
先以大家相對來講比較熟悉的梯形圖的方式來實現(xiàn)此功能。這里我們需要用到通過讀取域或?qū)懭胗虻闹噶?,該指令根?jù)索引的下標(biāo)值來讀取數(shù)值中相對應(yīng)元素的值或?qū)懭霐?shù)到數(shù)組中相對應(yīng)的元素里。此例子中只需要用到讀指令,指令位于移動操作指令中的“原有”文件加中。
讀取數(shù)組中元素值的指令格式如下:
名稱 | 數(shù)據(jù)類型 | 功能描述 |
INDEX | DINT | 數(shù)組的下標(biāo)值 |
MEMBER | 取決數(shù)組中所建立元素的數(shù)據(jù)類型 | 數(shù)組中的個元素 |
VALUE | 取決數(shù)組中所建立元素的數(shù)據(jù)類型 | 存放根據(jù)下標(biāo)值讀取出來的數(shù)組元素中的值 |
舉例:
表示把數(shù)據(jù)中的data這個數(shù)組中的data[5]這個元素的值讀取出來放入到MW100這個變量中。
寫入數(shù)組中元素值的指令格式如下:
名稱 | 數(shù)據(jù)類型 | 功能描述 |
INDEX | DINT | 數(shù)組的下標(biāo)值 |
VALUE | 取決數(shù)組中所建立元素的數(shù)據(jù)類型 | 把該值寫入到通過下表指定的對應(yīng)的數(shù)組元素中 |
MEMBER | 取決數(shù)組中所建立元素的數(shù)據(jù)類型 | 數(shù)組中的個元素 |
舉例:
表示把數(shù)據(jù)20寫入到數(shù)據(jù)塊1中的變量名為data的數(shù)組中的data[3]元素的存儲器中。
在本例中,我們只需要用到個指令,接下來設(shè)計一個如例題中所要求的梯形圖程序。
程序編寫思路:
本例題要去找出大值,并把大值所處的位置記錄下來,編程思路:假設(shè)變量MAX_DATA作為大值的存儲器,然后根據(jù)下標(biāo)值(INDEX)的多少去讀取相應(yīng)數(shù)值中對用的元素的值放于TEMP_DATA變量中,然后與MAX_DATA做比較,若MAX_DATA的值要小,則進行交換,同時記錄INDEX值。然后INDEX加1,可以指向數(shù)組中的下一個元素。
注:流程圖不太標(biāo)準(zhǔn),但希望對大家理解這個編程思路有所幫助,接下來主要對程序的編寫進行介紹
(待續(xù)….)
作者:技成培訓(xùn)網(wǎng)(曾鑫)
本文為原創(chuàng)作品,盜取必究!
三菱PLC通信基礎(chǔ)及應(yīng)用
西門S7-200PLC從入門到精通
西門子200STEP-7 MicroWIN 編程軟件應(yīng)用
三菱FX系列PLC定位控制技術(shù)基礎(chǔ)知識