Skip to content

如何使用Image Manager– 以電控箱檢測為例

  • TMflow 軟體版本:詳細版本要求請參照Image Manager說明書,本文章使用版本為2.14.6100
  • TM 手臂硬體版本:詳細版本要求請參照Image Manager說明書,本文章使用HW3.2
  • 伺服器端 Image Manager 版本:詳細版本要求請參照Image Manager說明書,本文章使用2.13.1400
  • 控制器端 Image Manager TMCraft/Service 版本: 214_v1_1,可以至TMcraft下載
  • 其他特殊軟硬體需求:
    • 待檢測電控箱一台
    • 偏光片
  • 請注意,新舊版本之差異可能導致操作介面、步驟上會有所差異。

電控箱檢測任務說明 #

檢測流程 :

  • 以電控箱上顯示面板進行Pattern matching定位,並將手臂移至檢測區域,透過AI Classification依序檢測下列項目 :
    1. 電源線上是否裝置濾波磁環
    2. 線頭是否確實插進插槽
    3. 上方螺絲孔是否有螺絲
    4. 側邊螺絲孔是否有螺絲
    5. 排線方式是否正確
  • 配合TM Image Manager傳圖並進行管理
  • 詳細AI Classification分類結果及說明可參考技術文件

檢測情境介紹 #

情境一 :

  • 依序檢測電控箱,將各項檢測原始圖及檢測結果傳至TM Image Manager

情境二:

  • 依序檢測電控箱,並透過Image Manager Node搭配Decision變數將檢測結果傳入TM Image Manager進行複判
  • 檢測數量設定為2,同一個電控箱上五個檢測區域,均進行2次檢測,模擬單一流水線上有2台須檢測的電控箱
  • 加入Layout的介面,可以由使用者自行設定要參考的樣品,以便進行複判

TM Image Manager 設定 #

選擇Device Station中的Device Management,可以透過自動偵測同網域下的設備進行加入,或是點擊Create自行加入設備


選擇Create,自行填入操作裝置的名稱及IP,可以在TMflow Login頁面中察看手臂名稱


找到裝置後,勾選Licensed


選擇Station Management,點擊Create,建立工作站


填入工作站名稱,並選擇操作裝置名稱,點擊送出


選擇Process中的Process Settings,點擊Create,建立Process


填入Process內相關資訊,並於工作站中選擇操作裝置及於手臂編輯的專案,其Reference_Key 對應於TMcraft Startprocess node的設定


若是連線成功,點擊刷新,可以看到執行的專案中的Vision Job


TMflow 編輯及設定 #

匯入 TMcraft Node/ServiceTMFlow

將指定檔案放入Techman SSD或名稱為TMROBOT的USB儲存裝置裡的指定資料夾

  • TM_Export/[your_compute]/ TMcraft/Node : TM_IM_[Authorize, Startprocess, Batch, Endprocess, UpdateSerialNumber].zip
  • TM_Export/[your_compute]/ TMcraft/Service : image_manager_shadow_[checksum].zip
  • 如果沒有存在TMcraft/Node 和 TMcraft/Service 需要自己創建資料夾


匯入 TMcraft Node/ServiceTMFlow

TMflow->System->Import/Export: 選擇 TMcraft

  • 選擇 Node: TM_IM_[Authorize, Startprocess, Batch, Endprocess, UpdateSerialNumber].zip
  • 選擇 Service: image_manager_shadow[checksum].zip

Enable TMcraft Node

TMflow->Configure->TMcraft Management : 選擇Node

  • 允許全部的node並儲存
  • 至編輯流程中,確認是否有這些node

Enable TMcraft Service

TMflow->Configure->TMcraft Management :選擇Service

  • 允許 image_manager_shadow.exe 並重新啟動TMflow
  • 重新啟動TMflow後,確認Executing變為綠色

 


情境一 : 檢測電控箱,並傳圖及結果至IM #

Authorize node

編輯Image Manager Node,設定Authorize node

  • 輸入資訊
  • 點擊OK
  • 可以點擊Test測試是否連線


Startprocess node

  • 輸入Reference_Key,請對齊於Image Manager設定的Reference_Key
  • 可以點擊Select,選擇自己於local variable設定的變數,也可以自行輸入值設定
  • 設定 Part no, Work order, Bacth no 之後可以在 Image Manager 被搜尋到
  • 點擊Ok


編輯視覺任務

以檢測電磁環為例子,透過顯示面板定位,並移動手臂至檢測電磁環區域,進行拍攝


以檢測電磁環為例,透過AI Classification判別是否有電磁環,有電磁環為OK,無則為NG,編輯完視覺流程後(建議使用者視覺存圖時,把原始圖勾選為JPG,可以減少傳輸時間與存圖空間)

  • 點擊Save Image Setting
  • 啟用 Save Source Image以及Save Result Image,儲存視覺任務


依此類推,將各個檢測任務均加入流程中,並編輯及儲存視覺任務


Endprocess node

  • 選擇是否要在Image Manager Review 結果,我們未進行結果判斷,送至Image Manager Review均為FAILED,所以這裡勾選False
  • 選擇此專案流程的 process_Order_Id (默認值)
  • 點擊Ok


執行情境一任務

執行此專案,TMflow沒有針對視覺任務進行判斷式時,底層會等待5s並且傳送fail出去,並於Image manager選擇Station Overview中點擊你的工站


可以於你的工站中看到,你所傳送的圖檔及AI判斷結果,等待專案執行完成,於Inspection Records中找到你執行的Inspection Order No.,點擊查看全部的結果


  • 執行情況一時,僅進行傳圖至Image Manager,並未透過Image Manager進行複判
  • 執行情況一的任務,送至Image Manager的結果均預設為FAILED
  • 當點擊Check all result時,可進入此頁面中,進行Confirmed
  • Confirmed後,完成此次任務


情境二 : 檢測電控箱,透過IM進行複判 #

Authorize node

編輯Image Manager Node,設定Authorize node

  • 輸入資訊
  • 點擊OK
  • 可以點擊Test測試是否連線

 


Startprocess node

  • 輸入Reference_Key,請對齊於Image Manager設定的Reference_Key
  • 可以點擊Select,選擇自己於local variable設定的變數,也可以自行輸入值設定
  • 點擊Ok

 


編輯視覺任務

以檢測電磁環為例子,透過顯示面板定位,並移動手臂至檢測電磁環區域,進行拍攝

 


以檢測電磁環為例,透過AI Classification判別是否有電磁環,有電磁環為OK,無則為NG

  • 於INITIATE中,勾選Snap-n-go
  • 完成視覺任務後,點擊Save Image Setting
  • 啟用 Save Source Image以及Save Result Image,儲存視覺任務(建議使用者視覺存圖時,把原始圖勾選為JPG,可以減少傳輸時間與存圖空間)


由於勾選Snap-n-go,我們會得到兩組參數,Pass以及Done,Done表示視覺任務是否已拍完照並運算完結果,Pass表示視覺任務是否運行成功


依此類推,將各個檢測任務均加入流程中,並編輯及儲存視覺任務

 


WaitforVisionDone node

  • Is_classification_check_cable_Done_TM==“true”
    • 確保最後一個視覺任務完成,得以進行下一批次的任務或是流程

 


Batch node

  • 情境二需要檢測五個區域各2次,表示一條流水線上可能有2台電控相需要檢測
  • 將此流程的數量設定為2
  • 需要自己創建流程
  • 在Batch Node下方創建 IF node,並輸入以下表達式
    • var_Batch_Clear==true並將IF Node的
    • Yes:連接至 Endprocess
    • No:返回至顯示面板定位
  • 點擊OK

 


Endprocess node

  • 選擇是否要在Image manager Review 結果,我們於情境二中會進行複判,透過Thread流程判別結果為PASS或是FAILED,所以這裡勾選True
  • 選擇此專案流程的 process_Order_Id (默認值)
  • 點擊Ok

 


Thread – vision decision

建立Decision變數,以此變數進行判定任務結果是否為NG,若是視覺任務執行結果為NG,送至IM為FAILED,執行結果為OK,送至IM為PASS,可於IM中進行複判


可以透過以下步驟,自訂vision decision,這邊先以檢測電磁環的任務進行範例(視覺任務名稱為classification_check_line),其餘任務依此類推

  • Waitfor node
    • 等待100ms,等待視覺任務執行


Gateway  and Gateway condition

  • Is_classification_check_line_TM_Done == true
    • 判斷是哪一項視覺任務拍攝完成


If node Decision

  • is_classification_check_line_TM_Pass ==true
    • 判斷視覺任務時否完成,若是完成,執行其下列程序
  • is_classification_check_line_AI_Classification_1_TM==“OK“
    • 以是否有電磁環為例,若是有電磁環為“OK“,無電磁環為“NG“


SET_PASS, SET_NG

  • var_decision_vision_result == “PASS“
    • 若是電磁環檢測為OK,將送PASS至Image Manager var_decision_vision_result == “FAILED”
    • 若是電磁環檢測為NG,將送NG至Image Manager

 


SET_Variable

  • var_decision_vision_metadata = “metatdata“
    • 送入一些參考資訊至Image Manager
  • var_decision_vision_name =”classification_check_line”
    • 填入要送至Image Manager的視覺任務名稱


TMScript Name: Script_Send_and_Rest_Vision_Result

  • 加入以下設定,透過decision變數及Scrip node將判斷結果送至IM


Set_Vision_Done

  • is_classification_check_line_Done = false
    • 關閉視覺任務完成的Flag變數,以等待下次Flag再次為True時觸發Logic Decision流程


回到Wait100ms

  • 回到等待100ms,等待下一個視覺任務完成


其餘四個檢測任務,也是以相同方式進行編輯


執行情境二任務

於情境二中,我們可以自訂Image Manager 即時監控的Layout版面,點擊Create建立檢驗版(必須完成前置作業,包含建立設備、工站及流程),再選擇Process並輸入Layout Name進入Image Manager/Layout Designer/Layout Name頁面


Image Manager/Layout Designer/Layout Name中可設計Layout頁面,設定要於工站中比較的樣本,執行任務時,可以於Station Overview中,進入你的工站中察看Layout設計的結果

 


執行此專案,於Image manager選擇Station Overview中點擊你的工站


可以於你的工站中看到,你所傳送的圖檔及AI判斷結果,由於我們有勾選複判,所以將會於結束拍攝任務後,跳出Check all result的通知,若是有設定Layout,也可以於工站中看到你所設定的圖像,其圖像中可以顯示正在檢測的視覺任務

 


  • 執行情況二時,傳圖至Image Manager
  • 且透過Image Manager進行複判
  • 例如未有電磁環,判斷為NG,應送FAILED至Image Manager進行複判,而OK則送PASS
  • 當點擊Check all result時,可進入此頁面中,進行複判,可以針對FAILED的情形進行複判
  • 當確認完成後,點擊Confirmed,完成此次任務


  • 與情境一相同,可以於Inspection Records中找到你的Inspection Order No.(這邊以Inspection Order No.457為例),可以察看結果,若是複判確認時,有一張FAILED,則result就會顯示FAILED,表示這件工單有瑕疵
  • 一個Inspection Order No.表示一條流水線(457便是其中一條),我們檢測數量設定為2表示我們這一條流水線有兩個電控箱要檢測,所以SerialNo有兩個組數字,之後會於下一章介紹如何客製Serial No的編號


設定Inspection order No.SerialNo #

Inspection Order No.

每當我們執行一次Startprocess node時,便會產生一個Inspection Order No.,表示一條流水線的開始,或是一個工單的開始


若是未取用UpdateSerialNumber node,預設的SerialNo是從0開始往上加,如下圖所示


  • 要客製自己的SerialNo,必須使用UpdateSerialNumber node,這邊示範如何讓SerialNo從300開始增加
  • 我們首先要先建立一個SerialNo的int變數以及要將此變數存成string的Set_SerialNo變數,便透過此變數更新我們於IM中所看到的SerialNo編號(變數名稱均可更改,須於後續的UpdateSerialNumber中選擇你所設的string型態的變數)

 


於SETSerNo中進行變數設定,若是Batch還沒做完,須接回去更新SerialNo


設定UpdateSerialNumber node,選擇你所建立的string變數


執行專案後,於Inspection Record中,可以發現我們工單下的SerialNo從300開始往上加

Powered by BetterDocs