1. 程式人生 > >ApolloStudio高手之路(4):用Python以最輕便的方式進行金橙子鐳射打標板卡二次開發(以EzCad2為載體二次開發)

ApolloStudio高手之路(4):用Python以最輕便的方式進行金橙子鐳射打標板卡二次開發(以EzCad2為載體二次開發)

鐳射打標是以高密度、高能量的鐳射束對各種材質媒介(塑料,布匹,金屬,陶瓷等等)進行表面區域性照射加工,使表層材料汽化或發生顏色變化的化學反應,從而留下永久性標記的一種清潔環保的表面加工方法。鐳射打標可以打出各種文字、符號和圖案等,字元大小可以從毫米到微米量級,這對產品的防偽有特殊的意義。正是因為其普適性優良,使其在製造業對產品質量要求越來越嚴苛的今天發揮其越來越寬廣的應用。

在ApolloStudio中硬體支援倉庫中也對市面上使用範圍最廣、影響力最大的由北京金橙子科技股份有限公司所開發的鐳射打標機控制板卡進行了深度支援(以EzCad2為載體)。EzCad2是專為平面標刻、精細零部件切割所專門設計的版本。EzCad2基本操作我們在此篇不再贅述,本篇著重點在於對其進行二次開發,我們先在指令碼工具集中來大致預覽下ApolloStudio所提供哪些精細功能:

 ApolloStudio所支援的功能完全來自官方授權最新版的SDK,整合度高達90%,適度刪減了部分二次開發中冷門的用法,並以應用場景的需求進行了適量的擴充(比如通訊遠端控制功能)。

開發準備

在開發之前我們需要了解下二次開發的流程原理,ApolloStudio通過SDK直接接管了鐳射打標板卡,因此無需再開啟EzCad2軟體(強行開啟也會報錯,反之亦然,同一時間只能由一款軟體對板卡進行接管,ApolloStudio如果不點啟動按鈕進行初始化操作則不會對板卡進行接管,EzCad2開啟會預設啟用初始化操作),在ApolloStudio中對二次開發流程進行了大幅優化後可以簡單分為3個步驟:

  1. 載入模板檔案(必需項)
  2. 替換模板內容(該步驟可根據需求省略,不執行替換操作會預設呼叫模板內建編碼規則進行標刻,替換操作會令內建規則失效)
  3. 執行標刻(必需項)

ApolloStudio內部本身不帶SDK,故開發之前需將SDK完整的複製到ApolloStudio,本篇中以官方最新發布的支援二次開發的2.14.9開發版EzCad2為例(官網下載的版本不包含SDK,擁有SDK的版本需得到官方分發或網上獲取,2.14.9版本軟體內建了SDK,不同硬體可能需要不同版本的軟體進行支援,本文以官方V4板卡配2.14.9軟體為例),開發之前需將該版本EzCad2軟體目錄內所有檔案(包括資料夾)完整複製到ApolloStudio程式根目錄中,切記。

開始使用

編輯模板

EzCad2軟體二次開發是通過標記物件的物件名來找到對應物件的,所以我們事先在需要替換物件內容之前對物件名稱進行命名:

 我們這裡在模板內放置一個文字資料,然後對其進行命名為“1”,儲存模板,並命名模板檔名為1.ezd。(設定為二維碼也可以,我們這裡為了直觀簡潔直接使用文字資料,圖片目前不支援替換,主要原因是不同尺寸格式來源的圖片在EzCad2裡面需要對影象的工藝引數進行定製才可達到令人滿意的效果,尚不具備批量自動處理的能力(官方證實),有替代方案是可以通過建立多個模板,對不同圖案進行個性定製後,通過模板檔名進行呼叫(模板內文字屬性的內容還是可以替換的))

ApolloStudio配置

 在ApolloStudio中任務列表中組態介面單元、指令碼邏輯單元以及金橙子2D標刻卡這3個任務項。(備註:基本應用場景配置到此結束,後續如果需要使用遠端通訊控制標刻這一擴充套件功能,則還需新增TCP/IP網口通訊模組,並配置協議為金橙子板卡外控協議(該模式下ApolloStudio必須為伺服器模式,遠端呼叫方為客戶端))

介面與指令碼

在本案例中,我們想要實現可以通過介面按鈕或者板卡輸入引腳(板卡預設自帶8進8出共16個自定義IO點)進行觸發標刻,並且介面同步顯示標刻的內容。

UI設計

  我們設定一個命名為pic1的影象框,然後配置一個按鈕,值得注意的是需要設定按鈕的“控制元件自定義事件”,如上圖所示:點選按鈕後,點選控制元件自定義事件,在彈框中選擇“繫結按鈕標誌位”,這裡我們設定數值序號為0,然後新增事件,確定儲存事件即可,儲存該UI佈局檔案。

指令碼設計

#-*- coding: UTF-8 -*-
#載入內嵌模組
import clr,sys,time,datetime

#執行迴圈掃描
while True:
	#根據按鈕0的觸發標誌位或者板卡硬體輸入0的觸發來啟用操作流程
	if AS.Func_UI_Button_GetValue(0) or AS.Func_LM_JCZ_GetInPort(0):
		AS.Func_LM_JCZ_LoadMarkFile("D:\\Download\\1.ezd")#載入EzCad2模板檔案
		AS.Func_LM_JCZ_ChangeContent("1", "hello myworld!")#替換物件內容
		AS.Func_UI_PictureBox_SetImage("pic1", AS.Func_LM_JCZ_GetPreImg(640, 480))#介面顯示預覽影象
		AS.Func_LM_JCZ_DoMark(False)#開始標刻,帶True表示飛行標刻模式
		AS.Func_UI_Button_SetValue(0, False)#復位按鈕觸發標誌位
	time.sleep(0.5)#系統掃描週期,減少CPU佔用率

指令碼中我們通過設定一個迴圈掃描,週期性的檢測按鈕和IO輸入點被觸發的訊號來執行操作。

結果驗證 

ApolloStudio在啟動時會嘗試連線板卡,這裡需要等待10秒左右(筆者也不清楚官方為何設計這麼久),之後點選打標,即可看到影象顯示,並且已驅動鐳射機對預覽影象進行加工操作(由於設定了迴圈掃描,故該操作過程是可以重複觸發的)。

***********************************************************************************************************************************************

ApolloStudio最新版下載地址:

連結:https://pan.baidu.com/s/1UAgivKlM4E9dNT06V9spUw 密碼:a316

歡迎加入Q群:793683827 進行學習交流