西門子804DSL磨床NCU730控制器維修
要調(diào)用塊,編輯器需要一些信息,包括塊標題、要預置的塊參數(shù)和在每種情況下塊參數(shù)具有的聲明類型與數(shù)據(jù)類型。這就意味著必須首先編程被調(diào)用功能和功能塊,或者從“別”的塊開始編程(因而把它們放在源文件的開始位置)。
只編程具有塊參數(shù)的塊標題就足夠了(就像是只有一個“接口描述”)。在以后的時間里,可以用程序提供這個接口描述(但要保證不能修改已經(jīng)被調(diào)用塊的接口!否則,編輯器在輸出塊調(diào)用時會報告有時間標記沖突)。
對在源文件中的塊,建議采用下列順序:
●用戶自定義數(shù)據(jù)類型UDT
●全局數(shù)據(jù)塊
●以“低”調(diào)用級別塊開始的功能和功能塊
●實例數(shù)據(jù)塊(也可以直接位于配置的功能塊后)
●組織塊
如果把很長的用戶程序細分為單獨的程序源文件,由于上面列出的塊調(diào)用的原因,必須注意編譯的順序。
1.創(chuàng)建數(shù)據(jù)塊
既可以在SIMATIC管理器項目窗口中的塊上雙擊,也可以在編輯器中選擇File→Open打開塊來開始塊編程。如果塊不存在,按下列方法創(chuàng)建它:
●在SIMATIC管理器中:選擇項目窗口中左側(cè)的對象Blocks(塊),并用Insert→S7
Block→Data Block創(chuàng)建新的數(shù)據(jù)塊??梢钥吹綁K屬性窗口。在“General-Part 1”
選項卡上確定數(shù)據(jù)塊的序號和類型。如果塊容器中顯示的是功能塊FB、系統(tǒng)功能
塊SFB或者用戶數(shù)據(jù)類型UDT,則僅能選擇“實例DB”和“DB類型”。也可以在
以后輸入其他數(shù)據(jù)塊屬性。
●在STL程序編輯器中:利用File→New在“Object name”(“對象名稱”)下得到一
個可以輸入期望塊的對話框,在隨后顯示的“New data block”(“新數(shù)據(jù)塊”)對
話框中需要定義數(shù)據(jù)塊的類型。關(guān)閉此對話框后,可以編輯塊內(nèi)容。
當創(chuàng)建塊或隨后添加塊屬性時,用戶可以填上塊標題。在打開塊的同時選擇File→Properties,可以在編輯器中隨后編輯塊標題。
2.數(shù)據(jù)塊的類型
當創(chuàng)建新的數(shù)據(jù)塊時,需要定義其類型。使用SIMATIC管理器創(chuàng)建時,在屬性窗口的選擇框中設(shè)置類型;使用程序編輯器創(chuàng)建時,在“新數(shù)據(jù)塊”窗口中提供的選項上單擊鼠標設(shè)置類型。
根據(jù)數(shù)據(jù)塊的創(chuàng)建和應用的不同,三種數(shù)據(jù)塊類型是有差別的:
●“數(shù)據(jù)塊”或“共享DB”
創(chuàng)建全局數(shù)據(jù)塊;在這種情況下,編程數(shù)據(jù)塊時要聲明數(shù)據(jù)地址。
●“使用用戶自定義數(shù)據(jù)類型定義的數(shù)據(jù)塊”或“DB類型”
創(chuàng)建用戶數(shù)據(jù)類型的數(shù)據(jù)塊;在這種情況下,編程相應的用戶數(shù)據(jù)類型UDT時
要使用已聲明的數(shù)據(jù)結(jié)構(gòu)。
●“定義成功能塊的數(shù)據(jù)塊”或“實例DB”
創(chuàng)建實例數(shù)據(jù)塊;編輯相關(guān)的功能塊時,要轉(zhuǎn)換已聲明的數(shù)據(jù)結(jié)構(gòu)。
當創(chuàng)建以用戶數(shù)據(jù)類型為基礎(chǔ)的數(shù)據(jù)塊時,必須同時定義為其基礎(chǔ)的UDT。例如,
UDT必須已經(jīng)在塊容器中存在了。這同樣適用于帶功能塊的數(shù)據(jù)塊的創(chuàng)建。
3.塊窗口與視圖
當打開以用戶數(shù)據(jù)類型或(系統(tǒng))功能塊為結(jié)構(gòu)基礎(chǔ)的數(shù)據(jù)塊時,系統(tǒng)將詢問是否使用程序編輯器或者應用“數(shù)據(jù)類型的參數(shù)配置”為默認設(shè)置打開數(shù)據(jù)塊。參數(shù)視圖技術(shù)上以組為形式顯示數(shù)據(jù)值,并且允許更加便捷的參數(shù)配置。數(shù)據(jù)視圖描述如下。
程序編輯器提供了兩種用于編程(創(chuàng)建)數(shù)據(jù)塊的視圖:
●聲明視圖(窗口)是被用來定義使用全局數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)以及默認值的。
●用戶可以在數(shù)據(jù)視圖中在線處理數(shù)據(jù)值。
每一種視圖顯示一個表格,包含按順序排列的數(shù)據(jù)地址、名稱和數(shù)據(jù)類型、初始值和注釋等(如圖3-11所示)。數(shù)據(jù)視圖還包含一個實際值的附加欄。
如果用戶從離線數(shù)據(jù)管理打開一個數(shù)據(jù)塊,系統(tǒng)提供一個離線窗口,利用它可以在編程設(shè)備中編輯數(shù)據(jù)。如果用戶打開在CPU用戶存儲器中存在的一個數(shù)據(jù)塊,編輯器顯示在線窗口,利用它可以編輯CPU中的數(shù)據(jù)值。
4.離線窗口
聲明視圖(窗口)是用來為全局數(shù)據(jù)塊輸入的。在這個視圖窗口中,聲明數(shù)據(jù)地址、定義數(shù)據(jù)地址的順序、為每個數(shù)據(jù)地址分配一個名稱和數(shù)據(jù)類型、還能輸入注釋。每個數(shù)據(jù)地址配置一個默認值,根據(jù)數(shù)據(jù)類型,可以是0、小值或空行,也可能在初始值一欄修改默認值。
來自于用戶類型或者功能塊的數(shù)據(jù)塊已經(jīng)定義了數(shù)據(jù)運算和默認值。它們是從用戶數(shù)據(jù)類型的聲明或者功能塊的聲明段中得到的。
數(shù)據(jù)視圖還可顯示實際值欄。來自初始值欄的默認值作為標準輸入到這一欄中。在數(shù)據(jù)視圖窗口,可以為加載存儲器輸入一個不同的初始值,并且為工作存儲器輸入另一個實際值。
對來自于用戶數(shù)據(jù)類型或者功能塊的數(shù)據(jù)塊來說,存在為每個數(shù)據(jù)塊分配單獨默認值的可能性特別重要。例如,如果產(chǎn)生一個功能的幾個實例數(shù)據(jù)塊,所有數(shù)據(jù)塊在功能塊中都有默認值設(shè)置。在數(shù)據(jù)視圖中,可以分別為每個實例數(shù)據(jù)塊中的各個數(shù)據(jù)地址配置其他默認值。
5.在線窗口
一般使用在線窗口視圖用戶存儲器中的實際數(shù)據(jù)值。但是,也可以使用它來產(chǎn)生數(shù)據(jù)塊。
如果與CPU程序有關(guān)的離線項目是不存在的,則在聲明視圖中,初始值一欄顯示來自于離線數(shù)據(jù)管理的初始值或者來自于加載存儲器的初始值。在數(shù)據(jù)視圖窗口中,實際值一欄顯示來自于工作存儲器的實際值。用Edit→lnitialize Data Block可以要求編輯器再次用初始值代替所有實際值。
當用PLC→Downloal寫回去時,將把實際值一欄的數(shù)值寫回到工作存儲器中。因此,在程序執(zhí)行期間,用戶可以使用編程設(shè)備管理數(shù)據(jù)地址中的數(shù)值。在初始值一欄中的數(shù)值是被拒絕的。
當用File→Save寫回去時,將把在初始值一欄的數(shù)值作為默認值,或者把實際值一欄的數(shù)值作為初始值寫回到離線數(shù)據(jù)管理。
注意與數(shù)據(jù)地址有關(guān)的全部信息,例如名稱,僅在離線數(shù)據(jù)管理中存在。為了保持數(shù)據(jù)的*性,*把CPU用戶存儲器中產(chǎn)生的數(shù)據(jù)塊寫入離線數(shù)據(jù)管理。
SCL代碼塊的程序段用關(guān)鍵字BEGIN開始(可選地),用END_xxx結(jié)束,這里xxx代表塊類型ORGANIZATION_BLOCK. FUNCTION_BLOCK或FUNCTION。
在關(guān)鍵字和程序代碼中,編輯器接受字母的大小寫。用一個或多個空格或者制表符把OP代碼(操作碼)和地址(操作數(shù))分開。為了改善源文件文本的可讀性,在字之間放置一個或多個空格或制表符。在程序編輯器中用Options→Customize在“Format”(格式)選項卡上對不同類型的文本設(shè)置字體和顏色。
必須用分號結(jié)束每行語句,分號之后寫語句注釋,但它必須以雙斜線開始,可能超出這一行的末尾。也可以在一行上輸入幾條語句,彼此用分號分開。
SCL塊至少要包含一條語句(一個分號),SCL不像STL那樣有網(wǎng)絡(luò)。
在行開始處用兩條斜線開始一行的注釋,一行注釋由不超過160個字符組成,不能包括制表符和非打印字符。
SCL有塊注釋,它可以超過幾行,用括號和星號開始,并以星號和括號結(jié)束。塊注釋也可以放在SCL語句中,但它不能中斷符號名或常量(例外:字符串)。
聲明段包含塊內(nèi)局部變量的定義,即只在塊內(nèi)使用的變量的定義。在每一個塊內(nèi),不能編程每一種變量類型(如表3-4所示)。如果不使用變量類型,省略聲明段,包括關(guān)鍵字。
變量的聲明段包括名字、數(shù)據(jù)類型、默認值及變量注釋(可選項)。例如:
Quantity: INT:=+500; //Units per batch
在聲明段中,SCL允許數(shù)據(jù)類型相同的變量放在一行中聲明:
Value1, Value2, Value3, Value4: INT;
不是所有的變量都能夠設(shè)置默認值(例如,暫態(tài)局部數(shù)據(jù)就不能)。
代碼塊的聲明順序是固定的(如表中所示)。變量類型內(nèi)的順序是任意的,與數(shù)據(jù)類型的聯(lián)系以及在存儲器中所需空間的大小也是已定好的。
在SCL中可以聲明常量,例如給一個符號配置固定值。如果在塊中使用跳轉(zhuǎn)標號,必須聲明。
西門子804DSL磨床NCU730控制器維修