深度理解S7-200 Smart的數據存儲區(Data Storage)

PLC編程需要使用各種各樣的數據,不同的數據存放在CPU不同的存儲區中。熟悉CPU的存儲區是編程的前提,今天這篇文章,我們來認識下西門子S7-200 Smart的存儲區。

S7-200 Smart的存儲區可以分為兩大類:(一)是跟外部物理信號相關的輸入/輸出映像區/存儲區;(二)是CPU內部的存儲區;

(一)輸入/輸出映像區/存儲區包括:

  • 數字量輸入映像區(DI,process-image input);
  • 數字量輸出映像區(DO,process-image output);
  • 模擬量輸入存儲區(AI);
  • 模擬量輸出存儲區(AO);

(二)內部存儲區的類別比較多,包括:

  • 變數存儲區(V,Variable memory);
  • 標誌存儲區(M,Flag memory);
  • 定時器(T,Timer);
  • 計數器(C,Counter);
  • 高速計數器(HC,high speed counter);
  • 累加器(Accumulator);
  • 特殊存儲器(SM,special memory);
  • 局部存儲區(L,Local memory);
  • 順序控制繼電器存儲區(Sequence Control Relay)。

CPU在每個掃描周期的初期將物理外設的數字量輸入信號掃描到數字量輸入映像區(DI)中,程序在運行過程中的數字量輸出值暫存在數字量輸出映像區(DO)中,並在掃描周期的末期將數字量輸出映像區的值刷新到物理輸出模塊。數字量輸入/輸出映像區是可讀且可寫的,在程序中對某些數字量輸入位進行寫操作,便可以模擬外部的數字量輸入信號。

CPU對模擬量的處理有所不同,模擬量的值存放在模擬量輸入/輸出存儲區中。注意,模擬量的存放區被稱為「存儲區」而不是「映像區」或者「緩存區」。對於程序中使用的模擬量,是直接從存儲區進行讀取或寫入的。模擬輸入(AI)存儲區是只讀的(Read Only),模擬量輸出(AO)存儲區是只寫的(Write Only);(參考:

深度理解PLC的工作原理(How PLC works)?

www.founderchip.com

變數存儲區(V)用來存放程序在運行過程中的中間變數或者需要的配方數據;標誌存儲區(M)用來存放邏輯運算的中間結果(標誌,flag);其實,在編程時,變數存儲區和標誌存儲區沒有明顯的界限,你也可以用變數存儲區來存放邏輯運算的中間結果。兩者都可以位、位元組、字或者雙字的方式進行訪問,其區別在於變數存儲區(V)比標誌存儲區(M)要大很多。比如,在CPU ST40中,變數存儲區的範圍為VB0到VB16383;而標誌存儲區的範圍為MB0到MB31。程序運行過程中需要的配方數據,需要在數據塊(Data Block)編輯器中設置並存放在變數存儲器(V)中。

定時器(Timer)用來計時。S7-200

Smart定時器的時間基準有1ms,10ms和100ms三種。定時器有兩種變數:當前值(Current value)和定時器位(Timer

bit)。當前值是一個16位的無符號整數,用來記錄當前的時間;定時器位是一個位(bit),用來記錄定時器是否已經被觸發(當前值大於設定值)。以定時器的地址(T+number)既可以訪問當前值,也可以訪問定時器位,取決於訪問指令的類型。位操作指令訪問的是定時器的位,字操作指令訪問的是定時器的當前值。例如下面這張圖:

第一段程序是讀取定時器T3的當前值,並將其存放到VW10,屬於字操作;

第二段程序是讀取定時器T3的位,並將其輸出到Q0.0,屬於位操作;

計數器(Counter)用來進行計數。S7-200 Smart提供三種計數器:向上計數器、向下計數器和上下計數器。與定時器類似,計數器也有一個當前值(16位無符號整數)和一個計數器位(bit),其地址是以字母C加上編號(比如C10)。使用字操作指令可以訪問計數器的當前值,使用位操作指令可以訪問計數器的位。

高速計數器(High Speed Counter)與普通的計數器不同,它不受CPU掃描周期的限制,可以用來對高速信號(比如脈衝)進行計數。高速計數器的值是一個32位的有符號整數,其性質為只讀(Read Only),可以通過高速計數器的地址(HC+number)進行訪問。

累加器(Accumulator)的訪問速度快,可以用來傳遞參數或存放指令運算的中間結果。S7-200 Smart提供4個32位的累加器(AC0,AC1,AC2和AC3),累加器可以位元組、字或者雙字的方式進行訪問。

特殊存儲器(SM)存放著與系統運行有關的特殊變數,PLC的操作系統會將系統狀態等信息寫入到特殊存儲器中,用戶程序通過訪問特定的特殊存儲器,就可以獲取一些系統級的信息。比如,SM0.0始終為1,SM0.5會產生1s的時鐘脈衝等。S7-200

smart有非常多的特殊存儲器變數,將在以後陸續介紹。可以先看看這篇文章:談談S7-200 Smart系列PLC的特殊存儲器(SMB0/SMB1)

局部存儲區(L)用來保存程序塊的運行信息。如果某個程序塊因為中斷或者調用其它塊的原因而被掛起時,其相關的運行信息會被存放到局部存儲區中,以便程序返回時可以從斷點處繼續執行。S7-200 smart為每一個程序組織單元(POU,program organizational unit)分配了64個位元組的局部存儲區。

順序控制繼電器存儲區(S)與順序控制繼電器相關,在編寫順序控制流程圖中使用。它可以位、位元組、字和雙字的方式進行訪問,其地址符號為S,比如S3.1,SB6等。

好了,關於S7-200 Smart的數據存儲區就先介紹到這裡,官網(founderchip.com)提供本文PDF版本下載。

小程序【李工談工控】提供方便的檢索功能,歡迎體驗:


推薦閱讀:

自動開關基礎及其參數選擇
怎樣通過乙太網介面調試SEW的變頻器?
如何利用S7通信在兩台S7-300PLC之間交換數據?
西門子PLC乙太網開放式用戶通信連載(3)-TURCV

TAG:可編程邏輯控制器PLC | 電氣工程及其自動化 | 電氣工程 |