九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

西門子PLC 學(xué)習(xí)教程

上傳人:仙*** 文檔編號:158364490 上傳時間:2022-10-04 格式:PPTX 頁數(shù):121 大?。?.96MB
收藏 版權(quán)申訴 舉報 下載
西門子PLC 學(xué)習(xí)教程_第1頁
第1頁 / 共121頁
西門子PLC 學(xué)習(xí)教程_第2頁
第2頁 / 共121頁
西門子PLC 學(xué)習(xí)教程_第3頁
第3頁 / 共121頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《西門子PLC 學(xué)習(xí)教程》由會員分享,可在線閱讀,更多相關(guān)《西門子PLC 學(xué)習(xí)教程(121頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、5.1 S7-300的程序結(jié)構(gòu) STEP7為設(shè)計程序提供三種方法,即線性化編程、模塊化編程和結(jié)構(gòu)化編程,如圖5.1。基于這些方法,可以選者最合適與你的應(yīng)用程序設(shè)計方法。圖5.1 STEP7 3種設(shè)計程序的方法第1頁/共121頁5.1 S7-300的程序結(jié)構(gòu)1、線性化編程 線性化編程類似于硬件繼電器控制電路,整個用戶程序放在循環(huán)控制組織塊OB1(主程序)中,循環(huán)掃描時不斷地依次執(zhí)行OB1中的全部指令,如圖5.2。這種方式的程序結(jié)構(gòu)簡單,不涉及功能塊、功能、數(shù)據(jù)塊、局域變量和中斷等比較復(fù)雜的概念,分析起來一目了然。這種結(jié)構(gòu)是用于編寫一些規(guī)模較小,運行過程比較簡單的控制程序。由于所有的指令都在一個塊

2、中,即使程序中的某些部分在大多數(shù)時候并不需要執(zhí)行,每個掃描周期都要執(zhí)行所有的指令,因此沒有有效地利用CPU。此外如果要求多次執(zhí)行相同或類似的操作,需要重復(fù)編寫程序。圖5.2線性編程第2頁/共121頁5.1 S7-300的程序結(jié)構(gòu)2、模塊化編程 程序被分為不同的邏輯塊,每個塊包含完成某些任務(wù)的邏輯指令,如圖5.3。分塊程序有更大的靈活性,適用于比較復(fù)雜、規(guī)模較大的控制工程的程序設(shè)計。組織塊OB1(即主程序)中的指令決定在什么情況下調(diào)用哪一個塊,功能和功能塊(即子程序)用來完成不同的過程任務(wù)。被調(diào)用的塊執(zhí)行完后,返回到OB1中程序塊的調(diào)用點,繼續(xù)執(zhí)行OB1。圖5.3模塊化編程 模塊化編程的程序被劃

3、分為若干個塊,易于幾個人同時對一個項目編程。由于只是在需要時才調(diào)用有關(guān)的程序塊,提高了CPU的利用率。第3頁/共121頁5.1 S7-300的程序結(jié)構(gòu)3、結(jié)構(gòu)化編程 結(jié)構(gòu)化編程將復(fù)雜的自動化任務(wù)分解為能夠反映過程的工藝、功能或可以反復(fù)使用的小任務(wù),這些任務(wù)由相應(yīng)的程序快(或稱邏輯塊)來表示,程序運行時所需的大量數(shù)據(jù)和變量存儲在數(shù)據(jù)塊中。結(jié)構(gòu)化程序比分塊程序有更大的靈活性、繼承性。適用于比較復(fù)雜、規(guī)模較大的控制工程的程序設(shè)計。某些程序塊可以用來實現(xiàn)相同或相似的功能。這些程序塊是相對獨立的,它們被OB1或別的程序塊調(diào)用,如圖5.4。圖5.4結(jié)構(gòu)化編程第4頁/共121頁5.2 程序塊類型 S7-30

4、0/400PLC的程序分系統(tǒng)程序和用戶程序。系統(tǒng)程序是協(xié)調(diào)PLC內(nèi)部事務(wù)的程序,與控制對象特定的任務(wù)無關(guān),在從經(jīng)銷商購買CPU硬件的時候,CPU里面本身就包含了系統(tǒng)程序。系統(tǒng)程序完成PLC的啟動/停止、I/O映像區(qū)的更新、用戶程序的調(diào)用、中斷的響應(yīng)、錯誤及通信處理等任務(wù)。用戶程序需要用戶使用STEP7編程軟件編寫程序,然后下載到CPU中,可以完成需要的特定控制任務(wù)。用戶程序包含用戶編寫的組織塊(OB)、FB、FC和系統(tǒng)提供的SFB(系統(tǒng)功能塊)與系統(tǒng)功能(SFC),被調(diào)用的塊是OB之外的邏輯塊。調(diào)用功能塊時需要為它指定一個背景塊,后者隨功能塊的調(diào)用而打開,在調(diào)用結(jié)束時自動關(guān)閉。圖5.5 STE

5、P 7調(diào)用塊的過程示意圖,OB1調(diào)用FB1,F(xiàn)B1調(diào)用FC1,應(yīng)按下面的順序創(chuàng)建塊:FC1、FB1及背景數(shù)據(jù)塊OB1,即編程時被調(diào)用的塊應(yīng)該是已經(jīng)存在的。第5頁/共121頁5.2 程序塊類型圖5.5塊調(diào)用的分層結(jié)構(gòu)第6頁/共121頁5.3 用戶定義的塊 STEP7將用戶編寫的程序和程序中所需要的數(shù)據(jù)放置在塊中,使單個的程序部件標(biāo)準(zhǔn)化。通過在塊內(nèi)或塊之間類似子程序的調(diào)用,使用戶程序結(jié)構(gòu)化,可以簡化程序組織,使程序易于修改、查錯和調(diào)試。塊結(jié)構(gòu)顯著增加了PLC程序的組織透明性、可理解性和易維護(hù)性。STEP7軟件中主要的各種塊的簡要說明見表5.1所示。表5.1邏輯塊和數(shù)據(jù)塊第7頁/共121頁5.3.1

6、 組織塊(OB)組織塊是CPU的操作系統(tǒng)與用戶程序的接口,由操作系統(tǒng)調(diào)用,用于控制掃描循環(huán)和中斷程序的執(zhí)行、PLC的啟動和錯誤處理等。OB與不同的CPU類型是相關(guān)的,某一型號的CPU支持哪些OB是確定的。例如,OB35和OB40可以在CPU315-2DP中使用,而OB36和OB41則不行。因此用戶只能編寫目標(biāo)CPU支持的OB。OB1是對應(yīng)于循環(huán)執(zhí)行的主程序的程序塊,它是STEP7程序的主干。其他大多數(shù)OB則對應(yīng)于不同的中斷處理程序(另外還有啟動程序和背景程序等非中斷類的OB)。與每一個OB緊密相連的是它對應(yīng)的類型和優(yōu)先級。OB的類型指出了它的功能,例如延時中斷、硬件中斷等;OB的優(yōu)先級則用于表

7、明一個OB是否可以被另外一個OB中斷,優(yōu)先級較低的OB總是可以被優(yōu)先級較高的OB中斷。在S7系列CPU中,背景循環(huán)OB90的優(yōu)先級最低,其次就是OB1,它的優(yōu)先級是1,因此OB1通??偸强梢员黄渌腛B中斷。對于S7-300的CPU各個OB的優(yōu)先級都是固定的,用戶無法更改。第8頁/共121頁5.3.1 組織塊(OB)SIMATIC S7系列CPU的全部組織塊的資源及優(yōu)先權(quán)等級見表5.2。不同的CPU模板具有不同的功能,因此并不是任何CPU模板都具有表5.1所示的全部組織塊資源,如CPU312IFM只有OB1,OB40和OB100。表5.2 組織塊第9頁/共121頁5.3.1 組織塊(OB)表5

8、.2 組織塊第10頁/共121頁1、OB1(循環(huán)組織塊,又稱主程序)S7 CPU的操作系統(tǒng)定期執(zhí)行OB1。當(dāng)操作系統(tǒng)完成啟動后,將啟動循環(huán)執(zhí)行OB1。在OB1中可以調(diào)用其他功能(FC、SFC)和功能塊(FB、SFB)。執(zhí)行OB1后,操作系統(tǒng)發(fā)送全局?jǐn)?shù)據(jù)。重新啟動OB1之前,操作系統(tǒng)會將過程映像輸出表寫入輸出模塊中、更新過程映像輸入表以及接收CPU的任何全局?jǐn)?shù)據(jù)。操作系統(tǒng)在運行期受監(jiān)視的所有OB模塊中,OB1的優(yōu)先級最低,也就是除OB90之外的所有OB塊均可中斷OB1的執(zhí)行。S7專門有監(jiān)視運行OB1的掃描時間的時間監(jiān)視器,最大掃描時間的默認(rèn)為150ms。用戶編程時可以使用SFC43“RE_TRI

9、GR”來重新啟動時間監(jiān)視。如果用戶程序超出了OB1的最大掃描時間,則操作系統(tǒng)將調(diào)用OB80(時間錯誤OB塊),如果沒有發(fā)現(xiàn)OB80,則CPU將轉(zhuǎn)為STOP模式。除了監(jiān)視最大掃描時間外,還可以保證最小掃描時間。操作系統(tǒng)將延遲啟動新循環(huán)(將過程映像輸出表寫入輸出模塊中),直至達(dá)到最小掃描時間為止。在OB1中系統(tǒng)定義了如表5.3所示的本地數(shù)據(jù),其地址從L0.0L19.7,地址從L20.0以上的本地數(shù)據(jù)允許用戶定義。第11頁/共121頁5.3.1 組織塊(OB)表5.3 OB1中系統(tǒng)定義的本地數(shù)據(jù) 符號名稱符號名稱數(shù)據(jù)類型數(shù)據(jù)類型地址地址說明說明OB1_EV_CLASSBYTE0.003位位=1事件等

10、級;事件等級;47位是標(biāo)識,位是標(biāo)識,=1表示表示OB1被激活被激活OB1_SCAN_1BYTE1.0B#16#01:完成暖啟動完成暖啟動 B#16#02:完成熱啟動完成熱啟動B#16#03:完成主循環(huán)完成主循環(huán) B#16#04:完成冷啟完成冷啟動動B#16#05:主站主站-保留站切換和停止上一保留站切換和停止上一主站之后新主站主站之后新主站CPU的首個的首個OB1循環(huán)循環(huán)OB1_PRIORITYBYTE2.0優(yōu)先級優(yōu)先級1OB1_OB_NUMBERBYTE3.0OB編號(編號(01)OB1_RESERVERD_1BYTE4.0保留保留OB1_RESERVERD_2BYTE5.0保留保留OB1

11、_PREV_CYCLEINT6.0上一次掃描的運行時間(上一次掃描的運行時間(ms)OB1_MIN_CYCLEINT8.0自上次啟動后的最小周期(自上次啟動后的最小周期(ms)OB1_MAX_CYCLEINT10.0從上次啟動后的最大周期(從上次啟動后的最大周期(ms)OB1_DATE_TIMEDATE_AND_TIME12.0調(diào)用調(diào)用OB時的時的DATE_AND_TIME第12頁/共121頁2、時間中斷組織塊(OB10OB17)時間中斷組織塊可以單次運行,也可以定期運行:每分鐘、每小時、每天、每月、每個月末。對于每月執(zhí)行的時間中斷OB,只可將1、2、28日作為起始日期。要啟動時間中斷,必須先

12、設(shè)置中斷,然后再將其激活。有以下4種可能的啟動方式:1)自動啟動時間中斷。一旦使用STEP7設(shè)置并激活了時間中斷,即自動啟動時間中斷;2)使用STEP7設(shè)置時間中斷,然后通過調(diào)用程序中的SFC30“ACT_TINT”來激活它;3)通過調(diào)用SFC28“SET_TINT”來設(shè)置時間中斷,然后通過調(diào)用SFC30“ACT_TINT”來激活它;4)使用SFC39SFC42禁用或延遲和重新啟用時間中斷。由于時間中斷僅以指定的時間間隔發(fā)生,因此在執(zhí)行用戶程序期間,某些條件可能會影響OB的操作。表5.4列出了其中的一些條件,并說明了該條件對執(zhí)行時間中斷OB的影響。在OB10OB17中系統(tǒng)定義了如表5.5(表中

13、的符號以O(shè)B10為例)所示的本地數(shù)據(jù),其中地址從L0.0L19.7,地址從L20.0以上的本地數(shù)據(jù)允許用戶定義。第13頁/共121頁表5.4 影響時間中斷OB的條件條件條件 結(jié)果結(jié)果 用戶程序調(diào)用用戶程序調(diào)用SFC29(CAN_TINT)并取消并取消時間中斷時間中斷 操作系統(tǒng)清除了時間中斷的啟動事件。如果需要執(zhí)行操作系統(tǒng)清除了時間中斷的啟動事件。如果需要執(zhí)行OB,必須再次必須再次設(shè)置啟動事件并再次調(diào)用設(shè)置啟動事件并再次調(diào)用OB之前激活它之前激活它 用戶程序試圖激活時間中斷用戶程序試圖激活時間中斷OB,但未,但未將將OB加載到加載到CPU中中操作系統(tǒng)調(diào)用操作系統(tǒng)調(diào)用OB85.如果如果OB85尚未

14、編程(裝載到尚未編程(裝載到CPU中),則中),則CPU將轉(zhuǎn)為將轉(zhuǎn)為STOP模式模式當(dāng)同步或更正當(dāng)同步或更正CPU的系統(tǒng)時鐘時,用的系統(tǒng)時鐘時,用戶提前設(shè)置了時間并跳過時間戶提前設(shè)置了時間并跳過時間OB的啟動事件日期或時間的啟動事件日期或時間操作系統(tǒng)調(diào)用操作系統(tǒng)調(diào)用OB80并對時間并對時間OB的編號和的編號和OB80中的啟動事件信息中的啟動事件信息進(jìn)行編碼。隨后操作系統(tǒng)將運行一次時間進(jìn)行編碼。隨后操作系統(tǒng)將運行一次時間OB,而不管本應(yīng)執(zhí),而不管本應(yīng)執(zhí)行此行此OB的次數(shù)。的次數(shù)。OB80的啟動事件信息給出了第一次跳過時間的啟動事件信息給出了第一次跳過時間OB的的DATE_AND_TIME當(dāng)同步或

15、更正當(dāng)同步或更正CPU的系統(tǒng)時鐘時,推的系統(tǒng)時鐘時,推后設(shè)置了時間以使后設(shè)置了時間以使OB的啟動事件的啟動事件日期或時間得以修復(fù)日期或時間得以修復(fù)S7-400CPU和和CPU318:如果在推后設(shè)置時鐘之前已激活了時間:如果在推后設(shè)置時鐘之前已激活了時間OB,則不會再次調(diào)用它。則不會再次調(diào)用它。S7-300CPU:執(zhí)行時間:執(zhí)行時間OBCPU通過暖啟動或冷啟動運行通過暖啟動或冷啟動運行有有SFC組態(tài)的所有時間組態(tài)的所有時間OB會被改回在會被改回在STEP7中指定的組態(tài)。如果已中指定的組態(tài)。如果已為相應(yīng)的為相應(yīng)的OB的單次啟動組態(tài)了時間中斷,使用的單次啟動組態(tài)了時間中斷,使用STEP7對其進(jìn)對其進(jìn)

16、行了設(shè)置,并將其激活,則當(dāng)所有組態(tài)的啟動時間為已過去行了設(shè)置,并將其激活,則當(dāng)所有組態(tài)的啟動時間為已過去的時間(相對于的時間(相對于CPU的實時時鐘)時,會在暖啟動或冷重啟的實時時鐘)時,會在暖啟動或冷重啟操作系統(tǒng)后調(diào)用一次操作系統(tǒng)后調(diào)用一次OB當(dāng)發(fā)生下一時間間隔的啟動事件時,當(dāng)發(fā)生下一時間間隔的啟動事件時,仍執(zhí)行時間仍執(zhí)行時間OB操作系統(tǒng)調(diào)用操作系統(tǒng)調(diào)用OB80.如果如果OB80沒有編程,則沒有編程,則CPU轉(zhuǎn)為轉(zhuǎn)為STOP模式。模式。如果裝載了如果裝載了OB80,則會首先執(zhí)行,則會首先執(zhí)行OB80和時間中斷和時間中斷OB,然后,然后再執(zhí)行請求中斷再執(zhí)行請求中斷第14頁/共121頁表5.5

17、OB10中系統(tǒng)定義的本地數(shù)據(jù)符號名稱符號名稱數(shù)據(jù)類型數(shù)據(jù)類型地址地址說明說明OB10_EV_CLASSBYTE0.003位位=1事件等級;事件等級;47位是標(biāo)識,位是標(biāo)識,=1表示表示OB激激活活OB10_STRT_INFOBYTE1.0B#16#11:OB10的啟動請求的啟動請求(B#16#12:OB11的啟動請求)的啟動請求)(B#16#18:OB17的啟動請求)的啟動請求)OB10_PRIORITYBYTE2.0分配的優(yōu)先級,缺省值為分配的優(yōu)先級,缺省值為2OB10_OB_NUMBERBYTE3.0OB編號(編號(1017)OB10_RESERVERD_1BYTE4.0保留保留OB10_

18、RESERVERD_2BYTE5.0保留保留OB10_PREIOD_EXEWORD6.0OB以指定的時間間隔執(zhí)行以指定的時間間隔執(zhí)行W#16#0000:單次單次 W#16#0201:每分鐘一次每分鐘一次W#16#0401:每小時一次每小時一次 W#16#1001:每天一每天一次次W#16#1201:每周一次每周一次 W#16#1401:每月一每月一次次W#16#1801:每年一次每年一次 W#16#2001:月末月末 OB10_RESERVERD_3INT8.0保留保留OB10_RESERVERD_4INT10.0保留保留OB10_DATE_TIMEDATE_AND_TIME12.0調(diào)用調(diào)用O

19、B時的時的DATE_AND_TIME第15頁/共121頁5.3.1 組織塊(OB)【例5-1】使用STEP7設(shè)置并激活時間中斷。首先建立一個完整項目,如圖5.6所示,然后單擊項目中的“SIMATIC300(1)”,打開右邊的硬件圖表,如圖5.7所示,將自動彈出硬件組態(tài)畫面,如圖5.8所示,把電源和CPU等放到機架相應(yīng)的位置上。圖5.6建立一個項目并完成項目中的目錄第16頁/共121頁5.3.1 組織塊(OB)圖5.7打開硬件組態(tài)畫面 在硬件組態(tài)畫面,雙擊機架上的CPU,如圖5.8所示,將彈出CPU屬性畫面。在CPU屬性畫面點擊“時刻中斷”,打開時間中斷設(shè)置畫面,如圖5.9所示選擇“激活”,要求

20、每分鐘執(zhí)行并寫上執(zhí)行OB10的日期和時間,圖中的開始日期時間是2008年10月2日10時00分,然后點擊“確定”。最后在硬件組態(tài)畫面點擊保存和編譯快捷圖標(biāo),如圖5.10所示完成保存和編譯。第17頁/共121頁圖5.8硬件組態(tài)畫面圖5.9在CPU屬性欄設(shè)置OB10時間中斷第18頁/共121頁5.3.1 組織塊(OB)圖5.10把硬件組態(tài)信息編譯并保存 在管理畫面點擊“塊”,然后在右邊的目錄下點擊鼠標(biāo)右鍵,在彈出的畫面中點擊“插入新對象”,選擇添加“組織塊”,如圖5.11所示。在生成組織塊的過程中,選擇組織塊OB10及寫上附加信息,如圖5.12所示,然后點擊“確定”。第19頁/共121頁5.3.1

21、 組織塊(OB)圖5.11 在管理畫面插入OB10第20頁/共121頁5.3.1 組織塊(OB)圖5.12在生成OB10過程中寫上附加信息 在管理畫面塊的目錄中雙擊OB10的圖標(biāo),打開OB10編程界面,如圖5.13所示。在OB10里編程如圖5.14所示的程序,然后保存。第21頁/共121頁圖5.13在管理畫面打開OB10圖5.14在OB10里編寫的程序第22頁/共121頁5.3.1 組織塊(OB)在管理畫面的目錄塊中點擊“SIMATIC 300(1)”,然后點擊下載快捷圖標(biāo),如圖5.15所示,把整個項目的信息下載到CPU中。圖5.15把整個項目(站)的信息下載到CPU中第23頁/共121頁5.

22、3.1 組織塊(OB)最后把CPU工作方式選擇到運行模式,監(jiān)控OB10的程序狀態(tài),可以看到每分鐘MW10的數(shù)值會加1,如圖5.16所示。圖5.16在CPU運行狀態(tài)下監(jiān)控OB10的程序狀態(tài)第24頁/共121頁5.3.1 組織塊(OB)【例5-2】通過調(diào)用SFC28“SET_TINT”來設(shè)置時間中斷,然后通過調(diào)用SFC30“ACT_TINT”來激活它。這個例子沒看懂 首先建立一個項目并完成項目中的目錄,然后進(jìn)行硬件配置并把硬件配置的信息保存并編譯。在管理畫面塊目錄中插入OB10,如圖5.17所示。在OB10的生成過程中,寫上附加信息,如圖5.18所示。圖5.17在管理畫面里插入OB10第25頁/共

23、121頁5.3.1 組織塊(OB)圖5.18在生成OB10的過程中寫上附加信息 在管理畫面的塊目錄里打開OB10,如圖5.19所示。在OB10里編寫程序,如圖5.20所示,然后保存。第26頁/共121頁圖5.19在管理畫面打開OB10圖5.20在OB10里編寫的程序第27頁/共121頁5.3.1 組織塊(OB)在管理畫面的塊目錄里打開OB1,如圖5.21所示。在OB1里編寫程序,如圖5.22所示,然后保存。圖5.21在管理畫面打開OB1第28頁/共121頁5.3.1 組織塊(OB)第29頁/共121頁5.3.1 組織塊(OB)第30頁/共121頁5.3.1 組織塊(OB)第31頁/共121頁5

24、.3.1 組織塊(OB)第32頁/共121頁5.3.1 組織塊(OB)在管理畫面的塊目錄中插入OB80并打開OB80。在OB80里編寫如圖5.23所示程序并保存。圖5.23 在OB80里編寫的程序第33頁/共121頁5.3.1 組織塊(OB)圖5.24是完成OB1和OB80的程序后在管理畫面的塊目錄中的內(nèi)容。然后在管理畫面把整個目錄信息下載到CPU中。圖5.24 管理畫面中塊的信息第34頁/共121頁5.3.1 組織塊(OB)在調(diào)試時候重點監(jiān)控M103.2和M103.4的狀態(tài)。運行CPU,可以看到M103.4=1,表示OB10已經(jīng)下載到CPU,如圖5.25(a);當(dāng)接通M0.0時,可以看到M1

25、03.2=1,表示激活了OB10,并看到MW10每分鐘加3;當(dāng)接通M0.4時,看到M103.2=0,表示OB10已經(jīng)被取消激活,MW10停止加3,如圖5.25(b)。(a)第35頁/共121頁5.3.1 組織塊(OB)(b)圖5.25 PLCSIM仿真畫面第36頁/共121頁5.3.1 組織塊(OB)3、延時中斷組織塊(OB20OB23)S7提供多達(dá)4個在指定延遲后執(zhí)行的OB(OB20OB23)。每個延時OB均可通過調(diào)用SFC32(SRT_DINT)來啟動。延遲時間是SFC32的一個輸入?yún)?shù)。當(dāng)用戶程序調(diào)用SFC32(SRT_DINT)時,需要提供OB編號、延遲時間和用戶專用的標(biāo)識符。經(jīng)過指定

26、的延遲后,相應(yīng)的OB將會啟動。可以使用SFC33取消尚未啟動的延時中斷,可以使用SFC34訪問延時中斷組織塊的狀態(tài),可以使用SFC39SFC42來禁用或延遲并重新使能延遲中斷。只有當(dāng)CPU處于RUN模式時才會執(zhí)行延時OB。暖啟動或冷啟動將清除延時OB的所有啟動事件。第37頁/共121頁5.3.1 組織塊(OB)延遲時間(單位為ms)和OB編號一起傳送給SFC32,時間到期后,操作系統(tǒng)將啟動相應(yīng)的OB。設(shè)置延時中斷,最基本的步驟是:調(diào)用SFC32(SRT_DINT),并將延時中斷OB作為用戶程序的一部分下載到CPU。如果發(fā)生了操作系統(tǒng)試圖啟動一個尚未裝載的OB,并且用戶在調(diào)用SFC32(SRT_

27、DINT)時指定了其編號,或在完全執(zhí)行延時OB之前發(fā)生延時中斷的下一個啟動事件時,操作系統(tǒng)將調(diào)用異步錯誤OB。在OB20OB23中定義了如表5.6(表中的符號以O(shè)B20為例)所示的本地數(shù)據(jù),其地址從L0.0L19.7,地址從L20.0以上的本地數(shù)據(jù)允許用戶定義。第38頁/共121頁表5.6 OB20中系統(tǒng)定義的本地數(shù)據(jù)符號名稱符號名稱數(shù)據(jù)類型數(shù)據(jù)類型地址地址說明說明OB20_EV_CLASSBYTE0.003位位=1事件等級;事件等級;47位是標(biāo)識,位是標(biāo)識,=1表示表示OB激活激活OB20_STRT_INFOBYTE1.0 B#16#21:OB20的啟動請求的啟動請求(B#16#22:OB2

28、1的啟動請求)的啟動請求)(B#16#23:OB22的啟動請求)的啟動請求)(B#16#24:OB23的啟動請求)的啟動請求)OB20_PRIORITYBYTE2.0分配的優(yōu)先級,缺省值分配的優(yōu)先級,缺省值OB20OB23分別是分別是36OB20_OB_NUMBERBYTE3.0OB編號(編號(2023)OB20_RESERVERD_1BYTE4.0保留保留OB20_RESERVERD_2BYTE5.0保留保留OB20_SIGNWORD6.0用戶用戶ID:來自調(diào)用:來自調(diào)用SFC32(SRT_DINT)的輸入?yún)?shù)的輸入?yún)?shù)SIGNOB20_DTIMETIME8.0已組態(tài)的延遲時間已組態(tài)的延遲時

29、間(單位為(單位為ms)OB20_DATE_TIMEDATE_AND_TIME12.0調(diào)用調(diào)用OB時的時的DATE_AND_TIME第39頁/共121頁5.3.1 組織塊(OB)【例5-3】延時中斷組織塊例子:通過調(diào)用SFC32來設(shè)置延時中斷,通過調(diào)用SFC33來取消延時中斷。這個例子沒看懂 首先建立完整的項目目錄,再完成硬件組態(tài)并編譯保存,如圖5.26所示。圖5.26 完整硬件組態(tài)第40頁/共121頁5.3.1 組織塊(OB)在管理畫面的塊目錄中打開OB1,在OB1里編寫如圖5.27所示的程序并保存。第41頁/共121頁第42頁/共121頁5.3.1 組織塊(OB)第43頁/共121頁5.3

30、.1 組織塊(OB)第44頁/共121頁圖5.27 在OB1里編寫的程序 在管理畫面的目錄中插入OB20,在OB20里編寫如圖5.28所示程序并保存;在管理畫面的塊目錄中插入OB85,在OB85里編寫如圖5.29所示程序并保存。完成OB1、OB20和OB85后管理畫面的塊目錄如圖5.30所示。圖5.28在OB20里編寫程序 圖5.29在OB85里編寫的程序 第45頁/共121頁圖5.30完成OB1、OB20和OB85后管理畫面的塊目錄 最后在管理畫面里把延時中斷的整個項目下載到CPU,調(diào)試時注意監(jiān)控M17.2和M17.4的狀態(tài)。當(dāng)把CPU扳動到運行模式時,可以看到M17.4=1,說明OB20已

31、經(jīng)下載到CPU中。當(dāng)接通M0.1啟動延時中斷時,M17.2=1;當(dāng)延時時間到,Q0.0=1。當(dāng)接通M0.3取消延時中斷或延時時間到后,M17.2=0。第46頁/共121頁5.3.1 組織塊(OB)4、循環(huán)中斷組織塊(OB30OB38)S7提供了9個循環(huán)中斷OB(OB30OB38),可以指定固定時間間隔來中斷用戶程序。循環(huán)中斷OB的等距啟動時間是由時間間隔和相位偏移量決定的。用戶編寫程序時,必須確保每個循環(huán)中斷OB的運行時間遠(yuǎn)遠(yuǎn)小于其時間間隔。如果因時間間隔已到期,在預(yù)期的再次執(zhí)行前未完全執(zhí)行循環(huán)中斷OB,則啟動時間錯誤OB80,稍后將執(zhí)行導(dǎo)致錯誤的循環(huán)中斷。在編寫程序時如果有多個循環(huán)中斷OB,

32、設(shè)置要求循環(huán)中斷的時間間隔又成整數(shù)倍,那么有可能會出現(xiàn)處理循環(huán)中斷的時間過長而引起超出掃描周期時間錯誤。為了避免這種情況,最好定義一個偏移量時間,偏移量時間務(wù)必要小于間隔時間。偏移量時間使循環(huán)間隔時間已到,延時偏移量的時間再循環(huán)中斷,偏移量時間不會影響循環(huán)中斷的周期。用戶編寫程序時可使用SFC39SFC42來禁用或延遲,并重新啟動循環(huán)中斷。使用SFC39來取消激活循環(huán)中斷,使用SFC40用來激活循環(huán)中斷。在OB30OB38中系統(tǒng)定義了如表5.7(表中的符號以O(shè)B35為例)所示的本地數(shù)據(jù),其地址從L0.0L19.7,地址從L20.0以上的本地數(shù)據(jù)允許用戶定義。第47頁/共121頁表5.7 OB3

33、5中系統(tǒng)定義的本地數(shù)據(jù)符號名稱符號名稱數(shù)據(jù)類型數(shù)據(jù)類型地址地址說明說明OB35_EV_CLASSBYTE0.0事件等級和標(biāo)識符事件等級和標(biāo)識符B#16#11:中斷處于激活狀態(tài)中斷處于激活狀態(tài)OB35_STRT_INFOBYTE1.0B#16#30:具有特殊標(biāo)準(zhǔn)的循環(huán)中斷具有特殊標(biāo)準(zhǔn)的循環(huán)中斷OB的請求(僅的請求(僅適用于適用于H-CPU,且僅當(dāng)對其進(jìn)行了明確組態(tài),且僅當(dāng)對其進(jìn)行了明確組態(tài)后)后)B#16#31:OB30的啟動請求的啟動請求B#16#39:OB38B#16#39:OB38的啟動請求的啟動請求 OB35_PRIORITYBYTE2.0分配的優(yōu)先級,缺省值分配的優(yōu)先級,缺省值OB30

34、OB38分別是分別是715OB35_OB_NUMBERBYTE3.0OB編號(編號(3038)OB35_RESERVERD_1BYTE4.0保留保留OB35_RESERVERD_2BYTE5.0保留保留OB35_PHASE_OFFSETWORD6.0相位偏移量(單位:相位偏移量(單位:ms)OB35_RESERVERD_3INT8.0保留保留OB35_EXC_FREQINT10.0時間間隔時間間隔(單位為(單位為ms)OB35_DATE_TIMEDATE_AND_TIME12.0調(diào)用調(diào)用OB時的時的DATE_AND_TIME第48頁/共121頁5.3.1 組織塊(OB)【例5-4】循環(huán)中斷組織

35、塊例子:通過STEP7設(shè)置循環(huán)中斷。首先完成項目的所有目錄。接著在管理畫面打開硬件組態(tài)畫面。在硬件組態(tài)畫面,雙擊機架上的CPU,自動彈出CPU屬性設(shè)置畫面。在CPU屬性設(shè)置畫面打開周期性設(shè)置畫面,設(shè)置OB35循環(huán)中斷執(zhí)行時間為1000ms,如圖5.31所示,然后點擊確定。圖5.31完成CPU屬性中周期性中斷設(shè)置第49頁/共121頁5.3.1 組織塊(OB)在管理畫面的塊目錄里插入OB35,打開OB35編寫如圖5.32所示的程序并保存。圖5.32 在OB35里編寫的程序 最后在管理畫面把整個項目的信息下載到CPU中,運行PLC,監(jiān)控OB35程序狀態(tài),可以看到MW10的數(shù)字每一秒中加2,如圖5.3

36、3所示,表示OB35被激活了。第50頁/共121頁5.3.1 組織塊(OB)圖5.33 運行CPU監(jiān)控OB35程序狀態(tài)第51頁/共121頁5.3.1 組織塊(OB)【例5-5】循環(huán)中斷組織塊例子:通過調(diào)用SFC40來設(shè)置循環(huán)中斷,通過調(diào)用SFC39來取消循環(huán)中斷。在循環(huán)中斷組織塊例【5-4】的基礎(chǔ)上,在管理畫面的塊目錄里打開OB1,并在OB1編寫如圖5.34所示程序,然后保存。第52頁/共121頁圖5.34在OB1里編寫的程序 最后在管理畫面把整個項目的信息下載到CPU中,運行PLC,監(jiān)控OB35程序狀態(tài),可以看到MW10的數(shù)值每秒鐘加2;當(dāng)接通M0.0時,監(jiān)控MW10的數(shù)值不再增加了,說明O

37、B35循環(huán)中斷被取消激活了;當(dāng)接通M0.2時,可以看到MW10的數(shù)值 又恢復(fù)了每秒鐘加2,說明OB35循環(huán)中斷被重新激活了。第53頁/共121頁5.3.1 組織塊(OB)5、硬件中斷組織塊(OB40OB47)S7提供了8個獨立的硬件中斷,每一中斷都具有自己的OB。硬件中斷組織塊是對具有中斷能力的數(shù)字量信號模塊(SM)、通信處理(CP)和功能模塊(FM)信號變化進(jìn)行中斷響應(yīng)。對于具有中斷能力的數(shù)字信號模塊(SM),可以使用STEP7軟件在硬件組態(tài)設(shè)置硬件中斷,也可以使用SFC55SFC57為模塊的硬件中斷分配參數(shù)來實現(xiàn)設(shè)置硬件中斷。對具有中斷能力的通信處理器(CP)和功能模塊(FM),可以使用S

38、TEP7軟件在硬件組態(tài)時按照向?qū)υ捒蛟O(shè)置相應(yīng)的參數(shù)來實現(xiàn)設(shè)置中斷。在OB40OB47中系統(tǒng)定義了如表5.8(表中的符號以O(shè)B40為例。)所示的本地數(shù)據(jù),其地址從L0.0L19.7,地址從L20.0以上的本地數(shù)據(jù)允許用戶定義。第54頁/共121頁表5.8 OB40中系統(tǒng)定義的本地數(shù)據(jù)符號名稱符號名稱數(shù)據(jù)類型數(shù)據(jù)類型地址地址說明說明OB40_EV_CLASSBYTE0.0事件等級和標(biāo)識符事件等級和標(biāo)識符B#16#11:中斷處于激活狀態(tài)中斷處于激活狀態(tài)OB40_STRT_INFOBYTE1.0B#16#41:通過中斷線通過中斷線1中斷中斷B#16#42:通過中斷線通過中斷線2中斷(僅限中斷(僅限S

39、7-400)B#16#43:通過中斷線通過中斷線3中斷(僅限中斷(僅限S7-400)B#16#44:通過中斷線通過中斷線4中斷(僅限中斷(僅限S7-400)B#16#45:通過通過PC觸發(fā)中斷觸發(fā)中斷OB40_PRIORITYBYTE2.0分配的優(yōu)先級,缺省值分配的優(yōu)先級,缺省值OB40OB47分別是分別是1623OB40_OB_NUMBERBYTE3.0OB編號(編號(4047)OB40_RESERVERD_1BYTE4.0保留保留OB40_IO_FLAGBYTE5.0輸入模塊:輸入模塊:B#16#54輸出模塊:輸出模塊:B#16#55OB40_MDL_ADDRWORD6.0觸發(fā)中斷的模塊的

40、邏輯地址(字節(jié)為單位)觸發(fā)中斷的模塊的邏輯地址(字節(jié)為單位)OB40_POINT_ADDRINT8.0對于數(shù)字模塊:模塊上具有輸入狀態(tài)的位域(位對于數(shù)字模塊:模塊上具有輸入狀態(tài)的位域(位0對應(yīng)于對應(yīng)于第一個輸入)可在給定模塊的說明中找到為模塊中的第一個輸入)可在給定模塊的說明中找到為模塊中的通道分配從通道分配從OB40_POINT_ADDR起始的位。起始的位。對于模擬模塊:位域,指出哪個通道已超出哪條限制對于模擬模塊:位域,指出哪個通道已超出哪條限制對于對于CP或或IM:模塊中斷狀態(tài)(與用戶程序無關(guān)):模塊中斷狀態(tài)(與用戶程序無關(guān))OB35_DATE_TIMEDATE_AND_TIME12.0

41、調(diào)用調(diào)用OB時的時的DATE_AND_TIME第55頁/共121頁5.3.1 組織塊(OB)6、同步循環(huán)組織塊(OB61OB65)同步循環(huán)中斷OB是通過循環(huán)中斷選擇在具有DP循環(huán)的同步循環(huán)中啟動的程序。OB61充當(dāng)同步循環(huán)中斷TSAL1的接口OB。可以將OB61的優(yōu)先級設(shè)置為0(取消選定OB)和226之間的數(shù)。在使用L或T命令直接訪問以及使用SFC14“DPRD_DAT”和SFC15“DPWR_DAT”時,請避免訪問已為其過程映像區(qū)分配到OB61OB65的連接的I/O區(qū)域。在OB61OB65中系統(tǒng)定義了如表5.9(表中的符號以O(shè)B61為例)所示的本地數(shù)據(jù),其地址從L0.0L19.7,地址L20

42、.0以上的本地數(shù)據(jù)允許用戶定義。第56頁/共121頁5.3.1 組織塊(OB)表5.9 OB61中系統(tǒng)定義的本地數(shù)據(jù)符號名稱符號名稱數(shù)據(jù)類型數(shù)據(jù)類型地址地址說明說明OB61_EV_CLASSBYTE0.0事件等級和標(biāo)識符事件等級和標(biāo)識符B#16#11:中斷處于激活狀中斷處于激活狀態(tài)態(tài)OB61_STRT_INFBYTE1.0B#16#64:OB61的啟動請求的啟動請求B#16#65:OB62的啟動請求的啟動請求B#16#66:OB63的啟動請求的啟動請求B#16#67:OB64的啟動請求的啟動請求OB61_PRIORITYBYTE2.0分配的優(yōu)先級:缺省值為分配的優(yōu)先級:缺省值為25OB61_O

43、B_NUMBERBYTE3.0OB編號(編號(6164)OB61_RESERVERD_1BYTE4.0保留保留OB61_RESERVERD_2BYTE5.0保留保留OB61_GC_VIOLBOOL6.0GC錯誤錯誤OB61_FIRSTBOOL6.1啟動或停止?fàn)顟B(tài)后的首次使用啟動或停止?fàn)顟B(tài)后的首次使用第57頁/共121頁5.3.1 組織塊(OB)續(xù)表5.9 OB61中系統(tǒng)定義的本地數(shù)據(jù)OB61_MISSED_EXECBYTE7.0自上次執(zhí)行自上次執(zhí)行OB61以來啟動以來啟動OB61失敗的次數(shù)失敗的次數(shù)OB61_DP_IDBYTE 8.0同步同步DP主站系統(tǒng)的主站系統(tǒng)的DP主站系統(tǒng)主站系統(tǒng)IDOB

44、61_RESERVERD_3BYTE9.0保留保留OB61_RESERVERD_4WORD 10.0保留保留OB61_DATE_TIMEDATE_AND_TIME12.0調(diào)用調(diào)用OB時的時的DATE_AND_TIME 技術(shù)同步中斷OB(OB65)。技術(shù)同步中斷OB65僅適用于Technology CPU。通過技術(shù)同步中斷可選擇在更新技術(shù)塊的同時啟動程序。技術(shù)同步中斷OB在更新技術(shù)塊后啟動。技術(shù)同步中斷OB的優(yōu)先級固定設(shè)置為25,不能對其進(jìn)行更改。在OB65中系統(tǒng)定義了如表5.10所示的本地數(shù)據(jù),其地址從L0.0L19.7,地址從L20.0以上的本地數(shù)據(jù)允許用戶定義。第58頁/共121頁5.3.

45、1 組織塊(OB)表5.10 OB65中系統(tǒng)定義的本地數(shù)據(jù) 符號名稱符號名稱數(shù)據(jù)類型數(shù)據(jù)類型地址地址說明說明OB65_EV_CLASSBYTE0.0事件等級和標(biāo)識符:事件等級和標(biāo)識符:B#16#11:進(jìn)入事件,事件等級進(jìn)入事件,事件等級1OB65_STRT_INFBYTE1.0B#16#6A:OB65的啟動請求的啟動請求OB65_PRIORITYBYTE2.0分配的優(yōu)先級:分配的優(yōu)先級:25(固定設(shè)置)(固定設(shè)置)OB65_OB_NUMBERBYTE3.0OB編號(編號(65)OB65_RESERVERD_1BYTE4.0保留保留OB65_RESERVERD_2BYTE5.0保留保留OB65_

46、RESERVERD_3BOOL6.0保留保留OB65_FIRSTBOOL6.1啟動后的首次使用啟動后的首次使用OB65OB65_MISSED_EXECBYTE7.0自上次執(zhí)行自上次執(zhí)行OB65以來啟動以來啟動OB65失敗的次數(shù)失敗的次數(shù)OB65_RESERVERD_4BYTE8.0保留保留OB65_RESERVERD_5BYTE9.0保留保留OB65_RESERVERD_6WORD 10.0保留保留OB65_DATE_TIMEDATE_AND_TIME12.0調(diào)用調(diào)用OB時的時的DATE_AND_TIME第59頁/共121頁5.3.1 組織塊(OB)7、錯誤處理組織塊 當(dāng)系統(tǒng)程序可以檢測下列錯

47、誤:不正確的CPU功能、系統(tǒng)程序執(zhí)行中的錯誤、用戶程序中的錯誤和I/O中的錯誤。根據(jù)錯誤類型的不同,CPU設(shè)置為進(jìn)入STOP模式或調(diào)用一個錯誤處理OB。當(dāng)CPU檢測到錯誤時,會調(diào)用適當(dāng)?shù)慕M織塊,見表5.11。如果沒有相應(yīng)的錯誤處理OB,CPU將進(jìn)入STOP模式。用戶可以在錯誤處理OB中編寫如何處理這種錯誤的程序,以減小或消除錯誤的影響。為避免發(fā)生某種錯誤時CPU進(jìn)入停機,可以在CPU中建立一個對應(yīng)的空的組織塊。用戶可以利用OB中的變量聲明表提供的信息來判別錯誤的類型。根據(jù)S7 CPU檢測到并且用戶可以通過組織塊對其進(jìn)行處理的錯誤分為異步錯誤和同步錯誤。異步錯誤是與PLC的硬件或操作系統(tǒng)密切相關(guān)

48、的錯誤,與程序執(zhí)行無關(guān)。異步錯誤的后果一般都比較嚴(yán)重。異步錯誤對應(yīng)的組織塊為OB70OB73和OB80OB87,有最高的優(yōu)先級。操作系統(tǒng)檢測到一個異步錯誤時,將啟動相應(yīng)的OB。第60頁/共121頁5.3.1 組織塊(OB)同步錯誤是與執(zhí)行用戶程序有關(guān)的錯誤,程序中如果有不正確的地址區(qū)、錯誤的編號和錯誤的地址,都會出現(xiàn)同步錯誤,操作系統(tǒng)將調(diào)用同步錯誤OB。同步錯誤組織塊包括OB121用于對程序錯誤的處理和OB122用于處理模塊訪問錯誤。同步錯誤OB的優(yōu)先級與檢測到出錯的塊的優(yōu)先級一致。因此OB121和OB122可以訪問中斷發(fā)生時累加器和其他寄存器中的內(nèi)容,用戶程序可以用它們來處理錯誤。其中各錯誤

49、處理組織塊的具體參數(shù)和功能介紹詳見第6章PLC故障診斷。第61頁/共121頁OBOB號號 錯誤類型錯誤類型 OB70OB70 I/OI/O冗余錯誤(僅冗余錯誤(僅H H系列系列CPUCPU)2525OB72OB72 CPUCPU冗余錯誤(僅冗余錯誤(僅H H系列系列CPUCPU)2828OB73OB73 通信冗余錯誤(僅通信冗余錯誤(僅H H系列系列CPUCPU)3535OB80OB80 時間錯誤時間錯誤 2626OB81OB81 電源錯誤電源錯誤 26/2826/28 OB82OB82 診斷中斷診斷中斷 OB83OB83 插入插入/取出模塊中斷取出模塊中斷 OB84OB84 CPUCPU硬件

50、故障硬件故障 OB85OB85 優(yōu)先級錯誤優(yōu)先級錯誤 OB86OB86 機架故障或分布式機架故障或分布式I/OI/O的站故障的站故障 OB87OB87 通信錯誤通信錯誤 OB121OB121 編程錯誤編程錯誤 引起錯誤的引起錯誤的OBOB的優(yōu)先級的優(yōu)先級 OB122OB122 I/OI/O訪問錯誤訪問錯誤 表5.11 錯誤處理組織塊第62頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)1、功能 功能分用戶編寫的功能(FC)和系統(tǒng)預(yù)先定義的功能(SFC)兩種,功能都沒有存儲區(qū)。功能在程序分級結(jié)構(gòu)中位于組織塊的下面。為使一

51、個功能被CPU處理,必須在程序分級結(jié)構(gòu)中的上一級調(diào)用它。FC和SFC里都有一個局域變量表和塊參數(shù)。局域變量表里面有:IN(輸入?yún)?shù))、OUT(輸出參數(shù))、IN_OUT(輸入/輸出參數(shù))、TEMP(臨時數(shù)據(jù))、RETURN(返回值RET_VEL)。IN(輸入?yún)?shù))只在功能和功能模塊中使用,是將數(shù)據(jù)傳遞到被調(diào)用的塊中進(jìn)行處理。OUT(輸出參數(shù))是將結(jié)果傳遞到調(diào)用塊中。IN_OUT(輸入/輸出參數(shù))是在功能和功能塊中使用,將數(shù)據(jù)傳遞到被調(diào)用塊中,在被調(diào)用塊中處理數(shù)據(jù)后,再將重被調(diào)用塊中發(fā)送的結(jié)果存儲在相同的變量中。TEMP(臨時數(shù)據(jù))是塊的本地數(shù)據(jù),并且在處理塊時將其存儲在本地數(shù)據(jù)堆棧(L堆棧)。關(guān)

52、閉塊并完成處理后,臨時數(shù)據(jù)就變得不可再訪問。第63頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)1)FC功能如果由用戶編寫,完成用戶期待的功能,這個功能為用戶功能。由于編程時需要很多標(biāo)準(zhǔn)的特定功能,西門子公司把一些標(biāo)準(zhǔn)的特定功能附加在STEP7的庫指令里面,供編程人員隨意調(diào)用,這些功能稱為庫指令功能或簡稱庫功能。因此FC功能分為用戶功能和庫功能 下面舉例說明用戶功能FC的編程?!纠?-6】編程一個啟動/停止功能(沒有使用參數(shù)傳遞)首先完善項目中的目錄,然后在管理畫面中點擊塊目錄,接著點擊菜單欄的“插入”“S7塊”“功

53、能”,在塊目錄中插入一個功能(本例中插入FC10),如圖5.35所示。第64頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)圖5.35在塊目錄中插入一個功能 在生成功能過程中,向?qū)ё詣訌棾龉δ艿膶傩援嬅?,在功能屬性畫面里選擇功能的編號及其他附屬信息,如圖5.36所示,然后點擊“確定”,自動生成一個空白的功能在塊目錄里。第65頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)圖5.36選擇塊的編號及附屬信息 雙擊目錄塊里的FC10圖標(biāo),打開FC10

54、的編程界面,然后在FC10里編寫完成啟動/停止功能的控制程序,如圖5.37所示。第66頁/共121頁圖5.37 在FC10里編寫完成啟動/停止功能的程序 為使一個功能能夠被CPU處理,必須得在程序上分級結(jié)構(gòu)中的上一級調(diào)用它,本例在OB1里調(diào)用FC10,如圖5.38所示。根據(jù)控制功能的需要,可以有條件或無條件調(diào)用。最后把項目中的所有信息下載到CPU中即可。5.3.2功能、功能塊和數(shù)據(jù)塊(FC、SFC、FB、SFB和DB、DI)第67頁/共121頁圖5.38在OB1里調(diào)用FC10 在控制系統(tǒng)中有多個同樣的啟動/停止控制單元,那么需要調(diào)用多個功能來實現(xiàn)或在相同的功能編寫其他控制單元,這樣雖然比較啰嗦

55、,但是還是可以實現(xiàn)。如果需要簡單的方法,使用例5-7的方法。5.3.2功能、功能塊和數(shù)據(jù)塊(FC、SFC、FB、SFB和DB、DI)第68頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)【例5-7】編程一個啟動/停止功能(使用參數(shù)傳遞)首先完善項目中的目錄,并在塊目錄中插入一個功能(本例插入的是FC20),雙擊塊目錄里的FC20圖標(biāo),打開FC20的編程界面,然后在FC20里的局域變量表里定義輸入、輸出等符號參數(shù),如圖5.39所示,最后完成啟動/停止功能的邏輯程序,如圖5.40所示。圖5.39定義輸入、輸出等參數(shù)第69頁

56、/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)圖5.40控制邏輯程序 為了使一個功能能夠被CPU處理,必須在程序分級結(jié)構(gòu)中的上一級調(diào)用它,本例在OB1中調(diào)用FC20,如圖5.41所示。根據(jù)控制功能的需要,可以有條件或無條件調(diào)用。最后把項目中的所有信息下載到CPU中即可實現(xiàn)需要的控制。第70頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和和DBDB、DIDI)圖5.41在OB1里調(diào)用FC20第71頁/共121頁5.3.25.3.2功能、功能塊和

57、數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)在控制系統(tǒng)中有多個同樣的啟動/停止控制單元,可以調(diào)用相同的一個功能(使用參數(shù)傳遞),在每個調(diào)用中寫上相應(yīng)的輸入/輸出就可以完成控制?!纠?-8】使用庫功能。實現(xiàn)任務(wù)是:比較兩個DATE_AND_TIME類型的變量,如果相等,則輸出一個高電平控制信號,否則輸出一個低電平控制信號。首先完善項目中的目錄,然后在管理畫面中雙擊塊目錄的OB1,打開OB1的編程界面,打開指令樹里的庫指令,雙擊“庫”“stdlibs”“iec”,然后把FC9 EQ_DT拖拽到OB1指定的地方(本例是M0.0的右邊)。然后在FC9的輸入?yún)?shù)DT1和D

58、T2里輸入DATE_AND_TIME類型的變量,在返回值里寫上M0.1,如圖5.42所示。最后保存到OB1。第72頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)圖5.42在OB1里編寫的程序 當(dāng)程序里調(diào)用了庫功能后,庫功能的代碼自動出現(xiàn)管理畫面的塊目錄里,如圖5.43所示的FC9,庫功能是不能編輯內(nèi)部程序的,都有保護(hù)所以看到塊目錄里的庫功能都帶上一把鎖的符號。同時庫功能的符號也會出現(xiàn)在S7程序的符號表里面。第73頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和D

59、BDB、DIDI)圖5.43調(diào)用庫功能后的塊目錄 把項目中所有的信息下載到CPU中,然后運行CPU,接通M0.0,在本例中可以看到M0.1=1。2)SFC系統(tǒng)功能是集成在STEP7中,完成特定功能。下面舉例說明用戶調(diào)用系統(tǒng)功能SFC的編程:使用SFC0“SET_CLK”(設(shè)定系統(tǒng)時鐘),可以設(shè)定CPU時鐘的時間和日期。調(diào)用SFC0會啟動時鐘,時鐘將從設(shè)定時間和設(shè)定日期開始運行。第74頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)首先完善項目中的目錄,然后在管理畫面中雙擊塊目錄的OB1,打開OB1的編程界面。打開指令樹

60、里面的庫指令,雙擊“庫”“stdlibs”“iec”,然后把FC3“DATE and TOD to DT”拖拽到OB1指定的地方;雙擊“庫”“Standard Library”“System Function Blocks”,然后把SFC 0“SET_CLK”拖拽到OB1指定的地方,如圖5.44所示。第75頁/共121頁第76頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)圖5.44在OB1里編寫的程序 然后在FC3“DATE and TOD to DT”、SFC0“SET_CLK”中寫上輸入和輸出參數(shù)并保存OB1。最

61、后把整個項目信息下載到CPU中并運行,接通M0.0,可以監(jiān)控系統(tǒng)時間已經(jīng)更改為“2008年10月4日12:29”了。監(jiān)控系統(tǒng)時間的方法首先把STEP7的編程工具與CPU連接好,在OB1等的程序界面點擊菜單欄的“PLC”“組件狀態(tài)”“系統(tǒng)時間”,可以看到當(dāng)前CPU的大概時間。如果需要看到準(zhǔn)確的當(dāng)前系統(tǒng)時間,可以在系統(tǒng)時間畫面點擊“更新”,當(dāng)前系統(tǒng)時間即顯示出來。第77頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)2、功能塊 功能塊分用戶編寫的功能塊FB和系統(tǒng)預(yù)先定義的功能塊SFB兩種,功能塊都有存儲區(qū)。功能塊在程序分級

62、結(jié)構(gòu)中位于組織塊下面。為使一個功能塊被CPU處理,必須在程序分級結(jié)構(gòu)中的上一級調(diào)用它。FB和SFB里都有一個局域變量表和塊參數(shù)。局域變量表里有:IN(輸入?yún)?shù))、OUT(輸出參數(shù))、IN_OUT(輸入/輸出參數(shù))、STAT(靜態(tài)參數(shù))、TMEP(臨時數(shù)據(jù))。IN(輸入?yún)?shù))只在功能和功能塊中使用,是將數(shù)據(jù)傳遞到被調(diào)用的塊中進(jìn)行處理。OUT(輸出參數(shù))是將結(jié)果傳遞到調(diào)用塊中。IN_OUT(輸入/輸出參數(shù))是在功能和功能塊中使用,是將數(shù)據(jù)傳遞到被調(diào)用塊中,在被調(diào)用塊中處理數(shù)據(jù)后,再將從被調(diào)用塊中發(fā)送的結(jié)果存儲在相同的變量中。STAT(靜態(tài)參數(shù))是存儲在該功能塊的背景數(shù)據(jù)塊中的本地數(shù)據(jù)。在下次處理功

63、能塊之前,會一直保留存儲的數(shù)據(jù)。第78頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)TEMP(臨時數(shù)據(jù))是塊的本地數(shù)據(jù),并且在處理塊時將其存儲在本地數(shù)據(jù)堆棧(L堆棧)。關(guān)閉塊并完成處理后,臨時數(shù)據(jù)就變得不可再訪問。下面舉例說明功能塊的編程?!纠?-9】完成一個星/三角啟動/停止功能(沒有使用參數(shù)傳遞)。在塊目錄中插入功能塊,在生成的功能塊的過程中需要選擇塊的編號及附加信息,如圖5.45所示。圖5.45選擇塊的編號及寫上附加信息第79頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBF

64、B、SFBSFB和DBDB、DIDI)在塊目錄中可以查到當(dāng)前塊的詳細(xì)記錄,雙擊塊目錄中的FB10,在FB10里定義接口參數(shù),如圖5.46所示,然后編寫FB10的程序,如圖5.47所示。圖5.46在FB10中定義接口參數(shù)(定義背景數(shù)據(jù)塊的符號)第80頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)第81頁/共121頁第82頁/共121頁圖5.47在FB10中編寫的程序第83頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)在OB1編程界面里打開指令

65、樹中功能塊的指令(注意,該功能塊的程序必須在這之前編寫完畢,否則會出現(xiàn)時間不一致的錯誤)并拖拽到程序期待的地方,如圖5.48所示,然后點擊FB10頂上的“?”位置,寫上背景數(shù)據(jù)塊。在生成背景數(shù)據(jù)塊的過程中會出現(xiàn)如圖5.49所示的對話框,點擊“是”確認(rèn),這樣FB10的背景數(shù)據(jù)塊就會出現(xiàn)在當(dāng)前的FB10頂上、管理界面的塊目錄中和符號表里。圖5.48寫上FB10的背景數(shù)據(jù)塊第84頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)圖5.49生成實例數(shù)據(jù)塊DB10 可以打開管理界面的塊目錄查看到詳細(xì)的目錄,并雙擊DB10圖標(biāo),打開

66、DB10查看詳細(xì)信息,如圖5.50所示。DB10的詳細(xì)信息是FB10接口參數(shù)中除臨時參數(shù)不會出現(xiàn)外,其他已經(jīng)在FB10接口參數(shù)區(qū)定義了的參數(shù)將出現(xiàn)在DB10背景數(shù)據(jù)塊里。第85頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)圖5.50背景數(shù)據(jù)塊里的信息 然后把項目中所有信息下載到CPU中并運行,當(dāng)接通M0.0時可以啟動水泵的星/三角單元,當(dāng)接通M0.1時,可以停止水泵的星/三角單元。當(dāng)接通M1.0時可以啟動油泵的星/三角單元,當(dāng)接通M1.1時,可以停止油泵的星/三角單元。第86頁/共121頁5.3.25.3.2功能、功能塊和數(shù)據(jù)塊(FCFC、SFCSFC、FBFB、SFBSFB和DBDB、DIDI)【例5-10】完成一個星/三角啟動功能(使用參數(shù)傳遞)在塊目錄中插入功能塊FB10,然后在塊目錄里插入數(shù)據(jù)塊。在數(shù)據(jù)塊生成功能塊的過程中需要選擇塊的編號(本例是DB10)及附加信息,如圖5.51所示,特別注意這時需要選擇“實例DB”并指明屬于哪一個功能塊(本例是FB10)。這里的“實例DB”習(xí)慣稱為背景數(shù)據(jù)塊或背景D

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!