欧美午夜欧美,台湾成人av,久久av一区,最近看过的日韩成人

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設計 | 電子開發(fā)網(wǎng)Rss 2.0 會員中心 會員注冊
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> 梯形圖實例 >> 正文

西門子200SMART PLC編程通過指針輕松實現(xiàn)多個數(shù)據(jù)排列

作者:佚名    文章來源:網(wǎng)絡整理    點擊數(shù):    更新時間:2025/5/4

在PLC編程時,經(jīng)常會使用多個數(shù)據(jù),在這些數(shù)據(jù)中找到想要的數(shù)據(jù)就變得非常困難了。就像我們在茫茫人海中要尋找那個“她”,該去哪尋找?那有沒有簡單的方法去實現(xiàn)這個復雜的任務呢?那這時候,我們就要考慮使用間接尋址的方式了,也就是我們通常所說的指針。話不多說我來一個示例吧!

西門子PLC的FOR   NEXT循環(huán)用法:

西門子PLC S7-200和200SMART 循環(huán)跳轉(zhuǎn)指令  FOR-NEXT循環(huán),JMP和LBL
www.simpaso.com/Article/tixingtu/9023.html

西門子200SMART PLC關于FOR-NEXT指令使用技巧 循環(huán)指令梯形圖實例
www.simpaso.com/Article/tixingtu/8733.html


比如對下面這個序列進行從小到大排序:90 , 21 , 132 , -58 , 34

第一輪:1) 90 和 21比,90>21,則它們互換位置:21,90,132,-58,34

2) 90 和 132 比,90<132,則不用交換位置:21,90,132,-58,343)132 和 –58 比,132>–58,則它們互換位置:21,90,-58,132,34

4)132 和 34 比,132>34,則它們互換位置:21,90,-58,34,132

到此第一輪就比較完了。第一輪的結(jié)果是找到了序列中最大的那個數(shù),并浮到了最右邊。比較時,每輪中第 n 次比較是新序列中第 n 個元素和第 n+1 個元素的比較(假如 n 從 1 開始)。


第二輪:

1) 21 和 90 比,21<90,則不用交換位置:21,90,-58,34,132
2) 90 和 –58 比,90>–58,則它們互換位置:21,-58,90,34,132

3) 90 和 34 比,90>34,則它們互換位置:21,-58,34,90,132

到此第二輪就比較完了。第二輪的結(jié)果是找到了序列中第二大的那個數(shù),并浮到了最右邊第二個位置。


第三輪:

1) 21 和 –58 比,21>–58,則它們互換位置:-58,21,34,90,132

2) 21 和 34 比,21<34,則不用交換位置:-58,21,34,90,132到此第三輪就比較完了。第三輪的結(jié)果是找到了序列中第三大的那個數(shù),并浮到了最右邊第三個位置。


第四輪:

1) –58 和 21 比,–58<21,則不用交換位置。
至此,整個序列排序完畢。從小到大的序列就是“–58 21 34 90 132”。從這個例子中還可以總結(jié)出,如果有 n 個數(shù)據(jù),那么只需要比較 n–1 輪。而且除了第一輪之外,每輪都不用全部比較。因為經(jīng)過前面輪次的比較,已經(jīng)比較過的輪次已經(jīng)找到該輪次中最大的數(shù)并浮到右邊了,所以右邊的數(shù)不用比較也知道是大的。


至此,整個順序的排列我們就做完了,這種排序方法我們稱為冒泡排序法。這種方法的原理是; 從左到右,相鄰元素進行比較。每次比較一輪,就會找到序列中最大的一個或最小的一個。這個數(shù)就會從序列的最右邊冒出來。
以從小到大排序為例,第一輪比較后,所有數(shù)中最大的那個數(shù)就會浮到最右邊;第二輪比較后,所有數(shù)中第二大的那個數(shù)就會浮到倒數(shù)第二個位置……就這樣一輪一輪地比較,最后實現(xiàn)從小到大排序。


接下來,我們就用程序表達出這種冒泡法的思維,其中五個數(shù)據(jù)進行四輪排序,需要使用一個FOR循環(huán)語句,而每一輪的排序需要進行不同次數(shù)的比較,所以也需要使用FOR循環(huán)語句。而這兩個FOR語句是嵌套關系。


現(xiàn)在往VW0,VW2,VW4,VW6,VW8這5個地址中存放5個數(shù)據(jù)90 , 21 , 132 , -58 , 34,然后進行從小到大是順序排列


子程序(SBR_0)

 

 

 

 

 

 


主程序(MAIN)

 

當主程序M0.0接通,子程序程序解讀:

程序段1:

VW20為要循環(huán)的輪次,5個數(shù)據(jù),4輪即可

VW22則為每輪需要比較的次數(shù)

程序段2:

使用外循環(huán)FOR,循環(huán)次數(shù)存儲在VW24中,循環(huán)的輪次次數(shù)為4(VW20)

程序段3:

創(chuàng)建指針VD100及查找第一個數(shù)據(jù)

程序段4:

使用內(nèi)循環(huán)FOR,循環(huán)次數(shù)為4。

程序段5:

指針VD100加2存入VD104,則VD104指向VB2的起始地址。

程序段6:

判斷*VD104(VW2)的數(shù)據(jù)與*VD100(VW0)的數(shù)據(jù),當VW2的數(shù)據(jù)小與VW0的數(shù)據(jù)則交換位置。

所以此時的數(shù)據(jù)是21 , 90 , 132 , -58 , 34。

程序段7:

指針VD100加2,指針指向VB2為起始的地址。

程序段9:

總的次數(shù)減1,VW22等于3


接下來,程序跳轉(zhuǎn)到程序段4,循環(huán)次數(shù)為3次,因為前兩個數(shù)據(jù)比較完了,進行后4個數(shù)據(jù)比較只需要比較3次。


程序段5中的VD100在上一個循環(huán)已經(jīng)指向了VB2開始的地址,在這個循環(huán)是加上2則VD104的數(shù)據(jù)指向VB4開始的地址。程序段6中*VD104(VW4)的數(shù)據(jù)與*VD100(VW2)的數(shù)據(jù)進行比較得到依次再循環(huán)。


結(jié)束語:從左到右,相鄰元素進行比較。每次比較一輪,就會找到序列中最大的一個或最小的一個。這個數(shù)就會從序列的最右邊冒出來。整個程序的邏輯是把大的數(shù)據(jù)往后挪,挪完只后即可找到相對較大的數(shù)據(jù)。

Tags:冒泡排序,200SMART,西門子PLC,指針  
責任編輯:admin
相關文章列表
200SMART擴展模塊 數(shù)字量模塊EM DR16,西門子數(shù)字量擴展模塊產(chǎn)品
西門子PLC S7-200 smart如何使用Modbus 485通訊傳輸接收數(shù)據(jù)_200
一張圖就能讀懂S7-200 SMART PLC的位、字節(jié)、字、雙字的數(shù)據(jù)組合
一起學習S7-200Smart控制器的中斷子程序
西門子S7-200 SMART 模擬量概述及自建庫文件,西門子PLC子程序創(chuàng)
西門子S7-200SMART間接尋址讀取配方 子程序調(diào)用方法
用200SMART高速脈沖實現(xiàn)軌跡跟隨運動
西門子PLC編程常用基礎邏輯
一文學會設備運行時間累計程序編寫, 從零基礎到精通,收藏這篇就
S7-1200PLC入門初學,需先熟悉PLC硬件結(jié)構(gòu)!S7-1200PLC硬件結(jié)構(gòu)
TIA Portal博途軟件和S7-1200PLC介紹
PLC實現(xiàn)冒泡排序,三菱PLC冒泡排序
西門子S7-200SMART PLC如何實現(xiàn)星三角降壓啟動多次調(diào)用?子程序編
西門子PLC子程序?qū)嵗琒7-200 SMART PLC帶參數(shù)子程序應用實例
詳解步進電機與PLC的接線,西門子、三菱等PLC接線(總結(jié)篇)PLC和
西門子PLC編程實例  4個基本控制電路設計方法
西門子S7-200SMART PLC彩色燈程序設計_跑馬燈程序 , SHB_L循環(huán)指
S7-200smart 恒溫PID控制_STEP7中PID設置溫度自動控制編程
西門子plc傳送帶操作控制,傳輸帶控制
西門子PLC實現(xiàn)汽車涂裝前處理生產(chǎn)線中的磷化槽液位控制
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網(wǎng)友評論
推薦文章
最新推薦
關于我們 - 聯(lián)系我們 - 廣告服務 - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
主站蜘蛛池模板: 岳西县| 犍为县| 江北区| 惠来县| 昌图县| 仁布县| 普陀区| 翼城县| 油尖旺区| 澄江县| 贡嘎县| 安泽县| 常熟市| 朝阳市| 阆中市| 西安市| 长丰县| 楚雄市| 水城县| 宁化县| 开鲁县| 施甸县| 和田市| 石棉县| 龙胜| 大厂| 吴旗县| 兴仁县| 曲麻莱县| 岫岩| 元朗区| 通河县| 宝兴县| 洱源县| 剑川县| 石景山区| 大庆市| 永川市| 夏河县| 松潘县| 元阳县|