施奈德somachineplcM218-編程指令(帶標(biāo)簽版)-CN_第1頁(yè)
施奈德somachineplcM218-編程指令(帶標(biāo)簽版)-CN_第2頁(yè)
施奈德somachineplcM218-編程指令(帶標(biāo)簽版)-CN_第3頁(yè)
施奈德somachineplcM218-編程指令(帶標(biāo)簽版)-CN_第4頁(yè)
施奈德somachineplcM218-編程指令(帶標(biāo)簽版)-CN_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、M218編程指令綜述本章給出了本書(shū)中M218的編程指令介紹本章內(nèi)容本章包含一下章節(jié)內(nèi)容:章節(jié)章節(jié)內(nèi)容頁(yè)碼3.1布爾邏輯指令3.2標(biāo)準(zhǔn)庫(kù)指令布爾邏輯指令(處理位)章節(jié)內(nèi)容頁(yè)碼裝入指令輸出指令邏輯與(AND)指令邏輯或(OR)指令布爾邏輯指令用于處理位格式數(shù)據(jù)(1/0位、內(nèi)部位等) 輸入/輸出 例如:N/O (常開(kāi)/常閉)觸點(diǎn). 執(zhí)行元件例如:直接線圈(Q、M)等上升、下降沿:用于檢測(cè)PLC I/O位和內(nèi)部位的上升、下降沿.2觸點(diǎn)u u裝入指令N/0(常開(kāi))觸點(diǎn):當(dāng)控制這個(gè)觸點(diǎn)的狀態(tài)為1時(shí),%ixO.3n/c(常閉)觸點(diǎn):當(dāng)控制這個(gè)觸點(diǎn)的狀態(tài)為o時(shí),觸點(diǎn)閉TkF上升沿觸點(diǎn):檢測(cè)控制位從o到1的變彳

2、卜下降沿觸點(diǎn):檢測(cè)控制位從1到0的變彳_gN| 程序例:iiczl 0-oiixO.ZtixG.3ii uky分析:當(dāng)輸入點(diǎn)以0.2的狀態(tài)是1,同時(shí)輸入點(diǎn)IXO. 3狀態(tài)是0時(shí),則輸出點(diǎn)%0X1.0 的輸出1.輸出指令直接輸出線圈:相關(guān)的位實(shí)體取等式的直接結(jié)果8qxl.0反向輸出線圈:相關(guān)的位實(shí)體取等式的直接反值二訂?qxl1置位(SR)線圈:等式結(jié)果為1時(shí),強(qiáng)制輸出位置為1 叨gqxl2復(fù)位(RS)線圈:等式結(jié)果為1時(shí),強(qiáng)制輸出位置為W程序例:9ixO.ZSqxl.1Hqvl.2分析:當(dāng)IX0.2狀態(tài)是1時(shí),將%0X1.1置位為1;當(dāng)X1狀態(tài)是1時(shí),1?%0X1.1 雪位0.邏輯與(AND)

3、指令SxO.2執(zhí)行操作數(shù)與前一條指令的邏輯與(AND 0 執(zhí)行操作數(shù)與前一條指令的邏輯與反(ANDt:| 程序例:lqxl.2rH分析:當(dāng)IX0.7狀態(tài)是1,同時(shí)MX2.0狀態(tài)是0時(shí),0X0.2狀態(tài)是1.UxO .1OR執(zhí)行操作數(shù)與前一條指令的邏邏輯或(OR)指令程序例:(1x0.2%qxl.1T IIiixO.3T I分析;當(dāng)%IX0.2狀態(tài)是1,或者961X0.3是狀態(tài)1.則%0X1.1置為14標(biāo)準(zhǔn)庫(kù)指令5頁(yè)碼章節(jié)內(nèi)容序計(jì)數(shù)器指令CTD 加計(jì)數(shù)指令CTU 加減雙向計(jì)數(shù)指令CTUD 延時(shí)斷開(kāi)指令TOF 延時(shí)導(dǎo)通指令TON 觸發(fā)定時(shí)器指令TP 脈沖指令BLINK 下降沿觸發(fā)指令F_TRIG 上

4、升沿觸發(fā)指令FLTRIG 加運(yùn)算指令A(yù)DD 機(jī)運(yùn)算指令SUB 乘運(yùn)算指令MU 除運(yùn)算指令DIV 截尾取整指令TRUNC 取余指令MOD 比較等于指令EQ 比較大于指令GT 比較大于指令GT 比較小于等于指令LE 比較小于指令 比較不等于指令NE 循環(huán)左移指令ROL 循環(huán)右移指令ROR- 左移指令SHL 右移指令SHR 正弦函數(shù)SIN 余弦函數(shù)cos 正切因數(shù)TAN 反正弦函數(shù)ASIN 反余弦因數(shù)A COS 反正切因數(shù)ATAN 取絕對(duì)值函數(shù)ABS 指數(shù)因數(shù)EXP 幕函數(shù)EXPT 取平方根函數(shù)SORT 對(duì)數(shù)函數(shù)LOG 自然對(duì)數(shù)函數(shù)LN 取地址指令A(yù)DR 字節(jié)長(zhǎng)度指令S吃麗 二選一指令SEL#多選一

5、指令MUX 取極限指令LIMIT 取量小值指令MIN 賦值指令MOVE 布爾類型轉(zhuǎn)換指令 字節(jié)類型轉(zhuǎn)換指令 日期轉(zhuǎn)換指令 實(shí)數(shù)/長(zhǎng)實(shí)數(shù)類型轉(zhuǎn)換 字符串類型轉(zhuǎn)換g6序計(jì)數(shù)器指令CTD指令塊如下圖7#輸入CD:布爾型(BOOL);該輸入端的上升沿觸發(fā)CV的遞減計(jì)數(shù)LOAD:布爾型(BOOL);當(dāng)其為上升沿觸發(fā)時(shí),CV被置為上限值PVPV:字型(WORD);上限值.也就是CV開(kāi)始遞減時(shí)的初始值 輸出:0:布爾型(BOOL);旦CV達(dá)到0時(shí),其值為T(mén)RUECV:字型(WORD);不斷減1的值,從PV幵始直至其達(dá)到0當(dāng)LOAD為T(mén)RUE時(shí),計(jì)數(shù)變量CV被初始化為上限值PV。當(dāng)CD端有一個(gè)從FALSE 變

6、為T(mén)RUE的上升沿時(shí),若CV大于0時(shí),它將減1 (也就是說(shuō),它不會(huì)輸出小于0的值). 當(dāng)CV等于0時(shí).Q返回TRUE。程序例:X14 F-X24 II rv_wop.DCTDSXAMPLECTDCDQCVWORDCVLOADPV分析:程序執(zhí)行時(shí),將PV_WORD設(shè)為3,當(dāng)X2由FALSE變?yōu)門(mén)RUE上升沿觸發(fā)時(shí), CV.WORD也變?yōu)?0此時(shí)輸入端X1執(zhí)行FALSE變?yōu)門(mén)RUE上升沿觸發(fā),則CV.WORD 自動(dòng)減計(jì)數(shù)1;當(dāng)X1第3次由FALSE變TRUE上升沿觸發(fā)時(shí),CV.WORD遞減到0時(shí), 此時(shí)0輸出為1 加計(jì)數(shù)指令CTU指令塊如芒圖CTUCUQCVRESETBV輸入:CU:布爾型(BOO

7、L);該輸入端的上升沿觸發(fā)CV的遞增計(jì)數(shù) RESET:布爾型(BOOL);當(dāng)其為T(mén)RUE時(shí).CV被復(fù)位為0 PV:子型(WORD); CV計(jì)數(shù)的上限輸出:0:布爾型(BOOL); 旦CV達(dá)到其上限PV時(shí),其值為T(mén)RUECV:字型(WORD);不斷加1的值,直至其達(dá)到PV當(dāng)RESET為T(mén)RUE時(shí),計(jì)數(shù)變量CV被初始化為0。當(dāng)CU端有一個(gè)從FALSE變?yōu)門(mén)RUE 的上升沿時(shí),CV將加1.當(dāng)CV大于或等于上限PV時(shí),。返回TRUE.程序例:1CTUJJ U7CV-CVJhJORDRESETWCRDPVCTU EXAMPLE4!PV分析:程序執(zhí)行時(shí),將PV_WORD設(shè)為3,此時(shí)CV.WORD是0。此時(shí)

8、輸入端X1執(zhí)行FALSE 變?yōu)門(mén)RUE上升沿觸發(fā),則CV.WORD自動(dòng)加計(jì)數(shù)1;當(dāng)X1第3次由FALSE變TRUE 上升沿觸發(fā)時(shí),CV.WORD遞增到3時(shí),此時(shí)0輸出為1。此時(shí)如將RESET端X2執(zhí)行 FALSE變?yōu)門(mén)RUE上升沿觸發(fā),則指令重新復(fù)位數(shù)變量CV被初始化為0。加序雙向計(jì)數(shù)指令CTUD指令塊如下圖CTUDCVQUODCVCDPB8BTTOADEV輸入:CU:布爾型(BOOL);當(dāng)CU端有上升沿時(shí),觸發(fā)CV的遞增計(jì)數(shù) CD:布爾型(BOOL);當(dāng)CD端有上升沿時(shí),觸發(fā)CV的遞減計(jì)數(shù) RESET:布爾型(BOOL):當(dāng)其為T(mén)RUE時(shí).CV被復(fù)位為0 LOAD:布爾型(BOOL);當(dāng)其為

9、TRUE時(shí),CV被置為PVPV:字型(WORD); CV遞增時(shí)的上限值.或CV開(kāi)始謹(jǐn)減時(shí)的初始值 輸出:OU:布爾型(BOOL); 一旦CV達(dá)到PV時(shí),其值為T(mén)RUEOD:布爾型(BOOL); 一旦CV達(dá)到0時(shí),其值為T(mén)RUECV:字型(WORD);不斷減1的值,從PV開(kāi)始直至其達(dá)到0 程序例:xlflX23 GX3fl CTUL EXAMPLECTUDCUQUQD-CV WORDCVCDRESET分析:當(dāng)RESET為T(mén)RUE時(shí).計(jì)數(shù)變量CV被初悄化為0。當(dāng)LOAD為T(mén)RUE時(shí),計(jì) 數(shù)變量CV被初始化為上限值PV。當(dāng)CU端有一個(gè)從FALSE變?yōu)門(mén)RUE的上升沿時(shí), CV將加1。當(dāng)CD端有一個(gè)從

10、FALSE變?yōu)門(mén)RUE的上升沿時(shí),若CV不會(huì)降到0以下時(shí), 它將減1。當(dāng)CV大于或等于上限PV時(shí),QU返回TRUE.當(dāng)CV等于0時(shí)QD返回TRUE。延時(shí)斷開(kāi)指令TOF定時(shí)器功良?jí)K,完成關(guān)延時(shí)的功能。當(dāng)定時(shí)器的輸入端由TRUE變?yōu)镕ALSE時(shí)(下降沿), 等過(guò)了一段時(shí)間后,定時(shí)器的輸出端才變?yōu)镕ALSE.指令塊如下圖TOFTNQPTET輸入IN:布爾型(BOOL);該輸入端的下降沿觸發(fā)ET端的計(jì)時(shí)PT:時(shí)間型(TIME); ET計(jì)時(shí)時(shí)間的上限值(延時(shí)時(shí)間)輸出:O:布爾型(BOOL); 旦ET端計(jì)時(shí)達(dá)到上限值PT時(shí),輸出一個(gè)下降沿(延時(shí)時(shí)間過(guò) 去了)ET:時(shí)間型(TIME);時(shí)間的當(dāng)前狀態(tài)程序例

11、:TOF EXAMPLExl分析:當(dāng)IN為T(mén)RUE時(shí),0為T(mén)RUE, ET為0。一旦IN變?yōu)镕ALSE,定時(shí)器的輸出端ET以精確到毫秒級(jí)別開(kāi)始計(jì)時(shí),直到它等于PT, 隨后它會(huì)維持不變。當(dāng)IN變?yōu)镕ALSE且ET等于PT時(shí),Q為FALSE.否則它為T(mén)RUE. 在本例中,PT設(shè)為3s,當(dāng)X1由TRUE變?yōu)镕ALSE下降沿觸發(fā)時(shí),定時(shí)器輸出端ET 開(kāi)始計(jì)時(shí),定時(shí)到達(dá)3S后輸出0由TRUE變?yōu)镕ALSE.延時(shí)導(dǎo)通指令TON定時(shí)器功能塊,完成開(kāi)延時(shí)的功能。當(dāng)定時(shí)器的輸入端變?yōu)門(mén)RUE時(shí),等過(guò)了一段時(shí)間后, 定時(shí)器的輸出端才變?yōu)門(mén)RUE。指令塊如下圖TOHINQPTET輸入IN:布爾型(BOOL);該輸入

12、端的上升沿觸發(fā)ET端的計(jì)時(shí)PT:時(shí)間型(TIME); ET計(jì)時(shí)時(shí)間的上限值(延時(shí)時(shí)間)輸出:0:布爾型(BOOL); 旦ET端計(jì)時(shí)達(dá)到上限值PT時(shí),輸出一個(gè)上升沿(延時(shí)時(shí)間過(guò) 去了)ET:時(shí)間型(TIME);時(shí)間的當(dāng)前狀態(tài)程序例tonexample分析:當(dāng)IN為FALSE時(shí),。為FALSE, ET為0。一旦IN變?yōu)門(mén)RUE,定時(shí)器的輸出端ET以 精確到毫秒級(jí)別開(kāi)始計(jì)時(shí),直到它等于PT,隨后它會(huì)維持不變。當(dāng)IN變?yōu)門(mén)RUE且ET 尋于PT 8寸,Q為T(mén)RUE。否則它為FALSE。在本例中,PT設(shè)為3S,當(dāng)X1由FALSE變?yōu)門(mén)RUE上升沿觸發(fā)時(shí),定時(shí)器輸出端ET 開(kāi)始計(jì)時(shí),定時(shí)到達(dá)3s后輸出。由

13、FALSE變?yōu)門(mén)RUE.融發(fā)定時(shí)器指令TP觸發(fā)定時(shí)器功能塊。定時(shí)器的輸出值不斷增加,直至其達(dá)到限值,在計(jì)時(shí)期間,“脈沖”變 量為T(mén)RUE,其他時(shí)候?yàn)镕ALSE,指令塊如下圖t pexampleTP-INQ -PTET -輸入:IN:布爾型(BOOL);該輸入端的上升沿觸發(fā)ET端的計(jì)時(shí)PT:時(shí)間型(TIME);計(jì)時(shí)時(shí)間的上限值 輸出:0:布爾型(BOOL);當(dāng)ET端在計(jì)時(shí)的時(shí)候,其值為T(mén)RUEET:時(shí)間型(TIME);時(shí)間的當(dāng)前狀態(tài)程序例:fl 0t#3ST ITTP丄NPTETtpexample11#分析:當(dāng)IN為FALSE時(shí),0為FALSE, ET為0。一旦IN變?yōu)門(mén)RUE,定時(shí)器的輸出端E

14、T以 毫秒精度幵始計(jì)時(shí),直到它等于PT,隨后它會(huì)維持不變.當(dāng)IN變?yōu)門(mén)RUE且ET小于或 等于PT時(shí),Q為T(mén)RUE.否則它為FALSE.在由PT值指定的時(shí)間到達(dá)時(shí),O返回了一 個(gè)信號(hào)在本例中,卩丁設(shè)為3 8寸,X1 FALSE, 01為FALSE,當(dāng)X1為T(mén)RUE, 0輸出變?yōu)?TRUE,同時(shí)ET幵始計(jì)數(shù),當(dāng)ET=3S時(shí),Q輸出變回為FALSE.脈沖指令BLINK功能塊BLINK產(chǎn)生脈沖信號(hào)。輸入由BOOL類型ENABLE,以及TIME類型TIMELOW 和TIMEHIGH組成。輸出OUT是BOOL類型.指令塊如下圖BLINKENABLEOUTTIMELOWTIMEHIGH如果ENABLE為T(mén)

15、RUE,在時(shí)間周期TIMEHIGH, BLINK設(shè)置輸出為T(mén)RUE;然后在時(shí) 間周期TIMELOW,設(shè)置輸出為FALSE.X1fl D七#2 3t#ls程序例BLINKENABLEOUT -TIMELOWTIMEHIGH分析:在本例中,當(dāng)ENABLE X1 TRUE 8寸,BLINK開(kāi)始工作,輸出低電平2s高電平 1S的脈沖,如下圖。IsIsIs2s2s下降沿觸發(fā)指令F.TRIG該功能塊檢測(cè)一個(gè)下降沿。指令塊如下圖 ftrigexF_TRIGCI,KQ -輸入:CLK:布爾型(BOOL);被檢測(cè)其下降沿的布爾型輸入信號(hào)輸出:0:布爾型(BOOL);當(dāng)CLK上檢測(cè)到一個(gè)下降沿時(shí),其值為T(mén)RUE只

16、要輸入變量CLK為T(mén)RUE,輸出。都保持為FALSE,旦CLK為FALSE,。會(huì)先 返回TRUE,然后被置為FALSE,這意味著每次調(diào)用這個(gè)功能塊時(shí),0會(huì)返回FALSE 直到CLK在上升沿后有一個(gè)下降沿程序例:X1ftrigexF_TRIGCLK分析:在本例中,當(dāng)X1輸入一個(gè)由TRUE變?yōu)镕ALSE的下降沿,則F.TRIG的輸出0 也輸出一個(gè)由FALSE變?yōu)門(mén)RUE的上升沿,然后再變?yōu)镕ALSE.上升沿觸發(fā)指令FLTRIG該功能塊檢測(cè)一個(gè)上升沿。指令塊如下圖ft ng exR TRIG CLKO -輸入:CLK:布爾型(BOOL);被檢測(cè)上升沿的布爾型輸入信號(hào)輸出:0:布爾型(BOOL);當(dāng)C

17、LK上檢測(cè)到一個(gè)上升沿時(shí),其值為T(mén)RUE只要輸入變量CLK為FALSE,輸出。保持為FALSE. 一旦CLK為T(mén)RUE, 0會(huì)先返 回TRUE,然后被置為FALSE.這意味著每次調(diào)用這個(gè)功能塊時(shí),0會(huì)返回FALSE直 到CLK在下降沿后有一個(gè)上升沿程序例:乂 1rtrigexR TRIGIDCLKQ分析:在本例中,當(dāng)X1輸入一個(gè)由FALSE變?yōu)門(mén)RUE的上升沿,則R.TRIG的輸出0也輸出一個(gè)由FALSE變?yōu)門(mén)RUE的上升沿.然后再變?yōu)镕ALSE.加運(yùn)算指令A(yù)DD變量相加。允許的變量類型:BYTE. WORD、DWORD、SINT、USINT、INT、UINT、 DINT、UDINT、REAL

18、 iffl LREAL.指令塊如下圖14#程序例:ENADDENOxlx4#分析:在本例中.當(dāng)X1為T(mén)RUE時(shí).ADD執(zhí)行把操作數(shù)X3和X4相加的運(yùn)算.并把結(jié)果 輸出到 X5 中,如 X3=3; X4=7;則 X5=10o減運(yùn)算指令SUB從杲個(gè)變量中減去一個(gè)變量允許的變量類型:BYTE、WORD、DWORD、SINT、USINT.INT、UINT、DINT、UDINT、REAL 和 LREAL。指令如下圖#程序例:#分析:在本例中,當(dāng)X1為T(mén)RUE時(shí),SUB執(zhí)行把操作數(shù)X3減去X4的運(yùn)算,并把結(jié)果輸 出到 X5 中,如 X3=3; X4=7;貝IJ X5=-4O乘運(yùn)算指令MUL變量相乘.允許的

19、變量類型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL ?0 LREALO指令如下圖程序例:分析:在本例中,當(dāng)X1為T(mén)RUE時(shí),MUL執(zhí)行把換作數(shù)X3乘以X4的運(yùn)算,并把結(jié)果輸 出到 X5 中,如 X3=3$ X4=7;則 X5=21O除運(yùn)算指令DIV用一個(gè)變量除另一個(gè)變量。允許的變量類型:BYTE、WORD、DWORD、SINT、USINT、 INT、 UINT、 DINT、 UDINT、 REAL 0 LREAL.指令如下圖程序例:x5分析:在本例中,當(dāng)X1為T(mén)RUE時(shí),DIV執(zhí)行把操作數(shù)X3除X4的運(yùn)算,并把結(jié)果輸出 到 X5 中

20、,如 X3=10, X4=5;則 X5=2O補(bǔ)尾取整指令TRUNC把實(shí)數(shù)類型(REAL)轉(zhuǎn)換成DINT類型。取被轉(zhuǎn)換值的整數(shù)部分。指令如下圖分析:在本例中,當(dāng)X1為T(mén)RUE時(shí),TRUNC執(zhí)行把操作數(shù)X7截尾取整的運(yùn)算.即當(dāng) X7=989時(shí),取其整數(shù)部分.并把結(jié)果輸出到X& 60X8=9。取余指令MOD一個(gè)變量與另一個(gè)變量相除取余。允許的變量類型:BYTE. WORD、DWORD、SINT、 USINT、INT、UINT、DINT、UDINT.結(jié)果為除法運(yùn)算的余數(shù).是一個(gè)整數(shù)。指令如下圖分析:在本例中,當(dāng)X1為T(mén)RUE時(shí).MOD指令執(zhí)行把X3除以X4,并把余數(shù)輸出到X5 中;即當(dāng)X3=10, X

21、4=6時(shí),余數(shù)X5=4O16比較等于指令E0指令如下圖:17#當(dāng)兩個(gè)操作數(shù)相等時(shí),返回值為T(mén)RUE.操作數(shù)可以為BOOL. BYTE. WORD、DWORD、 SINT、USINT、INT、UINT、DINT、UDINT、RE AL、LRE AL、TIME、D ATE、TIME_OF_DAY、 DATE_AND_TIME 和 STRING 類型.程序例:TRUE#分析:在本例中當(dāng)X1為T(mén)RUE時(shí),EO指令執(zhí)行.比較X3和X4的值.如X3=X4t則 輸岀比較結(jié)果X2為T(mén)RUE;否則,X2為FALSE。所以,當(dāng)X3=X4=6時(shí),比較結(jié)果 X2=TRUE0 tt大于等于指令GE大于或等于。指令如下圖

22、:#當(dāng)?shù)谝粋€(gè)操作數(shù)大于或者等于第二個(gè)操作數(shù)時(shí),返回值為T(mén)RUE.操作數(shù)可以為BOOL. BYTE, WORD、DWORD、SINT、USINT、INT、UINT、DINT, UDINT、REAL, LREAL. TIME. DATE. TIME_OF_DAY、DATE_AND_TIME 和 STRING 類型。程序例:#分析:在本例中.當(dāng)X1為T(mén)RUE時(shí).GE指令執(zhí)行.比較X3和X4的值.如X3人于等于X4f則輸出比較結(jié)果X2為T(mén)RUE;否則,X2為FALSE。所以,當(dāng)X3=5; X4=6時(shí),比#較結(jié)果X2=FALSEttt大于指令GT大于。指令如下圖:當(dāng)?shù)谝粋€(gè)操作數(shù)比第二個(gè)大時(shí).返回值為T(mén)R

23、UE.操作數(shù)可以為BOOL. BYTE. WORD、 DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL. LREAL、TIME, DATE、 TIME_OF_DAY. DATE_AND_TIME 和 STRING 類型。程序例:分析:在本例中,當(dāng)X1為T(mén)RUE時(shí),GT指令執(zhí)行.比較X3和X4的值.如X3大于X4, 則輸出比較結(jié)果X2為T(mén)RUE;否則,X2為FALSE。所以,當(dāng)X3=8; X4=6時(shí),比較結(jié) 果X2=TRU巳比較小于等于指令LE小于等于。指令如下圖:第一個(gè)操作數(shù)小于或者等于第二個(gè)操作數(shù)時(shí).返回值為T(mén)RUE.操作數(shù)可以為BOOL.BYTE, WOR

24、D、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL, LREALX TIME、DATE、TIME_OF_DAY. DATE_AND_TIME 和 STRING 類型。程序例:分析:在本例中,當(dāng)X1為T(mén)RUE時(shí).LE指令執(zhí)行,比較X3和X4的值,如X3小于或者 等于X4,則輸出比較結(jié)果X2為T(mén)RUE;否則,X2為FALSE。所以,當(dāng)X3=8; X4=9時(shí), 比較結(jié)果X2=TRUE018tts小于指令1T小于。指令如下圖:當(dāng)?shù)谝粋€(gè)操作數(shù)比第二個(gè)小時(shí),返回值為T(mén)RUE.操作數(shù)可以為BOOL、BYTE. WORD、 DWORD、SINT、USINT, INT、UIN

25、T、DINT、UDINT、REAL. LREAL, TIME、DATE. TIME_OF_DAY. DATE_AND_TIME 和 STRING 類型。程序例:x2TRUE分析:在本例中,當(dāng)X1為T(mén)RUE 8寸,LE指令執(zhí)行,比較X3和X4的值,如X3小于X4, 則輸出比較結(jié)果X2為T(mén)RUE;否則,X2為FALSE。所以,當(dāng)X3=8; X4=9時(shí),比較結(jié) 果X2=TRU巳tt不等于指令NE 不等于。指令如下圖:當(dāng)兩個(gè)操作數(shù)不相等時(shí)返回值為T(mén)RUE.操作數(shù)可以為BOOL. BYTE. WORD. DWORD. SINT、USINT、INT、UINT、DINT、UDINT、RE AL 丄 RE A

26、L、TIME、D ATE、TIME_OF_DAY、 DATE_AND_TIME 和 STRING 類型。程序例:分析:在本例中.當(dāng)X1為T(mén)RUE時(shí),LE指令執(zhí)行,比較X3和X4的值,如X3不等于X4, 則輸出比較結(jié)果X2為T(mén)RUE;否則,X2為FALSE。所以.當(dāng)X3=8; X4=9時(shí),比較結(jié) 果 X2=THUE.循環(huán)左移指令ROL將操作數(shù)按位循環(huán)左移。指令如下圖:20#ROL (in, n)0允許的數(shù)據(jù)類型:BYTE. WORD. DWORD, in會(huì)左移二進(jìn)制位n次,同 時(shí)左邊移出的位重新補(bǔ)充到右邊。程序例:outbyte | 211#分析:在本例中 inbyte和outbyte分別設(shè)為b

27、yte數(shù)據(jù)類型,泊byte=10#69, n=2o 當(dāng)X1為T(mén)RUE 8寸,ROL執(zhí)行循環(huán)左移位,此時(shí)inbyte=10#69=2#01000101,循環(huán)左移 2 位后.outbyte=2 # 00010101=10 #21。15環(huán)右移指令ROR將操作數(shù)按位循環(huán)右移。指令如下圖:#ROR(int n)o允許的數(shù)據(jù)類型:BYTE. WORD. DWORD, in將會(huì)右移二進(jìn)制位n次, 同時(shí)右邊移出的位將會(huì)重新補(bǔ)充到左邊。程序例:utbyte81#分析:在本例中 inbyte和outbyte分別設(shè)為byte數(shù)據(jù)類型,inbyte=10#69, n=2。 當(dāng)X1為T(mén)HUE時(shí),ROR循環(huán)右移位,此時(shí)i

28、nbyte=10#69=2#01000101,循環(huán)右移2 位后.outbyte=2#01010001=10#81。#左移指令SHL將操作數(shù)按位左移。指令如下圖:21#SHL (in, n)o in:需妾左移的操作數(shù)。n:操作數(shù)左移的位數(shù),如果n超出了數(shù)據(jù)本身的 位數(shù),BYTE、WORD和DWORD類型的操作數(shù)將會(huì)補(bǔ)0,而有符號(hào)類型的操作數(shù)(例如 INT)將會(huì)進(jìn)行算術(shù)移位。也就是說(shuō)會(huì)將這些數(shù)的最高位的值補(bǔ)在空出的二進(jìn)制位上. 程序例:#分析:在本例中,inbyte和。utbyte分別設(shè)為byte數(shù)據(jù)類型,inbyte=10#69, n=2o 當(dāng)X1為T(mén)RUE時(shí),ROL執(zhí)行左移位,此時(shí)inbyte

29、=10#69=2# 01000101,左移2位后, outbyte=2# 00010100=10 #20。右移摳令SHR將操作數(shù)按位右移。指令如下圖:#SHR (in, n). in:需要右移的操作數(shù)。n:操作數(shù)右移的位數(shù).如果n超出了數(shù)據(jù)本身的 位數(shù),BYTE、WORD和DWORD類型的操作數(shù)將會(huì)補(bǔ)0,而有符號(hào)類型的操作數(shù)(例如 INT)將會(huì)進(jìn)行算術(shù)移位。也就是說(shuō)會(huì)將這些數(shù)的最高位的值補(bǔ)在空出的二進(jìn)制位上。 程序例:分析:在本例中,inbyte和outbyte分別設(shè)為byte數(shù)據(jù)類型 inbyte=10#69, n=2。 當(dāng)X1為T(mén)RUE時(shí),ROR執(zhí)行右移位,此時(shí)inbyte=10#69=2

30、# 01000101,循環(huán)右移2位 /5 outbyte=2#00010001=10#17。正弦函數(shù)SN返回一個(gè)數(shù)的正弦值,數(shù)據(jù)以弧度計(jì)算“指令如下圖:SINEN SNO輸入變量可以是 BYTE. WORD. DWORD、INT、DINT、REAL. SINT. USINT、UINT、 UDINT類型。輸出變量只能是REAL類型.程序例:X?0.84122#分析:在本例中,X3=1孤度=180/pi度當(dāng)X1為T(mén)RUE時(shí).SIN執(zhí)行正弦運(yùn)算,將X3 的正弦值輸出到X7中,所以X7=0.841o余弦函數(shù)cos返回一個(gè)數(shù)的余弦值,數(shù)據(jù)以弧度計(jì)算,指令如下圖:cos EN ENO -輸入變量可以是 B

31、YTE. WORD、DWORD. INT、DINT. REAL、SINT. USINT、UIN UDINT類型。輸出變量只能是REAL類型。程序例:X10.54分析:在本例中.X3=1弧度=180/pi度,當(dāng)X1為T(mén)RUE時(shí).SIN執(zhí)行余弦運(yùn)算,將X3 的余弦值輸出到X7中,所以X7=0.54o正切函數(shù)TAN返回一個(gè)數(shù)的正切值.數(shù)據(jù)以狐度計(jì)算.指令如下圖:TANEN ENO -輸入變量可以是 BYT巳 WORD、DWORD、INT、DINT. REAL. SINT、USINT. UIN UDINT類型。輸出變量只龐是REAL類型。程序例:23#分析:在本例中.X3=1弧度=180/pi度;當(dāng)X

32、1為T(mén)RUE時(shí).SIN執(zhí)行正切運(yùn)算,將X3 的正切值輸出到X7中,所以X7=156。反正弦函數(shù)ASIN返回一個(gè)數(shù)的反正弦值,數(shù)據(jù)以弧度計(jì)算。指令如下圖:ASINEN ENO -輸入變量可以是 BYT巳 WORD. DWORD. INT、DINT. REAL. SINT. USINT、UIN UDINT類型.輸出變量只能是REAL類型。程序例:157分析:在本例中.X3=1狐度=180/pi度;當(dāng)X1為T(mén)RUE時(shí),ASIN執(zhí)行反正弦運(yùn)算,將 X3的反正弦值輸出到X7中所以X7=157。反余弦函數(shù)ACOS返回一個(gè)數(shù)的反余弦值,數(shù)據(jù)以孤度計(jì)算.指令如下圖:ACOSEN ENO輸入變量可以是 BYT巳

33、 WORD、DWORD. INT. DINT. REAL, SINT、USINT. UINT、UDINT類型。輸出變量只能是REAL類型。程序例:分析:在本例中X3=1弧度=180/pi度;當(dāng)X1為T(mén)RUE 8 t ACOS執(zhí)行反余弦運(yùn)算.將 X3的反余弦輸出到X7中,所以X7=0o反正切函數(shù)ATAN返回一個(gè)數(shù)的反正切值。數(shù)據(jù)以弧度計(jì)算。指令如下圖:ATANEN EMO輸入變量可以是 BYTE. WORD、DWORD% INT、DINT. REAL. SINT. USINT、UINT、 UDINT類型。輸出變量只能是REAL類型.程序例:分析:在本例中.X3=1 度=180/pi度;當(dāng)X1為T(mén)

34、RUE時(shí).ATAN執(zhí)行反正切運(yùn)算.將 X3的反正切值輸出到X7中,所以X7=0785。取絕對(duì)值函數(shù)ABS返回一亍數(shù)的絕對(duì)值。指令如下圖:ABSEN ENO可以使用下列輸入輸出變量類型組合:輸入 輸出INT INT, REAL, WORD, DWORD, DINTREAL REALBYTE INT, REAL, BYTE, WORD, DWORD, DINTWORD INT, REAL, WORD, DWORD, DINTDWORD REAL, DWORD, DINTSINT REALUSINT REALUINT INT, REAL, WORD, DWORDf DINT, UDINT, UINT

35、DINT REAL, DWORD, DINTUDINT REAL, DWORD, DINT, UDINT 程序例:25#分析:在本例中,當(dāng)X1為T(mén)RUE時(shí),ABS指令執(zhí)行,將X3的絕對(duì)值輸出到X7中;如 X3=& 則輸出 X7=8O指數(shù)函數(shù)EXP返回指數(shù)函數(shù).指令如下圖:EXPEN EMO -輸入變量可以是 BYTE. WORD、DWORD、INT. DINT. REAL. SINT、USINT. UINT、 UDINT類型。輸出變量只能是REAL類型。xlEN程序例:ENO一 X?7.39EXP分析:在本例中,當(dāng)X1為T(mén)RUE時(shí),EXP指令執(zhí)行,將X3的指數(shù)輸出到X7中;如X3=2. 則輸出

36、X7=7.39帚函數(shù)EXPT求一個(gè)變量關(guān)于另一個(gè)變量的幕。指令如下圖:#兩個(gè)操作數(shù)可以是 BYTE. WORD、DWORD. INT、DINT、REAL. SINT、USINT. UINT、UDINT類型。輸出變量只能是REAL類型。程序例:#分析:在本例中.當(dāng)X1為T(mén)RUE時(shí),EXPT指令執(zhí)行,把X3的X5次幕輸出到X7中;如X3=2t#X5=3,則X7=2=8O取平方根函數(shù)SORT返回一個(gè)數(shù)的平方根.指令如下圖:SQRTEN ENO -輸入變量可以是 BYTE. WORD、DWORD. INT. DINT. REAL. SINT、USINT、UINUDIN丁類型.輸出變量只能為REAL類型

37、。X1程序例:SQRTXx3 |64ENENO26#分析:在本例中,當(dāng)X1為T(mén)RUE 8寸,SORT指令執(zhí)彳亍,把X3的平方根值輸出到X7中; 如 X3=64,則 X7=8對(duì)數(shù)函數(shù)LOG返回值是以10為底的對(duì)數(shù)。指令如下圖:#輸入變量可以是 BYTE、WORD、DWORD. INT、DINT. REAL. SINT. USINT. UIN UDINT類型.輸出變量只能是REAL類型。程序例:LOGTNx3 rENENO100#分析:在本例中,當(dāng)X1為T(mén)RUE時(shí),LOG指令執(zhí)行,把X3的以10為底的對(duì)數(shù)結(jié)果輸出 到 X7 中;如 X3=100,則 X7=2e#自然對(duì)數(shù)函數(shù)LN返回一個(gè)數(shù)的自然對(duì)數(shù)

38、。指令如下圖:LNEN ENO -輸入變量可以是 BYTE. WORD、DWORD. INT、DINT、REAL、SINT. USINT、UINT、 UDINT類型.輸出變量只能是REAL類型。程序例:分析:在本例中,當(dāng)X1為T(mén)RUE 8寸,LN指令執(zhí)行,把X3的自然對(duì)數(shù)結(jié)果輸出到X7中; 如 X3=88,則 X7=4.48g取地址指令A(yù)DR取地址指令。指令如下圖:ADREN E1JO 一ADR返回變量自身的地址,數(shù)據(jù)類型為DWORD.這個(gè)地址可以作為指針傳遞給操作函數(shù), 也可以賦給工程內(nèi)的某個(gè)鈕。程序例:r 才PCMTEP to rrrL6*L187CEBS* zhizhenLINTTxlA

39、DRMl國(guó) BNOx3 583-r一 xhi 乙hcnl分析:在本例中,當(dāng)X1為T(mén)RUE時(shí),ADR指令執(zhí)行.將X3的地址賦予指針變量zhizhenl 上,即zhizhenl指向了 X1;如X3=88,則指針變量zhizhenl的值16# 1187CBB8即是 X1的地址,同時(shí)指針的指向變量的值z(mì)hizhenr是83。27字節(jié)長(zhǎng)度指令SIZEOF這個(gè)操作符用來(lái)確定給定變量x需要占用多少個(gè)字節(jié)指令如下圖:28返回值的類型USINTSIZEOF操作符通常返回一個(gè)無(wú)符號(hào)數(shù).返回值的類型與變量X的大小相匹配。 SIZEOF(x)的返回值0 = x 的值 V 256 256 = x 的值 V 65536

40、UINT65536 = x 的值 V UDINT4294967296 4294967296 arrl* var3PRUY05OF 】MIUSE12#RET分析:在本例中,當(dāng)X1為T(mén)RUE時(shí),SIZEOF指令執(zhí)行,來(lái)確定給定數(shù)組變量需要 占用多少個(gè)字節(jié),并將結(jié)果輸出到var3 (USINT型);由于arr1 g 0到5的INT型數(shù)組變 量,因此var3=120二選一指令SEL從兩個(gè)操作數(shù)中選擇一個(gè).指令如下圖:由G決定IN0還是IN1為輸出。OUT := SEL(G, INO, IN1)的含義:OUT := INO;SG=FALSEOUT := IN1;gG=TRUE.允許的數(shù)據(jù)類型:INO,

41、IN1, OUT:任意類型G: BOOL.#29程序例:SELX1xlSELx3#分析:在本例中.當(dāng)X1為FALSE時(shí),SEL指令選擇X3輸出到X5中,所以X5=X3=& 當(dāng)X1為T(mén)RUE時(shí),SEL指令選擇X4輸出到X5中,所以X5=X3=19O 多選一指令MUX多項(xiàng)選擇操作符.指令如下圖:#INO、,INn以及OUT可以是任意類型的變量。X1必須為BYTE. WORD、DWORD、 SINT、USINT、INT、UINT、DINT或UDINT類型 MUX從這一組(直中選擇第X1個(gè)(直. 程序例:XIX2X3X4X5X6X7X8分析:在本例中.MUX指令根據(jù)X1的值,來(lái)決定X9的輸出值。當(dāng)X1

42、=8時(shí).MUX取功能 塊中的第8個(gè)值.即X9=X8=8O取極限指令limit取極限。指令如下圖;LIMIT程序例:當(dāng)XKX2時(shí)分析:Mbx是結(jié)果的上限值,Min是結(jié)果的下限值.如果IN值大于上限值Maxt LIMIT將 返回Max,而如果IN小于Min,那么結(jié)果為Min。在本例中,當(dāng)X1X2X3時(shí),輸出X9=X2; 當(dāng) X2X3X2 時(shí),輸出 X9=X3.取最大值MAX取最大值函數(shù)。返回輸入的值中最大的那一個(gè)。指令如下圖:MAXINO, IN1JN2和OUT可以為任意類型的變量, 程序例:分析:程序運(yùn)行時(shí),MAX指令取輸入的X1,X2,X3中最大的值.并將結(jié)果輸出到X9中。在 本例中X2最大,

43、因此X9=X2=9O 取燉小值指令MIN取最小值函數(shù)返回兩個(gè)值中較小的那一個(gè)。指令如下圖:32#INO, IN1JN2和OUT可以為任意類型的變量。程序例:分析:程序運(yùn)行時(shí).MIN指令取輸入的X1,X2tX3中最小的值,并將結(jié)果輸出到X9中。在 本例中X3最小,因此X9=X3=6O賦值指令MOVE將一個(gè)變量的值賦給另一個(gè)適當(dāng)類型的變量。指令如下圖:MOVEEN ENO -在圖形編輯器FBD、LD、CFC中,MOVE是一個(gè)方框。在這個(gè)方框里(未鎖定的)EN/ENO 功能也可以用于變量賦值。程序例:x3分析:在本例中,當(dāng)X1為T(mén)RUE時(shí).MOVE指令執(zhí)行,將X3的值賦給到X4中;即X4=X3=8,

44、布爾類型轉(zhuǎn)換指令從布爾類型整為其它任意類型。BOOL_TO_數(shù)據(jù)類型轉(zhuǎn)換為數(shù)字類型時(shí),若操作數(shù)為T(mén)RUE,結(jié)果為1;若操作數(shù)為 FALSE,結(jié)果為0。BOOL_TO_V數(shù)據(jù)類型轉(zhuǎn)換為字符串類型時(shí),若操作數(shù)為T(mén)RUE,結(jié)果為“TRUE”,若 操作數(shù)為FALSE,則結(jié)果為“FALSE”.程序例1:outbyte33分析:在本例中,當(dāng)X1為T(mén)RUE Bt, BOOL_TO_BYTE指令執(zhí)行,輸出結(jié)果outbyte; 由于 X2=TRUE,所以 outbyte=1 .程序例2:TRUE#分析:在本例中,當(dāng)X1為T(mén)RUE時(shí),BOOL_TO_STRING指令執(zhí)行,輸出結(jié)果outstring; 由于 X2=TRUE,所以 outstring=TRUEe字節(jié)類型轉(zhuǎn)換指令BYTE_TO_數(shù)據(jù)類型轉(zhuǎn)換為數(shù)字類型時(shí),若操作數(shù)為T(mén)RUE,結(jié)果為1;若操作數(shù)為 FALSE,結(jié)果為0。BYTE_TO_

溫馨提示

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

評(píng)論

0/150

提交評(píng)論