力天
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點(diǎn)
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看力天的 主題 / 回貼
樓主  發(fā)表于: 2011-05-23 18:05
現(xiàn)在有18個數(shù)據(jù),請教高手怎么用S7-200來從小到大排序,排怕羞完成后去掉最小值和最大值,求剩下16個數(shù)字的平均值?
力天
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點(diǎn)
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看力天的 主題 / 回貼
1樓  發(fā)表于: 2011-05-23 18:12
現(xiàn)在有18個數(shù)據(jù),請教高手怎么用S7-200來從小到大排序,排序完成后去掉最小值和最大值,求剩下16個數(shù)字的平均值?
zwqbingzhu
佛曰:不可說,不可說
級別: VIP會員

精華主題: 0
發(fā)帖數(shù)量: 103 個
工控威望: 351 點(diǎn)
下載積分: 824 分
在線時間: 99(小時)
注冊時間: 2007-09-15
最后登錄: 2014-07-16
查看zwqbingzhu的 主題 / 回貼
2樓  發(fā)表于: 2011-09-05 17:28
這個程序一般用于模擬量的濾波,三菱的話直接有這個排序指令
封鎖一生
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點(diǎn)
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看封鎖一生的 主題 / 回貼
3樓  發(fā)表于: 2011-09-05 23:31
做個比較,再來兩個循環(huán)應(yīng)該可以,我現(xiàn)在也在做個程序也是條件比較多,快蒙了www.hncgq.com
jzr1976
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 101 個
工控威望: 195 點(diǎn)
下載積分: 751 分
在線時間: 49(小時)
注冊時間: 2009-12-13
最后登錄: 2013-10-24
查看jzr1976的 主題 / 回貼
4樓  發(fā)表于: 2011-09-05 23:54
頂下先
wsir123
日子在忙碌中才會顯得充實(shí),我喜歡這樣的生活。
級別: 論壇版主

精華主題: 4 篇
發(fā)帖數(shù)量: 1504 個
工控威望: 5491 點(diǎn)
下載積分: 24426 分
在線時間: 818(小時)
注冊時間: 2007-01-22
最后登錄: 2024-06-09
查看wsir123的 主題 / 回貼
5樓  發(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,因為是浮點(diǎn)數(shù),所以要跳過4個字節(jié)

      L     MB    2

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

      L     MB    0

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