第五章 應(yīng)用指令_第1頁
第五章 應(yīng)用指令_第2頁
第五章 應(yīng)用指令_第3頁
第五章 應(yīng)用指令_第4頁
第五章 應(yīng)用指令_第5頁
已閱讀5頁,還剩136頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章應(yīng)用指令5.1程序控制類指令5.2特殊指令5.1程序控制類指令

5.1.1結(jié)束及暫停指令5.1.2看門狗指令5.1.3跳轉(zhuǎn)指令5.1.4子程序指令

5.1.5程序循環(huán)指令5.1.6順序控制繼電器指令5.1.7與ENO指令

返回本章首頁5.1.1結(jié)束及暫停

1.結(jié)束指令結(jié)束指令有兩條:END和MEND。兩條指令在梯形圖中以線圈形式編程。END,條件結(jié)束指令。使能輸入有效時,終止用戶主程序。MEND無條件結(jié)束指令。無條件終止用戶程序的執(zhí)行,返回主程序的第一條指令。用Micro/Win32編程時,編程人員不需手工輸入MEND指令,而是由軟件自動加在主程序結(jié)尾。指令格式:END (無操作數(shù))2.暫停指令STOP,暫停指令。使能輸入有效時,該指令使主機(jī)CPU的工作方式由RUN切換到STOP方式,從而立即終止用戶程序的執(zhí)行。STOP指令在梯形圖中以線圈形式編程。指令不含操作數(shù)。指令的執(zhí)行不考慮對特殊標(biāo)志寄存器位和能流的影響。指令格式:STOP(無操作數(shù))返回本節(jié)5.1.2看門狗

WDR,看門狗復(fù)位指令。當(dāng)使能輸入有效時,執(zhí)行WDR指令,每執(zhí)行一次,看門狗定時器就被復(fù)位一次。S7的看門狗WDR的設(shè)定值為300ms,有時在循環(huán)或調(diào)用子程序,響應(yīng)中斷服務(wù)程序時,掃描時間超過300ms,WDR會認(rèn)為出錯。可用本指令可用以延長掃描周期,從而可以有效避免看門狗超時錯誤。指令格式:WDR (無操作數(shù))程序?qū)嵗褐噶頢TOP、END、WDR的應(yīng)用如圖5.2所示。圖5.1停止、結(jié)束、看門狗指令返回本節(jié)5.1.3跳轉(zhuǎn)

1.跳轉(zhuǎn)指令與跳轉(zhuǎn)相關(guān)的指令有下面兩條:(1)跳轉(zhuǎn)指令JMP,跳轉(zhuǎn)指令。使能輸入有效時,使程序流程跳到同一程序中的指定標(biāo)號n處執(zhí)行。執(zhí)行跳轉(zhuǎn)指令時,邏輯堆棧的棧頂值總是1。(2)標(biāo)號指令LBL,標(biāo)號指令。標(biāo)記程序段,作為跳轉(zhuǎn)指令執(zhí)行時跳轉(zhuǎn)到的目的位置。操作數(shù)n為0~255的字型數(shù)據(jù)。程序?qū)嵗耗成a(chǎn)線對產(chǎn)品進(jìn)行加工處理,同時用增減計數(shù)器對成品進(jìn)行計數(shù),如果檢測到100個成品就要跳過某些控制程序直接進(jìn)入小包裝控制程序;若檢測到900個成品,則程序跳轉(zhuǎn)到大包裝控制程序。程序如下:圖5.2程序跳轉(zhuǎn)實例5.1.4子程序指令

編寫子程序的步驟1.建立子程序2.編寫子程序3.在主程序、其他子程序、或中斷程序中調(diào)用子程序(帶參數(shù)的子程序)1.建立子程序

可用編程軟件Edit菜單中的Insert選項,選擇Subroutine,以建立或插入一個新的子程序,同時在指令樹窗口可以看到新建的子程序圖標(biāo),默認(rèn)的程序名是SBR_n,編號n從0開始按遞增順序生成,可以在圖標(biāo)上直接更改子程序的程序名。在指令樹窗口雙擊子程序的圖標(biāo)就可對它進(jìn)行編輯。2.子程序調(diào)用

(1)子程序調(diào)用和返回指令子程序調(diào)用

子程序條件返回(2)注意事項可有64個子程序,可以嵌套子程序,最大嵌套深度為8子程序內(nèi)不能用END指令不允許直接遞歸(自己調(diào)用自己),可間接遞歸(3)應(yīng)用實例

SBR1EN(RET)圖5.3所示的程序?qū)崿F(xiàn)用外部控制條件分別調(diào)用兩個子程序。圖5.3子程序調(diào)用舉例(1)子程序參數(shù)---最多可帶16個參數(shù),每個參數(shù)包含:

變量名

變量類型(IN類型、IN/OUT、OUT)數(shù)據(jù)類型(位、字節(jié)、字、雙字、實型)(2)參數(shù)子程序調(diào)用的規(guī)則參數(shù)與局部變量標(biāo)的定義相匹配參數(shù)順序是:輸入,輸入/輸出,輸出(3)程序?qū)嵗?/p>

3.帶參數(shù)的子程序調(diào)用

圖5.5帶參數(shù)的子程序調(diào)用返回本節(jié)以上面指令為例,局部變量表分配如表5.1所示,程序段如圖5.5所示。表5.1局部變量表例5.1.5程序循環(huán)

1.循環(huán)開始FOR每執(zhí)行一次循環(huán)計數(shù)值加1,當(dāng)計數(shù)值大于終值,則循環(huán)終止。2.循環(huán)結(jié)束NEXT3.

程序?qū)嵗?/p>

FORENENOINDXINITFINAL(NEXT)計數(shù)值初值終值圖5.6程序循環(huán)(1)返回本節(jié)圖5.6程序循環(huán)(2)5.1.7順序控制繼電器

順序控制繼電器S是專門用于編寫順序控制程序(常稱為步進(jìn)控制)的。所謂順序控制,使生產(chǎn)過程按生產(chǎn)工藝的要求預(yù)先安排的順序自動地進(jìn)行生產(chǎn)的控制方式。一個步進(jìn)控制程序是由若干個SCR段組成,每個SCR段對應(yīng)步進(jìn)控制中的一個功能控制步。1.順序繼電器指令(1)段開始指令功能:標(biāo)記一個SCR段的開始,操作數(shù)是順序繼電器Sx.y(如S0.0)。當(dāng)順序繼電器Sx.y=1啟動SCRx.y的順序程序。即允許該SCR段工作。(2)段轉(zhuǎn)移功能:是當(dāng)Sx.y=1,將當(dāng)前的SCR段停止,切換到下一個SCR。其操作數(shù)為下一個SCR的標(biāo)志位(如S0.1)(3)段結(jié)束功能:標(biāo)記一個段的結(jié)束。SCRSx.yLSCRSnSn(SCRT)SCRTSnSn(SCRE)SCRE本例是用順序繼電器實現(xiàn)的順序控制中的一個步的程序段,這一步實現(xiàn)的功能是使兩個電機(jī)M1和M2起動運(yùn)行20秒后停止,切換到下一步。程序如圖5.7所示。返回本節(jié)2.程序?qū)嵗?.結(jié)構(gòu)形式(1)順序結(jié)構(gòu)

(2)分支結(jié)構(gòu)

選擇性分支

并發(fā)性分支

(3)循環(huán)結(jié)構(gòu)

(4)復(fù)合結(jié)構(gòu)

各順序控制段的轉(zhuǎn)換不帶分支和匯合的順控過程。將復(fù)雜的控制分解若干個獨立控制功能步,用方框表示,根據(jù)動作順序用箭頭將各方框連接起來,在相鄰的兩步之間用段橫線表示轉(zhuǎn)換條件。在每步的右邊畫上要執(zhí)行的控制程序。S0.1()Q0.0S0.2()Q0.1S0.3()Q0.2I0.0I0.1I0.2(1)順序結(jié)構(gòu)(1)順序結(jié)構(gòu)(2)分支結(jié)構(gòu)圖5.9選擇性分支1)選擇分支執(zhí)行完1步,當(dāng)A或D或G或I為1,1步復(fù)位,2或4或6或7開始執(zhí)行;8步執(zhí)行,由C或F或H或J為1決定,執(zhí)行時順序繼電器置1,3、5、6、7順序繼電器復(fù)位2)并發(fā)性分支當(dāng)A為1,1步復(fù)位,2467同時置位開始工作。為提高工作效率,各支路的工作時間盡量接近一致。圖5.10并發(fā)性分支用水平雙線表示并行分支開始和結(jié)束。(3)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)用于一個順序過程的多次或往復(fù)執(zhí)行。功能圖畫法如圖5.11所示,這種結(jié)構(gòu)可看作是選擇性分支結(jié)構(gòu)的一種特殊情況。

圖5.11循環(huán)結(jié)構(gòu)(4)復(fù)合結(jié)構(gòu)圖5.12功能流程圖舉例返回本節(jié)幾種結(jié)構(gòu)組合5.1.8與ENO指令

AENO,與ENO指令。ENO是梯形圖和功能框圖編程時指令盒的布爾能流輸出端。如果指令盒的能流輸入有效,同時執(zhí)行沒有錯誤,ENO就置位,將能流向下傳遞。當(dāng)用梯形圖編程時,且指令盒后串聯(lián)一個指令盒或線圈,語句表語言中用AENO指令描述。

指令格式:AENO(無操作數(shù))圖5.13與ENO指令A(yù)ENO指令只能在語句表中使用,將棧頂值和ENO位的邏輯與運(yùn)算,運(yùn)算結(jié)果保存到棧頂。程序如圖5.13所示。返回本節(jié)5.2特殊指令

5.2.1時鐘指令

5.2.2中斷

5.2.3通信

5.2.4高速計數(shù)

5.2.5高速脈沖輸出

5.2.6

PID回路指令

返回本章首頁5.2.1時鐘指令

1.讀實時時鐘TODR,讀實時時鐘指令。當(dāng)使能輸入有效時,系統(tǒng)讀當(dāng)前時間和日期,并把它裝入一個8字節(jié)的緩沖區(qū)。

2.寫實時時鐘TODW,寫實時時鐘指令。用來設(shè)定實時時鐘。當(dāng)使能輸入有效時,系統(tǒng)將包含當(dāng)前時間和日期,一個8字節(jié)的緩沖區(qū)將裝入時鐘。

VB300首地址READ_RTCENENOTTODRTSET_RTCENENOTTODWTVB300表5.2時鐘緩沖區(qū)格式程序?qū)嵗刂埔螅壕帉懸欢纬绦?,可實現(xiàn)讀、寫實時時鐘,并以BCD碼顯示分鐘。時鐘緩沖區(qū)從VB100開始。程序中的子程序SBR_0為寫時鐘子程序,將當(dāng)前時間寫入從VB100開始的8字節(jié)時間緩沖區(qū),時間設(shè)置如下表5.3所示。程序?qū)崿F(xiàn):讀寫時鐘程序如圖5.9所示。LDI0.4 //裝入觸點EU//上跳沿觸發(fā)CALL SBR_0 //調(diào)用子程序

LDSM0.0 //運(yùn)行有效TODR VB100 //從VB100 //讀時鐘值MOVB VB104,VB0//傳送指令SEGVB0,QB0 //將分鐘值低位//從QB0輸出SRBVB0,4//右移4位SEGVB0,QB1 //將分鐘值低位//從QB1輸出子程序SBR_0//作用為寫時鐘5.2.2中斷

1.中斷源(1)中斷源及種類中斷源,即中斷事件發(fā)出中斷請求的來源。S7-200可編程序控制器具有34個中斷源,每個中斷源都分配一個編號用以識別,稱為中斷事件號。這些中斷源大致分為三大類:通信中斷、輸入輸出中斷和時基中斷。(2)中斷優(yōu)先級

中斷優(yōu)先級由高到低依次是:通信中斷、輸入輸出中斷、時基中斷。每種中斷中的不同中斷事件又有不同的優(yōu)先權(quán)。主機(jī)中的所有中斷事件及優(yōu)先級如表5.4所示。表5.4中斷事件及優(yōu)先級2.中斷操作指令包括:(1)開中斷指令ENI---全局開放所有被連接的中斷事件(2)關(guān)中斷指令DISI---全局關(guān)斷所有被連接的中斷事件(3)中斷連接指令A(yù)TCH功能:建立一個中斷事件EVNT與一個標(biāo)號為INTn中斷服務(wù)程序聯(lián)系,并對該中斷事件開放。(ENI)(DISI)

ATCHENENOINTEVNT(4)中斷分離指令DTCH功能:取消某個中斷事件EVNT與所有中斷程序的關(guān)聯(lián),并對該事件關(guān)中斷。(5)中斷返回指令RETI和CRET注意事項中斷服務(wù)程序中,不能使用開中斷指令ENI、關(guān)中斷指令DISI、定義高速計數(shù)器指令HDEF、步進(jìn)開始指令LSCR、條件結(jié)束指令END。程序?qū)嵗袟l件返回?zé)o條件返回(3)程序?qū)嵗刂埔螅撼绦驅(qū)崿F(xiàn)的功能是用I0.4調(diào)用I0.1輸入點的上升沿中斷,若發(fā)現(xiàn)I/O錯誤,則禁止本中斷,用外部條件I0.5可以禁止全局中斷。程序?qū)崿F(xiàn):本程序如圖5.10所示。圖5.10中斷調(diào)用程序3.中斷程序(1)構(gòu)成中斷程序必須由三部分構(gòu)成:中斷程序標(biāo)號、中斷程序指令和無條件返回指令。(2)編制方法建立中斷程序INTn在INTn中編寫其服務(wù)程序編寫中斷連接指令允許中斷返回本節(jié)定時中斷0,設(shè)定100ms,在中斷服務(wù)程序中進(jìn)行數(shù)據(jù)采集和變換溫度模擬量數(shù)據(jù)采集實例0~200度范圍測量的實際溫度=(AIW-6552)/[(32760-6552)/200]2復(fù)習(xí)思考題一個溫度檢測系統(tǒng),用Pt100熱電阻,測溫范圍為0~200度(電流輸出),如測得環(huán)境溫度為35度,問A/D轉(zhuǎn)換后的數(shù)字量?0~200度對應(yīng)4~20mA12為數(shù)字量12為數(shù)字量111111111111000001100110011000測量的實際溫度=(AIW-6552)/[(32760-6552)/200]5.2.3通信

通信指令包括:XMT,自由口發(fā)送指令RCV,自由口接收指令NETR,網(wǎng)絡(luò)讀指令NETW,網(wǎng)絡(luò)寫指令GPA,獲取口地址指令一、S7-200的網(wǎng)絡(luò)通信字符數(shù)據(jù)格式(1)10位字符數(shù)據(jù)傳送數(shù)據(jù)由1個起始位、8個數(shù)據(jù)位、無校驗位、一個停止位組成。傳送速率一般為9600波特。(2)11位字符數(shù)據(jù)傳送數(shù)據(jù)由1個起始位、8個數(shù)據(jù)位、1個偶校驗位、一個停止位組成。傳送速率一般為9600波特或19200波特。S7-200被默認(rèn)為是從站。在采用PPI通信協(xié)議時,若設(shè)置為PPI主站模式,PLC主機(jī)可以在RUN工作方式下為主站,可以用通信指令讀取其他PLC主機(jī)的數(shù)據(jù)。通信協(xié)議控制寄存器SMB30控制和設(shè)置通信端口0,如果PLC主機(jī)上有通信端口1,則用SMB130來進(jìn)行控制和設(shè)置。SMB30和SMB130的各位及其的含義如下:將特殊標(biāo)志寄存器中的SMB30和SMB130的低2位置為2#10,其他位為0,即SMB30和SMB130的值為16#2,則可以控制將S7-200CPU設(shè)置為PPI主站模式。(1)PP位:奇偶選擇(2)D位:有效位數(shù)(3)BBB位:自由口波特率(4)MM位:協(xié)議選擇MM:00=PPI從站模式01=自由口協(xié)議

10=PPI主站模式11=保留網(wǎng)絡(luò)通信指令在S7-200的PPI主站模式下,網(wǎng)絡(luò)通信指令有兩條:1網(wǎng)絡(luò)讀指令(NETR)功能:EN有效通過端口PORT從遠(yuǎn)程設(shè)備接收數(shù)據(jù),并形成數(shù)據(jù)表。NETR指令最多可以從遠(yuǎn)程設(shè)備上接受16字節(jié)的信息。2網(wǎng)絡(luò)寫指令(NETW)功能:EN有效通過端口PORT將數(shù)據(jù)表TBL中的數(shù)據(jù)發(fā)送到遠(yuǎn)程設(shè)備。最多可以向遠(yuǎn)程設(shè)備發(fā)送16字節(jié)的信息。NETRENENOTBLPORTNETWENENOTBLPORT傳送數(shù)據(jù)表(1)數(shù)據(jù)表格式執(zhí)行網(wǎng)絡(luò)讀寫指令時,PPI主站與從站之間的數(shù)據(jù)以數(shù)據(jù)表的格式傳送。傳送數(shù)據(jù)表的格式描述如表5.5示。表5.5傳送數(shù)據(jù)表格式(2)狀態(tài)字節(jié)傳送數(shù)據(jù)表中的第一個字節(jié)為狀態(tài)字節(jié),各位及其的含義如下:D—完成狀態(tài)。D=0未完成,D=1完成A—有效狀態(tài)。A=0無效,A=1有效操作已被排隊E—錯誤狀態(tài)。E=0無錯誤,E=1有錯誤0—無效位E1、E2、E3、E4錯誤編碼。如果執(zhí)行指令后E位為1,則由這4位返回一個錯誤碼。這4位組成的錯誤編碼及含義如表5.6所示。錯誤編碼表應(yīng)用實例有一簡單網(wǎng)絡(luò),結(jié)構(gòu)如下圖8.17所示。其中TD200為主站,在RUN模式下,CPU224在用戶程序中允許PPI主站模式,可以利用NETR和NETW指令來不斷讀寫兩個CPU221模塊中的數(shù)據(jù)。操作要求:站4要讀寫兩個遠(yuǎn)程站(站2和站3)的狀態(tài)字節(jié)和計數(shù)值(分別放在VB100和VW101中)。如果某個遠(yuǎn)程站中的計數(shù)值達(dá)到200,站4將發(fā)生一定動作,并將該遠(yuǎn)程站的計數(shù)值清0,重新計數(shù)。分析:網(wǎng)絡(luò)通信---要將站4設(shè)置為PPI主站模式主站建立接收與發(fā)送數(shù)據(jù)表,用以讀寫從站CPU224通信端口號為0,從VB200開始設(shè)置接收和發(fā)送緩沖區(qū)。接收緩沖區(qū)從VB200開始,發(fā)送緩沖區(qū)從VB250開始,內(nèi)容如表5.6所示。該網(wǎng)絡(luò)通信用戶程序如圖5.18所示。表5.6緩沖區(qū)設(shè)置圖5.18網(wǎng)絡(luò)程序?qū)嵗?)圖8.18網(wǎng)絡(luò)程序?qū)嵗?)返回本節(jié)二、自由口通信1相關(guān)寄存器及標(biāo)志2自由口指令3應(yīng)用實例自由口通信是用戶可自定義通信協(xié)議,通過建立通信中斷事件,使用通信指令控制PLC串口與其他設(shè)備進(jìn)行通信。返回本章首頁1相關(guān)寄存器及標(biāo)志1).控制寄存器2).特殊標(biāo)志位及中斷3).特殊存儲器字節(jié)1)控制寄存器SMB30或SMB130用以設(shè)置自由口通信協(xié)議SMB30控制和設(shè)置通信端口0,如果PLC主機(jī)上有通信端口1,則用SMB130來進(jìn)行控制和設(shè)置。SMB30和SMB130的各位及其的含義如下:(1)PP位:奇偶選擇00—無奇偶,01---偶校驗,10--無奇偶,11--奇校驗(2)D位:有效位數(shù)0---8位/字符,1---7位/字符(3)BBB位:自由口波特率選擇000=38400bit/s,001=19200bit/s,010=9600bit/s…….(4)MM位:協(xié)議選擇11---保留00—PPI從站模式,01—自由口協(xié)議,10—PPI主站模式2.特殊標(biāo)志位及中斷中斷接收中斷:中斷事件號為8(口0)和25(口1)。發(fā)送完成中斷:中斷事件號為9(口0)和26(口1)。接收完成中斷:中斷事件號為23(口0)和24(口1)。特殊標(biāo)志位SM4.5和SM4.6:分別用來表示口0和口1發(fā)送空閑狀態(tài)3.特殊存儲器字節(jié)接收信息時用到一系列特殊功能存儲器。對端口0用SMB86到SMB94;對端口1用SMB186到SMB194。各字節(jié)及內(nèi)容描述如下表5.7所示。返回本節(jié)2自由口指令1.XMT指令XMT,發(fā)送指令。使能輸入有效時,指令初始化通信操作,通過通信端口PORT將數(shù)據(jù)表TBL中的數(shù)據(jù)發(fā)送到遠(yuǎn)程設(shè)備。發(fā)送緩沖區(qū)(數(shù)據(jù)表)TBL的格式如表5.8所示。XMT2.RCV指令RCV,接收指令。使能輸入有效時,指令初始化通信操作,通過通信端口PORT從遠(yuǎn)程設(shè)備上接收數(shù)據(jù)并放到緩沖區(qū)(數(shù)據(jù)表)TBL。接收緩沖區(qū)TBL的格式如表5.8所示。返回本節(jié)應(yīng)用實例---例3-41以自由口通信方式向個人計算機(jī)不斷地發(fā)送“S7-200”六個ASCII碼。編程思路:建立通信協(xié)議-----設(shè)置SM30或SM130建立發(fā)送數(shù)據(jù)表編寫發(fā)送指令(一秒鐘發(fā)送一次)程序如下//初始化自由口選9600bit/s,8為數(shù)據(jù),無奇偶校驗//建發(fā)送數(shù)據(jù)表---將s7字符送表地址VW100//將-2字符送表地址VW102//將00字符送表地址VW104//數(shù)據(jù)表長度送VB99//發(fā)送指令例3-42個人計算機(jī)和PLC之間接受和發(fā)送信息。編程思路:用接收完成中斷,發(fā)送完成中斷實現(xiàn)接受和發(fā)送。主程序建立通信協(xié)議建立數(shù)據(jù)表建立接收完成中斷事件連接建立發(fā)送完成中斷事件連接開中斷設(shè)有三個中斷程序:接收完成中斷,定時中斷,發(fā)送完成中斷接收完成中斷引發(fā)定時中斷通信協(xié)議設(shè)置SMB30

00001001接收信息控制字節(jié)SMB87EN接收允許1SC是否用SM88檢測起始信息0EC是否用SM89檢測結(jié)束信息1IL是否用SM90檢測空閑狀態(tài)1C/M定時器定時性質(zhì)0TMR是否用SM92的值終止接收0BK是否用中斷條件檢測起始信息0SM86見p124

應(yīng)用實例1.控制要求本程序?qū)崿F(xiàn)的功能是,一臺CPU224作為本地PLC,用另一臺CPU224作為遠(yuǎn)程PLC,本地PLC接收來自遠(yuǎn)程PLC的20個字符,接收完成后,信息又發(fā)回對方。要求有一外部脈沖控制接收任務(wù)的開始,并且任務(wù)完成后用顯示燈顯示。2.參數(shù)設(shè)置自由口通信模式。通信協(xié)議為:波特率9600,無奇偶校驗,每字符8位。接收和發(fā)送用同一緩沖區(qū),首地址為VB100。不設(shè)立超時時間。3.程序主程序如右圖5.19所示。實現(xiàn)的功能是初始化通信口及緩沖區(qū),建立中斷聯(lián)系,并開放全局中斷。中斷程序INT_0,啟動發(fā)送指令。如圖5.20所示。圖5.19自由口通信例(主程序)圖5.20自由口通信例(中斷0程序)中斷程序INT_1,發(fā)結(jié)束時輸出。如圖8.21所示。圖5.21自由口通信例(中斷程序1)返回本節(jié)5.2.4高速計數(shù)

高速計數(shù)器HSC---High-speedcounter1.高速計數(shù)器介紹2.高速計數(shù)指令

3.高速計數(shù)器的使用方法

4.應(yīng)用實例

1.高速計數(shù)器介紹普通計數(shù)器是按照順序掃描的方式進(jìn)行工作,每個掃描周期中,對計數(shù)脈沖值進(jìn)行一次累加,當(dāng)輸入脈沖的頻率比PLC掃描頻率高時,則不能準(zhǔn)確計數(shù)??捎酶咚儆嫈?shù)器。高速計數(shù)器最大計數(shù)頻率可達(dá)20kHz,主要用于電機(jī)轉(zhuǎn)速的檢測,距離檢測等。(1)數(shù)量及編號高速計數(shù)器在程序中使用時的地址編號用HCn來表示(在非程序中有時用HSCn),HC表示編程元件名稱為高速計數(shù)器,n為編號。HCn除了表示高速計數(shù)器的編號之外,還代表兩方面的含義:高速計數(shù)器位和高速計數(shù)器當(dāng)前值(字)。編程時,從所用的指令可以看出是位還是當(dāng)前值(字)。不同型號的PLC主機(jī),高速計數(shù)器的數(shù)量對應(yīng)如表5.7所示。(2)中斷事件類型高速計數(shù)器的計數(shù)和動作可采用中斷方式進(jìn)行控制。各種型號的PLC可用的高速計數(shù)器的中斷事件大致分為3類:當(dāng)前值等于預(yù)設(shè)值中斷輸入方向改變中斷外部復(fù)位中斷。所有高速計數(shù)器都支持當(dāng)前值等于預(yù)設(shè)值中斷。每個高速計數(shù)器的3種中斷的優(yōu)先級由高到低,不同高速計數(shù)器之間的優(yōu)先級又按編號順序由高到低。具體對應(yīng)關(guān)系如表5.8所示。高速計數(shù)器的中斷的優(yōu)先級(3)工作模式高速計數(shù)器的工作模式共有12種。6個計數(shù)器功能不完全一樣??赏ㄟ^編程,使用定義高速計數(shù)器指令HDEF來選定工作模式。可分為四類:-----以HSC0為例帶內(nèi)部方向控制的單相計數(shù)器(一個輸入I0.0端或加,或減)-----設(shè)置SM37.3(0減計數(shù),1加計數(shù))帶外部方向控制的單相計數(shù)器(兩個輸入,一個I0.0計數(shù)輸入,一個方向控制I0.1—0減;1加)帶增減計數(shù)器的雙向計數(shù)器(兩個計數(shù)輸入端,一增I0.0一減I0.1)正交計數(shù)器兩個時鐘輸入端A相I0.0,B相I0.1相差900(A相超前B相90順時針轉(zhuǎn)動---增計數(shù),A相滯后B相90逆時針轉(zhuǎn)動---減計數(shù))(4)輸入端連接選用某個高速計數(shù)器在某種工作模式下工作,高速計數(shù)器的輸入端不是任意選擇,必須按系統(tǒng)指定的專用輸入點。如表5.9所示。上述輸入點在不使用高速計數(shù)器時,可作為一般的數(shù)字量輸入點2.高速計數(shù)指令

高速計數(shù)器指令有兩條:HDEF和HSC。(1)HDEF指令HDEF,定義高速計數(shù)器指令。使能輸入有效時,為指定的高速計數(shù)器選定一種工作模式。梯形圖指令盒中有兩個數(shù)據(jù)輸入端:HSC,高速計數(shù)器編號,為0~5的常數(shù),字節(jié)型;MODE,工作模式,為0~11的常數(shù),字節(jié)型。每個高速計數(shù)器在使用前,都要用HDEF定義工作模式,并且只能定義一次04(2)HSC指令HSC,高速計數(shù)器指令。使能輸入有效時,根據(jù)高速計數(shù)器特殊存儲器位的狀態(tài),并按照HDEF指令指定的工作模式,使高速計數(shù)器設(shè)置生效并執(zhí)行計數(shù)操作。梯形圖指令盒數(shù)據(jù)輸入端N:高速計數(shù)器編號,為0~5的常數(shù),字型。4每個高速計數(shù)器都有固定的特殊功能存儲器與之相配合,完成高速計數(shù)功能。具體對應(yīng)關(guān)系如表5.11所示。3.高速計數(shù)器的使用方法

反映工作狀態(tài)見書表3-7啟動或關(guān)閉計數(shù)器,控制方向等見書表3-8狀態(tài)字節(jié)每個高速計數(shù)器都有一個狀態(tài)字節(jié),程序運(yùn)行時根據(jù)運(yùn)行狀況自動使某些位置位,可以通過程序來讀相關(guān)位的狀態(tài),用以作為判斷條件實現(xiàn)相應(yīng)的操作。狀態(tài)字節(jié)中各狀態(tài)位的功能如表5.12所示??刂谱止?jié)表5.13控制位含義1選擇計數(shù)器及工作模式2設(shè)置控制字節(jié)3執(zhí)行HDEF指令

4設(shè)定當(dāng)前值和預(yù)設(shè)值

5設(shè)置中斷事件并全局開中斷6執(zhí)行HSC指令

高速計數(shù)器編程步驟:如:對一高速脈沖信號進(jìn)行增減計數(shù),計數(shù)當(dāng)前值達(dá)到120產(chǎn)生中斷,計數(shù)方向由外部信號控制(主機(jī)CPU224)(1)選HSC0模式3,I0.0計數(shù)I0.1方向控制(書P135)(2)SMB37---F8(3)執(zhí)行HDEF指令(4)0—SMD38,120---SMD42(5)12---INT0(6)執(zhí)行HSC指令4.應(yīng)用實例1

要對一高速事件精確控制,通過對脈沖信號進(jìn)行增計數(shù),計數(shù)當(dāng)前值達(dá)到24產(chǎn)生中斷,重新從0計數(shù),對中斷次數(shù)進(jìn)行累計。計數(shù)方向用一個外部信號控制,并能實現(xiàn)外部復(fù)位。所用的主機(jī)型號為CPU221。設(shè)計步驟:①選擇高速計數(shù)器HSC0,并確定工作方式4。②令SM37=16#F8③執(zhí)行HDEF指令,輸入端HSC為0,MODE為4。④裝入當(dāng)前值,令SMD38=0。⑤裝入設(shè)定值,令SMD42=24。⑥執(zhí)行中斷連接ATCH指令,輸入端INT為INT0,EVNT為12。

主程序、初始化子程序和中斷程序分別如圖5.12、圖5.13和圖5.14所示。圖5.12主程序圖5.13初始化子程序12圖5.14中斷程序返回本節(jié)六層電梯平層信號產(chǎn)生。用高速計數(shù)器測距離,了解轎廂當(dāng)前位置和平層信號產(chǎn)生。見附加程序。應(yīng)用實例25.2.5高速脈沖輸出

在需要對負(fù)載進(jìn)行高精度控制時,如對步進(jìn)電機(jī)的控制,需要對步進(jìn)電機(jī)提供一系列的脈沖,高速脈沖輸出指令就是為滿足這種需求而開發(fā)的。1.高速脈沖輸出介紹(1)輸出端子的確定(2)高速脈沖輸出的形式(3)相關(guān)寄存器

(4)脈沖輸出指令

(1)輸出端子的確定S7-200只有輸出繼電器Q0.0和Q0.1具有高速脈沖輸出功能。不用高速脈沖時,作普通的數(shù)字量輸出點用。(2)高速脈沖輸出的形式高速脈沖輸出有兩種的形式:高速脈沖序列(或稱高速脈沖串)輸出PTO脈沖寬度調(diào)制輸出PWM可通過特殊繼電器來定義輸出的形式。每個高速脈沖發(fā)生器對應(yīng)一定數(shù)量特殊標(biāo)志寄存器,這些寄存器包括控制字節(jié)寄存器、狀態(tài)字節(jié)寄存器和參數(shù)數(shù)值寄存器,用以控制高速脈沖的輸出形式、反映輸出狀態(tài)和參數(shù)值。各寄存器分配如表5.14所示。(3)相關(guān)的寄存器每個高速脈沖輸出都有一個狀態(tài)字節(jié)(SMB66或SMB76),程序運(yùn)行時根據(jù)運(yùn)行狀況自動使某些位置位,可以通過程序來讀相關(guān)位的狀態(tài),用以作為判斷條件實現(xiàn)相應(yīng)的操作。狀態(tài)字節(jié)中各狀態(tài)位的功能如表5.15所示。狀態(tài)字節(jié)每個高速脈沖輸出都對應(yīng)一個控制字節(jié),通過對控制字節(jié)中指定位的編程,可以根據(jù)操作要求設(shè)置字節(jié)中各控制位,如脈沖輸出允許、PTO/PWM模式選擇、單段/多段選擇、更新方式、時間基準(zhǔn)、允許更新等??刂谱止?jié)中各控制位的功能如表5.16所示??刂谱止?jié)脈沖輸出指令PLS指令功能:EN有效,檢測各相關(guān)寄存器的狀態(tài),激活由控制字節(jié)定義的高速脈沖輸出操作。Q取0或1對應(yīng)Q0.0和Q0.1PLSENENOQ02.高速脈沖串輸出PTO(1)周期和脈沖數(shù)(2)PTO的種類(3)中斷事件類型(4)PTO的使用(1)周期和脈沖數(shù)周期:單位可以是微秒μs或毫秒ms;為16位無符號數(shù)據(jù),周期變化范圍是50~65535μs或2~65535ms,通常應(yīng)設(shè)定周期值為偶數(shù),若設(shè)置為奇數(shù),則會引起輸出波形占空比的輕微失真。如果編程時設(shè)定周期單位小于2,系統(tǒng)默認(rèn)按2進(jìn)行設(shè)置。脈沖數(shù):用雙字長無符號數(shù)表示,脈沖數(shù)取值范圍是1~4294967295之間。如果編程時指定脈沖數(shù)為0,則系統(tǒng)默認(rèn)脈沖數(shù)為1個。SM67.3(2)PTO的種類PTO方式中,如果要輸出多個脈沖串,允許脈沖串進(jìn)行排隊,形成管線,當(dāng)前輸出的脈沖串完成之后,立即輸出新脈沖串,這保證了脈沖串順序輸出的連續(xù)性。根據(jù)管線的實現(xiàn)方式分:單段管線---管線中只能存放一個脈沖串的控制參數(shù)(入口地址)。在當(dāng)前脈沖串輸出期間,要對下一個脈沖串的相關(guān)寄存器進(jìn)行更新。當(dāng)前脈沖串輸出完成,即可開始輸出新脈沖串。多段管線---輸出多個脈沖串。需要在變量存儲區(qū)建包絡(luò)表,在包絡(luò)表中存儲各脈沖串的參數(shù),當(dāng)執(zhí)行PLS指令時,CPU自動按順序從包絡(luò)表中調(diào)出各個脈沖串的入口地址,連續(xù)輸出各個脈沖串。多管線PTO包絡(luò)表由包絡(luò)段數(shù)和各段構(gòu)成。每段長度為8個字節(jié),包括:脈沖周期值(16位)、周期增量值(16位)和脈沖計數(shù)值(32位)。以包絡(luò)3段的包絡(luò)表為例,包絡(luò)表的結(jié)構(gòu)如表5.17所示。(3)中斷事件類型高速脈沖串輸出可以采用中斷方式進(jìn)行控制,各種型號的PLC可用的高速脈沖串輸出的中斷事件有兩個,如表5.18所示。(4)PTO的使用----編程要點使用高速脈沖串輸出時,要按以下步驟進(jìn)行:確定脈沖串的輸出端及管線的實現(xiàn)方式(單段多段)

設(shè)置控制字節(jié)---將控制字寫入SMB67或SMB77寫入周期值、周期增量值和脈沖數(shù)周期增量值=(Tn+1-Tn)/N

其中:Tn-------該段開始的周期時間

Tn+1------該段結(jié)束的周期時間

N------該段脈沖數(shù)裝入包絡(luò)的首地址設(shè)置中斷事件并全局開中斷執(zhí)行PLS指令3.應(yīng)用實例(1)控制要求步進(jìn)電機(jī)轉(zhuǎn)動過程中,要從A點加速到B點后恒速運(yùn)行,又從C點開始減速到D點,完成這一過程時用指示燈顯示。電機(jī)的轉(zhuǎn)動受脈沖控制,A點和D點的脈沖頻率為2kHz,B點和C點的頻率為10kHz,加速過程的脈沖數(shù)為400個,恒速轉(zhuǎn)動的脈沖數(shù)為4000個,減速過程脈沖數(shù)為200個。工作過程如圖5.15所示。圖5.15步進(jìn)電機(jī)工作過程400個脈沖4000個脈沖200個脈沖(2)分析確定脈沖發(fā)生器及工作模式

設(shè)置控制字節(jié)

寫入周期值、周期增量值和脈沖數(shù)

裝入包絡(luò)表首地址

中斷調(diào)用

執(zhí)行PLS指令

1用Q0.0,多管線方式—3段(AB段、BC段、CD段)2確定周期值的時基單位,BC段頻率最大10KHZ,對應(yīng)的周期值為100us,時基單位為us,所以SMB67---16#A03確定初始周期,周期增量初始周期:求每段的頻率的倒數(shù)可得AB段500us,BC段100us,CD段100us周期增量=(Tn+1-Tn)/N,AB段-1,BC段0,CD段24設(shè)包絡(luò)表首地址VB400建立包絡(luò)表?!獭贪j(luò)表(3)程序?qū)崿F(xiàn)本控制系統(tǒng)主程序如下圖5.16所示。初始化子程序SBR_1如圖5.17所示。包絡(luò)表子程序如圖5.18所示。中斷程序如圖5.19所示。圖5.16主程序圖5.17初始化子程序SBR_1圖5.18包絡(luò)表子程序SBR_0(1)

MOVW

+100,VW409

//

//第2段周期初

//值為100ms

//

//

MOVW

0,VW411

//

//第2段周期

//增量為0

MOVD

+4000,VD413

//

//第2段脈沖數(shù)

//為4000個

LDSM0.0//運(yùn)行脈沖MOVB3,VB400////定義開始字節(jié)//為VB400//裝入段數(shù)3MOVW+500,VW401////第1段周期初//值為500ms////MOVW-1,VW403////第1段周期//增量為-1MOVD+400,VD405////第1段脈沖數(shù)//為400個圖5.18包絡(luò)表子程序SBR_0(2)圖5.19中斷程序4.寬度可調(diào)脈沖輸出PWM從Q0.0或Q0.1輸出周期固定,脈沖寬度變化的脈沖信號(1)周期和脈沖寬度周期同PTO。脈沖寬度為16為無符號數(shù),脈沖寬度增量單位為us或ms。范圍0~65535,占空比為0~100%。當(dāng)脈沖寬度大于或等于周期時輸出將連續(xù)接通。為0時,輸出一直被關(guān)斷。(2)更新方式

根據(jù)在改變脈沖寬度時是否需要改變時間基準(zhǔn),可分為同步更新和異步更新。返回本節(jié)同步更新:脈寬的改變和PWM脈沖的新周期同步發(fā)生。適用于不需要改變時間基準(zhǔn)的情況,常用中斷實現(xiàn)。異步更新:需要改變時間基準(zhǔn)時使用。異步更新可能會導(dǎo)致PWM功能暫時失效,造成被控裝置的振動。(3)PWM的使用---編程要點確定高速PWM的輸出端(Q0.0或Q0.1)初始化設(shè)置設(shè)置控制字節(jié)---將控制字寫入SMB67或SMB77寫入周期值SMW68(78)、寫入脈沖寬度值SMW70(80)執(zhí)行PLS指令應(yīng)用舉例---(書例3-46)將Q0.1設(shè)置為PWM輸出形式,脈沖周期固定為10s,初始脈沖寬度1000ms,當(dāng)M0.0上升沿有效脈沖寬度改為5000ms。//控制字節(jié)設(shè)置,允許PWM,選擇PWM單段操作,同步更新,時基1ms脈沖數(shù)不更新,脈沖寬度更新,周期更新//設(shè)置周期10s,設(shè)置脈沖寬度1000執(zhí)行PLS,Q0.1輸出PWM重裝控制字節(jié),設(shè)為禁止更新周期后可更新脈沖寬度//新脈沖寬度設(shè)為5000ms//執(zhí)行PLS5.2.6

PID回路指令

在過程控制中經(jīng)常涉及到模擬量的控制,構(gòu)成閉環(huán)控制系統(tǒng)。而對模擬量的處理,除對模擬量的采樣檢測外,還要對采樣值進(jìn)行PID運(yùn)算。根據(jù)運(yùn)算結(jié)果形成對模擬量的控制作用。1.PID算法

2.PID指令

3.應(yīng)用實例

1.PID算法

1.PID算法如果一個PID回路的輸出M(t)是時間的函數(shù),則可以看作是比例項、積分項和微分項三部分之和。即:其中:Kc為回路增益,M0為回路輸出的初始值變成數(shù)字離散形式Mn----第n個采樣時刻計算出來的回路控制輸出值en----第n個采樣時刻回路偏差en

-1----第n-1個采樣時刻回路偏差KC----回路增益KI----積分項的比例系數(shù)KD----微分項的比例系數(shù)M0----初始值上式可表示為Mn----第n個采樣時刻PID計算值MPn

----第n個采樣時刻比例項值MIn

----第n個采樣時刻積分項值MDn

----第n個采樣時刻微分項值TS為采樣周期TI為積分時間常數(shù)TD為微分時間常數(shù)SPn第n個采樣時刻的給定值VPn第n個采樣時刻過程變量值MX第n-1個采樣時刻積分項的值采樣后的過程變量與給定值的偏差,經(jīng)上式PID運(yùn)算出控制量。上式共包含9個參數(shù),在執(zhí)行PID指令前要建立一個PID參數(shù)表----初始化處理。PID參數(shù)表格式地址偏移量PID參數(shù)數(shù)據(jù)格式I/O類型描述0PVn雙字、實數(shù)I過程變量的當(dāng)前值,0.0~1.04SPnI給定值,0.0~1.08MnI/O輸出值,0.0~1.012KCI回路增益,正負(fù)長值16TSI采樣周期,單位s,正

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論