




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第六章SPLC功能指令二第一頁,共一百五十七頁,編輯于2023年,星期一4:子程序及應(yīng)用5:中斷程序及應(yīng)用6:高速計數(shù)器功能及應(yīng)用7:高速脈沖輸出功能及應(yīng)用第二頁,共一百五十七頁,編輯于2023年,星期一第四節(jié)子程序及應(yīng)用一、子程序簡介
子程序可以對程序進行分塊,使用子程序?qū)⒊绦蚍殖扇菀坠芾淼男K,使程序結(jié)構(gòu)簡單清晰,易于查錯和維護。
子程序常用于需要多次反復(fù)執(zhí)行相同任務(wù)的地方,只需要寫一次子程序,別的程序在需要的時候調(diào)用它,而無需重寫該程序。
子程序的調(diào)用是有條件的,未調(diào)用它時不會執(zhí)行子程序中的指令,因此使用子程序可以減少掃描時間。第三頁,共一百五十七頁,編輯于2023年,星期一S7-200CPU的控制程序由主程序、子程序和中斷程序組成。STEP7-Micro/WIN在程序編輯器窗口里為每個POU(程序組織單元)提供一個獨立的頁。主程序總是第1頁,后面是子程序和中斷程序。
各個程序在編輯器窗口里被分開,編譯時在程序結(jié)束的地方自動加上無條件結(jié)束/返回指令,用戶程序可使用有條件結(jié)束/返回指令。第四頁,共一百五十七頁,編輯于2023年,星期一二、局部變量表1、局部變量與全局變量
在SIMATIC符號表或IEC的全局變量表中定義的變量為全局變量。程序中的每個POU(ProgramOrganizationalUnit,程序組織單元)均有自己的由64BL存儲器組成的局部變量表。它們用來定義有范圍限制的變量,局部變量只在它被創(chuàng)建的POU中有效。與之相反,全局符號在各POU中均有效,只能在符號表/全局變量表中定義。全局符號與局部變量名稱相同時,在定義局部變量的POU中,該局部變量的定義優(yōu)先,該全局定義則在其它POU中使用。第五頁,共一百五十七頁,編輯于2023年,星期一局部變量優(yōu)點:①在子程序中只用局部變量,不用絕對地址或全局符號,子程序可以移植到別的項目去。②如果使用臨時變量(TEMP),同一片物理存儲器可以在不同的程序中重復(fù)使用。局部變量還用來在子程序和調(diào)用它的程序之間傳遞輸入?yún)?shù)和輸出參數(shù)。第六頁,共一百五十七頁,編輯于2023年,星期一2、局部變量的類型
局部變量表中的變量類型區(qū)定義的變量有:
IN:傳入子程序參數(shù),由調(diào)用它的POU提供的輸入?yún)?shù)。
OUT:傳出子程序參數(shù),將從子程序來的結(jié)果值返回到指定參數(shù)的位置。
IN/OUT:傳入/傳出子程序參數(shù)。
TEMP:暫時變量,只能在子程序內(nèi)部暫時存儲數(shù)據(jù)。不能用來傳遞參數(shù)。
第七頁,共一百五十七頁,編輯于2023年,星期一注意:
只有在執(zhí)行該POU時,定義的臨時變量才被使用,POU執(zhí)行完后,不再使用臨時變量的數(shù)值。在主程序或中斷程序中,局部變量表只包含TEMP變量。3、局部變量的賦值
在局部變量表中賦值時,只需指定局部變量的類型(TEMP、IN、IN_OUT或OUT)和數(shù)據(jù)類型,不用指定存儲器地址,程序編輯器按照子程序指令的調(diào)用順序,將參數(shù)值分配給局部變量存儲器,起始地址是L0.0;8個連續(xù)位的參數(shù)值分配一個字節(jié),從LX.0到LX.7。
第八頁,共一百五十七頁,編輯于2023年,星期一4、在局部變量表中增加新的變量
對于主程序與中斷程序,局部變量表顯示一組已被預(yù)先定義為TEMP變量的行。要在表中增加行,只需用右鍵單擊表中的某一行,在彈出的菜單中執(zhí)行“插入”→“行”命令,在所選行的上部插入新的行。執(zhí)行菜單命令“插入”→“下一行”
在所選行的下部插入新的行。對于子程序,局部變量表顯示數(shù)據(jù)類型被預(yù)先定義為IN、IN_OUT、OUT和TEMP的一系列行,不能改變它們的順序。如果要增加新的局部變量,必須用鼠標右鍵單擊已有的行,并用彈出菜單在所擊行的上面或下面插入相同類型的另一局部變量。
第九頁,共一百五十七頁,編輯于2023年,星期一5、局部變量數(shù)據(jù)類型檢查
局部變量作為參數(shù)向子程序傳遞時,在該子程序的局部變量表中指定的數(shù)據(jù)類型必須與調(diào)用它的POU中的數(shù)據(jù)類型值匹配。
例如:在主程序OB1中調(diào)用子程序SBR0,使用名為INPUT1的全局符號作為子程序的輸入?yún)?shù)。在SBR0的局部變量表中,已經(jīng)定義了一個名為FIRST的局部變量作為該輸入?yún)?shù)。當OB1調(diào)用SBR0時,INPUT1的數(shù)值被傳入FIRST,INPUT1和FIRST的數(shù)據(jù)類型必須完全匹配。第十頁,共一百五十七頁,編輯于2023年,星期一三、建立子程序在“編輯”菜單中執(zhí)行命令“插入”→“子程序”;在程序編輯器視窗中點擊鼠標右鍵,從彈出的菜單中執(zhí)行命令“插入”→“子程序”;新建的子程序,默認的程序名是SBR_n,編號n從0(0~63)開始按遞增順序生成。用鼠標右鍵點擊指令樹中的子程序的圖標,在彈出的菜單中選擇“重新命名”,可以修改它們的名稱。注意:CPU226的項目中最多可以創(chuàng)建128個子程序。第十一頁,共一百五十七頁,編輯于2023年,星期一四、子程序的調(diào)用(CALL指令)
可以帶參數(shù)或不帶參數(shù)調(diào)用子程序。每個子程序必須以無條件返回(RET)指令作結(jié)束,STEP7-Micio/WIN編程軟件為每個子程序自動加入無條件返回(RET)指令。有條件子程序返回(CRET)指令,在控制條件有效時,終止子程序(n)。子程序執(zhí)行完畢,控制程序回到主程序中子程序調(diào)用(CALL)指令的下一條指令。主程序可以用子程序調(diào)用(CALL)指令來調(diào)用一個子程序。子程序調(diào)用(CALL)指令把程序控制權(quán)交給子程序(n)。子程序結(jié)束后,必須返回主程序。第十二頁,共一百五十七頁,編輯于2023年,星期一第十三頁,共一百五十七頁,編輯于2023年,星期一②子程序被調(diào)用時,系統(tǒng)會保存當前的邏輯堆棧。保存后再置棧頂值為1,堆棧的其他值為零,把控制權(quán)交給被調(diào)用的子程序。子程序執(zhí)行完畢,通過返回指令自動恢復(fù)邏輯堆棧原調(diào)用點的值,把控制權(quán)交還給調(diào)用程序。③因為累加器可在調(diào)用程序和被調(diào)用程序之間自由傳遞數(shù)據(jù),所以累加器的值在子程序調(diào)用開始時不需要另外保存,在子程序調(diào)用結(jié)束時也不用恢復(fù)。說明:①在中斷程序、子程序中也可調(diào)用子程序;主程序中可以嵌套調(diào)用子程序,嵌套深度為8層。中斷程序中,不能嵌套調(diào)用子程序。第十四頁,共一百五十七頁,編輯于2023年,星期一五、帶參數(shù)子程序的調(diào)用1、子程序參數(shù)
由不超過23個字符的字母和數(shù)字組成,但第一個字符必須是字母。2、變量名
在子程序帶參數(shù)調(diào)用時可以使用4種變量類型。3、變量類型①IN類型(傳入子程序)②IN/OUT類型(傳入傳出子程序)③OUT類型(傳出子程序)④TEMP類型(暫時型)子程序在帶參數(shù)調(diào)用時,最多可以帶16個參數(shù),每個參數(shù)包含變量名、變量類型和數(shù)據(jù)類型。這些參數(shù)在子程序的局部變量表中進行定義。第十五頁,共一百五十七頁,編輯于2023年,星期一4、使用局部變量表
當給子程序傳遞數(shù)據(jù)時,這些參數(shù)被存放在子程序的局部變量存儲器中,當調(diào)用子程序時,輸入?yún)?shù)被拷貝到子程序的局部變量存儲器中,當子程序完成時,從局部變量存儲器拷貝輸出參數(shù)到指定的輸出參數(shù)地址。局部變量表使用局部變量存儲器L,CPU在執(zhí)行子程序時,自動分配給每個子程序64個局部變量存儲器單元,在進行子程序參數(shù)調(diào)用時,將調(diào)用參數(shù)按照變量類型IN,IN/OUT,0UT和TEMP的順序依次存入局部變量表中。第十六頁,共一百五十七頁,編輯于2023年,星期一5、將參數(shù)值指定給子程序中的局部內(nèi)存時應(yīng)遵守下列規(guī)則:③字節(jié)、字和雙字數(shù)值被指定給局部內(nèi)存,位于字節(jié)邊界(LBx、LWx或LDx)位置。在帶參數(shù)的“調(diào)用子程序”指令中,參數(shù)必須與子程序局部變量表中定義的變量完全匹配。參數(shù)順序必須以輸入?yún)?shù)開始,其次是輸入/輸出參數(shù),然后是輸出參數(shù)。②一至八個連續(xù)位參數(shù)值被指定給從Lx.0開始持續(xù)至Lx.7的單字節(jié)。
①參數(shù)值指定給局部內(nèi)存的順序由CALL指定,參數(shù)從L0.0開始。第十七頁,共一百五十七頁,編輯于2023年,星期一例:帶參數(shù)的子程序調(diào)用如下所示。第十八頁,共一百五十七頁,編輯于2023年,星期一第十九頁,共一百五十七頁,編輯于2023年,星期一注釋:Micro/WIN保留L內(nèi)存的最上方的4個字節(jié)(LB60-LB63),用于調(diào)用參數(shù)數(shù)據(jù)。//L內(nèi)存被用于保存布爾輸入?yún)?shù)狀態(tài),//此類參數(shù)在LAD和FBD中被顯示為使能位輸入。//從而允許本網(wǎng)絡(luò)在LAD、FBD和STL編輯器中顯示。第二十頁,共一百五十七頁,編輯于2023年,星期一名為“模擬量計算”的子程序如下圖所示,在該子程序的局部變量表中,定義了名為“轉(zhuǎn)換值”、“系數(shù)1”和“系數(shù)2”的輸入(IN)變量,名為“模擬值”的輸出(OUT)變量,和名為“暫存”的臨時(TEMP)變量。局部變量表最左邊的一列是每個參數(shù)在局部存儲器(L)中的地址。#表示局部變量,軟件自動添加。第二十一頁,共一百五十七頁,編輯于2023年,星期一如果用語句表編程,子程序調(diào)用指令的格式為:
CALL子程序號,參數(shù)1,參數(shù)2,……參數(shù)n,n=1~16。上梯形圖對應(yīng)的語句表程序為:LDI0.1CALL模擬量計算,AIW2,VW20,+2356,VD40第二十二頁,共一百五十七頁,編輯于2023年,星期一六、子程序中定時器的使用調(diào)用子程序時,子程序中的定時器正常計時;停止調(diào)用子程序時,線圈在子程序內(nèi)的位元件的ON/OFF狀態(tài)保持不變。如果在停止調(diào)用時子程序中的定時器正在定時,100ms定時器將停止定時,當前值保持不變,重新調(diào)用時繼續(xù)定時;但1ms和10ms定時器將繼續(xù)定時,定時時間到時,它們的定時器位變?yōu)?狀態(tài),且可以在子程序之外起作用。第二十三頁,共一百五十七頁,編輯于2023年,星期一七、子程序應(yīng)用舉例例1:用兩個子程序分別控制兩臺電動機的啟停,主程序中調(diào)用子程序?qū)崿F(xiàn)控制。OB1SBR0SBR1方案一:無參數(shù)傳遞第二十四頁,共一百五十七頁,編輯于2023年,星期一OB1方案二:帶參數(shù)傳遞LDI0.0=L60.0LDI0.1=L63.7LDI0.2=L63.6LDL60.0CALLSBR_0:SBR0,L63.7,L63.6,Q0.0LDI1.0=L60.0LDI1.1=L63.7LDI1.2=L63.6LDL60.0CALLSBR_0:SBR0,L63.7,L63.6,Q1.0第二十五頁,共一百五十七頁,編輯于2023年,星期一SBR0方案二:帶參數(shù)傳遞LD#啟動:L0.0O#電機:L0.2AN#停止:L0.1=#電機:L0.2第二十六頁,共一百五十七頁,編輯于2023年,星期一例2:設(shè)計一記錄設(shè)備運行時間的子程序,符號名為“運行時間”。設(shè)備運行時I0.0為ON,用I0.0的常開觸點調(diào)用子程序。OB1第二十七頁,共一百五十七頁,編輯于2023年,星期一SBR0第二十八頁,共一百五十七頁,編輯于2023年,星期一第五節(jié)中斷程序及應(yīng)用一、中斷程序簡介
中斷程序可以為PLC內(nèi)部或外部的特殊事件提供快速反應(yīng),在PLC控制系統(tǒng)中,對于不定期產(chǎn)生的繼續(xù)處理事件,常通過采用中斷處理技術(shù)來完成。
中斷程序不是由程序調(diào)用,而是在中斷事件發(fā)生時由系統(tǒng)調(diào)用。
當CPU響應(yīng)中斷請求后,會暫時停止當前正在執(zhí)行的程序,進行現(xiàn)場保護,然后轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序中去處理。第二十九頁,共一百五十七頁,編輯于2023年,星期一
一旦中斷程序處理結(jié)束,立即恢復(fù)現(xiàn)場,將保存起來的現(xiàn)場數(shù)據(jù)和狀態(tài)重新裝入,返回到源程序繼續(xù)執(zhí)行。
在S7-200中,中斷服務(wù)程序的調(diào)用和處理由中斷指令來完成。一般中斷程序都較為短小和簡明扼要,這樣可以加快中斷程序執(zhí)行的速度,使其他程序不會受到長時間的延誤。第三十頁,共一百五十七頁,編輯于2023年,星期一二、中斷源及中斷事件1、中斷源及種類
中斷源,即中斷事件發(fā)出中斷請求的來源。S7-200PLC具有最多可達34個中斷源,每個中斷源都分配一個編號用以識別,稱為中斷事件號。這些中斷源大致分為三大類:通信中斷、輸入輸出中斷和時基中斷。S7-200中,過程中斷分為通信中斷和輸入輸出中斷。通信中斷包括通信口0和通信口1產(chǎn)生的中斷;輸入輸出中斷包括外部輸入中斷、高速計數(shù)器中斷和高速脈沖串輸出中斷。第三十一頁,共一百五十七頁,編輯于2023年,星期一1)通信中斷:是指S7-200的串行通信口可以通過梯形圖或語句表編程的方法來設(shè)置波特率、奇偶校驗和通信協(xié)議等參數(shù),對通信口的這種操作方式,又稱為自由口通信。利用接收和發(fā)送中斷可簡化程序?qū)νㄐ诺目刂啤?)外部輸入中斷:來自過程中斷的信息可通過I0.0,I0.1,I0.2,I0.3的上升沿或下降沿輸入到PLC中。3)高速計數(shù)器中斷:應(yīng)用高速計數(shù)器場合,當其當前值等于設(shè)定值時,或當計數(shù)方向發(fā)生改變時,或當其外部復(fù)位時,都可能使其向CPU提出中斷請求。第三十二頁,共一百五十七頁,編輯于2023年,星期一S7-200中,時基中斷分為定時中斷和定時器中斷。4)高速脈沖串輸出中斷:當PLC完成輸出給定數(shù)量的高速脈沖串時,可引起中斷。1)定時中斷:定時中斷響應(yīng)周期性的事件,周期時間以1ms為計量單位,最小周期為5ms,最大周期為255ms。
定時中斷有兩種類型:定時中斷0和定時中斷1。對于定時中斷0,把周期時間寫入特殊繼電器SMB34;對于定時中斷1,把周期時間寫入特殊繼電器SMB35。利用定時中斷可以設(shè)定采樣周期,實現(xiàn)對模擬量的數(shù)據(jù)采樣。第三十三頁,共一百五十七頁,編輯于2023年,星期一2)定時器中斷:定時器中斷是利用指定的定時器設(shè)定的時間產(chǎn)生中斷。在S7-200中,指定的定時器為1ms的通電延時定時器T32和斷電延時定時器T96。S7-200的CPU中可響應(yīng)最多34個中斷事件,見下表。事件號中斷事件描述優(yōu)先級別CPU221CPU222CPU224CPU2260I0.0上升邊沿中斷
2YYYY1I0.0下降邊沿中斷6YYYY2I0.1上升邊沿中斷3YYYY3I0.1下降邊沿中斷7YYYY第三十四頁,共一百五十七頁,編輯于2023年,星期一事件號中斷事件描述優(yōu)先級別CPU221CPU222CPU224CPU2264I0.2上升邊沿中斷4YYYY5I0.2下降邊沿中斷8YYYY6I0.3上升邊沿中斷6YYYY7I0.3下降邊沿中斷9YYYY8端口0:接收字符0YYYY9端口0:傳輸完成0YYYY10定時中斷00YYYY11定時中斷11YYYY12HSC0,CV=PV10YYYY第三十五頁,共一百五十七頁,編輯于2023年,星期一事件號中斷事件描述優(yōu)先級別CPU221CPU222CPU224CPU22613HSC1,CV=PV13YY14HSC1方向改變14YY15HSC1外部復(fù)原15YY16HSC2,CV=PV16YY17HSC2方向改變17YY18HSC2外部復(fù)原18YY19PTO0完成中斷0YYYY20PTO1完成中斷1YYYY21定時器T32,CT=PT中斷2YYYY第三十六頁,共一百五十七頁,編輯于2023年,星期一事件號中斷事件描述優(yōu)先級別CPU221CPU222CPU224CPU22622定時器T96,CT=PT中斷2YYYY23端口0:接收信息完成0YYYY24端口1:接收信息完成1Y25端口1:接收字符
1Y26端口1:傳輸完成1Y27HSC0方向改變11YYYY28HSC0外部復(fù)原12YYYY29HSC4,CV=PV20YYYY30HSC4方向改變21YYYY第三十七頁,共一百五十七頁,編輯于2023年,星期一2、中斷優(yōu)先級
中斷優(yōu)先級由高到低依次是:通信中斷、輸入輸出中斷、時基中斷。每種中斷中的不同中斷事件又有不同的優(yōu)先權(quán)。主機中的所有中斷事件及優(yōu)先級參照上表所示。事件號中斷事件描述優(yōu)先級別CPU221CPU222CPU224CPU22631HSC4外部復(fù)原22YYYY32HSC3,CV=PV19YYYY33HSC5,CV=PV23YYYY第三十八頁,共一百五十七頁,編輯于2023年,星期一在PLC中,CPU一般在指定的優(yōu)先級內(nèi)按照先來先服務(wù)的原則響應(yīng)中斷事件的中斷請求,在任何時刻,CPU只執(zhí)行一個中斷程序。當CPU按照中斷優(yōu)先級響應(yīng)并執(zhí)行一個中斷程序時,就不會響應(yīng)其他中斷事件的中斷請求(盡管此時可能會有更高級別的中斷事件發(fā)出中斷請求),直到將當前的中斷程序執(zhí)行結(jié)束。在CPU執(zhí)行中斷程序期間,對新出現(xiàn)的中斷事件仍然按照中斷性質(zhì)和優(yōu)先級的順序分別進行排隊,形成中斷隊列。CPU22x系列的中斷隊列的長度如下表所示。如果超過規(guī)定的中斷隊列長度,則產(chǎn)生溢出,使特殊繼電器置位。第三十九頁,共一百五十七頁,編輯于2023年,星期一中斷隊列CPU221CPU222CPU224CPU226溢出位通信中斷4個4個4個8個SM4.0I/O中斷16個16個16個16個SM4.1時基中斷8個8個8個8個SM4.2表中斷隊列的長度及溢出位CPU型號CPU221CPU222CPU224CPU226可連接中斷事件數(shù)253134可連接中斷事件號0~12,19~23,27~330~23,27~330~33表中斷數(shù)量及事件第四十頁,共一百五十七頁,編輯于2023年,星期一三、中斷程序的相關(guān)指令中斷允許(ENI)指令,全局地開放所有被連接的中斷事件,允許CPU接收所有中斷事件。1、中斷允許指令ENI和中斷禁止指令DISI中斷禁止(DISI)指令,全局地關(guān)閉所有被連接的中斷事件,禁止CPU接收各個中斷事件的中斷請求。執(zhí)行DISI指令后,出現(xiàn)的中斷事件就進入中斷隊伍排隊等候,直到ENI指令重新允許中斷。第四十一頁,共一百五十七頁,編輯于2023年,星期一CPU進入RUN模式時,系統(tǒng)自動禁止了中斷。在RUN模式執(zhí)行ENI指令后,開放所有中斷。中斷允許指令ENI、中斷禁止指令DISI以線圈的形式編程,無操作數(shù)。第四十二頁,共一百五十七頁,編輯于2023年,星期一2、中斷連接指令(ATCH)
中斷連接(ATCH)指令,用來建立某個中斷事件(EVNT)和某個中斷程序(INT)之間的聯(lián)系。并允許這個中斷事件。
在調(diào)用一個中斷程序前,必須用中斷連接指令,建立某中斷事件與中斷程序的連接,當把某個中斷事件和中斷程序建立連接后,該中斷事件發(fā)生時會自動
執(zhí)行中斷。多個中斷事件可調(diào)用同一個中斷程序,但一個中斷事件不能同時與多個中斷程序建立連接,否則,在中斷允許且某個中斷事件發(fā)生時,系統(tǒng)默認執(zhí)行與該事件建立連接的最后一個中斷程序。第四十三頁,共一百五十七頁,編輯于2023年,星期一3、中斷分離指令(DTCH)
中斷分離(DTCH)指令,用來解除某個中斷事件(EVNT)和某個中斷程序之間的聯(lián)系,并禁止該中斷事件。指令操作數(shù)EVNT的數(shù)據(jù)類型均為BYTE。
可以用DTCH指令截斷中斷事件和中斷程序之間的聯(lián)系,以單獨禁止某中斷事件。DTCH指令使中斷回到不激活或無效狀態(tài)。第四十四頁,共一百五十七頁,編輯于2023年,星期一4、中斷返回指令(RETI)、(CRETI)
中斷返回指令的功能是,當中斷結(jié)束時,通過中斷返回指令退出中斷服務(wù)程序,返回到主程序。RETI是無條件返回指令,CRETI是有條件返回指令。第四十五頁,共一百五十七頁,編輯于2023年,星期一指令使用舉例:程序?qū)崿F(xiàn)的功能是調(diào)用I0.1輸入點的上升沿中斷,若發(fā)現(xiàn)I/O錯誤,則禁止本中斷,用外部條件可以禁止全局中斷。第四十六頁,共一百五十七頁,編輯于2023年,星期一四、中斷應(yīng)用舉例例1:利用定時中斷指令實現(xiàn)對模擬量的等間隔采樣第四十七頁,共一百五十七頁,編輯于2023年,星期一OB1: LDSM0.1 CALLSBR_0:SBR0SBR0:
LDSM0.0 MOVB100,SMB34 ATCHINT_0:INT0,10 ENIINT0: LDSM0.0 MOVWAIW4,VW100第四十八頁,共一百五十七頁,編輯于2023年,星期一例2:在I0.0的上升沿通過中斷使Q0.0立即置位;在I0.1的下降沿通過中斷使Q0.0立即復(fù)位。第四十九頁,共一百五十七頁,編輯于2023年,星期一//主程序OB1LDSM0.1//第一次掃描時ATCHINT_0,0//I0.0上升沿執(zhí)行0號中斷程序ATCHINT_1,3//I0.1下降沿執(zhí)行1號中斷程序ENI//允許全局中斷//中斷程序0(INT_0)LDSM0.0//常ONSIQ0.0,1//使Q0.0立即置位//中斷程序1(INT_1)LDSM0.0RIQ0.0,1//使Q0.0立即復(fù)位第五十頁,共一百五十七頁,編輯于2023年,星期一例3:定時中斷的定時時間最長為255ms,如何用定時中斷1實現(xiàn)周期為2s的高精度定時?第五十一頁,共一百五十七頁,編輯于2023年,星期一//主程序OB1LDSM0.1//第一次掃描時MOVB0,VB10//中斷次數(shù)計數(shù)器清零MOVB250,SMB34//設(shè)定中斷0時間間隔為250msATCHINT_0,10//指定定時中斷0執(zhí)行0號中斷程序ENI//允許全局中斷//中斷程序0(INT_0),每隔250ms中斷一次LDSM0.0//常ONINCBVB10//中斷次數(shù)計數(shù)器加1LDB=8,VB10//比較,如果中斷8次(2s)MOVB0,VB10//中斷次數(shù)計數(shù)器清零INCBQB0//每2s將QB0加1第五十二頁,共一百五十七頁,編輯于2023年,星期一例4:出現(xiàn)事故時,I0.0的上升沿產(chǎn)生中斷,使輸出Q1.0立即置位,同時將事故發(fā)生的日期和時間保存在VB10~VB17中。第五十三頁,共一百五十七頁,編輯于2023年,星期一//主程序OB1 LD SM0.1//第一次掃描 ATCH0,0//指定在I0.0上升沿 //執(zhí)行中斷程序0 ENI//開中斷//中斷程序INT0 LD SM0.0 SI Q1.0,1//使Q1.0立即置位 TODRVB10//讀實時時鐘第五十四頁,共一百五十七頁,編輯于2023年,星期一例5:使用定時中斷的彩燈控制程序,控制8個彩燈循環(huán)左移。
定時中斷0的中斷號為10,SMB34中的定時時間為1~255ms。彩燈移位的延時時間一般大于255ms,將中斷的時間間隔設(shè)為250ms,用VB0做中斷次數(shù)計數(shù)器,在中斷服務(wù)程序中將VB0加1,然后用比較觸點指令判斷VB0是否等于設(shè)置的次數(shù)N。若相等則將QB0循環(huán)左移一位,同時VB0清零。移位時間間隔為0.25N(s)。第五十五頁,共一百五十七頁,編輯于2023年,星期一第五十六頁,共一百五十七頁,編輯于2023年,星期一第五十七頁,共一百五十七頁,編輯于2023年,星期一主程序OB1LDSM0.1CALLSBR_0:SBR0子程序SBR0LDSM0.0MOVB16#07,QB0MOVB0,VB0MOVB250,SMB34ATCHINT_0:INT0,10ENI中斷程序INT0LDSM0.0INCBVB0LDB=VB0,4RLBQB0,1MOVB0,VB0第五十八頁,共一百五十七頁,編輯于2023年,星期一例6:使用T32中斷的彩燈控制程序,控制8個彩燈循環(huán)左移。1ms定時器T32和T96的定時時間到時可以產(chǎn)生中斷,中斷號分別為21和22,最長定時時間為32.767s。對于分辨率為1ms和10ms的定時器,不能使用定時器本身觸點作為自復(fù)位控制,應(yīng)使用下面主程序方法。第五十九頁,共一百五十七頁,編輯于2023年,星期一第六十頁,共一百五十七頁,編輯于2023年,星期一主程序OB1LDSM0.1CALLSBR_0:SBR0LDNM0.0TONT32,+500LDT32=M0.0子程序SBR0LDSM0.0MOVB7,QB0ATCHINT_0:INT0,21ENI中斷程序INT0LDSM0.0RLBQB0,1第六十一頁,共一百五十七頁,編輯于2023年,星期一總結(jié)(1)中斷程序構(gòu)成中斷程序必須由三部分構(gòu)成:中斷程序標號、中斷程序指令和無條件返回指令。(2)編程要求①用中斷程序的標號來區(qū)別每個中斷程序。②中斷服務(wù)程序越短越好,以減少中斷程序執(zhí)行時間。③在中斷程序中不能使用ENI、DISI、HDEF、LSCR、END指令。④中斷服務(wù)程序的最后一條指令一定是RETI或CRETI(其中RETI指令會由編程軟件自動添加)。第六十二頁,共一百五十七頁,編輯于2023年,星期一第六節(jié)高速計數(shù)器功能及應(yīng)用一、高速計數(shù)器概述PLC的普通計數(shù)器的計數(shù)過程與掃描工作方式有關(guān),CPU通過每一個掃描周期讀取一次被測信號的方法來捕捉被測信號的上升沿,被測信號的頻率較高時,會丟失計數(shù)脈沖,因此普通計數(shù)器的工作頻率很低,一般僅有幾十赫茲。高速計數(shù)器可以對普通計數(shù)器無能為力的事件進行計數(shù),S7-200有6個高速計數(shù)器HSC0~HSC5,可以設(shè)置多達12中不同的操作模式。第六十三頁,共一百五十七頁,編輯于2023年,星期一1、高速計數(shù)器的數(shù)量及編號高速計數(shù)器在程序中使用時的地址編號用HSCn來表示,HSC表編程元件名稱為高速計數(shù)器,n(n=0~5)為編號。每個高速計數(shù)器的計數(shù)結(jié)果都對應(yīng)有一個當前值寄存器。編程時可通過地址HCx(x=0~5)來讀取高速計數(shù)器的當前值。不同型號的PLC主機,高速計數(shù)器的數(shù)量對應(yīng)如下表所示。第六十四頁,共一百五十七頁,編輯于2023年,星期一2、高速計數(shù)器的外部輸入信號每個高速計數(shù)器對它所支持的時鐘、方向控制、復(fù)位和啟動都有專用的輸入點,通過中斷控制完成預(yù)定的操作。每個高速計數(shù)器所需的外部輸入點如下圖所示。第六十五頁,共一百五十七頁,編輯于2023年,星期一3、高速計數(shù)器相關(guān)的中斷事件
高速計數(shù)器的計數(shù)和動作可采用中斷方式進行控制,與CPU的掃描周期關(guān)系不大,各種型號的PLC可用的高速計數(shù)器的中斷事件大致分為3類:當前值等于預(yù)設(shè)值中斷、輸入方向改變中斷和外部復(fù)位中斷。所有高速計數(shù)器都支持當前值等于預(yù)設(shè)值中斷。第六十六頁,共一百五十七頁,編輯于2023年,星期一每個高速計數(shù)器的3種中斷的優(yōu)先級由高到低,不同高速計數(shù)器之間的優(yōu)先級又按編號順序由高到低。具體對應(yīng)關(guān)系如下表所示。高速計數(shù)器當前值=預(yù)設(shè)值中斷計數(shù)方向改變中斷外部信號復(fù)位中斷事件號優(yōu)先級事件號優(yōu)先級事件號優(yōu)先級HSC0121027112812HSC1131314141515HSC2161617171818HSC33219無無無無HSC4292030213122HSC53323無無無無第六十七頁,共一百五十七頁,編輯于2023年,星期一4、高速計數(shù)器的狀態(tài)字節(jié)與控制字節(jié)在特殊存儲器(SM)區(qū),每個高速計數(shù)器都有一個狀態(tài)字節(jié)、一個設(shè)置參數(shù)用的控制字節(jié)、一個32位預(yù)置值寄存器和一個32位當前值寄存器。第六十八頁,共一百五十七頁,編輯于2023年,星期一狀態(tài)字節(jié)給出了當前計數(shù)方向和當前值是否大于或等于預(yù)置值等信息。只有在執(zhí)行高速計數(shù)器的中斷程序時,狀態(tài)位才有效??刂谱止?jié)的各位用來設(shè)置高速計數(shù)器的屬性。第六十九頁,共一百五十七頁,編輯于2023年,星期一高速計數(shù)器的狀態(tài)字節(jié)表HSC0HSC1HSC2HSC3HSC4HSC5描述SM36.0SM46.0SM56.0SM136.0SM146.0SM156.0不用SM36.1SM46.1SM56.1SM136.1SM146.1SM156.1不用SM36.2SM46.2SM56.2SM136.2SM146.2SM156.2不用SM36.3SM46.3SM56.3SM136.3SM146.3SM156.3不用SM36.4SM46.4SM56.4SM136.4SM146.4SM156.4不用SM36.5SM46.5SM56.5SM136.5SM146.5SM156.5計數(shù)方向狀態(tài)0減;1增SM36.6SM46.6SM56.6SM136.6SM146.6SM156.6當前值=設(shè)定值0≠;1=SM36.7SM46.7SM56.7SM136.7SM146.7SM156.7當前值>設(shè)定值0≤;1>第七十頁,共一百五十七頁,編輯于2023年,星期一高速計數(shù)器的控制字節(jié)表第七十一頁,共一百五十七頁,編輯于2023年,星期一高速計數(shù)器的當前值和設(shè)定值寄存器第七十二頁,共一百五十七頁,編輯于2023年,星期一二、高速計數(shù)器的工作模式S7-200的高速計數(shù)器有4類工作模式,共有12種。每個模式各有不同,可通過編程,使用定義高速計數(shù)器指令HDEF來選定工作模式。1、高速計數(shù)器的工作模式第七十三頁,共一百五十七頁,編輯于2023年,星期一第七十四頁,共一百五十七頁,編輯于2023年,星期一第七十五頁,共一百五十七頁,編輯于2023年,星期一第七十六頁,共一百五十七頁,編輯于2023年,星期一2、高速計數(shù)器的工作模式說明從各個高速計數(shù)器的工作模式的描述可知:6個高速計數(shù)器具有不完全相同的功能,最多可能有12種工作模式,可分為四種類型。下面以HC1的工作模式為例加以說明。①具有內(nèi)部方向控制的單相增/減計數(shù)器(模式0~2)用高速計數(shù)器的控制字節(jié)的第3位來控制加計數(shù)或減計數(shù)。該位為1時為加計數(shù),為0時為減計數(shù)。第七十七頁,共一百五十七頁,編輯于2023年,星期一第七十八頁,共一百五十七頁,編輯于2023年,星期一②具有外部方向控制的單相增/減計數(shù)器(模式3~5)方向輸入信號為1時為加計數(shù),為0時為減計數(shù)。第七十九頁,共一百五十七頁,編輯于2023年,星期一③具有增/減計數(shù)脈沖輸入的雙向計數(shù)器(模式6~8)第八十頁,共一百五十七頁,編輯于2023年,星期一若加計數(shù)脈沖和減計數(shù)脈沖的上升沿出現(xiàn)的時間間隔不到0.3ms,高速計數(shù)器認為這兩個事件是同時發(fā)生的,當前值不變,也不會有計數(shù)方向變化的指示。反之,高速計數(shù)器能捕捉到每一個獨立事件。④A/B相正交計數(shù)器(模式9~11)正交:是指A、B兩相輸入脈沖相位互差90°。當A相脈沖超前B相脈沖90°時,計數(shù)為增計數(shù);當A相脈沖滯后B相脈沖90°時,計數(shù)為減計數(shù)。第八十一頁,共一百五十七頁,編輯于2023年,星期一正交計數(shù)器有兩種工作狀態(tài):
一種是輸入1個計數(shù)脈沖時,當前值計1個數(shù),此時的計數(shù)倍率為1。
另一種工作狀態(tài)是輸入1個計數(shù)脈沖時,當前值計4個數(shù),此時的計數(shù)倍率為4。第八十二頁,共一百五十七頁,編輯于2023年,星期一1倍率正交計數(shù)器時序圖第八十三頁,共一百五十七頁,編輯于2023年,星期一4倍率正交計數(shù)器時序圖第八十四頁,共一百五十七頁,編輯于2023年,星期一三、高速計數(shù)器指令1、高速計數(shù)器定義指令HDEF使能輸入有效時,為指定的高速計數(shù)器分配一種工作模式,即用來建立高速計數(shù)器與工作模式之間的聯(lián)系。梯形圖指令盒中有兩個數(shù)據(jù)輸入端:HSC,高速計數(shù)器編號,為0~5的常數(shù),字節(jié)型;MODE,工作模式,為0~11的常數(shù),字節(jié)型。第八十五頁,共一百五十七頁,編輯于2023年,星期一2、高速計數(shù)器指令HSC使能輸入有效時,根據(jù)高速計數(shù)器特殊存儲器位的狀態(tài),并按照HDEF指令指定的工作模式,設(shè)置高速計數(shù)器并控制其工作。梯形圖指令盒數(shù)據(jù)輸入端N:高速計數(shù)器編號,為0~5的常數(shù),字型。第八十六頁,共一百五十七頁,編輯于2023年,星期一四、高速計數(shù)器的使用使用高速計數(shù)器時,每個高速計數(shù)器只能用一條HDEF指令,可以用首次掃描存儲器位SM0.1,在第一個掃描周期調(diào)用包含HDEF指令的子程序來定義高速計數(shù)器。1、設(shè)置的一般步驟①選擇計數(shù)器及工作模式
②設(shè)置控制字節(jié)
③執(zhí)行HDEF指令
④設(shè)定當前值和預(yù)設(shè)值
⑤設(shè)置中斷事件并全局開中斷
⑥執(zhí)行HSC指令
第八十七頁,共一百五十七頁,編輯于2023年,星期一2、應(yīng)用舉例例1:要對一高速事件精確控制,通過對脈沖信號進行增計數(shù),計數(shù)當前值達到24產(chǎn)生中斷,重新從0計數(shù),對中斷次數(shù)進行累計。計數(shù)方向用一個外部信號控制,并能實現(xiàn)外部復(fù)位。所用的主機型號為CPU221。設(shè)計步驟:①選擇高速計數(shù)器HSC0,并確定工作方式4;②令SM37=16#F8;
③執(zhí)行HDEF指令,輸入端HSC為0,MODE為4;④裝入當前值,令SMD38=0;⑤裝入設(shè)定值,令SMD42=24;⑥執(zhí)行中斷連接ATCH指令,輸入端INT為INT0,EVNT為12。第八十八頁,共一百五十七頁,編輯于2023年,星期一第八十九頁,共一百五十七頁,編輯于2023年,星期一五、旋轉(zhuǎn)編碼器在工業(yè)控制中的某些場合,PLC高速計數(shù)器輸入的高速脈沖信號一般可通過旋轉(zhuǎn)編碼器獲得。
1、增量式編碼器光電增量式編碼器的碼盤上有均勻刻制的光柵。碼盤旋轉(zhuǎn)時,輸出與轉(zhuǎn)角的增量成正比的脈沖,需要用計數(shù)器來計脈沖數(shù)。根據(jù)輸出信號的個數(shù),有三種增量式編碼器:第九十頁,共一百五十七頁,編輯于2023年,星期一①單通道增量式編碼器單通道增量式編碼器內(nèi)部只有一對光耦合器,只能產(chǎn)生一個脈沖序列。②雙通道增量式編碼器雙通道增量式編碼器又稱為A、B相型編碼器,內(nèi)部有兩對光耦合器,能輸出相位差為90°的兩組獨立脈沖序列。正轉(zhuǎn)和反轉(zhuǎn)時兩路脈沖的超前和滯后關(guān)系剛好相反(如下圖),如果使用A、B相型編碼器,PLC可以識別出轉(zhuǎn)抽旋轉(zhuǎn)的方向。第九十一頁,共一百五十七頁,編輯于2023年,星期一③三通道增量式編碼器編碼器內(nèi)部除了有雙通道增量式編碼器的兩對光耦合器外,在脈沖碼盤的另外一個通道有一個透光段,每轉(zhuǎn)一圈,輸出一個脈沖,該脈沖稱為Z相零位脈沖,用作系統(tǒng)清零信號,或坐標的原點,以減少測量的積累誤差。A相B相A相B相a)正轉(zhuǎn)b)反轉(zhuǎn)第九十二頁,共一百五十七頁,編輯于2023年,星期一
N位絕對式編碼器有N個碼道,最外層的碼道對應(yīng)編碼的最低位。每一碼道有一個光耦合器,用來讀取該碼道的0、1數(shù)據(jù)。絕對式編碼器輸出的N位二進制數(shù)反映了運動物體所處的絕對位置,根據(jù)位置的變化情況,可以判別出旋轉(zhuǎn)的方向。2、絕對式編碼器第九十三頁,共一百五十七頁,編輯于2023年,星期一例2:控制要求包裝箱用傳送帶輸送,當箱體到達檢測傳感器A時,開始計數(shù)。計數(shù)到2000個脈沖時,箱體剛好到達封箱機下進行封箱,此時傳送帶并沒有停下,而是繼續(xù)運轉(zhuǎn)。則在封箱過程中,箱體還在前行。假設(shè)封箱過程共用300個脈沖,然后封箱機停止工作。繼續(xù)前行,當計數(shù)脈沖又累加到1500個碼時,開始噴碼,噴碼機開始工作,假設(shè)噴碼機共用5秒鐘進行噴碼,噴碼結(jié)束后,整個工作過程結(jié)束。第九十四頁,共一百五十七頁,編輯于2023年,星期一第九十五頁,共一百五十七頁,編輯于2023年,星期一第九十六頁,共一百五十七頁,編輯于2023年,星期一主程序第九十七頁,共一百五十七頁,編輯于2023年,星期一子程序第九十八頁,共一百五十七頁,編輯于2023年,星期一注意:使用高速計數(shù)器時,需要根據(jù)有關(guān)的特殊存儲器的意義來編寫初始化程序和中斷程序。這些程序的編寫繁瑣,容易出錯。
STEP7-Micro/WIN的向?qū)Чδ芎軓姡褂孟驅(qū)硗瓿赡承┕δ艿木幊碳群唵畏奖?,又不容易出錯。使用指令向?qū)芎喕咚儆嫈?shù)器的編程過程。第九十九頁,共一百五十七頁,編輯于2023年,星期一例3:用指令向?qū)筛咚儆嫈?shù)器HSC0的初始化程序和中斷程序,HSC0為無外部方向輸入信號的單相加/減計數(shù)器(模式0),計數(shù)值為10000~20000時Q4.0輸出1。執(zhí)行菜單命令“工具”→“指令向?qū)А保聪旅娴牟襟E設(shè)置高速計數(shù)器的參數(shù):1)在第1頁選擇“HSC”(配置高速計數(shù)器),每次操作完成后點擊“下一步>”按鈕。2)在第2頁選擇HSC0和模式0。第一百頁,共一百五十七頁,編輯于2023年,星期一3)在第3頁設(shè)置計數(shù)器的預(yù)置值為10000,當前值為0,初始計數(shù)方向為加(增)計數(shù)。使用默認的初始化子程序符號名HSC_INIT。4)在第4頁設(shè)置當前值等于預(yù)置值時產(chǎn)生中斷(中斷事件編號為12),使用默認的中斷程序符號名COUNT_EQ。
向?qū)г试S高速計數(shù)器按多個步驟進行計數(shù),即在中斷程序中修改某些參數(shù),例如修改計數(shù)器的計數(shù)方向、當前值和預(yù)置值,并將另一個中斷程序連接至相同的中斷事件。第一百零一頁,共一百五十七頁,編輯于2023年,星期一
本例設(shè)置編程2步,在中斷程序COUNT_EQ中,修改預(yù)置值為20000,計數(shù)當前值和計數(shù)方向不變。完成設(shè)置后自動生成下述的初始化子程序HSC_INIT、中斷程序COUNT_EQ和HSC0_STEP1。在主程序中,首次掃描時調(diào)用HSC_INIT,中斷程序中對Q4.0置位和復(fù)位的語句是用戶添加的。最后一個步驟可以重新連接第一個中斷程序,使計數(shù)過程循環(huán)進行。第一百零二頁,共一百五十七頁,編輯于2023年,星期一①主程序 LD SM0.1 CALL HSC_INIT②初始化子程序HSC_INIT LD SM0.0 MOVB 16#F8,SMB37 MOVD +0,SMD38 MOVD +10000,SMD42 HDEF 0,0 ATCH COUNT_EQ,12 ENI HSC 0第一百零三頁,共一百五十七頁,編輯于2023年,星期一③中斷程序COUNT_EQ LD SM0.0 MOVB 16#A0,SMB37 MOVD +20000,SMD42 ATCH HSC0_STEP1,12 HSC 0 SI Q4.0,1 //用戶添加第一百零四頁,共一百五十七頁,編輯于2023年,星期一④中斷程序HSC0_STEP1 LD SM0.0 MOVB 16#80,SMB37 DTCH 12 HSC 0 RI Q4.0,1 //用戶添加第一百零五頁,共一百五十七頁,編輯于2023年,星期一第七節(jié)高速脈沖輸出功能及應(yīng)用一、高速脈沖輸出概述
小型PLC的脈沖量輸出一般都采用晶體管輸出形式,用于支持位置控制功能。位置控制功能的目的是通過速度的設(shè)定將物體從當前位置準確轉(zhuǎn)移到預(yù)設(shè)位置。當連接到不同的伺服驅(qū)動裝置或步進電動機控制裝置時,可通過脈沖信號控制位置的高精確度,如下圖:第一百零六頁,共一百五十七頁,編輯于2023年,星期一1、高速脈沖輸出的形式
高速脈沖輸出有兩種輸出形式:高速脈沖序列(高速脈沖串)輸出PTO和脈沖寬度調(diào)制輸出PWM,可通過特殊繼電器來定義輸出形式。第一百零七頁,共一百五十七頁,編輯于2023年,星期一①脈沖串輸出PTO可以輸出一串脈沖(占空比為50%),用戶可以控制脈沖的周期和個數(shù)。第一百零八頁,共一百五十七頁,編輯于2023年,星期一②脈沖調(diào)制輸出PWM可以輸出連續(xù)的、占空比可以調(diào)制的脈沖串,用戶可以控制脈沖的周期和脈寬。第一百零九頁,共一百五十七頁,編輯于2023年,星期一2、輸出端子的確定
在S7-200中,只有輸出繼電器Q0.0和Q0.1具有高速脈沖輸出功能,如果不需要進行高速脈沖輸出時,Q0.0和Q0.1可以作為普通的數(shù)字量輸出點使用。一旦需要使用高速脈沖輸出功能時,必須通過Q0.0和Q0.1輸出高速脈沖。
在使用PTO和PWM操作之前,需要將兩者的過程映像寄存器清零。第一百一十頁,共一百五十七頁,編輯于2023年,星期一3、脈沖輸出指令
高速脈沖輸出指令在梯形圖中以功能框的形式編程,指令名稱是PLS,其功能是當允許輸入EN有效時,檢測各個相關(guān)特殊繼電器的狀態(tài),激活由控制字節(jié)定義的高速脈沖輸出操作。PLS指令只有一個輸入端Q,字型數(shù)據(jù),只能取常數(shù)0或1,對應(yīng)從Q0.0或Q0.1輸出高速脈沖。第一百一十一頁,共一百五十七頁,編輯于2023年,星期一4、相關(guān)的寄存器每個高速脈沖發(fā)生器對應(yīng)一定數(shù)量特殊標志寄存器,這些寄存器包括控制字節(jié)寄存器、狀態(tài)字節(jié)寄存器和參數(shù)數(shù)值寄存器,用以控制高速脈沖的輸出形式、反映輸出狀態(tài)和參數(shù)值。各寄存器分配如下表所示。第一百一十二頁,共一百五十七頁,編輯于2023年,星期一①狀態(tài)字節(jié)狀態(tài)字節(jié)在程序運行時根據(jù)運行狀況自動使某些位置位,可以通過程序來讀相關(guān)位的狀態(tài),用以作為判斷條件實現(xiàn)相應(yīng)的操作。狀態(tài)字節(jié)中各狀態(tài)位的功能如下表所示。第一百一十三頁,共一百五十七頁,編輯于2023年,星期一②控制字節(jié)通過對控制字節(jié)中指定位的編程,根據(jù)操作要求設(shè)置字節(jié)中各控制位,如脈沖輸出允許、PTO/PWM模式選擇、單段/多段選擇、更新方式、時間基準、允許更新等??刂谱止?jié)中各控制位的功能如下表所示。第一百一十四頁,共一百五十七頁,編輯于2023年,星期一二、高速脈沖串輸出(PTO)
脈沖寬度與脈沖周期之比稱為占空比,脈沖序列(PTO)功能提供周期與脈沖數(shù)目可以有用戶控制的占空比為50%的方波脈沖輸出。第一百一十五頁,共一百五十七頁,編輯于2023年,星期一脈沖計數(shù)范圍用雙字長無符號數(shù)表示,脈沖數(shù)的取值范圍是1~4294967295。如果編程時指定脈沖數(shù)為0,則系統(tǒng)默認脈沖數(shù)為1個。PTO可提供單脈沖串或多脈沖串(脈沖輪廓)。用戶可以指定脈沖數(shù)和周期(以微妙或毫秒遞增),周期范圍為10~65535μm或2~65535ms。周期值一般設(shè)定為偶數(shù),若指定周期值為奇數(shù)(如75ms)會引起占空比的輕微失真。1、周期和脈沖數(shù)第一百一十六頁,共一百五十七頁,編輯于2023年,星期一PTO方式中,如果要輸出多個脈沖串,每個脈沖串的周期和脈沖數(shù)可以不同。當需要輸出多個脈沖串時,允許脈沖串進行排隊,形成管線,當前輸出的脈沖串完成之后,立即輸出新脈沖串,這保證了脈沖串順序輸出的連續(xù)性。單段管線多段管線2、PTO輸出方式第一百一十七頁,共一百五十七頁,編輯于2023年,星期一①單段管線PTO
在單段管線PTO輸出時,管線中只能存放1個脈沖串的控制參數(shù)(入口地址)。在當前脈沖串輸出期間,就要對與下一個脈沖串相關(guān)的特殊繼電器進行更新,待當前的脈沖串輸出完成后,通過執(zhí)行PLS指令,就可以立即輸出新的脈沖串,實現(xiàn)多段脈沖串的連續(xù)輸出。
采用單段管線PTO的優(yōu)點是:各個脈沖串的時間基準可以不同。
采用單段管線PTO的缺點是:編程復(fù)雜且煩瑣,當參數(shù)設(shè)置不當時,會造成各個脈沖串連接的不平滑。第一百一十八頁,共一百五十七頁,編輯于2023年,星期一②多段管線PTO
當采用多段管線PTO輸出高速脈沖串時,需要在變量存儲器區(qū)(V)中建立一個包絡(luò)表,在包絡(luò)表中存儲各個脈沖串的參數(shù),當執(zhí)行PTO指令時,CPU自動按順序從包絡(luò)表中調(diào)出各個脈沖串的入口地址,連續(xù)輸出各個脈沖串。
采用多段管線PTO的優(yōu)點是:編程簡單,可按照程序設(shè)定的周期增量值自動增減脈沖周期。
采用多段管線PTO的缺點是:所有脈沖串的時間基準必須一致,當執(zhí)行PLS指令時,包絡(luò)表中的所有參數(shù)均不能改變。第一百一十九頁,共一百五十七頁,編輯于2023年,星期一③PTO包絡(luò)表
包絡(luò)表由包絡(luò)段數(shù)和各段構(gòu)成。每段長度為8個字節(jié),包括:脈沖周期值(16位);
周期增量值(16位);脈沖計數(shù)值(32位)。以3段包絡(luò)的包絡(luò)表為例,包絡(luò)表的結(jié)構(gòu)如下表所示。第一百二十頁,共一百五十七頁,編輯于2023年,星期一第一百二十一頁,共一百五十七頁,編輯于2023年,星期一3、中斷事件類型
高速脈沖串輸出可以采用中斷方式進行控制,各種型號的PLC可用的高速脈沖串輸出的中斷事件有兩個,如下表所示。第一百二十二頁,共一百五十七頁,編輯于2023年,星期一4、PTO的使用使用高速脈沖串輸出時,要按以下步驟進行:①確定脈沖發(fā)生器及工作模式
②設(shè)置控制字節(jié)③寫入周期值、周期增量值和脈沖數(shù)④裝入包絡(luò)的首地址⑤設(shè)置中斷事件并全局開中斷⑥執(zhí)行PLS指令第一百二十三頁,共一百五十七頁,編輯于2023年,星期一三、高速脈沖串輸出應(yīng)用舉例1、控制要求步進電機轉(zhuǎn)動過程中,要從A點加速到B點后恒速運行,又從C點開始減速到D點,完成這一過程時用指示燈顯示。電機的轉(zhuǎn)動受脈沖控制,A點和D點的脈沖頻率為2kHz,B點和C點的頻率為10kHz,加速過程的脈沖數(shù)為400個,恒速轉(zhuǎn)動的脈沖數(shù)為4000個,減速過程脈沖數(shù)為200個。工作過程如下圖所示。第一百二十四頁,共一百五十七頁,編輯于2023年,星期一第一百二十五頁,共一百五十七頁,編輯于2023年,星期一2、分析確定脈沖發(fā)生器及工作模式
設(shè)置控制字節(jié)
寫入周期值、周期增量值和脈沖數(shù)
裝入包絡(luò)表首地址
中斷調(diào)用
執(zhí)行PLS指令
第一百二十六頁,共一百五十七頁,編輯于2023年,星期一①確定脈沖發(fā)生器及工作模式選擇由Q0.0輸出,由上圖選擇3段管線(AB段、BC段、CD段)PTO的輸出形式。②設(shè)置控制字節(jié)確定周期值的時基單位,由于在BC段輸出的頻率最大為10kHz,對應(yīng)的周期值為100μs,因此選擇時基單位μs,向SMB67寫入控制字16#A0。第一百二十七頁,共一百五十七頁,編輯于2023年,星期一③確定周期初始值、周期增量值Ⅰ、初始值確定較為容易,只需將每段初始頻率轉(zhuǎn)換為時間即可:AB段為500μs,BC段為100μs,CD段為100μs。Ⅱ、周期增量值的確定:Tn+1:該段結(jié)束的周期時間;Tn:該段開始的周期時間;N:該段的脈沖數(shù)。第一百二十八頁,共一百五十七頁,編輯于2023年,星期一④建立包絡(luò)表設(shè)包絡(luò)表的首地址為VB400,包絡(luò)表如下:V變量存儲器參數(shù)參數(shù)值VB400總段數(shù)3VW401加速段初始周期值500μsVW403周期增量值-1μsVD405輸出脈沖數(shù)400VW409恒速段初始周期值100μsVW411周期增量值0μsVD413輸出脈沖數(shù)4000VW417減速段初始周期值100μsVW419周期增量值2μsVD421輸出脈沖數(shù)200第一百二十九頁,共一百五十七頁,編輯于2023年,星期一⑤確定中斷
PTO0高速脈沖串輸出完成中斷事件19,對應(yīng)中斷程序中設(shè)置控制指示燈的輸出點置位。⑥程序?qū)崿F(xiàn)本控制系統(tǒng)主程序、初始化子程序SBR_1、包絡(luò)表子程序及中斷程序如下:第一百三十頁,共一百五十七頁,編輯于2023年,星期一第一百三十一頁,共一百五十七頁,編輯于2023年,星期一第一百三十二頁,共一百五十七頁,編輯于2023年,星期一第一百三十三頁,共一百五十七頁,編輯于2023年,星期一第一百三十四頁,共一百五十七頁,編輯于2023年,星期一三、寬度可調(diào)脈沖輸出(PWM)
脈沖寬度調(diào)制功能提供連續(xù)的、周期與脈沖寬度可以由用戶控制的輸出。時間基準可設(shè)置為μm或ms,周期范圍為10~65535μm或2~65535ms,脈沖寬度的變化為0~65535μm或0~65535ms。
當指定的脈沖寬度值大于周期值時,占空比為100%,輸出連續(xù)接通;當脈沖寬度為0時,占空比為0%,輸出斷開。PWM的高頻輸出波形經(jīng)濾波后可以得到與占空比成正比的模擬量輸出電壓。1、周期和脈沖寬度第一百三十五頁,共一百五十七頁,編輯于2023年,星期一2、更新方式
同步更新:PWM的典型操作是當周期時間保持常數(shù)時變化脈沖寬度。所以不需要改變時間基準。不改變時間基準,就可以進行同步更新。同步更新時,波形特性的變化發(fā)生在周期邊沿,可提供平滑過渡。
異步更新:若需改變PWM發(fā)生器的時間基準,就要使用異步更新。異步更新會造成PWM功能被瞬時禁止,和PWM輸出波形不同步。這會引起被控設(shè)備的振動。因此,建議選擇一個適合于所有周期時間的時間基準來采用PWM同步更新。第一百三十六頁,共一百五十七頁,編輯于2023年,星期一3、PWM指令
執(zhí)行菜單命令“工具”→“位置控制向?qū)А?,打開位置控制向?qū)?。在?頁選擇“配置S7-200PLC內(nèi)置PTO/PWM操作”。在第2頁選擇組態(tài)Q0.0或Q0.1。在第3頁選擇組態(tài)PWM
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動合同勞務(wù)合同范例
- 公司合并協(xié)議合同范本
- 全職合同范本
- 醫(yī)院物業(yè)招聘合同范本
- 加盟快遞押金合同范本
- 單位電線更換維修合同范本
- 聲學顧問合同范本
- 單位車棚工程合同范本
- cpvc管購買合同范本
- ul認證合同范本
- 2025電力物資檢儲配一體化建設(shè)技術(shù)導(dǎo)則
- 新學期 開學第一課 主題班會課件
- 民法典合同編講座
- 2024年青島港灣職業(yè)技術(shù)學院高職單招語文歷年參考題庫含答案解析
- 廣西壯族自治區(qū)公路發(fā)展中心2025年面向社會公開招聘657名工作人員高頻重點提升(共500題)附帶答案詳解
- 大學轉(zhuǎn)專業(yè)高等數(shù)學試卷
- DBJ51-T 198-2022 四川省既有民用建筑結(jié)構(gòu)安全隱患排查技術(shù)標準
- 公司廠區(qū)保潔培訓
- 江蘇省招標中心有限公司招聘筆試沖刺題2025
- 2024年防盜門銷售合同范本
- 支付令申請書(2025版)
評論
0/150
提交評論