攻城獅老王
工控人一名,歡迎騷擾。
級別: 略有小成
![]() |
一條全封閉的產(chǎn)線(xiàn)有22個(gè)工裝位置,前面只有一個(gè)掃碼器,現在需要對其中7個(gè)工位的檢測數據與二維碼關(guān)聯(lián)并保存,并在最后一個(gè)工位區顯示出OKNG進(jìn)行分檢,同時(shí)將檢測結果提交給上位機。 想請教的是數據傳遞這方面有沒(méi)有好的實(shí)現思路。 三菱R系列的CPU。 |
---|---|
|
cyh1986
級別: 家園?
![]() |
定義一個(gè)數組,22個(gè)工位就22個(gè)元素,每個(gè)數組元素定一個(gè)一個(gè)結構體元素,可以吧二維碼元素、OKNG等保存, 如果用西門(mén)子博圖,這個(gè)就不是很難。 |
---|---|
|
快樂(lè )小學(xué)生
好好學(xué)習,天天向上
級別: 論壇先鋒
![]() |
這個(gè)簡(jiǎn)單吧,舉個(gè)例子:22個(gè)工位,你每個(gè)工位都使用100個(gè)字來(lái)存儲數據(看實(shí)際需求來(lái)決定地址數量),最前面上料掃碼后將數據存儲到前10位,裝置1產(chǎn)品傳輸到裝置2的時(shí)候,你把100個(gè)字傳輸給裝置2,裝置2做了什么工藝你再存到這100個(gè)字里面(除掃碼數據的字外),一直往后傳就可以了。到了最后工位的時(shí)候,你再把這100個(gè)字拿出看,去看下這片產(chǎn)品在每個(gè)裝置都做了什么,是什么結果,然后做你需要的處理。 三菱(裝置1到裝置2-BMOV D100 D200 K100,裝置2到裝置3-BMOV D200 D300 K100,裝置3到裝置4-BMOV D300 D400 K100......,裝置22-D2211=1是什么,D2212=1代表什么........) [ 此帖被快樂(lè )小學(xué)生在2024-09-06 09:30重新編輯 ] |
---|---|
|
愛(ài)在日落之后
所有的偉大,源于一個(gè)勇敢的開(kāi)始
級別: 家園?
![]() |
你是指程序指令解決還是硬件思路,我之前遇到過(guò)你說(shuō)的這樣的設備,最后 買(mǎi)了RFID,每個(gè)工站配一個(gè),來(lái)料信息寫(xiě)入,最后一個(gè)工站全部讀出來(lái),顯示在觸摸屏并且上傳MES。如果機臺設計類(lèi)似轉盤(pán)或者工站傳遞有序,就移位指令甩起來(lái)就是。 |
---|---|
|
zq123666
級別: 工控俠客
![]() |
圖片:
![]()
圖片:
![]() 我想到的還是用位移指令把二維碼數據做位移,根據二維碼數據長(cháng)度分配所需字數,然后一個(gè)字用來(lái)存檢測結果,這兩組數據所占字數相加就是每個(gè)工位需要的字數,就是圖中指令中的N2,再乘以22工位,就是圖中指令中的N1。 |
---|---|
|
gxtmdb82164
級別: 論壇先鋒
![]() |
我以前做這種項目都是用上位機來(lái)做調度的,好處是可用用配置文件或者設置界面的方式動(dòng)態(tài)調整各種調度條件和需要收集的數據點(diǎn)。不過(guò)上位機調度需要通信時(shí)間開(kāi)銷(xiāo),做的不好的話(huà)會(huì )有明顯的等待時(shí)間,這方面需要一定的實(shí)戰經(jīng)驗和技巧。 只靠PLC解決,主要還是把思路梳理清楚以后把調度算法抽象出來(lái),并建立數據結構來(lái)支撐這個(gè)調度算法,包括輸入的,輸出的和中間變量都放到數據結構中去。最終效果就是所謂的面向對象,只要把這個(gè)對象定義清楚了,就不是什么大問(wèn)題。 這里隨便舉個(gè)例子: ![]() PLC的調度邏輯實(shí)際上非常簡(jiǎn)單,你這里后面沒(méi)有掃描了,默認產(chǎn)品都是順序流動(dòng)的。用上面的數據解構建立一個(gè)先進(jìn)先出的FIFO,首站上線(xiàn)push一個(gè)元素到FIFO中,開(kāi)始往后流轉,每個(gè)站觸發(fā)以后在FIFO進(jìn)行搜索,把FIFO中當前站號=當前站的上一站的的那個(gè)數據結構中的當前站編號字段改成本站的編號,并在加工結束后給所有站狀態(tài)這個(gè)字段中代表本站的位寫(xiě)入結果,比如合格寫(xiě)1不合格寫(xiě)0;如果當前站 有檢測結果要記錄,那么寫(xiě)入對應的過(guò)程參數n,因為是全局的,所以把一個(gè)產(chǎn)品所有可能用到的參數都列出來(lái)。當一個(gè)產(chǎn)品依次走完所有的站后,在最后一個(gè)站檢查所有站結果是不是都為1,是就報OK,不是就報NG。處理完成后(如果NG品要隔離的話(huà)),在FIFO中刪除這個(gè)元素。 這個(gè)只是一種簡(jiǎn)單的搞法,實(shí)際項目會(huì )更復雜,比如說(shuō)所有結果這個(gè)字段很多時(shí)候只用bool類(lèi)型是不行的,即不止有好和不好,還要更細化的分類(lèi),這個(gè)時(shí)候就變通一下就行了。 你這里最大的問(wèn)題是后面沒(méi)有掃碼了,整個(gè)產(chǎn)線(xiàn)搞成了類(lèi)似多工位轉盤(pán)那種思路,這就要求中間絕對不能亂,一亂了就數據和實(shí)物就對不上了,但是好處就是其實(shí)可以更簡(jiǎn)單,比如上面的FIFO,你可以不用,甚至把產(chǎn)品數據結構的地址定死都行,因為你的調度和工藝是嚴格綁定的,就長(cháng)這個(gè)樣子了。我們以前會(huì )在每個(gè)站都裝掃碼,可以在工位間隨意加buffer,瓶頸工位也可以加雙工位,都很簡(jiǎn)單,因為把工藝和調度解耦開(kāi)了以后,就可以非常自由的進(jìn)行調度了。 |
---|---|
本帖最近評分記錄: |
小八哥
電話(huà)15394301768 QQ815360919 慈溪余姚
級別: 工控俠客
![]() |
一點(diǎn)難度都木有 做好 數據移位就OK |
---|---|
|
超那個(gè)超啊超
QQ&VX:449285600  
級別: 探索解密
![]() |
基本跟樓上的思路差不多,可以定義一個(gè)數組此數組,比如為Data(0...21),數組的類(lèi)型為一個(gè)結構體,把結構體里的數據類(lèi)型定義成你想要的,然后每轉動(dòng)一次工位就執行, Data[21] := Data[20]; Data[20] := Data[19];.......Data[1] := Data[0]; Data[0]:=DataClean; |
---|---|
|
夢(mèng)雨天涯
微信hui530527 &
級別: 網(wǎng)絡(luò )英雄
![]() |
圖片:
![]() ![]() |
|
---|---|---|
|
無(wú)言0123
級別: 正式會(huì )員
![]() |
用ST來(lái)寫(xiě),沒(méi)啥難度的。 一個(gè)工位一個(gè)工位填數據,然后往后傳。注意接收時(shí)別搞混就行 |
---|---|
|
twtynijj
級別: 略有小成
![]() |
如果工件在工位移動(dòng)過(guò)程中 不會(huì )被人為的拿走 一定會(huì )按順續走到最后一個(gè)工位 ,哪么用移位就可以解決 |
---|---|
|