力天
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看力天的 主題 / 回貼
樓主  發(fā)表于: 2011-05-23 18:05
現(xiàn)在有18個數(shù)據(jù),請教高手怎么用S7-200來從小到大排序,排怕羞完成后去掉最小值和最大值,求剩下16個數(shù)字的平均值?
wsir123
日子在忙碌中才會顯得充實,我喜歡這樣的生活。
級別: 論壇版主

精華主題: 4 篇
發(fā)帖數(shù)量: 1504 個
工控威望: 5491 點
下載積分: 24426 分
在線時間: 818(小時)
注冊時間: 2007-01-22
最后登錄: 2024-06-09
查看wsir123的 主題 / 回貼
1樓  發(fā)表于: 2011-09-06 08:57
摘自網(wǎng)絡(luò),具體去處不詳,僅供參考。

用冒泡排序?qū)崿F(xiàn)假定十個數(shù)據(jù),放在DB1中,安放順序如下:

DBD0

DBD4



DBD36

下面是西門子的程序

OPN   DB    1                 /////打開DB1這個數(shù)據(jù)塊

      L     10           ////裝載10到MB0中,因為有十個數(shù)據(jù),要進(jìn)行十次排序,9次也可以的

LL0:  T     MB    0

      L     P#0.0   ////裝載地址指針,這是關(guān)鍵,不要搞錯了

      LAR1  

      L     9

LL1:  T     MB    2   ////內(nèi)部循環(huán),進(jìn)行9次,直到把最大值排到最后

      L     DBD [AR1,P#0.0]

      L     DBD [AR1,P#4.0]

      <R    

      JC    LL2          ////比較前后兩個值,如果前面大于后面的,則前后數(shù)據(jù)交換

      L     DBD [AR1,P#0.0]

      T     #m_temp

      L     DBD [AR1,P#4.0]

      T     DBD [AR1,P#0.0]

      L     #m_temp

      T     DBD [AR1,P#4.0]

LL2:  +AR1  P#4.0     ////指針自動進(jìn)行加4,因為是浮點數(shù),所以要跳過4個字節(jié)

      L     MB    2

      LOOP  LL1       ///這個指令自動的將A寄存器里的值減1

      L     MB    0

LOOP  LL0
保持每天一點小進(jìn)步足矣。。。