MESXプロジェクト活動報告〜計画/実行/制御層の情報連携とその実証

MfgX MESXジョイントプロジェクト
三菱電機（株） 岩津 賢

2006. 6.14 製造業XMLフォーラム2006

1

内容
 MESXとは
 MESX検討成果
 実証システム

2006. 6.14 製造業XMLフォーラム2006

2

MESXジョイントプロジェクト
 目的

APSとMESとをXMLにより連携させる仕組みの確立
 仕様のオープン化によるインタフェース設計の一元化
 組織

PSLXとFAOPによるMESX-JWGとして設立(03/4)
 MfgX内にMESXジョイントプロジェクトとして設立(06/4)


名称は5/15のMfgX運営委員会にて決定

製造業XML推進協議会(MfgX)

ものづくりAPS推進機構(PSLX)FAオープン推進協議会(FAOP)MESXジョイントプロジェクト(MESX)

2006. 6.14 製造業XMLフォーラム2006

3

MESX
ERP/APS

オフィス

業務・計画ｼｽﾃﾑ（計画系）

MES

工場

製造実行ｼｽﾃﾑ（実行系）

装置/コントローラ

工程

制御システム（制御系）

PSLXおよびFAOPで実行系の上下の層を検討
PSLX(計画系)ではAPS間、APS/ERP間のI/Fを規定
 FAOP(制御系)ではデバイス/コントローラ/装置のI/Fを中心に検討

ERP/APSと装置/ｺﾝﾄﾛｰﾗの間にはMESがある
この間を記述できなければシステム全体をトータルに表現できない→ PSLXとFAOPのジョイントで、XMLを利用した実用レベルの仕組みを構築したい

2006. 6.14 製造業XMLフォーラム20064これまでの経過概要


設立趣意書(03/4発足)


PSLXとFAOP-MICXメンバを中心にスタート

他標準の動向や進め方の枠組みをまとめた白書発行
ホワイトペーパ完了(03/5)⇒各層の定義などはIEC 62264 (S95)に沿う⇒インタフェースはエージェント間/オブジェクト間通信プロトコルとしてメッセージをXML定義する

ユースケース/モデル/インタフェース/メッセージ設計
 実証システム開発完了(06/2)


製造業XMLシンポジウム2006(06/2)にてデモ実施
 PSLX技術フォーラム2006(06/6)にてデモ実施2006. 6.14 製造業XMLフォーラム20065標準制定の手順
1. ユースケースの獲得

アクタ、目的、機能の実行による変化、 アクタとシステムの対話、などを含む「ユースケース記述」で表現

2. タイプ図の作成


UMLのクラス図の表記法で記述
実装方法を規定しないクラス、データ属性と操作

3. インタフェースの設計
4. メッセージの設計


KQML(Knowledge Query and Manipulation Language)を参考に、命令部とデータ部、制御部で構成XMLでエンコードする
2006. 6.14 製造業XMLフォーラム2006

6ユースケースの例
ユースケース名：異物混入の出荷品を特定する
アクタ：
品質保証担当者、生産技術者
目的：
適正な製品だけを出荷したい。
事前条件：
異物混入の発生した、系列、時刻（期間）、装置がわかっている。
手順：
1.アクタは異物混入の通知を受けて、このユースケースを起動する。
2.アクタは、系列、時刻（期間）、装置をシステムに入力する。
3.システムは、該当する時刻に該当装置内にあった仕掛品LOTを検索する。
4.システムは、該当する仕掛品LOTが使用された全出荷品と仕掛品を検索する。
5.システムは、該当する全出荷品、仕掛品を画面に表示し、印刷する。
：：
2006. 6.14 製造業XMLフォーラム2006

7

タイプ図

2006. 6.14 製造業XMLフォーラム2006

8シーケンス図2006. 6.14 製造業XMLフォーラム2006

9

MESXインタフェース設計の原則(1) インタフェースの命名 4-3層間はPSLXの標準に従い“PSLX”なるprefixを付ける
例：PSLXgetSchedule 製造指示を受ける


3-2層間は“MESX”なるprefixを付ける
例：MESXloadRecipe 指定した資源にレシピをロードする(2) メッセージの設計
 KQMLで記述した後、PSLXの規約に準拠したXMLタグで実装する(3) データの渡し方
 プラットフォームおよびテクノロジへの依存度を下げるために、層間は粗結合とする
 オブジェクト渡しとせず、オブジェクトの名前で呼ぶ
→名前空間の管理が必要(4) Façadeの想定
 呼び出し元はアプリケーション（ユースケース実現） 呼び出し先は各層に設けられたFaçadeとする
オブジェクトの名前とオブジェクトそのものとの対応づけはFaçadeが行う
2006. 6.14 製造業XMLフォーラム2006

10メッセージの設計例(1)
4層

3層

アプリ

PSLXgetSchedule()

Façade

製造指示を受ける

ドメイン

setSchedule()orchangeSchedule()

製造指示を受ける
PSLXgetSchedule()
製造指示を保存する
setSchedule()

製造指示の送信を要求するメッセージ(PSLXgetSchedule:message-type request:sender usecase-toReceiveTheManufacturingOrders:receiver facadeOf4thLayer:request-number 0037
:content (ManufacturingOrder(profile,start,makeitem,consumeitem,resource,instruction)):reply-with acknowledgment)
製造指示を送信する応答メッセージ(PSLXgetSchedule:message-type response:sender facadeOf4thLayer:receiver usecase-toReceiveTheManufacturingOrders:relate-request-number 0037
:content (ManufacturingOrder(#0001,start 20040303:182355,
makeitem (rope(f=s w=10 l=2000m p=12 st=2t a=b),qtty 32,container y),
consumeitem (wire(f=s w=1 l=2222m),qtty 320),
resource(VDD001),
instruction ‘do your best’)))

その工程の作業指示書を印刷する
printRecipe()［終了］

2006. 6.14 製造業XMLフォーラム2006

11メッセージの設計例(2)2層段取りの開始を指示する

Façadeアプリ

3層

そのジョブに割り当てられた資源（群）のうち利用可能なものを得る要求メッセージ(MESXgetAvailableResource:message-type request:sender usecase-toSetupTheWork:receiver facadeOf4thLayer:request-number 0037-002:content (ResourdeType(start=20050323)))

ドメイン

ジョブ:=getNextJob(工程ID)
ジョブ.setup()

VDD1:=ジョブ.資源.MESXgetAvailableResource()
VDD1.MESXloadRecipe(レシピ)VDD1.MESXsetParameter(parameterList)
VDD1.MESXwait()

ある工程で、次に実行すべきジョブを知る
getNextJob()
そのジョブを段取りする
setup()
段取り終了の報告を受ける
MESXnotifySetup()
切削する（NC）
startRun()
作業終了の報告を受ける
MESXnotifyTermination()
品質情報を記録する
addQualityInfo()

レシピ（NCプログラム）を送る要求メッセージ(MESXloadRecipe:message-type request:sender usecase-toSetupTheWork:receiver VDD1
:relate-request-number 0037-003:content (Recipe(...)))
運転パラメタを指定する送る要求メッセージ(MESXsetParameter:message-type request:sender usecase-toSetupTheWork:receiver VDD1
:relate-request-number 0037-004:content (Parameter (A(value1),B(value2),...)))
処理の終了を待つ要求メッセージ(MESXwait:message-type request:sender usecase-toSetupTheWork:receiver VDD1
:relate-request-number 0037-005)

作業実績を4層に通知する
PSLXnotifyTermination()［終了］

2006. 6.14 製造業XMLフォーラム2006

12定義したメッセージ
4層-3層
PSLXgetSchedule

生産計画を得る

PSLXsetProgress

製造実績を（ジョブ単位に）報告する

PSLXgetProcess

製造手順を知る

3層-2層
MESXisAvailable

資源を指定して、現時点での使用可否を知る

MESXloadRecipe

資源を指定して、そこにレシピ情報を渡す。
資源はそのタイプに応じてポリモルフィックに振る舞う資源を指定して、実行オーダ開始を指示する。

MESXstartExecution 資源はそのタイプに応じてポリモルフィックに振る舞う
MESXgetInformation 資源を指定して、実績情報を取得する
MESXwait

処理の終了通知を要求する（通知が来るまで非同期に待つ）

MESXnotifyEvent

資源で発生した事象（終了/異常発生）を報告する（非同期）2006. 6.14 製造業XMLフォーラム2006

13

実証デモ・対象工程
ワッシャー 製品概要

ワッシャーオーダー例
内径(mm)

10.0〜40.0

外径(mm)

20.0〜50.0

厚さ(mm)

1.0〜5.0

箱入り数(個)50 (一定)強度(kg/mm2)

50〜80

面精度(μm)10〜100オーダ
番号

個数

内径(mm)

外径(mm)

厚さ(mm)

強度(kg/mm2)

精度(μm)

O0001
O0002
O0003
O0004
O0005
O0006
O0007
O0008
O0009
O0010

102050
1030
1525
10
1550

10.0
10.0
15.0
25.0
15.0
10.0
25.0
15.0
25.0
10.0

22.0
22.0
36.0
48.0
36.0
22.0
48.0
36.0
48.0
22.0

1.6
1.6
2.6
4.0
2.6
1.6
4.0
2.6
4.0
1.6

65
65
75
55
75
65
55
75
55
65

40
4030
70
30
4070
3070
40

ワッシャー製造工程
搬送ｼｽﾃﾑ

旋盤

焼入機

切削
切削

焼入れ
焼入れ
搬送

研磨機

研磨
研磨搬送

検査梱包
検査梱包
搬送

2006. 6.14 製造業XMLフォーラム2006

14

実証デモ・ユースケース
生産計画システム（レベル4）

4層

生産計画を立てる注文を受ける

M-BOMを設定する

資源計画を立てる

営業担当

スケジュールする生産計画担当製造指示を出す

製造実績報告を受ける製造実施システム（レベル3）

3層<<extends>>

切削する（ＮＣ）

製造する

焼入れする

次工程に搬送する研磨する

製造指示を受ける製造実績を報告する

工程に作業指示をする

監督者

操業担当

工程内検査する
通い箱と製造番号を対応づける品証検査する

出荷伝票を印刷する

品証

出荷担当

装置制御システム（レベル2）

2層

レシピを受け取る作業の開始を報告する
工程間を移送する作業の終了を報告する

ＮＣ

作業状況を報告する

2006. 6.14 製造業XMLフォーラム2006

搬送装置

15

実証デモ・システム構成

2006. 6.14 製造業XMLフォーラム2006

16

実証デモ・機能構成

2006. 6.14 製造業XMLフォーラム2006

17

実証システム・シナリオ

2006. 6.14 製造業XMLフォーラム2006

18

実証デモ・XMLメッセージ

2006. 6.14 製造業XMLフォーラム2006

19

メッセージ例(1) – 実行オーダ開始
要求メッセージ（3層→2層）<m:MESXstartExecution
xmlns:m="http://www.mstc.or.jp/schema/mesx/1.0"><m:ExecutionOrder action="Add" id="001"
sender="EXPIO" transaction="0102" confirm="Always"><m:operation code="503" type="Execution"
status="Order" function="f001">
レシピのIDを<m:produce lot="aaa0001">
functionで指定<m:qty value="100"/></m:produce>
生産個数をqtyの<m:assign resource="NC_C"/></m:operation>
valueで指定</m:ExecutionOrder></m:MESXstartExecution>
対象資源をassignのresourceで指定

応答メッセージ（2層→3層）<m:MESXstartExecutionResponse
xmlns:m="http://www.mstc.or.jp/schema/mesx/1.0"><m:ExecutionOrder action="Confirm" id="001"
sender="MELSEC-001" transaction="0102">
受け付けた<m:operation code="503" type="Execution"
status="Order" function="f001"/>
実行オーダのID</m:ExecutionOrder></m:MESXstartExecutionResponse>
2006. 6.14 製造業XMLフォーラム2006

20

メッセージ例(2) – オーダ終了通知
要求メッセージ（2層→3層）<m:MESXnotifyEvent
xmlns:m="http://www.mstc.or.jp/schema/mesx/1.0"><m:ExecutionOrder action="Notify" id="001"
sender="MELSEC-001" transaction="0234"><m:operation code="503" type="Execution"
MESが認識する
status="Result">
発生した<m:end/>
実行オーダのID</m:operation>
事象の種別</m:ExecutionOrder></m:MESXnotifyEvent>
便宜上のレスポンス

応答メッセージ（2層→3層）<m:MESXnotifyEventResponse
xmlns:m="http://www.mstc.or.jp/schema/mesx/1.0"/>

2006. 6.14 製造業XMLフォーラム2006

21

実証システムによる評価
 規約化の効果

階層モデルの適用により、システム間の結合度を低くすることが可能（各システムの設計が独立）
 階層ごとに共通概念に基づくモデルを使用したため、システム間のインタフェース抽出、設計が容易
 共通のスキーマに基づくXMLメッセージの利用により、プラットフォームの違いの意識が不要

接続に要した工数： 10人日=5人×2日

 業務運用面での効果

設備やソフトウェア製品が容易に入れ替え可能
 階層化と機能の明確化により、各層でのKPIによる成績評価も可能
KPI: Key Performance Index

2006. 6.14 製造業XMLフォーラム2006

22

まとめ 実証システムでメッセージ設計の妥当性を確認
IEC 62264の生産作業管理における情報連携を実現

 MESXジョイントプロジェクトの今後の活動
IEC 62264の品質・保守の各作業管理の領域に拡大

標準仕様の策定、IEC 62264-3以降へのインプット

事例収集によるユースケース分析、モデル化が必要
MESXジョイントプロジェクトへの参加募集中
PSLX (OASIS PPS)との整合性の維持

機械振興協会との共同研究、常設展示、ORiN連携

2006. 6.14 製造業XMLフォーラム2006

23

おわり

ご静聴ありがとうございました

2006. 6.14 製造業XMLフォーラム2006

24