MESとERPを連携させる方法: 現場の視点から
Disclosure: M365.FM host Mirko Peters works at iFAKT GmbH. This page describes the company factually; paid partnerships and links are labelled as advertising.
By Mirko Peters ·
MES側から見たMESとERPの連携方法です。現場がERPに求めること、ERPがMESから必要とすること、マスターデータの突き合わせ方法、そしてプロジェクトで避けるべき落とし穴を解説します。
Automatically translated with AI from the original post. Read the English original
MESとERPを連携させるには、まずデータオブジェクトとメッセージの短いリストで合意したうえで、次の順序で構築します。マスターデータ、受注リリース、現場からのフィードバック、エラー処理です。MESの立場から見ると、作業はシンプルです。何を作るかを受け取り、何が起きたかを報告する。難しいのは、両システムが「品目」「工程」「完了」の意味を揃えること、そしてエラーの責任者を決めることです。この記事は、プロジェクトの現場側を担当する工場長の方を対象としています。
重要なポイント
- MESの立場から見ると、連携には2つの役割があります。何を、どのデータで作るかを受け取ること、そして何が起きたかをERPが計上できる形式で報告することです。
- 製造指示のメッセージと参照データは別のフローです。MicrosoftのMESインターフェイスでは、製品、部品表、ルートはデータエンティティまたはODataを通じて個別に取得されます。
- インターフェイスを構築する前に、「完了」の意味、廃棄の報告方法、修正の仕組みについて合意してください。
- マスターデータには、責任者、識別子のマッピング、定期的な照合が必要です。MESはERPの作業手順や時間に含まれるすべての誤りを引き継ぐためです。
- 意図的に失敗をテストし、失敗したメッセージを誰が確認するかを決めてください。拒否された確認応答が静かにキューに溜まると、最終的に在庫差異につながるためです。
MESはERPから何を必要としますか?
3つあり、それぞれ異なる経路で連携します。
1つ目は指示です。MESには、製品、数量、日付、そして後の状態変更を含む確定済みの製造指示が必要です。MicrosoftのサードパーティMES向けインターフェイスでは、MESは指示が確定された時や状態が変更された時のビジネスイベントを待ち受けます。他のERPでは別の仕組みを使いますが、原則は同じです。ERPが通知し、MESが受け取ります。
2つ目は参照データです。これは製品の作り方の説明で、品目、部品表、ルート、段取り時間が含まれます。同じMicrosoftのページでは、そのメッセージは現場の出来事のみを対象とし、マスターデータは含まないと説明されています。MESは製品、部品表、ルートをデータエンティティまたはODataを通じてERPから取得します。これは見落とされがちなので、2つ目の連携作業として計画してください。
3つ目はリソースに関する情報です。ISA-95規格では、企業レベルと運用レベルの間でシステムが交換する情報を4種類定義しています。それは、資材、設備、物理資産、そして役割と資格を持つ人員です。MESがスキルや設備の能力に基づいて作業を割り当てる場合、ERPまたは人事システムにある情報が必要です。どのシステムを正とするかを明確にしてください。
SAP、Dynamics 365、その他のERPシステムを利用している場合でも、確認すべき点は同じです。変わるのは技術的な名称だけです。
MESからERPには何を返す必要がありますか?
これは確認メッセージと考えるとわかりやすいです。Microsoft のドキュメントでは、インターフェイスについて次のプロセスが挙げられています。注文の開始、製造数量と廃棄数量の報告、材料消費の報告、作業にかかった時間の報告、注文の終了です。それぞれに別のメッセージタイプが使われます。終了メッセージに必要なのは製造指図番号だけです。一方、数量メッセージには明細行が含まれ、品目、良品数量、廃棄の場合のエラー原因を含めることができます。
そのモデルをそのまま真似る必要はありません。ただし、構築の前に次の点を決めておく必要があります。
- 確認はどの粒度で行いますか。注文単位、作業単位、それともシフト単位でしょうか。
- オペレーターは部分数量を確認できますか。その場合、ERP はどのように処理しますか。
- 廃棄はどのように報告しますか。また、両方のシステムにどのような理由コードが存在しますか。
- 材料消費は設備側で計測しますか。それとも ERP が部品表から計算しますか。
- ミスはどのように修正しますか。取り消し、調整、再確認のどれで対応しますか。
- 「完了」と「終了」はそれぞれ何を意味しますか。Microsoft の生産プロセスの概要では、完了として報告すると在庫に品目が計上され、注文を終了すると実際原価が計算され、以降の原価計上がブロックされるとされています。ご利用の ERP では、この境界線が別の場所に引かれているかもしれません。
最後の質問が、最も議論を呼びやすいものです。計画、財務、品質の各部門は同じステータスを参照しますが、それぞれが異なるものを求めています。インターフェイスを書き始める前に、3 部門すべてを交えた短い会議で定義を固めておきましょう。
MES と ERP の間でマスターデータはどのように突き合わせますか。
注文はトランザクションです。一方、マスターデータはプロセスを記述したものであり、MES はその中のあらゆる誤りを引き継ぎます。たとえば 20 分かかる作業が 12 分と登録されたままのルーティングは、誰かが修正するまで現場では性能の問題に見えてしまいます。
パイロットラインについて、次の点を検討してください。
- 各オブジェクトの所有者を明確にします。一般的な取り決めとしては、ERP が品目、部品表、ルーティングを所有し、MES が設備設定と作業指示を所有する形が挙げられます。これはあくまで推奨であり、規則ではありません。重要なのは、誰も推測しなくて済むことです。
- 識別子を対応付けます。ERP の作業センター「WC-110」が、現場では「Press 3」と呼ばれているかもしれません。ISA-95 にはこのための部分もあります。そのエイリアスサービスモデルは、同等の識別子をどのように関連付けて対応付けるかを定義しています。詳細はISA による標準規格の説明を参照してください。
- 作業を比較します。ERP のルーティングに記載された工程と、オペレーターが実際に行っている工程を一覧にします。検査や面取りの工程が現場にしか存在しないといった違いは、すぐに見つかるはずです。
- 単位、稼働カレンダー、タイムゾーンを確認します。個数と箱数の違い、現地時間と UTC の違いは、静かに誤りを生みます。
- 変更ルールを決めます。設計部門がルーティングを変更したとき、誰が MES に伝えるのか、どのくらいの速さで届くのか、そして進行中の注文はどうなるのかを明確にします。
- 比較を定期的に繰り返します。マスターデータは時間とともにずれていくためです。
ここで仮の事例を挙げます。ERP のルーティングには作業が 3 つありますが、オペレーターは 5 つの作業を行っています。検査と面取りは数年前に追加されたものの、ルーティングに登録されていなかったためです。MES はルーティングに含まれる内容しか報告できません。その結果、ERP では作業 3 が遅延しているように見えますが、現場は ERP が知らない工程に取り組んでいるだけです。誰かが間違ったことをしたわけではありません。データが不完全なのです。この例は創作ですが、実際の工場ではこの種のギャップが日常的に起きています。
ファイル形式については、B2MML を知っておく価値があります。MESA によれば、B2MML は ISA-95 を実装する XML スキーマ定義の集合で、ERP などの業務システムと MES などの製造システムを連携させるために使われます。バージョン 7 では、最初の JSON スキーマが追加されました。公開されたスキーマを使えば、共通の出発点となる語彙を得られます。ただし、各フィールドの意味について合意する必要がなくなるわけではありません。
インターフェイスは、問題が起きたときにどのように振る舞うべきでしょうか。
正常系は、デモでは動作します。プロジェクトの時間は、それ以外の経路に使いましょう。
Microsoftのドキュメントは、ある製品がどのように動作するかを示しており、自社のベンダーに質問する際の良い材料になります。同じ製造指図に対するメッセージは、受信した順に処理されます。異なる指図のメッセージは、バッチジョブが並列に実行されるため、順序どおりに処理されないことがあります。失敗したメッセージは最大3回まで再試行され、その後失敗としてマークされます。監視ページでは、失敗したメッセージを確認、修正、再処理でき、アラートによって IT 管理者や工場のフロアマネージャーに通知することもできます。
これを、任意のERPとMESの組み合わせに向けた4つの質問に置き換えてみましょう。
- たとえば指図がすでに終了している場合など、ERPが拒否した完了報告はどうなりますか。
- 誰が、どのくらいの速さで失敗に気づきますか。
- ERPが利用できない間も現場は作業を続けられ、後から正しい順序ですべてを送信できますか。
- 同じ完了報告が二度届いても、二重に計上されませんか。
失敗したメッセージの担当者が決まっていないと、月末に在庫差異が見つかるまで放置されてしまいます。チームではなく、個人の名前を決めておきましょう。
生産形態によって連携方法は変わりますか。
はい、変わります。ISA-95の実装に関するAutomation Worldの記事では、受注設計生産(エンジニアリング・トゥ・オーダー)は、基幹系と制御系がほぼリアルタイムで情報を交換する必要があるため、おそらく最も要求の厳しい連携だとされています。航空宇宙産業がその例です。設計が計画を左右する一方で、実行中に変更が生じることがあります。変更が発生した場合、計画に反映されるまで実行は一時停止され、検査の追加などの新たな工程が現場に送られます。同じ記事は、規格の解釈がベンダーによって異なると、相互運用性の問題を引き起こす可能性があると警告しています。
そこから2つの教訓が導けます。製品が受注ごとに構成または設計される場合は、変更のケースを最後ではなく最初のパイロットに組み込んでください。また、規格ベースのインターフェースは自社のデータでテストしてください。「標準」は「同一」を意味しないからです。
MESとERPの連携は、どのような手順で進めればよいでしょうか。
対象範囲は小さく、確認は毎日行いましょう。
- 1つのラインと1つの製品ファミリーを選びます。
- オブジェクト、送信元、受信先、トリガー、頻度、担当者を含むインターフェース表を作成します。担当者が書かれていない行が、最初のリスクです。
- 上記のとおり、その製品ファミリーのマスターデータを照合します。
- ステータスと、完了、スクラップ、手直しの意味について合意します。
- まず、指図、開始と完了の報告を構築します。その後で、資材と時間を追加します。
- 失敗を意図的にテストします。誤った数量を送る、インターフェースを停止する、再開する、重複データを送る、といった操作を行います。
- 稼働日にすでに進行中の指図をどう扱うか決めておきます。
- 新しいフローを数週間、従来のプロセスと並行して実行し、両方のシステムで良品数、スクラップ、工数、指図ごとの資材使用量を毎日比較します。
- オペレーターにとっての追加作業を数えましょう。MESでの報告に紙の帳票より時間がかかるなら、さらに展開する前にその理由を突き止めてください。
- 差異が説明できた場合にのみ、次のラインへ展開します。
よくある間違い
- マスターデータを、継続的な作業ではなく一度きりの読み込みとして扱うこと。
- ERP側の視点だけでインターフェースを設計し、現場が行っている作業の詳細をMESが報告できないこと。
- 同じステータス名を、システムごとに異なる意味で使うこと。
- 本番稼働時に進行中の指図についてのルールを定めていないこと。
- 正常系のみをテストすること。
- 失敗したメッセージの担当者を決めないまま放置すること。
- オペレーターに、同じデータを両方のシステムに二度入力させること。
Polarisが適する場面
課題がERPの計画と現場の間のループにある場合は、iFAKT Polarisが検討候補の1つになります。iFAKTは、Polarisを、ERPデータと連携する製造向けのAIとデジタルツインと説明しています。Polaris Designerモジュールは、ERPデータ、部品表、工程時間、リソース構成を、製品・工程・リソースのナレッジグラフに変換します。Polaris Operatorモジュールは、計画を時間単位のタスクとして現場に届け、進捗、遅延、中断の情報を計画へフィードバックします。在庫、原価計算、トレーサビリティのためにERPでどの完了報告を計上しなければならないかは別の問題です。ツールに何を任せるかを決める前に、まずそれらを書き出しておいてください。
関連トピック
- ISA-95をわかりやすく解説:ERPレベルと運用レベルのそれぞれに属する活動
- クローズドループ計画:現場からの確認がその後のスケジュールをどう変えるか
- 工場ネットワークと業務ネットワークの接続を守る:アカウント、セグメンテーション、インターフェースのパッチ適用
- MESがなくても現場報告はできる:スキャンと簡単な確認で対応できる範囲
次のステップ
製品ファミリーを1つ選び、MESとERPの間で移動しなければならないすべてのオブジェクトを、送信元、受信先、責任者とともに表にまとめてください。MESとERPの連携で予期せぬ問題を避けたいなら、この表をITチームとベンダーとの最初の会議に持ち込んでください。