sihu国产精品永久免费_日韩午夜在线视频_久久99中文字幕伊人_古代男男嗯…啊h总攻

h30631
級別: 略有小成
精華主題: 0
發帖數量: 90 個
工控威望: 230 點
下載積分: 813 分
在線時間: 339(小時)
注冊時間: 2012-09-05
最后登錄: 2018-04-17
查看h30631的 主題 / 回貼
樓主  發表于: 2013-12-18 08:23
各位前輩好
小弟寫了一段程序如下



M8002 模擬會不會停,所以先給值

M100 準備啟動一個動作,M500 開始執行動作

M2000 需要動作的位置,M802 動作完觸發

最後是定義位置範圍

現在是因為每作完一次動作會把V0+1,如果M為0就繼續+1
M為1時停止+1並執行動作,旦是這樣感覺很沒效率
有沒有方法,直接判斷有哪些M是ON的,直接讓他丟M是ON的索引值
這樣忽略M=0 ,可以提升效率

懇請前輩們指點
天空流星
SZ-CL
級別: 網絡英雄
精華主題: 0
發帖數量: 571 個
工控威望: 6193 點
下載積分: 20833 分
在線時間: 561(小時)
注冊時間: 2008-03-17
最后登錄: 2025-01-07
查看天空流星的 主題 / 回貼
1樓  發表于: 2013-12-18 15:41
還是沒明白你到想要實現的動作,到底光處理數據,還是選取動作
看下SUM這個指令對你有沒有用,配合ENCO也行
你所說的效率,其實也就PLC250個掃描周期,就是用1S也就1秒吧,
要是真的有影響,是不是考慮運算和執行同時走,第一個位置出來后,運算繼續運行把下一個的位置算出來,
或是一次性把M的地址都運算出來,就是每個M的偏移值都取出來,執行時直接使用
樓主留言:
真誠感謝!

目前我是先依次性把M都算出來

但是就是不知道如何把這些M取出
然後依小到大順序去觸發M500
天空流星
SZ-CL
級別: 網絡英雄
精華主題: 0
發帖數量: 571 個
工控威望: 6193 點
下載積分: 20833 分
在線時間: 561(小時)
注冊時間: 2008-03-17
最后登錄: 2025-01-07
查看天空流星的 主題 / 回貼
2樓  發表于: 2013-12-19 12:27
圖片:
圖片:
引用
引用第5樓king125于2013-12-18 15:41發表的  :
還是沒明白你到想要實現的動作,到底光處理數據,還是選取動作
看下SUM這個指令對你有沒有用,配合ENCO也行
你所說的效率,其實也就PLC250個掃描周期,就是用1S也就1秒吧,
要是真的有影響,是不是考慮運算和執行同時走,第一個位置出來后,運算繼續運行把下一個的位置算出來,
或是一次性把M的地址都運算出來,就是每個M的偏移值都取出來,執行時直接使用


M0    開始運算
M1    開始執行
D100    需要執行的編號


加D2不等于0的條件
就是沒有需要執行的
樓主留言:
真誠感謝!

這一開始如果m1999沒有on
就會卡在那邊
這該怎麼辦?
[ 此帖被king125在2013-12-19 14:06重新編輯 ]
天空流星
SZ-CL
級別: 網絡英雄
精華主題: 0
發帖數量: 571 個
工控威望: 6193 點
下載積分: 20833 分
在線時間: 561(小時)
注冊時間: 2008-03-17
最后登錄: 2025-01-07
查看天空流星的 主題 / 回貼
3樓  發表于: 2013-12-20 10:31
引用
引用第8樓h30631于2013-12-19 14:57發表的  :


請問為什麼要從M1999和D999開始?
不是從M2000、D1000開始嗎?

.......


從M1999開始是防止有編號1的時候出錯,而且D2是需要執行的計數,數量是從1開始的,不能從0開始,所以向前移動了一位
需要執行的編號放到D1000中,放下一個需要執行的編號時先把D1000原來的數據移到D1001 ,字左移指令
D2就是第一個記錄的最大那個地址的編號,所以執行一次就減1,來執行下一個,減到0就是完成
樓主留言:
熱心助人!

感謝前輩指點

我了解了