工控肥仔
工控肥仔
級別: 網絡英雄
|
圖片:
大佬們,求幫忙解決一個數據處理問題?? 當我用八個光纖一次檢測8個產品 1. 如果第一個光纖檢測到不良時,我需要剔除一個不良品 2. 如果第五光纖檢測到不良時,需要從第五個起,后面全部剔除 3. 假如中間有兩個或兩個以上不良時,需選擇最大的數據處理時,該如何處理數據呢?? |
---|---|
|
不小心遇見你
自動項目、PLC、視覺、通訊等工控軟件開發QQ3515716
級別: 工控俠客
|
你是不是想說 1-7 兩個或2個以上NG時 剔除 1-7? 不管8? 那簡單 M1-M7對應D1-D7 分別OK時賦值0 NG時賦值1 然后max 就知道有幾個最大的數值 最大的值=1且數量>=2就是干你要的事情(注意最大值必須等于1且數量>=2) |
|
---|---|---|
|
cythyx
級別: 家園常客
|
圖片:
圖片:
這種問題都不是問題,因為有最簡單的編程方式,枚舉法。 假設不良時對應M0-M7為ON 下面是舉例邏輯,實際是做好使用某個信號的上升沿觸發M10-M16 |
---|---|
|
工控肥仔
工控肥仔
級別: 網絡英雄
|
大哥,你這個時方法是不錯,但不是我想要的, 我要的是m0--m7中有任意一個位置或多個位置不良時,我需要取最大的那個值(假如:檢測中只有M2為不良時,我需要剔除M2-M7六個產品,如果是M3.M4,M5.M6都是不良,我需要剔除M3-M7就可以)我想知道有什么辦法可以找出不良品中最大那個值就可以了 |
---|---|
|
mistyke
打工仔
級別: 論壇先鋒
|
如果我沒理解錯樓主的意思的話,那我提供一個思路: 用ENCO指令對M0-M7進行編碼,可以得到當中為ON的是第幾位存到D0。若當中有不只有一位為ON,那就取最高位(三菱是這樣的)。比如M3,M4都為ON,那D0=4, 那么接下來只要把第D0=4之前的位都置ON存起來,即可 |
---|---|
|
工控肥仔
工控肥仔
級別: 網絡英雄
|
你這個方法也是對的,我現在是用SER指令,把八個光纖編號位置,哪一個置ON就傳送對應的D值里面,后面用K值做比較,取最大的位置就可以了 |
---|---|
|