可編程控制器的功能指令_第1頁
可編程控制器的功能指令_第2頁
可編程控制器的功能指令_第3頁
可編程控制器的功能指令_第4頁
可編程控制器的功能指令_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、宜賓學(xué)院YIBIN UNIVERSITYPLC課程論文題 目: 可編程控制器的功能指令 專 業(yè): 電子信息科學(xué)與技術(shù) 院 系: 物理與電子工程學(xué)院 學(xué)生姓名: 學(xué)生學(xué)號: 年級、班: 指導(dǎo)教師: 2015 年 6 月 12 日摘要小型PLC由于運(yùn)算速度較低及存貯容量較小,使其功能受到限制,但為了使PLC在其基本邏輯功能、順序步進(jìn)功能之外具有更進(jìn)一步的特殊功能,以盡可能多地滿足PLC用戶的特殊要求,從80年代開始,PLC制造商就逐步地在小型PLC中加入一些功能指令(Functional Instruction)或稱為應(yīng)用指令(Applied Instruction)。這些功能指令實(shí)際上就是一個個

2、功能不同的子程序。隨著芯片技術(shù)的進(jìn)步,小型PLC的運(yùn)算速度、存貯量不斷增加,其指令的功能也越來越強(qiáng)。許多工程技術(shù)人員以前不敢想象的功能,通過功能指令就能容易實(shí)現(xiàn),從而大大提高了PLC的實(shí)用價值。關(guān)鍵詞:PLC ;功能指令目錄引言2可編程控制器的功能指令31.1 功能指令通則31.1.1 功能指令的表現(xiàn)形式31.1.2 數(shù)據(jù)長度及指令的執(zhí)行形式41.1.3 位元件41.1.4 變址寄存器(V、Z)51.2 程序流控制指令(FNC00FNC09)61.2.1 條件跳轉(zhuǎn)指令61.2.4 主程序結(jié)束指令61.3 傳送和比較指令(FNC10FNC19)71.3.1 比較指令71.3.3 傳送指令81.4

3、 四則運(yùn)算及邏輯運(yùn)算指令(FNC20FNC2981.4.1 BIN加法指令81.4.2 BIN減法指令91.4.3 BIN乘法指令91.4.4 BIN除法指令101.5 循環(huán)移位指令121.5.3 移位(左/右)指令121.6 數(shù)據(jù)處理指令(FNC40FNC49)131.6.1 區(qū)間復(fù)位指令13結(jié)論15參考文獻(xiàn)15引言可編程邏輯控制器(Programmable Logic Controller,簡稱PLC),一種具有微處理機(jī)的數(shù)字電子設(shè)備,用于自動化控制的數(shù)字邏輯控制器,可以將控制指令隨時加載內(nèi)存內(nèi)儲存與執(zhí)行。可編程控制器由內(nèi)部CPU,指令及資料內(nèi)存、輸入輸出單元、電源模組、數(shù)字模擬等單元所模

4、組化組合成。廣泛應(yīng)用于目前的工業(yè)控制領(lǐng)域。在可編程邏輯控制器出現(xiàn)之前,一般要使用成百上千的繼電器以及計(jì)數(shù)器才能組成具有相同功能的自動化系統(tǒng),而現(xiàn)在,經(jīng)過編程的簡單的可編程邏輯控制器模塊基本上已經(jīng)代替了這些大型裝置??删幊踢壿嬁刂破鞯南到y(tǒng)程序一般在出廠前已經(jīng)初始化完畢,用戶可以根據(jù)自己的需要自行編輯相應(yīng)的用戶程序來滿足不同的自動化生產(chǎn)要求。PLC是由取代繼電器控制開始產(chǎn)生、發(fā)展起來的,且早期的PLC絕大部分用于順序控制,于是許多人習(xí)慣于把PLC看作是繼電器、定時器、計(jì)數(shù)器的集合,把PLC的作用局限于等同繼電接觸器控制系統(tǒng)、順控器等。其實(shí),PLC就是工業(yè)控制計(jì)算機(jī),PLC系統(tǒng)屬于計(jì)算機(jī)控制系統(tǒng)的一

5、個分支,大型PLC系統(tǒng)就是當(dāng)代較先進(jìn)的計(jì)算機(jī)控制系統(tǒng)??删幊炭刂破鞯墓δ苤噶?.1 功能指令通則1.1.1 功能指令的表現(xiàn)形式表1-1 功能指令的表現(xiàn)形式表MEAN FNC45(P) (16)Mean操作元件:K、HKnxKnyKnmKnsTCDV、ZN=164步數(shù):MEAN、MEAN(P) 7步MEAN:指令助記符 FNC45:功能號(P):脈沖執(zhí)行功能 (16):只能做16bit操作 (16/32):16或32bit操作功能指令按功能號(FNC00FNC99)編排,每條功能指令都有一助記符。某些功能指令只需指定功能號即可,但許多功能指令在指定功能號的同時還必須指定操作數(shù)。這是取平均值的指令

6、。圖中S·指取值首元件。n指定取值個數(shù)。D·指定計(jì)算結(jié)果存放地址。S:(SOURSE)源操作數(shù)。若可使用變址功能時,表達(dá)為S·。有時源操作數(shù)不止一個,可用S1·、S2·表示。D:(DESTINATION)目標(biāo)操作數(shù)。若可使用變址功能時,表達(dá)為D·。目標(biāo)不止一個時用D1·D2·表示。m、n其它操作數(shù)。常常用來表示數(shù)制(十進(jìn)制、十六進(jìn)制等)或制作源和目標(biāo)的補(bǔ)充注釋。需注釋的項(xiàng)目多時也可采用m1、m2等方式。功能指令的功能號助記符占一個程序步,操作數(shù)占2或4個程序步,取決于指令是16bit還是32bit的。注意,某些功能

7、指令在整個程序中只能出現(xiàn)一次,即使用跳轉(zhuǎn)指令使其分別處于兩個不可能同時執(zhí)行的程序中也不允許,但可利用變址寄存器多次改變其操作數(shù)。1.1.2 數(shù)據(jù)長度及指令的執(zhí)行形式116bit和32bit功能指令可處理16bit的數(shù)據(jù)和32bit數(shù)據(jù)。功能指令中附有符號(D)表示處理32bit數(shù)據(jù)。如(D)MOV、FNC(D)12、FNC12(D)。處理32bit數(shù)據(jù)時,用元件號相鄰的兩元件組成元件對。元件對的首元件號用奇數(shù)偶數(shù)均可。但為避免錯誤,元件對的首元件建議統(tǒng)一用偶數(shù)編號。32bit計(jì)數(shù)器(C200C255)不能用作16bit指令的操作數(shù)。2連續(xù)執(zhí)行/脈沖執(zhí)行助記符后附的(P)符號表示脈沖執(zhí)行。(P)

8、和(D)可同時使用,如(D)MOV(P)。上圖所示功能指令僅在X0由OFF變?yōu)镺N時執(zhí)行。在不需要每個掃描周期都執(zhí)行時,用脈沖執(zhí)行方式可縮短程序處理周期。上圖程序是連續(xù)執(zhí)行方式的例子。當(dāng)X1為ON狀態(tài)時上述指令在每個掃描周期都被重復(fù)執(zhí)行。某些指令,例如XCH、INC、DEC等,用連續(xù)執(zhí)行方式時要特別留意,這些指令用“!”號標(biāo)示。注意:當(dāng)X0和X1為OFF狀態(tài)時,上述兩指令不執(zhí)行。目標(biāo)元件的內(nèi)容不變化,除非另行指定。1.1.3 位元件1位元件和字元件只處理ON/OFF狀態(tài)的元件,例如X、Y、M和S,稱為位元件,其它處理數(shù)字?jǐn)?shù)據(jù)的元件,例如T、C和D,稱為字元件。位元件組合起來也可以處理數(shù)字?jǐn)?shù)據(jù)。

9、位元件組合由Kn加首元件號來表示。2位元件的組合位元件每4bit為一組合單元,KnM0中的n是組數(shù),16bit數(shù)操作時為K1K4,32bit數(shù)操作時為K1K8。當(dāng)一個16bit的數(shù)據(jù)傳送到K1M0、K2M0或K3M0時,只傳送相應(yīng)的低bit數(shù)據(jù),較高bit的數(shù)據(jù)不傳送。32bit數(shù)據(jù)傳送時也一樣。在進(jìn)行16bit數(shù)操作時,參與操作的位元件由K1、K2、K3來指定,高位(不足部分)均作0,這就意味著只能處理正數(shù)(符號位為0)。在處理32bit數(shù)操作時也一樣。由X4X13組成的2位BCD碼數(shù)轉(zhuǎn)換成二進(jìn)制碼送到D0。被組合的位元件號可以是任意的,但為避免混亂建議采用以0結(jié)尾的元件(如X0、X10、X

10、20···等)。注:字的指定與字串,以D1開始的數(shù)據(jù)寄存器串即D1、D2、D3···,用位元件組合的字作為字串處理,其指定格式如下:K1X0 K1X4 K1X10 K1X14···,K2Y10 K2Y20 K2Y30···K3M0 K3M12 K3M24 K3M36···,K4S16 K4S32 K4S48···即元件每4個為一組連續(xù)編號。如果“K2Y0”用在32bit操作時,高16bit作“0”處理,要獲得32bi

11、t數(shù)據(jù)需要用“K8Y0”。1.1.4 變址寄存器(V、Z)變址寄存器在傳送比較指令中用來修改操作對象的元件號,其操作方式與普通數(shù)據(jù)寄存器一樣。表示操作對象: D·對定時器及計(jì)數(shù)器指其當(dāng)前值寄存器K、HKnxKnyKnmKnsTCDV、Z上圖中表示從KnY到V、Z都可作為功能指令的目標(biāo)元件。在D·中的點(diǎn)(·)表示可以加入變址寄存器,對32bit指令,V作高16bit,Z為低16bit。32bit指令中用到變址寄存器時只需指定Z,這時Z就代表了V和Z。如上圖所示,因?yàn)镵10送到V,K20送到Z,所以(V)、(Z)的內(nèi)容分別為10、20。(D5V)+(D15Z) (D4

12、0Z)就是 (D15)+(D35) (D60) V和Z可使編程簡化。(D1,D0)+(D3,D2) (D25,D24)某些應(yīng)用會用到各種標(biāo)志,這些標(biāo)志在附錄中詳細(xì)列表說明。例如:M8020:零標(biāo)志(Z) M8021:借位標(biāo)志(Br) M8022:進(jìn)位標(biāo)志(Cy) M8029:執(zhí)行完畢標(biāo)志(F)如果功能指令的語法或操作元件號有錯誤(出錯將在附錄中加以解釋),出錯標(biāo)志M8067(E)將被置1.功能指令每次執(zhí)行時都會影響標(biāo)志的狀態(tài)(SET或RESET),而功能指令不執(zhí)行或出錯時標(biāo)志狀態(tài)不受影響。許多功能指令都會影響標(biāo)志的狀態(tài),編程時要多加小心。 1.2 程序流控制指令(FNC00FNC09)1.2.

13、1 條件跳轉(zhuǎn)指令表1-2 條件跳轉(zhuǎn)指令功能表CJ FNC00(P) (16)條件跳轉(zhuǎn)操作元件:指針P0P63 (允許變址修改) P63即END,無需再標(biāo)號。程序步數(shù):CJ和CJ(P)······步標(biāo)號···步和CJ(P)指令用于跳過順序程序中的某一部分,這樣可以減少掃描時間,并使“雙線圈操作”成為可能。1.2.4 主程序結(jié)束指令表1-3 主程序結(jié)束指令表FEND FNC06主程序結(jié)束操作元件:無程序步數(shù):1步FEND指令表示主程序結(jié)束,執(zhí)行到FEND指令時機(jī)器進(jìn)行輸出處理、輸入處理、警戒時鐘刷新,完成以后

14、返回到第0步。例1 設(shè)計(jì)一PLC控制程序控制3盞燈A、B、C,使之具有手動和自動功能,自動時,每5秒起動一盞。1.3 傳送和比較指令(FNC10FNC19)1.3.1 比較指令表1-4 比較指令表CMP FNC10(P)(16/32)比較操作元件:K、HKnxknYknmknsTCDV、ZXYMS程序步數(shù):CMP和CMP(P)···2步 (DCMP和(D)CMP(P)···1步下面這段程序是將源S1·和S2·的數(shù)據(jù)比較,結(jié)果送到目標(biāo)D·中。這里源數(shù)據(jù)作代數(shù)比較(如102且所有的源數(shù)據(jù)均作為二進(jìn)制數(shù)值處理。

15、程序中M0、M1、M2根據(jù)比較的結(jié)果動作。K100C20的當(dāng)前值時,M0接通;K100=C20的當(dāng)前值時,M1接通;K100C20的當(dāng)前值時,M2接通。當(dāng)執(zhí)行條件X0=OFF時,CMP指令不執(zhí)行,M0、M1、M2的狀態(tài)保持不變。注:(1) 一條CMP指令用到三個操作數(shù),如果只指定了一或二個操作數(shù),就會出錯(出錯碼:6503),防礙PC運(yùn)行。(2) 指定的操作元件超出上表范圍時出錯(出錯碼:6705).例如X、D、T或C被指定作目標(biāo)時就會出錯。(3) 如果被指定為操作數(shù)(元件)的元件號超出允許范圍時出錯(出錯碼:6706).用變址修改參數(shù)時可能會出現(xiàn)這種情況。(4) 由于上述指定操作數(shù)出錯時,請

16、參閱附錄。1.3.3 傳送指令表1-5 傳送指令表 MOV FNC12(P) (16/32)傳送操作元件:K、HKnxKnyKnmKnsTCDV、Z程序步數(shù):MOV和MOV(P)5步 (D)MOV和(D)MOV(P)9步源數(shù)據(jù)被傳送到指定目標(biāo)。如X0=OFF指令不執(zhí)行,數(shù)據(jù)保持不變。當(dāng)傳送指令執(zhí)行時,常數(shù)K100自動轉(zhuǎn)換成二進(jìn)制數(shù)。1.4 四則運(yùn)算及邏輯運(yùn)算指令(FNC20FNC29)1.4.1 BIN加法指令表1-6 BIN加法指令表ADD FNC20(P) (16/32)BIN加法操作元件:K、HKnxknYknMknSTCDV、Z程序步數(shù):ADD和ADD(P)··&#

17、183;7步 (D)ADD和(D)ADD(P)···13步 標(biāo) 志:M8020(零標(biāo)志),M8021(借位);M8022(進(jìn)位)指定的源元件中的二進(jìn)制數(shù)相加,結(jié)果送到指定的目標(biāo)元件。每個數(shù)據(jù)的最高bit作為符號位(0為正,1為負(fù))。運(yùn)算總是代數(shù)運(yùn)算,如:5+(8)=3。如果運(yùn)算結(jié)果為0,則零標(biāo)志M8020置1。如果運(yùn)算結(jié)果超過32767(16bit運(yùn)算)或2147483647(32bit運(yùn)算),則進(jìn)位標(biāo)志M8022置1。如果運(yùn)算結(jié)果小于32767(16bit運(yùn)算)或2147483647(32bit運(yùn)算),則借位標(biāo)志M8022置1。在32bit運(yùn)算中,用到字元件時,

18、被指定的字元件是最低16bit元件,而其下一個元件即為最高16bit元件。為了避免重復(fù)使用某些元件,建議指定操作元件時用偶數(shù)元件號。源和目標(biāo)可以用相同的元件號,若源和目標(biāo)元件號相同而且采用連續(xù)執(zhí)行的ADD/(D)ADD指令時,加法的結(jié)果在每個掃描周期都會改變。上圖所示程序,每當(dāng)X1從OFF變?yōu)镺N時,D0的數(shù)據(jù)加1。這與INC(P)指令的執(zhí)行結(jié)果相似。其不同之處在執(zhí)行ADD指令時,零、借位、進(jìn)位標(biāo)志將按前述方法置位。1.4.2 BIN減法指令表1-7 BIN減法指令表SUD FNC20(P) (16/32)BIN減法操作元件:K、HKnxknYknMknSTCDV、Z程序步數(shù):SUB和SUB(

19、P)···7步 (D)SUB和(D)SUB(P)···13步標(biāo) 志:M8020(零標(biāo)志),M8021(借位)M8022(進(jìn)位)S1·指定的元件中的數(shù)減去S1·指定的元件中的數(shù),結(jié)果送到D·指定的目標(biāo)中。運(yùn)算是二進(jìn)制代數(shù)法。例如:5(8)=13每個標(biāo)志的功能、32bit運(yùn)算的元件指定方法、連續(xù)執(zhí)行和脈沖執(zhí)行的區(qū)別等均與加法指令中的解釋相同。上圖所示的運(yùn)算與執(zhí)行(D)DEC(P)指令的運(yùn)算極其相似。區(qū)別僅在于用SUB指令時可得到標(biāo)志的狀態(tài)。1.4.3 BIN乘法指令表1-8 BIN乘法指令表MUL FNC32

20、(P) (16/32)BIN乘法操作元件:K、HKnxknYknMknSTCDV、Z程序步數(shù):MUL和MUL(P)···7步(D)MUL和(D)MUL(P)···13步116bit 運(yùn)算兩源的乘積以32bit形式送到指定目標(biāo)。低16bit在指定目標(biāo)元件,高16bit在下一個元件。若D0=8,D2=9,則上例中(D5,D4)=72最高bit是符號bit(0為正,1為負(fù))。V不用于D·之中,對bit元件,可用K1K8來指定bit數(shù)。記住結(jié)果是32bit數(shù),所以如圖K4指定bit數(shù),則只能得到乘積的低16bit。232bit運(yùn)算在

21、32位運(yùn)算中,如用bit元件作目標(biāo),則乘積只能得到低32bit,高32bit丟失,在這種情況下應(yīng)先將數(shù)據(jù)移入字元件再進(jìn)行運(yùn)算。用字元件時,不可能監(jiān)控這64bit數(shù)據(jù)的內(nèi)容。在這種情況下通過監(jiān)控結(jié)果的高32bit和低32bit并利用下式計(jì)算:64bit結(jié)果=(高32bit)×232+(低32bit)最高bit是符號bit,0為正,1為負(fù)。V和Z不能用于D·。1.4.4 BIN除法指令表4-22 BIN除法指令表DIY FNC23(P) (16/32)BIN除法操作元件:K、HKnxKnyKnmKnsTCDV、Z*只有Z可用于16bit運(yùn)算程序步數(shù):DIY和DIY(P)7步 (

22、D)DIY和(D)DIY(P)13步116bit運(yùn)算用S1·指令被除數(shù),S2·指定除數(shù),商送到目標(biāo)D·,余數(shù)在D·的下一個元件,V不可用于D·中。232bit運(yùn)算S1·指定的元件及其下一個元件組成被除數(shù),S2·及其下一個元件組成除數(shù),商和余數(shù)放在以D·開始的4個連續(xù)元件中。V和Z不可用于D·中。注:(1)若除數(shù)為“0”則出錯,該指令不執(zhí)行。(2)若bit元件被指定為目標(biāo)D·,則不能獲得余數(shù)。(3)商和余數(shù)的最高bit是符號bit。例2 設(shè)計(jì)一PLC程序,計(jì)算(5×352+7×

23、2124×577)/56的值,若余數(shù)大于28,A燈亮;若余數(shù)小于28,B燈亮;若余數(shù)等于28,C燈亮。1.4.5 加1和減1指令表1-9 加1和減1指令表INC FNC24(P)(16/32)(“!”)加1操作元件:K、HKnxknYknMknSTCDV、Z程序步數(shù):INC、INC(P)DEC和DEC(P)···3步 (D)INC、(D)INC(P)、(D)DEC和(D)DEC(P)···5步DEC FNC25(P)(16/32)(“!”)減1上例中,每次X0由OFF變ON時,由D·指定的元件中的數(shù)增加1。如果不用

24、脈沖指令,則每個掃描周期加1。在16bit運(yùn)算中,達(dá)到+32767再加1就變?yōu)?2768但標(biāo)志不動作。32bit運(yùn)算時,+2147483647再加1就變?yōu)?147483648時,標(biāo)志也不動作。上例中,每次X1由OFF變?yōu)镺N時,由D·指定的元件中的數(shù)減1。16bit運(yùn)算時,32768減1就變?yōu)?32767,但標(biāo)志不動作。32bit運(yùn)算時,2147483648再減1就變?yōu)?2147483647,但標(biāo)志不動作。計(jì)數(shù)器C0C9的當(dāng)前值轉(zhuǎn)換成BCD碼送到輸出K4Y0。Z由復(fù)位輸入X10清0。每次X110N時,C0C9的當(dāng)前值依次輸出。例3 用INC指令設(shè)計(jì)一計(jì)數(shù)器,當(dāng)按下按鈕5次時,指示燈亮

25、。1.5 循環(huán)移位指令1.5.3 移位(左/右)指令表1-10 移位(左/右)指令表SFTR FNC34(P)(16)(“!”)右移位操作元件:XYMS程序步數(shù):SFTR,SFTR(P),SFTL,SFTL(P)···9步SFTR FNC35(P)(16)(“!”)左移位本指令使bit元件中的狀態(tài)向右/向左移位,由n1指定bit元件長度,n2指定移位bit數(shù)(n2n11024用脈沖移位指令時,在執(zhí)行條件的上升沿到達(dá)時執(zhí)行。用連續(xù)移位指令時,當(dāng)執(zhí)行條件為ON時,每個掃描周期執(zhí)行一次。1.6 數(shù)據(jù)處理指令(FNC40FNC49)1.6.1 區(qū)間復(fù)位指令表4-32 區(qū)間復(fù)位指令表ZRST FNC40(P) (16)區(qū)間復(fù)位操作元件:K、HKnxknYknMknSTCDV、ZXYMS程序步

溫馨提示

  • 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

提交評論