王賢平 杜春紅 顧正天 陳會娟
(上海西派埃智能化系統有限公司 上海 200233)
工業4.0[1]和工業互聯網是在新工業革命背景下分別產生于德國和美國的未來工業發展模式,“中國制造2025”也應運而生。工業互聯網整合了工業革命與網絡革命兩大優勢[2],將工業革命成果及其帶來的機器、機組和物理網絡與近年發展迅速的互聯網革命及其成果——智能設備、智能網絡和智能決策融合到一起[3-4]。玻璃蓋板行業,作為手機行業發展的技術支撐,其智能化與網絡化的生產管理實現顯得迫在眉睫。
目前,國內的玻璃蓋板生產行業,面臨著許多生產癥結,比如無法準確捕捉良率不達標原因,生產計劃更改無法及時傳達到生產和物料采購和使用混亂延誤生產等。本文根據當前玻璃蓋板生產行業的智能生產轉型,總結了玻璃蓋板的基本生產業務流程,在Spring、SpringMVC、Mybatis[8-9]框架的基礎上,集成了Activiti流程引擎[5-7],實現了PDM(Product Data Management)生產流程的動態引入,實現了從計劃到生產的業務流程的編碼設計與開發,同時完成前端Web頁面[10]的設計與開發。在廣東某玻璃蓋板生產企業的運營測試發現,本設計能正常、高效地支持并指導現場生產,具有很高的實用性。
由于玻璃蓋板行業產品的多樣性,導致每種產品的生產流程幾乎都有所差別,但基本工序幾乎不變。針對這種特性,本文采用Activiti動態編輯功能,針對不同產品,配置不同生產流程,從產品維度設計代碼與功能,指導整個生產運營。
Activiti官方文檔提供了集成Spring的方法,本文不多做介紹。本文集成Activiti依賴Mybatis作為持久層,通過net.sourceforge.jtds.jdbc.Driver鏈接Sqlsever數據庫。主要配置了SpringProcessEngineConfiguration、ProcessEngineFactoryBean及7大service。配置代碼如下所示:
class="org.activiti.spring.SpringProcessEngineConfiguration"> //數據源配置信息…
class= "org.activiti.spring.ProcessEngineFactoryBean"> ref="processEngineConfiguration" />
factory-method="getRepositoryService" /> factory-method="getRuntimeService" /> factory-method="getTaskService" /> factory-method="getHistoryService" /> factory-method="getManagementService" /> factory-method="getIdentityService" /> factory-method="getFormService"/> 本文將玻璃蓋板生產工藝流程通過Activiti流程定義表達,指導現場生產走向。系統通過遠程數據庫連接方式與PDM系統進行流程同步,在系統導入ERP任務單時完成流程導入。首先獲取流程名稱及流程節點,匹配工序庫中預設工序,自動生成整個產品的生產工藝模型TaskModel。主要方法代碼如下所示: List =processConfigService.selectListsByMastrCode(code); //處理PDM導入的數據 List //自動生成流程模型,返回模型id, String modelid=autoImport(data); Activiti生產的工藝模型圖如圖1所示。生成的工藝模型可審核后部署為流程定義ProcessDefinition。 圖1 Activiti生產工藝模型圖 本文將玻璃蓋板從計劃編制到審核,再到工單下發、報工和結轉結合為基本的業務流程,預先定義整個基本流程為: public final static String processDefKey="System_Produce"; //生產指導流程key, 流程設計圖如圖2所示。 圖2 業務主流程設計圖 在計劃創建時,啟動該流程,生成流程實例,自動將任務分配給計劃編制人員。代碼采用業務信息與流程信息雙向綁定,在流程實例中添加了業務ID,在業務實例中也保存了實例ID,計劃人員完成任務量、人和機配置后提交審核,流程進入審核節點,流程流轉時使用了Spring注解回滾,使得業務和流程任意一方出現問題,整個操作都會進行回滾。具體代碼如下: @Transactional @Override public int save(DailyPlan dailyPlan) { try{ dailyPlan.setWorkorderid(CommUtil.getUUID()); //生成日計劃同時生成對應工單的id,這樣即可將計劃與 //工單中的設備、人員分配進行同步 int res=0; Map ProcessInstance processInstance=workflowService.startWorkflow(dailyPlan.getId(), dailyPlan.getInsuser(), processDefKey,variables); if(processInstance!=null){ dailyPlan.setWforderid(processInstance.getId()); res=this.dailyPlanDao.insert(dailyPlan); } return res; }catch(Exception e){ throw new RuntimeException(); } } 登錄用戶可以根據登錄ID查看當前待辦,先獲取當前人的任務列表,然后將任務及實例存入ToDoTask實體中,在統計當前待辦時,可集中查看任務和流程實例信息。代碼如下所示: TaskQuery taskQuery=taskService.createTaskQuery().taskCandidateOrAssigned(userId); List TodoTask todoTask=new TodoTask(); todoTask.setProcessInstance(processInstance); ProcessDefinition processDefinition=getProcessDefinition(processInstance.getProcessDefinitionId()); todoTask.setProcessDefinition(processDefinition); 整個生產流程所有工單完成結轉后,生產流程結束。得到多個產品訂單生產進度統計及某日計劃的統計結果,如圖3和圖4所示(檢驗工序著重顯示)。 圖3 多個產品訂單生產進度統計 圖4 某產品訂單某日工序的計劃與實際產量 該系統以產品為主線,從ERP、PDM等系統獲取生產任務,按業務流程指導用戶完成任務單切割、日計劃編制、工單生產及生產反饋,使業務人員能及時了解生產訂單的生產詳情,準確指導生產人員生產。并且可以從工序、產品訂單等多個維度統計分析生產情況,從而及時準確調整生產情況,極大地節約了人力,有效地提高了生產效率與生產良率,對玻璃蓋板的精益生產起到很好的推動作用。 本文根據玻璃蓋板智能化轉型的業務需求,在SSM框架的基礎上,集成了Activiti工作流,實現了PDM生產流程的動態引入,實現了從計劃到生產的業務流程的編碼設計與開發。最后得到了計劃生產流程下的生產統計,實現了生產和控制的網絡化,克服了傳統生產的實時響應差的缺點。動態生產工藝流程及計劃生產流程方便了用戶在生產中及時調整產品工藝,執行生產過程等操作。現場的運營測試也證明了本文設計具有很高的實用性。1.2 生產流程動態引入

1.3 業務流程



2 實施效果
3 結 語