<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 梯形圖實例 >> 正文

      西門子200SMART PLC編程通過指針輕松實現多個數據排列

      作者:佚名    文章來源:網絡整理    點擊數:    更新時間:2025/5/4

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

      西門子PLC的FOR   NEXT循環用法:

      西門子PLC S7-200和200SMART 循環跳轉指令  FOR-NEXT循環,JMP和LBL
      www.zhimadaxue.com/Article/tixingtu/9023.html

      西門子200SMART PLC關于FOR-NEXT指令使用技巧 循環指令梯形圖實例
      www.zhimadaxue.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

      到此第一輪就比較完了。第一輪的結果是找到了序列中最大的那個數,并浮到了最右邊。比較時,每輪中第 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

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


      第三輪:

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

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


      第四輪:

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


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


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


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


      子程序(SBR_0)

       

       

       

       

       

       


      主程序(MAIN)

       

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

      程序段1:

      VW20為要循環的輪次,5個數據,4輪即可

      VW22則為每輪需要比較的次數

      程序段2:

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

      程序段3:

      創建指針VD100及查找第一個數據

      程序段4:

      使用內循環FOR,循環次數為4。

      程序段5:

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

      程序段6:

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

      所以此時的數據是21 , 90 , 132 , -58 , 34。

      程序段7:

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

      程序段9:

      總的次數減1,VW22等于3


      接下來,程序跳轉到程序段4,循環次數為3次,因為前兩個數據比較完了,進行后4個數據比較只需要比較3次。


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


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

      Tags:冒泡排序,200SMART,西門子PLC,指針  
      責任編輯:admin
      請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      推薦文章
      最新推薦
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 一97日本道伊人久久综合影院| 亚洲国产精品成人综合久久久| 亚洲狠狠色丁香婷婷综合| 亚洲综合网美国十次| 青草久久精品亚洲综合专区| 久久93精品国产91久久综合 | 伊人激情久久综合中文字幕| 情人伊人久久综合亚洲| 婷婷国产天堂久久综合五月| 东京热TOKYO综合久久精品| 久久精品亚洲综合| 丁香五月缴情综合网| 色综合久久中文字幕| 久久综合狠狠色综合伊人| 日日狠狠久久偷偷色综合96蜜桃| 亚洲国产精品综合福利专区| 伊人亚洲综合青草青草久热| 亚洲色偷偷偷综合网| 久久综合久久自在自线精品自| 精品福利一区二区三区精品国产第一国产综合精品 | 色综合天天综合高清网国产| 久久综合九九亚洲一区| 狠狠色综合久久婷婷色天使| 浪潮AV色综合久久天堂| 精品无码综合一区| 一本一道久久a久久精品综合 | 亚洲人成伊人成综合网久久| 精品第一国产综合精品蜜芽| 加勒比色综合久久久久久久久 | segui久久综合精品| 一本大道道无香蕉综合在线| 国产成人久久综合热| 亚洲国产精品综合久久一线 | 日本久久综合久久综合| 色综合99久久久无码国产精品| 色欲香天天天综合网站| 图图资源网亚洲综合网站| 综合激情五月综合激情五月激情1| 亚洲国产综合无码一区二区二三区 | 伊人久久大香线蕉综合网站| 香蕉尹人综合在线观看|