第五章 編程元件及指令第3節_第1頁
第五章 編程元件及指令第3節_第2頁
第五章 編程元件及指令第3節_第3頁
第五章 編程元件及指令第3節_第4頁
第五章 編程元件及指令第3節_第5頁
已閱讀5頁,還剩97頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

一、典型環節梯形圖設計1、延時接通、延時斷開電路電路中X0為ON后T0開始計時。6s后T0常開觸點接通,Y0為ON。X0為OFF后T6開始計時,9S后T6常閉觸點斷開,使Y0為OFF,T6亦被復位。

2.振蕩電路電路中X0常開觸點接通后,T0的線圈開始“通電”;8秒后T0常開觸點接通,從而Y0為ON,T1也開始“通電”計時。9秒以后,T1常閉觸點斷開,使T0“斷電”復位,其常開觸點斷開使T1復位、Y0為OFF。T1的復位使T1的常閉觸點閉合導致T0又開始“通電”計時,以后Y0將這樣循環地“OFF”和“ON”,“OFF”的時間為T0的設定值,“ON”的時間為T1的設定值。K903.長延時電路

FX系列可編程控制器的定時器最長定時時間為32767.7s,如果要設定更長的時間,就需要用戶自己設計一個長延時電路。

定時器“接力”電路用N個定時器串級“接力”延時,達到長延時的目的,電路總的延時時間為各個定時器設定值之和,所能達到的最大延時時間為3276.7×N秒。

計數器串級電路

M8012和C0組成一個4000×0.1s=400s的定時器。由于C0的常開觸點控制C0的復位指令,所以C0的常開觸點每隔400s閉合一個掃描周期。C1對C0常開觸點閉合的次數計數,累計夠81個后C1常開觸點接通,使Y0為ON。X0為啟動延時電路的信號,所以X0為ON后400s×81=32400s=9h輸出繼電器Y0為ON。X1為停止信號。這個電路最長的延時時間為32767×0.1s×32767=107367628.9s≈1242.68天≈3.4年。

X0用于啟動延時電路,M0為ON,經過2000s+1600s=3600s=1h后Y0為ON。

4.分頻電路

在X0為ON的第一個周期里,M0、M1、Y0為ON,M2為OFF;而在X0為ON的第二個周期里,由于M1常閉觸點的斷開,M0為OFF,M1繼續為ON,M2繼續為OFF,Y0自保為ON。以后X0為OFF,Y0仍然為ON。下次X0為ON時,M0仍然產生一個單脈沖,但由于上個周期Y0為ON,所以導致M2為ON,致使Y0為OFF。由于Y0的頻率為X0的一半,故此電路又叫二分頻電路。

5.單按鈕啟動、停止電路用一個按鈕來實現啟動和停止兩種控制。圖(a)為利用計數器實現單按鈕控制的電路。X0第一次為ON,M0接通一個周期,使C0當前值為1,Y0為ON且自保。下次X0為ON、M0接通一個周期,使C0當前值為2,C0常閉觸點斷開,使Y0為OFF,下個周期C0常開觸點的閉合使C0復位,當前值變為0,等待下一次啟動。圖(b)中X0第一次接通時,M0接通一個周期,此周期中Y0通過自身常閉觸點和M0常開觸點的閉合使Y0為ON;緊接著下一個周期,M0為OFF,Y0通過M0的常閉觸點和Y0常開觸點的閉合使Y0為ON自保。下次X0為ON時,M0常閉觸點斷開,打開自保,Y0為OFF。圖(c)中為利用功能指令中的交替輸出指令ALT來實現單按鈕控制啟停控制的電路。6.三相異步電動機啟保停電路7.三相異步電動機正反轉控制電路按鈕互鎖電氣互鎖接觸器輔助常閉觸點的互鎖第五節功能指令

5.1

功能指令的基本知識5.2

程序流控制(FNC00~FNC09)5.3傳送和比較指令(FNC10~FNC19)5.4算術和邏輯運算指令(FNC20~FNC29)5.5循環移位指令(FNC30~FNC39)5.6數據處理指令(FNC40~FNC49)5.7高速處理指令(FNC50~FNC59)5.8方便指令(FNC60~FNC69)5.9外圍設備I/O指令(FNC70~FNC79)5.10外圍設備SER指令(FNC80~FNC89)5.11浮點運算指令(FNC110~FNC139)5.12時鐘運算指令(FNC160~FNC169)5.13葛雷碼變換指令(FNC170~FNC179)5.14觸點比較指令(FNC220~FNC249)5.1功能指令的基本知識一、基本格式梯形圖格式指令表格式步序操作碼操作數

0LDX01MEAN

D0D10K3

8。。。。又稱應用指令,用于數據的傳送、運算、變換及程序控制等功能。具有128種298條X0MEAND0D10K3[D][S][n]操作碼與操作數操作碼(指令助記符):表示指令的功能操作數:指明參與操作的對象源操作數S:執行指令后數據不變的操作數,兩個或兩個以上時為S1、S2。目標操作數D:執行指令后數據被刷新的操作數,兩個或兩個以上時為D1、D2。如果可使用變址功能,用[S·]和[D·]表示。其它操作數m、n:補充注釋的常數,用K(十進制)和H(十六進制)表示,作為源和目標操作數的補充說明,兩個或兩個以上時為m1、m2、n1、n2。指令步數指令步數為執行該指令所需的程序步數。應用指令的指令編號和指令助記符占一個程序步,每個操作數占2個或4個程序步(16位操作數和32位操作數分別占2個和4個程序步)。因此,一般16位指令為7個程序步,32位指令為13個程序步數據長度16位:參與運算的數據默認為16位二進制數據32位:32位數據時在操作碼前面加D(Double)二、數據長度及執行方式X0MOVD0D1X1DMOVD2D4(D0)→(D1)(D3D2)→(D5D4)

對于32位功能指令,其助記符在16位指令助記符上添加符號D。

執行方式連續執行方式:每個掃描周期都重復執行一次,操作數的內容每個掃描周期都變化。

脈沖執行方式:只在信號OFF→ON時執行一次,在指令后加P(Pulse)。X0MOVD0D1X1MOVPD2D4四、數據格式

在FX系列PLC內部,數據是以二進制(BIN)補碼的形式存儲,所有的四則運算都使用二進制數。二進制補碼的最高位為符號位,正數符號位為0,負數符號位為1。為更精確地進行運算,可采用浮點數運算。在FX系列PLC中提供了二進制浮點運算和十進制浮點運算。5.2程序流向控制功能指令一、條件跳轉指令FNC00CJ二、子程序指令FNC01CALLFNC02SRET三、中斷指令FNC03IRETFNC04EIFNC05DI四、主程序結束指令FNC06FEND

五、警戒時鐘定時器指令FNC07WDT六、循環指令FNC08FOX

FNC09NEXT一、條件跳轉指令FNC00CJ操作數:指針P0~P127梯形圖X10X11…Y1X12P0…CJP0CJP0指令表步序操作碼操作數

0LDX101CJ

P0

。。。

10LDX1111CJP0

。。。。

20P021LDX1222OUTY1說明CJ指令跳過部分程序,可以縮短程序的掃描周期。

一個指針只能出現一次。該指令可以連續和脈沖執行方式。被跳過去的程序中各元件的狀態為Y、M、S保持跳轉前狀態不變。定時器T和計數器C如果被CJ指令跳過,跳轉期間它們的當前值將被保存。如果在跳轉開始時定時器和計數器正在工作,在跳轉期間它們將停止定時和計數。

T192~T199和高速計數器C235~C255如果在驅動后跳轉,則繼續工作,輸出觸點也會動作。如圖,

X000為ON時,程序跳到指針P8處。

X000為OFF時,不執行跳轉,程序按原順序執行。如果用M8000的常開觸點驅動CJ指令,相當于無條件跳轉指令,因為運行時特殊輔助寄存器M8000總是ON。二、子程序指令子程序調用FNC01CALL(Sub-RoutineCall)

操作數:指針P0~P127子程序返回FND02SRET(Sub-RoutineReturn)無操作數說明子程序應該在主程序結束之后編程。

同一指針只能出現一次CJ指令的指針與CALL的指針不能重復。子程序允許嵌套,嵌套級別最多為5級。子程序只能用T192~T199和T246~T249作定時器。梯形圖

X1FENDSRETP8CALLP8Y1X12Y21X11Y30………主程序子程序三、中斷指令中斷返回

FNC03IRET(InterruptionReturn)

開中斷FNC04EI(InterruptionEnable)

關中斷FNC05DI(InterruptionDisable)均無操作數梯形圖開中斷范圍X0I100X10FENDIRETEIDIIRETI101中斷子程序2中斷子程序1說明在執行某個中斷子程序時,禁止其它中斷請求。

用于中斷的指針用來指明某一中斷源的中斷程序的入口。中斷程序允許嵌套,嵌套級別為2級。中斷指針共有15個:輸入中斷6個,定時器中斷3個,計數器中斷6個。中斷程序用T192~T199和T246~T249作定時器。中斷的優先級別多個中斷信號不同時產生時,按先后順序中斷。多個中斷信號同時產生時,按指針大小中斷。輸入中斷用來接收特定的輸入地址號的輸入信號,輸入中斷指針I□0△。最高位□與X000~X005的元件號相對應,單元的輸入號為0~5(從X000~X005輸入)。最低位△為0時表示下降沿中斷,反之為上升沿中斷。定時器中斷指針為I6□□~I8□□,低兩位是以ms為單位定時時間(1~99ms)。M8056~M5058為ON時,將分別禁止定時中斷0~2。計數器中斷指針為I0□0(□=1~6)。計數器中斷與HSCS(高速計數器比較置位)指令配合使用,根據高速計數器的計數當前值與計數設定值的關系來確定是否執行相應的中斷服務程序。無操作數梯形圖X1FENDSRETP8CALLP8Y1X12Y21X11Y30………主程序子程序四、主程序結束指令FNC06FEND說明與END指令的功能一樣,執行到該指令時程序返回到0步。中斷服務子程序和子程序應該寫在FEND之后,并且用IRET和SRET返回。如果多次使用FEND指令,在最后的FEND和END之間編寫子程序或中斷子程序無操作數警戒定時器是一個專用定時器,其設定值存放在特殊的數據寄存器D8000中,并以ms為計時單位。當PLC一上電,則對警戒定時器進行初始化,將K100(設定值為100ms)裝入D8000中,每個掃描周期結束時,馬上刷新警戒定時器的當前值,使PLC能正常運行。當掃描周期大于100ms時,即超過了警戒定時器的設定值,警戒定時器的邏輯線圈被接通,CPU立即停止執行用戶程序,同時切斷全部輸出,并且報警顯示。五、警戒定時器指令FNC07WDT如果正常的掃描周期超過警戒時鐘的設定值,可以在適當程序步中加入WDT指令,適時刷新警戒時鐘,使程序能順利執行。也可以通過MOV指令修改警戒定時器的設定值(D8000的值)。可以計算出程序掃描周期的最大值作為警戒時鐘的設定值。WDT指令可用在FOR-NEXT之間。五、警戒定時器指令FNC07WDT(WATCHDOGTIMER)

警戒定時器指令的應用循環開始FNC08FOR

操作數[S]:K,H、KnX、KnY、KnM、KnS、T、C、D、V,Z循環結束FNC09NEXT

無操作數說明n為循環次數,其范圍為1~32767有效。如果指定為-32768~0,則作n=1處理。循環指令最多可以嵌套5級。程序中FOR-NEXT是成對出現的,FOR在前,NEXT在后不可倒置,否則出錯。編程時NEXT應該在FEND或END之前,否則出錯。六、循環指令循環指令使用說明圖中,外層循環程序A嵌套了內層循環B,循環A執行5次,每執行一次循環A,就要執行10次循環B,因此循環B一共要執行50次。利用循環中的CJ指令可以跳出FOR-NEXT之間的循環區。圖

雙重循環

(3)下圖為雙重循環的例子。接通PLC電源,當X0閉合,程序轉到P1執行。當X0斷開,接通PLC電源,程序執行雙重循環,執行結果為Z=50,D0=49。之后,執行定時器指令。當T0的當前值等于設定值D0,T0觸點接通,Y0得電。5.3數據比較和傳送指令一、比較指令FNC10CMP二、區間比較指令FNC11ZCP三、傳送指令

FNC12MOV四、移位傳送指令FNC13SMOV五、取反傳送指令FNC14CML六、塊傳送指令FNC15BMOV七、多點傳送指令FNC16FMOV

八、數據交換指令FNC17XCH九、變換指令FNC18BCD

FNC19BIN操作數[S1]、[S1]:K,H、KnX、KnY、KnM、KnS、T、C、D、

V,Z[D]:Y、M、S梯形圖[S1]K100>C10的當前值時,M0=ONK100=C10的當前值時,M1=ONK100<C10的當前值時,M2=ONM0M1M2X0[S2][D]CMPK100C10M0一、比較指令FNC10CMP(Compare)說明該指令是將源操作數[S1]和[S2]的中數據進行比較,結果送目標操作數[D]中去。[D]由3個元件組成,指令中[D]給出首地址,其它兩個為后面的相鄰元件。當X0由ON→OFF時,不執行CMP指令,M0~M2保持斷開前的狀態,用復位指令RST才能清除比較結果。CMP是進行二進制代數比較。可以32位二進制數比較和脈沖執行方式。如果指令中指定的操作數不全、元件超出范圍、軟元件地址不對時,程序出錯。比較指令CMP工作時,其控制觸點必須一直閉合。因此設置X2,用M0自鎖實現。當X1閉合8次,K10>C0當前值,Y0得電;當X1閉合10次,K10=C0當前值,Y1得電;當X1閉合16次,K10<C0當前值,Y2得電。

例下圖為指令CMP的應用例子。按X0及X2,問當按X1為8次,10次,16次,燈Y0、Y1、Y2哪個亮?

操作數[S1]、[S1]:K,H、KnX、KnY、KnM、KnS、T、C、D、

V,Z[D]:Y、M、S梯形圖K100≤C10的當前值<120時,M1=ON[S1]K100>C10的當前值時,M0=ONK120<C10的當前值時,M2=ONM0M1M2X0[S2][D]ZCPK100K120C10M0[S]二、區間比較指令FNC11ZCP(ZoneCompare)說明ZCP指令是將源操作數[S]的數據和兩個源操作數[S1]和[S2]的數據進行比較,結果送到[D]中,[D]為三個相鄰元件的首地址。ZCP指令為二進制代數比較,并且[S1]<[S2],如果[S1]>[S2],則把[S1]視為[S2]處理。當X0由ON→OFF時,不執行ZCP指令,M0~M2狀態保持不變,需要用復位指令才能清除比較結果。該指令可以進行16/32位數據處理和連續/脈沖執行方式。傳送指令FNC12MOV(D)MOV(P)該指令的功能是將源數據傳送到指定的目標。操作數[S1]:

所有數據類型[D]:KnY、KnM、KnS、T、C、D、V、Z。梯形圖三、傳送指令FNC12MOV說明該指令將源操作數[S]中的數據傳送到目標操作數[D]中去。MOV指令可以進行(D)和(P)操作。如果[S]為十進制常數,執行該指令時自動轉換成二進制數后進行數據傳送。當X0斷開時,不執行MOV指令,數據保持不變。例試讀下圖梯形圖,當按X0,則Y0、Y1、Y2、Y3,哪個有輸出?

操作數[S1]、[S1]:K,H、KnX、KnY、KnM、KnS、T、C、D、

V,Z[D]:KnY、KnM、KnS、T、C、D、V,Zm1、m2、n:K、H說明該指令將源操作數[S]的16位二進制數自動轉換成4位BCD碼,然后從右向左第m1位開始向右數m2位,傳送到目標操作數(4位BCD碼)的從右向左第n位開始向右數m2位的位置上,最后這4位BCD碼自動轉換成二進制數后送入目標操作數[D]中去。傳送中BCD碼數值超過9999時程序出錯。四、移位傳送指令FNC13SMOV(ShiftMove)梯形圖[S]X0m1[D]m2SMOVD1K4K2D2K3n310010110210310010110210D1D2b15b15b0b0自動轉換自動轉換4位BCD碼4位BCD碼保持保持D1D2二進制二進制從D1右起第四位(m1=K4)開始的2位(m2=K2)數,移到D2的右起第3位(n=K3)和第2位,D2中的第1位和第4位保持不變,最后D2中的數自動變成二進制數

.圖移位傳送示例11從接在分開的接線端子上的3個數字開關來的輸入組合成數據輸入操作數[S]:K,H、KnX、KnY、KnM、KnS、T、C、D、V,Z[D]:KnY、KnM、KnS、T、C、D、V,Z說明該指令把源操作數[S]中的數據各位取反(1→0,0→1)后傳送到目標操作數[D]中去。該指令可以16/32位數據處理和連續/脈沖執行方式五、取反傳送指令FNC14CML(ComplementMove)

梯形圖CMLD0K1Y0X0[D][S]1010101010101010

0101符號位取反傳送保持不變Y0Y3(D0)(K1Y0)若源操作數中的數為十進制常數時,將自動轉換成二進制.操作數

[S]:K,H、KnX、KnY、KnM、KnS、T、C、D、V,Z[D]:KnY、KnM、KnS、T、C、D、V,Zn:K、H梯形圖[S]X0DnBMOVD5D10K3D7D6D5D12D11D10六、塊傳送指令FNC15BMOV(BlockMove)說明[S]為存放被傳送的數據塊的首地址;[D]為存放傳送來的數據塊的首地址;n為數據塊的長度。位元件進行傳送時,源和目標操作數要有相同的位數。當傳送地址號重疊時,為防止在傳送過程中數據丟失(被覆蓋),要先把重疊地址號中的內容送出,然后再送入數據。如圖所示,采用①~③的順序自動傳送。該指令可以連續/脈沖執行方式。X0BMOVK1M0K1Y0K2n=K2M2M1M0M3Y2Y1Y0Y3M6M5M4M7Y6Y5Y4Y7X1BMOVD10D9K3X2BMOVD10D11K3D12D11D10D11D10D9D12D11D10D13D12D11①③②③②①操作數

[S]:K,H、KnX、KnY、KnM、KnS、T、C、D、V,Z[D]:KnY、KnM、KnS、T、C、Dn:

K、H梯形圖[S]X0DnFMOVK10D0K10X0為ON時把常數10傳送到D0~D9中去七、多點傳送指令FNC16FMOV(FillMove)操作數

[D1]、[D2]:KnY、KnM、KnS、T、C、D、V,Z梯形圖[D1]X0XCH(P)D0D1[D2](D0)(D1)八、數據交換指令FNC17XCH(Exchange)注意交換指令一般要在脈沖方式執行,否則不能正常工作。操作數

[S]:KnX、KnY、KnM、KnS、T、C、D、V,Z[D]:KnY、KnM、KnS、T、C、D、V,Z梯形圖[S]X0BCDD10K2Y0[D][S]X1BINK2Y0D14[D]九、數據變換指令FNC18BCD(BinaryCodetoDecimal)二進制數轉換成BCD碼并傳送到指定目標元件中。FNC19BIN(Binary)BCD碼轉換為二進制數并傳送到指定目標元件中。5.4算術與邏輯運算指令一、二進制加減運算指令

加法FNC20ADD(Addition)

減法FNC21SUB(Subtraction)操作數[S1]、[S2]:K、H、KnX、KnY、KnM、KnS、T、C、D、V,Z[D]:KnY、KnM、KnS、T、C、D、V,Z梯形圖[S1]X0ADDD0D2D4[D][S1]X1DSUBD10D12D14[D][S2][S2](D0)+(D2)(D4)(D11D10)–(D13D12)(1D5D14)說明指令是代數加減運算,數據的最高位為符號位。進行16位加減運算時,數據范圍為-32768~+32767;32位運算時,數據范圍為-2147483648~+2147483647。運算結果為0時,零標志置位(M8020=1);運算結果大于+32767(或+2147483647)時,進位標志置位(M8022=1);運算結果小于-32768(或-2147483648)時,借位標志置位(M8021=1)。該指令可以進行連續/脈沖執行方式。乘法FNC22MUL(Multiplication)

除法FNC23DIV(Division)操作數[S1]、[S2]:K、H、KnX、KnY、KnM、KnS、T、C、D、V,Z[D]:KnY、KnM、KnS、T、C、D、V,Z梯形圖[S1]X0MULD0D2D4[D][S1]X1DDIVD10D12D14[D][S2][S2](D0)×(D2)(D5D4)被乘數乘數積(D11D10)÷(D13D12)(1D5D14)···(D17D16)被除數除數商余數二、二進制乘除運算指令操作數指令進行二進制運算,數據最高位為符號位。可以進行16/32位乘除運算,16位運算時,積為32位數據,商和余數為16位數據;32位運算時,積為64位數據,商和余數為32位數據。0作除數時程序出錯。被除數和除數中有一個為負數時,商為負數;被除數為負數時,余數也為負數。位元件作為32位乘法運算的目標元件時,只能得到積的低32位數據。可以進行連續/脈沖執行方式。加1FNC24INC(Increment)減1FNC25DEC(Decrement)

操作數[D]:KnY、KnM、KnS、T、C、D、V,Z梯形圖X0INC(P)D10[D]X1DEC(P)D12[D](D10)+1(D10)(D12)–1(D12)三、二進制加1減1指令說明上述指令可以連續/脈沖執行方式,應用中要特別注意。可以進行16/32位運算,并且為二進制運算。如果從+32767(或+2147483647)再加1,則變成-32768(或-2147483648);如果從-32768(或-2147483648)再減1,則變成+32767(或+2147483647),為循環計數。以上變化時標志位不動作,也就是說這兩條指令和零標志、借位標志、進位標志無關。

邏輯與FNC26

WAND(WordAND)

邏輯或FNC27

WOR(WordOR)

邏輯異或FNC28WXOR(WordExclusiveOR)操作數[[S1]、[S2]:K、H、KnX、KnY、KnM、KnS、T、C、D、

V,Z[D]:KnY、KnM、KnS、T、C、D、V,Z四、邏輯運算指令(D0)∧(D2)→(D4)(D10)∨(D12)→(D14)

(D20)(D22)→(D24)∨[S1]X0WANDD0D2D4[D]WORD10D12D14[S2]WXORD20D22D24異或非運算的梯形圖X0WXORD10D12D14CMLD14D14(D14)→(D14)梯形圖

(D10)(D12)→(D14)∨說明各數據的對應位進行二進制與、或、異或運算。32位數據運算時,助記符為DAND、DOR、DXOR。指令運算規則如下:邏輯與1∧1=11∧0=00∧1=00∧0=0邏輯或1∨

1=11∨

0=00∨

1=00∨

0=0邏輯異或1

1=01

0=10

1=10

0=0∨∨∨∨操作數[D]:KnY、KnM、KnS、T、C、D、V,ZX0NEGD10[D](D10)+1→(D10)說明求補指令是把二進制數各位取反再加1后,送入目標操作數[D]中。實際是絕對值不變的變號操作。

PLC的負數以二進制的補碼形式表示,其絕對值可以通過求補指令求得。五、求補指令FNC19NEG(Negation)

5.5循環與移位功能指令使位數據或字數據向指定方向循環、位移的指令

一、循環移位指令

左、右循環移位指令循環右移FNC30ROR(RotationRight)循環左移FNC31

ROL(RotationLeft)

操作數[D]:KnY、KnM、KnS、T、C、D、V、Z說明執行這兩條指令時,各位的數據向右(或向左)循環移動n位(n為常數),16位指令和32位指令中n應分別小于16和32。每次移出來的那一位同時存入進位標志M8022中。

循環位移指令使用說明帶進位左、右循環移位指令帶進位循環右移FNC32

RCR(RotationRightwithCarry)帶進位循環左移FNC33

RCL(RotationLeftwithCarry)執行這兩條指令時,各位的數據與進位位M8022一起(16位指令時一共17位)向右(或向左)循環移動n位(見圖)。

位右移和位左移指令

實現位元件中的狀態成組地向右或向左移動

圖中X010由OFF變為ON時,位右移指令(3位1組)按以下順序移位:M2~M0中的數溢出,M5~M3→M2~M0,M8~M6→M5~M3,X002~X0000→M8~M6。圖b中的X010由OFF變為ON時,位左移指令按圖中所示的順序移位。

位右移FNC34SFTR(ShiftRight)位左移FNC35SFTL(ShiftLeft)

指令使用說明位移位操作數

[S]:X、Y、M、S[D]:Y、M、S梯形圖說明:位元件組的長度由n1指定,n2指定移動的位數。

字右移和字左移指令字右移FNC36

WSFR(WordShiftRight)、字左移FNC37

WSFL(WordShiftLeft)

圖a中的X000由OFF變為ON時,字右移指令按圖中所示的順序移位。圖b中的X010由OFF變為ON時,字左移指令按圖中所示的順序移位。字移位指令使用說明操作數

[S]:

KnX、KnY、KnM、KnS、T、C、D[D]:KnY、KnM、KnS、T、C、D梯形圖移位寄存器寫入與讀出指令移位寄存器又稱為先入先出FIFO(FirstinFirstout)堆棧,堆棧的長度范圍為2~512個字。寫入指令FNC38

SFWR(ShiftRegisterWrite)移位寄存器讀出指令FNC39

SFRD(ShiftRegisterRead)用于FIFO堆棧的讀寫,先寫入的數據先讀出。

SFWR操作數

[S]:K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z[D]:KnY、KnM、KnS、T、C、DSFRD操作數

[S]:KnX、KnY、KnM、KnS、T、C、D[D]:KnY、KnM、KnS、T、C、D

如果X000再次由OFF變為ON,D1中的數變為2,D0中的數據寫入D3。依此類推,源操作數D0中的數據依次寫入堆棧。當D1中的數據等于n-1(n為堆棧的長度)時,不再執行上述處理,進位標志M8022置1。FIFO指令使用說明圖a中:目標元件D1是FIFO堆棧的首地址,也是堆棧的指針,移位寄存器未裝入數據時應將D1清0。

在X000由OFF變為ON時,指針的值加1后寫入數據。第一次寫入時,源操作數D0中的數據寫入D2。圖b中

X000由OFF變為ON時,D2中的數據送到D20,同時指針D1的值減1,D3到

D9的數據向右移一個字。數據總是從D2讀出,指針D1為0時,FIFO堆棧被讀空,不再執行上述處理,零標志M8020為ON。執行本指令的過程中,D9的數據保持不變。5.6數據處理指令一、區間復位指令

區間復位指令ZRST(ZoneReset)將D1~D2指定的元件號范圍內的同類元件成批復位。

如果D1的元件號大于D2的元件號,則只有D1指定的元件被復位。單個位元件和字元件可以用RST指令復位。

如圖中:

當M8002由OFF→ON時,執行區間復位指令。位元件M500~M599成批復位,字元件C235~

C255成批復位,狀態元件S0~S127成批復位。雖然ZRST指令是16位指令,D1和D2也可以指定

32位計數器。區間復位指令

操作數

[D1]:Y、M、S、T、C、D[D2]:Y、M、S、T、C、D二、解碼與編碼指令

解碼(譯碼)指令FNC40

DECO(Decode)編碼指令FNC41

ENCO(Encode)解碼/編碼指令在n=0時不作處理。當執行條件OFF時,指令不執行,輸出保持不變。DECO操作數

[S]:K、H、X、Y、M、S、T、C、D、V、Z[D]:Y、M、S、T、C、DENCO操作數

[S]:X、Y、M、S、T、C、D、V、

[D]:T、C、D、V、Z說明解碼指令是將目標元件的某一位置“1”,其它位置“0”,置“1”位的位置由源操作數[S1·]為首址的n位連續位元件或數據寄存器所示的十進制碼決定。編碼指令是把源元件中為“1”的最高位的位置轉化為二進制數并送到目標元件的低n位中。

圖a中:X002~X000組成的3位(n=3)二進制數為011,相當于十進制數3,由目標操作數M7~M0組成的8位二進制數的第3位(M0為第0位)M3被置1,其余各位為0。如源數據全零,則M0置1。圖b中:n=3,編碼指令將源元件M7~M0中為“1”的M3的位數3編碼為二進制數011,并送到目標元件D10的低3位。編碼與解碼指令使用說明三、求置ON位總和與ON位判別指令

位元件的值為1時稱為ON,求置ON位總和指令FNC43

SUM

統計源操作數中為ON的位的個數,并將它送入目標操作數。

ON位判別指令FNC44

BON(BitONCheck)用來檢測指定元件中的指定位是否為ON,若為ON,則位目標操作數變為ON,目標元件是源操作數中指定位的狀態的鏡像。

SUM操作數

[S]:K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z[D]:KnY、KnM、KnS、T、C、D、V、ZBON操作數

[S]:K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z[D]:Y、M、S如圖所示,當X000為ON時,將D0中置1的總和存入目標元件D2中,若D0為0,則0標志M8020動作。當X003為ON時,判別D10中第15位,若為1,則M0為ON,反之為OFF。

X000變為OFF時,M0狀態不變化。求ON位總和與ON位判別指令四、平均值指令

平均值指令FNC45MEAN是將S中指定的n個源操作數據的平均值存入目標操作數D中,舍去余數。

如圖所示:如n超出元件規定地址號范圍時,n值自動減小。

n在1~64以外時,會發生錯誤。

平均值指令使用說明操作數

[S]:KnX、KnY、KnM、KnS、T、C、D[D]:KnY、KnM、KnS、T、C、D、V、Z五、報警器置位復位指令

報警器置位指令FNC46

ANS(AnnunciatorSet)。用于啟動定時器,時間到n×100ms時指定目標元件狀態置ON。

報警器復位指令FNC47

ANR(AnnunciatorReset),無操作數。用于將S900~S999之間被置ON的報警器依次復位。

圖中:

M8000的常開觸點一直接通,使M8049的線圈通電,特殊數據寄存器D8049的監視功能有效,D8049用來存放S900~S999中處于活動狀態且元件號最小的狀態繼電器的元件號。

Y000變為ON后,100ms定時器T0開始定時,如果

X000在10s內未動作(n=100),S900變為ON。

X003為ON后,100ms定時器T1開始定時,如果在20s

內X004未動作,S901將會動作。

故障復位按鈕X005和ANR指令將用于故障診斷的狀態繼電器復位。報警器置位復位指令操作數

[S]:T0~T199[D]:S900~S999六、其他數據處理指令

二進制平方根指令FNC48

SQR(SquareRoot)浮點數轉換指令FNC49

FLT(FloatingPiont)高低字節交換指令FNC147

SWAP二進制平方根指令、浮點數轉換指令、高低字節交換指令使用要素圖中:

X002為ON時,將存放在D45中的數開方,結果存放在D123內。計算結果舍去小數,只取整數。M8023為ON將對32位浮點數開方,結果為浮點數。

X003為ON,且M8023(浮點數標志)為OFF時,該指令將存放在源操作數D10中的數據轉換為浮點數,并將結果存放在目的寄存器D13

和D12中。

M8023為ON時,將把浮點數轉換為整數。用于存放浮點數的目的操作數應為雙整數,源操作數可以是整數或雙整數。

X004為ON時,16位指令將D10中的高8位與低8位字節交換

二進制平方根指令、浮點數轉換指令、高低字節交換指令5.7高速處理指令一、與輸入輸出有關的指令輸入輸出刷新指令

輸入輸出刷新指令FNC50REF(Refresh)可用于對指定的輸入輸出口立即刷新。

圖中:當X000為ON時,X010~X017這8點輸入(n=8)被立即刷新。當X001為ON時,Y000~Y027共24點輸(n=24)被立即刷新。

輸入輸出刷新、濾波時間調整指令刷新和濾波時間常數調整指令

刷新和濾波時間常數調整指令FNC51REFF(RefreshandFilterAdjust)用來刷新輸入口X000~X017,并指定它們的輸入濾波時間常數n。

操作數

[D]:X、Yn為8的倍數圖中當X010為ON時,X000~X017的輸入映像寄存器被刷新,它們的輸入濾波時間常數被設定為1ms(n=1)。矩陣輸入指令MTR(Matrix)

可以將8點輸入與n點輸出構成8行n列的輸入矩陣,從輸入端快速、批量接收數據。矩陣輸入占用由S指定的輸入號開始的8個輸入點,并占用由D1指定的輸出號開始的n個晶體管輸出點。

矩陣輸入指令使用要素矩陣輸入指令使用說明如圖所示:

n=3,是一個8點輸入、3點輸出,可以存儲24點輸入的矩陣電路。

3個輸出點(Y020~Y022)依次反復順序接通。

Y020為ON時讀入第一行輸入的狀態,存于M30~M37,

Y021為ON時讀入第二行輸入的狀態,存于M40~M47,余類推,如此反復執行。二、高速計數器指令

高速計數器比較置位HSCS(SetbyHighSpeedCounter)高速計數器比較復位HSCR(ResetbyHighSpeedCounter)高速計數器區間比較HSZ(ZonecompareforHighSpeedCounter)它們均為32位指令。高速計數器指令使用要素高速計數器區間比較指令有三種工作模式:標準模式、多段比較模式和頻率控制模式。若在同一程序中多處使用高速計數器控制指令,其被控對象輸出繼電器的編號的高2位應相同,以便在同一中斷處理過程中完成控制。

例如:使用Y000時,應為Y000~Y007。使用Y010時,應為Y010~Y017。圖中:

C255的設定值為100(S1=100),其當前值由99

變位100或由101變為100時,Y010立即置1,不受掃描時間的影響。

C254的設定值為200(S1=200),其當前值由

199變為200或由201變為200時,Y020立即復位。

C251的當前值小于1000時,Y010置1;大于1000

小于1200時,Y011置1;大于1200時,Y012置1。

高速計數器指令使用說明三、脈沖指令

速度檢測指令

脈沖速度檢測指令FNC56SPD(SpeedDetect)用來檢測給定時間內從編碼器輸入的脈沖個數,并計算出速度。操作數[S1]:X000~X005[S2]:K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z[D]:T、C、D、V、Z圖中:用D1對X000輸入的脈沖個數計數,100ms后計數結果送到D0、D1中的當前值復位,重新開始對脈沖計數。計數結束后D2用來測量剩余時間。轉速n用下式表示:式中,n為轉速,(D0)為D0中的數;t為S2指定的計數時間(ms);n0

為每轉的脈沖數。脈沖輸出與脈寬調制指令

脈沖輸出指令PLSY(PulseOutput)用于產生指定數量和頻率的脈沖。脈寬調制指令PWM(PulseWidthModulation)用于產生指定脈沖寬度和周期的脈沖串。脈沖輸出與脈寬調制指令使用要素圖:

X010由ON變為OFF時,M8029復位,脈沖輸出停止。

X010重新變為ON時,重新開始輸出脈沖。在發生脈沖期間X010若變為OFF,Y000也變為OFF。

D10的值從0~50變化時,Y001輸出的脈沖的占空比從0~1變化。

X011變為OFF時,Y001也OFF。脈沖輸出與脈寬調制指令使用說明5.8方便指令一、狀態初始化指令

狀態初始化指令FNC60

IST(InitialState)與步進梯形STL指令一起使用,用于自動設置多種工作方式的控制系統的初始狀態,以及設置有關的特殊輔助繼電器的狀態。指令中S指定運行模式的初始輸入。

狀態初始化及數據搜索指令使用說明利用最簡單的順控程序進行復雜控制。有10種操作數[S]:X、Y、M[D1][D2]

:S20~S899D1<D2(1)IST指令的源操作數可取X、Y和M,用來指定與工作方式有關的首地址,它實際指定了從首址開始的8個連續號的同類元件具有以下意義:X20:手動X24:連續運行(全自動)X21:回原點X25:回原點啟動X22:單步運行X26:自動運行啟動X23:單周運行(半自動)X27:停止X20~X24對應了系統的5種工作方式,每時每刻只能有一個為ON,故外部接線圖中對應的輸入端口必須使用選擇開關。S0:手動操作初始狀態M8040:禁止轉移M8047:STL步進指令監控有效S1:回原點初始狀態M8041:開始轉移S2:自動操作初始狀態M8042:啟動脈沖(2)IST指令的目標操作數[D1?]和[D2?]用來指定在自動操作中用到的狀態元件的最低和最高元件號,可取S20~S899。(3)IST指令執行條件滿足時,S0、S1、S2和下列特殊輔助繼電器被自動設定為以下功能;若以后執行條件變為OFF,這些元件的功能仍然保持不變:二、數據搜索指令數據搜索指令SER(DataSearch)用于在數據表中查找指定的數據。

數據搜索指令的要素如圖所示:當X001為ON時,將D130~D138中的每一個值與D24中的內容相比較,結果存放在以指定的檢索結果器件D35開始的5個數據寄存器(D35~D39)中。

三、凸輪順控指令絕對值式凸輪順控指令

絕對值式凸輪順控指令ABSD(AbsoluteDrum)可以產生一組對應于計數值變化的輸出波形,用來控制最多64個輸出變量(Y、M和S)的ON/OFF。絕對值式凸輪順控指令的要素圖中:X000為凸輪執行條件。凸輪平臺旋轉一周產生每度一個脈沖從X001入。有4個輸出點(n=4)用M0~M3來控制。從D300開始的8個(2n=8)數據寄存器用來存放

M0~M3的開通點和關斷點的位置值。絕對值式凸輪順控指令說明增量式凸輪順控指令

增量式凸輪順控指令INCD(IncrementDrum)根據計數器對位置脈沖的計數值,實現對最多64個輸出變量的循環順序控制,使它們依次為ON,并且同時只有一個輸出變量為ON。可用來產生一組對應于計數值變化的輸出波形。

增量式凸輪順控指令的要素圖中:有4個輸出點(n=4)用M0~M3來控制。從D300開始的4個(n=4)數據寄存器用來存放使M0~M3處于ON狀態的脈沖個數,可以用MOV指令將它們寫入D300~D303。

C0的當前值依次達到D300~D303中的設定值時自動復位,然后又開始重新計數,M0-M3按C1的值依次動作。由n指定的最后一段完成后,標志M8029置1,以后又重復上述過程。

增量式式凸輪順控指令說明四、定時器指令示教定時器指令示教定時器指令TTMR(TeacheringTimer)可以通過按鈕按下的時間調整定時器的設定值。示教定時器指令的要素圖中:

示教定時器將按鈕X010按下的時間乘以系數10n后作為定時器的預置值。按鈕按下的時間由D301記錄,該時間乘以10n后存入D300。

X010為OFF時,D301復位,D300保持不變。

示教定時器指令特殊定時器指令

特殊定時器STMR(SpecialTimer)指令用來產生延時斷開定時器、單脈沖定時器和閃爍定時器。特殊定時器指令的要素圖中:T10的設定值為10s(m=100)。目的操作數D中指定起始號為M0的4個器件作為特殊定時器。

M0是延時斷開定時器,M1是X000由ON→OFF

后的單脈沖定時器,產生的脈寬為10s;

M2是X000由OFF→ON后的單脈沖定時器,產生的脈寬也為10s;

M3為滯后輸入信號10s向相反方向變化的脈沖定時器。

M2和M3是為閃爍而設的。

特殊定時器指令使用說明及工作波形五、其他方便指令交替輸出指令ALT(Alternate):可以實現多級分頻輸出,單個按鈕起/停、閃爍動作等功能。斜坡信號輸出指令RAMP:可以產生不同斜率的斜坡信號。旋轉工作臺控制指令ROTC:可以使工作臺上指定位置的工件以最短的路徑轉到出口位置。數據排序指令SORT(Sort):將數據編號,按指定的內容重新排列,該指令只能用一次。交替輸出指令ALT為交替輸出指令,其功能指令編號為FNC66,它的功能是把目標元件的狀態取反,[D?]可取Y、M和S,只有16位運算。圖中的X0由OFF變為ON時,Y0的狀態就改變一次。

溫馨提示

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

評論

0/150

提交評論