基于Marlin的3D打印云制造平台研究
2022-08-18朱文琦邰鑫
朱文琦,邰鑫
(河南工业职业技术学院,河南 南阳 473000)
0 引言
当前的3D打印机固件有很多种,其中Sprinter、Marlin是使用的人最多[1]。Sprinter功能相对简单,基本的功能齐全,而Marlin的功能相对复杂、强大。Marlin固件是应用于桌面级3D打印机的较流行固件中的一种,因为其开源的特点,很多桌面级或工业级3D打印机中都是基于该固件。
Marlin是基于Atmel Mega2560开发的固件。Arduino Mega2560采用了基于USB接口的核心电路板,可以提供54路数字输入输出,满足需要大量IO接口的应用需求。Marlin固件的功能包括:驱动控制板、读取与解析G代码、控制挤出头和加热板的温度、检测挤出头和加热板的温度以及读取SD卡、支持LCD等,唯独不支持网络连接,而且Marlin硬件并不包含以太网接口,所以给使用Marlin而有远程网络打印需求的用户带来很多不便[2]。本文基于W5x00网络接口扩展板针对Marlin进行改造,使其具备了可连接到云打印平台的属性和功能,对于LAN而言可以方便地建立集群管理,满足更多应用场合的需求。
1 当前的网络接口方式
当前大多数基于Marlin的网络打印采用了另接一块ARM板,通过ARM板上的网络接口与外界进行网络连接,同时通过USB串口与Mega2560进行通信[3]。也就是说,这块ARM板是连接LAN/WAN与Mega2560主板之间的桥梁。如图1所示,ARM板可以是用户自己定制的板卡(图1(a)),也可以是通用的树莓派(Raspberry Pi 3B)控制板卡[4](图1(b))。
图1 当前的网络连接方式
这块ARM包含一个操作系统,比如说嵌入式Linux系统。目前很多企业和组织采用的是基于图1(b)的连接架构,即使用当前比较流行的OctoPrint开源应用[5]。这就需要基于树莓派和python安装OctoPrint的免费开源软件。
需要说明的是,不管图1(a)方案还是图1(b)方案,都需要增加额外的硬件,所以成本较高,而且需要两块板卡,也不利于打印机内部硬件布局安排。
2 基于W5x00的网络接口设计
基于国外客户的需求,需要短期内给现有打印机增加网络接口功能,并提供基本的远程打印功能,如,打印文件传输、打印开始、打印暂停/继续、打印停止、打印状态查询以及打印机日志记录等。因此寻找一种更方便快捷、低成本的,同时在不修改打印机机械结构的前提下,增加3D打印机网络接口,使其可以接入云制造平台[6]。
2.1 需求分析
因用户要求在不影响原打印机的机械结构和外形以及原本地打印工作机制和流程的前提下,新增打印文件远程传输、远程打印启动、打印暂停、打印停止、打印状态获取、托盘回零、远程热床等基本打印功能。因此硬件设计的要求是最大化地保留原有硬件和软件,缩短项目开发和产品上市的时间。根据不同网络接口方式优缺点的比较,最终选择了基于W5x00的网络接口方式。其优点是兼容性好,开发周期短,而且后期可以合成到Mega2560主板上。由于只有一块主板,更便于安装和维护,不需要修改机械结构和外形。
2.2 W5x00网络接口的优点
W5x00是目前网络通信的首选。因为它自带TCP/IP协议栈的支持,只需要写有限的初始化代码就可以使用,不像以往的网络模块还要写读写函数、报文控制等其他驱动相关程序;而且它只需要SPI总线接口,即可完成网络和单片机MCU之间的通信,速度和数据可靠性也有一定的保证[7]。
该系列中,W5100是一款多功能的单片网络接口芯片,内部集成有10/100以太网控制器,由于其高集成、高稳定、高性能和低成本的特点,一直大量用于嵌入式系统中。W5200是W5100的升级版,与W5100相比,W5200支持高速SPI总线(≤100MHz),支持8个独立的端口同时连接。W5100只有4个独立端口。W5200具备32 KB内部通信缓冲,W5100只有16KB。而W5500与W5200扩展板相比,增加了POE供电、网络唤醒模式、集成主控板等功能,此外,W5500主控板使用了一个新的高效SPI协议,支持80MHz通信速率,从而能够更好地实现高速网络通信[8]。本项目最终选择W5500做了网络控制芯片并和主板进行集成控制。
3 3D打印机集群化管理
在3D打印机增加了网络接口后,即可内部组网,进行集群化管理。如图2所示,不同类型的3D打印机在配置了网络接口卡IP地址后,通过交换机/路由器组成LAN,打印机管理员可通过集群系统控制单元控制整个集群网络内部的3D打印机。数据库服务器用于存储打印文件和数据,可以支持某些没有内置Flash打印机上的大文件打印,而且不需要存储介质SD卡或者U盘来传递文件。这样能够满足很多现代化企业的“无盘化”办公管理。安全控制服务器是用来保护网内数据的安全和起到外网访问防火墙的作用,通过设置访问策略,可避免非法用户或者非法物理地址或者IP地址的访问[9]。这3个服务器也可以根据企业实际情况全部建立在同一台计算机上,由一名管理员统一管理。外部Internet的访问可以通过Wi-Fi从手机或者笔记本接入,通过在交换机/路由器上的虚拟服务器配置建立端口转发机制,既可以实现公网内网的访问转换,也可以通过免费或开源的3D云打印软件,如3DPrinterOS,实现互联网的远程打印和管理。
图2 3D打印机集群化管理
4 云制造服务平台构建
4.1 云3D打印制造服务平台架构
在3D打印机上加上标准的以太网接口,使每台3D打印机获得自己的身份识别IP地址或者MAC地址后,就可以把打印机连到3D打印云制造服务平台,使自己的3D打印机服务于整个打印服务平台。
图3是云3D打印制造服务平台架构图。整个3D打印云制造服务平台体系是结合网络化服务平台的特点,把异地的3D打印资源集中到一个服务中心,使其可以被统一管理、规划和调度,更充分地利用整个平台的资源为更多的用户服务[10]。如图3所示,目前使用的3D打印云制造服务平台体系,它由物理层、构架层、设施层、服务层、应用层和用户层组成。
图3 3D打印云制造服务平台架构图
整个云制造平台包含多种终端用户,其中门户网站提供入口和空间服务,而其他云端资源提供方和云端资源需求方通过移动终端、PC终端或者其他终端来进行云制造服务平台的访问。应用层即云制造服务平台的应用程序,它可以是基于B/S的网页服务,也可以是基于C/S的应用服务[11]。服务层即整个系统可以提供的多项功能与服务,包括资源管理、数据管理、知识管理、用户管理等内部系统管理服务,也包含资源调度、作业管理、运行监控、安全管理等流程上的管理服务,另外还包含服务监控、服务评价、QoS管理等质量监督等过程管理服务[12]。设施层是从用户角度所能看到的物理装备,即通过构造层封装过后的设施接口,提供给用户的一个整体的、模块化后的打印服务单元。构造层对具体的物理层进行封装和打包,通过虚拟化、模块化、组件化、逻辑化具体的3D打印机相关资源为可管理的计算服务、软件服务、设备服务、创新服务等。物理层即具体的资源层,它可能是硬件,比如说3D打印设备,也可以是软件,比如说切片能力、模型修复能力等[13]。
3D打印云制造服务平台由资源提供方、资源需求方、平台服务方、平台运营方等多方共同参与,采取服务收费模式或者会员收费模式提供服务。资源提供方提供3D打印设备、设计资源,制造资源、创新资源等3D打印相关资源;资源需求方向服务平台提交有关3D打印需求业务;平台服务方提供云制造服务平台的核心技术;平台运营方负责对平台的业务进行运营管理,如平台使用情况统计、制造资源特性归类等,以指导平台服务方进行相应的3D打印云制造服务平台的技术开发、实施和商业化运营[14]。
4.2 人机交互
图4为云3D打印的打印机配置接口,打印机通过Ethernet接入局域网或者广域网,再连接到云服务器并启动远程打印服务(remote service),可在云打印网络中注册和登记,可被云打印识别有关的机型、可打印材料和可用状态等相关信息。同时在打印机配置端也可以主动断开连接(disconnect),这样可以在打印出错时及时做出故障处理。
图4 3D打印机远程服务界面
图5为云打印服务的用户接口,采用的是3DPrinterOS的云打印系统,用户可以在任何一台计算机通过接入Internet访问云服务器,在该接口可以执行云打印操作。远程云打印包括增加文件到打印队列(ADD FILES)、新建打印任务(CREATE FILE)、切片(SLICE)、修复模型(REPAIR)、布局修改(LAYOUT)等常用云打印服务相关的操作。
图5 云3D打印制造服务用户接口
5 结语
对3D打印机进行了集群化改造,每台3D打印机都增加了网络接口并连接到云打印服务器,构建了企业的云打印平台,大大提高了打印机的利用率,成果如下[15]:
1)实现了无盘打印。很多大中型企业有保密需求,3D打印模型和Gcode文件不能通过U盘或sd卡拷贝。在打印机增加了云接口以后,不再需要中间介质拷贝,避免了重要文件的泄密风险。
2)提高了打印机的利用效率。在满足打印机本地打印需求的情况下,假如打印机仍有空闲,可以给外部客户提供打印服务。
3)方便管理人员集中管理。对于大中型3D打印机集群,可以更方便地被管理人员统一管理。管理者在办公室或者家中就可以方便地获取到整个车间或者分布在不同地域甚至全球多个厂区所有接入网络的3D打印机状态,并能进行操作和控制。生产管理人员可以更加清晰地了解和掌控多个打印机集群的生产情况。