blavince's BLOG

Giving is a reward in itself.

0%

[自動化專案] 記憶體自動化組裝設備

這個專案盡量使用現有資源獨立開發, 過程中學習到不少東西 , 做個簡易的紀錄!
(基於 EPSON Robot + Basler Camera + OpenCV + ZXing)

前言

長時間人工記憶體插拔, 作業員會消耗大量體力而且手指容易受傷順帶影響組裝品質; 由此發想, 設計自動化機台取代這個動作(工作站), 同時確保生產品質.

InsertDimm
圖片來源: pikist

應用範圍

設計的範圍是伺服器組裝等級的 Level 6 → Level 10.

伺服器組裝等級定義可參考AMAX Blog and Insights ,
其中 Level 6 的定義為:
Level 6: Integration of motherboard into chassis enclosure and power on test.

Level 6 manufactured platforms are what ODMs provide when they ship out “server barebones” which are integrated motherboard/chassis combinations with parts included, but missing components such as CPU, memory, hard drives, networking cards, etc. Often systems integrators will buy these barebones and populate with components to create specific server configurations. How much value that integrator can add in terms of services and further building out the solution depends on their capabilities in the next levels:

Level 10 的定義為:
Level 10: Full assembly of server with full system and component level testing, OS/software integration, product kitted with user manual and other required documentation and delivered as a fully-integrated server solution.

A manufacturer capable of up to Level 10 manufacturing will deliver a working server solution. But if you need multiple servers networked together as a rack-level or even multi-rack level solution, you will need at least a Level 11 manufacturer (like AMAX):

簡單來說, Level 6 出貨 包含:

  1. 中央處理器(CPU)
  2. 記憶體(RAM)
  3. 儲存裝置(HDD or SSD)
  4. 網卡
  5. …等等零件,

而 Level 10 包含 這些零件.
為什麼要 Level 6 出貨, Level 10 又組裝呢? 主要是為了客製化配置降低關稅 !

因為應用在這個場景, 所以機械手臂(Robot)的靈活性再加上攝像頭(Camera)的定位輔助就是最佳解了!

硬體佈局

規劃 2 個工作站來達成這個任務, 簡易的佈局圖如下:

  1. 第一站(Dimm1) 取記憶體放至插槽內.
  2. 第二站(Dimm2) 將插槽內的記憶體壓合到位.
    layout

部件

組成這兩站的最基本硬體單位有:

  1. 機械手臂
    Robot

  2. 攝像頭
    Cmaera

  3. 第一站(Dimm1) 使用夾取記憶體的夾爪,
    MainGrab

  4. 第二站(Dimm2) 使用可開啟和壓入記憶體的夾爪,
    SubGrab

流程思路

當產品流入時感應器激活 Dimm1/2 的到位信號, 停止流水線轉動; 接著 Dimm1/2 做機器視覺判斷, 計算產品的偏移量並補償回去, 隨後開始取、放記憶體 (或者壓合記憶體)直到結束.

綜上整理工站的基本流程應切成 5 個子部分:

  1. 確定到位信號為空, 流水線轉動使產品流入
  2. 產品流入激活到位信號, 停止流水線轉動
  3. 機器視覺判斷特徵點、計算偏移量並補償
  4. 重複取、放記憶體 (或者壓合記憶體) 的動作
  5. 確定下一站到位信號為空, 流水線轉動使產品流出

控制權

上述各部分由 電腦 與 PLC (programmable logic controller, 可程式化邏輯控制器) 分別控制; 基本的硬體邏輯由 PLC 控制, 其餘由電腦來控制, 而電腦與 PLC 有 I/O (Input/Output) 的交換, 可以獲得及控制相關的硬體狀態, 以便電腦做邏輯的判斷, 硬體關係羅列如下表:

編號 項目 控制權 數量 備註
1. 電腦 使用者 1 使用者執行組裝程式
2. 機械手臂 電腦 2 Dimm1 + Dimm2 共 2 台
3. 攝像頭 電腦 2 手臂上含攝像頭共 2 台
4. 夾爪 電腦 2 手臂上含夾爪共 2 台
5. PLC 電腦 1 電腦可以透過 I/O 交換取得硬體狀態
6. 供料器 PLC 2 電腦從 PLC 的 I/O 讀取狀態
7. 流水線 PLC 2 電腦從 PLC 的 I/O 讀取狀態
8. 感應器 PLC 4 電腦從 PLC 的 I/O 讀取狀態, 包含前一站與後一站的感應器也是必要的訊號
9. 泡棉供應器 PLC 1 由多個感應器組成

軟體方塊圖

專案的功能整合選擇用 c# 來實現, 呼叫 API (甚麼是API?) 來完成各個功能!
如圖:
SoftwareFlow

編號 API接口 功能 備註
1. Robot 手臂控制 控制手臂動作及 I/O 交換
2. Camera 圖像擷取 輸出圖像 raw data
3. ZXing 條碼處理 解碼 Barcode 及 QRcode
4. OpenCV 影像定位 影像處理庫
5. SF 日誌系統 生產系統提供的 Log 接口

結論

經過一段時間的開發及反覆修改 (尤其是機構修改及影像定位的演算優化), 終於成功完成 prototype 及 online pilot run.
DIMMMachine