三菱FX PLC學習之數值運算指令(下)

2020-12-12 技成培訓網

在上篇文章中,我們知道了如何在PLC中區分數值的正負,並知道了什麼是整點數和浮點數。那麼,這次我們接著學習PLC的各種數值運算指令。#三菱PLC入門#

在上篇文章就提過,所謂數值運算,就是通過加減乘除來實現數值的變換。然,在三菱FX PLC 2N中,這些個加減乘除具體又是怎樣實現的呢?

一、BIN數的四則運算指令

BIN數,即帶符號的二進位整數,它的四則運算指令包括加、減、乘、除指令。

(1)ADD(加)指令、SUB(減)指令

從編程手冊的截圖中,可以看到,ADD指令和SUB指令都有脈衝執行型和連續執行型兩種,且都可用於16位和32位。當然,它們的適用軟元件為字軟元件。

加、減指令都有兩個源操作數(S1·)、(S2·)和一個目的操作數(D·),它們在梯形圖中的形式如下圖所示。

在ADD指令中,其代表的含義為(S1)+(S2)=(D),將S1中的數值加上S2中的數值,然後把和存放到D中。

同理,在SUB指令中,其代表的含義為(S1)-(S2)=(D),將S1中的數值減去S2中的數值,然後把差存放到D中。

看過上篇文章的都知道,BIN數是帶有符號的,所以它們在運算的過程中,也要考慮到符號的影響。加、減指令在執行後要影響到三個標誌位,如下圖所示。

M8022這個進位標誌位,看過我系列文章的人可能還有點印象,其實我在寫到移位指令就提到過它。不記得的可以回顧一下移位指令的內容。

小學生都知道,兩個數相加減會涉及到借位和進位的問題,例如十進位數運算7+8=15,其中的1就是進位,15-7=8中的1被借位。

同理,PLC的BIN數四則運算也要考慮進位和借位問題,當兩個數相加,它們的和大於(D)所能保存的最大值後,M8022狀態為ON。

同理,兩個數相減,它們的差小於(D)所能保存的最小值後,M8021狀態為ON。

所謂(D)所能保存的最大值或最小值,是指這些參與運算的字軟元件所能保存的數值限值,包括符號位在內。

例如上圖的例子,(D0)=K32767,執行指令ADD D0 K1 D10後,和為K32768,一個16位的字元件,所能保存的最大正整數為K32767(包括符號位),所以D10超出最大值,此時進位標誌位M8022為ON。

另外,從圖中可以看到,D10的值變為0,所以此時M8020也為ON。同理,減法的溢出也是大同小異,我在此就不再舉例,大家感興趣的,可以用軟體編程驗算一下結果。

ADD指令和SUB指令比較簡單,實際運用不用我多說大家也知道,反正哪裡需要加減,哪裡就會出現它們。

但要注意的一點是,PLC每掃描一個周期,這些指令就執行一次,此時,重複執行加、減運算可能不是我們需要的,所以應該選擇脈衝執行型指令ADDP、SUBP或邊沿觸髮型驅動條件。

(2)MUL(乘)指令、DIV(除)指令

從編程手冊的截圖中,可以看到,MUL指令和DIV指令也有脈衝執行型和連續執行型兩種,且都可用於16位和32位,但終址D只有在16位運算時才可以用V、Z字元件。

和加、減指令一樣,乘、除指令都有兩個源操作數(S1·)、(S2·)和一個目的操作數(D·),它們在梯形圖中的形式如下圖所示。不一樣的地方在於乘法指令和除法指令的目的操作數,在用於16位運算時目的操作數佔兩個字元件D、D+1,用於32位運算時目的操作數佔四個字元件D、D+1、D+2、D+3。

這是很顯然的,因為乘法所得的積往往比因數大很多,若此時僅用一個字元件(16位運算時)保存結果是不夠的。

另外,除法運算在無法整除的時候,就會有餘數,所以就要用多一個字元件來保存餘數(16位運算時)。

在MUL指令中,這些操作數代表的含義為(S1)×(S2)=(D+1,D),將S1中的數值乘以S2中的數值,然後把積存放到D+1,D兩個連續字元件中。

同理,在DIV指令中,其代表的含義為(S1)÷(S2)=(D)…(D+1),將S1中的數值除以S2中的數值,然後把商存放到D中,把餘數存放到D+1中。

其梯形圖形式如下圖所示,16位和32位所佔用的字元件有所不同。

MUL指令和DIV指令也比較簡單,實際運用也不用我多說。和加、減指令一樣,PLC每掃描一個周期,這些指令就執行一次,此時,重複執行乘、除運算可能不是我們需要的,所以應該選擇脈衝執行型指令MULP、DIVP或邊沿觸髮型驅動條件。

除法運算的除數是不能為零的,PLC中也一樣,若除數為0,錯誤標誌位M8067=ON。

知道了BIN數的四則運算指令後,我們接著來看加1、減1指令。

二、加1指令INC和減1指令DEC

加1、減1,顧名思義,是指該指令執行一次,數值加1或減1,。INC指令和DEC指令只有目的操作數(D·),其梯形圖形式如下圖所示。

INC指令和DEC指令在執行的過程中不會影響到標誌位M8020、M8021、M8022。當採用連續執行型時,顯然,D會不斷地進行加1或減1操作,此時若超出其限值會怎樣呢?其實,INC指令和DEC指令是一個單位累加(累減)環形計數器,如下圖所示。

在執行INC指令時,若當前值為-1,加1 後其值就變為0,再加1就變為1;若當前值為32767(H7FFF),加1後變為-32768(H8000)。

同理,在執行DEC指令時,若當前值為1,減1 後其值就變為0,再減1就變為-1;若當前值為-32768(H8000),減1後變為32767(H7FFF)。

談及INC指令,我就會想到一道題:求1+2+3+……+99的和。這道題用INC指令顯然可以很簡單的實現計算,如下圖所示。這是我隨手編的一段程序,結合INC指令和ADD指令就可以算出1+2+3+……+99=4950。當然,這只是隨手編的,大家也可以嘗試一下其他方法。

INC指令和DEC指令

經常和變址尋址配合應用在累加或累減及檢索等程序中。例如把D0~的D100的數值相加等,在這裡我就不編程序啦。

知道了四則運算指令和加1、減1指令後,我們繼續來學習一個比較繞的指令:求補碼指令NEG。

三、求補碼指令NEG

NEG指令和INC指令、DEC指令一樣,只有一個操作數,驅動條件成立時,將D的數值求補碼,然後將結果送回到D中去。

上篇文章提到,在PLC中,正數(符號位為0)直接用其原碼表示,而(符號位為1)負數就用其補碼表示。

而NEG指令是直接對數值進行求反加1(包括符號位),不管當前值是正數還是負數,所以,其求出來的結果,和定義上的補碼有所出入。

例如-3在寄存器中用補碼表示(HFFFD),用NEG指令求補後,結果為+3(H0003);再如+6在寄存器中用原碼表示(H0006),用NEG指令求補後,結果為-6的補碼(HFFFA)。

顯然,NEG指令其實是求相反數的指令,當然,這是基於負數本就是用補碼表示的前提下的。

學到這裡,已經有7個指令了,為了不那麼累,這次的分享學習就先到這裡吧!

註:本文章內容都是基於三菱FX PLC 2N所寫

選自《三菱FX系列PLC功能指令詳解》第五章第29~38課時

技成培訓網原創,作者:楊思慧,未經授權不得轉載,違者必究~

相關焦點

  • 三菱PLC入門的必備基礎知識
    對於想學PLC,但不知道學哪種plc的朋友,您可以考慮三菱plc,三菱plc是日系品牌,編程直觀易懂,學習起來會比較輕鬆。三菱的指令豐富,有專用的定位指令,控制伺服和步進容易實現,要實現某些複雜的動作控制也是三菱的強項。
  • 三菱FX PLC學習步進指令與其梯形圖
    上篇文章講述了什麼是順序功能圖(SFC),這次我們接著學習與其相關的步進指令和步進梯形圖吧!所謂「步進」,顧名思義,其實就是狀態步的前進,即狀態步的順序執行,一步一步地往下走,直到整個順序控制程序執行完畢(個人理解,但我覺得非常有道理哈哈)。
  • S7-1200 PLC數學函數指令之基本數學運算(下)
    在上一篇文章介紹了數學函數指令的基本的數學運算指令中的加ADD、減SUB、乘MUL、除DIV、取餘數MOD、計算指令CALCULATE,這篇文章就介紹一下剩餘的數學運算指令吧,包括取補碼NEG、遞增INC、遞減DEC、取最大最小值和絕對值ABS指令。
  • 三菱FX PLC入門之這可有可無的單詞
    《三菱FX PLC編程與應用入門》第四章的內容很多,我在寫這篇文章的時候其實也還沒學完第四章。不過,第四章的內容大致可以分為三部分:基本指令系統、編程軟體基本操作和常用程序。第一部分是基本指令系統,也就是我今天要分享的內容。為什麼說基本指令系統是PLC的單詞,我們在學習英語的時候詞彙量是必不可少的,不懂單詞就看不懂英文,同樣的,PLC的基本指令就像是PLC語句表程序中一個個的單詞,看不懂單詞就看不懂語句表。
  • 我的三菱FX PLC入門之這可有可無的單詞
    《三菱FX PLC編程與應用入門》第四章的內容很多,我在寫這篇文章的時候其實也還沒學完第四章。不過,第四章的內容大致可以分為三部分:基本指令系統、編程軟體基本操作和常用程序。
  • 同是PLC中國的與外國的有何不同
    在可控範圍內自主發出指令讓設備做出正確的調整。世界上的PLC品牌怎麼樣也是正因為工業建設多方面的需求,市面上出現了眾多plc品牌,比如西門子、三菱、施耐德等大家所熟知的大眾品牌。還有一些國內品牌如,匯川科技、北京碩人、威海恆日等一些小型品牌,相對來說就沒有那麼知名了。
  • 三菱FX PLC學習之順序功能圖(SFC)
    在SFC中,下一個狀態被激活時,前一個狀態必須要關閉。例如下圖18-3所示,當S20狀態步被激活,裡面的指令均得到執行,此時初始步S0已被關閉。S0~S9為初始狀態專用,S10~S19為IST指令專用,S20~S899為一般狀態通用,所以一般狀態使用的狀態繼電器最小編號為20。
  • PLC指令入門|三菱FX5U PLC通用FB功能塊指令
    熟悉三菱GX軟體的朋友,應該知道在GX軟體中有個部件選擇窗口,在這個窗口中我們可以看到通用函數/FB,其中就包括了雙穩態功能塊、邊緣檢測功能塊、定時器功能塊和計數器功能塊,那麼今天就給大家介紹一下通用FB功能塊指令的內容。
  • 三菱FX5U如何控制伺服精確定位
    現在手上有一個三菱PLC fx5u和一臺三菱伺服MR-JE-A,以及導程為2mm的導軌,那如何精確控制伺服定位5mm。設置伺服參數1.1打開三菱伺服配置軟體,設置伺服為位置控制模式位置控制模式1.2設置位置控制參數
  • 三菱PLC通過gxworks2創建順序功能圖sfc,簡單7步就可實現!
    很多人對三菱plc編程是恨之切,愛之深。縱使它有諸多缺陷,也阻擋不了大家對三菱PLC的一腔熱情。在講利用三菱PLC編程軟體gxworks2創建簡單的順序功能圖sfc之前,先教大家如何下載和安裝gxworks2程序,這樣以來就避免了一些人因為找不到下載的渠道或者無法安裝而手足無措。
  • plc整型數比較指令的用法
    打開APP plc整型數比較指令的用法 電工天下 發表於 2020-04-05 17:14:00   1、指令符號   plc整型數比較指令符號      表1,為整型數比較指令說明表。
  • 三菱PLC乾貨分享|三菱PLC與觸控螢幕常見問題
    答:這種一般是電腦系統內存條不過造成的,可以更換大的內存條試試或者重裝下電腦的系統也可能解決這個問題。 12、三菱PLC ZRN是什麼指令? 答:ZAN是原點回歸指令? 13、FX系列PLC的內部16位加計數器的設定值範圍是多少?
  • 什麼是三菱FX 5U PLC的中斷?
    數值越小,中斷優先度越高。執行條件成立的程序的中斷優先度高於執行中的程序的中斷優先度時,按照中斷優先度執行程序。中斷優先度相同或較低時,在執行中的程序結束之前將處於等待狀態。而中斷優先順序是指發生相同中斷優先度的中斷源時的執行順序。
  • 三菱Q系列PLC,淺淡ST語言編程的指令格式
    程序指令是組成程序本體的一個個小「細胞」,掌握指令的構成,是編程的基本要求。指令名、數據類型、變量是ST語言編程指令的三要素。參閱:《三菱Q系列PLC,數組與變址寄存器的功能類似,但數組比它強大》ST語言的格式:BMOV( ?BOOL_EN? , ?ANY_SIMPLE_s? , ?ANY16_n? , ?ANY_SIMPLE_d?
  • 三菱FX5U PLC中斷的使用和案例!
    #三菱第三步:編寫程序二、高速比較一致中斷高速比較一致中斷是屬於軟體中斷,必須與高速計數器指令DHSCS一起使用。當高速計數器的當前值與設定值相同時,執行指定的中斷程序。高速比較一致中斷常用於高速的定位控制、速度測量等。
  • 三菱FX PLC入門之常用基本編程環節
    學習PLC,主要學習的就是它的編程,一說到編程我就頭皮發麻,總覺得我學了編程後離脫髮、禿頭也就不遠了。在學習PLC之前,我以為編程都是打代碼,後來才發現,PLC的編程基本是梯形圖,這讓我大鬆一口氣,好歹不用面對那些一串一串的英文字符,謝天謝地。
  • 三菱FX PLC入門,這磨人的PLC語法你學會了嗎?
    梯形圖的學習對於熟悉繼電器控制想原理圖的人來說是容易接受的,當然這其中不包括我,梯形圖於我而言,就如嗷嗷待哺的嬰兒去學說話一樣,從零開始。所以李金城老師所說的「一旦入了門,必須完全離開繼電控制電路圖的思維方式」與我完全沒有關係。
  • 三菱PLC的網絡結構分幾層走的
    三菱PLC的網絡結構分幾層走得,當我們剛開始做PLC時候先了解PLC網絡結構再去了解他的功能與作用以及如何使用情況。下面小編為大家分享三菱PLC的網絡結構分幾層走得!三菱公司PLC網絡繼承了傳統使用的MELSEC網絡,並使其在性能、功能、使用簡便等方面更勝一籌。Q系列PLC提供層次清晰的三層網絡,針對各種用途提供最合適的網絡產品.
  • 「三菱PLC案例」定期鎖機程序控制,巧妙解除密碼技巧
    想法如下,時間到了2021年5月份,就進行鎖機,啟動按鈕就啟動不了M0了,除非通過以下方式解鎖,因為考慮到設備沒有觸控螢幕控制,就做了一個按鈕解鎖的控制,重新開機後,按下啟動按鈕10S到12S之間,再按下停止按鈕8S到10S這個範圍,最後再按兩下啟動按鈕,密碼就解除【設備硬體】
  • 如何系統地從零開始學習PLC
    如何系統的從零開始學習plc,我以自身的經歷來說明下,對於剛畢業的同學來說,基礎或者是理論都是有的,缺乏的就是實踐,剛開始工作公司肯定沒有大項目、新項目給你做,一般是拿以前的舊機器進行改造練手,一定要抓住這個機會,這個階段沒有什麼壓力,這裡你可以隨意拆下每個電氣元件單獨進行學習如何控制。