是我冒飯了
叮又叮不懂,斜又斜不廢。
級別: 家園常客
![]() |
圖片:
![]() 圖片有點潦草 ![]() 大致需求是有10個罐體先后加工材料,材料加工完之后由中間的機器人抓取成品和供給未加工的產品。但是有一個優先級的關系,假設機器人現在在抓取3號罐里的東西,這個時候5號罐先完成了,然后8號罐也完成了。我需要按照他們完成的先后順序來進行抓料和供給。 目前程序的思路是有的,我按照完成的順序分別把罐的編號傳到D1-D10里,先判斷D1-D10內誰的數據不為0,再判斷對應數據內的數值為多少,讓機器人去對應的罐子抓料。 列如D1=3;D2=5;D3=8;當3號罐抓料完成之后,把D1置0,然后再判斷D2不為0 ,讀取D2里的值為5,就去5號罐抓料。 可是這如果用梯形圖來寫太長了,想用ST去做一些判斷,不知道用哪個指令,本來想用FOR來判斷哪個D里面有數值不為零,但是只能比較一個D1,怎么實現D1=0之后判斷條件變成D2是不是等于0? ![]() |
---|---|
|
wwr1992
級別: 略有小成
![]() |
你這個優先級不就是先入先出表格,幾號完成就把這個編號填入表格里,你要動作的時候判斷表格第一個編號是多少就去幾號,同步出一個表格,這樣每次你機器人動作完表格第一個編號就是最先完成的順序 |
---|---|
|
是我冒飯了
叮又叮不懂,斜又斜不廢。
級別: 家園常客
![]() |
順序不是固定的,比如第一次可能是 1.2.3.4.5.6.7.8.9.10的順序, 然后中途4號罐發生故障暫時不能工作就要跳過4號罐,假設機器人抓取8號罐的時候,4號罐恢復了。4號罐就要接在8號罐后面,所以順序是會發生變化的,不是第一次是什么順序就固定是什么順序。這樣的話,每次有一個罐體故障和恢復,表格順序都要導入一次,也挺麻煩的。我還是希望能夠簡化一點程序,所以我想試試能不能用一些ST讓程序變得簡短一點。感謝您的回答
|
---|---|
|
不動如山
級別: 正式會員
![]() |
類似出入棧的功能,完成的任務往后添加到數組,你調取任務的時候從開頭拿(出棧),拿完了把數組上移,你要去的點位 一直是D1里面取出來的 |
---|---|
|
wwr1992
級別: 略有小成
![]() |
這個功能同樣能實現啊,不過對表格處理會麻煩一點,填表的時候還是按先后順序一個個填表,出表的時候你從第一個表格開始輪詢到最后一個,查詢編號和能否工作這兩個信號,一直到第一個無故障的編號就去幾號,前面幾個有故障的表格里保持不動,把你機器人去的那個表格剔除,每完成一次都從第一個表格開始,這樣你4號故障時就會一直待在表格第一位置,一直到故障恢復了4號就是第一順位
|
---|---|
|
是我冒飯了
叮又叮不懂,斜又斜不廢。
級別: 家園常客
![]() |
奧,感謝,剛才沒有想到把數據移位,這樣確實能簡單一些。 ![]()
|
---|---|
|
是我冒飯了
叮又叮不懂,斜又斜不廢。
級別: 家園常客
![]() |
嗯,這樣確實可以解決,但是對我來說有些復雜了 ![]()
|
---|---|
|
夢雨天涯
微信hui530527 &
級別: 網絡英雄
![]() |
找到先入先出指令,就行 |
|
---|---|---|
|
是我冒飯了
叮又叮不懂,斜又斜不廢。
級別: 家園常客
![]() |
不知道歐姆龍有沒有這個指令,感謝 ![]()
|
---|---|
|
w45062099
多做事,少說話!
級別: 略有小成
![]() |
![]() ![]() 樓主留言:暫時不需要,只是自學階段,謝謝 |
|
---|---|---|
|
zhongwen1234
級別: 探索解密
![]() |
你這需要三個隊列。待料隊列,完成隊列,異常隊列。隊列順序按時間排也行,追求效率按照動作速度排也行,機械手按照隊列動作就可以。 工藝思路理清楚,用哪種編程其實都不復雜 |
---|---|
|