西門子PLC教程ppt課件_第1頁
西門子PLC教程ppt課件_第2頁
西門子PLC教程ppt課件_第3頁
西門子PLC教程ppt課件_第4頁
西門子PLC教程ppt課件_第5頁
已閱讀5頁,還剩304頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第一章 西門子PLC簡單概述 第二章 使用STEP7創(chuàng)建一個工程(硬件組態(tài)) 第三章 西門子編程語言學習 第四章 西門子的程序設(shè)計 第五章 利用WinCC flexible軟件創(chuàng)建工程系統(tǒng),西門子PLC300系列培訓教程1,主要內(nèi)容,1.PLC功能與特點,及S7-300硬件介紹2.組態(tài),I/O分配,IO監(jiān)控,硬件下載;3.軟件編寫,一段小代碼(S,R指令作用,一、 PLC的結(jié)構(gòu)和工作過程,PLC的基本結(jié)構(gòu),PLC的掃描過程,二.手動創(chuàng)建STEP 7項目,1.在Step7中,點擊“文件-新建”,彈出”新建項目”對話框,在”名稱”中輸入項目名稱,然后點擊”確定,2.右鍵點擊”GAGB_1”,在“插

2、入新對象”中選擇“SIMATIC 300站點,3.雙擊“硬件”,打開硬件配置畫面“HW Config,4.準備硬件組態(tài),如果上圖中沒有顯示右框的硬件配置內(nèi)容(即找不到硬件模塊),那么可以通過“視圖”-目錄讓它顯示,5.硬件組態(tài),1.先插入導軌,即點擊選擇“simatic 300”/Rack-300 /Rail,然后按動鼠標到上面紅色框圖位置,之后松開鼠標,顯示(0)UR,表示0號導軌,5.硬件組態(tài),2。在導軌上插入各種S7-300模塊,注意一般第1個通道是電源模塊,第2通道是CPU的位置,第3個通道是預留的,5.硬件組態(tài),設(shè)置CPU屬性,注意1:插入CPU時,一般會彈出一些窗口,譬如設(shè)置IP地

3、址等,點擊OK即可,5.硬件組態(tài),注意2:插入輸入輸出模塊時,Step7會產(chǎn)生默認的IO地址,如果要修改IO地址:通過雙擊該模塊,會產(chǎn)生“屬性”窗口,在“地址”框中,取消“系統(tǒng)默認”的選擇,然后在“開始”位置可以輸入自己想要的IO地址,5.硬件組態(tài)(6/6,編譯硬件組態(tài)(完成后的窗口,系統(tǒng)自動創(chuàng)建程序文件夾,包含一個循環(huán)組織塊OB1,硬件組態(tài)注意事項,1.導軌上UR上第3個模塊的位置一般為空。 有擴展導軌時用,硬件組態(tài)注意事項,2.注意購買的硬件版本,最好軟件組態(tài)與之對應(yīng),硬件組態(tài)注意事項,3.如果買了1個模塊,但是Step7硬件組態(tài)中找不到這個模塊,可以通過“選型”的“安裝HW更新”,通過網(wǎng)

4、絡(luò)更新step的硬件組態(tài)模塊,硬件的下載,硬件下載步驟1:設(shè)置PC與PLC的接口方法(是MPI,DP,網(wǎng)線)。在“選項”的“設(shè)置PG/PC接口”,打開”設(shè)置PG/PC接口”窗口,硬件的下載,硬件下載步驟2: 硬件的編譯及下載。編譯是檢查硬件配置是否正確;編譯正確后才進行下載,三、程序編寫,PLC運行程序規(guī)則是:第一次上電啟動時,先掃描OB100,然后掃描OB1;之后,僅循環(huán)掃描OB1,三.程序編寫,第一次雙擊OB1,打開OB1時,會彈出上圖,選擇LAD(即梯形圖編程),再點擊“OK”,之后就可以正常打開了,8.在OB1中編輯LAD程序(2/2,編寫梯形圖(LAD)程序,6.編輯符號表,符號表的

5、含義:就是給地址起名字,譬如I2.0齊名叫“I_紅燈開關(guān)”。 方法:雙擊“S7程序”/符號,打開符號編輯器,在其中給地址起名字即可。注意,最后點擊保存按鈕,7.程序編輯窗口,3.4 下載和調(diào)試程序,為了測試前面我們所完成的PLC設(shè)計項目,必須將程序和模塊信息下載到PLC的CPU模塊。要實現(xiàn)編程設(shè)備與PLC之間的數(shù)據(jù)傳送,首先應(yīng)正確安裝PLC硬件模塊,然后用編程電纜(如USB-MPI電纜、PROFIBUS總線電纜)將PLC與PG/PC連接起 來,并打開PS307電源開關(guān)。 下載程序及模塊信息,1.下載程序及模塊信息,具體步驟如下: 執(zhí)行菜單命令【PLC】【Download】,或單擊鼠標右鍵執(zhí)行快

6、捷菜單命令【PLC】【Download】將整個S7-300站下載到PLC,第3章 S7-300編程語言學習,第4章 S7-300編程語言學習,4.1 STEP 7編程語言 4.2 數(shù)據(jù)類型 4.3 S7-300指令基礎(chǔ) 4.4 位邏輯指令 4.5 定時器與計數(shù)器指令 4.6 數(shù)字指令 4.7 控制指令,4.1 STEP 7編程語言,STEP 7是S7-300/400系列PLC應(yīng)用設(shè)計軟件包,所支持的PLC編程語言非常豐富。該軟件的標準版支持STL(語句表)、LAD(梯形圖)及FBD(功能塊圖)3種基本編程語言,并且在STEP 7中可以相互轉(zhuǎn)換。專業(yè)版附加對GRAPH(順序功能圖)、SCL(結(jié)構(gòu)

7、化控制語言)、HiGraph(圖形編程語言)、CFC(連續(xù)功能圖)等編程語言的支持。不同的編程語言可供 不同知識背景的人員采用,STL(語句表,STL(語句表)是一種類似于計算機匯編語言的一種文本編程語言,由多條語句組成一個程序段。語句表可供習慣匯編語言的用戶使用,在運行時間和要求的存儲空間方面最優(yōu)。在設(shè)計通信、數(shù)學運算等高級應(yīng)用程序時建議使用語句表,LAD(梯形圖,LAD(梯形圖)是一種圖形語言,比較形象直觀,容易掌握,用得最多,堪稱用戶第一編程語言。梯形圖與繼電器控制電路圖的表達方式極為相似,適合于熟悉繼電器控制電路的用戶使用,特別適用于數(shù)字量邏輯控制,FBD(功能塊圖,FBD(功能塊圖)

8、使用類似于布爾代數(shù)的圖形邏輯符號來表示控制邏輯,一些復雜的功能用指令框表示。FBD比較適合于有數(shù)字電路基礎(chǔ)的編程人員使用,GRAPH(順序控制,GRAPH類似于解決問題的流程圖,適用于順序控制的編程。利用S7-GRAPH編程語言,可以清楚快速地組織和編寫S7 PLC系統(tǒng)的順序控制程序。它根據(jù)功能將控制任務(wù)分解為若干步,其順序用圖形方式顯示出來并且可形成圖形和文本方式的 文件,HiGraph(圖形編程語言,S7-Higraph允許用狀態(tài)圖描述生產(chǎn)過程,將自動控制下的機器或系統(tǒng)分成若干個功能單元,并為每個單元生成狀態(tài)圖,然后利用信息通訊將功能單元組合在一起形成完整的系統(tǒng),SCL(結(jié)構(gòu)化控制語言,S

9、7-SCL(Structured Control Language:結(jié)構(gòu)控制語言)是一種類似于PASCAL的高級文本編輯語言,用于S7-300/400和C7的編程,可以簡化數(shù)學計算、數(shù)據(jù)管理和組織工作。S7-SCL具有PLC公開的基本標準認證,符合IEC 1131-3 (結(jié)構(gòu)化文 本)標準,4.2 數(shù)據(jù)類型,數(shù)據(jù)類型決定數(shù)據(jù)的屬性,在STEP 7中,數(shù)據(jù)類 型分為三大類: 4.2.1 基本數(shù)據(jù)類型 4.2.2 復雜數(shù)據(jù)類型 4.2.3 參數(shù)類型,4.2.1 基本數(shù)據(jù)類型,4.2.2 復雜數(shù)據(jù)類型,數(shù)組(ARRAY) 結(jié)構(gòu)(STRUCT) 字符串(STRING) 日期和時間(DATE_AND_T

10、IME) 用戶定義的數(shù)據(jù)類型(UDT) 功能塊類型(FB、SFB,1.數(shù)組(ARRAY,數(shù)組是由一組同一類型的數(shù)據(jù)組合在一起而形成的復雜數(shù)據(jù)類型。數(shù)組的維數(shù)最大可以到6維;數(shù)組中的元素可以是基本數(shù)據(jù)類型或者復雜數(shù)據(jù)類型中的任一數(shù)據(jù)類型(Array類型除外,即數(shù)組類型不可以嵌套);數(shù)組中每一維的下標取值范圍是-3276832767,要求下標的下限 必須小于下標的上限,2.結(jié)構(gòu)(STRUCT) 結(jié)構(gòu)是由一組不同類型(結(jié)構(gòu)的元素可以是基本的或復雜的數(shù)據(jù)類型)的數(shù)據(jù)組合在一起而形成的復雜數(shù)據(jù)類型。結(jié)構(gòu)通常用來定義一組相關(guān)的數(shù)據(jù),例如電機的一組 數(shù)據(jù)可以按如下方式定義,3.字符串(STRING) 字符串

11、是最多有254個字符(CHAR)的一維數(shù)組,最大長度為256個字節(jié)(其中前兩個字節(jié)用來存儲字符串的長度信息)。字符串常量用單引號括起來,例如,4.日期和時間(DATE_AND_TIME) 用于存儲年、月、日、時、分、秒、毫秒和星期,占用8個字節(jié),用BCD格式保存。星期天的代碼為1,16的 代碼為27。例如,5.用戶定義的數(shù)據(jù)類型(UDT) 用戶定義數(shù)據(jù)類型表示自定義的結(jié)構(gòu),存放在UDT塊中(UDT1UDT65535),在另一個數(shù)據(jù)類型中作為一個數(shù)據(jù)類型“模板”。當輸入數(shù)據(jù)塊時,如果需要輸入幾個相同的結(jié)構(gòu),利用UDT可以節(jié)省輸入時間,6.功能塊類型(FB、SFB) 這種數(shù)據(jù)類型僅可以在FB的靜態(tài)

12、變量區(qū)定義,用于實現(xiàn)多背景DB,4.2.3 參數(shù)數(shù)據(jù)類型,參數(shù)類型是一種用于邏輯塊(FB、FC)之間傳遞參數(shù) 的數(shù)據(jù)類型,主要有以下幾種: (1)TIMER(定時器)和COUNTER(計數(shù)器)。 (2)BLOCK(塊):指定一個塊用作輸入和輸出,實 參應(yīng)為同類型的塊。 (3)POINTER(指針):6字節(jié)指針類型,用來傳遞DB 的塊號和數(shù)據(jù)地址。 (3)ANY:10字節(jié)指針類型,用來傳遞DB塊號、數(shù)據(jù) 地址、數(shù)據(jù)數(shù)量以及數(shù)據(jù)類型,4.3 S7-300指令基礎(chǔ),指令是程序的最小獨立單位,用戶程序是由若干條順序排列的指令構(gòu)成。指令一般由操作碼和操作數(shù)組成,其中的操作碼代表指令所要完成的具體操作(功

13、能),操作數(shù)則是該指令操作或運算的對象。 4.3.1 PLC用戶存儲區(qū)的分類及功能 4.3.2 指令操作數(shù) 4.3.3 尋址方式 4.3.4 狀態(tài)字,4.3.1 PLC用戶存儲區(qū)的分類及功能(1/2,4.3.1 PLC用戶存儲區(qū)的分類及功能(2/2,4.3.2 指令操作數(shù),指令操作數(shù)(又稱編程元件)一般在用戶存儲區(qū)中,操作數(shù)由操作標識符和參數(shù)組成。操作標識符由主標識符和輔助標識符組成,主標識符用來指定操作數(shù)所使用的存儲區(qū)類型,輔助標識符則用來指定操作數(shù)的單位(如:位、字節(jié)、字、雙字等)。 主標識符有:I(輸入過程映像寄存器、Q(輸出過程映像寄存器)、M(位存儲器)、PI(外部輸入寄存器)、PQ

14、(外部輸出寄存器)、T(定時器)、C(計數(shù)器)、DB(數(shù)據(jù)塊寄存器)和L(本地數(shù)據(jù)寄存器); 輔助標識符有:X(位)、B(字節(jié))、W(字或2B)、D(2DW或4B,4.3.3 尋址方式,所謂尋址方式就是指令執(zhí)行時獲取操作數(shù)的方式,可以直接或間接方式給出操作數(shù)。S7-300有4種尋址方式: 立即尋址 存儲器直接尋址 存儲器間接尋址 寄存器間接尋址,1.立即尋址,立即尋址是對常數(shù)或常量的尋址方式,其特點是操作數(shù)直接表示在指令中,或以惟一形式隱含在指令中。下面各條指令操作數(shù)均采用了立即尋址方式,其中“/”后面的內(nèi)容為指令的注釋部分,對指令沒有任何影響,2.存儲器直接尋址,存儲器直接尋址,簡稱直接尋址

15、。該尋址方式在指令中直接給出操作數(shù)的存儲單元地址。存儲單元地址可用符號地址(如SB1、KM等)或絕對地址(如I0.0、Q4.1等)。下面各 條指令操作數(shù)均采用了直接尋址方式,3.存儲器間接尋址(1/3,存儲器間接尋址,簡稱間接尋址。該尋址方式在指令中以存儲器的形式給出操作數(shù)所在存儲器單元的地址,也就是說該存儲器的內(nèi)容是操作數(shù)所在存儲器單元的地址。該存儲器一般稱為地址指針,在指令中需寫在方括號“”內(nèi)。地址指針可以是字或雙字,對于地址范圍小于65535的存儲器可以 用字指針;對于其他存儲器則要使用雙字指針,4.存儲器間接尋址(2/3,例4-3-1】 存儲器間接尋址的單字格式的指針尋址,4.存儲器間

16、接尋址(3/3,存儲器間接尋址的雙字指針的格式如圖所示,例4-3-2】 存儲器間接尋址的雙字格式的指針尋址,5.寄存器間接尋址(1/4,寄存器間接尋址,簡稱寄存器尋址。該尋址方式在指令中通過地址寄存器和偏移量間接獲取操作數(shù),其中的地址寄存器及偏移量必須寫在方括號“”內(nèi)。在S7-300中有兩個地址寄存器AR1和AR2,用地址寄存器的內(nèi)容加上偏移量形成地址指針,并指向操作數(shù)所在的存儲器單元。地址寄存器的地址指針有兩種格式,其長度均為雙字,指針格式如圖所示,5.寄存器間接尋址(2/4,第一種地址指針格式適用于在確定的存儲區(qū)內(nèi)尋址,即 區(qū)內(nèi)寄存器間接尋址。 【例4-3-3】 區(qū)內(nèi)寄存器間接尋址,5.寄

17、存器間接尋址(3/4,第二種地址指針格式適用于區(qū)域間寄存器間接尋址。 【例4-3-4】 區(qū)域間寄存器間接尋址,5.寄存器間接尋址(4/4,第一種地址指針格式包括被尋址數(shù)據(jù)所在存儲單元地址的字節(jié)編號和位編號,至于對哪個存儲區(qū)尋址,則必須在指令中明確給出。這種格式適用于在確定的存儲區(qū)內(nèi)尋址,即 區(qū)內(nèi)寄存器間接尋址。 第二種地址指針格式包含了數(shù)據(jù)所在存儲區(qū)的說明位(存儲區(qū)域標識位),可通過改變標識位實現(xiàn)跨區(qū)域?qū)ぶ?,區(qū)域標識由位2624確定。這種指針格式適用于區(qū)域間寄存 器間接尋址,4.4 位邏輯指令,位邏輯指令處理的對象為二進制位信號。位邏輯指令掃描信號狀態(tài)“1”和“0”位,并根據(jù)布爾邏輯對它們進行

18、組合,所產(chǎn)生的結(jié)果(“1”或“0”)稱為邏輯運算結(jié)果,存儲在狀態(tài)字的“RLO”中。 4.4.1 觸點與線圈 4.4.2 基本邏輯指令 4.4.3 置位和復位指令 4.4.4 RS和SR觸發(fā)器 4.4.5 跳變沿檢測指令,4.4.1 觸點與線圈,在LAD(梯形圖)程序中,通常使用類似繼電器控制電路中的觸點符號及線圈符號來表示PLC的位元件,被掃描的操作數(shù)(用絕對地址或符號地址表示)則標注在觸點符號的上 方,如圖所示,1.常開觸點,對于常開觸點(動合觸點),則對“1”掃描相應(yīng)操作數(shù)。在PLC中規(guī)定:若操作數(shù)是“1”則常開觸點“動作”,即認為是“閉合”的;若操作數(shù)是“0”,則常開觸點“復位”,即觸點

19、仍處 于打開的狀態(tài)。 常開觸點所使用的操作數(shù)是:I、Q、M、L、D、T、C,2.常閉觸點,常閉觸點(動斷觸點)則對“0”掃描相應(yīng)操作數(shù)。在PLC中規(guī)定:若操作數(shù)是“1”則常閉觸點“動作”,即觸點“斷開”;若操作數(shù)是“0”,則常閉觸點“復位”,即觸點仍保持閉合。 常閉觸點所使用的操作數(shù)是:I、Q、M、L、D、T、C,3.輸出線圈(賦值指令,輸出線圈與繼電器控制電路中的線圈一樣,如果有電流(信號流)流過線圈(RLO=“1”),則被驅(qū)動的操作數(shù)置“1”;如果沒有電流流過線圈(RLO=“0”),則被驅(qū)動的操作數(shù)復位(置“0”)。輸出線圈只能出現(xiàn)在梯形圖邏輯串的最右 邊。 輸出線圈等同于STL程序中的賦

20、值指令(用等于號“=”表 示),所使用的操作數(shù)可以是:Q、M、L、D,4.中間輸出,在梯形圖設(shè)計時,如果一個邏輯串很長不便于編輯時,可以將邏輯串分成幾個段,前一段的邏輯運算結(jié)果(RLO)可作為中間輸出,存儲在位存儲器(I、Q、M、L或D)中,該存儲位可以當作一個觸點出現(xiàn)在其他邏輯串中。中間輸出只能放在梯形圖邏輯串的中間,而不能出現(xiàn)在最左 端或最右端,與下面程序等效,4.4.2 基本邏輯指令,基本邏輯指令包括: “與”指令 “與非”指令 “或”指令 “或非”指令 “異或”指令 “異或非”指令 邏輯塊的操作 信號流取反指令,1.邏輯“與” 指令,邏輯“與” 指令使用的操作數(shù)可以是:I、Q、M、L、

21、D、T、C。有2種指令形式(STL和FBD),用LAD也可以實現(xiàn)邏輯 “與” 運算,2.邏輯 “與非”指令,邏輯 “與非”指令使用的操作數(shù)可以是:I、Q、M、L、D、T、C。有2種指令形式(STL和FBD),用LAD也可以實現(xiàn)邏 輯 “與非”運算,3.邏輯 “或”指令,邏輯 “或”指令使用的操作數(shù)可以是:I、Q、M、L、D、T、C。有2種指令形式(STL和FBD),用LAD也可以實現(xiàn)邏 輯 “或”運算,4.邏輯 “或非”指令,邏輯 “或非”指令使用的操作數(shù)可以是:I、Q、M、L、D、T、C。有2種指令形式(STL和FBD),用LAD也可以實現(xiàn)邏 輯 “或非”運算,5.邏輯 “異或”指令,6.邏

22、輯 “異或非”指令,7.邏輯塊的操作,8.信號流取反指令,信號流取反指令的作用就是對邏輯串的RLO值進行取反。指令格式及示例見表4-13。當輸入位I0.0和I0.1同時動作時,Q4.0信號狀態(tài)為“0”;否則,Q4.0信號狀態(tài)為“1,4.4.3 置位和復位指令,置位(S)和復位(R)指令根據(jù)RLO的值來決定操作數(shù)的信號狀態(tài)是否改變,對于置位指令,一旦RLO為“1”,則操作數(shù)的狀態(tài)置“1”,即使RLO又變?yōu)椤?”,輸出仍保持為“1”;若RLO為“0”,則操作數(shù)的信號狀態(tài)保持不變。對于復位操作,一旦RLO為“1”,則操作數(shù)的狀態(tài)置“0”,即使RLO又變?yōu)椤?”,輸出仍保持為“0”;若RLO為“0”,

23、則操作數(shù)的信號狀態(tài)保持不變。這一特性又被稱為靜態(tài)的置位和復位,相應(yīng)地,賦值指 令被稱為動態(tài)賦值,4.4.4 RS和SR觸發(fā)器,RS觸發(fā)器為“置位優(yōu)先”型觸發(fā)器(當R和S驅(qū)動信號同 時為“1”時,觸發(fā)器最終為置位狀態(tài)); SR觸發(fā)器為“復位優(yōu)先”型觸發(fā)器(當R和S驅(qū)動信號同時 為“1”時,觸發(fā)器最終為復位狀態(tài))。 RS觸發(fā)器和SR觸發(fā)器的“位地址”、置位(S)、復(S) 及輸出(Q)所使用的操作數(shù)可以是:I、Q、M、L、D,1.RS觸發(fā)器,2.SR觸發(fā)器,3.RS觸發(fā)器和SR觸發(fā)器的工作時序,示例梯形圖程序,工作時序,4.4.5 跳變沿檢測指令,STEP 7中有2類跳變沿檢測指令,一種是對RLO

24、的跳變沿檢測的指令,另一種是對觸點的跳變沿直接檢測的梯形圖方塊指 令。 RLO上升沿檢測指令 RLO下降沿檢測指令 觸點信號上升沿檢測指令 觸點信號下降沿檢測指令 【例4-4-2】 邊沿檢測指令的應(yīng)用,1.RLO上升沿檢測指令,2.RLO下降沿檢測指令,3.RLO邊沿檢測指令的工作時序,工作時序,示例程序,4.觸點信號上升沿檢測指令,5.觸點信號下降沿檢測指令,6.觸點信號邊沿檢測指令的工作時序,工作時序,示例程序,4.5 定時器與計數(shù)器指令,4.5.1 定時器指令 4.5.2 計數(shù)器指令 4.5.3 CPU時鐘存儲器,4.5.1 定時器指令,S_PULSE(脈沖S5定時器) S_PEXT(擴

25、展脈沖S5定時器) S_ODT(接通延時S5定時器) S_ODTS(保持型接通延時S5定時器) S_OFFDT(斷電延時S5定時器,1. S_PULSE(脈沖S5定時器)(1/3,脈沖定時器的梯形圖及功能塊圖指令,1. S_PULSE(脈沖S5定時器)(2/3,脈沖定時器的線圈指令,1. S_PULSE(脈沖S5定時器)(3/3,工作時序,示例程序,例4-5-1】 脈沖定時器應(yīng)用:優(yōu)先搶答器設(shè)計,例4-5-1】 設(shè)計說明: 參賽者要搶答主持人所提問題時,需搶先按下桌上的按鈕;指示燈亮后需待主持人按下“復位”鍵R后才熄燈;對初中班學生照顧,只要按下SB11和SB12中任一個按鈕燈HL1都亮;對高

26、三班學生限制,只有SB31和SB32都按下時燈HL3才亮;若在主持人按下“開始”按鈕S后10s內(nèi)有搶答按鈕壓下,則電磁鐵YC得電,使彩球搖動,以示競賽者得到一次幸運的機會;如果定時到仍未有搶答,則禁止繼續(xù) 搶答,端子接線圖,例4-5-1,I/O地址分配表,例4-5-1,控制程序:建立允許搶答和禁止搶答標志,例4-5-1,設(shè)置搶答定時器,例4-5-1,初中組搶答控制,例4-5-1,高一組搶答控制,高三組搶答控制,2. S_PEXT(擴展脈沖S5定時器)(1/3,擴據(jù)脈沖S5定時器LAD及FBD指令,2. S_PEXT(擴展脈沖S5定時器)(2/3,擴據(jù)脈沖S5定時器線圈指令,2. S_PEXT(

27、擴展脈沖S5定時器)(3/3,示例程序,工作波形,例4-5-2】 擴展脈沖定時器應(yīng)用電動機延時自動關(guān)閉控制。 控制要求:按動起動按鈕S1(I0.0),電動機M(Q4.0)立即起動,延時5分鐘以后自動關(guān)閉。起動后按動停止按鈕 S2(I0.1),電動機立即停機,例4-5-2,控制程序(LAD,控制程序(STL,3. S_ODT(接通延時S5定時器)(1/3,接通延時S5定時器LAD及FBD指令,3. S_ODT(接通延時S5定時器)(2/3,接通延時S5定時器線圈指令,3. S_ODT(接通延時S5定時器)(3/3,示例程序,工作波形,例4-5-3】 接通延時定時器和脈沖定時器應(yīng)用用定時器構(gòu)成一脈

28、沖發(fā)生器,當滿足一定條件時,能夠輸出一定頻率和一定占空比的脈沖信號。 工藝要求:當按鈕S1(I0.0)按下時,輸出指示燈H1(Q4.0)以滅2s,亮1s規(guī)律交替進行,例4-5-3,控制程序 (使用接通延時定時器,控制程序 (使用脈沖定時器,4. S_ODTS(保持型接通延時S5定時器)(1/3,保持型接通延時S5定時器LAD及FBD指令,4. S_ODTS(保持型接通延時S5定時器)(2/3,保持型接通延時S5定時器線圈指令,4. S_ODTS(保持型接通延時S5定時器)(3/3,示例程序,工作波形,5. S_OFFDT(斷電延時S5定時器)(1/3,斷電延時S5定時器LAD及FBD指令,5.

29、 S_OFFDT(斷電延時S5定時器)(2/3,斷電延時S5定時器線圈指令,5. S_OFFDT(斷電延時S5定時器)(3/3,示例程序,工作波形,4.5.2 計數(shù)器指令,S7-300的計數(shù)器都是16位的,因此每個計數(shù)器占用該區(qū)域2個字節(jié)空間,用來存儲計數(shù)值。不同的CPU模板,用于計數(shù)器的存儲區(qū)域也不同,最多允許使用64512個計數(shù)器。計數(shù)器的地址編號:C0C511。 S_CUD(加/減計數(shù)器) S_CU(加計數(shù)器) S_CD(減計數(shù)器) 計數(shù)器線圈指令,1. S_CUD(加/減計數(shù)器)塊圖指令,2. S_CU(加計數(shù)器)塊圖指令,3. S_CD(減計數(shù)器)塊圖指令,4. 計數(shù)器的線圈指令,除

30、了前面介紹的塊圖形式的計數(shù)器指令以外,S7-300系統(tǒng)還為用戶準備了LAD環(huán)境下的線圈形式的計數(shù)器。這些指令有計數(shù)器初值預置指令SC、加計數(shù)器指令CU和減計數(shù)器指令CD,加計數(shù)器線圈指令應(yīng)用示例,初值預置SC指令若與CU指令配合可實現(xiàn)S_CU指令的功能,減計數(shù)器線圈指令應(yīng)用示例,SC指令若與CD指令配合可實現(xiàn)S_CD指令的功能,加/減計數(shù)器線圈指令應(yīng)用示例,SC指令若與CU和CD配合可實現(xiàn)S_CUD的功能,4.5.3 訪問CPU的時鐘存儲器,要使用該功能,在硬件配置時需要設(shè)置CPU的屬性,其中有一個選項為Clock Memory,選中選擇框就可激活該功能,設(shè)置CPU的時鐘存儲器,在Memory

31、 Byte區(qū)域輸入想為該項功能設(shè)置的MB的地址,如需要使用MB10,則直接輸入10。Clock Memory的功能是對所定義的MB的各個位周期性地改變其二進制的值(占空比為1:1)。Clock Memory的各位的周期及頻率見 表,例4-5-5】 時鐘存儲器與計數(shù)器的應(yīng)用。 當定時器不夠用時,可以將計數(shù)器擴展為定時器。圖中分別給出了用減計數(shù)器擴展定時器的控制程序,程序中使用了CPU的時鐘存儲器,設(shè)置MB10為時鐘存儲器,由表4-39可知M10.0的變化周期為0.1s,4.6 數(shù)字指令,4.6.1 裝入與傳送指令 4.6.2 轉(zhuǎn)換指令 4.6.3 比較指令 4.6.4 算數(shù)運算指令 4.6.5

32、字邏輯運算指令 4.6.6 移位指令 4.6.7 數(shù)字指令綜合應(yīng)用,4.6.1 裝入和傳送指令,裝入指令(L)和傳送指令(T),可以對輸入或輸出模塊與存儲區(qū)之間的信息交換進行編程。 對累加器1的裝入指令 對累加器1的傳送指令 狀態(tài)字與累加器1之間的裝入和傳送指令 與地址寄存器有關(guān)的裝入和傳送指令 LC(定時器/計數(shù)器裝載指令) MOVE指令,1. 對累加器1的裝入指令,2. 對累加器1的傳送指令,T指令可以將累加器1的內(nèi)容復制到被尋址的操作數(shù),所復制的字節(jié)數(shù)取決于目標地址的類型(字節(jié)、字或 雙字),指令格式如下: T操作數(shù) 其中的操作數(shù)可以為直接I/O區(qū)(存儲類型為PQ)、數(shù)據(jù)存儲區(qū)或過程映像

33、輸出表的相應(yīng)地址(存儲類型為Q,3. 狀態(tài)字與累加器1之間的裝入和傳送指令,L STW(將狀態(tài)字裝入累加器1) 將狀態(tài)字裝入累加器1中,指令的執(zhí)行與狀態(tài)位無關(guān),而且對狀態(tài)字沒有任何影響。指令格式如下: LSTW T STW(將累加器1的內(nèi)容傳送到狀態(tài)字) 使用T STW指令可以將累加器1的位08傳送到狀態(tài)字的相應(yīng)位,指令的執(zhí)行與狀態(tài)位無關(guān),指令格式如下: TSTW,4.與地址寄存器有關(guān)的裝入和傳送指令(1/4,LAR1(將操作數(shù)的內(nèi)容裝入地址寄存器AR1,4.與地址寄存器有關(guān)的裝入和傳送指令(2/4,LAR2(將操作數(shù)的內(nèi)容裝入地址寄存器2) 使用LAR2指令可以將操作數(shù)的內(nèi)容(32位指針)裝

34、入地址寄存器AR2,指令格式同LAR1,其中的操作數(shù)可以是累加器1、指針型常數(shù)(P#)、存儲雙字(MD)、本地數(shù)據(jù)雙字(LD)、數(shù)據(jù)雙字(DBD)或背景數(shù)據(jù)雙字(DID),但 不能用AR1,4.與地址寄存器有關(guān)的裝入和傳送指令(3/4,TAR1(將地址寄存器1的內(nèi)容傳送到操作數(shù),4.與地址寄存器有關(guān)的裝入和傳送指令(4/4,TAR2(將地址寄存器2的內(nèi)容傳送到操作數(shù)) 使用TAR2指令可以將地址寄存器AR1的內(nèi)容(32位指針)傳送給被尋址的操作數(shù),指令格式同TAR1。其中的操作數(shù)可以是累加器1、存儲雙字(MD)、本地數(shù)據(jù)雙字(LD)、數(shù)據(jù)雙字(DBD)、背景數(shù)據(jù)雙字(DID),但不 能用AR1

35、。 CAR(交換地址寄存器1和地址寄存器2的內(nèi)容) 使用CAR指令可以交換地址寄存器AR1和地址寄存器AR2的內(nèi)容,指令不需要指定操作數(shù)。指令的執(zhí)行與狀態(tài)位無 關(guān),而且對狀態(tài)字沒有任何影響,5. LC(定時器/計數(shù)器裝載指令,使用LC指令可以在累加器1的內(nèi)容保存到累加器2中之后,將指定定時器字中當前時間值和時基以BCD碼(0999)格式裝入到累加器1中,或?qū)⒅付ㄓ嫈?shù)器的當前計數(shù)值以BCD碼(0999)格式裝入到累加器1中。指令格式如下: LC,6. MOVE指令,MOVE指令為功能框形式的傳送指令,能夠復制字節(jié)、字或雙字數(shù)據(jù)對象。應(yīng)用中IN和OUT端操作數(shù)可以是常數(shù)、I、Q、M、D、L等類型,

36、但必須在寬度上匹配,4.6.2 轉(zhuǎn)換指令,轉(zhuǎn)換指令是將累加器1中的數(shù)據(jù)進行數(shù)據(jù)類型轉(zhuǎn)換,轉(zhuǎn)換結(jié)果仍放在累加器1中。在STEP 7中,可以實現(xiàn)BCD碼與整數(shù)、整數(shù)與長整數(shù)、長整數(shù)與實數(shù)、整數(shù)的反碼、整 數(shù)的補碼、實數(shù)求反等數(shù)據(jù)轉(zhuǎn)換操作。 BCD碼和整數(shù)到其他類型轉(zhuǎn)換指令 整數(shù)和實數(shù)的碼型變換指令 實數(shù)取整指令 累加器1調(diào)整指令,1. BCD碼和整數(shù)到其他類型轉(zhuǎn)換指令(1/3,STL形式的指令(1,1. BCD碼和整數(shù)到其他類型轉(zhuǎn)換指令(2/3,STL形式的指令(2,1. BCD碼和整數(shù)到其他類型轉(zhuǎn)換指令(3/3,LAD和FBD形式的指令,2.整數(shù)和實數(shù)的碼型變換指令(1/2,STL形式的指令,2

37、.整數(shù)和實數(shù)的碼型變換指令(2/2,LAD和FBD形式的指令,3.實數(shù)取整指令(1/2,STL形式的指令,3.實數(shù)取整指令(2/2,LAD和FBD形式的指令,4.累加器1調(diào)整指令,4.6.3 比較指令,比較指令可完成整數(shù)、長整數(shù)或32位浮點數(shù)(實數(shù))的相等、不等、大于、小于、大于或等于、小于或等于等 比較 。 整數(shù)比較指令 長整數(shù)比較指令 實數(shù)比較指令,1.整數(shù)比較指令,1.整數(shù)比較指令(示例,2.長整數(shù)比較指令,2.長整數(shù)比較指令(示例,3.實數(shù)比較指令,3.實數(shù)比較指令(示例,4.6.4 算數(shù)運算指令,算術(shù)運算指令可完成整數(shù)、長整數(shù)及實數(shù)的加、減、乘、除、求余、求絕對值等基本算數(shù)運算;以及

38、32位浮點數(shù)的平方、平方根、自然對數(shù)、基于e的指數(shù)運算及三角 函數(shù)等擴展算數(shù)運算。 基本算術(shù)運算指令 擴展算術(shù)運算指令,1. 基本算數(shù)運算指令(整數(shù)運算,1. 基本算數(shù)運算指令(長整數(shù)運算,1. 基本算數(shù)運算指令(實數(shù)運算,例4-6-1】 16位整數(shù)的算術(shù)運算指令應(yīng)用,例4-6-1】 16位整數(shù)的算術(shù)運算指令應(yīng)用,例4-6-2】求輸入雙字ID10的內(nèi)容與常數(shù)32相除的余數(shù),結(jié)果保存到MD20中,2. 擴展算數(shù)運算指令,4.6.5 字邏輯運算指令,字邏輯運算指令可對兩個16位(WORD)或32位(DWORD)的二進制數(shù)據(jù),逐位進行邏輯與、邏輯或、邏 輯異或運算。 對于STL形式的字邏輯運算指令,

39、可對累加器1和累加器2中的字或雙字數(shù)據(jù)進行邏輯運算,結(jié)果保存在累加器1中,若結(jié)果不為0,則對狀態(tài)標志位CC1置“1”,否則對CC1置“0”。 對于LAD和FBD形式的字邏輯運算指令,由參數(shù)IN1和IN2提供參與運算的兩個數(shù)據(jù),運算結(jié)果保存在由OUT指定的存儲區(qū)中,字邏輯運算指令格式,4.6.6 移位指令,移位指令有2種類型:基本移位指令可對無符號整數(shù)、有符號長整數(shù)、字或雙字數(shù)據(jù)進行移位操作;循環(huán)移位指令可對雙字數(shù)據(jù)進行循環(huán)移位和累加器1帶CC1的循環(huán) 移位操作。 有符號右移指令 字移位指令 雙字移位指令 雙字循環(huán)移位指令 帶累加器循環(huán)移位指令,1.有符號右移指令格式,2.字移位指令格式,3.雙

40、字移位指令格式,4.雙字循環(huán)移位指令格式,5.帶累加器循環(huán)移位指令格式,4.7 控制指令,控制指令可控制程序的執(zhí)行順序,使得CPU能根據(jù)不同的情況執(zhí)行不同的程序??刂浦噶钣?類: 4.7.1 邏輯控制指令 4.7.2 程序控制指令 4.7.3 主控繼電器指令,4.7.1 邏輯控制指令,邏輯控制指令是指邏輯塊內(nèi)的跳轉(zhuǎn)和循環(huán)指令,這些指令可以中斷原有的線性程序掃描,并跳轉(zhuǎn)到目標地址處重新執(zhí)行線性程序掃描。目標地址由跳轉(zhuǎn)指令后面的標號指定,該地址標號指出程序要跳往何處,可向前跳轉(zhuǎn),也可以向后跳轉(zhuǎn),最大跳轉(zhuǎn)距離為-32768或32767字。 無條件跳轉(zhuǎn)指令 多分支跳轉(zhuǎn)指令 條件跳轉(zhuǎn)指令 循環(huán)指令,1.

41、 無條件跳轉(zhuǎn)指令,無條件跳轉(zhuǎn)指令JU執(zhí)行時,將直接中斷當前的線性程序掃描,并跳轉(zhuǎn)到由指令后面的標號所指定的目標地址處重新執(zhí)行線性程序掃描,例4-7-1】 無條件跳轉(zhuǎn)指令的使用。 當程序執(zhí)行到無條件跳轉(zhuǎn)指令時,將直接跳轉(zhuǎn)到L1處執(zhí)行,2. 多分支跳轉(zhuǎn)指令,多分支跳轉(zhuǎn)指令JL的指令格式如下: JL 如果累加器1低字中低字節(jié)的內(nèi)容小于JL指令和由JL指令所指定的標號之間的JU指令的數(shù)量,JL指令就會跳轉(zhuǎn)到其中一條JU處執(zhí)行,并由JU指令進一步跳轉(zhuǎn)到目標地址;如果累加器1低字中低字節(jié)的內(nèi)容為0,則直接執(zhí)行JL指令下面的第一條JU指令;如果累加器1低字中低字節(jié)的內(nèi)容為1,則直接執(zhí)行JL指令下面的第二條J

42、U指令;如果跳轉(zhuǎn)的目的地的數(shù)量太大,則JL指令跳轉(zhuǎn)到目的地列表中 最后一個JU指令之后的第一個指令,例4-7-2】 多分支跳轉(zhuǎn)指令的使用,3. 條件跳轉(zhuǎn)指令,例4-7-3】 條件跳轉(zhuǎn)指令的使用。 程序示例如圖4-44所示。當I0.0與I0.1同時為“1”時,則跳轉(zhuǎn)到L2處執(zhí)行;否則,到L1處執(zhí)行(順序執(zhí)行,4. 循環(huán)指令,循環(huán)指令的格式如下: LOOP 使用循環(huán)指令(LOOP)可以多次重復執(zhí)行特定的程序段,由累加器1確定重復執(zhí)行的次數(shù),即以累加器1的低字為循環(huán)計數(shù)器。LOOP指令執(zhí)行時,將累加器1低字中的值減1,如果不為0,則繼續(xù)循環(huán)過程,否則執(zhí)行LOOP指令后面的指令。循環(huán)體是指循環(huán)標號和L

43、OOP指令間的程序段,例4-7-4】 循環(huán)指令的使用。 利用循環(huán)指令可以完成有規(guī)律的重復計算過程,下面是求階乘“8!”的示例程序,4.7.2 程序控制指令,程序控制指令是指功能塊(FB、FC、SFB、SFC)調(diào)用指令和邏輯塊(OB,F(xiàn)B,F(xiàn)C)結(jié)束指令。調(diào)用塊或結(jié)束塊可以是有條件的或是無條件的。 基本控制指令 子程序調(diào)用指令 CALL指令可以調(diào)用用戶編寫的功能塊或操作系統(tǒng)提供的功能塊,CALL指令的操作數(shù)是功能塊類型及其編號,當調(diào)用的功能塊是FB塊時還要提供相應(yīng)的背景數(shù)據(jù)塊DB。使用CALL指令可以為被調(diào)用功能塊中的形參賦以實際參數(shù),調(diào)用時應(yīng)保證實參與形參的數(shù)據(jù)類型一致,1. 基本控制指令,2

44、. 子程序調(diào)用指令,4.7.3 主控繼電器指令,主控繼電器(MCR)是一種繼電器梯形圖邏輯的主開關(guān),用于控制電流(能流)的通斷,第5章 S7程序結(jié)構(gòu)與程序設(shè)計,5.1 S7 CPU中的程序 5.2 數(shù)據(jù)塊中的數(shù)據(jù)存儲 5.3 邏輯塊(FC和FB)的結(jié)構(gòu)及編程 5.4 編輯并調(diào)用無參功能(FC)分部程序設(shè)計 5.5 編輯并調(diào)用有參功能(FC)結(jié)構(gòu)化程序設(shè)計 5.6 編輯并調(diào)用無靜態(tài)參數(shù)的功能塊(FB) 5.7 編輯并調(diào)用有靜態(tài)參數(shù)的功能塊(FB) 5.8 使用多重背景結(jié)構(gòu)化程序設(shè)計,5.1 S7 CPU中的程序,5.1.1 用戶程序中的塊結(jié)構(gòu) 5.1.2 用戶程序結(jié)構(gòu) 5.1.3 I/O過程映像

45、 5.1.4 程序循環(huán)執(zhí)行,5.1.1 用戶程序中的塊結(jié)構(gòu),5.1.2 用戶程序結(jié)構(gòu),線性程序(線性編程) 分部式程序(分部編程、分塊編程) 結(jié)構(gòu)化程序(結(jié)構(gòu)化編程或模塊化編程,1. 線性程序(線性編程,所謂線性程序結(jié)構(gòu),就是將整個用戶程序連續(xù)放置在一個循環(huán)程序塊(OB1)中,塊中的程序按順序執(zhí)行,CPU通過反復執(zhí)行OB1來實現(xiàn)自動化控制任務(wù)。這種結(jié)構(gòu)和PLC所代替的硬接線繼電器控制類似,CPU逐條地處理指令。事實上所有的程序都可以用線性結(jié)構(gòu)實現(xiàn),不過,線性結(jié)構(gòu) 一般適用于相對簡單的程序編寫,2.分部式程序(分部編程、分塊編程,所謂分部程序,就是將整個程序按任務(wù)分成若干個部分,并分別放置在不同

46、的功能(FC)、功能塊(FB)及組織塊中,在一個塊中可以進一步分解成段。在組織塊OB1中 包含按順序調(diào)用其他塊的指令,并控制程序執(zhí)行。 在分部程序中,既無數(shù)據(jù)交換,也不存在重復利用的程序代碼。功能(FC)和功能塊(FB)不傳遞也不接收參數(shù),分部程序結(jié)構(gòu)的編程效率比線性程序有所提高,程序測試也較方便,對程序員的要求也不太高。對不太復雜的 控制程序可考慮采用這種程序結(jié)構(gòu),3. 結(jié)構(gòu)化程序(結(jié)構(gòu)化編程或模塊化編程,所謂結(jié)構(gòu)化程序,就是處理復雜自動化控制任務(wù)的過程中,為了使任務(wù)更易于控制,常把過程要求類似或相關(guān)的功能進行分類,分割為可用于幾個任務(wù)的通用解決方案的小任務(wù),這些小任務(wù)以相應(yīng)的程序段表示,稱

47、為塊(FC或FB)。OB1通過調(diào)用這些程序塊來完成整個自動化控制任 務(wù)。 結(jié)構(gòu)化程序的特點是每個塊(FC或FB)在OB1中可能會被多次調(diào)用,以完成具有相同過程工藝要求的不同控制對象。這種結(jié)構(gòu)可簡化程序設(shè)計過程、減小代碼長度、提高 編程效率,比較適合于較復雜自動化控制任務(wù)的設(shè)計,5.1.3 I/O過程映像,5.1.4 程序循環(huán)執(zhí)行,5.2 數(shù)據(jù)塊中的數(shù)據(jù)存儲,5.2.1 數(shù)據(jù)存儲區(qū) 5.2.2 數(shù)據(jù)塊 5.2.3 數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu) 5.2.4 建立數(shù)據(jù)塊 5.2.5 訪問數(shù)據(jù)塊,5.2.1 數(shù)據(jù)存儲區(qū),數(shù)據(jù)以用戶程序變量的形式存儲,且具有唯一性。數(shù)據(jù)可以存儲在輸入過程映像存儲器(PII)、輸出過

48、程映像存儲器(PIQ)、位存儲器(M)、局部數(shù)據(jù)堆棧(L堆棧)及數(shù)據(jù)塊(DB)中??梢圆捎没緮?shù)據(jù)類型、復雜數(shù)據(jù)類 型或參數(shù)類型。 根據(jù)訪問方式的不同,這些數(shù)據(jù)可以在全局符號表或共享數(shù)據(jù)塊中聲明,稱為全局變量;也可以在OB、FC和FB的變量聲明表中聲明,稱為局部變量。當塊被執(zhí)行時,變量將固定地存儲在過程映像區(qū)(PII或PIQ)、位存儲器區(qū) (M)、數(shù)據(jù)塊(DB)或局部堆棧(L)中,5.2.2 數(shù)據(jù)塊,數(shù)據(jù)塊定義在S7 CPU的存儲器中,用戶可在存儲器中建立一個或多個數(shù)據(jù)塊。每個數(shù)據(jù)塊可大可小,但CPU對數(shù)據(jù)塊數(shù)量及數(shù)據(jù)總量有限制。 數(shù)據(jù)塊(DB)可用來存儲用戶程序中邏輯塊的變量數(shù)據(jù)(如:數(shù)值)

49、。與臨時數(shù)據(jù)不同,當邏輯塊執(zhí)行結(jié)束或 數(shù)據(jù)塊關(guān)閉時,數(shù)據(jù)塊中的數(shù)據(jù)保持不變。 用戶程序可以位、字節(jié)、字或雙字操作訪問數(shù)據(jù)塊中 的數(shù)據(jù),可以使用符號或絕對地址,1.數(shù)據(jù)塊的分類,共享數(shù)據(jù)塊又稱全局數(shù)據(jù)塊。用于存儲全局數(shù)據(jù),所有邏輯塊(OB、FC、FB)都可以訪問共享數(shù)據(jù)塊存儲的 信。 背景數(shù)據(jù)塊用作“私有存儲器區(qū)”,即用作功能塊(FB)的“存儲器”。FB的參數(shù)和靜態(tài)變量安排在它的背景數(shù)據(jù)塊中。背景數(shù)據(jù)塊不是由用戶編輯的,而是由編輯器 生成的。 用戶定義數(shù)據(jù)塊(DB of Type)是以UDT為模板所生成的數(shù)據(jù)塊。創(chuàng)建用戶定義數(shù)據(jù)塊(DB of Type)之前,必須先創(chuàng)建一個用戶定義數(shù)據(jù)類型,如U

50、DT1,并在 LAD/STL/FBD S7程序編輯器內(nèi)定義,2.數(shù)據(jù)塊寄存器,CPU有兩個數(shù)據(jù)塊寄存器:DB和DI寄存器。這樣,可以 同時打開兩個數(shù)據(jù)塊,5.2.3 數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),在STEP 7中數(shù)據(jù)塊的數(shù)據(jù)類型可以采用基本數(shù)據(jù)類 型、復雜數(shù)據(jù)類型或用戶定義數(shù)據(jù)類型(UDT)。 基本數(shù)據(jù)類型 復雜數(shù)據(jù)類型 用戶定義數(shù)據(jù)類型,基本數(shù)據(jù)類型 根據(jù)IEC1131-3定義,長度不超過32位,可利用STEP 7基本指令處理,能完全裝入S7處理器的累加器中?;緮?shù) 據(jù)類型包括: 位數(shù)據(jù)類型:BOOL、BYTE、WORD、DWORD、CHAR 數(shù)字數(shù)據(jù)類型:INT、DINT、REAL 定時器類型:S5T

51、IME、TIME、DATE、TIME_OF_DAY,復雜數(shù)據(jù)類型 復雜數(shù)據(jù)類型只能結(jié)合共享數(shù)據(jù)塊的變量聲明使用。復雜數(shù)據(jù)類型可大于32位,用裝入指令不能把復雜數(shù)據(jù)類型完全裝入累加器,一般利用庫中的標準塊(“IEC”S7程序)處理復雜數(shù)據(jù)類型。復雜數(shù)據(jù)類型包括: 時間(DATE_AND_TIME)類型 矩陣(ARRAY)類型 結(jié)構(gòu)(STRUCT)類型 字符串(STRING)類型,用戶定義數(shù)據(jù)類型(UDT) STEP 7允許利用數(shù)據(jù)塊編輯器,將基本數(shù)據(jù)類型和復雜數(shù)據(jù)類型組合成長度大于32位用戶定義數(shù)據(jù)類型(UDT:User-Defined dataType)。用戶定義數(shù)據(jù)類型不能存儲在PLC中,只

52、能存放在硬盤上的UDT塊中??梢杂糜脩舳x數(shù)據(jù)類型作“模板”建立數(shù)據(jù)塊,以節(jié)省錄入時間。可用于建立結(jié)構(gòu)化數(shù)據(jù)塊、建立包含幾個相同單元的 矩陣、在帶有給定結(jié)構(gòu)的FC和FB中建立局部變量,5-2-1】 創(chuàng)建用戶定義數(shù)據(jù)類型:UDT1,創(chuàng)建一個名稱為UDT1的用戶定義數(shù)據(jù)類型,數(shù)據(jù)結(jié)構(gòu)如下,則可按以下幾個步驟完成,5-2-1,創(chuàng)建 用戶定義數(shù)據(jù)類型,5-2-1,編輯UDT1,5.2.4 建立數(shù)據(jù)塊,在STEP 7中,為了避免出現(xiàn)系統(tǒng)錯誤,在使用數(shù)據(jù)塊之前,必須先建立數(shù)據(jù)塊,并在塊中定義變量(包括變量符號名、數(shù)據(jù)類型以及初始值等)。數(shù)據(jù)塊中變量的順序及類型決定了數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),變量的數(shù)量決定了數(shù)據(jù)塊

53、的大小。數(shù)據(jù)塊建立后,還必須同程序塊一起下載到CPU中,才能被程序塊訪問。 建立數(shù)據(jù)塊 定義變量并下載數(shù)據(jù)塊,方法1:用SIMATIC Manager創(chuàng)建數(shù)據(jù)塊,方法2:用LAD/STL/FBD S7程序編輯器創(chuàng)建數(shù)據(jù)塊,新DB類型選擇窗口,編輯數(shù)據(jù)塊(變量定義,變量定義完成后,應(yīng)單擊保存按鈕保存并編譯(測試)。如果沒有錯誤則需要單擊下載按鈕,像邏輯塊一樣,將數(shù)據(jù)塊下載 到CPU,5.2.5 訪問數(shù)據(jù)塊,在用戶程序中可能存在多個數(shù)據(jù)塊,而每個數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)并不完全相同,因此在訪問數(shù)據(jù)塊時,必須指明數(shù)據(jù)塊的編號、數(shù)據(jù)類型與位置。如果訪問不存在的數(shù)據(jù)單元或數(shù)據(jù)塊,而且沒有編寫錯誤處理OB塊,CP

54、U將進入STOP模式。 尋址數(shù)據(jù)塊 訪問數(shù)據(jù)塊 直接訪問數(shù)據(jù)塊,尋址數(shù)據(jù)塊,訪問數(shù)據(jù)塊,在STEP 7中可以采用傳統(tǒng)訪問方式,即先打開后訪問;也可以采用完全表示的直接訪問方式。 【例5-2-2】 打開并訪問共享數(shù)據(jù)塊,訪問數(shù)據(jù)塊,用指令“OPN DB.”打開共享數(shù)據(jù)塊(自動關(guān)閉之前打開的共享數(shù)據(jù)塊),如果DB已經(jīng)打開,則可用裝入(L)或 傳送(T)指令訪問數(shù)據(jù)塊。 【例5-2-3】 打開并訪問背景數(shù)據(jù)塊,直接訪問數(shù)據(jù)塊 所謂直接訪問數(shù)據(jù)塊,就是在指令中同時給出數(shù)據(jù)塊的編號和數(shù)據(jù)在數(shù)據(jù)塊中的地址??梢杂媒^對地址,也可以用符號地址直接訪問數(shù)據(jù)塊。 用絕對地址直接訪問數(shù)據(jù)塊,如,用符號地址直接訪問數(shù)

55、據(jù)塊 ,如,功能(FC)、功能塊(FB)和組織塊(OB)統(tǒng)稱為邏輯塊(或程序塊)。功能塊(FB)有一個數(shù)據(jù)結(jié)構(gòu)與該功能塊的參數(shù)完全相同的數(shù)據(jù)塊,稱為背景數(shù)據(jù)塊,背景數(shù)據(jù)塊依附于功能塊,它隨著功能塊的調(diào)用而打開,隨著功能塊的結(jié)束而關(guān)閉。存放在背景數(shù)據(jù)塊中的數(shù)據(jù)在功能塊結(jié)束時繼續(xù)保持。而功能(FC)則不需要背景數(shù)據(jù)塊,功能調(diào)用結(jié)束后數(shù)據(jù)不能保持。組織塊(OB)是由操作系統(tǒng)直接調(diào)用的邏輯 塊。 5.3.1 邏輯塊(FC和FB)的結(jié)構(gòu) 5.3.1 邏輯塊(FC和FB)的編程,5.3 邏輯塊(FC和FB)的結(jié)構(gòu)及編程,邏輯塊(OB、FB、FC)由變量聲明表、代碼段及其屬性等幾部分組成。 局部變量聲明表(

56、局部數(shù)據(jù)) 邏輯塊局部變量的數(shù)據(jù)類型 邏輯塊的調(diào)用過程及內(nèi)存分配,5.3.1 邏輯塊(FC和FB)的結(jié)構(gòu),每個邏輯塊前部都有一個變量聲明表,稱為局部變量聲明表,1. 局部變量聲明表,局部數(shù)據(jù)分為參數(shù)和局部變量兩大類,局部變量又包括靜態(tài)變量和臨時變量(暫態(tài)變量)兩種,對于功能塊(FB),操作系統(tǒng)為參數(shù)及靜態(tài)變量分配的存儲空間是背景數(shù)據(jù)塊。這樣參數(shù)變量在背景數(shù)據(jù)塊中留有運行結(jié)果備份。在調(diào)用FB時,若沒有提供實參,則功能塊使用背景數(shù)據(jù)塊中的數(shù)值。操作系統(tǒng)在L堆棧中給FB的臨時變量分配存儲空間。 對于功能(FC),操作系統(tǒng)在L堆棧中給FC的臨時變量分配存儲空間。由于沒有背景數(shù)據(jù)塊,因而FC不能使用靜態(tài)

57、變量。輸入、輸出、I/O參數(shù)以指向?qū)崊⒌闹羔樞问酱鎯υ诓僮飨到y(tǒng)為參數(shù)傳遞而保留的額外空間中。 對于組織塊(OB)來說,其調(diào)用是由操作系統(tǒng)管理的,用戶不能參與。因此,OB只有定義在L堆棧中的臨時變量,局部變量可以是基本數(shù)據(jù)類型或復式數(shù)據(jù)類型,也可以是專門用于參數(shù)傳遞的所謂的“參數(shù)類型”。參數(shù)類型包括定時器、計數(shù)器、塊的地址或指針等,2.邏輯塊局部變量的數(shù)據(jù)類型,CPU提供塊堆棧(B堆棧)來存儲與處理被中斷塊的有關(guān)信息,3.邏輯塊的調(diào)用過程及內(nèi)存分配,局部數(shù)據(jù)堆棧簡稱L堆棧,是CPU中單獨的存儲器區(qū),可用來存儲邏輯塊的局部變量(包括OB的起始信息)、調(diào)用功能(FC)時要傳遞的實際參數(shù)、梯形圖程序中

58、的中間邏輯結(jié)果等??梢园次?、字節(jié)、字和雙字來存取。 塊堆棧簡稱B堆棧,是CPU系統(tǒng)內(nèi)存中的一部分,用來存儲被中斷的塊的類型、編號、優(yōu)先級和返回地址;中斷時打開的共享數(shù)據(jù)塊和背景數(shù)據(jù)塊的編號;臨時變量的指針(被中斷塊的L堆棧地址)。 中斷堆棧簡稱I堆棧,用來存儲當前累加器和地址寄存器的內(nèi)容、數(shù)據(jù)塊寄存器DB和DI的內(nèi)容、局域數(shù)據(jù)的指針、狀態(tài)字、MCR(主控繼電器)寄存器和B堆棧的指針,用戶程序使用的堆棧,當調(diào)用功能塊(FB)時,會有以下事件發(fā)生: 調(diào)用塊的地址和返回位置存儲在塊堆棧中,調(diào)用塊的臨時變量壓入L堆棧;數(shù)據(jù)塊DB寄存器內(nèi)容與DI寄存器內(nèi)容交換;新的數(shù)據(jù)塊地址裝入DI寄存器;被調(diào)用塊的實

59、參裝入DB和L堆棧上部;當功能塊FB結(jié)束時,先前塊的現(xiàn)場信息從塊堆棧中彈 出,臨時變量彈出L堆棧;DB和DI寄存器內(nèi)容交換。 當調(diào)用功能塊(FB)時,STEP 7并不一定要求給FB形參賦予實參,除非參數(shù)是復式數(shù)據(jù)類型的I/O形參或參數(shù)類型形參。如果沒有給FB的形參賦予實參,則功能塊(FB)就調(diào)用背景數(shù)據(jù)塊內(nèi)的數(shù)值,該數(shù)值是在功能塊(FB)的變量聲明表或背景數(shù)據(jù)塊內(nèi) 為形參所設(shè)置初始數(shù)值,調(diào)用功能塊(FB)時的堆棧操作,當調(diào)用功能(FC)時會有以下事件發(fā)生: 功能(FC)實參的指針存到調(diào)用塊的L堆棧;調(diào)用塊的地址和返回位置存儲在塊堆棧,調(diào)用塊的局部數(shù)據(jù)壓入L堆棧;功能(FC)存儲臨時變量的L堆棧

60、區(qū)被推入L堆棧上部;當被調(diào)用功能(FC)結(jié)束時,先前塊的信息存儲在塊堆棧 中,臨時變量彈出L堆棧。 因為功能(FC)不用背景數(shù)據(jù)塊,不能分配初始數(shù)值給 功能(FC)的局部數(shù)據(jù),所以必須給功能(FC)提供實參,調(diào)用功能(FC)時的堆棧操作,以功能(FC)調(diào)用為例,L堆棧操 作示意如圖所示,調(diào)用功能(FC)時的堆棧操作,對邏輯塊編程時必須編輯下列三個部分: 變量聲明:分別定義形參、靜態(tài)變量和臨時變量(FC塊中不包括靜態(tài)變量);確定各變量的聲明類型(Decl.)、變量名(Name)和數(shù)據(jù)類型(Data Type),還要為變量設(shè)置初始值(Initial Value)。如果需要還可為變量注釋(Comme

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論