之前的文章中我們介紹過FB塊的新建和使用,還介紹了FB塊指令像雙穩态功能塊、定時器功能塊和計數器功能塊等,除此之外,還有FUN函數塊,那麼這一篇文章就給大家介紹一下我們三菱FX5U PLC都有哪些FUN函數吧。
其實主要分為幾個類,包括位布爾功能、類型轉化、算術運算、比較、時間數據類型、位移位等,還有其他通用函數也可以看下手冊說明哦,這些FUN函數其實大部分都有對應的一些梯形圖指令,大家可以對比着來學習哦。下面我們就按各個分類來介紹一下吧。
一、位布爾功能函數位類型布爾類的函數包括:邏輯與、邏輯或、邏輯異或和邏輯非。
邏輯與函數塊是對兩個輸入數值的對應位執行“與”運算操作。運算方法:兩個位同為1是結果為1,其餘為0。邏輯或函數塊是對兩個輸入數值的對應位執行“或”運算操作。
運算方法:兩個位中隻要有一個位為1,其結果就為1。
邏輯異或:指令對兩個輸入數值的對應位執行“異或”運算操作。
運算方法:同為0,異為1。邏輯非:對輸入的操作數的位進行取反操作。
運算方法:0變為1,1變為0。下圖以邏輯與函數塊為例,看一下程序和其數據的位處理情況。
對于邏輯與,利用其有0出0的功能可以進行複位操作;對于邏輯或,利用其有1出1的功能可以進行置位操作。我們以一個簡單的例子來看一下位類型布爾功能函數的功能。
【案例】求任意兩數相減所得的絕對值。
類型轉換功能是對數據類型進行轉換,我們常見的數據類型包括BOOL型、WORD型、DWORD型、INT型、DINT型、TIME型、STRING型、BCD型、REAL型等。所以說類型轉換功能是指這些數據類型之間的轉換的FUN函數。跟西門子中的轉換指令是類似的。
比如說我們要進行浮點數運算,而輸入進來的數據D0是整數類型的,那麼我們就要把整數轉換成雙整數,然後再轉換成浮點數,這時我們就可以用上INT_TO_DINT和DINT_TO_REAL的FUN函數進行轉換,轉換之後存儲到D4中,那麼D4就可以進行浮點數運算。
此外,在類型轉換功能中還有幾個FUN函數,叫做字标簽的指定位讀取/寫入/複制,我們以下圖的程序直接講解,GET_BIT_OF_INT用于讀取字标簽的指定位,輸出(s)的第(n)位,也就是X0接通時,将1寫到D0的bit5位。
SET_BIT_OF_INT用于對字标簽的指定位進行寫入,将(s)中指定的BOOL值寫入到(d)的第(n)位中,也就是将D0中的bit5位的值1寫入到輸出M0中,所以M0輸出為ON。CPY_BIT_OF_INT用于将字标簽的指定位複制到其它字标簽的指定位,将(s)中指定的字第(n1)位的值複制到(d)的第(n2)位中,也就是将D2中指定的bit5位的值複制到D4的bit10位中。
算術運算功能函數包括加ADD、減SUB、乘MUL、除DIV運算,還有求餘數MOD、求幂EXPT、代入MOVE等功能。
加法運算ADD:輸出(s1) (s2) … (s28)值之和。
乘法運算MUL:輸出(s1)×(s2)×…×(s28)值之乘積。
減法運算SUB:輸出(s1)-(s2)值之差。
除法運算DIV:輸出(s1)÷(s2)值之商,餘數不輸出。
求餘數MOD:輸出(s1)÷(s2)值之餘數,商不輸出。
求幂EXPT:将(s1)中輸入的REAL型數據以(s2)中指定的INT型/DINT型/REAL型進行幂運算,從(d)輸出運算結果。比如說把IN1輸入定義一個基數的标簽名,IN2輸入定義一個指數的标簽名,基數是單精度實數類型的,指數設置成字類型的,輸出的就是進行幂運算的結果,也是單精度實數的。
代入MOVE:相當于梯形圖指令中的MOV指令,區别在于它是通過指令MOV/DMOV/DEMOV決定數據類型的,而MOVE可以指定BOOL/INT/DINT/WORD/DWORD/REAL/STRING/TIME/結構體等類型,注意MOVE隻可以指定相同的數據類型哦。
下面我們就以一個運算的案例講解下算術運算函數的使用。
【案例】根據如下算法:y=[(a b)×(a b)]÷(a×b),編寫其運算程序。
這篇文章就先介紹位布爾功能、類型轉換、算術運算函數,還有比較、時間數據類型、位移位等其他通用函數就在下一篇文章繼續介紹吧,大家繼續關注我們哦~
技成培訓網原創,作者:蔡慧荥,未經授權不得轉載,違者必究~
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!