朱文琦,邰鑫
(河南工業(yè)職業(yè)技術(shù)學院,河南 南陽 473000)
當前的3D打印機固件有很多種,其中Sprinter、Marlin是使用的人最多[1]。Sprinter功能相對簡單,基本的功能齊全,而Marlin的功能相對復雜、強大。Marlin固件是應(yīng)用于桌面級3D打印機的較流行固件中的一種,因為其開源的特點,很多桌面級或工業(yè)級3D打印機中都是基于該固件。
Marlin是基于Atmel Mega2560開發(fā)的固件。Arduino Mega2560采用了基于USB接口的核心電路板,可以提供54路數(shù)字輸入輸出,滿足需要大量IO接口的應(yīng)用需求。Marlin固件的功能包括:驅(qū)動控制板、讀取與解析G代碼、控制擠出頭和加熱板的溫度、檢測擠出頭和加熱板的溫度以及讀取SD卡、支持LCD等,唯獨不支持網(wǎng)絡(luò)連接,而且Marlin硬件并不包含以太網(wǎng)接口,所以給使用Marlin而有遠程網(wǎng)絡(luò)打印需求的用戶帶來很多不便[2]。本文基于W5x00網(wǎng)絡(luò)接口擴展板針對Marlin進行改造,使其具備了可連接到云打印平臺的屬性和功能,對于LAN而言可以方便地建立集群管理,滿足更多應(yīng)用場合的需求。
當前大多數(shù)基于Marlin的網(wǎng)絡(luò)打印采用了另接一塊ARM板,通過ARM板上的網(wǎng)絡(luò)接口與外界進行網(wǎng)絡(luò)連接,同時通過USB串口與Mega2560進行通信[3]。也就是說,這塊ARM板是連接LAN/WAN與Mega2560主板之間的橋梁。如圖1所示,ARM板可以是用戶自己定制的板卡(圖1(a)),也可以是通用的樹莓派(Raspberry Pi 3B)控制板卡[4](圖1(b))。
圖1 當前的網(wǎng)絡(luò)連接方式
這塊ARM包含一個操作系統(tǒng),比如說嵌入式Linux系統(tǒng)。目前很多企業(yè)和組織采用的是基于圖1(b)的連接架構(gòu),即使用當前比較流行的OctoPrint開源應(yīng)用[5]。這就需要基于樹莓派和python安裝OctoPrint的免費開源軟件。
需要說明的是,不管圖1(a)方案還是圖1(b)方案,都需要增加額外的硬件,所以成本較高,而且需要兩塊板卡,也不利于打印機內(nèi)部硬件布局安排。
基于國外客戶的需求,需要短期內(nèi)給現(xiàn)有打印機增加網(wǎng)絡(luò)接口功能,并提供基本的遠程打印功能,如,打印文件傳輸、打印開始、打印暫停/繼續(xù)、打印停止、打印狀態(tài)查詢以及打印機日志記錄等。因此尋找一種更方便快捷、低成本的,同時在不修改打印機機械結(jié)構(gòu)的前提下,增加3D打印機網(wǎng)絡(luò)接口,使其可以接入云制造平臺[6]。
因用戶要求在不影響原打印機的機械結(jié)構(gòu)和外形以及原本地打印工作機制和流程的前提下,新增打印文件遠程傳輸、遠程打印啟動、打印暫停、打印停止、打印狀態(tài)獲取、托盤回零、遠程熱床等基本打印功能。因此硬件設(shè)計的要求是最大化地保留原有硬件和軟件,縮短項目開發(fā)和產(chǎn)品上市的時間。根據(jù)不同網(wǎng)絡(luò)接口方式優(yōu)缺點的比較,最終選擇了基于W5x00的網(wǎng)絡(luò)接口方式。其優(yōu)點是兼容性好,開發(fā)周期短,而且后期可以合成到Mega2560主板上。由于只有一塊主板,更便于安裝和維護,不需要修改機械結(jié)構(gòu)和外形。
W5x00是目前網(wǎng)絡(luò)通信的首選。因為它自帶TCP/IP協(xié)議棧的支持,只需要寫有限的初始化代碼就可以使用,不像以往的網(wǎng)絡(luò)模塊還要寫讀寫函數(shù)、報文控制等其他驅(qū)動相關(guān)程序;而且它只需要SPI總線接口,即可完成網(wǎng)絡(luò)和單片機MCU之間的通信,速度和數(shù)據(jù)可靠性也有一定的保證[7]。
該系列中,W5100是一款多功能的單片網(wǎng)絡(luò)接口芯片,內(nèi)部集成有10/100以太網(wǎng)控制器,由于其高集成、高穩(wěn)定、高性能和低成本的特點,一直大量用于嵌入式系統(tǒng)中。W5200是W5100的升級版,與W5100相比,W5200支持高速SPI總線(≤100MHz),支持8個獨立的端口同時連接。W5100只有4個獨立端口。W5200具備32 KB內(nèi)部通信緩沖,W5100只有16KB。而W5500與W5200擴展板相比,增加了POE供電、網(wǎng)絡(luò)喚醒模式、集成主控板等功能,此外,W5500主控板使用了一個新的高效SPI協(xié)議,支持80MHz通信速率,從而能夠更好地實現(xiàn)高速網(wǎng)絡(luò)通信[8]。本項目最終選擇W5500做了網(wǎng)絡(luò)控制芯片并和主板進行集成控制。
在3D打印機增加了網(wǎng)絡(luò)接口后,即可內(nèi)部組網(wǎng),進行集群化管理。如圖2所示,不同類型的3D打印機在配置了網(wǎng)絡(luò)接口卡IP地址后,通過交換機/路由器組成LAN,打印機管理員可通過集群系統(tǒng)控制單元控制整個集群網(wǎng)絡(luò)內(nèi)部的3D打印機。數(shù)據(jù)庫服務(wù)器用于存儲打印文件和數(shù)據(jù),可以支持某些沒有內(nèi)置Flash打印機上的大文件打印,而且不需要存儲介質(zhì)SD卡或者U盤來傳遞文件。這樣能夠滿足很多現(xiàn)代化企業(yè)的“無盤化”辦公管理。安全控制服務(wù)器是用來保護網(wǎng)內(nèi)數(shù)據(jù)的安全和起到外網(wǎng)訪問防火墻的作用,通過設(shè)置訪問策略,可避免非法用戶或者非法物理地址或者IP地址的訪問[9]。這3個服務(wù)器也可以根據(jù)企業(yè)實際情況全部建立在同一臺計算機上,由一名管理員統(tǒng)一管理。外部Internet的訪問可以通過Wi-Fi從手機或者筆記本接入,通過在交換機/路由器上的虛擬服務(wù)器配置建立端口轉(zhuǎn)發(fā)機制,既可以實現(xiàn)公網(wǎng)內(nèi)網(wǎng)的訪問轉(zhuǎn)換,也可以通過免費或開源的3D云打印軟件,如3DPrinterOS,實現(xiàn)互聯(lián)網(wǎng)的遠程打印和管理。
圖2 3D打印機集群化管理
在3D打印機上加上標準的以太網(wǎng)接口,使每臺3D打印機獲得自己的身份識別IP地址或者MAC地址后,就可以把打印機連到3D打印云制造服務(wù)平臺,使自己的3D打印機服務(wù)于整個打印服務(wù)平臺。
圖3是云3D打印制造服務(wù)平臺架構(gòu)圖。整個3D打印云制造服務(wù)平臺體系是結(jié)合網(wǎng)絡(luò)化服務(wù)平臺的特點,把異地的3D打印資源集中到一個服務(wù)中心,使其可以被統(tǒng)一管理、規(guī)劃和調(diào)度,更充分地利用整個平臺的資源為更多的用戶服務(wù)[10]。如圖3所示,目前使用的3D打印云制造服務(wù)平臺體系,它由物理層、構(gòu)架層、設(shè)施層、服務(wù)層、應(yīng)用層和用戶層組成。
圖3 3D打印云制造服務(wù)平臺架構(gòu)圖
整個云制造平臺包含多種終端用戶,其中門戶網(wǎng)站提供入口和空間服務(wù),而其他云端資源提供方和云端資源需求方通過移動終端、PC終端或者其他終端來進行云制造服務(wù)平臺的訪問。應(yīng)用層即云制造服務(wù)平臺的應(yīng)用程序,它可以是基于B/S的網(wǎng)頁服務(wù),也可以是基于C/S的應(yīng)用服務(wù)[11]。服務(wù)層即整個系統(tǒng)可以提供的多項功能與服務(wù),包括資源管理、數(shù)據(jù)管理、知識管理、用戶管理等內(nèi)部系統(tǒng)管理服務(wù),也包含資源調(diào)度、作業(yè)管理、運行監(jiān)控、安全管理等流程上的管理服務(wù),另外還包含服務(wù)監(jiān)控、服務(wù)評價、QoS管理等質(zhì)量監(jiān)督等過程管理服務(wù)[12]。設(shè)施層是從用戶角度所能看到的物理裝備,即通過構(gòu)造層封裝過后的設(shè)施接口,提供給用戶的一個整體的、模塊化后的打印服務(wù)單元。構(gòu)造層對具體的物理層進行封裝和打包,通過虛擬化、模塊化、組件化、邏輯化具體的3D打印機相關(guān)資源為可管理的計算服務(wù)、軟件服務(wù)、設(shè)備服務(wù)、創(chuàng)新服務(wù)等。物理層即具體的資源層,它可能是硬件,比如說3D打印設(shè)備,也可以是軟件,比如說切片能力、模型修復能力等[13]。
3D打印云制造服務(wù)平臺由資源提供方、資源需求方、平臺服務(wù)方、平臺運營方等多方共同參與,采取服務(wù)收費模式或者會員收費模式提供服務(wù)。資源提供方提供3D打印設(shè)備、設(shè)計資源,制造資源、創(chuàng)新資源等3D打印相關(guān)資源;資源需求方向服務(wù)平臺提交有關(guān)3D打印需求業(yè)務(wù);平臺服務(wù)方提供云制造服務(wù)平臺的核心技術(shù);平臺運營方負責對平臺的業(yè)務(wù)進行運營管理,如平臺使用情況統(tǒng)計、制造資源特性歸類等,以指導平臺服務(wù)方進行相應(yīng)的3D打印云制造服務(wù)平臺的技術(shù)開發(fā)、實施和商業(yè)化運營[14]。
圖4為云3D打印的打印機配置接口,打印機通過Ethernet接入局域網(wǎng)或者廣域網(wǎng),再連接到云服務(wù)器并啟動遠程打印服務(wù)(remote service),可在云打印網(wǎng)絡(luò)中注冊和登記,可被云打印識別有關(guān)的機型、可打印材料和可用狀態(tài)等相關(guān)信息。同時在打印機配置端也可以主動斷開連接(disconnect),這樣可以在打印出錯時及時做出故障處理。
圖4 3D打印機遠程服務(wù)界面
圖5為云打印服務(wù)的用戶接口,采用的是3DPrinterOS的云打印系統(tǒng),用戶可以在任何一臺計算機通過接入Internet訪問云服務(wù)器,在該接口可以執(zhí)行云打印操作。遠程云打印包括增加文件到打印隊列(ADD FILES)、新建打印任務(wù)(CREATE FILE)、切片(SLICE)、修復模型(REPAIR)、布局修改(LAYOUT)等常用云打印服務(wù)相關(guān)的操作。
圖5 云3D打印制造服務(wù)用戶接口
對3D打印機進行了集群化改造,每臺3D打印機都增加了網(wǎng)絡(luò)接口并連接到云打印服務(wù)器,構(gòu)建了企業(yè)的云打印平臺,大大提高了打印機的利用率,成果如下[15]:
1)實現(xiàn)了無盤打印。很多大中型企業(yè)有保密需求,3D打印模型和Gcode文件不能通過U盤或sd卡拷貝。在打印機增加了云接口以后,不再需要中間介質(zhì)拷貝,避免了重要文件的泄密風險。
2)提高了打印機的利用效率。在滿足打印機本地打印需求的情況下,假如打印機仍有空閑,可以給外部客戶提供打印服務(wù)。
3)方便管理人員集中管理。對于大中型3D打印機集群,可以更方便地被管理人員統(tǒng)一管理。管理者在辦公室或者家中就可以方便地獲取到整個車間或者分布在不同地域甚至全球多個廠區(qū)所有接入網(wǎng)絡(luò)的3D打印機狀態(tài),并能進行操作和控制。生產(chǎn)管理人員可以更加清晰地了解和掌控多個打印機集群的生產(chǎn)情況。