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

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

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

作者:佚名    文章來(lái)源:網(wǎng)絡(luò)整理    點(diǎn)擊數(shù):    更新時(shí)間:2025/5/4

在PLC編程時(shí),經(jīng)常會(huì)使用多個(gè)數(shù)據(jù),在這些數(shù)據(jù)中找到想要的數(shù)據(jù)就變得非常困難了。就像我們?cè)诿CH撕V幸獙ふ夷莻(gè)“她”,該去哪尋找?那有沒(méi)有簡(jiǎn)單的方法去實(shí)現(xiàn)這個(gè)復(fù)雜的任務(wù)呢?那這時(shí)候,我們就要考慮使用間接尋址的方式了,也就是我們通常所說(shuō)的指針。話(huà)不多說(shuō)我來(lái)一個(gè)示例吧!

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

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

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


比如對(duì)下面這個(gè)序列進(jìn)行從小到大排序: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é)果是找到了序列中最大的那個(gè)數(shù),并浮到了最右邊。比較時(shí),每輪中第 n 次比較是新序列中第 n 個(gè)元素和第 n+1 個(gè)元素的比較(假如 n 從 1 開(kāi)始)。


第二輪:

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é)果是找到了序列中第二大的那個(gè)數(shù),并浮到了最右邊第二個(gè)位置。


第三輪:

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

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


第四輪:

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


至此,整個(gè)順序的排列我們就做完了,這種排序方法我們稱(chēng)為冒泡排序法。這種方法的原理是; 從左到右,相鄰元素進(jìn)行比較。每次比較一輪,就會(huì)找到序列中最大的一個(gè)或最小的一個(gè)。這個(gè)數(shù)就會(huì)從序列的最右邊冒出來(lái)。
以從小到大排序?yàn)槔谝惠啽容^后,所有數(shù)中最大的那個(gè)數(shù)就會(huì)浮到最右邊;第二輪比較后,所有數(shù)中第二大的那個(gè)數(shù)就會(huì)浮到倒數(shù)第二個(gè)位置……就這樣一輪一輪地比較,最后實(shí)現(xiàn)從小到大排序。


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


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


子程序(SBR_0)

 

 

 

 

 

 


主程序(MAIN)

 

當(dāng)主程序M0.0接通,子程序程序解讀:

程序段1:

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

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

程序段2:

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

程序段3:

創(chuàng)建指針VD100及查找第一個(gè)數(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ù),當(dāng)VW2的數(shù)據(jù)小與VW0的數(shù)據(jù)則交換位置。

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

程序段7:

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

程序段9:

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


接下來(lái),程序跳轉(zhuǎn)到程序段4,循環(huán)次數(shù)為3次,因?yàn)榍皟蓚(gè)數(shù)據(jù)比較完了,進(jìn)行后4個(gè)數(shù)據(jù)比較只需要比較3次。


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


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

Tags:冒泡排序,200SMART,西門(mén)子PLC,指針  
責(zé)任編輯:admin
相關(guān)文章列表
PLC實(shí)現(xiàn)冒泡排序,三菱PLC冒泡排序
西門(mén)子S7-200SMART PLC如何實(shí)現(xiàn)星三角降壓?jiǎn)?dòng)多次調(diào)用?子程序編
西門(mén)子PLC子程序?qū)嵗琒7-200 SMART PLC帶參數(shù)子程序應(yīng)用實(shí)例
詳解步進(jìn)電機(jī)與PLC的接線(xiàn),西門(mén)子、三菱等PLC接線(xiàn)(總結(jié)篇)PLC和
西門(mén)子PLC編程實(shí)例  4個(gè)基本控制電路設(shè)計(jì)方法
西門(mén)子S7-200SMART PLC彩色燈程序設(shè)計(jì)_跑馬燈程序 , SHB_L循環(huán)指
S7-200smart 恒溫PID控制_STEP7中PID設(shè)置溫度自動(dòng)控制編程
西門(mén)子plc傳送帶操作控制,傳輸帶控制
西門(mén)子PLC實(shí)現(xiàn)汽車(chē)涂裝前處理生產(chǎn)線(xiàn)中的磷化槽液位控制
西門(mén)子PLC S7-200smart間接尋址應(yīng)用—求平均值, 創(chuàng)建指令庫(kù)
基于S7-200 SMART實(shí)現(xiàn)一鍵啟停_200smart 一鍵啟停
基于S7-200SMART實(shí)現(xiàn)Modbus TCP通信_(tái)200smart modbus tcp
基于S7-200 SMART實(shí)現(xiàn)MATLAB寫(xiě)入與讀取PLC數(shù)據(jù)_matlab
西門(mén)子200smart高速計(jì)數(shù)器指令向?qū)Ъ俺绦颍ㄊ詹兀┨菪螆D實(shí)例
【案例】S7-200SMART運(yùn)動(dòng)定位程序梯形圖實(shí)例
S7-200SMART PLC實(shí)時(shí)時(shí)鐘指令
|分享| S7-200SMART常用指令(二)
|分享| S7-200SMART常用指令(一)
200smart【編程入門(mén)】_S7200smart編程入門(mén)梯形圖入門(mén)
西門(mén)子200 smart程序控制指令_200smart程序框架_FOR循環(huán)_子程序
請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱(chēng):
1分 2分 3分 4分 5分

還可以輸入 200 個(gè)字
[ 查看全部 ] 網(wǎng)友評(píng)論
推薦文章
最新推薦
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線(xiàn)幫助 - 文章列表
返回頂部
刷新頁(yè)面
下到頁(yè)底
晶體管查詢(xún)
天天干天天爽天天射| 国产午夜精品理论片| 38部杂交小说大黄| 国产精品区免费视频| 2021国产精品露脸在线| 国产激情一区二区三区四区| 黑人边吃奶边扎下面激情视频| 国产精品va无码免费麻豆| 黄网站色视频免费看无下截| 国产成人无码AⅤ片在线观看| 色阁阁日韩欧美在线| 国产乱妇乱子视频在播放| 精品国产免费观看一区| 十分钟免费视频高清完整版www| 男人的天堂av网站| 伊人久久大香线蕉亚洲五月天| 欧美精品在线免费观看| 亚洲日本在线看片| 晚上一个人看的www| 久久精品国产亚洲av电影| 日本h片无遮挡在线观看| 久久91精品综合国产首页| 小h片在线观看| wwwxxxx在线观看| 图片区网友自拍另类图区| 99久久人人爽亚洲精品美女 | 少妇无码一区二区二三区| 一级做a爰片毛片| 国模吧双双大尺度炮交gogo| 4hc88四虎www在线影院短视频| 国产成人一区二区三区在线观看| 能在线观看的一区二区三区| 啊…别了在线观看免费下载| 狠狠躁夜夜躁人人爽天天天天97| 亚洲精品无码久久久久去Q| 最近最新2019中文字幕高清| 久久精品国产大片免费观看| 成人性开放大片| xarthunter| 国产精品亚洲二区在线播放| 趴在墙上揉捏翘臀求饶h|