第6章_西門子S7-300系列PLC基本指令.ppt_第1頁
第6章_西門子S7-300系列PLC基本指令.ppt_第2頁
第6章_西門子S7-300系列PLC基本指令.ppt_第3頁
第6章_西門子S7-300系列PLC基本指令.ppt_第4頁
第6章_西門子S7-300系列PLC基本指令.ppt_第5頁
已閱讀5頁,還剩69頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第6章 西門子s7-300系列plc基本指令,西門子s7-300系列plc基本指令,6.1 可編程控制器的指令結構和指令系統 6.2 位邏輯指令 6.3 定時器和計數器指令 6.4 數據處理功能指令 6.5 數據運算指令 6.6 控制指令 思考題與習題,s7-300 plc指令及編程軟件,對于西門子公司的simatic s7系列plc,常用的編程軟件是step7,step7中有豐富的s7系列plc的編程語言,通常使用的是梯形圖(lad)、語句表(stl)和順控指令(graph)等,另外,還有功能塊圖(fdb)、標準控制語言(scl)、狀態圖(higraph)、連續功能圖(cfc)和step 7的c語言等。 梯形圖具有直觀、簡單等優點,并且在step 7中,梯形圖可以轉換成為語句表(stl)和功能塊圖(fdb)。 在編程的過程中,用戶可以選擇上面所示的某一種語言進行編程,也可以利用多種語言的優點來進行混合編程,使用戶的程序開發、輸入和調試等工作變得極為方便。,邏輯取及線圈驅動指令,指令 ld(load):取指令。 ldn(load not):取反指令。 =(out):線圈驅動指令。 not:取反指令。 用法,邏輯取及線圈驅動指令,使用說明 ld、ldn指令不只是用于網絡塊邏輯計算開始時與母線相連的常開和常閉觸點,在分支電路塊的開始也要使用ld、ldn指令,與后面要講的ald、old指令配合完成塊電路的編程。 并聯的 = 指令可連續使用任意次。 什么是并聯輸出? 在同一程序中不要使用雙線圈輸出,即同一個元器件在同一程序中只使用一次 = 指令。 什么是雙線圈輸出? ld、ldn、=指令的操作數為:i、q、m、sm、t、c、v、s和l。t和c也作為輸出線圈。,觸點串聯指令,指令 a(and):與指令。用于單個常開觸點的串聯連接。 an(and not):與反指令。用于單個常閉觸點的串聯連接。 用法,觸點串聯指令,使用說明 a、an是單個觸點串聯連接指令,可連續使用。但在用梯形圖編程時會受到打印寬度和屏幕顯示的限制,s7-300 plc的編程軟件中規定的串聯觸點使用上限為11個。 對連續輸出電路,可以反復使用 = 指令,但次序必須正確,不然就不能連續使用 = 指令編程了。 什么是連續輸出電路? 下圖所示的電路就不屬于連續輸出電路 a、an指令的操作數為:i、q、m、sm、t、c、v、s和l。,觸點并聯指令,指令 o(or):或指令。用于單個常開觸點的并聯連接。 on(or not):或反指令。用于單個常閉觸點的并聯連接。 用法 使用說明 單個觸點的o、on指令可連續使用。 o、on指令的操作數為:i、q、m、sm、t、c、v、s和l。,置位/復位指令,指令 用法,置位/復位指令,對位元件來說一旦被置位,就保持在通電狀態,除非對它復位;而一旦被復位就保持在斷電狀態,除非再對它置位。 s/r指令可以互換次序使用,但由于plc采用掃描工作方式,所以寫在后面的指令具有優先權。如在上圖中,若i0.0和i0.1同時為1,則q0.0、q0.1肯定處于復位狀態而為0。 如果對計數器和定時器復位,則計數器和定時器的當前值被清零。定時器和計數器的復位有其特殊性,可參考計數器和定時器的有關部分。 n的范圍為1255,n可為:vb、ib、qb、mb、smb、sb、lb、ac、常數、*vd、*ac和*ld。一般情況下使用常數。 s/r指令的操作數為:i、q、m、sm、t、c、v、s和l。,rs觸發器指令,指令 sr(set dominant bistable):置位優先觸發器指令。當置位信號(s1)和復位信號(r)都為真時,輸出為真。 rs(reset dominant bistable):復位優先觸發器指令。當置位信號(s)和復位信號(r1)都為真時,輸出為假。 用法 沒有stl形式,立即指令,什么是立即指令?有何用途? 對輸入 對輸出 指令,立即指令,舉例,邊沿脈沖指令,指令 舉例,old(or load),串聯電路塊的并聯連接指令(或塊指令),用于串聯電路塊的并聯連接。 什么是串聯電路塊? 兩個以上觸點串聯形成的支路叫串聯電路塊。 用法 使用說明 除在網絡塊邏輯運算的開始使用ld或ldn指令外,在塊電路的開始也要使用ld和ldn指令。 每完成一次塊電路的并聯時要寫上old指令。 old指令無操作數。,ald(and load),并聯電路塊的串聯連接指令(與塊指令)。用于并聯電路塊的串聯連接。 什么是并聯電路塊? 兩條以上支路并聯形成的電路叫并聯電路塊。 用法 使用說明 在塊電路開始時要使用ld和ldn指令。 在每完成一次塊電路的串聯連接后要寫上ald指令。 ald指令無操作數。,邏輯堆棧操作指令,邏輯堆棧操作指令 指令2 lps(logic push):邏輯入棧指令(分支電路開始指令)。 lrd(logic read):邏輯讀棧指令。 lpp(logic pop):邏輯出棧指令(分支電路結束指令)。 邏輯堆棧操作指令 使用說明 由于受堆??臻g的限制(9層堆棧),lps、lpp指令連續使用時應少于9次。 lps和lpp指令必須成對使用,它們之間可以使用lrd指令。 lps、lrd、lpp指令無操作數。,lps/lrd/lpp舉例,lps/lrd/lpp舉例,lps/lrd/lpp舉例,邏輯堆棧操作指令,邏輯堆棧操作指令,指令4 aeno 使用較少 舉例,比較指令,作用:比較指令是將兩個數值或字符串按指定條件進行比較,條件成立時,觸點就閉合。所以比較指令實際上也是一種位指令。 類型: 字節比較、整數比較、雙字整數比較、實數比較和字符串比較。 數值比較指令的運算符有:=、=、和等6種,字符串比較指令有=和兩種。 對比較指令可進行ld、a和o編程。 比較指令屬于“位指令”,比較指令,定時器及其使用,最常用的器件 幾個基本概念 種類:ton,tonr,tof 分辯率與定時時間的計算 單位時間的時間增量稱為定時器的分辨率,即精度。s7-200 plc定時器有3個精度等級:1 ms、10 ms和100 ms。 定時器定時時間t的計算:t = pt s。式中:t為實際定時時間,pt為設定值,s為分辨率。 例如:ton指令使用t97(為10 ms的定時器),設定值為100,則實際定時時間為: t = 100 10 = 1 000 ms 定時器的設定值pt:數據類型為int型。操作數可為:vw、iw、qw、mw、sw、smw、lw、aiw、t、c、ac、*vd、*ac、*ld和常數,其中常數最為常用。,定時器及其使用,定時器的編號 定時器的編號用定時器的名稱和它的常數編號(最大為255)來表示,即t*。如:t40。 定時器的編號包含兩方面的變量信息:定時器位和定時器當前值。 定時器位:與其他繼電器的輸出相似。當定時器的當前值達到設定值pt時,定時器的觸點動作。 定時器當前值:存儲定時器當前所累計的時間,它用16位符號整數來表示,最大計數值為32 767。,定時器及其使用,定時器的編號 編號表 ton和tof使用相同范圍的定時器編號,所以在同一個plc程序中決不能把同一個定時器號同時用作ton和tof。例如在程序中,不能既有接通延時(ton)定時器t32,又有斷開延時(tof)定時器t32。,定時器及其使用,定時器的指令及使用 指令,定時器的指令及使用,接通延時定時器ton(on-delay timer) 接通延時定時器用于單一時間間隔的定時。 上電周期或首次掃描時,定時器位為off,當前值為0。 輸入端接通時,定時器位為off,當前值從0開始計時,當前值達到設定值時,定時器位為on,當前值仍連續計數到32 767。 輸入端斷開,定時器自動復位,即定時器位為off,當前值為0。 記憶接通延時定時器tonr(retentive on-delay timer) 記憶接通延時定時器具有記憶功能,它用于對許多間隔的累計定時。 上電周期或首次掃描時,定時器位為掉電前的狀態,當前值保持在掉電前的值。 當輸入端接通時,當前值從上次的保持值繼續計時,當累計當前值達到設定值時,定時器位on,當前值可繼續計數到32 767。 tonr定時器只能用復位指令r對其進行復位操作。tonr復位后,定時器位為off,當前值為0。掌握好對tonr的復位及啟動是使用好tonr指令的關鍵。,斷開延時定時器tof,斷開延時定時器tof(off-delay timer) 斷開延時定時器用于斷電后的單一間隔時間計時。 上電周期或首次掃描,定時器位為off,當前值為0。 輸入端接通時,定時器位為on,當前值為0。當輸入端由接通到斷開時,定時器開始計時。當達到設定值時定時器位為off,當前值等于設定值,停止計時。 輸入端再次由offon時,tof復位,這時tof的位為on,當前值為0。如果輸入端再從onoff,則tof可實現再次啟動。,定時器及其使用,定時器的指令及使用 舉例,定時器的刷新方式和正確使用,1 ms、10 ms、100 ms定時器的刷新方式是不同的,從而在使用方法上也有很大的不同。這和其他plc是有很大區別的。 1 ms定時器 1 ms定時器由系統每隔1 ms刷新一次,與掃描周期及程序處理無關。它采用的是中斷刷新方式。因此,當掃描周期大于1 ms時,在一個周期中可能被多次刷新。其當前值在一個掃描周期內不一定保持一致。 10 ms定時器 10 ms定時器由系統在每個掃描周期開始時自動刷新,由于是每個掃描周期只刷新一次,故在一個掃描周期內定時器位和定時器的當前值保持不變。 100 ms定時器 100 ms定時器在定時器指令執行時被刷新,因此,如果100 ms定時器被激活后,如果不是每個掃描周期都執行定時器指令或在一個掃描周期內多次執行定時器指令,都會造成計時失準,所以在后面講到的跳轉指令和循環指令段中使用定時器時,要格外小心。100 ms定時器僅用在定時器指令在每個掃描周期執行一次的程序中。,定時器及其使用,定時器的刷新方式和正確使用 舉例,時間間隔定時器,這是在最新版本的cpu中增加的有特殊功能的定時器,說是定時器,其實是2條指令。使用這2條指令可以記錄某一信號的開通時刻以及開通延續的時間。plc停電后,停止記錄。 觸發時間間隔(bitim,beginning interval time) 該指令用來讀取plc中內置的1毫秒計數器的當前值,并將該值存儲于out。雙字毫秒值的最大計時間隔為2的32次方,即49.7天。 計算時間間隔(citim,calculate interval time) 該指令計算當前時間與in所提供時間的時間差,并將該差值存儲于out。雙字毫秒值的最大計時間隔為2的32次方,即49.7天。 2條指令的有效操作數為:in和out端均為雙字。,定時器及其使用,時間間隔定時器 舉例,計數器及其使用,種類:ctd, ctud, ctd 編號 計數器的編號用計數器名稱和數字(0255)組成,即c*,如c6。 計數器的編號包含兩方面的信息:計數器的位和計數器當前值。 計數器位:計數器位和繼電器一樣是一個開關量,表示計數器是否發生動作的狀態。當計數器的當前值達到設定值時,該位被置位為on。 計數器當前值:其值是一個存儲單元,它用來存儲計數器當前所累計的脈沖個數,用16位符號整數來表示,最大數值為32 767。 計數器輸入端和操作數 設定值輸入:數據類型為int型。 尋址范圍:vw、iw、qw、mw、sw、smw、lw、aiw、t、c、ac、*vd、*ac、*ld和常數。 一般情況下使用常數作為計數器的設定值。,計數器及其使用,指令及其使用 指令,計數器及其使用,指令及其使用 ctu 首次掃描時,計數器位為off,當前值為0。 在計數脈沖輸入端cu的每個上升沿,計數器計數1次,當前值增加一個單位。當前值達到設定值時,計數器位為on,當前值可繼續計數到32 767后停止計數。 復位輸入端有效或對計數器執行復位指令,計數器自動復位,即計數器位為off,當前值為0。 注意:在語句表中,cu、r的編程順序不能錯誤。,計數器及其使用,指令及其使用 ctu,計數器及其使用,指令及其使用 ctud 增減計數器有兩個計數脈沖輸入端:cu輸入端用于遞增計數,cd輸入端用于遞減計數。 首次掃描時,計數器位為off,當前值為0。cu輸入的每個上升沿,計數器當前值增加1個單位;cd輸入的每個上升沿,都使計數器當前值減小1個單位,當前值達到設定值時,計數器位置位為on。 增減計數器當前值計數到32 767(最大值)后,下一個cu輸入的上升沿將使當前值跳變為最小值(-32 768);當前值達到最小值-32 768后,下一個cd輸入的上升沿將使當前值跳變為最大值32767。 復位輸入端有效或使用復位指令對計數器執行復位操作后,計數器自動復位,即計數器位off,當前值為0。 注意:在語句表中,cu、cd、r的順序不能錯誤。,計數器及其使用,指令及其使用 ctud,計數器及其使用,指令及其使用 ctd 首次掃描時,計數器位為on,當前值為預設定值pv。 對cd輸入端的每個上升沿計數器計數1次,當前值減少一個單位,當前值減小到0時,計數器位置位為on。 復位輸入端有效或對計數器執行復位指令,計數器自動復位,即計數器位off,當前值復位為設定值。 注意:減計數器的復位端是ld,而不是r。在語句表中,cd、ld的順序不能錯誤。,計數器及其使用,指令及其使用 ctd,程序控制指令,結束及暫停指令 end和mend 結束指令分為有條件結束指令(end)和無條件結束指令(mend)。 使用說明: 結束指令只能用在主程序中,不能在子程序和中斷程序中使用。而有條件結束指令可用在無條件結束指令前結束主程序。 在調試程序時,在程序的適當位置插入無條件結束指令可實現程序的分段調試。 可以利用程序執行的結果狀態、系統狀態或外部設置切換條件來調用有條件結束指令,使程序結束。 使用方法:軟件自動處理。,結束及暫停指令,停止指令stop stop指令有效時,可以使主機cpu的工作方式由run切換到stop,從而立即中止用戶程序的執行。stop指令在梯形圖中以線圈形式編程。指令不含操作數。 stop指令可以用在主程序、子程序和中斷程序中。如果在中斷程序中執行stop指令,則中斷處理立即中止,并忽略所有掛起的中斷。繼續掃描程序的剩余部分,在本次掃描周期結束后,完成將主機從run到stop的切換。 stop和end指令通常在程序中用來對突發緊急事件進行處理,以避免實際生產中的重大損失。,看門狗指令,wdt(watchdog reset)稱為看門狗復位指令。它可以把警戒時鐘刷新,即延長掃描周期,從而有效地避免看門狗超時錯誤。 帶數字量輸出的擴展模塊也包含有一個看門狗定時器,在擴展的掃描時間內,對每個帶數字量輸出的擴展模塊進行立即寫操作,以保證正確的輸出。 舉例,跳轉及標號指令,作用 指令 跳轉指令jmp(jump to label):當輸入端有效時,使程序跳轉到標號處執行。 標號指令lbl(label):指令跳轉的目標標號。操作數n為0255。 使用說明: 跳轉指令和標號指令必須配合使用,而且只能使用在同一程序塊中,如主程序、同一個子程序或同一個中斷程序。不能在不同的程序塊中互相跳轉。 執行跳轉后,被跳過程序段中的各元器件的狀態: q、m、s、c等元器件的位保持跳轉前的狀態; 計數器c停止計數,當前值存儲器保持跳轉前的計數值; 對定時器來說,因刷新方式不同而工作狀態不同。,跳轉及標號指令,循環指令,指令 循環開始指令for:用來標記循環體的開始。 循環結束指令next:用來標記循環體的結束。無操作數。 for和next之間的程序段稱為循環體,每執行一次循環體,當前計數值增1,并且將其結果同終值作比較,如果大于終值,則終止循環。,循環指令,參數使用說明 循環指令盒中有三個數據輸入端:當前循環計數indx(index value or current loop count)、循環初值init(starting value)和循環終值final(ending value)。在使用時必須給for指令指定當前循環計數(indx)、初值(init)和終值(final)。 indx操作數:vw、iw、qw、mw、sw、smw、lw、t、c、ac、*vd、*ac和*cd;屬int型。 init和final操作數:vw、iw、qw、mw、sw、smw、lw、t、c、ac、常數、*vd、*ac和*cd;屬int型。 指令使用說明 for、next指令必須成對使用。 for和next可以循環嵌套,嵌套最多為8層,但各個嵌套之間不可有交叉現象。 每次使能輸入(en)重新有效時,指令將自動復位各參數。 初值大于終值時,循環體不被執行。 在使用循環指令時,要注意在循環體中對indx的控制,這一點非常重要。,循環指令,診斷led指令,這是新版的cpu增加的指令。plc的主機面板上有一個sf/diag(錯誤/診斷)指示燈,當cpu發生系統故障時,該指示燈發紅光,表明系統出現錯誤(sf)。對于診斷(diag)功能部分,可以使用指令控制該指示燈是否發黃光。 其中in的數據類型為字節型數據。 舉例:一個使用診斷led指令的例子,在該例中,當故障信號i0.0出現時,sf/ diag指示燈發黃光。,梯形圖編程

溫馨提示

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

評論

0/150

提交評論