在上一章節(jié)中我們對梯形圖數(shù)字指令進行了系統(tǒng)學習,詳情請參見:西門子PLC控制器技術(shù)之九:梯形圖數(shù)字指令 http://m.itdecent.cn/p/29746ea94511,了解了常見數(shù)據(jù)類型、裝載與傳送指令、S5計數(shù)器、S5定時器、比較指令以及基本數(shù)學函數(shù)等內(nèi)容。
通過前面章節(jié)的學習,我們已經(jīng)能夠創(chuàng)建自己項目的硬件組態(tài)、找到現(xiàn)場設備的I/O點,對CPU屬性等參數(shù)進行相關設置,編輯項目所需要的符號表以及理解了CPU運行原理機制,能夠編寫位指令及數(shù)字指令程序,本章將和大家學習SIMATIC S7 PLC編程中的重要內(nèi)容——數(shù)據(jù)塊。
數(shù)據(jù)存儲區(qū)
常見數(shù)據(jù)存儲區(qū)域除了位存儲器M,還有輸入輸出區(qū)I/O,過程映像區(qū)PII/PIQ,臨時數(shù)據(jù)L,以及我們今天要學習的數(shù)據(jù)塊DB。
在現(xiàn)場實際項目中,你會發(fā)現(xiàn)大部分的數(shù)據(jù)不是存儲在我們熟悉的位存儲器中,而是大量應用數(shù)據(jù)塊。
主要原因是由于數(shù)據(jù)塊容量大、數(shù)據(jù)可永久保持(M點掉電易失)并且支持更多更復雜的數(shù)據(jù)類型。
STEP7中的基本數(shù)據(jù)類型
STEP7中的基本數(shù)據(jù)類型位數(shù)不超過32bit,主要分為以下三類:
? 位數(shù)據(jù)類型 (BOOL, BYTE, WORD, DWORD, CHAR)
? 數(shù)學數(shù)據(jù)類型 (INT, DINT, REAL)
? 定時器類型 (S5TIME, TIME, DATE, TIME_OF_DAY)
STEP7中的復雜數(shù)據(jù)類型
STEP7中的復雜數(shù)據(jù)類型位數(shù)可以長于32位,主要有以下數(shù)據(jù)分類:
? 時間 (DATE_AND_TIME)
? 矩陣 (ARRAY)
? 結(jié)構(gòu) (STRUCT)
? 字符串 (STRING)
? 用戶定義數(shù)據(jù)類型 (UDT )
對于復雜數(shù)據(jù)類型,一般需在數(shù)據(jù)塊中聲明使用。
對于STRING字符串變量,其長度為聲明字符數(shù)+2個字節(jié)長度,多出來的兩個字節(jié)一個盛放最大盛放量MAX,一個盛放實際盛放量ACT。
創(chuàng)建數(shù)據(jù)塊
那么,如何創(chuàng)建數(shù)據(jù)塊呢?具體方法如下圖所示;
注意,創(chuàng)建數(shù)據(jù)塊的時候需要選擇數(shù)據(jù)塊類型,如果選擇Shared DB,則是創(chuàng)建全局DB塊;如果選擇Instance DB,則是為某一個FB塊創(chuàng)建其背景DB塊。如果你選擇的是一個DB of type類型,則是創(chuàng)建一個用戶自定義數(shù)據(jù)類型UDT。
尋址數(shù)據(jù)塊單元
數(shù)據(jù)塊中的數(shù)據(jù)應該如何尋址呢,概括起來主要有兩種方法:第一種是絕對地址尋址,對于DB塊來講,即為“地址.地址”,比如DB1.DBX20.0;第二種是符號尋址,為“名字.名字”,這就需要先給DB塊命名,然后給數(shù)據(jù)命名,比如DB1命名為My_Data,DBX20.0命名為S1,則符號尋址為“My_Data”.S1
以上就是本章專題的主要內(nèi)容,思考以下幾個問題,可以幫您鞏固所學內(nèi)容:
- 為什么要采用數(shù)據(jù)塊?
- 怎樣訪問數(shù)據(jù)塊?