生産工程管理支援システム -検索Webサービスの実行自動化- 情報処理学会 第76回全国大会 2014年3月13日 松江工業高等専門学校 情報工学科 山品壮隆
発表の流れ 1. はじめに 2. システム概要 3. システムの実行 4. おわりに 2.1 システムの機能 2.2 システムの構成 2.1 システムの機能 2.2 システムの構成 2.3 GUIシステム 3. システムの実行 4. おわりに 4.1 まとめ 4.2 今後の課題
1.はじめに 研究の背景 金属加工会社(A社) ・月平均500~600種類の金属加工 受注品毎の加工工程順決定 → 監督者の仕事 受注品毎の加工工程順決定 → 監督者の仕事 ☆自動化されていない!! 作業経験に基づく手作業で大変 そのため,監督者の労力,負担が大きい. この作業は……
過去の作業データ → 加工工程順の決定や標準加工工程が求まれば → 監督者の負担減. 改善するために, 過去の作業データ → 加工工程順の決定や標準加工工程が求まれば → 監督者の負担減. 各種検索Webサービスを開発. しかし,Webサービスの実行には, クライアントプログラム(以下,スタブ)が必要. ☆スタブの操作は難しい より簡単にWebサービスを実行したい. その実現のため
そこで, スタブの実行自動化を可能に + GUIによるより簡単な操作 これらを可能にする, を開発した. Webサービス実行自動化システム
2.システム概要 監督者がより容易に 利用可能にする. Webサービスの実行を一元化し, GUI上の操作を可能にするシステムを開発した. 第一目標 監督者がより容易に 利用可能にする. Webサービスの実行を一元化し, GUI上の操作を可能にするシステムを開発した.
2.1 システムの機能 金属加工 → 加工図面に従って行われ, 同じ品名でも,加工図面が異なる場合があり,図面ごとに加工工程順も変わる. 2.1 システムの機能 金属加工 → 加工図面に従って行われ, 同じ品名でも,加工図面が異なる場合があり,図面ごとに加工工程順も変わる. 加工図面A 品名A 加工図面B
よって, ①品名-加工図番-作番 対応表の抽出, ②加工図番に対応する作番の加工工程順を 抽出・比較をすることで, ③加工工程の把握と過去の工程順確認が可能. ①,②の機能を持つWebサービスを作成し, Webサービス実行自動化システムにスタブを組み込んだ. その実現のため
2.2 システムの構成 サーバ フレームワーク 機能 Apache Axis2 Webサービスの開発 Apache Tomcat7 2.2 システムの構成 サーバ フレームワーク 機能 Apache Axis2 Webサービスの開発 Apache Tomcat7 Webサービスの配備,運用 Apache Jena RDFデータの作成,SPARQLによる検索 MySQL データベース
予稿 図1 Web サービス・サーバとGUI システム構成図 Apache Axis2 Apache Tomcat7 データベース MySQL 配備 検索 実行依頼 実行結果 GUIシステム ユーザPC スタブ クライアント 予稿 図1 Web サービス・サーバとGUI システム構成図
配備するWebサービスについて SOAP型Webサービスとして開発. ・Webサービス1: -加工図番-品名-作番 対応表抽出 ・Webサービス2: -作番毎加工工程順抽出 二種類のWebサービスをApache Axis2ベースに作成し,Apache Tomcat7上に配備.
Webサービス1:加工図番-品名-作番 対応表抽出 加工図番指定
Webサービス2:作番毎加工工程順抽出 作番指定 RDFデータに変換
Webサービス配備 Apache Tomcat7
2.3 Guiシステム Java Swingで開発. スタブの実行を行い,実行結果を出力エリアに表示.
Webサービス切替により,入力可能領域が変わる 初期画面 Webサービス切替により,入力可能領域が変わる Webサービス切替 Webサービスの実行結果を比較しやすくするために,出力エリアを二つ設定.
getInputStream()による結果取得 本システムでは, スタブの実行自動化を実現させた. Webサービスの選択後,実行ボタンを押す. exec()による実行 GUIシステム スタブ getInputStream()による結果取得
問題 スタブの実行には外部ライブラリが必要. あらかじめ,使用PCにクラスパスの設定を行えば問題は解決するが…… 本システムを使用する全PCに クラスパスの設定を行わなければならない それは面倒…… 本システム単体で動かしたい……
GUIによるスタブの実行自動化が可能になった. そこで, このバッチファイルをexec()で実行することによって,GUIシステム単体でスタブの実行が可能に. クラスパスの設定 バッチファイル スタブの実行 両方実行 GUIによるスタブの実行自動化が可能になった.
3.システムの実行 Webサービス選択 Webサービス1 Webサービス2 必要な入力フィールドだけが編集可能になって, どこにデータを入力すればいいのか分かりやすい.
Webサービスの実行 Webサービス実行 Webサービス1 Webサービス2 図面番号-品名-作番 対応表 表示 作番の加工工程順 表示 対応表 表示 作番の加工工程順 表示 比較もしやすい
・本研究で各種検索・抽出処理を行うWebサービスの実行自動化をGUIにより達成した. 4.おわりに 4.1 まとめ ・本研究で各種検索・抽出処理を行うWebサービスの実行自動化をGUIにより達成した. ・これにより監督者の負荷の低減,加工工程の事前把握が容易になり,ミスが減少する.
4.2 今後の課題 ・現在,GUIシステムにより表示されている結果はスタブの実行結果を取得し,そのまま表示しているものである. ・これを必要に応じて選択/加工などの二次処理が可能になればより柔軟性の高いシステムになると考えている.
御清聴,ありがとうございました.
1.はじめに ターゲット:金属加工会社(A社) 月500~600種類の金属加工がある. ・加工工程の決定は監督者が判断. ・情報の電子化が不十分,紙面を用いた指示. ・リアルタイムでの工程進捗管理ができていない.
研究の背景‐問題点 監督者の作業負荷の増加. 作業待ちにともなう機器の稼働率低下. 納期遅れや原価割れの判断が遅れる. 生産工程管理システムの導入によって改善可能ではあるが, 生産工程管理システムは高価 汎用システムの利用が難しく,カスタマイズが 不可欠. それらの問題解決のために,
生産工程管理システムの開発 開発目標 ①ロット毎のリアルタイム工程進捗管理機能の 実現(バーコードを利用したシステムを開発済) ②各種データの検索・集計機能実現(開発済) ③ロット毎の加工工程決定支援の自動化 (現状:工程順は監督者が決定し,紙面で指示) ④ロット毎の工程機器の自動割付最適化
2.システム概要 受注時に加工工程決定を自動化したい. 受注時には品名,加工図番等を入力. Webサービス化 ①過去の作業データ,受注データの分析 ②加工図番‐品名‐作番 対応表の作成 ③ロット番号‐加工工程順 対応表の作成 ④標準の加工工程,過去の工程順が分かる.
作業データ 優先順位表を参照 ロット番号
優先順位表 機械に割り当てられた 優先順位で判断
受注データ 加工図番
加工図番‐品名‐作番 対応表 加工図番指定 SOAP型Webサービスとして作成
ロット番号‐加工工程順 対応表 RDFデータに変換
加工図番‐品名‐ロット番号との対応テーブル 加工図番と品名は受注時に指定する. 加工図番 品名 作番 799-30752 ダンパーリング M0943 作番 M0943 1 TAL-510 NO.2 汎用旋盤 2 マシニングセンタ マシニング 3 DWC-90HA N0.3 ワイヤーカット 4 5 検査 これをGUIにより実行する.
GUIシステムについて なぜ,GUI化するのか? ・作業現場でも容易に実行できるようにするため. PCに不慣れな人でも視覚的で分かりやすくする 工夫を加えることで,入力データ指定の容易化 を可能にする. ・結果出力表示に工夫を加えるため. 見やすく,結果の比較などを容易にできる.
GUIシステム概要 Java SwingをベースにGUIシステムを作成. どのプラットフォームでも同じ外観と動作を保障 されたGUIを作成した. 二つのWebサービスのクライアントプログラム(以下,スタブ)を内包. スタブを内包し,裏で必要に応じ実行することで 結果を得ることを容易にした.
GUIシステム開発環境 目的 Apache Axis2 Webサービスの開発 Apache Tomcat7 Webサービスの配備,運用 Apache Jena RDFデータの作成,SPARQLによる検索 MySQL データベース
予稿 図1 Web サービス・サーバとGUI システム構成図 Apache Axis2 Apache Tomcat7 データベース MySQL 検索 実行依頼 実行結果 GUIシステム ユーザPC 予稿 図1 Web サービス・サーバとGUI システム構成図
WEBサービス配備
GUIシステム機能 選択されたWebサービスのスタブ実行 二画面による結果出力表示 選択されたWebサービスに対応する 入力フィールドの限定.
スタブ実行について GUIシステムには3つ内包している要素がある. ① スタブ ② バッチファイル ライブラリのクラスパスの設定と,スタブの実行を行う. ③ ライブラリ スタブを実行するために必要なライブラリ.
スタブ実行の仕組み‐1‐ exec()メソッドの実行 GUIシステム スタブ スタブ Javaアプリケーション getRuntime() オブジェクト また,スタブ実行は予稿の図2にあるサイクルに従って行っています.順を追って,説明しましょう. getInputStream() 結果 予稿図2 GUIシステムの処理の流れ
スタブ実行の仕組み-2- exec()メソッドは指定されたコマンドを実行するメソッド. GUIシステム スタブ スタブ Javaアプリケーション exec()メソッドは指定されたコマンドを実行するメソッド. exec()メソッドにより選択されたWebサービスに対応するbatファイルを実行. スタブのJavaアプリケーションが生成される.
スタブ実行の仕組み-3- getRuntime() メソッドの実行 スタブ Javaアプリケーション Runtime オブジェクト getRuntime()メソッドは実行中のJavaアプリケーションに関連したRuntimeオブジェクトを返すメソッド. getRuntime()メソッドにより,スタブのJavaアプリケーションのRuntimeオブジェクトを返します.
getInputStream()メソッドは スタブ実行の仕組み-4- getInputStream() Runtime オブジェクト 結果 getInputStream()メソッドは
スタブ 本システムでは,Webサービスの実行依頼から実行結果の受け取りを行うクライアントプログラムをスタブとする. これにより,GUIシステムのプログラムから通信を意識しなくてもサーバ上のWebサービスを呼び出せるようにした.
Batファイル スタブを実行するために,コアAPIに含まれない外部のライブラリを使用する必要があった. GUIシステムの中では,exec()でスタブを実行する.そのため,外部のライブラリにクラスパスを通すこととスタブの実行を同時に行わなければならなかった. そこで,バッチファイルを用いてそのどちらも実行できるよう記述し,exec()でバッチファイルを実行することで,問題なくスタブを実行することが出来た.
Webサービスの実行結果の取得 exec()はサブプロセスを管理するためのProcessオブジェクトを作成する. また,getInputStream()はサブプロセスから文字を取得するメソッド.これにより,スタブに返ってきたWebサービスの実行結果をGUIシステムが取得することが出来る.
本システムでは, ①exec()によりサブプロセスでスタブを実行し, ②サブプロセスの入力ストリームを取得する getInputStream()で結果を取得した後 ③結果出力エリアに表示. することによってスタブを実行,実行結果を受け取っている.