龔龍強 楊娜 劉露 郭維夏 徐友誼
上汽通用五菱汽車股份有限公司重慶分公司 重慶市 401320
傳統(tǒng)線平衡墻的繪制是由班段長在excel 中進行手工繪制,對照SOS/ 工藝流程要素工時表挨個進行要素的識別復(fù)制信息手工選擇excel 單元格進行要素填寫單元格的合并邊框繪制,及區(qū)分增值、非增值、步行時間后的顏色填充,存在嚴重的工作效率低、花費時間久、一致性差等問題,成為使用線平衡墻改進工具的一大障礙。
Python 由荷蘭數(shù)學(xué)和計算機科學(xué)研究學(xué)會的Guido van Rossum 于1990 年代初設(shè)計,作為一門叫做ABC 語言的替代品。Python 提供了高效的高級數(shù)據(jù)結(jié)構(gòu),還能簡單有效地面向?qū)ο缶幊?。Python 語法和動態(tài)類型,以及解釋型語言的本質(zhì),使它成為多數(shù)平臺上寫腳本和快速開發(fā)應(yīng)用的編程語言,隨著版本的不斷更新和語言新功能的添加,逐漸被用于獨立的、大型項目的開發(fā)。
openpyxl 模塊是一個讀寫 Excel(部分更早格式不支持)文檔的 Python 庫,不僅能夠同時讀取和修改 Excel 文檔,而且可以對Excel 文件內(nèi)單元格進行詳細設(shè)置,包括單元格樣式等內(nèi)容。使用 openpyxl可以讀寫xltm、 xltx、 xlsm、 xlsx 等類型的文件,且可以處理數(shù)據(jù)量較大的Excel 文件,跨平臺處理大量數(shù)據(jù)是其它模塊沒法相比的。因此openpyxl 成為處理 Excel 復(fù)雜問題的首選庫函數(shù)。本文對python 及其模塊的安裝和基本使用不作詳細闡述。
繪制線平衡墻的基礎(chǔ)準備工作就是工作要素及其時間的統(tǒng)計工作,根據(jù)不同的要求標(biāo)準結(jié)合自身情況可多次測量選用平均值或最低重復(fù)值等數(shù)據(jù)。完成數(shù)據(jù)的測量后,按工位號、工作要素、操作時間、步行時間等不同類型時間對數(shù)據(jù)進行統(tǒng)計整理及匯總至excel 文件形成基礎(chǔ)數(shù)據(jù)源,部分成熟企業(yè)該數(shù)據(jù)屬于常規(guī)工藝數(shù)據(jù)可稍作適應(yīng)性修改即可。
2.2.1 編程開篇引入模塊:引入打開及創(chuàng)建excel 文件的模塊:from openpyxl import load_workbook, Workbook;引入時間與系統(tǒng)模塊:import time, os;引入格式相關(guān)模塊:from openpyxl.styles import PatternFill, Alignment, Side, Border, Font。
圖1 線平衡模板說明
圖2 數(shù)據(jù)源整理
2.2.2 讀取數(shù)據(jù)源:使用load_workbook()、active、datas=ws.iter_rows(values_only=True)等函數(shù)方法讀取數(shù)據(jù)源信息。運用for 循環(huán)遍歷所有數(shù)據(jù)并通過if 判斷篩選剔除表頭等非要素信息內(nèi)容,將剩余內(nèi)容append()為新的列表或字典數(shù)據(jù)源備用。
2.2.3 格 式 準 備: 通 過align = Alignment(horizontal='center', vertical='center') # 定義對齊樣式橫向居中縱向居中;side = Side('thin') # 定義邊樣式為細條;border = Border(bottom=side, left=side, right=side, top=side)#定義上下左右邊框為細條;red = PatternFill('solid', fgColor='FF0000') # 定義紅色;yellow = PatternFill('solid',fgColor='FFFF00')# 定 義黃 色;green = PatternFill('solid', fgColor='008000') # 定義綠色。邊框及顏色等填充可以根據(jù)自己需求自行調(diào)整。
2.2.4 起始點初始值賦值:定義并賦值繪圖左右區(qū)(繪圖時根據(jù)左右工位分別繪制在左右側(cè))起始位置值、周期時間、加權(quán)時間、工位號、車型等基礎(chǔ)數(shù)據(jù)的初始值,如左側(cè)列起始值2:s_coll = 2;周期時間0:ct = 0;工位號起始值0:station = 0。
2.2.5 循環(huán)數(shù)據(jù)開始繪圖:wb1 = load_workbook(path)/ Workbook()打開模板表格或新建表格后獲取活動表 ws1 = wb1.active,通過for 循環(huán)遍歷之前準備的列表或字典數(shù)據(jù)源,讀取要素內(nèi)容、操作時間、步行時間信息,并通過if 逐一判定是否為上個循環(huán)工位、左側(cè)或右側(cè)工位,是否有步行時間等選擇,并根據(jù)上一步累加后的單元格位置cell(行, 列)開始填寫操作要素ws1.cell(s_rowl-ot, s_coll).value = ‘要素內(nèi)容’、合并單元格ws1.merge_cells(start_row, start_column, end_row, end_column),填涂顏色ws1.cell(s_rowl,s_coll).fill = red、格式設(shè)置等操作,計算下個循環(huán)的行列初始值、周期時間累加、加權(quán)時間累等下個循環(huán)準備工作。待循環(huán)至出現(xiàn)下一個工位時補充最終加權(quán)時間,并開始新的工位循環(huán)逐一填繪,直至循環(huán)完成。
2.2.6 生成的線平衡墻的保存,for 循環(huán)后,通過input 輸入或默認保存地址并通過save() 函數(shù)保存最終自動繪制的線平衡墻表格。
2.2.7 exe 的 轉(zhuǎn) 換:Python 編 寫的程序代碼在無python 環(huán)境的電腦上不能正常使用,在創(chuàng)建了APP 后可以使用 PyInstaller 模塊將 Python 程序生成可直接運行的程序;常用命令格式為“pyinstaller -F name.py”, 將 名 為name.py 的python 程序轉(zhuǎn)化為exe 格式app。這個程序就可以被分發(fā)到對應(yīng)的 Windows 或 Mac OS X 平臺上運行使用。如果需要更美觀的界面也可使用PYQT5 等界面模塊進行開發(fā)界面,本文不再描述。至此線平衡墻的自動繪制編程基本完成。保存后的線平衡可根據(jù)最終需求自行增加指示線、備注說明等內(nèi)容。
圖3 繪制整體流程邏輯
圖4 自動繪制線平衡效果
主要改進方法及目標(biāo)包括:通過工位間的要素互換和增減來減少瓶頸工位的工作量,達到所有工位都能在節(jié)拍內(nèi)完成工作或是減少團隊成員工作量的差距;通過工位間的要素互換和增減來提高生產(chǎn)效率為削減工位或提高線速提供依據(jù);通過動作研究等方法進行一些CIP 活動尋找最經(jīng)濟有效的工作方法減少等待時間、非增值時間和步行時間,消除浪費。目標(biāo)可包括且不限于沒有瓶頸工位(所有工位周期時間都在實際單件工時內(nèi))、沒有多余等待(每個工位等待時間少)、線平衡率在90% 以上、線平衡效率在95%以上等。
圖5 APP 使用教程
圖6 線平衡率&線平衡效率舉例
前后對比效率提升,手工繪制單一車型累計需要約20-30 小時不等,自動繪制僅需約1 分鐘。除此之外自動繪制程序可完全解決要素內(nèi)容信息、格式、填涂等一致性不足問題。
通過學(xué)習(xí)與使用python 及其模塊編程開發(fā)軟件,實現(xiàn)自動化線平衡墻繪制功能替代低效率的手工繪,讓計算機替代人工重復(fù)性工作,大大提升線平衡墻工具的使用效率及準確率,為改善改進工作提供了有力保障與支持。通過持續(xù)的改善提升活動,降低企業(yè)生產(chǎn)運行成本、提升效率,持續(xù)增加企業(yè)競爭力。