主要工作機械予約状況確認システムの構築
宮崎大学 工学部教育研究支援技術センター○小島 丈英1. はじめにものづくり教育実践センター（以下、ものづくりセンターとする）では、主要工作機械（放電加工機・NC フ
ライス盤・汎用フライス盤（IWASHITA・日立精機）、マシニングセンタ、NC 旋盤）を使用する際は、ホワイトボード（450mm×600mm）を利用して一週間単位で予約を受け付けている。そして、朝礼時に当日の予約状況を確認し、教育研究支援技術センター（以下、技術センターとする）生産技術系職員内での情報の共有化を図っている。しかし、ホワイトボードでは大きさに限界があるため、一週間より先の予約が出来ない、予約できる時間帯が工作機械で統一されていない、遠い場所からでは予約の状況を確認しにくいなどの状況にあった。
そこで、これらの現状を改善するために、技術研修の一環として主要工作機械予約状況確認システム（以下、本システムとする）の構築に取り組むこととした。
本稿では、本システム構築の背景、構築スケジュール、システムの概要及び実装方法について報告する。
キーワード：Web ブラウザ，MySQL，PHP，CSS，XHTML

2. 背景
従来、ホワイトボードでは、縦軸が主要工作機械と時間帯、横軸が曜日と日付に定め、主要工作機械を使用する際は、その該当箇所に自分の名前を記入する、もしくは使用用途（講習、実習、学生）が書かれたマグネットを貼ることで予約を受け付けてきた（図 1）。また、予約を取消す際は、ホワイトボード内から情報を削除し、予約を変更する際は、情報を書き換えることで変更を行ってきた。
しかし、この方法では、ホワイトボードの大きさに限界があったこともあり、以下の問題点が起きていた。
・ 当日から 6 日後までしか予約することができない。

図 1 ホワイトボードによる予約
・ ホワイトボードが置かれている場所が固定されているため遠くからでは情報が把握しにくい。
方法
・ 予約する時間帯（半日単位・一日単位）が工作機械で異なり、統一性がない。
・ 枠が手狭で、記入できる量が限定されるため、情報が把握しにくい。
そこで、これらの問題点を改善するために、本システムの構築に取り組むこととした。なお、本システムは、一週間以上先の予約ができ、予約の時間帯を自由に選択できるようにするなどの機能を盛り込んだ上に、主要工作機械以外の工作機械についても予約できるような仕様とした。

3. 本システムの構築スケジュール
本システムは、以下のスケジュールの下、構築を行った。
平成 27 年 10 月～平成 27 年 12 月：

システムの設計と仕様書の作成

平成 28 年 1 月：

データベースサーバの選定（MySQL）とデータベース構築

平成 28 年 2 月～平成 28 年 6 月：

システムの実装（PHP + CSS + XHTML）

平成 28 年 7 月～平成 28 年 9 月

：

テスト運用

平成 28 年 10 月～：

本運用

4. 本システムの概要
本システムは、Web ブラウザを利用したシステムであり、生産技術系職員がものづくりセンター内の各自のパソコンから本システムへアクセスし、工作機械を使用するための予約や予約状況を確認できるようにするシステムである。予約状況については、従来のホワイトボードと同様に週単位で表示される他、月単位でも工作機械毎の予約状況が表示されるようにした。また、ホワイトボード上では大きさの関係上実現できなかった主要工作機械以外の工作機械（電気炉、各種溶接機、ガラス加工室など）についても、本システムでは、予約や予約状況を確認できるようにした。
さらに生産技術系技術長及び班長には、本システムの管理ユーザとしてユーザ ID とパスワードを付与し、予約の承認、予約内容の変更および予約の取消しができるようにした。
4.1 本システムの構成
本システムは、技術センターのサーバ上に構築した。
プログラム言語については、以前、経験のある PHP（PHP:Hypertext Preprocessor）を使用し、一部機能を拡充するために Java Script も使用した。
また、データベースサーバについては、データの蓄積と汎用性を踏まえ MySQL を使用して構築することとし、「使用者情報を格納するためのテーブル」、「工作機械の名前を格納するためのテーブル」、「使用用途を格納するためのテーブル」、「予約内容を格納するためのテーブル」の 4 つのテーブルを作成した。
さらに、画面デザインについては、XHTML（extensible Hyper Text Markup Language）を使用し、色などのデザインについては、スタイルシート言語の一つである CSS（Cascading Style Sheets）を使用した。
4.2 本システムを構成するページ
4.2.1 TOP ページ
図 2 に、生産技術系職員が閲覧できる現在の日付を起点にした一週間の予約状況を表示するページを示す。
このページは、本システムの TOP ページとし、ホワイトボードでの表示方法を引き継いでいる。表記内容は、
開始時間～終了時間、使用者名、使用用途とし、同じ枠内で時系列順に表示されるようにした（図 3）。
管理ユーザのみが閲覧できるページも別に作成し、このページでは、使用者名をクリックすることで予約内容の変更・取消しが行えるページに移動できるようにした。

終了時間

使用者名

使用用途

09:00 ～ 12:00

職員 A

(仮)加工

13:00 ～ 17:00

職員 B

加工

開始時間

図 3 表記例（拡大図）

図 2 TOP ページ
4.2.2 予約状況一覧（月別）ページ
図 4 に、生産技術系職員が閲覧できる月別の予約状況を表示するページを示す。枠内にある選択ダイアログ

ボックス（以下、選択ボックスとする）では、各工作機械が選択でき、現在までに予約されている一ケ月分の予約内容が図 3 の表記で表示される。また、翌月及び先月の予約内容が確認できる機能も備えている。

図 4 予約状況一覧（月別）ページ
4.2.3 新規予約ページ
図 5 に、新規予約のページを示す。このページでは、使用者名、使用機械、予約日、開始時間、終了時間、使用用途の項目を入力もしくは選択し、「仮予約申込」をクリックすることで仮予約をすることができる。以下にその流れを示す。
① 使用者名の選択
生産技術系職員が使用者として予約する際は、左側の選択ボックスから該当の職員名を選択する。
学生が、工作機械の使用を初めて予約する際は、右側の選択ボックスから「学生」を選択し、下のテキストボックスに学生の名前（苗字のみで可）と所属研究室を記入例に従い入力する。なお、二回目以降は右側の選択ボックス登録されるため、そこから該当する学生の名前を選択する。
② 使用機械の選択選択ボックスから予約する工作機械の名前を選択する。
③ 予約日の入力
テキストボックスをクリックし、カレンダー内から日付をクリックすることで、
図 5 新規予約ページ予約日が自動で入力される。

④ 開始時間と終了時間の入力
選択ボックスから開始時間と終了時間を 30 分単位で入力する。
⑤ 使用用途の入力
「加工」
「実習」
「講習会」
「研修」
「メンテナンス」「その他」の中から希望する使用用途を選択する。
4.2.4 予約承認ページ
管理ユーザがログインすると、TOP ページに現在承認待ちとなっている予約（使用用途に（仮）が付記されている予約）の件数が表示される。予約件数がある場合は、メインメニューの中にある予約承認を開くことで、現在承認待ちの予約件数及び予約内容を確認することができる（図 6）。その後、予約承認する場合は、「仮予約承認」をクリックすることで予約を承認することができる。その際、使用に付記されていた（仮）が削除される。
また、仮予約の内容に問題があれば、「仮予約取消し」をクリックすることで、仮予約は取消しとなり、データベースから削除される。

図 6 予約承認ページ
4.2.5 予約変更・取消しページ
変更及び取消す予約を抽出するために、まず日付指定により検索を行う。図 7 にその画面を示す。ここでは、検索する期間を選択し、「検索」ボタンをクリックすると、日付指定期間内の予約内容が一覧で出力される（図8）。予約内容を変更する際は、予約番号にチェックを入れた上で「予約内容変更」をクリックすると、予約内容変更フォームが表示される（図 9）。また、予約内容を取消す際は、番号にチェックを入れ、「予約取消し」をクリックするとデータベースから削除される。図 9 では、初期データとして変更前のデータが入力されており、変更したい項目のみを変更することで、入力の手間を省いている。
なお、管理ユーザのみが閲覧できる TOP ページや月別予約状況一覧内においても、使用者名をクリックすることで、図 9 にある予約内容変更フォームに移動できるようにした。

図 7 予約検索ページ

No

図 8 検索結果出力ページ

図 9 予約内容変更フォーム

5. 実装方法
実装方法については、主なものとして、予約状況を表示する処理、新規予約を登録する処理、管理ユーザがログインした後に行われる処理を説明する。
5.1 予約状況の表示処理
図 10 に予約状況を表示する処理のフローチャートを示し、具体的な処理の流れを説明する。なお、この処理は、一週間分の予約状況を表示する処理（週別）と一ヶ月間分の工作機械毎の予約状況を表示する処理（月別）で分岐される。また、週別、月別についても工作機械ごとにページを作成し、各処理を行わせることとしている。
5.1.1 予約状況の表示処理の流れ（週別）① 現在の日付と曜日を取得する。
② データベースより、工作機械のコードを取得する。
③ 現在の日付と工作機械のコードをキーに、予約番号、使用者名、工作機械名、予約日、開始時間、終了時間、工作機械の使用用途を取得する。
④ 取得したデータの中から、使用者名、開始時間、終了時間、使用用途を抽出し、ブラウザ内の所定箇所へ出力する。
⑤ 月曜日から金曜日まで個々に①～④までの処理が行われる。
5.1.2 予約状況の表示処理の流れ（月別）① 現在の日付が存在する月の初日を取得し、その日付の曜日と日数を取得する。
② データベースより、工作機械のコードを取得する。
③ 現在の日付と工作機械のコードをキーに、予約番号、使用者名、工作機械名、予約日、開始時間、終了時間、工作機械の使用用途を取得する。
④ 取得したデータの中から、使用者名、開始時間、終了時間、使用用途を抽出し、ブラウザ内の所定箇所へ出力する。
⑤ 月初めから月末日まで個々に①～④までの処理が行われる。

予約状況の表示処理
週別

月別
週別：月別

現在の日付と曜日を取得し、土日を除い現在の日付が存在する月の初日を取得し、そた 6 日後までの日付を取得の日付の曜日と日数と 1 ヶ月分の日付を取得

取得した日付に予約データが存在取得した日付に予約データが存在

予約番号、使用者名、工作機械名、予約日、開始時間、終了時間、使用用途をデータベースより取得し、使用者名、開始時間、終了時間、使予約番号、使用者名、工作機械名、予約日、開始時間、終了時間、使用用途をデータベースより取得し、使用者名、開始時間、終了時間、使用用途を所定箇所へ出力用用途を所定箇所へ出力

図 10 予約状況を表示する処理
5.2 新規予約の登録処理① 新規予約を行うページで入力したデータのうち、使用者名と使用工作機械名と予約日については、入力データを各変数（$id , $mcode , $reserve_day）に格納し、データベース（schedule）に登録する。
② 開始時間と終了時間については、「時間」と「分」が単独のデータとして入力されるため、それぞれのデータを結合し、そのデータを変数（$reserve_start , $reserve_end）に格納し、データベース（schedule）に登録する。
③ 使用用途については、そのデータが仮予約の状態にあることを明記する意味で（仮）を追記し、そのデータを変数（$reason）に格納し、データベース（schedule）に登録する。なお、管理ユーザが工作機械の使用を予約したり、代行して工作機械を予約したりする場合には、③の処理は行われず、新規予約を行うページで入力された使用用途のデータのままデータベースに登録される。
5.3 予約内容の管理処理
図 11 に予約内容の管理処理のフローチャートを示す。この処理では、管理ユーザが予約承認ページ（図 6）を開いているか、検索結果出力ページ（図 8）を開いているかで処理が分かれる。
5.3.1 予約承認画面での処理の流れ① 使用用途に（仮）が付いているデータの件数を取得し、その件数とデータを出力させる。
② 仮予約承認を選択する場合は、予約内容の使用用途から（仮）が削除される。
③ 予約取消しを選択する場合は、予約が削除される。
5.3.2 検索結果出力画面での処理の流れ① 予約内容変更を選択する場合は、予約番号をキーにして予約内容を取得し、予約内容変更フォームを出力させる。管理ユーザが変更したデータを含め、フォームより受け取ったデータで予約内容を変更する。
② 予約取消しを選択する場合は、仮予約取消しと同様の処理が行われる。

予約内容の管理処理

予約承認

予約承認：予約予約の変更・取消しの変更・取消し
使用用途に（仮）が付いている取消し

データの件数を取得し、全デー変更：取消しタを出力変更
承認：取消し

取消し
変更処理

承認
取消処理

仮予約の承認処理

管理ユーザが選択した予約番号をキーにして予約内容を取得し、予約内容変更フォームへ出力

管理ユーザが選択した仮

管理ユーザが選択した予予約データの使用用途か約番号をキーにして、予ら（仮）を削除し、デー約内容をデータベースかタベースを更新

ら削除

管理ユーザが変更したデータを含め、フォームより受け取ったデータで予約内容を変更

図 11 予約内容を管理する処理の流れ

6. おわりに本システムの開発状況は、スケジュール通りに進んでおり、本年 9 月より生産技術系職員向けのテスト運用を行う予定である。また、テスト運用時に発生する問題点を適切に処理し、10 月よりの本運用を目指している。
本システムは、ものづくりセンター内での運用を目的としており、最低限のセキュリティ対策（ユーザ認証処理や IP アドレスによるアクセス制限）は行った。しかし、今後、生産技術系職員以外の方が本システムを利用する際にはさらなるセキュリティ対策（ユーザ認証の強化や SQL インジェクション対策など）を行わないといけないのではないかと考える。また、現在のシステム機能についても予約が重複している際の対応など現在の構築技術では対応できなかった部分もある。今後、さらなるスキルアップを図り、これらの課題解決に積極的に取り組み、職員が利用しやすいシステムにしていきたいと考える。
技術研修として昨年 10 月から本システムの構築に取り組んできたことにより、システム構築に関わる一連の技術については習得できたと考える。しかし、本運用するにあたっては、本システムの課題にもあげたセキュリティ対策にも目を向ける必要がある。今後は、システムのセキュリティ対策を向上させるようなスキルアップに取り組んでいきたい。

謝辞
本システムは、各種サーバの設定に関して技術センター情報処理技術班の森圭史朗技術職員の指導・助言のもと構築することが出来ました。心より深く感謝いたします。