




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 本章節(jié)描述標準庫指令中的各種指令本章節(jié)描述標準庫指令中的各種指令5.2 5.2 標準庫指令標準庫指令指令塊如圖所示:指令塊如圖所示:減計數器指令減計數器指令CTDCTD輸入:輸入:CDCD: 布爾型(布爾型(BOOLBOOL);該輸入端的上升沿觸發(fā));該輸入端的上升沿觸發(fā)CVCV的遞減計數。的遞減計數。LOADLOAD:布爾型(:布爾型(BOOLBOOL);當其為上升沿觸發(fā)時,);當其為上升沿觸發(fā)時,CVCV被置為上限值被置為上限值PVPV。PVPV: 字型(字型(WORDWORD);上限值,也就是);上限值,也就是CVCV開始遞減時的初始值。開始遞減時的初始值。輸出:輸出:Q Q: 布爾型
2、(布爾型(BOOLBOOL);一旦);一旦CVCV達到達到0 0時,其值為時,其值為TRUETRUE。CVCV:字型(:字型(WORDWORD);不斷減);不斷減1 1的值,從的值,從PVPV開始直至其達到開始直至其達到0 0。 當當LOADLOAD為為TRUETRUE時,計數變量時,計數變量CVCV被初始化為上限值被初始化為上限值PVPV。當。當CDCD端有一個從端有一個從FALSEFALSE變?yōu)樽優(yōu)門RUETRUE的上升沿時,若的上升沿時,若CVCV大于大于0 0時,它時,它將減將減1 1(也就是說,它不會輸出小于(也就是說,它不會輸出小于0 0的值)。當的值)。當CVCV等于等于0 0時
3、,時,Q Q返回返回TRUETRUE。程序例:程序例:分析:程序執(zhí)行時,將分析:程序執(zhí)行時,將PV_WORDPV_WORD設為設為3 3,當,當X2X2由由FALSEFALSE變?yōu)樽優(yōu)門RUETRUE上升沿上升沿 觸發(fā)觸發(fā)時,時,CV_WORDCV_WORD也變?yōu)橐沧優(yōu)? 3。此時。此時 輸入端輸入端X1X1執(zhí)行執(zhí)行FALSEFALSE變?yōu)樽優(yōu)門RUETRUE,上升沿觸發(fā),則,上升沿觸發(fā),則 CV_WORD CV_WORD自動減計數自動減計數1 1;當;當X1X1第第3 3次由次由FALSEFALSE變變 TRUE TRUE上升沿觸發(fā)時,上升沿觸發(fā)時,CV_WORDCV_WORD遞減到遞減到0
4、 0時,此時時,此時Q Q 輸出為輸出為1 1。加計數指令加計數指令CTUCTU指令塊如下圖所指令塊如下圖所示:示:輸入:輸入:CUCU:布爾型(:布爾型(BOOLBOOL);該輸入端的上升沿觸發(fā));該輸入端的上升沿觸發(fā)CVCV的遞增計數。的遞增計數。RESETRESET:布爾型(:布爾型(BOOLBOOL);當其為);當其為TRUETRUE時,時,CVCV被復位為被復位為0 0。PVPV:字型(:字型(WORDWORD););CVCV計數的上限。計數的上限。輸出:輸出:Q Q:布爾型(:布爾型(BOOLBOOL);一旦);一旦CVCV達到其上限達到其上限PVPV時,其值為時,其值為TRUET
5、RUE。CVCV:字型(:字型(WORDWORD);不斷加);不斷加1 1的值,直至其達到的值,直至其達到PVPV。 當當RESETRESET為為TRUETRUE時,計數變量時,計數變量CVCV被初始化為被初始化為0 0。當。當CUCU端有端有一個從一個從FALSEFALSE變?yōu)樽優(yōu)門RUETRUE的上升沿時,的上升沿時,CVCV將加將加1 1。當。當CVCV大于或等大于或等于上限于上限PVPV時,時,Q Q返回返回TRUETRUE。程序例:程序例:分析:程序執(zhí)行時,將分析:程序執(zhí)行時,將PV_WORDPV_WORD設為設為3 3,此時,此時CV_WORDCV_WORD是是0 0。 此時輸入端
6、此時輸入端X1X1執(zhí)行執(zhí)行FALSEFALSE變?yōu)樽優(yōu)門RUETRUE上升沿觸發(fā),則上升沿觸發(fā),則 CV_WORD CV_WORD自動加計數自動加計數1 1;當;當X1X1第第3 3次由次由FALSEFALSE變變TRUETRUE上上 升沿觸發(fā)時,升沿觸發(fā)時,CV_WORDCV_WORD遞增到遞增到3 3時,此時時,此時Q Q輸出為輸出為1 1。 此時如將此時如將RESETRESET端端X2X2執(zhí)行執(zhí)行FALSEFALSE變?yōu)樽優(yōu)門RUETRUE上升沿觸發(fā),上升沿觸發(fā), 則指令重新復位數變量則指令重新復位數變量CVCV被初始化為被初始化為0 0。 計數功能塊計數功能塊CTUCTU:運行結果運行
7、結果:加減雙向計數指令加減雙向計數指令CTUDCTUD指令塊如下圖所示:指令塊如下圖所示:輸入:輸入:CUCU:布爾型(:布爾型(BOOLBOOL);當);當CUCU端有上升沿時,觸發(fā)端有上升沿時,觸發(fā)CVCV的遞增計數。的遞增計數。CDCD:布爾型(:布爾型(BOOLBOOL);當);當CDCD端有上升沿時,觸發(fā)端有上升沿時,觸發(fā)CVCV的遞減計數。的遞減計數。RESETRESET:布爾型(:布爾型(BOOLBOOL)當其為)當其為TRUETRUE時,時,CVCV被復位為被復位為0 0。LOADLOAD:布爾型(:布爾型(BOOLBOOL);當其為);當其為TRUETRUE時,時,CVCV被
8、置為被置為PVPV。PVPV:字型(:字型(WORDWORD););CVCV遞增時的上限值,或遞增時的上限值,或CVCV開始遞減時的初開始遞減時的初 始值始值。輸出:輸出:QUQU:布爾型(:布爾型(BOOLBOOL);一旦);一旦CVCV達到達到PVPV時,其值為時,其值為TRUETRUEQDQD:布爾型(:布爾型(BOOLBOOL);一);一 旦旦CVCV達到達到0 0時,時, 其值為其值為TRUETRUECVCV:字型:字型 (WORDWORD);不斷減);不斷減1 1的值,從的值,從PVPV開始直至其達到開始直至其達到0 0程序例:程序例:分析:當分析:當RESETRESET為為TRU
9、ETRUE時,計數變量時,計數變量CVCV被初始化為被初始化為0 0。當。當LOAD LOAD 為為TRUETRUE時,計數變量時,計數變量CVCV被初始化為上限值被初始化為上限值PVPV。當。當CUCU端端 有一個從有一個從FALSEFALSE變?yōu)樽優(yōu)門RUETRUE的上升沿時,的上升沿時,CVCV將加將加1 1。當。當CDCD 端有一個從端有一個從FALSEFALSE變?yōu)樽優(yōu)門RUETRUE的上升沿時,若的上升沿時,若CVCV不會降不會降 到到0 0以下時,它將減以下時,它將減1 1。當。當CVCV大于或等于上限大于或等于上限PVPV時,時,QU QU 返回返回TRUETRUE。當。當CV
10、CV等于等于0 0時,時,QDQD返回返回TRUETRUE。延時斷開指令延時斷開指令TOFTOF 定時器功能塊,完成關延時的功能。當定時器定時器功能塊,完成關延時的功能。當定時器的輸入端由的輸入端由TRUETRUE變?yōu)樽優(yōu)镕ALSEFALSE時(下降沿),等過了時(下降沿),等過了一段時間后,定時器的輸出端才變?yōu)橐欢螘r間后,定時器的輸出端才變?yōu)镕ALSEFALSE。指令塊。指令塊如下圖所示:如下圖所示:輸入:輸入:ININ:布爾型(:布爾型(BOOLBOOL);該輸入端的下降沿觸發(fā));該輸入端的下降沿觸發(fā)ETET端端 的計時。的計時。PTPT:時間型(:時間型(TIMETIME););ETET
11、計時時間的上限值(延時計時時間的上限值(延時 時間)。時間)。輸出:輸出:Q Q:布爾型(:布爾型(BOOLBOOL);一旦);一旦ETET端計時達到上限值端計時達到上限值PTPT時,時, 輸出一個下降沿(延時時間過去了)。輸出一個下降沿(延時時間過去了)。ETET:時間型(:時間型(TIMETIME);時間的當前狀態(tài)。);時間的當前狀態(tài)。程序例:程序例:分析:當分析:當ININ為為TRUETRUE時時,Q,Q為為TRUETRUE,ETET為為0 0。一旦。一旦ININ變?yōu)樽優(yōu)镕ALSEFALSE,定,定 時器的輸出端時器的輸出端ETET以精確到毫秒級別開始計時,直到它等以精確到毫秒級別開始計
12、時,直到它等 于于PTPT,隨后它會維持不變。當,隨后它會維持不變。當ININ變?yōu)樽優(yōu)镕ALSEFALSE且且ETET等于等于PT PT 時,時,Q Q為為FALSEFALSE。否則它為。否則它為TRUETRUE。在本例中,。在本例中,PTPT設為設為3s3s, 當當X1X1由由TRUETRUE變?yōu)樽優(yōu)镕ALSEFALSE下降沿觸發(fā)時,定時器輸出端下降沿觸發(fā)時,定時器輸出端ET ET 開始計時,定時到達開始計時,定時到達3s3s后輸出后輸出Q Q由由TRUETRUE變?yōu)樽優(yōu)镕ALSEFALSE。延時導通指令延時導通指令TONTON 定時器功能塊,完成開延時的功能。當定時器定時器功能塊,完成開延
13、時的功能。當定時器的輸入端變?yōu)榈妮斎攵俗優(yōu)門RUETRUE時,等過了一段時間后,定時器時,等過了一段時間后,定時器的輸出端才變?yōu)榈妮敵龆瞬抛優(yōu)門RUETRUE。指令塊如下圖所示:。指令塊如下圖所示:輸入:輸入:ININ:布爾型(:布爾型(BOOLBOOL);該輸入端的上升沿觸發(fā));該輸入端的上升沿觸發(fā)ETET端端 的計時。的計時。PTPT:時間型(:時間型(TIMETIME););ETET計時時間的上限值(延時計時時間的上限值(延時 時間)。時間)。輸出:輸出:Q Q:布爾型(:布爾型(BOOLBOOL);一旦);一旦ETET端計時達到上限值端計時達到上限值PTPT時,時, 輸出一個上升沿(延
14、時時間過去了)。輸出一個上升沿(延時時間過去了)。ETET:時間型(:時間型(TIMETIME);時間的當前狀態(tài)。);時間的當前狀態(tài)。程序例:程序例:分析分析: :當當ININ為為FALSEFALSE時時,Q,Q為為FALSEFALSE,ETET為為0 0。一旦。一旦ININ變變 為為TRUETRUE,定時器的輸出端,定時器的輸出端ETET以精確到毫秒級別以精確到毫秒級別 開始計時,直到它等于開始計時,直到它等于PTPT,隨后它會維持不變。,隨后它會維持不變。 當當ININ變?yōu)樽優(yōu)門RUETRUE且且ETET等于等于PTPT時,時,Q Q為為TRUETRUE。否則。否則 它為它為FALSEFA
15、LSE。在本例中。在本例中, PT, PT設為設為3s3s,當,當X1X1由由 FALSE FALSE變?yōu)樽優(yōu)門RUETRUE上升沿觸發(fā)時,定時器輸出端上升沿觸發(fā)時,定時器輸出端 ET ET開始計時,定時到達開始計時,定時到達3s3s后輸出后輸出Q Q由由FALSEFALSE變?yōu)樽優(yōu)?TRUE TRUE。(1)(1)通電延時通電延時TONTON:相應的時序圖:相應的時序圖:利用通電延時利用通電延時TONTON設計一個通電后延時設計一個通電后延時3S3S的梯形圖的梯形圖t=880mst=880ms時的運行狀態(tài)時的運行狀態(tài):t=3st=3s時的運行狀態(tài):時的運行狀態(tài):參考程序及運行結果:參考程序及
16、運行結果:(2)(2)斷電延時斷電延時TOFTOF:相應的時序圖相應的時序圖:t=0st=0s時的運行結果時的運行結果:t=1s100mst=1s100ms時的運行結果:時的運行結果:t=3st=3s時的運行結果:時的運行結果:例:例:利用斷電延時利用斷電延時TOFTOF設計一個斷電后延時設計一個斷電后延時3S3S的梯形圖的梯形圖PLC 每隔2 秒鐘讀取一次i) 定時器及計數器組合用法單個定時器用法秒脈沖+計數器上述的三種方式都可以實現上述的三種方式都可以實現2s 的定時功能,但是從編程的簡便性和容許的誤的定時功能,但是從編程的簡便性和容許的誤差角度來說,第二種方式可能更簡單,產生的時間誤差更
17、小。在編程的過程中,差角度來說,第二種方式可能更簡單,產生的時間誤差更小。在編程的過程中,考慮到考慮到PLC 掃描周期的影響,應盡可能的簡化程序的編寫,以減小掃描周期掃描周期的影響,應盡可能的簡化程序的編寫,以減小掃描周期可能產生的誤差??赡墚a生的誤差。觸發(fā)定時器指令觸發(fā)定時器指令TPTP 觸發(fā)定時器功能塊。定時器的輸出值不斷增加,觸發(fā)定時器功能塊。定時器的輸出值不斷增加,直至其達到限值。在計時期間,直至其達到限值。在計時期間,“脈沖脈沖”變量為變量為TRUETRUE,其他時候為,其他時候為FALSEFALSE。指令塊如下圖所示:。指令塊如下圖所示:輸入:輸入:ININ:布爾型(:布爾型(BO
18、OLBOOL);該輸入端的上升沿觸發(fā));該輸入端的上升沿觸發(fā)ETET端端的計時的計時PTPT:時間型(:時間型(TIMETIME);計時時間的上限值);計時時間的上限值輸出:輸出:Q Q:布爾型(:布爾型(BOOLBOOL);當);當ETET端在計時的時候,其值端在計時的時候,其值為為TRUETRUEETET:時間型(:時間型(TIMETIME);時間的當前狀態(tài));時間的當前狀態(tài)程序例:程序例:分析:當分析:當ININ為為FALSEFALSE時時,Q,Q為為FALSEFALSE,ETET為為0 0。一旦。一旦ININ變?yōu)樽優(yōu)門RUETRUE, 定時器的輸出端定時器的輸出端ETET以毫秒精度開始
19、計時,直到它等于以毫秒精度開始計時,直到它等于 PT PT,隨后它會維持不變。當,隨后它會維持不變。當ININ變?yōu)樽優(yōu)門RUETRUE且且ETET小于或等小于或等 于于PTPT時,時,Q Q為為TRUETRUE。否則它為。否則它為FALSEFALSE。在由。在由PTPT值指定的值指定的 時間到達時,時間到達時,Q Q返回了一個信號。在本例中,返回了一個信號。在本例中,PTPT設為設為3 3 時,時,X1X1為為FALSEFALSE,Q1Q1為為FALSEFALSE,當,當X1X1為為TRUETRUE,Q Q輸出變?yōu)檩敵鲎優(yōu)?TRUE TRUE,同時,同時ETET開始計數,當開始計數,當ET=3
20、SET=3S時,時,Q Q輸出變回為輸出變回為 FALSE. FALSE.脈沖指令脈沖指令BLINKBLINK 功能塊功能塊BLINKBLINK產生脈沖信號。輸入由產生脈沖信號。輸入由BOOLBOOL類型類型ENABLEENABLE,以及以及TIMETIME類型類型TIMELOWTIMELOW和和TIMEHIGHTIMEHIGH組成。輸出組成。輸出OUTOUT是是BOOLBOOL類型。類型。指令塊如下圖所示:指令塊如下圖所示: 如果如果ENABLEENABLE為為TRUETRUE,在時間周期,在時間周期TIMEHIGHTIMEHIGH,BLINKBLINK設置設置輸出為輸出為TRUETRUE;
21、然后在時間周期;然后在時間周期TIMELOWTIMELOW,設置輸出為,設置輸出為FALSEFALSE。程序例:程序例:分析:在本例中,當分析:在本例中,當ENABLE X1ENABLE X1是是TRUETRUE時,時,BLINKBLINK開始工作,開始工作, 輸出低電平輸出低電平2s2s高電平高電平1s1s的脈沖,如下圖。的脈沖,如下圖。功能塊功能塊BLINKBLINK的應用的應用振蕩電路:振蕩電路:振蕩電路的作用是產生交流電振蕩來作為信號源。一般把大小和方向都隨周期發(fā)生變化的電流叫振蕩電流,能產生振蕩電流的電路叫做振蕩電路,那么如何使用PLC程序編制振蕩電路呢?施耐德標準程序庫中提供了這樣
22、的功能塊來產生方波脈沖,即BLINK功能塊。功能塊介紹:功能塊介紹: (1)功能塊BLINK產生脈沖信號。輸入由BOOL類型ENABLE,以及TIME類型TIMELOW和TIMEHIGH組成。輸出OUT是BOOL類型。(2)如果ENABLE為TRUE,在時間周期TIMEHIGH,BLINK設置輸出為TRUE.然后在時間周期TIMELOW,設置輸出為FALSE,程序和時序圖如圖所示。圖中的程序實現了圖中的程序實現了10s10s為真、為真、10s10s為假的方波為假的方波時序圖時序圖:參考程序:參考程序:下降沿觸發(fā)指令下降沿觸發(fā)指令F_TRIGF_TRIG該功能塊檢測一個下降沿。指令塊如下圖所示:
23、該功能塊檢測一個下降沿。指令塊如下圖所示:輸入:輸入:CLKCLK:布爾型(:布爾型(BOOLBOOL);被檢測其下降沿的布爾型);被檢測其下降沿的布爾型輸入信號輸入信號輸出:輸出:Q Q:布爾型(:布爾型(BOOLBOOL);當);當CLKCLK上檢測到一個下降沿時,上檢測到一個下降沿時, 其值為其值為TRUETRUE; ; 只要輸入變量只要輸入變量CLKCLK為為TRUETRUE,輸出,輸出Q Q都都保持為保持為FALSEFALSE。一旦。一旦CLKCLK為為FALSEFALSE,Q Q會先返回會先返回TRUETRUE,然后被置為然后被置為FALSEFALSE。這意味著每次調用這個功能塊。
24、這意味著每次調用這個功能塊時,時, Q Q會返回會返回FALSEFALSE直到直到CLKCLK在上升沿后有一個下在上升沿后有一個下降沿。降沿。程序例:程序例:分析:在本例中,當分析:在本例中,當X1X1輸入一個由輸入一個由TRUETRUE變?yōu)樽優(yōu)镕ALSE FALSE 的下降沿,則的下降沿,則F_TRIGF_TRIG的輸出的輸出Q Q也輸出一個由也輸出一個由FALSEFALSE變?yōu)樽優(yōu)門RUETRUE的上升沿,然后再變?yōu)榈纳仙?,然后再變?yōu)镕ALSEFALSE。上升沿觸發(fā)指令上升沿觸發(fā)指令R_TRIGR_TRIG 該功能塊檢測一個上升沿。指令塊如下圖所示:該功能塊檢測一個上升沿。指令塊如下圖所
25、示:輸入:輸入:CLKCLK:布爾型(:布爾型(BOOLBOOL);被檢測上升沿的布爾型輸);被檢測上升沿的布爾型輸入信號入信號輸出:輸出:Q Q:布爾型(:布爾型(BOOLBOOL);當);當CLKCLK上檢測到一個上升沿時,上檢測到一個上升沿時,其值為其值為TRUETRUE只要輸入變量只要輸入變量CLKCLK為為FALSEFALSE,輸出,輸出Q Q保持保持為為FALSEFALSE。一旦。一旦CLKCLK為為TRUETRUE,Q Q會先返回會先返回TRUETRUE,然后,然后被置為被置為FALSEFALSE。這意味著每次調用這個功能塊時,。這意味著每次調用這個功能塊時,Q Q會返回會返回F
26、ALSEFALSE直到直到CLKCLK在下降沿后有一個上升沿。在下降沿后有一個上升沿。程序例:程序例:分析:在本例中,當分析:在本例中,當X1X1輸入一個由輸入一個由FALSEFALSE變?yōu)樽優(yōu)門RUE TRUE 的上升沿,則的上升沿,則R_TRIGR_TRIG的輸出的輸出Q Q也輸出一個由也輸出一個由 FALSE FALSE變?yōu)樽優(yōu)門RUETRUE的上升沿,然后再變?yōu)榈纳仙?,然后再變?yōu)镕ALSEFALSE。單按鈕控制輸出燈的程序單按鈕控制輸出燈的程序功能塊R-TRIG的應用:程序:程序:時序圖:時序圖:功能介紹:功能介紹:(1)在程序中使用上升沿指令后,當輸入點button的狀態(tài)由OFF轉
27、為ON,僅在驅動輸入ON后1個掃描周期內,內部軟元件M3才動作。(2)在輸入點button上,第一個脈沖信號到來時,M3產生一個掃描周期的單脈沖,使M3的常開觸點閉合一個掃描周期。(3)第一個按鈕脈沖到來一個掃描周期后,M3斷開,輸出線圈lamp接通,第二個支路使輸出線圈lamp保持接通。(4)當第二個脈沖到來時,M3再產生一個掃描周期的單脈沖,使得輸出線圈lamp的狀態(tài)由接通變?yōu)閿嚅_。(5)通過分析可知,通過一個輸入點的上升沿的次數可控制輸出lamp的接通和斷開。(6)由以上分析可知,這個程序同時也是一個二分頻電路。如果將分頻的脈沖信號加button上,則lamp的輸出頻率剛好是button
28、輸入頻率的12.加運算指令加運算指令ADDADD 變量相加。允許的變量類型:變量相加。允許的變量類型: BYTE BYTE、WORDWORD、DWORDDWORD、SINTSINT、USINTUSINT、INTINT、UINTUINT、DINTDINT、UDINTUDINT、REALREAL和和LREALLREAL。指令塊如下圖所示:。指令塊如下圖所示:程序例:程序例:分析:在本例中,當分析:在本例中,當X1X1為為TRUETRUE時,時,ADDADD執(zhí)行把操作執(zhí)行把操作 數數X3X3和和 X4 X4相加的運算,并把結果輸出到相加的運算,并把結果輸出到X5X5 中,如中,如X3=3X3=3;X
29、4=7X4=7;則;則X5=10X5=10。減運算指令減運算指令SUBSUB 從某個變量中減去一個變量。允許的變量類型:從某個變量中減去一個變量。允許的變量類型:BYTEBYTE、WORDWORD、DWORDDWORD、SINTSINT、USINTUSINT、INTINT、UINTUINT、DINTDINT、UDINTUDINT、REALREAL和和LREALLREAL。指令如下圖所示:。指令如下圖所示:程序例:程序例:分析分析: :在本例中在本例中, , 當當X1X1為為TRUETRUE時,時,SUBSUB執(zhí)行把操作數執(zhí)行把操作數 X3 X3減去減去 X4 X4的運算,并把結果輸出到的運算,
30、并把結果輸出到X5X5中,如中,如 X3=3 X3=3;X4=7X4=7;則;則 X5=-4 X5=-4。 變量相乘。允許的變量類型:變量相乘。允許的變量類型:BYTEBYTE、WORDWORD、DWORDDWORD、SINTSINT、USINTUSINT、INTINT、UINTUINT、DINTDINT、UDINTUDINT、REALREAL和和LREALLREAL。指令如下圖所示:。指令如下圖所示:乘運算指令乘運算指令MULMUL程序例:程序例:分析:在本例中分析:在本例中, , 當當X1X1為為TRUETRUE時,時,MULMUL執(zhí)行把操作執(zhí)行把操作 數數X3X3乘以乘以X4X4的運算,
31、并把結果輸出到的運算,并把結果輸出到X5X5中,中, 如如X3=3X3=3;X4=7X4=7;則;則X5=21X5=21。除運算指令除運算指令DIVDIV 用一個變量除另一個變量。允許的變量類型:用一個變量除另一個變量。允許的變量類型:BYTEBYTE、WORDWORD、DWORDDWORD、SINTSINT、USINTUSINT、INTINT、UINTUINT、DINTDINT、UDINTUDINT、REALREAL和和LREALLREAL。指令如下圖所示:。指令如下圖所示:程序例:程序例:分析:在本例中分析:在本例中, , 當當X1X1為為TRUETRUE時,時,DIVDIV執(zhí)行把執(zhí)行把操
32、操 作數作數X3X3除除X4X4的運算,并把結果輸出到的運算,并把結果輸出到X5X5 中,如中,如X3=10X3=10;X4=5X4=5;則;則X5=2X5=2。截尾取整指令截尾取整指令TRUNCTRUNC 把實數類型(把實數類型(REALREAL)轉換成)轉換成DINTDINT類型。取被類型。取被轉換值的整數部分。指令如下圖所示:轉換值的整數部分。指令如下圖所示:程序例:程序例:分析:在本例中分析:在本例中, , 當當X1X1為為TRUETRUE時,時,TRUNCTRUNC執(zhí)行把執(zhí)行把操操 作數作數X7X7截尾取整的運算,即當截尾取整的運算,即當X7=9.89X7=9.89時,時, 取其整數
33、部分,并把結果輸出到取其整數部分,并把結果輸出到X8X8,即,即 X8=9 X8=9。取余指令取余指令MODMOD 一個變量與另一個變量相除取余。允許的變量一個變量與另一個變量相除取余。允許的變量類型:類型:BYTEBYTE、WORDWORD、DWORDDWORD、SINTSINT、USINTUSINT、INTINT、UINTUINT、DINTDINT、UDINTUDINT。結果為除法運算的余數,是。結果為除法運算的余數,是一個整數。指令如下圖所示:一個整數。指令如下圖所示:程序例:程序例:分析:在本例中,當分析:在本例中,當X1X1為為TRUETRUE時,時,MODMOD指令執(zhí)行指令執(zhí)行 把
34、把X3X3除以除以X4X4,并把余數輸出到,并把余數輸出到X5X5中;即中;即 當當X3=10X3=10,X4=6X4=6時,余數時,余數X5=4X5=4。比較等于指令比較等于指令EQEQ指令如下圖所示:指令如下圖所示: 當兩個操作數相等時,返回值為當兩個操作數相等時,返回值為TRUETRUE。操作數。操作數可以為可以為BOOLBOOL、BYTEBYTE、WORDWORD、DWORDDWORD、SINTSINT、USINTUSINT、INTINT、UINTUINT、DINTDINT、UDINTUDINT、REALREAL、LREALLREAL、TIMETIME、DATEDATE、TIME_OF
35、_DAYTIME_OF_DAY、DATE_AND_TIMEDATE_AND_TIME和和STRINGSTRING類型。類型。程序例:程序例:分析:在本例中,當分析:在本例中,當X1X1為為TRUETRUE時,時,EQEQ指令執(zhí)行,比指令執(zhí)行,比 較較X3X3和和X4X4的值,如的值,如X3=X4X3=X4,則輸出比較結果,則輸出比較結果 X2 X2為為TRUETRUE;否則,;否則,X2X2為為FALSEFALSE。所以,當。所以,當 X3=X4=6 X3=X4=6時,比較結果時,比較結果X2=TRUEX2=TRUE。比較比較 大于等于指令大于等于指令GEGE大于或等于。指令如下圖:大于或等于
36、。指令如下圖: 當第一個操作數大于或者等于第二個操作數當第一個操作數大于或者等于第二個操作數時,返回值為時,返回值為TRUETRUE。操作數可以為。操作數可以為BOOLBOOL、BYTEBYTE、WORDWORD、DWORDDWORD、SINTSINT、USINTUSINT、INTINT、UINTUINT、DINTDINT、UDINTUDINT、REALREAL、LREALLREAL、TIMETIME、DATEDATE、TIME_OF_DAYTIME_OF_DAY、DATE_AND_TIMEDATE_AND_TIME和和STRINGSTRING類型。類型。程序例:程序例:分析:在本例中,當分析
37、:在本例中,當X1X1為為TRUETRUE時,時,GEGE指令執(zhí)行,指令執(zhí)行, 比較比較X3X3和和X4X4的值,如的值,如X3X3大于等于大于等于X4X4,則輸,則輸 出比較結果出比較結果X2X2為為TRUETRUE;否則,;否則,X2X2為為FALSEFALSE。 所以,當所以,當X3=5X3=5;X4=6X4=6時,比較結果時,比較結果X2=FALSEX2=FALSE。比較比較 大于指令大于指令GTGT大于。指令如下圖:大于。指令如下圖: 當第一個操作數比第二個大時,返回值為當第一個操作數比第二個大時,返回值為TRUETRUE。操作數可以為操作數可以為BOOLBOOL、BYTEBYTE、
38、WORDWORD、DWORDDWORD、SINTSINT、USINTUSINT、INTINT、UINTUINT、DINTDINT、UDINTUDINT、REALREAL、LREALLREAL、TIMETIME、DATEDATE、IME_OF_DAYIME_OF_DAY、DATE_AND_TIMEDATE_AND_TIME和和STRINGSTRING類型。類型。程序例:程序例:分析:在本例中,當分析:在本例中,當X1X1為為TRUETRUE時,時,GTGT指令執(zhí)行,比指令執(zhí)行,比 較較X3X3和和X4X4的值,如的值,如X3X3大于大于X4X4,則輸出比較結,則輸出比較結 果果X2X2為為TRU
39、ETRUE;否則,;否則,X2X2為為FALSEFALSE。所以,當。所以,當 X3=8,X4=6 X3=8,X4=6時,比較結果時,比較結果X2=TRUEX2=TRUE。比較比較 小于等于指令等于指令LELE小于等于。指令如下圖所示:小于等于。指令如下圖所示: 第一個操作數小于或者等于第二個操作數時,第一個操作數小于或者等于第二個操作數時,返回值為返回值為TRUETRUE。操作數可以為。操作數可以為BOOLBOOL、BYTEBYTE、WORDWORD、DWORDDWORD、SINTSINT、USINTUSINT、INTINT、UINTUINT、DINTDINT、UDINTUDINT、REAL
40、REAL、LREALLREAL、TIMETIME、DATEDATE、TIME_OF_DAYTIME_OF_DAY、DATA_AND_TIMEDATA_AND_TIME和和STRINGSTRING類型。類型。程序例:程序例:分析:在本例中,當分析:在本例中,當X1X1為為TRUETRUE時,時,LELE指令執(zhí)行,指令執(zhí)行, 比較比較X3X3和和X4X4的值,如的值,如X3X3小于或者等于小于或者等于X4X4, 則輸出比較結果則輸出比較結果X2X2為為TRUETRUE,否則,否則,X2X2為為 FALSE FALSE。所以,當。所以,當X3=8X3=8,X4=9X4=9時,比較結時,比較結 果果X
41、2=TRUEX2=TRUE。比較比較 小于指令小于指令LTLT小于。指令如下圖所示:小于。指令如下圖所示: 當第一個操作數比第二個小時,返回值為當第一個操作數比第二個小時,返回值為TRUETRUE。操作數可以為。操作數可以為BOOLBOOL、BYTEBYTE、WORDWORD、DWORDDWORD、SINTSINT、USINTUSINT、INTINT、UINTUINT、DINTDINT、UDINTUDINT、REALREAL、LREALLREAL、TIMETIME、DATEDATE、TIME_OF_DAYTIME_OF_DAY、DATA_AND_TIMEDATA_AND_TIME和和STRIN
42、GSTRING類型。類型。程序例:程序例:分析:在本例中,當分析:在本例中,當X1X1為為TRUETRUE時,時,LELE指令執(zhí)行,比指令執(zhí)行,比 較較X3X3和和X4X4的值,如的值,如X3X3小于小于X4X4,則輸出比較結,則輸出比較結 果果X2X2為為TRUETRUE,否則,否則,X2X2為為FALSEFALSE。所以,當。所以,當 X3=8 X3=8,X4=9X4=9時,比較結果時,比較結果X2=TRUEX2=TRUE。比較比較 不等于指令不等于指令NENE不等于。指令如下圖所示:不等于。指令如下圖所示: 當兩個操作數不相等時,返回值為當兩個操作數不相等時,返回值為TRUETRUE。操
43、作。操作數可以為數可以為BOOLBOOL、BYTEBYTE、WORDWORD、DWORDDWORD、SINTSINT、USINTUSINT、INTINT、UINTUINT、DINTDINT、UDINTUDINT、REALREAL、LREALLREAL、TIMETIME、DATEDATE、TIME_OF_DAYTIME_OF_DAY、DATA_AND_TIMEDATA_AND_TIME和和STRINGSTRING類型。類型。程序例:程序例:分析:在本例中,當分析:在本例中,當X1X1為為TRUETRUE時,時,LELE指令執(zhí)行,指令執(zhí)行, 比較比較X3X3和和X4X4的值,如的值,如X3X3不等
44、于不等于X4X4,則輸出,則輸出 比較結果比較結果X2X2為為TRUETRUE,否則,否則,X2X2為為FALSEFALSE。所。所 以,當以,當X3=8X3=8,X4=9X4=9時,比較結果時,比較結果X2=TRUEX2=TRUE。循環(huán)左移指令循環(huán)左移指令ROLROL將操作數按位循環(huán)左移。指令如下圖所示:將操作數按位循環(huán)左移。指令如下圖所示: ROL (in, n) ROL (in, n)。允許的數據類型:。允許的數據類型:BYTEBYTE、WORDWORD、DWORDDWORD。inin會左移二進制位會左移二進制位n n次,同時左次,同時左邊移出的位重新補充到右邊。邊移出的位重新補充到右邊
45、。程序例:程序例:分析:在本例中,分析:在本例中,inbyteinbyte和和outbyteoutbyte分別設為分別設為bytebyte數數 據類型,據類型,inbyte=10#69inbyte=10#69,n=2n=2。當。當X1X1為為 TRUE TRUE 時,時,ROLROL執(zhí)行循環(huán)左移位,此時執(zhí)行循環(huán)左移位,此時, , inbyte=10#69=2#01000101 inbyte=10#69=2#01000101,循環(huán)左移,循環(huán)左移2 2位后,位后, outbyte=2#00010101=10#21 outbyte=2#00010101=10#21循環(huán)右移指令循環(huán)右移指令RORROR
46、將操作數按位循環(huán)右移。指令如下圖所示:將操作數按位循環(huán)右移。指令如下圖所示: ROR (in, n) ROR (in, n)。允許的數據類型:。允許的數據類型:BYTEBYTE、WORDWORD、DWORDDWORD。inin會左移二進制位會左移二進制位n n次,同時右邊次,同時右邊移出的位重新補充到左邊。移出的位重新補充到左邊。程序例:程序例:分析:在本例中,分析:在本例中,inbyteinbyte和和outbyteoutbyte分別設為分別設為bytebyte數數 據類型,據類型,inbyte=10#69inbyte=10#69,n=2n=2。當。當X1X1為為TRUETRUE時,時, R
47、OR ROR執(zhí)行循環(huán)右移位,此時執(zhí)行循環(huán)右移位,此時, , inbyte=10#69=2#01000101 inbyte=10#69=2#01000101,循環(huán)右移,循環(huán)右移2 2位后,位后, outbyte=2#01010001=10#81 outbyte=2#01010001=10#81。左移指令左移指令SHLSHL將操作數按位左移。指令如下圖所示:將操作數按位左移。指令如下圖所示: SHL (in, n) SHL (in, n)。inin:需要左移的操作數。:需要左移的操作數。n n:操作數左移的位數。如果操作數左移的位數。如果n n超出了數據本身的位超出了數據本身的位數,數,BYTEB
48、YTE、WORDWORD和和DWORDDWORD類型的操作數將會補類型的操作數將會補0 0,而有符號類型的操作數(例如而有符號類型的操作數(例如INTINT)將會進行算)將會進行算數移位。也就是說會將這些數的最高位的值補在數移位。也就是說會將這些數的最高位的值補在空出的二進制位上。空出的二進制位上。程序例:程序例:分析:在本例中,分析:在本例中,inbyteinbyte和和outbyteoutbyte分別設為分別設為byte byte 數據類型,數據類型,inbyte=10#69inbyte=10#69,n=2n=2。當。當X1X1為為 TRUE TRUE時,時,ROLROL執(zhí)行左移位,此時,
49、執(zhí)行左移位,此時, inbyte=10#69=2#01000101 inbyte=10#69=2#01000101, 左移左移2 2位后,位后,outbyte=2#00010100=10#20outbyte=2#00010100=10#20。右移指令右移指令SHRSHR將操作數按位右移。指令如下圖所示:將操作數按位右移。指令如下圖所示: SHR (in, n) SHR (in, n)。in: in: 需要右移的操作數。需要右移的操作數。n: n: 操作數右移的位數。如果操作數右移的位數。如果n n超出了數據本身的位超出了數據本身的位數,數,BYTEBYTE、WORDWORD和和DWORDDWO
50、RD類型的操作數將會補類型的操作數將會補0 0,而有符號類型的操作數(例如而有符號類型的操作數(例如INTINT)將會進行算)將會進行算數移位。也就是說會將這些數的最高位的值補在數移位。也就是說會將這些數的最高位的值補在空出的二進制位上。空出的二進制位上。程序例:程序例:分析:在本例中,分析:在本例中,inbyteinbyte和和outbyteoutbyte分別設為分別設為bytebyte數數 據類型,據類型,inbyte=10#69inbyte=10#69,n=2n=2。當。當X1X1為為TRUETRUE時,時, ROR ROR執(zhí)行右移位,此時執(zhí)行右移位,此時 inbyte=10#69=2#
51、01000101 inbyte=10#69=2#01000101,右移,右移2 2位后,位后, outbyte=2#00010001=10#17 outbyte=2#00010001=10#17。正弦函數正弦函數SINSIN返回一個數的正弦值,數據以弧度計算。指令如下圖:返回一個數的正弦值,數據以弧度計算。指令如下圖: 輸入變量可以是輸入變量可以是BYTEBYTE、WORDWORD、DWORDDWORD、INTINT、DINTDINT、REALREAL、SINTSINT、USINTUSINT、UINTUINT、UDINTUDINT類型。輸類型。輸出變量只能是出變量只能是REALREAL類型。類
52、型。程序例:程序例:分析:在本例中,分析:在本例中,X3=1X3=1弧度弧度=180/pi=180/pi度;當度;當X1X1為為TRUE TRUE 時,時,SINSIN執(zhí)行正弦計算,將執(zhí)行正弦計算,將X3X3的正弦值輸出的正弦值輸出到到 X7 X7中,所以中,所以X7=0.841X7=0.841。余弦函數余弦函數COSCOS返回一個數的余弦值,數據以弧度計算。指令如下圖:返回一個數的余弦值,數據以弧度計算。指令如下圖: 輸入變量可以是輸入變量可以是BYTEBYTE、WORDWORD、DWORDDWORD、INTINT、DINTDINT、REALREAL、SINTSINT、USINTUSINT、
53、UINTUINT、UDINTUDINT類型。類型。輸出變量只能是輸出變量只能是REALREAL類型。類型。程序例:程序例:分析:在本例中,分析:在本例中,X3=1X3=1弧度弧度=180/pi=180/pi度;當度;當X1X1為為 TRUE TRUE時,時,SINSIN執(zhí)行余弦運算,將執(zhí)行余弦運算,將X3X3的余弦值的余弦值 輸出到輸出到X7X7中,所以中,所以X7=0.54X7=0.54正切函數正切函數TANTAN返回一個數的正切值,數據以弧度計算。指令如下返回一個數的正切值,數據以弧度計算。指令如下圖:圖: 輸入變量可以是輸入變量可以是BYTEBYTE、WORDWORD、DWORDDWOR
54、D、INTINT、DINTDINT、REALREAL、SINTSINT、USINTUSINT、UINTUINT、UDINTUDINT類型。類型。輸出變量只能是輸出變量只能是REALREAL類型。類型。程序例:程序例:分析:在本例中,分析:在本例中,X3=1X3=1弧度弧度=180/pi=180/pi度;當度;當X1X1為為 TRUE TRUE時,時,SINSIN執(zhí)行正切運算,將執(zhí)行正切運算,將X3X3的正切的正切 值輸出到值輸出到X7X7中,所以中,所以X7=1.56X7=1.56。反正弦函數反正弦函數ASINASIN返回一個數的反正弦值,數據以弧度計算。指令返回一個數的反正弦值,數據以弧度計
55、算。指令如下圖:如下圖: 輸入變量可以是輸入變量可以是BYTEBYTE、WORDWORD、DWORDDWORD、INTINT、DINTDINT、REALREAL、SINTSINT、USINTUSINT、UINTUINT、UDINTUDINT類型。類型。輸出變量只能是輸出變量只能是REALREAL類型。類型。程序例:程序例:分析:在本例中,分析:在本例中,X3=1X3=1弧度弧度=180/pi=180/pi度;當度;當X1X1為為 TRUE TRUE時,時,ASINASIN執(zhí)行反正弦運算,將執(zhí)行反正弦運算,將X3X3的反的反 正弦值輸出到正弦值輸出到X7X7中,所以中,所以X7=1.57X7=1
56、.57。反余弦函數反余弦函數ACOSACOS返回一個數的反余弦值,數據以弧度計算。指令返回一個數的反余弦值,數據以弧度計算。指令如下圖:如下圖: 輸入變量可以是輸入變量可以是BYTEBYTE、WORDWORD、DWORDDWORD、INTINT、DINTDINT、REALREAL、SINTSINT、USINTUSINT、UINTUINT、UDINTUDINT類型。類型。輸出變量只能是輸出變量只能是REALREAL類型。類型。程序例:程序例:分析:在本例中,分析:在本例中,X3=1X3=1弧度弧度=180/pi=180/pi度;當度;當X1X1為為 TRUE TRUE時,時,ACOSACOS執(zhí)行
57、反余弦運算,將執(zhí)行反余弦運算,將X3X3的的 反余弦輸出到反余弦輸出到X7X7中,所以中,所以X7=0X7=0。反正切函數反正切函數ATANATAN返回一個數的反正切值。數據以弧度計算。指令返回一個數的反正切值。數據以弧度計算。指令如下圖:如下圖: 輸入變量可以是輸入變量可以是BYTEBYTE、WORDWORD、DWORDDWORD、INTINT、DINTDINT、REALREAL、SINTSINT、USINTUSINT、UINTUINT、UDINTUDINT類型。輸出變量只能是類型。輸出變量只能是REALREAL類型。類型。程序例:程序例:分析:在本例中,分析:在本例中,X3=1X3=1弧度
58、弧度=180/pi=180/pi度;當度;當X1X1為為 TRUE TRUE時,時,ATANATAN執(zhí)行反正切運算,將執(zhí)行反正切運算,將X3X3的反的反 正切值輸出到正切值輸出到X7X7中,所以中,所以X7=0.785X7=0.785。取絕對值函數取絕對值函數ABSABS返回一個數的絕對值。指令如下圖:返回一個數的絕對值。指令如下圖:輸入輸入 輸出輸出INT INT,REAL,WORD,DWORD,DINTINT INT,REAL,WORD,DWORD,DINTREAL REALREAL REALBYTE INT,REAL,BYTE,WORD,DWORD,DINTBYTE INT,REAL,B
59、YTE,WORD,DWORD,DINTWORD INT,REAL,WORD,DWORD,DINTWORD INT,REAL,WORD,DWORD,DINTDWORD REAL,DWORD,DINTDWORD REAL,DWORD,DINTSINT REALSINT REALUSINT REALUSINT REALUINT INT,REAL,WORD,DWORD,DINT,UDINT,UINTUINT INT,REAL,WORD,DWORD,DINT,UDINT,UINTDINT REAL,DWORD,DINTDINT REAL,DWORD,DINTUDINT REAL,DWORD,DINT,U
60、DINTUDINT REAL,DWORD,DINT,UDINT程序例:程序例:分析:在本例中,當分析:在本例中,當X1X1為為TRUETRUE時,時,ABSABS指令指令 執(zhí)行,將執(zhí)行,將X3X3的絕對值輸出到的絕對值輸出到X7X7中;如中;如 X3=-8 X3=-8,則輸出,則輸出X7=8X7=8。指數函數指數函數EXPEXP返回指數函數。指令如下圖:返回指數函數。指令如下圖: 輸入變量可以是輸入變量可以是BYTEBYTE、WORDWORD、DWORDDWORD、INTINT、DINTDINT、REALREAL、SINTSINT、USINTUSINT、UINTUINT、UDINTUDINT類
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 桃樹造林規(guī)劃方案范本
- 礦山安全監(jiān)測與火災防控考核試卷
- 彈簧在汽車油門踏板的反饋和控制性能考核試卷
- 莞城區(qū)水庫清淤施工方案
- 證券從業(yè)資格證行業(yè)競爭策略試題及答案
- 舊房地基維修施工方案
- 水下作業(yè)的深海地質研究新技術考核試卷
- 考生必知的知識點證券從業(yè)試題及答案
- 2025年投資組合理論試題及答案
- 2024年微生物檢測技師真題及答案
- 2025年04月包頭醫(yī)學院公開招聘28名事業(yè)單位工作人員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 《美的電器審計案例》課件
- 2025-2030中國冰鞋行業(yè)市場發(fā)展分析與發(fā)展趨勢及投資風險研究報告
- 2024年美容師考試相關法律法規(guī)知識試題及答案
- 2025新疆交投集團所屬子公司招56人筆試參考題庫附帶答案詳解
- 綜藝節(jié)目贊助合同書
- 三級精神病醫(yī)院基本標準(2023版)
- 高爾夫球場澆灌施工方案
- 出納員工考核試題及答案
- 節(jié)假日期間醫(yī)療安全
- 智能交通系統(tǒng)在城市管理中的應用與前景
評論
0/150
提交評論