nealleong
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 56 個
工控威望: 159 點
下載積分: 735 分
在線時間: 55(小時)
注冊時間: 2016-09-21
最后登錄: 2018-10-16
查看nealleong的 主題 / 回貼
樓主  發(fā)表于: 2017-08-23 12:06
求助一段程序,具體為:一自動貼標(biāo)程序,光電傳感器與機(jī)械貼標(biāo)裝置有一段距離,2個需要貼標(biāo)位置間距為按產(chǎn)品需求可自己設(shè)定,如果間距足夠長,可以光電傳感器檢測到貼標(biāo)位置后進(jìn)料伺服走相應(yīng)脈沖然后貼標(biāo),但如果第一個貼標(biāo)位置觸發(fā)光電后還未貼標(biāo)后一位置又觸發(fā)光電了,這種思路就不可行了。

請問這樣怎么做程序呢?
咗臉ヅ微笑ぺ
非吾所愿,奈何已離去……
級別: 工控俠客
精華主題: 0
發(fā)帖數(shù)量: 471 個
工控威望: 2130 點
下載積分: 29832 分
在線時間: 588(小時)
注冊時間: 2017-04-08
最后登錄: 2023-07-25
查看咗臉ヅ微笑ぺ的 主題 / 回貼
1樓  發(fā)表于: 2017-08-24 09:08
1、先入先出比較容易做,很直觀
2、算好最多同時檢測到多少產(chǎn)品,用大于這個數(shù)的計時器循環(huán)使用
ヅ微笑面對每一天,即使生活并不美好ヅ
咗臉ヅ微笑ぺ
非吾所愿,奈何已離去……
級別: 工控俠客
精華主題: 0
發(fā)帖數(shù)量: 471 個
工控威望: 2130 點
下載積分: 29832 分
在線時間: 588(小時)
注冊時間: 2017-04-08
最后登錄: 2023-07-25
查看咗臉ヅ微笑ぺ的 主題 / 回貼
2樓  發(fā)表于: 2017-08-24 14:43
引用
引用第14樓nealleong于2017-08-24 11:15發(fā)表的  :


先入先出的話,如果想用脈沖來定位的話怎么做好呢?寫入的數(shù)據(jù)應(yīng)該是什么呢?

我的想法是這樣的,傳感器觸發(fā)到第一個貼標(biāo)位置的時候,先把當(dāng)前脈沖量D2寫到到一個寄存器D1中。然后從第二個貼標(biāo)位置開始的相應(yīng)脈沖位通過先入先出方式寫入到一列寄存器D10~D20中,當(dāng)當(dāng)前脈沖量D2-D1=S(傳感器與貼標(biāo)機(jī)構(gòu)的距離,換算為脈沖量),貼標(biāo)機(jī)構(gòu)給一個貼標(biāo)位置貼標(biāo),同時把從第二個貼標(biāo)位置開始的相應(yīng)脈沖位通過移位讀出到D30,貼標(biāo)機(jī)構(gòu)的執(zhí)行條件就是D2-D30=S,就進(jìn)行貼標(biāo)
.......

用棧指令,傳感器觸發(fā)直接存當(dāng)前脈沖量D2加貼標(biāo)位置間距量S(當(dāng)然脈沖量不可能無限大,到一定值要清零,超過最大值要換算一下再存),即D2+S存入棧。當(dāng)棧里有數(shù)據(jù)(可以用指針判斷)且預(yù)檢測位置D1為零時,以先入先出取出棧數(shù)據(jù)到D1,當(dāng)D2=D1時觸發(fā)貼標(biāo),然后清零D1。這樣做的話就算中間缺料了也不會有影響。
或者移位加變址也是可以的。
以上為個人看法,如有錯誤望指出
ヅ微笑面對每一天,即使生活并不美好ヅ