龔龍強 楊娜 劉露 郭維夏 徐友誼
上汽通用五菱汽車股份有限公司重慶分公司 重慶市 401320
傳統線平衡墻的繪制是由班段長在excel 中進行手工繪制,對照SOS/ 工藝流程要素工時表挨個進行要素的識別復制信息手工選擇excel 單元格進行要素填寫單元格的合并邊框繪制,及區分增值、非增值、步行時間后的顏色填充,存在嚴重的工作效率低、花費時間久、一致性差等問題,成為使用線平衡墻改進工具的一大障礙。
Python 由荷蘭數學和計算機科學研究學會的Guido van Rossum 于1990 年代初設計,作為一門叫做ABC 語言的替代品。Python 提供了高效的高級數據結構,還能簡單有效地面向對象編程。Python 語法和動態類型,以及解釋型語言的本質,使它成為多數平臺上寫腳本和快速開發應用的編程語言,隨著版本的不斷更新和語言新功能的添加,逐漸被用于獨立的、大型項目的開發。
openpyxl 模塊是一個讀寫 Excel(部分更早格式不支持)文檔的 Python 庫,不僅能夠同時讀取和修改 Excel 文檔,而且可以對Excel 文件內單元格進行詳細設置,包括單元格樣式等內容。使用 openpyxl可以讀寫xltm、 xltx、 xlsm、 xlsx 等類型的文件,且可以處理數據量較大的Excel 文件,跨平臺處理大量數據是其它模塊沒法相比的。因此openpyxl 成為處理 Excel 復雜問題的首選庫函數。本文對python 及其模塊的安裝和基本使用不作詳細闡述。
繪制線平衡墻的基礎準備工作就是工作要素及其時間的統計工作,根據不同的要求標準結合自身情況可多次測量選用平均值或最低重復值等數據。完成數據的測量后,按工位號、工作要素、操作時間、步行時間等不同類型時間對數據進行統計整理及匯總至excel 文件形成基礎數據源,部分成熟企業該數據屬于常規工藝數據可稍作適應性修改即可。
2.2.1 編程開篇引入模塊:引入打開及創建excel 文件的模塊:from openpyxl import load_workbook, Workbook;引入時間與系統模塊:import time, os;引入格式相關模塊:from openpyxl.styles import PatternFill, Alignment, Side, Border, Font。

圖1 線平衡模板說明

圖2 數據源整理
2.2.2 讀取數據源:使用load_workbook()、active、datas=ws.iter_rows(values_only=True)等函數方法讀取數據源信息。運用for 循環遍歷所有數據并通過if 判斷篩選剔除表頭等非要素信息內容,將剩余內容append()為新的列表或字典數據源備用。
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') # 定義綠色。邊框及顏色等填充可以根據自己需求自行調整。
2.2.4 起始點初始值賦值:定義并賦值繪圖左右區(繪圖時根據左右工位分別繪制在左右側)起始位置值、周期時間、加權時間、工位號、車型等基礎數據的初始值,如左側列起始值2:s_coll = 2;周期時間0:ct = 0;工位號起始值0:station = 0。
2.2.5 循環數據開始繪圖:wb1 = load_workbook(path)/ Workbook()打開模板表格或新建表格后獲取活動表 ws1 = wb1.active,通過for 循環遍歷之前準備的列表或字典數據源,讀取要素內容、操作時間、步行時間信息,并通過if 逐一判定是否為上個循環工位、左側或右側工位,是否有步行時間等選擇,并根據上一步累加后的單元格位置cell(行, 列)開始填寫操作要素ws1.cell(s_rowl-ot, s_coll).value = ‘要素內容’、合并單元格ws1.merge_cells(start_row, start_column, end_row, end_column),填涂顏色ws1.cell(s_rowl,s_coll).fill = red、格式設置等操作,計算下個循環的行列初始值、周期時間累加、加權時間累等下個循環準備工作。待循環至出現下一個工位時補充最終加權時間,并開始新的工位循環逐一填繪,直至循環完成。
2.2.6 生成的線平衡墻的保存,for 循環后,通過input 輸入或默認保存地址并通過save() 函數保存最終自動繪制的線平衡墻表格。
2.2.7 exe 的 轉 換:Python 編 寫的程序代碼在無python 環境的電腦上不能正常使用,在創建了APP 后可以使用 PyInstaller 模塊將 Python 程序生成可直接運行的程序;常用命令格式為“pyinstaller -F name.py”, 將 名 為name.py 的python 程序轉化為exe 格式app。這個程序就可以被分發到對應的 Windows 或 Mac OS X 平臺上運行使用。如果需要更美觀的界面也可使用PYQT5 等界面模塊進行開發界面,本文不再描述。至此線平衡墻的自動繪制編程基本完成。保存后的線平衡可根據最終需求自行增加指示線、備注說明等內容。

圖3 繪制整體流程邏輯

圖4 自動繪制線平衡效果

主要改進方法及目標包括:通過工位間的要素互換和增減來減少瓶頸工位的工作量,達到所有工位都能在節拍內完成工作或是減少團隊成員工作量的差距;通過工位間的要素互換和增減來提高生產效率為削減工位或提高線速提供依據;通過動作研究等方法進行一些CIP 活動尋找最經濟有效的工作方法減少等待時間、非增值時間和步行時間,消除浪費。目標可包括且不限于沒有瓶頸工位(所有工位周期時間都在實際單件工時內)、沒有多余等待(每個工位等待時間少)、線平衡率在90% 以上、線平衡效率在95%以上等。

圖5 APP 使用教程

圖6 線平衡率&線平衡效率舉例
前后對比效率提升,手工繪制單一車型累計需要約20-30 小時不等,自動繪制僅需約1 分鐘。除此之外自動繪制程序可完全解決要素內容信息、格式、填涂等一致性不足問題。
通過學習與使用python 及其模塊編程開發軟件,實現自動化線平衡墻繪制功能替代低效率的手工繪,讓計算機替代人工重復性工作,大大提升線平衡墻工具的使用效率及準確率,為改善改進工作提供了有力保障與支持。通過持續的改善提升活動,降低企業生產運行成本、提升效率,持續增加企業競爭力。