導讀: 西門子S7-200smart V2.8軟件更新以后多了很多的功能,需要CPU固件升級到V2.8才可以使用,這篇文章接著介紹西門子S7-200smart V2.8數學運算的新指令,西門子的S7-200smart V2.8新指令介紹分為上、中、下三篇,想了解更多內容可以關注“電工小青年”。一、數學運算指令1.取Zui大值或Zui小值指令如圖1所示,“取Zui大值或Zui小值”指令比較可用輸入的值,然后將Zui小值和Zui大值的值及索引寫入 MinValue, MinValueIndex, MaxValue 和 MaxValueIndex 的輸出。如果數組中有多個Zui小值或Zui大值,則會輸出第一個Zui小值或Zui大值的索引號,數組的索引從 0 開始。這四個指令引腳功能都是一樣的,除了部分數據類型不一樣,把鼠標放到指令處停頓2s左右,既可以看到對應的引腳的數據類型。圖1 這里以MIN_MAX_B指令為例:取源 6 字節地址序列(VB0 到 VB5)中的 MinValue、MinValueIndex、MaxValue 和 MaxValueIndex,并將其寫入到目標字地址序列(VB100 到 VB103)。數據值123456源數據地址VB0VB1VB2VB3VB4VB5數組索引012345表1PLC RUN模式,則執行 MIN_MAX_I 獲取 MinValue、MinValueIndex、MaxValue 和 MaxValueIndex,并將其寫入到目標地址目標數據值1065目標地址Vb100Vw101Vb103Vw105表2執行結果如圖2所示,其他的指令都是一樣的原理,引腳數據類型不一致。圖22.取隨機數指令如圖3所示,隨機指令向 OUT 輸出生成所設定范圍內的一個隨機值。取 lowerBound 和 Upper Bound 之間的兩個封閉區間間的隨機數,執行 RAND_R 以獲取源數據值中的隨機值,并將其寫入到OUT目標地址。圖3測試如視頻1所示,對vb0—vb9賦值1-10的數值,M0.0為1時,隨機輸出1-10范圍內任意數值到VB10中。視頻13.取平均值指令如圖4所示,取平均值指令計算從StartAddr引腳地址開始,數據長度位Len引腳地址的數組,求和并輸出平均值到OUT引腳地址。例如:從VB0開始的10個數據,求和輸出到VB500中,其他幾個指令都是一樣的,不同的指令是數據類型不一樣,使用過程中需要特別注意你需要進行運算的數據類型。指令數據類型如下:AVG_B是Byte的數據類型,AVG_W是Int的數據類型,AVG_DI是Dint的數據類型,AVG_R是Real的數據類型。如果不太清楚指令的數據類型,可以把鼠標放在指令處不動2s即可看到指令對應引腳的數據類型。圖4測試如圖5所示,在狀態圖表中分別對AVG_B指令StartAddr引腳地址VB0開始10個字節(VB0—VB9)進行賦值,并把平均值結果輸出到VB500。 圖54.數組排序指令如圖6所示,數組排序指令表示的是從StartAddr引腳地址開始,數據長度位Len引腳地址的數組,并根據Mode引腳的數值進行排序輸出到Out引腳地址,當Mode的值為0時按升序排序,值為1時按降序排序。指令數據類型如下:SORT_B是Byte的數據類型,SORT _W是Int的數據類型,SORT _DI是Dint的數據類型,SORT _R是Real的數據類型。如果不太清楚指令的數據類型,可以把鼠標放在指令處不動2s即可看到指令對應引腳的數據類型。圖6測試如圖7所示,在狀態圖表中分別對SORT_B指令StartAddr引腳地址VB0開始5個字節(VB0—VB4)進行賦值,并根據Mode引腳的地址數值為0時按升序排序,把結果輸出到VB50開始的5個字節(VB50—VB54)存放。當Mode引腳的地址數值為1時按降序排序,如圖如8所示。 圖7圖85.求juedui值指令如圖9所示,求juedui值指令表示對輸入 IN 處指定的值取juedui值,并將結果輸出到OUT地址中。指令數據類型如下:ABS_W是Int的數據類型,ABS _DI是Dint的數據類型,ABS _R是Real的數據類型。如果不太清楚指令的數據類型,可以把鼠標放在指令處不動2s即可看到指令對應引腳的數據類型。 圖9測試如圖10所示,對輸入 IN 處指定的值取juedui值,并將結果輸出到OUT地址中。圖106.反三角函數正弦 (SIN)、余弦 (COS) 和正切 (TAN) 指令計算角度值(弧度為單位) IN 的三角函數,并在 OUT 中輸出結果,這幾個三角函數指令在這里不做介紹。要將角度從度轉換為弧度:使用 MUL_R (*R) 指令將以度為單位的角度乘以 1.745329E-2(約為 π/180),浮點數為745329。指令如圖11所示,反正弦 (ARC_SIN)、反余弦 (ARC_COS) 和反正切 (ARC_TAN) 指令是對正弦 (SIN)、余弦 (COS) 和正切 (TAN) 指令輸出的結果的進行反三角函數,并在 OUT 中輸出結果。反正弦 (ARC_SIN)、反余弦 (ARC_COS) 和反正切 (ARC_TAN) 指令的IN引腳和OUT引腳都是Real的數據類型。 圖11測試如圖12所示,在狀態圖表中對VD0復制30.0,程序段1中,通過MUL_R指令乘以745329,把30°轉換成弧度,使用正弦 (SIN)指令求出弧度的正弦指令輸出結果,使用反正弦 (ARC_SIN)指令把正弦指令輸出結果轉換程弧度,然后使用DIV_R指令除以745329,把弧度轉換成角度值。反余弦 (ARC_COS) 和反正切 (ARC_TAN) 指令也是一樣的計算過程,這里不做過多的介紹。圖127.低通濾波器指令如圖13所示,可使用“低通濾波器”指令來衰減高頻分量,例如信號中的噪聲。使用以下公式計算指令的結果:y(n) = Coef*y(n-1) + (1- Coef)* x(n);y(n) 為當前濾波器輸出,Coef 為濾波器系數,y(n-1) 為上一個濾波器輸出,x(n) 為當前采樣值。可指定以下濾波器參數:Coef:濾波器系數,如果作為命令中的比率參數的濾波器系數被設為 0,則不執行濾波。 N:目前,S7-200 SMART 支持 64 個一階低通濾波器,因此在編程時必須指定使用哪個濾波器。相同編號的低通濾波器將使用歷史濾波值和當前采樣值一起計算,得到當前濾波值。圖13測試如圖14所示和圖15所示,圖14為濾波前的波形圖,圖15為使用低通濾波器指令后的波形圖。8.總結以上就是整個西門子S7-200smart v2.8新增的數學運算指令內容,文章內容如有錯誤或者有不懂的問題請聯系我們。由于新功能需要軟件和硬件都需要V2.8的版本,小編準備了軟件和固件升級包等鏈接,復制下方鏈接即可進入下載界面
- 西門子S7-200smart V2.8新指令介紹(下) 2024-11-24
- 西門子編碼器怎么實現定位功能,用PLC控制如何設計梯形圖 2024-11-24
- 西門子PLC程序的編輯與注釋怎么操作?實用干貨來了! 2024-11-24
- 西門子PLC命名規則:如何書寫標簽 2024-11-24
- 如何使用西門子TIA Portal Test Suite來進行標準化代碼檢查 2024-11-24
- 西門子斷路器允許水平(橫向)安裝嗎? 2024-11-24
- 西門子S7-1200 PLC的計數器功能及其應用,進階必學 ! 2024-11-24
- 如何用西門子S7-1200搭建一個完整AGV控制系統! 2024-11-24
- 西門子SCL語言FOR指令進階應用:位置批量賦值 2024-11-24
- 【西門子】PLC全套資料,非常實用! 2024-11-24
- 西門子電機應該配多少個IO點 2024-11-24
- 大型西門子PLC標準程序架構(大眾VASS_05標準) 2024-11-24
- 什么是過載?什么是過流? 2024-11-24
- 西門子S7-1200PLC如何設置智能IO并且導出GSD文件? 2024-11-24
- 一個連接西門子PLC設備的.net庫,搞自動化的有福了! 2024-11-24
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415