版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
電氣控制與PLC主講教師:曾新紅選用教材:《電氣控制與PLC應(yīng)用技術(shù)》曾新紅
等主編廣州航海學(xué)院第五章
功能指令5.2數(shù)據(jù)處理指令知識目標(biāo):通過功能指令的學(xué)習(xí),掌握各種的功能指令含義和作用,會用數(shù)據(jù)處理指令進行數(shù)值的轉(zhuǎn)換等功能;了解數(shù)學(xué)運算指令進行數(shù)學(xué)關(guān)系之間的運算;學(xué)會正確編寫程序。提高學(xué)生分析問題和解決問題的能力。
能力目標(biāo):熟練掌握各種功能指令。并能根據(jù)控制需求,應(yīng)用數(shù)據(jù)處理指令結(jié)合前期學(xué)習(xí)的基本邏輯指令編寫程序,達到控制要求。能自主學(xué)習(xí),拓展知識,充分體現(xiàn)學(xué)生在課堂上的主體性。
教學(xué)目標(biāo)
沒有執(zhí)行跳轉(zhuǎn)指令時,各個程序段按從上到下的先后順序執(zhí)行,這種執(zhí)行方式稱為線性掃描。1.跳轉(zhuǎn)與標(biāo)簽指令
跳轉(zhuǎn)指令中止程序的線性掃描,跳轉(zhuǎn)到指令中的地址標(biāo)簽所在的目的地址。跳轉(zhuǎn)時不執(zhí)行跳轉(zhuǎn)指令與標(biāo)號之間的程序,跳到目的地址后,程序繼續(xù)接線性掃描的方式順序執(zhí)行。使用跳轉(zhuǎn)指令時,應(yīng)注意以下兩點:(1)跳轉(zhuǎn)指令可以往前跳,也可以往后跳;(2)跳轉(zhuǎn)指令只能在同一個代碼塊跳轉(zhuǎn),即跳轉(zhuǎn)指令與對應(yīng)的跳轉(zhuǎn)目的地址應(yīng)在同一個代碼塊內(nèi)。在一個塊內(nèi),同一個跳轉(zhuǎn)目的地址只能出現(xiàn)一次。
如果跳轉(zhuǎn)條件滿足,監(jiān)控JMP指令的線圈通電,跳轉(zhuǎn)被執(zhí)行,將跳轉(zhuǎn)到指令給出的標(biāo)簽W1234處,執(zhí)行標(biāo)簽之后的第一條指令。被跳過的程序段的指令沒有被執(zhí)行,這些程序段的梯形圖為灰色。標(biāo)簽在程序段的開始處,標(biāo)簽的第一個字符必須是字母,其余的可以是字母、數(shù)字和下劃線。如果跳轉(zhuǎn)條件不滿足,將繼續(xù)執(zhí)行下一個程序段的程序。JMP(為0時塊中跳轉(zhuǎn))指令的線圈斷電時,將跳轉(zhuǎn)到指令給出的標(biāo)簽處,執(zhí)行標(biāo)簽之后的第一條指令。圖5-1條件跳轉(zhuǎn)指令5.2數(shù)據(jù)處理指令5.2.1比較指令
5.2.2使能輸入與使能輸出5.2.3數(shù)據(jù)轉(zhuǎn)換指令5.2.4數(shù)據(jù)傳送指令5.2.5移位與循環(huán)移位指令5.2.1比較指令
比較指令2.范圍內(nèi)與范圍外比較指令3.OK與NOT_OK指令
比較指令用來比較數(shù)據(jù)類型相同的兩個數(shù)IN1與IN2的大小(見圖5-5),IN1和IN2分別在觸點的上面和下面。它們的數(shù)據(jù)類型(見下圖中的下拉式列表)應(yīng)相同。操作數(shù)可以是I、Q、M、L、D存儲區(qū)中的變量或常數(shù)。1.比較指令
可以將比較指令視為一個等效的觸點,比較符號可以是“==”(等于)、“<>''(不等于)、“>''、“>=''、“<"和''<=''。滿足比較關(guān)系式給出的條件時,等效觸點接通。例如當(dāng)MW8的値等于-24732時,下圖第一行左邊的比較觸點接通。
范圍內(nèi)比較指令I(lǐng)N_RANGE與范圍外比較指令OUT_RANGE可以等效為一個觸點。如果有能流流入指令方框,執(zhí)行比較。下圖中的IN_RANGE指令的參數(shù)VAL滿足MIN≤VAL≤MAX(-3752≤MW22≤27535),或OUT_RANGE指令的參數(shù)VAL滿足VAL<MIN或VAL>MAX(MB20<24或MB20>124)時,等效觸點閉合,有能流流出指令框的輸出端,反之,無能流輸出。2.范圍內(nèi)與范圍外比較指令注意:
指令的MIN、MAX和VAL的數(shù)據(jù)類型必須相同,可選SInt、Int、DInt、USInt、UInt、UDInt、Real可以是I、Q、M、L、D存儲區(qū)中的變量或常數(shù)?!纠?-1】用接通延時定時器和比較指令組成占空比可調(diào)的脈沖發(fā)生器。M2.0和接通延時定時器TON組成了一個脈沖發(fā)生器,使MD4中TON的已耗時間按下圖左圖所示的波形變化。比較指令用來產(chǎn)生脈沖寬度可調(diào)的方波,Q0.0為0的時間取決于比較觸點下面的操作數(shù)的值。MD4用于保存定時器TON的已耗時間ET,其數(shù)據(jù)類型為Time。輸入比較指令上面的操作數(shù)MD4后,指令中“>=”符號下面的數(shù)據(jù)類型自動變?yōu)椤癟ime”。輸入IN2的值1000后,自動變?yōu)門#1000ms。
OK和NOT_OK指令(見圖5-7a)用來檢測輸入數(shù)據(jù)是否是實數(shù)(即浮點數(shù))。如果是實數(shù),OK觸點接通,反之NOT_OK觸點接通。觸點上面的變量的數(shù)據(jù)類型為Real。執(zhí)行圖5-7b中的乘法指令MUL之前,首先用OK指令檢查MUL指令的兩個操作數(shù)是否是實數(shù),如果不是,OK觸點斷開,沒有能流流入MUL指令的使能輸入端EN,不會執(zhí)行乘法指令。3.OK與NOT_OK指令圖5-7aOK與NOT_OK指令圖5-7bOK指令的應(yīng)用第三章第6題作業(yè)用比較指令編程5.2.3數(shù)據(jù)轉(zhuǎn)換指令
CONV指令2.浮點數(shù)轉(zhuǎn)換為雙整數(shù)的指令3.SCALE_X指令4.NORM_X指令1.CONV指令
CONV指令的參數(shù)IN、OUT的數(shù)據(jù)類型可以是Byte、Word、DWord、SInt、Int、DInt、USInt、UInt、UDInt、BCD16、BCD32和Real,IN還可以是常數(shù)。EN輸入端有能流流入時,CONV指令將輸入IN指定的數(shù)據(jù)轉(zhuǎn)換為OUT指定的數(shù)據(jù)類型。數(shù)據(jù)類型Bcd16只能轉(zhuǎn)換為Int,Bcd32只能轉(zhuǎn)換為DInt。
下圖中的I0.3的常開觸點接通時,執(zhí)行CONV指令,將MD42中的32位BCD碼轉(zhuǎn)換為雙整數(shù)后送MD46。如果執(zhí)行時沒有出錯,有能流從CONV指令的ENO端流出。ROUND指令將MD50中的實數(shù)四舍五入轉(zhuǎn)換為雙整數(shù)后保存在MD54。a)
浮點數(shù)轉(zhuǎn)換為雙整數(shù)有4條指令,它們將IN輸入的浮點數(shù)轉(zhuǎn)換為32位雙整數(shù)。其中用得最多的是四舍五入的ROUND指令,CEIL和FLOOR指令用得很少。因為轉(zhuǎn)換規(guī)則不同,得到的結(jié)果也不相同。表5-3給出了不同的取整格式的例子。2.浮點數(shù)轉(zhuǎn)換為雙整數(shù)的指令表5-3不同的取整格式舉例指令取整前取整后說明ROUND+100.6-100.9+101-101將浮點數(shù)轉(zhuǎn)換為四舍五入的雙整數(shù)CEIL+100.1-100.9+101-100將浮點數(shù)轉(zhuǎn)換為大于或等于它的最小雙整數(shù)FLOOR+100.1-100.9+100-101將浮點數(shù)轉(zhuǎn)換為小于或等于它的最小雙整數(shù)TRUNC+100.1-100.9+100-100將浮點數(shù)轉(zhuǎn)換為截位取整的雙整數(shù)
SCALE_X指令的浮點數(shù)輸入值VALUE(0.0≤VALUE≤1.0)被線性轉(zhuǎn)換(映射)為參數(shù)MIN(下限)和MAX(上限)定義的數(shù)值范圍之間的整數(shù)。轉(zhuǎn)換結(jié)果保存在OUT指定的地址。點擊方框內(nèi)指令名稱下面的問號,用下拉式列表設(shè)置變量的數(shù)據(jù)類型。參數(shù)MIN、MAX和OUT的數(shù)據(jù)類型應(yīng)相同,可以是SInt、Int、DInt、USInt、UInt、UDInt和Real,MIN和MAX可以是常數(shù)。3.SCALE_X指令圖5-14SCALE_X與NORM_X指令600
各變量之間的線性關(guān)系如下(見圖5-15):OUT=VALUE(MAX-MIN)+MIN=0.4×(1000-200)+200=520如果參數(shù)VALUE小于0.0或大于1.0,可以生成小于MIN或大于MAX的OUT,此時ENO為1。例如VALUE為1.2時,OUT為1160。圖5-15SCALE_X指令的線性關(guān)系滿足下列條件之一時ENO為0狀態(tài):
1)EN輸入為0狀態(tài)。2)MIN的值大于等于MAX的值。3)實數(shù)值超出IEEE-754規(guī)定的范圍。4)有溢出。5)輸入VALUE為NaN(無效的算術(shù)運算結(jié)果)。4.NORM_X指令
圖5-16中的NORM_X指令的整數(shù)輸入值VALUE(MIN≤VALUE≤MAX)被線性轉(zhuǎn)換(規(guī)格化)為0.0~1.0之間的浮點數(shù),轉(zhuǎn)換結(jié)果保存在OUT指定的地址。圖5-16NORM_X指令的線性關(guān)系各變量之間的線性關(guān)系如下(見圖5-16):OUT=(VALUE-MIN)/(MAX-MIN)=(800-200)/(1000-200)=0.75如果參數(shù)VALUE小于MIN或大于MAX,可以生成小于0.0或大于1.0的OUT,此時ENO為1。例如圖5-16中的VALUE為0時,OUT為-0.25。使ENO為0狀態(tài)的條件與指令SCALE_X的相同5.2.4數(shù)據(jù)傳送指令MOVE指令SWAP指令3.全局數(shù)據(jù)塊與數(shù)組4.FILL_BLK與UFILL_BLK指令5.MOVE_BLK與UMOVE_BLK指令
MOVE指令(見圖5-17)用于將IN輸入端的源數(shù)據(jù)復(fù)制給OUT1輸出的目的地址,并且轉(zhuǎn)換為OUT1指定的數(shù)據(jù)類型,源數(shù)據(jù)保持不變。IN和OUTl可以是Bool之外的所有的基本數(shù)據(jù)類型,和數(shù)據(jù)類型DTL、Struct和Array。IN還可以是常數(shù)。1.MOVE指令圖5-17MOVE與SWAP指令
IN和OUT為數(shù)據(jù)類型Word時,SWAP指令交換輸入IN的高、低字節(jié)后,保存到OUT指定的地址。IN和OUT為數(shù)據(jù)類型Dword時,交換4個字節(jié)中數(shù)據(jù)的順序,交換后保存到OUT指定的地址(見圖5-17)。2.SWAP指令
FILL_BLK指令將輸入?yún)?shù)IN設(shè)置的值填充到輸出參數(shù)OUT指定起始地址的目標(biāo)數(shù)據(jù)區(qū)(見圖5-19),IN和OUT必須是D、L(數(shù)據(jù)塊或塊的局部數(shù)據(jù)區(qū))中的數(shù)組元素,IN還可以是常數(shù)。COUNT為填充的數(shù)組元素的個數(shù),數(shù)據(jù)類型為DInt或常數(shù)。
FILL_BLK與UFILL_BLK指令的功能基本上相同,其區(qū)別在于后面的填充操作不會被其他操作系統(tǒng)的任務(wù)打斷。執(zhí)行該指令時,CPU的報警響應(yīng)時間將會增大。
值得注意的是指令UFILL_BLK的起始地址DB3.DBW40中的40是數(shù)據(jù)塊中字節(jié)的編號,而輸入?yún)?shù)COUNT是以字為單位的數(shù)組元素的個數(shù)。指令FILL_BLK己占用了40B即20個字)的數(shù)據(jù),4.FILL_BLK與UFILL_BLK指令
因此UFILL_BLK指令的輸出OUT指令的地址區(qū)從DBW10開始。圖5-19數(shù)據(jù)填充指令Uninterruptible(中文:不可中斷的)。
圖5-20中的MOVE_BLK指令用于將數(shù)據(jù)塊DB3中的數(shù)組Source的0號元素開始的20個Int元素的值,復(fù)制給數(shù)據(jù)塊DB4的數(shù)組Distin的0號元素開始的20個元素。COUNT為要傳送的數(shù)組元素的個數(shù),復(fù)制操作按地址增大的方向進行。5.MOVE_BLK與UMOVE_BLK指令圖5-20數(shù)據(jù)塊傳送指令
將圖5-19和圖5-20中的程序下載到CPU,切換到RUN模式后,雙擊打開指令樹中的DB3和DB4。單擊工具欄上的按鈕,啟動擴展模式,顯示各數(shù)組元素。點擊按鈕,啟動監(jiān)視,“監(jiān)視值”列是CPU中的變量值。因為沒有設(shè)置保持(Retain)功能,數(shù)組元素的初始值均為0,此時DB3和DB4的各數(shù)組元索的值均為0。接通I0.4的常開觸點,F(xiàn)ILL_BLK與UFILL_BLK指令被執(zhí)行,DB3中的數(shù)組元素Source[0]~Source[19]被填充數(shù)據(jù)3527,Source[20]~Source[39]被填充數(shù)據(jù)32153,如圖5-21所示。6.塊填充與塊傳送指令的實驗5.2.5移位與循環(huán)移位指令1.移位指令2.循環(huán)移位指令3.使用循環(huán)移位指令的彩燈控制器
移位指令SHR和SHL將輸入?yún)?shù)IN指定的存儲單元的整個內(nèi)容逐位右移或左移若干位,移位的位數(shù)用輸入?yún)?shù)N來定義,移位的結(jié)果保存在輸出參數(shù)OUT指定的地址。
無符號數(shù)移位和有符號數(shù)左移后空出來的位用0填充。有符號數(shù)右移后空出來的位用符號位(原來的最高位)填充,正數(shù)的符號位為0.負數(shù)的符號位為1。
如果移位后的數(shù)據(jù)要送回原地址,應(yīng)將圖5-22中I0.5的常開觸點改為I0.5的上升沿檢測觸點(P觸點),否則在I0.5為1的每個掃描周期都要移位一次。1.移位指令
右移n位相當(dāng)于除以,例如將十進制數(shù)-200對應(yīng)的二進制數(shù)2#1111111100111000右移2位(見圖5-22和圖5-23),相當(dāng)于除以4,右移后得到的二進制數(shù)2#1111111111001110對應(yīng)于十進制數(shù)-50。
左移n位相當(dāng)于乘以,例如將16#20左移2位,相當(dāng)于乘以4,左移后得到的十六進制數(shù)為16#80(見圖5-22)。注意:PLC的負數(shù)是由該數(shù)的正數(shù)的二進制每一位取反以后再加1,所得到的二進制數(shù)就是負數(shù)。十進制
8(1000)右移
1位→0100(十進制
4),即
8/2=4。十進制
12(1100)右移
1位→0110(十進制
6),即
12/2=6。圖5-22移位與循環(huán)指令圖5-23數(shù)據(jù)的右移
循環(huán)移位指令ROR和ROL將輸入?yún)?shù)IN指定的存儲單元的整個內(nèi)容逐位循環(huán)右移或循環(huán)左移若干位,即移出來的位又送回存儲單元另一端空出來的位,原始的位不會丟失。移位的結(jié)果保存在輸出參數(shù)OUT指定的地址。N為0時不會移位,但是IN指定的輸入值復(fù)制給OUT指定的地址。移位位數(shù)N可以大于被移位存儲單元的位數(shù),執(zhí)行指令后,ENO總
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年唐縣事業(yè)單位考試真題
- 碎片機安全操作規(guī)程培訓(xùn)課件
- 規(guī)劃院安全生產(chǎn)責(zé)任制度范例
- 硫酸罐泄露安全知識培訓(xùn)
- 校長春季開學(xué)典禮講話稿范文
- 硫化鈉安全培訓(xùn)課件
- 硫化氫安全作業(yè)培訓(xùn)課件
- 硝酸胍車間安全培訓(xùn)課件
- 高校畢業(yè)生求職面試技巧專題講座
- 企業(yè)應(yīng)收賬款管理流程優(yōu)化及風(fēng)險防控
- 廣東江南理工高級技工學(xué)校
- 斜弱視眼科學(xué)
- 電商平臺需求規(guī)格說明書-通用版本
- 眼底熒光造影護理配合
- 2023年電大會計本人力資源管理復(fù)習(xí)資料
- GB/T 25146-2010工業(yè)設(shè)備化學(xué)清洗質(zhì)量驗收規(guī)范
- 相關(guān)控規(guī)-申花單元
- 90萬噸煤礦人員配備
- 安川伺服說明書
- 酒精度檢測原始記錄
- 中國私募基金募集與運營法律實務(wù)指南(私募股權(quán)卷)
評論
0/150
提交評論