官术网_书友最值得收藏!

2.3.5 系統存儲區

1.過程映像輸入/輸出

過程映像輸入在用戶程序中的標識符為I,它是PLC接收外部輸入的數字量信號的窗口。輸入端可以外接常開觸點或常閉觸點,也可以接多個觸點組成的串、并聯電路。

在每次掃描循環開始時,CPU讀取數字量輸入點的外部輸入電路的狀態,并將它們存入過程映像輸入區(見表2-5)。

表2-5 系統存儲區

過程映像輸出在用戶程序中的標識符為Q,用戶程序訪問PLC的輸入和輸出地址區時,不是去讀、寫數字量模塊中信號的狀態,而是訪問CPU的過程映像區。在掃描循環中,用戶程序計算輸出值,并將它們存入過程映像輸出區。在下一掃描循環開始時,將過程映像輸出區的內容寫到數字量輸出點,再由后者驅動外部負載。

對存儲器的“讀寫”“訪問”“存取”這3個詞的意思基本上相同。

I和Q均可以按位、字節、字和雙字來訪問,例如I0.0、IB0、IW0和ID0。程序編輯器自動地在絕對操作數前面插入%,例如%I3.2。在SCL中,必須在地址前輸入“%”來表示該地址為絕對地址。如果沒有“%”,STEP 7將在編譯時生成未定義的變量錯誤。

2.外設輸入

在I/O點的地址或符號地址的后面附加“:P”,可以立即訪問外設輸入或外設輸出。通過給輸入點的地址附加“:P”,例如I0.3:P或“Stop:P”,可以立即讀取CPU、信號板和信號模塊的數字量輸入和模擬量輸入。訪問時使用I_:P取代I的區別在于前者的數字直接來自被訪問的輸入點,而不是來自過程映像輸入。因為數據從信號源被立即讀取,而不是從最后一次被刷新的過程映像輸入中復制,這種訪問被稱為“立即讀”訪問。

由于外設輸入點從直接連接在該點的現場設備接收數據值,因此寫外設輸入點是被禁止的,即I_:P訪問是只讀的。

I_:P訪問還受到硬件支持的輸入長度的限制。以被組態為從I4.0開始的2DI/2DQ信號板的輸入點為例,可以訪問I4.0:P、I4.1:P或IB4:P,但是不能訪問I4.2:P~I4.7:P,因為沒有使用這些輸入點。也不能訪問IW4:P和ID4:P,因為它們超過了信號板使用的字節范圍。

用I_:P訪問外設輸入不會影響存儲在過程映像輸入區中的對應值。

3.外設輸出

在輸出點的地址后面附加“:P”(例如Q0.3:P),可以立即寫CPU、信號板和信號模塊的數字量和模擬量輸出。訪問時使用Q_:P取代Q的區別在于前者的數字直接寫給被訪問的外設輸出點,同時寫給過程映像輸出。這種訪問被稱為“立即寫”,因為數據被立即寫給目標點,不用等到下一次刷新時將過程映像輸出中的數據傳送給目標點。

由于外設輸出點直接控制與該點連接的現場設備,因此讀外設輸出點是被禁止的,即Q_:P訪問是只寫的。與此相反,可以讀寫Q區的數據。

與I_:P訪問相同,Q_:P訪問還受到硬件支持的輸出長度的限制。

用Q_:P訪問外設輸出會影響外設輸出點和存儲在過程映像輸出區中的對應值。

4.位存儲器

位存儲器(M存儲器)用來存儲運算的中間操作狀態或其他控制信息。可以用位、字節、字或雙字讀/寫位存儲器區。

5.數據塊

數據塊用來存儲代碼塊使用的各種類型的數據,包括中間操作狀態或FB的其他控制信息參數,以及某些指令(例如定時器、計數器指令)需要的數據結構。

數據塊可以按位(例如DB1.DBX3.5)、字節(DBB)、字(DBW)和雙字(DBD)來訪問。在訪問數據塊中的數據時,應指明數據塊的名稱,例如DB1.DBW20。

如果啟用了塊屬性“優化的塊訪問”,不能用絕對地址訪問數據塊和代碼塊的接口區中的臨時局部數據。

6.臨時局部存儲器

臨時局部存儲器用于存儲代碼塊被處理時使用的臨時數據。臨時局部存儲器類似于M存儲器,二者的主要區別在于M存儲器是全局的,而臨時局部存儲器是局部的。

1)所有的OB、FC和FB都可以訪問M存儲器中的數據,即這些數據可以供用戶程序中所有的代碼塊全局性地使用。

2)在OB、FC和FB的接口區生成臨時變量(Temp)。它們具有局部性,只能在生成它們的代碼塊內使用,不能與其他代碼塊共享。即使OB調用FC,FC也不能訪問調用它的OB的臨時存儲器。

CPU在代碼塊被啟動(對于OB)或被調用(對于FC和FB)時,將臨時局部存儲器分配給代碼塊。代碼塊執行結束后,CPU將它使用的臨時局部存儲器重新分配給其他要執行的代碼塊使用。CPU不對在分配時可能包含數值的臨時存儲單元初始化。只能通過符號地址訪問臨時局部存儲器。

可以通過菜單命令“工具”→“調用結構”查看程序中各代碼塊占用的臨時局部存儲器空間。

主站蜘蛛池模板: 宁都县| 明水县| 乐亭县| 拉孜县| 康乐县| 石首市| 吐鲁番市| 宝兴县| 张家界市| 泰安市| 霍州市| 金阳县| 米林县| 乌什县| 宝清县| 荆州市| 兴宁市| 黄冈市| 衡南县| 中方县| 巩义市| 台山市| 永兴县| 达州市| 丹棱县| 岳池县| 滨州市| 中牟县| 泗洪县| 尉犁县| 大洼县| 房山区| 新宾| 呼图壁县| 宁陵县| 无锡市| 本溪市| 南川市| 潞城市| 两当县| 崇左市|