PLCで収集した工場内設備のデータをLooker Studioで見える化してみた

# 背景
日立製作所大みか事業所では、大みかグリーンネットワーク(OGN, Omika Green Network)として社会全体のカーボンニュートラル達成をゴールに、事業活動と環境負荷低減の両立に取り組んでいる。
[大みかグリーンネットワーク：日立](https://www.hitachi.co.jp/products/it/control_sys/ogn/)

この取り組みの一環として、工場内の設備におけるデータの見える化を行う。


# 課題

工場では、現状、人の判断を要する作業工程がいくつかある。この場合、工場内の作業者は「モノ」の状態を見て作業内容を決定する。しかし、人手での作業は、業務が属人化してしまうことや、人為的ミスによる環境への影響が懸念される。
そこで、今後はこれらの作業を自動化し、業務を最適化することが求められる。

今回はその第一歩として、データの見える化を行った。

# やりたいこと

本取り組みにおける一連の処理の流れは下記の通りである。
1. 工場内の設備からPLCを用いて必要なデータを収集する
2. 現場用のコンピュータを用いてGoogle Cloudにアップロードし、BigQueryテーブルを作成する
3. Looker Studioを用いて可視化する

本記事では、「3. Looker Studio を用いて可視化する」ための手順と、実行結果について記載する。

:::note info
PLC （Programmable Logic Controller) : 工場内の設備や機器の自動制御に用いられるコントローラ。工場内のデータの収集、記憶、出力が可能である。
:::

# Looker Studioとは
Looker StudioはGoogleの提供するBI（Business Intelligence）ツールである。
様々なソース（Googleアナリティクス、スプレッドシート、BigQuery、MySQL　等）と連携し、データを可視化することができる。
ノーコードで直感的な操作ができることが特徴として挙げられる。

# 実際にやってみた

下記のサイトを参考に、データの可視化を行った。
[Looker Studio を使用してデータを可視化する](https://cloud.google.com/bigquery/docs/visualize-looker-studio?hl=ja)


実行手順と結果について記載する。

## 1. データを用意する

まずは、工場内のデータをPLC経由で収集したデータを1週間分用意する。
※ 今回は実データではなく、ダミーデータによる実施結果を記載する。

本データは排水処理設備から収集するものであり、5分おきに、次に示すデータを記録することを想定する。
* datetime : 日時
* inflow : 排水の流入量 [L]
* medicine : 排水処理用の薬剤の投入量 [g]

![排水処理設備データ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/88303926-d452-c169-9573-8f47a1f302e5.png)


## 2. BigQueryで実行する

1.で収集したデータをBigQueryにアップロードしておく。
Google Cloud コンソールで [BigQuery] ページに移動し、「+」をクリックしてQuery Editorを開く。

<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/0df27473-929a-289a-09a6-c4076ef805c4.png" alt=クエリエディタを開く>

SQL文を記載し、「実行」ボタンをクリックする。
![クエリ実行前](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/c6364b3d-d82a-05ac-4f70-9c403dd48a82.png)

実行が完了すると、画面下部に「クエリ結果」が表示される。

## 3. Looker Studioを起動する

クエリの実行結果を表示している状態で、「データを探索」をクリックする。

![クエリ実行後](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/c83bd85f-3591-2648-8f41-c524a337f1c1.png)

下記画面で「Looker Studio で調べる」をクリックすると、Looker Studioの画面に遷移する。
※ Lookerの初回利用時は利用契約がポップアップ表示されるため同意する必要がある

<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/775e46dc-cbdb-7b7e-36a5-585a268a86e3.png" alt=Lookerで開く>

## 4. グラフを描画する
### デフォルト表示
Looker Studioを開くと、デフォルトで表とグラフが1つずつ表示される。
これで、測定日時 (datetime) と、排水の流入量 (inflow) を可視化することができた。
![グラフを表示](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/ce9b51a8-3829-fa0e-8e99-9e9b61fe7914.png)

### 表示するデータ数の変更
デフォルトでは10個分のデータしかグラフに表示されていないが、設定を変えることで表示データ数を拡大することもできる。グラフを選択した状態で、「スタイル」タブを開く。棒の数はデフォルトで10である。これを「300」としてみると...
![グラフスタイルの設定](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/43adb19c-729a-9600-d121-44d0c6735d26.png)
300個分のデータを表示することができた。
![300個分補油時](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/d2697ebc-807a-e4e8-b419-894493d0c830.png)

## 5. グラフの設定を変更する
### 日付ごとに表示する
次に、このグラフの設定をいじって日付ごとの流入量を可視化してみる。
グラフを選択した状態で「設定」タブを選択する。
「ディメンション」がx軸に該当する。現在は「datetime」となっている。これをクリックして、「datetime (日付)」に変更する。

<img width="700" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/4e4d79d0-cf94-24ae-d592-d419f2c76d47.png" alt=ディメンションの設定変更>

日付ごとにグラフを表示させることができた。

![グラフを日付ごとに表示](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/ada7f391-5764-8581-7c5b-261fe986afa6.png)

### 表示するデータ種別を追加する
今度はこのグラフに流入量 (inflow) だけではなく薬剤の投入量（medicine）も表示させてみる。
グラフを選択した状態で「設定タブ」を選択する。
「指標」がy軸に該当する。現在は「inflow」となっているが、「+」をクリックして「medicine」を追加する。

<img width="700" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/a79bb1bb-ce22-2634-9df9-241f447e766a.png" alt=指標の変更>

測定日ごとの流入量、薬剤投入量を並べて表示することができた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/7621dfde-5310-3c26-ff2f-1dccfad558f1.png)

## 6. グラフの種類を変更する

データの推移がより分かりやすくなるようグラフの種類を変更する。グラフを選択した状態で「グラフ」をクリックすると、グラフの種類の一覧が表示される。ここでは「平滑線グラフ」を選択する。
![グラフを追加](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/c7efeb68-ae43-cf91-bc2c-5533cecfd284.png)

グラフを「平滑線グラフ」に変更することができ、それぞれのデータの時系列による推移がより分かりやすく可視化された。
![平滑線グラフ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/175e43da-2068-5653-8415-d60a9e908ea6.png)


## 7. グラフを新規作成する
Looker Studioではグラフを新規に作成することもできる。最後に、グラフを作成する方法を紹介する。
まず、Looker Studioページ上部の「グラフを追加」をクリックする。

<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/a885f530-7efa-e138-21b8-f06fd6ccc0a3.png" alt=グラフの新規作成>

グラフの種類が表示される。ここでは「散布図」を選択する。

![グラフの種類](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/e8a032f4-89e9-7a72-8478-c1e7852ffdb1.png)

次に、作成したグラフを選択した状態で「設定」をクリックし、下記の内容で設定する。
![散布図設定](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/9c54eeb3-c6a2-cd49-11e1-6d8d2cd09e3b.png)

1日ごとの排水の流入量（inflow）、薬剤の投入量（medicine）の相関を表した散布図を作成することができた。

![散布図.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987931/dc37a73e-e718-3ab5-2eed-f09ffa69053d.png)

# まとめ
本記事では、BigQueryに格納した工場内の設備のデータをLooker Studioで可視化した。Looker Studioでは直感的な操作で簡単にグラフを作成・編集することができるため、導入が容易で誰でも簡単に扱える印象を受けた。
これを導入することにより、工場内の作業者が、「モノ」ではなく「データ」を見て作業を判断することが可能となり、作業の属人化を削減し、人の判断に起因するリスクを低減することができる。
さらに、今後は、得られたデータを機械学習やDeep Learningで分析して、工場での作業内容・作業するタイミング等を自動で決定できるようにしていきたい。

# 免責・商標類
* 本記事に記載した手順は、その動作や結果を保証するものではありません。
* 本記事に記載の会社名、製品名などは、それぞれの会社の商標もしくは登録商標です。