« 生産管理オタクは3/30に浜松へ! | トップページ | サロゲートキーと「とりあえずID」の違い »

2013.03.16

製造指示の設計と実装 (1)日程化

 現在開発中の「仕様書で動くOSS生産管理システム」から、部品表プロセッサにつづいて、「製造指示(製造指図,製造オーダとも)」について説明しよう。文字通り、具体的な製造を現場に指図したり、その実績を記録するための帳簿組織である。部品表や工程表といった基本生産情報を基礎として展開されるものだが、独特な問題を含んでいて想像以上にややこしい。しかしややこしいからこそ、適用事例を眺めておくことは意義深い。「日程化」、「開始と完了」、「外作」の3回に分けて説明しよう。

 まず、基礎となる部品表と工程表のデータモデルを確認しておこう(次図をクリックすれば拡大される)。品目毎に、製造するために必要な構成品の一覧を定義したものが部品表(部品構成)で、必要な工程の一覧を定義したものが工程表(製造工程明細)である。それぞれの構成品について投入先の工程が指定されるので、両者は「品目の子テーブル」として「兄弟」であるだけでなく、互いに関連している。

20130316a

 つづいて、製造指示まわりのデータモデルを見よう(次図)。製造したい品目を指定すれば上記のマスターが参照され、それぞれの展開データにもとづいてひとまとまりの製造指示が出来上がる。じっさい、上図のモデルと双子のように似ている。

20130316b

 さて、あらたに製造指示データを作っただけでは、まだ差立(さしたて。現場で指示を実作業に組み込むこと)できない。まず、それぞれの工程について作業区(ワークセンター)を割り当てる必要がある。工程というものは「切削」や「加工」といったあくまでも概念的なものでしかない。工程毎に「切削28号」とか「仕上げ作業場A1」といった具体的な機械や区画が指定されていなければ、現場では仕事のしようがない。

 じつは、製造指示に作業区を割り当てるのは単純な過程ではない。作業区毎に事前に「稼動計画」が立案される。すなわち、扱い品を制限した「タイムバケット」が決められている。たとえば切削28号では明日の午後いっぱいは「品目グループA」だけを生産する、といった調子で計画されたりする。こうすることで、バケット内で設定を切り替えるための手間(段取時間)を減らせるのである。したがって製造指示(製造工程明細)は、利用可能なバケットに沿わせる形で作業区に割り当てられなければいけない。これを製造指示の「日程化」というのだが、難しい課題のひとつだ。

 まず、作業区の「負荷」をいかに平準化するかが難しい。また、ひとつの製造指示において、各工程の稼動計画が前後関係の矛盾しない形で選択される必要もある。自動処理するにせよ手作業で日程化するにせよ、ややこしいコントロールが必要だ。私が昔開発したシステムでは、巨大なバッチ処理を作って手作業を軽減しようとがんばったが、なかなかきれいに日程化されずに苦労したものだ。

 この問題を鮮やかに解決したのが、イスラエルの物理学教授であるゴールドラット博士の「制約理論(TOC, Theory of constraints)」である。簡単に言えば「制約工程に注目してこれをこき使え。それ以外についてはどうでもいい」というアイデアだ。すべての工程について緻密に稼動計画を立てる必要はない。制約工程以外については、稼動計画を立てずに標準の生産性にもとづいて機械的に手番ずらし(リードタイムにもとづいて日程計算すること)しておけばじゅうぶんだし、稼働率を気にすべきでもない。

 もう少し具体的に説明しよう。製造指示が切削・加工・仕上げの3工程を経るものとして、キャパシティ(能力)が不足気味なのが加工工程だとしよう。この場合、日常的に加工作業がボトルネックになるので、これが「制約工程」である。この場合、加工工程についてだけ丁寧に稼動計画をたてて、製造指示毎に手作業でタイムバケットとリンクさせる。その前後の非制約工程については作業区を指定するだけでよく、そのうえで制約工程にあてがわれたタイムバケットの開始・終了時刻から前後に機械的に日程をずらす。差立順序、つまり、ひとつのタイムバケット内に複数存在する製造指示の実行順序については、現場の手馴れた判断にまかせておけばよい。

 これで、従来よりも効果的に現場を動かせるようになる。なぜなら、工程間の仕掛品滞留が制約工程の直前だけに集中するようになって、制約工程が負荷いっぱいにこき使われ、結果的に工場のスループットが増えるからだ。制約理論の真骨頂は「いかにモノゴトを正確に掌握するか」ではなく「管理をいかに合理的にサボるか」にある。手に余る問題までをコンピュータで扱いたがる傾向を持つ我々には、とくに傾聴に値する考え方だ。システム設計の詳しい説明については、拙書「生産管理・原価管理のためのデータモデリング」を参照してほしい。

 実際のアプリで動きを確認しよう。①は製造指示を新規登録したばかりの状態である。②の日程編集パネルに進んで、制約工程について③から稼動計画を選ぶ(その製造品を扱い可能なタイムバケットだけが一覧されている)。いずれかの行を選んで更新すると(②')、制約工程の開始・終了日時がタイムバケットのそれにセットされ、その前後の工程が自動的に手番ずらしされる(①')。人手でタイムバケットを選ぶ必要があるとはいえ、対象が制約工程だけで、しかもバケットの選択時に負荷状況を見れるようにもなっている。結果的に、最小限度の日程化コストで負荷を平準化できる。

20130316c

 この「仕様書で動くOSS生産管理システム」の実物は3/30に浜松で見てもらえるのだが、その後に切りのいいところで暫定公開する予定なので、ぜひ実際に動かしてみてほしい。生産管理の諸問題がぐっと身近に感じられるようになるだろう。

|

« 生産管理オタクは3/30に浜松へ! | トップページ | サロゲートキーと「とりあえずID」の違い »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/87674/56965466

この記事へのトラックバック一覧です: 製造指示の設計と実装 (1)日程化:

« 生産管理オタクは3/30に浜松へ! | トップページ | サロゲートキーと「とりあえずID」の違い »