施耐德PLC標(biāo)準(zhǔn)指令庫復(fù)習(xí)過程_第1頁
施耐德PLC標(biāo)準(zhǔn)指令庫復(fù)習(xí)過程_第2頁
施耐德PLC標(biāo)準(zhǔn)指令庫復(fù)習(xí)過程_第3頁
施耐德PLC標(biāo)準(zhǔn)指令庫復(fù)習(xí)過程_第4頁
施耐德PLC標(biāo)準(zhǔn)指令庫復(fù)習(xí)過程_第5頁
已閱讀5頁,還剩124頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

本章節(jié)描述標(biāo)準(zhǔn)(biāozhǔn)庫指令中的各種指令5.2標(biāo)準(zhǔn)(biāozhǔn)庫指令第一頁,共129頁。指令(zhǐlìng)塊如圖所示:減計(jì)數(shù)器指令(zhǐlìng)CTD輸入:CD:布爾型(BOOL);該輸入端的上升沿觸發(fā)CV的遞減(dìjiǎn)計(jì)數(shù)。LOAD:布爾型(BOOL);當(dāng)其為上升沿觸發(fā)時,CV被置為上限值PV。PV:字型(WORD);上限值,也就是CV開始遞減(dìjiǎn)時的初始值。第二頁,共129頁。輸出:Q:布爾型(BOOL);一旦CV達(dá)到0時,其值為TRUE。CV:字型(WORD);不斷減1的值,從PV開始直至其達(dá)到0。當(dāng)LOAD為TRUE時,計(jì)數(shù)變量CV被初始化為上限值PV。當(dāng)CD端有一個(yīɡè)從FALSE變?yōu)門RUE的上升沿時,若CV大于0時,它將減1(也就是說,它不會輸出小于0的值)。當(dāng)CV等于0時,Q返回TRUE。第三頁,共129頁。程序(chéngxù)例:分析(fēnxī):程序執(zhí)行時,將PV_WORD設(shè)為3,當(dāng)X2由FALSE變?yōu)門RUE上升沿觸發(fā)時,CV_WORD也變?yōu)?。此時輸入端X1執(zhí)行FALSE變?yōu)門RUE,上升沿觸發(fā),則CV_WORD自動減計(jì)數(shù)1;當(dāng)X1第3次由FALSE變TRUE上升沿觸發(fā)時,CV_WORD遞減到0時,此時Q輸出為1。第四頁,共129頁。加計(jì)數(shù)(jìshù)指令CTU指令(zhǐlìng)塊如下圖所示:第五頁,共129頁。輸入:CU:布爾型(BOOL);該輸入端的上升沿觸發(fā)CV的遞增計(jì)數(shù)。RESET:布爾型(BOOL);當(dāng)其為TRUE時,CV被復(fù)位為0。PV:字型(WORD);CV計(jì)數(shù)的上限。輸出:Q:布爾型(BOOL);一旦CV達(dá)到其上限PV時,其值為TRUE。CV:字型(WORD);不斷加1的值,直至其達(dá)到PV。當(dāng)RESET為TRUE時,計(jì)數(shù)變量(biànliàng)CV被初始化為0。當(dāng)CU端有一個從FALSE變?yōu)門RUE的上升沿時,CV將加1。當(dāng)CV大于或等于上限PV時,Q返回TRUE。第六頁,共129頁。程序(chéngxù)例:分析:程序執(zhí)行時,將PV_WORD設(shè)為3,此時CV_WORD是0。此時輸入端X1執(zhí)行FALSE變?yōu)門RUE上升沿觸發(fā),則CV_WORD自動加計(jì)數(shù)1;當(dāng)X1第3次由FALSE變TRUE上升沿觸發(fā)時,CV_WORD遞增(dìzēng)到3時,此時Q輸出為1。此時如將RESET端X2執(zhí)行FALSE變?yōu)門RUE上升沿觸發(fā),則指令重新復(fù)位數(shù)變量CV被初始化為0。第七頁,共129頁。計(jì)數(shù)(jìshù)功能塊CTU:第八頁,共129頁。運(yùn)行(yùnxíng)結(jié)果:第九頁,共129頁。加減(jiājiǎn)雙向計(jì)數(shù)指令CTUD指令(zhǐlìng)塊如下圖所示:第十頁,共129頁。輸入:CU:布爾型(BOOL);當(dāng)CU端有上升沿時,觸發(fā)CV的遞增計(jì)數(shù)。CD:布爾型(BOOL);當(dāng)CD端有上升沿時,觸發(fā)CV的遞減(dìjiǎn)計(jì)數(shù)。RESET:布爾型(BOOL)當(dāng)其為TRUE時,CV被復(fù)位為0。LOAD:布爾型(BOOL);當(dāng)其為TRUE時,CV被置為PV。PV:字型(WORD);CV遞增時的上限值,或CV開始遞減(dìjiǎn)時的初始值。輸出(shūchū):QU:布爾型(BOOL);一旦CV達(dá)到PV時,其值為TRUEQD:布爾型(BOOL);一旦CV達(dá)到0時,其值為TRUECV:字型(WORD);不斷減1的值,從PV開始直至其達(dá)到0第十一頁,共129頁。程序(chéngxù)例:分析:當(dāng)RESET為TRUE時,計(jì)數(shù)變量CV被初始化為0。當(dāng)LOAD為TRUE時,計(jì)數(shù)變量CV被初始化為上限值PV。當(dāng)CU端有一個(yīɡè)從FALSE變?yōu)門RUE的上升沿時,CV將加1。當(dāng)CD端有一個(yīɡè)從FALSE變?yōu)門RUE的上升沿時,若CV不會降到0以下時,它將減1。當(dāng)CV大于或等于上限PV時,QU返回TRUE。當(dāng)CV等于0時,QD返回TRUE。第十二頁,共129頁。延時斷開(duànkāi)指令TOF定時器功能塊,完成關(guān)延時的功能。當(dāng)定時器的輸入端由TRUE變?yōu)镕ALSE時(下降(xiàjiàng)沿),等過了一段時間后,定時器的輸出端才變?yōu)镕ALSE。指令塊如下圖所示:第十三頁,共129頁。輸入:IN:布爾型(BOOL);該輸入端的下降沿觸發(fā)(chùfā)ET端的計(jì)時。PT:時間型(TIME);ET計(jì)時時間的上限值(延時時間)。輸出:Q:布爾型(BOOL);一旦ET端計(jì)時達(dá)到上限值PT時,輸出一個下降沿(延時時間過去了)。ET:時間型(TIME);時間的當(dāng)前狀態(tài)。第十四頁,共129頁。程序(chéngxù)例:分析(fēnxī):當(dāng)IN為TRUE時,Q為TRUE,ET為0。一旦IN變?yōu)镕ALSE,定時器的輸出端ET以精確到毫秒級別開始計(jì)時,直到它等于PT,隨后它會維持不變。當(dāng)IN變?yōu)镕ALSE且ET等于PT時,Q為FALSE。否則它為TRUE。在本例中,PT設(shè)為3s,當(dāng)X1由TRUE變?yōu)镕ALSE下降沿觸發(fā)時,定時器輸出端ET開始計(jì)時,定時到達(dá)3s后輸出Q由TRUE變?yōu)镕ALSE。第十五頁,共129頁。延時導(dǎo)通指令(zhǐlìng)TON定時器功能塊,完成開延時的功能。當(dāng)定時器的輸入端變?yōu)門RUE時,等過了一段時間后,定時器的輸出(shūchū)端才變?yōu)門RUE。指令塊如下圖所示:第十六頁,共129頁。輸入:IN:布爾型(BOOL);該輸入端的(duāndì)上升沿觸發(fā)ET端的計(jì)時。PT:時間型(TIME);ET計(jì)時時間的上限值(延時時間)。輸出:Q:布爾型(BOOL);一旦ET端計(jì)時達(dá)到上限值PT時,輸出一個上升沿(延時時間過去了)。ET:時間型(TIME);時間的當(dāng)前狀態(tài)。第十七頁,共129頁。程序(chéngxù)例:分析:當(dāng)IN為FALSE時,Q為FALSE,ET為0。一旦(yīdàn)IN變?yōu)門RUE,定時器的輸出端ET以精確到毫秒級別開始計(jì)時,直到它等于PT,隨后它會維持不變。當(dāng)IN變?yōu)門RUE且ET等于PT時,Q為TRUE。否則它為FALSE。在本例中,PT設(shè)為3s,當(dāng)X1由FALSE變?yōu)門RUE上升沿觸發(fā)時,定時器輸出端ET開始計(jì)時,定時到達(dá)3s后輸出Q由FALSE變?yōu)門RUE。第十八頁,共129頁。(1)通電(tōngdiàn)延時TON:相應(yīng)(xiāngyīng)的時序圖:第十九頁,共129頁。利用通電(tōngdiàn)延時TON設(shè)計(jì)一個通電(tōngdiàn)后延時3S的梯形圖t=880ms時的運(yùn)行(yùnxíng)狀態(tài):t=3s時的運(yùn)行(yùnxíng)狀態(tài):參考程序及運(yùn)行結(jié)果:第二十頁,共129頁。(2)斷電(duàndiàn)延時TOF:相應(yīng)(xiāngyīng)的時序圖:第二十一頁,共129頁。t=0s時的運(yùn)行(yùnxíng)結(jié)果:t=1s100ms時的運(yùn)行(yùnxíng)結(jié)果:t=3s時的運(yùn)行(yùnxíng)結(jié)果:例:利用斷電延時TOF設(shè)計(jì)一個斷電后延時3S的梯形圖第二十二頁,共129頁。PLC每隔2秒鐘讀取一次

i)定時器及計(jì)數(shù)器組合(zǔhé)用法第二十三頁,共129頁。單個定時器用法(yònɡfǎ)第二十四頁,共129頁。秒脈沖(màichōng)+計(jì)數(shù)器上述的三種方式都可以實(shí)現(xiàn)2s的定時功能,但是從編程的簡便性和容許的誤差角度來說,第二種方式可能更簡單,產(chǎn)生(chǎnshēng)的時間誤差更小。在編程的過程中,考慮到PLC掃描周期的影響,應(yīng)盡可能的簡化程序的編寫,以減小掃描周期可能產(chǎn)生(chǎnshēng)的誤差。第二十五頁,共129頁。觸發(fā)(chùfā)定時器指令TP觸發(fā)(chùfā)定時器功能塊。定時器的輸出值不斷增加,直至其達(dá)到限值。在計(jì)時期間,“脈沖”變量為TRUE,其他時候?yàn)镕ALSE。指令塊如下圖所示:第二十六頁,共129頁。輸入(shūrù):IN:布爾型(BOOL);該輸入(shūrù)端的上升沿觸發(fā)ET端的計(jì)時PT:時間型(TIME);計(jì)時時間的上限值輸出:Q:布爾型(BOOL);當(dāng)ET端在計(jì)時的時候,其值為TRUEET:時間型(TIME);時間的當(dāng)前狀態(tài)第二十七頁,共129頁。程序(chéngxù)例:分析:當(dāng)IN為FALSE時,Q為FALSE,ET為0。一旦IN變?yōu)門RUE,定時器的輸出(shūchū)端ET以毫秒精度開始計(jì)時,直到它等于PT,隨后它會維持不變。當(dāng)IN變?yōu)門RUE且ET小于或等于PT時,Q為TRUE。否則它為FALSE。在由PT值指定的時間到達(dá)時,Q返回了一個信號。在本例中,PT設(shè)為3時,X1為FALSE,Q1為FALSE,當(dāng)X1為TRUE,Q輸出(shūchū)變?yōu)門RUE,同時ET開始計(jì)數(shù),當(dāng)ET=3S時,Q輸出(shūchū)變回為FALSE.第二十八頁,共129頁。脈沖(màichōng)指令BLINK功能塊BLINK產(chǎn)生脈沖信號。輸入由BOOL類型ENABLE,以及TIME類型TIMELOW和TIMEHIGH組成(zǔchénɡ)。輸出OUT是BOOL類型。指令塊如下圖所示:如果ENABLE為TRUE,在時間周期(zhōuqī)TIMEHIGH,BLINK設(shè)置輸出為TRUE;然后在時間周期(zhōuqī)TIMELOW,設(shè)置輸出為FALSE。第二十九頁,共129頁。程序(chéngxù)例:分析(fēnxī):在本例中,當(dāng)ENABLEX1是TRUE時,BLINK開始工作,輸出低電平2s高電平1s的脈沖,如下圖。第三十頁,共129頁。功能塊BLINK的應(yīng)用(yìngyòng)振蕩電路:振蕩電路的作用是產(chǎn)生交流電振蕩來作為信號源。一般把大小和方向都隨周期(zhōuqī)發(fā)生變化的電流叫振蕩電流,能產(chǎn)生振蕩電流的電路叫做振蕩電路,那么如何使用PLC程序編制振蕩電路呢?施耐德標(biāo)準(zhǔn)程序庫中提供了這樣的功能塊來產(chǎn)生方波脈沖,即BLINK功能塊。第三十一頁,共129頁。功能塊介紹:(1)功能塊BLINK產(chǎn)生(chǎnshēng)脈沖信號。輸入由BOOL類型ENABLE,以及TIME類型TIMELOW和TIMEHIGH組成。輸出OUT是BOOL類型。(2)如果ENABLE為TRUE,在時間周期TIMEHIGH,BLINK設(shè)置(shèzhì)輸出為TRUE.然后在時間周期TIMELOW,設(shè)置(shèzhì)輸出為FALSE,程序和時序圖如圖所示。第三十二頁,共129頁。圖中的程序?qū)崿F(xiàn)了10s為真、10s為假的方波時序(shíxù)圖:參考(cānkǎo)程序:第三十三頁,共129頁。下降沿觸發(fā)(chùfā)指令F_TRIG該功能塊檢測一個下降沿。指令(zhǐlìng)塊如下圖所示:第三十四頁,共129頁。輸入:CLK:布爾型(BOOL);被檢測其下降沿的布爾型輸入信號輸出:Q:布爾型(BOOL);當(dāng)CLK上檢測到一個(yīɡè)下降沿時,其值為TRUE;只要輸入變量CLK為TRUE,輸出Q都保持為FALSE。一旦CLK為FALSE,Q會先返回TRUE,然后被置為FALSE。這意味著每次調(diào)用這個功能塊時,Q會返回FALSE直到CLK在上升沿后有一個(yīɡè)下降沿。第三十五頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1輸入一個(yīɡè)由TRUE變?yōu)镕ALSE的下降沿,則F_TRIG的輸出Q也輸出一個(yīɡè)由FALSE變?yōu)門RUE的上升沿,然后再變?yōu)镕ALSE。第三十六頁,共129頁。上升沿觸發(fā)(chùfā)指令R_TRIG該功能塊檢測一個(yīɡè)上升沿。指令塊如下圖所示:第三十七頁,共129頁。輸入:CLK:布爾型(BOOL);被檢測上升沿的布爾型輸入信號輸出:Q:布爾型(BOOL);當(dāng)CLK上檢測到一個(yīɡè)上升沿時,其值為TRUE只要輸入變量CLK為FALSE,輸出Q保持為FALSE。一旦CLK為TRUE,Q會先返回TRUE,然后被置為FALSE。這意味著每次調(diào)用這個功能塊時,Q會返回FALSE直到CLK在下降沿后有一個(yīɡè)上升沿。第三十八頁,共129頁。程序(chéngxù)例:分析(fēnxī):在本例中,當(dāng)X1輸入一個由FALSE變?yōu)門RUE的上升沿,則R_TRIG的輸出Q也輸出一個由FALSE變?yōu)門RUE的上升沿,然后再變?yōu)镕ALSE。第三十九頁,共129頁。單按鈕控制(kòngzhì)輸出燈的程序功能塊R-TRIG的應(yīng)用(yìngyòng):程序(chéngxù):時序圖:第四十頁,共129頁。功能(gōngnéng)介紹:(1)在程序(chéngxù)中使用上升沿指令后,當(dāng)輸入點(diǎn)button的狀態(tài)由OFF轉(zhuǎn)為ON,僅在驅(qū)動輸入ON后1個掃描周期內(nèi),內(nèi)部軟元件M3才動作。(2)在輸入點(diǎn)button上,第一個脈沖信號(xìnhào)到來時,M3產(chǎn)生一個掃描周期的單脈沖,使M3的常開觸點(diǎn)閉合一個掃描周期。(3)第一個按鈕脈沖到來一個掃描周期后,M3斷開,輸出線圈lamp接通,第二個支路使輸出線圈lamp保持接通。第四十一頁,共129頁。(4)當(dāng)?shù)诙€脈沖到來時,M3再產(chǎn)生一個掃描周期的單脈沖,使得輸出線圈lamp的狀態(tài)由接通變?yōu)閿嚅_(duànkāi)。(5)通過分析可知,通過一個輸入點(diǎn)的上升沿的次數(shù)可控制輸出lamp的接通和斷開(duànkāi)。(6)由以上分析可知,這個程序同時也是一個二分頻電路。如果將分頻的脈沖信號加button上,則lamp的輸出頻率剛好是button輸入頻率的1/2.第四十二頁,共129頁。加運(yùn)算(yùnsuàn)指令A(yù)DD變量(biànliàng)相加。允許的變量(biànliàng)類型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL和LREAL。指令塊如下圖所示:第四十三頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為TRUE時,ADD執(zhí)行把操作數(shù)X3和X4相加的運(yùn)算,并把結(jié)果(jiēguǒ)輸出到X5中,如X3=3;X4=7;則X5=10。第四十四頁,共129頁。減運(yùn)算(yùnsuàn)指令SUB從某個變量中減去一個變量。允許的變量類型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL和LREAL。指令(zhǐlìng)如下圖所示:第四十五頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為TRUE時,SUB執(zhí)行(zhíxíng)把操作數(shù)X3減去X4的運(yùn)算,并把結(jié)果輸出到X5中,如X3=3;X4=7;則X5=-4。第四十六頁,共129頁。變量相乘。允許的變量類型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL和LREAL。指令(zhǐlìng)如下圖所示:乘運(yùn)算(yùnsuàn)指令MUL第四十七頁,共129頁。程序(chéngxù)例:分析(fēnxī):在本例中,當(dāng)X1為TRUE時,MUL執(zhí)行把操作數(shù)X3乘以X4的運(yùn)算,并把結(jié)果輸出到X5中,如X3=3;X4=7;則X5=21。第四十八頁,共129頁。除運(yùn)算(yùnsuàn)指令DIV用一個(yīɡè)變量除另一個(yīɡè)變量。允許的變量類型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL和LREAL。指令如下圖所示:第四十九頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為TRUE時,DIV執(zhí)行把操作數(shù)X3除X4的運(yùn)算,并把結(jié)果(jiēguǒ)輸出到X5中,如X3=10;X4=5;則X5=2。第五十頁,共129頁。截尾(jiéwěi)取整指令TRUNC把實(shí)數(shù)類型(REAL)轉(zhuǎn)換成DINT類型。取被轉(zhuǎn)換值的整數(shù)部分。指令(zhǐlìng)如下圖所示:第五十一頁,共129頁。程序(chéngxù)例:分析(fēnxī):在本例中,當(dāng)X1為TRUE時,TRUNC執(zhí)行把操作數(shù)X7截尾取整的運(yùn)算,即當(dāng)X7=9.89時,取其整數(shù)部分,并把結(jié)果輸出到X8,即X8=9。第五十二頁,共129頁。取余指令(zhǐlìng)MOD一個變量(biànliàng)與另一個變量(biànliàng)相除取余。允許的變量(biànliàng)類型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT。結(jié)果為除法運(yùn)算的余數(shù),是一個整數(shù)。指令如下圖所示:第五十三頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為TRUE時,MOD指令執(zhí)行把X3除以X4,并把余數(shù)(yúshù)輸出到X5中;即當(dāng)X3=10,X4=6時,余數(shù)(yúshù)X5=4。第五十四頁,共129頁。比較等于(děngyú)指令EQ指令(zhǐlìng)如下圖所示:當(dāng)兩個操作數(shù)相等時,返回值為TRUE。操作數(shù)可以(kěyǐ)為BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、LREAL、TIME、DATE、TIME_OF_DAY、DATE_AND_TIME和STRING類型。第五十五頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為TRUE時,EQ指令執(zhí)行(zhíxíng),比較X3和X4的值,如X3=X4,則輸出比較結(jié)果X2為TRUE;否則,X2為FALSE。所以,當(dāng)X3=X4=6時,比較結(jié)果X2=TRUE。第五十六頁,共129頁。比較大于等于(děngyú)指令GE大于或等于(děngyú)。指令如下圖:當(dāng)?shù)谝粋€操作數(shù)大于或者(huòzhě)等于第二個操作數(shù)時,返回值為TRUE。操作數(shù)可以為BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、LREAL、TIME、DATE、TIME_OF_DAY、DATE_AND_TIME和STRING類型。第五十七頁,共129頁。程序(chéngxù)例:分析(fēnxī):在本例中,當(dāng)X1為TRUE時,GE指令執(zhí)行,比較X3和X4的值,如X3大于等于X4,則輸出比較結(jié)果X2為TRUE;否則,X2為FALSE。所以,當(dāng)X3=5;X4=6時,比較結(jié)果X2=FALSE。第五十八頁,共129頁。比較(bǐjiào)大于指令GT大于。指令(zhǐlìng)如下圖:當(dāng)?shù)谝粋€操作數(shù)比第二個大時,返回值為TRUE。操作數(shù)可以(kěyǐ)為BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、LREAL、TIME、DATE、IME_OF_DAY、DATE_AND_TIME和STRING類型。第五十九頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為TRUE時,GT指令執(zhí)行,比較X3和X4的值,如X3大于X4,則輸出比較結(jié)果X2為TRUE;否則,X2為FALSE。所以(suǒyǐ),當(dāng)X3=8,X4=6時,比較結(jié)果X2=TRUE。第六十頁,共129頁。比較(bǐjiào)小于等于指令LE小于等于(děngyú)。指令如下圖所示:第一個操作數(shù)小于或者等于(děngyú)第二個操作數(shù)時,返回值為TRUE。操作數(shù)可以為BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、LREAL、TIME、DATE、TIME_OF_DAY、DATA_AND_TIME和STRING類型。第六十一頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為TRUE時,LE指令執(zhí)行,比較X3和X4的值,如X3小于或者等于X4,則輸出比較結(jié)果(jiēguǒ)X2為TRUE,否則,X2為FALSE。所以,當(dāng)X3=8,X4=9時,比較結(jié)果X2=TRUE。第六十二頁,共129頁。比較(bǐjiào)小于指令LT小于。指令(zhǐlìng)如下圖所示:當(dāng)?shù)谝粋€操作數(shù)比第二個小時,返回值為TRUE。操作數(shù)可以(kěyǐ)為BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、LREAL、TIME、DATE、TIME_OF_DAY、DATA_AND_TIME和STRING類型。第六十三頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為TRUE時,LE指令執(zhí)行,比較X3和X4的值,如X3小于X4,則輸出(shūchū)比較結(jié)果X2為TRUE,否則,X2為FALSE。所以,當(dāng)X3=8,X4=9時,比較結(jié)果X2=TRUE。第六十四頁,共129頁。比較(bǐjiào)不等于指令NE不等于。指令(zhǐlìng)如下圖所示:當(dāng)兩個操作數(shù)不相等(xiāngděng)時,返回值為TRUE。操作數(shù)可以為BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、LREAL、TIME、DATE、TIME_OF_DAY、DATA_AND_TIME和STRING類型。第六十五頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為TRUE時,LE指令(zhǐlìng)執(zhí)行,比較X3和X4的值,如X3不等于X4,則輸出比較結(jié)果X2為TRUE,否則,X2為FALSE。所以,當(dāng)X3=8,X4=9時,比較結(jié)果X2=TRUE。第六十六頁,共129頁。循環(huán)(xúnhuán)左移指令ROL將操作數(shù)按位循環(huán)左移。指令(zhǐlìng)如下圖所示:ROL(in,n)。允許的數(shù)據(jù)類型:BYTE、WORD、DWORD。in會左移二進(jìn)制位n次,同時(tóngshí)左邊移出的位重新補(bǔ)充到右邊。第六十七頁,共129頁。程序(chéngxù)例:分析(fēnxī):在本例中,inbyte和outbyte分別設(shè)為byte數(shù)據(jù)類型,inbyte=10#69,n=2。當(dāng)X1為TRUE時,ROL執(zhí)行循環(huán)左移位,此時,inbyte=10#69=2#01000101,循環(huán)左移2位后,outbyte=2#00010101=10#21第六十八頁,共129頁。循環(huán)右移(yòuyí)指令ROR將操作數(shù)按位循環(huán)(xúnhuán)右移。指令如下圖所示:ROR(in,n)。允許(yǔnxǔ)的數(shù)據(jù)類型:BYTE、WORD、DWORD。in會左移二進(jìn)制位n次,同時右邊移出的位重新補(bǔ)充到左邊。第六十九頁,共129頁。程序(chéngxù)例:分析:在本例中,inbyte和outbyte分別設(shè)為byte數(shù)據(jù)類型,inbyte=10#69,n=2。當(dāng)X1為TRUE時,ROR執(zhí)行循環(huán)右移位,此時(cǐshí),inbyte=10#69=2#01000101,循環(huán)右移2位后,outbyte=2#01010001=10#81。第七十頁,共129頁。左移指令(zhǐlìng)SHL將操作數(shù)按位左移。指令(zhǐlìng)如下圖所示:SHL(in,n)。in:需要(xūyào)左移的操作數(shù)。n:操作數(shù)左移的位數(shù)。如果n超出了數(shù)據(jù)本身的位數(shù),BYTE、WORD和DWORD類型的操作數(shù)將會補(bǔ)0,而有符號類型的操作數(shù)(例如INT)將會進(jìn)行算數(shù)移位。也就是說會將這些數(shù)的最高位的值補(bǔ)在空出的二進(jìn)制位上。第七十一頁,共129頁。程序(chéngxù)例:分析:在本例中,inbyte和outbyte分別設(shè)為byte數(shù)據(jù)類型,inbyte=10#69,n=2。當(dāng)X1為TRUE時,ROL執(zhí)行(zhíxíng)左移位,此時,inbyte=10#69=2#01000101,左移2位后,outbyte=2#00010100=10#20。第七十二頁,共129頁。右移(yòuyí)指令SHR將操作數(shù)按位右移(yòuyí)。指令如下圖所示:SHR(in,n)。in:需要右移的操作數(shù)。n:操作數(shù)右移的位數(shù)。如果n超出了數(shù)據(jù)本身的位數(shù),BYTE、WORD和DWORD類型的操作數(shù)將會補(bǔ)0,而有符號類型的操作數(shù)(例如INT)將會進(jìn)行算數(shù)(suànshù)移位。也就是說會將這些數(shù)的最高位的值補(bǔ)在空出的二進(jìn)制位上。第七十三頁,共129頁。程序(chéngxù)例:分析:在本例中,inbyte和outbyte分別設(shè)為byte數(shù)據(jù)類型(lèixíng),inbyte=10#69,n=2。當(dāng)X1為TRUE時,ROR執(zhí)行右移位,此時inbyte=10#69=2#01000101,右移2位后,outbyte=2#00010001=10#17。第七十四頁,共129頁。正弦(zhèngxián)函數(shù)SIN返回一個數(shù)的正弦值,數(shù)據(jù)以弧度計(jì)算。指令(zhǐlìng)如下圖:輸入變量可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT類型(lèixíng)。輸出變量只能是REAL類型(lèixíng)。第七十五頁,共129頁。程序(chéngxù)例:分析:在本例中,X3=1弧度=180/pi度;當(dāng)X1為TRUE時,SIN執(zhí)行正弦計(jì)算(jìsuàn),將X3的正弦值輸出到X7中,所以X7=0.841。第七十六頁,共129頁。余弦(yúxián)函數(shù)COS返回一個數(shù)的余弦(yúxián)值,數(shù)據(jù)以弧度計(jì)算。指令如下圖:輸入變量可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT類型。輸出(shūchū)變量只能是REAL類型。第七十七頁,共129頁。程序(chéngxù)例:分析:在本例中,X3=1弧度=180/pi度;當(dāng)X1為TRUE時,SIN執(zhí)行余弦運(yùn)算,將X3的余弦值輸出(shūchū)到X7中,所以X7=0.54第七十八頁,共129頁。正切(zhèngqiē)函數(shù)TAN返回(fǎnhuí)一個數(shù)的正切值,數(shù)據(jù)以弧度計(jì)算。指令如下圖:輸入變量可以(kěyǐ)是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT類型。輸出變量只能是REAL類型。第七十九頁,共129頁。程序(chéngxù)例:分析:在本例中,X3=1弧度=180/pi度;當(dāng)X1為TRUE時,SIN執(zhí)行正切運(yùn)算,將X3的正切值輸出(shūchū)到X7中,所以X7=1.56。第八十頁,共129頁。反正(fǎnzhèng)弦函數(shù)ASIN返回一個數(shù)的反正弦值,數(shù)據(jù)以弧度計(jì)算(jìsuàn)。指令如下圖:輸入變量可以(kěyǐ)是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT類型。輸出變量只能是REAL類型。第八十一頁,共129頁。程序(chéngxù)例:分析:在本例中,X3=1弧度=180/pi度;當(dāng)X1為TRUE時,ASIN執(zhí)行(zhíxíng)反正弦運(yùn)算,將X3的反正弦值輸出到X7中,所以X7=1.57。第八十二頁,共129頁。反余弦(yúxián)函數(shù)ACOS返回一個數(shù)的反余弦值,數(shù)據(jù)以弧度計(jì)算。指令(zhǐlìng)如下圖:輸入變量可以(kěyǐ)是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT類型。輸出變量只能是REAL類型。第八十三頁,共129頁。程序(chéngxù)例:分析:在本例中,X3=1弧度=180/pi度;當(dāng)X1為TRUE時,ACOS執(zhí)行(zhíxíng)反余弦運(yùn)算,將X3的反余弦輸出到X7中,所以X7=0。第八十四頁,共129頁。反正(fǎnzhèng)切函數(shù)ATAN返回一個(yīɡè)數(shù)的反正切值。數(shù)據(jù)以弧度計(jì)算。指令如下圖:輸入變量可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT類型(lèixíng)。輸出變量只能是REAL類型(lèixíng)。第八十五頁,共129頁。程序(chéngxù)例:分析:在本例中,X3=1弧度=180/pi度;當(dāng)X1為TRUE時,ATAN執(zhí)行反正切運(yùn)算,將X3的反正切值輸出(shūchū)到X7中,所以X7=0.785。第八十六頁,共129頁。取絕對值函數(shù)(hánshù)ABS返回一個數(shù)的絕對值。指令(zhǐlìng)如下圖:第八十七頁,共129頁。輸入(shūrù)輸出INTINT,REAL,WORD,DWORD,DINTREALREALBYTEINT,REAL,BYTE,WORD,DWORD,DINTWORDINT,REAL,WORD,DWORD,DINTDWORDREAL,DWORD,DINTSINTREALUSINTREALUINTINT,REAL,WORD,DWORD,DINT,UDINT,UINTDINTREAL,DWORD,DINTUDINTREAL,DWORD,DINT,UDINT第八十八頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為TRUE時,ABS指令(zhǐlìng)執(zhí)行,將X3的絕對值輸出到X7中;如X3=-8,則輸出X7=8。第八十九頁,共129頁。指數(shù)函數(shù)(zhǐshùhánshù)EXP返回指數(shù)函數(shù)。指令(zhǐlìng)如下圖:輸入(shūrù)變量可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT類型。輸出變量只能是REAL類型。第九十頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為TRUE時,EXP指令(zhǐlìng)執(zhí)行,將X3的指數(shù)輸出到X7中;如X3=2,則輸出X7=7.39第九十一頁,共129頁。冪函數(shù)EXPT求一個變量(biànliàng)關(guān)于另一個變量(biànliàng)的冪。指令如下圖:兩個(liǎnɡɡè)操作數(shù)可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT類型。輸出變量只能是REAL類型。第九十二頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為TRUE時,EXPT指令(zhǐlìng)執(zhí)行,把X3的X5次冪輸出到X7中;如X3=2,X5=3,則X7=23=8第九十三頁,共129頁。取平方根函數(shù)(hánshù)SQRT返回一個(yīɡè)數(shù)的平方根。指令如下圖:輸入變量可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT類型(lèixíng)。輸出變量只能是REAL類型(lèixíng)。第九十四頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為TRUE時,SQRT指令(zhǐlìng)執(zhí)行,把X3的平方根值輸出到X7中;如X3=64,則X7=8。第九十五頁,共129頁。對數(shù)函數(shù)(duìshùhánshù)LOG返回值是以10為底的對數(shù)。指令(zhǐlìng)如下圖:輸入變量可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT類型(lèixíng)。輸出變量只能是REAL類型(lèixíng)。第九十六頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為TRUE時,LOG指令執(zhí)行,把X3的以10為底的對數(shù)(duìshù)結(jié)果輸出到X7中;如X3=100,則X7=2。第九十七頁,共129頁。自然(zìrán)對數(shù)函數(shù)LN返回一個數(shù)的自然對數(shù)。指令(zhǐlìng)如下圖:輸入變量可以(kěyǐ)是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT類型。輸出變量只能是REAL類型。第九十八頁,共129頁。程序(chéngxù)例:分析(fēnxī):在本例中,當(dāng)X1為TRUE時,LN指令執(zhí)行,把X3的自然對數(shù)結(jié)果輸出到X7中;如X3=88,則X7=4.48。第九十九頁,共129頁。取地址(dìzhǐ)指令A(yù)DR取地址(dìzhǐ)指令。指令如下圖:ADR返回變量自身的地址,數(shù)據(jù)類型為DWORD。這個地址可以作為指針傳遞(chuándì)給操作函數(shù),也可以賦給工程內(nèi)的某個指針。第一百頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為TRUE時,ADR指令執(zhí)行,將X3的地址(dìzhǐ)賦予指針變量zhizhen1上,即zhizhen1指向了X1;如X3=88,則指針變量zhizhen1的值16#1187CBB8即是X1的地址(dìzhǐ),同時指針的指向變量的值zhizhen1^是88。第一百零一頁,共129頁。字節(jié)長度(chángdù)指令SIZEOF這個操作符用來確定給定變量(biànliàng)x需要占用多少個字節(jié)。指令圖下圖:第一百零二頁,共129頁。SIZEOF操作符通常返回一個無符號(fúhào)數(shù)。返回值的類型與變量x的大小相匹配。SIZEOF(x)的返回值返回值的類型0<=x的值<256USINT256<=x的值<65536UINT65536<=x的值<4294967296UDINT4294967296<=x的值ULINT第一百零三頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為TRUE時,SIZEOF指令執(zhí)行,來確定給定數(shù)組變量(biànliàng)arr1需要占用多少個字節(jié),并將結(jié)果輸出到var3(USINT型);由于arr1是0到5的INT型數(shù)組變量(biànliàng),因此var3=12。第一百零四頁,共129頁。二選一指令(zhǐlìng)SEL從兩個操作數(shù)中選擇一個。指令(zhǐlìng)如下圖:由G決定IN0還是IN1為輸出。OUT:=SEL(G,IN0,IN1)的含義(hányì):OUT:=IN0;若G=FALSEOUT:=IN1;若G=TRUE.允許的數(shù)據(jù)類型:IN0,IN1,OUT:任意類型G:BOOL.第一百零五頁,共129頁。程序(chéngxù)例:分析:在本例中,當(dāng)X1為FALSE時,SEL指令(zhǐlìng)選擇X3輸出到X5中,所以X5=X3=8;當(dāng)X1為TRUE時,SEL指令(zhǐlìng)選擇X4輸出到X5中,所以X5=X3=19。第一百零六頁,共129頁。多選一指令(zhǐlìng)MUX多項(xiàng)選擇操作符。指令(zhǐlìng)如下圖:IN0、...,INn以及OUT可以(kěyǐ)是任意類型的變量。X1必須為BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT或UDINT類型。MUX從這一組值中選擇第X1個值。第一百零七頁,共129頁。程序(chéngxù)例:分析:在本例中,MUX指令根據(jù)X1的值,來決定(juédìng)X9的輸出值。當(dāng)X1=8時,MUX取功能塊中的第8個值,即X9=X8=8。第一百零八頁,共129頁。取極限(jíxiàn)指令LIMIT取極限(jíxiàn)。指令如下圖:第一百零九頁,共129頁。程序(chéngxù)例:當(dāng)X1<X2時X2<X1<X3時X1>X3時分析:Max是結(jié)果(jiēguǒ)的上限值,Min是結(jié)果(jiēguǒ)的下限值。如果IN值大于上限值Max,LIMIT將返回Max,而如果IN小于Min,那么結(jié)果(jiēguǒ)為Min。在本例中,當(dāng)X1<X2<X3時,輸出X9=X2;當(dāng)X2<X1<X3時,輸出X9=X1;當(dāng)X1>X3>X2時,輸出X9=X3。第一百一十頁,共129頁。取最大值指令(zhǐlìng)MAX取最大值函數(shù)。返回(fǎnhuí)輸入的值中最大的那一個。指令如下圖:IN0,IN1,IN2和OUT可以為任意(rènyì)類型的變量。第一百一十一頁,共129頁。程序(chéngxù)例:分析:程序運(yùn)行時,MAX指令取輸入的X1,X2,X3中最大的值,并將結(jié)果輸出(shūchū)到X9中。在本例中X2最大,因此X9=X2=9。第一百一十二頁,共129頁。取最小值指令(zhǐlìng)MIN取最小值函數(shù)。返回兩個(liǎnɡɡè)值中較小的那一個。指令如下圖:IN0,IN1,IN2和OUT可以為任意類型(lèixíng)的變量。第一百一十三頁,共129頁。程序(chéngxù)例:分析(fēnxī):程序運(yùn)行時,MIN指令取輸入的X1,X2,X3中最小的值,并將結(jié)果輸出到X9中。在本例中X3最小,因此X9=X3=6。第一百一十四頁,共129頁。賦值指令(zhǐlìng)MOVE將一個變量(biànliàng)的值賦給另一個適當(dāng)類型的變量(biànliàng)。指令如下圖:在圖形編輯器FBD、LD、CFC中,MOVE是一個方框。在這個(zhège)方框里(未鎖定的)EN/ENO功能也可以用于變量賦值。第一百一十五頁,共129頁。程序(chéngxù)例:分析(fēnxī):在本例中,當(dāng)X1為TRUE時,MOVE指令執(zhí)行,將X3的值賦給到X4中;即X4=X3=8。第一百一十六頁,共129頁。布爾類型轉(zhuǎn)換指令(zhǐlìng)從布爾類型轉(zhuǎn)換為其它(qítā)任意類型。BOOL_TO_<數(shù)據(jù)類型>轉(zhuǎn)換為數(shù)字類型時,若操作數(shù)為TRUE,結(jié)果為1;若操作數(shù)為FALSE,結(jié)果為0。BOOL_TO_<數(shù)據(jù)類型>轉(zhuǎn)換為字符串類型時,若操作數(shù)為TRUE,結(jié)果為“TRUE”,若操作數(shù)為FALSE,則結(jié)果為“FALSE”。第一百一十七頁,共129頁。程序(chéngxù)例1:程序(chéngxù)例2:分析:在本例中,當(dāng)X1為TRUE時,BOOL_TO_BYTE指令執(zhí)行,輸出結(jié)果(jiēguǒ)outbyte;由于X2=TRUE,所以outbyte=1。分析:在本例中,當(dāng)X1為TRUE時,BOOL_TO_STRING指令執(zhí)行,輸出結(jié)果outstring;由于X2=TRUE,所以outstring=TRUE。第一百一十八頁,共129頁。字節(jié)(zìjié)類型轉(zhuǎn)換指令

溫馨提示

  • 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

提交評論